Symfony Translation Bundle¶
The Symfony bundle is filled with cool features that will ease your translation workflow. You probably do not want all features enabled, just choose the ones you like. Some features requires you to install extra packages, but that is explained in the documentation for each feature.
Features¶
Installation¶
Install the bundle with Composer
composer require php-translation/symfony-bundle
Then enable the bundle in AppKernel.php
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
// ...
new Translation\Bundle\TranslationBundle(),
}
}
}
Configuration¶
The bundle has a very flexible configuration. It allows you do have different setups
for different parts of your application. This might be overkill for most applications
but it is possible by specifying more keys under translation.configs
.
Below is an example of configuration that is great to start with.
translation:
locales: ["en", "fr", "sv"]
configs:
app:
dirs: ["%kernel.root_dir%/Resources/views", "%kernel.root_dir%/../src"]
output_dir: "%kernel.root_dir%/Resources/translations"
excluded_names: ["*TestCase.php", "*Test.php"]
excluded_dirs: [cache, data, logs]
With the configuration above you may extract all translation keys from your source code by running
php bin/console translation:extract app
Note
See page Extracting Translations from Source for more information.
Storages¶
By default we store all translations on the file system. This is highly configurable.
Many developers keep a local copy of all translations but do also use a remote storage,
like a translations platform. You may also create your own storage. A storage service
must implement Translation\Common\Storage
.
translation:
locales: ["en", "fr", "sv"]
configs:
app:
dirs: ["%kernel.root_dir%/Resources/views", "%kernel.root_dir%/../src"]
output_dir: "%kernel.root_dir%/Resources/translations"
remote_storage: ["php_translation.adapter.loco"]
local_storage: ["app.custom_local_storage"]
output_format: "xlf"
The PHP Translation organisation provides some adapters to commonly used translation storages. See our all storage adapters or see an example on how to install an adapter.