Type-safe Translation
Reference til type-safe Umbraco dictionary keys og ITranslationService.
Installation
Sektion kaldt “Installation”dotnet add package Ecreo.Essentials.TranslationPakken registrerer sine services via en Umbraco composer.
Definer keys som typer
Sektion kaldt “Definer keys som typer”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 |
Brug service
Sektion kaldt “Brug service”public class MyService(ITranslationService translationService){ public string CancelText(CultureInfo culture) { return translationService.GetWithCulture<DictionaryKeys.Global.Cancel>(culture); }}Opslag
Sektion kaldt “Opslag”| 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>();Fallback-flow
Sektion kaldt “Fallback-flow”Når dictionary-værdien mangler eller er tom:
- Prøv aktuelt Umbraco-sprog.
- Prøv fallback language, hvis sproget har en.
- Returner defaultværdien.
Cycles i language fallback stoppes, så lookup ikke kan køre uendeligt.
Automatisk oprettelse
Sektion kaldt “Automatisk oprettelse”Hvis en key ikke findes i Umbraco dictionary, opretter servicen den automatisk.
Registrerede services
Sektion kaldt “Registrerede services”| 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. |
Health checks
Sektion kaldt “Health checks”| 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.