ื“ืœื’ ืœืชื•ื›ืŸ ื”ืจืืฉื™

Internationalization (i18n)

Multi-language support using ngx-translate.

Supported Languagesโ€‹

CodeLanguageStatus
enEnglishโœ… Default
esSpanishโœ…
frFrenchโœ…
ruRussianโœ…
bgBulgarianโœ…
heHebrewโœ…
arArabicโœ… (RTL)
ptPortugueseโœ…
deGermanโœ…
nlDutchโœ…
zhChineseโœ…

Translation Filesโ€‹

Located at apps/gauzy/src/assets/i18n/:

i18n/
โ”œโ”€โ”€ en.json # English (source)
โ”œโ”€โ”€ es.json # Spanish
โ”œโ”€โ”€ fr.json # French
โ”œโ”€โ”€ ru.json # Russian
โ””โ”€โ”€ ...

Usageโ€‹

In Templatesโ€‹

<!-- Pipe -->
<h1>{{ 'DASHBOARD.TITLE' | translate }}</h1>

<!-- Directive -->
<p [translate]="'DASHBOARD.SUBTITLE'" [translateParams]="{ count: 5 }"></p>

In Componentsโ€‹

constructor(private translateService: TranslateService) {}

ngOnInit() {
const title = this.translateService.instant('DASHBOARD.TITLE');
}

Translation File Formatโ€‹

{
"DASHBOARD": {
"TITLE": "Dashboard",
"SUBTITLE": "Welcome back, {{ name }}",
"WIDGETS": {
"TOTAL_HOURS": "Total Hours",
"PROJECTS": "Projects"
}
}
}

RTL Supportโ€‹

Arabic and Hebrew enable RTL layout:

this.translateService.onLangChange.subscribe(({ lang }) => {
document.dir = ["ar", "he"].includes(lang) ? "rtl" : "ltr";
});

Configurationโ€‹

# Default language
AVAILABLE_LOCALES=en,es,fr,ru,bg
DEFAULT_LOCALE=en