Symfony:这些消息对于给定的语言环境不可用,并且无法在后备语言环境中找到

5 symfony symfony4

我正在尝试使用 symfony 翻译。这是我的翻译.yml

framework:
    default_locale: 'en'
    translator:
        paths:
            - '%kernel.project_dir%/translations'
        fallbacks: ['en']
Run Code Online (Sandbox Code Playgroud)

我在翻译目录中创建了 messages.en.yml 。

## YAML Template.
Home: Home
Admin: Admin
Dashboard: Dashboard
Vehicles: Vehicles
Id: Id
Run Code Online (Sandbox Code Playgroud)

但是当我尝试这样使用时,

{% trans %}Dashboard{% endtrans %}
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息,

这些消息对于给定区域设置不可用,并且无法在后备区域设置中找到。将它们添加到翻译目录中以避免 Symfony 输出未翻译的内容。

Chr*_*con 2

区域设置由两部分(语言和国家/地区)和下划线组成:例如。it_IT 或 en_EN

例如,瑞士有 3 种口语:

  • 德_CH
  • ch_CH
  • fr_CH

您的翻译文件的文件名应类似于:

  • messages.en_EN.yml
  • messages.it_IT.yml
  • ...

每个翻译文件中的翻译密钥应该是唯一的、以点分隔的且相同的。首先是翻译键,冒号之后是翻译的内容。

# messages.it_IT.yml
navigation.home: Clicca per casa
navigation.help: Clicca per aiuto

# messages.en_EN.yml
navigation.home: Click for home
navigation.help: Click for help
Run Code Online (Sandbox Code Playgroud)

现在您可以在应用程序中使用导航键,一个好的 IDE 将通过选择它们来帮助您。当应用程序的不同部分使用不同的文件时,您必须在 twig 中对它们进行寻址,如下所示:

{{ 'navigation.home'|trans({}, 'application') }}
{{ 'navigation.help'|trans({}, 'application') }}

<div class="error-message">
    The following error occured: {{ 'error.login'|trans({}, 'messages') }}
</div>
Run Code Online (Sandbox Code Playgroud)