Maison > cadre php > Laravel > le corps du texte

Internationalisation et localisation à Laravel : s'adapter aux différentes langues et besoins régionaux

WBOY
Libérer: 2023-08-12 12:07:46
original
1454 Les gens l'ont consulté

Internationalisation et localisation à Laravel : sadapter aux différentes langues et besoins régionaux

Internationalisation et localisation dans Laravel : s'adapter aux besoins des différentes langues et régions

Introduction :
À l'ère actuelle de la mondialisation, il est devenu de plus en plus important de créer une application qui s'adapte aux besoins des différentes langues ​et les régions. En tant que framework PHP populaire, Laravel fournit de riches fonctions d'internationalisation et de localisation, permettant aux développeurs de s'adapter facilement aux besoins de différentes langues et régions. Cet article présentera comment Laravel implémente l'internationalisation et la localisation, et démontrera des opérations spécifiques à travers des exemples de code.

1. Configuration
Tout d'abord, nous devons ajouter la langue et les paramètres régionaux correspondants au fichier de configuration de Laravel. Ouvrez le fichier config/app.php et modifiez l'option locale pour la définir sur la langue par défaut souhaitée. En même temps, vous pouvez également modifier l'option fallback_locale comme langue de secours par défaut. config/app.php 文件,修改locale选项,将其设置为你希望的默认语言。同时,你还可以修改fallback_locale选项,作为默认的回退语言。

'locale' => 'en',
'fallback_locale' => 'en',
Copier après la connexion

二、语言文件
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!',
];
Copier après la connexion

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

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

echo trans('messages.hello', ['name' => 'John']);
// 输出:Hello John!
Copier après la connexion

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

use IlluminateSupportFacadesApp;

...

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

echo trans('messages.welcome');
Copier après la connexion

五、智能本地化数字和日期
除了翻译文本,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 个苹果',
];
Copier après la connexion

使用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
Copier après la connexion
2. Fichiers de langue

Les fonctions d'internationalisation et de localisation de Laravel sont implémentées via des fichiers de langue. Dans le répertoire resources/lang, vous pouvez créer des dossiers pour différentes langues. Dans chaque dossier de langue, créez un fichier messages.php pour stocker le texte traduit dans la langue correspondante.

Par exemple, afin de prendre en charge les langues anglaise et chinoise, nous pouvons créer deux dossiers en et zh dans le répertoire resources/lang, puis créez des fichiers messages.php sous chaque dossier.

Dans le fichier messages.php, nous pouvons définir une série de paires clé-valeur, où la clé représente le texte à traduire et la valeur représente le contenu de la traduction dans la langue correspondante. 🎜rrreee🎜3. Accéder au texte traduit🎜Une fois les fichiers de configuration et de langue configurés, nous pouvons accéder au texte traduit n'importe où dans l'application. Laravel fournit une fonction auxiliaire trans() pour implémenter la fonction de traduction. 🎜rrreee🎜4. Traduction basée sur la préférence linguistique de l'utilisateur🎜 Parfois, nous devons traduire en conséquence en fonction de la préférence linguistique de l'utilisateur. Laravel fournit la méthode App::setLocale() pour définir dynamiquement la langue actuelle. En combinant la session et la demande, nous pouvons obtenir la préférence linguistique de l'utilisateur et définir la langue correspondante. 🎜rrreee🎜 5. Localisation intelligente des nombres et des dates🎜En plus de traduire du texte, Laravel offre également la possibilité de localiser intelligemment les nombres et les dates. Nous pouvons utiliser la fonction Lang::transChoice() pour y parvenir. 🎜🎜Dans le fichier de langue, nous pouvons définir différentes quantités de texte à traduire. 🎜rrreee🎜Grâce à la fonction Lang::transChoice(), nous pouvons sélectionner le texte correspondant en fonction de la quantité. 🎜rrreee🎜Résumé : 🎜Laravel fournit de puissantes fonctions d'internationalisation et de localisation qui peuvent aider les développeurs à s'adapter facilement aux besoins des différentes langues et régions. Grâce aux fichiers de configuration, aux fichiers de langue et aux fonctions d'assistance, nous pouvons traduire du texte et localiser des nombres et des dates. Ces fonctionnalités sont très utiles pour le développement d’applications globales. 🎜🎜J'espère que cet article vous aidera à comprendre l'internationalisation et la localisation dans Laravel. Si vous avez des questions, veuillez laisser un message pour en discuter. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal