Au fil du temps, l'équipe principale de Magento a ajouté de plus en plus de modules linguistiques par défaut au
app/locale
dossier. Existe-t-il un moyen canon de gérer vos propres fichiers de traduction de sorte qu'ils n'interfèrent pas avec les futures mises à niveau du système? c'est-à-dire que je veux changer certaines étiquettes dans Magento, donc je modifie
app/locale/en_US/Mage_Sales.csv
directement. Si nous mettons à jour Magento, mes modifications seront effacées. La fonctionnalité locale du thème est-elle suffisante pour cela? (gère-t-il les fichiers spécifiques au module, ou tout simplement translate.csv
). Ou est-il préférable de réécrire les modèles de traduction pour charger des fichiers à partir d'un emplacement différent? Ou autre chose?
la source
À côté de la
translate.csv
traduction en ligne non portable, il existe un autre moyen. Je le fais comme ça.Chaque module prend en charge plusieurs fichiers de traduction.
Si vous ajoutez ceci dans
config.xml
:les deux fichiers
[Namespace]_[Module].csv
et[Namespace]_[Module]_version2.csv
seront chargés pour la traduction.et ils seront traités dans l'ordre dans lequel ils sont déclarés.
Donc, si vous avez besoin par exemple d'ajouter / de modifier quelque chose dans le
Mage_Sales.csv
ne modifiez pas le fichier, créez simplement un module qui ajoute un autre fichier à la liste des fichiers de traduction.Quelque chose comme ça:
app/code/local/Easylife/Sales/etc/config.xml
et assurez-vous de faire dépendre le module
Mage_Sales
.Vous pouvez également créer un module "taille unique" pour gérer la traduction. Ajoutez simplement un fichier de traduction alternatif pour tout module dont vous avez besoin et assurez-vous que ce nouveau module dépend de chacun d'eux.
la source
app/locale/**/Easylife_Sales.csv
ce fichier? Je suppose qu'il autorisera également les sous-dossiers tant que vous connaissez le séparateur de répertoire pour votre système de fichiers?Les fichiers CSV situés dans
app/locale
doivent être considérés comme des fichiers principaux et non modifiés. Je trouve que la meilleure façon d'ajouter une traduction personnalisée est de les mettre dansapp/design/frontend/{package}/{theme}/locale/{locale}/translate.csv
Veuillez noter que vous pouvez également utiliser les noms de module dans les
translate.csv
fichiers en utilisant"Mage_Adminhtml::Sales","Sales"
au lieu de"Sales","Sales"
. Cela vous permet également d'utiliser des traductions personnalisées adaptées à des thèmes spécifiques.la source
app/locale/
, comment puis-je lui dire de le charger à laapp/design/frontend/{package}/{theme}/locale/
place? Voir ma question ici: stackoverflow.com/questions/26554195/…Vous pouvez éditer / créer le design / thème spécifique "translate.csv". Pour remplacer une traduction à partir d'un "module-translation-file". par exemple "Mage_Catalog.csv":
La règle est donc "Module Namespace :: string à traduire", "chaîne traduite". Je pense que c'est la dernière règle du workflow de traduction de Magento.
la source
Chez SemExpert, c'est exactement ce que nous faisons. Nous avons notre propre package de traduction es_AR (avec des fichiers CSV et des modèles d'e-mail), puis toutes les personnalisations sont effectuées soit par translate.csv soit par la fonction de traduction en ligne (dans de très rares cas pour l'utilisateur final).
Nous ne risquons pas (pour l'instant) de perdre des fichiers de traduction en raison de la mise à niveau de Magento car il est très peu probable qu'ils prennent en charge es_AR hors de la boîte, mais nous souffrons de Magento apportant de petites modifications à leurs chaînes (comme l'ajout d'un '.' À la fin d'une phrase) qui font apparaître les chaînes anglaises quand on les attend le moins.
J'ai commencé à développer un petit module pour surveiller les chaînes de traduction que nous utilisons chaque fois qu'une nouvelle version de Mage est publiée. Vous pouvez le trouver ici: https://github.com/barbazul/SemExpert_TranslationDoctor
la source