mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
API Update translation to use symfony 6
This commit is contained in:
parent
8fe2a786dc
commit
a87a657367
@ -33,7 +33,7 @@ SilverStripe\Core\Injector\Injector:
|
||||
constructor:
|
||||
0: [ '%$Symfony\Component\Config\Resource\SelfCheckingResourceChecker' ]
|
||||
# Create default translator with standard cache path and our custom loader
|
||||
Symfony\Component\Translation\TranslatorInterface:
|
||||
Symfony\Contracts\Translation\TranslatorInterface:
|
||||
class: Symfony\Component\Translation\Translator
|
||||
constructor:
|
||||
0: 'en'
|
||||
@ -48,7 +48,7 @@ SilverStripe\Core\Injector\Injector:
|
||||
SilverStripe\i18n\Messages\MessageProvider:
|
||||
class: SilverStripe\i18n\Messages\Symfony\SymfonyMessageProvider
|
||||
properties:
|
||||
Translator: '%$Symfony\Component\Translation\TranslatorInterface'
|
||||
Translator: '%$Symfony\Contracts\Translation\TranslatorInterface'
|
||||
---
|
||||
Name: textcollector
|
||||
---
|
||||
|
@ -41,7 +41,7 @@
|
||||
"symfony/cache": "^6.1",
|
||||
"symfony/config": "^6.1",
|
||||
"symfony/filesystem": "^6.1",
|
||||
"symfony/translation": "^4.4.44",
|
||||
"symfony/translation": "^6.1",
|
||||
"symfony/yaml": "^6.1",
|
||||
"ext-ctype": "*",
|
||||
"ext-dom": "*",
|
||||
|
@ -2,12 +2,10 @@
|
||||
|
||||
namespace SilverStripe\i18n\Messages\Symfony;
|
||||
|
||||
use SilverStripe\Core\Config\Configurable;
|
||||
use SilverStripe\Dev\Debug;
|
||||
use SilverStripe\i18n\i18n;
|
||||
use SilverStripe\i18n\Messages\Reader;
|
||||
use Symfony\Component\Translation\Loader\ArrayLoader;
|
||||
use Symfony\Component\Translation\PluralizationRules;
|
||||
use Symfony\Component\Translation\MessageCatalogue;
|
||||
|
||||
/**
|
||||
* Loads yaml localisations across all modules simultaneously.
|
||||
@ -23,7 +21,7 @@ class ModuleYamlLoader extends ArrayLoader
|
||||
*/
|
||||
protected $reader = null;
|
||||
|
||||
public function load($resource, $locale, $domain = 'messages')
|
||||
public function load(mixed $resource, string $locale, string $domain = 'messages'): MessageCatalogue
|
||||
{
|
||||
$messages = [];
|
||||
foreach ($resource as $path) {
|
||||
|
@ -115,17 +115,15 @@ class SymfonyMessageProvider implements MessageProvider
|
||||
$this->load($locale);
|
||||
|
||||
// Prepare arguments
|
||||
$arguments = $this->templateInjection(array_merge(
|
||||
$injection,
|
||||
[ 'count' => $count ]
|
||||
));
|
||||
$arguments = $this->templateInjection($injection);
|
||||
$arguments['%count%'] = $count;
|
||||
|
||||
// Pass to symfony translator
|
||||
$result = $this->getTranslator()->transChoice($entity, $count, $arguments, 'messages', $locale);
|
||||
$result = $this->getTranslator()->trans($entity, $arguments, 'messages', $locale);
|
||||
|
||||
// Manually inject default if no translation found
|
||||
if ($entity === $result) {
|
||||
$result = $this->getTranslator()->transChoice($default, $count, $arguments, 'messages', $locale);
|
||||
$result = $this->getTranslator()->trans($default, $arguments, 'messages', $locale);
|
||||
}
|
||||
|
||||
return $result;
|
||||
|
Loading…
Reference in New Issue
Block a user