翻译字符串作为Laravel中的键

翻译字符串作为Laravel中的键,laravel,blade,Laravel,Blade,我阅读了翻译字符串的文档,但不知怎的,我不明白如何应用它 假设我想在视图posts.index中以英语、德语(“Ich mag Programmieren”)或西班牙语(“Me encanta programar”)呈现消息“我喜欢编程”,具体取决于App::setLocale()设置的本地化 翻译文件的外观如何以及如何设置视图?消息(您可以选择)是翻译文件的名称 对于每种语言,在lang文件夹中创建一个dir。西班牙语是西班牙语 {{ trans('messages.cool') }} 我

我阅读了翻译字符串的文档,但不知怎的,我不明白如何应用它

假设我想在视图
posts.index
中以英语、德语(“Ich mag Programmieren”)或西班牙语(“Me encanta programar”)呈现消息“我喜欢编程”,具体取决于App::setLocale()设置的本地化

翻译文件的外观如何以及如何设置视图?

消息(您可以选择)是翻译文件的名称

对于每种语言,在lang文件夹中创建一个dir。西班牙语是西班牙语

{{ trans('messages.cool') }}


我希望这有助于…

将语言文件存储在
资源/lang
中,结构如下

/resources
    /lang
        /en
            messages.php
        /es
            messages.php
所有语言文件只返回一个键控字符串数组。例如:


我终于明白了这个概念。在
resources/lang
中,您可以为每种语言创建一个翻译JSON文件,例如。g、 :

/resources
    /lang
        /de.json
        /es.json
无需创建
en。如果不使用
App::setLocale()
设置语言,那么
en
将是默认语言,因此json
文件将成为默认语言

de.json:

{
     "I love programming.": "Ich mag programmieren."
}
es.json:

{
     "I love programming.": "Me encanta programar."
}
接下来,通过
App::setLocale()在控制器中设置语言现在是有趣的部分。在视图中,您只包括JSON的键e。g

{{{{(“我喜欢编程”)}


根据您的本地化情况,Laravel将自动加载正确的翻译

我建议不要使用翻译字符串,而是使用键:

  • 键包含上下文信息:
    主屏幕。对话框。添加项目按钮
    -您知道这是主屏幕上的一个按钮。这比使用字符串
    additem
    要好得多
  • 类似于编辑器的编辑器将键显示为树。这使得编辑翻译的特定子集更加容易。使用字符串,您很容易得到一个列表,如
    中止
    添加项
    阿拉巴马州
    阿拉斯加州
    全部
    亚利桑那州
  • 可以对同一文本的不同位置使用不同的翻译。例如,对于表单标签,如果语言中没有足够的空间,则可以创建较短的翻译
  • 如果您的主要语言发生变化,您不必更新所有翻译文件。例如,如果您添加了,请决定将
    Hello world.
    更改为
    Hello world您不必更新所有文件
    
    感谢您的快速跟进。事实上,我也很清楚这种方法。我不明白的是使用翻译字符串作为键的方法。但最后,我明白了我的意思,并补充了一个答案。谢谢你的快速跟进。事实上,我也很清楚这种方法。我不明白的是使用翻译字符串作为键的方法。但最后,我明白了这一点,并补充了一个答案。@Andreas那太好了:-)我想知道是否有针对西班牙语等常见语言的预先制作的json文件。虽然我西班牙语说得很流利,但我是一个大型项目的负责人,花这么多时间编写一本字典似乎不是一个明智的想法。