How to Find Errors in Translation Files

How to Find Errors in Translation Files

Symfony processes all the application translation files as part of the process that compiles the application code before executing it. If there’s an error in any translation file, you’ll see an error message explaining the problem.

If you prefer, you can also validate the contents of any YAML and XLIFF translation file using the lint:yaml and lint:xliff commands:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# lint a single file
$ php bin/console lint:yaml translations/messages.en.yaml
$ php bin/console lint:xliff translations/messages.en.xlf

# lint a whole directory
$ php bin/console lint:yaml translations
$ php bin/console lint:xliff translations

# lint multiple files or directories
$ php bin/console lint:yaml translations path/to/trans
$ php bin/console lint:xliff translations/messages.en.xlf translations/messages.es.xlf

The linter results can be exported to JSON using the --format option:

1
2
$ php bin/console lint:yaml translations/ --format=json
$ php bin/console lint:xliff translations/ --format=json

When running the YAML linter inside GitHub Actions, the output is automatically adapted to the format required by GitHub, but you can force that format too:

1
$ php bin/console lint:yaml translations/ --format=github

New in version 5.3: The github output format was introduced in Symfony 5.3.

Tip

The Yaml component provides a stand-alone yaml-lint binary allowing you to lint YAML files without having to create a console application:

1
$ php vendor/bin/yaml-lint translations/

New in version 5.1: The yaml-lint binary was introduced in Symfony 5.1.

This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.