API per le traduzioni¶
Introduzione
Le API descritte di seguito servono a leggere/scrivere stringhe tradotte all’interno di oggetti LocalizationDictionary. Sono fornite dalla classe statica InformationModel.
Nella tabella seguente sono indicate le API da usare per i diversi scopi:
Scopo |
API |
|---|---|
Leggere una traduzione in base alla localizzazione della sessione. |
|
Leggere la prima traduzione disponibile tra più localizzazioni di interesse. |
InformationModel.LookupTranslation(localizedText, localeIds) |
Aggiungere una chiave, e opzionalmente una traduzione, in un LocalizationDictionary. |
InformationModel.AddTranslation(localizedText, localizationDictionary) |
Aggiornare una traduzione associata a una chiave esistente. |
Classe LocalizedText
Ogni API ha tra i propri argomenti un’istanza della classe C# LocalizedText, che identifica una chiave/riga o una specifica stringa tradotta in un LocalizationDictionary. Contiene le seguenti proprietà:
NamespaceIndexint: identificatore del namespace del progetto a cui appartiene il LocalizationDictionary.Nota
se il LocalizationDictionary è nello stesso progetto del NetLogic, nella costruzione di un
LocalizedTextnon è necessario specificareNamespaceIndex.TextIdstring: chiave a cui possono essere associate le traduzioni di una stringa.LocaleIdstring: identificativo di localizzazione (es.:en-US).Textstring: stringa tradotta.
InformationModel.LookupTranslation(localizedText)¶
Legge le traduzioni associate a una chiave in base alle proprietà NamespaceIndex e TextId dell’argomento e restituisce un oggetto LocalizedText le cui proprietà LocaleId e Text sono valorizzate in base alla localizzazione della sessione.
LocalizedText LookupTranslation(LocalizedText localizedText);
Argomenti
localizedText LocalizedText
Oggetto C# le cui proprietà TextId e NamespaceIndex identificano la chiave di interesse.
Restituisce
LocalizedText
Oggetto C# le cui proprietà Text e LocaleId sono valorizzate in base alla chiave fornita e in base alla localizzazione della sessione.
Esempio
Di seguito un esempio in cui l’API restituisce un oggetto translation, di tipo LocalizedText, che contiene la stringa tradotta richiesta, associata alla chiave Key1. L’argomento dell’API è un oggetto di tipo LocalizedText creato tramite un costruttore il cui argomento ne definisce la proprietà TextId.
L’oggetto translation viene usato per impostare il testo di un’etichetta label1 in base alla localizzazione della sessione.
var myLocalizedText = new LocalizedText("Key1");
var translation = InformationModel.LookupTranslation(myLocalizedText);
var label1 = Owner.Get<Label>("Label1");
label1.Text = "Translation: " + translation.Text;
InformationModel.LookupTranslation(localizedText, localeIds)¶
Legge le traduzioni associate a una chiave in base alle proprietà NamespaceIndex e TextId del primo argomento e restituisce un oggetto LocalizedText le cui proprietà LocaleId e Text sono valorizzate in base alla prima traduzione disponibile tra le localizzazioni fornite nel secondo argomento.
LocalizedText LookupTranslation(LocalizedText localizedText, List<string> localeIds);
Argomenti
localizedText LocalizedText
Oggetto C# le cui proprietà TextId e NamespaceIndex identificano la chiave di interesse.
localeIds List<string>
Localizzazioni d’interesse espresse con identificativi di localizzazione. Eventuali identificativi successivi al primo indicano le localizzazioni di fallback.
Restituisce
LocalizedText
Oggetto C# le cui proprietà LocaleId e Text sono valorizzate in base alla prima localizzazione disponibile tra quelle indicate nell’argomento localeIds.
Nota
se non è disponibile una stringa per le localizzazioni indicate, le proprietà LocaleId e Text restano vuote.
Esempio
Di seguito un esempio in cui l’API restituisce un oggetto translation, di tipo LocalizedText, che rappresenta la chiave Key2 di un LocalizationDictionary. Il primo argomento dell’API è un oggetto di tipo LocalizedText, creato tramite un costruttore il cui argomento ne definisce la proprietà TextId. Il secondo argomento è una lista che contiene gli identificativi per localizzazioni di interesse (it-IT e es-ES).
L’oggetto translation viene usato per impostare il testo di un’etichetta in base alla prima traduzione disponibile tra it-IT e es-ES.
var myLocalizedText = new LocalizedText("Key2");
var translation = InformationModel.LookupTranslation(myLocalizedText, new List<string>() { "it-IT", "es-ES" });
var label2 = Owner.Get<Label>("Label2");
label2.Text = "Translation: " + translation.Text;
InformationModel.AddTranslation(localizedText, localizationDictionary)¶
Aggiunge nel LocalizationDictionary di progetto una nuova chiave il cui nome corrisponde al valore della proprietà TextId del primo argomento. Se il primo argomento contiene anche le proprietà LocaleId e Text, aggiunge anche la stringa tradotta. Il secondo argomento, opzionale, indica il LocalizationDictionary in cui aggiungere la chiave.
Importante
è necessario specificare il secondo argomento se il progetto contiene più di un LocalizationDictionary.
void AddTranslation(LocalizedText localizedText, IUAVariable localizationDictionary);
Argomenti
localizedText LocalizedText
Oggetto C# le cui proprietà identificano la chiave e l’eventuale stringa tradotta da aggiungere.
localizationDictionary IUAVariable
Oggetto C# che rappresenta il LocalizationDictionary desiderato.
Esempio
Di seguito un esempio in cui l’API aggiunge una nuova chiave NewKey e una stringa New translation per la localizzazione en-US.
var myLocalizedText = new LocalizedText("NewKey", "New translation", "en-US");
InformationModel.AddTranslation(myLocalizedText);
InformationModel.SetTranslation(localizedText)¶
Aggiorna una traduzione associata alla chiave esistente desiderata, in base alle proprietà dell’argomento.
void SetTranslation(LocalizedText localizedText);
Argomenti
localizedText LocalizedText
Oggetto C# le cui proprietà TextId, Text e LocaleId identificano la chiave e la relativa traduzione da aggiornare.
Esempio
Di seguito un esempio in cui l’API scrive la stringa New translation per la localizzazione en-US associata alla chiave Key1.
var localizedText = new LocalizedText("Key1", "New translation", "en-US");
InformationModel.SetTranslation(localizedText);
Vedi anche
Concetti correlati
Procedure correlate
Esempi applicativi
Importare traduzioni da un altro progetto
Riferimenti