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',
二、语言文件
Laravel的国际化和本地化功能通过语言文件实现。在resources/lang
目录下,可以创建不同语言的文件夹。每个语言文件夹中,再创建一个messages.php
文件,用于存放对应语言的翻译文本。
例如,为了支持英文和中文两种语言,我们可以在resources/lang
目录下创建en
和zh
两个文件夹,然后在每个文件夹下创建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!', ];
三、访问翻译文本
一旦配置和语言文件设置好了,我们可以在应用程序的任何地方访问翻译文本。Laravel提供了一个辅助函数trans()
,用于实现翻译功能。
echo trans('messages.welcome'); // 输出:Welcome to our website! echo trans('messages.hello', ['name' => 'John']); // 输出:Hello John!
四、根据用户语言偏好进行翻译
有时候,我们需要根据用户的语言偏好进行相应的翻译。Laravel提供了App::setLocale()
方法,可以动态地设置当前语言。结合会话和请求,我们可以获取用户的语言偏好,并设置相应的语言。
use IlluminateSupportFacadesApp; ... $locale = request()->header('Accept-Language'); App::setLocale($locale); echo trans('messages.welcome');
五、智能本地化数字和日期
除了翻译文本,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 个苹果', ];
使用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 apples2. 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.
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!