Heim > PHP-Framework > Laravel > Hauptteil

Internationalisierung und Lokalisierung in Laravel: Anpassung an unterschiedliche Sprachen und regionale Bedürfnisse

WBOY
Freigeben: 2023-08-12 12:07:46
Original
1454 Leute haben es durchsucht

Internationalisierung und Lokalisierung in Laravel: Anpassung an unterschiedliche Sprachen und regionale Bedürfnisse

Internationalisierung und Lokalisierung in Laravel: Anpassung an die Bedürfnisse verschiedener Sprachen und Regionen

Einführung:
Im heutigen Zeitalter der Globalisierung wird es immer wichtiger, eine Anwendung zu erstellen, die sich an die Bedürfnisse verschiedener Sprachen anpasst ​und Regionen. Als beliebtes PHP-Framework bietet Laravel umfangreiche Internationalisierungs- und Lokalisierungsfunktionen, die es Entwicklern ermöglichen, sich problemlos an die Anforderungen verschiedener Sprachen und Regionen anzupassen. In diesem Artikel wird vorgestellt, wie Laravel Internationalisierung und Lokalisierung implementiert, und spezifische Vorgänge anhand von Codebeispielen demonstriert.

1. Konfiguration
Zuerst müssen wir die entsprechenden Sprach- und Regionaleinstellungen zur Konfigurationsdatei von Laravel hinzufügen. Öffnen Sie die Datei config/app.php und ändern Sie die Option locale, um sie auf die gewünschte Standardsprache festzulegen. Gleichzeitig können Sie auch die Option fallback_locale als Standard-Fallback-Sprache ändern. config/app.php 文件,修改locale选项,将其设置为你希望的默认语言。同时,你还可以修改fallback_locale选项,作为默认的回退语言。

'locale' => 'en',
'fallback_locale' => 'en',
Nach dem Login kopieren

二、语言文件
Laravel的国际化和本地化功能通过语言文件实现。在resources/lang目录下,可以创建不同语言的文件夹。每个语言文件夹中,再创建一个messages.php文件,用于存放对应语言的翻译文本。

例如,为了支持英文和中文两种语言,我们可以在resources/lang目录下创建enzh两个文件夹,然后在每个文件夹下创建messages.php文件。

messages.php文件中,我们可以定义一系列键值对,键表示要翻译的文本,值表示对应语言的翻译内容。

// resources/lang/en/messages.php
return [
    'welcome' => 'Welcome to our website!',
    'hello' => 'Hello :name!',
];

// resources/lang/zh/messages.php
return [
    'welcome' => '欢迎访问网站!',
    'hello' => '你好,:name!',
];
Nach dem Login kopieren

三、访问翻译文本
一旦配置和语言文件设置好了,我们可以在应用程序的任何地方访问翻译文本。Laravel提供了一个辅助函数trans(),用于实现翻译功能。

echo trans('messages.welcome');
// 输出:Welcome to our website!

echo trans('messages.hello', ['name' => 'John']);
// 输出:Hello John!
Nach dem Login kopieren

四、根据用户语言偏好进行翻译
有时候,我们需要根据用户的语言偏好进行相应的翻译。Laravel提供了App::setLocale()方法,可以动态地设置当前语言。结合会话和请求,我们可以获取用户的语言偏好,并设置相应的语言。

use IlluminateSupportFacadesApp;

...

$locale = request()->header('Accept-Language');
App::setLocale($locale);

echo trans('messages.welcome');
Nach dem Login kopieren

五、智能本地化数字和日期
除了翻译文本,Laravel还提供了智能本地化数字和日期的能力。我们可以使用Lang::transChoice()函数来实现。

在语言文件中,我们可以定义不同数量的翻译文本。

// resources/lang/en/messages.php
return [
    'apples' => '{0} no apples|{1} one apple|[2,*] :count apples',
];

// resources/lang/zh/messages.php
return [
    'apples' => '{0} 没有苹果|{1} 一个苹果|[2,*] :count 个苹果',
];
Nach dem Login kopieren

使用Lang::transChoice()

echo trans_choice('messages.apples', 0);
// 输出:no apples

echo trans_choice('messages.apples', 1);
// 输出:one apple

echo trans_choice('messages.apples', 5, ['count' => 5]);
// 输出:5 apples
Nach dem Login kopieren
2. Sprachdateien

Die Internationalisierungs- und Lokalisierungsfunktionen von Laravel werden über Sprachdateien implementiert. Im Verzeichnis resources/lang können Sie Ordner für verschiedene Sprachen erstellen. Erstellen Sie in jedem Sprachordner eine Datei messages.php, um den übersetzten Text in der entsprechenden Sprache zu speichern.

Um beispielsweise Englisch und Chinesisch zu unterstützen, können wir zwei Ordner en und zh im Verzeichnis resources/lang erstellen. und erstellen Sie dann messages.php-Dateien unter jedem Ordner.

In der Datei messages.php können wir eine Reihe von Schlüssel-Wert-Paaren definieren, wobei der Schlüssel den zu übersetzenden Text und der Wert den Übersetzungsinhalt in der entsprechenden Sprache darstellt. 🎜rrreee🎜3. Auf übersetzten Text zugreifen🎜Sobald die Konfigurations- und Sprachdateien eingerichtet sind, können wir überall in der Anwendung auf den übersetzten Text zugreifen. Laravel stellt eine Hilfsfunktion trans() zur Implementierung der Übersetzungsfunktion bereit. 🎜rrreee🎜4. Übersetzung basierend auf der Sprachpräferenz des Benutzers🎜 Manchmal müssen wir entsprechend der Sprachpräferenz des Benutzers übersetzen. Laravel bietet die Methode App::setLocale(), um die aktuelle Sprache dynamisch festzulegen. Durch die Kombination der Sitzung und der Anfrage können wir die Sprachpräferenz des Benutzers ermitteln und die entsprechende Sprache festlegen. 🎜rrreee🎜 5. Intelligente Lokalisierung von Zahlen und Datumsangaben🎜Neben der Textübersetzung bietet Laravel auch die Möglichkeit, Zahlen und Datumsangaben intelligent zu lokalisieren. Um dies zu erreichen, können wir die Funktion Lang::transChoice() verwenden. 🎜🎜In der Sprachdatei können wir unterschiedliche Mengen an Übersetzungstext definieren. 🎜rrreee🎜Mit der Funktion Lang::transChoice() können wir den entsprechenden Text anhand der Menge auswählen. 🎜rrreee🎜Zusammenfassung: 🎜Laravel bietet leistungsstarke Internationalisierungs- und Lokalisierungsfunktionen, die Entwicklern helfen können, sich problemlos an die Bedürfnisse verschiedener Sprachen und Regionen anzupassen. Durch Konfigurationsdateien, Sprachdateien und Hilfsfunktionen können wir Texte übersetzen und Zahlen und Datumsangaben lokalisieren. Diese Funktionen sind für die globale Anwendungsentwicklung sehr nützlich. 🎜🎜Ich hoffe, dieser Artikel hilft Ihnen, die Internationalisierung und Lokalisierung in Laravel zu verstehen. Wenn Sie Fragen haben, hinterlassen Sie bitte eine Nachricht zur Diskussion. 🎜

Das obige ist der detaillierte Inhalt vonInternationalisierung und Lokalisierung in Laravel: Anpassung an unterschiedliche Sprachen und regionale Bedürfnisse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage