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

feat: 完善翻译工作流

This commit is contained in:
2025-04-13 02:35:22 +08:00
parent 59cfa096b4
commit fa7fca1f11
7 changed files with 32 additions and 3661 deletions

View File

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

View File

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

View 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"}}

View File

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

View File

@@ -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')">