diff --git a/core/i18n/lang/en.yaml b/core/i18n/lang/en.yaml index e1610e709..283739efe 100644 --- a/core/i18n/lang/en.yaml +++ b/core/i18n/lang/en.yaml @@ -1,33 +1,45 @@ -ErrInvalidParams: "Request parameter error: {{ .detail }}" +ErrInvalidParams: "Invalid request parameters: {{ .detail }}" ErrTokenParse: "Token generation error: {{ .detail }}" -ErrInitialPassword: "Original password is incorrect" +ErrInitialPassword: "Incorrect initial password" ErrInternalServer: "Internal server error: {{ .detail }}" ErrRecordExist: "Record already exists" ErrRecordNotFound: "Record not found" ErrStructTransform: "Type conversion failed: {{ .detail }}" ErrNotLogin: "User not logged in: {{ .detail }}" ErrPasswordExpired: "Current password has expired: {{ .detail }}" -ErrNotSupportType: "System does not support current type: {{ .detail }}" -ErrProxy: "Request error, please check node status: {{ .detail }}" -ErrApiConfigStatusInvalid: "API access forbidden: {{ .detail }}" +ErrNotSupportType: "The current type is not supported: {{ .detail }}" +ErrProxy: "Request error, please check the status of this node: {{ .detail }}" +ErrApiConfigStatusInvalid: "API access is prohibited: {{ .detail }}" ErrApiConfigKeyInvalid: "API key error: {{ .detail }}" -ErrApiConfigIPInvalid: "API IP not in whitelist: {{ .detail }}" -ErrApiConfigDisable: "API call is disabled for this endpoint: {{ .detail }}" +ErrApiConfigIPInvalid: "The API request IP is not on the whitelist: {{ .detail }}" +ErrApiConfigDisable: "This interface prohibits API calls: {{ .detail }}" ErrApiConfigKeyTimeInvalid: "API timestamp error: {{ .detail }}" -#common -ErrDemoEnvironment: "Demo server, operation forbidden!" -ErrCmdTimeout: "Command execution timeout!" -ErrEntrance: "Security entrance error, please check and retry!" -ErrGroupIsDefault: 'Default group, cannot be deleted' -ErrLocalDelete: "Cannot delete local node!" +# request +ErrNoSuchHost: "Unable to find the requested server {{ .err }}" +ErrHttpReqNotFound: "Unable to find the requested resource {{ .err }}" +ErrHttpReqFailed: "Request failed {{ .err }}" +ErrHttpReqTimeOut: "Request timed out {{ .err }}" +ErrCreateHttpClient: "Failed to create request {{ .err }}" -#backup -ErrBackupInUsed: "Backup account is in use by a scheduled task, cannot delete" -ErrBackupCheck: "Backup account connection test failed {{ .err}}" -ErrBackupLocal: "Local backup account does not support this operation!" -ErrBackupPublic: "Non-public backup account detected, please check and retry!" -ErrOSSConn: "Cannot retrieve latest version, please check if the server can connect to external network." +# common +ErrDemoEnvironment: "Demo server, this operation is prohibited!" +ErrCmdTimeout: "Command execution timeout!" +ErrEntrance: "Security entrance information error, please check and try again!" +ErrGroupIsDefault: "Default group, unable to delete" +ErrLocalDelete: "Cannot delete the local node!" +ErrPortInUsed: "The {{ .name }} port is already in use!" + +# app +CustomAppStoreFileValid: "Application store package requires .tar.gz format" +ErrFileNotFound: "{{ .name }} file does not exist" + +# backup +ErrBackupInUsed: "This backup account is used in scheduled tasks and cannot be deleted" +ErrBackupCheck: "Backup account connection test failed {{ .err }}" +ErrBackupLocal: "Local server backup account does not support this operation!" +ErrBackupPublic: "Detected that this backup account is not public, please check and try again!" +ErrOSSConn: "Unable to get the latest version, please check the server's external network connectivity." #license ErrLicense: "License format error, please check and retry!" @@ -47,37 +59,31 @@ ErrNoSuchNode: "Node information not found, please check and retry!" ErrNodeUnbind: "This node is not within the license binding range, please check and retry!" ErrNodeBind: "This node is already bound to a license, please check and retry!" -#task -TaskStart: "{{.name}} task started [START]" -TaskEnd: "{{.name}} task completed [COMPLETED]" -TaskFailed: "{{.name}} task failed" -TaskTimeout: "{{.name}} timeout" -TaskSuccess: "{{.name}} task successful" -TaskRetry: "Starting retry {{.name}}" -SubTaskSuccess: "{{ .name }} successful" +# alert +ErrAlertSync: "Alert information sync error, please check and retry!" + +# task +TaskStart: "{{ .name }} task started [START]" +TaskEnd: "{{ .name }} task ended [COMPLETED]" +TaskFailed: "{{ .name }} task failed" +TaskTimeout: "{{ .name }} timed out" +TaskSuccess: "{{ .name }} task succeeded" +TaskRetry: "Starting retry {{ .name }}" +SubTaskSuccess: "{{ .name }} succeeded" SubTaskFailed: "{{ .name }} failed: {{ .err }}" TaskInstall: "Install" -TaskUninstall: "Uninstall" -TaskCreate: "Create" -TaskDelete: "Delete" TaskUpgrade: "Upgrade" -TaskUpdate: "Update" -TaskRestart: "Restart" -TaskRollback: "Rollback" -SuccessStatus: "{{ .name }} successful" +SuccessStatus: "{{ .name }} succeeded" FailedStatus: "{{ .name }} failed {{.err}}" -PullImage: "Pull image" Start: "Start" -Run: "Run" -Stop: "Stop" SubTask: "Subtask" #upgrade node -NodeUpgrade: "Upgrade node {name}" -NewSSHClient: "Initialize SSH connection" +NodeUpgrade: "Upgrade node {{ .name }}" +NewSSHClient: "Initializing SSH connection" BackupBeforeUpgrade: "Backup data before upgrade" UploadUpgradeFile: "Distribute upgrade files" -RestartAfterUpgrade: "Start services after upgrade" +RestartAfterUpgrade: "Start service after upgrade" #add node TaskAddNode: "Add node" @@ -150,4 +156,4 @@ UserInfoAddr: "Panel address: " UserInfoPassHelp: "Tip: To change the password, you can execute the command: " DBConnErr: "Error: Failed to initialize database connection, {{ .err }}" SystemVersion: "version: " -SystemMode: "mode: " +SystemMode: "mode: " \ No newline at end of file diff --git a/core/i18n/lang/fa.yaml b/core/i18n/lang/fa.yaml deleted file mode 100644 index 4073cec63..000000000 --- a/core/i18n/lang/fa.yaml +++ /dev/null @@ -1,63 +0,0 @@ -#cmd -AppVersion: "Lotfan noskhe-ye barname ra vared konid" -AppCommands: "Dasturat-e marbut be barname" -AppInit: "Barname ra shoru' konid" -AppKeyVal: "Kelid-e barname (faghat az zabane englisi poshtibani mikonad)" -AppCreateFileErr: "Khalgh-e file {{ .name }} namovaffagh bud {{ .err }}" -AppCreateDirErr: "Khalgh-e folder {{ .name }} namovaffagh bud {{ .err }}" -AppMissKey: "Kelid-e barname mojood nist, az -k estefade konid" -AppMissVersion: "Noskhe-ye barname mojood nist, az -v estefade konid" -AppVersionExist: "Noskhe ghablan mojood ast!" -AppCreateSuccessful: "Khalgh ba movaffaghiat anjam shod!" -AppWriteErr: "Neveshtan file {{ .name }} namovaffagh bud {{ .err }}" -SudoHelper: "Lotfan in eskript ra be onvane karbare root ya ba mojavez sudo ejra konid" -ListenIPCommands: "IP goosh dadan ra taghir dahid" -ListenIPv4: "Goosh dadan bar IPv4" -ListenIPv6: "Goosh dadan bar IPv6" -ListenChangeSuccessful: "Taghir movaffagh! Hala bar {{ .value }} goosh midahad" -ResetCommands: "E'ade setadad etela'at-e system" -ResetMFA: "Fa'al-sazi do marhale'i 1Panel ra laghv konid" -ResetHttps: "Voroud HTTPS baraye 1Panel ra laghv konid" -ResetEntrance: "Voroud amin 1Panel ra laghv konid" -ResetIPs: "Mahdudiyat IP-haye mojaz 1Panel ra laghv konid" -ResetDomain: "Sazgari domain 1Panel ra laghv konid" -RestoreCommands: "Bargasht be khadamate 1Panel va data" -RestoreNoSuchFile: "Hich file mojood baraye bargasht nist" -RestoreStep1: "(1/5) Shoru' bargasht be khadamate 1Panel va data az directory {{ .name }} ..." -RestoreStep2: "(2/5) Bargasht be binary 1Panel ba movaffaghiat anjam shod" -RestoreStep3: "(3/5) Bargasht be script 1Panel ba movaffaghiat anjam shod" -RestoreStep4: "(4/5) Bargasht be khadamat 1Panel ba movaffaghiat anjam shod" -RestoreStep5: "(5/5) Bargasht be data 1Panel ba movaffaghiat anjam shod" -RestoreSuccessful: "Bargasht ba movaffaghiat anjam shod! Khadamat dar hale restart ast, lotfan montazer bashid..." -UpdateCommands: "Be'rooz resani etela'at-e panel" -UpdateUser: "Be'rooz resani karbare panel" -UpdatePassword: "Be'rooz resani ramz-e panel" -UpdatePort: "Be'rooz resani port-e panel" -UpdateUserNull: "Khatta: karbare panel khalist!" -UpdateUserBlank: "Khatta: karbare panel shamel faseleh ast!" -UpdateUserFormat: "Khatta: format-e karbare panel na dorost ast! Faghat az englisi, chine'i, adad va _, ba tool-e 3-30 poshtibani mikonad" -UpdateUserErr: "Khatta: be'rooz resani karbare panel namovaffagh bud, {{ .err }}" -UpdateSuccessful: "Be'rooz resani ba movaffaghiat anjam shod!" -UpdateUserResult: "Karbare panel: {{ .name }}" -UpdatePasswordRead: "Khatta: khatayi dar khandan etela'at-e ramz-e panel, {{ .err }}" -UpdatePasswordNull: "Khatta: ramz-e panel khalist!" -UpdateUPasswordBlank: "Khatta: ramz-e panel shamel faseleh ast!" -UpdatePasswordFormat: "Khatta: ramz-e panel faghat az harf, adad, karakter-haye vizhe !@#$%*_,.? ba tool-e 8-30 poshtibani mikonad!" -UpdatePasswordLen: "Khatta: lotfan ramzi bishtar az 6 karakter vared konid!" -UpdatePasswordRe: "Teyid-e ramz:" -UpdatePasswordErr: "Khatta: be'rooz resani ramz-e panel namovaffagh bud, {{ .err }}" -UpdatePasswordSame: "Khatta: do ramz ba ham yeksan nistand, lotfan barrasi konid va dobare talash konid!" -UpdatePasswordResult: "Ramz-e panel: {{ .name }}" -UpdatePortFormat: "Khatta: shomareye port bayad bein 1 ta 65535 bashad!" -UpdatePortUsed: "Khatta: shomareye port ghablan estefade shode ast, lotfan barrasi konid va dobare talash konid!" -UpdatePortErr: "Khatta: be'rooz resani port-e panel namovaffagh bud, {{ .err }}" -UpdatePortResult: "Port-e panel: {{ .name }}" -UpdatePortFirewallAdd: "Ezafe kardane ghanoun-e port firewall namovaffagh bud, {{ .err }}, lotfan port {{ .name }} ra be dast az qavaneen firewall ezafe konid." -UpdatePortFirewallDel: "Khatta: hazf-e port firewall namovaffagh bud, {{ .err }}" -UpdatePortFirewallReload: "Reload firewall namovaffagh bud, {{ .err }}, lotfan firewall ra be dast reload konid." -UserInfo: "Daryaft etela'at-e panel" -UserInfoAddr: "Address-e panel: " -UserInfoPassHelp: "Nokte: baraye taghiri ramz, mitavanid dastur zir ra anjam dahid: " -DBConnErr: "Khatta: etesal be database namovaffagh bud, {{ .err }}" -SystemVersion: "noskhe: " -SystemMode: "halat: " diff --git a/core/i18n/lang/ja.yaml b/core/i18n/lang/ja.yaml index 456e90779..1255af20f 100644 --- a/core/i18n/lang/ja.yaml +++ b/core/i18n/lang/ja.yaml @@ -1,33 +1,46 @@ -ErrInvalidParams: "リクエストパラメーターエラー: {{ .detail }}" +ErrInvalidParams: "リクエストパラメータが無効です: {{ .detail }}" ErrTokenParse: "トークン生成エラー: {{ .detail }}" -ErrInitialPassword: "元のパスワードが間違っています" -ErrInternalServer: "サーバ内部エラー: {{ .detail }}" +ErrInitialPassword: "初期パスワードが間違っています" +ErrInternalServer: "サーバー内部エラー: {{ .detail }}" ErrRecordExist: "レコードはすでに存在します" ErrRecordNotFound: "レコードが見つかりません" -ErrStructTransform: "型変換エラー: {{ .detail }}" -ErrNotLogin: "ユーザーはログインしていません: {{ .detail }}" -ErrPasswordExpired: "現在のパスワードは期限切れです: {{ .detail }}" -ErrNotSupportType: "システムは現在のタイプをサポートしていません: {{ .detail }}" -ErrProxy: "リクエストエラー、ノードの状態を確認してください: {{ .detail }}" -ErrApiConfigStatusInvalid: "APIインターフェースへのアクセスが禁止されています: {{ .detail }}" -ErrApiConfigKeyInvalid: "APIインターフェースのキーエラー: {{ .detail }}" -ErrApiConfigIPInvalid: "APIインターフェースのIPがホワイトリストにありません: {{ .detail }}" -ErrApiConfigDisable: "このインターフェースはAPI呼び出しが無効です: {{ .detail }}" -ErrApiConfigKeyTimeInvalid: "APIインターフェースのタイムスタンプエラー: {{ .detail }}" +ErrStructTransform: "型変換に失敗しました: {{ .detail }}" +ErrNotLogin: "ユーザーがログインしていません: {{ .detail }}" +ErrPasswordExpired: "現在のパスワードの有効期限が切れています: {{ .detail }}" +ErrNotSupportType: "現在のタイプはサポートされていません: {{ .detail }}" +ErrProxy: "リクエストエラー、このノードの状態を確認してください: {{ .detail }}" +ErrApiConfigStatusInvalid: "APIアクセスは禁止されています: {{ .detail }}" +ErrApiConfigKeyInvalid: "APIキーが無効です: {{ .detail }}" +ErrApiConfigIPInvalid: "APIリクエストIPがホワイトリストにありません: {{ .detail }}" +ErrApiConfigDisable: "このインターフェースはAPI呼び出しを禁止しています: {{ .detail }}" +ErrApiConfigKeyTimeInvalid: "APIタイムスタンプエラー: {{ .detail }}" -#common -ErrDemoEnvironment: "デモサーバーで、この操作は許可されていません!" -ErrCmdTimeout: "コマンド実行のタイムアウト!" -ErrEntrance: "セキュアエントランス情報エラー、確認して再試行してください!" -ErrGroupIsDefault: 'デフォルトグループは削除できません' -ErrLocalDelete: "ローカルノードは削除できません!" +# request +ErrNoSuchHost: "要求されたサーバーが見つかりません {{ .err }}" +ErrHttpReqNotFound: "要求されたリソースが見つかりません {{ .err }}" +ErrHttpReqFailed: "リクエスト失敗 {{ .err }}" +ErrHttpReqTimeOut: "リクエストタイムアウト {{ .err }}" +ErrCreateHttpClient: "リクエストの作成に失敗しました {{ .err }}" + +# common +ErrDemoEnvironment: "デモサーバーではこの操作は許可されていません!" +ErrCmdTimeout: "コマンドの実行がタイムアウトしました!" +ErrEntrance: "セキュリティ情報エラー、再確認してください!" +ErrGroupIsDefault: "デフォルトグループの削除はできません" +ErrLocalDelete: "ローカルノードは削除できません!" +ErrPortInUsed: "{{ .name }} ポートはすでに使用されています!" + +# app +CustomAppStoreFileValid: "アプリストアパッケージは .tar.gz 形式である必要があります" +ErrFileNotFound: "{{ .name }} ファイルが存在しません" + +# backup +ErrBackupInUsed: "このバックアップアカウントはスケジュールタスクで使用されており、削除できません" +ErrBackupCheck: "バックアップアカウントの接続テストが失敗しました {{ .err }}" +ErrBackupLocal: "ローカルサーバーバックアップアカウントはこの操作をサポートしていません!" +ErrBackupPublic: "このバックアップアカウントが公開されていないと検出されました。再確認してください!" +ErrOSSConn: "最新バージョンを取得できません。外部ネットワーク接続を確認してください。" -#backup -ErrBackupInUsed: "バックアップアカウントは計画タスクで使用中のため削除できません" -ErrBackupCheck: "バックアップアカウントの接続テストに失敗しました {{ .err}}" -ErrBackupLocal: "ローカルサーバーのバックアップアカウントはこの操作をサポートしていません!" -ErrBackupPublic: "バックアップアカウントが公開ではないことが検出されました、確認して再試行してください!" -ErrOSSConn: "最新バージョンを取得できませんでした、サーバーが外部ネットワークに接続できるか確認してください。" #license ErrLicense: "ライセンスフォーマットエラー、確認して再試行してください!" @@ -48,39 +61,30 @@ ErrNodeUnbind: "そのノードはライセンスのバインド範囲内では ErrNodeBind: "そのノードはライセンスにバインドされています、確認して再試行してください!" # alert -ErrAlertSync: "アラート情報の同期エラー、確認して再試行してください!" +ErrAlertSync: "アラート情報の同期エラーです。後で再試行してください!" #task -TaskStart: "{{.name}} タスク開始 [START]" -TaskEnd: "{{.name}} タスク終了 [COMPLETED]" -TaskFailed: "{{.name}} タスク失敗" -TaskTimeout: "{{.name}} タイムアウト" -TaskSuccess: "{{.name}} タスク成功" -TaskRetry: "{{.name}} 番目の再試行を開始" +TaskStart: "{{ .name }} タスク開始 [START]" +TaskEnd: "{{ .name }} タスク終了 [COMPLETED]" +TaskFailed: "{{ .name }} タスク失敗" +TaskTimeout: "{{ .name }} タイムアウト" +TaskSuccess: "{{ .name }} タスク成功" +TaskRetry: "第 {{ .name }} 回リトライ開始" SubTaskSuccess: "{{ .name }} 成功" SubTaskFailed: "{{ .name }} 失敗: {{ .err }}" TaskInstall: "インストール" -TaskUninstall: "アンインストール" -TaskCreate: "作成" -TaskDelete: "削除" TaskUpgrade: "アップグレード" -TaskUpdate: "更新" -TaskRestart: "再起動" -TaskRollback: "ロールバック" -SuccessStatus: "{{ .name }} 成功" +SuccessStatus: "{{ .name }} 成功" FailedStatus: "{{ .name }} 失敗 {{.err}}" -PullImage: "イメージを取得" Start: "開始" -Run: "実行" -Stop: "停止" SubTask: "サブタスク" #upgrade node -NodeUpgrade: "ノードのアップグレード {name}" -NewSSHClient: "SSH接続を初期化" -BackupBeforeUpgrade: "アップグレード前のデータバックアップ" -UploadUpgradeFile: "アップグレードに必要なファイルを送信" -RestartAfterUpgrade: "アップグレード後にサービスを再起動" +NodeUpgrade: "{{ .name }} ノードのアップグレード" +NewSSHClient: "SSH接続の初期化" +BackupBeforeUpgrade: "アップグレード前にデータをバックアップ" +UploadUpgradeFile: "アップグレードに必要なファイルを配布" +RestartAfterUpgrade: "アップグレード後にサービスを起動" #add node TaskAddNode: "ノードを追加" diff --git a/core/i18n/lang/ko.yaml b/core/i18n/lang/ko.yaml index e6f39eb82..e14a4fbf2 100644 --- a/core/i18n/lang/ko.yaml +++ b/core/i18n/lang/ko.yaml @@ -1,33 +1,45 @@ ErrInvalidParams: "요청 매개변수가 잘못되었습니다: {{ .detail }}" ErrTokenParse: "토큰 생성 오류: {{ .detail }}" -ErrInitialPassword: "기존 비밀번호가 틀렸습니다" -ErrInternalServer: "서비스 내부 오류: {{ .detail }}" +ErrInitialPassword: "초기 비밀번호가 잘못되었습니다" +ErrInternalServer: "서버 내부 오류: {{ .detail }}" ErrRecordExist: "레코드가 이미 존재합니다" ErrRecordNotFound: "레코드를 찾을 수 없습니다" -ErrStructTransform: "타입 변환 실패: {{ .detail }}" -ErrNotLogin: "사용자가 로그인하지 않았습니다: {{ .detail }}" +ErrStructTransform: "형 변환 실패: {{ .detail }}" +ErrNotLogin: "사용자가 로그인되지 않았습니다: {{ .detail }}" ErrPasswordExpired: "현재 비밀번호가 만료되었습니다: {{ .detail }}" -ErrNotSupportType: "시스템이 현재 유형을 지원하지 않습니다: {{ .detail }}" -ErrProxy: "요청 오류, 노드 상태를 확인하세요: {{ .detail }}" -ErrApiConfigStatusInvalid: "API 인터페이스 접근 금지: {{ .detail }}" -ErrApiConfigKeyInvalid: "API 인터페이스 키 오류: {{ .detail }}" -ErrApiConfigIPInvalid: "API 인터페이스 호출 IP가 화이트리스트에 없습니다: {{ .detail }}" -ErrApiConfigDisable: "이 인터페이스는 API 인터페이스 호출을 사용할 수 없습니다: {{ .detail }}" -ErrApiConfigKeyTimeInvalid: "API 인터페이스 타임스탬프 오류: {{ .detail }} +ErrNotSupportType: "현재 유형은 지원되지 않습니다: {{ .detail }}" +ErrProxy: "요청 오류, 이 노드 상태를 확인하세요: {{ .detail }}" +ErrApiConfigStatusInvalid: "API 액세스가 금지되었습니다: {{ .detail }}" +ErrApiConfigKeyInvalid: "API 키 오류: {{ .detail }}" +ErrApiConfigIPInvalid: "API 요청 IP가 화이트리스트에 없습니다: {{ .detail }}" +ErrApiConfigDisable: "이 인터페이스는 API 호출을 금지합니다: {{ .detail }}" +ErrApiConfigKeyTimeInvalid: "API 타임스탬프 오류: {{ .detail }}" -#common -ErrDemoEnvironment: "데모 서버에서는 이 작업을 수행할 수 없습니다!" +# request +ErrNoSuchHost: "요청한 서버를 찾을 수 없습니다 {{ .err }}" +ErrHttpReqNotFound: "요청한 리소스를 찾을 수 없습니다 {{ .err }}" +ErrHttpReqFailed: "요청 실패 {{ .err }}" +ErrHttpReqTimeOut: "요청 시간이 초과되었습니다 {{ .err }}" +ErrCreateHttpClient: "요청 생성 실패 {{ .err }}" + +# common +ErrDemoEnvironment: "데모 서버에서는 이 작업이 금지되어 있습니다!" ErrCmdTimeout: "명령 실행 시간 초과!" -ErrEntrance: "보안 입구 정보가 잘못되었습니다. 다시 확인하고 시도해 주세요!" -ErrGroupIsDefault: '기본 그룹은 삭제할 수 없습니다' -ErrLocalDelete: "로컬 노드를 삭제할 수 없습니다!" +ErrEntrance: "보안 정보 오류입니다. 확인 후 다시 시도하십시오!" +ErrGroupIsDefault: "기본 그룹은 삭제할 수 없습니다" +ErrLocalDelete: "로컬 노드는 삭제할 수 없습니다!" +ErrPortInUsed: "{{ .name }} 포트가 이미 사용 중입니다!" -#backup -ErrBackupInUsed: "이 백업 계정은 이미 예약 작업에서 사용 중입니다. 삭제할 수 없습니다." -ErrBackupCheck: "백업 계정 연결 테스트 실패 {{ .err}}" -ErrBackupLocal: "로컬 서버 백업 계정은 현재 작업을 지원하지 않습니다!" -ErrBackupPublic: "이 백업 계정이 공용이 아님을 감지했습니다. 다시 확인하고 시도해 주세요!" -ErrOSSConn: "최신 버전을 가져올 수 없습니다. 서버가 외부 네트워크에 연결되어 있는지 확인하세요." +# app +CustomAppStoreFileValid: "앱 스토어 패키지는 .tar.gz 형식이어야 합니다" +ErrFileNotFound: "{{ .name }} 파일이 존재하지 않습니다" + +# backup +ErrBackupInUsed: "이 백업 계정은 예약된 작업에 사용 중이며 삭제할 수 없습니다" +ErrBackupCheck: "백업 계정 연결 테스트 실패 {{ .err }}" +ErrBackupLocal: "로컬 서버 백업 계정은 이 작업을 지원하지 않습니다!" +ErrBackupPublic: "이 백업 계정이 공개된 것으로 감지되지 않았습니다. 다시 확인하십시오!" +ErrOSSConn: "최신 버전을 가져올 수 없습니다. 외부 네트워크 연결을 확인하십시오." #license ErrLicense: "라이선스 형식이 잘못되었습니다. 다시 확인하고 시도해 주세요!" @@ -51,36 +63,27 @@ ErrNodeBind: "이 노드가 이미 라이선스에 바인딩되어 있음을 감 ErrAlertSync: "경고 정보 동기화 오류, 다시 확인하고 시도해 주세요!" #task -TaskStart: "{{.name}} 작업 시작 [START]" -TaskEnd: "{{.name}} 작업 완료 [COMPLETED]" -TaskFailed: "{{.name}} 작업 실패" -TaskTimeout: "{{.name}} 시간 초과" -TaskSuccess: "{{.name}} 작업 성공" -TaskRetry: "{{.name}} 번째 재시도 시작" +TaskStart: "{{ .name }} 작업 시작 [START]" +TaskEnd: "{{ .name }} 작업 종료 [COMPLETED]" +TaskFailed: "{{ .name }} 작업 실패" +TaskTimeout: "{{ .name }} 시간 초과" +TaskSuccess: "{{ .name }} 작업 성공" +TaskRetry: "제 {{ .name }} 차 재시도 시작" SubTaskSuccess: "{{ .name }} 성공" SubTaskFailed: "{{ .name }} 실패: {{ .err }}" TaskInstall: "설치" -TaskUninstall: "제거" -TaskCreate: "생성" -TaskDelete: "삭제" TaskUpgrade: "업그레이드" -TaskUpdate: "업데이트" -TaskRestart: "재시작" -TaskRollback: "롤백" -SuccessStatus: "{{ .name }} 성공" +SuccessStatus: "{{ .name }} 성공" FailedStatus: "{{ .name }} 실패 {{.err}}" -PullImage: "이미지 가져오기" Start: "시작" -Run: "실행" -Stop: "중지" -SubTask: "하위 작업" +SubTask: "서브 작업" #upgrade node -NodeUpgrade: "노드 {name} 업그레이드" +NodeUpgrade: "{{ .name }} 노드 업그레이드" NewSSHClient: "SSH 연결 초기화" BackupBeforeUpgrade: "업그레이드 전 데이터 백업" -UploadUpgradeFile: "업그레이드 파일 배포" -RestartAfterUpgrade: "업그레이드 후 서비스 재시작" +UploadUpgradeFile: "업그레이드에 필요한 파일 전송" +RestartAfterUpgrade: "업그레이드 후 서비스 시작" #add node TaskAddNode: "노드 추가" diff --git a/core/i18n/lang/ms.yml b/core/i18n/lang/ms.yml index 602bf355c..9be3caa1a 100644 --- a/core/i18n/lang/ms.yml +++ b/core/i18n/lang/ms.yml @@ -1,86 +1,89 @@ -ErrInvalidParams: "Parameter permintaan salah: {{ .detail }}" +ErrInvalidParams: "Parameter permintaan tidak sah: {{ .detail }}" ErrTokenParse: "Ralat penjanaan token: {{ .detail }}" ErrInitialPassword: "Kata laluan asal salah" -ErrInternalServer: "Ralat dalaman perkhidmatan: {{ .detail }}" +ErrInternalServer: "Ralat dalaman pelayan: {{ .detail }}" ErrRecordExist: "Rekod sudah wujud" -ErrRecordNotFound: "Rekod tidak dijumpai" +ErrRecordNotFound: "Rekod tidak ditemui" ErrStructTransform: "Penukaran jenis gagal: {{ .detail }}" -ErrNotLogin: "Pengguna tidak log masuk: {{ .detail }}" +ErrNotLogin: "Pengguna belum log masuk: {{ .detail }}" ErrPasswordExpired: "Kata laluan semasa telah tamat tempoh: {{ .detail }}" -ErrNotSupportType: "Sistem tidak menyokong jenis semasa: {{ .detail }}" +ErrNotSupportType: "Jenis ini tidak disokong: {{ .detail }}" ErrProxy: "Ralat permintaan, sila semak status nod ini: {{ .detail }}" -ErrApiConfigStatusInvalid: "API sambungan dilarang: {{ .detail }}" +ErrApiConfigStatusInvalid: "Akses API dilarang: {{ .detail }}" ErrApiConfigKeyInvalid: "Kunci API tidak sah: {{ .detail }}" -ErrApiConfigIPInvalid: "IP memanggil API tidak dalam senarai putih: {{ .detail }}" -ErrApiConfigDisable: "Sambungan ini dilarang menggunakan panggilan API: {{ .detail }}" -ErrApiConfigKeyTimeInvalid: "Timestamp API tidak sah: {{ .detail }} +ErrApiConfigIPInvalid: "IP permintaan API tidak dalam senarai putih: {{ .detail }}" +ErrApiConfigDisable: "Antara muka ini melarang panggilan API: {{ .detail }}" +ErrApiConfigKeyTimeInvalid: "Ralat cap masa API: {{ .detail }}" -#common -ErrDemoEnvironment: "Pelayan demo, larangan operasi ini!" -ErrCmdTimeout: "Masa tamat untuk melaksanakan arahan!" -ErrEntrance: "Maklumat pintu masuk selamat salah, sila semak dan cuba lagi!" -ErrGroupIsDefault: 'Kumpulan default, tidak boleh dipadam' -ErrLocalDelete: "Tidak dapat memadam nod tempatan!" +# request +ErrNoSuchHost: "Pelayan yang diminta tidak dapat ditemui {{ .err }}" +ErrHttpReqNotFound: "Sumber yang diminta tidak dapat ditemui {{ .err }}" +ErrHttpReqFailed: "Permintaan gagal {{ .err }}" +ErrHttpReqTimeOut: "Permintaan telah tamat masa {{ .err }}" +ErrCreateHttpClient: "Gagal mencipta permintaan {{ .err }}" -#backup -ErrBackupInUsed: "Akaun sandaran ini sedang digunakan dalam tugas terjadual, tidak boleh dipadam" -ErrBackupCheck: "Cubaan sambungan akaun sandaran gagal {{ .err}}" +# common +ErrDemoEnvironment: "Pelayan demo, operasi ini dilarang!" +ErrCmdTimeout: "Perintah telah tamat masa!" +ErrEntrance: "Maklumat pintu masuk keselamatan salah, sila periksa dan cuba lagi!" +ErrGroupIsDefault: "Kumpulan lalai tidak boleh dihapuskan" +ErrLocalDelete: "Nod tempatan tidak boleh dihapuskan!" +ErrPortInUsed: "Port {{ .name }} telah digunakan!" + +# app +CustomAppStoreFileValid: "Pakej stor aplikasi perlu dalam format .tar.gz" +ErrFileNotFound: "Fail {{ .name }} tidak wujud" + +# backup +ErrBackupInUsed: "Akaun sandaran ini telah digunakan dalam tugas berjadual dan tidak boleh dihapuskan" +ErrBackupCheck: "Ujian sambungan akaun sandaran gagal {{ .err }}" ErrBackupLocal: "Akaun sandaran pelayan tempatan tidak menyokong operasi ini!" -ErrBackupPublic: "Akaun sandaran ini didapati bukan awam, sila semak dan cuba lagi!" -ErrOSSConn: "Tidak dapat mendapatkan versi terkini, sila pastikan pelayan boleh disambung ke rangkaian luar." +ErrBackupPublic: "Akaun sandaran ini dikesan tidak awam, sila semak semula dan cuba lagi!" +ErrOSSConn: "Tidak dapat mendapatkan versi terkini, sila semak sambungan rangkaian luar pelayan." #license -ErrLicense: "Format lesen salah, sila semak dan cuba lagi!" -ErrLicenseCheck: "Pengecaman lesen gagal, sila semak dan cuba lagi!" -ErrXpackVersion: "Pengecaman lesen gagal, lesen ini dibatasi oleh versi dan tidak dapat diimport dengan berjaya, sila semak dan cuba lagi!" -ErrLicenseSave: "Simpanan maklumat lesen gagal, ralat {{ .err }}, sila cuba lagi!" -ErrLicenseSync: "Penyingkronan maklumat lesen gagal, tiada maklumat lesen dijumpai dalam pangkalan data!" -ErrXpackNotFound: "Bahagian ini adalah ciri profesional, sila import lesen melalui paparan Tetapan Panel-Lesen dahulu" -ErrXpackExceptional: "Bahagian ini adalah ciri profesional, sila singkronkan status lesen melalui paparan Tetapan Panel-Lesen dahulu" -ErrXpackOutOfDate: "Lesen semasa telah tamat tempoh, sila import semula lesen melalui paparan Tetapan Panel-Lesen" -ErrXpackLost: "Lesen telah mencapai jumlah cubaan maksimum, sila klik butang penyinkronan secara manual pada halaman [Tetapan Panel] [Lesen] untuk memastikan fungsi profesional dapat digunakan dengan normal" -ErrXpackTimeout: "Masa tamat permintaan, sambungan internet mungkin tidak stabil, sila cuba lagi kemudian!" -ErrUnbindMaster: "Nod dijumpai dalam pengurusan nod, tidak dapat menanggalkan lesen semasa, sila singkirkan dahulu dan cuba lagi!" -ErrFreeNodeLimit: "Bilangan nod edisi komuniti telah mencapai had percuma, sila beli di www.lxware.cn/1panel dahulu dan cuba lagi!" -ErrNodeBound: "Lesen ini telah diikat kepada nod lain, sila semak dan cuba lagi!" -ErrNoSuchNode: "Maklumat nod tidak dijumpai, sila semak dan cuba lagi!" -ErrNodeUnbind: "Nod ini didapati tidak dalam lingkungan ikatan lesen, sila semak dan cuba lagi!" -ErrNodeBind: "Nod ini didapati telah diikat dengan lesen, sila semak dan cuba lagi!" +ErrLicense: "Format lesen tidak sah, sila semak dan cuba lagi!" +ErrLicenseCheck: "Pengesahan lesen gagal, sila semak dan cuba lagi!" +ErrXpackVersion: "Pengesahan lesen gagal, lesen ini terhad kepada versi tertentu, sila semak dan cuba lagi!" +ErrLicenseSave: "Gagal menyimpan maklumat lesen {{ .err }}, sila cuba lagi!" +ErrLicenseSync: "Penyelarasan maklumat lesen gagal, maklumat lesen tidak ditemui dalam pangkalan data!" +ErrXpackNotFound: "Bahagian ini adalah fungsi profesional, sila muatkan lesen di Tetapan Papan Pemuka terlebih dahulu." +ErrXpackExceptional: "Bahagian ini adalah fungsi profesional, sila selaraskan lesen di Tetapan Papan Pemuka terlebih dahulu." +ErrXpackOutOfDate: "Lesen semasa telah tamat tempoh, sila muatkan lesen baru di Tetapan Papan Pemuka." +ErrXpackLost: "Lesen telah mencapai bilangan percubaan maksimum, sila ke [Tetapan Papan Pemuka][Lesen] dan klik butang penyelarasan secara manual." +ErrXpackTimeout: "Permintaan tamat masa, sambungan rangkaian mungkin tidak stabil, sila cuba lagi kemudian!" +ErrUnbindMaster: "Terdapat nod dalam pengurusan nod, sila keluarkan dahulu dan cuba lagi!" +ErrFreeNodeLimit: "Jumlah nod versi komuniti telah mencapai had percuma, sila lawati www.lxware.cn/1panel untuk pembelian!" +ErrNodeBound: "Lesen ini telah diikat dengan nod lain, sila semak dan cuba lagi!" +ErrNoSuchNode: "Maklumat nod tidak ditemui, sila semak dan cuba lagi!" +ErrNodeUnbind: "Nod di luar skop lesen dikesan, sila semak dan cuba lagi!" +ErrNodeBind: "Nod ini telah diikat dengan lesen, sila semak dan cuba lagi!" # alert ErrAlertSync: "Ralat penyinkronan maklumat amaran, sila semak dan cuba lagi!" #task -TaskStart: "{{.name}} tugas bermula [START]" -TaskEnd: "{{.name}} tugas selesai [COMPLETED]" -TaskFailed: "{{.name}} tugas gagal" -TaskTimeout: "{{.name}} masa tamat" -TaskSuccess: "{{.name}} tugas berjaya" -TaskRetry: "Mula cubaan ke-{{.name}}" +TaskStart: "{{ .name }} tugas bermula [START]" +TaskEnd: "{{ .name }} tugas tamat [COMPLETED]" +TaskFailed: "{{ .name }} tugas gagal" +TaskTimeout: "{{ .name }} tamat masa" +TaskSuccess: "{{ .name }} tugas berjaya" +TaskRetry: "Mula percubaan semula {{ .name }}" SubTaskSuccess: "{{ .name }} berjaya" SubTaskFailed: "{{ .name }} gagal: {{ .err }}" TaskInstall: "Pasang" -TaskUninstall: "Buang Pasangan" -TaskCreate: "Cipta" -TaskDelete: "Padam" -TaskUpgrade: "Naik Taraf" -TaskUpdate: "Kemas Kini" -TaskRestart: "Mulakan Semula" -TaskRollback: "Rollback" -SuccessStatus: "{{ .name }} berjaya" +TaskUpgrade: "Kemas kini" +SuccessStatus: "{{ .name }} berjaya" FailedStatus: "{{ .name }} gagal {{.err}}" -PullImage: "Tarik Imej" Start: "Mula" -Run: "Jalankan" -Stop: "Hentikan" -SubTask: "Sub-tugas" +SubTask: "Tugas Sub" #upgrade node -NodeUpgrade: "Naik taraf nod {name}" -NewSSHClient: "Permulaan sambungan SSH" -BackupBeforeUpgrade: "Sandar data sebelum naik taraf" -UploadUpgradeFile: "Muat naik fail yang diperlukan untuk naik taraf" -RestartAfterUpgrade: "Mulakan semula perkhidmatan selepas naik taraf" +NodeUpgrade: "Naik taraf node {{ .name }}" +NewSSHClient: "Memulakan sambungan SSH" +BackupBeforeUpgrade: "Menyandarkan data sebelum naik taraf" +UploadUpgradeFile: "Sebarkan fail naik taraf" +RestartAfterUpgrade: "Mulakan perkhidmatan selepas naik taraf" #add node TaskAddNode: "Tambah nod" @@ -153,4 +156,4 @@ UserInfoAddr: "Alamat panel: " UserInfoPassHelp: "Petua: Untuk menukar kata laluan, anda boleh menjalankan arahan: " DBConnErr: "Ralat: Gagal memulakan sambungan pangkalan data, {{ .err }}" SystemVersion: "Versi: " -SystemMode: "Mod: " +SystemMode: "Mod: " \ No newline at end of file diff --git a/core/i18n/lang/pt-BR.yaml b/core/i18n/lang/pt-BR.yaml index 6e15cf084..7781c9b32 100644 --- a/core/i18n/lang/pt-BR.yaml +++ b/core/i18n/lang/pt-BR.yaml @@ -1,86 +1,89 @@ -ErrInvalidParams: "Erro nos parâmetros da solicitação: {{ .detail }}" -ErrTokenParse: "Erro na geração do token: {{ .detail }}" -ErrInitialPassword: "Senha original incorreta" -ErrInternalServer: "Erro interno no servidor: {{ .detail }}" -ErrRecordExist: "O registro já existe" +ErrInvalidParams: "Parâmetros de solicitação inválidos: {{ .detail }}" +ErrTokenParse: "Erro ao gerar o token: {{ .detail }}" +ErrInitialPassword: "Senha inicial incorreta" +ErrInternalServer: "Erro interno do servidor: {{ .detail }}" +ErrRecordExist: "Registro já existe" ErrRecordNotFound: "Registro não encontrado" ErrStructTransform: "Falha na conversão de tipo: {{ .detail }}" ErrNotLogin: "Usuário não está logado: {{ .detail }}" ErrPasswordExpired: "A senha atual expirou: {{ .detail }}" -ErrNotSupportType: "O sistema não suporta o tipo atual: {{ .detail }}" -ErrProxy: "Erro na solicitação, verifique o estado do nó: {{ .detail }}" -ErrApiConfigStatusInvalid: "Acesso à API bloqueado: {{ .detail }}" -ErrApiConfigKeyInvalid: "Chave da API inválida: {{ .detail }}" -ErrApiConfigIPInvalid: "O IP da API não está na lista branca: {{ .detail }}" -ErrApiConfigDisable: "Esta API não pode ser chamada: {{ .detail }}" -ErrApiConfigKeyTimeInvalid: "Erro no timestamp da API: {{ .detail }}" +ErrNotSupportType: "Tipo atual não suportado: {{ .detail }}" +ErrProxy: "Erro de solicitação, verifique o status deste nó: {{ .detail }}" +ErrApiConfigStatusInvalid: "Acesso à API proibido: {{ .detail }}" +ErrApiConfigKeyInvalid: "Erro de chave API: {{ .detail }}" +ErrApiConfigIPInvalid: "O IP da solicitação de API não está na lista de permissões: {{ .detail }}" +ErrApiConfigDisable: "Esta interface proíbe chamadas de API: {{ .detail }}" +ErrApiConfigKeyTimeInvalid: "Erro de timestamp da API: {{ .detail }}" -#common -ErrDemoEnvironment: "Servidor de demonstração, esta operação é proibida!" -ErrCmdTimeout: "Tempo limite de execução do comando!" -ErrEntrance: "Erro nas informações de entrada de segurança, verifique e tente novamente!" -ErrGroupIsDefault: 'Grupo padrão, não é possível excluir' -ErrLocalDelete: "Não é possível excluir o nó local!" +# request +ErrNoSuchHost: "Servidor solicitado não encontrado {{ .err }}" +ErrHttpReqNotFound: "Recurso solicitado não encontrado {{ .err }}" +ErrHttpReqFailed: "Falha na requisição {{ .err }}" +ErrHttpReqTimeOut: "Tempo de requisição esgotado {{ .err }}" +ErrCreateHttpClient: "Falha ao criar a requisição {{ .err }}" -#backup -ErrBackupInUsed: "A conta de backup já está em uso em uma tarefa agendada, não é possível excluir" -ErrBackupCheck: "Falha na conexão de teste da conta de backup {{ .err}}" +# common +ErrDemoEnvironment: "Servidor de demonstração, essa operação é proibida!" +ErrCmdTimeout: "Tempo de execução do comando esgotado!" +ErrEntrance: "Erro nas informações de entrada de segurança, por favor, verifique e tente novamente!" +ErrGroupIsDefault: "Grupo padrão não pode ser excluído" +ErrLocalDelete: "O nó local não pode ser excluído!" +ErrPortInUsed: "A porta {{ .name }} já está em uso!" + +# app +CustomAppStoreFileValid: "O pacote da loja de aplicativos deve estar no formato .tar.gz" +ErrFileNotFound: "Arquivo {{ .name }} não encontrado" + +# backup +ErrBackupInUsed: "Esta conta de backup está em uso em tarefas agendadas e não pode ser excluída" +ErrBackupCheck: "Teste de conexão da conta de backup falhou {{ .err }}" ErrBackupLocal: "A conta de backup do servidor local não suporta essa operação!" -ErrBackupPublic: "Detectamos que a conta de backup não é pública, verifique e tente novamente!" -ErrOSSConn: "Não foi possível obter a versão mais recente, verifique se o servidor pode se conectar à rede externa." +ErrBackupPublic: "A conta de backup detectada não é pública, por favor verifique e tente novamente!" +ErrOSSConn: "Não foi possível obter a versão mais recente, verifique a conectividade externa do servidor." #license -ErrLicense: "Erro no formato da licença, verifique e tente novamente!" -ErrLicenseCheck: "Falha na verificação da licença, verifique e tente novamente!" -ErrXpackVersion: "Falha na verificação da licença, a licença está restrita por versão e não pode ser importada com sucesso, verifique e tente novamente!" -ErrLicenseSave: "Falha ao salvar as informações da licença, erro {{ .err }}, tente novamente!" -ErrLicenseSync: "Falha na sincronização das informações da licença, não foram detectadas informações de licença no banco de dados!" -ErrXpackNotFound: "Esta parte é um recurso da versão profissional, primeiro importe a licença na tela de Configuração do Painel - Licença" -ErrXpackExceptional: "Esta parte é um recurso da versão profissional, primeiro sincronize o status da licença na tela de Configuração do Painel - Licença" -ErrXpackOutOfDate: "A licença atual expirou, reimporte a licença na tela de Configuração do Painel - Licença" -ErrXpackLost: "A licença atingiu o número máximo de tentativas, vá para a página [Configuração do Painel][Licença] e clique manualmente no botão de sincronização para garantir o uso normal dos recursos da versão profissional" -ErrXpackTimeout: "Tempo de solicitação esgotado, a conexão de rede pode estar instável, tente novamente mais tarde!" -ErrUnbindMaster: "Foi detectado um nó no gerenciamento de nós, não é possível desvincular a licença atual, remova o nó primeiro e tente novamente!" -ErrFreeNodeLimit: "O número de nós da versão comunitária atingiu o limite gratuito, acesse www.lxware.cn/1panel para comprar e tente novamente!" -ErrNodeBound: "A licença já está vinculada a outro nó, verifique e tente novamente!" -ErrNoSuchNode: "Não foi possível encontrar as informações do nó, verifique e tente novamente!" -ErrNodeUnbind: "O nó não está dentro do escopo de vinculação da licença, verifique e tente novamente!" -ErrNodeBind: "O nó já está vinculado a uma licença, verifique e tente novamente!" +ErrLicense: "Formato de licença inválido, por favor verifique e tente novamente!" +ErrLicenseCheck: "Falha na verificação da licença, por favor verifique e tente novamente!" +ErrXpackVersion: "Falha na verificação da licença, esta licença é restrita a uma versão específica, por favor verifique e tente novamente!" +ErrLicenseSave: "Falha ao salvar as informações da licença {{ .err }}, por favor tente novamente!" +ErrLicenseSync: "Falha ao sincronizar as informações da licença, nenhuma informação foi encontrada no banco de dados!" +ErrXpackNotFound: "Esta parte é uma funcionalidade profissional, por favor importe a licença em Configurações do Painel - Licença." +ErrXpackExceptional: "Esta parte é uma funcionalidade profissional, por favor sincronize a licença em Configurações do Painel - Licença." +ErrXpackOutOfDate: "A licença atual expirou, por favor importe uma nova em Configurações do Painel - Licença." +ErrXpackLost: "A licença atingiu o número máximo de tentativas, acesse [Configurações do Painel][Licença] e clique no botão de sincronização manual." +ErrXpackTimeout: "Requisição expirou, a conexão de rede pode estar instável, por favor tente novamente mais tarde!" +ErrUnbindMaster: "Foram encontrados nós na gestão de nós, remova-os primeiro e tente novamente!" +ErrFreeNodeLimit: "O número de nós da versão comunitária atingiu o limite gratuito, por favor acesse www.lxware.cn/1panel para comprar!" +ErrNodeBound: "Esta licença já está vinculada a outro nó, por favor verifique e tente novamente!" +ErrNoSuchNode: "As informações deste nó não foram encontradas, por favor verifique e tente novamente!" +ErrNodeUnbind: "Nó fora do escopo da licença detectado, por favor verifique e tente novamente!" +ErrNodeBind: "Este nó já está vinculado a uma licença, por favor verifique e tente novamente!" # alert ErrAlertSync: "Erro na sincronização das informações de alerta, verifique e tente novamente!" #task -TaskStart: "{{.name}} tarefa iniciada [INICIADA]" -TaskEnd: "{{.name}} tarefa concluída [CONCLUÍDA]" -TaskFailed: "{{.name}} tarefa falhou" -TaskTimeout: "{{.name}} tempo esgotado" -TaskSuccess: "{{.name}} tarefa bem-sucedida" -TaskRetry: "Iniciando a {{.name}}ª tentativa" -SubTaskSuccess: "{{ .name }} sucesso" +TaskStart: "{{ .name }} tarefa iniciada [START]" +TaskEnd: "{{ .name }} tarefa finalizada [COMPLETED]" +TaskFailed: "{{ .name }} tarefa falhou" +TaskTimeout: "{{ .name }} tempo esgotado" +TaskSuccess: "{{ .name }} tarefa bem-sucedida" +TaskRetry: "Iniciando tentativa {{ .name }}" +SubTaskSuccess: "{{ .name }} bem-sucedido" SubTaskFailed: "{{ .name }} falhou: {{ .err }}" TaskInstall: "Instalar" -TaskUninstall: "Desinstalar" -TaskCreate: "Criar" -TaskDelete: "Excluir" TaskUpgrade: "Atualizar" -TaskUpdate: "Atualizar" -TaskRestart: "Reiniciar" -TaskRollback: "Reverter" -SuccessStatus: "{{ .name }} sucesso" +SuccessStatus: "{{ .name }} bem-sucedido" FailedStatus: "{{ .name }} falhou {{.err}}" -PullImage: "Baixar imagem" Start: "Iniciar" -Run: "Executar" -Stop: "Parar" SubTask: "Subtarefa" #upgrade node -NodeUpgrade: "Atualizar nó {name}" -NewSSHClient: "Inicializando conexão SSH" -BackupBeforeUpgrade: "Fazendo backup antes da atualização" -UploadUpgradeFile: "Enviando arquivos necessários para a atualização" -RestartAfterUpgrade: "Reiniciando o serviço após a atualização" +NodeUpgrade: "Atualizar nó {{ .name }}" +NewSSHClient: "Inicializando a conexão SSH" +BackupBeforeUpgrade: "Fazer backup dos dados antes da atualização" +UploadUpgradeFile: "Distribuir arquivos necessários para a atualização" +RestartAfterUpgrade: "Iniciar serviço após a atualização" #add node TaskAddNode: "Adicionar nó" diff --git a/core/i18n/lang/pt.yaml b/core/i18n/lang/pt.yaml deleted file mode 100644 index 311c863d5..000000000 --- a/core/i18n/lang/pt.yaml +++ /dev/null @@ -1,156 +0,0 @@ -ErrInvalidParams: "Erro nos parâmetros da solicitação: {{ .detail }}" -ErrTokenParse: "Erro na geração do token: {{ .detail }}" -ErrInitialPassword: "Senha original incorreta" -ErrInternalServer: "Erro interno no servidor: {{ .detail }}" -ErrRecordExist: "O registro já existe" -ErrRecordNotFound: "Registro não encontrado" -ErrStructTransform: "Falha na conversão de tipo: {{ .detail }}" -ErrNotLogin: "Usuário não está logado: {{ .detail }}" -ErrPasswordExpired: "A senha atual expirou: {{ .detail }}" -ErrNotSupportType: "O sistema não suporta o tipo atual: {{ .detail }}" -ErrProxy: "Erro na solicitação, verifique o estado do nó: {{ .detail }}" -ErrApiConfigStatusInvalid: "Acesso à API bloqueado: {{ .detail }}" -ErrApiConfigKeyInvalid: "Chave da API inválida: {{ .detail }}" -ErrApiConfigIPInvalid: "O IP da API não está na lista branca: {{ .detail }}" -ErrApiConfigDisable: "Esta API não pode ser chamada: {{ .detail }}" -ErrApiConfigKeyTimeInvalid: "Erro no timestamp da API: {{ .detail }}" - -#common -ErrDemoEnvironment: "Servidor de demonstração, esta operação é proibida!" -ErrCmdTimeout: "Tempo limite de execução do comando!" -ErrEntrance: "Erro nas informações de entrada de segurança, verifique e tente novamente!" -ErrGroupIsDefault: 'Grupo padrão, não é possível excluir' -ErrLocalDelete: "Não é possível excluir o nó local!" - -#backup -ErrBackupInUsed: "A conta de backup já está em uso em uma tarefa agendada, não é possível excluir" -ErrBackupCheck: "Falha na conexão de teste da conta de backup {{ .err}}" -ErrBackupLocal: "A conta de backup do servidor local não suporta essa operação!" -ErrBackupPublic: "Detectamos que a conta de backup não é pública, verifique e tente novamente!" -ErrOSSConn: "Não foi possível obter a versão mais recente, verifique se o servidor pode se conectar à rede externa." - -#license -ErrLicense: "Erro no formato da licença, verifique e tente novamente!" -ErrLicenseCheck: "Falha na verificação da licença, verifique e tente novamente!" -ErrXpackVersion: "Falha na verificação da licença, a licença está restrita por versão e não pode ser importada com sucesso, verifique e tente novamente!" -ErrLicenseSave: "Falha ao salvar as informações da licença, erro {{ .err }}, tente novamente!" -ErrLicenseSync: "Falha na sincronização das informações da licença, não foram detectadas informações de licença no banco de dados!" -ErrXpackNotFound: "Esta parte é um recurso da versão profissional, primeiro importe a licença na tela de Configuração do Painel - Licença" -ErrXpackExceptional: "Esta parte é um recurso da versão profissional, primeiro sincronize o status da licença na tela de Configuração do Painel - Licença" -ErrXpackOutOfDate: "A licença atual expirou, reimporte a licença na tela de Configuração do Painel - Licença" -ErrXpackLost: "A licença atingiu o número máximo de tentativas, vá para a página [Configuração do Painel][Licença] e clique manualmente no botão de sincronização para garantir o uso normal dos recursos da versão profissional" -ErrXpackTimeout: "Tempo de solicitação esgotado, a conexão de rede pode estar instável, tente novamente mais tarde!" -ErrUnbindMaster: "Foi detectado um nó no gerenciamento de nós, não é possível desvincular a licença atual, remova o nó primeiro e tente novamente!" -ErrFreeNodeLimit: "O número de nós da versão comunitária atingiu o limite gratuito, acesse www.lxware.cn/1panel para comprar e tente novamente!" -ErrNodeBound: "A licença já está vinculada a outro nó, verifique e tente novamente!" -ErrNoSuchNode: "Não foi possível encontrar as informações do nó, verifique e tente novamente!" -ErrNodeUnbind: "O nó não está dentro do escopo de vinculação da licença, verifique e tente novamente!" -ErrNodeBind: "O nó já está vinculado a uma licença, verifique e tente novamente!" - -# alert -ErrAlertSync: "Erro na sincronização das informações de alerta, verifique e tente novamente!" - -#task -TaskStart: "{{.name}} tarefa iniciada [INICIADA]" -TaskEnd: "{{.name}} tarefa concluída [CONCLUÍDA]" -TaskFailed: "{{.name}} tarefa falhou" -TaskTimeout: "{{.name}} tempo esgotado" -TaskSuccess: "{{.name}} tarefa bem-sucedida" -TaskRetry: "Iniciando a {{.name}}ª tentativa" -SubTaskSuccess: "{{ .name }} sucesso" -SubTaskFailed: "{{ .name }} falhou: {{ .err }}" -TaskInstall: "Instalar" -TaskUninstall: "Desinstalar" -TaskCreate: "Criar" -TaskDelete: "Excluir" -TaskUpgrade: "Atualizar" -TaskUpdate: "Atualizar" -TaskRestart: "Reiniciar" -TaskRollback: "Reverter" -SuccessStatus: "{{ .name }} sucesso" -FailedStatus: "{{ .name }} falhou {{.err}}" -PullImage: "Baixar imagem" -Start: "Iniciar" -Run: "Executar" -Stop: "Parar" -SubTask: "Subtarefa" - -#upgrade node -NodeUpgrade: "Atualizar nó {name}" -NewSSHClient: "Inicializando conexão SSH" -BackupBeforeUpgrade: "Fazendo backup antes da atualização" -UploadUpgradeFile: "Enviando arquivos necessários para a atualização" -RestartAfterUpgrade: "Reiniciando o serviço após a atualização" - -#add node -TaskAddNode: "Adicionar nó" -SyncAgentBaseInfo: "Sincronizando dados básicos do nó" -GenerateSSLInfo: "Gerando informações SSL do nó" -ConnInfoNotMatch: "As informações de conexão não coincidem" -MakeAgentPackage: "Gerando pacote de instalação do nó" -SendAgent: "Enviando pacote de instalação do nó" -StartService: "Iniciando serviço" - -#cmd -AppVersion: "Versão do aplicativo" -AppCommands: "Comandos relacionados ao aplicativo" -AppInit: "Inicializar aplicativo" -AppKeyVal: "Chave do aplicativo (suporta apenas inglês)" -AppCreateFileErr: "Falha na criação do arquivo {{ .name }} {{ .err }}" -AppCreateDirErr: "Falha na criação da pasta {{ .name }} {{ .err }}" -AppMissKey: "Chave do aplicativo ausente, use -k para especificar" -AppMissVersion: "Versão do aplicativo ausente, use -v para especificar" -AppVersionExist: "Versão já existente!" -AppCreateSuccessful: "Criação bem-sucedida!" -AppWriteErr: "Falha na gravação do arquivo {{ .name }} {{ .err }}" -SudoHelper: "Por favor, use {{ .cmd }} ou troque para o usuário root" -ListenIPCommands: "Alterar IP de escuta" -ListenIPv4: "Escutar no IPv4" -ListenIPv6: "Escutar no IPv6" -ListenChangeSuccessful: "Alteração bem-sucedida! Agora escutando em {{ .value }}" -ResetCommands: "Redefinir informações do sistema" -ResetMFA: "Cancelar autenticação de dois fatores do 1Panel" -ResetHttps: "Cancelar login HTTPS do 1Panel" -ResetEntrance: "Cancelar entrada segura do 1Panel" -ResetIPs: "Cancelar restrições de IP autorizados do 1Panel" -ResetDomain: "Cancelar vinculação de domínio do 1Panel" -RestoreCommands: "Restaurar serviço e dados do 1Panel" -RestoreNoSuchFile: "Nenhum arquivo disponível para restauração" -RestoreStep1: "(1/5) Iniciando a restauração do serviço e dados do 1Panel a partir do diretório {{ .name }}..." -RestoreStep2: "(2/5) Restauração do binário do 1Panel bem-sucedida" -RestoreStep3: "(3/5) Restauração do script do 1Panel bem-sucedida" -RestoreStep4: "(4/5) Restauração do serviço do 1Panel bem-sucedida" -RestoreStep5: "(5/5) Restauração dos dados do 1Panel bem-sucedida" -RestoreSuccessful: "Restauração bem-sucedida! Reiniciando o serviço, aguarde..." -UpdateCommands: "Atualizar informações do painel" -UpdateUser: "Atualizar usuário do painel" -UpdatePassword: "Atualizar senha do painel" -UpdatePort: "Atualizar porta do painel" -UpdateUserNull: "Erro: usuário do painel está vazio!" -UpdateUserBlank: "Erro: usuário do painel contém espaços!" -UpdateUserFormat: "Erro: Formato de usuário inválido! Aceita apenas inglês, chinês, números e _, comprimento de 3-30" -UpdateUserErr: "Erro: Falha ao atualizar usuário do painel, {{ .err }}" -UpdateSuccessful: "Atualização bem-sucedida!" -UpdateUserResult: "Usuário do painel: {{ .name }}" -UpdatePasswordRead: "Erro: Falha ao ler informações da senha do painel, {{ .err }}" -UpdatePasswordNull: "Erro: Senha do painel está vazia!" -UpdateUPasswordBlank: "Erro: Senha do painel contém espaços!" -UpdatePasswordFormat: "Erro: A senha do painel aceita apenas letras, números, caracteres especiais !@#$%*_,.?, comprimento de 8-30!" -UpdatePasswordLen: "Erro: Por favor, insira uma senha com mais de 6 caracteres!" -UpdatePasswordRe: "Confirmar senha:" -UpdatePasswordErr: "Erro: Falha ao atualizar senha do painel, {{ .err }}" -UpdatePasswordSame: "Erro: As duas senhas não coincidem, por favor, verifique e tente novamente!" -UpdatePasswordResult: "Senha do painel: {{ .name }}" -UpdatePortFormat: "Erro: O número da porta deve estar entre 1 e 65535!" -UpdatePortUsed: "Erro: O número da porta já está em uso, por favor, verifique e tente novamente!" -UpdatePortErr: "Erro: Falha ao atualizar a porta do painel, {{ .err }}" -UpdatePortResult: "Porta do painel: {{ .name }}" -UpdatePortFirewallAdd: "Falha ao adicionar regra de porta no firewall, {{ .err }}, adicione manualmente a porta {{ .name }} às regras do firewall." -UpdatePortFirewallDel: "Erro: Falha ao excluir porta do firewall, {{ .err }}" -UpdatePortFirewallReload: "Falha ao recarregar o firewall, {{ .err }}, recarregue o firewall manualmente." -UserInfo: "Obter informações do painel" -UserInfoAddr: "Endereço do painel: " -UserInfoPassHelp: "Dica: Para alterar a senha, execute o comando: " -DBConnErr: "Erro: Falha ao inicializar conexão com o banco de dados, {{ .err }}" -SystemVersion: "versão: " -SystemMode: "modo: " \ No newline at end of file diff --git a/core/i18n/lang/ru.yaml b/core/i18n/lang/ru.yaml index f3d0c639e..224d976dd 100644 --- a/core/i18n/lang/ru.yaml +++ b/core/i18n/lang/ru.yaml @@ -1,286 +1,159 @@ -ErrInvalidParams: "Ошибка параметра запроса: {{ .detail }}" +ErrInvalidParams: "Недопустимые параметры запроса: {{ .detail }}" ErrTokenParse: "Ошибка генерации токена: {{ .detail }}" -ErrInitialPassword: "Ошибка исходного пароля" -ErrInternalServer: "Внутренняя ошибка сервиса: {{ .detail }}" +ErrInitialPassword: "Неверный начальный пароль" +ErrInternalServer: "Внутренняя ошибка сервера: {{ .detail }}" ErrRecordExist: "Запись уже существует" -ErrRecordNotFound: "Записи не найдены" +ErrRecordNotFound: "Запись не найдена" ErrStructTransform: "Ошибка преобразования типа: {{ .detail }}" -ErrNotLogin: "Пользователь не вошел в систему: {{ .detail }}" -ErrPasswordExpired: "Текущий пароль истек: {{ .detail }}" -ErrNotSupportType: "Система не поддерживает текущий тип: {{ .detail }}" -ErrApiConfigStatusInvalid: "Доступ к API интерфейсу запрещен: {{ .detail }}" -ErrApiConfigKeyInvalid: "Ошибка ключа API интерфейса: {{ .detail }}" -ErrApiConfigIPInvalid: "IP API интерфейса отсутствует в белом списке: {{ .detail }}" -ErrApiConfigDisable: "Этот интерфейс запрещает использование вызовов API интерфейса: {{ .detail }}" -ErrApiConfigKeyTimeInvalid: "Ошибка временной метки интерфейса API: {{ .detail }}" +ErrNotLogin: "Пользователь не авторизован: {{ .detail }}" +ErrPasswordExpired: "Текущий пароль истёк: {{ .detail }}" +ErrNotSupportType: "Текущий тип не поддерживается: {{ .detail }}" +ErrProxy: "Ошибка запроса, проверьте состояние узла: {{ .detail }}" +ErrApiConfigStatusInvalid: "Доступ к API запрещён: {{ .detail }}" +ErrApiConfigKeyInvalid: "Ошибка ключа API: {{ .detail }}" +ErrApiConfigIPInvalid: "IP запроса API отсутствует в списке разрешённых: {{ .detail }}" +ErrApiConfigDisable: "Этот интерфейс запрещает вызовы API: {{ .detail }}" +ErrApiConfigKeyTimeInvalid: "Ошибка временной метки API: {{ .detail }}" -#common -ErrNameIsExist: "Имя уже существует" -ErrDemoEnvironment: "Демо-сервер, операция запрещена!" +# request +ErrNoSuchHost: "Не удалось найти запрашиваемый сервер {{ .err }}" +ErrHttpReqNotFound: "Не удалось найти запрашиваемый ресурс {{ .err }}" +ErrHttpReqFailed: "Ошибка запроса {{ .err }}" +ErrHttpReqTimeOut: "Время ожидания запроса истекло {{ .err }}" +ErrCreateHttpClient: "Ошибка создания запроса {{ .err }}" + +# common +ErrDemoEnvironment: "Демонстрационный сервер, эта операция запрещена!" ErrCmdTimeout: "Время выполнения команды истекло!" -ErrCmdIllegal: "Команда содержит недопустимые символы. Пожалуйста, измените и попробуйте снова!" -ErrPortExist: "{{ .port }} порт уже занят {{ .type }} [{{ .name }}]" -TYPE_APP: "Приложение" -TYPE_RUNTIME: "Среда выполнения" -TYPE_DOMAIN: "Доменное имя" -ErrTypePort: "Ошибка формата порта {{ .name }}" -ErrTypePortRange: "Диапазон портов должен быть между 1-65535" -Success: "Успех" -Failed: "Неудача" -SystemRestart: "Перезагрузка системы приводит к прерыванию задачи" +ErrEntrance: "Ошибка информации о безопасном входе, проверьте и повторите попытку!" +ErrGroupIsDefault: "Группу по умолчанию нельзя удалить" +ErrLocalDelete: "Локальный узел нельзя удалить!" +ErrPortInUsed: "Порт {{ .name }} уже используется!" -#app -ErrPortInUsed: "Порт {{ .detail }} уже используется" -ErrAppLimit: "Превышен лимит установки приложения" -ErrAppRequired: "Требуется приложение {{ .detail }}" -ErrNotInstall: "Приложение не установлено" -ErrPortInOtherApp: "Порт {{ .port }} уже используется приложением {{ .apps }}" -ErrDbUserNotValid: "База данных акций, имя пользователя и пароль не совпадают!" -ErrDockerComposeNotValid: "Ошибка формата файла docker-compose!" -ErrUpdateBuWebsite: "Приложение успешно обновлено, но изменение конфигурационного файла веб-сайта не удалось, пожалуйста, проверьте конфигурацию!" -Err1PanelNetworkFailed: "Не удалось создать сеть контейнера по умолчанию! {{ .detail }}" -ErrFileParse: "Не удалось разобрать файл docker-compose приложения!" -ErrInstallDirNotFound: "Директория установки не существует" -AppStoreIsUpToDate: "Обновлено" -LocalAppVersionNull: "Приложение {{.name}} не синхронизировано с версией! Невозможно добавить в список приложений" -LocalAppVersionErr: "{{.name}} не удалось синхронизировать версию {{.version}}! {{.err}}" -ErrFileNotFound: "Файл {{.name}} не существует" -ErrFileParseApp: "Не удалось проанализировать файл {{.name}} {{.err}}" -ErrAppDirNull: "Папка версии не существует" -LocalAppErr: "Синхронизация приложения {{.name}} не удалась! {{.err}}" -ErrContainerName: "Имя контейнера уже существует" -ErrAppSystemRestart: "Перезапуск 1Panel приводит к завершению задачи" -ErrCreateHttpClient: "Не удалось создать HTTP-запрос {{.err}}" -ErrHttpReqTimeOut: "Превышено время ожидания запроса {{.err}}" -ErrHttpReqFailed: "Запрос не выполнен {{.err}}" -ErrHttpReqNotFound: "Файл не существует" -ErrNoSuchHost: "Сбой сетевого подключения" -ErrImagePullTimeOut: "Тайм-аут загрузки образа" -ErrContainerNotFound: "Контейнер {{ .name }} не существует" -ErrContainerMsg: "Контейнер {{ .name }} работает ненормально, пожалуйста, проверьте журнал на странице контейнера для подробностей" -ErrAppBackup: "Резервное копирование приложения {{ .name }} не удалось, ошибка {{.err}}" -ErrImagePull: "Не удалось загрузить образ {{ .name }}, ошибка {{.err}}" -ErrVersionTooLow: "Текущая версия 1Panel слишком стара для обновления магазина приложений, пожалуйста, обновите версию" -ErrAppNameExist: "Имя приложения уже существует" -AppStoreIsSyncing: "Магазин приложений синхронизируется, пожалуйста, попробуйте позже" -ErrGetCompose: "Не удалось получить файл docker-compose.yml! {{ .detail }}" -ErrAppWarn: "Аномальный статус, пbожалуйста, проверьте журнал" -ErrAppParamKey: "Исключение в поле параметра {{ .name }}" -ErrAppUpgrade: "Не удалось обновить приложение {{ .name }} {{ .err }}" -AppRecover: "Приложение {{ .name }} откатилось " -PullImageStart: "Начало загрузки образа {{ .name }}" -PullImageSuccess: "Образ успешно загружен" -UpgradeAppStart: "Начало обновления приложения {{ .name }}" -UpgradeAppSuccess: "Приложение {{ .name }} успешно обновлено" +# app +CustomAppStoreFileValid: "Пакет магазина приложений должен быть в формате .tar.gz" +ErrFileNotFound: "Файл {{ .name }} не найден" -#file -ErrFileCanNotRead: "Файл недоступен для чтения" -ErrFileToLarge: "Файл слишком большой" -ErrPathNotFound: "Путь не найден" -ErrMovePathFailed: "Целевой путь не может содержать исходный путь!" -ErrLinkPathNotFound: "Целевой путь не существует!" -ErrFileIsExist: "Файл или каталог уже существует!" -ErrFileUpload: "Не удалось загрузить файл {{.name}} {{.detail}}" -ErrFileDownloadDir: "Скачивание папки не поддерживается" -ErrCmdNotFound: "Команда {{ .name}} не существует, пожалуйста, сначала установите эту команду на хосте" -ErrSourcePathNotFound: "Исходный каталог не существует" -ErrFavoriteExist: "Этот путь уже в избранном" -ErrInvalidChar: "Недопустимые символы запрещены" -ErrPathNotDelete: "Выбранный каталог не может быть удален" - -#website -ErrDomainIsExist: "Доменное имя уже существует" -ErrAliasIsExist: "Псевдоним уже существует" -ErrAppDelete: "Другой веб-сайт использует это приложение" -ErrGroupIsUsed: "Группа используется и не может быть удалена" -ErrBackupMatch: "файл резервной копии не соответствует текущим данным части сайта: {{ .detail}}" -ErrBackupExist: "файл резервной копии соответствует части исходных данных, которая не существует: {{ .detail}}" -ErrPHPResource: "Локальная среда выполнения не поддерживает переключение!" -ErrPathPermission: "Обнаружена папка с правами доступа не 1000:1000 в каталоге индекса, что может вызвать ошибку отказа в доступе при доступе к веб-сайту. Пожалуйста, нажмите кнопку сохранения выше" -ErrDomainIsUsed: "Домен уже используется веб-сайтом {{ .name }}" -ErrDomainFormat: "Ошибка формата домена {{ .name }}" -ErrDefaultAlias: "default — зарезервированное кодовое имя, пожалуйста, используйте другое кодовое имя" -ErrImageNotExist: "Образ рабочей среды {{.name}} не существует, пожалуйста, перенастройте рабочую среду" - -#ssl -ErrSSLCannotDelete: "Сертификат {{ .name }} используется веб-сайтом и не может быть удален" -ErrAccountCannotDelete: "Сертификат, связанный с учетной записью, не может быть удален" -ErrSSLApply: "Сертификат продолжает успешно подписываться, но перезагрузка openresty не удалась, пожалуйста, проверьте конфигурацию!" -ErrEmailIsExist: "Электронная почта уже существует" -ErrSSLKeyNotFound: "Файл закрытого ключа не существует" -ErrSSLCertificateNotFound: "Файл сертификата не существует" -ErrSSLKeyFormat: "Ошибка проверки файла закрытого ключа" -ErrSSLCertificateFormat: "Ошибка формата файла сертификата, пожалуйста, используйте формат pem" -ErrEabKidOrEabHmacKeyCannotBlank: "EabKid или EabHmacKey не могут быть пустыми" -ErrOpenrestyNotFound: "Режим HTTP требует предварительной установки Openresty" -ApplySSLStart: "Начать подачу заявки на сертификат, доменное имя [{{ .domain }}] метод подачи заявки [{{ .type }}] " -dnsAccount: "Автоматический DNS" -dnsManual: "Ручной DNS" -http: "HTTP" -ApplySSLFailed: "Заявка на сертификат для [{{ .domain }}] не удалась, {{.detail}} " -ApplySSLSuccess: "Заявка на сертификат для [{{ .domain }}] успешна! " -DNSAccountName: "Учетная запись DNS [{{ .name }}] производитель [{{.type}}]" -PushDirLog: "Сертификат отправлен в каталог [{{ .path }}] {{ .status }}" -ErrDeleteCAWithSSL: "Существует выданный сертификат под текущей организацией, удаление невозможно" -ErrDeleteWithPanelSSL: "Конфигурация SSL панели использует этот сертификат и не может быть удален" -ErrDefaultCA: "Уполномоченный центр по умолчанию не может быть удален" -ApplyWebSiteSSLLog: "Начать обновление сертификата веб-сайта {{ .name }}" -ErrUpdateWebsiteSSL: "Не удалось обновить сертификат веб-сайта {{ .name }}: {{ .err }}" -ApplyWebSiteSSLSuccess: "Сертификат веб-сайта успешно обновлен" -ErrExecShell: "Не удалось выполнить скрипт {{ .err }}" -ExecShellStart: "Начать выполнение скрипта" -ExecShellSuccess: "Скрипт успешно выполнен" -StartUpdateSystemSSL: "Начать обновление системного сертификата" -UpdateSystemSSLSuccess: "Системный сертификат успешно обновлен" - -#mysql -ErrUserIsExist: "Текущий пользователь уже существует. Пожалуйста, введите нового пользователя" -ErrDatabaseIsExist: "Текущая база данных уже существует. Пожалуйста, введите новую базу данных" -ErrExecTimeOut: "Время выполнения SQL запроса истекло, пожалуйста, проверьте базу данных" -ErrRemoteExist: "Удаленная база данных с таким именем уже существует, пожалуйста, измените и попробуйте снова" -ErrLocalExist: "Локальная база данных с таким именем уже существует, пожалуйста, измените и попробуйте снова" - -#redis -ErrTypeOfRedis: "Тип восстановленного файла не соответствует текущему режиму сохранения. Измените тип файла и попробуйте снова" - -#container -ErrInUsed: "{{ .detail }} используется и не может быть удален" -ErrObjectInUsed: "Этот объект используется и не может быть удален" -ErrObjectBeDependent: "Этот образ зависит от других образов и не может быть удален" -ErrPortRules: "Количество портов не совпадает, пожалуйста, введите заново!" -ErrPgImagePull: "Тайм-аут загрузки образа. Пожалуйста, настройте ускорение загрузки образа или вручную загрузите образ postgres:16.0-alpine и попробуйте снова" - -#runtime -ErrDirNotFound: "Папка сборки не существует! Пожалуйста, проверьте целостность файла!" -ErrFileNotExist: "Файл {{ .detail }} не существует! Пожалуйста, проверьте целостность исходного файла!" -ErrImageBuildErr: "Не удалось создать образ" -ErrImageExist: "Образ уже существует!" -ErrDelWithWebsite: "Рабочая среда уже связана с веб-сайтом и не может быть удалена" -ErrRuntimeStart: "Не удалось запустить" -ErrPackageJsonNotFound: "Файл package.json не существует" -ErrScriptsNotFound: "Конфигурационный элемент scripts не найден в package.json" -ErrContainerNameNotFound: "Не удалось получить имя контейнера, пожалуйста, проверьте файл .env" -ErrNodeModulesNotFound: "Папка node_modules не существует! Пожалуйста, отредактируйте среду выполнения или дождитесь успешного запуска среды выполнения" - -#setting -ErrBackupInUsed: "Учетная запись резервного копирования уже используется в cronjob и не может быть удалена." -ErrBackupCheck: "Проверка подключения учетной записи резервного копирования не выполнена {{ .err}}" -ErrOSSConn: "Не удалось получить последнюю версию, пожалуйста, проверьте возможность подключения сервера к внешней сети." -ErrEntrance: "Информация о безопасном входе неверна. Пожалуйста, проверьте и попробуйте снова!" - -#tool -ErrConfigNotFound: "Конфигурационный файл не существует" -ErrConfigParse: "Ошибка формата конфигурационного файла" -ErrConfigIsNull: "Конфигурационный файл не может быть пустым" -ErrConfigDirNotFound: "Каталог выполнения не существует" -ErrConfigAlreadyExist: "Конфигурационный файл с таким именем уже существует" -ErrUserFindErr: "Не удалось найти пользователя {{ .name }} {{ .err }}" - -#ssh -ErrFirewallNone: "На системе не обнаружен сервис firewalld или ufw. Пожалуйста, проверьте и попробуйте снова!" -ErrFirewallBoth: "На системе обнаружены оба сервиса firewalld и ufw. Чтобы избежать конфликтов, удалите один и попробуйте снова!" - -#cronjob -ErrBashExecute: "Ошибка выполнения скрипта, пожалуйста, проверьте конкретную информацию в области вывода задачи." -ErrCutWebsiteLog: "Не удалось разрезать лог веб-сайта {{ .name }}, ошибка {{ .err }}" -CutWebsiteLogSuccess: "Лог веб-сайта {{ .name }} успешно разрезан, путь к резервной копии {{ .path }}" - -#toolbox -ErrNotExistUser: "Текущий пользователь не существует. Пожалуйста, измените и попробуйте снова!" -ErrBanAction: "Установка не выполнена, текущий сервис {{ .name }} недоступен, пожалуйста, проверьте и попробуйте снова!" -ErrClamdscanNotFound: "Команда clamdscan не обнаружена, пожалуйста, обратитесь к документации для установки!" - -#waf -ErrScope: "Изменение этой конфигурации не поддерживается" -ErrStateChange: "Не удалось изменить состояние" -ErrRuleExist: "Правило уже существует" -ErrRuleNotExist: "Правило не существует" -ErrParseIP: "Ошибка формата IP" -ErrDefaultIP: "default — зарезервированное имя, пожалуйста, измените на другое имя" -ErrGroupInUse: "IP-группа используется в черно/белом списке и не может быть удалена" -ErrGroupExist: "Имя IP-группы уже существует" -ErrIPRange: "Неверный диапазон IP" -ErrIPExist: "IP уже существует" +# backup +ErrBackupInUsed: "Эта учетная запись резервного копирования используется в запланированных задачах и не может быть удалена" +ErrBackupCheck: "Ошибка тестирования соединения учетной записи резервного копирования {{ .err }}" +ErrBackupLocal: "Локальная учетная запись резервного копирования не поддерживает эту операцию!" +ErrBackupPublic: "Обнаружено, что эта учетная запись резервного копирования не является публичной, проверьте и повторите попытку!" +ErrOSSConn: "Не удалось получить последнюю версию, проверьте подключение сервера к внешней сети." #license -ErrLicense: "Ошибка формата лицензии, пожалуйста, проверьте и попробуйте снова!" -ErrLicenseCheck: "Проверка лицензии не выполнена, пожалуйста, проверьте и попробуйте снова!" -ErrXpackVersion: "Ошибка проверки лицензии, эта лицензия ограничена по версии и не может быть успешно импортирована. Пожалуйста, проверьте и попробуйте снова!" -ErrLicenseSave: "Не удалось сохранить информацию о лицензии, ошибка {{ .err }}, пожалуйста, попробуйте снова!" -ErrLicenseSync: "Не удалось синхронизировать информацию о лицензии, в базе данных не обнаружена информация о лицензии!" -ErrXpackNotFound: "Этот раздел является функцией профессионального издания, пожалуйста, сначала импортируйте лицензию в интерфейсе Настройки панели — Лицензия" -ErrXpackNotActive: "Этот раздел является функцией профессионального издания, пожалуйста, сначала синхронизируйте статус лицензии в интерфейсе Настройки панели — Лицензия" -ErrXpackOutOfDate: "Текущая лицензия истекла, пожалуйста, повторно импортируйте лицензию в интерфейсе Настройки панели — Лицензия" -ErrXpackLost: "Лицензия достигла максимального числа попыток повторной попытки. Пожалуйста, перейдите на страницу [Настройки] [Лицензия] и вручную нажмите кнопку синхронизации, чтобы обеспечить корректную работу функций профессиональной версии." -ErrXpackTimeout: "Превышено время ожидания запроса, возможно, нестабильное сетевое соединение, пожалуйста, повторите попытку позже!" +ErrLicense: "Неверный формат лицензии, проверьте и повторите попытку!" +ErrLicenseCheck: "Ошибка проверки лицензии, проверьте и повторите попытку!" +ErrXpackVersion: "Ошибка проверки лицензии, лицензия ограничена по версии, проверьте и повторите попытку!" +ErrLicenseSave: "Ошибка сохранения информации о лицензии {{ .err }}, повторите попытку!" +ErrLicenseSync: "Ошибка синхронизации информации о лицензии, информация не найдена в базе данных!" +ErrXpackNotFound: "Эта часть доступна только в профессиональной версии, сначала импортируйте лицензию в разделе Настройки панели - Лицензия." +ErrXpackExceptional: "Эта часть доступна только в профессиональной версии, сначала синхронизируйте лицензию в разделе Настройки панели - Лицензия." +ErrXpackOutOfDate: "Текущая лицензия истекла, повторно импортируйте лицензию в разделе Настройки панели - Лицензия." +ErrXpackLost: "Лицензия достигла максимального количества попыток, перейдите в [Настройки панели][Лицензия] и нажмите кнопку синхронизации вручную." +ErrXpackTimeout: "Время ожидания запроса истекло, возможно нестабильное сетевое соединение, повторите попытку позже!" +ErrUnbindMaster: "В управлении узлами обнаружены узлы, сначала удалите их и повторите попытку!" +ErrFreeNodeLimit: "Количество узлов в версии сообщества достигло бесплатного лимита, посетите www.lxware.cn/1panel для покупки!" +ErrNodeBound: "Эта лицензия уже связана с другим узлом, проверьте и повторите попытку!" +ErrNoSuchNode: "Информация об узле не найдена, проверьте и повторите попытку!" +ErrNodeUnbind: "Обнаружен узел вне области действия лицензии, проверьте и повторите попытку!" +ErrNodeBind: "Этот узел уже связан с лицензией, проверьте и повторите попытку!" -#license -ErrAlert: "Ошибка формата информации об оповещении, пожалуйста, проверьте и попробуйте снова!" -ErrAlertPush: "Ошибка отправки оповещения, пожалуйста, проверьте и попробуйте снова!" -ErrAlertSave: "Ошибка сохранения оповещения, пожалуйста, проверьте и попробуйте снова!" -ErrAlertSync: "Ошибка синхронизации оповещения, пожалуйста, проверьте и попробуйте снова!" -ErrAlertRemote: "Ошибка удаленного оповещения, пожалуйста, проверьте и попробуйте снова!" +# alert +ErrAlertSync: "Ошибка синхронизации информации об оповещениях, пожалуйста, проверьте и повторите попытку!" + +# task +TaskStart: "{{ .name }} задача начата [START]" +TaskEnd: "{{ .name }} задача завершена [COMPLETED]" +TaskFailed: "{{ .name }} задача не выполнена" +TaskTimeout: "{{ .name }} истекло время" +TaskSuccess: "{{ .name }} задача выполнена успешно" +TaskRetry: "Начало повторной попытки {{ .name }}" +SubTaskSuccess: "{{ .name }} успешно" +SubTaskFailed: "{{ .name }} не удалось: {{ .err }}" +TaskInstall: "Установить" +TaskUpgrade: "Обновить" +SuccessStatus: "{{ .name }} успешно" +FailedStatus: "{{ .name }} не удалось {{.err}}" +Start: "Начать" +SubTask: "Подзадача" + +#upgrade node +NodeUpgrade: "Обновление узла {{ .name }}" +NewSSHClient: "Инициализация SSH-соединения" +BackupBeforeUpgrade: "Резервное копирование данных перед обновлением" +UploadUpgradeFile: "Распределение файлов обновления" +RestartAfterUpgrade: "Запуск службы после обновления" + +#add node +TaskAddNode: "Добавить узел" +SyncAgentBaseInfo: "Синхронизировать базовую информацию узла" +GenerateSSLInfo: "Сгенерировать SSL информацию узла" +ConnInfoNotMatch: "Информация о соединении не совпадает" +MakeAgentPackage: "Сгенерировать установочный пакет узла" +SendAgent: "Отправить установочный пакет узла" +StartService: "Запустить сервис" #cmd AppVersion: "Версия приложения" -AppCommands: "Команды, связанные с приложением" -AppInit: "Инициализировать приложение" -AppKeyVal: "Ключ приложения (поддерживает только английский)" +AppCommands: "Команды приложения" +AppInit: "Инициализация приложения" +AppKeyVal: "Ключ приложения (поддерживаются только английские символы)" AppCreateFileErr: "Не удалось создать файл {{ .name }} {{ .err }}" AppCreateDirErr: "Не удалось создать папку {{ .name }} {{ .err }}" AppMissKey: "Отсутствует ключ приложения, используйте -k для указания" AppMissVersion: "Отсутствует версия приложения, используйте -v для указания" AppVersionExist: "Версия уже существует!" -AppCreateSuccessful: "Создание прошло успешно!" -AppWriteErr: "Ошибка записи файла {{ .name }} {{ .err }}" +AppCreateSuccessful: "Успешно создано!" +AppWriteErr: "Не удалось записать файл {{ .name }} {{ .err }}" SudoHelper: "Пожалуйста, используйте {{ .cmd }} или переключитесь на пользователя root" -ListenIPCommands: "Переключить IP прослушивания" -ListenIPv4: "Прослушивать IPv4" -ListenIPv6: "Прослушивать IPv6" -ListenChangeSuccessful: "Переключение успешно! Теперь прослушивается {{ .value }}" -ResetCommands: "Сбросить информацию системы" +ListenIPCommands: "Переключить IP для прослушивания" +ListenIPv4: "Прослушивание IPv4" +ListenIPv6: "Прослушивание IPv6" +ListenChangeSuccessful: "Переключено успешно! Теперь прослушиваем {{ .value }}" +ResetCommands: "Сбросить информацию о системе" ResetMFA: "Отменить двухфакторную аутентификацию 1Panel" -ResetHttps: "Отменить вход в 1Panel по https" -ResetEntrance: "Отменить безопасный вход в 1Panel" -ResetIPs: "Отменить авторизованные IP-ограничения 1Panel" -ResetDomain: "Отменить привязку домена 1Panel" -RestoreCommands: "Откатить сервис и данные 1Panel" -RestoreNoSuchFile: "Нет доступных файлов для отката" -RestoreStep1: "(1/5) Начало отката сервиса и данных 1Panel из каталога {{ .name }}..." -RestoreStep2: "(2/5) Откат бинарного файла 1Panel успешен" -RestoreStep3: "(3/5) Откат скрипта 1Panel успешен" -RestoreStep4: "(4/5) Откат сервиса 1Panel успешен" -RestoreStep5: "(5/5) Откат данных 1Panel успешен" -RestoreSuccessful: "Откат успешен! Перезапуск службы, пожалуйста, подождите..." -UpdateCommands: "Обновить информацию панели" -UpdateUser: "Обновить пользователя панели" -UpdatePassword: "Обновить пароль панели" -UpdatePort: "Обновить порт панели" -UpdateUserNull: "Ошибка: пользователь панели пуст!" -UpdateUserBlank: "Ошибка: пользователь панели содержит пробелы!" -UpdateUserFormat: "Ошибка: неверный формат пользователя панели! Поддерживаются только английский, китайский, цифры и , длина 3-30" -UpdateUserErr: "Ошибка: не удалось обновить пользователя панели, {{ .err }}" -UpdateSuccessful: "Обновление успешно!" +ResetHttps: "Отменить вход в 1Panel через https" +ResetEntrance: "Отменить безопасный вход 1Panel" +ResetIPs: "Отменить ограничения авторизованных IP для 1Panel" +ResetDomain: "Отменить привязку домена доступа 1Panel" +RestoreCommands: "Откатить сервисы и данные 1Panel" +RestoreNoSuchFile: "Нет доступных для отката файлов" +RestoreStep1: "(1/5)Начинаем откат сервисов и данных 1Panel из каталога {{ .name }}..." +RestoreStep2: "(2/5)Откат бинарного файла 1Panel завершён" +RestoreStep3: "(3/5)Откат скриптов 1Panel завершён" +RestoreStep4: "(4/5)Откат сервисов 1Panel завершён" +RestoreStep5: "(5/5)Откат данных 1Panel завершён" +RestoreSuccessful: "Откат успешен! Перезапускаем сервисы, пожалуйста, подождите..." +UpdateCommands: "Изменить информацию панели" +UpdateUser: "Изменить пользователя панели" +UpdatePassword: "Изменить пароль панели" +UpdatePort: "Изменить порт панели" +UpdateUserNull: "Ошибка: введён пользователь панели пуст!" +UpdateUserBlank: "Ошибка: введён пользователь панели с пробелами!" +UpdateUserFormat: "Ошибка: неверный формат имени пользователя панели! Поддерживаются только английские, китайские символы, цифры и _ , длина 3-30 символов" +UpdateUserErr: "Ошибка: не удалось изменить пользователя панели, {{ .err }}" +UpdateSuccessful: "Успешно изменено!" UpdateUserResult: "Пользователь панели: {{ .name }}" UpdatePasswordRead: "Ошибка: не удалось прочитать информацию о пароле панели, {{ .err }}" -UpdatePasswordNull: "Ошибка: пароль панели пуст!" -UpdateUPasswordBlank: "Ошибка: пароль панели содержит пробелы!" -UpdatePasswordFormat: "Ошибка: пароль панели поддерживает только буквы, цифры, специальные символы !@#$%* ,., длина 8-30!" -UpdatePasswordLen: "Ошибка: Пожалуйста, введите пароль длиной более 6 символов!" -UpdatePasswordRe: "Подтвердите пароль:" -UpdatePasswordErr: "Ошибка: не удалось обновить пароль панели, {{ .err }}" -UpdatePasswordSame: "Ошибка: два пароля не совпадают, пожалуйста, проверьте и попробуйте снова!" +UpdatePasswordNull: "Ошибка: введён пароль пуст!" +UpdateUPasswordBlank: "Ошибка: введён пароль с пробелами!" +UpdatePasswordFormat: "Ошибка: пароль должен содержать только буквы, цифры, специальные символы (!@#$%*_,.?), длина 8-30 символов!" +UpdatePasswordLen: "Ошибка: пароль должен быть длиной не менее 6 символов!" +UpdatePasswordRe: "Подтверждение пароля:" +UpdatePasswordErr: "Ошибка: не удалось изменить пароль панели, {{ .err }}" +UpdatePasswordSame: "Ошибка: пароли не совпадают, пожалуйста, проверьте и попробуйте снова!" UpdatePasswordResult: "Пароль панели: {{ .name }}" -UpdatePortFormat: "Ошибка: введенный номер порта должен быть между 1 и 65535!" -UpdatePortUsed: "Ошибка: номер порта уже используется, пожалуйста, проверьте и попробуйте снова!" -UpdatePortErr: "Ошибка: не удалось обновить порт панели, {{ .err }}" +UpdatePortFormat: "Ошибка: введённый порт должен быть в пределах от 1 до 65535!" +UpdatePortUsed: "Ошибка: этот порт уже занят, пожалуйста, проверьте и попробуйте снова!" +UpdatePortErr: "Ошибка: не удалось изменить порт панели, {{ .err }}" UpdatePortResult: "Порт панели: {{ .name }}" -UpdatePortFirewallAdd: "Не удалось добавить правило порта брандмауэра, {{ .err }}, пожалуйста, вручную добавьте порт {{ .name }} в правила брандмауэра." -UpdatePortFirewallDel: "Ошибка: не удалось удалить порт брандмауэра, {{ .err }}" -UpdatePortFirewallReload: "Не удалось перезагрузить брандмауэр, {{ .err }}, пожалуйста, вручную перезагрузите брандмауэр." -UserInfo: "Получить информацию панели" -UserInfoAddr: "Адрес панели: " -UserInfoPassHelp: "Подсказка: чтобы изменить пароль, вы можете выполнить команду: " -DBConnErr: "Ошибка: не удалось инициализировать подключение к базе данных, {{ .err }}" -SystemVersion: "версия: " -SystemMode: "режим: " +UpdatePortFirewallAdd: "Не удалось добавить правило фаервола для порта, {{ .err }}, пожалуйста, вручную добавьте порт {{ .name }} в правила фаервола." +UpdatePortFirewallDel: "Ошибка: не удалось удалить правило фаервола для порта, {{ .err }}" +UpdatePortFirewallReload: "Не удалось перезагрузить фаервол, {{ .err }}, пожалуйста, вручную перезагрузите фаервол." +UserInfo: "Получить информацию о панели" +UserInfoAddr: "Адрес панели:" +UserInfoPassHelp: "Подсказка: для изменения пароля можно выполнить команду:" +DBConnErr: "Ошибка: не удалось инициализировать соединение с базой данных, {{ .err }}" +SystemVersion: "Версия:" +SystemMode: "Режим:" \ No newline at end of file diff --git a/core/i18n/lang/zh-Hant.yaml b/core/i18n/lang/zh-Hant.yaml index 10d40bb87..99f1fe0a0 100644 --- a/core/i18n/lang/zh-Hant.yaml +++ b/core/i18n/lang/zh-Hant.yaml @@ -3,31 +3,43 @@ ErrTokenParse: "Token 生成錯誤: {{ .detail }}" ErrInitialPassword: "原密碼錯誤" ErrInternalServer: "服務內部錯誤: {{ .detail }}" ErrRecordExist: "記錄已存在" -ErrRecordNotFound: "記錄未能找到" +ErrRecordNotFound: "記錄未找到" ErrStructTransform: "類型轉換失敗: {{ .detail }}" ErrNotLogin: "用戶未登錄: {{ .detail }}" ErrPasswordExpired: "當前密碼已過期: {{ .detail }}" -ErrNotSupportType: "系統暫不支持當前類型: {{ .detail }}" +ErrNotSupportType: "系統暫不支援當前類型: {{ .detail }}" ErrProxy: "請求錯誤,請檢查該節點狀態: {{ .detail }}" ErrApiConfigStatusInvalid: "API 介面禁止訪問: {{ .detail }}" -ErrApiConfigKeyInvalid: "API 介面密鑰錯誤: {{ .detail }}" -ErrApiConfigIPInvalid: "調用 API 介面 IP 不在白名單: {{ .detail }}" -ErrApiConfigDisable: "此介面禁止使用 API 介面調用: {{ .detail }}" -ErrApiConfigKeyTimeInvalid: "API 介面時間戳錯誤: {{ .detail }}" +ErrApiConfigKeyInvalid: "API 密鑰錯誤: {{ .detail }}" +ErrApiConfigIPInvalid: "API 請求 IP 不在白名單: {{ .detail }}" +ErrApiConfigDisable: "此介面禁止使用 API 調用: {{ .detail }}" +ErrApiConfigKeyTimeInvalid: "API 時間戳錯誤: {{ .detail }}" -#common -ErrDemoEnvironment: "演示伺服器,禁止此操作!" -ErrCmdTimeout: "命令執行超時!" -ErrEntrance: "安全入口信息錯誤,請檢查後重試!" -ErrGroupIsDefault: '默認分組,無法刪除' +# request +ErrNoSuchHost: "無法找到請求的伺服器 {{ .err }}" +ErrHttpReqNotFound: "無法找到請求的資源 {{ .err }}" +ErrHttpReqFailed: "請求失敗 {{ .err }}" +ErrHttpReqTimeOut: "請求逾時 {{ .err }}" +ErrCreateHttpClient: "建立請求失敗 {{ .err }}" + +# common +ErrDemoEnvironment: "演示伺服器,禁止此操作!" +ErrCmdTimeout: "指令執行逾時!" +ErrEntrance: "安全入口資訊錯誤,請檢查後再試!" +ErrGroupIsDefault: "預設分組無法刪除" ErrLocalDelete: "無法刪除本地節點!" +ErrPortInUsed: "{{ .name }} 埠已被佔用!" -#backup -ErrBackupInUsed: "該備份帳號已在計劃任務中使用,無法刪除" -ErrBackupCheck: "備份帳號測試連接失敗 {{ .err}}" -ErrBackupLocal: "本地伺服器備份帳號暫不支持該操作!" -ErrBackupPublic: "檢測到該備份帳號為非公用,請檢查後重試!" -ErrOSSConn: "無法獲取最新版本,請確認伺服器是否能夠連接外部網絡。" +# app +CustomAppStoreFileValid: "應用商店包需要 .tar.gz 格式" +ErrFileNotFound: "{{ .name }} 檔案不存在" + +# backup +ErrBackupInUsed: "該備份帳號已在排程任務中使用,無法刪除" +ErrBackupCheck: "備份帳號測試連線失敗 {{ .err }}" +ErrBackupLocal: "本地伺服器備份帳號暫不支援該操作!" +ErrBackupPublic: "檢測到該備份帳號為非公用,請檢查後再試!" +ErrOSSConn: "無法獲取最新版本,請確認伺服器是否能夠連接外部網路。" #license ErrLicense: "許可證格式錯誤,請檢查後重試!" @@ -47,36 +59,30 @@ ErrNoSuchNode: "未能找到該節點信息,請檢查後重試!" ErrNodeUnbind: "檢測到該節點未在許可證綁定範圍內,請檢查後重試!" ErrNodeBind: "檢測到該節點已綁定許可證,請檢查後重試!" +# alert +ErrAlertSync: "告警信息同步錯誤,請檢查後重試!" + #task -TaskStart: "{{.name}} 任務開始 [START]" -TaskEnd: "{{.name}} 任務結束 [COMPLETED]" -TaskFailed: "{{.name}} 任務失敗" -TaskTimeout: "{{.name}} 超時" -TaskSuccess: "{{.name}} 任務成功" -TaskRetry: "開始第 {{.name}} 次重試" +TaskStart: "{{ .name }} 任務開始 [START]" +TaskEnd: "{{ .name }} 任務結束 [COMPLETED]" +TaskFailed: "{{ .name }} 任務失敗" +TaskTimeout: "{{ .name }} 超時" +TaskSuccess: "{{ .name }} 任務成功" +TaskRetry: "開始第 {{ .name }} 次重試" SubTaskSuccess: "{{ .name }} 成功" SubTaskFailed: "{{ .name }} 失敗: {{ .err }}" TaskInstall: "安裝" -TaskUninstall: "卸載" -TaskCreate: "創建" -TaskDelete: "刪除" TaskUpgrade: "升級" -TaskUpdate: "更新" -TaskRestart: "重啟" -TaskRollback: "回滾" SuccessStatus: "{{ .name }} 成功" FailedStatus: "{{ .name }} 失敗 {{.err}}" -PullImage: "拉取鏡像" Start: "開始" -Run: "啟動" -Stop: "停止" SubTask: "子任務" #upgrade node -NodeUpgrade: "升級節點 {name}" +NodeUpgrade: "升級節點 {{ .name }}" NewSSHClient: "初始化 SSH 連接" -BackupBeforeUpgrade: "升級前備份數據" -UploadUpgradeFile: "下發升級所需文件" +BackupBeforeUpgrade: "升級前備份資料" +UploadUpgradeFile: "發送升級所需文件" RestartAfterUpgrade: "升級後啟動服務" #add node @@ -150,4 +156,4 @@ UserInfoAddr: "面板地址:" UserInfoPassHelp: "提示:修改密碼可執行命令:" DBConnErr: "錯誤:初始化資料庫連接失敗,{{ .err }}" SystemVersion: "版本:" -SystemMode: "模式:" +SystemMode: "模式:" \ No newline at end of file diff --git a/core/i18n/lang/zh.yaml b/core/i18n/lang/zh.yaml index f2320241d..3d458c912 100644 --- a/core/i18n/lang/zh.yaml +++ b/core/i18n/lang/zh.yaml @@ -32,6 +32,7 @@ ErrPortInUsed: "{{ .name }} 端口已被占用!" #app CustomAppStoreFileValid: "应用商店包需要 .tar.gz 格式" +ErrFileNotFound: '{{.name}} 文件不存在' #backup ErrBackupInUsed: "该备份账号已在计划任务中使用,无法删除" diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index 1eca534e0..3fc9bc94c 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -2647,6 +2647,21 @@ const message = { manage: 'Management', }, }, + customApp: { + name: 'Custom App Repository', + appStoreType: 'App Store Package Source', + appStoreUrl: 'Repository URL', + local: 'Local Path', + remote: 'Remote Link', + imagePrefix: 'Image Prefix', + imagePrefixHelper: + 'Function: Customize the image prefix and modify the image field in the compose file. For example, when the image prefix is set to 1panel/custom, the image field for MaxKB will change to 1panel/custom/maxkb:v1.10.0', + closeHelper: 'Cancel using custom app repository', + appStoreUrlHelper: 'Only .tar.gz format is supported', + postNode: 'Sync to sub-node', + postNodeHelper: 'Sub-nodes will inherit and use the above configuration by default', + nodes: 'Nodes', + }, alert: { isAlert: 'Alert', alertCount: 'Alert Count', diff --git a/frontend/src/lang/modules/ja.ts b/frontend/src/lang/modules/ja.ts index 2a70896b0..c1d8f19c7 100644 --- a/frontend/src/lang/modules/ja.ts +++ b/frontend/src/lang/modules/ja.ts @@ -2468,6 +2468,21 @@ const message = { manage: '管理', }, }, + customApp: { + name: 'カスタムアプリリポジトリ', + appStoreType: 'アプリストアパッケージソース', + appStoreUrl: 'リポジトリURL', + local: 'ローカルパス', + remote: 'リモートリンク', + imagePrefix: 'イメージプレフィックス', + imagePrefixHelper: + '機能: イメージプレフィックスをカスタマイズし、composeファイル内のイメージフィールドを変更します。例えば、イメージプレフィックスを1panel/customに設定した場合、MaxKBのイメージフィールドは1panel/custom/maxkb:v1.10.0に変更されます', + closeHelper: 'カスタムアプリリポジトリの使用をキャンセルしますか', + appStoreUrlHelper: '.tar.gz形式のみサポートされます', + postNode: 'サブノードへ同期', + postNodeHelper: 'サブノードはデフォルトで上記の設定を継承して使用します', + nodes: 'ノードを選択', + }, alert: { isAlert: 'アラート', alertCount: 'アラート数', diff --git a/frontend/src/lang/modules/ko.ts b/frontend/src/lang/modules/ko.ts index 6fa780518..616df2e34 100644 --- a/frontend/src/lang/modules/ko.ts +++ b/frontend/src/lang/modules/ko.ts @@ -2427,6 +2427,21 @@ const message = { manage: '관리', }, }, + customApp: { + name: '사용자 정의 앱 저장소', + appStoreType: '앱 스토어 패키지 소스', + appStoreUrl: '저장소 URL', + local: '로컬 경로', + remote: '원격 링크', + imagePrefix: '이미지 접두사', + imagePrefixHelper: + '기능: 이미지 접두사를 사용자 정의하고 compose 파일의 이미지 필드를 수정합니다. 예를 들어 이미지 접두사를 1panel/custom으로 설정하면 MaxKB의 이미지 필드는 1panel/custom/maxkb:v1.10.0으로 변경됩니다', + closeHelper: '사용자 정의 앱 저장소 사용 취소', + appStoreUrlHelper: '.tar.gz 형식만 지원합니다', + postNode: '서브 노드로 동기화', + postNodeHelper: '서브 노드는 기본적으로 위 설정을 상속하고 사용합니다', + nodes: '노드 선택', + }, alert: { isAlert: '알림', alertCount: '알림 횟수', diff --git a/frontend/src/lang/modules/ms.ts b/frontend/src/lang/modules/ms.ts index 71f0ae5cb..1380d1fe0 100644 --- a/frontend/src/lang/modules/ms.ts +++ b/frontend/src/lang/modules/ms.ts @@ -2526,6 +2526,21 @@ const message = { manage: 'Pengurusan', }, }, + customApp: { + name: 'Repositori Aplikasi Khusus', + appStoreType: 'Sumber Pakej App Store', + appStoreUrl: 'URL Repositori', + local: 'Laluan Tempatan', + remote: 'Pautan Jauh', + imagePrefix: 'Awalan Imej', + imagePrefixHelper: + 'Fungsi: Sesuaikan awalan imej dan ubah medan imej dalam fail compose. Contohnya, apabila awalan imej ditetapkan kepada 1panel/custom, medan imej untuk MaxKB akan bertukar kepada 1panel/custom/maxkb:v1.10.0', + closeHelper: 'Batalkan penggunaan repositori aplikasi khusus', + appStoreUrlHelper: 'Hanya format .tar.gz disokong', + postNode: 'Segerakkan ke sub-node', + postNodeHelper: 'Sub-node akan mewarisi dan menggunakan konfigurasi di atas secara lalai', + nodes: 'Pilih Node', + }, alert: { isAlert: 'Amaran', alertCount: 'Bilangan Amaran', diff --git a/frontend/src/lang/modules/pt-br.ts b/frontend/src/lang/modules/pt-br.ts index 4efbf9a1b..c4b99ba39 100644 --- a/frontend/src/lang/modules/pt-br.ts +++ b/frontend/src/lang/modules/pt-br.ts @@ -2525,6 +2525,21 @@ const message = { manage: 'Gerenciamento', }, }, + customApp: { + name: 'Repositório de Aplicativos Personalizados', + appStoreType: 'Fonte do Pacote da App Store', + appStoreUrl: 'URL do Repositório', + local: 'Caminho Local', + remote: 'Link Remoto', + imagePrefix: 'Prefixo de Imagem', + imagePrefixHelper: + 'Função: Personalize o prefixo da imagem e modifique o campo de imagem no arquivo compose. Por exemplo, quando o prefixo da imagem é configurado como 1panel/custom, o campo de imagem do MaxKB mudará para 1panel/custom/maxkb:v1.10.0', + closeHelper: 'Cancelar o uso do repositório de aplicativos personalizados', + appStoreUrlHelper: 'Apenas formato .tar.gz é suportado', + postNode: 'Sincronizar para subnó', + postNodeHelper: 'Subnós herdarão e usarão a configuração acima por padrão', + nodes: 'Selecionar Nós', + }, alert: { isAlert: 'Alerta', alertCount: 'Contagem de Alertas', diff --git a/frontend/src/lang/modules/ru.ts b/frontend/src/lang/modules/ru.ts index f5961ec35..8021e37d9 100644 --- a/frontend/src/lang/modules/ru.ts +++ b/frontend/src/lang/modules/ru.ts @@ -2519,6 +2519,21 @@ const message = { manage: 'Управление', }, }, + customApp: { + name: 'Пользовательское хранилище приложений', + appStoreType: 'Источник пакета App Store', + appStoreUrl: 'URL хранилища', + local: 'Локальный путь', + remote: 'Удаленная ссылка', + imagePrefix: 'Префикс образа', + imagePrefixHelper: + 'Функция: Настройка префикса образа и изменение поля образа в файле compose. Например, если префикс образа установлен как 1panel/custom, поле образа для MaxKB изменится на 1panel/custom/maxkb:v1.10.0', + closeHelper: 'Отменить использование пользовательского хранилища приложений', + appStoreUrlHelper: 'Поддерживается только формат .tar.gz', + postNode: 'Синхронизировать с подузлом', + postNodeHelper: 'Подузлы будут наследовать и использовать указанную конфигурацию по умолчанию', + nodes: 'Выбрать узлы', + }, alert: { isAlert: 'Оповещение', alertCount: 'Количество оповещений', diff --git a/frontend/src/lang/modules/tw.ts b/frontend/src/lang/modules/tw.ts index d39427a0c..a037c2cfc 100644 --- a/frontend/src/lang/modules/tw.ts +++ b/frontend/src/lang/modules/tw.ts @@ -1134,6 +1134,21 @@ const message = { taskName: '任務名稱', taskRunning: '運行中', }, + customApp: { + name: '自訂應用倉庫', + appStoreType: '應用商店包來源', + appStoreUrl: '倉庫地址', + local: '本機路徑', + remote: '遠端連結', + imagePrefix: '映像前綴', + imagePrefixHelper: + '作用:自訂映像前綴,修改 compose 檔案中的映像欄位,例如:當映像前綴設定為 1panel/custom 時,MaxKB 的映像欄位將變更為 1panel/custom/maxkb:v1.10.0', + closeHelper: '是否取消使用自訂應用倉庫', + appStoreUrlHelper: '僅支援 .tar.gz 格式', + postNode: '同步至子節點', + postNodeHelper: '子節點預設繼承並使用上述配置', + nodes: '節點', + }, alert: { isAlert: '是否告警', alertCount: '告警次數', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index 04195735d..a96a02665 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -2922,19 +2922,19 @@ const message = { nodePort: '节点端口', }, customApp: { - name: '使用自定义应用商店包', + name: '自定义应用仓库', appStoreType: '应用商店包来源', - appStoreUrl: '应用商店包地址', + appStoreUrl: '仓库地址', local: '本机路径', remote: '远程链接', - imagePrefix: '镜像地址前缀', + imagePrefix: '镜像前缀', imagePrefixHelper: - '镜像地址前缀作用是: 修改 docker-compose 中 image 地址前缀,例如:设置为 1panel/repo/,则 halo 的 image 字段会从 halohub/halo-pro:2.19.3 变为 1panel/repo/halo-pro:2.19.3', - closeHelper: '是否取消使用自定义应用商店包', - appStoreUrlHelper: '应用商店包仅支持 .tar.gz 格式', - postNode: '同步到子节点', - postNodeHelper: '选择之后,子节点也使用相同的应用商店包', - nodes: '选择节点', + '作用:自定义镜像前缀,修改 compose 文件中的镜像字段,例如:当镜像前缀设置为 1panel/custom 时,MaxKB 的 image 字段将变更为 1panel/custom/maxkb:v1.10.0', + closeHelper: '是否取消使用自定义应用仓库', + appStoreUrlHelper: '仅支持 .tar.gz 格式', + postNode: '同步至子节点', + postNodeHelper: '子节点默认继承并使用上述配置', + nodes: '节点', }, alert: { alert: '短信告警', diff --git a/frontend/src/views/host/process/process/detail/index.vue b/frontend/src/views/host/process/process/detail/index.vue index 1b713a15b..68e8750ef 100644 --- a/frontend/src/views/host/process/process/detail/index.vue +++ b/frontend/src/views/host/process/process/detail/index.vue @@ -74,7 +74,7 @@ :{{ row.remoteaddr.port }} - + diff --git a/frontend/src/views/website/website/check/index.vue b/frontend/src/views/website/website/check/index.vue index d7bef4209..095d92ded 100644 --- a/frontend/src/views/website/website/check/index.vue +++ b/frontend/src/views/website/website/check/index.vue @@ -8,7 +8,7 @@ - + diff --git a/frontend/src/views/website/website/config/basic/php/index.vue b/frontend/src/views/website/website/config/basic/php/index.vue index 22216f0fe..fec70d875 100644 --- a/frontend/src/views/website/website/config/basic/php/index.vue +++ b/frontend/src/views/website/website/config/basic/php/index.vue @@ -3,9 +3,12 @@ -
- {{ $t('website.staticChangePHPHelper') }} -
+ +
+ {{ $t('website.staticChangePHPHelper') }} +
+
+ @@ -51,7 +54,9 @@ const versionReq = reactive({ const versions = ref([]); const loading = ref(false); const oldRuntimeID = ref(0); -const website = ref(); +const website = ref({ + type: '', +}); const getRuntimes = async () => { try {