Skip to content

国际化配置 ​

前置说明 ​

国际化语言插件,采用的是原版VueI18n实现,具体见其官网,但我打了hack来兼容适配蒸汽版本的JS逻辑引擎。 具体位置在 tmx-ui/libs/vue-i18n.js。后续你如果要升级可以下载原版本直接替换。


安装语言包

ts

import App from './App'
import Xui from "@/uni_modules/tmx-ui"

//多语言配置类型
import {Tmui4xOptions} from "@/uni_modules/tmx-ui"
//下方是组件内部的语言包
import en from "@/uni_modules/tmx-ui/localLanuage/en.json"
import zhHans from "@/uni_modules/tmx-ui/localLanuage/zh-Hans.json"
import zhHant from "@/uni_modules/tmx-ui/localLanuage/zh-Hant.json"
import ko from "@/uni_modules/tmx-ui/localLanuage/ko.json"
import ja from "@/uni_modules/tmx-ui/localLanuage/ja.json"
//如果你有自己的语言包,你也可以像上面那样导入语言,然后与组件的语言合并。或者你自己新增个语言进去。
// 下方是组件的语言包,以及你自己定义的语言包与组件合并即可。共用一个实例。
const messages : UTSJSONObject = {
	"en":{
		...en,
		"hellow":"Hi~"
	},
	"zh-Hans":{
		...zhHans,
		"hellow":"哈喽"
	},
	"zh-Hant":zhHant,
	"ko":ko,
	"ja":ja
}
import { createSSRApp } from 'vue'
export function createApp() {
	const app = createSSRApp(App)
	// 配置语言包
	app.use(xui,{i18nOptions:{locale:"zh-Hans",messages},config:null} as Tmui4xOptions)
	return {
		app
	}
}

在任意Uts中使用 ​

uts

import { xConfig } from "@/uni_modules/tmx-ui"
// i18n 实例(带类型)
const i18n = xConfig.i18n!
console.log(i18n.t('xx.x'))

在Uvue内使用 ​

1.组合式模板内 ​

ts

import { xConfig } from "@/uni_modules/tmx-ui"
// i18n 实例(带类型)
const i18n = xConfig.i18n!
console.log(i18n.t('xx.x'))

uts内导入后可以在模板内使用

vue

<x-text>{{i18n.t('xx.x')}}</x-text>

i18n实例方法 ​

如果想要看每一个方法的示例,见插件目录内的readme.md文档,有详细的测试案例。

ts

export type I18nGlobal = {
	/** 翻译文本。`t(key)` / `t(key, named)` / `t(key, list)` / `t(key, plural)` 多重载 */
	t: (key: string, ...args: any[]) => string;
	/** 解析已编译消息(rt: resolve translation),通常配合 tm() 使用 */
	rt?: (message: any, ...args: any[]) => string;
	/** 日期/时间格式化。`d(value)` / `d(value, key)` / `d(value, key, locale)` / `d(value, options)` */
	d?: (value: any, ...args: any[]) => string;
	/** 数字格式化。`n(value)` / `n(value, key)` / `n(value, key, locale)` / `n(value, options)` */
	n?: (value: any, ...args: any[]) => string;
	/** 判断 key 是否存在 */
	te?: (key: string, locale?: string) => boolean;
	/** 取整段消息子树(返回对象/数组结构) */
	tm?: (key: string) => any;

	/** 当前语言(Ref<string>,可读写) */
	locale?: any;
	/** 回退语言(Ref<string | string[] | ...>) */
	fallbackLocale?: any;
	/** 当前已注册的所有语言代码(只读) */
	availableLocales?: string[];
	/** 全部 messages(只读,结构与 createI18n 的 messages 一致) */
	messages?: any;
	/** 全部日期时间格式配置(只读) */
	datetimeFormats?: any;
	/** 全部数字格式配置(只读) */
	numberFormats?: any;

	/** 取指定语言的 messages */
	getLocaleMessage?: (locale: string) => any;
	/** 整包覆盖指定语言的 messages */
	setLocaleMessage?: (locale: string, message: any) => void;
	/** 深度合并指定语言的 messages(不会清空原有 key) */
	mergeLocaleMessage?: (locale: string, message: any) => void;

	/** 取指定语言的日期时间格式 */
	getDateTimeFormat?: (locale: string) => any;
	/** 整包覆盖指定语言的日期时间格式 */
	setDateTimeFormat?: (locale: string, format: any) => void;
	/** 深度合并指定语言的日期时间格式 */
	mergeDateTimeFormat?: (locale: string, format: any) => void;

	/** 取指定语言的数字格式 */
	getNumberFormat?: (locale: string) => any;
	/** 整包覆盖指定语言的数字格式 */
	setNumberFormat?: (locale: string, format: any) => void;
	/** 深度合并指定语言的数字格式 */
	mergeNumberFormat?: (locale: string, format: any) => void;
};

更多的语言扩展 ​

如果当前默认的语言不足以满足你,就像前置安装那样,自己把语言包补充进去就行。你也可以动态扩展语言包。

附件:语言代码列表 ​

代码语言名称地区/脚本备注说明
zh中文-不区分简繁和地区
zh-CN中文中国(大陆)简体中文
zh-SG中文新加坡简体中文
zh-Hans中文简体脚本简体,不限地区
zh-Hant中文繁体脚本繁体,不限地区
zh-TW中文台湾繁体中文
zh-HK中文香港繁体中文
zh-MO中文澳门繁体中文
ko韩语-不区分地区
ko-KR韩语韩国韩国韩语
ko-KP韩语朝鲜朝鲜韩语(极少用)
ja日语-不区分地区
ja-JP日语日本日本日语
en英语-通用英语
en-US英语美国美国英语
en-GB英语英国英国英语
en-AU英语澳大利亚澳大利亚英语
en-CA英语加拿大加拿大英语
en-IN英语印度印度英语
fr法语-通用法语
fr-FR法语法国法国法语
fr-CA法语加拿大加拿大法语
de德语-通用德语
de-DE德语德国德国德语
de-AT德语奥地利奥地利德语
de-CH德语瑞士瑞士德语
es西班牙语-通用西班牙语
es-ES西班牙语西班牙西班牙西班牙语
es-MX西班牙语墨西哥墨西哥西班牙语
es-AR西班牙语阿根廷阿根廷西班牙语
pt葡萄牙语-通用葡萄牙语
pt-PT葡萄牙语葡萄牙葡萄牙葡萄牙语
pt-BR葡萄牙语巴西巴西葡萄牙语
ru俄语-通用俄语
ru-RU俄语俄罗斯俄罗斯俄语
it意大利语-通用意大利语
it-IT意大利语意大利意大利意大利语
nl荷兰语-通用荷兰语
nl-NL荷兰语荷兰荷兰荷兰语
nl-BE荷兰语比利时比利时荷兰语
sv瑞典语-通用瑞典语
sv-SE瑞典语瑞典瑞典瑞典语
fi芬兰语-通用芬兰语
fi-FI芬兰语芬兰芬兰芬兰语
da丹麦语-通用丹麦语
da-DK丹麦语丹麦丹麦丹麦语
pl波兰语-通用波兰语
pl-PL波兰语波兰波兰波兰语
tr土耳其语-通用土耳其语
tr-TR土耳其语土耳其土耳其土耳其语
el希腊语-通用希腊语
el-GR希腊语希腊希腊希腊语
he希伯来语-通用希伯来语
he-IL希伯来语以色列以色列希伯来语
ar阿拉伯语-通用阿拉伯语
ar-SA阿拉伯语沙特阿拉伯沙特阿拉伯阿拉伯语
ar-EG阿拉伯语埃及埃及阿拉伯语
th泰语-通用泰语
th-TH泰语泰国泰国泰语
vi越南语-通用越南语
vi-VN越南语越南越南越南语
id印度尼西亚语-通用印尼语
id-ID印度尼西亚语印度尼西亚印尼印尼语
ms马来语-通用马来语
ms-MY马来语马来西亚马来西亚马来语
hi印地语-通用印地语
hi-IN印地语印度印度印地语
ur乌尔都语-通用乌尔都语
ur-PK乌尔都语巴基斯坦巴基斯坦乌尔都语
ta泰米尔语-通用泰米尔语
ta-IN泰米尔语印度印度泰米尔语
bn孟加拉语-通用孟加拉语
bn-BD孟加拉语孟加拉国孟加拉国孟加拉语
bn-IN孟加拉语印度印度孟加拉语
最近更新