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à:
NamespaceIndex
int: identificatore del namespace del progetto a cui appartiene il LocalizationDictionary.Nota
se il LocalizationDictionary è nello stesso progetto del NetLogic, nella costruzione di un
LocalizedText
non è necessario specificareNamespaceIndex
.TextId
string: chiave a cui possono essere associate le traduzioni di una stringa.LocaleId
string: identificativo di localizzazione (es.:en-US
).Text
string: 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