La mise en place d'un site multilingue peut être un bon moyen d'attirer de nouveaux clients dans votre entreprise ou de gagner plus de participants dans votre projet. Traduire un site simple avec quelques pages statiques ne sera probablement pas compliqué, mais des applications Web PHP plus complexes peuvent nécessiter beaucoup de travail lors du lancement de la prise en charge linguistique multiple. Dans cet article, je présenterai différents types de contenu qui doivent être pris en considération lors de l'internationalisation d'un site. Lisez la suite pour savoir comment gérer les traduire en différentes langues.
Tout d'abord, votre site contient probablement le contenu du texte codé en dur dans vos fichiers de projet qui doit être traduit dans d'autres langues. Les chaînes de texte dans les fichiers de modèle ou les messages de notification qui sont gérés dans un script PHP sont des exemples de tels contenus. Si vous n'aviez pas prévu de devenir international lorsque vous écrivez ces parties de code, vous devrez parcourir chaque ligne et gérer la traduction des chaînes de texte stockées là-bas.
Mais comment les traductions réelles doivent-elles être effectuées? La façon courante de gérer plusieurs contenus linguistiques est d'utiliser GetText - une solution logicielle créée pour gérer les traductions dans des applications écrites dans différents langages de programmation. Il est également disponible en PHP comme extension distincte. L'utilisation de getText vous permet de séparer les traductions de l'application du code source. En conséquence, la personne responsable de la préparation des traductions n'a pas à creuser dans le code et peut travailler indépendamment d'un développeur Web. Lorsque les traductions sont prêtes, elles sont placées dans un fichier séparé qui est lu par le script PHP. L'application correspond aux traductions avec des chaînes de texte source stockées dans le code et enfin l'utilisateur final peut voir un site affiché dans la bonne langue.
Ce que vous devez faire en tant que développeur est de transformer des chaînes de texte brut dans une application PHP en chaînes qui peuvent être remises par GetText. Vous devez envelopper le texte dans la fonction getText () qui est couramment accessible à l'aide de l'alias _ () (le nom de la fonction est un soulignement). Ce faisant, vous spécifiez qu'une certaine chaîne de texte doit être traduite et peut être gérée par getText.
Si vous souhaitez connaître les détails sur la gestion des traductions GetText dans une application PHP, il y a un tutoriel complet expliquant le sujet en détail, écrit par Abdullah Abouzekry: localiser les applications PHP «la bonne façon». Je vous encourage à le lire pour voir quelques exemples pratiques de la logique que j'ai décrite ci-dessus.
N'oubliez pas non plus que si vous utilisez un framework comme base pour votre application PHP, il a probablement un composant responsable de la gestion des traductions. Passez en revue la documentation de votre framework pour vérifier s'il existe des outils qui simplifient la gestion de la prise en charge linguistique multiple.
Dans des applications plus complexes, une grande partie du contenu du site peut être stockée dans une base de données. Si le site ne prend en charge qu'une seule langue, il vous suffit d'enregistrer une version d'une ressource qui est récupérée en cas de besoin. Mais la mise en œuvre d'un site linguistique multiple vous oblige à modifier la façon de stocker les données dans une base de données. Les ressources spécifiques à la langue doivent désormais être identifiées par un code linguistique et doivent être récupérées dans la version linguistique définie par un visiteur. Ce que cela signifie pour vous en tant que développeur, c'est que vous devrez probablement modifier votre structure de base de données pour pouvoir gérer les traductions.
Pour apprendre à savoir quelles sont les meilleures pratiques sur la façon de créer une structure de base de données pour un site linguistique multiple, vous pouvez simplement consulter les solutions utilisées par différents cadres. Certains cadres offrent des comportements (modules qui fournissent une fonctionnalité supplémentaire aux modèles) responsable de la gestion des traductions d'un modèle spécifié. Après avoir attaché un comportement de traduction à un modèle, le framework écrira et lira différentes versions linguistiques de données à l'aide d'une structure de base de données capable de gérer plusieurs supports linguistiques.
Par exemple, le framework CakePHP offre le comportement de traduis qui peut être attaché à vos modèles. Pour ce faire, vous devez spécifier quels champs de modèle dépendent de la langue. Imaginons que vous ayez la table des articles qui a deux de ces champs: titre et texte:
Pour stocker les traductions, vous devez déplacer ces champs dépendants de la langue dans une table de traduction distincte. Chaque ligne de la table de traductions est identifiée par la version linguistique, le modèle et le nom de champ se référant à la table de base. Ainsi, le tableau des articles sera maintenant comme suit:
Le titre de l'article et le texte ont été déplacés vers un tableau séparé qui contient les traductions. Comme vous pouvez le voir, une seule traduction de chacun de ces champs est stockée dans une ligne séparée:
Ce qui est le plus important, le framework CakePHP gère automatiquement la base de données lit et écrit sur les données traduites. Après avoir attaché le comportement de traduis, vous pouvez appeler vos méthodes de modèle comme avant et le framework relie le tableau principal avec le tableau des traductions elle-même. Vous n'avez pas à vous soucier de faire des jointures dans vos instructions sélectionnées ou d'insérer des données dans plusieurs tables lors de l'enregistrement d'une nouvelle ligne. Parcourez simplement la documentation pour voir quelques exemples de code de gestion des traductions de cette façon.
D'autres cadres offrent souvent des solutions similaires comme celle décrite ci-dessus. Si vous utilisez le framework Symfony2 avec la doctrine ORM, vérifiez simplement le comportement traduisible de la doctrine pour voir un exemple. Si votre site ne s'exécute sur aucun cadre, vous pouvez vous référer aux solutions décrites ci-dessus lors de la mise en œuvre de votre propre façon de gérer les traductions dans une base de données.
Si votre site permet aux visiteurs d'écrire des commentaires ou des avis connectés à un message ou à un produit, vous devrez également gérer les traductions d'un tel contenu.
Tout d'abord, vous devez enregistrer la version linguistique du contenu saisi par l'utilisateur lorsqu'il soumet un formulaire. Vous n'aurez probablement qu'à supposer qu'il équivaut à la version linguistique du site défini par l'utilisateur. Vous pouvez également utiliser une API externe (par exemple l'API Google Translate) pour détecter la langue d'un texte spécifique.
Ensuite, vous devez traduire le texte donné dans toutes les versions de langue qui sont prises en charge par votre site. Au lieu de le faire manuellement, vous pouvez simplement utiliser une API externe qui vous fournira des traductions machine du contenu soumis par les visiteurs de votre site. Le site ProgrammableWeb répertorie plus de 60 API de traduction disponible sur le Web, vous trouverez probablement facilement une solution qui convient à vos besoins. Si vous recherchez un tutoriel spécifique sur la façon d'implémenter une API de traduction dans une application PHP, je vous encourage à lire mes articles sur l'API Google Translate:
- Utilisation de l'API Google Translate avec PHP qui explique les bases de l'intégration d'un script PHP à l'API,
- Contenu soumis à l'utilisateur automatique à l'aide de l'API Google Translate, qui contient un exemple de code complet sur la façon de gérer le contenu de la traduction de l'utilisateur sur un site Web PHP.
Bien sûr, vous pouvez choisir de ne pas traduire le contenu soumis à l'utilisateur et de l'afficher dans les versions de langue d'origine. Mais à mon avis, l'affichage des traductions machine est mieux que d'afficher du contenu dans une langue différente, même si les traductions obtenues par les API ne sont pas parfaites.
Comme votre site est probablement constitué non seulement du contenu texte, vous devrez également gérer les traductions de diverses ressources qui sont partagées dans vos pages Web. Images, vidéos, pièces jointes, fichiers PDF - tous ces types de contenu doivent également être gérés. Pour simplifier la manière d'affichage de la version appropriée d'un fichier sur une page Web, vous pouvez stocker tous les fichiers d'une structure de répertoire qui reflète les langues disponibles sur le site. La version anglaise d'un fichier sera stockée sous En répertoire, la version française sous FR et ainsi de suite. Ensuite, vous pouvez écrire une méthode d'assistance simple qui rapportera la base de fichiers appropriée sur la version linguistique qui est actuellement définie par un utilisateur. S'il existe une version par défaut d'une ressource spécifique, vous pouvez étendre la méthode et récupérer le fichier par défaut si la version spécifique à la langue n'a pas été trouvée.
La gestion des traductions des types de contenu décrites ci-dessus n'est souvent pas suffisante pour se retrouver avec un site qui prend en charge complètement différentes versions linguistiques. N'oubliez pas qu'un site Web PHP comprend souvent d'autres sources de contenu. Le code JavaScript qui modifie l'arborescence DOM ou affiche les messages de notification contient souvent des chaînes de texte qui doivent être traduites. N'oubliez pas non plus de définir la version linguistique appropriée lorsque vous utilisez des API ou des widgets externes qui sont attachés à vos pages Web (par exemple, les plugins sociaux). La navigation sur votre site avant d'implémenter un support linguistique multiple peut vous fournir plus de types de contenu qui doivent être pris en considération lors de la préparation des traductions.
Comme vous pouvez le voir, le lancement d'un site qui offre un support linguistique multiple vous oblige à gérer les différents types de contenu de différentes manières. Si vous prévoyez de traduire votre site, je vous encourage à faire une liste de contrôle des types des traductions qui doivent être effectuées. Cela peut servir de bon point de départ pour évaluer la quantité de travail qui doit être effectuée et la mise en œuvre des traductions.
Si vous avez des questions ou des commentaires concernant l'article, n'hésitez pas à les publier ci-dessous. Vous pouvez également me contacter via Google Plus.
Lors de la mise en œuvre du support multi-langues dans PHP, il existe plusieurs considérations clés à garder à l'esprit. Premièrement, vous devez décider des langues que vous souhaitez soutenir. Cette décision doit être basée sur votre public cible et les langues qu'ils parlent. Deuxièmement, vous devez considérer la structure de votre site Web. Vous pouvez soit créer des pages distinctes pour chaque langue ou utiliser une seule page avec un contenu spécifique à la langue. Troisièmement, vous devez considérer le processus de traduction. Vous pouvez traduire manuellement le contenu ou utiliser des outils de traduction automatisés. Enfin, vous devez considérer l'impact sur le référencement. Les sites Web multi-langues peuvent potentiellement améliorer votre référencement, mais vous devez vous assurer que chaque version linguistique est correctement optimisée.
GetText Is Is Is Un outil puissant qui peut être utilisé pour implémenter un support multi-langues dans PHP. Il fonctionne en utilisant un système de fichiers de traduction, qui sont ensuite compilés au format binaire pour une utilisation efficace par les fonctions GetText. Pour utiliser GetText, vous devez d'abord l'installer sur votre serveur. Ensuite, vous pouvez créer des fichiers .po pour chaque langue que vous souhaitez prendre en charge, contenant les traductions pour chaque chaîne de votre site Web. Vous pouvez ensuite utiliser les fonctions GetText dans votre code PHP pour afficher les chaînes traduites.
La mise en œuvre du support multi-langues en PHP peut présenter plusieurs défis. L'un des principaux défis est la gestion du processus de traduction. Cela peut prendre du temps et coûteux, surtout si vous devez prendre en charge plusieurs langues. Un autre défi consiste à garantir que la structure du site Web prend en charge plusieurs langues sans avoir un impact négatif sur l'expérience utilisateur ou le référencement. De plus, vous devez considérer l'impact sur les performances du site Web, car le chargement de plusieurs versions linguistiques peut potentiellement ralentir votre site Web.
Comment puis-je gérer le processus de traduction de mon site Web multi-language?
Tester un site Web multi-language implique plusieurs étapes. Premièrement, vous devez tester les fonctionnalités du commutateur de langue pour vous assurer que les utilisateurs peuvent facilement basculer entre différentes versions de langue. Deuxièmement, vous devez tester les traductions pour vous assurer qu'elles sont précises et culturellement appropriées. Cela peut impliquer de travailler avec des locuteurs natifs de chaque langue. Enfin, vous devez tester les performances du site Web pour vous assurer que le chargement de plusieurs versions linguistiques ne ralentit pas votre site Web.
En maintenant un multi-langues Le site Web consiste à mettre à jour régulièrement les traductions, à tester la fonctionnalité du site Web et à optimiser le référencement. Cela peut impliquer de travailler avec des traducteurs, d'effectuer des tests d'utilisateurs et de réviser régulièrement votre stratégie de référencement. Il est également important de surveiller l'analyse de votre site Web pour comprendre comment les utilisateurs interagissent avec chaque version de la langue et effectuent des ajustements si nécessaire.
Oui, beaucoup, beaucoup Les cadres PHP fournissent une prise en charge intégrée pour les sites Web multi-langues. Cela peut faciliter la mise en œuvre et la gestion du support multi-langues. Cependant, il est important de comprendre les fonctionnalités et limites spécifiques de chaque cadre avant de décider lequel utiliser.
Améliorer l'utilisateur L'expérience sur un site Web multi-langues implique plusieurs stratégies. Premièrement, vous devez vous assurer que les utilisateurs peuvent facilement basculer entre différentes versions de langue. Cela peut être fait en utilisant un commutateur de langue proéminent. Deuxièmement, vous devez vous assurer que les traductions sont exactes et culturellement appropriées. Cela peut impliquer de travailler avec des locuteurs natifs de chaque langue. Enfin, vous devez considérer la conception et la mise en page de chaque version de langue. Différentes langues peuvent avoir des modèles de lecture et des conventions de conception différents, il est donc important d'adapter votre conception en conséquence.
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!