Maison  >  Article  >  cadre php  >  Comment utiliser ThinkPHP6 pour obtenir une interaction localisée

Comment utiliser ThinkPHP6 pour obtenir une interaction localisée

PHPz
PHPzoriginal
2023-06-20 09:11:301393parcourir

Avec le développement d'Internet et l'accélération de la mondialisation, de plus en plus de sites Web et d'applications doivent être localisés pour pouvoir interagir dans différentes régions et langues. L'interaction localisée fait référence à l'ajustement du site Web ou de l'application pour répondre aux besoins de l'utilisateur en fonction de facteurs tels que la langue, la culture et les habitudes du pays ou de la région où se trouve l'utilisateur. Dans cet article, nous présenterons comment utiliser le framework ThinkPHP6 pour réaliser une interaction localisée.

1. Prise en charge multilingue

La prise en charge multilingue est la base d'une interaction localisée. Le framework ThinkPHP6 fournit une variété de méthodes de support multilingues, et nous pouvons choisir la méthode appropriée en fonction des besoins réels.

  1. Support multilingue basé sur des fichiers

Le support multilingue basé sur des fichiers est la méthode la plus couramment utilisée. Nous pouvons stocker des fichiers de traduction dans différentes langues dans différents répertoires et obtenir une prise en charge multilingue en définissant des packs de langue.

Tout d'abord, créez un fichier lang.php dans le répertoire de configuration pour définir les éléments de configuration du pack de langue, comme indiqué ci-dessous :

<?php
return [
    // 默认语言
    'default_lang' => 'zh-cn',
    // 扩展语言包
    'extend_list' => [ 'zh-cn','en-us' ],
];

Instructions :

# 🎜🎜#default_lang : pack de langue par défaut.

extend_list : Liste étendue des modules linguistiques.

Ensuite, créez le répertoire du pack de langue correspondant dans le répertoire app/lang Nous prenons le package de langue chinoise comme exemple, créons le répertoire zh-cn sous le répertoire lang et créons un zh sous celui-ci. directory -cn.php, utilisé pour stocker les paires clé-valeur correspondant à la traduction chinoise, comme indiqué ci-dessous :

<?php
return [
    'hello'     =>  '你好',
    'welcome'   =>  '欢迎',
];

Créez le répertoire en-us dans le package de langue anglaise et créez un en-in ce répertoire Le fichier us.php est utilisé pour stocker les paires clé-valeur correspondant à la traduction anglaise, comme indiqué ci-dessous :

<?php
return [
    'hello'     =>  'Hello',
    'welcome'   =>  'Welcome',
];

Enfin, utilisez la classe Lang dans le contrôleur ou la vue pour la traduction, par exemple : #🎜🎜 #
echo Lang::get('hello');

Grâce aux étapes ci-dessus, nous pouvons implémenter la prise en charge multilingue dans l'application.

Support multilingue basé sur une base de données
  1. En plus du support multilingue basé sur des fichiers, ThinkPHP6 fournit également un support multilingue basé sur une base de données prise en charge linguistique. Cette méthode permet d'obtenir une prise en charge multilingue en stockant les informations de traduction dans la base de données.

Tout d'abord, créez une table de langues dans la base de données pour stocker les informations de traduction, comme indiqué ci-dessous :

CREATE TABLE `language` (
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL COMMENT '翻译名称',
  `lang` varchar(10) NOT NULL COMMENT '语言包',
  `value` varchar(255) NOT NULL COMMENT '翻译内容',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Ensuite, créez le fichier de configuration lang.php dans le répertoire de configuration, Set le package de langue en mode base de données, comme suit :

<?php
return [
    // 语言类型
    'type'      => 'db',
    // 默认语言
    'default_lang' => 'zh-cn',
    // 数据表名
    'table_name' => 'language',
];

Description :

type : Type de package de langue, défini ici en mode base de données.

default_lang : Langue par défaut.

table_name : Le nom de la table de données qui stocke les informations de traduction.

Enfin, utilisez la classe Lang dans le contrôleur ou la vue pour la traduction, par exemple :

echo Lang::get('hello');

Grâce aux étapes ci-dessus, nous pouvons utiliser la base de données pour stocker les traductions dans l'application informations pour obtenir un support multilingue.

2. Interaction localisée

En plus de la prise en charge multilingue, ThinkPHP6 fournit également une série de fonctions d'interaction localisées pour s'adapter à différentes régions et langues. Voici plusieurs fonctions interactives localisées couramment utilisées :

date_format()
  1. date_format() est utilisée pour formater la date et l'heure. Le format de l'heure et de la date peut également changer lorsque l'application est exécutée dans différentes régions et paramètres régionaux. Par conséquent, il est très nécessaire d’utiliser la fonction date_format() pour formater les dates et les heures dans votre application.

Par exemple, le code suivant formatera l'heure actuelle sous la forme "année-mois-jour heure:minute:seconde":

$date = date('Y-m-d H:i:s');
echo date_format(date_create($date), 'Y-m-d H:i:s');

number_format () La fonction
  1. number_format() est utilisée pour formater les nombres. Différents pays et régions ont des formats de nombres différents et vous pouvez utiliser la fonction number_format() pour les formater selon vos besoins. Par exemple :
$num1 = 1234567.89;
$num2 = 9876543.21;
echo number_format($num1, 2, '.', ',');
echo number_format($num2, 2, '.', ',');

Le résultat de sortie est :

1,234,567.89
9,876,543.21

setlocale()
  1. La fonction setlocale() est utilisé pour définir les variables d'environnement liées à la localisation. Par exemple, nous pouvons utiliser la fonction setlocale() pour définir le format de date et d'heure, le symbole monétaire, le format des nombres, etc. Pour un contenu spécifique, veuillez vous référer aux instructions pertinentes dans le manuel PHP. Par exemple :
setlocale(LC_TIME, 'en_US.UTF8');
echo strftime("%b %d %Y %H:%M:%S");

Le code ci-dessus affichera la date et l'heure au format "Jan 01 2022 00:00:00".

Grâce aux méthodes ci-dessus, nous pouvons réaliser une interaction localisée dans le framework ThinkPHP6 et offrir une meilleure expérience aux utilisateurs de différentes régions et langues.

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!

Déclaration:
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