Internationalisation

I18n : traduction des modèles liés

La solution d’internationalisation de CakePHP passe par le comportement Translate qui renvoie de façon transparente les champs textuels d’un enregistrement dans la langue demandée. Cependant le comportement ne renvoie pas les champs traduits des enregistrements liés au Modèle concerné. Voyons quelles solutions apporter à cela. Lire la suite

I18n : optimiser la table des traductions

La solution de gestion du multilingue de CakePHP suppose le stockage de tous les champs textuels dans une seule table nommée ‘i18n’. Le principe est simple à mettre en place et fonctionne parfaitement, mais sur une application gourmande, il convient d’optimiser cette table. Lire la suite

Rendre un plugin traduisible

L’une des conditions préalables à l’adoption par le plus grand nombre d’un plugin CakePHP, c’est la possibilité de pouvoir le traduire dans n’importe quelle langue. Voyons comment préparer un plugin à son internationalisation. Lire la suite

Multilingue : supprimer une des traductions d’un enregistrement

Imaginons un catalogue de produits multilingue : tous les produits sont bien traduits dans chaque langue disponible, mais notre client appelle pour supprimer l’un des produits devenu indésirable dans l’une des langues. Il ne suffit pas de vider les champs qui ont été traduits, car l’enregistrement sera toujours présent dans la table i18n, et sera toujours affiché sur le site mais avec des champs vides. Nous avons donc ajouté une action dans l’administration qui permet de supprimer une traduction d’un enregistrement. Lire la suite

Multilingue : quelques astuces

En complément du sujet sur la mise en place d’un site multilingue, voici quelques astuces supplémentaires :

  • Gestion du pluriel avec __n() ;
  • Gestion de variables dans une chaîne avec printf() ;
  • Traduire le coeur de CakePHP.
Lire la suite

Un site multilingue avec CakePHP

Nous allons voir comment préparer une application CakePHP pour qu’elle reçoive plusieurs langues. Nous devrons faire attention :

  • à traiter correctement les caractères spécifiques à chaque langue ;
  • traduire l’interface du site ;
  • trouver une méthode pour déterminer la langue demandée par le visiteur tout en soignant le référencement par les moteurs de recherche ;
  • et enfin traduire les textes enregistrés dans la base de données.
Lire la suite