1
0
mirror of https://github.com/1Panel-dev/1Panel.git synced 2025-01-19 00:09:16 +08:00

feat: Improve and format language files (#7645)

This commit is contained in:
2025-01-06 13:48:21 +08:00 committed by GitHub
parent 120d0dd7c6
commit 5f0c740eb0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 340 additions and 252 deletions

View File

@ -29,7 +29,7 @@ type Login struct {
Captcha string `json:"captcha"` Captcha string `json:"captcha"`
CaptchaID string `json:"captchaID"` CaptchaID string `json:"captchaID"`
AuthMethod string `json:"authMethod" validate:"required,oneof=jwt session"` AuthMethod string `json:"authMethod" validate:"required,oneof=jwt session"`
Language string `json:"language" validate:"required,oneof=zh en tw jp ru ms pt-BR"` Language string `json:"language" validate:"required,oneof=zh en tw ja ru ms 'pt-BR'"`
} }
type MFALogin struct { type MFALogin struct {

View File

@ -105,7 +105,7 @@ func Init() {
_, _ = bundle.LoadMessageFileFS(fs, "lang/pt.yaml") _, _ = bundle.LoadMessageFileFS(fs, "lang/pt.yaml")
// (dev: lucasplcorrea) - Add pt-BR.yaml // (dev: lucasplcorrea) - Add pt-BR.yaml
_, _ = bundle.LoadMessageFileFS(fs, "lang/pt-BR.yaml") _, _ = bundle.LoadMessageFileFS(fs, "lang/pt-BR.yaml")
_, _ = bundle.LoadMessageFileFS(fs, "lang/jp.yaml") _, _ = bundle.LoadMessageFileFS(fs, "lang/ja.yaml")
_, _ = bundle.LoadMessageFileFS(fs, "lang/ru.yaml") _, _ = bundle.LoadMessageFileFS(fs, "lang/ru.yaml")
_, _ = bundle.LoadMessageFileFS(fs, "lang/ms.yaml") _, _ = bundle.LoadMessageFileFS(fs, "lang/ms.yaml")
} }

View File

@ -3,7 +3,7 @@ import zh from './modules/zh';
import tw from './modules/tw'; import tw from './modules/tw';
import en from './modules/en'; import en from './modules/en';
import ptBr from './modules/pt-br'; import ptBr from './modules/pt-br';
import jp from './modules/jp'; import ja from './modules/ja';
import ru from './modules/ru'; import ru from './modules/ru';
import ms from './modules/ms'; import ms from './modules/ms';
@ -16,8 +16,8 @@ const i18n = createI18n({
zh, zh,
tw, tw,
en, en,
'pt-br': ptBr, 'pt-BR': ptBr,
jp, ja,
ru, ru,
ms, ms,
}, },

View File

@ -1,8 +1,8 @@
import fit2cloudEnLocale from 'fit2cloud-ui-plus/src/locale/lang/en'; import fit2cloudEnLocale from 'fit2cloud-ui-plus/src/locale/lang/en';
let xpackJpLocale = {}; let xpackJpLocale = {};
const xpackModules = import.meta.glob('../../xpack/lang/jp.ts', { eager: true }); const xpackModules = import.meta.glob('../../xpack/lang/ja.ts', { eager: true });
if (xpackModules['../../xpack/lang/jp.ts']) { if (xpackModules['../../xpack/lang/ja.ts']) {
xpackJpLocale = xpackModules['../../xpack/lang/jp.ts']['default'] || {}; xpackJpLocale = xpackModules['../../xpack/lang/ja.ts']['default'] || {};
} }
const message = { const message = {
@ -106,7 +106,7 @@ const message = {
protocol: 'プロトコル', protocol: 'プロトコル',
tableSetting: 'テーブル設定', tableSetting: 'テーブル設定',
refreshRate: 'リフレッシュレート', refreshRate: 'リフレッシュレート',
refreshRateUnit: '更新なし|{n} second/time |{n}/時間', refreshRateUnit: '更新なし|{n}/時間 |{n}/時間',
selectColumn: '列を選択します', selectColumn: '列を選択します',
}, },
loadingText: { loadingText: {
@ -296,15 +296,15 @@ const message = {
year: '||', year: '||',
time: 'RPM', time: 'RPM',
core: 'コア|コア|コア', core: 'コア|コア|コア',
millisecond: 'Millisecond |ミリ秒', millisecond: 'ミリ秒 |ミリ秒',
secondUnit: 's', secondUnit: 's',
minuteUnit: '分', minuteUnit: 'min',
hourUnit: 'h', hourUnit: 'h',
dayUnit: 'd', dayUnit: 'd',
weekUnit: 'w', weekUnit: 'w',
monthUnit: 'm', monthUnit: 'm',
yearUnit: 'y', yearUnit: 'y',
millisecondUnit: 'MS', millisecondUnit: 'ms',
}, },
operate: { operate: {
down: '停止', down: '停止',
@ -317,7 +317,7 @@ const message = {
}, },
menu: { menu: {
home: '概要', home: '概要',
apps: 'appStore', apps: 'アプリストア',
website: 'ウェブサイト|ウェブサイト', website: 'ウェブサイト|ウェブサイト',
project: 'プロジェクト|プロジェクト', project: 'プロジェクト|プロジェクト',
config: '構成|構成', config: '構成|構成',
@ -335,7 +335,7 @@ const message = {
terminal: '端子|端子', terminal: '端子|端子',
settings: '設定|設定', settings: '設定|設定',
toolbox: 'ツールボックス', toolbox: 'ツールボックス',
logs: 'log |ログ', logs: 'ログ |ログ',
runtime: 'ランタイム|ランタイム', runtime: 'ランタイム|ランタイム',
processManage: 'プロセス|プロセス', processManage: 'プロセス|プロセス',
process: 'プロセス|プロセス', process: 'プロセス|プロセス',
@ -436,7 +436,7 @@ const message = {
confChange: '構成', confChange: '構成',
confNotFound: confNotFound:
'構成ファイルは見つかりませんでしたアプリケーションをApp Storeの最新バージョンにアップグレードしてください', '設定ファイルが見つかりませんでしたアプリストアでアプリケーションを最新バージョンにアップグレードして度お試しください',
portHelper: portHelper:
'このポートはコンテナの露出したポートです変更を個別に保存してコンテナを再起動する必要があります', 'このポートはコンテナの露出したポートです変更を個別に保存してコンテナを再起動する必要があります',
@ -590,8 +590,8 @@ const message = {
container: { container: {
create: 'コンテナを作成します', create: 'コンテナを作成します',
edit: 'コンテナを編集します', edit: 'コンテナを編集します',
updateHelper1: 'このコンテナはApp Storeから来ていることを検出しました次の2つのポイントに注意してください', updateHelper1: 'このコンテナがアプリストアから取得されたことを検出しました以下の2点にご注意ください',
updateHelper2: '1.現在の変更App Storeにインストールされているアプリケーションと同期されません', updateHelper2: '1.現在の変更内容はアプリストアにインストールされているアプリケーションには同期されません',
updateHelper3: updateHelper3:
'2.インストールされているページでアプリケーションを変更すると現在編集されているコンテンツが無効になります', '2.インストールされているページでアプリケーションを変更すると現在編集されているコンテンツが無効になります',
updateHelper4: 'コンテナを編集するには再構築が必要であり非存在データが失われます続けたいですか', updateHelper4: 'コンテナを編集するには再構築が必要であり非存在データが失われます続けたいですか',
@ -611,7 +611,7 @@ const message = {
containerPrune: 'プルーン', containerPrune: 'プルーン',
containerPruneHelper1: 'これにより停止状態にあるすべてのコンテナが削除されます', containerPruneHelper1: 'これにより停止状態にあるすべてのコンテナが削除されます',
containerPruneHelper2: containerPruneHelper2:
'コンテナがApp Storeの場合はApp Store->インストールに移動し[再構築]ボタンをクリックしてクリーンアップを実行した後に再インストールする必要があります', 'コンテナがアプリストアから取得された場合クリーンアップを実行した後にアプリストア -> インストール済みセクションに移動し再構築ボタンをクリックして再インストールする必要があります',
containerPruneHelper3: 'この操作は元に戻すことはできません続けたいですか', containerPruneHelper3: 'この操作は元に戻すことはできません続けたいですか',
imagePrune: 'プルーン', imagePrune: 'プルーン',
imagePruneSome: 'クリーンラベル付けされています', imagePruneSome: 'クリーンラベル付けされています',
@ -658,7 +658,7 @@ const message = {
inputIpv6: '20010DB885A3000000008A2E03707334', inputIpv6: '20010DB885A3000000008A2E03707334',
containerFromAppHelper: containerFromAppHelper:
'このコンテナはApp Storeから発生していることを検出しましたアプリの操作により現在の編集が無効になる場合があります', 'このコンテナがアプリストアから取得されたことが検出されましたアプリの操作により現在の編集が無効になる可能性があります',
containerFromAppHelper1: containerFromAppHelper1:
'インストールされているアプリケーションリストの[PARAM]ボタンをクリックして編集ページを入力しコンテナ名を変更します', 'インストールされているアプリケーションリストの[PARAM]ボタンをクリックして編集ページを入力しコンテナ名を変更します',
command: '指示', command: '指示',
@ -678,7 +678,8 @@ const message = {
oldImage: '現在の画像', oldImage: '現在の画像',
targetImage: 'ターゲット画像', targetImage: 'ターゲット画像',
imageLoadErr: 'コンテナの画像名は検出されません', imageLoadErr: 'コンテナの画像名は検出されません',
appHelper: 'コンテナはApp Storeから来ておりアップグレードするとサービスが利用できなくなる可能性があります', appHelper:
'このコンテナはアプリストアから取得されたものでありアップグレードによってサービスが利用不可になる可能性があります',
input: '手動入力', input: '手動入力',
forcePull: '常に画像を引っ張ってください', forcePull: '常に画像を引っ張ってください',
forcePullHelper: 'これによりサーバー上の既存の画像が無視されレジストリから最新の画像が引き出されます', forcePullHelper: 'これによりサーバー上の既存の画像が無視されレジストリから最新の画像が引き出されます',
@ -846,7 +847,7 @@ const message = {
'ソケットパスの設定を保存するとDockerサービスが利用できなくなる可能性があります続けたいですか', 'ソケットパスの設定を保存するとDockerサービスが利用できなくなる可能性があります続けたいですか',
sockPathErr: '正しいDockerソックファイルパスを選択または入力してください', sockPathErr: '正しいDockerソックファイルパスを選択または入力してください',
related: '関連している', related: '関連している',
includeAppstore: 'App Storeのコンテナを表示します', includeAppstore: 'アプリストアから取得したコンテナを表示',
cleanDockerDiskZone: 'Dockerが使用するディスクスペースをクリーンアップします', cleanDockerDiskZone: 'Dockerが使用するディスクスペースをクリーンアップします',
cleanImagesHelper: 'コンテナで使用されていないすべての画像をクリーンアップ', cleanImagesHelper: 'コンテナで使用されていないすべての画像をクリーンアップ',
@ -1250,7 +1251,7 @@ const message = {
currentSelect: '現在の選択', currentSelect: '現在の選択',
unsupportedType: 'サポートされていないファイルタイプ', unsupportedType: 'サポートされていないファイルタイプ',
deleteHelper: '次のファイルを削除したいですかデフォルトでは削除後にリサイクルビンに入ります', deleteHelper: '次のファイルを削除したいですかデフォルトでは削除後にリサイクルビンに入ります',
fileHeper: `note:\n1SearchResultsCan'tはソートされます。\N2。フォルダーはできます'tBeSortedBySize`, fileHeper: `note:\n1.SearchResultsCan'tはソートされます。\n2.フォルダーはできます'tBeSortedBySize`,
forceDeleteHelper: 'ファイルを永久に削除しますリサイクルビンを入力せずに直接削除します', forceDeleteHelper: 'ファイルを永久に削除しますリサイクルビンを入力せずに直接削除します',
recycleBin: 'ビンをリサイクルします', recycleBin: 'ビンをリサイクルします',
sourcePath: 'オリジナルパス', sourcePath: 'オリジナルパス',
@ -1386,9 +1387,11 @@ const message = {
systemIP: 'システムアドレス', systemIP: 'システムアドレス',
proxy: 'サーバープロキシ', proxy: 'サーバープロキシ',
proxyHelper: 'プロキシサーバーを設定した後次のシナリオで効果的になります', proxyHelper: 'プロキシサーバーを設定した後次のシナリオで効果的になります',
proxyHelper1: 'App Storeからのインストールパッケージのダウンロードと同期Professional Editionのみ', proxyHelper1:
'アプリストアからのインストールパッケージのダウンロードと同期プロフェッショナルエディションのみ',
proxyHelper2: 'システムの更新と更新情報検索プロフェッショナルエディションのみ', proxyHelper2: 'システムの更新と更新情報検索プロフェッショナルエディションのみ',
proxyHelper4: 'DockerネットワークはプロキシサーバーProfessional Editionのみを介してアクセスされます', proxyHelper4:
'Dockerネットワークはプロキシサーバーを通じてアクセスされますプロフェッショナルエディションのみ',
proxyHelper3: 'システムライセンスの確認と同期', proxyHelper3: 'システムライセンスの確認と同期',
proxyType: 'プロキシタイプ', proxyType: 'プロキシタイプ',
proxyUrl: 'プロキシアドレス', proxyUrl: 'プロキシアドレス',
@ -1801,7 +1804,7 @@ const message = {
stopOperatorHelper: 'アプリケーションは停止します続けたいですか', stopOperatorHelper: 'アプリケーションは停止します続けたいですか',
restartOperatorHelper: 'アプリケーションが再起動されます続けたいですか', restartOperatorHelper: 'アプリケーションが再起動されます続けたいですか',
reloadOperatorHelper: 'アプリケーションはリロードされます続けたいですか', reloadOperatorHelper: 'アプリケーションはリロードされます続けたいですか',
checkInstalledWarn: `{0}」は検出されません。「App Store」に移動してインストールします`, checkInstalledWarn: `{0}」が検出されませんでした。「アプリストア」に移動してインストールしてください`,
gotoInstalled: 'インストールに移動します', gotoInstalled: 'インストールに移動します',
search: '検索', search: '検索',
limitHelper: 'アプリケーションはすでにインストールされています', limitHelper: 'アプリケーションはすでにインストールされています',
@ -2133,7 +2136,7 @@ const message = {
tencentCloud: 'テンセントクラウド', tencentCloud: 'テンセントクラウド',
containWarn: 'ドメイン名にはメインドメインが含まれています再入力してください', containWarn: 'ドメイン名にはメインドメインが含まれています再入力してください',
rewriteHelper2: rewriteHelper2:
'App StoreからインストールされたWordPressなどのアプリケーション通常擬似静的構成プリセットが付属していますそれらを再構成するとエラーが発生する可能性があります', 'アプリストアからインストールされたWordPressなどのアプリケーションは通常擬似静的設定が事前に設定されていますそれらを再設定するとエラーが発生する可能性があります',
websiteBackupWarn: websiteBackupWarn:
'ローカルバックアップのインポートをサポートするだけで他のマシンからバックアップをインポートすることは回復の故障を引き起こす可能性があります', 'ローカルバックアップのインポートをサポートするだけで他のマシンからバックアップをインポートすることは回復の故障を引き起こす可能性があります',
ipWebsiteWarn: ipWebsiteWarn:
@ -2284,7 +2287,7 @@ const message = {
cookieBlockList: 'クッキーブロックリスト', cookieBlockList: 'クッキーブロックリスト',
firewall: 'ファイアウォール', firewall: 'ファイアウォール',
dockerHelper: `Linuxファイアウォール "{0}" Dockerポートマッピングは無効にできません。アプリケーションは、「App Store->インストールされた」ページのパラメーターを編集して、ポートがリリースされるかどうかを制御できます。`, dockerHelper: `Linuxファイアウォール{0}」ではDockerポートマッピングを無効にできません。アプリケーションは「アプリストア -> インストール済み」ページでパラメータを編集することにより、ポートの解放を制御できます。`,
quickJump: 'クイックアクセス', quickJump: 'クイックアクセス',
used: '使用済み', used: '使用済み',
unUsed: '未使用', unUsed: '未使用',

File diff suppressed because it is too large Load Diff

View File

@ -61,7 +61,7 @@
English English
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item command="pt-BR">Portugês (Brasil)</el-dropdown-item> <el-dropdown-item command="pt-BR">Portugês (Brasil)</el-dropdown-item>
<el-dropdown-item command="jp">日本語</el-dropdown-item> <el-dropdown-item command="ja">日本語</el-dropdown-item>
<el-dropdown-item command="ru">Русский</el-dropdown-item> <el-dropdown-item command="ru">Русский</el-dropdown-item>
<el-dropdown-item command="ms">Bahasa Melayu</el-dropdown-item> <el-dropdown-item command="ms">Bahasa Melayu</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
@ -276,9 +276,9 @@ function handleCommand(command: string) {
dropdownText.value = 'English'; dropdownText.value = 'English';
} else if (command === 'pt-BR') { } else if (command === 'pt-BR') {
dropdownText.value = 'Português (Brasil)'; dropdownText.value = 'Português (Brasil)';
}else if (command === 'tw') { } else if (command === 'tw') {
dropdownText.value = '中文(繁體)'; dropdownText.value = '中文(繁體)';
} else if (command === 'jp') { } else if (command === 'ja') {
dropdownText.value = '日本語'; dropdownText.value = '日本語';
} else if (command === 'ru') { } else if (command === 'ru') {
dropdownText.value = 'Русский'; dropdownText.value = 'Русский';