1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/open-hand-choerodon-ui

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
LocaleContext.tsx 1.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
HughHzWu Отправлено 3 лет назад bad5b40
import { action, observable, runInAction } from 'mobx';
import moment from 'moment';
import defaultTo from 'lodash/defaultTo';
import { Lang } from './enum';
import defaultLocale, { Locale } from './locale';
import defaultSupports, { Supports } from './supports';
import { normalizeLanguage } from '../utils';
import { mobxGet } from '../mobx-helper';
function setMomentLocale(locale: Locale) {
moment.locale(normalizeLanguage(locale ? locale.lang : defaultLocale.lang));
}
export class LocaleContext {
@observable locale: Locale;
// 数字格式化使用的国际化语言编码, 未设置时使用 locale.lang
@observable numberFormatLanguage: Lang;
@observable supports: Supports;
constructor() {
runInAction(() => {
this.locale = defaultLocale;
this.supports = defaultSupports;
});
}
@action
setLocale(locale: Locale) {
setMomentLocale(locale);
this.locale = locale;
}
@action
setNumberFormatLanguage(numberFormatLanguage: Lang) {
this.numberFormatLanguage = numberFormatLanguage;
}
@action
setSupports(supports: Supports) {
this.supports = supports;
}
getCmp(component: string): object | undefined {
return mobxGet(this.locale, component);
}
get<L extends Locale, T extends keyof Omit<L, 'lang'>>(component: T, key: keyof L[T], defaults?: L): string {
const componentString = String(component);
const cmp: object | undefined = mobxGet(this.locale, componentString) || (defaults && mobxGet(defaults, componentString));
if (key) {
return defaultTo(cmp && mobxGet(cmp, String(key)), `${componentString}.${key}`);
}
return componentString;
}
}
export default new LocaleContext();

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/open-hand-choerodon-ui.git
git@gitlife.ru:oschina-mirror/open-hand-choerodon-ui.git
oschina-mirror
open-hand-choerodon-ui
open-hand-choerodon-ui
master