diff options
Diffstat (limited to 'ui/src/utils.ts')
-rw-r--r-- | ui/src/utils.ts | 39 |
1 files changed, 32 insertions, 7 deletions
diff --git a/ui/src/utils.ts b/ui/src/utils.ts index 2cf80d14..1bbda3aa 100644 --- a/ui/src/utils.ts +++ b/ui/src/utils.ts @@ -16,6 +16,7 @@ import { ListingType, SearchType, } from './interfaces'; +import { UserService } from './services/UserService'; import * as markdown_it from 'markdown-it'; import * as markdownitEmoji from 'markdown-it-emoji/light'; import * as markdown_it_container from 'markdown-it-container'; @@ -240,16 +241,32 @@ export function debounce( }; } +export const languages = [ + { code: 'en', name: 'English' }, + { code: 'eo', name: 'Esperanto' }, + { code: 'es', name: 'Español' }, + { code: 'de', name: 'Deutsch' }, + { code: 'zh', name: '中文' }, + { code: 'fr', name: 'Français' }, + { code: 'sv', name: 'Svenska' }, + { code: 'ru', name: 'Русский' }, + { code: 'nl', name: 'Nederlands' }, + { code: 'it', name: 'Italiano' }, +]; + export function getLanguage(): string { - return navigator.language || navigator.userLanguage; + let user = UserService.Instance.user; + let lang = user && user.lang ? user.lang : 'browser'; + + if (lang == 'browser') { + return getBrowserLanguage(); + } else { + return lang; + } } -export function objectFlip(obj: any) { - const ret = {}; - Object.keys(obj).forEach(key => { - ret[obj[key]] = key; - }); - return ret; +export function getBrowserLanguage(): string { + return navigator.language || navigator.userLanguage; } export function getMomentLanguage(): string { @@ -313,3 +330,11 @@ export function setTheme(theme: string = 'darkly') { } document.getElementById(theme).removeAttribute('disabled'); } + +export function objectFlip(obj: any) { + const ret = {}; + Object.keys(obj).forEach(key => { + ret[obj[key]] = key; + }); + return ret; +} |