Localizzazione
Le traduzioni Commerce ti consentono di personalizzare e localizzare il tuo negozio per più aree geografiche e mercati generando:
- Dizionari di traduzione, che sono un modo pratico per personalizzare o tradurre alcuni parole e frasi, ad esempio quelle per un modulo o un tema personalizzato.
- Pacchetti per lingua che ti consentono di tradurre uno o tutti parole e frasi nell’applicazione Commerce.
Consulta Panoramica sulle traduzioni.
Generare un dizionario di traduzione
Puoi generare un dizionario di traduzione per personalizzare le stringhe esistenti, traduci parole e frasi in un modulo personalizzato, localizza un tema o crea pacchetti di lingue.
Per iniziare la traduzione, utilizza un comando per generare un file CSV del dizionario con un elenco di tutte le frasi e parole esistenti.
Per generare il dizionario e avviare la traduzione:
-
Estrai termini e frasi traducibili dai componenti abilitati utilizzando il comando raccolta di traduzioni. Il contenuto viene estratto in un file CSV.
-
Traduci parole e frasi esistenti. Se necessario, puoi aggiungere altri termini personalizzati.
Sono disponibili opzioni per l’utilizzo del dizionario tradotto:
-
Puoi creare un pacchetto dei dizionari di traduzione in un pacchetto per lingua e fornirlo all’amministratore di Commerce Store.
-
Nell’amministratore, l’amministratore dello store configura le traduzioni.
Opzioni comando:
bin/magento i18n:collect-phrases [-o|--output="<csv file path and name>"] [-m|--magento] <path to directory to translate>
Nella tabella seguente vengono illustrati i parametri e i valori:
<path to directory to translate>
Lo strumento inizia la ricerca nel percorso immesso e cerca tutti i file e le sottodirectory in esso contenuti.
Non utilizzare questo parametro se si utilizza
-m --magento
.-m --magento
Di seguito è riportato un esempio:
"Nessun elemento trovato","Nessun elemento trovato",modulo,Magento_Wishlist
-o --output="<path>"
Se si omette questo parametro, l'output viene indirizzato a stdout.
-m|--magento
opzione.Linee guida per la traduzione
Utilizza le seguenti linee guida per tradurre parole e frasi:
- Modificare solo il contenuto della seconda colonna. Traduci le frasi da Inglese (
US
) alla lingua desiderata. - Quando crei dizionari per le lingue, utilizza le stringhe Commerce predefinite.
- Durante la traduzione, presta attenzione ai segnaposto:
%1
,%2
Commerce utilizza i segnaposto per inserire valori contestuali; sono non utilizzato per le traduzioni. Ad esempio:
Product '%1' has been added to shopping cart.
Popola con un valore:
Product 'Multimeter-2000' has been added to shopping cart.
La frase risultante deve contenere almeno uno di ciascun segnaposto. Si supponga, ad esempio, che siano presenti segnaposto da %1
a %3
nella frase originale. La traduzione può avere un numero illimitato di segnaposto in qualsiasi ordine, ma deve esserci almeno un'occorrenza di %1
, %2
, e %3
. La traduzione non può contenere valori segnaposto non presenti nel valore originale (ad esempio, %4
, %5
e così via).
Un esempio di traduzione di una frase:
"Buy %1 for %2 (%3 incl. tax) each","Compre %1 por %2 (%3 incl. imposto) cada"
Creare un pacchetto lingua
Al contrario di un dizionario di traduzione, puoi tradurre qualsiasi parola o tutte le parole e le frasi nell’applicazione Commerce utilizzando un pacchetto lingua. È possibile tradurre un particolare componente, come un modulo o un tema, utilizzando un dizionario di traduzione. Ulteriori informazioni sui pacchetti per lingua.
Questa sezione illustra come creare un pacchetto per la lingua, che scrive i file CSV in moduli e temi. Per creare un pacchetto lingua, è necessario eseguire le attività descritte nelle sezioni seguenti:
- Raccogliere e tradurre parole e frasi. (Il
--magento
è obbligatorio.) - Esegui il comando del pacchetto lingua.
- Creare directory e file.
- (Facoltativo.) Configurare più pacchetti per una lingua.
Esegui il comando del pacchetto lingua
Utilizzo comando:
bin/magento i18n:pack [-m|--mode={merge|replace}] [-d|--allow-duplicates] <source> <locale>
Nella tabella seguente vengono illustrati i parametri e i valori per il comando Language Package:
<source>
Utilizzare
bin/magento i18n:collect-phrases
per creare il file CSV, quindi crea il pacchetto lingua come descritto in Creare directory e file.<locale>
de_DE
, pt_PT
, pt_BR
.-m --mode
Valori: unisci o sostituisci (impostazione predefinita).
-d --allow-duplicates
Creare directory e file
I pacchetti di lingua si trovano in una directory in app/i18n/<VendorName>
nel file system di Commerce con i seguenti contenuti:
- File di licenza richiesti
composer.json
registration.php
che registri il pacchetto lingualanguage.xml
file di metadati
de_de
].Per creare questi file:
-
Creare una directory in
app/i18n
.Ad esempio, i pacchetti per lingua Commerce si trovano in
app/i18n/magento
-
Aggiungi i file di licenza richiesti.
-
Aggiungi [
composer.json
] che specifica le dipendenze per il pacchetto lingua. -
Registrare il pacchetto lingua con [
registration.php
] -
Aggiungi
language.xml
file di metadati, come descritto nella sezione successiva.
Language.xml del pacchetto lingua
Quando si dichiara un pacchetto lingua in language.xml
file di configurazione, è necessario specificare la sequenza dell'ereditarietà della lingua per questo pacchetto.
L’ereditarietà della lingua consente di creare una traduzione denominata secondario in base a una traduzione esistente denominata principale. Le traduzioni secondarie hanno la precedenza su quelle principali. Tuttavia, se la traduzione secondaria non viene caricata o visualizzata o manca una frase o una parola, Commerce utilizza le impostazioni locali principali. Esempi di ereditarietà dei pacchetti di linguaggio.
Per dichiarare un pacchetto, specificare le informazioni seguenti:
<?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>
Dove:
code
- Impostazioni locali del pacchetto lingua (obbligatorio)vendor
- Nome del fornitore del modulo (obbligatorio)package
- Nome pacchetto lingua (obbligatorio)sort_order
- Priorità di caricamento di un pacchetto quando sono disponibili diversi pacchetti di lingue per uno storeuse
- Impostazioni locali del pacchetto lingua padre da cui ereditare i dizionari
Se necessario, puoi specificare diversi pacchetti principali. I pacchetti padre vengono applicati in base al primo elenco utilizzato.
Esempio di ereditarietà del linguaggio
Supponiamo che un pacchetto di linguaggio erediti da altri due pacchetti e che questi pacchetti abbiano anche pacchetti padre e "nonno".
Se un pacchetto di linguaggio eredita da due pacchetti, language.xml
potrebbe essere simile al seguente:
<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>
Nell’esempio precedente:
language_package_one
eredita daen_au_package
een_au_package
eredita daen_ie_package
language_package_two
eredita daen_ca_package
een_ca_package
eredita daen_us_package
Se l’applicazione Commerce non è in grado di trovare una parola o una frase nel en_GB
pacchetto, cerca in altri pacchetti nella seguente sequenza:
parent-package-one/language_package_one
<vendorname>/en_au_package
<vendorname>/en_ie_package
parent-package-two/language_package_two
<vendorname>/en_ca_package
<vendorname>/en_us_package
La specifica di tutte le ereditarietà tra i pacchetti di linguaggio potrebbe causare la creazione di catene di ereditarietà circolari. Utilizzare Magento\Test\Integrity\App\Language\CircularDependencyTest per individuare e correggere tali catene.
Configurare più pacchetti per una lingua
Per rendere il tuo negozio più flessibile, puoi caricare diversi pacchetti linguistici per la stessa lingua nel tuo negozio. Pertanto, puoi utilizzare pacchetti personalizzati diversi per parti diverse del tuo archivio, perché il sistema compila un singolo pacchetto da tutti i pacchetti disponibili per una lingua.
Per abilitare un pacchetto aggiuntivo per una lingua esistente, assegna al nuovo pacchetto un nome qualsiasi ad eccezione del nome di un codice della lingua esistente (per evitare confusione). Specificare le configurazioni di un pacchetto nel file del pacchetto lingua language.xml
file di metadati, come descritto nella sezione successiva.
Esempi di utilizzo dei comandi di traduzione
Nelle sezioni seguenti vengono forniti esempi end-to-end dell'utilizzo dei comandi descritti in questo argomento per creare dizionari di traduzione e pacchetti di traduzione:
Esempio: creare un dizionario di traduzione per un modulo o un tema
Per aggiungere una traduzione in tedesco a un modulo o a un tema che desideri distribuire ad altri commercianti:
-
Raccogli frasi dal modulo:
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 Il nome del file CSV deve corrisponde esattamente le impostazioni locali, comprese le lettere maiuscole e minuscole dei caratteri. -
Traduci parole e frasi utilizzando le presenti linee guida.
-
Se necessario, copia
xx_YY.csv
a/var/www/html/magento2/app/code/ExampleCorp/SampleModule/i18n
o nella directory dei temi del modulo (a seconda che il dizionario di traduzione sia per un modulo o per un tema).
Esempio: creare un pacchetto lingua
Come nell’esempio precedente, genera un file CSV, ma invece di specificare un modulo o una directory tematica, specifica l’intera directory principale dell’applicazione Commerce. Il file CSV risultante contiene tutte le frasi che il comando potrebbe trovare nel codice.
-
Raccogli frasi dal modulo:
code language-bash bin/magento i18n:collect-phrases -o "/var/www/html/magento2/xx_YY.csv" -m
note info INFO Il nome del file CSV deve corrisponde esattamente le impostazioni locali, comprese le lettere maiuscole e minuscole dei caratteri. -
Traduci parole e frasi utilizzando le presenti linee guida.
-
Crea il pacchetto lingua.
code language-bash bin/magento i18n:pack /var/www/html/magento2/xx_YY.csv -d xx_YY
-
Crea una directory per il pacchetto lingua.
Ad esempio:
/var/www/html/magento2/app/i18n/ExampleCorp/xx_yy
-
In tale directory, aggiungi quanto segue:
- Una licenza, se necessario
composer.json
(esempio seguente)registration.php
(esempio seguente)language.xml
(esempio seguente)
Esempio
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" ] } }
Esempio
registration.php
:code language-php <?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ use Magento\Framework\Component\ComponentRegistrar; ComponentRegistrar::register( ComponentRegistrar::LANGUAGE, 'magento_xx_yy', __DIR__ );
Esempio
language.xml
:code language-xml <?xml version="1.0"?> /** * Copyright © 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>