mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 13:47:15 +08:00
feat: 前端支持翻译
This commit is contained in:
@@ -1,10 +1,41 @@
|
||||
import type { App } from 'vue'
|
||||
import { createGettext } from 'vue3-gettext'
|
||||
import { createGettext as vue3Gettext } from 'vue3-gettext'
|
||||
|
||||
let gettext: ReturnType<typeof createGettext>
|
||||
export let gettext: ReturnType<typeof vue3Gettext>
|
||||
|
||||
export function $gettext(msgid: string, params?: Record<string, string | number>) {
|
||||
return gettext.$gettext(msgid, params)
|
||||
}
|
||||
|
||||
export function $ngettext(
|
||||
msgid: string,
|
||||
plural: string,
|
||||
n: number,
|
||||
params?: Record<string, string | number>
|
||||
) {
|
||||
return gettext.$ngettext(msgid, plural, n, params)
|
||||
}
|
||||
|
||||
export function setupGettext(app: App) {
|
||||
gettext = createGettext({
|
||||
gettext = vue3Gettext({
|
||||
availableLanguages: {
|
||||
en: 'English',
|
||||
zh_CN: '简体中文',
|
||||
zh_TW: '繁體中文'
|
||||
},
|
||||
defaultLanguage: 'zh_CN',
|
||||
globalProperties: {
|
||||
gettext: ['$gettext', '__'], // 这样支持同时使用 $gettext, __ 两种方式
|
||||
ngettext: ['$ngettext', '_n'],
|
||||
pgettext: ['$pgettext', '_x'],
|
||||
npgettext: ['$npgettext', '_nx']
|
||||
}
|
||||
})
|
||||
app.use(gettext)
|
||||
}
|
||||
|
||||
export function createGettext(): any {
|
||||
gettext = vue3Gettext({
|
||||
availableLanguages: {
|
||||
en: 'English',
|
||||
zh_CN: '简体中文',
|
||||
@@ -12,5 +43,6 @@ export function setupGettext(app: App) {
|
||||
},
|
||||
defaultLanguage: 'zh_CN'
|
||||
})
|
||||
app.use(gettext)
|
||||
|
||||
return gettext
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user