php – Symfony 4翻译没有显示

所以我有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/translation.yaml:

framework:
    default_locale: en
    translator:
        fallbacks: ['en']
        paths:
            - '%kernel.project_dir%/translations'

/translations/messages.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 bin / console cache:clear”以确保缓存完全清除了.

我似乎无法从yaml文件获取翻译.显示没有错误,但只有翻译键可见.

任何人都可以看到我是在某个地方犯了一个明显的错误还是忽略了什么?

PHP 7.2.0-2 ubuntu16.04.1 deb.sury.org 2(cli)(内置:2017年12月7日20:14:31)(NTS)Linux Mint 18,Apache2 Ubuntu.

解决方法:

我有同样的问题,我找到了解决方案.也许这也是其他人的解决方案.
在我的情况下命令

./bin/console cache:clear

没有清除/ var / cache / translations文件夹.手动删除文件夹后

rm -rf var/log/translations

翻译按预期加载.

我不知道为什么缓存:clear在这种情况下可能不起作用,但此刻我相处得很好.也许我下周会找一些时间调试原因.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...