Laravel to potężne narzędzie, które umożliwia programistom tworzenie wielojęzycznych stron internetowych. Wdrażając lokalizację stron internetowych w swoich Laravel , możesz zapewnić spersonalizowane doświadczenie użytkownika odwiedzającym o różnym pochodzeniu językowym, co ostatecznie zwiększy zasięg i zaangażowanie użytkowników.
Przeprowadzimy Cię przez proces wdrażania lokalizacji w Twojej aplikacji Laravel i przedstawimy narzędzie, które może uprościć i usprawnić Twoje działania lokalizacyjne!
Dlaczego warto zlokalizować witrynę Laravel ?

Oto kilka ważnych powodów, dla których warto zlokalizować swoją witrynę Laravel .
- Dotrzyj do globalnej publiczności: Lokalizując swoją Laravel , możesz zwiększyć zasięg swojej aplikacji, docierając do odbiorców z całego świata. Dzięki temu użytkownicy z różnych krajów i posługujący się różnymi językami będą mogli zrozumieć Twoje treści i wchodzić z nimi w interakcję.
- Poprawia doświadczenia użytkownika: Lokalizacja pozwala użytkownikom na interakcję z aplikacją w ich ojczystym języku, co znacząco poprawia doświadczenia użytkownika. Może to zwiększyć wskaźniki zaangażowania, zmniejszyć współczynnik odrzuceń i zwiększyć liczbę konwersji.
- Przewaga konkurencyjna: Na konkurencyjnym rynku globalnym oferowanie aplikacji w wielu językach może zapewnić znaczącą przewagę nad konkurencją. Świadczy to o Twoim zaangażowaniu na rynkach międzynarodowych i może pomóc Ci skuteczniej wchodzić na nowe rynki.
- Poprawia SEO: Dobrze zlokalizowane strony internetowe zazwyczaj lepiej pozycjonują się w wyszukiwarkach dla wyszukiwań w danym języku. Dzięki tłumaczeniom wielojęzycznym może to zwiększyć ruch na blogu i widoczność w sieci na różnych rynkach.
Wymagania dotyczące wielojęzycznej lokalizacji Laravel

Wdrażając lokalizację wielojęzyczną w Laravel, należy wziąć pod uwagę kilka wymagań i kroków.
- Aby korzystać z najnowszych funkcji lokalizacji, upewnij się, że używasz najnowszej wersji Laravel (np. wersji 10.x).
- Podstawowa znajomość języka PHP i frameworka Laravel będzie pomocna w procesie implementacji.
- Skonfiguruj lokalne środowisko programistyczne lub serwer obsługujący Laravel, w tym serwer WWW i bazę danych.
- Określ języki, które Twoja aplikacja będzie obsługiwać od samego początku.
Proste tłumaczenia Laravel

Po zapoznaniu się z wymaganiami, które muszą zostać spełnione przed przetłumaczeniem aplikacji lub strony internetowej na Laravel , przedstawimy kilka kroków ułatwiających tłumaczenie Laravel .
Aby to zrobić, otwórz plik widoku, który chcesz zlokalizować, na przykład resources/views/welcome.blade.php. Następnie zastąp tag body poniższym kodem.
Welcome to Linguise website!
Jak widać, powyższy tekst jest obecnie napisany bezpośrednio w kodzie. Jest to mniej wydajne i utrudnia tłumaczenie stron internetowych na różne języki (internacjonalizacja).
Uelastycznimy powyższy tekst, aby można go było łatwo dostosować do różnych języków. Laravel oferuje bardzo przydatną funkcję w tym zakresie – system lokalizacji. Na początek zastąp istniejący tekst poniższym kodem.
{{ __('Welcome to Linguise website!') }}
Laravel domyślnie wyświetli powyższy tekst i wyszuka tłumaczenie, jeśli użytkownik wybierze język inny niż angielski. W takim przypadku angielski będzie domyślnym językiem aplikacji.
Konfigurowanie ustawień regionalnych w wielojęzycznej witrynie Laravel

Ale w jaki sposób Laravel określa aktualny język lub rozpoznaje, które języki są dostępne w aplikacji? Sprawdza ustawienia regionalne w pliku config/app.php. Otwórz ten plik i poszukaj następujących dwóch kluczy.
/*
|--------------------------------------------------------------------------
| Application Locale Configuration
|--------------------------------------------------------------------------
|
| The application locale determines the default locale that will be used
| by the translation service provider. You are free to set this value
| to any of the locales which will be supported by the application.
|
*/
'locale' => 'en',
/*
|--------------------------------------------------------------------------
| Application Fallback Locale
|--------------------------------------------------------------------------
|
| The fallback locale determines the locale to use when the current one
| is not available. You may change the value to correspond to any of
| the language folders that are provided through your application.
|
*/
'fallback_locale' => 'en',
Wyjaśnienie nad kluczami powinno być jasne. Podsumowując, klucz locale przechowuje domyślną lokalizację dla Twojej aplikacji (jeśli w kodzie nie określono innej lokalizacji). Klucz fallback_locale jest aktywowany, jeśli w aplikacji zostanie zażądana nieistniejąca lokalizacja.
Teraz dodajmy do tego pliku nowy klucz, aby uzyskać listę wszystkich obsługiwanych ustawień regionalnych.
/*
|--------------------------------------------------------------------------
| Available locales
|--------------------------------------------------------------------------
|
| List all locales that your application works with
|
*/
'available_locales' => [
'English' => 'en',
'Italian' => 'it',
'French' => 'fr',
],
Do tej pory wypróbowaliśmy Laravel Web obsługujący trzy języki: angielski, włoski i francuski.
Przegląd plików tłumaczeń Laravel

W Laravel, podobnie jak w wielu innych frameworkach, tłumaczenia dla różnych języków są przechowywane w oddzielnych plikach. Do organizacji tych plików tłumaczeń stosuje się dwie metody.
Starsza metoda przechowuje pliki w następującej strukturze: resources/lang/{en,fr,it}/{myfile.php}. Nowsza metoda używa plików JSON, takich jak resources/lang/{fr.json, it.json}. Ten artykuł skupi się na nowszej metodzie, choć zasady są podobne w przypadku starszej metody, pomijając różnice w sposobie nazywania kluczy tłumaczeniowych i uzyskiwania do nich dostępu.
W przypadku języków z wariantami regionalnymi należy nazwać katalogi lub pliki językowe zgodnie ze standardem ISO 15897. Na przykład, brytyjski angielski powinien nazywać się en_GB zamiast en-gb.
Informacje ogólne
W Laravel, podobnie jak w wielu frameworkach, tłumaczenia dla różnych języków są przechowywane w osobnych plikach. Istnieją dwie główne metody porządkowania plików tłumaczeń Laravel .
- Tradycyjne podejście polega na przechowywaniu plików w ścieżce: resources/lang/{en,fr,it}/{myfile.php}.
- Nowoczesne podejście wykorzystuje pliki resources/lang/{fr.json, it.json}.
W tym artykule skupimy się na drugiej metodzie, choć przedstawione w niej zasady można stosować do obu (choć różnią się sposobem nazywania kluczy tłumaczeń i uzyskiwania do nich dostępu).
W przypadku języków różniących się w zależności od regionu zaleca się nadawanie katalogom/plikom językowym nazw zgodnych ze standardami ISO 15897. Na przykład, brytyjski angielski będzie oznaczany jako en_GB, a nie en-gb.
Tworzenie plików tłumaczeń Laravel
Po skonfigurowaniu ustawień regionalnych dla naszej aplikacji możemy przystąpić do tłumaczenia domyślnego komunikatu powitalnego.
Zacznijmy od utworzenia nowych plików lokalizacyjnych w formacie JSON w katalogu resources/lang. Najpierw utworzymy plik resources/lang/it.json i wypełnimy go odpowiednimi tłumaczeniami.
{
"Welcome to Linguise website!": "Benvenuti nel sito web di Linguise!"
}
Następnie dodaj plik resources/lang/fr.json.
{
"Welcome to Linguise website!": "Bienvenue sur le site de Linguise"
}
Jak widać, konsekwentnie odwołujemy się do domyślnego komunikatu z pliku welcome.blade.php ({{ __('Witamy na stronie Linguise !') }}). Nie ma potrzeby tworzenia pliku en.json, ponieważ Laravel automatycznie rozpoznaje, że domyślne komunikaty są w języku angielskim.
Ustawianie przełącznika języka w wielojęzycznej aplikacji Laravel

Co więcej, Laravel nie jest jeszcze skonfigurowany do nadpisywania języka lokalnego, więc na razie zajmiemy się tłumaczeniem bezpośrednio w trasie. Zmodyfikuj domyślną trasę powitalną w pliku routes/web.php w następujący sposób.
Route::get('/{locale?}', function ($locale = null) {
if (isset($locale) && in_array($locale, config('app.available_locales'))) {
app()->setLocale($locale);
}
return view('welcome');
});
W tym przypadku przechwytujemy opcjonalny parametr GET dotyczący ustawień regionalnych i na jego podstawie ustawiamy bieżące ustawienia regionalne (jeśli żądane ustawienia regionalne są obsługiwane).
Teraz możesz odwiedzić swoją witrynę i dodać dowolny z obsługiwanych języków jako pierwszy segment adresu URL. Na przykład, przejście do localhost/it lub localhost/fr spowoduje wyświetlenie zlokalizowanej treści. Jeśli nie określisz lokalizacji lub wybierzesz taką, która nie jest obsługiwana, Laravel domyślnie ustawi język angielski (en).
Oprogramowanie pośredniczące do lokalizacji dla Laravel
Umieszczenie ustawień regionalnych w każdym adresie URL może nie być idealnym rozwiązaniem i może zaburzyć atrakcyjność wizualną witryny. Aby temu zaradzić, skonfigurujemy przełącznik języka i wykorzystamy sesję użytkownika do wyświetlania przetłumaczonej treści. Możesz utworzyć nowe oprogramowanie pośredniczące w pliku app/Http/Middleware/Localization.php lub wygenerować je, uruchamiając polecenie artisan make:middleware Localization.
Następnie dodaj poniższy kod.
To oprogramowanie pośredniczące każe Laravel używać lokalizacji wybranej przez użytkownika, jeśli taka opcja jest obecna w sesji.
Ponieważ chcemy, aby operacja była uruchamiana przy każdym żądaniu, dodajmy ją do domyślnego stosu oprogramowania pośredniczącego w pliku app/Http/Kernel.php dla grupy oprogramowania pośredniczącego w sieci Web.
/**
* The application's route middleware groups.
*
* @var array>
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\Localization::class, // <--- add this
],
Modyfikowanie tras
Następnie zdefiniuj trasę, aby zmienić ustawienia regionalne w pliku routes/web.php. Używamy tutaj trasy zamykającej, ale jeśli wolisz, możesz umieścić ten sam kod w kontrolerze.
Route::get('language/{locale}', function ($locale) {
app()->setLocale($locale);
session()->put('locale', $locale);
return redirect()->back();
});
Dodatkowo usuń przełączanie ustawień regionalnych, które zostało wcześniej dodane do domyślnej trasy powitalnej. Twoja trasa główna powinna teraz wyglądać tak.
Route::get('/', function () {
return view('welcome');
});
Po wykonaniu tej czynności użytkownik może zmienić aktywny język tylko poprzez odwiedzenie localhost/language/{locale}. Wybrana lokalizacja zostanie zapisana w sesji, a użytkownicy zostaną przekierowani z powrotem do poprzedniej strony (za pomocą oprogramowania pośredniczącego lokalizacji).
Aby to sprawdzić, przejdź do localhost/language/it (zakładając, że plik cookie sesji jest aktywny w Twojej przeglądarce). Powinieneś zobaczyć przetłumaczoną treść. Możesz poruszać się po witrynie lub odświeżyć stronę, a wybrany język pozostanie aktywny.
Implementacja przełącznika języka
Teraz musimy udostępnić użytkownikowi klikalną opcję zmiany języka Laravel Web, zamiast wymagać od niego ręcznego wpisywania kodów lokalizacji w adresie URL. Aby to osiągnąć, utwórzmy prosty przełącznik języka. Dodaj nowy plik w katalogu resources/views/partials/language_switcher.blade.php i wklej poniższy kod.
@foreach($available_locales as $locale_name => $available_locale)
@if($available_locale === $current_locale)
{{ $locale_name }}
@else
{{ $locale_name }}
@endif
@endforeach
Aby dodać nowo utworzony przełącznik języka do widoku powitalnego, wystarczy dodać poniższy wiersz do pliku welcome.blade.php w miejscu, w którym ma się pojawić przełącznik.
@include('partials/language_switcher')
{{ __('Welcome to our website!') }}
Otwórz plik app/Providers/AppServiceProvider.php i dodaj następujący kod w metodzie boot(), aby udostępnić bieżące ustawienia regionalne wszystkim widokom, gdy używany jest przełącznik języka
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
view()->composer('partials.language_switcher', function ($view) {
$view->with('current_locale', app()->getLocale());
$view->with('available_locales', config('app.available_locales'));
});
}
Zaawansowane funkcje tłumaczeń w Laravel PHP

W tej dyskusji zajmiemy się pozostałymi komponentami lokalizacji, a mianowicie datą, liczbą i walutą. Oto kroki.
Lokalizowane daty w Laravel
Obsługa dat i godzin jest kluczowa w procesie lokalizacji. Laravel używa Carbon do zarządzania datami i godzinami. Oto jak możesz użyć Carbon do wyświetlania zlokalizowanej daty.
settings(
[
'locale' => app()->getLocale(),
]
);
// LL is macro placeholder for MMMM D, YYYY (you could write same as dddd, MMMM D, YYYY)
$dateMessage = $today->isoFormat('dddd, LL');
return view('welcome', [
'date_message' => $dateMessage
]);
});
Ten kod ustawia ustawienia regionalne Carbon na podstawie bieżących ustawień regionalnych aplikacji i odpowiednio formatuje datę.
Aby wyświetlić zlokalizowaną datę w widoku:
{{ __('Welcome to our website, :Name', ['name' => ‘Johb’]) }}
{{ trans_choice('{0} There :form :count apples|{1} There :form just :count apple|[2,19] There :form :count apples', 1, ['form' => 'is']) }}
{{ $date_message }}
Formatowanie liczb i walut
W różnych krajach obowiązują różne sposoby formatowania liczb. Na przykład:.
- Francja → 123 123,12
- Niemcy → 123.123,12
- Japonia → 123 123
Aby uwzględnić te różnice w aplikacji Laravel , możesz użyć NumberFormatter.
Można również zapisać liczby w określonym języku.
Oto waluty. Dla ustawień regionalnych dla języka francuskiego (`fr`) waluta będzie wyświetlana w euro (€), a dla ustawień regionalnych dla języka amerykańskiego (`en_US`) w dolarach amerykańskich ($).
Alternatywne rozwiązanie: lokalizacja Laravel z Linguise

Po zapoznaniu się z krokami lokalizacji Laravel opisanymi w artykule, proces ten obejmuje wiele kroków wymagających od użytkowników dogłębnej znajomości kodu programu Laravel .
Z pewnością może to stanowić wyzwanie dla początkujących użytkowników, którzy chcą lokalizować swoje aplikacje. Dlatego potrzebne jest bardziej innowacyjne rozwiązanie, które umożliwia szybkie tłumaczenie, obsługuje lokalizację i wymaga jedynie kilku prostych kroków do wdrożenia.
Jednym z obiecujących rozwiązań jest Linguise. Linguise oferuje łatwiejsze i bardziej efektywne podejście do lokalizacji Laravel bez konieczności dogłębnej znajomości kodowania. Kluczowe funkcje Linguise obejmują:.
- Łatwa integracja z Laravel
- Dostosuj przełącznik języka bez kodowania
- Tłumaczenie obrazu
- Edytor na żywo umożliwiający dostosowywanie tłumaczeń do lokalnego kontekstu
- Tłumaczenie dynamiczne dla treści generowanych dynamicznie
- Optymalizacja SEO dla wersji wielojęzycznych
Instalacja Linguise na stronach Laravel jest również prosta. Oto krótkie wyjaśnienie Linguise
- Załóż konto Linguise (skorzystaj z 30-dniowego bezpłatnego okresu próbnego)
- Zarejestruj swoją domenę internetową Laravel i wprowadź kilka informacji. Otrzymasz klucz API.
- Prześlij i podłącz skrypt tłumaczenia Linguise do otrzymanego folderu Laravel .
- Skonfiguruj adresy URL języków w pliku htaccess.
- Umieść skrypt przełączający język w nagłówku kodu HTML.
- Dostosuj przełącznik języka według potrzeb
- Przełącznik języka pojawi się na stronie Laravel , a treść będzie mogła zostać przetłumaczona automatycznie.
Jak? W Linguisewystarczy się zarejestrować i aktywować, a pojawi się przełącznik języka. Następnie możesz swobodnie lokalizować, na przykład za pomocą edytora na żywo, tłumaczyć multimedia, obrazy itp.
Wniosek
Lokalizacja Laravel to potężna funkcja, która umożliwia programistom tworzenie wielojęzycznych stron internetowych i aplikacji. Jak widzieliśmy, wbudowany proces lokalizacji Laravel obejmuje wiele kroków i wymaga dobrej znajomości frameworka. Może to być trudne dla początkujących lub osób poszukujących szybszego rozwiązania.
Narzędzia takie jak Linguise stanowią innowacyjną alternatywę dla osób poszukujących bardziej uproszczonego podejścia. Rozwiązania te oferują szybkie możliwości tłumaczenia, łatwą integrację i przyjazne dla użytkownika funkcje, takie jak konfigurowalne przełączniki językowe i tłumaczenie obrazów. Załóż konto Linguise Linguise korzystaj z naszej funkcji lokalizacji w Laravel !



