symfony - Symfony 4.3 禁用翻译回退
问题描述
根据有关翻译的 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' 存在于 any 中messages.*.yaml
,我就会得到一个值。
解决方案
我找到了解决方案,/config/packages/framework.yaml 需要更新:
framework:
secret: '%env(APP_SECRET)%'
default_locale: '%locale%'
translator: { fallbacks: '%fallback%' }
这是翻译.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: []
推荐阅读
- java - 从命令行运行 junit 测试用例应用程序会导致初始化错误
- git - 使用远程 git 服务器的密码问题
- python - 使用 xml 元素树解析 Errno22
- python - 使用 paramiko exec 命令获取日志文件内容
- python - 如何验证不和谐的用户 ID?
- shell - 无法使用 shell 脚本从文本文件中读取值
- python-3.x - 如何在深度嵌套字典中出现所选键的任何地方用其值替换键:值对?
- javascript - 当输入的长度为 0 时,用户无法发送消息需要一些帮助
- c++ - 为什么用户提供的构造函数允许实例化 const 类实例?
- neural-network - 如何使用Detectron2在视频上运行densepose