Manage translations
For those who want to make a multi-language website and edit translations easily, life became much easier. We've created a Translator bundle to edit your translations from within our backend.
Features
- Import bundle specific translations from any type of translation file
- Import global translations form any type of translation file
- Live edit existing translations from the backend
- Add new translations from the backend
- Native translation caching
- Notices when cached translations aren't up to date
- Clear translation cache from backend or the cli
- Check translation cache from the cli
- Create doctrine migration of all changed/added translations
- Preview all managed translations from each request in the Symfony profiler
1) Import translations
You can import translations from the backend, go to Settings -> Translations. Here you will see all translations managed from the TranslatorBundle. Now you have two ways to import new or existing translations. A normal 'Import' will import all new translations from the current bundle. 'Import forced' will also import all new translations form the current bundle AND overwrite existing translations. So be careful with the forced import functionality.
We've also included the ability to import translations from the cli. This method is much more flexible and has more options.
- A normal import (same import as in the backend)
bin/console kuma:translator:import --forced
- A forced import
bin/console kuma:translator:import
Note: both normal and forced import will only import translations from the current bundle.
- Import translations from specific bundle
bin/console kuma:translator:import --bundle=superCoolNewApplicationBundle
- Import translations only for specified locales
bin/console kuma:translator:import --locales=nl,fr,de
- Import translations from the global Resources (
app/Resources/translations
)
bin/console kuma:translator:import --globals
2) Translation caching and clearing
Translations are stored in database, but we're using the native translator caching from Symfony when running your application with debug = false
.
This means that the following kernel configuration will always look for translations in the database:
$kernel = new AppKernel('dev', true);
And this kernel configuration will once fetch all translations and cache them into app/cache/translations
$kernel = new AppKernel('prod', false);
So when you've debug mode
off and changes are done in the backend, you'll see a notice. This notice will tell you that not all translations are up to date (in the cache). You can either click Refresh live
or refresh the cache from the cli:
bin/console kuma:translator:cache --flush
You can also request the current cache status:
bin/console kuma:translator:cache --status
3) Configuration
The kunstmaan_translator
namespace has a few configuration options, a quick summary with their defaults:
kunstmaan_translator:
enabled: true
default_bundle: kunstmaantranslatorbundle
cache_dir: %kernel.cache_dir%/translations
managed_locales: []
file_formats: ['yml', 'xliff']
enabled
: Enabled or disable the KunstmaanTranslatorBundledefault_bundle
: Default bundle used for the import from within the backend (not case-sensitive)cache_dir
: Cached translations dirmanaged_locales
: Which locale translation files should be importedfile_formats
: Which type of translation files should be imported
We advise you to overwrite the default_bundle
configuration, as you will otherwise only include the KunstmaanTranslatorBundle translations.