Wie füge ich Übersetzungen für neue Wörter in Magento hinzu?

23

Ich verwende Englisch, Spanisch und Deutsch als drei Store Views für meine Site. Was ist der einfachste Weg, Übersetzungen für neue Wörter hinzuzufügen?

Selbst wenn ich neue Wörter zu den Übersetzungen hinzufüge, wird dies nicht im Frontend angezeigt.

Sukeshini
quelle

Antworten:

38

Dafür:

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

Füge hinzu wie:

app / locale / {lang_ISO} /Mage_Catalog.csv

"Text here","Translation here"

Dafür:

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

Oder dies (im Thema local.xmldas translateAttribut beachten ; siehe auch /programming//a/8408058/794071 ):

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

Füge hinzu wie:

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

"Text here","Translation here"

ZB: in Ihrem Themenordner:

/locale/fr_FR/translate.csv

"Inspiration","Your France Translation"
TBI Infotech
quelle
1
Das {lang_ISO} hängt auch von der Standardsprache ab, die Sie für Ihren Shop unter System> Konfiguration> Allgemein> Lokalisierungsoptionen> Gebietsschema-Profil eingerichtet haben.
Julien Lachal
3

Sie übersetzen nicht wirklich Wörter. Sie müssen statische Blöcke, Seiten, Attribute, E-Mail-Vorlagen und konfigurationsbezogene Elemente aus dem Backend übersetzen. Zum Übersetzen von Systemzeichenfolgen gibt esapp/design/frontend/{package}/{theme]/locale/{locale}/translate.csv

{locale} könnte zum Beispiel de_DE für die in Deutschland verwendete deutsche Sprache sein.

Das Ändern von Übersetzungsdateien unter app/locale/{locale}/wird NICHT empfohlen, da sie Teil von Sprachpaketen sind und als Kernelemente angesehen werden sollten, die möglicherweise überschrieben werden, sobald das Paket aktualisiert wird.

Pronto
quelle
0

Dies kann in diesen einfachen Schritten erfolgen. Schritt 1: Neue Geschäftsansicht erstellen. Nach dem Admin unseres Shops gehen Sie zu STORES-> Settings-> All stores. Create Store View. Wählen Sie ein Geschäft und geben Sie einen Namen ein, beispielsweise Hindi. Gehen Sie zu STORES-> Settings-> Configuration. In der oberen linken Ecke von Store ViewWählen Sie Ihre Geschäftsansicht Hindi. In der GeneralRegisterkarte Locale OptionWählen Sie Hindi(India)aus der Dropdown-Liste.

Schritt 2: Stellen Sie Ihr Thema auf diese Store-Ansicht ein. Von admin Gehen Sie zu CONTENT-> Design-> Konfiguration EditIhrer Store-Ansicht und legen Sie das Thema fest.

Schritt 3: Erstellen Sie eine CSV-Datei in <magento dir>/app/design/frontend/<vendorName>/<themeName>/i18n/hi_IN.csv(hi_IN für Hindi). Inhalte sind:

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

Schritt 4: Stellen Sie den Inhalt bereit. im magento verzeichnis deines terminals php bin/magento setup:static-content:deploy -f en_US hi_IN Bereinige den Cache und aktualisiere die Seite. Nach dem Wechsel zur neuen Store-Ansicht werden Ihre Änderungen angezeigt. Dies wird für Magento 2.2.x funktionieren

Punit Sharma
quelle
0

Was ist der einfachste Weg, Übersetzungen für neue Wörter hinzuzufügen?

Ich denke, der Tech- Teil wird beantwortet ... :)

Um es "einfach" zu machen - oder um l18n zu beschleunigen - können Sie CSVDateien automatisch übersetzen .

Dies kann nützlich sein, wenn Sie eine Erweiterung installiert oder erstellt haben, die nur en_US.csventhalten ist.

Anf .:

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

    composer require chriskonnertz/deeply
  • hinzufügen CSV, um zu übersetzen
  • Fügen Sie ein einfaches PHP-Skript hinzu

    <?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);

Nicht wirklich schön, aber es funktioniert ...: P


Anmerkungen

  • Dieses Paket verwendet eine (undokumentierte?) API, für die kein AUTH-Schlüssel erforderlich ist. Es scheint eine Schwelle zu geben, die jedoch nicht getestet wurde
  • Für Entwicklerzugriffe gibt es ein kostenpflichtiges APIv2 ( 5 € / Monat )
  • Unterstützt DE, EN, ES, FR, IT, NL, PL, automatische Erkennung

Ich bin nicht tief verwandt , es hat mir nur ein paar Stunden gespart ... Entschuldigung für die Werbung.

sv3n
quelle