Laravel to potężne narzędzie, które umożliwia programistom tworzenie wielojęzycznych stron internetowych. Wdrażając lokalizację internetową w swoich Laravel , możesz zapewnić spersonalizowaną obsługę użytkownikom z różnych środowisk językowych, ostatecznie zwiększając swój zasięg i poprawiając 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 wysiłki lokalizacyjne!
Dlaczego warto zlokalizować stronę Laravel ?
Oto kilka ważnych powodów, dla których warto zlokalizować swoją witrynę Laravel .
- Dotrzyj do odbiorców na całym świecie: lokalizując swoją Laravel , możesz rozszerzyć zasięg swojej aplikacji na odbiorców międzynarodowych. Dzięki temu użytkownicy z różnych krajów i języków mogą zrozumieć Twoje treści i wchodzić z nimi w interakcję.
- Poprawia komfort użytkowania: Lokalizacja umożliwia użytkownikom interakcję z aplikacją w ich ojczystym języku, co znacznie poprawia komfort użytkowania. Może to zwiększyć współczynnik 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ć znaczną przewagę nad konkurencją. Pokazuje Twoje zaangażowanie na rynkach międzynarodowych i może pomóc Ci skuteczniej wejść na nowe rynki.
- Poprawia SEO: Dobrze zlokalizowane witryny internetowe mają tendencję do lepszej pozycji w wyszukiwarkach w przypadku wyszukiwań w określonym języku. Może to zwiększyć ruch na Twoim blogu i widoczność w Internecie na różnych rynkach dzięki tłumaczeniu wielojęzycznemu.
Wymagania dla wielojęzycznej lokalizacji Laravel
Istnieje kilka wymagań i kroków, które należy wziąć pod uwagę podczas wdrażania lokalizacji wielojęzycznej w Laravel .
- Aby uzyskać najnowsze funkcje lokalizacyjne, upewnij się, że używasz najnowszej wersji Laravel (np. wersji 10.x).
- W procesie wdrożenia pomocna będzie podstawowa znajomość PHP i frameworku Laravel .
- Skonfiguruj lokalne środowisko programistyczne lub serwer obsługujący Laravel , w tym serwer WWW i bazę danych.
- Od początku określ języki, które będzie obsługiwała Twoja aplikacja.
Proste tłumaczenia Laravel
Po zrozumieniu, jakie wymagania należy spełnić przed tłumaczeniem aplikacji lub sieci Laravel , przedstawimy kilka kroków umożliwiających proste 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 znacznik treści następującym kodem.
Welcome to Linguise website!
Jak widać, powyższy tekst jest obecnie zapisany bezpośrednio w kodzie. Jest to mniej wydajne i utrudnia tłumaczenie stron internetowych na różne języki (internacjonalizacja).
Zamierzamy uelastycznić powyższy tekst, aby można go było łatwo dostosować do różnych języków. Laravel zapewnia w tym celu bardzo przydatną funkcję; systemu lokalizacji. W pierwszym kroku zastąp istniejący tekst następującym kodem.
{{ __('Welcome to Linguise website!') }}
Laravel domyślnie wyświetli powyższy tekst i sprawdzi tłumaczenie, jeśli użytkownik wybierze język inny niż angielski. W takim przypadku domyślnym językiem aplikacji będzie język angielski.
Konfigurowanie ustawień regionalnych w wielojęzycznej sieci Laravel
Ale w jaki sposób Laravel określa aktualny język lub wie, jakie 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 klawiszami powinno być jasne. Podsumowując, klucz ustawień regionalnych przechowuje domyślne ustawienia regionalne dla Twojej aplikacji (jeśli w kodzie nie określono innych ustawień regionalnych). Fallback_locale jest aktywowane, jeśli w aplikacji zażądano nieistniejących ustawień regionalnych.
Dodajmy teraz nowy klucz do tego pliku, aby wyświetlić listę wszystkich obsługiwanych ustawień regionalnych.
/*
|--------------------------------------------------------------------------
| Available locales
|--------------------------------------------------------------------------
|
| List all locales that your application works with
|
*/
'available_locales' => [
'English' => 'en',
'Italian' => 'it',
'French' => 'fr',
],
W tym momencie wypróbowaliśmy Laravel Web obsługującą trzy języki, a mianowicie angielski, włoski i francuski.
Przegląd plików tłumaczeń Laravel
W Laravel , podobnie jak w wielu innych frameworkach, tłumaczenia na różne języki przechowywane są w oddzielnych plikach. Do organizowania plików tłumaczeń stosowane są dwie metody.
Starsza metoda przechowuje pliki w następującej strukturze: Resources/lang/{en,fr,it}/{myfile.php}. Nowsza metoda wykorzystuje pliki JSON, takie jak Resources/lang/{fr.json, it.json}. W tym artykule skupimy się na nowszej metodzie, chociaż zasady są podobne w przypadku starszej metody, poza różnicami w sposobie nazywania kluczy tłumaczeniowych i uzyskiwaniu do nich dostępu.
W przypadku języków różniących się regionalnie katalogi lub pliki językowe należy nazwać zgodnie z normą ISO 15897. Na przykład brytyjski angielski miałby nazwę en_GB zamiast en-gb.
Informacje ogólne
W Laravel , podobnie jak w wielu frameworkach, tłumaczenia na różne języki przechowywane są w oddzielnych plikach. Istnieją dwie podstawowe metody porządkowania plików tłumaczeń Laravel .
- Starsze 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 skoncentrujemy się na drugiej metodzie, chociaż zasady mają zastosowanie do obu (z różnicami w sposobie nazywania kluczy tłumaczeniowych i uzyskiwaniu do nich dostępu).
W przypadku języków różniących się w zależności od regionu zaleca się nadawanie nazw katalogom/plikom językowym zgodnie ze standardami ISO 15897. Na przykład brytyjski angielski będzie oznaczany jako en_GB, a nie en-gb.
Tworzenie plików tłumaczeniowych Laravel
Po skonfigurowaniu ustawień regionalnych dla naszej aplikacji możemy przystąpić do tłumaczenia naszej domyślnej wiadomości powitalnej.
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ślnej wiadomości z pliku Welcome.blade.php ({{ __('Witamy w witrynie Linguise !') }}). Nie ma potrzeby tworzenia pliku en.json, ponieważ Laravel automatycznie rozpoznaje, że domyślne wiadomości są w języku angielskim.
Ustawianie przełącznika języka w wielojęzycznej aplikacji Laravel
Co więcej, Laravel nie jest jeszcze skonfigurowany do zastępowania języka lokalnego, więc na razie zajmiemy się tłumaczeniem bezpośrednio w ramach trasy. Zmodyfikuj domyślną trasę powitalną w pliku Routes/web.php w ten 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 ustawień regionalnych i na jego podstawie ustawiamy bieżące ustawienia regionalne (jeśli obsługiwane są żądane ustawienia regionalne).
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 zawartości. Jeśli nie określisz ustawień regionalnych lub wybierzesz takie, które nie jest obsługiwane, Laravel domyślnie ustawi język angielski (en).
Oprogramowanie pośredniczące w lokalizacji dla Laravel
Uwzględnianie ustawień regionalnych w każdym adresie URL może nie być idealnym rozwiązaniem i może zaburzyć atrakcyjność wizualną witryny. Aby rozwiązać ten problem, skonfigurujemy przełącznik języka i wykorzystamy sesję użytkownika do wyświetlenia przetłumaczonej treści. Możesz utworzyć nowe oprogramowanie pośrednie w pliku app/Http/Middleware/Localization.php lub wygenerować je, uruchamiając polecenie rzemieślnika make:middleware Localization.
Następnie dodaj w środku następujący kod.
To oprogramowanie pośredniczące pokieruje Laravel do użycia lokalizacji wybranej przez użytkownika, jeśli ta opcja jest dostępna w sesji.
Ponieważ operacja musi być wykonywana przy każdym żądaniu, dodaj ją do domyślnego stosu oprogramowania pośredniego w pliku app/Http/Kernel.php dla grupy oprogramowania pośredniego 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ę do zmiany ustawień regionalnych w pliku Routes/web.php. Używamy tutaj trasy zamknięcia, 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();
});
Ponadto usuń zmianę ustawień regionalnych, która została wcześniej dodana 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 jedynie odwiedzając localhost/language/{locale}. Wybrane ustawienia regionalne zostaną zapisane w sesji, a użytkownicy zostaną przekierowani z powrotem na poprzednią stronę (zgodnie z obsługą oprogramowania pośredniczącego lokalizacji).
Aby to przetestować, przejdź do localhost/language/it (zakładając, że plik cookie sesji jest aktywny w Twojej przeglądarce) i powinieneś zobaczyć przetłumaczoną treść. Możesz poruszać się po witrynie lub odświeżyć stronę, a wybrany język pozostanie ważny.
Implementacja przełącznika języka
Teraz musimy zapewnić użytkownikowi klikalną opcję zmiany przełącznika języka Laravel web, zamiast wymagać od niego ręcznego wprowadzania kodów regionalnych w adresie URL. Aby to osiągnąć, utwórz prosty przełącznik języków. Dodaj nowy plik pod adresem Resources/views/partials/language_switcher.blade.php i wstaw następujący kod.
@foreach($available_locales as $locale_name => $available_locale)
@if($available_locale === $current_locale)
{{ $locale_name }}
@else
{{ $locale_name }}
@endif
@endforeach
Aby uwzględnić nowo utworzony przełącznik języka w widoku „powitalnym”, po prostu dodaj następujący wiersz do pliku powitalnego.blade.php, w którym chcesz, aby przełącznik się pojawił.
@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łumaczenia w Laravel PHP
W tej dyskusji zajmiemy się następnie innymi składnikami lokalizacji, a mianowicie datą, liczbą i walutą. Oto kroki.
Zlokalizowane daty w Laravel
Obsługa dat i godzin ma kluczowe znaczenie w procesie lokalizacji. Laravel wykorzystuje Carbon do zarządzania datami i godzinami. Oto, jak możesz użyć Carbon do wyświetlenia 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 → 123123
Aby uwzględnić te różnice w aplikacji Laravel , możesz użyć NumberFormatter.
Możesz także przeliterować liczby w określonym języku.
Oto waluty. W przypadku ustawień regionalnych francuskich („fr”) waluta będzie wyświetlana w euro (€), natomiast w przypadku ustawień regionalnych amerykańskich („en_US”) będzie wyświetlana w dolarach amerykańskich ($).
Alternatywne rozwiązanie Lokalizacja Laravel za pomocą Linguise
Po zrozumieniu etapów lokalizacji Laravel opisanych w artykule, proces ten obejmuje wiele kroków, które wymagają od użytkowników dogłębnego zrozumienia kodu programu Laravel .
Z pewnością może to utrudnić początkującym użytkownikom chcącym zlokalizować swoje aplikacje. Dlatego potrzebne jest bardziej innowacyjne rozwiązanie, które umożliwia szybkie tłumaczenie, wspiera lokalizację, a jego wdrożenie wymaga tylko kilku prostych kroków.
Jednym z obiecujących rozwiązań jest Linguise . Linguise oferuje łatwiejsze i bardziej wydajne podejście do lokalizacji Laravel bez konieczności posiadania dogłębnej wiedzy na temat kodowania. Kluczowe funkcje Linguise obejmują.
- Łatwa integracja z Laravel
- Dostosuj przełącznik języków bez kodowania
- Tłumaczenie obrazu
- Edytor na żywo umożliwiający dostosowywanie tłumaczeń do lokalnego kontekstu
- Dynamiczne tłumaczenie dynamicznie generowanej treści
- Optymalizacja SEO dla wersji wielojęzycznych
Kroki instalacji Linguise na stronach Laravel można również łatwo wykonać. Oto krótkie wyjaśnienie.
- Utwórz konto Linguise (skorzystaj z 30-dniowego bezpłatnego okresu próbnego za darmo)
- Zarejestruj swoją domenę internetową Laravel i wprowadź pewne informacje. Otrzymasz klucz API.
- Prześlij i podłącz skrypt tłumaczący Linguise do otrzymanego folderu Laravel .
- Skonfiguruj adresy URL języków w pliku htaccess.
- Wstaw 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ę w sieci Laravel , a treść będzie mogła zostać przetłumaczona automatycznie.
Jak? W Linguise wystarczy 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 witryn i aplikacji. Jak widzieliśmy, wbudowany proces lokalizacji Laravel obejmuje wiele kroków i wymaga dobrego zrozumienia frameworka. Może to stanowić wyzwanie 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 usprawnionego podejścia. Rozwiązania te oferują możliwości szybkiego tłumaczenia, łatwą integrację i przyjazne dla użytkownika funkcje, takie jak konfigurowalne przełączniki języków i tłumaczenie obrazów. Teraz utwórz swoje konto Linguise i skorzystaj z naszej funkcji lokalizowania Laravel !