时载体在使用翻译字符串作为laravel定位中的钥匙时行不通。

问题描述 投票:0回答:3
我在fr.json

中添加了这个

{ "There is one apple|There are many apples": "Hay una manzana|Hay muchas manzanas" }
中刀片文件:

{{__("There is one apple")}}
然后显示

有一个苹果

应该显示thay una unamanzana。请帮助我解决它。

首先确保您设置Config/app.php,为

'locale' => 'fr'
php laravel localization laravel-localization
3个回答
2
投票
Illuminate\Support\Facades\App::setLocal('fr');

在路由(路由:: get())或可能使用中间件中。 在设置语言环境后,添加此密钥:值对resources/lang/fr.json

文件:
"There is one apple|There are many apples" : "{1} Hay una manzana|[2,*] Hay muchas manzanas"
.

而不是使用

__()方法。而且,您还必须提供Apple/Apples的数量作为第二个参数。这就是它知道它是单数(1)还是复数(2+)的方式。因此,这是您在刀片文件中使用它的方式:

trans_choice()

.


应用程序的默认语言存储在
{{ trans_choice("There is one apple|There are many apples", 2) }}

配置文件的配置选项中。您可以自由修改此值以满足您的应用程序的需求。

在您的案件中应该是

config/app.php
您可能会在文档中找到更多详细信息。


0
投票
如果您在资源/lang中有一个带有多元化的ru.json文件:

locale
即使Laravel的文档表明应该这样做,它也行不通。
对我有用的解决方案是:

Modifyru.json:而不是“年|年”,而是使用“年”作为关键:

'locale' => 'fr',
以正确的英语复数格式以相同目录中的同一目录中创建一个en.json文件:

{ "Year|Years": "{1} Год|[2,4] Года|[5,*] Лет" } blade中的trans_choice():


0
投票

使用JSON语言文件确保Laravel正确处理多元化。


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.