Comment ajouter des traductions de nouveaux mots dans Magento?


23

J'utilise l'anglais, l'espagnol et l'allemand comme trois vues de magasin pour mon site. Quelle est la façon la plus simple d'ajouter des traductions pour de nouveaux mots?

Même si j'ajoute de nouveaux mots avec les traductions, cela ne s'affiche pas dans le frontend.

Réponses:


38

Pour ça:

<?php echo Mage::helper('catalog')->__('Text here');?>

Ajouter comme:

app / locale / {lang_ISO} /Mage_Catalog.csv

"Text here","Translation here"

Pour ça:

<?php echo $this->__('Text here'); ?>

Ou ceci (dans le thème local.xml, notez l' translateattribut; voir également /programming//a/8408058/794071 ):

<reference name="top.links">
    <action method="addLink" translate="label title">
        <label>Text here</label>
        <title>Text here</title>
    </action>
</reference>

Ajouter comme:

app / design / frontend / {interface} / {theme} / locale / {lang_ISO} /translate.csv

"Text here","Translation here"

Par exemple: dans votre dossier de thème:

/locale/fr_FR/translate.csv

"Inspiration","Your France Translation"

1
De plus, {lang_ISO} dépend de la langue par défaut que vous avez configurée pour votre magasin dans Système> Configuration> Général> Options de localisation> Profil de paramètres régionaux.
Julien Lachal

3

Vous ne traduisez pas vraiment les mots. Vous devez traduire les blocs statiques, les pages, les attributs, les modèles de courrier électronique et les éléments liés à la configuration à partir du backend. Pour traduire les chaînes système, il y aapp/design/frontend/{package}/{theme]/locale/{locale}/translate.csv

{locale} pourrait être par exemple de_DE pour la langue allemande utilisée en Allemagne.

La modification des fichiers de traduction à app/locale/{locale}/n'est PAS conseillée car ils font partie des packages linguistiques et doivent être considérés comme des éléments de base qui peuvent être écrasés dès que le package est mis à jour.


0

Cela peut être fait en ces étapes faciles. Étape 1: créer une nouvelle vue de magasin. Par l'administrateur de notre magasin, allez à MAGASINS-> Paramètres-> Tous les magasins. Create Store View. Sélectionnez un magasin et nommez par exemple l'hindi. Allez dans MAGASINS-> Paramètres-> Configuration. Dans le coin supérieur gauche de Store ViewSélectionnez votre vue de magasin Hindi. Dans l' Generalonglet Locale OptionSélectionnez Hindi(India)dans la liste déroulante.

Étape 2: définissez votre thème sur cette vue de la boutique. Depuis l'administrateur Accédez à CONTENT-> Conception-> Configuration de Editvotre vue Store et définissez le thème.

Étape 3: Créez un fichier csv dans <magento dir>/app/design/frontend/<vendorName>/<themeName>/i18n/hi_IN.csv(hi_IN pour l'hindi). Le contenu est:

"Sign In", "Your Text" "My Account","Your Text" "My Wish List", "Your Text"

Étape 4: déployez le contenu. dans le répertoire magento de votre terminal php bin/magento setup:static-content:deploy -f en_US hi_IN Nettoyez le cache et rafraîchissez la page. Après le passage à la nouvelle vue de magasin, vos modifications seront affichées. Cela fonctionnera pour magento 2.2.x


0

Quelle est la façon la plus simple d'ajouter des traductions pour de nouveaux mots?

Je suppose que la partie technique est répondue ... :)

Pour le rendre "facile" - ou pour accélérer l18n - vous pouvez traduire automatiquement les CSVfichiers.

Cela peut être utile si vous avez installé ou construit une extension qui a uniquement en_US.csvinclus.

Req:

  • https://github.com/chriskonnertz/DeepLy

    composer require chriskonnertz/deeply
  • ajouter CSVpour traduire
  • ajouter un script PHP simple

    <?php
    require 'vendor/autoload.php';
    
    use ChrisKonnertz\DeepLy\DeepLy;
    
    $deepLy = new DeepLy();
    
    $read = fopen('en_US.csv','r');
    $write = fopen('de_DE.csv','w');
    
    while (($data = fgetcsv($read, 0, ",")) !== false) {
        $data[1] = $deepLy->translate($data[0], 'DE', 'EN');
        echo "From: " . $data[0] . "\n";
        echo "To: " . $data[1] . "\n";
        fputcsv($write, $data);
    }
    fclose($read);
    fclose($write);

Pas vraiment sympa, mais ça marche ...: P


Remarques

  • ce package utilise une API (non documentée?), qui ne nécessite aucune clé AUTH. Il semble y avoir un seuil, mais ce n'est pas testé
  • pour l'accès développeur, il existe une API payante ( 5 € / mois )
  • prend en charge DE, EN, ES, FR, IT, NL, PL, détection automatique

Je ne suis pas lié à profondément , cela m'a juste fait gagner quelques heures ... désolé pour la publicité.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.