Yev*_*yev 6 translation localization laravel-5
我已经生成了默认的 Laravel auth 模块。
在模块的刀片中,我看到双下划线__功能,假设翻译几乎就在那里。
例如
<li>
<a class="nav-link" href="{{ route('login') }}">
{{ __('Login') }}
</a>
</li>
Run Code Online (Sandbox Code Playgroud)
我的问题:翻译文件在哪里?如果我创建一个,我应该把它放在哪里?
我的意思是,如果我去 Laravel 文档站点,就会有这样的例子
echo __('messages.welcome');
Run Code Online (Sandbox Code Playgroud)
有解释
例如,让我们
welcome从resources/lang/messages.php语言文件中检索翻译字符串:
但是在我上面的例子中没有指定文件名。它只是文本:
__('Login')
Run Code Online (Sandbox Code Playgroud)
问题是:如果没有指定文件,语言文件是用来做什么的?有没有默认?它坐在哪里?是在哪里设置的?
小智 14
您应该自己添加翻译文件。__('Login')表示字符串已准备好翻译,您可以在翻译文件中指向它。
编辑:
Laravel 中的所有语言翻译文件都应该存储在PROJECT_DIRECTORY/resources/lang. 当您使用 artisan 进行 Auth 时,它会自动创建它。但是如果你找不到它,那么手动创建。
例如:
auth.php在PROJECT_DIRECTORY/resources/lang目录中创建一个名为的文件。然后在上面放一个简单的 php 数组:
<?php
return [
/*
Translations go here...
*/
];`
Run Code Online (Sandbox Code Playgroud)
然后将您的翻译字符串添加到其中:
<?php
return [
'Login' => 'Welcome to Login Page!',
'Logout' => 'You are logged out!',
];`
Run Code Online (Sandbox Code Playgroud)
现在在刀片模板中只需执行以下操作:
<li>
<a class="nav-link" href="{{ route('login') }}">
{{ __('auth.Login') }}
</a>
</li>
Run Code Online (Sandbox Code Playgroud)
但是还有第二种方法可以使用翻译字符串作为文档的键。在此方法中,您可以PROJECT_DIRECTORY/resources/lang使用本地名称创建一个 JSON 文件,例如西班牙语名称 ites.json或 German de.json,这取决于您的本地名称。
现在创建一个 JSON 对象并将翻译放入您在刀片中使用的字符串名称:
{
"Login": "Welcome to Login Page!",
"Logout": "You are logged out!",
}
Run Code Online (Sandbox Code Playgroud)
然后使用 PHP 双下划线方法在刀片中调用您的翻译:
{{ __('Login') }}
Run Code Online (Sandbox Code Playgroud)
我希望解释更清楚。随时提出任何问题。
Laravel 文档 有关于 json 文件的说明。是的,它不是 php,而是 json 文件。例子是:
resources/lang/es.json
Run Code Online (Sandbox Code Playgroud)
内容
{
"I love programming.": "Me encanta programar."
}
Run Code Online (Sandbox Code Playgroud)
用法
echo __('I love programming.');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8569 次 |
| 最近记录: |