feat: update structure of i18n

This commit is contained in:
obvTiger 2024-12-15 02:15:27 +01:00
parent a48320862c
commit 0f075e9f7f
12 changed files with 139 additions and 28 deletions

View file

@ -1,15 +1,13 @@
### Merged i18n
# Centralized Translation Repository
This repository manages all multilingual translations for the project in a single JSON file: `languages.json`. The centralized structure ensures consistency and simplifies updates by consolidating all languages in one place.
This repository manages all multilingual translations for the project in a single JSON file: `translations.generated.json`. The centralized structure ensures consistency and simplifies updates by consolidating all languages in one place.
### **Translation Format**
The `languages.json` file organizes translations in a nested structure:
- **Keys** represent the unique identifiers for each translatable string.
The `translations.generated.json` file organizes translations in a nested structure:
- **Keys** represent the unique identifiers for each translatable string, generated automatically from the file structure.
- **Sub-keys** represent the supported language codes (e.g., `en`, `de`, `fr`).
- **Values** are the localized translations for each language.
@ -29,8 +27,18 @@ The `languages.json` file organizes translations in a nested structure:
}
```
### **Using the Project**
All languages are accepted.
#### Prerequisites
- Ensure you have [Node.js](https://nodejs.org) installed.
#### Generating the Translations Index
1. **Add or modify translation files**: Place JSON translation files in the appropriate directory structure under the `merged` folder.
2. **Run the generator**:
```bash
node generator.js
```
This will produce the `translations.generated.json` file in the root directory, containing all the translations consolidated into a single JSON object.
### **Contributing**
@ -38,19 +46,11 @@ We welcome contributions to improve or expand translations. Please follow these
1. **Fork the repository.**
2. **Create a new branch** for your changes.
3. **Update the `languages.json` file**:
- Add new keys or languages where applicable.
- Ensure consistency in the JSON structure.
3. **Update or add translation files**:
- Place your JSON files in the appropriate folder structure under `merged`.
- Run the `generator.js` script to regenerate the `translations.generated.json` file.
4. **Submit a pull request** with a clear description of your changes.
### **Advantages of a Centralized File**
- **Simplicity**: All translations are stored in one place, making it easy to access and update.
- **Consistency**: Reduces duplication and ensures all keys are synchronized across languages.
- **Scalability**: Adding new keys or languages requires minimal effort.
### **Contact**
If you have questions or suggestions, feel free to open an issue in the repository.