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": "[email protected]",
    "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?

Bilal Usean
quelle
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": "[email protected]",
        "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

Raphael beim digitalen Pianismus
quelle
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
2

In Tamil müssen Sie ISO- Code und internationalen Code für Tamil ta_IN (Tamil ta / INDIA - IN ) hinzufügen. https://www.w3schools.com/tags/ref_language_codes.asp https://www.w3schools.com/tags/ref_country_codes .asp

und Sie müssen diesen Code im vendor/magento/framework/Locale/config.php Verzeichnis hinzufügen Geben Sie hier die Bildbeschreibung ein

Anschließend installieren Sie mit dem Befehl " php bin / magento setup: static-content: deploy -f ta_IN ".

hoffe es wird funktionieren

Geben Sie hier die Bildbeschreibung ein

Prem
quelle
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 ()

Dhiraj
quelle
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": "[email protected]",
        "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.

Arunendra
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": "[email protected]",
     "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

sIiiS
quelle
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