Heim > PHP-Framework > Laravel > Internationalisierung und Lokalisierung in Laravel: Anpassung an die Bedürfnisse verschiedener Sprachen und Regionen

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

PHPz
Freigeben: 2023-08-27 12:52:50
Original
1325 Leute haben es durchsucht

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

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

Einführung:
Im aktuellen Zeitalter der Globalisierung müssen sich immer mehr Anwendungen an die Bedürfnisse verschiedener Sprachen anpassen können ​und Regionen. Laravel bietet als beliebtes PHP-Framework umfangreiche Funktionen zur Unterstützung der Internationalisierung und Lokalisierung von Anwendungen. In diesem Artikel wird die Implementierung von Internationalisierung und Lokalisierung in Laravel vorgestellt und relevante Codebeispiele bereitgestellt.

1. Was ist Internationalisierung und Lokalisierung? Unter Internationalisierung versteht man die Anpassung von Anwendungen an verschiedene Sprachen und kulturelle Gewohnheiten. Unter Lokalisierung versteht man die entsprechende Anpassung von Anwendungen an verschiedene Regionen oder Länder.

2. Sprachdateien in Laravel

In Laravel können wir Sprachdateien verwenden, um Internationalisierung und Lokalisierung zu erreichen. Sprachdateien werden im Verzeichnis resources/lang gespeichert, und jede Sprache verfügt über ein entsprechendes Verzeichnis. Beispielsweise speichert das Verzeichnis en englischsprachige Dateien und das Verzeichnis zh-CN chinesische Sprachdateien.

  1. Erstellen Sie eine Sprachdatei

Zuerst müssen wir eine Sprachdatei erstellen, die durch Ausführen des folgenden Befehls generiert werden kann: resources/lang目录下,每个语言有一个对应的目录。例如,en目录存放英文语言文件,zh-CN目录存放中文语言文件。

  1. 创建语言文件

首先,我们需要创建一个语言文件,可以通过运行以下命令来生成:

php artisan make:lang zh-CN
Nach dem Login kopieren

这将在resources/lang目录下生成一个zh-CN目录,并在该目录下生成一个messages.php文件。

  1. 编辑语言文件

打开resources/lang/zh-CN/messages.php,我们可以定义一些语言键值对,例如:

return [
    'welcome' => '欢迎',
    'about' => '关于我们',
    // ...
];
Nach dem Login kopieren

我们可以在应用中通过trans()函数来获取对应的语言值,例如:

echo trans('messages.welcome'); // 输出:欢迎
Nach dem Login kopieren

三、设置应用的语言

  1. 配置文件设置

打开config/app.php文件,可以找到locale配置项。我们可以将其值设置为相应的语言代码,例如'locale' => 'zh-CN'

  1. 中间件设置

我们可以创建一个中间件来设置应用的语言。首先,可以使用Artisan命令创建一个中间件:

php artisan make:middleware SetLocale
Nach dem Login kopieren

然后,打开生成的SetLocale中间件的handle方法,添加以下代码:

public function handle($request, Closure $next)
{
    // 获取用户的首选语言
    $locale = $request->getPreferredLanguage(['en', 'zh-CN']);

    // 设置应用的语言
    app()->setLocale($locale);

    return $next($request);
}
Nach dem Login kopieren

接下来,打开app/Http/Kernel.php文件,将生成的中间件添加到中间件组中:

protected $middlewareGroups = [
    // ...
    'web' => [
        // ...
        AppHttpMiddlewareSetLocale::class,
    ],
    // ...
];
Nach dem Login kopieren

现在,每次用户访问应用时,中间件将根据用户的首选语言设置应用的语言。

四、根据语言文件显示内容

在视图文件中,我们可以使用trans()函数来根据语言文件显示内容。例如,我们可以在resources/views/welcome.blade.php文件中添加以下代码:

<h1>{{ trans('messages.welcome') }}</h1>
<p>{{ trans('messages.about') }}</p>
Nach dem Login kopieren

当应用的语言设置为zh-CN时,用户访问/路径将看到"欢迎"和"关于我们"的内容。

五、动态替换参数

有时,我们需要根据用户的输入或其他动态变量来显示内容。在语言文件中,我们可以使用:符号来指定参数,例如:

return [
    'welcome' => '欢迎,:name',
];
Nach dem Login kopieren

然后,我们可以在视图或控制器中使用trans()函数的第二个参数来替换参数的值,例如:

echo trans('messages.welcome', ['name' => '王小明']); // 输出:欢迎,王小明
Nach dem Login kopieren

使用动态参数可以实现更灵活的语言输出。

六、语言选择功能

有时,我们需要在应用中提供语言选择的功能,让用户自由切换应用的语言。在Laravel中,可以使用URL::to()方法来生成包含语言参数的URL。

首先,我们可以在routes/web.php

Route::get('/lang/{locale}', function ($locale) {
    // 设置应用的语言
    App::setLocale($locale);

    // 生成包含语言参数的URL
    $url = URL::to('/');

    // 重定向到指定语言的路径
    return redirect($url);
});
Nach dem Login kopieren

Dies wird in sein resources/lang</ Ein Verzeichnis <code>zh-CN wird unter dem Verzeichnis code> generiert, und in diesem Verzeichnis wird eine Datei messages.php generiert.

  1. Sprachdatei bearbeiten

Öffnen Sie resources/lang/zh-CN/messages.php, wir können einige Sprachschlüssel definieren Wertepaar, zum Beispiel:

<a href="{{ url('lang/en') }}">English</a>
<a href="{{ url('lang/zh-CN') }}">中文</a>
Nach dem Login kopieren
Wir können die Funktion trans() in der Anwendung verwenden, um den entsprechenden Sprachwert zu erhalten, zum Beispiel:

rrreee

3. Stellen Sie die Sprache der Anwendung ein

  • Einstellungen der Konfigurationsdatei
  • Öffnen Sie die Datei config/app.php und Sie finden das Konfigurationselement locale. Wir können seinen Wert auf den entsprechenden Sprachcode setzen, z. B. 'locale' => 'zh-CN'.

    1. Middleware-Einstellungen
    Wir können eine Middleware erstellen, um die Sprache der Anwendung festzulegen. Zuerst können Sie mit dem Artisan-Befehl eine Middleware erstellen: 🎜rrreee🎜 Öffnen Sie dann die handle-Methode der generierten SetLocale-Middleware und fügen Sie den folgenden Code hinzu: 🎜rrreee🎜 Öffnen Sie als Nächstes die Datei app/Http/Kernel.php und fügen Sie die generierte Middleware zur Middleware-Gruppe hinzu: 🎜rrreee🎜Jedes Mal, wenn der Benutzer auf die App zugreift, wird die Middleware entsprechend eingestellt Bevorzugte Sprache des Benutzers Die Sprache der Anwendung. 🎜🎜4. Inhalte basierend auf Sprachdateien anzeigen🎜🎜In der Ansichtsdatei können wir die Funktion trans() verwenden, um Inhalte basierend auf der Sprachdatei anzuzeigen. Beispielsweise können wir den folgenden Code in die Datei resources/views/welcome.blade.php einfügen: 🎜rrreee🎜Wenn die Sprache der Anwendung auf zh-CNeingestellt ist >, der Benutzer greift auf den Pfad / zu und sieht die Inhalte „Willkommen“ und „Über uns“. 🎜🎜5. Dynamisches Ersetzen von Parametern🎜🎜Manchmal müssen wir Inhalte basierend auf Benutzereingaben oder anderen dynamischen Variablen anzeigen. In der Sprachdatei können wir das Symbol : verwenden, um die Parameter anzugeben, zum Beispiel: 🎜rrreee🎜 Dann können wir die Funktion trans() in der Ansicht oder verwenden Controller Zwei Parameter zum Ersetzen des Parameterwerts, zum Beispiel: 🎜rrreee🎜Durch die Verwendung dynamischer Parameter kann eine flexiblere Sprachausgabe erreicht werden. 🎜🎜6. Sprachauswahlfunktion 🎜🎜 Manchmal müssen wir in der Anwendung eine Sprachauswahlfunktion bereitstellen, damit Benutzer die Sprache der Anwendung frei wechseln können. In Laravel können Sie die Methode URL::to() verwenden, um eine URL mit Sprachparametern zu generieren. 🎜🎜Zuerst können wir eine Route in der Datei routes/web.php definieren: 🎜rrreee🎜Dann fügen wir einen Link zur Sprachauswahl in der Ansichtsdatei hinzu, zum Beispiel: 🎜rrreee🎜Der Benutzer klickt auf entsprechend Bei der Verknüpfung leitet die App zum Pfad für die entsprechende Sprache weiter. 🎜🎜Fazit: 🎜🎜Durch die Nutzung der von Laravel bereitgestellten Internationalisierungs- und Lokalisierungsfunktionen können wir die Anwendung problemlos an die Bedürfnisse verschiedener Sprachen und Regionen anpassen. In diesem Artikel erfahren Sie, wie Sie Sprachdateien verwenden, die Sprache der Anwendung festlegen und Parameter und andere Technologien dynamisch ersetzen. Ich hoffe, dass er Ihnen dabei hilft, Internationalisierung und Lokalisierung in Ihrer Laravel-Anwendung zu erreichen. 🎜🎜Das Obige ist der relevante Inhalt zur Implementierung von Internationalisierung und Lokalisierung in Laravel. Ich hoffe, er wird Ihnen hilfreich sein. 🎜

    Das obige ist der detaillierte Inhalt vonInternationalisierung und Lokalisierung in Laravel: Anpassung an die Bedürfnisse verschiedener Sprachen und Regionen. 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