Command line tools for extracting and importing translations from and to Excel files.
CLI tool
Installs the package globally so that you can use the command line tool from anywhere.
pip install translations-utilInstall as a Python package
To install using Poetry:
poetry add -D translations-utilWhich will install the utils as a development dependency in your local python environment.
This tool allows you to update translations in a TypeScript file based on an Excel file. The Excel file should contain the translations in a specific format.
CLI usage
translation-util {import,export} ...translation-util import <excel_file> <ts_file> <sheet_name><excel_file>: Path to the Excel file containing the translations.<ts_file>: Path to the TypeScript file to be updated.<sheet_name>: Name of the sheet in the Excel file that contains the translations.
translation-util export <ts_file> <excel_file> <sheet_name><ts_file>: Path to the TypeScript file containing translations.<excel_file>: Path to the Excel file to save exported translations.<sheet_name>: Sheet name to save translations under in the Excel file.
translation-util import path/to/translations.xlsx path/to/translations-french.ts FrenchThis command will update the translations-french.ts file with the French translations from the translations.xlsx
file, under the French Excel sheet name.
translation-util export path/to/translations-french.ts path/to/translations.xlsx FrenchThis command will export the translations from the translations-french.ts file to the translations.xlsx file, under the French Excel sheet name.
The Excel will follow the format from the Excel File Format section.
The Excel file should have at least three columns:
- Key: The key for the translation.
- English Text: The original English text.
- Translation: The translated text.
- Placeholder Matching: Ensures that placeholders in the format
{variable}are consistent between the English text and the translation. - Translation Blocks: Detects and processes translation blocks marked by
// TODO: vvv Translate below vvvand// TODO: ^^^ Translate above ^^^.
Assuming the Excel workbook has a sheet named French with the following content:
| Key | English Text | French text |
|---|---|---|
| common.greeting-{name} | Hello, {name}! | Bonjour, {name}! |
| common.goodbye | Goodbye! | Au revoir! |
| login.username | Username | Nom d'utilisateur |
| login.password | Password | |
| error.invalid-translation-of-variable-{name} | Invalid translation of variable {name} | Traduction invalide de variable {nom} |
The import-translations command will update the TypeScript file with the following content:
export const translations = {
..., // Other translations
'common.existing-translation': 'Traduction existante',
'common.greeting-{name}': 'Bonjour, {name}!',
'common.goodbye': 'Au revoir!',
'login.username': "Nom d'utilisateur",
'login.password': '', // TODO Translate
'error.invalid-translation-of-variable-{name}': '', // TODO Translate
... // Other translations
};To contribute to this project, clone the repository and install the dependencies using Poetry:
git clone <repository-url>
cd translations-util
poetry installThis project is licensed under the MIT License - see the LICENSE file for details.