2017-02-18 64 views
0

Laravel 5.4文档说明如下:是否可以根据Laravel应用程序中使用的默认翻译生成英文翻译文件?

对于重型翻译需求的应用,定义每 字符串“短键”可以迅速变得混乱时 在视图中引用它们。出于这个原因,Laravel还提供了 支持,用于将字符串的“默认”翻译作为关键字来定义翻译字符串。

因此,如果我使用echo __('I love programming.');并且没有匹配的翻译,它会返回'我喜欢编程'。那么当我决定添加翻译时会发生什么? Can Laravel能够提取我使用过的所有语言短语,并将它们放到某个翻译文件中?如果是这样,怎么样?

回答

0

当您决定添加翻译时,您必须为您的用户提供select所需语言的方法。此时,您将执行类似App::setLocale('whatever')App::setLocale('pt-BR');的操作。现在,Laravel会去你的resources/lang/文件夹,并寻找一个whatever.jsonpt-BR.json,在这里您可以存储这样的文件:

PT-BR.json

{ 
    'I love programming': 'Eu amo programar.' 
} 

whatever.json

{ 
    'I love programming': 'Equivalent text that you want to be displayed.' 
} 

基本上,__()函数将查找当前请求中定义的语言(请参阅app.php中的可用语言环境和fallback_locale),然后查找带有该语言翻译的json。如果没有找到,它将回退到回退区域设置。如果该文件也不存在,它将只显示给定的字符串。

+0

对不起,这不回答我的问题。如果我想创建新的翻译,我需要知道提供给翻译人员的英语短语列表。我在问如何编译整个视图文件中使用的英文翻译列表。 –

+0

@Blossoming_Flower我不知道这是否可能。但是,拥有这种翻译系统的重要性在于翻译者只需在屏幕上看到一条消息并以JSON格式翻译即可。您可以尝试覆盖'__()'函数并将给定的密钥保存到文件中,但这需要有人确保完成系统的每个屏幕/函数调用,以便文件完整。 –

0

请访问以下链接:

https://laravel.com/docs/5.4/localization 

我认为它可以帮助您