2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 13:47:15 +08:00

feat: 前端支持翻译

This commit is contained in:
2025-04-12 23:01:09 +08:00
parent 72c3bed203
commit 7e0ad2c799
11 changed files with 218 additions and 29 deletions

View File

@@ -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
}