Symfony Tool to help Import/Export (missing) translations
KTB (Kilik Translation Bundle) is a tool to be used with Symfony Translator. It tries to simplify the exchanges with the (human) translators., (*1)
Note for Symfony 3.4+ / Symfony 4+ projects, (*2)
Since symfony applications are not a bundle, we use the special bundle name 'app' to handle import and export of application translations not located into a bundle, (*3)
From the command line you can export translations (filtering with bundles names, domains, and locales) to CSV (Tab separators)., (*4)
Your translator (colleague, service provider, etc...) can open CSV files with specific translator tools (or with Office Software)., (*5)
Then, you can import updated translations to your project., (*6)
The translations made in vendors are also supported (useful when you have to work on big applications with a lot of bundles)., (*7)
Concepts:, (*8)
composer require kilik/translation-bundle
Than, add this line to your AppKernel.php:, (*9)
$bundles = [ // ... new Kilik\TranslationBundle\KilikTranslationBundle(), // ... ];
Export translations to CSV:, (*10)
export translations, with EN locale as reference, and match missing translations to FR or ES to a file:, (*11)
./bin/console kilik:translation:export en fr,es AcmeBundle ~/translations.csv
work on some bundles at the same time:, (*12)
./bin/console kilik:translation:export en fr,es AcmeBundle,MyOtherBundle ~/translations.csv
export only lines with missing translations:, (*13)
./bin/console kilik:translation:export en fr,es AcmeBundle --only-missing ~/translations.csv
export only some domains:, (*14)
./bin/console kilik:translation:export en fr,es AcmeBundle --domains messages,validators ~/translations.csv
export application only translations (Symfony 3.4+ / Symfony 4+1):, (*15)
./bin/console kilik:translation:export en fr app ~/translations.csv
Import translations from CSV (translations are merged with your current project translations)., (*16)
import all translations from your CSV file, for a given locales:, (*17)
./bin/console kilik:translation:import fr ~/translations.csv
import all translations from your CSV file, overriding existing translation keys:, (*18)
./bin/console kilik:translation:import fr ~/translations.csv -o
import translations from your CSV file, for a specific bundle, for a given locales:, (*19)
./bin/console kilik:translation:import fr --bundles AcmeBundle ~/translations.csv
import translations from your CSV file, for domains, for a given locales:, (*20)
./bin/console kilik:translation:import fr --domains messages,validators AcmeBundle ~/translations.csv
you can also import translations with many locales:, (*21)
./bin/console kilik:translation:import fr,es,nl ~/translations.csv
import translations from your CSV file, for application only translations (Symfony 3.4+ / Symfony 4+1):, (*22)
./bin/console kilik:translation:import fr --bundles app ~/translations.csv
# prepare tests ./prepare-tests.sh # run tests ./run-tests.sh # launch composer ./scripts/composer.sh