Gå til indhold

Type-safe Translation

Reference til type-safe Umbraco dictionary keys og ITranslationService.

Terminal window
dotnet add package Ecreo.Essentials.Translation

Pakken registrerer sine services via en Umbraco composer.

using Ecreo.Essentials.Translation;
public class DictionaryKeys : DictionaryKeysBase
{
public class Global
{
public class Cancel { }
public class Save
{
public class Button { }
}
}
}
Type Dictionary key
DictionaryKeys.Global.Cancel Global.Cancel
DictionaryKeys.Global.Save Global.Save
DictionaryKeys.Global.Save.Button Global.Save.Button
public class MyService(ITranslationService translationService)
{
public string CancelText(CultureInfo culture)
{
return translationService.GetWithCulture<DictionaryKeys.Global.Cancel>(culture);
}
}
Metode Bruges til
Get<T>() Hent key for aktuel kontekst.
GetWithCulture<T>(culture) Hent key for en bestemt kultur.
GetWithFallback<T>("Save") Returner fallback, hvis værdien mangler eller er tom.
GetByKeyWithFallback<T>("Button", "Save") Slå en underkey op, fx Global.Save.Button.
GetAsync<T>() Async wrapper til sync API.
var save = translationService.GetWithFallback<DictionaryKeys.Global.Save>("Save");
var button = translationService.GetByKeyWithFallback<DictionaryKeys.Global.Save>(
"Button",
"Save"
);
var cancel = await translationService.GetAsync<DictionaryKeys.Global.Cancel>();

Når dictionary-værdien mangler eller er tom:

  1. Prøv aktuelt Umbraco-sprog.
  2. Prøv fallback language, hvis sproget har en.
  3. Returner defaultværdien.

Cycles i language fallback stoppes, så lookup ikke kan køre uendeligt.

Hvis en key ikke findes i Umbraco dictionary, opretter servicen den automatisk.

Service Lifetime/formål
ITranslationService Scoped service til opslag.
ITranslationStatisticsService Singleton til usage statistics.
Hosted service Gemmer translation usage statistics.
Health checks Finder missing keys og unused dictionary items.
Cache clearing Rydder cache ved ændringer i languages og dictionary items.
Check Finder
Missing dictionary items Keys fra typer der arver fra DictionaryKeysBase, men ikke findes i Umbraco dictionary. Kan oprette manglende keys.
Unused dictionary items Dictionary items der ikke er hentet gennem ITranslationService de seneste 7 eller 30 dage, eller aldrig er hentet.
  • Definer keys i et samlet type-hierarki.
  • Brug fallback ved tekst, der skal have en fornuftig default.
  • Brug GetByKey*, når underkey-navnet er dynamisk.
  • Unused-statistik afhænger af opslag gennem ITranslationService.