我的Laravel网站位于english
。现在,我想让它与dutch
兼容。
我的主页很小,只包含3个句子。
<h1 class="heading">My business WiFi</h1>
<p>Management via this page both your <a>private WiFi</a> as your <a>guest wifi</a>.</p>
<p>Or follow the use of your WiFi via our <a>statistics</a>.</p>
将呈现此
My business WiFi
Management via this page both your private WiFi as your guest wifi.
Or follow the use of your WiFi via our statistics.
我已安装此laravel package 并完成了该回购的所有安装步骤。
我的路线,服务提供商,别名,中间件,资源/ lang /和laravellocalization.php都已准备就绪。
routes.php文件
Route::group(['prefix' => LaravelLocalization::setLocale(), 'middleware' => [ 'localeSessionRedirect', 'localizationRedirect','localize'] ], function(){
Route::get('/homepage', 'homepageController@index');
});
更新提供商数组
Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider::class
更新别名
'LaravelLocalization' => Mcamara\LaravelLocalization\Facades\LaravelLocalization::class
更新$ routeMiddleware
'localize' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRoutes::class,
'localizationRedirect' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRedirectFilter::class,
'localeSessionRedirect' => \Mcamara\LaravelLocalization\Middleware\LocaleSessionRedirect::class
/config/laravellocalization.php
return [
'supportedLocales' => [
'en' => ['name' => 'English','script' => 'Latn', 'native' => 'English'],
'nl' => ['name' => 'Dutch','script' => 'Latn', 'native' => 'Nederlands'],
],
'useAcceptLanguageHeader' => true,
'hideDefaultLocaleInURL' => false,
];
结果
当我访问时
http://site/nl/homepage
OR
http://site/en/homepage
http://site/homepage
我在English
中看到了我的网站加载情况,这很好。
当我访问未声明的其他网站时,它会返回404
。
中国
Ex. http://site/zh/homepage
哪个好,因为它按预期工作。
但我的主要目标是
当我登陆时,我想在dutch
看到我的网站
我应该在 dutch
中看到以下3个句子My business WiFi
Management via this page both your private WiFi as your guest wifi.
Or follow the use of your WiFi via our statistics.
这是我需要声明/resources/lang/nl/texts.php
吗?
或者
这是通过库/插件/框架可以实现的吗?
如何实现这一目标?
我现在正在接受任何建议。
任何提示/建议/帮助都将非常感谢!
答案 0 :(得分:1)
您需要创建适当的文件并用翻译的字符串(或数组)填充它们。如果找不到任何翻译的字符串,Laravel将回退到config('fallback_locale')
。
使用
// resources/lang/nl/texts.php
<?php return [
'heading' => 'Mijn zakelijke WiFi',
'line1' => 'Beheer via deze pagina zowel uw <a>private WiFi</a> als uw <a>gast wifi</a>.',
'line2' => 'Of volg het gebruik van uw WiFi via onze <a>statistieken</a>.'
];
和
// resources/lang/en/texts.php
<?php return [
'heading' => 'My business WiFi',
'line1' => 'Management via this page both your <a>private WiFi</a> as your <a>guest wifi</a>.',
'line2' => 'Or follow the use of your WiFi via our <a>statistics</a>.'
];
您可以通过翻译函数(例如trans('texts.heading')
,trans_choice('texts.heading', $count)
或特殊的Blade指令@lang('texts.heading')
您的观点可能如下所示:
<h1 class="heading">@lang('texts.heading')</h1>
<p>{!! trans('texts.line1') !!}</p>
<p>{!! trans('texts.line2') !!}</p>
由于您的翻译字符串中有HTML标记,因此您必须使用{!! ... !!}
来取消它们。
为了减轻翻译的痛苦,Barry vd有Laravel Translation Manager个很棒的插件。霍伊维尔。您可以让用户修改这些字符串并自动捕获未翻译的字符串。
一般情况下,如果您需要高质量的翻译,我不会推荐自动翻译服务。如果你不这样做,那就考虑一下javascript库。