mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 06:47:20 +08:00
feat: 完善翻译工作流
This commit is contained in:
26
.github/workflows/l10n.yml
vendored
26
.github/workflows/l10n.yml
vendored
@@ -24,4 +24,28 @@ jobs:
|
||||
- uses: stefanzweifel/git-auto-commit-action@v5
|
||||
name: Commit changes
|
||||
with:
|
||||
commit_message: "chore(l10n): update pot files"
|
||||
commit_message: "chore(l10n): update backend pot files"
|
||||
vue3-gettext:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
run_install: true
|
||||
package_json_file: web/package.json
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 22
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: web/pnpm-lock.yaml
|
||||
- name: Generate pot files and merge po files
|
||||
run: pnpm run gettext:extract
|
||||
- name: Compile po files to json
|
||||
run: pnpm run gettext:compile
|
||||
- uses: stefanzweifel/git-auto-commit-action@v5
|
||||
name: Commit changes
|
||||
with:
|
||||
commit_message: "chore(l10n): update frontend pot files"
|
||||
|
||||
@@ -73,7 +73,7 @@ func initCli() (*app.Cli, error) {
|
||||
websiteRepo := data.NewWebsiteRepo(locale, db, cacheRepo, databaseRepo, databaseServerRepo, databaseUserRepo, certRepo, certAccountRepo)
|
||||
backupRepo := data.NewBackupRepo(locale, db, settingRepo, websiteRepo)
|
||||
cliService := service.NewCliService(locale, koanf, db, appRepo, cacheRepo, userRepo, settingRepo, backupRepo, websiteRepo, databaseServerRepo)
|
||||
cli := route.NewCli(cliService)
|
||||
cli := route.NewCli(locale, cliService)
|
||||
command := bootstrap.NewCli(locale, cli)
|
||||
gormigrate := bootstrap.NewMigrate(db)
|
||||
benchmarkApp := benchmark.NewApp(locale)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1
web/src/locales/translations.json
Normal file
1
web/src/locales/translations.json
Normal file
@@ -0,0 +1 @@
|
||||
{"zh_CN":{},"zh_TW":{},"en":{"Saved successfully":"Saved successfully","Save":"Save","Certificate":"Certificate","Private Key":"Private Key","Panel HTTPS":"Panel HTTPS"}}
|
||||
@@ -1,6 +1,7 @@
|
||||
import type { App } from 'vue'
|
||||
import { createGettext as vue3Gettext } from 'vue3-gettext'
|
||||
|
||||
import translations from '@/locales/translations.json'
|
||||
|
||||
export let gettext: ReturnType<typeof vue3Gettext>
|
||||
|
||||
export function $gettext(msgid: string, params?: Record<string, string | number>) {
|
||||
@@ -16,18 +17,6 @@ export function $ngettext(
|
||||
return gettext.$ngettext(msgid, plural, n, params)
|
||||
}
|
||||
|
||||
export function setupGettext(app: App) {
|
||||
gettext = vue3Gettext({
|
||||
availableLanguages: {
|
||||
en: 'English',
|
||||
zh_CN: '简体中文',
|
||||
zh_TW: '繁體中文'
|
||||
},
|
||||
defaultLanguage: 'zh_CN'
|
||||
})
|
||||
app.use(gettext)
|
||||
}
|
||||
|
||||
export function createGettext(): any {
|
||||
gettext = vue3Gettext({
|
||||
availableLanguages: {
|
||||
@@ -35,7 +24,8 @@ export function createGettext(): any {
|
||||
zh_CN: '简体中文',
|
||||
zh_TW: '繁體中文'
|
||||
},
|
||||
defaultLanguage: 'zh_CN'
|
||||
defaultLanguage: 'zh_CN',
|
||||
translations: translations
|
||||
})
|
||||
|
||||
return gettext
|
||||
|
||||
@@ -59,7 +59,7 @@ const maybeHardReload = () => {
|
||||
<n-form-item :label="$gettext('Panel Name')">
|
||||
<n-input v-model:value="model.name" :placeholder="$gettext('Panel Name')" />
|
||||
</n-form-item>
|
||||
<n-form-item v-show="false" :label="$gettext('Language')">
|
||||
<n-form-item :label="$gettext('Language')">
|
||||
<n-select v-model:value="model.locale" :options="locales"> </n-select>
|
||||
</n-form-item>
|
||||
<n-form-item :label="$gettext('Username')">
|
||||
|
||||
Reference in New Issue
Block a user