This repository contains translations for FeatherPanel. All translation files are stored as JSON files in the languages/ directory.
translations/
├── languages/ # Translation JSON files (en.json, ro.json, etc.)
├── data/
│ └── mappings.json # Language code mappings and metadata
├── scripts/ # Node.js validation and utility scripts
└── .github/
└── workflows/ # GitHub Actions workflows
Translation files are named using their ISO 639-1 language codes (e.g., en.json, ro.json, de.json). The data/mappings.json file contains metadata for all supported languages.
See data/mappings.json for the complete list of supported languages and their metadata.
- Node.js 16+ and npm
# Clone the repository
git clone <repository-url>
cd translations
# Install dependencies (no external dependencies needed)
npm install
# Sync en.json from upstream
npm run sync:ennpm run validate:json- Validates all JSON files for syntax errorsnpm run validate:missing- Checks for missing translation keys across all languagesnpm run validate:mappings- Validates that all translation files match the mappings.jsonnpm run validate:all- Runs all validation scripts
npm run sync:en- Syncsen.jsonfrom the upstream FeatherPanel repository
- Base Language:
en.jsonis synced from the upstream repository and should always match the latest version - Structure: All translation files must maintain the same nested structure as
en.json - Keys: All translation files must contain all keys present in
en.json - Formatting: Use 4 spaces for indentation (JSON formatting is validated automatically)
- Fork this repository
- Create a new branch for your changes
- Add or update translations in the appropriate language file
- Run validation scripts to ensure everything is correct:
npm run validate:all
- Commit your changes and create a pull request
- Ensure the language code exists in
data/mappings.json - Create a new file
languages/{code}.jsonbased onen.json - Translate all strings while maintaining the exact same structure
- Run validation to ensure no keys are missing
This repository uses GitHub Actions to automatically:
- ✅ Validate JSON syntax on every push
- ✅ Check for missing translation keys
- ✅ Verify all translation files match the mappings.json
The languages/en.json file is synced directly from the upstream FeatherPanel repository using the raw GitHub URL.
To sync en.json from the latest upstream version:
npm run sync:enThis will:
- Download
en.jsonfromhttps://raw.githubusercontent.com/MythicalLTD/FeatherPanel/main/frontendv2/public/locales/en.json - Format and save it to
languages/en.json
The file is downloaded directly from GitHub, so no submodules or complex setup is required.
See LICENSE for details.