Rendere l'app localizzabileMake your app localizable

Un'app localizzata è una che può essere localizzata per altri mercati, lingue o aree senza individuare eventuali difetti funzionali nell'app.A localized app is one that can be localized for other markets, languages, or regions without uncovering any functional defects in the app. La proprietà più essenziale di un'app localizzabile è che il codice eseguibile è stato separato chiaramente dalle risorse localizzabili.The most essential property of a localizable app is that its executable code has been cleanly separated from its localizable resources. Quindi, è necessario determinare quale delle risorse dell'app deve essere localizzata.So, you should determine which of your app's resources need to be localized. Chiedersi se l'app deve essere localizzata per altri mercati.Ask yourself what needs to change if your app is to be localized for other markets.

Si consiglia inoltre di acquisire familiarità con le linee guida per la globalizzazione.We also recommend that you become familiar with the guidelines for globalization.

Inserire le stringhe in file di risorse (. resw)Put your strings into Resources Files (.resw)

Non impostare come hardcoded i valori letterali stringa nel codice imperativo, markup XAML, né nel manifesto del pacchetto dell'app.Don't hard-code string literals in your imperative code, XAML markup, nor in your app package manifest. Al contrario, inserire le stringhe in file di risorse (. resw) in modo che possano essere adattate a diversi mercati locali indipendentemente dai binari compilati dell'app.Instead, put your strings into Resources Files (.resw) so that they can be adapted to different local markets independently of your app's built binaries. Per informazioni dettagliate, vedere localizzare le stringhe nell'interfaccia utente e nel manifesto del pacchetto dell'applicazione.For details, see Localize strings in your UI and app package manifest.

In questo argomento viene inoltre illustrato come aggiungere commenti al file di risorse predefinito (con estensione resw).That topic also shows you how to add comments to your default Resources File (.resw). Se ad esempio si sta adottando una voce o un tono informale, assicurarsi di spiegarlo nei commenti.For example, if you are adopting an informal voice or tone then be sure to explain that in comments. Inoltre, per ridurre al minimo le spese, verificare che vengano fornite ai traduttori solo le stringhe che devono essere convertite.Also, to minimize expense, confirm that only the strings that need to be translated are provided to translators.

Impostare la lingua predefinita per l'app in modo appropriato nel file di origine del manifesto del pacchetto dell'applicazione ( Package.appxmanifest file).Set the default language for your app appropriately in your app package manifest source file (the Package.appxmanifest file). La lingua predefinita determina la lingua usata quando le lingue preferite dell'utente non corrispondono a nessuna delle lingue supportate dall'app.The default language determines the language that's used when the user's preferred languages don't match any of the supported languages of your app. Contrassegnare tutte le risorse con la lingua (anche quelle nella lingua predefinita, ad esempio), in \Assets\en-us\Logo.png modo che il sistema possa indicare la lingua in cui si trova la risorsa e il modo in cui viene usata in determinate situazioni.Mark all of your resources with their language (even the ones in your default language, for example \Assets\en-us\Logo.png) so that the system can tell which language the resource is in and how it's used in particular situations.

Personalizzare le immagini e altre risorse file per la linguaTailor your images and other file resources for language

Idealmente, sarà possibile globalizzare le immagini in modo da — renderle indipendenti dalle impostazioni cultura.Ideally, you will be able to globalize your images—that is, make them culture-independent. Per tutte le immagini e altre risorse di file in cui non è possibile, creare tutte le diverse varianti necessarie e inserire i qualificatori di lingua appropriati nei nomi di file o cartelle.For any images and other file resources where that's not possible, create as many different variants of them as you need and put the appropriate language qualifiers into their file or folder names. Per altre informazioni, vedere personalizzare le risorse per la lingua, la scalabilità, il contrasto elevato e altri qualificatori.To learn more, see Tailor your resources for language, scale, high contrast, and other qualifiers.

Per ridurre al minimo i costi di localizzazione, non inserire testo né materiale con distinzione culturale in immagini per iniziare.To minimize localization costs, don't put text nor culturally-sensitive material into images to begin with. Un'immagine appropriata nelle proprie impostazioni cultura può essere offensiva o interpretata erroneamente in altre culture.An image that's appropriate in your own culture might be offensive or misinterpreted in other cultures. Evitare l'uso di immagini specifiche delle impostazioni cultura, come le cassette postali, che non sono comuni in tutto il mondo.Avoid the use of culture-specific images such as mailboxes, which are not common around the world. Evitare simboli religiosi, animali, politiche o immagini specifiche del sesso.Avoid religious symbols, animals, political, or gender-specific images. La visualizzazione di carne, parti del corpo o movimenti della mano può anche essere un argomento sensibile.The display of flesh, body parts, or hand gestures can also be a sensitive topic. Se non è possibile evitare tutti questi problemi, è necessario localizzare le immagini in modo accurato.If you can't avoid all of these, then your images will need to be thoughtfully localized. Se devi localizzare l'app in una lingua con una diversa direzione di lettura, l'uso di immagini ed effetti simmetrici può facilitare il supporto della disposizione speculare.If you're localizing to a language with a different reading direction than your own, using symmetrical images and effects make it easier to support mirroring.

Evitare inoltre di usare il testo nelle immagini e il riconoscimento vocale nei file audio/video.Also avoid the use of text in images, and speech in audio/video files.

Uso del colore nell'appThe use of color in your app

Tenere presente quando si usa il colore.Be mindful when using color. L'uso di combinazioni di colori associate a flag nazionali o a movimenti politici può risultare problematico.Using color combinations that are associated with national flags or political movements can be problematic. Potrebbe essere necessario rivedere le scelte dei colori da esperti di cultura.Color choices may need to be reviewed by culture experts. Si verifica anche un problema di accessibilità con l'uso del colore.There is also an accessibility issues with using color. Se si usa il colore per indicare il significato, è necessario anche fornire le stesse informazioni con altri mezzi, ad esempio le dimensioni, la forma o un'etichetta.If you use color to convey meaning then you should also convey that same information by some other means, such as size, shape, or a label.

Considerare la possibilità di scomporre le stringhe in frasiConsider factoring your strings into sentences

Utilizzare stringhe di dimensioni appropriate.Use appropriately-sized strings. Le stringhe brevi sono più facili da tradurre e consentono il riciclo della traduzione (che consente di risparmiare spese perché la stessa stringa non viene inviata più volte al localizzatore).Short strings are easier to translate, and they enable translation recycling (which saves expense because the same string isn't sent to the localizer more than once). Inoltre, le stringhe estremamente lunghe potrebbero non essere supportate dagli strumenti di localizzazione.Also, extremely long strings might not be supported by localization tools.

Tuttavia, in linea con questa linea guida è il rischio di riutilizzare una stringa in contesti diversi.But in tension with this guideline is the risk of re-using a string in different contexts. Anche parole semplici come " on " e " off " potrebbero essere convertite in modo diverso, a seconda del contesto.Even simple words such as "on" and "off" might be translated differently, depending on the context. In inglese "on" e "off" possono essere usati per l'attivazione/disattivazione della modalità Aereo, della funzionalità Bluetooth e dei dispositivi.In the English language, "on" and "off" can be used for a toggle for Flight Mode, Bluetooth, and devices. In italiano invece la traduzione dipende dal contesto di ciò che viene attivato e disattivato.But in Italian, the translation depends on the context of what is being turned on and off. Dovresti quindi creare una coppia di stringhe per ogni contesto.You would need to create a pair of strings for each context. Puoi riutilizzare le stringhe se i contesti sono gli stessi.You can reuse strings if the two contexts are the same. Ad esempio, puoi riutilizzare la stringa "Volume" per il volume degli effetti audio e per il volume della musica poiché entrambi fanno riferimento all'intensità del suono.For instance, you can reuse the string "Volume" for both sound effect volume and music volume because both refer to intensity of sound. Non riutilizzare la stessa stringa per fare riferimento al volume di un disco rigido poiché il contesto e il significato sono diversi, pertanto la parola potrebbe essere tradotta diversamente.You should not reuse that same string when referring to a hard disk volume because the context and meaning are different, and the word might be translated differently.

Inoltre una stringa quale "text" o "fax" può essere usata sia come verbo che come sostantivo in inglese, complicando il processo di traduzione.Additionally, a string like "text" or "fax" could be used as both a verb and a noun in the English language, which can confuse the translation process. Crea invece una stringa diversa per il formato verbale e per quello nominale.Instead, create a separate string for both the verb and noun format. Se non sei sicuro se i contesti siano gli stessi, non rischiare e usa una stringa diversa.When you're not sure whether the contexts are the same, err on the safe side and use a distinct string.

In breve, scomporre le stringhe in parti che funzionano in tutti i contesti.In short, factor your strings into pieces that work in all contexts. In alcuni casi, una stringa deve essere un'intera frase.There will be cases where a string will need to be an entire sentence.

Si consideri la stringa seguente: " {0} Impossibile sincronizzare il".Consider the following string: "The {0} could not be synchronized."

Una varietà di parole potrebbe sostituire {0} , ad esempio "appuntamento", "Task" o "Document".A variety of words could replace {0}, such as "appointment", "task", or "document". Sebbene questo esempio funzioni per la lingua inglese, non funzionerà in tutti i casi per la frase corrispondente in, ad esempio, tedesco.While this example works for the English language, it will not work in all cases for the corresponding sentence in, for example, German. Osserva che, nelle seguenti frasi in tedesco, alcune parole nella stringa modello ("Der", "Die", "Das") devono corrispondere alla parola con parametri:Notice that in the following German sentences, some of the words in the template string ("Der", "Die", "Das") need to match the parameterized word:

IngleseEnglish TedescoGerman
The appointment could not be synchronized.The appointment could not be synchronized. Der Termin konnte nicht synchronisiert werden.Der Termin konnte nicht synchronisiert werden.
The task could not be synchronized.The task could not be synchronized. Die Aufgabe konnte nicht synchronisiert werden.Die Aufgabe konnte nicht synchronisiert werden.
The document could not be synchronized.The document could not be synchronized. Das Dokument konnte nicht synchronisiert werden.Das Dokument konnte nicht synchronisiert werden.

Come altro esempio, si consideri la frase "promemoria in {0} minuto/i".As another example, consider the sentence "Remind me in {0} minute(s)." L'uso di "minuti" è valido per la lingua inglese, ma altre lingue potrebbero usare termini diversi.Using "minute(s)" works for the English language, but other languages might use different terms. Ad esempio, la lingua polacca usa "minuta", "minuty" o "minut" in base al contesto.For example, the Polish language uses "minuta", "minuty", or "minut" depending on the context.

Per risolvere il problema, localizza l'intera frase anziché una singola parola.To solve this problem, localize the entire sentence, rather than a single word. Questa procedura può sembrare più lunga e complicata, ma è la soluzione migliore per i seguenti motivi:Doing this may seem like extra work and an inelegant solution, but it is the best solution because:

  • Per tutte le lingue verrà visualizzato un messaggio di correttezza grammaticale.A grammatically correct message will be displayed for all languages.
  • Il convertitore non dovrà richiedere informazioni sulle stringhe che verranno sostituite con.Your translator will not need to ask about what the strings will be replaced with.
  • Non è necessario implementare una costosa correzione del codice quando si presenta un problema di questo tipo dopo il completamento dell'app.You will not need to implement a costly code fix when a problem like this surfaces after your app is completed.

Altre considerazioni sulle stringheOther considerations for strings

Evitare colloquialismi e metafore nelle stringhe create nella lingua predefinita.Avoid colloquialisms and metaphors in the strings that you author in your default language. La lingua specifica di un gruppo demografico, ad esempio cultura ed età, può essere difficile da comprendere o tradurre perché solo le persone del gruppo demografico usano tale lingua.Language that's specific to a demographic group, such as culture and age, can be hard to understand or translate because only people in that demographic group use that language. In modo analogo, le metafore possono avere un significato per una persona, ma non per altre.Similarly, metaphors might make sense to one person but mean nothing to someone else. Ad esempio, la parola "bluebird" ha un significato specifico per gli appassionati di sci, ma chi non appartiene a questo gruppo non capirà il riferimento.For example, a "bluebird" means something specific to those who are part of skiing culture, but those who aren’t part of that culture don’t understand the reference.

Non usare termini del gergo tecnico, abbreviazioni o acronimi.Don't use technical jargon, abbreviations, or acronyms. Il linguaggio tecnico è probabilmente poco comprensibile per un pubblico non tecnico o per persone di altre culture e aree geografiche, oltre a essere difficile da tradurre.Technical language is less likely to be understood by non-technical audiences or people from other cultures or regions, and it's difficult to translate. Le persone non usano questo genere di parole nelle conversazioni di tutti i giorni.People don't use these kinds of words in everyday conversations. Il linguaggio tecnico è spesso presente nei messaggi di errore per identificare i problemi hardware e software, ma è necessario che le stringhe siano tecniche solo se l'utente necessita di tale livello di informazioni e può intervenire o trovare qualcuno che può.Technical language often appears in error messages to identify hardware and software issues, but you should strings to be technical only if the user needs that level of information, and can either action it or find someone who can.

L'uso di una voce o un tono informale nelle stringhe è una scelta valida.Using an informal voice or tone in your strings is a valid choice. È possibile usare i commenti nel file di risorse predefinito (. resw) per indicare tale intenzione.You can use comments in your default Resources File (.resw) to indicate that intention.

Pseudo-localizzazionePseudo-localization

Pseudo-localizzare l'app per individuare eventuali problemi di localizzabilità.Pseudo-localize your app to uncover any localizability issues. La pseudo-localizzazione è una sorta di test di divulgazione o esecuzione a secco.Pseudo-localization is a kind of localization dry-run, or disclosure test. Si produce un set di risorse che non vengono realmente convertite. sono solo in questo modo.You produce a set of resources that are not really translated; they only look that way. Le stringhe sono approssimativamente del 40% più lunghe rispetto alla lingua predefinita, ad esempio, e dispongono di delimitatori in modo che sia possibile visualizzare immediatamente se sono state troncate nell'interfaccia utente.Your strings are approximately 40% longer than in the default language, for example, and they have delimiters in them so that you can see at a glance whether they have been truncated in the UI.

Considerazioni sulla distribuzioneDeployment Considerations

Quando si installa un'app che contiene i dati della lingua localizzata, è possibile che sia disponibile solo la lingua predefinita per l'app anche se sono state inizialmente incluse risorse per più lingue.When you install an app that contains localized language data, you might find that only the default language is available for the app even though you initially included resources for multiple languages. Questo perché il processo di installazione è ottimizzato per installare solo le risorse di lingua che corrispondono alla lingua e alle impostazioni cultura correnti del dispositivo.This is because the installation process is optimized to only install language resources that match the current language and culture of the device. Di conseguenza, se il dispositivo è configurato per en-US, solo le risorse di lingua en-US vengono installate con l'app.Therefore, if your device is configured for en-US, only the en-US language resources are installed with your app.

Nota

Non è possibile installare il supporto linguistico aggiuntivo per l'app dopo l'installazione iniziale.It is not possible to install additional language support for your app after the initial installation. Se si modifica la lingua predefinita dopo l'installazione di un'app, l'app continuerà a usare solo le risorse di lingua originale.If you change the default language after installing an app, the app continues to use only the original language resources.

Per assicurarsi che tutte le risorse della lingua siano disponibili dopo l'installazione, creare un file di configurazione per il pacchetto dell'app che specifichi che alcune risorse sono necessarie durante l'installazione (incluse le risorse della lingua).If you want to ensure all language resources are available after installation, create a configuration file for the app package that specifies that certain resources are required during installation (including language resources). Questa funzionalità di installazione ottimizzata viene abilitata automaticamente quando si genera il appxbundle dell'applicazione durante la creazione del pacchetto.This optimized installation feature is automatically enabled when your application's .appxbundle is generated during packaging. Per altre informazioni, vedere assicurarsi che le risorse siano installate in un dispositivo indipendentemente dal fatto che siano richieste da un dispositivo.For more information, see Ensure that resources are installed on a device regardless of whether a device requires them.

Facoltativamente, per assicurarsi che tutte le risorse siano installate (non solo un subset), è possibile disabilitare la generazione appxbundle quando si crea il pacchetto dell'app.Optionally, to ensure all resources are installed (not just a subset), you can disable .appxbundle generation when you package your app. Questa operazione non è tuttavia consigliata, in quanto può aumentare il tempo di installazione dell'applicazione.This is not recommended however as it can increase the installation time of your app.

Disabilitare la generazione automatica del appxbundle impostando l'attributo "genera bundle dell'app" su "mai":Disable automatic generation of the .appxbundle by setting the "Generate App Bundle" attribute to “never”:

  1. In Visual Studio fare clic con il pulsante destro del mouse sul nome del progettoIn Visual Studio, right-click the project name
  2. Selezionare Store -> Crea pacchetti dell'applicazione...Select Store -> Create app packages...
  3. Nella finestra di dialogo Crea i pacchetti selezionare voglio creare pacchetti da caricare nel Microsoft Store usando un nuovo nome dell'app e quindi fare clic su Avanti.In the Create Your Packages dialog, select I want to create packages to upload to the Microsoft Store using a new app name and then click Next.
  4. Nella finestra di dialogo selezionare un nome di app selezionare/creare un nome di app per il pacchetto.In the Select an app name dialog, select/create an app name for your package.
  5. Nella finestra di dialogo selezionare e configurare i pacchetti impostare genera il bundle dell'app su mai.In the Select and Configure Packages dialog, set Generate app bundle to Never.

Riconoscimento geopoliticoGeopolitical awareness

Evitare elementi politicamente offensivi nelle mappe o nei riferimenti ad aree geografiche.Avoid political offense in maps or when referring to regions. Le mappe possono includere confini regionali o nazionali controversi e sono una fonte frequente di reati politici.Maps might include controversial regional or national boundaries, and they're a frequent source of political offense. Assicurati che qualsiasi elemento dell'interfaccia utente usato per selezionare una nazione vi faccia riferimento come "paese/area geografica".Be careful that any UI used for selecting a nation refers to it as a "country/region". Elencare un territorio con controversie in un elenco con etichetta " paesi " — come in un modulo di indirizzo — potrebbe offendere alcuni utenti.Listing a disputed territory in a list labeled "countries"—such as in an address form—might offend some users.

Eventi di modifica della lingua e dell'area geograficaLanguage- and region-changed events

Sottoscrivere gli eventi generati quando cambiano le impostazioni relative alla lingua e all'area del sistema.Subscribe to events that are raised when the system's language and region settings change. Eseguire questa operazione per poter caricare nuovamente le risorse, se necessario.Do this so that you can re-load resources, if appropriate. Per informazioni dettagliate, vedere aggiornamento di stringhe in risposta a eventi di modifica del valore qualificatore e aggiornamento delle immagini in risposta a eventi di modifica del valore qualificatore.For details, see Updating strings in response to qualifier value change events and Updating images in response to qualifier value change events.

Verificare l'ordine dei parametri corretto quando si formattano le stringheEnsure the correct parameter order when formatting strings

Non presupporre che tutti i linguaggi esprimono i parametri nello stesso ordine.Don't assume that all languages express parameters in the same order. Si consideri ad esempio questo formato.For example, consider this format.

    string.Format("Every {0} {1}", monthName, dayNumber); // For example, "Every April 1".

La stringa di formato in questo esempio funziona per la lingua inglese (Stati Uniti).The format string in this example works for English (United States). Ma non è appropriato per la lingua tedesca (Germania), ad esempio, in cui il giorno e il mese vengono visualizzati in ordine inverso.But it is not appropriate for German (Germany), for example, where the day and month are displayed in the reverse order. Verificare che il traduttore conosca lo scopo di ognuno dei parametri in modo che possano invertire l'ordine degli elementi di formato nella stringa di formato (ad esempio " {1} {0} ") in base alle esigenze della lingua di destinazione.Ensure that the translator knows the intent of each of the parameters so that they can reverse the order of the format items in the format string (for example, "{1} {0}") as appropriate for the target language.

No over-LocalizeDon’t over-localize

Invia solo il linguaggio naturale ai traduttori; nessun linguaggio di programmazione né markup.Only submit natural language to translators; not programming language nor markup. Un <link> tag non è un linguaggio naturale.A <link> tag is not natural language. Si considerino questi esempi.Consider these examples.

Non localizzare questoDon't localize this LocalizzaLocalize this
<collegare > le condizioni per l'utilizzo < /link><link>terms of use</link> condizioni per l'utilizzoterms of use
<collegamento all' > informativa sulla privacy < /link><link>privacy policy</link> informativa sulla privacyprivacy policy

L'inclusione del <link> tag nel file di risorse (con estensione resw) significa che è probabile che venga convertita.Including the <link> tag in your Resources File (.resw) means that it, too, is likely to be translated. Che renderebbe il tag non valido.That would render the tag invalid. Se si dispone di stringhe lunghe che devono includere il markup per mantenere il contesto e garantire l'ordinamento, è possibile chiarirlo nei commenti che non si desidera tradurre.If you have long strings that need to include markup in order to maintain context and ensure ordering, then make it clear in comments what not to translate.

Scegliere un approccio di traduzione appropriatoChoose an appropriate translation approach

Quando le stringhe sono state separate in file di risorse, possono essere tradotte.After strings are separated into resource files, they can be translated. Il momento ideale per tradurre le stringhe è dopo la loro finalizzazione nel progetto, che in genere avviene verso la fine del progetto.The ideal time to translate strings is after the strings in your project are finalized, which usually happens toward the end of a project. Puoi affrontare il processo di traduzione in diversi modi.You can approach the translation process in number of ways. La scelta varia a seconda del volume di stringe da tradurre, dal numero di lingue in cui eseguire la traduzione e dalle modalità di traduzione, ad esempio internamente oppure incaricando un fornitore esterno.This may depend on the volume of strings to be translated, the number of languages to be translated, and how the translation will be done (such as in-house versus hiring an external vendor).

Prendi in considerazione queste opzioni.Consider these options.

  • I file di risorse possono essere tradotti aprendoli direttamente nel progetto.The resource files can be translated by opening them directly in the project. Questo approccio funziona bene per un progetto con un piccolo volume di stringhe che devono essere convertite in due o tre lingue.This approach works well for a project that has a small volume of strings that need to be translated into two or three languages. Potrebbe essere adatto a uno scenario in cui uno sviluppatore parla più lingue ed è disposto a occuparsi del processo di traduzione.It could be suitable for a scenario where a developer speaks more than one language and is willing to handle the translation process. Questo approccio trae vantaggio dalla rapidità, non richiede strumenti e riduce al minimo il rischio di traduzione errata.This approach benefits from being quick, requires no tools, and minimizes the risk of mistranslations. Ma non è scalabile.But it is not scalable. In particolare, le risorse in varie lingue possono facilmente perdere la sincronizzazione, causando un'esperienza utente negativa e problemi di manutenzione.In particular, the resources in different languages can easily get out of sync, causing bad user experiences and maintenance headaches.
  • I file di risorse di stringa sono in formato di testo XML o ResJSON, quindi possono essere passati per la traduzione usando qualsiasi editor di testo. I file tradotti verranno quindi copiati di nuovo nel progetto.The string resource files are in XML or ResJSON text format, so could be handed off for translation using any text editor. The translated files would then be copied back into the project. Questo approccio comporta il rischio che i traduttori possano accidentalmente modificare i tag XML, ma consente lo svolgimento del lavoro di traduzione al di fuori del progetto di Microsoft Visual Studio.This approach carries a risk of translators accidentally editing the XML tags, but it lets translation work take place outside of the Microsoft Visual Studio project. Questo approccio può essere adatto a progetti che devono essere tradotti in poche lingue.This approach could work well for projects that need to be translated into a small number of languages. Il formato XLIFF è un formato XML progettato in modo specifico per la localizzazione ed è supportato da vari fornitori e strumenti di localizzazione.The XLIFF format is an XML format specifically designed for use in localization, and should be well supported by some localization vendors or localization tools. È possibile usare il Multilingual App Toolkit per generare file XLIFF da altri file di risorse, ad esempio resw o resjson.You can use the Multilingual App Toolkit to generate XLIFF files from other resource files, such as .resw or .resjson.

Nota

La localizzazione potrebbe essere necessaria anche per altre risorse, incluse le immagini e i file audio.Localization might also be necessary for other assets, including images and audio files.

È inoltre necessario considerare quanto segue:You should also consider the following:

  • Strumenti di localizzazione Sono disponibili diversi strumenti di localizzazione per analizzare i file di risorse e consentire la modifica solo delle stringhe traducibili da parte dei traduttori.Localization tools A number of localization tools are available for parsing resource files and allowing only the translatable strings to be edited by translators. Questo approccio consente di ridurre il rischio che un traduttore modifichi accidentalmente i tag XML.This approach reduces the risk of a translator accidentally editing the XML tags. Tuttavia, implica anche l'introduzione di un nuovo strumento e di un'altra procedura nel processo di localizzazione.But it has the drawback of introducing a new tool and process to the localization process. Uno strumento di localizzazione è adatto per i progetti con un volume elevato di stringhe, ma con un numero ridotto di linguaggi.A localization tool is good for projects with a large volume of strings but a small number of languages. Per altre informazioni, vedi Come usare Multilingual App Toolkit.To learn more, see How to use the Multilingual App Toolkit.
  • Fornitori di localizzazione Considerare l'uso di un fornitore di localizzazione se l'applicazione contiene stringhe estese che devono essere convertite in un numero elevato di linguaggi.Localization vendors Consider using a localization vendor if your application contains extensive strings that need to be translated into a large number of languages. Un fornitore di servizi di localizzazione può offrire consigli sugli strumenti, i processi e la traduzione dei tuoi file di risorse.A localization vendor can give advice about tools and processes, as well as translating your resource files. Si tratta di una soluzione ideale, ma anche dell'opzione più costosa e può allungare i tempi necessari per ottenere il contenuto tradotto.This is an ideal solution, but is also the most costly option, and may increase the turnaround time for your translated content.

Mantieni coerenti le chiavi di accesso ed etichetteKeep access keys and labels consistent

La "sincronizzazione" dei tasti di scelta usati per l'accessibilità con la visualizzazione dei tasti di scelta localizzati è molto difficile in fase di localizzazione, perché le due risorse stringa sono classificate in due sezioni separate.It is a challenge to "synchronize" the access keys used in accessibility with the display of the localized access keys, because the two string resources are categorized in two separate sections. Assicurarsi di fornire i commenti per la stringa di etichetta, ad esempio: Make sure that the emphasized shortcut key is synchronized with the access key.Be sure to provide comments for the label string such as: Make sure that the emphasized shortcut key is synchronized with the access key.

Supporto di Furigana per le stringhe giapponesi che possono essere ordinateSupport furigana for Japanese strings that can be sorted

I caratteri kanji giapponesi hanno la proprietà di avere più di una lettura (pronuncia) a seconda della parola in cui vengono usati.Japanese kanji characters have the property of having more than one reading (pronunciation) depending on the word in which they are used. Si presentano pertanto dei problemi quando si tenta di ordinare gli oggetti denominati in giapponese, tra cui nomi di applicazioni, file, brani e così via.This leads to problems when you try to sort Japanese named objects, such as application names, files, songs, and so on. In passato, il Kanji giapponese è stato in genere ordinato in un ordine comprensibile per il computer denominato XJIS.Japanese kanji have, in the past, usually been sorted in a machine-understandable order called XJIS. Purtroppo, però, si tratta di un ordinamento non fonetico e quindi non particolarmente utile per le persone.Unfortunately, because this sorting order is not phonetic it is not very useful for humans.

Furigana risolve questo problema consentendo all'utente o al creatore di specificare i fonetici per i caratteri utilizzati.Furigana works around this problem by allowing the user or creator to specify the phonetics for the characters they are using. Se si usa la procedura seguente per aggiungere furigana al nome dell'app, è possibile assicurarsi che sia ordinato nella posizione corretta nell'elenco delle app.If you use the following procedure to add furigana to your app name, you can ensure that it is sorted in the proper location in the app list. Se il nome dell'app contiene caratteri kanji e Furigana non viene specificato quando la lingua dell'interfaccia utente dell'utente o il tipo di ordinamento è impostato su giapponese, Windows esegue il massimo sforzo per generare la pronuncia appropriata.If your app name contains kanji characters and furigana is not provided when the user’s UI language or the sort order is set to Japanese, Windows makes its best effort to generate the appropriate pronunciation. Esiste tuttavia la possibilità che, se i nomi dell'app prevedono pronunce rare o univoche, vengano invece ordinati secondo una pronuncia più comune.However, there is a possibility for app names containing rare or unique readings to be sorted under a more common reading instead. Pertanto, la procedura consigliata per le applicazioni giapponesi, in particolare quelle contenenti caratteri Kanji nei rispettivi nomi, consiste nel fornire una versione Furigana del nome dell'app come parte del processo di localizzazione in giapponese.Therefore, the best practice for Japanese applications (especially those containing kanji characters in their names) is to provide a furigana version of their app name as part of the Japanese localization process.

  1. Aggiungi "ms-resource:Appname" come valore di Nome visualizzato pacchetto e Nome visualizzato applicazione.Add "ms-resource:Appname" as the Package Display Name and the Application Display Name.

  2. In strings crea una cartella ja-JP e aggiungi due file di risorse come segue:Create a ja-JP folder under strings, and add two resource files as follows:

    strings\
        en-us\
        ja-jp\
            Resources.altform-msft-phonetic.resw
            Resources.resw
    
  3. In Resources.resw per la lingua ja-JP generica aggiungi una risorsa di tipo stringa per il nome dell'app "希蒼"In Resources.resw for general ja-JP: Add a string resource for Appname "希蒼"

  4. In resources. altform-MSFT-fonetic. resw per le risorse Furigana giapponesi: aggiungere il valore furigana per AppName "のあ"In Resources.altform-msft-phonetic.resw for Japanese furigana resources: Add furigana value for AppName "のあ"

L'utente può cercare il nome dell'app "希蒼" usando il valore furigana "のあ" (Noa) e il valore fonetico (usando la funzione Getfonetica di input Method Editor (IME)) "まれあお" (mare-Ao).The user can search for the app name "希蒼" using both the furigana value "のあ" (noa), and the phonetic value (using the GetPhonetic function from the Input Method Editor (IME)) "まれあお" (mare-ao).

L’ordinamento segue il formato internazionale del Pannello di controllo:Sorting follows the Regional Control Panel format:

  • Con le impostazioni locali dell'utente giapponese,Under a Japanese user locale,
    • Se Furigana è abilitato, "希蒼" viene ordinato in "の".If furigana is enabled, then "希蒼" is sorted under "の".
    • Se Furigana non è presente, "希蒼" viene ordinato in "ま".If furigana is missing, then "希蒼" is sorted under "ま".
  • Con le impostazioni locali di un utente non giapponese,Under a non-Japanese user locale,
    • Se Furigana è abilitato, "希蒼" viene ordinato in "の".If furigana is enabled, then "希蒼" is sorted under "の".
    • Se Furigana non è presente, "希蒼" viene ordinato in "漢字".If furigana is missing, then "希蒼" is sorted under "漢字".

EsempiSamples