Symfony 4.3禁用翻译回退

问题描述 投票:0回答:2

按照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中,我就可以得到一个值。

symfony translation fallback
2个回答
0
投票

translation.yaml文件中删除后备选项

framework:
    translator:
        fallbacks: []

0
投票

我找到了解决方案,/ 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: []
© www.soinside.com 2019 - 2024. All rights reserved.