Extracting translation contents and updating catalogues automatically for Nette FW.
Inspired by kdyby/translation package.
Requires symfony/console, you may use contributte/console.
composer require adbros/translation-extraextensions:
translationExtra: Adbros\TranslationExtra\DI\TranslationExtraExtensiontranslationExtra:
extractor:
defaultScanDir:
- %appDir%
defaultOutputDir: %appDir%/locale
defaultFormat: neon
extractors:
nette: Adbros\TranslationExtra\Extractor\NetteExtractor
latte: Adbros\TranslationExtra\Extractor\LatteExtractor
loaders:
neon: Adbros\TranslationExtra\Loader\NeonFileLoader
dumpers:
neon: Adbros\TranslationExtra\Dumper\NeonFileDumper bin/console translation:extract csLatteExtractor walks the whole template and collects every {_'message'} (and any print with the translate filter) whose message is a string literal, including HTML attribute values, n: attributes, all {if}/{elseif}/{else} branches, loops and nested blocks. Dynamic messages like {_$message} are skipped.
A template that cannot be parsed does not stop the extraction. It is skipped and reported as a warning, so its messages are missing from the extracted catalogue. When any template is skipped, --clean is not applied: the extracted messages are only merged into the translation files and a warning says that cleaning was skipped, so no existing messages are removed. Fix the reported templates and run the command again to clean the files.