So fügen Sie eine neue Sprache hinzu - Magento 2.0.1


7

Ich versuche, eine neue Geschäftsansicht für die tamilische Sprache zu erstellen, aber die Sprache wird bei der Auswahl der Sprache vom Administrator nicht aufgelistet.

kurze Beschreibung dessen, was ich getan habe

1) Ich habe Tamil Store View erfolgreich erstellt. Bitte beziehen Sie sich auf den Screenshot als einfache Referenz.

Tamil Store View

2) Als nächstes versuche ich, das Tamil Language Package hinzuzufügen

2.1 Sätze sammeln

Erstellen Sie den Ordner /var/www/html/magento2/app/i18n/tamil/tn_tn/

Führen Sie danach den folgenden Befehl aus und erhalten Sie eine Erfolgsmeldung

php bin/magento i18n:collect-phrases -o "/var/www/html/magento2/app/i18n/tamil/tn_tn/dictionary.csv" -m "/var/www/html/magento2/"

2.2 composer.json

{
    "name": "tamil/tn"
    ,"type": "magento2-language"
    ,"description": "Tamil language"
    ,"authors": [{
    "name": "Bilal Usean",
    "email": "yyyyyy@yyyyy.yyy",
    "role": "Developer"
    }]  
    ,"extra": {"map": [["*", "tamil/tn_tn"]]}
}

2.3 language.xml

<?xml version='1.0'?>
<language xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='urn:magento:framework:App/Language/package.xsd'>
    <code>tn_TN</code>
    <vendor>tamil</vendor>
    <package>tn_tn</package>
</language>

2.4 register.php

<?php

\Magento\Framework\Component\ComponentRegistrar::register(
   \Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
   'tamil_tn_tn',
   __DIR__
);

2.5 Übersetzen

dictionary.csv enthält mehr als 8000 Phrasenzeilen für das Beispiel, das ich genommen habe ( offen in gedit ).

"We found other products you might like!","We found other products you might like!",module,Magento_Catalog

tn_TN.csv Ich habe über einer bestimmten Zeile übersetzt (enthält eine Zeile) ( offen in gedit )

"We found other products you might like!","நீங்கள் விரும்பக்கூடிய மற்ற பொருட்கள் காணப்படும் !",module,Magento_Catalog

2.6 Sprachpaket

Führen Sie den folgenden Befehl aus, um das Sprachpaket zu erstellen, und erhalten Sie eine Erfolgsmeldung Successfully saved tn_TN language package.

php bin/magento i18n:pack -d app/i18n/tamil/tn_tn/tn_TN.csv tn_tn tn_TN

Es wird ein Verzeichnis erstellt (tn_tn pack)

<magento-root>/tn_tn/vendor/magento/module-catalog/i18n/tn_TN.csv

Jemand hat es bemerkt. Das Sammeln von Phrasen und Lang Pack-Befehlen unterscheidet sich vom offiziellen Dokument. Bitte beziehen Sie sich auf diesen Link , um zu erfahren, warum ich diese Methode so verwende.

Gesamtstruktur meines Sprachpakets

Geben Sie hier die Bildbeschreibung ein

Führen Sie nach diesem leeren Cache setup: upgrade, indexer: reindex aus, aber ich kann mein Tamil Language Pack nicht in den neu erstellten Gebietsschemaoptionen für die Tamil Store-Ansicht finden .

einfach für Ihre Referenz

Ich möchte noch eines erwähnen, ich habe über das vorhandene Lang-Pack /var/www/html/magento2/vendor/magento/language-de_de(composer.json, language.xml, registration.php) recherchiert , konnte aber den genauen Namen des Gebietsschemas nicht finden, wie in admin (Deutsch) aufgeführt. Also habe ich jeden Schritt verwirrt, den ich verpasst habe, um das Gebietsschema zu erstellen.

Warum wird das tamilische Sprachpaket nicht installiert?


Was meinst du mit Roadmap?
Raphael bei Digital Pianism

Schritte zu erreichen
Bilal Usean

Welche Sprache ?
Arunendra

Tamilische Sprache @Arunendra
Bilal Usean

Schaffst du das? Wenn ja, dann teilen Sie bitte den Prozess
Shawkat Alam

Antworten:


5

Schritt 1: Sammeln Sie die Sätze

Zuerst müssen Sie die Sätze herausfinden, die Sie übersetzen müssen.

Sie können dies tun, indem Sie Folgendes ausführen:

php bin/magento i18n:collect-phrases -o "/path/to/magento2/app/i18n/vendor/lg_lg/dictionary.csv"

Beachten Sie, dass dies vendordasselbe ist wie beim Entwickeln des Moduls und lg_lgder Lang-Code Ihrer Sprache ist.

Schritt 2: Erstellen Sie die composer.jsonDatei

Gehen Sie zu Ihrem app/i18n/vendor/lg_lgOrdner und erstellen Sie die composer.jsonDatei:

{
    "name": "vendor/lg"
    ,"type": "magento2-language"
    ,"description": "Tamil language"
    ,"authors": [{
        "name": "Bilal Usean",
        "email": "bla@bla.com",
        "role": "Developer"
    }]  
    ,"extra": {"map": [["*", "vendor/lg_lg"]]}
}

Schritt 3: Erstellen Sie die language.xmlDatei

Noch in Ihrem app/i18n/vendor/lg_lgOrdner müssen Sie eine language.xmlDatei erstellen :

<?xml version='1.0'?>
<language xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='urn:magento:framework:App/Language/package.xsd'>
    <code>lg_LG</code>
    <vendor>vendor</vendor>
    <package>lg_lg</package>
</language>

Schritt 4: Erstellen Sie die registration.phpDatei

Sie müssen sich noch im selben Ordner befinden und eine registration.phpDatei erstellen :

<?php

\Magento\Framework\Component\ComponentRegistrar::register(
   \Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
   'vendor_lg_lg',
   __DIR__
);

Schritt 5: übersetzen

Noch in Ihrem Ordner können Sie Ihre Übersetzungen in eine lg_lg.csvDatei schreiben, die auf dem Wörterbuch basiert, das Sie in Schritt 1 abgerufen haben. Sie können den offiziellen Leitfaden verwenden, um die Übersetzungsrichtlinien zu befolgen: http://devdocs.magento.com/guides/v2. 0 / config-guide / cli / config-cli-Unterbefehle-i18n.html # config-cli-Unterbefehle-xlate-dict-trans

Schritt 6: Erstellen Sie das Sprachpaket

Führen Sie den folgenden Befehl aus:

php bin/magento i18n:pack app/i18n/vendor/lg_lg/lg_lg.csv lg_Lg lg_LG

Wichtige Notiz

Damit dies funktioniert, muss Ihr CSV-Dateiname genau mit dem Gebietsschema übereinstimmen, einschließlich der Groß- und Kleinschreibung der Zeichen.

Offizielle Dokumentation: http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-i18n.html#config-cli-subcommands-xlate-example2


Ich habe getan, was Sie aufgelistet haben, aber eine neue Sprache, die nicht in der neuen Store-Ansicht aufgeführt ist. Was habe ich vermisst?
Bilal Usean

Haben Sie versucht var/generation, var/cacheund zu entfernen var/di?
Raphael bei Digital Pianism

Ja, es ist die Standardaktion für mich :-) Was auch immer ich zuerst geändert habe, ich entferne var / *. Ich habe meine Frage aktualisiert
Bilal Usean

Wenn Sie einen Moment Zeit
Bilal Usean

Ich habe meine Frage aktualisiert
Bilal Usean


1

Sie können der Option Allgemeines Gebietsschema keine neue Sprache hinzufügen

Der Grund dafür ist, dass Magento die PHP- Intl- Bibliothek verwendet, um das Auswahlfeld zu füllen

siehe folgende Datei

vendor/magento/framework/Locale/TranslatedLists.php

Methode _getOptionLocales ()


Ich denke schon, wie können wir anpassen oder neue lokale Sprache hinzufügen ..
Matinict

@matinict können Sie vorhandene unbenutzte verwenden.
Nahid

0

Hier finden Sie eine schrittweise Anleitung zum Erstellen eines Sprachpakets.

Führen Sie aus i18n:collect-phrases, um alle zu übersetzenden Sätze zu sammeln:

Ein Beispiel:

bin/magento i18n:collect-phrases -o "<path to Magento>/app/i18n/df/ru_ru/dictionary.csv" -m

Schritt 2

Erstellen Sie eine Magento 2-Erweiterung für das Sprachpaket.

Schritt 2.1

Erstellen Sie eine composer.json- Datei. Ein Beispiel aus dem Kern:

magento/magento2/blob/2.0.0/app/i18n/magento/de_de/composer.json

{
    "name": "magento/language-de_de",
    "description": "German (Germany) language",
    "version": "100.0.2",
    "license": [
        "OSL-3.0",
        "AFL-3.0"
    ],
    "require": {
        "magento/framework": "100.0.*"
    },
    "type": "magento2-language",
    "autoload": {
        "files": [
            "registration.php"
        ]
    }
}

Mein Komponist.json :

{
    "name": "dfl/ru"
    ,"type": "magento2-language"
    ,"description": "Russian language"
    ,"homepage": "https://mage2.pro"
    ,"license": "proprietary"
    ,"authors": [{
        "name": "Dmitry Fedyuk",
        "email": "admin@mage2.pro",
        "homepage": "https://mage2.pro/users/dmitry_fedyuk",
        "role": "Developer"
    }]  
    ,"extra": {"map": [["*", "df/ru_ru"]]}
}

Schritt 2.2

Erstellen Sie eine language.xml- Datei.

Ein Beispiel aus dem Kern:

magento / magento2 / blob / 2.0.0 / app / i18n / magento / de_de / language.xml

<?xml version="1.0"?>
<!--
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd">
    <code>de_DE</code>
    <vendor>magento</vendor>
    <package>de_de</package>
</language>

Meine language.xml :

<?xml version='1.0'?>
<language xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='urn:magento:framework:App/Language/package.xsd'>
    <code>ru_RU</code>
    <vendor>df</vendor>
    <package>ru_ru</package>
</language>

Schritt 2.3

Erstellen Sie eine registration.php Datei.

Ein Beispiel aus dem Kern:

magento / magento2 / blob / 2.0.0 / app / i18n / magento / de_de / register.php

<?php
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
    'magento_de_de',
    __DIR__
);
?>

Ich benutze eine universelle registration.php66 .

Schritt 3

Installieren Sie die Erweiterung

Schritt 4

Machen Sie die eigentliche Übersetzung und halten Sie Ihre Erweiterung auf dem neuesten Stand. Weitere Lokalisierungsthemen finden Sie unter: https://mage2.pro/tags/localization

Quelle.


danke, ich hatte diesen Link bereits ausprobiert, aber er wird die erstellte Sprache in der Store-Ansicht nicht auflisten.
Bilal Usean

Hast du etwas erraten, was ich vermisse? Ich habe meine Frage aktualisiert
Bilal Usean

Haben Sie Setup ausgeführt und den Cache geleert?
Arunendra

Ja, aber das Problem bleibt bestehen. Wie überprüfe ich den Status der Spracherweiterung? wie (config.php oder eine beliebige Befehlszeile)
Bilal Usean

0

Schritt 1: Erstellen Sie die Datei composer.json wie folgt

{
   "name": "tamil/tn_tn",
   "description": "Tamil language",
   "authors": [{
     "name": "Bilal Usean",
     "email": "xxxxxxx@xxxx.xxx",
     "role": "Developer"
   }],
   "require": {
     "magento/framework": "100.0.*"
   },
   "type": "magento2-language",
   "autoload": {
     "files": [
       "registration.php"
     ]
   }
   ,"extra": {"map": "*", "tamil/tn_tn"}
 }

Schritt 2: Erstellen Sie die Datei language.xml wie folgt

<?xml version="1.0"?>
 <language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd">
   <code>tn_TN</code>
   <vendor>tamil</vendor>
   <package>tn_tn</package>
 </language>

Schritt 3: Erstellen Sie die Datei registration.php wie diese

<?php
 \Magento\Framework\Component\ComponentRegistrar::register(
     \Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
     'tamil_tn_tn',
     __DIR__
 );

Schritt 4: Nun die übersetzte Datei platzieren tn_TN.csv in / app / i18n / Tamilisch / tn_tn Verzeichnis


Trotzdem bleibt das Problem bestehen ..... nicht in der neu erstellten Store-Ansicht aufgeführt, muss etwas vom Backend aus konfiguriert werden?
Bilal Usean

Syntax: Sie haben Komma (,) im Autor verpasst
Bilal Usean

Behoben und hinzugefügt (,) ... Sie müssen es nach dem Erstellen installieren, oder?
SiiiS

Install Mean Run Setup: Upgrade
Bilal Usean

@BilalUsean: Ja, laufe php bin/magento setup:upgrade... danach öffne /app/etc/config.phpund überprüfe den Wert von tamil_tn_tnbe 1
sIiiS
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.