我已经生成了默认的Laravel模块。
在模块刀片中的任何地方,我都可以看到双下划线__函数,假设翻译几乎在那里。
例如
<li>
<a class="nav-link" href="{{ route('login') }}">
{{ __('Login') }}
</a>
</li>我的问题是:翻译文件在哪里?如果我创造了一个,我应该把它放在哪里?
我的意思是,如果我去Laravel文档站点,就会有这样的例子
echo __('messages.welcome');有解释
例如,让我们从
welcome语言文件中检索resources/lang/messages.php翻译字符串:
但在我的示例中,没有指定文件名。它只是案文:
__('Login')问题是:如果没有指定文件,语言文件将使用什么?有违约吗?它在哪里?它是在哪里设置的?
发布于 2018-08-17 00:40:17
Laravel博士有关于json文件的说明。是的,它不是php,而是json文件。例如:
resources/lang/es.json内容
{
"I love programming.": "Me encanta programar."
}用法
echo __('I love programming.');发布于 2018-08-15 08:24:21
所有的语言翻译文件都应该存储在PROJECT_DIRECTORY/resources/lang中。当你和工匠制作八月时,它会自动创建它。但是如果你找不到,那就手动创建。
(1)
有一种方法可以使用翻译字符串作为文档的键。在此方法中,您可以使用本地名称在PROJECT_DIRECTORY/resources/lang中创建JSON文件,例如,对于西班牙语名称it es.json或德语de.json,它取决于您的本地名称。
现在创建一个JSON对象,并使用您在刀片中使用的字符串名称放置翻译:
{
"Login": "Welcome to Login Page!",
"Logout": "You are logged out!",
}然后使用PHP双下划线方法调用刀片中的翻译:
{{ __('Login') }}(2)
在auth.php目录中创建一个名为PROJECT_DIRECTORY/resources/lang的文件。然后在上面放置一个简单的php数组:
<?php
return [
/*
Translations go here...
*/
];`然后将翻译字符串添加到其中:
<?php
return [
'Login' => 'Welcome to Login Page!',
'Logout' => 'You are logged out!',
];`现在,在刀片模板中,只需这样做:
<li>
<a class="nav-link" href="{{ route('login') }}">
{{ __('auth.Login') }}
</a>
</li>发布于 2020-08-28 13:55:22
看起来没有默认的__('Login'),__('Register'),.的翻译文件.由laravel提供。
默认情况下,如果没有为__('foobar')找到翻译,laravel只使用括号中的字符串。因此,在这里,假设没有翻译文件,__('Login')被扩展到'Login'。
https://stackoverflow.com/questions/51851907
复制相似问题