UNPKG

js-xxx

Version:

前端 JavaScript 常用函数/工具/方法库

111 lines 3.96 kB
/** * 语言资源接口选项 * @category i18n-多语言(国际化) */ export interface i18nLanguageResource { key: string; desc: string; translation: any; } /** * i18n 类的选项 * @category i18n-多语言(国际化) */ export interface i18nOptions { resources: Record<string, i18nLanguageResource>; defaultLang?: string; } /** * i18n 国际化支持类 * 若需切换语言后更新页面内容,可以在切换语言的时候同步更新全局状态 lang,并将全局状态 lang 设置为 `t$` 的参数即可。 * `具体可参考 web_base 或 vue-admin 案例` * [web_base](https://github.com/biugle/web_base) * [vue-admin](https://github.com/biugle/vue-admin) * @example * import { zh_CN, en_US } from './locales.data' * export const i18nCustom = new i18n({ * resources: { * zh_CN: { * key: 'zh_CN', * desc: '简体中文', * translation: zh_CN, * }, * en_US: { * key: 'en_US', * desc: 'English', * translation: en_US, * }, * }, * defaultLang: 'zh_CN', * }); * @returns * @category i18n-多语言(国际化) */ export declare class i18n { private langList; private translations; private lang; constructor(options: i18nOptions); private loadResources; setLang(language: string, callback?: (language: string) => void): this; getLang(): string; getLangList(): { key: string; desc: string; }[]; private getTranslation; getTranslations(language?: string): Record<string, string> | null; removeLang(language: string): this; addLang(language: string, langData: i18nLanguageResource): this; t$(key: string, obj?: any, language?: string): string; } /** * 获取浏览器语言。 * 返回的是中划线格式,如:zh-CN 。 * @example * // 如果浏览器语言为中文(简体) * getBrowserLang(); // 'zh-CN' * // 如果浏览器语言为英文 * getBrowserLang(); // 'en-US' * // 限制返回语言为支持的语言之一 * getBrowserLang({ supportLangs: ['zh-CN', 'en-US'] }); // 'zh-CN''en-US' * // 限制返回语言为不支持的语言之一 * getBrowserLang({ supportLangs: ['es-ES', 'fr-FR'] }); // 'en-US' * @param opts 可选配置项。 * @param opts.supportLangs 可支持的语言,传入时,会用此数组来限制返回的语言值,防止返回的 navigator.language 和系统定义的语言值不匹配。 * @returns * @category i18n-多语言(国际化) */ export declare function getBrowserLang(opts?: { supportLangs?: string[]; }): string; /** * 获取默认语言。 * 返回的是中划线格式,如:zh-CN 。 * 从 Cookie 获取语言,如果不存在则获取 local 存储中的语言,都不存在则使用浏览器语言。 * @example * getDefaultLang({ supportLangs: ['zh-CN', 'en-US'] }); // 'zh-CN''en-US' * // 指定一个自定义 key * getDefaultLang({ supportLangs: ['fr-FR', 'es-ES'], key: 'USER_LANG' }); // 'fr-FR''es-ES' * // 如果语言不在支持的语言列表中,则返回默认语言 'en-US'。 * getDefaultLang({ supportLangs: ['es-ES'], key: 'USER_LANG' }); // 'en-US' (假设获取的语言为 'fr_FR') * @param opts 可选配置项。 * @param opts.supportLangs 支持的语言列表。如果返回的语言不在此列表中,将返回默认语言 'en-US'。 * @param opts.key 用于获取语言的 key 默认为 'js-xxx-lang' * @returns * @category i18n-多语言(国际化) */ export declare function getDefaultLang(opts?: { supportLangs: string[]; key?: string; }): string; /** * 用于插件扫描自定义多语言 key,方便 excel 或者 json 生成。 * @example * $t('aaa'); /// 'aaa' * @param s * @returns * @category i18n-多语言(国际化) */ export declare const $t: (s: any) => string; //# sourceMappingURL=index.d.ts.map