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.

InformationModel.LookupTranslation(localizedText)

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.

InformationModel.SetTranslation(localizedText)

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 specificare NamespaceIndex.

  • 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

Sessioni e localizzazione

Procedure correlate

Gestire le traduzioni

Esempi applicativi

Importare traduzioni da un altro progetto

Riferimenti

Editor delle traduzioni