因此,我为Symfony 4框架提供了以下演示,该框架运行良好,并按预期翻译所有内容:
$translator = new \Symfony\Component\Translation\Translator('en_GB');
$translator->addLoader('array', new \Symfony\Component\Translation\Loader\ArrayLoader());
$translator->addResource('array', [
'sample' => 'The English translation goes here...',
], 'en_GB');
echo $translator->trans('sample');然而,我似乎无法让下面的演示工作起来:
echo $this->get('translator')->trans('sample');下面的配置已经到位:
/config/services.yaml:
parameters:
locale: en/config/packages/铲运站:
framework:
default_locale: en
translator:
fallbacks: ['en']
paths:
- '%kernel.project_dir%/translations'/翻译/信息.en.yaml:
sample: The English translation goes here...倾倒以下物品:
$request->getLocale();
$request->getDefaultLocale();生成以下字符串:
'en_GB'
'en'然后,我尝试将翻译文件重命名为'messages.en.yaml','messages.en_GB.yaml','messages.en_US.yaml‘,然后运行"php /console缓存:清除“,以确保缓存被完全清除。
我似乎无法从yaml文件中显示翻译。显示没有错误,但只有翻译键是可见的。
有人能看到我在某个地方犯了什么明显的错误或者忽略了什么吗?
PHP7.2.0-2+ubuntu16.04.1+deb.sury.org+2 (cli) (建于2017年12月7日20:14:31) ( Apache2 Ubuntu ) Linux 18。
发布于 2018-02-13 20:10:09
我也遇到了同样的问题,我找到了解决办法。也许这也是其他人的解决方案。在我的例子中,命令
./bin/console cache:clear没有清除/var/cache/translations文件夹。手动删除此文件夹后
rm -rf var/log/translations翻译和预期的一样加载。
我不知道为什么缓存:clear可能在这种情况下不起作用,但目前我与它相处得很好。也许我下个星期有时间去调试原因。
https://stackoverflow.com/questions/48269384
复制相似问题