Лучшая практика для перевода сайта Laravel на другой язык

У меня есть сайт 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.

Я установил это упаковка
и сделал все шаги по установке из этого репо.

Мои маршруты, поставщик услуг, псевдоним, промежуточное программное обеспечение, resources / 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

ИЛИ ЖЕ

http://site/en/homepage
http://site/homepage

Я видел, как загружается мой сайт English и это хорошо.

Это возвращение 404 когда я посещаю какой-то другой сайт, который не объявлен.

Китай

Ex. http://site/zh/homepage

Что хорошо, потому что работает как задумано.


Но моя главная цель

Я хочу увидеть мой сайт в dutch когда я приземляюсь на

Http: // сайт / нл / домашняя страница

Я должен увидеть это 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 ?

Или же

Это то, что может быть достигнуто через библиотеку / плагин / Framework?

Как можно было бы реализовать это?


Я открываюсь для любых предложений в данный момент.

Будем очень благодарны за любые советы / предложения / помощь по этому вопросу!

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-разметка, вам придется удалить их, используя {!! ... !!},

Чтобы облегчить боль перевода, есть Менеджер по переводу Laravel, отличный плагин от Барри vd. Heuvel. Вы можете позволить своим пользователям изменять эти строки и автоматически перехватывать непереведенную строку.

В целом, я не буду рекомендовать услуги автоматического перевода, если вам требуется качественный перевод. Если вы этого не сделаете, просто подумайте о библиотеке JavaScript для этого.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]