按照4.3关于翻译的文档(https://symfony.com/doc/4.3/translation.html#basic-translation),我正在尝试翻译页面标题。
如果当前语言环境的翻译不存在,我不想回退到任何内容。
现在,我正在获取默认的语言环境翻译(如果存在)或它可以找到的第一个翻译。
如何禁用它?这是我的/config/packages/translation.yaml文件:
framework:
default_locale: de
translator:
default_path: '%kernel.project_dir%/translations'
这是我控制器内的代码:
/** @var TranslatorInterface $translatorInterface */
$categoryTitle = $translatorInterface->trans('category_title',[]);
只要翻译键'category_title'存在于任何messages.*.yaml
中,我就可以得到一个值。
从translation.yaml文件中删除后备选项
framework:
translator:
fallbacks: []
我找到了解决方案,/ config / packages / framework.yaml需要更新:
framework:
secret: '%env(APP_SECRET)%'
default_locale: '%locale%'
translator: { fallbacks: '%fallback%' }
这里是translation.yaml:
framework:
default_locale: '%locale%'
translator:
default_path: '%kernel.project_dir%/translations'
fallbacks: '%fallback%'
最后在services.yaml中,我有一个空数组用于备用:
parameters:
locale: 'en'
locales: ['en', 'de', 'es', 'fr', 'it', 'nl', 'no', 'pt', 'sv']
fallback: []