Question

Nous créons un nouveau modèle et que vous avez un nouveau texte qui ne sont pas encore défini nulle part.

Si elles seraient définies avant nous ajouter quelques

"Mage_TheModule::Foo";"Fuh"

à la translate.csv dans le thème.

Quelle est une bonne façon de traiter les nouvelles traductions?

ils seront ajoutés juste à translate.csv clairement sans code de module?

Ou est-il préférable / nécessaire de créer un propre module juste pour les traductions?

Était-ce utile?

La solution

La meilleure pratique dépend de l'utilisation prévue du thème: Est-ce un thème qui va être distribué et réutilisé ou est-ce un thème spécifique du projet

1. Thème distribué, destiné à la réutilisation

Évitez d'utiliser translate.csv du tout dans ce cas. Dès que l'utilisateur final ajoute sa propre translate.csv à son thème enfant, cela remplacera le vôtre (le leur applique REPLI mécanisme habituel). Ils auraient besoin de copier tout à partir du fichier d'origine et de garder une trace des changements.

Au lieu de cela, utilisez un module thématique. La plupart des thèmes avec un ou plusieurs modules qui contiennent essentiellement des blocs spécifiques à thème, mais aussi de nouvelles traductions. Ensuite, utilisez Mage::helper('yourtheme')->__('your string') pour les traductions et:

  1. Vous êtes à l'abri des conflits avec des modules tiers
  2. Les utilisateurs peuvent remplacer cette traduction spécifique avec Your_Theme::your string leur translate.csv

2. thème spécifique du projet

Pour les traductions dans un thème spécifique du projet, translate.csv a été inventé, donc je l'utiliser.

Vous devriez savoir que le champ d'application du module ne soit pas directement relié aux traductions existantes dans les fichiers CSV respectifs. Ainsi, vous pouvez utiliser un champ de traduction existante sans ajouter un nouveau module ou la modification des fichiers CSV du module.

Par exemple, si j'ajoute les traductions personnalisées, qui est utilisé sur la page du produit dans un bloc de Mage_Catalog, les regards de traduction comme ceci:

"Mage_Catalog::New translation","New translation"

En savoir plus sur la façon de savoir la portée d'une traduction spécifique ici: Traductions et hierachy de l'autorité

(ou vous pouvez utiliser mon extension TranslationHints )

Autres conseils

Ma méthode préférée - surtout si vous avez besoin de traductions spécifiques au module ou si vous voulez distribuer le module - est de créer des fichiers CSV spécifiques au module (défini dans votre config.xml Module) et de les déposer dans des répertoires de la traduction de app/locale. Votre « thème » va comprendre lequel utiliser en raison de paramètres de langue locale.

Si son thème spécifique, ne pas utilisez le code du module dans translate.csv. I faire personnellement pas comme translate.csv du tout - mais je le préfère à la traduction en ligne - et .

translate.csv devrait être pour les utilisateurs finaux de votre produit qui doivent faire quelques réglages (par exemple Sac vs Panier) à votre thème.

Edit: deux ans plus tard pour corriger une vieille croyance que je tenais une fois.

Si elles sont thème, vous devez les ajouter à translate.csv.
Si votre site est uniquement en anglais, vous pouvez même ignorer la traduction.
Si votre site est dans une langue et les textes ont une signification selon un ou plusieurs modules, vous devez ajouter ces textes dans le fichier de traduction de ce module spécifique. (Mais ne modifie pas les fichiers en anglais).
Je prends habituellement la deuxième approche, parce que la prochaine « lifting » du site Web Je n'ai pas dupliquer le fichier translate.csv du thème.
Vous pouvez également créer une extension séparée qui ne gérer la traduction de texte, mais si vous le faites, vous devez appeler chaque texte comme celui-ci: Mage::helper('myhelper')->__('Some text'). Ceci est correct pour un usage interne, mais si vous souhaitez réutiliser les modèles vous devrez migrer l'extension également d'un projet à un autre.

Votre question est rhétorique et vague en même temps.

Mon approche est exactement comme vous l'avez décrit dans votre question. Si les traductions sont spécifiques pas le module mettre "text":"text" ordinaire dans le translate.csv de votre thème. Il exclut les dépendances du module et également votre thème redistribuable avec des traductions.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top