Lokalisering
Med Commerce-översättningar kan ni anpassa och lokalisera er butik för flera regioner och marknader genom att generera:
- Översättningsordlistor, som är ett praktiskt sätt att anpassa eller översätta vissa ord och fraser, till exempel för en anpassad modul eller ett anpassat tema.
- Språkpaket som gör att du kan översätta några eller alla ord och fraser i Commerce-programmet.
Generera en översättningsordlista
Du kan generera en översättningsordlista om du vill anpassa befintliga strängar, översätta ord och fraser i en anpassad modul, lokalisera ett tema eller skapa språkpaket.
Om du vill börja översätta använder du ett kommando för att generera en CSV-ordlistefil med en insamlad lista över alla befintliga fraser och ord.
Så här genererar du ordlistan och börjar översättningen:
-
Extrahera översättningsbara ord och fraser från aktiverade komponenter med kommandot för översättningssamling. Innehållet extraheras till en CSV-fil.
-
Översätt befintliga ord och fraser. Du kan lägga till ytterligare anpassade termer efter behov.
Det finns alternativ för att använda den översatta ordlistan:
-
Du kan paketera översättningsordlistorna i ett språkpaket och skicka paketet till Commerce Store-administratören.
-
I Admin konfigurerar lagringsadministratören [översättningarna].
Kommandoalternativ:
bin/magento i18n:collect-phrases [-o|--output="<csv file path and name>"] [-m|--magento] <path to directory to translate>
I följande tabell förklaras parametrar och värden:
<path to directory to translate>Verktyget börjar söka på den sökväg som du anger och söker i alla filer och underkataloger som det innehåller.
Använd inte den här parametern om du använder
-m --magento.-m --magentoEtt exempel följer:
"Inga objekt hittades","Inga objekt hittades", modul, Magento_önskelista
-o --output="<path>"Om du utelämnar den här parametern dirigeras utdata till stdout.
-m|--magento.Riktlinjer för översättning
Använd följande riktlinjer när du översätter ord och fraser:
- Ändra bara innehållet i den andra kolumnen. Översätt fraserna från engelska (
US) till önskat språk. - När du skapar ordlistor för språkområden ska du använda Commerce standardsträngar.
- Var uppmärksam på platshållare vid översättning:
%1,%2
Commerce använder platshållarna för att infoga kontextvärden. De används inte för översättningar. Exempel:
Product '%1' has been added to shopping cart.
Fyller med ett värde:
Product 'Multimeter-2000' has been added to shopping cart.
Den resulterande frasen måste innehålla minst en platshållare. Anta till exempel att det finns platshållare från %1 till %3 i den ursprungliga frasen. Översättningen kan ha så många av dessa platshållare i vilken ordning som helst, men det måste finnas minst en förekomst av %1, %2 och %3. Översättningen får inte innehålla platshållarvärden som inte finns i det ursprungliga värdet (till exempel %4, %5 och så vidare).
Ett exempel på översättning av en fras:
"Buy %1 for %2 (%3 incl. tax) each","Compre %1 por %2 (%3 incl. imposto) cada"
Skapa ett språkpaket
I motsats till en översättningsordlista kan du översätta några eller alla ord och fraser i Commerce-programmet med hjälp av ett språkpaket. Du kan översätta en viss komponent - som en modul eller ett tema - med hjälp av ett översättningslexikon. Läs mer om språkpaket.
I det här avsnittet beskrivs hur du skapar ett språkpaket som skriver CSV-filer till moduler och teman. Om du vill skapa ett språkpaket måste du utföra de uppgifter som beskrivs i följande avsnitt:
- Samla in och översätta ord och fraser. (Parametern
--magentokrävs.) - Kör språkpaketkommandot.
- Skapa kataloger och filer.
- (Valfritt.) Konfigurera flera paket för ett språk .
Kör språkpaketkommandot
Kommandoanvändning:
bin/magento i18n:pack [-m|--mode={merge|replace}] [-d|--allow-duplicates] <source> <locale>
I följande tabell förklaras parametrarna och värdena för språkpaketkommandot:
<source>Använd
bin/magento i18n:collect-phrases för att skapa CSV-filen och skapa sedan språkpaketet enligt beskrivningen i Skapa kataloger och filer.<locale>de_DE, pt_PT, pt_BR.-m --modeVärden: sammanfoga eller ersätt (standard).
-d --allow-duplicatesSkapa kataloger och filer
Språkpaket finns i en katalog under app/i18n/<VendorName> i Commerce-filsystemet med följande innehåll:
- Nödvändiga licensfiler
composer.jsonregistration.phpsom [registrerar] språkpaketetlanguage.xmlmetainformationsfil
de_de].Så här skapar du dessa filer:
-
Skapa en katalog under
app/i18n.Commerce språkpaket finns till exempel i
app/i18n/magento -
Lägg till nödvändiga licensfiler.
-
Lägg till
composer.jsonsom anger beroenden för ditt språkpaket. -
Registrera språkpaketet med [
registration.php] -
Lägg till
language.xmlmetainformationsfil enligt beskrivningen i nästa avsnitt.
Språk.xml
När du deklarerar ett språkpaket i konfigurationsfilen language.xml måste du ange språkarvssekvensen för det här paketet.
Med språkarv kan du skapa en översättning som kallas underordnad baserat på en befintlig översättning som kallas överordnad. De underordnade översättningarna åsidosätter den överordnade. Om den underordnade översättningen inte kan överföras eller visas, eller om en fras eller ett ord saknas, använder Commerce den överordnade språkinställningen. Exempel på arv av språkpaket.
Om du vill deklarera ett paket anger du följande information:
<?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>
Var:
code- Språkpaketets nationella inställningar (krävs)vendor- Modulens leverantörsnamn (obligatoriskt)package- Namn på språkpaket (obligatoriskt)sort_order- Prioritet för att överföra ett paket när det finns flera språkpaket tillgängliga för en butikuse- Språkpaket för överordnat språk som ordlistor ska ärvas från
Om det behövs kan du ange flera överordnade paket. De överordnade paketen tillämpas på den första listade, först använda basen.
Exempel på språkarv
Anta att ett språkpaket ärver från två andra paket och att dessa paket också har överordnade och "indirekt överordnade" paket.
Om ett språkpaket ärver från två paket kan dess language.xml se ut så här:
<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>
I föregående exempel:
language_package_oneärver frånen_au_packageochen_au_packageärver frånen_ie_packagelanguage_package_twoärver frånen_ca_packageochen_ca_packageärver frånen_us_package
Om Commerce-programmet inte kan hitta ord eller fras i paketet en_GB söker det i andra paket i följande sekvens:
parent-package-one/language_package_one<vendorname>/en_au_package<vendorname>/en_ie_packageparent-package-two/language_package_two<vendorname>/en_ca_package<vendorname>/en_us_package
Om du anger alla arv mellan språkpaketen kan det leda till att cirkulära arvskedjor skapas. Använd Magento\Test\Integrity\App\Language\CircularDependencyTest för att hitta och åtgärda sådana kedjor.
Konfigurera flera paket för ett språk
Du kan göra din butik mer flexibel genom att ladda upp flera språkpaket för samma språk i butiken. Du kan alltså använda olika anpassade paket för olika delar av din butik eftersom systemet kompilerar ett paket från alla paket som är tillgängliga för ett språk.
Om du vill aktivera ytterligare ett paket för ett befintligt språk namnger du det nya paketet vilket namn som helst, förutom ett befintligt språkkodsnamn (för att undvika missförstånd). Ange konfigurationer för ett paket i språkpaketets language.xml-metainformationsfil, vilket beskrivs i nästa avsnitt.
Exempel på hur du använder översättningskommandon
I följande avsnitt ges kompletta exempel på hur du använder de kommandon som beskrivs i det här avsnittet för att skapa översättningsordlistor och översättningspaket:
Exempel: Skapa en översättningsordlista för en modul eller ett tema
Så här lägger du till en tysk översättning till en modul eller ett tema som du vill distribuera till andra handlare:
-
Samla in fraser från modulen:
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/SampleModulenote info INFO CSV-filnamnet måste exakt matcha språkinställningen, inklusive tecknens skiftläge. -
Översätt ord och fraser med dessa riktlinjer.
-
Om det behövs kopierar du
xx_YY.csvtill/var/www/html/magento2/app/code/ExampleCorp/SampleModule/i18neller till modulens temakatalog (beroende på om översättningsordlistan är för en modul eller ett tema).
Exempel: Skapa ett språkpaket
Generera en CSV-fil på ungefär samma sätt som i föregående exempel, men i stället för att ange en modul eller temakatalog anger du hela Commerce programrotkatalog. Den resulterande CSV-filen innehåller fraser som kommandot kan hitta i koden.
-
Samla in fraser från modulen:
code language-bash bin/magento i18n:collect-phrases -o "/var/www/html/magento2/xx_YY.csv" -mnote info INFO CSV-filnamnet måste exakt matcha språkinställningen, inklusive tecknens skiftläge. -
Översätt ord och fraser med dessa riktlinjer.
-
Skapa språkpaketet.
code language-bash bin/magento i18n:pack /var/www/html/magento2/xx_YY.csv -d xx_YY -
Skapa en katalog för språkpaketet.
Exempel:
/var/www/html/magento2/app/i18n/ExampleCorp/xx_yy -
Lägg till följande i den katalogen:
- En licens, om det behövs
composer.json(exemplet nedan)registration.php(exemplet nedan)language.xml(exemplet nedan)
Exempel
composer.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" ] } }Exempel
registration.php:code language-php <?php /** * Copyright [first year code created] Adobe * All Rights Reserved. */ use Magento\Framework\Component\ComponentRegistrar; ComponentRegistrar::register( ComponentRegistrar::LANGUAGE, 'magento_xx_yy', __DIR__ );Exempel
language.xml:code language-xml <?xml version="1.0"?> <!-- Copyright [first year code created] Adobe All Rights Reserved. --> <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>