Lorsque vous développez des sites Web multilingues, vous devez généralement charger le contenu traduit correspondant en fonction de la sélection des langues de l'utilisateur. Cependant, dans certains cas, l'utilisateur peut choisir une langue sans traduction correspondante, ou le contenu de cette langue n'est pas trouvé sur une page spécifique. Pour assurer l'expérience utilisateur, nous pouvons fournir du contenu linguistique par défaut via un mécanisme de secours.
PHP fournit la fonction fin () , qui peut nous aider à mettre en œuvre ce mécanisme facilement. Ensuite, nous utiliserons un exemple simple pour montrer comment utiliser la fonction End () pour implémenter le mécanisme de secours de la langue par défaut dans un tableau multilingue.
Supposons que nous ayons un site Web multilingue où les données linguistiques sont stockées dans un tableau associatif, et les données de chaque langue font partie du tableau. Nous utilisons un tableau imbriqué pour enregistrer des traductions pour chaque langue.
$lang = [
'en' => [
'greeting' => 'Hello',
'farewell' => 'Goodbye',
],
'fr' => [
'greeting' => 'Bonjour',
'farewell' => 'Au revoir',
],
'es' => [
'greeting' => 'Hola',
'farewell' => 'Adiós',
],
];
Normalement, l'utilisateur choisira une langue, que nous pouvons obtenir à partir de $ _get ou $ _Session . Si l'utilisateur n'a pas de sélection ou si la traduction de la langue sélectionnée n'existe pas, nous nous replierons à la langue par défaut.
$user_language = isset($_GET['lang']) ? $_GET['lang'] : 'en'; // Utilisez l'anglais par défaut
Lors de la mise en œuvre du mécanisme de secours, nous pouvons utiliser la fonction fin () pour obtenir le dernier élément du tableau, qui sera la langue par défaut que nous définirons. Tout d'abord, nous devons vérifier si la langue sélectionnée de l'utilisateur existe et, s'il existe, utilisez la traduction de cette langue; S'il n'existe pas, retombez à la langue par défaut (comme l'anglais).
// Vérifiez si la langue sélectionnée par l'utilisateur existe
if (isset($lang[$user_language])) {
$selected_lang = $lang[$user_language];
} else {
// Si le langage sélectionné par l'utilisateur n'a pas de traduction,Fallback vers la langue par défaut(Anglais)
$selected_lang = $lang['en'];
}
// utiliser end() Obtenez le dernier élément de traduction
$last_translation = end($selected_lang);
echo "La dernière traduction: " . $last_translation;
end ($ selected_lang) : cette fonction déplacera le pointeur vers le dernier élément du tableau et renverra cet élément. Grâce à cette méthode, nous pouvons nous assurer que le programme peut renvoyer un élément de traduction par défaut même si l'utilisateur sélectionne une langue sans contenu de traduction.
Vérifiez si le langage sélectionné par l'utilisateur est valide via ISSet () , et s'il est invalide, il retombe à la langue par défaut en .
Si le contenu traduit contient des URL, nous pouvons remplacer le nom de domaine de ces URL où nous en avons besoin pour être m66.net . Par exemple, nous voulons remplacer tous les domaines de liaison dans la traduction pour nous assurer qu'ils pointent vers le bon site Web.