Lokalisatie

WARNING
Alle bevelen van het Magento CLI moeten door de eigenaar van het dossiersysteemworden in werking gesteld.

Met Commerce-vertalingen kunt u uw winkel voor meerdere regio's en markten aanpassen en lokaliseren door het volgende te genereren:

  • Vertaal woordenboeken, die een geschikte manier zijn om sommige woorden en uitdrukkingen, zoals die voor een douanemodule of een thema aan te passen of te vertalen.
  • pakketten van de Taal die u toelaten om om het even welk of alle woorden en uitdrukkingen in de toepassing van Commerce te vertalen.

Zie Overzicht van Vertalingen.

Een vertaalwoordenboek genereren

U kunt a vertaalwoordenboekproduceren om bestaande koorden aan te passen, woorden en uitdrukkingen in een douanemodule vertalen, een thema lokaliseren, of taalpakketten tot stand brengen.

Als u wilt beginnen met het vertalen, gebruikt u een opdracht om een CSV-woordenboekbestand te genereren met een verzamelde lijst van alle bestaande woordgroepen en woorden.

U genereert het woordenboek als volgt en u begint met vertalen:

  1. Extraheer vertaalbare woorden en woordgroepen uit ingeschakelde componenten met behulp van de opdracht Vertaalverzameling. Inhoud wordt uitgepakt in een CSV-bestand.

  2. Vertaal de bestaande woorden en woordgroepen. Desgewenst kunt u aanvullende aangepaste voorwaarden toevoegen.

    U hebt opties voor het gebruik van het vertaalde woordenboek:

  3. U kunt de vertaalwoordenboeken verpakken in een taalpakket en het pakket leveren aan de beheerder van de Commerce-winkel.

  4. In Admin, vormt de opslagbeheerder [ de vertalingen ].

Opdrachtopties:

bin/magento i18n:collect-phrases [-o|--output="<csv file path and name>"] [-m|--magento] <path to directory to translate>

In de volgende tabel worden parameters en waarden beschreven:

Parameter
Waarde
Vereist?
<path to directory to translate>
Pad naar een map met vertaalbare code, met andere woorden PHP-, PHTML- of XML-bestanden met te vertalen zinnen.

het hulpmiddel begint bij de weg te zoeken die u ingaat en alle dossiers en subdirectories zoekt het bevat.

gebruik deze parameter niet als u -m --magento gebruikt.
Ja (woordenboeken), nee (pakketten).
-m --magento
Vereist voor het maken van een taalpakket op basis van dit vertaalwoordenboek. Indien gebruikt, zoekt naar de folders die bak/magento bevatten. Met deze optie voegt u thema's of modules toe aan elke regel in het woordenboek.

een steekproef volgt:

"Geen Gevonden Punten", "Geen Gevonden Punten", module, Magento_Wishlist
Nee
-o --output="<path>"
Hier geeft u het absolute pad naar het bestandssysteem en de bestandsnaam op van het CSV-bestand voor het vertaalwoordenboek dat u wilt maken. De waarde die u invoert, is hoofdlettergevoelig. De naam van het CSV-bestand moet exact overeenkomen met de naam van de landinstelling, inclusief het hoofdlettergebruik.

als u deze parameter weglaat, wordt de output geleid aan stdout.
Nee
INFO
Om een taalpak van een vertaalwoordenboek tot stand te brengen, moet u __ de -m|--magento optie gebruiken.

Richtlijnen voor vertaling

Gebruik de volgende richtlijnen bij het vertalen van woorden en woordgroepen:

  • Wijzig alleen de inhoud van de tweede kolom. Vertaal de uitdrukkingen van het Engels (US) aan de gewenste taal.
  • Gebruik de standaard Commerce-tekenreeksen wanneer u woordenboeken voor landinstellingen maakt.
  • Let tijdens het vertalen op de plaatsaanduidingen: %1, %2

Commerce gebruikt placeholders om contextwaarden op te nemen; zij worden niet gebruikt voor vertalingen. Bijvoorbeeld:

Product '%1' has been added to shopping cart.

Populaten met een waarde:

Product 'Multimeter-2000' has been added to shopping cart.

De resulterende uitdrukking moet minstens één van elke placeholder bevatten. Stel dat de oorspronkelijke uitdrukking plaatsaanduidingen bevat van %1 tot %3 . De vertaling kan een onbeperkt aantal van deze plaatsaanduidingen bevatten, maar er moet minstens één voorkomen voorkomen van %1 , %2 en %3 . De vertaling kan geen plaatsaanduidingswaarden bevatten die niet voorkomen in de oorspronkelijke waarde (bijvoorbeeld %4 , %5 , enzovoort).

Een voorbeeld van het vertalen van een woordgroep:

"Buy %1 for %2 (%3 incl. tax) each","Compre %1 por %2 (%3 incl. imposto) cada"

Een taalpakket maken

In tegenstelling tot een vertaalwoordenboek kunt u een of meer woorden en woordgroepen in de Commerce-toepassing vertalen met behulp van een taalpakket. U kunt een bepaalde component, zoals een module of een thema, vertalen met een vertaalwoordenboek. [ leer meer over taalpakketten ].

In deze sectie wordt besproken hoe u een taalpakket kunt maken, waarin CSV-bestanden naar modules en thema's worden geschreven. Als u een taalpakket wilt maken, moet u de in de volgende secties beschreven taken uitvoeren:

De opdracht Taalpakket uitvoeren

Opdrachtgebruik:

bin/magento i18n:pack [-m|--mode={merge|replace}] [-d|--allow-duplicates] <source> <locale>

In de volgende tabel worden de parameters en waarden voor de opdracht Taalpakket uitgelegd:

Parameter
Waarde
Vereist?
<source>
Absoluut pad naar bestandssysteem en bestandsnaam van een CSV-bestand met het gecombineerde vertaalwoordenboek en de metagegevens die nodig zijn voor de indeling in een taalpakket.

Gebruik bin/magento i18n:collect-phrases om het Csv- dossier tot stand te brengen dan tot het taalpakket zoals die in wordt besproken leidt tot folders en dossiers.
Ja
<locale>
ISO 639-1(taal) en ISO 3166(land) herkenningsteken van taal die als dossiernaam voor alle resulterende Csv- dossiers wordt gebruikt. Voorbeelden: de_DE , pt_PT , pt_BR .
Ja
-m --mode
Als er een doelbestand bestaat, geeft u op of het bestaande taalpakket moet worden vervangen of moet worden samengevoegd met het nieuwe taalpakket. Bij het samenvoegen worden alle bestaande woordgroepen overschreven en worden er nieuwe toegevoegd.

Waarden: fusie of vervang (gebrek).
Nee
-d --allow-duplicates
Neem deze optie op als u duplicaten in het taalpakket wilt toestaan. Anders mislukt de opdracht met een fout als dezelfde woordgroep wordt aangetroffen in meerdere items met verschillende vertalingen.
Nee

Mappen en bestanden maken

Taalpakketten bevinden zich in een map onder app/i18n/<VendorName> in het Commerce-bestandssysteem met de volgende inhoud:

  • Vereiste licentiebestanden
  • composer.json
  • registration.php dat registershet taalpakket
  • language.xml bestand met metagegevens
INFO
U moet het hele pad in kleine letters plaatsen. Zie bijvoorbeeld [de_de] .

U kunt als volgt deze bestanden maken:

  1. Maak een map onder app/i18n .

    Commerce-taalpakketten bevinden zich bijvoorbeeld in app/i18n/magento

  2. Voeg de vereiste licentiebestanden toe.

  3. Voeg [composer.json] toe die gebiedsdelen voor uw taalpakket specificeert.

  4. Het taalpakket registreren bij [registration.php]

  5. Voeg language.xml meta-informatiedossier toe zoals die in de volgende sectie wordt besproken.

Taalpakket taal.xml

Wanneer u een taalpakket in het configuratiebestand van language.xml declareert, moet u de volgorde van de taalovererving voor dit pakket opgeven.

De overerving van de taal laat u toe om een vertaling tot stand te brengen genoemd a kind dat op een bestaande vertaling wordt gebaseerd geroepen a ouder. De onderliggende vertalingen overschrijven het bovenliggende element. Als de onderliggende vertaling echter niet kan worden geüpload of weergegeven of als er een woordgroep of woord ontbreekt, gebruikt Commerce de bovenliggende landinstelling. Voorbeelden van taalpakketovererving.

Geef de volgende informatie op om een pakket te declareren:

<?xml version="1.0"?>
<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd">
    <code>en_GB</code>
    <vendor>magento</vendor>
    <package>en_gb</package>
    <sort_order>100</sort_order>
    <use vendor="oxford-university" package="en_us"/>
</language>

Waarbij:

  • code—Taalpakketlandinstelling (vereist)
  • vendor—De leveranciersnaam van de module (vereist)
  • package—Taalpakketnaam (vereist)
  • sort_order—Prioriteit bij het uploaden van een pakket wanneer er meerdere taalpakketten beschikbaar zijn voor een winkel
  • use—Landinstelling bovenliggende taalpakket waaruit woordenboeken moeten worden overgenomen

Indien nodig kunt u verschillende bovenliggende pakketten opgeven. De bovenliggende pakketten worden toegepast op een eerst weergegeven, eerst gebruikte basis.

Voorbeeld van taalovererving

Veronderstel dat een taalpakket van twee andere pakketten erft, en dat die pakketten ook ouder en "grootouder"pakketten hebben.

Als een taalpakket overerft van twee pakketten, ziet language.xml er als volgt uit:

<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd">
    <code>en_GB</code>
    <vendor>magento</vendor>
    <package>language_pack</package>
    <sort_order>100</sort_order>
    <use vendor="parent-package-one" package="language_package_one"/>
    <use vendor= "parent-package-two" package="language_package_two"/>
</language>

In het vorige voorbeeld:

  • language_package_one neemt van en_au_package en en_au_package overerft van en_ie_package
  • language_package_two neemt van en_ca_package en en_ca_package overerft van en_us_package

Als de Commerce-toepassing geen woord of woordgroep kan vinden in het en_GB -pakket, zoekt het in de volgende volgorde in andere pakketten:

  1. parent-package-one/language_package_one
  2. <vendorname>/en_au_package
  3. <vendorname>/en_ie_package
  4. parent-package-two/language_package_two
  5. <vendorname>/en_ca_package
  6. <vendorname>/en_us_package

Als u alle overervingen tussen de taalpakketten opgeeft, kan dit leiden tot circulaire overervingsketens. Gebruik Magento\Test\Integrity\App\Language\CircularDependencyTesttest om van dergelijke ketens de plaats te bepalen en te bevestigen.

Meerdere pakketten voor een taal configureren

Om uw winkel flexibeler te maken, kunt u verschillende taalpakketten voor dezelfde taal in uw winkel uploaden. U kunt dus verschillende aangepaste pakketten gebruiken voor verschillende onderdelen van uw winkel, omdat het systeem één pakket compileert van alle pakketten die beschikbaar zijn voor een taal.

Om een extra pakket voor een bestaande taal toe te laten, noem het nieuwe pakket om het even welke naam behalve een bestaande taalcodenaam (om verwarring te vermijden). Geef configuraties van een pakket op in het meta-informatiebestand language.xml van het taalpakket, zoals in de volgende sectie wordt besproken.

Voorbeelden van het gebruik van vertaalopdrachten

De volgende secties verstrekken voorbeelden van begin tot eind van het gebruiken van de bevelen die in dit onderwerp worden besproken om vertaalwoordenboeken en vertaalpakketten tot stand te brengen:

Voorbeeld: een vertaalwoordenboek maken voor een module of thema

U voegt als volgt een Duitse vertaling toe aan een module of thema dat u wilt verspreiden onder andere verkopers:

  1. Verzamel zinnen uit uw module:

    code language-bash
    bin/magento i18n:collect-phrases -o "/var/www/html/magento2/app/code/ExampleCorp/SampleModule/i18n/xx_YY.csv" /var/www/html/magento2/app/code/ExampleCorp/SampleModule
    
    note info
    INFO
    Het CSV- dossier - naam moet precies de scène aanpassen, met inbegrip van het geval van karakters.
  2. Vertaal de woorden en de uitdrukkingen gebruikend deze richtlijnen.

  3. Kopieer indien nodig xx_YY.csv naar /var/www/html/magento2/app/code/ExampleCorp/SampleModule/i18n of naar de themamap van de module (afhankelijk van of het vertaalwoordenboek voor een module of een thema is).

Voorbeeld: Een taalpakket maken

Vergelijkbaar met het voorgaande voorbeeld genereert u een CSV-bestand. In plaats van een module- of themamap op te geven, geeft u echter de volledige hoofdmap van de Commerce-toepassing op. Het resulterende CSV-bestand bevat alle woordgroepen die de opdracht in de code kan vinden.

  1. Verzamel zinnen uit uw module:

    code language-bash
    bin/magento i18n:collect-phrases -o "/var/www/html/magento2/xx_YY.csv" -m
    
    note info
    INFO
    Het CSV- dossier - naam moet precies de scène aanpassen, met inbegrip van het geval van karakters.
  2. Vertaal de woorden en de uitdrukkingen gebruikend deze richtlijnen.

  3. Maak het taalpakket.

    code language-bash
    bin/magento i18n:pack /var/www/html/magento2/xx_YY.csv -d xx_YY
    
  4. Maak een map voor het taalpakket.

    Bijvoorbeeld: /var/www/html/magento2/app/i18n/ExampleCorp/xx_yy

  5. Voeg in die map de volgende elementen toe:

    • Een vergunning, indien vereist
    • composer.json (voorbeeld hieronder)
    • registration.php (voorbeeld hieronder)
    • language.xml (voorbeeld hieronder)

    Voorbeeldcomposer.json :

    code language-json
    {
        "name": "examplecorp/language-xx_yy",
        "description": "Sample language",
        "version": "100.0.2",
        "license": [
            "OSL-3.0",
            "AFL-3.0"
        ],
        "require": {
            "magento/framework": "100.0.*"
        },
        "type": "magento2-language",
        "autoload": {
            "files": [
                "registration.php"
            ]
        }
    }
    

    Voorbeeldregistration.php :

    code language-php
    <?php
    /**
     * Copyright &copy; Magento, Inc. All rights reserved.
     * See COPYING.txt for license details.
     */
    
    use Magento\Framework\Component\ComponentRegistrar;
    
    ComponentRegistrar::register(
        ComponentRegistrar::LANGUAGE,
        'magento_xx_yy',
        __DIR__
    );
    

    Voorbeeldlanguage.xml :

    code language-xml
    <?xml version="1.0"?>
    /**
    * Copyright &copy; Magento, Inc. 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>xx_YY</code>
        <vendor>examplecorp</vendor>
        <package>xx_yy</package>
    </language>
    
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c