8000 Add default translations path option and convention · symfony/symfony@01dbc55 · GitHub
[go: up one dir, main page]

Skip to content

Commit 01dbc55

Browse files
committed
Add default translations path option and convention
1 parent f1a1181 commit 01dbc55

File tree

7 files changed

+20
-0
lines changed

7 files changed

+20
-0
lines changed

src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ CHANGELOG
44
3.4.0
55
-----
66

7+
* Added `translator.default_path` option and parameter
78
* Session `use_strict_mode` is now enabled by default and the corresponding option has been deprecated
89
* Made the `cache:clear` command to *not* clear "app" PSR-6 cache pools anymore,
910
but to still clear "system" ones; use the `cache:pool:clear` command to clear "app" pools instead

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -677,6 +677,10 @@ private function addTranslatorSection(ArrayNodeDefinition $rootNode)
677677
->end()
678678
->booleanNode('logging')->defaultValue($this->debug)->end()
679679
->scalarNode('formatter')->defaultValue('translator.formatter.default')->end()
680+
->scalarNode('default_path')
681+
->info('The default path used to load translations')
682+
->defaultValue('%kernel.project_dir%/config/translations')
683+
->end()
680684
->arrayNode('paths')
681685
->prototype('scalar')->end()
682686
->end()

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1131,6 +1131,7 @@ private function registerTranslatorConfiguration(array $config, ContainerBuilder
11311131
$translator->addMethodCall('setFallbackLocales', array($config['fallbacks']));
11321132

11331133
$container->setParameter('translator.logging', $config['logging']);
1134+
$container->setParameter('translator.default_path', $config['default_path']);
11341135

11351136
// Discover translation directories
11361137
$dirs = array();
@@ -1149,11 +1150,15 @@ private function registerTranslatorConfiguration(array $config, ContainerBuilder
11491150

11501151
$dirs[] = dirname(dirname($r->getFileName())).'/Resources/translations';
11511152
}
1153+
$defaultDir = $container->getParameterBag()->resolveValue($config['default_path']);
11521154
$rootDir = $container->getParameter('kernel.root_dir');
11531155
foreach ($container->getParameter('kernel.bundles_metadata') as $name => $bundle) {
11541156
if ($container->fileExists($dir = $bundle['path'].'/Resources/translations')) {
11551157
$dirs[] = $dir;
11561158
}
1159+
if ($container->fileExists($dir = $defaultDir.'/'.$name)) {
1160+
$dirs[] = $dir;
1161+
}
11571162
if ($container->fileExists($dir = $rootDir.sprintf('/Resources/%s/translations', $name))) {
11581163
$dirs[] = $dir;
11591164
}
@@ -1167,6 +1172,9 @@ private function registerTranslatorConfiguration(array $config, ContainerBuilder
11671172
}
11681173
}
11691174

1175+
if ($container->fileExists($defaultDir)) {
1176+
$dirs[] = $defaultDir;
1177+
}
11701178
if ($container->fileExists($dir = $rootDir.'/Resources/translations')) {
11711179
$dirs[] = $dir;
11721180
}

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@ protected static function getBundleDefaultConfig()
257257
'logging' => true,
258258
'formatter' => 'translator.formatter.default',
259259
'paths' => array(),
260+
'default_path' => '%kernel.project_dir%/config/translations',
260261
),
261262
'validation' => array(
262263
'enabled' => !class_exists(FullStack::class),

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/full.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ framework:
4242
translator:
4343
enabled: true
4444
fallback: fr
45+
default_path: '%kernel.root_dir%/Fixtures/config/translations'
4546
paths: ['%kernel.root_dir%/Fixtures/translations']
4647
validation:
4748
enabled: true

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,11 @@ public function testTranslator()
503503
$files,
504504
'->registerTranslatorConfiguration() finds translation resources in custom paths'
505505
);
506+
$this->assertContains(
507+
strtr(__DIR__.'/config/translations/test_default.en.xlf', '/', DIRECTORY_SEPARATOR),
508+
$files,
509+
'->registerTranslatorConfiguration() finds translation resources in default path'
510+
);
506511

507512
$calls = $container->getDefinition('translator.default')->getMethodCalls();
508513
$this->assertEquals(array('fr'), $calls[1][1][0]);

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/config/translations/test_default.en.xlf

Whitespace-only changes.

0 commit comments

Comments
 (0)
0