more localization fixes

This commit is contained in:
Eugene Pankov
2022-01-09 11:28:14 +01:00
parent 2d9f3d8216
commit ff1e2871d4
40 changed files with 1337 additions and 5562 deletions

View File

@@ -20,4 +20,4 @@ footer.d-flex.align-items-center
i.fas.fa-bug
span(translate) Report a problem
.form-control-static.selectable.no-drag {{versionLabel}}
.form-control-static.selectable.no-drag {{ 'Version: {version}'|translate:{ version: this.homeBase.appVersion } }}

View File

@@ -2,7 +2,7 @@ import { Component, Inject } from '@angular/core'
import { DomSanitizer } from '@angular/platform-browser'
import { ConfigService } from '../services/config.service'
import { HomeBaseService } from '../services/homeBase.service'
import { ToolbarButton, ToolbarButtonProvider, TranslateService } from '../api'
import { ToolbarButton, ToolbarButtonProvider } from '../api'
/** @hidden */
@Component({
@@ -16,7 +16,6 @@ export class StartPageComponent {
constructor (
private config: ConfigService,
private domSanitizer: DomSanitizer,
private translate: TranslateService,
public homeBase: HomeBaseService,
@Inject(ToolbarButtonProvider) private toolbarButtonProviders: ToolbarButtonProvider[],
) {
@@ -38,8 +37,4 @@ export class StartPageComponent {
buttonsTrackBy (btn: ToolbarButton): any {
return btn.title + btn.icon
}
get versionLabel (): string {
return this.translate.instant('Version: {version}', { version: this.homeBase.appVersion })
}
}

View File

@@ -4,10 +4,8 @@
.ml-auto(ngbDropdown, placement='bottom-right')
button.btn.btn-link(ngbDropdownToggle, (click)='$event.stopPropagation()')
span(
*ngIf='rememberFor',
translate='Remember for {time}',
[translateParams]='{time: getRememberForDisplay(rememberFor)}'
)
*ngIf='rememberFor'
) {{ 'Remember for {time}'|translate:{time: getRememberForDisplay(rememberFor)} }}
span(*ngIf='!rememberFor', translate) Do not remember
div(ngbDropdownMenu)
button.dropdown-item(

View File

@@ -25,28 +25,15 @@ export class TranslateServiceWrapper extends TranslateService {
export class LocaleService {
private logger: Logger
static readonly allLocales = ['en', 'de', 'fr', 'ru']
static readonly allLocales = ['en-US', 'zh-CN']
readonly allLanguages: { code: string, name: string }[]
get localeChanged$ (): Observable<string> {
return this.localeChanged.pipe(distinctUntilChanged())
}
get catalogChanged$ (): Observable<Record<string, string | undefined>> {
return this.catalogChanged.pipe(distinctUntilChanged())
}
readonly allLanguages: { code: string, name: string }[]
private translations = {
en: {
Close: 'Close',
},
ru: {
Close: 'Закрыть',
},
}
private locale = 'en'
private locale = 'en-US'
private localeChanged = new Subject<string>()
private catalogChanged = new Subject<Record<string, string | undefined>>()
constructor (
private config: ConfigService,
@@ -63,52 +50,33 @@ export class LocaleService {
this.allLanguages = [
{
code: 'en',
code: 'en-US',
name: translate.instant('English'),
},
{
code: 'de',
name: translate.instant('German'),
code: 'zh-CN',
name: translate.instant('Chinese (simplified)'),
},
{
code: 'fr',
name: translate.instant('French'),
},
/* {
code: 'it',
name: translate.instant('Italian'),
},
{
code: 'es',
name: translate.instant('Spanish'),
}, */
{
code: 'ru',
name: translate.instant('Russian'),
},
/* {
code: 'ar',
name: translate.instant('Arabic'),
}, */
]
this.translate.setTranslation('en-US', {})
}
refresh (): void {
let lang = this.config.store.language
if (!lang) {
const systemLanguage = navigator.language.toLowerCase().split('-')[0]
if (this.allLanguages.some(x => x.code === systemLanguage)) {
lang = systemLanguage
for (const systemLanguage of navigator.languages) {
if (!lang && this.allLanguages.some(x => x.code === systemLanguage)) {
lang = systemLanguage
}
}
}
lang ??= 'en'
lang ??= 'en-US'
this.setLocale(lang)
}
async setLocale (lang: string): Promise<void> {
const strings = this.translations[lang]
if (!this.translate.langs.includes(lang)) {
if (!this.translate.langs.includes(lang) && lang !== 'en-US') {
this.translate.addLangs([lang])
const po = require(`../../../locale/${lang}.po`).translations['']
@@ -125,7 +93,6 @@ export class LocaleService {
this.locale = lang
this.localeChanged.next(lang)
this.logger.debug('Setting language to', lang)
this.catalogChanged.next(strings)
}
getLocale (): string {