adbros / translation-extra
Extracting translation contents and updating catalogues automatically for Nette FW.
Requires
- php: >=8.0
- latte/latte: ^3.0.23
- nette/neon: ^2.4 || ^3.0
- symfony/console: ^5.0 || ^6.0
- symfony/finder: ^5.0 || ^6.0
- symfony/translation: ^5.0 || ^6.0
Requires (Dev)
- contributte/qa: ^0.2
- nette/application: ^3.0
- nette/di: ^3.0
- nette/forms: ^3.0
- nette/tester: ^2.4
- phpstan/extension-installer: ^1.2
- phpstan/phpstan: ^1.9
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-strict-rules: ^1.4
- tracy/tracy: ^2.4
Suggests
- contributte/console: Symfony Console for Nette FW
- contributte/translation: Symfony Translation for Nette FW
Provides
None
Conflicts
- symfony/translation: <5.3.4
Replaces
None
This package is auto-updated.
Last update: 2026-10-13 10:48:39 UTC
README
Extracting translation contents and updating catalogues automatically for Nette FW.
Inspired by kdyby/translation package.
Requirements
Requires symfony/console, you may use contributte/console.
Instalation
composer require adbros/translation-extra
Register extension
extensions: translationExtra: Adbros\TranslationExtra\DI\TranslationExtraExtension
Default configuration
translationExtra: 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
Usage
bin/console translation:extract cs
Latte templates
LatteExtractor 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.