Explication détaillée de la classe de conversion php en chinois et en anglais

怪我咯
Libérer: 2023-03-13 21:40:01
original
3783 Les gens l'ont consulté

MultilingueL'objectif du développement de sites Web est de résoudre les problèmes entre les langues.
Alors comment résoudre ce problème ? Elle peut être divisée en trois étapes :

1. Page multilingue
2. Base de données multilingue
3. Langue d'accès utilisateur unifiée

1. Page multilingue
Questions obligatoires à considérer :
A. Lorsque les utilisateurs se connectent, les caractères sont automatiquement reconnus et différents packages de langue sont appelés ?
B. Lorsque l'utilisateur bascule entre différentes langues, différents packages de langues sont-ils appelés ?
C. Quelle est la structure des répertoires après l'ajout de plusieurs langues ?

La multilinguisation de la page signifie que la multilinguisation de l'apparence peut être utilisée ici.
Le répertoire des langues doit être inclus lors de la conception, avec des sous-répertoires séparés pour les différentes langues.
Par exemple, langue anglaise/en, langue chinoise simplifiée/gb, langue chinoise traditionnelle/b5 (peut être étendu à d'autres langues)
Chaque répertoire contient la version linguistique de chaque page. Lors de la sélection d'une version linguistique, vous pouvez appeler le pack linguistique de la version correspondante.

Ce qui suit est un exemple de code

class language 
{ 
static $lanObject; 
public $type; // unit , dashboard , menu ,other 
public $lan; // language 
private $special; // The common in the file 
private function construct() 
{ 
if( isset($_GET['hl']) || isset($_POST['hl']) ) 
{ 
switch( isset($_GET['hl'])?$_GET['hl']:$_POST['hl'] ) 
{ 
case 'en': 
$this->lan = 'en'; 
case 'zh': 
$this->lan = 'zh'; 
case 'all': 
$this->lan = 'all'; 
default: 
$this->error(); 
} 
} 
else 
$this->lan = isset($_COOKIE['hl']) ? $_COOKIE['hl']:'zh'; 
} 
public static function getObject() 
{ 
if( !(self::$lanObject instanceof self) ) 
self::$lanObject = new language(); 
return self::$lanObject; 
} 
public function lto($key) //$key is English 
{ 
if( $this->lan !== 'zh' ) 
return $key; 
if( empty($this->special) ) // if the $special is null 
{ 
if( isset($this->type) ) 
$this->special = file_get_contents($this->type.'.txt'); 
else 
return $key; 
} 
echo $this->search($key); 
} 
private function search($searchTozh) // PHP String 
{ 
$key_start = strpos($this->special,$searchTozh); 
$key_end = strpos($this->special,' ',$key_start); 
$len_str = strlen($searchTozh); 
$for_sub = $key_start + $len_str + 1; 
return substr($this->special, $for_sub, $key_end - $for_sub); 
} 
}
Copier après la connexion

strpos(); sert à trouver la position où la chaîne apparaît pour la première fois, comme 'wo' dans 'hello world', La valeur de retour est 6
substr(); fait partie de la chaîne interceptée
Vient ensuite le code ajouté lors du débogage

$la = language::getObject(); 
$la->type = 'unit'; 
$la->lto('min'); 
echo &#39;<br/>&#39;; 
$la->lto(&#39;hello&#39;);
Copier après la connexion

lto (ce doit être traduit en anglais); Le format du contenu du
fichier unit.txt est
hello-hello min-small minute-minutes-minutes

$special est conçu pour être global et il est On s'attend à ce que lto (sera appelé plus d'une fois), ce serait un gaspillage de performances si vous chargez le fichier à plusieurs reprises.
$type est conçu pour être public pour prendre en compte l'efficacité des fichiers chargés. Parfois, il n'est pas nécessaire d'afficher les fichiers d'il y a quelques jours, il est donc préférable de les séparer par type d'utilisation. menu.txt spécifiquement responsable de la traduction des menus. Il existe également des textes txt traduits spécifiquement pour des opérations telles que la suppression et la collecte. De cette façon, le texte à charger peut être défini librement
La langue peut également être définie librement.

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!

Étiquettes associées:
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