mirror of
https://github.com/Eugeny/tabby.git
synced 2025-10-04 14:04:56 +00:00
more localization fixes
This commit is contained in:
@@ -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 } }}
|
||||
|
@@ -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 })
|
||||
}
|
||||
}
|
||||
|
@@ -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(
|
||||
|
@@ -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 {
|
||||
|
Reference in New Issue
Block a user