diff --git a/README.md b/README.md
index d0fc96dcf..498885d9f 100644
--- a/README.md
+++ b/README.md
@@ -34,6 +34,7 @@
+
---
diff --git a/agent/app/dto/app.go b/agent/app/dto/app.go
index 694f278d3..72e342427 100644
--- a/agent/app/dto/app.go
+++ b/agent/app/dto/app.go
@@ -2,6 +2,7 @@ package dto
import (
"context"
+
"github.com/1Panel-dev/1Panel/agent/app/model"
"github.com/1Panel-dev/1Panel/agent/app/task"
)
@@ -133,6 +134,7 @@ type Locale struct {
Tr string `json:"tr"`
Es string `json:"es-es" yaml:"es-es"`
Fa string `json:"fa"`
+ Lo string `json:"lo"`
}
type AppForm struct {
diff --git a/agent/i18n/lang/lo.yaml b/agent/i18n/lang/lo.yaml
index 49e5576f8..45b4c6802 100644
--- a/agent/i18n/lang/lo.yaml
+++ b/agent/i18n/lang/lo.yaml
@@ -1,4 +1,6 @@
ErrInvalidParams: 'ຄຳຮ້ອງຂໍບໍ່ຖືກຕ້ອງ: {{ .detail }}'
+ErrMcpGatewayArgsParse: 'ຮູບແບບອາກິວເມັນ MCP ກຳນົດເອງບໍ່ຖືກຕ້ອງ'
+ErrMcpGatewayArgsConflict: 'ອາກິວເມັນ {{ .name }} ຖືກຈັດການໂດຍ 1Panel ແລະ ບໍ່ສາມາດຕັ້ງຄ່າໃນອາກິວເມັນກຳນົດເອງໄດ້'
ErrTokenParse: 'ໂທເຄັນຜິດພາດ: {{ .detail }}'
ErrInitialPassword: 'ລະຫັດຜ່ານເດີມບໍ່ຖືກຕ້ອງ'
ErrInternalServer: 'ລະບົບພາຍໃນຜິດພາດ: {{ .detail }}'
@@ -10,6 +12,11 @@ ErrWgetProxyNotConfigured: 'ກະລຸນາກຳນົດຄ່າເຊີ
ErrWgetProxyInvalid: 'ທີ່ຢູ່ເຊີເວີພຣັອກຊີບໍ່ຖືກຕ້ອງ: {{ .detail }}'
ErrRecordExist: 'ຂໍ້ມູນນີ້ມີຢູ່ໃນລະບົບແລ້ວ'
ErrRecordNotFound: 'ບໍ່ພົບຂໍ້ມູນ'
+WafLogExport: 'ສົ່ງອອກລັອກ WAF'
+MonitorLogExport: 'ສົ່ງອອກລັອກການຕິດຕາມເວັບໄຊ'
+LogExportNoData: 'ບໍ່ມີລັອກທີ່ກົງກັບເງື່ອນໄຂການກັ່ນຕອງ'
+LogExportDiskSpace: 'ພື້ນທີ່ດິສກ໌ທີ່ໃຊ້ໄດ້ໜ້ອຍກວ່າ 1 GiB; ການສົ່ງອອກຖືກຢຸດແລ້ວ'
+LogExportRetentionInvalid: 'ໄລຍະເກັບບັນທຶກການສົ່ງອອກຕ້ອງຢູ່ລະຫວ່າງ 1 ຫາ 30 ມື້'
ErrStructTransform: 'ການແປງປະເພດຂໍ້ມູນລົ້ມເຫຼວ: {{ .err }}'
ErrNotLogin: 'ຍັງບໍ່ໄດ້ເຂົ້າສູ່ລະບົບ: {{ .detail }}'
ErrPasswordExpired: 'ລະຫັດຜ່ານໝົດອາຍຸ: {{ .detail }}'
@@ -48,6 +55,7 @@ Decrypt: "ຖອດລະຫັດ"
#agent
ErrAgentAccountBound: 'ບັນຊີຖືກຜູກມັດກັບຕົວແທນ (Agent) ແລະບໍ່ສາມາດລຶບໄດ້'
ErrTerminalAIAccountInUse: 'ບັນຊີໂມເດລນີ້ກຳລັງຖືກໃຊ້ໂດຍ Terminal AI. ກະລຸນາປ່ຽນບັນຊີໃນການຕັ້ງຄ່າ Terminal AI ຫຼື ປິດໃຊ້ງານ Terminal AI ແລ້ວລອງໃໝ່.'
+ErrFileAIAccountInUse: 'ບັນຊີໂມເດລນີ້ກຳລັງຖືກໃຊ້ໂດຍ AI ຈັດການໄຟລ໌. ກະລຸນາປ່ຽນບັນຊີໃນການຕັ້ງຄ່າ AI ຈັດການໄຟລ໌ ຫຼື ປິດໃຊ້ງານແລ້ວລອງໃໝ່.'
ErrAgentAccountUnavailable: 'ການເຊື່ອມຕໍ່ບັນຊີບໍ່ສາມາດໃຊ້ງານໄດ້: {{ .err }}'
ErrAgentProviderNotSupported: 'ບໍ່ຮອງຮັບຜູ້ໃຫ້ບໍລິການຕົວແທນນີ້'
ErrAgentAccountRequired: 'ກະລຸນາເລືອກບັນຊີຕົວແທນກ່ອນ'
@@ -55,6 +63,7 @@ ErrAgentAccountNotVerified: 'ບັນຊີຕົວແທນຍັງບໍ່
ErrAgentAccountModelsRequired: 'ກະລຸນາກຳນົດຄ່າໂມເດລຢ່າງໜ້ອຍໜຶ່ງຕົວ'
ErrAgentAccountSingleInitialModel: 'ສາມາດກຳນົດຄ່າໂມເດລເລີ່ມຕົ້ນໄດ້ພຽງຕົວດຽວໃນລະຫວ່າງການສ້າງບັນຊີ'
ErrAgentModelNotInAccount: 'ໂມເດລບໍ່ໄດ້ຖືກກຳນົດຄ່າໃນບັນຊີທີ່ເລືອກ'
+ErrAgentVerifyModelInUse: 'ໂມເດລນີ້ຖືກໃຊ້ສຳລັບກວດສອບບັນຊີ. ກະລຸນາເລືອກໂມເດລກວດສອບອື່ນກ່ອນລຶບ.'
ErrAgentFallbackModelDuplicate: 'ໂມເດລສຳຮອງ (Fallback) ບໍ່ສາມາດຊ້ຳກັນໄດ້'
ErrAgentFallbackModelPrimary: 'ໂມເດລສຳຮອງບໍ່ສາມາດຄືກັນກັບໂມເດລຫຼັກ'
ErrAgentModelInUse: 'ຕົວແທນທີ່ຜູກມັດກຳລັງໃຊ້ໂມເດລນີ້ຢູ່: {{ .name }}'
@@ -362,6 +371,9 @@ ErrParseIP: 'ຮູບແບບ IP ບໍ່ຖືກຕ້ອງ'
ErrDefaultIP: 'ຊື່ default ຖືກສະຫງວນໄວ້; ກະລຸນາໃຊ້ຊື່ອື່ນ'
ErrGroupInUse: 'ກຸ່ມ IP ກຳລັງຖືກໃຊ້ງານໂດຍກົດລະບຽບ Blacklist/Whitelist'
ErrIPGroupAclUse: 'ກຸ່ມ IP ກຳລັງຖືກໃຊ້ງານໂດຍກົດລະບຽບປັບແຕ່ງເອງຂອງເວັບໄຊ {{ .name }}'
+ErrIPGroupOriginProtectionUse: 'ກຸ່ມ IP ຖືກໃຊ້ໂດຍການປ້ອງກັນ CDN Origin ຂອງເວັບໄຊ {{ .name }}'
+ErrOriginProtectionIPGroupRequired: 'ກະລຸນາເລືອກຢ່າງໜ້ອຍໜຶ່ງກຸ່ມ IP ທີ່ບໍ່ຫວ່າງກ່ອນເປີດການປ້ອງກັນ Origin'
+ErrOriginProtectionIPGroupInvalid: 'ກຸ່ມ IP {{ .name }} ບໍ່ມີຢູ່ ຫຼື ຫວ່າງເປົ່າ'
ErrGroupExist: 'ຊື່ກຸ່ມ IP ມີຢູ່ໃນລະບົບແລ້ວ'
ErrIPRange: 'ຊ່ວງ IP ບໍ່ຖືກຕ້ອງ'
ErrIPExist: 'IP ມີຢູ່ໃນລະບົບແລ້ວ'
diff --git a/core/app/dto/auth.go b/core/app/dto/auth.go
index b070009f8..36fbd94a7 100644
--- a/core/app/dto/auth.go
+++ b/core/app/dto/auth.go
@@ -23,7 +23,7 @@ type Login struct {
Password string `json:"password" validate:"required"`
Captcha string `json:"captcha"`
CaptchaID string `json:"captchaID"`
- Language string `json:"language" validate:"required,oneof=zh en 'zh-Hant' ko ja ru ms 'pt-BR' tr 'es-ES' fa"`
+ Language string `json:"language" validate:"required,oneof=zh en 'zh-Hant' ko ja ru ms 'pt-BR' tr 'es-ES' fa lo"`
}
type SystemSetting struct {
diff --git a/core/i18n/i18n.go b/core/i18n/i18n.go
index cf983075d..39df1c972 100644
--- a/core/i18n/i18n.go
+++ b/core/i18n/i18n.go
@@ -29,6 +29,7 @@ var langFiles = map[string]string{
"tr": "lang/tr.yaml",
"es-ES": "lang/es-ES.yaml",
"fa": "lang/fa.yaml",
+ "lo": "lang/lo.yaml",
}
func GetMsgWithMap(key string, maps map[string]interface{}) string {
diff --git a/core/i18n/lang/lo.yaml b/core/i18n/lang/lo.yaml
new file mode 100644
index 000000000..0ee1e6282
--- /dev/null
+++ b/core/i18n/lang/lo.yaml
@@ -0,0 +1,409 @@
+# base errors
+ErrInvalidParams: "ພາລາມິເຕີຄຳຮ້ອງຂໍບໍ່ຖືກຕ້ອງ: {{ .detail }}"
+ErrTokenParse: "ເກີດຂໍ້ຜິດພາດໃນການສ້າງໂທເຄັນ: {{ .detail }}"
+ErrInitialPassword: "ລະຫັດຜ່ານເລີ່ມຕົ້ນບໍ່ຖືກຕ້ອງ"
+ErrInternalServer: "ຂໍ້ຜິດພາດພາຍໃນເຊີບເວີ: {{ .detail }}"
+ErrInternalServerKey: "ຂໍ້ຜິດພາດພາຍໃນເຊີບເວີ:"
+ErrRecordExist: "ມີບັນທຶກນີ້ຢູ່ແລ້ວ"
+ErrRecordNotFound: "ບໍ່ພົບບັນທຶກ"
+ErrStructTransform: "ການແປງຊະນິດຂໍ້ມູນລົ້ມເຫຼວ: {{ .detail }}"
+ErrNotSupportType: "ບໍ່ຮອງຮັບຊະນິດ: {{ .name }}"
+ErrDemoEnvironment: "ນີ້ແມ່ນເຊີບເວີສາທິດ, ຫ້າມດຳເນີນການນີ້!"
+ErrCmdTimeout: "ການປະຕິບັດຄຳສັ່ງໝົດເວລາ!"
+ErrPortInUsed: "ພອດ {{ .name }} ກຳລັງຖືກໃຊ້ງານຢູ່!"
+ErrFileNotFound: "ບໍ່ມີໄຟລ໌ {{ .name }}"
+ErrReqFailed: "ຄຳຮ້ອງຂໍ {{.name}} ລົ້ມເຫຼວ: {{ .err }}"
+
+# request and entrance
+ErrNoSuchHost: "ການແປງຊື່ໂຮສລົ້ມເຫຼວ: {{ .err }}"
+ErrHttpReqNotFound: "ບໍ່ພົບຊັບພະຍາກອນທີ່ຮ້ອງຂໍ: {{ .err }}"
+ErrHttpReqFailed: "ຄຳຮ້ອງຂໍລົ້ມເຫຼວ {{ .err }}"
+ErrHttpReqTimeOut: "ຄຳຮ້ອງຂໍໝົດເວລາ {{ .err }}"
+ErrCreateHttpClient: "ສ້າງຄຳຮ້ອງຂໍບໍ່ສຳເລັດ {{ .err }}"
+ErrProxy: "ຄຳຮ້ອງຂໍລົ້ມເຫຼວ; ກະລຸນາກວດສອບສະຖານະຂອງໂນດນີ້: {{ .detail }}"
+ErrProxySetting: "ບໍ່ມີຂໍ້ມູນເຊີບເວີພຣັອກຊີ {{ .err }}, ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+ErrEntrance: "ຂໍ້ມູນທາງເຂົ້າຄວາມປອດໄພຜິດພາດ, ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+ErrEntranceFormat: "ບໍ່ຮອງຮັບທາງເຂົ້າຄວາມປອດໄພ {{ .name }}. ກະລຸນາກວດສອບແລ້ວລອງໃໝ່."
+
+# login and security
+ErrNotLogin: "ຜູ້ໃຊ້ຍັງບໍ່ໄດ້ເຂົ້າລະບົບ: {{ .detail }}"
+ErrSessionDataNotFound: "ເຊດຊັນໝົດອາຍຸແລ້ວ"
+ErrSessionDataFormat: "ຮູບແບບຂໍ້ມູນເຊດຊັນບໍ່ຖືກຕ້ອງ"
+ErrPasswordExpired: "ລະຫັດຜ່ານໝົດອາຍຸແລ້ວ: {{ .detail }}"
+ErrLoginLocked: "ພະຍາຍາມລົ້ມເຫຼວຫຼາຍຄັ້ງເກີນໄປ. ການເຂົ້າລະບົບຖືກລັອກຊົ່ວຄາວ 5 ນາທີ."
+ErrApiConfigStatusInvalid: "ການເຂົ້າເຖິງ API ຖືກປິດໃຊ້ງານ: {{ .detail }}"
+ErrApiConfigKeyInvalid: "ຄີ API ບໍ່ຖືກຕ້ອງ: {{ .detail }}"
+ErrApiConfigIPInvalid: "IP ຂອງຄຳຮ້ອງຂໍ API ບໍ່ຢູ່ໃນລາຍຊື່ອະນຸຍາດ: {{ .detail }}"
+ErrApiConfigDisable: "ອິນເຕີເຟດນີ້ຫ້າມການເອີ້ນໃຊ້ API: {{ .detail }}"
+ErrApiConfigKeyTimeInvalid: "ເວລາປະທັບ API ບໍ່ຖືກຕ້ອງ: {{ .detail }}"
+ErrPasskeyDisabled: "Passkey ຕ້ອງເປີດໃຊ້ງານ HTTPS"
+ErrPasskeyNotConfigured: "ຍັງບໍ່ໄດ້ຕັ້ງຄ່າ Passkey"
+ErrPasskeyLimit: "ຈຳນວນ Passkey ຮອດຂີດຈຳກັດແລ້ວ (ສູງສຸດ 5)"
+ErrPasskeySession: "ເຊດຊັນ Passkey ໝົດອາຍຸ ຫຼື ບໍ່ຖືກຕ້ອງ"
+ErrPasskeyDuplicate: "ມີ Passkey ນີ້ຢູ່ແລ້ວ"
+ErrPasskeyVerify: "ການຢືນຢັນ Passkey ລົ້ມເຫຼວ"
+
+# user and permission
+ErrNoSuchUser: "ບໍ່ພົບຂໍ້ມູນຜູ້ໃຊ້, ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+ErrToMaster: "ຜູ້ໃຊ້ນີ້ບໍ່ມີສິດດຳເນີນການນີ້ໃນໂນດຫຼັກ. ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+ErrToNode: "ຜູ້ໃຊ້ນີ້ບໍ່ມີສິດດຳເນີນການນີ້ໃນໂນດນີ້. ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+ErrRBAC: "ສິດຂອງຜູ້ໃຊ້ບໍ່ພຽງພໍ. ບໍ່ສາມາດດຳເນີນການນີ້ໄດ້. ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+ErrNoneNode: "ຜູ້ໃຊ້ນີ້ບໍ່ມີສິດໃຊ້ງານໂນດ. ກະລຸນາຕິດຕໍ່ຜູ້ບໍລິຫານ ຫຼື ກວດສອບແລ້ວລອງໃໝ່!"
+ErrOnlySuperAdmin: "ມີພຽງຜູ້ບໍລິຫານສູງສຸດເທົ່ານັ້ນທີ່ໃຊ້ຟັງຊັນນີ້ໄດ້!"
+ErrRolePresetCannotDelete: "ບໍ່ສາມາດລຶບບົດບາດທີ່ລະບົບກຳນົດໄວ້ລ່ວງໜ້າ"
+ErrRolePresetCannotUpdate: "ບໍ່ສາມາດອັບເດດບົດບາດທີ່ລະບົບກຳນົດໄວ້ລ່ວງໜ້າ"
+ErrRoleBoundToUser: "ບົດບາດນີ້ຖືກຜູກກັບຜູ້ໃຊ້ແລ້ວ ແລະ ບໍ່ສາມາດລຶບໄດ້"
+ErrRolePresetCannotBind: "ບໍ່ສາມາດມອບໝາຍບົດບາດທີ່ລະບົບກຳນົດໄວ້ລ່ວງໜ້າໃຫ້ຜູ້ໃຊ້"
+ErrNodeAdminMasterForbidden: "ບໍ່ສາມາດເພີ່ມສິດຜູ້ບໍລິຫານໂນດໃຫ້ກັບໂນດຫຼັກ"
+ErrSuperAdminCannotDelete: "ບໍ່ສາມາດລຶບຜູ້ໃຊ້ທີ່ເປັນຜູ້ບໍລິຫານສູງສຸດ"
+ErrGroupIsDefault: "ເປັນກຸ່ມເລີ່ມຕົ້ນ, ບໍ່ສາມາດລຶບໄດ້"
+ErrGroupIsInUse: "ກຸ່ມນີ້ກຳລັງຖືກໃຊ້ງານ ແລະ ບໍ່ສາມາດລຶບໄດ້."
+
+# license
+LicenseCheck: 'ກວດສອບວ່າໃບອະນຸຍາດພ້ອມໃຊ້ງານຫຼືບໍ່'
+ErrLicenseInUsed: 'ໃບອະນຸຍາດຖືກຜູກໄວ້ແລ້ວ. ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!'
+ErrLicenseExpired: 'ໃບອະນຸຍາດໝົດອາຍຸແລ້ວ. ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!'
+ErrLicense: "ຮູບແບບໃບອະນຸຍາດຜິດພາດ, ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+ErrLicenseCheck: "ການກວດສອບໃບອະນຸຍາດລົ້ມເຫຼວ, ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+ErrXpackVersion: "ການກວດສອບໃບອະນຸຍາດລົ້ມເຫຼວ, ໃບອະນຸຍາດນີ້ຈຳກັດເວີຊັນ ແລະ ບໍ່ສາມາດນຳເຂົ້າໄດ້, ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+ErrLicenseSave: "ບັນທຶກຂໍ້ມູນໃບອະນຸຍາດບໍ່ສຳເລັດ, ຂໍ້ຜິດພາດ {{ .err }}, ກະລຸນາລອງໃໝ່!"
+ErrLicenseSync: "ການຊິງໃບອະນຸຍາດລົ້ມເຫຼວ, ບໍ່ພົບຂໍ້ມູນໃບອະນຸຍາດໃນຖານຂໍ້ມູນ!"
+ErrLicenseExist: "ມີບັນທຶກໃບອະນຸຍາດນີ້ຢູ່ແລ້ວ. ທ່ານສາມາດໄປທີ່ໜ້າໃບອະນຸຍາດເພື່ອຜູກໂນດໄດ້ໂດຍກົງ."
+ErrXpackNotFound: "ສ່ວນນີ້ຕ້ອງໃຊ້ຮຸ່ນທຸລະກິດ. ກະລຸນານຳເຂົ້າໃບອະນຸຍາດໃນ ການຕັ້ງຄ່າແຜງ > ໃບອະນຸຍາດ."
+ErrXpackExceptional: "ສ່ວນນີ້ຕ້ອງໃຊ້ຮຸ່ນທຸລະກິດ. ກະລຸນາຊິງສະຖານະໃບອະນຸຍາດໃນ ການຕັ້ງຄ່າແຜງ > ໃບອະນຸຍາດ."
+ErrXpackLost: "ການລອງໃບອະນຸຍາດໃໝ່ຮອດຂີດຈຳກັດແລ້ວ. ໄປທີ່ ການຕັ້ງຄ່າແຜງ > ໃບອະນຸຍາດ ແລະ ຊິງດ້ວຍຕົນເອງ."
+ErrEnterpriseLicenseRequired: "ຍັງບໍ່ໄດ້ນຳເຂົ້າໃບອະນຸຍາດຮຸ່ນວິສາຫະກິດ. ກະລຸນານຳເຂົ້າໃບອະນຸຍາດກ່ອນ."
+ErrDeviceLost: "ໄຟລ໌ທີ່ຈຳເປັນສຳລັບກວດສອບໃບອະນຸຍາດຫາຍໄປ, ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+ErrDeviceErr: "ສະພາບແວດລ້ອມປັດຈຸບັນບໍ່ກົງກັບສະພາບແວດລ້ອມທີ່ນຳເຂົ້າໃບອະນຸຍາດ. ກະລຸນາແກ້ໄຂໃບອະນຸຍາດແລ້ວນຳເຂົ້າໃໝ່."
+ErrXpackTimeout: "ຄຳຮ້ອງຂໍໝົດເວລາ, ການເຊື່ອມຕໍ່ເຄືອຂ່າຍອາດບໍ່ສະຖຽນ, ກະລຸນາລອງໃໝ່ພາຍຫຼັງ!"
+ErrUnbindMaster: "ຍັງມີໂນດຢູ່ໃນການຈັດການໂນດ. ກະລຸນາລຶບໂນດກ່ອນ ແລ້ວຈຶ່ງຍົກເລີກການຜູກໃບອະນຸຍາດປັດຈຸບັນ."
+ErrFreeNodeLimit: "ຈຳນວນໂນດທີ່ສາມາດເພີ່ມໄດ້ຮອດຂີດຈຳກັດແລ້ວ. ກະລຸນາຊື້ແລ້ວລອງໃໝ່."
+ErrNodeBound: "ໃບອະນຸຍາດນີ້ຖືກຜູກກັບໂນດອື່ນແລ້ວ, ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+ErrNodeBoundDelete: "ໃບອະນຸຍາດນີ້ຖືກຜູກແລ້ວ ແລະ ບໍ່ຮອງຮັບການລຶບ. ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+ErrNodeBoundLimit: "ໂນດຟຣີປັດຈຸບັນຮອດຂີດຈຳກັດແລ້ວ, ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+ErrLicenseFree: "ໂນດຟຣີຈະໃຊ້ງານໄດ້ເມື່ອໃບອະນຸຍາດຖືກຜູກກັບໂນດຢ່າງຖືກຕ້ອງເທົ່ານັ້ນ. ກະລຸນາກວດສອບແລ້ວລອງໃໝ່."
+ErrLicenseUnbind: "ຍັງມີໂນດຮຸ່ນຊຸມຊົນທີ່ຜູກກັບໃບອະນຸຍາດນີ້. ກະລຸນາຍົກເລີກການຜູກໃນ ການຕັ້ງຄ່າແຜງ > ໃບອະນຸຍາດ ແລ້ວລອງໃໝ່."
+ErrLicenseBindCount: "ຈຳນວນໂນດຟຣີຂອງໃບອະນຸຍາດໃໝ່ນ້ອຍກວ່າຈຳນວນໂນດຮຸ່ນຊຸມຊົນທີ່ຜູກຢູ່ປັດຈຸບັນ. ກະລຸນາກວດສອບແລ້ວລອງໃໝ່."
+ErrNoSuchNode: "ບໍ່ພົບຂໍ້ມູນໂນດ, ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+ErrNodeUnbind: "ໂນດນີ້ບໍ່ຢູ່ໃນຂອບເຂດການຜູກຂອງໃບອະນຸຍາດ, ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+ErrNodeBind: "ໂນດນີ້ຖືກຜູກກັບໃບອະນຸຍາດແລ້ວ, ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+ErrNodeLocalRollback: "ໂນດຫຼັກບໍ່ຮອງຮັບການຍ້ອນກັບໂດຍກົງ. ກະລຸນາໃຊ້ຄຳສັ່ງ '1pctl restore' ດ້ວຍຕົນເອງເພື່ອຍ້ອນກັບ."
+ErrIntlLicense: "ເວີຊັນປັດຈຸບັນຍັງບໍ່ຮອງຮັບການນຳເຂົ້າໃບອະນຸຍາດສາກົນ. ກະລຸນາລໍຖ້າ!"
+InvalidRequestBodyType: "ຮູບແບບເນື້ອຫາຄຳຮ້ອງຂໍບໍ່ຖືກຕ້ອງ. ກະລຸນາກວດວ່າເນື້ອຫາກົງກັບຮູບແບບທີ່ກຳນົດແລ້ວລອງໃໝ່."
+InvalidLicenseCodeType: "ຮູບແບບລະຫັດໃບອະນຸຍາດທີ່ໃຫ້ມາບໍ່ຖືກຕ້ອງ, ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+LicenseNotFoundType: "ບໍ່ພົບໃບອະນຸຍາດ, ບໍ່ມີບັນທຶກທີ່ກົງກັບໃບອະນຸຍາດທີ່ໃຫ້ມາໃນລະບົບ. ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+LicenseRevokedType: "ໃບອະນຸຍາດທີ່ຮ້ອງຂໍຖືກຖອນແລ້ວ ແລະ ບໍ່ສາມາດໃຊ້ງານໄດ້ອີກ. ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+LicenseExpiredType: "ໃບອະນຸຍາດໝົດອາຍຸແລ້ວ. ກະລຸນາຕໍ່ອາຍຸ ຫຼື ນຳເຂົ້າໃໝ່ໃນ ການຕັ້ງຄ່າແຜງ - ໃບອະນຸຍາດ ກ່ອນລອງໃໝ່."
+LicenseProductMismatchType: "ໃບອະນຸຍາດບໍ່ກົງກັບຜະລິດຕະພັນ ຫຼື ບໍລິການທີ່ຮ້ອງຂໍ!"
+InvalidAssigneeType: "ຂໍ້ມູນຜູ້ໃຊ້ ຫຼື ອຸປະກອນເປົ້າໝາຍສຳລັບການມອບໝາຍໃບອະນຸຍາດບໍ່ຖືກຕ້ອງ. ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+LicenseUsageNotFoundType: "ບໍ່ພົບບັນທຶກການໃຊ້ງານ. ໃບອະນຸຍາດນີ້ຍັງບໍ່ໄດ້ເປີດໃຊ້ງານ ຫຼື ໃຊ້ງານເທື່ອ. ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+LicenseUsageLimitExceededType: "ໃບອະນຸຍາດນີ້ຖືກຜູກກັບໂນດອື່ນແລ້ວ. ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+
+# node and cluster
+MasterNode: "ໂນດຫຼັກ"
+Node: "ໂນດ"
+ErrLocalDelete: "ບໍ່ສາມາດລຶບໂນດພາຍໃນເຄື່ອງໄດ້!"
+ErrMasterDelete: "ບໍ່ສາມາດລຶບໂນດຫຼັກໄດ້. ກະລຸນາລຶບໂນດຍ່ອຍກ່ອນ."
+ClusterNameIsExist: "ມີຊື່ຄລັສເຕີນີ້ຢູ່ແລ້ວ."
+AppStatusUnHealthy: "ດຶງສະຖານະແອັບບໍ່ສຳເລັດ. ກະລຸນາກວດສອບສະຖານະໂນດທີ່ຕິດຕັ້ງໃນລາຍຊື່ໂນດ."
+MasterNodePortNotAvailable: "ການກວດສອບການເຊື່ອມຕໍ່ຂອງໂນດ {{ .name }} ຜ່ານພອດ {{ .port }} ລົ້ມເຫຼວ. ກະລຸນາກວດສອບການຕັ້ງຄ່າໄຟຣ໌ວໍ/ກຸ່ມຄວາມປອດໄພ ແລະ ສະຖານະໂນດຫຼັກ."
+ClusterMasterNotExist: "ໂນດຫຼັກຂອງຄລັສເຕີຖືກຕັດການເຊື່ອມຕໍ່. ກະລຸນາລຶບໂນດຍ່ອຍ."
+
+# virtual machine
+ErrVMNotFound: "ບໍ່ມີເຄື່ອງສະເໝືອນ"
+ErrVMAlreadyExists: "ມີເຄື່ອງສະເໝືອນຢູ່ແລ້ວ"
+ErrVMImageAlreadyExists: "ມີອິມເມຈເຄື່ອງສະເໝືອນຢູ່ແລ້ວ: {{ .detail }}"
+ErrVMStoragePathInUse: "ເສັ້ນທາງພູນຈັດເກັບຖືກໃຊ້ໂດຍ [{{ .name }}] ແລ້ວ"
+ErrVMHelperNotFound: "ບໍ່ພົບ 1panel-kvm"
+ErrVMBridgeManaged: "ຊື່ບຣິດຈ໌ຖືກຈັດການໂດຍ libvirt ຫຼື Docker ແລ້ວ"
+ErrVMNetworkInUse: "ເຄືອຂ່າຍກຳລັງຖືກໃຊ້ງານ ແລະ ບໍ່ສາມາດລຶບໄດ້"
+ErrVMStorageInUse: "ພູນຈັດເກັບກຳລັງຖືກໃຊ້ງານ ແລະ ບໍ່ສາມາດລຶບໄດ້"
+ErrVMStorageNameCannotChange: "ບໍ່ສາມາດປ່ຽນຊື່ພູນຈັດເກັບໄດ້"
+ErrVMStoragePathCannotChange: "ບໍ່ສາມາດປ່ຽນເສັ້ນທາງພູນຈັດເກັບໄດ້"
+ErrVMRunning: "ເຄື່ອງສະເໝືອນກຳລັງເຮັດວຽກ"
+ErrVMLibvirtConnect: "ເຊື່ອມຕໍ່ກັບ libvirt ບໍ່ສຳເລັດ"
+ErrVMPermission: "ບໍ່ມີສິດດຳເນີນການກັບເຄື່ອງສະເໝືອນ: {{ .detail }}"
+ErrVMNetworkNotFound: "ບໍ່ມີເຄືອຂ່າຍເຄື່ອງສະເໝືອນ"
+ErrVMInvalidPath: "ເສັ້ນທາງເຄື່ອງສະເໝືອນບໍ່ຖືກຕ້ອງ"
+ErrVMInvalidInput: "ພາລາມິເຕີເຄື່ອງສະເໝືອນບໍ່ຖືກຕ້ອງ"
+ErrVMCommandFailed: "ຄຳສັ່ງເຄື່ອງສະເໝືອນລົ້ມເຫຼວ: {{ .err }}"
+VMCreateTask: "ສ້າງເຄື່ອງສະເໝືອນ [{{ .name }}]"
+VMCreateFromTemplateTask: "ສ້າງເຄື່ອງສະເໝືອນ [{{ .name }}] ຈາກແມ່ແບບ"
+VMUpdateTask: "ອັບເດດເຄື່ອງສະເໝືອນ [{{ .name }}]"
+VMRenameTask: "ປ່ຽນຊື່ເຄື່ອງສະເໝືອນ [{{ .name }}] ເປັນ [{{ .newName }}]"
+VMDeleteTask: "ລຶບເຄື່ອງສະເໝືອນ [{{ .name }}]"
+VMTemplateCreateTask: "ບັນທຶກເຄື່ອງສະເໝືອນ [{{ .name }}] ເປັນແມ່ແບບ [{{ .template }}]"
+VMTemplateDeleteTask: "ລຶບແມ່ແບບເຄື່ອງສະເໝືອນ [{{ .name }}]"
+VMForceDeleteMetadataOnly: "ບໍ່ພົບ 1panel-kvm, ຈະບັງຄັບລຶບສະເພາະເມຕາດາຕາຂອງເຄື່ອງສະເໝືອນ [{{ .name }}]"
+VMForceDeleteMetadataAfterLibvirtFailed: "ລຶບເຄື່ອງສະເໝືອນ [{{ .name }}] ຈາກ libvirt ບໍ່ສຳເລັດ, ຈະບັງຄັບລຶບເມຕາດາຕາ: {{ .err }}"
+VMForceDeleteDiskFailed: "ບັງຄັບລຶບໄຟລ໌ດິສກ໌ເຄື່ອງສະເໝືອນ [{{ .path }}] ບໍ່ສຳເລັດ: {{ .err }}"
+VMForceDeleteDiskSuccess: "ບັງຄັບລຶບໄຟລ໌ດິສກ໌ເຄື່ອງສະເໝືອນ [{{ .path }}] ສຳເລັດແລ້ວ"
+VMSnapshotCreateTask: "ສ້າງສະແນັບຊັອດ [{{ .snapshot }}] ໃຫ້ເຄື່ອງສະເໝືອນ [{{ .vm }}]"
+VMSnapshotCreateStep: "ສ້າງສະແນັບຊັອດເຄື່ອງສະເໝືອນ [{{ .snapshot }}]"
+VMSnapshotRecoverTask: "ກູ້ຄືນສະແນັບຊັອດ [{{ .snapshot }}] ໃຫ້ເຄື່ອງສະເໝືອນ [{{ .vm }}]"
+VMSnapshotRecoverStep: "ກູ້ຄືນສະແນັບຊັອດເຄື່ອງສະເໝືອນ [{{ .snapshot }}]"
+VMSnapshotDeleteTask: "ລຶບສະແນັບຊັອດ [{{ .snapshot }}] ຂອງເຄື່ອງສະເໝືອນ [{{ .vm }}]"
+VMSnapshotDeleteStep: "ລຶບສະແນັບຊັອດເຄື່ອງສະເໝືອນ [{{ .snapshot }}]"
+
+# app
+CustomAppStoreFileValid: "ແພັກເກດຮ້ານຄ້າແອັບຕ້ອງເປັນຮູບແບບ .tar.gz"
+AppBackup: 'ສຳຮອງແອັບ'
+AppBackupPush: 'ໂອນໄຟລ໌ສຳຮອງແອັບ {{.file}} ໄປຫາໂນດ {{ .name }}'
+ErrSourceTargetSame: 'ໂນດຕົ້ນທາງ ແລະ ໂນດປາຍທາງຈະເປັນໂນດດຽວກັນບໍ່ໄດ້!'
+AppInstall: 'ຕິດຕັ້ງແອັບ {{ .name }} ໃນໂນດ {{ .targetNode }}'
+AppInstallCheck: 'ກວດສອບສະພາບແວດລ້ອມສຳລັບຕິດຕັ້ງແອັບ'
+
+# backup
+ErrBackupInUsed: "ບັນຊີສຳຮອງນີ້ຖືກໃຊ້ໃນວຽກຕາມກຳນົດເວລາ ແລະ ບໍ່ສາມາດລຶບໄດ້"
+ErrBackupCheck: "ການທົດສອບການເຊື່ອມຕໍ່ບັນຊີສຳຮອງລົ້ມເຫຼວ {{ .err }}"
+ErrBackupLocal: "ບັນຊີສຳຮອງເຊີບເວີພາຍໃນເຄື່ອງບໍ່ຮອງຮັບການດຳເນີນການນີ້!"
+ErrBackupPublic: "ກວດພົບວ່າບັນຊີສຳຮອງນີ້ບໍ່ແມ່ນບັນຊີສາທາລະນະ, ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+ErrOSSConn: "ບໍ່ສາມາດຮັບເວີຊັນລ່າສຸດໄດ້. ກະລຸນາກວດສອບການເຊື່ອມຕໍ່ອິນເຕີເນັດຂອງເຊີບເວີ."
+MvBackup: "ຍ້າຍຂໍ້ມູນໄປຫາໄດເຣັກທໍຣີສຳຮອງ"
+
+# alert
+ErrAlertSync: "ການຊິງຂໍ້ມູນແຈ້ງເຕືອນຜິດພາດ, ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+
+# AI gateway
+ErrAIProxyUserGroupIsDefault: "ບໍ່ສາມາດລຶບກຸ່ມຜູ້ໃຊ້ເລີ່ມຕົ້ນໄດ້."
+ErrAIProxyUserGroupInUse: "ກຸ່ມຜູ້ໃຊ້ກຳລັງຖືກໃຊ້ງານ ແລະ ບໍ່ສາມາດລຶບໄດ້."
+ErrAIProxyUserGroupExists: "ມີຊື່ກຸ່ມຜູ້ໃຊ້ນີ້ຢູ່ແລ້ວ."
+ErrAIProxyBackendAccountExists: "ບັນຊີໂມເດວນີ້ຖືກນຳເຂົ້າໃນພູນບັນຊີ AI Gateway ແລ້ວ."
+ErrAIProxyModelGroupInUse: "ກຸ່ມໂມເດວກຳລັງຖືກໃຊ້ງານ ແລະ ບໍ່ສາມາດລຶບໄດ້."
+ErrAIProxyModelGroupExists: "ມີຊື່ກຸ່ມໂມເດວນີ້ຢູ່ແລ້ວ."
+ErrAIProxySensitiveGroupInUse: "ກຸ່ມຄຳທີ່ລະອຽດອ່ອນກຳລັງຖືກໃຊ້ງານ ແລະ ບໍ່ສາມາດລຶບໄດ້."
+ErrAIProxySensitiveGroupExists: "ມີຊື່ກຸ່ມຄຳທີ່ລະອຽດອ່ອນນີ້ຢູ່ແລ້ວ."
+AIBenchmarkRun: "ດຳເນີນການທົດສອບປະສິດທິພາບ AI"
+
+# task
+TaskStart: "ວຽກ {{ .name }} ເລີ່ມແລ້ວ [START]"
+TaskEnd: "ວຽກ {{ .name }} ສິ້ນສຸດແລ້ວ [COMPLETED]"
+TaskFailed: "ວຽກ {{ .name }} ລົ້ມເຫຼວ"
+TaskTimeout: "ວຽກ {{ .name }} ໝົດເວລາ"
+TaskSuccess: "ວຽກ {{ .name }} ສຳເລັດ"
+TaskRetry: "ລອງວຽກ {{ .name }} ໃໝ່"
+SubTaskSuccess: "{{ .name }} ສຳເລັດ"
+SubTaskFailed: "{{ .name }} ລົ້ມເຫຼວ: {{ .err }}"
+TaskInstall: "ຕິດຕັ້ງ"
+TaskUpgrade: "ອັບເກຣດ"
+TaskSync: 'ຊິງຂໍ້ມູນ'
+TaskSyncForNode: "ຊິງຂໍ້ມູນໂນດ"
+TaskBackup: "ສຳຮອງ"
+TaskPush: "ສົ່ງ"
+TaskRsync: "ຊິງຂໍ້ມູນ"
+SuccessStatus: "{{ .name }} ສຳເລັດ"
+FailedStatus: "{{ .name }} ລົ້ມເຫຼວ {{ .err }}"
+Start: "ເລີ່ມ"
+SubTask: "ວຽກຍ່ອຍ"
+Skip: "ບໍ່ສົນໃຈຂໍ້ຜິດພາດ ແລະ ສືບຕໍ່"
+Success: "ສຳເລັດ"
+
+# agent batch task
+BatchInstallAgent: "ຕິດຕັ້ງເອເຈນແບບກຸ່ມ"
+DispatchAgentInstallTasks: "ຈັດສົ່ງວຽກຕິດຕັ້ງເອເຈນ"
+BatchUpgradeAgent: "ອັບເກຣດເອເຈນແບບກຸ່ມ"
+DispatchAgentUpgradeTasks: "ຈັດສົ່ງວຽກອັບເກຣດເອເຈນ"
+BatchAgentInstallDispatchFailed: "ໂນດ {{ .node }} ຈັດສົ່ງວຽກຕິດຕັ້ງ {{ .agentType }} ບໍ່ສຳເລັດ ຂໍ້ຄວາມ: {{ .err }}"
+BatchAgentInstallSubmitted: "ໂນດ {{ .node }} ຈັດສົ່ງວຽກຕິດຕັ້ງ {{ .agentType }} ສຳເລັດແລ້ວ!"
+BatchAgentUpgradeDispatchFailed: "ໂນດ {{ .node }} ຈັດສົ່ງວຽກອັບເກຣດ {{ .agentType }} ບໍ່ສຳເລັດ ຂໍ້ຄວາມ: {{ .err }}"
+BatchAgentUpgradeAlreadyLatest: "ໂນດ {{ .node }} ມີເອເຈນ {{ .agent }} ຢູ່ທີ່ເວີຊັນເປົ້າໝາຍແລ້ວ, ຂ້າມ"
+BatchAgentUpgradeSubmitted: "ໂນດ {{ .node }} ຈັດສົ່ງວຽກອັບເກຣດ {{ .agent }} ສຳເລັດແລ້ວ!"
+BatchAgentUpgradeFailed: "ໂນດ {{ .node }} ຈັດສົ່ງວຽກອັບເກຣດ {{ .agent }} ບໍ່ສຳເລັດ ຂໍ້ຄວາມ: {{ .err }}"
+BatchInstallAgentSkill: "ແຈກຢາຍ Skill ແບບກຸ່ມ"
+DispatchAgentSkillInstallTasks: "ຈັດສົ່ງວຽກຕິດຕັ້ງ Skill"
+BatchAgentSkillDispatchFailed: "ໂນດ {{ .node }} ຈັດສົ່ງ {{ .skill }} ໄປຫາ {{ .target }} ບໍ່ສຳເລັດ ຂໍ້ຄວາມ: {{ .err }}"
+BatchAgentNoAgentsFound: "ໂນດ {{ .node }} ບໍ່ພົບເອເຈນ {{ .agentType }}, ຂ້າມ"
+BatchAgentSkillSkipped: "ໂນດ {{ .node }} {{ .agent }} ຖືກຂ້າມ ຂໍ້ຄວາມ: {{ .msg }}"
+BatchAgentSkillInstallSubmitted: "ໂນດ {{ .node }} ຈັດສົ່ງວຽກຕິດຕັ້ງ {{ .skill }} ໄປຫາ {{ .agent }} ສຳເລັດແລ້ວ!"
+BatchAgentSkillInstallFailed: "ໂນດ {{ .node }} ຈັດສົ່ງວຽກຕິດຕັ້ງ {{ .skill }} ໄປຫາ {{ .agent }} ບໍ່ສຳເລັດ ຂໍ້ຄວາມ: {{ .err }}"
+BatchAgentOperateDispatchFailed: "ໂນດ {{ .node }} ຈັດສົ່ງວຽກຂອງ {{ .agentType }} ສຳລັບການດຳເນີນການ {{ .operate }} ບໍ່ສຳເລັດ ຂໍ້ຄວາມ: {{ .err }}"
+BatchAgentOperateSkipped: "ໂນດ {{ .node }} {{ .agent }} ຖືກຂ້າມ ຂໍ້ຄວາມ: {{ .msg }}"
+BatchAgentOperateSubmitted: "ໂນດ {{ .node }} ຈັດສົ່ງວຽກຂອງ {{ .agent }} ສຳລັບການດຳເນີນການ {{ .operate }} ສຳເລັດແລ້ວ!"
+BatchAgentOperateFailed: "ໂນດ {{ .node }} ຈັດສົ່ງວຽກຂອງ {{ .agent }} ສຳລັບການດຳເນີນການ {{ .operate }} ບໍ່ສຳເລັດ ຂໍ້ຄວາມ: {{ .err }}"
+BatchStartAgent: "ເລີ່ມເອເຈນແບບກຸ່ມ"
+DispatchAgentStartTasks: "ຈັດສົ່ງວຽກເລີ່ມເອເຈນ"
+BatchStopAgent: "ຢຸດເອເຈນແບບກຸ່ມ"
+DispatchAgentStopTasks: "ຈັດສົ່ງວຽກຢຸດເອເຈນ"
+BatchRestartAgent: "ເລີ່ມເອເຈນຄືນໃໝ່ແບບກຸ່ມ"
+DispatchAgentRestartTasks: "ຈັດສົ່ງວຽກເລີ່ມເອເຈນຄືນໃໝ່"
+BatchDeleteAgent: "ລຶບເອເຈນແບບກຸ່ມ"
+DispatchAgentDeleteTasks: "ຈັດສົ່ງວຽກລຶບເອເຈນ"
+AgentOperateStart: "ເລີ່ມ"
+AgentOperateStop: "ຢຸດ"
+AgentOperateRestart: "ເລີ່ມຄືນໃໝ່"
+AgentOperateDelete: "ລຶບ"
+
+# app and skill task
+PushAppInstallTaskToNode: "ສົ່ງວຽກຕິດຕັ້ງແອັບໄປຫາໂນດ [{{ .name }}]"
+AppInstallTask: "ວຽກຕິດຕັ້ງແອັບ"
+PushAppFailed: "ສົ່ງວຽກຕິດຕັ້ງແອັບບໍ່ສຳເລັດ"
+SkillHubInstallTask: "ຕິດຕັ້ງ Skill [{{ .name }}]"
+SkillHubInstallToTarget: "ຕິດຕັ້ງ Skill ໄປຍັງເປົ້າໝາຍ [{{ .name }}]"
+
+# script library
+ScriptLibrary: "ຄັງສະຄຣິບ"
+RemoteScriptLibrary: "ຄັງສະຄຣິບໄລຍະໄກ"
+ScriptSyncSkip: "ຄັງສະຄຣິບເປັນເວີຊັນລ່າສຸດແລ້ວ"
+DownloadData: "ກຳລັງດາວໂຫຼດໄຟລ໌ຄັງສະຄຣິບ data.yaml"
+DownloadPackage: "ກຳລັງດາວໂຫຼດແພັກເກດຄັງສະຄຣິບ"
+AnalyticCompletion: "ວິເຄາະສຳເລັດແລ້ວ, ກຳລັງຊິງໄປຫາຖານຂໍ້ມູນ..."
+
+# node sync
+SyncNode: "ຊິງຂໍ້ມູນໄປຫາໂນດ {{ .name }}"
+LocalName: "ຊື່ 'local' ໃຊ້ສະເພາະສຳລັບການລະບຸເຄື່ອງພາຍໃນຂອງລະບົບ"
+SyncPackageData: "ຈັດແພັກເກດຂໍ້ມູນສຳລັບຊິງ"
+SyncPackageEncrypt: "ເຂົ້າລະຫັດແພັກເກດຂໍ້ມູນ"
+SyncRequest: "ຮ້ອງຂໍ API ຊິງໂນດ"
+SyncFailedRetry: "ການຊິງຂໍ້ມູນໂນດໝົດເວລາ (ຄັ້ງທີ {{ .index }}), ກຳລັງລອງໃໝ່..."
+SyncFailed: "ການຊິງລົ້ມເຫຼວ, ກະລຸນາຊິງດ້ວຍຕົນເອງໃນລາຍຊື່ໂນດ!"
+SyncSystemProxy: "ການຕັ້ງຄ່າພຣັອກຊີລະບົບ"
+SyncScripts: "ຄັງສະຄຣິບ"
+SyncBackupAccounts: "ບັນຊີສຳຮອງ"
+SyncAlertSetting: "ການຕັ້ງຄ່າແຈ້ງເຕືອນ"
+SyncCustomApp: "ແອັບກຳນົດເອງ"
+SyncLanguage: "ພາສາລະບົບ"
+SyncEdition: "ພາກພື້ນ"
+
+# node upgrade
+NodeUpgrade: "ອັບເກຣດໂນດ {{ .name }}"
+UpgradeCheck: "ກວດສອບອັບເດດຂອງໂນດ"
+UpgradeCheckLocal: "ໂນດພາຍໃນເຄື່ອງບໍ່ຮອງຮັບການອັບເກຣດແບບກຸ່ມ, ຂ້າມ..."
+UpgradeCheckLatest: "ໂນດເປັນເວີຊັນລ່າສຸດແລ້ວ, ຂ້າມ..."
+NewSSHClient: "ກຳລັງເລີ່ມຕົ້ນການເຊື່ອມຕໍ່ SSH"
+BackupBeforeUpgrade: "ສຳຮອງຂໍ້ມູນກ່ອນອັບເກຣດ"
+UploadUpgradeFile: "ແຈກຢາຍໄຟລ໌ອັບເກຣດ"
+RestartAfterUpgrade: "ເລີ່ມບໍລິການຫຼັງການອັບເກຣດ"
+LoadAutoUpgradeNodesFailed: "ໂຫຼດໂນດທີ່ອັບເກຣດອັດຕະໂນມັດບໍ່ສຳເລັດ, ຂໍ້ຜິດພາດ: {{ .err }}"
+AutoUpgradeNodes: "ໂນດທີ່ອັບເກຣດອັດຕະໂນມັດ: {{ .nodes }}"
+UpdateAutoUpgradeNodesStatusFailed: "ອັບເດດສະຖານະໂນດທີ່ອັບເກຣດອັດຕະໂນມັດບໍ່ສຳເລັດ, ຂໍ້ຜິດພາດ: {{ .err }}"
+
+# node add
+MasterData: "ຂໍ້ມູນໂນດຫຼັກ"
+LoadSftpClient: "ໂຫຼດໄຄລເອນ SFTP"
+PackageMasterData: "ສ້າງແພັກເກດສຳຮອງໂນດຫຼັກ"
+UploadBackup: "ອັບໂຫຼດຂໍ້ມູນສຳຮອງ"
+TaskAddNode: "ເພີ່ມໂນດ"
+LoadNodeArch: "ຮັບຂໍ້ມູນສະຖາປັດຕະຍະກຳຂອງໂນດ"
+LoadNodeArchDetail: "ກວດພົບສະຖາປັດຕະຍະກຳໂນດຫຼັກ: {{ .local }}, ສະຖາປັດຕະຍະກຳໂນດຍ່ອຍ: {{ .node }}"
+LoadNodeUpgradeDetail: "ກຳລັງໃຊ້ໄດເຣັກທໍຣີການຕິດຕັ້ງເກົ່າຂອງເວີຊັນ v1: {{ .baseDir }}, ພອດຮັບຟັງຂອງບໍລິການ: {{ .port }}"
+SyncAgentBaseInfo: "ຊິງຂໍ້ມູນພື້ນຖານຂອງໂນດ"
+GenerateSSLInfo: "ສ້າງຂໍ້ມູນ SSL ຂອງໂນດ"
+ConnInfoNotMatch: "ຂໍ້ມູນການເຊື່ອມຕໍ່ບໍ່ກົງກັນ"
+MakeAgentPackage: "ສ້າງແພັກເກດຕິດຕັ້ງໂນດ"
+SendAgent: "ແຈກຢາຍແພັກເກດຕິດຕັ້ງໂນດ"
+StartService: "ເລີ່ມບໍລິການ"
+NoBackupNode: "ໂນດສຳຮອງຫວ່າງເປົ່າ. ກະລຸນາເລືອກແລ້ວບັນທຶກກ່ອນ"
+
+# node file and image sync
+LocalNodeIpFailed: "ຮັບ IP ຂອງໂນດຫຼັກບໍ່ສຳເລັດ. ກະລຸນາແກ້ໄຂໂນດຫຼັກ ແລະ ເພີ່ມທີ່ຢູ່ IP ພ້ອມຂໍ້ມູນການຢືນຢັນ SSH."
+HandlePrivateKey: "ປະມວນຜົນກະແຈສ່ວນຕົວຂອງໂນດ"
+HandlePublicKey: "ປະມວນຜົນກະແຈສາທາລະນະຂອງໂນດ"
+ExchangeFile: "ເລີ່ມຊິງ {{ .sourcePath }} ຈາກໂນດ {{ .source }} ໄປຫາໂນດ {{ .dest }}:{{ .destPath }}"
+NodeFile: "ໄຟລ໌ໂນດ"
+ImageSyncTaskName: "ຊິງອິມເມຈ {{ .count }} ລາຍການ"
+SSLSyncTaskName: "ຊິງໃບຮັບຮອງ {{ .count }} ລາຍການ"
+AppSyncTaskName: "ຊິງແອັບ {{ .name }}"
+SSLSyncToNode: "ສົ່ງໃບຮັບຮອງ [{{ .cert }}] ໄປຫາໂນດ [{{ .node }}]"
+ImageSyncSave: "ບັນທຶກອິມເມຈ {{ .image }}"
+ImageSyncSaveTags: "ບັນທຶກແທັກອິມເມຈ {{ .tags }}"
+ImageSyncToNode: "ຊິງອິມເມຈ {{ .image }} ໄປຫາໂນດ {{ .node }}"
+ImageSyncLoad: "ໂຫຼດອິມເມຈ {{ .image }} ໃນໂນດ {{ .node }}"
+ImageSyncClean: "ລ້າງໄຟລ໌ຊົ່ວຄາວຂອງອິມເມຈ {{ .image }}"
+ImageSyncNoTag: "ອິມເມຈ {{ .image }} ບໍ່ມີແທັກ ແລະ ຈະຖືກບັນທຶກດ້ວຍ ID ອິມເມຈ"
+ImageSyncFrontendTagsIgnored: "ບໍ່ພົບແທັກຂອງອິມເມຈ {{ .image }} ໃນໂນດຕົ້ນທາງ. ແທັກຈາກສ່ວນໜ້າຖືກຂ້າມ."
+ImageSyncHandlePrivateKey: "ປະມວນຜົນກະແຈສ່ວນຕົວຂອງໂນດສຳລັບຊິງອິມເມຈ"
+ImageSyncHandlePublicKey: "ປະມວນຜົນກະແຈສາທາລະນະຂອງໂນດສຳລັບຊິງອິມເມຈ"
+ImageSyncTransfer: "ເລີ່ມໂອນໄຟລ໌ຊົ່ວຄາວຂອງອິມເມຈ: {{ .source }}:{{ .sourcePath }} -> {{ .dest }}:{{ .destPath }}"
+
+# command line
+SudoHelper: "ໃຊ້ {{ .cmd }} ຫຼື ປ່ຽນໄປໃຊ້ຜູ້ໃຊ້ root"
+UsernameNeed: "ຮຸ່ນວິສາຫະກິດຕ້ອງລະບຸ --username"
+DBConnErr: "ຂໍ້ຜິດພາດ: ເລີ່ມຕົ້ນການເຊື່ອມຕໍ່ຖານຂໍ້ມູນບໍ່ສຳເລັດ, {{ .err }}"
+SystemVersion: "ເວີຊັນ: "
+SystemMode: "ໂໝດ: "
+
+# command line - app
+AppVersion: "ເວີຊັນແອັບ"
+AppCommands: "ຄຳສັ່ງທີ່ກ່ຽວກັບແອັບ"
+AppInit: "ເລີ່ມຕົ້ນແອັບ"
+AppKeyVal: "ຄີແອັບ (ຮອງຮັບສະເພາະພາສາອັງກິດ)"
+AppCreateFileErr: "ສ້າງໄຟລ໌ {{ .name }} ບໍ່ສຳເລັດ {{ .err }}"
+AppCreateDirErr: "ສ້າງໂຟນເດີ {{ .name }} ບໍ່ສຳເລັດ {{ .err }}"
+AppMissKey: "ບໍ່ມີຄີແອັບ, ໃຊ້ -k ເພື່ອລະບຸ"
+AppMissVersion: "ບໍ່ມີເວີຊັນແອັບ, ໃຊ້ -v ເພື່ອລະບຸ"
+AppVersionExist: "ມີເວີຊັນນີ້ຢູ່ແລ້ວ!"
+AppCreateSuccessful: "ສ້າງສຳເລັດແລ້ວ!"
+AppWriteErr: "ຂຽນໄຟລ໌ {{ .name }} ບໍ່ສຳເລັດ {{ .err }}"
+
+# command line - listen IP
+ListenIPCommands: "ປ່ຽນ IP ທີ່ຮັບຟັງ"
+ListenIPv4: "ຮັບຟັງຜ່ານ IPv4"
+ListenIPv6: "ຮັບຟັງຜ່ານ IPv6"
+ListenChangeSuccessful: "ປ່ຽນສຳເລັດແລ້ວ! ຕອນນີ້ກຳລັງຮັບຟັງຢູ່ {{ .value }}"
+
+# command line - reset
+ResetCommands: "ຕັ້ງຄ່າຂໍ້ມູນລະບົບຄືນໃໝ່"
+ResetMFA: "ຍົກເລີກການຢືນຢັນສອງຂັ້ນຕອນຂອງ 1Panel"
+ResetHttps: "ຍົກເລີກການເຂົ້າລະບົບ 1Panel ຜ່ານ HTTPS"
+ResetEntrance: "ຍົກເລີກທາງເຂົ້າຄວາມປອດໄພຂອງ 1Panel"
+ResetIPs: "ຍົກເລີກຂໍ້ຈຳກັດ IP ທີ່ອະນຸຍາດຂອງ 1Panel"
+ResetDomain: "ຍົກເລີກການຜູກໂດເມນຂອງ 1Panel"
+ResetPasskey: "ລ້າງ Passkey ຂອງ 1Panel"
+
+# command line - user
+UserList: "ຮັບລາຍຊື່ຜູ້ໃຊ້ 1Panel"
+UserTableName: "ຊື່"
+UserTableMFAStatus: "ສະຖານະ MFA"
+UserTableSuperAdmin: "ຜູ້ບໍລິຫານສູງສຸດ"
+UserTableCreatedAt: "ສ້າງເມື່ອ"
+UserEmptyList: "ບໍ່ພົບຜູ້ໃຊ້"
+UserInfo: "ຮັບຂໍ້ມູນແຜງ"
+UserInfoAddr: "ທີ່ຢູ່ແຜງ: "
+UserInfoPassHelp: "ຄຳແນະນຳ: ເພື່ອປ່ຽນລະຫັດຜ່ານ ທ່ານສາມາດໃຊ້ຄຳສັ່ງ: "
+
+# command line - restore
+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: "ການຍ້ອນກັບສຳເລັດແລ້ວ. ກັບໄປຫາເວີຊັນ {{ .version }}. ກຳລັງເລີ່ມບໍລິການຄືນໃໝ່..."
+
+# command line - update
+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: "ຂໍ້ຜິດພາດ: ລະຫັດຜ່ານສອງຄັ້ງບໍ່ກົງກັນ, ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+UpdatePasswordResult: "ລະຫັດຜ່ານຜູ້ໃຊ້: {{ .name }}"
+UpdatePortFormat: "ຂໍ້ຜິດພາດ: ໝາຍເລກພອດທີ່ປ້ອນຕ້ອງຢູ່ລະຫວ່າງ 1 ຫາ 65535!"
+UpdatePortUsed: "ຂໍ້ຜິດພາດ: ໝາຍເລກພອດກຳລັງຖືກໃຊ້ງານ, ກະລຸນາກວດສອບແລ້ວລອງໃໝ່!"
+UpdatePortErr: "ຂໍ້ຜິດພາດ: ອັບເດດພອດແຜງບໍ່ສຳເລັດ, {{ .err }}"
+UpdatePortResult: "ພອດແຜງ: {{ .name }}"
+UpdatePortFirewallAdd: "ເພີ່ມກົດພອດໄຟຣ໌ວໍບໍ່ສຳເລັດ, {{ .err }}, ກະລຸນາເພີ່ມພອດ {{ .name }} ເຂົ້າໃນກົດໄຟຣ໌ວໍດ້ວຍຕົນເອງ."
+UpdatePortFirewallDel: "ຂໍ້ຜິດພາດ: ລຶບພອດໄຟຣ໌ວໍບໍ່ສຳເລັດ, {{ .err }}"
+UpdatePortFirewallReload: "ໂຫຼດໄຟຣ໌ວໍຄືນໃໝ່ບໍ່ສຳເລັດ, {{ .err }}, ກະລຸນາໂຫຼດໄຟຣ໌ວໍຄືນໃໝ່ດ້ວຍຕົນເອງ."
+
+# mobile app
+ErrVerifyToken: 'ການກວດສອບໂທເຄັນລົ້ມເຫຼວ. ກະລຸນາຕັ້ງຄ່າຄືນໃໝ່ແລ້ວສະແກນອີກຄັ້ງ.'
+ErrInvalidToken: 'ໂທເຄັນບໍ່ຖືກຕ້ອງ. ກະລຸນາຕັ້ງຄ່າຄືນໃໝ່ແລ້ວສະແກນອີກຄັ້ງ.'
+ErrExpiredToken: 'ໂທເຄັນໝົດອາຍຸແລ້ວ. ກະລຸນາຕັ້ງຄ່າຄືນໃໝ່ແລ້ວສະແກນອີກຄັ້ງ.'
+
+# command export
+Name: "ຊື່"
+Command: "ຄຳສັ່ງ"
diff --git a/docs/README.ar.md b/docs/README.ar.md
index d22b7578e..aa2c37f88 100644
--- a/docs/README.ar.md
+++ b/docs/README.ar.md
@@ -29,6 +29,7 @@
+
------------------------------
diff --git a/docs/README.de.md b/docs/README.de.md
index fc6519e23..fb2042d42 100644
--- a/docs/README.de.md
+++ b/docs/README.de.md
@@ -29,6 +29,7 @@
+
------------------------------
diff --git a/docs/README.es-es.md b/docs/README.es-es.md
index 97f2a68c5..f3caca788 100644
--- a/docs/README.es-es.md
+++ b/docs/README.es-es.md
@@ -29,6 +29,7 @@
+
------------------------------
diff --git a/docs/README.fa.md b/docs/README.fa.md
index 1e51d4217..a6889f208 100644
--- a/docs/README.fa.md
+++ b/docs/README.fa.md
@@ -34,6 +34,7 @@
+
---
diff --git a/docs/README.fr.md b/docs/README.fr.md
index b24ea9850..ce306bc8e 100644
--- a/docs/README.fr.md
+++ b/docs/README.fr.md
@@ -29,6 +29,7 @@
+
------------------------------
diff --git a/docs/README.id.md b/docs/README.id.md
index f0099e7c3..e3daadc8d 100644
--- a/docs/README.id.md
+++ b/docs/README.id.md
@@ -29,6 +29,7 @@
+
------------------------------
diff --git a/docs/README.ja.md b/docs/README.ja.md
index ce173fe8c..022ae1221 100644
--- a/docs/README.ja.md
+++ b/docs/README.ja.md
@@ -29,6 +29,7 @@
+
------------------------------
diff --git a/docs/README.ko.md b/docs/README.ko.md
index 522fe11b0..ba111d047 100644
--- a/docs/README.ko.md
+++ b/docs/README.ko.md
@@ -29,6 +29,7 @@
+
------------------------------
diff --git a/docs/README.lo.md b/docs/README.lo.md
new file mode 100644
index 000000000..65e6fff61
--- /dev/null
+++ b/docs/README.lo.md
@@ -0,0 +1,117 @@
+
+
+ແຜງຄວບຄຸມ VPS ແບບໂອເພນຊອດ ພ້ອມການຮອງຮັບເອເຈນ AI ໃນຕົວ
+
+
+ ໄດ້ຮັບຄວາມໄວ້ວາງໃຈຈາກຜູ້ໃຊ້ໂຮສເອງຫຼາຍກວ່າ 2,000,000 ຄົນທົ່ວໂລກ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+---
+
+## 1Panel ແມ່ນຫຍັງ?
+
+1Panel ແມ່ນແຜງຄວບຄຸມ VPS ທີ່ທັນສະໄໝ ແລະ ເປັນໂອເພນຊອດ — ພ້ອມທັງເປັນແຜງດຽວທີ່ມີ **ການຮອງຮັບເອເຈນ AI ໃນຕົວ**. ທ່ານສາມາດໃຊ້ງານໂມເດວ Ollama, ນຳໃຊ້ເອເຈນສ່ວນຕົວ OpenClaw ແລະ ຈັດການລະບົບເຊີບເວີທັງໝົດຜ່ານໜ້າເວັບທີ່ສະອາດຕາ. ບໍ່ຕ້ອງຈື່ຄຳສັ່ງ CLI.
+
+👉 ເບິ່ງ [ວິດີໂອແນະນຳ 2 ນາທີ](https://www.youtube.com/watch?v=Jl_wqp-XA08)
+
+## ເປັນຫຍັງຕ້ອງເລືອກ 1Panel?
+
+| | 1Panel | cPanel / Plesk | aaPanel | Webmin |
+|--|--------|----------------|---------|--------|
+| ຟຣີ ແລະ ເປັນໂອເພນຊອດ | ✅ | ❌ | ບາງສ່ວນ | ✅ |
+| ຮັນໄທມ໌ເອເຈນ AI ໃນຕົວ | ✅ | ❌ | ❌ | ❌ |
+| ຕະຫຼາດແອັບແບບຄລິກດຽວ | ✅ 165+ ແອັບ | ❌ | ✅ | ❌ |
+| UI ທັນສະໄໝ (ຫຼັງປີ 2020) | ✅ | ❌ | ບາງສ່ວນ | ❌ |
+| ການຈັດການ Docker / ຄອນເທນເນີ | ✅ | ❌ | ❌ | ❌ |
+| ພັດທະນາຢ່າງຕໍ່ເນື່ອງ | ✅ | ✅ | ✅ | ຊ້າ |
+
+## ຄຸນສົມບັດຫຼັກ
+
+- **ຮັນໄທມ໌ເອເຈນ AI**: ນຳໃຊ້ໂມເດວ LLM ຂອງ Ollama, ເປີດໃຊ້ເອເຈນສ່ວນຕົວ OpenClaw ແລະ ຕິດຕາມການໃຊ້ GPU — ທັງໝົດເຮັດໄດ້ຈາກແດຊບອດ. ບໍ່ຕ້ອງຈັດການສະແຕັກ AI ແຍກຕ່າງຫາກ.
+- **ນຳໃຊ້ເວັບໄຊດ້ວຍຄລິກດຽວ**: ເປີດໃຊ້ເວັບໄຊທີ່ພ້ອມສຳລັບການຜະລິດ ພ້ອມການຜູກໂດເມນອັດຕະໂນມັດ, ການອອກໃບຮັບຮອງ SSL ແລະ ການຕັ້ງຄ່າ Nginx — ບໍ່ຕ້ອງຕັ້ງຄ່າດ້ວຍຕົນເອງ.
+- **ຕະຫຼາດແອັບ**: ມີແອັບໂອເພນຊອດທີ່ໜ້າເຊື່ອຖືຫຼາຍກວ່າ 165 ແອັບ (Nextcloud, Bitwarden, Umami, NocoBase ແລະ ອື່ນໆ) ທີ່ສາມາດຕິດຕັ້ງ ແລະ ອັບເດດໄດ້ດ້ວຍຄລິກດຽວ.
+- **ການຈັດການ Docker ແລະ ຄອນເທນເນີ**: ສ້າງ, ເລີ່ມ, ຢຸດ ແລະ ກວດສອບຄອນເທນເນີ, ອິມເມຈ, ເຄືອຂ່າຍ ແລະ ໂວລຸມ ຜ່ານ UI ແບບກຣາຟິກ — ບໍ່ຕ້ອງສະຫຼັບໄປມາໃນ CLI.
+- **ຄວາມປອດໄພພ້ອມໃຊ້ງານ**: ກົດໄຟຣ໌ວໍ, fail2ban, ການແຍກຄອນເທນເນີ, WAF ແລະ ບັນທຶກການກວດສອບ — ທຸກຢ່າງຖືກຕັ້ງຄ່າ ແລະ ເຮັດວຽກຕັ້ງແຕ່ມື້ທຳອິດ.
+- **ສຳຮອງ ແລະ ກູ້ຄືນ**: ກຳນົດເວລາສຳຮອງອັດຕະໂນມັດໄປຫາ AWS S3, Cloudflare R2 ຫຼື ບ່ອນຈັດເກັບພາຍໃນເຄື່ອງ. ກູ້ຄືນສະແນັບຊັອດໃດກໍໄດ້ດ້ວຍຄລິກດຽວ.
+
+## ເລີ່ມຕົ້ນຢ່າງໄວ
+
+> **ຄວາມຕ້ອງການ:** Linux VPS (Debian / Ubuntu / CentOS / Rocky), RAM 1 GB ແລະ ການເຊື່ອມຕໍ່ອິນເຕີເນັດ.
+> ໃຊ້ເວລາປະມານ 60 ວິນາທີ.
+
+```bash
+bash -c "$(curl -sSL https://resource.1panel.pro/v2/quick_start.sh)"
+```
+
+ຫຼັງຈາກຕິດຕັ້ງແລ້ວ, ເປີດ `http://:/` ໃນເບຣົາເຊີ.
+ໃຊ້ຄຳສັ່ງ `1pctl user-info` ຜ່ານ SSH ຫາກຕ້ອງການເບິ່ງຂໍ້ມູນສຳລັບເຂົ້າລະບົບ.
+
+## ພາບໜ້າຈໍ
+
+
+
+## ຮຸ່ນ Pro
+
+1Panel OSS ໃຊ້ງານໄດ້ຟຣີຕະຫຼອດໄປ. ຮຸ່ນ Pro ເພີ່ມຄຸນສົມບັດທີ່ອອກແບບສຳລັບທີມ ແລະ ວຽກລະດັບການຜະລິດ:
+
+| ຄຸນສົມບັດ | OSS | Pro |
+|---------|:---:|:---:|
+| ຕິດຕັ້ງແອັບດ້ວຍຄລິກດຽວ | ✅ | ✅ |
+| ເອເຈນ AI (OpenClaw) | 1 ເອເຈນ | ບໍ່ຈຳກັດ |
+| WAF ແລະ ຄວາມປອດໄພຂັ້ນສູງ | ພື້ນຖານ | ✅ |
+| ປ້ອງກັນການດັດແປງເວັບໄຊ | ❌ | ✅ |
+| ຕິດຕາມເວລາພ້ອມໃຊ້ງານຂອງເວັບໄຊ | ❌ | ✅ |
+| ການຈັດການຫຼາຍໂນດ | ❌ | ✅ |
+| ໂລໂກ້ ແລະ ຮູບແບບການສະແດງຜົນກຳນົດເອງ | ❌ | ✅ |
+| ການຊ່ວຍເຫຼືອລຳດັບຕົ້ນ | ❌ | ✅ |
+
+**ເລີ່ມຕົ້ນທີ່ $80/ປີ.** [ປຽບທຽບແຜນ ແລະ ເລີ່ມທົດລອງຟຣີ 30 ມື້ →](https://1panel.pro/pricing)
+
+## ປະຫວັດດາວ
+
+[](https://star-history.com/#1Panel-dev/1Panel&Date)
+
+## ຊຸມຊົນ ແລະ ການຊ່ວຍເຫຼືອ
+
+- **Discord** — [ເຂົ້າຮ່ວມຊຸມຊົນ](https://discord.gg/bUpUqWqdRr) ເພື່ອຂໍຄວາມຊ່ວຍເຫຼືອ, ສະເໜີຄຸນສົມບັດ ແລະ ແບ່ງປັນຜົນງານ
+- **ເອກະສານ** — [1panel.pro/docs](https://1panel.pro/docs)
+- **ບັນຫາ** — [GitHub Issues](https://github.com/1Panel-dev/1Panel/issues) ສຳລັບລາຍງານບັກ
+
+## ຄວາມປອດໄພ
+
+ພົບຊ່ອງໂຫວ່ບໍ? ກະລຸນາອ່ານ [SECURITY.md](/SECURITY.md) ກ່ອນເຜີຍແຜ່ຂໍ້ມູນ.
+
+## ໃບອະນຸຍາດ
+
+ໂຄງການນີ້ໃຊ້ [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.html).
diff --git a/docs/README.ms.md b/docs/README.ms.md
index fe055ee2b..df52ef6ae 100644
--- a/docs/README.ms.md
+++ b/docs/README.ms.md
@@ -29,6 +29,7 @@
+
------------------------------
diff --git a/docs/README.pt-br.md b/docs/README.pt-br.md
index 54e9d5699..c43051ceb 100644
--- a/docs/README.pt-br.md
+++ b/docs/README.pt-br.md
@@ -29,6 +29,7 @@
+
------------------------------
diff --git a/docs/README.ru.md b/docs/README.ru.md
index a3e7f4b7b..2aec523c6 100644
--- a/docs/README.ru.md
+++ b/docs/README.ru.md
@@ -29,6 +29,7 @@
+
------------------------------
diff --git a/docs/README.tr.md b/docs/README.tr.md
index 88d59c04a..f6e187b27 100644
--- a/docs/README.tr.md
+++ b/docs/README.tr.md
@@ -29,6 +29,7 @@
+
------------------------------
diff --git a/docs/README.zh-Hans.md b/docs/README.zh-Hans.md
index 60bbe2743..c2dabd1f2 100644
--- a/docs/README.zh-Hans.md
+++ b/docs/README.zh-Hans.md
@@ -29,6 +29,7 @@
+
[](https://www.bilibili.com/video/BV1Mt421n7LZ/)
diff --git a/docs/README.zh-Hant.md b/docs/README.zh-Hant.md
index 1d8a53cbb..15b9431c0 100644
--- a/docs/README.zh-Hant.md
+++ b/docs/README.zh-Hant.md
@@ -29,6 +29,7 @@
+
[](https://www.bilibili.com/video/BV1Mt421n7LZ/)
diff --git a/docs/TRANSLATION.md b/docs/TRANSLATION.md
index 55093c7f8..b337571a9 100644
--- a/docs/TRANSLATION.md
+++ b/docs/TRANSLATION.md
@@ -1,78 +1,120 @@
# Translation Contribution Guide
-Thank you for your interest in helping translate 1Panel into a new language! This guide walks through every file you need to create or modify to add full language support across the frontend and backend.
+Thank you for helping translate 1Panel! A complete locale touches the frontend,
+the Core service, the Agent service, application-store metadata, and the project
+README files. This guide lists the repository changes and validation required
+before opening a pull request.
-> **Reference PR:** [WIP: Dev v2 spanish (#10352)](https://github.com/1Panel-dev/1Panel/pull/10352) — a merged, real-world example of adding a brand-new locale (Spanish `es-ES`).
+> **Reference pull requests**
+>
+> - [WIP: Dev v2 spanish (#10352)](https://github.com/1Panel-dev/1Panel/pull/10352)
+> is a full-locale example for Spanish (`es-ES`).
+> - [docs: add Persian README (#13132)](https://github.com/1Panel-dev/1Panel/pull/13132)
+> is a localized-README example.
---
-## Overview
+## Scope
-1Panel's i18n system spans two layers:
+1Panel has several independent translation surfaces:
-| Layer | Technology | Translation format |
+| Surface | Technology | Repository format |
|---|---|---|
-| **Frontend** (Vue 3) | `vue-i18n` + Element Plus | TypeScript (`.ts`) |
-| **Backend** (Go) | `go-i18n` / `nicksnyder/go-i18n` | YAML (`.yaml`) |
+| Frontend | Vue 3, `vue-i18n`, Element Plus | TypeScript (`.ts`) |
+| Core service | Go i18n | YAML (`.yaml`) |
+| Agent service | Go i18n | YAML (`.yaml`) |
+| Application store | API models and frontend types | Go and TypeScript |
+| Project introduction | GitHub README files | Markdown (`.md`) |
-Adding a new language requires changes in **both** layers, as well as registering the locale in a few selector components.
+Adding only a frontend module does not provide complete locale support. Follow
+all applicable steps below and state explicitly in the pull request if a surface
+is intentionally out of scope.
----
+## Step 0 – Define locale identifiers
-## Step 1 – Frontend translation file
+Choose the canonical runtime locale first. Use a
+[BCP 47](https://www.ietf.org/rfc/bcp/bcp47.txt) language tag and preserve its
+casing wherever the runtime locale is used. File names and third-party locale
+packs do not always use the same casing.
-Copy the reference English file and translate all values.
+| Language | Runtime locale | Frontend module | Element Plus pack | Backend YAML | App-store key | README |
+|---|---|---|---|---|---|---|
+| Simplified Chinese | `zh` | `zh.ts` | `zh-cn` | `zh.yaml` | `zh` | `README.zh-Hans.md` |
+| Traditional Chinese | `zh-Hant` | `zh-Hant.ts` | `zh-tw` | `zh-Hant.yaml` | `zh-hant` | `README.zh-Hant.md` |
+| English | `en` | `en.ts` | `en` | `en.yaml` | `en` | `README.md` |
+| Brazilian Portuguese | `pt-BR` | `pt-br.ts` | `pt-br` | `pt-BR.yaml` | `pt-br` | `README.pt-br.md` |
+| Spanish (Spain) | `es-ES` | `es-es.ts` | `es` | `es-ES.yaml` | `es-es` | `README.es-es.md` |
+| Lao | `lo` | `lo.ts` | `lo` | `lo.yaml` | `lo` | `README.lo.md` |
-```
-frontend/src/lang/modules/en.ts → frontend/src/lang/modules/.ts
+Use lowercase for simple runtime codes (`ja`, `ko`, `lo`) and standard BCP 47
+casing for variants (`pt-BR`, `es-ES`, `zh-Hant`). Do not infer a file name from
+the runtime locale: add an explicit mapping when the casing or code differs.
+
+Before editing, search for hard-coded locale collections so a newly introduced
+selector, whitelist, or compatibility map is not missed:
+
+```bash
+rg "zh-Hant|pt-BR|es-ES" frontend core agent
```
-Replace every English string with its translation. Keep all keys, nested objects, and the `getFuLocaleMessage` call at the bottom unchanged:
+## Step 1 – Add the frontend translation module
+
+Copy the English module and translate its values:
+
+```text
+frontend/src/lang/modules/en.ts -> frontend/src/lang/modules/.ts
+```
+
+Keep the following unchanged unless the English source changed structurally:
+
+- object keys, nesting, and TypeScript syntax;
+- interpolation placeholders such as `{0}`, `${name}`, and `{{ .detail }}`;
+- HTML tags, Markdown, URLs, product names, commands, and configuration keys;
+- the `getFuLocaleMessage` merge at the end of the file.
+
+Pass the canonical runtime locale to `getFuLocaleMessage`, even when the module
+file name uses different casing:
```ts
-// frontend/src/lang/modules/.ts
import { getFuLocaleMessage } from '@/lang/fu';
const message = {
commons: {
- // ... translated strings
+ // Translated values.
},
- // ...
};
export default {
- ...getFuLocaleMessage(''),
+ ...getFuLocaleMessage(''),
...message,
};
```
-> **Tip:** The file is ~4 400 lines. Using a translation tool for a first pass is fine, but please review the output for accuracy and context.
+The English module evolves continuously. Copy it from the same branch as your
+change instead of relying on a fixed key count or line count. Machine
+translation can be used for a first pass, but every string must be reviewed in
+its UI context.
----
+## Step 2 – Register the frontend loader and FU messages
-## Step 2 – Register the locale loader
-
-Open `frontend/src/lang/index.ts` and add your locale to `LOCALE_LOADERS`:
+Add the canonical runtime locale and its module file to `LOCALE_LOADERS` in
+`frontend/src/lang/index.ts`:
```ts
-// frontend/src/lang/index.ts
const LOCALE_LOADERS: Record = {
- // existing entries …
- '': () => import('./modules/'),
+ // Existing entries.
+ '': () => import('./modules/'),
};
```
----
-
-## Step 3 – FU component translations
-
-`frontend/src/lang/fu.ts` contains translations for custom FU table/steps components. Add a new entry for your locale:
+Then add the locale to `fuLocales` in `frontend/src/lang/fu.ts`. These messages
+belong to the shared FU table and steps components and are not supplied by the
+main module:
```ts
-// frontend/src/lang/fu.ts
const fuLocales: Record = {
- // existing entries …
- '': {
+ // Existing entries.
+ '': {
fu: {
table: {
more: '...',
@@ -89,123 +131,326 @@ const fuLocales: Record = {
};
```
----
+## Step 3 – Register the Element Plus locale
-## Step 4 – Element Plus component locale
-
-Element Plus ships its own locale strings (used in date pickers, pagination, etc.). Import the matching locale pack and wire it into `frontend/src/App.vue`:
+Element Plus provides its own translations for date pickers, pagination,
+popovers, and other components. Import the matching pack in
+`frontend/src/App.vue`:
```ts
-// frontend/src/App.vue — import section
-import from 'element-plus/es/locale/lang/';
+import localePack from 'element-plus/es/locale/lang/';
```
-Then add a branch in the `i18nLocale` computed property:
+Map the canonical runtime locale in the `i18nLocale` computed property:
```ts
const i18nLocale = computed(() => {
- // existing branches …
- if (globalStore.language === '') return ;
- return zhCn; // fallback unchanged
+ // Existing mappings.
+ if (globalStore.language === '') return localePack;
+ return zhCn;
});
```
-You can find all available Element Plus locale codes in `node_modules/element-plus/es/locale/lang/`.
+Confirm the pack exists in
+`frontend/node_modules/element-plus/es/locale/lang/`. If Element Plus does not
+provide the language, document the chosen fallback in the pull request rather
+than importing a nonexistent module.
----
+## Step 4 – Expose the locale in every frontend entry point
-## Step 5 – Login page language selector
+### Login page
-Open `frontend/src/views/login/components/login-form.vue` and add your locale label to `languageLabelMap`:
+`frontend/src/views/login/components/login-form.vue` currently renders two
+language menus for different login layouts. Add the new locale to **both menu
+blocks**, then add its native display name to `languageLabelMap`:
```ts
const languageLabelMap: Record = {
- // existing entries …
- '': '',
+ // Existing entries.
+ '': '',
};
```
----
+Verify both login layouts manually. Updating only `languageLabelMap` changes the
+selected label but does not add a selectable menu item.
-## Step 6 – Panel settings language selector
+### Panel settings
-Open `frontend/src/views/setting/panel/index.vue` and add an option to `languageOptions`:
+Add the locale to `languageOptions` in
+`frontend/src/views/setting/panel/index.vue`:
```ts
const languageOptions = ref([
- // existing entries …
- { value: '', label: '' },
+ // Existing entries.
+ { value: '', label: '' },
]);
```
----
+### Public share page
-## Step 7 – Backend translation files (core & agent)
+Add the locale to `supportedLocales` in `frontend/src/views/share/index.vue`.
+This list controls browser-language recognition and the `Accept-Language`
+header used by public share requests.
-The backend has **two** independent Go modules, each with its own YAML translation file. Copy the English reference and translate:
-
-```
-core/i18n/lang/en.yaml → core/i18n/lang/.yaml (~264 lines)
-agent/i18n/lang/en.yaml → agent/i18n/lang/.yaml (~592 lines)
+```ts
+const supportedLocales = [
+ // Existing entries.
+ '',
+];
```
-YAML format example:
+### Locale-sensitive fallbacks
+
+Review locale comparisons that select language-specific API fields. For
+example, operation records currently provide Chinese and English detail fields
+in `frontend/src/views/log/operation/index.vue`. Chinese runtime locales should
+use `detailZH`; every other locale should retain a visible `detailEN` fallback.
+Prefer one shared fallback branch instead of adding every non-Chinese locale to
+another hard-coded list.
+
+## Step 5 – Allow the locale in the login API
+
+The backend validates the language sent by the login request. Add the canonical
+runtime locale to the `Language` field's `oneof` validation tag in
+`core/app/dto/auth.go`:
+
+```go
+Language string `json:"language" validate:"oneof=zh en ... "`
+```
+
+Without this change, the new language can appear on the login page but the
+login request will be rejected as an invalid parameter.
+
+Run `gofmt` on the Go file after editing it.
+
+## Step 6 – Add and register Core translations
+
+Copy the current English catalog and translate only its values:
+
+```text
+core/i18n/lang/en.yaml -> core/i18n/lang/.yaml
+```
+
+Preserve every YAML key and placeholder:
```yaml
-ErrInvalidParams: "Invalid request parameters: {{ .detail }}"
-ErrRecordExist: "Record already exists"
-# …
+ErrInvalidParams: "Translated text: {{ .detail }}"
+ErrRecordExist: "Translated text"
```
----
+Register the catalog in `core/i18n/i18n.go`:
-## Step 8 – Register backend locale in Go
-
-Add your locale key and file path in both i18n registries:
-
-**`core/i18n/i18n.go`**
```go
var langFiles = map[string]string{
- // existing entries …
- "": "lang/.yaml",
+ // Existing entries.
+ "": "lang/.yaml",
}
```
-**`agent/i18n/i18n.go`**
+## Step 7 – Add and register Agent translations
+
+Core and Agent are independent Go modules and have independent catalogs. Copy
+and translate the Agent catalog separately:
+
+```text
+agent/i18n/lang/en.yaml -> agent/i18n/lang/.yaml
+```
+
+Register it in `agent/i18n/i18n.go`:
+
```go
var langFiles = map[string]string{
- // existing entries …
- "": "lang/.yaml",
+ // Existing entries.
+ "": "lang/.yaml",
}
```
----
+Do not copy the Core YAML file into Agent: their key sets are different.
-## Checklist
+## Step 8 – Extend application-store locale models
-Before opening a PR, verify the following:
+Application-store names and descriptions use their own locale fields. Add the
+new field to both repository-side schemas.
-- [ ] `frontend/src/lang/modules/.ts` created and all strings translated
-- [ ] Locale registered in `frontend/src/lang/index.ts` (`LOCALE_LOADERS`)
-- [ ] Locale entry added to `frontend/src/lang/fu.ts`
-- [ ] Element Plus locale imported and mapped in `frontend/src/App.vue`
-- [ ] Locale label added to `languageLabelMap` in `frontend/src/views/login/components/login-form.vue`
-- [ ] Locale option added to `languageOptions` in `frontend/src/views/setting/panel/index.vue`
-- [ ] `core/i18n/lang/.yaml` created
-- [ ] `agent/i18n/lang/.yaml` created
-- [ ] Locale registered in `core/i18n/i18n.go` (`langFiles`)
-- [ ] Locale registered in `agent/i18n/i18n.go` (`langFiles`)
-- [ ] Manually verified: new locale appears in the login language dropdown
-- [ ] Manually verified: new locale appears in **Settings → Panel → Language**
-- [ ] Manually verified: UI renders correctly after switching to the new locale
+In `agent/app/dto/app.go`, extend `Locale`:
----
+```go
+type Locale struct {
+ // Existing fields.
+ NewLanguage string `json:""`
+}
+```
-## Locale code conventions
+In `frontend/src/api/interface/app.ts`, extend `Locale` with the same JSON key:
-Use [BCP 47](https://www.ietf.org/rfc/bcp/bcp47.txt) locale codes. Examples used in this project:
+```ts
+interface Locale {
+ // Existing fields.
+ '': string;
+}
+```
-| Language | Locale code |
+Add the app-store key to the `description` example in
+`core/cmd/server/app/app_config.yml` as well. This embedded template is written
+when the server command scaffolds a new local application configuration.
+
+Review `frontend/src/utils/app-store.ts` as well. Simple codes that lowercase to
+the same value normally need no special handling; regional or script variants
+may need an explicit runtime-locale-to-app-store-key mapping.
+
+These schema changes make the repository capable of reading the locale. The
+translated application names and descriptions are maintained in the external
+application-store data source and must be coordinated separately. Until that
+data exists, the application store falls back to English.
+
+## Step 9 – Add a localized README
+
+Copy the root README to the documentation directory:
+
+```text
+README.md -> docs/README..md
+```
+
+Translate prose while preserving Markdown structure, HTML, images, links,
+commands, badges, and code samples. Check every relative link from its new
+location under `docs/`; a link that works from the repository root may need a
+different relative path in the localized file.
+
+Then keep the language navigation synchronized:
+
+1. Add the new README link to the language badge row in `README.md`.
+2. Add the same link to every existing `docs/README.*.md` language badge row.
+3. Add the locale to the table in this guide's
+ [Locale code reference](#locale-code-reference).
+
+Use the native language name for the badge label. The README locale suffix may
+follow an existing documentation convention (`zh-Hans`, `pt-br`, `es-es`) and
+does not have to match the runtime locale casing.
+
+## Step 10 – Format code and regenerate API documentation
+
+Format every changed Go source file:
+
+```bash
+gofmt -w core/app/dto/auth.go core/i18n/i18n.go
+gofmt -w agent/app/dto/app.go agent/i18n/i18n.go
+```
+
+The login-language enum and application-store locale model are represented in
+generated Swagger files. Install the repository-compatible `swag` command, then
+run the generator test from the Core module:
+
+```bash
+cd core
+go test ./cmd/server/docs -run TestGenerateSwaggerDoc
+```
+
+This updates generated files under `core/cmd/server/docs/`. Do not edit the
+generated Swagger output by hand. If the generator is unavailable, call that
+out explicitly in the pull request instead of committing stale manual changes.
+
+## Step 11 – Validate the locale
+
+### Automated checks
+
+Run checks from the repository root unless a command changes directory:
+
+```bash
+# Frontend type checking.
+cd frontend
+npm run type-check
+
+# Lint only the frontend files changed by the locale contribution.
+./node_modules/.bin/eslint \
+ src/lang/modules/.ts \
+ src/lang/index.ts \
+ src/lang/fu.ts \
+ src/App.vue \
+ src/views/login/components/login-form.vue \
+ src/views/setting/panel/index.vue \
+ src/views/share/index.vue \
+ src/views/log/operation/index.vue \
+ src/api/interface/app.ts \
+ src/utils/app-store.ts
+
+# Compile and test the directly affected Go packages.
+cd ../core
+go test ./i18n ./app/dto
+
+cd ../agent
+go test ./i18n ./app/dto
+
+# Check whitespace errors in all changed files.
+cd ..
+git diff --check
+```
+
+Also compare each translated catalog with its English source:
+
+- the frontend module has the same translation keys and nesting;
+- each Core and Agent YAML file has exactly the same keys as its corresponding
+ English file;
+- placeholders, formatting tokens, HTML tags, URLs, and commands are preserved;
+- YAML files parse successfully, with no duplicate keys;
+- all README links and badges resolve to the intended files.
+
+### Manual checks
+
+- [ ] Both login layouts show the native language name and can select it.
+- [ ] Login succeeds with the locale in the request; validation does not reject it.
+- [ ] **Settings -> Panel -> Language** can switch to the locale and retains it after reload.
+- [ ] Element Plus date, pagination, select, and confirmation components use the expected language.
+- [ ] A representative Core API error is translated.
+- [ ] A representative Agent task/error message is translated.
+- [ ] A public share page recognizes the browser locale and sends the expected `Accept-Language` value.
+- [ ] Operation-log details remain visible through the correct Chinese or English fallback.
+- [ ] Application-store metadata uses the locale when available and falls back to English when absent.
+- [ ] The localized README renders correctly and every README language badge links to it.
+- [ ] Layout, punctuation, truncation, and text direction are correct at common screen sizes.
+
+For right-to-left languages, verify the login page, navigation, forms, tables,
+dialogs, and mixed-direction values such as IP addresses. RTL layout support may
+require a separate frontend change beyond translating strings.
+
+## External translation resources
+
+Some runtime assets are not maintained in this repository:
+
+- application-store names and descriptions come from the external
+ application-store data source;
+- the language shell resources downloaded as `language/lang.tar.gz` are
+ published through the 1Panel resource service.
+
+Repository locale support does not automatically update either resource. If the
+new language needs them, coordinate publication with the relevant maintainer and
+record the status in the pull request. Do not add generated or downloaded
+archives to this repository unless a maintainer requests it.
+
+## Complete pull-request checklist
+
+- [ ] Canonical runtime, module, Element Plus, app-store, and README codes are documented.
+- [ ] `frontend/src/lang/modules/.ts` is complete and reviewed.
+- [ ] `frontend/src/lang/index.ts` contains the locale loader.
+- [ ] `frontend/src/lang/fu.ts` contains the FU messages.
+- [ ] `frontend/src/App.vue` maps an existing Element Plus locale pack or documents a fallback.
+- [ ] Both language menus and `languageLabelMap` are updated in `frontend/src/views/login/components/login-form.vue`.
+- [ ] `languageOptions` is updated in `frontend/src/views/setting/panel/index.vue`.
+- [ ] `supportedLocales` is updated in `frontend/src/views/share/index.vue`.
+- [ ] Locale-sensitive API-field fallbacks, including operation-log details, remain visible.
+- [ ] The login validator is updated in `core/app/dto/auth.go`.
+- [ ] `core/i18n/lang/.yaml` exists and is registered in `core/i18n/i18n.go`.
+- [ ] `agent/i18n/lang/.yaml` exists and is registered in `agent/i18n/i18n.go`.
+- [ ] Application-store locale fields are updated in `agent/app/dto/app.go`, `frontend/src/api/interface/app.ts`, and `core/cmd/server/app/app_config.yml`.
+- [ ] Regional or script variants are normalized in `frontend/src/utils/app-store.ts` when needed.
+- [ ] `docs/README..md` exists and every README language badge is synchronized.
+- [ ] Changed Go files are formatted and Swagger output is regenerated.
+- [ ] Frontend, Core, Agent, catalog-parity, placeholder, and Markdown checks pass.
+- [ ] All applicable manual checks pass.
+- [ ] External application-store and language-resource work is completed or clearly tracked.
+
+## Locale code reference
+
+| Language | Runtime locale |
|---|---|
| Simplified Chinese | `zh` |
| Traditional Chinese | `zh-Hant` |
@@ -218,19 +463,12 @@ Use [BCP 47](https://www.ietf.org/rfc/bcp/bcp47.txt) locale codes. Examples used
| Brazilian Portuguese | `pt-BR` |
| Spanish (Spain) | `es-ES` |
| Persian | `fa` |
+| Lao | `lo` |
-Use lowercase for simple codes (`ja`, `ko`) and the standard BCP 47 casing for regional variants (`pt-BR`, `es-ES`, `zh-Hant`).
+## Pull-request title convention
-**Frontend TypeScript file names** use all-lowercase with hyphens preserved exactly as they appear in the existing `frontend/src/lang/modules/` directory (e.g. `pt-br.ts`, `es-es.ts`, `zh-hant.ts`).
-
-**Backend YAML file names** mirror the locale code exactly, preserving the original casing (e.g. `pt-BR.yaml`, `es-ES.yaml`, `zh-Hant.yaml`).
-
----
-
-## PR title convention
-
-```
-feat(i18n): add () locale support
+```text
+feat(i18n): add () locale support
```
Example: `feat(i18n): add German (de-DE) locale support`
diff --git a/frontend/src/App.vue b/frontend/src/App.vue
index 032ff26ff..464bfd371 100644
--- a/frontend/src/App.vue
+++ b/frontend/src/App.vue
@@ -18,6 +18,7 @@ import ko from 'element-plus/es/locale/lang/ko';
import tr from 'element-plus/es/locale/lang/tr';
import esES from 'element-plus/es/locale/lang/es';
import fa from 'element-plus/es/locale/lang/fa';
+import lo from 'element-plus/es/locale/lang/lo';
import { useTheme } from '@/global/use-theme';
useTheme();
@@ -38,6 +39,7 @@ const i18nLocale = computed(() => {
if (language.value === 'tr') return tr;
if (language.value === 'es-ES') return esES;
if (language.value === 'fa') return fa;
+ if (language.value === 'lo') return lo;
return zhCn;
});
diff --git a/frontend/src/api/interface/app.ts b/frontend/src/api/interface/app.ts
index 3944d5e0a..f4f890c51 100644
--- a/frontend/src/api/interface/app.ts
+++ b/frontend/src/api/interface/app.ts
@@ -31,6 +31,8 @@ export namespace App {
ko: string;
tr: string;
'es-es': string;
+ fa: string;
+ lo: string;
}
export interface AppDTO extends App {
diff --git a/frontend/src/components/vscode-open/index.vue b/frontend/src/components/vscode-open/index.vue
index 2d694968b..6063fb4cb 100644
--- a/frontend/src/components/vscode-open/index.vue
+++ b/frontend/src/components/vscode-open/index.vue
@@ -95,8 +95,7 @@
{{ scriptText }}
+ >{{ scriptText }}
diff --git a/frontend/src/lang/fu.ts b/frontend/src/lang/fu.ts
index 96cd78865..424dd0e0e 100644
--- a/frontend/src/lang/fu.ts
+++ b/frontend/src/lang/fu.ts
@@ -70,7 +70,7 @@ const fuLocales: Record
= {
finish: 'ສຳເລັດ',
},
},
- },
+ },
ms: {
fu: {
table: {
diff --git a/frontend/src/lang/modules/lo.ts b/frontend/src/lang/modules/lo.ts
index 83ef49cf7..1c0811c46 100644
--- a/frontend/src/lang/modules/lo.ts
+++ b/frontend/src/lang/modules/lo.ts
@@ -14,6 +14,7 @@ const message = {
next: 'ຖັດໄປ',
create: 'ສ້າງ',
add: 'ເພີ່ມ',
+ select: 'ເລືອກ',
save: 'ບັນທຶກ',
set: 'ຕັ້ງຄ່າ',
sync: 'ຊິ້ງຄ໌',
@@ -52,10 +53,12 @@ const message = {
verify: 'ກວດສອບ',
saveAndEnable: 'ບັນທຶກ ແລະ ເປີດໃຊ້ງານ',
import: 'ນຳເຂົ້າ',
+ importAll: 'ນຳເຂົ້າທັງໝົດ',
export: 'ສົ່ງອອກ',
power: 'ສົ່ງຂໍ້ມູນ',
search: 'ຄົ້ນຫາ',
refresh: 'ຣີເຟຣຊ',
+ reconnect: 'ເຊື່ອມຕໍ່ໃໝ່',
get: 'ດຶງຂໍ້ມູນ',
upgrade: 'ອັບເກຣດ',
update: 'ອັບເດດ',
@@ -72,7 +75,7 @@ const message = {
notAgree: 'ບໍ່ເຫັນດີ',
preview: 'ເບິ່ງຕົວຢ່າງ',
open: 'ເປີດ',
- notSave: "ບໍ່ບັນທຶກ",
+ notSave: 'ບໍ່ບັນທຶກ',
createNewFolder: 'ສ້າງໂຟນເດີໃໝ່',
createNewFile: 'ສ້າງໄຟລ໌ໃໝ່',
helpDoc: 'ເອກະສານແນະນຳ',
@@ -114,6 +117,8 @@ const message = {
total: 'ທັງໝົດ {0}',
name: 'ຊື່',
type: 'ປະເພດ',
+ card: 'ບັດ',
+ table: 'ຕາຕະລາງ',
status: 'ສະຖານະ',
statusSuccess: 'ສຳເລັດ',
statusFailed: 'ຫຼົ້ມເຫຼວ',
@@ -178,7 +183,8 @@ const message = {
unSupportType: 'ບໍ່ຮອງຮັບປະເພດໄຟລ໌ນີ້.',
unSupportSize: 'ໄຟລ໌ທີ່ອັບໂຫຼດມີຂະໜາດເກີນ {0}M. ກະລຸນາຢືນຢັນ.',
fileExist: 'ມີໄຟລ໌ນີ້ຢູ່ໃນໂຟນເດີແລ້ວ. ບໍ່ຮອງຮັບການອັບໂຫຼດຊ້ຳ.',
- fileNameErr: 'ຊື່ໄຟລ໌ຕ້ອງມີ 1-256 ຕົວອັກສອນ ແລະ ປະກອບດ້ວຍຕົວອັກສອນ, ຕົວເລກ, ຈ້ຳ, ຂີດຕໍ່ ຫຼື ຂີດກ້ອງເທົ່ານັ້ນ',
+ fileNameErr:
+ 'ຊື່ໄຟລ໌ຕ້ອງມີ 1-256 ຕົວອັກສອນ ແລະ ປະກອບດ້ວຍຕົວອັກສອນ, ຕົວເລກ, ຈ້ຳ, ຂີດຕໍ່ ຫຼື ຂີດກ້ອງເທົ່ານັ້ນ',
confirmNoNull: 'ກະລຸນາແນ່ໃຈວ່າຄ່າ {0} ບໍ່ວ່າງ.',
errPort: 'ພອດບໍ່ຖືກຕ້ອງ, ກະລຸນາກວດສອບ',
remove: 'ເອົາອອກ',
@@ -187,7 +193,7 @@ const message = {
backupSuccess: 'ສຳຮອງຂໍ້ມູນສຳເລັດແລ້ວ',
restoreSuccess: 'ກູ້ຄືນສຳເລັດແລ້ວ',
refreshSuccess: 'ຣີເຟຣຊສຳເລັດແລ້ວ',
- rootInfoErr: "ນີ້ແມ່ນໄດເຣັກທໍຣີຮາກ (root) ແລ້ວ",
+ rootInfoErr: 'ນີ້ແມ່ນໄດເຣັກທໍຣີຮາກ (root) ແລ້ວ',
resetSuccess: 'ຣີເຊັດສຳເລັດແລ້ວ',
creatingInfo: 'ກຳລັງສ້າງ, ບໍ່ຈຳເປັນຕ້ອງດຳເນີນການນີ້',
installSuccess: 'ຕິດຕັ້ງສຳເລັດແລ້ວ',
@@ -228,7 +234,7 @@ const message = {
requiredInput: 'ຈຳເປັນຕ້ອງປ້ອນຂໍ້ມູນນີ້.',
requiredSelect: 'ເລືອກລາຍການໃນລາຍຊື່',
illegalChar: 'ບໍ່ຮອງຮັບການໃຊ້ຕົວອັກສອນ & ; $ \' ` ( ) " > < | ໃນເວລານີ້',
- illegalInput: "ຂໍ້ມູນນີ້ຕ້ອງບໍ່ມີຕົວອັກສອນທີ່ບໍ່ຖືກຕ້ອງ.",
+ illegalInput: 'ຂໍ້ມູນນີ້ຕ້ອງບໍ່ມີຕົວອັກສອນທີ່ບໍ່ຖືກຕ້ອງ.',
duplicate: 'ຄ່ານີ້ຕ້ອງບໍ່ຊ້ຳກັນ.',
commonName:
'ຂໍ້ມູນນີ້ຕ້ອງບໍ່ຂຶ້ນຕົ້ນດ້ວຍຕົວອັກສອນພິເສດ ແລະ ປະກອບດ້ວຍພາສາອັງກິດ, ພາສາຈີນ, ຕົວເລກ, ".", "-", ແລະ "_" ໂດຍມີຄວາມຍາວ 1-128 ຕົວອັກສອນ.',
@@ -240,8 +246,7 @@ const message = {
dbName: 'ຂໍ້ມູນນີ້ຕ້ອງບໍ່ຂຶ້ນຕົ້ນດ້ວຍຂີດກ້ອງ ແລະ ປະກອບດ້ວຍພາສາອັງກິດ, ຕົວເລກ, ແລະ "_" ໂດຍມີຄວາມຍາວ 1-64 ຕົວອັກສອນ.',
imageName:
'ຂໍ້ມູນນີ້ຕ້ອງປະກອບດ້ວຍພາສາອັງກິດ, ຕົວເລກ, ":", "@", "/", ".", "-", ແລະ "_" ໂດຍມີຄວາມຍາວ 1-256 ຕົວອັກສອນ.',
- volumeName:
- 'ຂໍ້ມູນນີ້ຕ້ອງປະກອບດ້ວຍພາສາອັງກິດ, ຕົວເລກ, ".", "-", ແລະ "_" ໂດຍມີຄວາມຍາວ 2-30 ຕົວອັກສອນ.',
+ volumeName: 'ຂໍ້ມູນນີ້ຕ້ອງປະກອບດ້ວຍພາສາອັງກິດ, ຕົວເລກ, ".", "-", ແລະ "_" ໂດຍມີຄວາມຍາວ 2-30 ຕົວອັກສອນ.',
supervisorName:
'ຂໍ້ມູນນີ້ຕ້ອງບໍ່ຂຶ້ນຕົ້ນດ້ວຍຕົວອັກສອນພິເສດ ແລະ ປະກອບດ້ວຍພາສາອັງກິດ, ຕົວເລກ, "-", ແລະ "_" ໂດຍມີຄວາມຍາວ 1-128 ຕົວອັກສອນ.',
composeName:
@@ -249,8 +254,7 @@ const message = {
complexityPassword:
'ຮອງຮັບລະຫັດຜ່ານຍາວ 8-30 ຕົວອັກສອນ ທີ່ປະກອບດ້ວຍຢ່າງໜ້ອຍສອງຢ່າງລະຫວ່າງ ຕົວອັກສອນ, ຕົວເລກ ແລະ ຕົວອັກສອນພິເສດ.',
commonPassword: 'ຄວາມຍາວຂອງຂໍ້ມູນນີ້ຕ້ອງຫຼາຍກວ່າ 6 ຕົວອັກສອນ.',
- linuxName:
- 'ຄວາມຍາວຕ້ອງຢູ່ລະຫວ່າງ 1 ຫາ 128 ຕົວອັກສອນ ແລະ ຕ້ອງບໍ່ມີຕົວອັກສອນພິເສດເຫຼົ່ານີ້: "{0}".',
+ linuxName: 'ຄວາມຍາວຕ້ອງຢູ່ລະຫວ່າງ 1 ຫາ 128 ຕົວອັກສອນ ແລະ ຕ້ອງບໍ່ມີຕົວອັກສອນພິເສດເຫຼົ່ານີ້: "{0}".',
email: 'ຂໍ້ມູນນີ້ຕ້ອງເປັນທີ່ຢູ່ອີເມລ໌ທີ່ຖືກຕ້ອງ.',
number: 'ຂໍ້ມູນນີ້ຕ້ອງເປັນຕົວເລກ.',
integer: 'ຂໍ້ມູນນີ້ຕ້ອງເປັນເລກຖ້ວນບວກ.',
@@ -263,8 +267,7 @@ const message = {
databaseName: 'ຂໍ້ມູນນີ້ຕ້ອງປະກອບດ້ວຍພາສາອັງກິດ, ຕົວເລກ, ແລະ "_" ໂດຍມີຄວາມຍາວ 1-30 ຕົວອັກສອນ.',
ipErr: 'ຂໍ້ມູນນີ້ຕ້ອງເປັນທີ່ຢູ່ IP ທີ່ຖືກຕ້ອງ.',
numberRange: 'ຂໍ້ມູນນີ້ຕ້ອງເປັນຕົວເລກລະຫວ່າງ {0} ຫາ {1}.',
- paramName:
- 'ຂໍ້ມູນນີ້ຕ້ອງປະກອບດ້ວຍພາສາອັງກິດ, ຕົວເລກ, ".", "-", ແລະ "_" ໂດຍມີຄວາມຍາວ 2-30 ຕົວອັກສອນ.',
+ paramName: 'ຂໍ້ມູນນີ້ຕ້ອງປະກອບດ້ວຍພາສາອັງກິດ, ຕົວເລກ, ".", "-", ແລະ "_" ໂດຍມີຄວາມຍາວ 2-30 ຕົວອັກສອນ.',
paramComplexity:
'ຂໍ້ມູນນີ້ຕ້ອງບໍ່ຂຶ້ນຕົ້ນ ແລະ ລົງທ້າຍດ້ວຍຕົວອັກສອນພິເສດ ແລະ ປະກອບດ້ວຍພາສາອັງກິດ, ຕົວເລກ, "{0}" ໂດຍມີຄວາມຍາວ 6-128 ຕົວອັກສອນ.',
paramUrlAndPort: 'ຂໍ້ມູນນີ້ຕ້ອງຢູ່ໃນຮູບແບບ "http(s)://(domain name/ip):(port)".',
@@ -285,6 +288,9 @@ const message = {
length128Err: 'ຄວາມຍາວຕ້ອງບໍ່ເກີນ 128 ຕົວອັກສອນ',
maxLength: 'ຄວາມຍາວຕ້ອງບໍ່ເກີນ {0} ຕົວອັກສອນ',
alias: 'ຮອງຮັບພາສາອັງກິດ, ຕົວເລກ, - ແລະ _, ຄວາມຍາວ 1-128, ແລະ ຕ້ອງບໍ່ຂຶ້ນຕົ້ນ ຫຼື ລົງທ້າຍດ້ວຍ -_.',
+ vmName: 'ຮອງຮັບຕົວອັກສອນພາສາອັງກິດ, ຕົວເລກ, ".", "-" ແລະ "_"; ຄວາມຍາວ 1-64 ຕົວ; ຕ້ອງຂຶ້ນຕົ້ນດ້ວຍຕົວອັກສອນ ຫຼື ຕົວເລກ.',
+ vmNetwork:
+ 'ຮອງຮັບຕົວອັກສອນພາສາອັງກິດ, ຕົວເລກ, ".", ":", "-" ແລະ "_"; ຄວາມຍາວ 1-64 ຕົວ; ຕ້ອງຂຶ້ນຕົ້ນດ້ວຍຕົວອັກສອນ ຫຼື ຕົວເລກ.',
},
res: {
paramError: 'ການຮ້ອງຂໍຫຼົ້ມເຫຼວ. ກະລຸນາລອງໃໝ່ພາຍຫຼັງ.',
@@ -342,6 +348,11 @@ const message = {
enable: 'ເປີດໃຊ້ງານ',
disable: 'ປິດໃຊ້ງານ',
deleted: 'ລຶບແລ້ວ',
+ notfound: 'ບໍ່ພົບ',
+ inactive: 'ບໍ່ເຮັດວຽກ',
+ degraded: 'ປະສິດທິພາບຫຼຸດລົງ',
+ inaccessible: 'ບໍ່ສາມາດເຂົ້າເຖິງ',
+ unknown: 'ບໍ່ຮູ້ຈັກ',
downloading: 'ກຳລັງດາວໂຫຼດ',
packing: 'ກຳລັງບີບອັດ',
sending: 'ກຳລັງສົ່ງ',
@@ -497,6 +508,8 @@ const message = {
deleteBackupHelper: 'ລຶບໄຟລ໌ສຳຮອງຖານຂໍ້ມູນພ້ອມກັນ',
delete: 'ການລຶບບໍ່ສາມາດຍ້ອນກັບໄດ້, ກະລຸນາປ້ອນ "',
deleteHelper: '" ເພື່ອລຶບຖານຂໍ້ມູນນີ້',
+ deleteUserHelper: '" ເພື່ອລຶບຜູ້ໃຊ້ນີ້',
+ userBoundDatabases: 'ຖືກຜູກກັບຖານຂໍ້ມູນຕໍ່ໄປນີ້:',
noMysql: 'ການບໍລິການຖານຂໍ້ມູນ (MySQL ຫຼື MariaDB)',
noPostgresql: 'ການບໍລິການຖານຂໍ້ມູນ PostgreSQL',
goUpgrade: 'ໄປອັບເກຣດ',
@@ -528,12 +541,11 @@ const message = {
'ຖານຂໍ້ມູນນີ້ໄດ້ຖືກຜູກມັດກັບແອັບພລິເຄຊັນແລ້ວ. ການປ່ຽນລະຫັດຜ່ານຈະປ່ຽນລະຫັດຜ່ານຂອງແອັບພລິເຄຊັນພ້ອມກັນ. ການປ່ຽນແປງຈະມີຜົນຫຼັງຈາກຣີສະຕາດແອັບພລິເຄຊັນ.',
recoverTimeoutHelper: '-1 ໝາຍເຖິງບໍ່ມີການໝົດເວລາ',
confChange: 'ການຕັ້ງຄ່າ',
- confNotFound:
- 'ບໍ່ພົບໄຟລ໌ການຕັ້ງຄ່າ. ກະລຸນາອັບເກຣດແອັບພລິເຄຊັນເປັນເວີຊັນລ່າສຸດໃນຮ້ານແອັບ ແລະ ລອງໃໝ່ອີກຄັ້ງ!',
- portHelper:
- 'ພອດນີ້ແມ່ນພອດທີ່ເປີດອອກຂອງຄອນເທນເນີ. ທ່ານຕ້ອງບັນທຶກການແກ້ໄຂແຍກຕ່າງຫາກ ແລະ ຣີສະຕາດຄອນເທນເນີ!',
+ confNotFound: 'ບໍ່ພົບໄຟລ໌ການຕັ້ງຄ່າ. ກະລຸນາອັບເກຣດແອັບພລິເຄຊັນເປັນເວີຊັນລ່າສຸດໃນຮ້ານແອັບ ແລະ ລອງໃໝ່ອີກຄັ້ງ!',
+ portHelper: 'ພອດນີ້ແມ່ນພອດທີ່ເປີດອອກຂອງຄອນເທນເນີ. ທ່ານຕ້ອງບັນທຶກການແກ້ໄຂແຍກຕ່າງຫາກ ແລະ ຣີສະຕາດຄອນເທນເນີ!',
loadFromRemote: 'ຊິ້ງຄ໌ຈາກເຊີເວີ',
userBind: 'ຜູກມັດຜູ້ໃຊ້',
+ noUserBind: 'ບໍ່ມີການຜູກມັດ',
pgBindHelper:
'ການດຳເນີນການນີ້ໃຊ້ເພື່ອສ້າງຜູ້ໃຊ້ໃໝ່ ແລະ ຜູກມັດກັບຖານຂໍ້ມູນເປົ້າໝາຍ. ໃນປັດຈຸບັນ, ຍັງບໍ່ຮອງຮັບການເລືອກຜູ້ໃຊ້ທີ່ມີຢູ່ແລ້ວໃນຖານຂໍ້ມູນ.',
pgSuperUser: 'ຊຸບເປີຢູເຊີ',
@@ -626,8 +638,7 @@ const message = {
timeout: 'ໝົດເວລາ (ວິນາທີ)',
timeoutHelper: 'ໄລຍະເວລາໝົດເວລາການເຊື່ອມຕໍ່ທີ່ຫວ່າງ. 0 ໝາຍເຖິງການເຊື່ອມຕໍ່ຕະຫຼອດເວລາ.',
maxclients: 'ຈຳນວນລູກຄ້າສູງສຸດ',
- requirepassHelper:
- 'ປ່ອຍວ່າງໄວ້ຫາກບໍ່ມີການຕັ້ງລະຫັດຜ່ານ. ການປ່ຽນແປງຕ້ອງບັນທຶກແຍກຕ່າງຫາກ ແລະ ຣີສະຕາດຄອນເທນເນີ!',
+ requirepassHelper: 'ປ່ອຍວ່າງໄວ້ຫາກບໍ່ມີການຕັ້ງລະຫັດຜ່ານ. ການປ່ຽນແປງຕ້ອງບັນທຶກແຍກຕ່າງຫາກ ແລະ ຣີສະຕາດຄອນເທນເນີ!',
databases: 'ຈຳນວນຖານຂໍ້ມູນ',
maxmemory: 'ການໃຊ້ໜ່ວຍຄວາມຈຳສູງສຸດ',
maxmemoryHelper: '0 ໝາຍເຖິງບໍ່ມີການຈຳກັດ.',
@@ -666,11 +677,9 @@ const message = {
containerConn: 'ການເຊື່ອມຕໍ່ຄອນເທນເນີ',
copyConnURL: 'ຄັດລອກ URL ການເຊື່ອມຕໍ່',
connAddress: 'ທີ່ຢູ່',
- containerConnHelper:
- 'ທີ່ຢູ່ການເຊື່ອມຕໍ່ນີ້ໃຊ້ສຳລັບແອັບພລິເຄຊັນທີ່ເຮັດວຽກໃນ PHP environment/container.',
+ containerConnHelper: 'ທີ່ຢູ່ການເຊື່ອມຕໍ່ນີ້ໃຊ້ສຳລັບແອັບພລິເຄຊັນທີ່ເຮັດວຽກໃນ PHP environment/container.',
remoteConn: 'ການເຊື່ອມຕໍ່ພາຍນອກ',
- remoteConnHelper2:
- 'ທີ່ຢູ່ການເຊື່ອມຕໍ່ນີ້ໃຊ້ສຳລັບແອັບພລິເຄຊັນທີ່ບໍ່ໄດ້ຢູ່ໃນຄອນເທນເນີ ຫຼື ແອັບພລິເຄຊັນພາຍນອກ.',
+ remoteConnHelper2: 'ທີ່ຢູ່ການເຊື່ອມຕໍ່ນີ້ໃຊ້ສຳລັບແອັບພລິເຄຊັນທີ່ບໍ່ໄດ້ຢູ່ໃນຄອນເທນເນີ ຫຼື ແອັບພລິເຄຊັນພາຍນອກ.',
remoteConnHelper3:
'ທີ່ຢູ່ການເຂົ້າເຖິງເລີ່ມຕົ້ນແມ່ນ IP ຂອງໂຮສ໌. ເພື່ອແກ້ໄຂ, ໃຫ້ໄປທີ່ "ທີ່ຢູ່ເຂົ້າເຖິງເລີ່ມຕົ້ນ" ໃນໜ້າຕັ້ງຄ່າແພນເນວ.',
localIP: 'IP ທ້ອງຖິ່ນ',
@@ -705,9 +714,17 @@ const message = {
allowedOriginsRequired: 'ປ້ອນທີ່ຢູ່ການເຂົ້າເຖິງຢ່າງໜ້ອຍໜຶ່ງບ່ອນ',
allowedOriginsInvalid: 'ໃຊ້ຮູບແບບ http(s)://host-or-ip[:port]',
provider: 'ຜູ້ໃຫ້ບໍລິການ',
- accountModelsHelper:
- 'ເລືອກໂມເດວທີ່ບັນຊີນີ້ຈະເປີດໃຫ້ OpenClaw ເລືອກ ແລະ ຕັ້ງຄ່າ',
+ accountModelsHelper: 'ເລືອກໂມເດວທີ່ບັນຊີນີ້ຈະເປີດໃຫ້ OpenClaw ເລືອກ ແລະ ຕັ້ງຄ່າ',
accountModelsRequired: 'ເລືອກຢ່າງໜ້ອຍໜຶ່ງໂມເດວ',
+ verifyModel: 'ໂມເດວສຳລັບກວດສອບ',
+ verifyModelHelper:
+ 'ເລືອກໂມເດວທີ່ບັນຊີນີ້ສາມາດເຂົ້າເຖິງໄດ້. ເມື່ອບັນທຶກ ລະບົບຈະສົ່ງຄຳຮ້ອງຂໍຂະໜາດນ້ອຍເພື່ອກວດສອບການເຊື່ອມຕໍ່.',
+ verifyModelRequired: 'ກະລຸນາເລືອກໂມເດວສຳລັບກວດສອບ',
+ discoverModels: 'ດຶງລາຍການໂມເດວ',
+ automaticModelDiscovery: 'ດຶງອັດຕະໂນມັດ',
+ manualModelConfiguration: 'ຕັ້ງຄ່າດ້ວຍຕົນເອງ',
+ discoverModelsHelper: 'ດຶງໂມເດວຈາກ API /v1/models ຂອງຜູ້ໃຫ້ບໍລິການ ແລະ ເພີ່ມທັງໝົດເຂົ້າໃນຄັງໂມເດວ',
+ discoverModelsFailedFallback: 'ດຶງລາຍການໂມເດວບໍ່ສຳເລັດ. ກະລຸນາຕັ້ງຄ່າໂມເດວດ້ວຍຕົນເອງ.',
accountModelsDuplicate: 'ພົບໂມເດວທີ່ຊ້ຳກັນໃນລາຍການ',
modelPool: 'ກຸ່ມໂມເດວ (Model Pool)',
fallbackModels: 'ໂມເດວສຳຮອງ (Fallback)',
@@ -723,8 +740,7 @@ const message = {
timeZone: 'ເຂດເວລາ',
browserEnabled: 'ເປີດໃຊ້ບຣາວເຊີ',
npmRegistry: 'NPM Registry',
- npmRegistryHelper:
- 'ໃຊ້ສຳລັບການຕິດຕັ້ງປລັກອິນ OpenClaw. ທ່ານສາມາດເລືອກຄ່າທີ່ຕັ້ງໄວ້ ຫຼື ປ້ອນເອງ.',
+ npmRegistryHelper: 'ໃຊ້ສຳລັບການຕິດຕັ້ງປລັກອິນ OpenClaw. ທ່ານສາມາດເລືອກຄ່າທີ່ຕັ້ງໄວ້ ຫຼື ປ້ອນເອງ.',
npmRegistryInvalid: 'ປ້ອນ URL ຂອງ NPM registry ທີ່ຖືກຕ້ອງ ໂດຍຂຶ້ນຕົ້ນດ້ວຍ http:// ຫຼື https://',
pluginInstallNPMRegistryHelper:
'ໄປທີ່ ຕັ້ງຄ່າ -> ອື່ນໆ ເພື່ອຕັ້ງຄ່າ NPM registry ແລະ ເລັ່ງການຕິດຕັ້ງປລັກອິນ',
@@ -758,15 +774,15 @@ const message = {
],
'SOUL.md': ['ຕົວຕົນ, ນ້ຳສຽງ ແລະ ຂອບເຂດ.', 'ໂຫຼດໃນທຸກເຊດຊັນ.'],
'USER.md': ['ຜູ້ໃຊ້ແມ່ນໃຜ ແລະ ຄວນເອີ້ນພວກເຂົາແນວໃດ.', 'ໂຫຼດໃນທຸກເຊດຊັນ.'],
- 'IDENTITY.md': [
- "ຊື່ຂອງຕົວແທນ, ບຸກຄະລິກ ແລະ ອີໂມຈິ.",
- 'ສ້າງ ຫຼື ອັບເດດໃນລະຫວ່າງຂັ້ນຕອນ bootstrap.',
- ],
+ 'IDENTITY.md': ['ຊື່ຂອງຕົວແທນ, ບຸກຄະລິກ ແລະ ອີໂມຈິ.', 'ສ້າງ ຫຼື ອັບເດດໃນລະຫວ່າງຂັ້ນຕອນ bootstrap.'],
'TOOLS.md': [
'ໝາຍເຫດກ່ຽວກັບເຄື່ອງມືທ້ອງຖິ່ນ ແລະ ຂໍ້ຕົກລົງຕ່າງໆ.',
'ບໍ່ໄດ້ຄວບຄຸມການມີຢູ່ຂອງເຄື່ອງມື; ເປັນພຽງຄຳແນະນຳເທົ່ານັ້ນ.',
],
- 'HEARTBEAT.md': ['ລາຍການກວດສອບສຳລັບການເຮັດວຽກແບບ heartbeat (ເລືອກໄດ້).', 'ຄວນຂຽນໃຫ້ສັ້ນເພື່ອປະຢັດ token.'],
+ 'HEARTBEAT.md': [
+ 'ລາຍການກວດສອບສຳລັບການເຮັດວຽກແບບ heartbeat (ເລືອກໄດ້).',
+ 'ຄວນຂຽນໃຫ້ສັ້ນເພື່ອປະຢັດ token.',
+ ],
'BOOT.md': [
'ລາຍການກວດສອບຕອນເລີ່ມຕົ້ນລະບົບ ເມື່ອ gateway ຣີສະຕາດ (ເລືອກໄດ້).',
'ຄວນຂຽນໃຫ້ສັ້ນ; ໃຊ້ເຄື່ອງມືຂໍ້ຄວາມສຳລັບການສົ່ງອອກ.',
@@ -782,8 +798,7 @@ const message = {
saveAllMd: 'ບັນທຶກທັງໝົດ',
roleMarkdownRestartHelper:
'ການບັນທຶກໄຟລ໌ markdown ທັງໝົດຕ້ອງຣີສະຕາດຄອນເທນເນີເພື່ອໃຫ້ມີຜົນ. ເລືອກວ່າຈະຣີສະຕາດດຽວນີ້ ຫຼື ພາຍຫຼັງ.',
- configFileRestartHelper:
- 'ການບັນທຶກໄຟລ໌ການຕັ້ງຄ່າຕ້ອງຣີສະຕາດຄອນເທນເນີທັນທີເພື່ອໃຫ້ມີຜົນ.',
+ configFileRestartHelper: 'ການບັນທຶກໄຟລ໌ການຕັ້ງຄ່າຕ້ອງຣີສະຕາດຄອນເທນເນີທັນທີເພື່ອໃຫ້ມີຜົນ.',
overviewSnapshot: 'ພາບລວມ (Snapshot)',
primaryModel: 'ໂມເດວຫຼັກ',
defaultModel: 'ໂມເດວເລີ່ມຕົ້ນ',
@@ -861,8 +876,7 @@ const message = {
channelDeleteConfirm: 'ລຶບການຕັ້ງຄ່າຊ່ອງທາງ {0}?',
customProviderHelper: 'ຜູ້ໃຫ້ບໍລິການແບບກຳນົດເອງຈະບໍ່ກວດສອບວ່າບັນຊີສາມາດໃຊ້ງານໄດ້ຫຼືບໍ່.',
apiTypeBaseURLHelper: 'ປະເພດນີ້ຈະສົ່ງການຮ້ອງຂໍໄປທີ່ {0}. Base URL ທີ່ແນະນຳ: {1}',
- apiTypeBaseURLMismatch:
- 'Base URL ປັດຈຸບັນເບິ່ງຄືວ່າເປັນເສັ້ນທາງ {0}, ແຕ່ໄດ້ເລືອກ {1}. URL ທີ່ແນະນຳ: {2}',
+ apiTypeBaseURLMismatch: 'Base URL ປັດຈຸບັນເບິ່ງຄືວ່າເປັນເສັ້ນທາງ {0}, ແຕ່ໄດ້ເລືອກ {1}. URL ທີ່ແນະນຳ: {2}',
},
model: {
model: 'ໂມເດວ',
@@ -939,6 +953,7 @@ const message = {
resetToken: 'ຣີເຊັດ Token',
resetTokenConfirm: 'ຣີເຊັດການໃຊ້ງານ token ສຳລັບ {0}?',
unlimited: 'ບໍ່ຈຳກັດ',
+ unlimitedWithAuto: 'ບໍ່ຈຳກັດ, ລວມ auto',
apiKeyCount: 'API Keys',
lastUsedAt: 'ໃຊ້ງານລ່າສຸດ',
settingTitle: 'ຕັ້ງຄ່າ AI Gateway',
@@ -947,8 +962,7 @@ const message = {
logSetting: 'ຕັ້ງຄ່າລັອກ',
lbPolicy: 'ນະໂຍບາຍການກະຈາຍພາລະ (Load Balancing)',
lbPolicyRoundRobin: 'Round Robin',
- lbPolicyRoundRobinDesc:
- 'ເລືອກບັນຊີໂມເດວຕາມລຳດັບ. ໃຊ້ເມື່ອລະບົບຫຼັງບ້ານມີຄວາມສາມາດໃກ້ຄຽງກັນ.',
+ lbPolicyRoundRobinDesc: 'ເລືອກບັນຊີໂມເດວຕາມລຳດັບ. ໃຊ້ເມື່ອລະບົບຫຼັງບ້ານມີຄວາມສາມາດໃກ້ຄຽງກັນ.',
lbPolicyWeightedRoundRobin: 'Weighted Round Robin',
lbPolicyWeightedRoundRobinDesc:
'ກະຈາຍການຮ້ອງຂໍຕາມນ້ຳໜັກຂອງບັນຊີໂມເດວ. ນ້ຳໜັກສູງກວ່າຈະໄດ້ຮັບ traffic ຫຼາຍກວ່າ.',
@@ -962,10 +976,16 @@ const message = {
streamIdleTimeoutSeconds: 'ໝົດເວລາ stream ຫວ່າງ (ວິນາທີ)',
maxBodyMb: 'ຂະໜາດ Body ສູງສຸດ (MB)',
runtimeRefreshSeconds: 'ໄລຍະການຣີເຟຣຊ runtime (ວິນາທີ)',
+ logRetentionDays: 'ການເກັບຮັກສາລັອກ AI Gateway (ມື້)',
+ clearLogs: 'ລ້າງລັອກ',
+ clearLogsConfirm:
+ 'ການດຳເນີນການນີ້ຈະລ້າງສະຖິຕິການໃຊ້ AI Gateway, ການກວດສອບເນື້ອຫາ, ການຕັດສິນໃຈຂອງ Smart Route, ລັອກເນື້ອຫາຄຳຮ້ອງຂໍ ແລະ ລັອກບໍລິການ. ຕ້ອງການຕໍ່ບໍ?',
usageRetentionDays: 'ໄລຍະການເກັບຮັກສາສະຖິຕິການໃຊ້ງານ (ມື້)',
contentAuditRetentionDays: 'ໄລຍະການເກັບຮັກສາການກວດສອບເນື້ອໃນ (ມື້)',
logCleanupIntervalHours: 'ໄລຍະການລ້າງລັອກ (ຊົ່ວໂມງ)',
requestBodyLog: 'ລັອກ Request Body',
+ requestBodyLogDesc:
+ 'ບັນທຶກເນື້ອຫາຄຳຮ້ອງຂໍ ແລະ ຄຳຕອບຂອງ AI Gateway ໄປທີ່ Elasticsearch ເພື່ອຄົ້ນຫາ, ກວດສອບ ແລະ ແກ້ໄຂບັນຫາ.',
requestBodyLogIndexPrefix: 'ຄຳນຳໜ້າ Index',
requestBodyLogRetentionDays: 'ໄລຍະການເກັບຮັກສາລັອກ Request Body (ມື້)',
requestBodyLogMaxBodyKb: 'ຂະໜາດ Request Body ສູງສຸດ (KB)',
@@ -998,1006 +1018,1073 @@ const message = {
requestModelPlaceholder: 'ຕົວຢ່າງ: qwen2.5-coder',
upstreamModelPlaceholder: 'ຕົວຢ່າງ: Qwen/Qwen2.5-Coder-32B-Instruct',
addMapping: 'ເພີ່ມການຈັບຄູ່',
- overview: 'ພາບລວມ',
- distribution: 'ການແຈກຢາຍ',
- usageTrend: 'ແນວໂນ້ມການນຳໃຊ້',
- distributionBy: 'ການແຈກຢາຍໂດຍ {0}',
- unmatched: 'ບໍ່ກົງກັນ',
- modelAccount: 'ບັນຊີໂມເດວ',
- serviceProvider: 'ຜູ້ໃຫ້ບໍລິການ',
- tokenUsage: 'ການນຳໃຊ້ Token',
- percent: 'ເປີເຊັນ',
- ranking: 'ການຈັດອັນດັບ',
- rank: 'ອັນດັບ',
- promptToken: 'Prompt Tokens',
- completionToken: 'Completion Tokens',
- totalToken: 'Token ທັງໝົດ',
- cachedToken: 'Cached Tokens',
- cacheHitRate: 'ອັດຕາການພົບ Cache',
- activeUsers: 'ຜູ້ໃຊ້ທີ່ເຄື່ອນໄຫວ',
- activeModels: 'ໂມເດວທີ່ເຄື່ອນໄຫວ',
- failedRequests: 'ຄຳຂໍທີ່ລົ້ມເຫຼວ',
- averageTokenPerRequest: 'Token ສະເລ່ຍ/ຄຳຂໍ',
- callLogs: 'ບັນທຶກການເອີ້ນໃຊ້',
- usageKeywordPlaceholder: 'ຄົ້ນຫາ Request ID / ໂມເດວ / ໂມເດວຕົ້ນທາງ / ຂໍ້ຄວາມຜິດພາດ',
- attemptChain: 'ລຳດັບການລອງໃໝ່',
- attemptIndex: 'ລຳດັບການເອີ້ນ',
- noAttemptDetails: 'ຄຳຂໍນີ້ສຳເລັດໃນຄັ້ງດຽວ; ບໍ່ມີລາຍລະອຽດການສຳຮອງ',
- input: 'ຂາເຂົ້າ',
- output: 'ຂາອອກ',
- total: 'ທັງໝົດ',
- healthHealthy: 'ປົກກະຕິ',
- healthCooldown: 'ກຳລັງພັກ (Cooldown)',
- healthUnhealthy: 'ຜິດປົກກະຕິ',
- healthDeleted: 'ລຶບແລ້ວ',
- healthUnknown: 'ບໍ່ຮູ້ຈັກ',
- validationModelMapEmpty: 'ຊື່ການຈັບຄູ່ໂມເດວບໍ່ສາມາດຫວ່າງໄດ້',
- validationModelMapDuplicate: 'ໂມເດວທີ່ຮ້ອງຂໍ {0} ຊ້ຳກັນ',
- validateAvailability: 'ກວດສອບການພ້ອມໃຊ້ງານຂອງບັນຊີ',
- validateAvailabilityHelper: 'ສົ່ງຂໍ້ຄວາມຂະໜາດນ້ອຍກ່ອນບັນທຶກເພື່ອຢືນຢັນການໃຊ້ງານ API',
- modelGroup: 'ກຸ່ມໂມເດວ',
- availableModels: 'ໂມເດວທີ່ມີໃຫ້ໃຊ້',
- modelGroupModels: 'ໂມເດວທີ່ຮ້ອງຂໍ',
- modelGroupModelsPlaceholder: 'ເລືອກ ຫຼື ປ້ອນຊື່ໂມເດວທີ່ຮ້ອງຂໍ',
- modelGroupModelCount: '{0} ໂມເດວ',
- contentCompliance: 'ການປະຕິບັດຕາມເນື້ອຫາ',
- contentAction: 'ການດຳເນີນການ',
- actionBlock: 'ບລັອກ',
- actionAuditOnly: 'ກວດສອບຢ່າງດຽວ',
- actionDropHistory: 'ຍົກເລີກປະຫວັດ',
- severity: 'ລະດັບຄວາມຮຸນແຮງ',
- severityHigh: 'ສູງ',
- severityMedium: 'ກາງ',
- severityLow: 'ຕ່ຳ',
- sensitiveWord: 'ຄຳອ່ອນໄຫວ',
- sensitiveGroup: 'ກຸ່ມຄຳອ່ອນໄຫວ',
- sensitiveWordCount: 'ຈຳນວນຄຳ',
- normalizedWord: 'ຄຳທີ່ປັບເປັນມາດຕະຖານ',
- matchedWords: 'ຄຳທີ່ກົງກັນ',
- matchedGroups: 'ກຸ່ມທີ່ກົງກັນ',
- importResult: 'ນຳເຂົ້າແລ້ວ {0}, ຊ້ຳກັນ {1}, ບໍ່ຖືກຕ້ອງ {2}',
- auditLogs: 'ບັນທຶກການກວດສອບ',
- },
- skillsHub: {
- title: 'ສູນລວມທັກສະ (Skills Hub)',
- upload: 'ອັບໂຫຼດທັກສະ',
- importSkill: 'ນຳເຂົ້າທັກສະ',
- repositoryAddress: 'ທີ່ຢູ່ຄັງເກັບ (Repository)',
- repositoryGithubOnly: 'ຮອງຮັບສະເພາະທີ່ຢູ່ GitHub ເທົ່ານັ້ນ',
- repositoryRef: 'Branch ຫຼື Tag',
- repositoryRefPlaceholder: 'ຄ່າເລີ່ມຕົ້ນແມ່ນ main, ຖ້າລົ້ມເຫຼວຈະລອງ master',
- repositoryDownloadPreview: 'URL ດາວໂຫຼດປາຍທາງ:',
- packageURL: 'URL ຂອງແພັກເກັດ',
- packageURLPlaceholder: 'ປ້ອນທີ່ຢູ່ແພັກເກັດ .zip',
- importSuccess: 'ນຳເຂົ້າທັກສະສຳເລັດແລ້ວ ແລະ ກຳລັງລໍຖ້າການກວດສອບ.',
- source: 'ແຫຼ່ງທີ່ມາ',
- applicableAgent: 'Agent ທີ່ໃຊ້ໄດ້',
- overview: 'ພາບລວມ',
- versionHistory: 'ປະຫວັດເວີຊັນ',
- publishedAt: 'ເຜີຍແຜ່ເມື່ອ',
- versionMarker: 'ເຄື່ອງໝາຍ',
- currentVersion: 'ເວີຊັນປັດຈຸບັນ',
- latestVersion: 'ເວີຊັນຫຼ້າສຸດ',
- latestPublished: 'ເຜີຍແຜ່ຫຼ້າສຸດ',
- riskLevel: 'ລະດັບຄວາມສ່ຽງ',
- riskReferenceHint:
- 'ລະດັບຄວາມສ່ຽງຖືກສ້າງຂຶ້ນໂດຍອັດຕະໂນມັດຈາກເນື້ອຫາແພັກເກັດ Skill ເພື່ອໃຊ້ເປັນບ່ອນອີງໃນການກວດສອບເທົ່ານັ້ນ.\nຕ່ຳ: ບໍ່ພົບຄວາມສ່ຽງທີ່ຊັດເຈນ\nກາງ: ມີສະຄຣິບ, dependencies, URL ພາຍນອກ ຫຼື ຕົວປ່ຽນສະພາບແວດລ້ອມ\nສູງ: ມີການສັ່ງການໄລຍະໄກ, ຂໍ້ມູນອ່ອນໄຫວ ຫຼື ຄຳສັ່ງທີ່ອັນຕະລາຍ',
- riskCheckResult: 'ຜົນການກວດສອບຄວາມປອດໄພ',
- noRiskFound: 'ບໍ່ພົບຄວາມສ່ຽງທີ່ຊັດເຈນ.',
- riskFilePath: 'ເສັ້ນທາງໄຟລ໌',
- riskKeyword: 'ຄຳສຳຄັນ ຫຼື ກົດທີ່ກົງກັນ',
- riskDescription: 'ລາຍລະອຽດຄວາມສ່ຽງ',
- publishHighRiskConfirm:
- 'Skill ນີ້ມີລາຍການທີ່ມີຄວາມສ່ຽງສູງ ແລະ ອາດມີການລັນສະຄຣິບ, ດາວໂຫຼດພາຍນອກ ຫຼື ເຂົ້າເຖິງຂໍ້ມູນອ່ອນໄຫວ. ຢືນຢັນການເຜີຍແຜ່ຫຼືບໍ່?',
- approve: 'ອະນຸມັດ',
- reject: 'ປະຕິເສດ',
- publish: 'ເຜີຍແຜ່',
- disable: 'ຍົກເລີກການເຜີຍແຜ່',
- customTarget: 'Agent ທີ່ກຳນົດເອງ',
- addCustomTarget: 'ເພີ່ມ Agent',
- installToTarget: 'ຕິດຕັ້ງໃສ່ Agent ທີ່ກຳນົດເອງ',
- hostSkillDir: 'ໂຟນເດີ Skill',
- hostSkillDirHelper: 'ປ້ອນເສັ້ນທາງໂຟນເດີ Skill ໃນ Node.',
- installMethod: 'ວິທີການຕິດຕັ້ງ',
- copy: 'ຄັດລອກ',
- extract: 'ແຕກໄຟລ໌',
- postInstallCommand: 'ຄຳສັ່ງຫຼັງການຕິດຕັ້ງ',
- localSource: 'ອັບໂຫຼດຈາກເຄື່ອງ',
- uploadDragTitle: 'ລາກແພັກເກັດ Skill ມາວາງທີ່ນີ້ ຫຼື ຄລິກເພື່ອອັບໂຫຼດ',
- uploadFormatLabel: 'ຮູບແບບ:',
- uploadFormatValue: '.zip, .7z, .tar, .tar.gz',
- uploadSizeLabel: 'ຂະໜາດໄຟລ໌:',
- uploadSizeValue: 'ບໍ່ເກີນ 5 MB ຕໍ່ໄຟລ໌',
- uploadRequirementLabel: 'ຂໍ້ກຳນົດແພັກເກັດ:',
- uploadRequirementPrefix: 'ແພັກເກັດ Skill ຕ້ອງມີ',
- onlySupportedArchive: 'ຮອງຮັບສະເພາະແພັກເກັດ Skill ນາມສະກຸນ .zip, .7z, .tar, ແລະ .tar.gz ເທົ່ານັ້ນ',
- uploadSizeExceeded: 'ແພັກເກັດ Skill ແຕ່ລະອັນຕ້ອງບໍ່ເກີນ 5 MB',
- uploadSuccess: 'ອັບໂຫຼດ Skill ສຳເລັດແລ້ວ ແລະ ກຳລັງລໍຖ້າການກວດສອບ.',
- versionAutoFillPlaceholder: 'ກວດພົບອັດຕະໂນມັດຈາກຊື່ໄຟລ໌ຖ້າເປັນໄປໄດ້. ຢືນຢັນ ຫຼື ປ້ອນເອງ',
- metadataOverwriteConfirm:
- 'ເວີຊັນໃນແພັກເກັດ Skill ຕ່າງຈາກທີ່ປ້ອນໄວ້. ຕ້ອງການໃຊ້ຂໍ້ມູນທີ່ປ້ອນໄວ້ແທນຫຼືບໍ່?',
- offlineNotice: 'ສະພາບແວດລ້ອມປັດຈຸບັນແມ່ນອອຟລາຍ. ສາມາດຕິດຕັ້ງໄດ້ສະເພາະ Skill ຈາກ Skill Store ພາຍໃນເຄື່ອງເທົ່ານັ້ນ.',
- publishConfirm: 'ເຜີຍແຜ່ Skill ນີ້ຫຼືບໍ່? Skill ທີ່ເຜີຍແຜ່ແລ້ວສາມາດຕິດຕັ້ງໄດ້ຈາກ Skill Store ພາຍໃນເຄື່ອງ.',
- disableConfirm: 'ຍົກເລີກການເຜີຍແຜ່ Skill ນີ້ຫຼືບໍ່? Skill ທີ່ຕິດຕັ້ງໃນ Agent ແລ້ວຈະບໍ່ໄດ້ຮັບຜົນກະທົບ.',
- deleteConfirm:
- 'ລຶບ Skill ນີ້ຫຼືບໍ່? ການດຳເນີນການນີ້ບໍ່ສາມາດກັບຄືນໄດ້. Skill ທີ່ຕິດຕັ້ງໃນ Agent ແລ້ວຈະບໍ່ໄດ້ຮັບຜົນກະທົບ.',
- rejectConfirm: 'ປະຕິເສດການກວດສອບ Skill ນີ້ຫຼືບໍ່? ມັນຈະຖືກປ່ຽນສະຖານະເປັນ "ປະຕິເສດ".',
- downloadPublishedOnly: 'ສາມາດດາວໂຫຼດໄດ້ສະເພາະແພັກເກັດ Skill ທີ່ເຜີຍແຜ່ແລ້ວເທົ່ານັ້ນ.',
- deleteTargetConfirm: 'ລຶບ Agent ທີ່ກຳນົດເອງນີ້ຫຼືບໍ່? ຜູ້ໃຊ້ຈະບໍ່ສາມາດເລືອກມັນໄດ້ອີກ.',
- noInstallTarget: 'ບໍ່ມີ Agent ທີ່ກຳນົດເອງໃຫ້ໃຊ້ງານ. ກະລຸນາກຳນົດເປົ້າໝາຍການຕິດຕັ້ງກ່ອນ.',
- postInstallConfirm:
- 'ເປົ້າໝາຍນີ້ມີຄຳສັ່ງຫຼັງການຕິດຕັ້ງ. ກະລຸນາຢືນຢັນວ່າຄຳສັ່ງນັ້ນເຊື່ອຖືໄດ້ກ່ອນທີ່ຈະລັນ.',
- status: {
- pending: 'ລໍຖ້າການກວດສອບ',
- approved: 'ອະນຸມັດແລ້ວ',
- published: 'ເຜີຍແຜ່ແລ້ວ',
- disabled: 'ຍົກເລີກການເຜີຍແຜ່',
- rejected: 'ປະຕິເສດແລ້ວ',
- deleted: 'ລຶບແລ້ວ',
+ overview: 'ພາບລວມ',
+ distribution: 'ການແຈກຢາຍ',
+ usageTrend: 'ແນວໂນ້ມການນຳໃຊ້',
+ distributionBy: 'ການແຈກຢາຍໂດຍ {0}',
+ unmatched: 'ບໍ່ກົງກັນ',
+ modelAccount: 'ບັນຊີໂມເດວ',
+ serviceProvider: 'ຜູ້ໃຫ້ບໍລິການ',
+ tokenUsage: 'ການນຳໃຊ້ Token',
+ percent: 'ເປີເຊັນ',
+ ranking: 'ການຈັດອັນດັບ',
+ rank: 'ອັນດັບ',
+ promptToken: 'Prompt Tokens',
+ completionToken: 'Completion Tokens',
+ totalToken: 'Token ທັງໝົດ',
+ cachedToken: 'Cached Tokens',
+ cacheHitRate: 'ອັດຕາການພົບ Cache',
+ activeUsers: 'ຜູ້ໃຊ້ທີ່ເຄື່ອນໄຫວ',
+ activeModels: 'ໂມເດວທີ່ເຄື່ອນໄຫວ',
+ failedRequests: 'ຄຳຂໍທີ່ລົ້ມເຫຼວ',
+ averageTokenPerRequest: 'Token ສະເລ່ຍ/ຄຳຂໍ',
+ callLogs: 'ບັນທຶກການເອີ້ນໃຊ້',
+ usageKeywordPlaceholder: 'ຄົ້ນຫາ Request ID / ໂມເດວ / ໂມເດວຕົ້ນທາງ / ຂໍ້ຄວາມຜິດພາດ',
+ attemptChain: 'ລຳດັບການລອງໃໝ່',
+ attemptIndex: 'ລຳດັບການເອີ້ນ',
+ noAttemptDetails: 'ຄຳຂໍນີ້ສຳເລັດໃນຄັ້ງດຽວ; ບໍ່ມີລາຍລະອຽດການສຳຮອງ',
+ input: 'ຂາເຂົ້າ',
+ output: 'ຂາອອກ',
+ total: 'ທັງໝົດ',
+ healthHealthy: 'ປົກກະຕິ',
+ healthCooldown: 'ກຳລັງພັກ (Cooldown)',
+ healthUnhealthy: 'ຜິດປົກກະຕິ',
+ healthDeleted: 'ລຶບແລ້ວ',
+ healthUnknown: 'ບໍ່ຮູ້ຈັກ',
+ validationModelMapEmpty: 'ຊື່ການຈັບຄູ່ໂມເດວບໍ່ສາມາດຫວ່າງໄດ້',
+ validationModelMapDuplicate: 'ໂມເດວທີ່ຮ້ອງຂໍ {0} ຊ້ຳກັນ',
+ validateAvailability: 'ກວດສອບການພ້ອມໃຊ້ງານຂອງບັນຊີ',
+ validateAvailabilityHelper: 'ສົ່ງຂໍ້ຄວາມຂະໜາດນ້ອຍກ່ອນບັນທຶກເພື່ອຢືນຢັນການໃຊ້ງານ API',
+ modelGroup: 'ກຸ່ມໂມເດວ',
+ availableModels: 'ໂມເດວທີ່ມີໃຫ້ໃຊ້',
+ modelGroupModels: 'ໂມເດວທີ່ຮ້ອງຂໍ',
+ modelGroupModelsPlaceholder: 'ເລືອກ ຫຼື ປ້ອນຊື່ໂມເດວທີ່ຮ້ອງຂໍ',
+ modelGroupModelsHelper:
+ 'ປ້ອນສະເພາະໂມເດວຕົ້ນທາງທີ່ມີຢູ່ຈິງ; Smart Route ຈະລອງໂມເດວຕາມລຳດັບ ແລະ ບໍ່ເຮັດ Load Balance ລະຫວ່າງໂມເດວ.',
+ modelGroupGuide:
+ 'ກຸ່ມໂມເດວຈະມີສະເພາະໂມເດວຕົ້ນທາງທີ່ມີຢູ່ຈິງ. auto ແມ່ນຊື່ໂມເດວສະເໝືອນທີ່ Client ໃຊ້ເມື່ອຮ້ອງຂໍ AI Gateway.',
+ modelGroupModelCount: '{0} ໂມເດວ',
+ contentCompliance: 'ການປະຕິບັດຕາມເນື້ອຫາ',
+ contentAction: 'ການດຳເນີນການ',
+ actionBlock: 'ບລັອກ',
+ actionAuditOnly: 'ກວດສອບຢ່າງດຽວ',
+ actionDropHistory: 'ຍົກເລີກປະຫວັດ',
+ severity: 'ລະດັບຄວາມຮຸນແຮງ',
+ severityHigh: 'ສູງ',
+ severityMedium: 'ກາງ',
+ severityLow: 'ຕ່ຳ',
+ sensitiveWord: 'ຄຳອ່ອນໄຫວ',
+ sensitiveGroup: 'ກຸ່ມຄຳອ່ອນໄຫວ',
+ sensitiveWordCount: 'ຈຳນວນຄຳ',
+ normalizedWord: 'ຄຳທີ່ປັບເປັນມາດຕະຖານ',
+ matchedWords: 'ຄຳທີ່ກົງກັນ',
+ matchedGroups: 'ກຸ່ມທີ່ກົງກັນ',
+ importResult: 'ນຳເຂົ້າແລ້ວ {0}, ຊ້ຳກັນ {1}, ບໍ່ຖືກຕ້ອງ {2}',
+ auditLogs: 'ບັນທຶກການກວດສອບ',
+ smartRoute: 'Smart Route',
+ smartRouteGuideTitle: 'ໃຊ້ model=auto ຢູ່ Client ເພື່ອເຂົ້າ Smart Route',
+ smartRouteGuideReady:
+ 'model=auto ຈະເລືອກຈາກກຸ່ມໂມເດວແບບງ່າຍ ຫຼື ຊັບຊ້ອນຕາມຄວາມຊັບຊ້ອນຂອງຄຳຮ້ອງຂໍ. ໂມເດວອື່ນຈະຖືກສົ່ງຕໍ່ຕາມປົກກະຕິ.',
+ smartRouteGuideNotReady:
+ 'ເປີດ Smart Route ແລະ ຕັ້ງຄ່າກຸ່ມໂມເດວແບບງ່າຍ/ຊັບຊ້ອນກ່ອນ, ຈາກນັ້ນໃຊ້ model=auto ຢູ່ Client.',
+ copyAutoModel: 'ຄັດລອກ auto',
+ goSmartRouteSetting: 'ໄປທີ່ການຕັ້ງຄ່າ',
+ smartRoutePolicy: 'ນະໂຍບາຍການກຳນົດເສັ້ນທາງ',
+ routeConfig: 'ການຕັ້ງຄ່າເສັ້ນທາງ',
+ embeddingConfig: 'ການຕັ້ງຄ່າ Embedding',
+ embeddingConfigDesc:
+ 'ໃຊ້ສຳລັບ Smart Route ແລະ ການຈັບຄູ່ຕົວຢ່າງເຊີງຄວາມໝາຍເພື່ອກວດສອບເນື້ອຫາ. ແນະນຳ: llama.cpp + Qwen3-Embedding-0.6B. ກະລຸນາຕັ້ງຄ່າກ່ອນສ້າງ Vector ຂອງຕົວຢ່າງໃໝ່.',
+ decisionConfig: 'ພາຣາມິເຕີການຕັດສິນໃຈ',
+ simpleModelGroup: 'ກຸ່ມໂມເດວແບບງ່າຍ',
+ complexModelGroup: 'ກຸ່ມໂມເດວແບບຊັບຊ້ອນ',
+ embeddingEndpoint: 'Endpoint',
+ embeddingModel: 'ໂມເດວ',
+ embeddingApiKey: 'API Key',
+ routeThreshold: 'ເກນການກຳນົດເສັ້ນທາງ',
+ routeThresholdHelper: 'ສຳລັບ Smart Route: ໃຊ້ການຈັບຄູ່ຕົວຢ່າງສະເພາະເມື່ອຄວາມຄ້າຍຄືຂອງຄຳຮ້ອງຂໍຮອດຄ່ານີ້.',
+ auditThreshold: 'ເກນການກວດສອບ',
+ auditThresholdHelper: 'ສຳລັບການກວດສອບເນື້ອຫາ: ຖືວ່າກົງກັບຕົວຢ່າງກວດສອບກໍຕໍ່ເມື່ອຄວາມຄ້າຍຄືຮອດຄ່ານີ້.',
+ topK: 'TopK',
+ topKHelper: 'ຈຳນວນຕົວຢ່າງທີ່ຄ້າຍຄືທີ່ສຸດທີ່ຈະປຽບທຽບໃນແຕ່ລະຄັ້ງ.',
+ members: 'ສະມາຊິກ',
+ samples: 'ຕົວຢ່າງ',
+ routeSamplesGuide:
+ 'ຕົວຢ່າງແມ່ນຄຳຮ້ອງຂໍແບບງ່າຍ/ຊັບຊ້ອນສຳລັບການຈັບຄູ່ຄວາມຄ້າຍຄືດ້ວຍ Embedding. ໃຫ້ໃຊ້ຄຳຮ້ອງຂໍຈິງຂອງຜູ້ໃຊ້ ແລ້ວສ້າງ ຫຼື ສ້າງ Vector ໃໝ່.',
+ rebuildVectors: 'ສ້າງ Vector ໃໝ່',
+ rebuildVectorsConfirm:
+ 'ການສ້າງ Vector ໃໝ່ຈະຮ້ອງຂໍບໍລິການ Embedding ໃຫ້ປະມວນຜົນຕົວຢ່າງ Smart Route ແລະ ການກວດສອບເນື້ອຫາອີກຄັ້ງ. ຕ້ອງການຕໍ່ບໍ?',
+ createVectorOnImport: 'ສ້າງ Vector ຫຼັງນຳເຂົ້າ',
+ createVectorOnImportHelper:
+ 'ເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ. ຖ້າຕັ້ງຄ່າ Embedding ແລ້ວ ວຽກເບື້ອງຫຼັງຈະສ້າງ Vector; ຖ້າບໍ່ມີ ຈະສ້າງສະເພາະຕົວຢ່າງ.',
+ route: 'ເສັ້ນທາງ',
+ audit: 'ການກວດສອບ',
+ auditSamples: 'ຕົວຢ່າງກວດສອບ',
+ sampleText: 'ຂໍ້ຄວາມ',
+ sampleLabel: 'ປ້າຍກຳກັບ',
+ vectorModel: 'ໂມເດວ Vector',
+ vectorDim: 'ມິຕິ',
+ threshold: 'ເກນ',
+ preview: 'ເບິ່ງຕົວຢ່າງ',
+ previewGuide:
+ 'ການສະແດງຕົວຢ່າງຈະທົດສອບວ່າຄຳຮ້ອງຂໍເປັນແບບງ່າຍ ຫຼື ຊັບຊ້ອນໂດຍບໍ່ເອີ້ນໂມເດວຕົ້ນທາງ. ແຫຼ່ງຜົນຕັດສິນມາຈາກການຈັບຄູ່ຕົວຢ່າງ ຫຼື ກົດເກນສຳຮອງ.',
+ previewPlaceholder: 'ປ້ອນຂໍ້ຄວາມຄຳຮ້ອງຂໍ',
+ confidence: 'ຄວາມໝັ້ນໃຈ',
+ bestSampleSimilarity: 'ຄວາມຄ້າຍຄືຂອງຕົວຢ່າງທີ່ດີທີ່ສຸດ',
+ source: 'ແຫຼ່ງທີ່ມາ',
+ sourceHeuristic: 'ອີງຕາມກົດເກນ',
+ sourceEmbedding: 'ການຈັບຄູ່ຕົວຢ່າງ',
+ latency: 'ຄວາມຫຼ້າຊ້າ',
+ decisionLogs: 'ລັອກການຕັດສິນໃຈ',
+ requestID: 'Request ID',
+ simple: 'ງ່າຍ',
+ complex: 'ຊັບຊ້ອນ',
+ sampleLabelSafe: 'ປອດໄພ',
+ sampleLabelReview: 'ກວດທົບທວນ',
+ sampleLabelBlock: 'ບລັອກ',
+ latencyMs: 'ຄວາມຫຼ້າຊ້າ (ms)',
+ smartRouteSettingGuide:
+ 'ຫຼັງຈາກເປີດໃຊ້ ມີພຽງຄຳຮ້ອງຂໍທີ່ໃຊ້ model=auto ເທົ່ານັ້ນທີ່ຈະເປີດ Smart Route. ກຸ່ມແບບງ່າຍໃຊ້ສຳລັບວຽກຕົ້ນທຶນຕ່ຳ; ກຸ່ມແບບຊັບຊ້ອນໃຊ້ສຳລັບວິເຄາະໂຄດ, ອອກແບບສະຖາປັດຕະຍະກຳ, ແກ້ໄຂບັນຫາ ແລະ ວຽກຄ້າຍຄືກັນ.',
+ sampleLabelPlaceholder: 'simple / complex / high',
+ sampleImportPlaceholder: 'ໜຶ່ງຕົວຢ່າງຕໍ່ແຖວ',
},
- agent: {
- common: 'ທົ່ວໄປ',
+ skillsHub: {
+ title: 'ສູນລວມທັກສະ (Skills Hub)',
+ upload: 'ອັບໂຫຼດທັກສະ',
+ importSkill: 'ນຳເຂົ້າທັກສະ',
+ repositoryAddress: 'ທີ່ຢູ່ຄັງເກັບ (Repository)',
+ repositoryGithubOnly: 'ຮອງຮັບສະເພາະທີ່ຢູ່ GitHub ເທົ່ານັ້ນ',
+ repositoryRef: 'Branch ຫຼື Tag',
+ repositoryRefPlaceholder: 'ຄ່າເລີ່ມຕົ້ນແມ່ນ main, ຖ້າລົ້ມເຫຼວຈະລອງ master',
+ repositoryDownloadPreview: 'URL ດາວໂຫຼດປາຍທາງ:',
+ packageURL: 'URL ຂອງແພັກເກັດ',
+ packageURLPlaceholder: 'ປ້ອນທີ່ຢູ່ແພັກເກັດ .zip',
+ importSuccess: 'ນຳເຂົ້າທັກສະສຳເລັດແລ້ວ ແລະ ກຳລັງລໍຖ້າການກວດສອບ.',
+ source: 'ແຫຼ່ງທີ່ມາ',
+ applicableAgent: 'Agent ທີ່ໃຊ້ໄດ້',
+ overview: 'ພາບລວມ',
+ versionHistory: 'ປະຫວັດເວີຊັນ',
+ publishedAt: 'ເຜີຍແຜ່ເມື່ອ',
+ versionMarker: 'ເຄື່ອງໝາຍ',
+ currentVersion: 'ເວີຊັນປັດຈຸບັນ',
+ latestVersion: 'ເວີຊັນຫຼ້າສຸດ',
+ latestPublished: 'ເຜີຍແຜ່ຫຼ້າສຸດ',
+ riskLevel: 'ລະດັບຄວາມສ່ຽງ',
+ riskReferenceHint:
+ 'ລະດັບຄວາມສ່ຽງຖືກສ້າງຂຶ້ນໂດຍອັດຕະໂນມັດຈາກເນື້ອຫາແພັກເກັດ Skill ເພື່ອໃຊ້ເປັນບ່ອນອີງໃນການກວດສອບເທົ່ານັ້ນ.\nຕ່ຳ: ບໍ່ພົບຄວາມສ່ຽງທີ່ຊັດເຈນ\nກາງ: ມີສະຄຣິບ, dependencies, URL ພາຍນອກ ຫຼື ຕົວປ່ຽນສະພາບແວດລ້ອມ\nສູງ: ມີການສັ່ງການໄລຍະໄກ, ຂໍ້ມູນອ່ອນໄຫວ ຫຼື ຄຳສັ່ງທີ່ອັນຕະລາຍ',
+ riskCheckResult: 'ຜົນການກວດສອບຄວາມປອດໄພ',
+ noRiskFound: 'ບໍ່ພົບຄວາມສ່ຽງທີ່ຊັດເຈນ.',
+ riskFilePath: 'ເສັ້ນທາງໄຟລ໌',
+ riskKeyword: 'ຄຳສຳຄັນ ຫຼື ກົດທີ່ກົງກັນ',
+ riskDescription: 'ລາຍລະອຽດຄວາມສ່ຽງ',
+ publishHighRiskConfirm:
+ 'Skill ນີ້ມີລາຍການທີ່ມີຄວາມສ່ຽງສູງ ແລະ ອາດມີການລັນສະຄຣິບ, ດາວໂຫຼດພາຍນອກ ຫຼື ເຂົ້າເຖິງຂໍ້ມູນອ່ອນໄຫວ. ຢືນຢັນການເຜີຍແຜ່ຫຼືບໍ່?',
+ approve: 'ອະນຸມັດ',
+ reject: 'ປະຕິເສດ',
+ publish: 'ເຜີຍແຜ່',
+ disable: 'ຍົກເລີກການເຜີຍແຜ່',
+ customTarget: 'Agent ທີ່ກຳນົດເອງ',
+ addCustomTarget: 'ເພີ່ມ Agent',
+ installToTarget: 'ຕິດຕັ້ງໃສ່ Agent ທີ່ກຳນົດເອງ',
+ hostSkillDir: 'ໂຟນເດີ Skill',
+ hostSkillDirHelper: 'ປ້ອນເສັ້ນທາງໂຟນເດີ Skill ໃນ Node.',
+ installMethod: 'ວິທີການຕິດຕັ້ງ',
+ copy: 'ຄັດລອກ',
+ extract: 'ແຕກໄຟລ໌',
+ postInstallCommand: 'ຄຳສັ່ງຫຼັງການຕິດຕັ້ງ',
+ localSource: 'ອັບໂຫຼດຈາກເຄື່ອງ',
+ uploadDragTitle: 'ລາກແພັກເກັດ Skill ມາວາງທີ່ນີ້ ຫຼື ຄລິກເພື່ອອັບໂຫຼດ',
+ uploadFormatLabel: 'ຮູບແບບ:',
+ uploadFormatValue: '.zip, .7z, .tar, .tar.gz',
+ uploadSizeLabel: 'ຂະໜາດໄຟລ໌:',
+ uploadSizeValue: 'ບໍ່ເກີນ 5 MB ຕໍ່ໄຟລ໌',
+ uploadRequirementLabel: 'ຂໍ້ກຳນົດແພັກເກັດ:',
+ uploadRequirementPrefix: 'ແພັກເກັດ Skill ຕ້ອງມີ',
+ onlySupportedArchive: 'ຮອງຮັບສະເພາະແພັກເກັດ Skill ນາມສະກຸນ .zip, .7z, .tar, ແລະ .tar.gz ເທົ່ານັ້ນ',
+ uploadSizeExceeded: 'ແພັກເກັດ Skill ແຕ່ລະອັນຕ້ອງບໍ່ເກີນ 5 MB',
+ uploadSuccess: 'ອັບໂຫຼດ Skill ສຳເລັດແລ້ວ ແລະ ກຳລັງລໍຖ້າການກວດສອບ.',
+ versionAutoFillPlaceholder: 'ກວດພົບອັດຕະໂນມັດຈາກຊື່ໄຟລ໌ຖ້າເປັນໄປໄດ້. ຢືນຢັນ ຫຼື ປ້ອນເອງ',
+ metadataOverwriteConfirm: 'ເວີຊັນໃນແພັກເກັດ Skill ຕ່າງຈາກທີ່ປ້ອນໄວ້. ຕ້ອງການໃຊ້ຂໍ້ມູນທີ່ປ້ອນໄວ້ແທນຫຼືບໍ່?',
+ metadataOverwriteConfirmWithVersions:
+ 'ເວີຊັນໃນແພັກເກດ Skill ແຕກຕ່າງຈາກຄ່າທີ່ປ້ອນປັດຈຸບັນ. ເວີຊັນແພັກເກດ: {packageVersion}; ເວີຊັນທີ່ປ້ອນ: {inputVersion}. ໃຊ້ຄ່າທີ່ປ້ອນປັດຈຸບັນແທນບໍ?',
+ offlineNotice:
+ 'ສະພາບແວດລ້ອມປັດຈຸບັນແມ່ນອອຟລາຍ. ສາມາດຕິດຕັ້ງໄດ້ສະເພາະ Skill ຈາກ Skill Store ພາຍໃນເຄື່ອງເທົ່ານັ້ນ.',
+ publishConfirm: 'ເຜີຍແຜ່ Skill ນີ້ຫຼືບໍ່? Skill ທີ່ເຜີຍແຜ່ແລ້ວສາມາດຕິດຕັ້ງໄດ້ຈາກ Skill Store ພາຍໃນເຄື່ອງ.',
+ disableConfirm: 'ຍົກເລີກການເຜີຍແຜ່ Skill ນີ້ຫຼືບໍ່? Skill ທີ່ຕິດຕັ້ງໃນ Agent ແລ້ວຈະບໍ່ໄດ້ຮັບຜົນກະທົບ.',
+ deleteConfirm:
+ 'ລຶບ Skill ນີ້ຫຼືບໍ່? ການດຳເນີນການນີ້ບໍ່ສາມາດກັບຄືນໄດ້. Skill ທີ່ຕິດຕັ້ງໃນ Agent ແລ້ວຈະບໍ່ໄດ້ຮັບຜົນກະທົບ.',
+ rejectConfirm: 'ປະຕິເສດການກວດສອບ Skill ນີ້ຫຼືບໍ່? ມັນຈະຖືກປ່ຽນສະຖານະເປັນ "ປະຕິເສດ".',
+ downloadPublishedOnly: 'ສາມາດດາວໂຫຼດໄດ້ສະເພາະແພັກເກັດ Skill ທີ່ເຜີຍແຜ່ແລ້ວເທົ່ານັ້ນ.',
+ deleteTargetConfirm: 'ລຶບ Agent ທີ່ກຳນົດເອງນີ້ຫຼືບໍ່? ຜູ້ໃຊ້ຈະບໍ່ສາມາດເລືອກມັນໄດ້ອີກ.',
+ noInstallTarget: 'ບໍ່ມີ Agent ທີ່ກຳນົດເອງໃຫ້ໃຊ້ງານ. ກະລຸນາກຳນົດເປົ້າໝາຍການຕິດຕັ້ງກ່ອນ.',
+ postInstallConfirm: 'ເປົ້າໝາຍນີ້ມີຄຳສັ່ງຫຼັງການຕິດຕັ້ງ. ກະລຸນາຢືນຢັນວ່າຄຳສັ່ງນັ້ນເຊື່ອຖືໄດ້ກ່ອນທີ່ຈະລັນ.',
+ status: {
+ pending: 'ລໍຖ້າການກວດສອບ',
+ approved: 'ອະນຸມັດແລ້ວ',
+ published: 'ເຜີຍແຜ່ແລ້ວ',
+ disabled: 'ຍົກເລີກການເຜີຍແຜ່',
+ rejected: 'ປະຕິເສດແລ້ວ',
+ deleted: 'ລຶບແລ້ວ',
+ },
+ agent: {
+ common: 'ທົ່ວໄປ',
+ },
+ risk: {
+ low: 'ຕ່ຳ',
+ medium: 'ກາງ',
+ high: 'ສູງ',
+ },
+ riskType: {
+ script_file: 'ໄຟລ໌ສະຄຣິບ',
+ dependency_manifest: 'ໄຟລ໌ Dependency',
+ external_url: 'URL ພາຍນອກ',
+ environment_variable: 'ຕົວປ່ຽນສະພາບແວດລ້ອມ',
+ dockerfile: 'Dockerfile',
+ command_execution: 'ການລັນຄຳສັ່ງ',
+ remote_script_execution: 'ການລັນສະຄຣິບໄລຍະໄກ',
+ eval_execution: 'ການລັນແບບໄດນາມິກ (Eval)',
+ base64_execution: 'ການລັນຫຼັງຖອດລະຫັດ Base64',
+ privileged_command: 'ຄຳສັ່ງທີ່ຕ້ອງໃຊ້ສິດສູງ (Sudo)',
+ dangerous_delete: 'ຄຳສັ່ງລຶບທີ່ອັນຕະລາຍ',
+ world_writable_permission: 'ການກຳນົດສິດທີ່ມີຄວາມສ່ຽງສູງ',
+ credential: 'ສົງໄສວ່າເປັນຂໍ້ມູນປະຈຳຕົວ (Credential)',
+ sensitive_path: 'ເສັ້ນທາງອ່ອນໄຫວ',
+ suspicious_download_execute: 'ການດາວໂຫຼດ ແລະ ລັນທີ່ໜ້າສົງໄສ',
+ binary_content: 'ເນື້ອຫາໄຟລ໌ Binary',
+ scan_truncated: 'ການສະແກນຖືກຕັດຕອນ',
+ },
+ riskDescriptionText: {
+ script_file: 'ມີໄຟລ໌ສະຄຣິບທີ່ອາດຈະລັນຄຳສັ່ງພາຍໃນເຄື່ອງ.',
+ dependency_manifest: 'ມີໄຟລ໌ dependency ທີ່ອາດຈະດຶງຂໍ້ມູນພາຍນອກລະຫວ່າງການຕິດຕັ້ງ.',
+ external_url: 'ມີ URL ພາຍນອກ. ກະລຸນາກວດສອບວ່າທີ່ຢູ່ປາຍທາງເຊື່ອຖືໄດ້.',
+ environment_variable: 'ມີການປະກາດຕົວປ່ຽນສະພາບແວດລ້ອມ. ກະລຸນາກວດສອບຈຸດປະສົງ ແລະ ຄ່າເລີ່ມຕົ້ນ.',
+ dockerfile: 'ມີ Dockerfile ທີ່ອາດຈະກຳນົດຕັກກະການສ້າງ Image ຫຼື Runtime.',
+ command_execution: 'ມີການເອີ້ນໃຊ້ຄຳສັ່ງ. ກະລຸນາກວດສອບວ່າຕັກກະການລັນນັ້ນເຊື່ອຖືໄດ້.',
+ remote_script_execution: 'ມີຕັກກະທີ່ດາວໂຫຼດ ແລະ ລັນສະຄຣິບໄລຍະໄກໂດຍກົງ.',
+ eval_execution: 'ມີການລັນແບບໄດນາມິກຜ່ານ eval.',
+ base64_execution: 'ມີຕັກກະທີ່ລັນເນື້ອຫາຫຼັງຈາກຖອດລະຫັດ Base64.',
+ privileged_command: 'ມີຄຳສັ່ງຍົກລະດັບສິດ sudo.',
+ dangerous_delete: 'ມີຄຳສັ່ງລຶບທີ່ອັນຕະລາຍ.',
+ world_writable_permission: 'ມີການປ່ຽນແປງສິດເປັນ chmod 777.',
+ credential: 'ສົງໄສວ່າມີ API Key, Token, Secret, ຫຼື ລະຫັດຜ່ານ.',
+ sensitive_path: 'ມີການເຂົ້າເຖິງໂຟນເດີ ຫຼື ໄຟລ໌ທີ່ອ່ອນໄຫວ.',
+ suspicious_download_execute: 'ມີຕັກກະການດາວໂຫຼດອອກພາຍນອກ ຫຼື ດາວໂຫຼດແລ້ວລັນທີ່ໜ້າສົງໄສ.',
+ binary_content: 'ໄຟລ໌ມີ NUL bytes ແລະ ອາດຈະຊື່ອງເນື້ອຫາທີ່ລັນໄດ້ ຫຼື binary.',
+ scan_truncated: 'ໄຟລ໌ມີຂະໜາດເກີນກຳນົດການສະແກນ. ເນື້ອຫາທີ່ບໍ່ໄດ້ສະແກນຍັງຕ້ອງກວດສອບດ້ວຍຕົນເອງ.',
+ },
},
- risk: {
- low: 'ຕ່ຳ',
- medium: 'ກາງ',
- high: 'ສູງ',
+ benchmark: {
+ title: 'ທົດສອບປະສິດທິພາບ (Benchmark)',
+ launchCommand: 'ຄຳສັ່ງເລີ່ມຕົ້ນ',
+ retest: 'ທົດສອບໃໝ່',
+ statusRunning: 'ກຳລັງລັນ',
+ statusWaiting: 'ກຳລັງລໍຖ້າ',
+ base: 'ຂໍ້ມູນພື້ນຖານ',
+ backend: 'Backend',
+ baseUrl: 'Base URL',
+ endpoint: 'Endpoint',
+ tokenizer: 'Tokenizer',
+ tokenizerPlaceholder:
+ 'ເລືອກ ຫຼື ປ້ອນໂຟນເດີ tokenizer ພາຍໃນເຄື່ອງ, ເຊັ່ນ: /opt/1panel/tokenizers/DeepSeek-V3',
+ runConfig: 'ການກຳນົດຄ່າການລັນ',
+ rawResult: 'ຜົນລັບດິບ (Raw Result)',
+ resultMetrics: 'ຕົວຊີ້ວັດຜົນລັບ',
+ contextTokens: 'ຄວາມຍາວ Context',
+ contextTokensHelper: 'ຂີດຈຳກັດ input token ບວກກັບ output token ສຳລັບການທົດສອບນີ້.',
+ outputThroughput: 'Output Throughput',
+ outputThroughputHelper: 'ຈຳນວນ output tokens ທີ່ສ້າງໄດ້ຕໍ່ວິນາທີ. ຍິ່ງສູງຍິ່ງໄວ.',
+ totalThroughput: 'Total Throughput',
+ totalThroughputHelper: 'ຈຳນວນ input ແລະ output tokens ທີ່ປະມວນຜົນຕໍ່ວິນາທີ. ໃຊ້ວັດແທກຄວາມສາມາດໂດຍລວມ.',
+ firstTokenLatency: 'ຄວາມໜ່ວງຂອງ Token ທຳອິດ',
+ firstTokenLatencyHelper: 'ເວລາຕັ້ງແຕ່ສົ່ງຄຳຂໍຈົນເຖິງການໄດ້ຮັບ token ທຳອິດ. ຍິ່ງຕ່ຳຍິ່ງຕອບສະໜອງໄວ.',
+ tokenValueHelper: 'ປ້ອນຕົວເລກຈຳນວນເຕັມ ຫຼື ຄ່າ k, ເຊັ່ນ: 512, 1k, 32k',
+ numPrompts: 'ຈຳນວນ Prompt',
+ concurrency: 'ການເຮັດວຽກພ້ອມກັນ',
+ requestRate: 'ອັດຕາຄຳຂໍ',
+ requestRateUnlimited: 'ບໍ່ຈຳກັດ (max throughput)',
+ requestRateCustom: 'ກຳນົດ QPS ເອງ',
+ requestRateCustomPlaceholder: 'ຄຳຂໍຕໍ່ວິນາທີ, ເຊັ່ນ: 2.5',
+ successfulRequests: 'ຄຳຂໍທີ່ສຳເລັດ',
+ requestThroughput: 'Request Throughput',
+ mean: 'ຄ່າສະເລ່ຍ',
+ median: 'ຄ່າມັດທະຍະຖານ',
+ timeout: 'ໝົດເວລາ (ວິນາທີ)',
+ image: 'vLLM Image',
+ ignoreEos: 'ລະເວັ້ນ EOS',
+ extraHeaders: 'Headers ເພີ່ມເຕີມ',
},
- riskType: {
- script_file: 'ໄຟລ໌ສະຄຣິບ',
- dependency_manifest: 'ໄຟລ໌ Dependency',
- external_url: 'URL ພາຍນອກ',
- environment_variable: 'ຕົວປ່ຽນສະພາບແວດລ້ອມ',
- dockerfile: 'Dockerfile',
- command_execution: 'ການລັນຄຳສັ່ງ',
- remote_script_execution: 'ການລັນສະຄຣິບໄລຍະໄກ',
- eval_execution: 'ການລັນແບບໄດນາມິກ (Eval)',
- base64_execution: 'ການລັນຫຼັງຖອດລະຫັດ Base64',
- privileged_command: 'ຄຳສັ່ງທີ່ຕ້ອງໃຊ້ສິດສູງ (Sudo)',
- dangerous_delete: 'ຄຳສັ່ງລຶບທີ່ອັນຕະລາຍ',
- world_writable_permission: 'ການກຳນົດສິດທີ່ມີຄວາມສ່ຽງສູງ',
- credential: 'ສົງໄສວ່າເປັນຂໍ້ມູນປະຈຳຕົວ (Credential)',
- sensitive_path: 'ເສັ້ນທາງອ່ອນໄຫວ',
- suspicious_download_execute: 'ການດາວໂຫຼດ ແລະ ລັນທີ່ໜ້າສົງໄສ',
- binary_content: 'ເນື້ອຫາໄຟລ໌ Binary',
- scan_truncated: 'ການສະແກນຖືກຕັດຕອນ',
+ gpu: {
+ gpu: 'ຕິດຕາມ GPU',
+ gpuHelper: 'ລະບົບກວດບໍ່ພົບຄຳສັ່ງ NVIDIA-SMI ຫຼື XPU-SMI. ກະລຸນາກວດສອບ ແລະ ລອງໃໝ່!',
+ process: 'ຂໍ້ມູນໂປຣເຊສ',
+ processCount: 'ຈຳນວນໂປຣເຊສ',
+ type: 'ປະເພດ',
+ typeG: 'Graphics',
+ typeC: 'Compute',
+ typeCG: 'Compute+Graphics',
+ processName: 'ຊື່ໂປຣເຊສ',
+ shr: 'Shared Memory',
+ temperatureHelper: 'ອຸນຫະພູມ GPU ທີ່ສູງເກີນໄປອາດເຮັດໃຫ້ປະສິດທິພາບຫຼຸດລົງ',
+ gpuUtil: 'ການໃຊ້ງານ GPU',
+ temperature: 'ອຸນຫະພູມ',
+ performanceState: 'ສະຖານະປະສິດທິພາບ',
+ powerUsage: 'ການໃຊ້ພະລັງງານ',
+ memoryUsage: 'ການໃຊ້ໜ່ວຍຄວາມຈຳ',
+ fanSpeed: 'ຄວາມໄວພັດລົມ',
+ power: 'ພະລັງງານ',
+ powerCurrent: 'ພະລັງງານປັດຈຸບັນ',
+ powerLimit: 'ຂີດຈຳກັດພະລັງງານ',
+ memory: 'ໜ່ວຍຄວາມຈຳ',
+ memoryUsed: 'ໃຊ້ໄປແລ້ວ',
+ memoryTotal: 'ທັງໝົດ',
+ percent: 'ການນຳໃຊ້',
+ base: 'ຂໍ້ມູນພື້ນຖານ',
+ driverVersion: 'ເວີຊັນ Driver',
+ cudaVersion: 'ເວີຊັນ CUDA',
+ processMemoryUsage: 'ການໃຊ້ໜ່ວຍຄວາມຈຳ',
+ performanceStateHelper: 'ຈາກ P0 (ປະສິດທິພາບສູງສຸດ) ເຖິງ P12 (ຕ່ຳສຸດ)',
+ busID: 'Bus Address',
+ persistenceMode: 'Persistence Mode',
+ enabled: 'ເປີດໃຊ້ງານ',
+ disabled: 'ປິດໃຊ້ງານ',
+ persistenceModeHelper: 'Persistence mode ຊ່ວຍໃຫ້ຕອບສະໜອງງານໄດ້ໄວຂຶ້ນ ແຕ່ຈະກິນໄຟໃນໂໝດ Standby ຫຼາຍຂຶ້ນ',
+ displayActive: 'GPU Initialization',
+ displayActiveT: 'ແມ່ນ',
+ displayActiveF: 'ບໍ່',
+ ecc: 'ເຕັກໂນໂລຊີ ECC',
+ computeMode: 'ໂໝດການຄຳນວນ',
+ default: 'ເລີ່ມຕົ້ນ',
+ exclusiveProcess: 'Exclusive Process',
+ exclusiveThread: 'Exclusive Thread',
+ prohibited: 'ຖືກຫ້າມ',
+ defaultHelper: 'Default: ໂປຣເຊສສາມາດລັນພ້ອມກັນໄດ້',
+ exclusiveProcessHelper: 'Exclusive Process: ມີພຽງ context ດຽວທີ່ໃຊ້ GPU ໄດ້ ແຕ່ແບ່ງປັນໃຫ້ຫຼາຍ thread ໄດ້',
+ exclusiveThreadHelper: 'Exclusive Thread: ມີພຽງ thread ດຽວໃນ context ທີ່ໃຊ້ GPU ໄດ້',
+ prohibitedHelper: 'Prohibited: ບໍ່ອະນຸຍາດໃຫ້ລັນໂປຣເຊສພ້ອມກັນ',
+ migModeHelper: 'ໃຊ້ສຳລັບສ້າງ MIG instances ເພື່ອແຍກສ່ວນ GPU ທາງກາຍະພາບ.',
+ migModeNA: 'ບໍ່ຮອງຮັບ',
+ current: 'ຕິດຕາມແບບ Real-time',
+ history: 'ບັນທຶກຍ້ອນຫຼັງ',
+ notSupport: 'ເວີຊັນ ຫຼື driver ປັດຈຸບັນບໍ່ຮອງຮັບການສະແດງຄ່ານີ້.',
},
- riskDescriptionText: {
- script_file: 'ມີໄຟລ໌ສະຄຣິບທີ່ອາດຈະລັນຄຳສັ່ງພາຍໃນເຄື່ອງ.',
- dependency_manifest:
- 'ມີໄຟລ໌ dependency ທີ່ອາດຈະດຶງຂໍ້ມູນພາຍນອກລະຫວ່າງການຕິດຕັ້ງ.',
- external_url: 'ມີ URL ພາຍນອກ. ກະລຸນາກວດສອບວ່າທີ່ຢູ່ປາຍທາງເຊື່ອຖືໄດ້.',
- environment_variable: 'ມີການປະກາດຕົວປ່ຽນສະພາບແວດລ້ອມ. ກະລຸນາກວດສອບຈຸດປະສົງ ແລະ ຄ່າເລີ່ມຕົ້ນ.',
- dockerfile: 'ມີ Dockerfile ທີ່ອາດຈະກຳນົດຕັກກະການສ້າງ Image ຫຼື Runtime.',
- command_execution:
- 'ມີການເອີ້ນໃຊ້ຄຳສັ່ງ. ກະລຸນາກວດສອບວ່າຕັກກະການລັນນັ້ນເຊື່ອຖືໄດ້.',
- remote_script_execution: 'ມີຕັກກະທີ່ດາວໂຫຼດ ແລະ ລັນສະຄຣິບໄລຍະໄກໂດຍກົງ.',
- eval_execution: 'ມີການລັນແບບໄດນາມິກຜ່ານ eval.',
- base64_execution: 'ມີຕັກກະທີ່ລັນເນື້ອຫາຫຼັງຈາກຖອດລະຫັດ Base64.',
- privileged_command: 'ມີຄຳສັ່ງຍົກລະດັບສິດ sudo.',
- dangerous_delete: 'ມີຄຳສັ່ງລຶບທີ່ອັນຕະລາຍ.',
- world_writable_permission: 'ມີການປ່ຽນແປງສິດເປັນ chmod 777.',
- credential: 'ສົງໄສວ່າມີ API Key, Token, Secret, ຫຼື ລະຫັດຜ່ານ.',
- sensitive_path: 'ມີການເຂົ້າເຖິງໂຟນເດີ ຫຼື ໄຟລ໌ທີ່ອ່ອນໄຫວ.',
- suspicious_download_execute: 'ມີຕັກກະການດາວໂຫຼດອອກພາຍນອກ ຫຼື ດາວໂຫຼດແລ້ວລັນທີ່ໜ້າສົງໄສ.',
- binary_content: 'ໄຟລ໌ມີ NUL bytes ແລະ ອາດຈະຊື່ອງເນື້ອຫາທີ່ລັນໄດ້ ຫຼື binary.',
- scan_truncated: 'ໄຟລ໌ມີຂະໜາດເກີນກຳນົດການສະແກນ. ເນື້ອຫາທີ່ບໍ່ໄດ້ສະແກນຍັງຕ້ອງກວດສອບດ້ວຍຕົນເອງ.',
+ mcp: {
+ server: 'MCP Server',
+ baseUrl: 'ເສັ້ນທາງການເຂົ້າເຖິງພາຍນອກ',
+ baseUrlHelper: 'ຕົວຢ່າງ: http://192.168.1.2:8000',
+ ssePath: 'ເສັ້ນທາງ SSE',
+ ssePathHelper: 'ຕົວຢ່າງ: /sse, ລະວັງບໍ່ໃຫ້ຊ້ຳກັບ server ອື່ນ',
+ environment: 'ຕົວປ່ຽນສະພາບແວດລ້ອມ',
+ envKey: 'ຊື່ຕົວປ່ຽນ',
+ envValue: 'ຄ່າຕົວປ່ຽນ',
+ externalUrl: 'ທີ່ຢູ່ການເຊື່ອມຕໍ່ພາຍນອກ',
+ operatorHelper: 'ຈະດຳເນີນການ {1} ໃນ {0}, ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ domain: 'ທີ່ຢູ່ເຂົ້າເຖິງເລີ່ມຕົ້ນ',
+ domainHelper: 'ຕົວຢ່າງ: 192.168.1.1 ຫຼື example.com',
+ bindDomain: 'ຜູກເວັບໄຊ',
+ commandPlaceHolder: 'ປັດຈຸບັນຮອງຮັບສະເພາະຄຳສັ່ງ npx ແລະ binary',
+ importMcpJson: 'ນຳເຂົ້າການກຳນົດຄ່າ MCP Server',
+ importMcpJsonError: 'ໂຄງສ້າງ mcpServers ບໍ່ຖືກຕ້ອງ',
+ bindDomainHelper:
+ 'ຫຼັງຈາກຜູກເວັບໄຊແລ້ວ ມັນຈະປ່ຽນທີ່ຢູ່ເຂົ້າເຖິງຂອງ MCP Server ທັງໝົດ ແລະ ປິດການເຂົ້າເຖິງພອດຈາກພາຍນອກ',
+ outputTransport: 'ປະເພດ Output',
+ streamableHttpPath: 'ເສັ້ນທາງ Streaming',
+ streamableHttpPathHelper: 'ຕົວຢ່າງ: /mcp, ລະວັງບໍ່ໃຫ້ຊ້ຳກັບ Server ອື່ນ',
+ npxHelper: 'ເໝາະສຳລັບ mcp ທີ່ເລີ່ມດ້ວຍ npx ຫຼື binary',
+ uvxHelper: 'ເໝາະສຳລັບ mcp ທີ່ເລີ່ມດ້ວຍ uvx',
+ protocolVersion: 'ເວີຊັນ Protocol',
+ protocolVersionHelper: 'ໃຊ້ສະເພາະກັບ Streamable HTTP ເພື່ອເລີ່ມຕົ້ນ stdio MCP Server ອັດຕະໂນມັດ',
+ gatewayArgsHelper:
+ 'ອາກິວເມັນຈະຖືກຕໍ່ທ້າຍຄຳສັ່ງ supergateway. ບໍ່ສາມາດປ່ຽນອາກິວເມັນ transport, port, path ແລະ protocol ທີ່ 1Panel ຈັດການໄດ້',
+ testConnection: 'ທົດສອບການເຊື່ອມຕໍ່',
+ connectionSuccess: 'ເຊື່ອມຕໍ່ສຳເລັດ',
+ connectionFailed: 'ເຊື່ອມຕໍ່ລົ້ມເຫຼວ',
+ },
+ tensorRT: {
+ llm: 'TensorRT LLM',
+ modelDir: 'ໂຟນເດີໂມເດວ',
+ commandHelper: 'ຖ້າຕ້ອງການເຂົ້າເຖິງຈາກພາຍນອກ ໃຫ້ກຳນົດພອດໃນຄຳສັ່ງໃຫ້ກົງກັບພອດຂອງແອັບພລິເຄຊັນ',
+ imageAlert: 'ເນື່ອງຈາກ Image ມີຂະໜາດໃຫຍ່ ແນະນຳໃຫ້ດາວໂຫຼດ Image ມາວາງໄວ້ໃນ server ກ່ອນການຕິດຕັ້ງ',
+ modelSpeedup: 'ເປີດໃຊ້ການເລັ່ງຄວາມໄວໂມເດວ',
+ modelType: 'ປະເພດໂມເດວ',
},
},
- benchmark: {
- title: 'ທົດສອບປະສິດທິພາບ (Benchmark)',
- launchCommand: 'ຄຳສັ່ງເລີ່ມຕົ້ນ',
- retest: 'ທົດສອບໃໝ່',
- statusRunning: 'ກຳລັງລັນ',
- statusWaiting: 'ກຳລັງລໍຖ້າ',
- base: 'ຂໍ້ມູນພື້ນຖານ',
- backend: 'Backend',
- baseUrl: 'Base URL',
- endpoint: 'Endpoint',
- tokenizer: 'Tokenizer',
- tokenizerPlaceholder:
- 'ເລືອກ ຫຼື ປ້ອນໂຟນເດີ tokenizer ພາຍໃນເຄື່ອງ, ເຊັ່ນ: /opt/1panel/tokenizers/DeepSeek-V3',
- runConfig: 'ການກຳນົດຄ່າການລັນ',
- rawResult: 'ຜົນລັບດິບ (Raw Result)',
- resultMetrics: 'ຕົວຊີ້ວັດຜົນລັບ',
- contextTokens: 'ຄວາມຍາວ Context',
- contextTokensHelper: 'ຂີດຈຳກັດ input token ບວກກັບ output token ສຳລັບການທົດສອບນີ້.',
- outputThroughput: 'Output Throughput',
- outputThroughputHelper: 'ຈຳນວນ output tokens ທີ່ສ້າງໄດ້ຕໍ່ວິນາທີ. ຍິ່ງສູງຍິ່ງໄວ.',
- totalThroughput: 'Total Throughput',
- totalThroughputHelper: 'ຈຳນວນ input ແລະ output tokens ທີ່ປະມວນຜົນຕໍ່ວິນາທີ. ໃຊ້ວັດແທກຄວາມສາມາດໂດຍລວມ.',
- firstTokenLatency: 'ຄວາມໜ່ວງຂອງ Token ທຳອິດ',
- firstTokenLatencyHelper:
- 'ເວລາຕັ້ງແຕ່ສົ່ງຄຳຂໍຈົນເຖິງການໄດ້ຮັບ token ທຳອິດ. ຍິ່ງຕ່ຳຍິ່ງຕອບສະໜອງໄວ.',
- tokenValueHelper: 'ປ້ອນຕົວເລກຈຳນວນເຕັມ ຫຼື ຄ່າ k, ເຊັ່ນ: 512, 1k, 32k',
- numPrompts: 'ຈຳນວນ Prompt',
- concurrency: 'ການເຮັດວຽກພ້ອມກັນ',
- requestRate: 'ອັດຕາຄຳຂໍ',
- requestRateUnlimited: 'ບໍ່ຈຳກັດ (max throughput)',
- requestRateCustom: 'ກຳນົດ QPS ເອງ',
- requestRateCustomPlaceholder: 'ຄຳຂໍຕໍ່ວິນາທີ, ເຊັ່ນ: 2.5',
- successfulRequests: 'ຄຳຂໍທີ່ສຳເລັດ',
- requestThroughput: 'Request Throughput',
- mean: 'ຄ່າສະເລ່ຍ',
- median: 'ຄ່າມັດທະຍະຖານ',
- timeout: 'ໝົດເວລາ (ວິນາທີ)',
- image: 'vLLM Image',
- ignoreEos: 'ລະເວັ້ນ EOS',
- extraHeaders: 'Headers ເພີ່ມເຕີມ',
- },
- gpu: {
- gpu: 'ຕິດຕາມ GPU',
- gpuHelper: 'ລະບົບກວດບໍ່ພົບຄຳສັ່ງ NVIDIA-SMI ຫຼື XPU-SMI. ກະລຸນາກວດສອບ ແລະ ລອງໃໝ່!',
- process: 'ຂໍ້ມູນໂປຣເຊສ',
- processCount: 'ຈຳນວນໂປຣເຊສ',
- type: 'ປະເພດ',
- typeG: 'Graphics',
- typeC: 'Compute',
- typeCG: 'Compute+Graphics',
- processName: 'ຊື່ໂປຣເຊສ',
- shr: 'Shared Memory',
- temperatureHelper: 'ອຸນຫະພູມ GPU ທີ່ສູງເກີນໄປອາດເຮັດໃຫ້ປະສິດທິພາບຫຼຸດລົງ',
- gpuUtil: 'ການໃຊ້ງານ GPU',
- temperature: 'ອຸນຫະພູມ',
- performanceState: 'ສະຖານະປະສິດທິພາບ',
- powerUsage: 'ການໃຊ້ພະລັງງານ',
- memoryUsage: 'ການໃຊ້ໜ່ວຍຄວາມຈຳ',
- fanSpeed: 'ຄວາມໄວພັດລົມ',
- power: 'ພະລັງງານ',
- powerCurrent: 'ພະລັງງານປັດຈຸບັນ',
- powerLimit: 'ຂີດຈຳກັດພະລັງງານ',
- memory: 'ໜ່ວຍຄວາມຈຳ',
- memoryUsed: 'ໃຊ້ໄປແລ້ວ',
- memoryTotal: 'ທັງໝົດ',
- percent: 'ການນຳໃຊ້',
- base: 'ຂໍ້ມູນພື້ນຖານ',
- driverVersion: 'ເວີຊັນ Driver',
- cudaVersion: 'ເວີຊັນ CUDA',
- processMemoryUsage: 'ການໃຊ້ໜ່ວຍຄວາມຈຳ',
- performanceStateHelper: 'ຈາກ P0 (ປະສິດທິພາບສູງສຸດ) ເຖິງ P12 (ຕ່ຳສຸດ)',
- busID: 'Bus Address',
- persistenceMode: 'Persistence Mode',
- enabled: 'ເປີດໃຊ້ງານ',
- disabled: 'ປິດໃຊ້ງານ',
- persistenceModeHelper:
- 'Persistence mode ຊ່ວຍໃຫ້ຕອບສະໜອງງານໄດ້ໄວຂຶ້ນ ແຕ່ຈະກິນໄຟໃນໂໝດ Standby ຫຼາຍຂຶ້ນ',
- displayActive: 'GPU Initialization',
- displayActiveT: 'ແມ່ນ',
- displayActiveF: 'ບໍ່',
- ecc: 'ເຕັກໂນໂລຊີ ECC',
- computeMode: 'ໂໝດການຄຳນວນ',
- default: 'ເລີ່ມຕົ້ນ',
- exclusiveProcess: 'Exclusive Process',
- exclusiveThread: 'Exclusive Thread',
- prohibited: 'ຖືກຫ້າມ',
- defaultHelper: 'Default: ໂປຣເຊສສາມາດລັນພ້ອມກັນໄດ້',
- exclusiveProcessHelper:
- 'Exclusive Process: ມີພຽງ context ດຽວທີ່ໃຊ້ GPU ໄດ້ ແຕ່ແບ່ງປັນໃຫ້ຫຼາຍ thread ໄດ້',
- exclusiveThreadHelper: 'Exclusive Thread: ມີພຽງ thread ດຽວໃນ context ທີ່ໃຊ້ GPU ໄດ້',
- prohibitedHelper: 'Prohibited: ບໍ່ອະນຸຍາດໃຫ້ລັນໂປຣເຊສພ້ອມກັນ',
- migModeHelper: 'ໃຊ້ສຳລັບສ້າງ MIG instances ເພື່ອແຍກສ່ວນ GPU ທາງກາຍະພາບ.',
- migModeNA: 'ບໍ່ຮອງຮັບ',
- current: 'ຕິດຕາມແບບ Real-time',
- history: 'ບັນທຶກຍ້ອນຫຼັງ',
- notSupport: 'ເວີຊັນ ຫຼື driver ປັດຈຸບັນບໍ່ຮອງຮັບການສະແດງຄ່ານີ້.',
- },
- mcp: {
- server: 'MCP Server',
- baseUrl: 'ເສັ້ນທາງການເຂົ້າເຖິງພາຍນອກ',
- baseUrlHelper: 'ຕົວຢ່າງ: http://192.168.1.2:8000',
- ssePath: 'ເສັ້ນທາງ SSE',
- ssePathHelper: 'ຕົວຢ່າງ: /sse, ລະວັງບໍ່ໃຫ້ຊ້ຳກັບ server ອື່ນ',
- environment: 'ຕົວປ່ຽນສະພາບແວດລ້ອມ',
- envKey: 'ຊື່ຕົວປ່ຽນ',
- envValue: 'ຄ່າຕົວປ່ຽນ',
- externalUrl: 'ທີ່ຢູ່ການເຊື່ອມຕໍ່ພາຍນອກ',
- operatorHelper: 'ຈະດຳເນີນການ {1} ໃນ {0}, ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- domain: 'ທີ່ຢູ່ເຂົ້າເຖິງເລີ່ມຕົ້ນ',
- domainHelper: 'ຕົວຢ່າງ: 192.168.1.1 ຫຼື example.com',
- bindDomain: 'ຜູກເວັບໄຊ',
- commandPlaceHolder: 'ປັດຈຸບັນຮອງຮັບສະເພາະຄຳສັ່ງ npx ແລະ binary',
- importMcpJson: 'ນຳເຂົ້າການກຳນົດຄ່າ MCP Server',
- importMcpJsonError: 'ໂຄງສ້າງ mcpServers ບໍ່ຖືກຕ້ອງ',
- bindDomainHelper:
- 'ຫຼັງຈາກຜູກເວັບໄຊແລ້ວ ມັນຈະປ່ຽນທີ່ຢູ່ເຂົ້າເຖິງຂອງ MCP Server ທັງໝົດ ແລະ ປິດການເຂົ້າເຖິງພອດຈາກພາຍນອກ',
- outputTransport: 'ປະເພດ Output',
- streamableHttpPath: 'ເສັ້ນທາງ Streaming',
- streamableHttpPathHelper: 'ຕົວຢ່າງ: /mcp, ລະວັງບໍ່ໃຫ້ຊ້ຳກັບ Server ອື່ນ',
- npxHelper: 'ເໝາະສຳລັບ mcp ທີ່ເລີ່ມດ້ວຍ npx ຫຼື binary',
- uvxHelper: 'ເໝາະສຳລັບ mcp ທີ່ເລີ່ມດ້ວຍ uvx',
- protocolVersion: 'ເວີຊັນ Protocol',
- protocolVersionHelper:
- 'ໃຊ້ສະເພາະກັບ Streamable HTTP ເພື່ອເລີ່ມຕົ້ນ stdio MCP Server ອັດຕະໂນມັດ',
- testConnection: 'ທົດສອບການເຊື່ອມຕໍ່',
- connectionSuccess: 'ເຊື່ອມຕໍ່ສຳເລັດ',
- connectionFailed: 'ເຊື່ອມຕໍ່ລົ້ມເຫຼວ',
- },
- tensorRT: {
- llm: 'TensorRT LLM',
- modelDir: 'ໂຟນເດີໂມເດວ',
- commandHelper:
- 'ຖ້າຕ້ອງການເຂົ້າເຖິງຈາກພາຍນອກ ໃຫ້ກຳນົດພອດໃນຄຳສັ່ງໃຫ້ກົງກັບພອດຂອງແອັບພລິເຄຊັນ',
- imageAlert:
- 'ເນື່ອງຈາກ Image ມີຂະໜາດໃຫຍ່ ແນະນຳໃຫ້ດາວໂຫຼດ Image ມາວາງໄວ້ໃນ server ກ່ອນການຕິດຕັ້ງ',
- modelSpeedup: 'ເປີດໃຊ້ການເລັ່ງຄວາມໄວໂມເດວ',
- modelType: 'ປະເພດໂມເດວ',
- },
-},
-container: {
- createByCommand: 'ສ້າງດ້ວຍຄຳສັ່ງ',
- importContainerBackupTip: 'ນຳເຂົ້າໄຟລ໌ສຳຮອງຄອນເທນເນີ, ຮອງຮັບສະເພາະ .tar.gz',
- importComposeBackupTip: 'ນຳເຂົ້າໄຟລ໌ສຳຮອງ compose, ຮອງຮັບສະເພາະ .tar.gz',
- stopContainerBeforeBackup: 'ຢຸດຄອນເທນເນີກ່ອນການສຳຮອງ',
- stopComposeBeforeBackup: 'ຢຸດ compose ກ່ອນການສຳຮອງ',
- stopBeforeBackupHelper:
- 'ເມື່ອເປີດໃຊ້ງານ, ຄອນເທນເນີ ຫຼື ບໍລິການ compose ຈະຖືກຢຸດກ່ອນການສຳຮອງ ແລະ ຈະເລີ່ມໃໝ່ອັດຕະໂນມັດຫຼັງຈາກສຳເລັດ ເພື່ອຄວາມຖືກຕ້ອງຂອງຂໍ້ມູນ.',
- commandInput: 'ປ້ອນຄຳສັ່ງ',
- commandRule: 'ກະລຸນາປ້ອນຄຳສັ່ງ docker run ທີ່ຖືກຕ້ອງ!',
- commandHelper: 'ຄຳສັ່ງນີ້ຈະລັນໃນ server ເພື່ອສ້າງຄອນເທນເນີ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- updateHelper1: 'ກວດພົບວ່າຄອນເທນເນີນີ້ນຳມາຈາກ App Store. ກະລຸນາສັງເກດສອງຂໍ້ດັ່ງນີ້:',
- updateHelper2:
- '1. ການປ່ຽນແປງປັດຈຸບັນຈະບໍ່ຖືກຊິງໂຄໄນກັບແອັບທີ່ຕິດຕັ້ງໃນ App Store.',
- updateHelper3:
- '2. ຖ້າທ່ານແກ້ໄຂແອັບໃນໜ້າທີ່ຕິດຕັ້ງແລ້ວ, ເນື້ອຫາທີ່ແກ້ໄຂໃນຕອນນີ້ຈະໃຊ້ການບໍ່ໄດ້.',
- updateHelper4: 'ການແກ້ໄຂຄອນເທນເນີຕ້ອງມີການສ້າງໃໝ່ ແລະ ຂໍ້ມູນທີ່ບໍ່ໄດ້ເກັບໄວ້ຖາວອນຈະສູນຫາຍ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- containerList: 'ລາຍການຄອນເທນເນີ',
- operatorHelper: 'ລັນ {0} ໃນຄອນເທນເນີຕໍ່ໄປນີ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- operatorAppHelper: 'ລັນ "{0}" ໃນຄອນເທນເນີເຫຼົ່ານີ້. ບໍລິການທີ່ກຳນົດລັນຢື່ອາດຈະໄດ້ຮັບຜົນກະທົບ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- containerDeleteHelper:
- "ກວດພົບວ່າຄອນເທນເນີນີ້ນຳມາຈາກ App Store. ການລຶບຄອນເທນເນີຈະບໍ່ເປັນການລຶບອອກຈາກ 1Panel ຢ່າງຖາວອນ. ເພື່ອລຶບອອກທັງໝົດ ໃຫ້ໄປທີ່ App Store -> 'ຕິດຕັ້ງແລ້ວ' ຫຼື 'Runtime Environment'. ຕ້ອງການຕໍ່ຫຼືບໍ່?",
- start: 'ເລີ່ມ',
- stop: 'ຢຸດ',
- restart: 'ເລີ່ມໃໝ່',
- kill: 'ບັງຄັບຢຸດ (Kill)',
- pause: 'ພັກຊົ່ວຄາວ',
- unpause: 'ກັບມາເຮັດວຽກ',
- rename: 'ປ່ຽນຊື່',
- remove: 'ລຶບ',
- removeAll: 'ລຶບທັງໝົດ',
- containerPrune: 'ລ້າງຂໍ້ມູນ (Prune)',
- containerPruneHelper1: 'ການດຳເນີນການນີ້ຈະລຶບຄອນເທນເນີທັງໝົດທີ່ຢູ່ໃນສະຖານະຢຸດ.',
- containerPruneHelper2:
- 'ຖ້າຄອນເທນເນີນຳມາຈາກ App Store, ທ່ານຕ້ອງໄປທີ່ "App Store -> ຕິດຕັ້ງແລ້ວ" ແລະ ຄລິກປຸ່ມ "ສ້າງໃໝ່" ເພື່ອຕິດຕັ້ງຄືນໃໝ່ຫຼັງຈາກລ້າງຂໍ້ມູນ.',
- containerPruneHelper3: 'ການດຳເນີນການນີ້ບໍ່ສາມາດກັບຄືນໄດ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- imagePrune: 'ລ້າງຂໍ້ມູນ Image',
- imagePruneSome: 'ລ້າງ Image ທີ່ບໍ່ມີຊື່ (none)',
- imagePruneSomeEmpty: 'ບໍ່ມີ Image ທີ່ຕິດແທັກ "none" ໃຫ້ລ້າງ.',
- imagePruneSomeHelper: 'ລ້າງ Image ທີ່ມີແທັກ "none" ທີ່ບໍ່ໄດ້ຖືກໃຊ້ໂດຍຄອນເທນເນີໃດໆ.',
- imagePruneAll: 'ລ້າງ Image ທີ່ບໍ່ໄດ້ໃຊ້',
- imagePruneAllEmpty: 'ບໍ່ມີ Image ທີ່ບໍ່ໄດ້ໃຊ້ໃຫ້ລ້າງ.',
- imagePruneAllHelper: 'ລ້າງ Image ທັງໝົດທີ່ບໍ່ໄດ້ຖືກໃຊ້ໂດຍຄອນເທນເນີໃດໆ.',
- networkPrune: 'ລ້າງ Network',
- networkPruneHelper: 'ການດຳເນີນການນີ້ຈະລຶບ Network ທັງໝົດທີ່ບໍ່ໄດ້ໃຊ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- volumePrune: 'ລ້າງ Volume',
- volumePruneHelper: 'ການດຳເນີນການນີ້ຈະລຶບ Volume ພາຍໃນເຄື່ອງທັງໝົດທີ່ບໍ່ໄດ້ໃຊ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- cleanSuccess: 'ດຳເນີນການສຳເລັດ, ຈຳນວນທີ່ລ້າງ: {0}!',
- cleanSuccessWithSpace:
- 'ດຳເນີນການສຳເລັດ. ຈຳນວນ disk ທີ່ລ້າງແມ່ນ {0}. ຄືນພື້ນທີ່ disk ໄດ້ {1}!',
- unExposedPort: 'ທີ່ຢູ່ພອດປັດຈຸບັນແມ່ນ 127.0.0.1, ເຊິ່ງບໍ່ສາມາດເປີດໃຫ້ເຂົ້າເຖິງຈາກພາຍນອກໄດ້.',
- upTime: 'ເວລາທີ່ເຮັດວຽກ',
- fetch: 'ດຶງຂໍ້ມູນ',
- lines: 'ຈຳນວນແຖວ',
- linesHelper: 'ກະລຸນາປ້ອນຈຳນວນແຖວບັນທຶກທີ່ຖືກຕ້ອງ!',
- downloadLinesHelper: 'ເລືອກ ຫຼື ປ້ອນຈຳນວນແຖວບັນທຶກທີ່ຈະດາວໂຫຼດ.',
- lastDay: 'ມື້ທີ່ຜ່ານມາ',
- last4Hour: '4 ຊົ່ວໂມງທີ່ຜ່ານມາ',
- lastHour: 'ຊົ່ວໂມງທີ່ຜ່ານມາ',
- last10Min: '10 ນາທີທີ່ຜ່ານມາ',
- cleanLog: 'ລ້າງບັນທຶກ',
- cleanLogscope: 'ປະເພດການລ້າງ',
- downLogHelper1: 'ຈະດາວໂຫຼດບັນທຶກທັງໝົດຈາກຄອນເທນເນີ {0}. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- downLogHelper2: 'ຈະດາວໂຫຼດບັນທຶກ {1} ແຖວຫຼ້າສຸດຈາກຄອນເທນເນີ {0}. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- cleanLogHelper: 'ການດຳເນີນການນີ້ຕ້ອງມີການເລີ່ມຄອນເທນເນີໃໝ່ ແລະ ບໍ່ສາມາດກັບຄືນໄດ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- newName: 'ຊື່ໃໝ່',
- workingDir: 'ໂຟນເດີເຮັດວຽກ',
- composeFileMissing: 'ກວດບໍ່ພົບໄຟລ໌ Compose',
- source: 'ການໃຊ້ຊັບພະຍາກອນ',
- cpuUsage: 'ການໃຊ້ CPU',
- cpuTotal: 'CPU ທັງໝົດ',
- core: 'Core',
- memUsage: 'ການໃຊ້ໜ່ວຍຄວາມຈຳ',
- memTotal: 'ຂີດຈຳກັດໜ່ວຍຄວາມຈຳ',
- memCache: 'Memory Cache',
- loadSize: 'ກວດສອບຂະໜາດຄອນເທນເນີ',
- ip: 'ທີ່ຢູ່ IP',
- cpuShare: 'CPU Shares',
- cpuShareHelper:
- 'Docker ໃຊ້ຄ່າພື້ນຖານ 1024 ສຳລັບ CPU shares. ທ່ານສາມາດເພີ່ມຄ່ານີ້ເພື່ອໃຫ້ຄອນເທນເນີໄດ້ເວລາ CPU ຫຼາຍຂຶ້ນ.',
- inputIpv4: 'ຕົວຢ່າງ: 192.168.1.1',
- inputIpv6: 'ຕົວຢ່າງ: 2001:0db8:85a3:0000:0000:8a2e:0370:7334',
- diskUsage: 'ການໃຊ້ Disk',
- localVolume: 'Volume ເກັບຂໍ້ມູນພາຍໃນ',
- buildCache: 'Build Cache',
- usage: 'ໃຊ້ແລ້ວ: {0}, ທີ່ຄືນໄດ້: {1}',
- clean: 'ຄືນພື້ນທີ່',
- imageClean: 'ການລ້າງ Image ຈະລຶບ Image ທັງໝົດທີ່ບໍ່ໄດ້ໃຊ້. ການດຳເນີນການນີ້ບໍ່ສາມາດກັບຄືນໄດ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- containerClean:
- 'ການລ້າງຄອນເທນເນີຈະລຶບຄອນເທນເນີທີ່ຢຸດຢູ່ທັງໝົດ (ລວມທັງແອັບທີ່ຢຸດຈາກ App Store). ການດຳເນີນການນີ້ບໍ່ສາມາດກັບຄືນໄດ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- sizeRw: 'ຂະໜາດ Layer ທີ່ຂຽນໄດ້',
- sizeRwHelper: 'ຂະໜາດຂອງ writable layer ທີ່ເປັນຂອງຄອນເທນເນີນີ້ເທົ່ານັ້ນ',
- sizeRootFs: 'ຂະໜາດສະເໝືອນ (Virtual Size)',
- sizeRootFsHelper: 'ຂະໜາດລວມຂອງ image layers ທັງໝົດທີ່ຄອນເທນເນີໃຊ້ + container layer',
- containerFromAppHelper:
- 'ກວດພົບວ່າຄອນເທນເນີນີ້ນຳມາຈາກ App Store. ການດຳເນີນການອາດເຮັດໃຫ້ການແກ້ໄຂປັດຈຸບັນໃຊ້ການບໍ່ໄດ້.',
- containerFromAppHelper1:
- 'ຄລິກປຸ່ມ [Param] ໃນລາຍການແອັບທີ່ຕິດຕັ້ງເພື່ອເຂົ້າສູ່ໜ້າແກ້ໄຂ ແລະ ປ່ຽນຊື່ຄອນເທນເນີ.',
- command: 'ຄຳສັ່ງ',
- console: 'ການໂຕ້ຕອບຄອນເທນເນີ',
- tty: 'ກຳນົດ pseudo-TTY (-t)',
- openStdin: 'ເປີດ STDIN ຄ້າງໄວ້ແມ້ບໍ່ໄດ້ເຊື່ອມຕໍ່ (-i)',
- custom: 'ກຳນົດເອງ',
- emptyUser: 'ຖ້າຫວ່າງໄວ້ ຈະເຂົ້າສູ່ລະບົບດ້ວຍ user ເລີ່ມຕົ້ນ',
- privileged: 'ສິດສູງສຸດ (Privileged)',
- privilegedHelper:
- 'ອະນຸຍາດໃຫ້ຄອນເທນເນີດຳເນີນການບາງຢ່າງດ້ວຍສິດສູງສຸດໃນ Host, ເຊິ່ງອາດເພີ່ມຄວາມສ່ຽງ. ກະລຸນາໃຊ້ດ້ວຍຄວາມລະມັດລະວັງ!',
- upgradeHelper: 'ຊື່ຄັງເກັບ/ຊື່ Image: ເວີຊັນ Image',
- upgradeWarning2:
- 'ການອັບເກຣດຕ້ອງມີການສ້າງຄອນເທນເນີໃໝ່, ຂໍ້ມູນທີ່ບໍ່ໄດ້ເກັບໄວ້ຖາວອນຈະສູນຫາຍ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- oldImage: 'Image ປັດຈຸບັນ',
- sameImageContainer: 'ຄອນເທນເນີທີ່ໃຊ້ Image ດຽວກັນ',
- sameImageHelper: 'ຄອນເທນເນີທີ່ໃຊ້ Image ດຽວກັນສາມາດເລືອກເພື່ອອັບເກຣດພ້ອມກັນໄດ້',
- targetImage: 'Image ປາຍທາງ',
- imageLoadErr: 'ກວດບໍ່ພົບຊື່ Image ສຳລັບຄອນເທນເນີນີ້',
- imageUpdateTagEmpty: 'ກວດບໍ່ພົບ Tag ຂອງ Image ທີ່ອັບເດດໄດ້',
- appHelper: 'ຄອນເທນເນີນຳມາຈາກ App Store, ການອັບເກຣດອາດເຮັດໃຫ້ບໍລິການໃຊ້ງານບໍ່ໄດ້.',
- resource: 'ຊັບພະຍາກອນ',
- input: 'ປ້ອນເອງ',
- forcePull: 'ດຶງ Image ໃໝ່ສະເໝີ',
- forcePullHelper: 'ຈະລະເວັ້ນ Image ທີ່ມີຢູ່ໃນເຄື່ອງ ແລະ ດຶງເວີຊັນຫຼ້າສຸດຈາກ Registry.',
- imageUpdateHelper: 'ກວດສອບແທັກດຽວກັນໃນ registry ແລະ ດຶງມາອັບເດດໃນເຄື່ອງເມື່ອມີການປ່ຽນແປງ.',
- server: 'Host',
- serverExample: '80, 80-88, ip:80 ຫຼື ip:80-88',
- containerExample: '80 ຫຼື 80-88',
- exposePort: 'ເປີດພອດ (Expose)',
- exposeAll: 'ເປີດທຸກພອດ',
- cmdHelper: 'ຕົວຢ່າງ: nginx -g "daemon off;"',
- entrypointHelper: 'ຕົວຢ່າງ: docker-entrypoint.sh',
- autoRemove: 'ລຶບອັດຕະໂນມັດ (Auto remove)',
- cpuQuota: 'ຈຳນວນ CPU Cores',
- memoryLimit: 'ໜ່ວຍຄວາມຈຳ',
- limitHelper: 'ຖ້າຕັ້ງເປັນ 0 ໝາຍເຖິງບໍ່ຈຳກັດ. ຄ່າສູງສຸດແມ່ນ {0}',
- macAddr: 'ທີ່ຢູ່ MAC',
- mount: 'Mount',
- volumeOption: 'Volume',
- hostOption: 'Host',
- serverPath: 'ເສັ້ນທາງ Server',
- containerDir: 'ເສັ້ນທາງ Container',
- volumeHelper: 'ກະລຸນາຢືນຢັນວ່າເນື້ອຫາໃນ volume ຖືກຕ້ອງ',
- networkEmptyHelper: 'ກະລຸນາຢືນຢັນການເລືອກ network ຂອງຄອນເທນເນີໃຫ້ຖືກຕ້ອງ',
- modeRW: 'ອ່ານ-ຂຽນ (RW)',
- modeR: 'ອ່ານຢ່າງດຽວ (R)',
- sharedLabel: 'ໂໝດການແຜ່ກະຈາຍ (Propagation)',
- private: 'ສ່ວນຕົວ (Private)',
- privateHelper: 'ການປ່ຽນແປງ mount ໃນຄອນເທນເນີ ແລະ host ຈະບໍ່ສົ່ງຜົນກະທົບຕໍ່ກັນ',
- rprivate: 'Recursive Private',
- rprivateHelper: 'ທຸກ mount ໃນຄອນເທນເນີຈະຖືກແຍກອອກຈາກ host ຢ່າງເດັດຂາດ',
- shared: 'ແບ່ງປັນ (Shared)',
- sharedHelper: 'ການປ່ຽນແປງ mount ໃນ host ແລະ ຄອນເທນເນີຈະເຫັນເຊິ່ງກັນ ແລະ ກັນ',
- rshared: 'Recursive Shared',
- rsharedHelper: 'ການປ່ຽນແປງ mount ທັງໝົດໃນ host ແລະ ຄອນເທນເນີຈະເຫັນເຊິ່ງກັນ ແລະ ກັນ',
- slave: 'Slave',
- slaveHelper: 'ຄອນເທນເນີເຫັນການປ່ຽນແປງ mount ຈາກ host ແຕ່ການປ່ຽນແປງຂອງມັນເອງບໍ່ສົ່ງຜົນຕໍ່ host',
- rslave: 'Recursive Slave',
- rslaveHelper: 'ທຸກ mount ໃນຄອນເທນເນີເຫັນການປ່ຽນແປງຈາກ host ແຕ່ບໍ່ສົ່ງຜົນຕໍ່ host',
- mode: 'ໂໝດ',
- env: 'ຕົວປ່ຽນສະພາບແວດລ້ອມ (Environments)',
- restartPolicy: 'ນະໂຍບາຍການເລີ່ມໃໝ່',
- always: 'ເລີ່ມໃໝ່ສະເໝີ (always)',
- unlessStopped: 'ເລີ່ມໃໝ່ຍົກເວັ້ນຖືກສັ່ງຢຸດ (unless-stopped)',
- onFailure: 'ເລີ່ມໃໝ່ເມື່ອລົ້ມເຫຼວ (on-failure)',
- no: 'ບໍ່ຕ້ອງເລີ່ມໃໝ່ (never)',
- refreshTime: 'ໄລຍະການໂຫຼດຂໍ້ມູນໃໝ່',
- cache: 'Cache',
- image: 'Image',
- imagePull: 'ດຶງ Image (Pull)',
- imagePullHelper:
- 'ສາມາດເລືອກໄດ້ຫຼາຍ Image, ກົດ Enter ຫຼັງຈາກປ້ອນແຕ່ລະ Image ເພື່ອຕໍ່',
- imagePush: 'ສົ່ງ Image (Push)',
- imagePushHelper:
- 'ກວດພົບວ່າ Image ນີ້ມີຫຼາຍແທັກ. ກະລຸນາຢືນຢັນຊື່ Image ທີ່ຈະສົ່ງ: {0}',
- imageDelete: 'ລຶບ Image',
- repoName: 'Container registry',
- imageName: 'ຊື່ Image',
- pull: 'ດຶງຂໍ້ມູນ (Pull)',
- path: 'ເສັ້ນທາງ',
- importImage: 'ນຳເຂົ້າ',
- buildArgs: 'Build Arguments',
- imageBuild: 'ສ້າງ (Build)',
- pathSelect: 'ເລືອກເສັ້ນທາງ',
- label: 'ປ້າຍຊື່ (Label)',
- imageTag: 'ແທັກ Image',
- imageTagHelper: 'ຮອງຮັບການຕັ້ງຫຼາຍແທັກ, ກົດ Enter ຫຼັງຈາກປ້ອນແຕ່ລະແທັກ',
- push: 'ສົ່ງຂໍ້ມູນ (Push)',
- fileName: 'ຊື່ໄຟລ໌',
- export: 'ສົ່ງອອກ (Export)',
- exportImage: 'ສົ່ງອອກ Image',
- size: 'ຂະໜາດ',
- tag: 'ແທັກ',
- tagHelper: 'ໜຶ່ງລາຍການຕໍ່ແຖວ. ຕົວຢ່າງ:\nkey1=value1\nkey2=value2',
- imageNameHelper: 'ຊື່ Image ແລະ ແທັກ, ຕົວຢ່າງ: nginx:latest',
- cleanBuildCache: 'ລ້າງ Build Cache',
- delBuildCacheHelper:
- 'ການດຳເນີນການນີ້ຈະລຶບໄຟລ໌ cache ທັງໝົດທີ່ສ້າງຂຶ້ນລະຫວ່າງການ build ແລະ ບໍ່ສາມາດກັບຄືນໄດ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- urlWarning: 'Prefix ຂອງ URL ບໍ່ຈຳເປັນຕ້ອງລວມ http:// ຫຼື https://. ກະລຸນາແກ້ໄຂ.',
- network: 'Network',
- networkHelper: 'ການດຳເນີນການນີ້ອາດເຮັດໃຫ້ບາງແອັບພລິເຄຊັນ ແລະ runtime ໃຊ້ການບໍ່ໄດ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- networkName: 'ຊື່',
- driver: 'Driver',
- option: 'ຕົວເລືອກ',
- attachable: 'ສາມາດເຊື່ອມຕໍ່ໄດ້ (Attachable)',
- parentNetworkCard: 'ກາດເຄືອຂ່າຍຫຼັກ (Parent Card)',
- subnet: 'Subnet',
- scope: 'ຊ່ວງ IP',
- gateway: 'Gateway',
- auxAddress: 'IP ທີ່ຍົກເວັ້ນ',
- volume: 'Volume',
- volumeDir: 'ໂຟນເດີ Volume',
- nfsEnable: 'ເປີດໃຊ້ການເກັບຂໍ້ມູນ NFS',
- nfsAddress: 'ທີ່ຢູ່ (Address)',
- mountpoint: 'Mountpoint',
- mountpointNFSHelper: 'ຕົວຢ່າງ: /nfs, /nfs-share',
- options: 'ຕົວເລືອກເພີ່ມເຕີມ',
- repo: 'ຄັງເກັບ (Repository)',
- httpRepoHelper: 'ການຈັດການຄັງເກັບປະເພດ HTTP ຕ້ອງມີການເລີ່ມບໍລິການ Docker ໃໝ່.',
- httpRepo: 'ການເລືອກ protocol HTTP ຕ້ອງເລີ່ມ Docker ໃໝ່ເພື່ອເພີ່ມເຂົ້າໃນ insecure registries.',
- delInsecure: 'ລຶບລາຍການທີ່ບໍ່ປອດໄພ',
- delInsecureHelper: 'ຈະເລີ່ມບໍລິການ Docker ໃໝ່ເພື່ອລຶບອອກຈາກ insecure registries. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- downloadUrl: 'Server',
- imageRepo: 'ຄັງ Image',
- repoHelper: 'ລວມເຖິງ mirror repository/organization/project ຫຼືບໍ່?',
- auth: 'ຕ້ອງການການຢືນຢັນຕົວຕົນ',
- mirrorHelper:
- 'ຖ້າມີຫຼາຍ mirror, ຕ້ອງຂຶ້ນແຖວໃໝ່, ຕົວຢ່າງ:\nhttp://xxxxxx.m.daocloud.io \nhttps://xxxxxx.mirror.aliyuncs.com',
- registrieHelper:
- 'ຖ້າມີຫຼາຍຄັງສ່ວນຕົວ, ຕ້ອງຂຶ້ນແຖວໃໝ່, ຕົວຢ່າງ:\n172.16.10.111:8081 \n172.16.10.112:8081',
- compose: 'Compose',
- composeFile: 'ໄຟລ໌ Compose',
- fromChangeHelper: 'ການປ່ຽນແຫຼ່ງທີ່ມາຈະລ້າງເນື້ອຫາທີ່ແກ້ໄຂໄວ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- composePathHelper: 'ເສັ້ນທາງບັນທຶກໄຟລ໌ກຳນົດຄ່າ: {0}',
- composeHelper:
- 'Compose ທີ່ສ້າງຜ່ານ 1Panel editor ຫຼື template ຈະຖືກບັນທຶກໄວ້ໃນໂຟນເດີ {0}/docker/compose.',
- deleteFile: 'ລຶບໄຟລ໌',
- deleteComposeHelper:
- 'ລຶບໄຟລ໌ທັງໝົດທີ່ກ່ຽວຂ້ອງກັບ compose, ລວມທັງໄຟລ໌ກຳນົດຄ່າ ແລະ ໄຟລ໌ຂໍ້ມູນຖາວອນ. ກະລຸນາເຮັດດ້ວຍຄວາມລະມັດລະວັງ!',
- deleteCompose: '" ລຶບ compose ນີ້.',
- composeDirectory: 'ໂຟນເດີ Compose',
- template: 'Template',
- composeTemplate: 'Template ຂອງ Compose',
- content: 'ເນື້ອຫາ',
- contentEmpty: 'ເນື້ອຫາ Compose ບໍ່ສາມາດຫວ່າງໄດ້!',
- containerNumber: 'ຈຳນວນຄອນເທນເນີ',
- containerStatus: 'ສະຖານະຄອນເທນເນີ',
- exited: 'ຢຸດແລ້ວ',
- running: 'ກຳລັງລັນ ( {0} / {1} )',
- composeDetailHelper:
- 'Compose ນີ້ຖືກສ້າງຈາກພາຍນອກ 1Panel. ບໍ່ຮອງຮັບການສັ່ງເລີ່ມ ແລະ ຢຸດ.',
- composeOperatorHelper: 'ຈະດຳເນີນການ {1} ໃນ {0}. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- composeDownHelper: 'ຈະຢຸດ ແລະ ລຶບຄອນເທນເນີ ແລະ network ທັງໝົດພາຍໃຕ້ compose {0}. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- composeEnvHelper2:
- 'Compose ນີ້ຖືກສ້າງໂດຍ 1Panel App Store. ກະລຸນາແກ້ໄຂຕົວປ່ຽນສະພາບແວດລ້ອມໃນແອັບທີ່ຕິດຕັ້ງແລ້ວ.',
- composeContentPlaceholder: 'ຂຽນ ຫຼື ວາງເນື້ອຫາໄຟລ໌ docker-compose ຂອງທ່ານທີ່ນີ້',
+ container: {
+ createByCommand: 'ສ້າງດ້ວຍຄຳສັ່ງ',
+ importContainerBackupTip: 'ນຳເຂົ້າໄຟລ໌ສຳຮອງຄອນເທນເນີ, ຮອງຮັບສະເພາະ .tar.gz',
+ importComposeBackupTip: 'ນຳເຂົ້າໄຟລ໌ສຳຮອງ compose, ຮອງຮັບສະເພາະ .tar.gz',
+ stopContainerBeforeBackup: 'ຢຸດຄອນເທນເນີກ່ອນການສຳຮອງ',
+ stopComposeBeforeBackup: 'ຢຸດ compose ກ່ອນການສຳຮອງ',
+ stopBeforeBackupHelper:
+ 'ເມື່ອເປີດໃຊ້ງານ, ຄອນເທນເນີ ຫຼື ບໍລິການ compose ຈະຖືກຢຸດກ່ອນການສຳຮອງ ແລະ ຈະເລີ່ມໃໝ່ອັດຕະໂນມັດຫຼັງຈາກສຳເລັດ ເພື່ອຄວາມຖືກຕ້ອງຂອງຂໍ້ມູນ.',
+ commandInput: 'ປ້ອນຄຳສັ່ງ',
+ commandRule: 'ກະລຸນາປ້ອນຄຳສັ່ງ docker run ທີ່ຖືກຕ້ອງ!',
+ commandHelper: 'ຄຳສັ່ງນີ້ຈະລັນໃນ server ເພື່ອສ້າງຄອນເທນເນີ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ updateHelper1: 'ກວດພົບວ່າຄອນເທນເນີນີ້ນຳມາຈາກ App Store. ກະລຸນາສັງເກດສອງຂໍ້ດັ່ງນີ້:',
+ updateHelper2: '1. ການປ່ຽນແປງປັດຈຸບັນຈະບໍ່ຖືກຊິງໂຄໄນກັບແອັບທີ່ຕິດຕັ້ງໃນ App Store.',
+ updateHelper3: '2. ຖ້າທ່ານແກ້ໄຂແອັບໃນໜ້າທີ່ຕິດຕັ້ງແລ້ວ, ເນື້ອຫາທີ່ແກ້ໄຂໃນຕອນນີ້ຈະໃຊ້ການບໍ່ໄດ້.',
+ updateHelper4: 'ການແກ້ໄຂຄອນເທນເນີຕ້ອງມີການສ້າງໃໝ່ ແລະ ຂໍ້ມູນທີ່ບໍ່ໄດ້ເກັບໄວ້ຖາວອນຈະສູນຫາຍ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ containerList: 'ລາຍການຄອນເທນເນີ',
+ operatorHelper: 'ລັນ {0} ໃນຄອນເທນເນີຕໍ່ໄປນີ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ operatorAppHelper:
+ 'ລັນ "{0}" ໃນຄອນເທນເນີເຫຼົ່ານີ້. ບໍລິການທີ່ກຳນົດລັນຢື່ອາດຈະໄດ້ຮັບຜົນກະທົບ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ containerDeleteHelper:
+ "ກວດພົບວ່າຄອນເທນເນີນີ້ນຳມາຈາກ App Store. ການລຶບຄອນເທນເນີຈະບໍ່ເປັນການລຶບອອກຈາກ 1Panel ຢ່າງຖາວອນ. ເພື່ອລຶບອອກທັງໝົດ ໃຫ້ໄປທີ່ App Store -> 'ຕິດຕັ້ງແລ້ວ' ຫຼື 'Runtime Environment'. ຕ້ອງການຕໍ່ຫຼືບໍ່?",
+ start: 'ເລີ່ມ',
+ stop: 'ຢຸດ',
+ restart: 'ເລີ່ມໃໝ່',
+ kill: 'ບັງຄັບຢຸດ (Kill)',
+ pause: 'ພັກຊົ່ວຄາວ',
+ unpause: 'ກັບມາເຮັດວຽກ',
+ rename: 'ປ່ຽນຊື່',
+ remove: 'ລຶບ',
+ removeAll: 'ລຶບທັງໝົດ',
+ containerPrune: 'ລ້າງຂໍ້ມູນ (Prune)',
+ containerPruneHelper1: 'ການດຳເນີນການນີ້ຈະລຶບຄອນເທນເນີທັງໝົດທີ່ຢູ່ໃນສະຖານະຢຸດ.',
+ containerPruneHelper2:
+ 'ຖ້າຄອນເທນເນີນຳມາຈາກ App Store, ທ່ານຕ້ອງໄປທີ່ "App Store -> ຕິດຕັ້ງແລ້ວ" ແລະ ຄລິກປຸ່ມ "ສ້າງໃໝ່" ເພື່ອຕິດຕັ້ງຄືນໃໝ່ຫຼັງຈາກລ້າງຂໍ້ມູນ.',
+ containerPruneHelper3: 'ການດຳເນີນການນີ້ບໍ່ສາມາດກັບຄືນໄດ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ imagePrune: 'ລ້າງຂໍ້ມູນ Image',
+ imagePruneSome: 'ລ້າງ Image ທີ່ບໍ່ມີຊື່ (none)',
+ imagePruneSomeEmpty: 'ບໍ່ມີ Image ທີ່ຕິດແທັກ "none" ໃຫ້ລ້າງ.',
+ imagePruneSomeHelper: 'ລ້າງ Image ທີ່ມີແທັກ "none" ທີ່ບໍ່ໄດ້ຖືກໃຊ້ໂດຍຄອນເທນເນີໃດໆ.',
+ imagePruneAll: 'ລ້າງ Image ທີ່ບໍ່ໄດ້ໃຊ້',
+ imagePruneAllEmpty: 'ບໍ່ມີ Image ທີ່ບໍ່ໄດ້ໃຊ້ໃຫ້ລ້າງ.',
+ imagePruneAllHelper: 'ລ້າງ Image ທັງໝົດທີ່ບໍ່ໄດ້ຖືກໃຊ້ໂດຍຄອນເທນເນີໃດໆ.',
+ networkPrune: 'ລ້າງ Network',
+ networkPruneHelper: 'ການດຳເນີນການນີ້ຈະລຶບ Network ທັງໝົດທີ່ບໍ່ໄດ້ໃຊ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ volumePrune: 'ລ້າງ Volume',
+ volumePruneHelper: 'ການດຳເນີນການນີ້ຈະລຶບ Volume ພາຍໃນເຄື່ອງທັງໝົດທີ່ບໍ່ໄດ້ໃຊ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ cleanSuccess: 'ດຳເນີນການສຳເລັດ, ຈຳນວນທີ່ລ້າງ: {0}!',
+ cleanSuccessWithSpace: 'ດຳເນີນການສຳເລັດ. ຈຳນວນ disk ທີ່ລ້າງແມ່ນ {0}. ຄືນພື້ນທີ່ disk ໄດ້ {1}!',
+ unExposedPort: 'ທີ່ຢູ່ພອດປັດຈຸບັນແມ່ນ 127.0.0.1, ເຊິ່ງບໍ່ສາມາດເປີດໃຫ້ເຂົ້າເຖິງຈາກພາຍນອກໄດ້.',
+ upTime: 'ເວລາທີ່ເຮັດວຽກ',
+ fetch: 'ດຶງຂໍ້ມູນ',
+ lines: 'ຈຳນວນແຖວ',
+ linesHelper: 'ກະລຸນາປ້ອນຈຳນວນແຖວບັນທຶກທີ່ຖືກຕ້ອງ!',
+ downloadLinesHelper: 'ເລືອກ ຫຼື ປ້ອນຈຳນວນແຖວບັນທຶກທີ່ຈະດາວໂຫຼດ.',
+ lastDay: 'ມື້ທີ່ຜ່ານມາ',
+ last4Hour: '4 ຊົ່ວໂມງທີ່ຜ່ານມາ',
+ lastHour: 'ຊົ່ວໂມງທີ່ຜ່ານມາ',
+ last10Min: '10 ນາທີທີ່ຜ່ານມາ',
+ cleanLog: 'ລ້າງບັນທຶກ',
+ cleanLogscope: 'ປະເພດການລ້າງ',
+ downLogHelper1: 'ຈະດາວໂຫຼດບັນທຶກທັງໝົດຈາກຄອນເທນເນີ {0}. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ downLogHelper2: 'ຈະດາວໂຫຼດບັນທຶກ {1} ແຖວຫຼ້າສຸດຈາກຄອນເທນເນີ {0}. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ cleanLogHelper: 'ການດຳເນີນການນີ້ຕ້ອງມີການເລີ່ມຄອນເທນເນີໃໝ່ ແລະ ບໍ່ສາມາດກັບຄືນໄດ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ newName: 'ຊື່ໃໝ່',
+ workingDir: 'ໂຟນເດີເຮັດວຽກ',
+ composeFileMissing: 'ກວດບໍ່ພົບໄຟລ໌ Compose',
+ source: 'ການໃຊ້ຊັບພະຍາກອນ',
+ cpuUsage: 'ການໃຊ້ CPU',
+ cpuTotal: 'CPU ທັງໝົດ',
+ core: 'Core',
+ memUsage: 'ການໃຊ້ໜ່ວຍຄວາມຈຳ',
+ memTotal: 'ຂີດຈຳກັດໜ່ວຍຄວາມຈຳ',
+ memCache: 'Memory Cache',
+ loadSize: 'ກວດສອບຂະໜາດຄອນເທນເນີ',
+ ip: 'ທີ່ຢູ່ IP',
+ cpuShare: 'CPU Shares',
+ cpuShareHelper:
+ 'Docker ໃຊ້ຄ່າພື້ນຖານ 1024 ສຳລັບ CPU shares. ທ່ານສາມາດເພີ່ມຄ່ານີ້ເພື່ອໃຫ້ຄອນເທນເນີໄດ້ເວລາ CPU ຫຼາຍຂຶ້ນ.',
+ inputIpv4: 'ຕົວຢ່າງ: 192.168.1.1',
+ inputIpv6: 'ຕົວຢ່າງ: 2001:0db8:85a3:0000:0000:8a2e:0370:7334',
+ diskUsage: 'ການໃຊ້ Disk',
+ localVolume: 'Volume ເກັບຂໍ້ມູນພາຍໃນ',
+ buildCache: 'Build Cache',
+ usage: 'ໃຊ້ແລ້ວ: {0}, ທີ່ຄືນໄດ້: {1}',
+ clean: 'ຄືນພື້ນທີ່',
+ imageClean: 'ການລ້າງ Image ຈະລຶບ Image ທັງໝົດທີ່ບໍ່ໄດ້ໃຊ້. ການດຳເນີນການນີ້ບໍ່ສາມາດກັບຄືນໄດ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ containerClean:
+ 'ການລ້າງຄອນເທນເນີຈະລຶບຄອນເທນເນີທີ່ຢຸດຢູ່ທັງໝົດ (ລວມທັງແອັບທີ່ຢຸດຈາກ App Store). ການດຳເນີນການນີ້ບໍ່ສາມາດກັບຄືນໄດ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ sizeRw: 'ຂະໜາດ Layer ທີ່ຂຽນໄດ້',
+ sizeRwHelper: 'ຂະໜາດຂອງ writable layer ທີ່ເປັນຂອງຄອນເທນເນີນີ້ເທົ່ານັ້ນ',
+ sizeRootFs: 'ຂະໜາດສະເໝືອນ (Virtual Size)',
+ sizeRootFsHelper: 'ຂະໜາດລວມຂອງ image layers ທັງໝົດທີ່ຄອນເທນເນີໃຊ້ + container layer',
+ containerFromAppHelper:
+ 'ກວດພົບວ່າຄອນເທນເນີນີ້ນຳມາຈາກ App Store. ການດຳເນີນການອາດເຮັດໃຫ້ການແກ້ໄຂປັດຈຸບັນໃຊ້ການບໍ່ໄດ້.',
+ containerFromAppHelper1: 'ຄລິກປຸ່ມ [Param] ໃນລາຍການແອັບທີ່ຕິດຕັ້ງເພື່ອເຂົ້າສູ່ໜ້າແກ້ໄຂ ແລະ ປ່ຽນຊື່ຄອນເທນເນີ.',
+ command: 'ຄຳສັ່ງ',
+ console: 'ການໂຕ້ຕອບຄອນເທນເນີ',
+ tty: 'ກຳນົດ pseudo-TTY (-t)',
+ openStdin: 'ເປີດ STDIN ຄ້າງໄວ້ແມ້ບໍ່ໄດ້ເຊື່ອມຕໍ່ (-i)',
+ custom: 'ກຳນົດເອງ',
+ emptyUser: 'ຖ້າຫວ່າງໄວ້ ຈະເຂົ້າສູ່ລະບົບດ້ວຍ user ເລີ່ມຕົ້ນ',
+ privileged: 'ສິດສູງສຸດ (Privileged)',
+ privilegedHelper:
+ 'ອະນຸຍາດໃຫ້ຄອນເທນເນີດຳເນີນການບາງຢ່າງດ້ວຍສິດສູງສຸດໃນ Host, ເຊິ່ງອາດເພີ່ມຄວາມສ່ຽງ. ກະລຸນາໃຊ້ດ້ວຍຄວາມລະມັດລະວັງ!',
+ upgradeHelper: 'ຊື່ຄັງເກັບ/ຊື່ Image: ເວີຊັນ Image',
+ upgradeWarning2: 'ການອັບເກຣດຕ້ອງມີການສ້າງຄອນເທນເນີໃໝ່, ຂໍ້ມູນທີ່ບໍ່ໄດ້ເກັບໄວ້ຖາວອນຈະສູນຫາຍ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ oldImage: 'Image ປັດຈຸບັນ',
+ sameImageContainer: 'ຄອນເທນເນີທີ່ໃຊ້ Image ດຽວກັນ',
+ sameImageHelper: 'ຄອນເທນເນີທີ່ໃຊ້ Image ດຽວກັນສາມາດເລືອກເພື່ອອັບເກຣດພ້ອມກັນໄດ້',
+ targetImage: 'Image ປາຍທາງ',
+ imageLoadErr: 'ກວດບໍ່ພົບຊື່ Image ສຳລັບຄອນເທນເນີນີ້',
+ imageUpdateTagEmpty: 'ກວດບໍ່ພົບ Tag ຂອງ Image ທີ່ອັບເດດໄດ້',
+ appHelper: 'ຄອນເທນເນີນຳມາຈາກ App Store, ການອັບເກຣດອາດເຮັດໃຫ້ບໍລິການໃຊ້ງານບໍ່ໄດ້.',
+ resource: 'ຊັບພະຍາກອນ',
+ input: 'ປ້ອນເອງ',
+ forcePull: 'ດຶງ Image ໃໝ່ສະເໝີ',
+ forcePullHelper: 'ຈະລະເວັ້ນ Image ທີ່ມີຢູ່ໃນເຄື່ອງ ແລະ ດຶງເວີຊັນຫຼ້າສຸດຈາກ Registry.',
+ imageUpdateHelper: 'ກວດສອບແທັກດຽວກັນໃນ registry ແລະ ດຶງມາອັບເດດໃນເຄື່ອງເມື່ອມີການປ່ຽນແປງ.',
+ server: 'Host',
+ serverExample: '80, 80-88, ip:80 ຫຼື ip:80-88',
+ containerExample: '80 ຫຼື 80-88',
+ exposePort: 'ເປີດພອດ (Expose)',
+ exposeAll: 'ເປີດທຸກພອດ',
+ cmdHelper: 'ຕົວຢ່າງ: nginx -g "daemon off;"',
+ entrypointHelper: 'ຕົວຢ່າງ: docker-entrypoint.sh',
+ autoRemove: 'ລຶບອັດຕະໂນມັດ (Auto remove)',
+ cpuQuota: 'ຈຳນວນ CPU Cores',
+ memoryLimit: 'ໜ່ວຍຄວາມຈຳ',
+ limitHelper: 'ຖ້າຕັ້ງເປັນ 0 ໝາຍເຖິງບໍ່ຈຳກັດ. ຄ່າສູງສຸດແມ່ນ {0}',
+ macAddr: 'ທີ່ຢູ່ MAC',
+ mount: 'Mount',
+ volumeOption: 'Volume',
+ hostOption: 'Host',
+ serverPath: 'ເສັ້ນທາງ Server',
+ containerDir: 'ເສັ້ນທາງ Container',
+ volumeHelper: 'ກະລຸນາຢືນຢັນວ່າເນື້ອຫາໃນ volume ຖືກຕ້ອງ',
+ networkEmptyHelper: 'ກະລຸນາຢືນຢັນການເລືອກ network ຂອງຄອນເທນເນີໃຫ້ຖືກຕ້ອງ',
+ modeRW: 'ອ່ານ-ຂຽນ (RW)',
+ modeR: 'ອ່ານຢ່າງດຽວ (R)',
+ sharedLabel: 'ໂໝດການແຜ່ກະຈາຍ (Propagation)',
+ private: 'ສ່ວນຕົວ (Private)',
+ privateHelper: 'ການປ່ຽນແປງ mount ໃນຄອນເທນເນີ ແລະ host ຈະບໍ່ສົ່ງຜົນກະທົບຕໍ່ກັນ',
+ rprivate: 'Recursive Private',
+ rprivateHelper: 'ທຸກ mount ໃນຄອນເທນເນີຈະຖືກແຍກອອກຈາກ host ຢ່າງເດັດຂາດ',
+ shared: 'ແບ່ງປັນ (Shared)',
+ sharedHelper: 'ການປ່ຽນແປງ mount ໃນ host ແລະ ຄອນເທນເນີຈະເຫັນເຊິ່ງກັນ ແລະ ກັນ',
+ rshared: 'Recursive Shared',
+ rsharedHelper: 'ການປ່ຽນແປງ mount ທັງໝົດໃນ host ແລະ ຄອນເທນເນີຈະເຫັນເຊິ່ງກັນ ແລະ ກັນ',
+ slave: 'Slave',
+ slaveHelper: 'ຄອນເທນເນີເຫັນການປ່ຽນແປງ mount ຈາກ host ແຕ່ການປ່ຽນແປງຂອງມັນເອງບໍ່ສົ່ງຜົນຕໍ່ host',
+ rslave: 'Recursive Slave',
+ rslaveHelper: 'ທຸກ mount ໃນຄອນເທນເນີເຫັນການປ່ຽນແປງຈາກ host ແຕ່ບໍ່ສົ່ງຜົນຕໍ່ host',
+ mode: 'ໂໝດ',
+ env: 'ຕົວປ່ຽນສະພາບແວດລ້ອມ (Environments)',
+ restartPolicy: 'ນະໂຍບາຍການເລີ່ມໃໝ່',
+ always: 'ເລີ່ມໃໝ່ສະເໝີ (always)',
+ unlessStopped: 'ເລີ່ມໃໝ່ຍົກເວັ້ນຖືກສັ່ງຢຸດ (unless-stopped)',
+ onFailure: 'ເລີ່ມໃໝ່ເມື່ອລົ້ມເຫຼວ (on-failure)',
+ no: 'ບໍ່ຕ້ອງເລີ່ມໃໝ່ (never)',
+ refreshTime: 'ໄລຍະການໂຫຼດຂໍ້ມູນໃໝ່',
+ cache: 'Cache',
+ image: 'Image',
+ imagePull: 'ດຶງ Image (Pull)',
+ imagePullHelper: 'ສາມາດເລືອກໄດ້ຫຼາຍ Image, ກົດ Enter ຫຼັງຈາກປ້ອນແຕ່ລະ Image ເພື່ອຕໍ່',
+ imagePush: 'ສົ່ງ Image (Push)',
+ imagePushHelper: 'ກວດພົບວ່າ Image ນີ້ມີຫຼາຍແທັກ. ກະລຸນາຢືນຢັນຊື່ Image ທີ່ຈະສົ່ງ: {0}',
+ imageDelete: 'ລຶບ Image',
+ repoName: 'Container registry',
+ imageName: 'ຊື່ Image',
+ pull: 'ດຶງຂໍ້ມູນ (Pull)',
+ path: 'ເສັ້ນທາງ',
+ importImage: 'ນຳເຂົ້າ',
+ buildArgs: 'Build Arguments',
+ imageBuild: 'ສ້າງ (Build)',
+ pathSelect: 'ເລືອກເສັ້ນທາງ',
+ label: 'ປ້າຍຊື່ (Label)',
+ imageTag: 'ແທັກ Image',
+ imageTagHelper: 'ຮອງຮັບການຕັ້ງຫຼາຍແທັກ, ກົດ Enter ຫຼັງຈາກປ້ອນແຕ່ລະແທັກ',
+ push: 'ສົ່ງຂໍ້ມູນ (Push)',
+ fileName: 'ຊື່ໄຟລ໌',
+ export: 'ສົ່ງອອກ (Export)',
+ exportImage: 'ສົ່ງອອກ Image',
+ size: 'ຂະໜາດ',
+ tag: 'ແທັກ',
+ tagHelper: 'ໜຶ່ງລາຍການຕໍ່ແຖວ. ຕົວຢ່າງ:\nkey1=value1\nkey2=value2',
+ imageNameHelper: 'ຊື່ Image ແລະ ແທັກ, ຕົວຢ່າງ: nginx:latest',
+ cleanBuildCache: 'ລ້າງ Build Cache',
+ delBuildCacheHelper:
+ 'ການດຳເນີນການນີ້ຈະລຶບໄຟລ໌ cache ທັງໝົດທີ່ສ້າງຂຶ້ນລະຫວ່າງການ build ແລະ ບໍ່ສາມາດກັບຄືນໄດ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ urlWarning: 'Prefix ຂອງ URL ບໍ່ຈຳເປັນຕ້ອງລວມ http:// ຫຼື https://. ກະລຸນາແກ້ໄຂ.',
+ network: 'Network',
+ networkHelper: 'ການດຳເນີນການນີ້ອາດເຮັດໃຫ້ບາງແອັບພລິເຄຊັນ ແລະ runtime ໃຊ້ການບໍ່ໄດ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ networkName: 'ຊື່',
+ driver: 'Driver',
+ option: 'ຕົວເລືອກ',
+ attachable: 'ສາມາດເຊື່ອມຕໍ່ໄດ້ (Attachable)',
+ parentNetworkCard: 'ກາດເຄືອຂ່າຍຫຼັກ (Parent Card)',
+ subnet: 'Subnet',
+ scope: 'ຊ່ວງ IP',
+ gateway: 'Gateway',
+ auxAddress: 'IP ທີ່ຍົກເວັ້ນ',
+ volume: 'Volume',
+ volumeDir: 'ໂຟນເດີ Volume',
+ nfsEnable: 'ເປີດໃຊ້ການເກັບຂໍ້ມູນ NFS',
+ nfsAddress: 'ທີ່ຢູ່ (Address)',
+ mountpoint: 'Mountpoint',
+ mountpointNFSHelper: 'ຕົວຢ່າງ: /nfs, /nfs-share',
+ options: 'ຕົວເລືອກເພີ່ມເຕີມ',
+ repo: 'ຄັງເກັບ (Repository)',
+ httpRepoHelper: 'ການຈັດການຄັງເກັບປະເພດ HTTP ຕ້ອງມີການເລີ່ມບໍລິການ Docker ໃໝ່.',
+ httpRepo: 'ການເລືອກ protocol HTTP ຕ້ອງເລີ່ມ Docker ໃໝ່ເພື່ອເພີ່ມເຂົ້າໃນ insecure registries.',
+ delInsecure: 'ລຶບລາຍການທີ່ບໍ່ປອດໄພ',
+ delInsecureHelper: 'ຈະເລີ່ມບໍລິການ Docker ໃໝ່ເພື່ອລຶບອອກຈາກ insecure registries. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ downloadUrl: 'Server',
+ imageRepo: 'ຄັງ Image',
+ repoHelper: 'ລວມເຖິງ mirror repository/organization/project ຫຼືບໍ່?',
+ auth: 'ຕ້ອງການການຢືນຢັນຕົວຕົນ',
+ mirrorHelper:
+ 'ຖ້າມີຫຼາຍ mirror, ຕ້ອງຂຶ້ນແຖວໃໝ່, ຕົວຢ່າງ:\nhttp://xxxxxx.m.daocloud.io \nhttps://xxxxxx.mirror.aliyuncs.com',
+ registrieHelper: 'ຖ້າມີຫຼາຍຄັງສ່ວນຕົວ, ຕ້ອງຂຶ້ນແຖວໃໝ່, ຕົວຢ່າງ:\n172.16.10.111:8081 \n172.16.10.112:8081',
+ compose: 'Compose',
+ composeFile: 'ໄຟລ໌ Compose',
+ fromChangeHelper: 'ການປ່ຽນແຫຼ່ງທີ່ມາຈະລ້າງເນື້ອຫາທີ່ແກ້ໄຂໄວ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ composePathHelper: 'ເສັ້ນທາງບັນທຶກໄຟລ໌ກຳນົດຄ່າ: {0}',
+ composeHelper: 'Compose ທີ່ສ້າງຜ່ານ 1Panel editor ຫຼື template ຈະຖືກບັນທຶກໄວ້ໃນໂຟນເດີ {0}/docker/compose.',
+ deleteFile: 'ລຶບໄຟລ໌',
+ deleteComposeHelper:
+ 'ລຶບໄຟລ໌ທັງໝົດທີ່ກ່ຽວຂ້ອງກັບ compose, ລວມທັງໄຟລ໌ກຳນົດຄ່າ ແລະ ໄຟລ໌ຂໍ້ມູນຖາວອນ. ກະລຸນາເຮັດດ້ວຍຄວາມລະມັດລະວັງ!',
+ deleteCompose: '" ລຶບ compose ນີ້.',
+ composeDirectory: 'ໂຟນເດີ Compose',
+ template: 'Template',
+ composeTemplate: 'Template ຂອງ Compose',
+ content: 'ເນື້ອຫາ',
+ contentEmpty: 'ເນື້ອຫາ Compose ບໍ່ສາມາດຫວ່າງໄດ້!',
+ containerNumber: 'ຈຳນວນຄອນເທນເນີ',
+ containerStatus: 'ສະຖານະຄອນເທນເນີ',
+ exited: 'ຢຸດແລ້ວ',
+ running: 'ກຳລັງລັນ ( {0} / {1} )',
+ composeDetailHelper: 'Compose ນີ້ຖືກສ້າງຈາກພາຍນອກ 1Panel. ບໍ່ຮອງຮັບການສັ່ງເລີ່ມ ແລະ ຢຸດ.',
+ composeOperatorHelper: 'ຈະດຳເນີນການ {1} ໃນ {0}. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ composeDownHelper: 'ຈະຢຸດ ແລະ ລຶບຄອນເທນເນີ ແລະ network ທັງໝົດພາຍໃຕ້ compose {0}. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ composeEnvHelper2:
+ 'Compose ນີ້ຖືກສ້າງໂດຍ 1Panel App Store. ກະລຸນາແກ້ໄຂຕົວປ່ຽນສະພາບແວດລ້ອມໃນແອັບທີ່ຕິດຕັ້ງແລ້ວ.',
+ composeContentPlaceholder: 'ຂຽນ ຫຼື ວາງເນື້ອຫາໄຟລ໌ docker-compose ຂອງທ່ານທີ່ນີ້',
- setting: 'ການຕັ້ງຄ່າ',
- goSetting: 'ໄປທີ່ການຕັ້ງຄ່າ',
- restartHelper: 'ການປ່ຽນແປງການກຳນົດຄ່າຕ້ອງເລີ່ມບໍລິການ Docker ໃໝ່ຈຶ່ງຈະມີຜົນ',
- operatorStatusHelper: 'ຈະ "{0}" ບໍລິການ Docker. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- dockerStatus: 'ບໍລິການ Docker',
- daemonJsonPathHelper: 'ຢືນຢັນວ່າເສັ້ນທາງກຳນົດຄ່າກົງກັບທີ່ລະບຸໃນ docker.service.',
- mirrors: 'Registry mirrors',
- mirrorsHelper: '',
- mirrorsHelper2: 'ສຳລັບລາຍລະອຽດ, ເບິ່ງເອກະສານທາງການ.',
- registries: 'Insecure registries',
- ipv6Helper:
- 'ເມື່ອເປີດໃຊ້ IPv6, ທ່ານຕ້ອງເພີ່ມ IPv6 network ໃຫ້ຄອນເທນເນີ. ອີງຕາມເອກະສານທາງການສຳລັບຂັ້ນຕອນການຕັ້ງຄ່າ.',
- ipv6CidrHelper: 'ຊ່ວງ IPv6 address pool ສຳລັບຄອນເທນເນີ',
- ipv6TablesHelper: 'ກຳນົດຄ່າ Docker IPv6 ສຳລັບກົດ iptables ອັດຕະໂນມັດ.',
- experimentalHelper:
- 'ການເປີດໃຊ້ ip6tables ຕ້ອງເປີດການກຳນົດຄ່ານີ້; ບໍ່ດັ່ງນັ້ນ ip6tables ຈະຖືກລະເວັ້ນ',
- cutLog: 'ຕົວເລືອກບັນທຶກ (Log)',
- cutLogHelper1: 'ການກຳນົດຄ່າປັດຈຸບັນຈະມີຜົນກັບຄອນເທນເນີທີ່ສ້າງໃໝ່ເທົ່ານັ້ນ.',
- cutLogHelper2: 'ຄອນເທນເນີທີ່ມີຢູ່ແລ້ວຕ້ອງຖືກສ້າງໃໝ່ເພື່ອໃຫ້ການຕັ້ງຄ່າມີຜົນ.',
- cutLogHelper3:
- 'ກະລຸນາຮັບຊາບວ່າການສ້າງຄອນເທນເນີໃໝ່ອາດເຮັດໃຫ້ຂໍ້ມູນສູນຫາຍ. ຖ້າມີຂໍ້ມູນສຳຄັນ ໃຫ້ສຳຮອງຂໍ້ມູນກ່ອນ.',
- maxSize: 'ຂະໜາດສູງສຸດ',
- maxFile: 'ຈຳນວນໄຟລ໌ສູງສຸດ',
- liveHelper:
- 'ໂດຍເລີ່ມຕົ້ນ ເມື່ອ Docker daemon ຢຸດ ມັນຈະປິດຄອນເທນເນີທີ່ລັນຢູ່ນຳ. ທ່ານສາມາດຕັ້ງຄ່າໃຫ້ຄອນເທນເນີຍັງລັນຕໍ່ໄປໄດ້ເຖິງ daemon ຈະບໍ່ພ້ອມໃຊ້ງານ. ເອີ້ນວ່າ live restore ເຊິ່ງຊ່ວຍຫຼຸດເວລາ downtime.',
- liveWithSwarmHelper: 'ການກຳນົດຄ່າ live-restore ບໍ່ຮອງຮັບກັບ swarm mode.',
- iptablesDisable: 'ປິດ iptables',
- iptablesHelper1: 'ກຳນົດຄ່າກົດ iptables ອັດຕະໂນມັດສຳລັບ Docker.',
- iptablesHelper2:
- 'ການປິດ iptables ຈະເຮັດໃຫ້ຄອນເທນເນີບໍ່ສາມາດສື່ສານກັບເຄືອຂ່າຍພາຍນອກໄດ້.',
- daemonJsonPath: 'ເສັ້ນທາງໄຟລ໌ Conf',
- serviceUnavailable: 'ບໍລິການ Docker ຍັງບໍ່ໄດ້ເລີ່ມ.',
- startIn: ' ເພື່ອເລີ່ມ',
- sockPath: 'Unix domain socket',
- sockPathHelper: 'ຊ່ອງທາງການສື່ສານລະຫວ່າງ Docker daemon ແລະ client.',
- sockPathHelper1: 'ເສັ້ນທາງເລີ່ມຕົ້ນ: /var/run/docker-x.sock',
- sockPathMsg: 'ການບັນທຶກ Socket Path ອາດເຮັດໃຫ້ Docker ໃຊ້ການບໍ່ໄດ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- sockPathErr: 'ເລືອກ ຫຼື ປ້ອນເສັ້ນທາງໄຟລ໌ Docker sock ທີ່ຖືກຕ້ອງ',
- related: 'ທີ່ກ່ຽວຂ້ອງ',
- includeAppstore: 'ສະແດງຄອນເທນເນີຈາກ App Store',
- excludeAppstore: 'ຊື່ອງຄອນເທນເນີຈາກ App Store',
- cleanDockerDiskZone: 'ລ້າງພື້ນທີ່ disk ທີ່ Docker ໃຊ້',
- cleanImagesHelper: '( ລ້າງ Image ທັງໝົດທີ່ບໍ່ໄດ້ຖືກໃຊ້ໂດຍຄອນເທນເນີໃດໆ )',
- cleanContainersHelper: '( ລ້າງຄອນເທນເນີທັງໝົດທີ່ຢຸດຢູ່ )',
- cleanVolumesHelper: '( ລ້າງ Volume ພາຍໃນເຄື່ອງທັງໝົດທີ່ບໍ່ໄດ້ໃຊ້ )',
- makeImage: 'ສ້າງ Image',
- newImageName: 'ຊື່ Image ໃໝ່',
- commitMessage: 'Commit message',
- author: 'ຜູ້ສ້າງ',
- ifPause: 'ພັກຄອນເທນເນີລະຫວ່າງການສ້າງ',
- ifMakeImageWithContainer: 'ສ້າງ Image ໃໝ່ຈາກຄອນເທນເນີນີ້?',
- finishTime: 'ເວລາຢຸດຫຼ້າສຸດ',
- exportHelper: 'ສົ່ງອອກ Image ທີ່ເລືອກເປັນໄຟລ໌ .tar ດຽວ.',
-},
-cronjob: {
- importHelper:
- 'ວຽກທີ່ກຳນົດເວລາທີ່ຊ້ຳກັນຈະຖືກລະເວັ້ນອັດຕະໂນມັດລະຫວ່າງການນຳເຂົ້າ. ວຽກຈະຖືກຕັ້ງເປັນສະຖານະ [ປິດໃຊ້ງານ] ເປັນຄ່າເລີ່ມຕົ້ນ.',
- changeStatus: 'ປ່ຽນສະຖານະ',
- disableMsg: 'ການດຳເນີນການນີ້ຈະຢຸດການເຮັດວຽກອັດຕະໂນມັດຂອງວຽກນີ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- enableMsg: 'ການດຳເນີນການນີ້ຈະເປີດໃຫ້ວຽກເຮັດວຽກອັດຕະໂນມັດ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- taskType: 'ປະເພດ',
- nextTime: 'ການລັນ 5 ຄັ້ງຖັດໄປ',
- record: 'ບັນທຶກ',
- viewRecords: 'ເບິ່ງບັນທຶກ',
- shell: 'Shell',
- stop: 'ຢຸດດ້ວຍຕົນເອງ',
- stopHelper: 'ການດຳເນີນການນີ້ຈະບັງຄັບຢຸດການເຮັດວຽກຂອງວຽກປັດຈຸບັນ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- log: 'ສຳຮອງບັນທຶກ (Log)',
- logHelper: 'ສຳຮອງບັນທຶກລະບົບ',
- logHelper1: '1. ບັນທຶກລະບົບ 1Panel',
- logHelper2: '2. ບັນທຶກການເຂົ້າສູ່ລະບົບ SSH ຂອງ server ',
- logHelper3: '3. ບັນທຶກທັງໝົດຂອງເວັບໄຊ ',
- containerCheckBox: 'ໃນຄອນເທນເນີ (ບໍ່ຕ້ອງປ້ອນຄຳສັ່ງ container)',
- containerName: 'ຊື່ຄອນເທນເນີ',
- ntp: 'ການຊິງໂຄໄນເວລາ',
- ntp_helper: 'ທ່ານສາມາດກຳນົດຄ່າ NTP server ໄດ້ໃນໜ້າ Quick Setup ຂອງ Toolbox.',
- app: 'ສຳຮອງແອັບ',
- website: 'ສຳຮອງເວັບໄຊ',
- rulesHelper:
- 'ເມື່ອມີຫຼາຍກົດການຍົກເວັ້ນການບີບອັດ, ຕ້ອງຂຶ້ນແຖວໃໝ່. ຕົວຢ່າງ:\n*.log \n*.sql',
- lastRecordTime: 'ເວລາເຮັດວຽກຫຼ້າສຸດ',
- all: 'ທັງໝົດ',
- failedRecord: 'ບັນທຶກທີ່ລົ້ມເຫຼວ',
- successRecord: 'ບັນທຶກທີ່ສຳເລັດ',
- database: 'ສຳຮອງຖານຂໍ້ມູນ',
- backupArgs: 'Backup Arguments',
- backupArgsHelper:
- 'ສາມາດປ້ອນ backup arguments ທີ່ບໍ່ມີໃນລາຍການໄດ້ເອງ. ຕົວຢ່າງ: ປ້ອນ --no-data ແລ້ວເລືອກຕົວເລືອກທຳອິດ.',
- singleTransaction: 'ສຳຮອງຕາຕະລາງ InnoDB ໂດຍໃຊ້ single transaction, ເໝາະສຳລັບຂໍ້ມູນຂະໜາດໃຫຍ່',
- quick: 'ອ່ານຂໍ້ມູນເທື່ອລະແຖວແທນການໂຫຼດທັງໝົດລົງ memory, ເໝາະສຳລັບຂໍ້ມູນໃຫຍ່ ແລະ ເຄື່ອງທີ່ມີ memory ຕ່ຳ',
- skipLockTables: 'ສຳຮອງໂດຍບໍ່ລັອກຕາຕະລາງ, ເໝາະສຳລັບຖານຂໍ້ມູນທີ່ມີການໃຊ້ງານສູງ',
- missBackupAccount: 'ກວດບໍ່ພບບັນຊີສຳຮອງຂໍ້ມູນ',
- syncDate: 'ເວລາຊິງໂຄໄນ ',
- clean: 'ລ້າງ Cache',
- curl: 'ເຂົ້າເຖິງ URL',
- taskName: 'ຊື່ວຽກ',
- cronSpec: 'ຮອບວຽນການເຮັດວຽກ (Trigger)',
- cronSpecDoc:
- 'ຮອບວຽນການເຮັດວຽກຮອງຮັບຮູບແບບ [minute hour day month week], ເຊັ່ນ: 0 0 * * *. ສຶກສາເພີ່ມເຕີມໃນເອກະສານທາງການ.',
- cronSpecHelper: 'ກະລຸນາປ້ອນຮອບວຽນການເຮັດວຽກທີ່ຖືກຕ້ອງ',
- cleanHelper: 'ການດຳເນີນການນີ້ຈະລຶບບັນທຶກການເຮັດວຽກ, ໄຟລ໌ສຳຮອງ ແລະ ໄຟລ໌ບັນທຶກທັງໝົດ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- backupContent: 'ເນື້ອຫາທີ່ຈະສຳຮອງ',
- directory: 'ໂຟນເດີສຳຮອງ',
- sourceDir: 'ໂຟນເດີຕົ້ນທາງ',
- snapshot: 'System snapshot',
- allOptionHelper:
- 'ວຽກນີ້ແມ່ນການສຳຮອງ [{0}] ທັງໝົດ. ຍັງບໍ່ຮອງຮັບການດາວໂຫຼດໂດຍກົງໃນຕອນນີ້. ສາມາດກວດສອບລາຍການສຳຮອງໄດ້ໃນເມນູ [{0}].',
- exclusionRules: 'ກົດການຍົກເວັ້ນ',
- exclusionRulesHelper:
- 'ເລືອກ ຫຼື ປ້ອນກົດການຍົກເວັ້ນ, ກົດ Enter ຫຼັງຈາກປ້ອນແຕ່ລະຊຸດ. ກົດເຫຼົ່ານີ້ຈະໃຊ້ກັບທຸກການບີບອັດໃນການສຳຮອງນີ້',
- default_download_path: 'ລິ້ງດາວໂຫຼດເລີ່ມຕົ້ນ',
- saveLocal: 'ເກັບໄຟລ໌ສຳຮອງໄວ້ໃນເຄື່ອງ (ຈຳນວນເທົ່າກັບໃນ cloud)',
- url: 'ທີ່ຢູ່ URL',
- urlHelper: 'ປ້ອນທີ່ຢູ່ URL ທີ່ຖືກຕ້ອງ',
- targetHelper: 'ບັນຊີສຳຮອງຂໍ້ມູນຖືກຈັດການໃນການຕັ້ງຄ່າ panel.',
- withImageHelper: 'ສຳຮອງ Image ຂອງແອັບດ້ວຍ, ແຕ່ຈະເຮັດໃຫ້ຂະໜາດ snapshot ໃຫຍ່ຂຶ້ນ.',
- ignoreApp: 'ຍົກເວັ້ນແອັບ',
- withImage: 'ສຳຮອງ Application Image',
- retainCopies: 'ຈຳນວນທີ່ເກັບໄວ້',
- retryTimes: 'ລອງໃໝ່ເມື່ອລົ້ມເຫຼວ',
- timeout: 'ໝົດເວລາ',
- ignoreErr: 'ລະເວັ້ນຂໍ້ຜິດພາດ',
- ignoreErrHelper: 'ລະເວັ້ນຂໍ້ຜິດພາດລະຫວ່າງການສຳຮອງເພື່ອໃຫ້ວຽກທັງໝົດສຳເລັດ',
- retryTimesHelper: '0 ໝາຍເຖິງບໍ່ມີການລອງໃໝ່',
- retainCopiesHelper: 'ຈຳນວນບັນທຶກການເຮັດວຽກ ແລະ log ທີ່ຕ້ອງການເກັບໄວ້',
- retainCopiesHelper1: 'ຈຳນວນໄຟລ໌ສຳຮອງທີ່ຕ້ອງການເກັບໄວ້',
- retainCopiesUnit: ' ຊຸດ (ເບິ່ງ)',
- cronSpecRule: 'ຮູບແບບຮອບວຽນໃນແຖວທີ {0} ບໍ່ຖືກຕ້ອງ. ກະລຸນາກວດສອບ!',
- cronSpecRule2: 'ຮູບແບບຮອບວຽນບໍ່ຖືກຕ້ອງ, ກະລຸນາກວດສອບ!',
- perMonthHelper: 'ເຮັດວຽກວັນທີ {0} ຂອງທຸກເດືອນ ເວລາ {1}:{2}',
- perWeekHelper: 'ເຮັດວຽກທຸກອາທິດໃນວັນ{0} ເວລາ {1}:{2}',
- perDayHelper: 'ເຮັດວຽກທຸກມື້ ເວລາ {0}:{1}',
- perHourHelper: 'ເຮັດວຽກທຸກຊົ່ວໂມງທີ່ນາທີທີ {0}',
- perNDayHelper: 'ເຮັດວຽກທຸກໆ {0} ມື້ ເວລາ {1}:{2}',
- perNHourHelper: 'ເຮັດວຽກທຸກໆ {0} ຊົ່ວໂມງທີ່ນາທີທີ {1}',
- perNMinuteHelper: 'ເຮັດວຽກທຸກໆ {0} ນາທີ',
- perNSecondHelper: 'ເຮັດວຽກທຸກໆ {0} ວິນາທີ',
- perMonth: 'ທຸກເດືອນ',
- perWeek: 'ທຸກອາທິດ',
- perHour: 'ທຸກຊົ່ວໂມງ',
- perNDay: 'ທຸກໆ N ມື້',
- perDay: 'ທຸກມື້',
- perNHour: 'ທຸກໆ N ຊົ່ວໂມງ',
- perNMinute: 'ທຸກໆ N ນາທີ',
- perNSecond: 'ທຸກໆ N ວິນາທີ',
- day: 'ມື້',
- monday: 'ວັນຈັນ',
- tuesday: 'ວັນອັງຄານ',
- wednesday: 'ວັນພຸດ',
- thursday: 'ວັນພະຫັດ',
- friday: 'ວັນສຸກ',
- saturday: 'ວັນເສົາ',
- sunday: 'ວັນອາທິດ',
- shellContent: 'ສະຄຣິບ',
- executor: 'ຜູ້ລັນຄຳສັ່ງ',
- errRecord: 'ບັນທຶກທີ່ຜິດພາດ',
- errHandle: 'Cronjob ເຮັດວຽກລົ້ມເຫຼວ',
- noRecord: 'ເມື່ອ Cron Job ເຮັດວຽກ, ບັນທຶກຈະສະແດງຢູ່ທີ່ນີ້.',
- cleanData: 'ລ້າງຂໍ້ມູນ',
- cleanRemoteData: 'ລຶບຂໍ້ມູນໃນ cloud',
- cleanDataHelper: 'ລຶບໄຟລ໌ສຳຮອງທີ່ສ້າງຂຶ້ນລະຫວ່າງວຽກນີ້.',
- noLogs: 'ຍັງບໍ່ມີ output ຂອງວຽກ...',
- errPath: 'ເສັ້ນທາງສຳຮອງ [{0}] ຜິດພາດ, ບໍ່ສາມາດດາວໂຫຼດໄດ້!',
- cutWebsiteLog: 'ການໝູນວຽນບັນທຶກເວັບໄຊ (Rotation)',
- cutWebsiteLogHelper: 'ໄຟລ໌ບັນທຶກທີ່ໝູນວຽນຈະຖືກສຳຮອງໄວ້ໃນໂຟນເດີສຳຮອງຂອງ 1Panel.',
- syncIpGroup: 'ຊິງໂຄໄນກຸ່ມ IP ຂອງ WAF',
- syncIpGroupHelper: 'ຊິງໂຄໄນກຸ່ມ IP ໄລຍະໄກທີ່ໃຊ້ໃນ WAF allowlists ແລະ blocklists',
- requestExpirationTime: 'ເວລາໝົດອາຍຸຂອງຄຳຂໍອັບໂຫຼດ (ຊົ່ວໂມງ)',
- unitHours: 'ຫົວໜ່ວຍ: ຊົ່ວໂມງ',
- alertTitle: 'ວຽກທີ່ກຳນົດເວລາ - {0} 「{1}」 ແຈ້ງເຕືອນວຽກລົ້ມເຫຼວ',
- library: {
- script: 'ສະຄຣິບ',
- syncNow: 'ຊິງໂຄໄນດຽວນີ້',
- turnOnSync: 'ເປີດການຊິງໂຄໄນອັດຕະໂນມັດ',
- turnOnSyncHelper:
- 'ການເປີດຊິງໂຄໄນອັດຕະໂນມັດຈະດຳເນີນການໃນຊ່ວງເຊົ້າມືດຂອງທຸກມື້',
- turnOffSync: 'ປິດການຊິງໂຄໄນອັດຕະໂນມັດ',
- turnOffSyncHelper: 'ການປິດຊິງໂຄໄນອັດຕະໂນມັດອາດເຮັດໃຫ້ຂໍ້ມູນສະຄຣິບຫຼ້າຊ້າ, ຢືນຢັນຫຼືບໍ່?',
- isInteractive: 'ມີການໂຕ້ຕອບ',
- interactive: 'ສະຄຣິບແບບໂຕ້ຕອບ',
- interactiveHelper: 'ຕ້ອງການການປ້ອນຂໍ້ມູນຈາກຜູ້ໃຊ້ລະຫວ່າງລັນ ແລະ ບໍ່ສາມາດໃຊ້ໃນວຽກກຳນົດເວລາໄດ້.',
- library: 'ຄັງສະຄຣິບ',
- remoteLibrary: 'ຄັງສະຄຣິບໄລຍະໄກ',
- create: 'ເພີ່ມສະຄຣິບ',
- edit: 'ແກ້ໄຂສະຄຣິບ',
- groupHelper:
- 'ຕັ້ງກຸ່ມຕາມຄຸນລັກສະນະຂອງສະຄຣິບ ເພື່ອໃຫ້ຄົ້ນຫາໄດ້ໄວຂຶ້ນ.',
- handleHelper: 'ລັນສະຄຣິບ {1} ໃນ {0}, ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- noSuchApp: 'ກວດບໍ່ພົບບໍລິການ {0}. ກະລຸນາຕິດຕັ້ງຜ່ານຄັງສະຄຣິບກ່ອນ!',
- syncHelper: 'ກຳລັງຈະຊິງໂຄໄນຄັງສະຄຣິບລະບົບ. ສົ່ງຜົນກັບສະຄຣິບລະບົບເທົ່ານັ້ນ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ setting: 'ການຕັ້ງຄ່າ',
+ goSetting: 'ໄປທີ່ການຕັ້ງຄ່າ',
+ restartHelper: 'ການປ່ຽນແປງການກຳນົດຄ່າຕ້ອງເລີ່ມບໍລິການ Docker ໃໝ່ຈຶ່ງຈະມີຜົນ',
+ operatorStatusHelper: 'ຈະ "{0}" ບໍລິການ Docker. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ dockerStatus: 'ບໍລິການ Docker',
+ daemonJsonPathHelper: 'ຢືນຢັນວ່າເສັ້ນທາງກຳນົດຄ່າກົງກັບທີ່ລະບຸໃນ docker.service.',
+ mirrors: 'Registry mirrors',
+ mirrorsHelper: '',
+ mirrorsHelper2: 'ສຳລັບລາຍລະອຽດ, ເບິ່ງເອກະສານທາງການ.',
+ registries: 'Insecure registries',
+ ipv6Helper:
+ 'ເມື່ອເປີດໃຊ້ IPv6, ທ່ານຕ້ອງເພີ່ມ IPv6 network ໃຫ້ຄອນເທນເນີ. ອີງຕາມເອກະສານທາງການສຳລັບຂັ້ນຕອນການຕັ້ງຄ່າ.',
+ ipv6CidrHelper: 'ຊ່ວງ IPv6 address pool ສຳລັບຄອນເທນເນີ',
+ ipv6TablesHelper: 'ກຳນົດຄ່າ Docker IPv6 ສຳລັບກົດ iptables ອັດຕະໂນມັດ.',
+ experimentalHelper: 'ການເປີດໃຊ້ ip6tables ຕ້ອງເປີດການກຳນົດຄ່ານີ້; ບໍ່ດັ່ງນັ້ນ ip6tables ຈະຖືກລະເວັ້ນ',
+ cutLog: 'ຕົວເລືອກບັນທຶກ (Log)',
+ cutLogHelper1: 'ການກຳນົດຄ່າປັດຈຸບັນຈະມີຜົນກັບຄອນເທນເນີທີ່ສ້າງໃໝ່ເທົ່ານັ້ນ.',
+ cutLogHelper2: 'ຄອນເທນເນີທີ່ມີຢູ່ແລ້ວຕ້ອງຖືກສ້າງໃໝ່ເພື່ອໃຫ້ການຕັ້ງຄ່າມີຜົນ.',
+ cutLogHelper3: 'ກະລຸນາຮັບຊາບວ່າການສ້າງຄອນເທນເນີໃໝ່ອາດເຮັດໃຫ້ຂໍ້ມູນສູນຫາຍ. ຖ້າມີຂໍ້ມູນສຳຄັນ ໃຫ້ສຳຮອງຂໍ້ມູນກ່ອນ.',
+ maxSize: 'ຂະໜາດສູງສຸດ',
+ maxFile: 'ຈຳນວນໄຟລ໌ສູງສຸດ',
+ liveHelper:
+ 'ໂດຍເລີ່ມຕົ້ນ ເມື່ອ Docker daemon ຢຸດ ມັນຈະປິດຄອນເທນເນີທີ່ລັນຢູ່ນຳ. ທ່ານສາມາດຕັ້ງຄ່າໃຫ້ຄອນເທນເນີຍັງລັນຕໍ່ໄປໄດ້ເຖິງ daemon ຈະບໍ່ພ້ອມໃຊ້ງານ. ເອີ້ນວ່າ live restore ເຊິ່ງຊ່ວຍຫຼຸດເວລາ downtime.',
+ liveWithSwarmHelper: 'ການກຳນົດຄ່າ live-restore ບໍ່ຮອງຮັບກັບ swarm mode.',
+ iptablesDisable: 'ປິດ iptables',
+ iptablesHelper1: 'ກຳນົດຄ່າກົດ iptables ອັດຕະໂນມັດສຳລັບ Docker.',
+ iptablesHelper2: 'ການປິດ iptables ຈະເຮັດໃຫ້ຄອນເທນເນີບໍ່ສາມາດສື່ສານກັບເຄືອຂ່າຍພາຍນອກໄດ້.',
+ daemonJsonPath: 'ເສັ້ນທາງໄຟລ໌ Conf',
+ serviceUnavailable: 'ບໍລິການ Docker ຍັງບໍ່ໄດ້ເລີ່ມ.',
+ startIn: ' ເພື່ອເລີ່ມ',
+ sockPath: 'Unix domain socket',
+ sockPathHelper: 'ຊ່ອງທາງການສື່ສານລະຫວ່າງ Docker daemon ແລະ client.',
+ sockPathHelper1: 'ເສັ້ນທາງເລີ່ມຕົ້ນ: /var/run/docker-x.sock',
+ sockPathMsg: 'ການບັນທຶກ Socket Path ອາດເຮັດໃຫ້ Docker ໃຊ້ການບໍ່ໄດ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ sockPathErr: 'ເລືອກ ຫຼື ປ້ອນເສັ້ນທາງໄຟລ໌ Docker sock ທີ່ຖືກຕ້ອງ',
+ related: 'ທີ່ກ່ຽວຂ້ອງ',
+ includeAppstore: 'ສະແດງຄອນເທນເນີຈາກ App Store',
+ excludeAppstore: 'ຊື່ອງຄອນເທນເນີຈາກ App Store',
+ cleanDockerDiskZone: 'ລ້າງພື້ນທີ່ disk ທີ່ Docker ໃຊ້',
+ cleanImagesHelper: '( ລ້າງ Image ທັງໝົດທີ່ບໍ່ໄດ້ຖືກໃຊ້ໂດຍຄອນເທນເນີໃດໆ )',
+ cleanContainersHelper: '( ລ້າງຄອນເທນເນີທັງໝົດທີ່ຢຸດຢູ່ )',
+ cleanVolumesHelper: '( ລ້າງ Volume ພາຍໃນເຄື່ອງທັງໝົດທີ່ບໍ່ໄດ້ໃຊ້ )',
+ makeImage: 'ສ້າງ Image',
+ newImageName: 'ຊື່ Image ໃໝ່',
+ commitMessage: 'Commit message',
+ author: 'ຜູ້ສ້າງ',
+ ifPause: 'ພັກຄອນເທນເນີລະຫວ່າງການສ້າງ',
+ ifMakeImageWithContainer: 'ສ້າງ Image ໃໝ່ຈາກຄອນເທນເນີນີ້?',
+ finishTime: 'ເວລາຢຸດຫຼ້າສຸດ',
+ exportHelper: 'ສົ່ງອອກ Image ທີ່ເລືອກເປັນໄຟລ໌ .tar ດຽວ.',
},
- cleanLog: 'ລ້າງບັນທຶກອັດຕະໂນມັດ',
- cleanLogscope: 'ການເກັບຮັກສາບັນທຶກ',
-},
-monitor: {
- globalFilter: 'ຕົວກອງທົ່ວໂລກ',
- enableMonitor: 'ສະຖານະການຕິດຕາມ',
- storeDays: 'ຈຳນວນມື້ທີ່ເກັບໄວ້',
- defaultNetwork: 'ກາດເຄືອຂ່າຍເລີ່ມຕົ້ນ',
- defaultNetworkHelper: 'ກາດເຄືອຂ່າຍທີ່ຈະສະແດງໃນໜ້າ monitor ແລະ ພາບລວມ',
- defaultIO: 'Disk ເລີ່ມຕົ້ນ',
- defaultIOHelper: 'Disk ທີ່ຈະສະແດງໃນໜ້າ monitor ແລະ ພາບລວມ',
- cleanMonitor: 'ລ້າງບັນທຶກການຕິດຕາມ',
- cleanHelper: 'ການດຳເນີນການນີ້ຈະລ້າງບັນທຶກການຕິດຕາມທັງໝົດລວມເຖິງ GPU. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- avgLoad: 'ຄ່າ Load ສະເລ່ຍ',
- loadDetail: 'ລາຍລະອຽດ Load',
- resourceUsage: 'ການນຳໃຊ້',
- networkCard: 'Network interface',
- read: 'ອ່ານ',
- write: 'ຂຽນ',
- readWriteCount: 'ການດຳເນີນການ I/O',
- readWriteTime: 'ຄວາມໜ່ວງ I/O',
- today: 'ມື້ນີ້',
- yesterday: 'ມື້ວານນີ້',
- lastNDay: '{0} ມື້ທີ່ຜ່ານມາ',
- lastNMonth: '{0} ເດືອນທີ່ຜ່ານມາ',
- lastHalfYear: 'ເຄິ່ງປີທີ່ຜ່ານມາ',
- memory: 'ໜ່ວຍຄວາມຈຳ',
- percent: 'ເປີເຊັນ',
- cache: 'Cache',
- disk: 'Disk',
- network: 'Network',
- up: 'ອັບໂຫຼດ',
- down: 'ດາວໂຫຼດ',
- interval: 'ໄລຍະການເກັບຂໍ້ມູນ',
- intervalHelper: 'ປ້ອນໄລຍະການເກັບຂໍ້ມູນທີ່ເໝາະສົມ (10 ວິນາທີ - 12 ຊົ່ວໂມງ)',
-},
-terminal: {
- local: 'ພາຍໃນເຄື່ອງ (Local)',
- defaultConn: 'ການເຊື່ອມຕໍ່ເລີ່ມຕົ້ນ',
- defaultConnHelper:
- 'ການດຳເນີນການນີ້ຈະເຊື່ອມຕໍ່ກັບ node terminal ອັດຕະໂນມັດຫຼັງຈາກເປີດ terminal ສຳລັບ 【{0}】. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- withReset: 'ຣີເຊັດຂໍ້ມູນການເຊື່ອມຕໍ່',
- localConnJump:
- 'ຂໍ້ມູນການເຊື່ອມຕໍ່ເລີ່ມຕົ້ນຖືກຈັດການໃນ [Terminal - Settings]. ຖ້າເຊື່ອມຕໍ່ບໍ່ໄດ້ ໃຫ້ແກ້ໄຂຢູ່ທີ່ນັ້ນ!',
- nodeAdminLocalOnly: 'Node administrators ຮອງຮັບສະເພາະ local terminals.',
- localHelper: 'ຊື່ `local` ໃຊ້ເພື່ອລະບຸພາຍໃນລະບົບເທົ່ານັ້ນ',
- connLocalErr: 'ບໍ່ສາມາດຢືນຢັນຕົວຕົນອັດຕະໂນມັດໄດ້, ກະລຸນາປ້ອນຂໍ້ມູນການເຂົ້າລະບົບ local server.',
- testConn: 'ທົດສອບການເຊື່ອມຕໍ່',
- saveAndConn: 'ບັນທຶກ ແລະ ເຊື່ອມຕໍ່',
- connTestOk: 'ຂໍ້ມູນການເຊື່ອມຕໍ່ໃຊ້ງານໄດ້',
- connTestFailed: 'ການເຊື່ອມຕໍ່ບໍ່ພ້ອມໃຊ້ງານ, ກະລຸນາກວດສອບຂໍ້ມູນ.',
- host: 'Host',
- createConn: 'ສ້າງການເຊື່ອມຕໍ່ໃໝ່',
- noHost: 'ບໍ່ມີ host',
- groupChange: 'ປ່ຽນກຸ່ມ',
- expand: 'ຂະຫຍາຍທັງໝົດ',
- fold: 'ຫຍໍ້ທັງໝົດ',
- batchInput: 'ປະມວນຜົນແບບກຸ່ມ (Batch)',
- quickCommand: 'ຄຳສັ່ງດ່ວນ',
- noSuchCommand: 'ບໍ່ພົບຂໍ້ມູນຄຳສັ່ງດ່ວນໃນໄຟລ໌ CSV ທີ່ນຳເຂົ້າ, ກະລຸນາກວດສອບ!',
- quickCommandHelper: 'ທ່ານສາມາດໃຊ້ຄຳສັ່ງດ່ວນໄດ້ທີ່ດ້ານລຸ່ມຂອງ "Terminals -> Terminals".',
- quickCommandBatchHelper:
- 'ໜຶ່ງຄຳສັ່ງຕໍ່ແຖວ, ໃຊ້ຮູບແບບ ຊື່---ຄຳສັ່ງ, ຕົວຢ່າງ: Check disk---df -h',
- groupDeleteHelper:
- 'ຫຼັງຈາກລຶບກຸ່ມແລ້ວ, ການເຊື່ອມຕໍ່ທັງໝົດໃນກຸ່ມຈະຖືກຍ້າຍໄປຍັງກຸ່ມເລີ່ມຕົ້ນ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- command: 'ຄຳສັ່ງ',
- quickCmd: 'ຄຳສັ່ງດ່ວນ',
- addHost: 'ເພີ່ມ',
- localhost: 'Localhost',
- ip: 'ທີ່ຢູ່ (Address)',
- authMode: 'ການຢືນຢັນຕົວຕົນ',
- passwordMode: 'ລະຫັດຜ່ານ',
- rememberPassword: 'ຈື່ຂໍ້ມູນການຢືນຢັນຕົວຕົນ',
- keyMode: 'PrivateKey',
- key: 'Private key',
- keyPassword: 'ລະຫັດຜ່ານ Private key',
- emptyTerminal: 'ຍັງບໍ່ມີ terminal ທີ່ເຊື່ອມຕໍ່.',
- lineHeight: 'ຄວາມສູງຂອງແຖວ',
- letterSpacing: 'ໄລຍະຫ່າງຕົວອັກສອນ',
- fontSize: 'ຂະໜາດຕົວອັກສອນ',
- fontFamily: 'ຊຸດຟອນ',
- fontFamilySupportHelper:
- 'ເລືອກ ຫຼື ປ້ອນຊື່ຟອນ. ການສະແດງຜົນຕົວຈິງຂຶ້ນກັບຟອນທີ່ຕິດຕັ້ງໃນເຄື່ອງ/ບຣາວເຊີ. ຖ້າຫວ່າງໄວ້ຈະໃຊ້ຟອນເລີ່ມຕົ້ນ.',
- backgroundColor: 'ສີພື້ນຫຼັງ',
- foregroundColor: 'ສີຕົວອັກສອນ',
- cursorBlink: 'Cursor ກະພິບ',
- cursorStyle: 'ຮູບແບບ Cursor',
- cursorUnderline: 'ຂີດກ້ອງ',
- cursorBlock: 'ບລັອກ',
- cursorBar: 'ແຖບ',
- scrollback: 'ຈຳນວນແຖວຍ້ອນຫຼັງ',
- scrollSensitivity: 'ຄວາມໄວການເລື່ອນ (Scroll)',
- aiAssistant: 'AI Assistant',
- aiAccountHelper:
- 'ໃຊ້ບັນຊີໂມເດວທີ່ເລືອກເພື່ອສ້າງ ແລະ ຕື່ມຄຳສັ່ງ. ສຳລັບໂມເດວພາຍໃນເຄື່ອງເຊັ່ນ Ollama ແລະ vLLM ໃຫ້ໃຊ້ບັນຊີໂມເດວທີ່ກຳນົດເອງ.',
- aiPrefix: 'Prefix ເລີ່ມຕົ້ນ AI',
- aiPrefixHelper:
- 'ປ້ອນ "prefix + ຍະຫວ່າງ" ແລະ ກົດ Enter ເພື່ອໃຫ້ AI ສ້າງຄຳສັ່ງ, ຕົວຢ່າງ: {0} help me check disk usage.',
- aiRiskCommands: 'ສະກັດກັ້ນຄຳສັ່ງທີ່ມີຄວາມສ່ຽງ',
- aiRiskCommandsHelper:
- 'ກຳນົດຄຳສັ່ງທີ່ມີຄວາມສ່ຽງທີ່ຈະສະກັດກັ້ນ, ໜຶ່ງລາຍການຕໍ່ແຖວ. ຖ້າກົງກັນ AI ຈະບໍ່ສ້າງຄຳສັ່ງ ແລະ ຈະສົ່ງກັບມາເປັນ comment ແທນ.',
- aiSummary: 'ເມື່ອເລີ່ມຕົ້ນແຖວດ້ວຍ prefix {0} ແລະ ກົດ Enter, ຈະເປັນການເອີ້ນໃຊ້ AI ສ້າງຄຳສັ່ງ.',
- aiPrefixAsciiVisible:
- 'ຮອງຮັບສະເພາະຕົວອັກສອນ ASCII ທີ່ເຫັນໄດ້ເທົ່ານັ້ນ. ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ຍະຫວ່າງ, ຕົວອັກສອນ CJK, ແລະ ສັນຍະລັກເຕັມຄວາມກວ້າງ.',
- saveHelper: 'ທ່ານແນ່ໃຈຫຼືບໍ່ວ່າຕ້ອງການບັນທຶກການກຳນົດຄ່າ terminal ນີ້?',
-},
-toolbox: {
- common: {
- toolboxHelper: 'ສຳລັບບັນຫາການຕິດຕັ້ງ ແລະ ການໃຊ້ງານ, ເບິ່ງໄດ້ທີ່',
+ cronjob: {
+ importHelper:
+ 'ວຽກທີ່ກຳນົດເວລາທີ່ຊ້ຳກັນຈະຖືກລະເວັ້ນອັດຕະໂນມັດລະຫວ່າງການນຳເຂົ້າ. ວຽກຈະຖືກຕັ້ງເປັນສະຖານະ [ປິດໃຊ້ງານ] ເປັນຄ່າເລີ່ມຕົ້ນ.',
+ changeStatus: 'ປ່ຽນສະຖານະ',
+ disableMsg: 'ການດຳເນີນການນີ້ຈະຢຸດການເຮັດວຽກອັດຕະໂນມັດຂອງວຽກນີ້. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ enableMsg: 'ການດຳເນີນການນີ້ຈະເປີດໃຫ້ວຽກເຮັດວຽກອັດຕະໂນມັດ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ taskType: 'ປະເພດ',
+ nextTime: 'ການລັນ 5 ຄັ້ງຖັດໄປ',
+ record: 'ບັນທຶກ',
+ viewRecords: 'ເບິ່ງບັນທຶກ',
+ shell: 'Shell',
+ stop: 'ຢຸດດ້ວຍຕົນເອງ',
+ stopHelper: 'ການດຳເນີນການນີ້ຈະບັງຄັບຢຸດການເຮັດວຽກຂອງວຽກປັດຈຸບັນ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ log: 'ສຳຮອງບັນທຶກ (Log)',
+ logHelper: 'ສຳຮອງບັນທຶກລະບົບ',
+ logHelper1: '1. ບັນທຶກລະບົບ 1Panel',
+ logHelper2: '2. ບັນທຶກການເຂົ້າສູ່ລະບົບ SSH ຂອງ server ',
+ logHelper3: '3. ບັນທຶກທັງໝົດຂອງເວັບໄຊ ',
+ containerCheckBox: 'ໃນຄອນເທນເນີ (ບໍ່ຕ້ອງປ້ອນຄຳສັ່ງ container)',
+ containerName: 'ຊື່ຄອນເທນເນີ',
+ ntp: 'ການຊິງໂຄໄນເວລາ',
+ ntp_helper: 'ທ່ານສາມາດກຳນົດຄ່າ NTP server ໄດ້ໃນໜ້າ Quick Setup ຂອງ Toolbox.',
+ app: 'ສຳຮອງແອັບ',
+ website: 'ສຳຮອງເວັບໄຊ',
+ rulesHelper: 'ເມື່ອມີຫຼາຍກົດການຍົກເວັ້ນການບີບອັດ, ຕ້ອງຂຶ້ນແຖວໃໝ່. ຕົວຢ່າງ:\n*.log \n*.sql',
+ lastRecordTime: 'ເວລາເຮັດວຽກຫຼ້າສຸດ',
+ all: 'ທັງໝົດ',
+ failedRecord: 'ບັນທຶກທີ່ລົ້ມເຫຼວ',
+ successRecord: 'ບັນທຶກທີ່ສຳເລັດ',
+ database: 'ສຳຮອງຖານຂໍ້ມູນ',
+ backupArgs: 'Backup Arguments',
+ backupArgsHelper:
+ 'ສາມາດປ້ອນ backup arguments ທີ່ບໍ່ມີໃນລາຍການໄດ້ເອງ. ຕົວຢ່າງ: ປ້ອນ --no-data ແລ້ວເລືອກຕົວເລືອກທຳອິດ.',
+ singleTransaction: 'ສຳຮອງຕາຕະລາງ InnoDB ໂດຍໃຊ້ single transaction, ເໝາະສຳລັບຂໍ້ມູນຂະໜາດໃຫຍ່',
+ quick: 'ອ່ານຂໍ້ມູນເທື່ອລະແຖວແທນການໂຫຼດທັງໝົດລົງ memory, ເໝາະສຳລັບຂໍ້ມູນໃຫຍ່ ແລະ ເຄື່ອງທີ່ມີ memory ຕ່ຳ',
+ skipLockTables: 'ສຳຮອງໂດຍບໍ່ລັອກຕາຕະລາງ, ເໝາະສຳລັບຖານຂໍ້ມູນທີ່ມີການໃຊ້ງານສູງ',
+ missBackupAccount: 'ກວດບໍ່ພບບັນຊີສຳຮອງຂໍ້ມູນ',
+ syncDate: 'ເວລາຊິງໂຄໄນ ',
+ clean: 'ລ້າງ Cache',
+ curl: 'ເຂົ້າເຖິງ URL',
+ taskName: 'ຊື່ວຽກ',
+ cronSpec: 'ຮອບວຽນການເຮັດວຽກ (Trigger)',
+ cronSpecDoc:
+ 'ຮອບວຽນການເຮັດວຽກຮອງຮັບຮູບແບບ [minute hour day month week], ເຊັ່ນ: 0 0 * * *. ສຶກສາເພີ່ມເຕີມໃນເອກະສານທາງການ.',
+ cronSpecHelper: 'ກະລຸນາປ້ອນຮອບວຽນການເຮັດວຽກທີ່ຖືກຕ້ອງ',
+ cleanHelper: 'ການດຳເນີນການນີ້ຈະລຶບບັນທຶກການເຮັດວຽກ, ໄຟລ໌ສຳຮອງ ແລະ ໄຟລ໌ບັນທຶກທັງໝົດ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ backupContent: 'ເນື້ອຫາທີ່ຈະສຳຮອງ',
+ directory: 'ໂຟນເດີສຳຮອງ',
+ sourceDir: 'ໂຟນເດີຕົ້ນທາງ',
+ snapshot: 'System snapshot',
+ allOptionHelper:
+ 'ວຽກນີ້ແມ່ນການສຳຮອງ [{0}] ທັງໝົດ. ຍັງບໍ່ຮອງຮັບການດາວໂຫຼດໂດຍກົງໃນຕອນນີ້. ສາມາດກວດສອບລາຍການສຳຮອງໄດ້ໃນເມນູ [{0}].',
+ exclusionRules: 'ກົດການຍົກເວັ້ນ',
+ exclusionRulesHelper:
+ 'ເລືອກ ຫຼື ປ້ອນກົດການຍົກເວັ້ນ, ກົດ Enter ຫຼັງຈາກປ້ອນແຕ່ລະຊຸດ. ກົດເຫຼົ່ານີ້ຈະໃຊ້ກັບທຸກການບີບອັດໃນການສຳຮອງນີ້',
+ default_download_path: 'ລິ້ງດາວໂຫຼດເລີ່ມຕົ້ນ',
+ saveLocal: 'ເກັບໄຟລ໌ສຳຮອງໄວ້ໃນເຄື່ອງ (ຈຳນວນເທົ່າກັບໃນ cloud)',
+ url: 'ທີ່ຢູ່ URL',
+ urlHelper: 'ປ້ອນທີ່ຢູ່ URL ທີ່ຖືກຕ້ອງ',
+ targetHelper: 'ບັນຊີສຳຮອງຂໍ້ມູນຖືກຈັດການໃນການຕັ້ງຄ່າ panel.',
+ withImageHelper: 'ສຳຮອງ Image ຂອງແອັບດ້ວຍ, ແຕ່ຈະເຮັດໃຫ້ຂະໜາດ snapshot ໃຫຍ່ຂຶ້ນ.',
+ ignoreApp: 'ຍົກເວັ້ນແອັບ',
+ withImage: 'ສຳຮອງ Application Image',
+ retainCopies: 'ຈຳນວນທີ່ເກັບໄວ້',
+ retryTimes: 'ລອງໃໝ່ເມື່ອລົ້ມເຫຼວ',
+ timeout: 'ໝົດເວລາ',
+ ignoreErr: 'ລະເວັ້ນຂໍ້ຜິດພາດ',
+ ignoreErrHelper: 'ລະເວັ້ນຂໍ້ຜິດພາດລະຫວ່າງການສຳຮອງເພື່ອໃຫ້ວຽກທັງໝົດສຳເລັດ',
+ retryTimesHelper: '0 ໝາຍເຖິງບໍ່ມີການລອງໃໝ່',
+ retainCopiesHelper: 'ຈຳນວນບັນທຶກການເຮັດວຽກ ແລະ log ທີ່ຕ້ອງການເກັບໄວ້',
+ retainCopiesHelper1: 'ຈຳນວນໄຟລ໌ສຳຮອງທີ່ຕ້ອງການເກັບໄວ້',
+ retainCopiesUnit: ' ຊຸດ (ເບິ່ງ)',
+ cronSpecRule: 'ຮູບແບບຮອບວຽນໃນແຖວທີ {0} ບໍ່ຖືກຕ້ອງ. ກະລຸນາກວດສອບ!',
+ cronSpecRule2: 'ຮູບແບບຮອບວຽນບໍ່ຖືກຕ້ອງ, ກະລຸນາກວດສອບ!',
+ perMonthHelper: 'ເຮັດວຽກວັນທີ {0} ຂອງທຸກເດືອນ ເວລາ {1}:{2}',
+ perWeekHelper: 'ເຮັດວຽກທຸກອາທິດໃນວັນ{0} ເວລາ {1}:{2}',
+ perDayHelper: 'ເຮັດວຽກທຸກມື້ ເວລາ {0}:{1}',
+ perHourHelper: 'ເຮັດວຽກທຸກຊົ່ວໂມງທີ່ນາທີທີ {0}',
+ perNDayHelper: 'ເຮັດວຽກທຸກໆ {0} ມື້ ເວລາ {1}:{2}',
+ perNHourHelper: 'ເຮັດວຽກທຸກໆ {0} ຊົ່ວໂມງທີ່ນາທີທີ {1}',
+ perNMinuteHelper: 'ເຮັດວຽກທຸກໆ {0} ນາທີ',
+ perNSecondHelper: 'ເຮັດວຽກທຸກໆ {0} ວິນາທີ',
+ perMonth: 'ທຸກເດືອນ',
+ perWeek: 'ທຸກອາທິດ',
+ perHour: 'ທຸກຊົ່ວໂມງ',
+ perNDay: 'ທຸກໆ N ມື້',
+ perDay: 'ທຸກມື້',
+ perNHour: 'ທຸກໆ N ຊົ່ວໂມງ',
+ perNMinute: 'ທຸກໆ N ນາທີ',
+ perNSecond: 'ທຸກໆ N ວິນາທີ',
+ day: 'ມື້',
+ monday: 'ວັນຈັນ',
+ tuesday: 'ວັນອັງຄານ',
+ wednesday: 'ວັນພຸດ',
+ thursday: 'ວັນພະຫັດ',
+ friday: 'ວັນສຸກ',
+ saturday: 'ວັນເສົາ',
+ sunday: 'ວັນອາທິດ',
+ shellContent: 'ສະຄຣິບ',
+ executor: 'ຜູ້ລັນຄຳສັ່ງ',
+ errRecord: 'ບັນທຶກທີ່ຜິດພາດ',
+ errHandle: 'Cronjob ເຮັດວຽກລົ້ມເຫຼວ',
+ noRecord: 'ເມື່ອ Cron Job ເຮັດວຽກ, ບັນທຶກຈະສະແດງຢູ່ທີ່ນີ້.',
+ cleanData: 'ລ້າງຂໍ້ມູນ',
+ cleanRemoteData: 'ລຶບຂໍ້ມູນໃນ cloud',
+ cleanDataHelper: 'ລຶບໄຟລ໌ສຳຮອງທີ່ສ້າງຂຶ້ນລະຫວ່າງວຽກນີ້.',
+ noLogs: 'ຍັງບໍ່ມີ output ຂອງວຽກ...',
+ errPath: 'ເສັ້ນທາງສຳຮອງ [{0}] ຜິດພາດ, ບໍ່ສາມາດດາວໂຫຼດໄດ້!',
+ cutWebsiteLog: 'ການໝູນວຽນບັນທຶກເວັບໄຊ (Rotation)',
+ cutWebsiteLogHelper: 'ໄຟລ໌ບັນທຶກທີ່ໝູນວຽນຈະຖືກສຳຮອງໄວ້ໃນໂຟນເດີສຳຮອງຂອງ 1Panel.',
+ syncIpGroup: 'ຊິງໂຄໄນກຸ່ມ IP ຂອງ WAF',
+ syncIpGroupHelper: 'ຊິງໂຄໄນກຸ່ມ IP ໄລຍະໄກທີ່ໃຊ້ໃນ WAF allowlists ແລະ blocklists',
+ requestExpirationTime: 'ເວລາໝົດອາຍຸຂອງຄຳຂໍອັບໂຫຼດ (ຊົ່ວໂມງ)',
+ unitHours: 'ຫົວໜ່ວຍ: ຊົ່ວໂມງ',
+ alertTitle: 'ວຽກທີ່ກຳນົດເວລາ - {0} 「{1}」 ແຈ້ງເຕືອນວຽກລົ້ມເຫຼວ',
+ library: {
+ script: 'ສະຄຣິບ',
+ syncNow: 'ຊິງໂຄໄນດຽວນີ້',
+ turnOnSync: 'ເປີດການຊິງໂຄໄນອັດຕະໂນມັດ',
+ turnOnSyncHelper: 'ການເປີດຊິງໂຄໄນອັດຕະໂນມັດຈະດຳເນີນການໃນຊ່ວງເຊົ້າມືດຂອງທຸກມື້',
+ turnOffSync: 'ປິດການຊິງໂຄໄນອັດຕະໂນມັດ',
+ turnOffSyncHelper: 'ການປິດຊິງໂຄໄນອັດຕະໂນມັດອາດເຮັດໃຫ້ຂໍ້ມູນສະຄຣິບຫຼ້າຊ້າ, ຢືນຢັນຫຼືບໍ່?',
+ isInteractive: 'ມີການໂຕ້ຕອບ',
+ interactive: 'ສະຄຣິບແບບໂຕ້ຕອບ',
+ interactiveHelper: 'ຕ້ອງການການປ້ອນຂໍ້ມູນຈາກຜູ້ໃຊ້ລະຫວ່າງລັນ ແລະ ບໍ່ສາມາດໃຊ້ໃນວຽກກຳນົດເວລາໄດ້.',
+ library: 'ຄັງສະຄຣິບ',
+ remoteLibrary: 'ຄັງສະຄຣິບໄລຍະໄກ',
+ create: 'ເພີ່ມສະຄຣິບ',
+ edit: 'ແກ້ໄຂສະຄຣິບ',
+ groupHelper: 'ຕັ້ງກຸ່ມຕາມຄຸນລັກສະນະຂອງສະຄຣິບ ເພື່ອໃຫ້ຄົ້ນຫາໄດ້ໄວຂຶ້ນ.',
+ handleHelper: 'ລັນສະຄຣິບ {1} ໃນ {0}, ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ noSuchApp: 'ກວດບໍ່ພົບບໍລິການ {0}. ກະລຸນາຕິດຕັ້ງຜ່ານຄັງສະຄຣິບກ່ອນ!',
+ syncHelper: 'ກຳລັງຈະຊິງໂຄໄນຄັງສະຄຣິບລະບົບ. ສົ່ງຜົນກັບສະຄຣິບລະບົບເທົ່ານັ້ນ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ },
+ cleanLog: 'ລ້າງບັນທຶກອັດຕະໂນມັດ',
+ cleanLogscope: 'ການເກັບຮັກສາບັນທຶກ',
},
- swap: {
- swap: 'Swap Partition',
- swapHelper1:
- 'ຂະໜາດຂອງ swap ຄວນເປັນ 1 ເຖິງ 2 ເທົ່າຂອງ memory ທາງກາຍະພາບ, ປັບໄດ້ຕາມຄວາມຕ້ອງການ;',
- swapHelper2:
- 'ກ່ອນສ້າງໄຟລ໌ swap ຢືນຢັນວ່າ disk ລະບົບມີພື້ນທີ່ຫວ່າງພຽງພໍ;',
- swapHelper3:
- 'Swap ຊ່ວຍຫຼຸດຄວາມກົດດັນຂອງ memory ແຕ່ເປັນພຽງທາງເລືອກສຳຮອງ. ການໃຊ້ swap ຫຼາຍເກີນໄປອາດເຮັດໃຫ້ລະບົບຊ້າລົງ;',
- swapHelper4: 'ຄວນຕິດຕາມການໃຊ້ງານ swap ເປັນປະຈຳ.',
- swapDeleteHelper:
- 'ການດຳເນີນການນີ້ຈະລຶບ Swap partition {0}. ເພື່ອຄວາມປອດໄພຂອງລະບົບ ໄຟລ໌ທີ່ກ່ຽວຂ້ອງຈະບໍ່ຖືກລຶບອັດຕະໂນມັດ ທ່ານຕ້ອງລຶບດ້ວຍຕົນເອງ!',
- saveHelper: 'ກະລຸນາບັນທຶກການຕັ້ງຄ່າປັດຈຸບັນກ່ອນ!',
- saveSwap: 'ການບັນທຶກຈະປັບຂະໜາດ Swap partition {0} ເປັນ {1}. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- swapMin: 'ຂະໜາດ partition ຕ່ຳສຸດແມ່ນ 40 KB. ກະລຸນາແກ້ໄຂ!',
- swapMax: 'ຂະໜາດ partition ສູງສຸດແມ່ນ {0}. ກະລຸນາແກ້ໄຂ!',
- swapOff: 'ຂະໜາດ partition ຕ່ຳສຸດແມ່ນ 40 KB. ການຕັ້ງເປັນ 0 ຈະເປັນການປິດ Swap partition.',
+ monitor: {
+ globalFilter: 'ຕົວກອງທົ່ວໂລກ',
+ enableMonitor: 'ສະຖານະການຕິດຕາມ',
+ storeDays: 'ຈຳນວນມື້ທີ່ເກັບໄວ້',
+ defaultNetwork: 'ກາດເຄືອຂ່າຍເລີ່ມຕົ້ນ',
+ defaultNetworkHelper: 'ກາດເຄືອຂ່າຍທີ່ຈະສະແດງໃນໜ້າ monitor ແລະ ພາບລວມ',
+ defaultIO: 'Disk ເລີ່ມຕົ້ນ',
+ defaultIOHelper: 'Disk ທີ່ຈະສະແດງໃນໜ້າ monitor ແລະ ພາບລວມ',
+ cleanMonitor: 'ລ້າງບັນທຶກການຕິດຕາມ',
+ cleanHelper: 'ການດຳເນີນການນີ້ຈະລ້າງບັນທຶກການຕິດຕາມທັງໝົດລວມເຖິງ GPU. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ avgLoad: 'ຄ່າ Load ສະເລ່ຍ',
+ loadDetail: 'ລາຍລະອຽດ Load',
+ resourceUsage: 'ການນຳໃຊ້',
+ networkCard: 'Network interface',
+ read: 'ອ່ານ',
+ write: 'ຂຽນ',
+ readWriteCount: 'ການດຳເນີນການ I/O',
+ readWriteTime: 'ຄວາມໜ່ວງ I/O',
+ today: 'ມື້ນີ້',
+ yesterday: 'ມື້ວານນີ້',
+ lastNDay: '{0} ມື້ທີ່ຜ່ານມາ',
+ lastNMonth: '{0} ເດືອນທີ່ຜ່ານມາ',
+ lastHalfYear: 'ເຄິ່ງປີທີ່ຜ່ານມາ',
+ memory: 'ໜ່ວຍຄວາມຈຳ',
+ percent: 'ເປີເຊັນ',
+ cache: 'Cache',
+ disk: 'Disk',
+ network: 'Network',
+ up: 'ອັບໂຫຼດ',
+ down: 'ດາວໂຫຼດ',
+ interval: 'ໄລຍະການເກັບຂໍ້ມູນ',
+ intervalHelper: 'ປ້ອນໄລຍະການເກັບຂໍ້ມູນທີ່ເໝາະສົມ (10 ວິນາທີ - 12 ຊົ່ວໂມງ)',
+ runtimeDiagnostics: 'ການວິນິດໄສຣັນທາມ',
+ runtimeRSS: 'ໜ່ວຍຄວາມຈຳຂອງໂປຣເຊສ (RSS)',
+ runtimeHeapAlloc: 'ໜ່ວຍຄວາມຈຳ Heap',
+ runtimeHeapObjects: 'ອອບເຈັກໃນ Heap',
+ runtimeGoroutines: 'Goroutine',
+ goroutineSnapshot: 'ສະແນັບຊັອດ Goroutine',
+ goroutineSummary: '{0} Goroutine ຖືກຈັດກຸ່ມເປັນ {1} Call Stack',
+ goroutineTruncated: 'ສະແນັບຊັອດມີຂະໜາດໃຫຍ່ເກີນໄປ. ສະແດງສະເພາະບາງສ່ວນຂອງ Call Stack.',
+ captureSnapshot: 'ໂຫຼດສະແນັບຊັອດໃໝ່',
+ count: 'ຈຳນວນ',
+ topFunction: 'ຟັງຊັນຫຼັກ',
+ manualCapture: 'ບັນທຶກດ້ວຍຕົນເອງ',
+ startCapture: 'ເລີ່ມບັນທຶກ',
+ capturing: 'ກຳລັງບັນທຶກ',
+ captureSuccess: 'ສ້າງໄຟລ໌ວິນິດໄສແລ້ວ; ເລີ່ມດາວໂຫຼດແລ້ວ',
+ profileCPU: 'CPU',
+ profileHeap: 'Heap',
+ profileGoroutine: 'Goroutine',
+ profileMutex: 'Mutex',
+ profileBlock: 'ບລັອກ',
+ runtimeRSSDesc: 'ໜ່ວຍຄວາມຈຳກາຍະພາບທີ່ໂປຣເຊສໃຊ້ຢູ່ໃນປັດຈຸບັນ, ລວມທັງ Go Heap, Thread Stack ແລະ Native Memory.',
+ runtimeHeapAllocDesc:
+ 'ໜ່ວຍຄວາມຈຳທີ່ຈັດສັນໃນ Go Heap ແລະ ຍັງບໍ່ຖືກປ່ອຍ. ຖ້າເພີ່ມຂຶ້ນຕໍ່ເນື່ອງ ອາດສະແດງວ່າມີອອບເຈັກຖືກເກັບໄວ້.',
+ runtimeHeapObjectsDesc:
+ 'ຈຳນວນອອບເຈັກທີ່ຍັງໃຊ້ງານໃນ Go Heap. ຖ້າເພີ່ມຂຶ້ນຕໍ່ເນື່ອງ ອາດສະແດງວ່າມີອອບເຈັກຖືກເກັບໄວ້.',
+ runtimeGoroutineDesc: 'ວຽກຄູ່ຂະໜານຂະໜາດນ້ອຍໃນປັດຈຸບັນ. ຖ້າເພີ່ມຂຶ້ນຕໍ່ເນື່ອງ ຄວນກວດສອບ Goroutine Leak.',
+ profileCPUDesc: 'ສຸ່ມເກັບ CPU Call Stack ຕາມໄລຍະເວລາທີ່ເລືອກ ເພື່ອຊອກຫາຟັງຊັນທີ່ໃຊ້ CPU ຈິງ.',
+ profileHeapDesc:
+ 'ບັນທຶກອອບເຈັກໃນ Go Heap ທີ່ຍັງໃຊ້ງານ ແລະ Allocation Stack ເພື່ອກວດສອບການເພີ່ມຂອງໜ່ວຍຄວາມຈຳຢ່າງຕໍ່ເນື່ອງ.',
+ profileGoroutineDesc: 'ບັນທຶກສະຖານະ ແລະ Call Stack ຂອງທຸກ Goroutine ແລະ ຈັດກຸ່ມເສັ້ນທາງການເອີ້ນທີ່ຄືກັນ.',
+ profileMutexDesc: 'ວັດແທກເວລາລໍຖ້າທີ່ເກີດຈາກ Mutex Contention ເພື່ອຊອກຫາຈຸດທີ່ມີການແຂ່ງຂັນ Lock ສູງ.',
+ profileBlockDesc: 'ວັດແທກການບລັອກໃນ Channel, Select Statement ແລະ ກົນໄກ Synchronization.',
},
- device: {
- dnsHelper: 'DNS server',
- dnsAlert:
- 'ຄຳເຕືອນ! ການແກ້ໄຂໄຟລ໌ /etc/resolv.conf ຈະຖືກຣີເຊັດເປັນຄ່າເລີ່ມຕົ້ນຫຼັງຈາກເລີ່ມລະບົບໃໝ່.',
- dnsHelper1:
- 'ຖ້າມີຫຼາຍ DNS ໃຫ້ຂຶ້ນແຖວໃໝ່. ຕົວຢ່າງ:\n114.114.114.114\n8.8.8.8',
- hostsHelper: 'ການແປງຊື່ Host (Hostname resolution)',
- hosts: 'Domain',
- hostAlert: 'ຊື່ອງບັນທຶກທີ່ເປັນ comment ຢູ່, ຄລິກປຸ່ມ All configuration ເພື່ອເບິ່ງ ຫຼື ຕັ້ງຄ່າ',
- toolbox: 'ການຕັ້ງຄ່າດ່ວນ',
- hostname: 'ຊື່ Host (Hostname)',
- passwd: 'ລະຫັດຜ່ານລະບົບ',
- passwdHelper: 'ຕົວອັກສອນທີ່ປ້ອນບໍ່ສາມາດລວມມີ $ ແລະ &',
- timeZone: 'ເຂດເວລາລະບົບ',
- localTime: 'ເວລາຂອງ Server',
- timeZoneChangeHelper: 'ການແກ້ໄຂເຂດເວລາລະບົບຕ້ອງເລີ່ມບໍລິການໃໝ່. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- timeZoneHelper:
- 'ຖ້າບໍ່ໄດ້ຕິດຕັ້ງຄຳສັ່ງ "timedatectl" ອາດຈະປ່ຽນເຂດເວລາບໍ່ໄດ້ ເພາະລະບົບໃຊ້ຄຳສັ່ງນັ້ນໃນການປ່ຽນແປງ.',
- timeZoneCN: 'Beijing',
- timeZoneAM: 'Los Angeles',
- timeZoneNY: 'New York',
- ntpALi: 'Alibaba',
- ntpGoogle: 'Google',
- syncSite: 'NTP server',
- hostnameHelper:
- 'ການແກ້ໄຂຊື່ Host ຂຶ້ນກັບຄຳສັ່ງ "hostnamectl". ຖ້າບໍ່ໄດ້ຕິດຕັ້ງ ການແກ້ໄຂອາດລົ້ມເຫຼວ.',
- userHelper:
- 'ຊື່ຜູ້ໃຊ້ຂຶ້ນກັບຄຳສັ່ງ "whoami" ໃນການດຶງຂໍ້ມູນ.',
- passwordHelper:
- 'ການແກ້ໄຂລະຫັດຜ່ານຂຶ້ນກັບຄຳສັ່ງ "chpasswd". ຖ້າບໍ່ໄດ້ຕິດຕັ້ງ ການແກ້ໄຂອາດລົ້ມເຫຼວ.',
- hostHelper:
- 'ມີຄ່າຫວ່າງໃນເນື້ອຫາທີ່ໃຫ້ມາ. ກະລຸນາກວດສອບ ແລະ ລອງໃໝ່!',
- dnsCheck: 'ທົດສອບການໃຊ້ງານ',
- dnsOK: 'ຂໍ້ມູນການກຳນົດຄ່າ DNS ພ້ອມໃຊ້ງານ!',
- dnsTestFailed: 'ຂໍ້ມູນການກຳນົດຄ່າ DNS ບໍ່ພ້ອມໃຊ້ງານ.',
- syncSiteHelper: 'ຊິງໂຄໄນເວລາລະບົບກັບ {0}. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ terminal: {
+ local: 'ພາຍໃນເຄື່ອງ (Local)',
+ defaultConn: 'ການເຊື່ອມຕໍ່ເລີ່ມຕົ້ນ',
+ defaultConnHelper:
+ 'ການດຳເນີນການນີ້ຈະເຊື່ອມຕໍ່ກັບ node terminal ອັດຕະໂນມັດຫຼັງຈາກເປີດ terminal ສຳລັບ 【{0}】. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ withReset: 'ຣີເຊັດຂໍ້ມູນການເຊື່ອມຕໍ່',
+ localConnJump:
+ 'ຂໍ້ມູນການເຊື່ອມຕໍ່ເລີ່ມຕົ້ນຖືກຈັດການໃນ [Terminal - Settings]. ຖ້າເຊື່ອມຕໍ່ບໍ່ໄດ້ ໃຫ້ແກ້ໄຂຢູ່ທີ່ນັ້ນ!',
+ nodeAdminLocalOnly: 'Node administrators ຮອງຮັບສະເພາະ local terminals.',
+ localHelper: 'ຊື່ `local` ໃຊ້ເພື່ອລະບຸພາຍໃນລະບົບເທົ່ານັ້ນ',
+ connLocalErr: 'ບໍ່ສາມາດຢືນຢັນຕົວຕົນອັດຕະໂນມັດໄດ້, ກະລຸນາປ້ອນຂໍ້ມູນການເຂົ້າລະບົບ local server.',
+ testConn: 'ທົດສອບການເຊື່ອມຕໍ່',
+ saveAndConn: 'ບັນທຶກ ແລະ ເຊື່ອມຕໍ່',
+ connTestOk: 'ຂໍ້ມູນການເຊື່ອມຕໍ່ໃຊ້ງານໄດ້',
+ connTestFailed: 'ການເຊື່ອມຕໍ່ບໍ່ພ້ອມໃຊ້ງານ, ກະລຸນາກວດສອບຂໍ້ມູນ.',
+ host: 'Host',
+ createConn: 'ສ້າງການເຊື່ອມຕໍ່ໃໝ່',
+ noHost: 'ບໍ່ມີ host',
+ groupChange: 'ປ່ຽນກຸ່ມ',
+ expand: 'ຂະຫຍາຍທັງໝົດ',
+ fold: 'ຫຍໍ້ທັງໝົດ',
+ batchInput: 'ປະມວນຜົນແບບກຸ່ມ (Batch)',
+ quickCommand: 'ຄຳສັ່ງດ່ວນ',
+ noSuchCommand: 'ບໍ່ພົບຂໍ້ມູນຄຳສັ່ງດ່ວນໃນໄຟລ໌ CSV ທີ່ນຳເຂົ້າ, ກະລຸນາກວດສອບ!',
+ quickCommandHelper: 'ທ່ານສາມາດໃຊ້ຄຳສັ່ງດ່ວນໄດ້ທີ່ດ້ານລຸ່ມຂອງ "Terminals -> Terminals".',
+ quickCommandBatchHelper: 'ໜຶ່ງຄຳສັ່ງຕໍ່ແຖວ, ໃຊ້ຮູບແບບ ຊື່---ຄຳສັ່ງ, ຕົວຢ່າງ: Check disk---df -h',
+ groupDeleteHelper: 'ຫຼັງຈາກລຶບກຸ່ມແລ້ວ, ການເຊື່ອມຕໍ່ທັງໝົດໃນກຸ່ມຈະຖືກຍ້າຍໄປຍັງກຸ່ມເລີ່ມຕົ້ນ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ command: 'ຄຳສັ່ງ',
+ quickCmd: 'ຄຳສັ່ງດ່ວນ',
+ addHost: 'ເພີ່ມ',
+ localhost: 'Localhost',
+ ip: 'ທີ່ຢູ່ (Address)',
+ authMode: 'ການຢືນຢັນຕົວຕົນ',
+ passwordMode: 'ລະຫັດຜ່ານ',
+ rememberPassword: 'ຈື່ຂໍ້ມູນການຢືນຢັນຕົວຕົນ',
+ keyMode: 'PrivateKey',
+ key: 'Private key',
+ keyPassword: 'ລະຫັດຜ່ານ Private key',
+ emptyTerminal: 'ຍັງບໍ່ມີ terminal ທີ່ເຊື່ອມຕໍ່.',
+ lineHeight: 'ຄວາມສູງຂອງແຖວ',
+ letterSpacing: 'ໄລຍະຫ່າງຕົວອັກສອນ',
+ fontSize: 'ຂະໜາດຕົວອັກສອນ',
+ fontFamily: 'ຊຸດຟອນ',
+ fontFamilySupportHelper:
+ 'ເລືອກ ຫຼື ປ້ອນຊື່ຟອນ. ການສະແດງຜົນຕົວຈິງຂຶ້ນກັບຟອນທີ່ຕິດຕັ້ງໃນເຄື່ອງ/ບຣາວເຊີ. ຖ້າຫວ່າງໄວ້ຈະໃຊ້ຟອນເລີ່ມຕົ້ນ.',
+ backgroundColor: 'ສີພື້ນຫຼັງ',
+ foregroundColor: 'ສີຕົວອັກສອນ',
+ cursorBlink: 'Cursor ກະພິບ',
+ cursorStyle: 'ຮູບແບບ Cursor',
+ cursorUnderline: 'ຂີດກ້ອງ',
+ cursorBlock: 'ບລັອກ',
+ cursorBar: 'ແຖບ',
+ scrollback: 'ຈຳນວນແຖວຍ້ອນຫຼັງ',
+ scrollSensitivity: 'ຄວາມໄວການເລື່ອນ (Scroll)',
+ aiAssistant: 'AI Assistant',
+ aiAccountHelper:
+ 'ໃຊ້ບັນຊີໂມເດວທີ່ເລືອກເພື່ອສ້າງ ແລະ ຕື່ມຄຳສັ່ງ. ສຳລັບໂມເດວພາຍໃນເຄື່ອງເຊັ່ນ Ollama ແລະ vLLM ໃຫ້ໃຊ້ບັນຊີໂມເດວທີ່ກຳນົດເອງ.',
+ aiPrefix: 'Prefix ເລີ່ມຕົ້ນ AI',
+ aiPrefixHelper:
+ 'ປ້ອນ "prefix + ຍະຫວ່າງ" ແລະ ກົດ Enter ເພື່ອໃຫ້ AI ສ້າງຄຳສັ່ງ, ຕົວຢ່າງ: {0} help me check disk usage.',
+ aiRiskCommands: 'ສະກັດກັ້ນຄຳສັ່ງທີ່ມີຄວາມສ່ຽງ',
+ aiRiskCommandsHelper:
+ 'ກຳນົດຄຳສັ່ງທີ່ມີຄວາມສ່ຽງທີ່ຈະສະກັດກັ້ນ, ໜຶ່ງລາຍການຕໍ່ແຖວ. ຖ້າກົງກັນ AI ຈະບໍ່ສ້າງຄຳສັ່ງ ແລະ ຈະສົ່ງກັບມາເປັນ comment ແທນ.',
+ aiSummary: 'ເມື່ອເລີ່ມຕົ້ນແຖວດ້ວຍ prefix {0} ແລະ ກົດ Enter, ຈະເປັນການເອີ້ນໃຊ້ AI ສ້າງຄຳສັ່ງ.',
+ aiPrefixAsciiVisible:
+ 'ຮອງຮັບສະເພາະຕົວອັກສອນ ASCII ທີ່ເຫັນໄດ້ເທົ່ານັ້ນ. ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ຍະຫວ່າງ, ຕົວອັກສອນ CJK, ແລະ ສັນຍະລັກເຕັມຄວາມກວ້າງ.',
+ saveHelper: 'ທ່ານແນ່ໃຈຫຼືບໍ່ວ່າຕ້ອງການບັນທຶກການກຳນົດຄ່າ terminal ນີ້?',
},
- fail2ban: {
- sshPort: 'ຕິດຕາມພອດ SSH',
- sshPortHelper: 'ປັດຈຸບັນ Fail2ban ຕິດຕາມພອດ SSH ຂອງ host',
- unActive: 'ບໍລິການ Fail2ban ຍັງບໍ່ໄດ້ເປີດໃຊ້ງານ.',
- operation: 'ທ່ານຈະດຳເນີນການ "{0}" ໃນບໍລິການ Fail2ban. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- fail2banChange: 'ແກ້ໄຂການກຳນົດຄ່າ Fail2ban',
- ignoreHelper: 'ລາຍການ IP ໃນ allowlist ຈະບໍ່ຖືກບລັອກ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- bannedHelper: 'ລາຍການ IP ໃນ blocklist ຈະຖືກບລັອກໂດຍ server. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- maxRetry: 'ຈຳນວນຄັ້ງທີ່ອະນຸຍາດໃຫ້ລອງໃໝ່',
- banTime: 'ໄລຍະເວລາການບລັອກ',
- banTimeHelper: 'ຄ່າເລີ່ມຕົ້ນແມ່ນ 10 ນາທີ, -1 ໝາຍເຖິງບລັອກຖາວອນ',
- banTimeRule: 'ປ້ອນໄລຍະເວລາການບລັອກທີ່ຖືກຕ້ອງ ຫຼື -1',
- banAllTime: 'ບລັອກຖາວອນ',
- findTime: 'ຊ່ວງເວລາທີ່ກວດສອບ',
- banAction: 'ການດຳເນີນການບລັອກ',
- banActionOption: 'ບລັອກ IP ທີ່ລະບຸໂດຍໃຊ້ {0}',
- allPorts: ' (ທຸກພອດ)',
- ignoreIP: 'IP allowlist',
- bannedIP: 'IP blocklist',
- logPath: 'ເສັ້ນທາງບັນທຶກ (Log)',
- logPathHelper: 'ເລີ່ມຕົ້ນແມ່ນ /var/log/secure ຫຼື /var/log/auth.log',
- },
- ftp: {
- ftp: 'ບັນຊີ FTP',
- notStart: 'ບໍລິການ FTP ຍັງບໍ່ໄດ້ລັນ, ກະລຸນາເລີ່ມກ່ອນ!',
- operation: 'ຈະດຳເນີນການ "{0}" ໃນບໍລິການ FTP. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- noPasswdMsg: 'ບໍ່ສາມາດດຶງລະຫັດຜ່ານ FTP ປັດຈຸບັນໄດ້. ກະລຸນາຕັ້ງລະຫັດຜ່ານແລ້ວລອງໃໝ່.',
- enableHelper: 'ການເປີດໃຊ້ບັນຊີ FTP ທີ່ເລືອກຈະຄືນສິດການເຂົ້າເຖິງ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- disableHelper: 'ການປິດໃຊ້ບັນຊີ FTP ທີ່ເລືອກຈະຍົກເລີກສິດການເຂົ້າເຖິງ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- syncHelper: 'ຊິງໂຄໄນຂໍ້ມູນບັນຊີ FTP ລະຫວ່າງ server ແລະ ຖານຂໍ້ມູນ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- dirSystem:
- 'ໂຟນເດີນີ້ຖືກສະຫງວນໄວ້ໂດຍລະບົບ. ການແກ້ໄຂອາດເຮັດໃຫ້ລະບົບມີບັນຫາ!',
- dirHelper: 'ການເປີດໃຊ້ FTP ຕ້ອງມີການປ່ຽນແປງສິດການເຂົ້າເຖິງໂຟນເດີ - ກະລຸນາເລືອກດ້ວຍຄວາມລະມັດລະວັງ',
- dirMsg: 'ການເປີດໃຊ້ FTP ຈະແກ້ໄຂສິດຂອງທັງໂຟນເດີ {0}. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- },
- clam: {
- clam: 'ສະແກນໄວຣັສ',
- cron: 'ສະແກນຕາມເວລາ',
- cronHelper: 'Commercial Edition ຮອງຮັບການສະແກນຕາມເວລາ',
- specErr: 'ຮູບແບບຮອບວຽນການເຮັດວຽກບໍ່ຖືກຕ້ອງ!',
- disableMsg:
- 'ການຢຸດວຽກຕາມເວລາຈະເຮັດໃຫ້ການສະແກນບໍ່ເຮັດວຽກອັດຕະໂນມັດ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- enableMsg:
- 'ການເປີດວຽກຕາມເວລາຈະໃຫ້ການສະແກນເຮັດວຽກອັດຕະໂນມັດຕາມຮອບວຽນ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- showFresh: 'ສະແດງບໍລິການອັບເດດຖານຂໍ້ມູນໄວຣັສ',
- hideFresh: 'ຊື່ອງບໍລິການອັບເດດຖານຂໍ້ມູນໄວຣັສ',
- clamHelper:
- 'ການກຳນົດຄ່າຕ່ຳສຸດສຳລັບ ClamAV: RAM 3 GiB ຂຶ້ນໄປ, CPU single-core 2.0 GHz ຂຶ້ນໄປ, ແລະ ພື້ນທີ່ຫວ່າງຢ່າງໜ້ອຍ 5 GiB.',
- notStart: 'ບໍລິການ ClamAV ຍັງບໍ່ໄດ້ລັນ, ກະລຸນາເລີ່ມກ່ອນ!',
- removeRecord: 'ລຶບໄຟລ໌ລາຍງານ',
- noRecords: 'ຄລິກປຸ່ມ "Trigger" ເພື່ອເລີ່ມສະແກນ ແລະ ຈະເຫັນບັນທຶກຢູ່ທີ່ນີ້.',
- removeInfected: 'ລຶບໄຟລ໌ທີ່ຕິດໄວຣັສ',
- removeInfectedHelper:
- 'ລຶບໄຟລ໌ໄວຣັສທີ່ກວດພົບເພື່ອຄວາມປອດໄພຂອງ server.',
- clamCreate: 'ສ້າງກົດການສະແກນ',
- infectedStrategy: 'ວິທີການຈັດການເມື່ອພົບໄວຣັສ',
- removeHelper: 'ລຶບໄຟລ໌ໄວຣັສ, ເລືອກດ້ວຍຄວາມລະມັດລະວັງ!',
- move: 'ຍ້າຍ',
- moveHelper: 'ຍ້າຍໄຟລ໌ໄວຣັສໄປຍັງໂຟນເດີທີ່ລະບຸ',
- copyHelper: 'ຄັດລອກໄຟລ໌ໄວຣັສໄປຍັງໂຟນເດີທີ່ລະບຸ',
- none: 'ບໍ່ຕ້ອງເຮັດຫຍັງ',
- noneHelper: 'ບໍ່ດຳເນີນການໃດໆກັບໄຟລ໌ໄວຣັສ',
- scanDir: 'ໂຟນເດີທີ່ຈະສະແກນ',
- infectedDir: 'ໂຟນເດີເກັບໄຟລ໌ທີ່ຕິດໄວຣັສ',
- scanDate: 'ວັນທີສະແກນ',
- scanResult: 'ສ່ວນທ້າຍຂອງບັນທຶກການສະແກນ',
+ toolbox: {
+ common: {
+ toolboxHelper: 'ສຳລັບບັນຫາການຕິດຕັ້ງ ແລະ ການໃຊ້ງານ, ເບິ່ງໄດ້ທີ່',
+ },
+ swap: {
+ swap: 'Swap Partition',
+ swapHelper1: 'ຂະໜາດຂອງ swap ຄວນເປັນ 1 ເຖິງ 2 ເທົ່າຂອງ memory ທາງກາຍະພາບ, ປັບໄດ້ຕາມຄວາມຕ້ອງການ;',
+ swapHelper2: 'ກ່ອນສ້າງໄຟລ໌ swap ຢືນຢັນວ່າ disk ລະບົບມີພື້ນທີ່ຫວ່າງພຽງພໍ;',
+ swapHelper3:
+ 'Swap ຊ່ວຍຫຼຸດຄວາມກົດດັນຂອງ memory ແຕ່ເປັນພຽງທາງເລືອກສຳຮອງ. ການໃຊ້ swap ຫຼາຍເກີນໄປອາດເຮັດໃຫ້ລະບົບຊ້າລົງ;',
+ swapHelper4: 'ຄວນຕິດຕາມການໃຊ້ງານ swap ເປັນປະຈຳ.',
+ swapDeleteHelper:
+ 'ການດຳເນີນການນີ້ຈະລຶບ Swap partition {0}. ເພື່ອຄວາມປອດໄພຂອງລະບົບ ໄຟລ໌ທີ່ກ່ຽວຂ້ອງຈະບໍ່ຖືກລຶບອັດຕະໂນມັດ ທ່ານຕ້ອງລຶບດ້ວຍຕົນເອງ!',
+ saveHelper: 'ກະລຸນາບັນທຶກການຕັ້ງຄ່າປັດຈຸບັນກ່ອນ!',
+ saveSwap: 'ການບັນທຶກຈະປັບຂະໜາດ Swap partition {0} ເປັນ {1}. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ swapMin: 'ຂະໜາດ partition ຕ່ຳສຸດແມ່ນ 40 KB. ກະລຸນາແກ້ໄຂ!',
+ swapMax: 'ຂະໜາດ partition ສູງສຸດແມ່ນ {0}. ກະລຸນາແກ້ໄຂ!',
+ swapOff: 'ຂະໜາດ partition ຕ່ຳສຸດແມ່ນ 40 KB. ການຕັ້ງເປັນ 0 ຈະເປັນການປິດ Swap partition.',
+ },
+ device: {
+ dnsHelper: 'DNS server',
+ dnsAlert: 'ຄຳເຕືອນ! ການແກ້ໄຂໄຟລ໌ /etc/resolv.conf ຈະຖືກຣີເຊັດເປັນຄ່າເລີ່ມຕົ້ນຫຼັງຈາກເລີ່ມລະບົບໃໝ່.',
+ dnsHelper1: 'ຖ້າມີຫຼາຍ DNS ໃຫ້ຂຶ້ນແຖວໃໝ່. ຕົວຢ່າງ:\n114.114.114.114\n8.8.8.8',
+ hostsHelper: 'ການແປງຊື່ Host (Hostname resolution)',
+ hosts: 'Domain',
+ hostAlert: 'ຊື່ອງບັນທຶກທີ່ເປັນ comment ຢູ່, ຄລິກປຸ່ມ All configuration ເພື່ອເບິ່ງ ຫຼື ຕັ້ງຄ່າ',
+ toolbox: 'ການຕັ້ງຄ່າດ່ວນ',
+ hostname: 'ຊື່ Host (Hostname)',
+ passwd: 'ລະຫັດຜ່ານລະບົບ',
+ passwdHelper: 'ຕົວອັກສອນທີ່ປ້ອນບໍ່ສາມາດລວມມີ $ ແລະ &',
+ timeZone: 'ເຂດເວລາລະບົບ',
+ localTime: 'ເວລາຂອງ Server',
+ timeZoneChangeHelper: 'ການແກ້ໄຂເຂດເວລາລະບົບຕ້ອງເລີ່ມບໍລິການໃໝ່. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ timeZoneHelper:
+ 'ຖ້າບໍ່ໄດ້ຕິດຕັ້ງຄຳສັ່ງ "timedatectl" ອາດຈະປ່ຽນເຂດເວລາບໍ່ໄດ້ ເພາະລະບົບໃຊ້ຄຳສັ່ງນັ້ນໃນການປ່ຽນແປງ.',
+ timeZoneCN: 'Beijing',
+ timeZoneAM: 'Los Angeles',
+ timeZoneNY: 'New York',
+ ntpALi: 'Alibaba',
+ ntpGoogle: 'Google',
+ syncSite: 'NTP server',
+ hostnameHelper: 'ການແກ້ໄຂຊື່ Host ຂຶ້ນກັບຄຳສັ່ງ "hostnamectl". ຖ້າບໍ່ໄດ້ຕິດຕັ້ງ ການແກ້ໄຂອາດລົ້ມເຫຼວ.',
+ userHelper: 'ຊື່ຜູ້ໃຊ້ຂຶ້ນກັບຄຳສັ່ງ "whoami" ໃນການດຶງຂໍ້ມູນ.',
+ passwordHelper: 'ການແກ້ໄຂລະຫັດຜ່ານຂຶ້ນກັບຄຳສັ່ງ "chpasswd". ຖ້າບໍ່ໄດ້ຕິດຕັ້ງ ການແກ້ໄຂອາດລົ້ມເຫຼວ.',
+ hostHelper: 'ມີຄ່າຫວ່າງໃນເນື້ອຫາທີ່ໃຫ້ມາ. ກະລຸນາກວດສອບ ແລະ ລອງໃໝ່!',
+ dnsCheck: 'ທົດສອບການໃຊ້ງານ',
+ dnsOK: 'ຂໍ້ມູນການກຳນົດຄ່າ DNS ພ້ອມໃຊ້ງານ!',
+ dnsTestFailed: 'ຂໍ້ມູນການກຳນົດຄ່າ DNS ບໍ່ພ້ອມໃຊ້ງານ.',
+ syncSiteHelper: 'ຊິງໂຄໄນເວລາລະບົບກັບ {0}. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ },
+ fail2ban: {
+ sshPort: 'ຕິດຕາມພອດ SSH',
+ sshPortHelper: 'ປັດຈຸບັນ Fail2ban ຕິດຕາມພອດ SSH ຂອງ host',
+ unActive: 'ບໍລິການ Fail2ban ຍັງບໍ່ໄດ້ເປີດໃຊ້ງານ.',
+ operation: 'ທ່ານຈະດຳເນີນການ "{0}" ໃນບໍລິການ Fail2ban. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ fail2banChange: 'ແກ້ໄຂການກຳນົດຄ່າ Fail2ban',
+ ignoreHelper: 'ລາຍການ IP ໃນ allowlist ຈະບໍ່ຖືກບລັອກ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ bannedHelper: 'ລາຍການ IP ໃນ blocklist ຈະຖືກບລັອກໂດຍ server. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ maxRetry: 'ຈຳນວນຄັ້ງທີ່ອະນຸຍາດໃຫ້ລອງໃໝ່',
+ banTime: 'ໄລຍະເວລາການບລັອກ',
+ banTimeHelper: 'ຄ່າເລີ່ມຕົ້ນແມ່ນ 10 ນາທີ, -1 ໝາຍເຖິງບລັອກຖາວອນ',
+ banTimeRule: 'ປ້ອນໄລຍະເວລາການບລັອກທີ່ຖືກຕ້ອງ ຫຼື -1',
+ banAllTime: 'ບລັອກຖາວອນ',
+ findTime: 'ຊ່ວງເວລາທີ່ກວດສອບ',
+ banAction: 'ການດຳເນີນການບລັອກ',
+ banActionOption: 'ບລັອກ IP ທີ່ລະບຸໂດຍໃຊ້ {0}',
+ allPorts: ' (ທຸກພອດ)',
+ ignoreIP: 'IP allowlist',
+ bannedIP: 'IP blocklist',
+ logPath: 'ເສັ້ນທາງບັນທຶກ (Log)',
+ logPathHelper: 'ເລີ່ມຕົ້ນແມ່ນ /var/log/secure ຫຼື /var/log/auth.log',
+ },
+ ftp: {
+ ftp: 'ບັນຊີ FTP',
+ notStart: 'ບໍລິການ FTP ຍັງບໍ່ໄດ້ລັນ, ກະລຸນາເລີ່ມກ່ອນ!',
+ operation: 'ຈະດຳເນີນການ "{0}" ໃນບໍລິການ FTP. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ noPasswdMsg: 'ບໍ່ສາມາດດຶງລະຫັດຜ່ານ FTP ປັດຈຸບັນໄດ້. ກະລຸນາຕັ້ງລະຫັດຜ່ານແລ້ວລອງໃໝ່.',
+ enableHelper: 'ການເປີດໃຊ້ບັນຊີ FTP ທີ່ເລືອກຈະຄືນສິດການເຂົ້າເຖິງ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ disableHelper: 'ການປິດໃຊ້ບັນຊີ FTP ທີ່ເລືອກຈະຍົກເລີກສິດການເຂົ້າເຖິງ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ syncHelper: 'ຊິງໂຄໄນຂໍ້ມູນບັນຊີ FTP ລະຫວ່າງ server ແລະ ຖານຂໍ້ມູນ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ dirSystem: 'ໂຟນເດີນີ້ຖືກສະຫງວນໄວ້ໂດຍລະບົບ. ການແກ້ໄຂອາດເຮັດໃຫ້ລະບົບມີບັນຫາ!',
+ dirHelper: 'ການເປີດໃຊ້ FTP ຕ້ອງມີການປ່ຽນແປງສິດການເຂົ້າເຖິງໂຟນເດີ - ກະລຸນາເລືອກດ້ວຍຄວາມລະມັດລະວັງ',
+ dirMsg: 'ການເປີດໃຊ້ FTP ຈະແກ້ໄຂສິດຂອງທັງໂຟນເດີ {0}. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ },
+ clam: {
+ clam: 'ສະແກນໄວຣັສ',
+ cron: 'ສະແກນຕາມເວລາ',
+ cronHelper: 'Commercial Edition ຮອງຮັບການສະແກນຕາມເວລາ',
+ specErr: 'ຮູບແບບຮອບວຽນການເຮັດວຽກບໍ່ຖືກຕ້ອງ!',
+ disableMsg: 'ການຢຸດວຽກຕາມເວລາຈະເຮັດໃຫ້ການສະແກນບໍ່ເຮັດວຽກອັດຕະໂນມັດ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ enableMsg: 'ການເປີດວຽກຕາມເວລາຈະໃຫ້ການສະແກນເຮັດວຽກອັດຕະໂນມັດຕາມຮອບວຽນ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ showFresh: 'ສະແດງບໍລິການອັບເດດຖານຂໍ້ມູນໄວຣັສ',
+ hideFresh: 'ຊື່ອງບໍລິການອັບເດດຖານຂໍ້ມູນໄວຣັສ',
+ clamHelper:
+ 'ການກຳນົດຄ່າຕ່ຳສຸດສຳລັບ ClamAV: RAM 3 GiB ຂຶ້ນໄປ, CPU single-core 2.0 GHz ຂຶ້ນໄປ, ແລະ ພື້ນທີ່ຫວ່າງຢ່າງໜ້ອຍ 5 GiB.',
+ notStart: 'ບໍລິການ ClamAV ຍັງບໍ່ໄດ້ລັນ, ກະລຸນາເລີ່ມກ່ອນ!',
+ removeRecord: 'ລຶບໄຟລ໌ລາຍງານ',
+ noRecords: 'ຄລິກປຸ່ມ "Trigger" ເພື່ອເລີ່ມສະແກນ ແລະ ຈະເຫັນບັນທຶກຢູ່ທີ່ນີ້.',
+ removeInfected: 'ລຶບໄຟລ໌ທີ່ຕິດໄວຣັສ',
+ removeInfectedHelper: 'ລຶບໄຟລ໌ໄວຣັສທີ່ກວດພົບເພື່ອຄວາມປອດໄພຂອງ server.',
+ clamCreate: 'ສ້າງກົດການສະແກນ',
+ infectedStrategy: 'ວິທີການຈັດການເມື່ອພົບໄວຣັສ',
+ removeHelper: 'ລຶບໄຟລ໌ໄວຣັສ, ເລືອກດ້ວຍຄວາມລະມັດລະວັງ!',
+ move: 'ຍ້າຍ',
+ moveHelper: 'ຍ້າຍໄຟລ໌ໄວຣັສໄປຍັງໂຟນເດີທີ່ລະບຸ',
+ copyHelper: 'ຄັດລອກໄຟລ໌ໄວຣັສໄປຍັງໂຟນເດີທີ່ລະບຸ',
+ none: 'ບໍ່ຕ້ອງເຮັດຫຍັງ',
+ noneHelper: 'ບໍ່ດຳເນີນການໃດໆກັບໄຟລ໌ໄວຣັສ',
+ scanDir: 'ໂຟນເດີທີ່ຈະສະແກນ',
+ infectedDir: 'ໂຟນເດີເກັບໄຟລ໌ທີ່ຕິດໄວຣັສ',
+ scanDate: 'ວັນທີສະແກນ',
+ scanResult: 'ສ່ວນທ້າຍຂອງບັນທຶກການສະແກນ',
tail: 'ແຖວ',
infectedFiles: 'ໄຟລ໌ທີ່ຕິດເຊື້ອ',
log: 'ລາຍລະອຽດ',
@@ -2020,6 +2107,21 @@ toolbox: {
loginAgent: 'ຕົວແທນການເຂົ້າລະບົບ',
loginStatus: 'ສະຖານະ',
system: 'ບັນທຶກລະບົບ',
+ hostSystem: 'ລັອກຂອງ Host',
+ previousPage: 'ໜ້າກ່ອນ',
+ nextPage: 'ໜ້າຖັດໄປ',
+ filter: 'ກັ່ນຕອງ',
+ service: 'ບໍລິການ',
+ priority: 'ລະດັບຄວາມສຳຄັນ',
+ priorityEmergency: 'ສຸກເສີນ',
+ priorityAlert: 'ແຈ້ງເຕືອນ',
+ priorityCritical: 'ຮ້າຍແຮງ',
+ priorityError: 'ຂໍ້ຜິດພາດ',
+ priorityWarning: 'ຄຳເຕືອນ',
+ priorityNotice: 'ແຈ້ງການ',
+ priorityInfo: 'ຂໍ້ມູນ',
+ priorityDebug: 'ດີບັກ',
+ message: 'ຂໍ້ຄວາມ',
deleteLogs: 'ລ້າງບັນທຶກ',
resource: 'ຊັບພະຍາກອນ',
detail: {
@@ -2056,6 +2158,10 @@ toolbox: {
roles: 'ບົດບາດ',
auth: 'ການຢືນຢັນຕົວຕົນ',
alert: 'ການແຈ້ງເຕືອນ',
+ sync: 'ຊິງຊັບພະຍາກອນ',
+ exchange: 'ຊິງຊັບພະຍາກອນ',
+ xapp: 'ແອັບ',
+ vms: 'ເຄື່ອງສະເໝືອນ',
},
websiteLog: 'ບັນທຶກເວັບໄຊ',
runLog: 'ບັນທຶກການເຮັດວຽກ',
@@ -2221,18 +2327,16 @@ toolbox: {
historyRestore: 'ກູ້ຄືນເວີຊັນນີ້',
historyOperationOnlyHint: 'ລາຍການທີ່ເລືອກແມ່ນການເຮັດວຽກຂອງໄຟລ໌ ແລະ ບໍ່ຮອງຮັບການກູ້ຄືນເວີຊັນ.',
historyCurrentFile: 'ໄຟລ໌ປັດຈຸບັນ',
- historyLatestVersion:
- 'ເບື້ອງຊ້າຍສະແດງເນື້ອໃນເວີຊັນປະຫວັດ, ເບື້ອງຂວາສະແດງເນື້ອໃນເວີຊັນຫຼ້າສຸດຂອງໄຟລ໌ທີ່ເລືອກ',
+ historyLatestVersion: 'ເບື້ອງຊ້າຍສະແດງເນື້ອໃນເວີຊັນປະຫວັດ, ເບື້ອງຂວາສະແດງເນື້ອໃນເວີຊັນຫຼ້າສຸດຂອງໄຟລ໌ທີ່ເລືອກ',
historyCompareTarget: 'ເປົ້າໝາຍການປຽບທຽບ',
historyCompareTargetPath: 'ເສັ້ນທາງການປຽບທຽບ',
historyRestoreConfirm: 'ກູ້ຄືນເວີຊັນນີ້ໄປຍັງໄຟລ໌ປັດຈຸບັນບໍ?',
- historyRestoreDirtyConfirm: 'ໄຟລ໌ປັດຈຸບັນມີການປ່ຽນແປງທີ່ຍັງບໍ່ໄດ້ບັນທຶກ. ການກູ້ຄືນຈະຂຽນທັບຂໍ້ມູນເຫຼົ່ານັ້ນ. ຕ້ອງການເຮັດຕໍ່ບໍ?',
+ historyRestoreDirtyConfirm:
+ 'ໄຟລ໌ປັດຈຸບັນມີການປ່ຽນແປງທີ່ຍັງບໍ່ໄດ້ບັນທຶກ. ການກູ້ຄືນຈະຂຽນທັບຂໍ້ມູນເຫຼົ່ານັ້ນ. ຕ້ອງການເຮັດຕໍ່ບໍ?',
historyRestoreSuccess: 'ກູ້ຄືນເວີຊັນສຳເລັດແລ້ວ',
historyDirtyHint: 'ຕົວແກ້ໄຂປັດຈຸບັນມີການປ່ຽນແປງທີ່ຍັງບໍ່ໄດ້ບັນທຶກ. ການກູ້ຄືນເວີຊັນຈະຂຽນທັບຂໍ້ມູນເຫຼົ່ານັ້ນ.',
- historyDiffHintCurrent:
- 'ເບື້ອງຊ້າຍສະແດງເວີຊັນປະຫວັດ ແລະ ເບື້ອງຂວາສະແດງເນື້ອໃນໄຟລ໌ປັດຈຸບັນ',
- historyDiffHintAll:
- 'ເບື້ອງຊ້າຍສະແດງເວີຊັນປະຫວັດ ແລະ ເບື້ອງຂວາສະແດງເວີຊັນຫຼ້າສຸດຂອງໄຟລ໌ທີ່ເລືອກ',
+ historyDiffHintCurrent: 'ເບື້ອງຊ້າຍສະແດງເວີຊັນປະຫວັດ ແລະ ເບື້ອງຂວາສະແດງເນື້ອໃນໄຟລ໌ປັດຈຸບັນ',
+ historyDiffHintAll: 'ເບື້ອງຊ້າຍສະແດງເວີຊັນປະຫວັດ ແລະ ເບື້ອງຂວາສະແດງເວີຊັນຫຼ້າສຸດຂອງໄຟລ໌ທີ່ເລືອກ',
copyDir: 'ຄັດລອກ',
shareFile: 'ແບ່ງປັນໄຟລ໌',
shareExpire: 'ໝົດອາຍຸໃນ',
@@ -2283,9 +2387,8 @@ toolbox: {
uploadCurrentFileProgress: 'ໄຟລ໌ປັດຈຸບັນ',
currentSelect: 'ທີ່ເລືອກປັດຈຸບັນ: ',
unsupportedType: 'ບໍ່ຮອງຮັບປະເພດໄຟລ໌ນີ້',
- deleteHelper:
- 'ທ່ານແນ່ໃຈບໍວ່າຕ້ອງການລຶບໄຟລ໌ຕໍ່ໄປນີ້? ໂດຍຄ່າເລີ່ມຕົ້ນ ມັນຈະຖືກຍ້າຍໄປທີ່ຖັງຂີ້ເຫຍື້ອຫຼັງຈາກລຶບ',
- fileHelper: "ໝາຍເຫດ:\n1. ຜົນການຄົ້ນຫາບໍ່ສາມາດຈັດລຽງໄດ້.\n2. ໂຟນເດີບໍ່ສາມາດຈັດລຽງຕາມຂະໜາດໄດ້.",
+ deleteHelper: 'ທ່ານແນ່ໃຈບໍວ່າຕ້ອງການລຶບໄຟລ໌ຕໍ່ໄປນີ້? ໂດຍຄ່າເລີ່ມຕົ້ນ ມັນຈະຖືກຍ້າຍໄປທີ່ຖັງຂີ້ເຫຍື້ອຫຼັງຈາກລຶບ',
+ fileHelper: 'ໝາຍເຫດ:\n1. ຜົນການຄົ້ນຫາບໍ່ສາມາດຈັດລຽງໄດ້.\n2. ໂຟນເດີບໍ່ສາມາດຈັດລຽງຕາມຂະໜາດໄດ້.',
forceDeleteHelper: 'ລຶບໄຟລ໌ຖາວອນ (ໂດຍບໍ່ຍ້າຍໄປຖັງຂີ້ເຫຍື້ອ, ລຶບໂດຍກົງ)',
recycleBin: 'ຖັງຂີ້ເຫຍື້ອ',
sourcePath: 'ເສັ້ນທາງເດີມ',
@@ -2293,8 +2396,7 @@ toolbox: {
confirmReduce: 'ທ່ານແນ່ໃຈບໍວ່າຕ້ອງການກູ້ຄືນໄຟລ໌ຕໍ່ໄປນີ້?',
reduceSuccess: 'ກູ້ຄືນສຳເລັດແລ້ວ',
reduce: 'ການກູ້ຄືນ',
- reduceHelper:
- 'ຫາກມີໄຟລ໌ ຫຼື ໄດເຣັກທໍຣີທີ່ມີຊື່ດຽວກັນຢູ່ໃນເສັ້ນທາງເດີມ, ມັນຈະຖືກຂຽນທັບ. ຕ້ອງການເຮັດຕໍ່ບໍ?',
+ reduceHelper: 'ຫາກມີໄຟລ໌ ຫຼື ໄດເຣັກທໍຣີທີ່ມີຊື່ດຽວກັນຢູ່ໃນເສັ້ນທາງເດີມ, ມັນຈະຖືກຂຽນທັບ. ຕ້ອງການເຮັດຕໍ່ບໍ?',
clearRecycleBin: 'ລ້າງ',
clearRecycleBinHelper: 'ລ້າງຖັງຂີ້ເຫຍື້ອ?',
favorite: 'ລາຍການທີ່ມັກ',
@@ -2309,8 +2411,7 @@ toolbox: {
fileRecycleBin: 'ເປີດໃຊ້ຖັງຂີ້ເຫຍື້ອ',
fileRecycleBinMsg: '{0} ຖັງຂີ້ເຫຍື້ອ',
wordWrap: 'ຕັດຄຳອັດຕະໂນມັດ',
- deleteHelper2:
- 'ທ່ານແນ່ໃຈບໍວ່າຕ້ອງການລຶບໄຟລ໌ທີ່ເລືອກ? ການລຶບນີ້ບໍ່ສາມາດຍ້ອນກັບໄດ້',
+ deleteHelper2: 'ທ່ານແນ່ໃຈບໍວ່າຕ້ອງການລຶບໄຟລ໌ທີ່ເລືອກ? ການລຶບນີ້ບໍ່ສາມາດຍ້ອນກັບໄດ້',
ignoreCertificate: 'ອະນຸຍາດການເຊື່ອມຕໍ່ເຊີບເວີທີ່ບໍ່ປອດໄພ',
ignoreCertificateHelper:
'ການອະນຸຍາດການເຊື່ອມຕໍ່ທີ່ບໍ່ປອດໄພອາດເຮັດໃຫ້ຂໍ້ມູນຮົ່ວໄຫຼ ຫຼື ຖືກດັດແກ້. ໃຊ້ຕົວເລືອກນີ້ເມື່ອເຊື່ອຖືແຫຼ່ງດາວໂຫຼດເທົ່ານັ້ນ.',
@@ -2356,7 +2457,7 @@ toolbox: {
previewTruncated: 'ໄຟລ໌ໃຫຍ່ເກີນໄປ, ສະແດງສະເພາະສ່ວນທ້າຍ',
previewEmpty: 'ໄຟລ໌ຫວ່າງ ຫຼື ບໍ່ແມ່ນໄຟລ໌ຂໍ້ຄວາມ',
previewLargeFile: 'ເບິ່ງຕົວຢ່າງ',
- panelInstallDir: "ໄດເຣັກທໍຣີຕິດຕັ້ງ 1Panel ບໍ່ສາມາດລຶບໄດ້",
+ panelInstallDir: 'ໄດເຣັກທໍຣີຕິດຕັ້ງ 1Panel ບໍ່ສາມາດລຶບໄດ້',
wgetTask: 'ງານດາວໂຫຼດ',
existFileTitle: 'ແຈ້ງເຕືອນໄຟລ໌ຊື່ດຽວກັນ',
existFileHelper: 'ໄຟລ໌ທີ່ອັບໂຫຼດມີຊື່ດຽວກັນກັບໄຟລ໌ທີ່ມີຢູ່, ທ່ານຕ້ອງການຂຽນທັບບໍ?',
@@ -2432,8 +2533,7 @@ toolbox: {
reGenerate: 'ສ້າງຄີໃໝ່',
keyAuthHelper: 'ເປີດໃຊ້ການຢືນຢັນດ້ວຍຄີຫຼືບໍ່.',
useDNS: 'useDNS',
- dnsHelper:
- 'ຄວບຄຸມວ່າຈະເປີດໃຊ້ຟັງຊັນການແປຜົນ DNS ໃນເຊີບເວີ SSH ຫຼື ບໍ່ ເພື່ອກວດສອບຕົວຕົນຂອງການເຊື່ອມຕໍ່.',
+ dnsHelper: 'ຄວບຄຸມວ່າຈະເປີດໃຊ້ຟັງຊັນການແປຜົນ DNS ໃນເຊີບເວີ SSH ຫຼື ບໍ່ ເພື່ອກວດສອບຕົວຕົນຂອງການເຊື່ອມຕໍ່.',
confFileOrderHelper:
'ໃຊ້ລາຍການເລືອກເພື່ອສະຫຼັບໄຟລ໌ຕັ້ງຄ່າ ແລະ ແກ້ໄຂ/ບັນທຶກໂດຍກົງ; ການຕັ້ງຄ່າຈະນຳໃຊ້ຕາມລຳດັບການໂຫຼດ, ແລະ ຄ່າທີ່ໂຫຼດກ່ອນຈະມີຜົນກ່ອນ.',
confFileOrderLabel: '{0} (ລຳດັບການໂຫຼດ #{1})',
@@ -2464,8 +2564,7 @@ toolbox: {
emailHelper: 'ສຳລັບການກູ້ລະຫັດຜ່ານ',
watermark: 'ຕັ້ງຄ່າລາຍນ້ຳ',
watermarkContent: 'ເນື້ອໃນລາຍນ້ຳ',
- contentHelper:
- '{0} ແທນຊື່ໂນດ, {1} ແທນທີ່ຢູ່ໂນດ. ທ່ານສາມາດໃຊ້ຕົວປ່ຽນ ຫຼື ປ້ອນຊື່ທີ່ກຳນົດເອງ.',
+ contentHelper: '{0} ແທນຊື່ໂນດ, {1} ແທນທີ່ຢູ່ໂນດ. ທ່ານສາມາດໃຊ້ຕົວປ່ຽນ ຫຼື ປ້ອນຊື່ທີ່ກຳນົດເອງ.',
watermarkColor: 'ສີລາຍນ້ຳ',
watermarkFont: 'ຂະໜາດຟອນລາຍນ້ຳ',
watermarkHeight: 'ຄວາມສູງລາຍນ້ຳ',
@@ -2484,6 +2583,8 @@ toolbox: {
portChangeHelper: 'ແກ້ໄຂພອດບໍລິການ ແລະ ເລີ່ມບໍລິການໃໝ່. ຕ້ອງການເຮັດຕໍ່ບໍ?',
theme: 'ຮູບແບບ',
menuTabs: 'ແທັບເມນູ',
+ menuAccordion: 'ຂະຫຍາຍຫຼາຍເມນູ',
+ menuAccordionHelper: 'ຫຼັງຈາກເປີດໃຊ້ ສາມາດຂະຫຍາຍຫຼາຍກຸ່ມເມນູດ້ານຂ້າງພ້ອມກັນໄດ້.',
componentSize: 'ຂະໜາດຄອມໂພເນນ',
dark: 'ມືດ',
darkGold: 'ທອງດຳ',
@@ -2504,12 +2605,10 @@ toolbox: {
regionHelper4: 'ອັນນີ້ອາດມີຜົນຕໍ່ການດາວໂຫຼດ ແລະ ເຂົ້າເຖິງໃນອະນາຄົດ. ກະລຸນາເຮັດດ້ວຍຄວາມລະມັດລະວັງ.',
regionTip: 'ພາກພື້ນມີຜົນຕໍ່ແຫຼ່ງອັບເດດລະບົບ ແລະ ທີ່ຢູ່ດາວໂຫຼດແພັກເກັດ.',
docSourceTip: 'ແຫຼ່ງຂໍ້ມູນເອກະສານກຳນົດພາສາທີ່ຈະໃຊ້ສຳລັບເອກະສານ ແລະ ລີ້ງບັນທຶກການປ່ອຍເວີຊັນ.',
- languageHelper:
- 'ໂດຍຄ່າເລີ່ມຕົ້ນ ຈະເປັນໄປຕາມພາສາຂອງບຣາວເຊີ. ພາຣາມິເຕີນີ້ມີຜົນສະເພາະກັບບຣາວເຊີປັດຈຸບັນເທົ່ານັ້ນ',
+ languageHelper: 'ໂດຍຄ່າເລີ່ມຕົ້ນ ຈະເປັນໄປຕາມພາສາຂອງບຣາວເຊີ. ພາຣາມິເຕີນີ້ມີຜົນສະເພາະກັບບຣາວເຊີປັດຈຸບັນເທົ່ານັ້ນ',
sessionTimeout: 'ເວລາໝົດອາຍຸເຊດຊັນ',
sessionTimeoutError: 'ເວລາໝົດອາຍຸເຊດຊັນຕ່ຳສຸດແມ່ນ 300 ວິນາທີ',
- sessionTimeoutHelper:
- 'ພາເນລຈະອອກຈາກລະບົບອັດຕະໂນມັດຫາກບໍ່ມີການເຮັດວຽກເກີນ {0} ວິນາທີ.',
+ sessionTimeoutHelper: 'ພາເນລຈະອອກຈາກລະບົບອັດຕະໂນມັດຫາກບໍ່ມີການເຮັດວຽກເກີນ {0} ວິນາທີ.',
systemIP: 'ທີ່ຢູ່ລະບົບ',
systemIPHelper:
'ທີ່ຢູ່ນີ້ຈະຖືກໃຊ້ສຳລັບການປ່ຽນເສັ້ນທາງແອັບພລິເຄຊັນ, ການເຂົ້າເຖິງຄອນເທນເນີ ແລະ ຟັງຊັນອື່ນໆ. ແຕ່ລະໂນດສາມາດຕັ້ງຄ່າທີ່ຢູ່ທີ່ແຕກຕ່າງກັນໄດ້.',
@@ -2518,8 +2617,7 @@ toolbox: {
proxyHelper1: 'ການດາວໂຫຼດແພັກເກັດຕິດຕັ້ງ ແລະ ຊິງຄ໌ App Store (ສະເພາະເວີຊັນ Commercial)',
proxyHelper2: 'ການອັບເດດລະບົບ ແລະ ການກວດສອບການອັບເດດ (ສະເພາະເວີຊັນ Commercial)',
proxyHelper3: 'ການກວດສອບ ແລະ ຊິງຄ໌ລິຂະສິດລະບົບ',
- proxyHelper4:
- 'ການຮ້ອງຂໍເຄືອຂ່າຍ ເຊັ່ນ ການດຶງ (pull) Docker image ຜ່ານພຣັອກຊີເຊີບເວີ (ສະເພາະເວີຊັນ Commercial)',
+ proxyHelper4: 'ການຮ້ອງຂໍເຄືອຂ່າຍ ເຊັ່ນ ການດຶງ (pull) Docker image ຜ່ານພຣັອກຊີເຊີບເວີ (ສະເພາະເວີຊັນ Commercial)',
proxyHelper5: 'ການດາວໂຫຼດ ແລະ ຊິງຄ໌ຄັງສະຄຣິບລະບົບ (ເວີຊັນ Commercial)',
proxyHelper6: 'ການຮ້ອງຂໍໃບຢັ້ງຢືນ (ເວີຊັນ Commercial)',
proxyType: 'ປະເພດພຣັອກຊີ',
@@ -2537,8 +2635,8 @@ toolbox: {
apiInterface: 'ເປີດໃຊ້ API',
apiInterfaceClose: 'ເມື່ອປິດແລ້ວ, ຈະບໍ່ສາມາດເຂົ້າເຖິງອິນເຕີເຟດ API ໄດ້. ຕ້ອງການເຮັດຕໍ່ບໍ?',
apiInterfaceHelper: 'ອະນຸຍາດໃຫ້ແອັບພລິເຄຊັນພາຍນອກເຂົ້າເຖິງ API.',
- apiInterfaceAlert1: "ຢ່າເປີດໃຊ້ງານໃນສະພາບແວດລ້ອມການຜະລິດ (production) ເພາະອາດເພີ່ມຄວາມສ່ຽງດ້ານຄວາມປອດໄພ.",
- apiInterfaceAlert2: "ຢ່າໃຊ້ແອັບພລິເຄຊັນພາຍນອກທີ່ບໍ່ໜ້າເຊື່ອຖືໃນການເອີ້ນໃຊ້ API.",
+ apiInterfaceAlert1: 'ຢ່າເປີດໃຊ້ງານໃນສະພາບແວດລ້ອມການຜະລິດ (production) ເພາະອາດເພີ່ມຄວາມສ່ຽງດ້ານຄວາມປອດໄພ.',
+ apiInterfaceAlert2: 'ຢ່າໃຊ້ແອັບພລິເຄຊັນພາຍນອກທີ່ບໍ່ໜ້າເຊື່ອຖືໃນການເອີ້ນໃຊ້ API.',
apiInterfaceAlert3: 'ເອກະສານ API',
apiInterfaceAlert4: 'ຄູ່ມືການໃຊ້ງານ',
apiKey: 'API key',
@@ -2561,8 +2659,7 @@ toolbox: {
syncTime: 'ເວລາເຊີບເວີ',
timeZone: 'ເຂດເວລາ',
timeZoneChangeHelper: 'ການປ່ຽນເຂດເວລາຕ້ອງມີການເລີ່ມບໍລິການໃໝ່. ຕ້ອງການເຮັດຕໍ່ບໍ?',
- timeZoneHelper:
- 'ການແກ້ໄຂເຂດເວລາຂຶ້ນກັບບໍລິການ timedatectl ຂອງລະບົບ. ຈະມີຜົນຫຼັງຈາກເລີ່ມບໍລິການ 1Panel ໃໝ່.',
+ timeZoneHelper: 'ການແກ້ໄຂເຂດເວລາຂຶ້ນກັບບໍລິການ timedatectl ຂອງລະບົບ. ຈະມີຜົນຫຼັງຈາກເລີ່ມບໍລິການ 1Panel ໃໝ່.',
timeZoneCN: 'ປັກກິ່ງ',
timeZoneAM: 'ລອສ ແອງເຈລີສ',
timeZoneNY: 'ນິວຢອກ',
@@ -2579,16 +2676,13 @@ toolbox: {
duplicatePassword: 'ລະຫັດຜ່ານໃໝ່ບໍ່ສາມາດຄືກັບລະຫັດຜ່ານເດີມໄດ້, ກະລຸນາປ້ອນໃໝ່!',
diskClean: 'ລ້າງແຄຊ໌',
developerMode: 'ໂປຣແກຣມເບິ່ງຕົວຢ່າງ (Preview)',
- developerModeHelper:
- "ທ່ານຈະໄດ້ສຳຜັດກັບຟີເຈີໃໝ່ ແລະ ການແກ້ໄຂກ່ອນການປ່ອຍຕົວຈິງ ແລະ ສາມາດສົ່ງຄຳຄິດເຫັນໄດ້.",
+ developerModeHelper: 'ທ່ານຈະໄດ້ສຳຜັດກັບຟີເຈີໃໝ່ ແລະ ການແກ້ໄຂກ່ອນການປ່ອຍຕົວຈິງ ແລະ ສາມາດສົ່ງຄຳຄິດເຫັນໄດ້.',
thirdParty: 'ບັນຊີພາຍນອກ',
scope: 'ຂອບເຂດ',
public: 'ສາທາລະນະ',
- publicHelper:
- 'ບັນຊີສຳຮອງແບບສາທາລະນະຈະຖືກຊິງຄ໌ຫາທຸກໂນດຍ່ອຍ ແລະ ໂນດຍ່ອຍສາມາດໃຊ້ຮ່ວມກັນໄດ້',
+ publicHelper: 'ບັນຊີສຳຮອງແບບສາທາລະນະຈະຖືກຊິງຄ໌ຫາທຸກໂນດຍ່ອຍ ແລະ ໂນດຍ່ອຍສາມາດໃຊ້ຮ່ວມກັນໄດ້',
private: 'ສ່ວນຕົວ',
- privateHelper:
- 'ບັນຊີສຳຮອງແບບສ່ວນຕົວຈະຖືກສ້າງສະເພາະໃນໂນດປັດຈຸບັນ ແລະ ໃຊ້ໄດ້ສະເພາະໂນດນີ້ເທົັ້ນ',
+ privateHelper: 'ບັນຊີສຳຮອງແບບສ່ວນຕົວຈະຖືກສ້າງສະເພາະໃນໂນດປັດຈຸບັນ ແລະ ໃຊ້ໄດ້ສະເພາະໂນດນີ້ເທົັ້ນ',
noTypeForCreate: 'ຍັງບໍ່ມີການສ້າງປະເພດການສຳຮອງ',
LOCAL: 'ດິດເຊີບເວີ',
OSS: 'Ali OSS',
@@ -2666,8 +2760,7 @@ toolbox: {
scDeep_Archive: 'ການຈັດເກັບຂໍ້ມູນແບບເຢັນ ເໝາະສຳລັບທຸລະກິດທີ່ມີຄວາມຖີ່ໃນການເຂົ້າເຖິງຕ່ຳທີ່ສຸດ.',
archiveHelper:
'ໄຟລ໌ໃນການຈັດເກັບແບບ Archive ບໍ່ສາມາດດາວໂຫຼດໄດ້ໂດຍກົງ ແລະ ຕ້ອງໄດ້ຮັບການກູ້ຄືນຜ່ານເວັບໄຊຂອງຜູ້ໃຫ້ບໍລິການຄລາວກ່ອນ. ກະລຸນາໃຊ້ດ້ວຍຄວາມລະມັດລະວັງ!',
- backupAlert:
- 'ຫາກຜູ້ໃຫ້ບໍລິການຄລາວຮອງຮັບໂປຣໂຕຄໍ S3, ທ່ານສາມາດໃຊ້ Amazon S3 ໃນການສຳຮອງຂໍ້ມູນໄດ້ໂດຍກົງ.',
+ backupAlert: 'ຫາກຜູ້ໃຫ້ບໍລິການຄລາວຮອງຮັບໂປຣໂຕຄໍ S3, ທ່ານສາມາດໃຊ້ Amazon S3 ໃນການສຳຮອງຂໍ້ມູນໄດ້ໂດຍກົງ.',
domain: 'ໂດເມນເລັ່ງຄວາມໄວ',
backupAccount: 'ບັນຊີສຳຮອງ',
loadBucket: 'ຮັບ Bucket',
@@ -2714,15 +2807,13 @@ toolbox: {
bindAddress: 'ທີ່ຢູ່ຮັບການເຊື່ອມຕໍ່',
entrance: 'ທາງເຂົ້າ',
showEntrance: 'ສະແດງການແຈ້ງເຕືອນທີ່ຖືກປິດໃນໜ້າ "ພາບລວມ"',
- entranceHelper:
- 'ການເປີດໃຊ້ທາງເຂົ້າຄວາມປອດໄພຈະອະນຸຍາດໃຫ້ເຂົ້າລະບົບພາເນລຜ່ານທາງເຂົ້າທີ່ກຳນົດໄວ້ເທົ່ານັ້ນ.',
+ entranceHelper: 'ການເປີດໃຊ້ທາງເຂົ້າຄວາມປອດໄພຈະອະນຸຍາດໃຫ້ເຂົ້າລະບົບພາເນລຜ່ານທາງເຂົ້າທີ່ກຳນົດໄວ້ເທົ່ານັ້ນ.',
entranceError: 'ປ້ອນທາງເຂົ້າຄວາມປອດໄພ 5-116 ຕົວອັກສອນ, ຮອງຮັບສະເພາະຕົວເລກ ຫຼື ຕົວອັກສອນພາສາອັງກິດ.',
entranceInputHelper: 'ປະຫວ່າງໄວ້ເພື່ອປິດທາງເຂົ້າຄວາມປອດໄພ.',
randomGenerate: 'ສຸ່ມ',
expirationTime: 'ວັນໝົດອາຍຸ',
unSetting: 'ຍັງບໍ່ໄດ້ຕັ້ງ',
- noneSetting:
- 'ຕັ້ງເວລາໝົດອາຍຸສຳລັບລະຫັດຜ່ານພາເນລ. ຫຼັງຈາກໝົດອາຍຸ, ທ່ານຕ້ອງຕັ້ງລະຫັດຜ່ານໃໝ່',
+ noneSetting: 'ຕັ້ງເວລາໝົດອາຍຸສຳລັບລະຫັດຜ່ານພາເນລ. ຫຼັງຈາກໝົດອາຍຸ, ທ່ານຕ້ອງຕັ້ງລະຫັດຜ່ານໃໝ່',
expirationHelper: 'ຖ້າເວລາໝົດອາຍຸລະຫັດຜ່ານແມ່ນ 0 ມື້, ຟັງຊັນການໝົດອາຍຸຈະຖືກປິດ',
days: 'ຈຳນວນມື້ໝົດອາຍຸລະຫັດຜ່ານ',
expiredHelper: 'ລະຫັດຜ່ານປັດຈຸບັນໝົດອາຍຸແລ້ວ. ກະລຸນາປ່ຽນລະຫັດຜ່ານໃໝ່.',
@@ -2742,8 +2833,7 @@ toolbox: {
unAllowIPs: 'IP ທີ່ບໍ່ໄດ້ຮັບອະນຸຍາດ',
unAllowIPsWarning:
'ການອະນຸຍາດ IP ແບບຫວ່າງຈະເຮັດໃຫ້ທຸກ IP ເຂົ້າເຖິງລະບົບໄດ້, ເຊິ່ງອາດເຮັດໃຫ້ລະບົບບໍ່ປອດໄພ. ຕ້ອງການເຮັດຕໍ່ບໍ?',
- allowIPsHelper:
- 'ຫຼັງຈາກຕັ້ງລາຍຊື່ IP ທີ່ໄດ້ຮັບອະນຸຍາດ, ຈະມີພຽງ IP ໃນລາຍຊື່ເທົ່ານັ້ນທີ່ສາມາດເຂົ້າເຖິງພາເນລໄດ້.',
+ allowIPsHelper: 'ຫຼັງຈາກຕັ້ງລາຍຊື່ IP ທີ່ໄດ້ຮັບອະນຸຍາດ, ຈະມີພຽງ IP ໃນລາຍຊື່ເທົ່ານັ້ນທີ່ສາມາດເຂົ້າເຖິງພາເນລໄດ້.',
allowIPsWarning:
'ຫຼັງຈາກຕັ້ງລາຍຊື່ IP ທີ່ໄດ້ຮັບອະນຸຍາດ, ຈະມີພຽງ IP ໃນລາຍຊື່ເທົ່ານັ້ນທີ່ສາມາດເຂົ້າເຖິງພາເນລໄດ້. ຕ້ອງການເຮັດຕໍ່ບໍ?',
allowIPsHelper1: 'ປະຫວ່າງໄວ້ເພື່ອປິດການຈຳກັດ IP.',
@@ -2766,11 +2856,10 @@ toolbox: {
mfaCode: 'ທໍເຄັນຄັ້ງດຽວ',
sslChangeHelper: 'ແກ້ໄຂການຕັ້ງຄ່າ https ແລະ ເລີ່ມບໍລິການໃໝ່. ຕ້ອງການເຮັດຕໍ່ບໍ?',
sslDisable: 'ປິດໃຊ້ງານ',
- sslDisableHelper:
- 'ຫາກປິດບໍລິການ https, ທ່ານຕ້ອງເລີ່ມພາເນລໃໝ່ເພື່ອໃຫ້ມີຜົນ. ຕ້ອງການເຮັດຕໍ່ບໍ?',
+ sslDisableHelper: 'ຫາກປິດບໍລິການ https, ທ່ານຕ້ອງເລີ່ມພາເນລໃໝ່ເພື່ອໃຫ້ມີຜົນ. ຕ້ອງການເຮັດຕໍ່ບໍ?',
noAuthSetting: 'ການຕັ້ງຄ່າການບໍ່ໄດ້ຮັບອະນຸຍາດ',
noAuthSettingHelper:
- "ເມື່ອຜູ້ໃຊ້ບໍ່ໄດ້ເຂົ້າລະບົບຜ່ານທາງເຂົ້າຄວາມປອດໄພທີ່ກຳນົດ, ຫຼື ບໍ່ໄດ້ເຂົ້າເຖິງພາເນລຈາກ IP ຫຼື ໂດເມນທີ່ກຳນົດ, ການຕອບສະໜອງນີ້ສາມາດຊ່ອນເອກະລັກຂອງພາເນລໄດ້.",
+ 'ເມື່ອຜູ້ໃຊ້ບໍ່ໄດ້ເຂົ້າລະບົບຜ່ານທາງເຂົ້າຄວາມປອດໄພທີ່ກຳນົດ, ຫຼື ບໍ່ໄດ້ເຂົ້າເຖິງພາເນລຈາກ IP ຫຼື ໂດເມນທີ່ກຳນົດ, ການຕອບສະໜອງນີ້ສາມາດຊ່ອນເອກະລັກຂອງພາເນລໄດ້.',
responseSetting: 'ການຕັ້ງຄ່າການຕອບສະໜອງ',
help200: 'ໜ້າຊ່ວຍເຫຼືອ',
error400: 'ຄຳຮ້ອງຂໍບໍ່ຖືກຕ້ອງ (Bad Request)',
@@ -2784,7 +2873,7 @@ toolbox: {
https: 'ການຕັ້ງຄ່າ HTTPS ສຳລັບພາເນລຊ່ວຍເພີ່ມຄວາມປອດໄພໃນການເຂົ້າເຖິງ',
strictHelper: 'ການເຊື່ອມຕໍ່ທີ່ບໍ່ແມ່ນ HTTPS ຈະບໍ່ສາມາດເຊື່ອມຕໍ່ຫາພາເນລໄດ້',
muxHelper:
- "ພາເນລຈະຮັບການເຊື່ອມຕໍ່ທັງໂປຣໂຕຄໍ HTTP ແລະ HTTPS ແລະ ປ່ຽນເສັ້ນທາງຈາກ HTTP ໄປ HTTPS, ແຕ່ອັນນີ້ອາດຫຼຸດຄວາມປອດໄພຂອງພາເນລລົງ",
+ 'ພາເນລຈະຮັບການເຊື່ອມຕໍ່ທັງໂປຣໂຕຄໍ HTTP ແລະ HTTPS ແລະ ປ່ຽນເສັ້ນທາງຈາກ HTTP ໄປ HTTPS, ແຕ່ອັນນີ້ອາດຫຼຸດຄວາມປອດໄພຂອງພາເນລລົງ',
certType: 'ປະເພດໃບຢັ້ງຢືນ',
selfSigned: 'ລົງນາມດ້ວຍຕົນເອງ (Self signed)',
selfSignedHelper: 'ບຣາວເຊີອາດບໍ່ເຊື່ອຖືໃບຢັ້ງຢືນທີ່ລົງນາມດ້ວຍຕົນເອງ ແລະ ອາດສະແດງຄຳເຕືອນຄວາມປອດໄພ.',
@@ -2871,8 +2960,7 @@ toolbox: {
upgrading: 'ກຳລັງອັບເກຣດ, ກະລຸນາລໍຖ້າ...',
upgradeHelper: 'ການອັບເກຣດຕ້ອງມີການເລີ່ມບໍລິການ 1Panel ໃໝ່. ຕ້ອງການເຮັດຕໍ່ບໍ?',
noUpgrade: 'ປັດຈຸບັນເປັນເວີຊັນຫຼ້າສຸດແລ້ວ',
- versionHelper:
- 'ກົດການຕັ້ງຊື່: [major version].[functional version].[Bug fix version], ດັ່ງຕົວຢ່າງຕໍ່ໄປນີ້:',
+ versionHelper: 'ກົດການຕັ້ງຊື່: [major version].[functional version].[Bug fix version], ດັ່ງຕົວຢ່າງຕໍ່ໄປນີ້:',
rollbackLocalHelper:
'ໂນດຫຼັກບໍ່ຮອງຮັບການຍ້ອນກັບໂດຍກົງ. ກະລຸນາໃຊ້ຄຳສັ່ງ [1pctl restore] ດ້ວຍຕົນເອງເພື່ອຍ້ອນກັບ!',
upgradeCheck: 'ກວດສອບການອັບເດດ',
@@ -2880,8 +2968,7 @@ toolbox: {
upgradeNow: 'ອັບເກຣດດຽວນີ້',
source: 'ແຫຼ່ງດາວໂຫຼດ',
versionNotSame: 'ເວີຊັນຂອງໂນດບໍ່ກົງກັບໂນດຫຼັກ. ກະລຸນາອັບເກຣດໃນ "ຈັດການໂນດ" ກ່ອນລອງໃໝ່.',
- versionCompare:
- 'ກວດພົບວ່າໂນດ {0} ເປັນເວີຊັນຫຼ້າສຸດທີ່ອັບເກຣດໄດ້ແລ້ວ. ກະລຸນາກວດສອບເວີຊັນຂອງໂນດຫຼັກແລ້ວລອງໃໝ່!',
+ versionCompare: 'ກວດພົບວ່າໂນດ {0} ເປັນເວີຊັນຫຼ້າສຸດທີ່ອັບເກຣດໄດ້ແລ້ວ. ກະລຸນາກວດສອບເວີຊັນຂອງໂນດຫຼັກແລ້ວລອງໃໝ່!',
about: 'ກ່ຽວກັບ',
versionItem: 'ເວີຊັນປັດຈຸບັນ',
backupCopies: 'ຈຳນວນການສຳຮອງ',
@@ -2901,6 +2988,7 @@ toolbox: {
license: 'ລິຂະສິດ',
bindNode: 'ຜູກໂນດ',
menuSetting: 'ຕັ້ງຄ່າເມນູ',
+ menuHide: 'ເຊື່ອງເມນູ',
menuSettingHelper: 'ເມື່ອມີເມນູຍ່ອຍພຽງ 1 ລາຍການ, ແຖບເມນູຈະສະແດງສະເພາະເມນູຍ່ອຍນັ້ນ',
showAll: 'ສະແດງທັງໝົດ',
hideALL: 'ເຊື່ອງທັງໝົດ',
@@ -2941,18 +3029,17 @@ toolbox: {
quickUpdate: 'ອັບເດດດ່ວນ',
import: 'ນຳເຂົ້າ',
power: 'ອະນຸຍາດ',
- unbindHelper: 'ການຕັ້ງຄ່າທັງໝົດທີ່ກ່ຽວຂ້ອງກັບເວີຊັນ Commercial ຈະຖືກລ້າງອອກຫຼັງຈາກຍົກເລີກການຜູກ. ຕ້ອງການເຮັດຕໍ່ບໍ? ',
+ unbindHelper:
+ 'ການຕັ້ງຄ່າທັງໝົດທີ່ກ່ຽວຂ້ອງກັບເວີຊັນ Commercial ຈະຖືກລ້າງອອກຫຼັງຈາກຍົກເລີກການຜູກ. ຕ້ອງການເຮັດຕໍ່ບໍ? ',
importLicense: 'ນຳເຂົ້າລິຂະສິດ',
securityWarningTitle: 'ຢ່າໃຊ້ລິຂະສິດທີ່ຖືກແຮັກ (crack) ຫຼື ລິຂະສິດຈາກແຫຼ່ງທີ່ບໍ່ຮູ້ຈັກ.',
securityWarningContent:
'1Panel ເຮັດວຽກດ້ວຍສິດບໍລິຫານລະບົບ. ລິຂະສິດທີ່ບໍ່ເປັນທາງການ ຫຼື ໄຟລ໌ຕິດຕັ້ງທີ່ຖືກດັດແກ້ອາດເຮັດໃຫ້ເຊີບເວີຖືກຄວບຄຸມ, ຂໍ້ມູນຮົ່ວໄຫຼ ແລະ ຄວາມສ່ຽງດ້ານຄວາມປອດໄພຮ້າຍແຮງອື່ນໆ. ກະລຸນາຮັບລິຂະສິດ ແລະ ໄຟລ໌ຕິດຕັ້ງຈາກຊ່ອງທາງທາງການຂອງ FIT2CLOUD ເທົ່ານັ້ນ.',
importHelper: 'ຄລິກ ຫຼື ລາກໄຟລ໌ລິຂະສິດມາທີ່ນີ້',
- licenseRequiredTip:
- 'ຍັງບໍ່ໄດ້ນຳເຂົ້າລິຂະສິດ. ກະລຸນາຄັດລອກ ID ອຸປະກອນ, ຮັບລິຂະສິດ ແລະ ນຳເຂົ້າກ່ອນເຂົ້າລະບົບ.',
+ licenseRequiredTip: 'ຍັງບໍ່ໄດ້ນຳເຂົ້າລິຂະສິດ. ກະລຸນາຄັດລອກ ID ອຸປະກອນ, ຮັບລິຂະສິດ ແລະ ນຳເຂົ້າກ່ອນເຂົ້າລະບົບ.',
licenseRequiredShortTip:
'ກະລຸນາຄັດລອກ ID ອຸປະກອນກ່ອນເພື່ອຮັບລິຂະສິດ. ທ່ານສາມາດເຂົ້າລະບົບໄດ້ຫຼັງຈາກນຳເຂົ້າລິຂະສິດແລ້ວ.',
- licenseRequiredUserTip:
- 'ລິຂະສິດເວີຊັນ Enterprise ບໍ່ໄດ້ຖືກຜູກ. ຕິດຕໍ່ຜູ້ດູແລລະບົບສູງສຸດເພື່ອນຳເຂົ້າລິຂະສິດ.',
+ licenseRequiredUserTip: 'ລິຂະສິດເວີຊັນ Enterprise ບໍ່ໄດ້ຖືກຜູກ. ຕິດຕໍ່ຜູ້ດູແລລະບົບສູງສຸດເພື່ອນຳເຂົ້າລິຂະສິດ.',
levelUpPro: 'ອັບເກຣດເປັນເວີຊັນ Commercial',
licenseSync: 'ຊິງຄ໌ລິຂະສິດ',
knowMorePro: 'ຮຽນຮູ້ເພີ່ມເຕີມ',
@@ -3048,8 +3135,7 @@ toolbox: {
author: 'ຜູ້ຂຽນ',
source: 'ແຫຼ່ງທີ່ມາ',
appName: 'ຊື່ແອັບພລິເຄຊັນ',
- deleteWarn:
- 'ການລຶບຈະລຶບຂໍ້ມູນ ແລະ ໄຟລ໌ສຳຮອງທັງໝົດ. ການດຳເນີນການນີ້ບໍ່ສາມາດຍ້ອນກັບໄດ້. ຕ້ອງການຕໍ່ຫຼືບໍ່? ',
+ deleteWarn: 'ການລຶບຈະລຶບຂໍ້ມູນ ແລະ ໄຟລ໌ສຳຮອງທັງໝົດ. ການດຳເນີນການນີ້ບໍ່ສາມາດຍ້ອນກັບໄດ້. ຕ້ອງການຕໍ່ຫຼືບໍ່? ',
syncSuccess: 'ຊິງຄ໌ຂໍ້ມູນສຳເລັດແລ້ວ',
canUpgrade: 'ມີການອັບເດດ',
backupName: 'ຊື່ໄຟລ໌',
@@ -3068,8 +3154,7 @@ toolbox: {
defaultConfig: 'ການຕັ້ງຄ່າເລີ່ມຕົ້ນ',
defaultConfigHelper: 'ຄືນຄ່າເປັນການຕັ້ງຄ່າເລີ່ມຕົ້ນແລ້ວ, ຈະມີຜົນຫຼັງຈາກບັນທຶກ',
forceDelete: 'ບັງຄັບລຶບ',
- forceDeleteHelper:
- 'ການບັງຄັບລຶບຈະລະເລີຍຂໍ້ຜິດພາດໃນລະຫວ່າງການລຶບ ແລະ ລຶບຂໍ້ມູນ Metadata ອອກໃນທີ່ສຸດ.',
+ forceDeleteHelper: 'ການບັງຄັບລຶບຈະລະເລີຍຂໍ້ຜິດພາດໃນລະຫວ່າງການລຶບ ແລະ ລຶບຂໍ້ມູນ Metadata ອອກໃນທີ່ສຸດ.',
deleteBackup: 'ລຶບໄຟລ໌ສຳຮອງ',
deleteBackupHelper: 'ລຶບໄຟລ໌ສຳຮອງຂອງແອັບພລິເຄຊັນນຳ',
deleteDB: 'ລຶບຖານຂໍ້ມູນ',
@@ -3095,8 +3180,7 @@ toolbox: {
containerNameHelper: 'ຊື່ຄອນເທນເນີຈະຖືກສ້າງໂດຍອັດຕະໂນມັດຖ້າບໍ່ໄດ້ກຳນົດໄວ້',
allowPort: 'ການເຂົ້າເຖິງຈາກພາຍນອກ',
allowPortHelper: 'ການອະນຸຍາດເຂົ້າເຖິງພອດພາຍນອກຈະເປັນການເປີດພອດຢູ່ໄຟວໍ',
- appInstallWarn:
- 'ແອັບພລິເຄຊັນນີ້ບໍ່ໄດ້ເປີດພອດພາຍນອກໂດຍເລີ່ມຕົ້ນ. ຄລິກ "ການຕັ້ງຄ່າຂັ້ນສູງ" ເພື່ອເປີດພອດ.',
+ appInstallWarn: 'ແອັບພລິເຄຊັນນີ້ບໍ່ໄດ້ເປີດພອດພາຍນອກໂດຍເລີ່ມຕົ້ນ. ຄລິກ "ການຕັ້ງຄ່າຂັ້ນສູງ" ເພື່ອເປີດພອດ.',
upgradeStart: 'ເລີ່ມການອັບເກຣດ! ກະລຸນາຣີເຟຣຊໜ້າເວັບພາຍຫຼັງ',
toFolder: 'ເປີດໂຟນເດີຕິດຕັ້ງ',
editCompose: 'ແກ້ໄຂໄຟລ໌ compose',
@@ -3139,7 +3223,7 @@ toolbox: {
useDefault: 'ໃຊ້ເວີຊັນເລີ່ມຕົ້ນ',
useCustom: 'ປັບແຕ່ງ docker-compose.yml',
useCustomHelper:
- "ການໃຊ້ໄຟລ໌ docker-compose.yml ທີ່ປັບແຕ່ງເອງອາດເຮັດໃຫ້ການອັບເກຣດແອັບລົ້ມເຫຼວ. ຖ້າບໍ່ຈຳເປັນ, ບໍ່ຄວນເລືອກ.",
+ 'ການໃຊ້ໄຟລ໌ docker-compose.yml ທີ່ປັບແຕ່ງເອງອາດເຮັດໃຫ້ການອັບເກຣດແອັບລົ້ມເຫຼວ. ຖ້າບໍ່ຈຳເປັນ, ບໍ່ຄວນເລືອກ.',
diffHelper:
'ເບື້ອງຊ້າຍແມ່ນເວີຊັນເກົ່າ, ເບື້ອງຂວາແມ່ນເວີຊັນໃໝ່. ຫຼັງຈາກແກ້ໄຂແລ້ວ, ຄລິກເພື່ອບັນທຶກເວີຊັນທີ່ປັບແຕ່ງ',
pullImage: 'ດຶງອິມເມຈ (Pull Image)',
@@ -3163,15 +3247,13 @@ toolbox: {
webUIConfig:
'Node ປະຈຸບັນຍັງບໍ່ໄດ້ຕັ້ງຄ່າທີ່ຢູ່ເຂົ້າເຖິງເລີ່ມຕົ້ນ. ກະລຸນາຕັ້ງຄ່າໃນພາຣາມິເຕີແອັບ ຫຼື ໄປທີ່ການຕັ້ງຄ່າແຜງຄວບຄຸມ!',
toLink: 'ເປີດ',
- customAppHelper:
- 'ກ່ອນທີ່ຈະຕິດຕັ້ງແພັກເກດຮ້ານຄ້າແອັບທີ່ປັບແຕ່ງເອງ, ກະລຸນາໃຫ້ແນ່ໃຈວ່າຍັງບໍ່ມີແອັບທີ່ຕິດຕັ້ງໄວ້.',
+ customAppHelper: 'ກ່ອນທີ່ຈະຕິດຕັ້ງແພັກເກດຮ້ານຄ້າແອັບທີ່ປັບແຕ່ງເອງ, ກະລຸນາໃຫ້ແນ່ໃຈວ່າຍັງບໍ່ມີແອັບທີ່ຕິດຕັ້ງໄວ້.',
forceUninstall: 'ບັງຄັບຖອນການຕິດຕັ້ງ',
syncCustomApp: 'ຊິງຄ໌ແອັບທີ່ປັບແຕ່ງເອງ',
ignoreAll: 'ລະເລີຍເວີຊັນຕໍ່ໆໄປທັງໝົດ',
ignoreVersion: 'ລະເລີຍເວີຊັນທີ່ກຳນົດ',
specifyIP: 'ຜູກມັດກັບ IP ຂອງ Host',
- specifyIPHelper:
- 'ຕັ້ງຄ່າທີ່ຢູ່ host/network interface ເພື່ອຜູກມັດກັບພອດ (ຖ້າບໍ່ແນ່ໃຈ, ກະລຸນາປ່ອຍຫວ່າງໄວ້)',
+ specifyIPHelper: 'ຕັ້ງຄ່າທີ່ຢູ່ host/network interface ເພື່ອຜູກມັດກັບພອດ (ຖ້າບໍ່ແນ່ໃຈ, ກະລຸນາປ່ອຍຫວ່າງໄວ້)',
uninstallDeleteBackup: 'ຖອນການຕິດຕັ້ງແອັບ - ລຶບໄຟລ໌ສຳຮອງ',
uninstallDeleteImage: 'ຖອນການຕິດຕັ້ງແອັບ - ລຶບອິມເມຈ',
upgradeBackup: 'ສຳຮອງແອັບກ່ອນອັບເກຣດ',
@@ -3190,8 +3272,7 @@ toolbox: {
alias: 'ຊື່ຫຼິ້ນ (Alias)',
ftpUser: 'ບັນຊີ FTP',
ftpPassword: 'ລະຫັດຜ່ານ FTP',
- ftpHelper:
- 'ຫຼັງຈາກສ້າງເວັບໄຊ, ບັນຊີ FTP ທີ່ກ່ຽວຂ້ອງຈະຖືກສ້າງຂຶ້ນ ແລະ ໂຟນເດີ FTP ຈະເຊື່ອມຕໍ່ກັບໂຟນເດີເວັບໄຊ.',
+ ftpHelper: 'ຫຼັງຈາກສ້າງເວັບໄຊ, ບັນຊີ FTP ທີ່ກ່ຽວຂ້ອງຈະຖືກສ້າງຂຶ້ນ ແລະ ໂຟນເດີ FTP ຈະເຊື່ອມຕໍ່ກັບໂຟນເດີເວັບໄຊ.',
remark: 'ໝາຍເຫດ',
groupSetting: 'ການຈັດການກຸ່ມ',
createGroup: 'ສ້າງກຸ່ມ',
@@ -3260,8 +3341,7 @@ toolbox: {
toApp: 'ໄປທີ່ລາຍການທີ່ຕິດຕັ້ງແລ້ວ',
cycle: 'ຮອບວຽນ',
frequency: 'ຄວາມຖີ່',
- ccHelper:
- 'ມີການຮ້ອງຂໍ URL ດຽວກັນຫຼາຍກວ່າ {1} ຄັ້ງພາຍໃນ {0} ວິນາທີ, ຈະເປີດໃຊ້ການປ້ອງກັນ CC ແລະ ບລັອກ IP ນີ້',
+ ccHelper: 'ມີການຮ້ອງຂໍ URL ດຽວກັນຫຼາຍກວ່າ {1} ຄັ້ງພາຍໃນ {0} ວິນາທີ, ຈະເປີດໃຊ້ການປ້ອງກັນ CC ແລະ ບລັອກ IP ນີ້',
mustSave: 'ການແກ້ໄຂຕ້ອງໄດ້ຮັບການບັນທຶກເພື່ອໃຫ້ມີຜົນ',
fileExt: 'ນາມສະກຸນໄຟລ໌',
fileExtBlock: 'ລາຍການບລັອກນາມສະກຸນໄຟລ໌',
@@ -3270,13 +3350,11 @@ toolbox: {
proxyAddress: 'ທີ່ຢູ່ Proxy',
proxyHelper: 'ຕົວຢ່າງ: 127.0.0.1:8080',
forceDelete: 'ບັງຄັບລຶບ',
- forceDeleteHelper:
- 'ການບັງຄັບລຶບຈະລະເລີຍຂໍ້ຜິດພາດໃນລະຫວ່າງການລຶບ ແລະ ລຶບຂໍ້ມູນ Metadata ອອກໃນທີ່ສຸດ.',
+ forceDeleteHelper: 'ການບັງຄັບລຶບຈະລະເລີຍຂໍ້ຜິດພາດໃນລະຫວ່າງການລຶບ ແລະ ລຶບຂໍ້ມູນ Metadata ອອກໃນທີ່ສຸດ.',
deleteAppHelper: 'ລຶບແອັບພລິເຄຊັນ ແລະ ໄຟລ໌ສຳຮອງແອັບທີ່ກ່ຽວຂ້ອງພ້ອມກັນ',
deleteBackupHelper: 'ລຶບໄຟລ໌ສຳຮອງເວັບໄຊນຳ.',
deleteDatabaseHelper: 'ລຶບຖານຂໍ້ມູນທີ່ກ່ຽວຂ້ອງກັບເວັບໄຊນຳ',
- deleteConfirmHelper:
- 'ການລຶບບໍ່ສາມາດຍົກເລີກໄດ້. ປ້ອນ "{0}" ເພື່ອຢືນຢັນການລຶບ.',
+ deleteConfirmHelper: 'ການລຶບບໍ່ສາມາດຍົກເລີກໄດ້. ປ້ອນ "{0}" ເພື່ອຢືນຢັນການລຶບ.',
staticPath: 'ໂຟນເດີຫຼັກທີ່ກ່ຽວຂ້ອງແມ່ນ ',
limit: 'ຮູບແບບ',
blog: 'ເວັບບອດ/ບລັອກ',
@@ -3312,7 +3390,7 @@ toolbox: {
disableHTTPS: 'ປິດໃຊ້ງານ HTTPS',
disableHTTPSHelper: 'ການປິດໃຊ້ງານ HTTPS ຈະລຶບການຕັ້ງຄ່າທີ່ກ່ຽວຂ້ອງກັບໃບຢັ້ງຢືນ, ຕ້ອງການຕໍ່ຫຼືບໍ່?',
SSLHelper:
- "ໝາຍເຫດ: ຫ້າມໃຊ້ໃບຢັ້ງຢືນ SSL ສຳລັບເວັບໄຊທີ່ຜິດກົດໝາຍ.\nຖ້າບໍ່ສາມາດເຂົ້າເຖິງ HTTPS ໄດ້ຫຼັງຈາກເປີດແລ້ວ, ກະລຸນາກວດສອບວ່າໄຟວໍໄດ້ເປີດພອດ 443 ແລ້ວຫຼືບໍ່.",
+ 'ໝາຍເຫດ: ຫ້າມໃຊ້ໃບຢັ້ງຢືນ SSL ສຳລັບເວັບໄຊທີ່ຜິດກົດໝາຍ.\nຖ້າບໍ່ສາມາດເຂົ້າເຖິງ HTTPS ໄດ້ຫຼັງຈາກເປີດແລ້ວ, ກະລຸນາກວດສອບວ່າໄຟວໍໄດ້ເປີດພອດ 443 ແລ້ວຫຼືບໍ່.',
SSLConfig: 'ການຕັ້ງຄ່າໃບຢັ້ງຢືນ',
SSLProConfig: 'ການຕັ້ງຄ່າໂປຣໂຕຄໍ',
supportProtocol: 'ເວີຊັນໂປຣໂຕຄໍ',
@@ -3339,8 +3417,7 @@ toolbox: {
'ໃຊ້ reverse proxy ເພື່ອສົ່ງຕໍ່ບໍລິການທີ່ມີຢູ່ແລ້ວ. ຕົວຢ່າງ: ຖ້າມີບໍລິການເຮັດວຽກຢູ່ພອດ 8080, ທີ່ຢູ່ proxy ຈະເປັນ "http://127.0.0.1:8080".',
runtimeProxyHelper: 'ໃຊ້ Runtime ຂອງເວັບໄຊເພື່ອສ້າງເວັບໄຊ.',
runtime: 'ຣັນທາມ (Runtime)',
- deleteRuntimeHelper:
- 'ແອັບພລິເຄຊັນ Runtime ຈຳເປັນຕ້ອງຖືກລຶບພ້ອມກັບເວັບໄຊ, ກະລຸນາເຮັດດ້ວຍຄວາມລະມັດລະວັງ',
+ deleteRuntimeHelper: 'ແອັບພລິເຄຊັນ Runtime ຈຳເປັນຕ້ອງຖືກລຶບພ້ອມກັບເວັບໄຊ, ກະລຸນາເຮັດດ້ວຍຄວາມລະມັດລະວັງ',
proxyType: 'ປະເພດເຄືອຂ່າຍ',
unix: 'ເຄືອຂ່າຍ Unix',
tcp: 'ເຄືອຂ່າຍ TCP/IP',
@@ -3352,8 +3429,7 @@ toolbox: {
rewrite: 'ກົດການປ່ຽນເສັ້ນທາງ (Pseudo-static)',
rewriteMode: 'ຮູບແບບ',
current: 'ປະຈຸບັນ',
- rewriteHelper:
- 'ຖ້າການຕັ້ງຄ່າ pseudo-static ເຮັດໃຫ້ເວັບໄຊເຂົ້າເຖິງບໍ່ໄດ້, ໃຫ້ລອງກັບໄປໃຊ້ການຕັ້ງຄ່າເລີ່ມຕົ້ນ.',
+ rewriteHelper: 'ຖ້າການຕັ້ງຄ່າ pseudo-static ເຮັດໃຫ້ເວັບໄຊເຂົ້າເຖິງບໍ່ໄດ້, ໃຫ້ລອງກັບໄປໃຊ້ການຕັ້ງຄ່າເລີ່ມຕົ້ນ.',
runDir: 'ໂຟນເດີທີ່ເຮັດວຽກ',
runUserHelper:
'ສຳລັບເວັບໄຊທີ່ຕິດຕັ້ງຜ່ານ PHP container, ທ່ານຕ້ອງຕັ້ງຄ່າເຈົ້າຂອງ ແລະ ກຸ່ມຜູ້ໃຊ້ຂອງໄຟລ໌ ແລະ ໂຟນເດີທັງໝົດເປັນ 1000. ສຳລັບສະພາບແວດລ້ອມ PHP ໃນເຄື່ອງ, ໃຫ້ອ້າງອີງຕາມການຕັ້ງຄ່າ PHP-FPM ໃນເຄື່ອງ',
@@ -3448,8 +3524,7 @@ toolbox: {
ipWebsiteWarn: 'ເວັບໄຊທີ່ໃຊ້ IP ເປັນໂດເມນຈຳເປັນຕ້ອງຕັ້ງເປັນເວັບໄຊເລີ່ມຕົ້ນເພື່ອໃຫ້ເຂົ້າເຖິງໄດ້ຕາມປົກກະຕິ.',
hstsHelper: 'ການເປີດໃຊ້ HSTS ສາມາດເພີ່ມຄວາມປອດໄພໃຫ້ເວັບໄຊ',
includeSubDomains: 'ໂດເມນຍ່ອຍ',
- hstsIncludeSubDomainsHelper:
- 'ເມື່ອເປີດໃຊ້ແລ້ວ, ນະໂຍບາຍ HSTS ຈະມີຜົນກັບໂດເມນຍ່ອຍທັງໝົດຂອງໂດເມນປະຈຸບັນ.',
+ hstsIncludeSubDomainsHelper: 'ເມື່ອເປີດໃຊ້ແລ້ວ, ນະໂຍບາຍ HSTS ຈະມີຜົນກັບໂດເມນຍ່ອຍທັງໝົດຂອງໂດເມນປະຈຸບັນ.',
defaultHtml: 'ຕັ້ງໜ້າເລີ່ມຕົ້ນ',
website404: 'ໜ້າຂໍ້ຜິດພາດ 404 ຂອງເວັບໄຊ',
domain404: 'ບໍ່ມີໜ້າເວັບນີ້',
@@ -3460,7 +3535,7 @@ toolbox: {
website404Helper: 'ໜ້າຂໍ້ຜິດພາດ 404 ຮອງຮັບສະເພາະເວັບໄຊ PHP ແລະ ເວັບໄຊ Static ເທົ່ານັ້ນ',
sni: 'SNI ຕົ້ນທາງ',
sniHelper:
- "ເມື່ອ reverse proxy ປາຍທາງເປັນ HTTPS, ທ່ານອາດຕ້ອງຕັ້ງຄ່າ SNI ຕົ້ນທາງ. ເບິ່ງລາຍລະອຽດຈາກເອກະສານຂອງຜູ້ໃຫ້ບໍລິການ CDN.",
+ 'ເມື່ອ reverse proxy ປາຍທາງເປັນ HTTPS, ທ່ານອາດຕ້ອງຕັ້ງຄ່າ SNI ຕົ້ນທາງ. ເບິ່ງລາຍລະອຽດຈາກເອກະສານຂອງຜູ້ໃຫ້ບໍລິການ CDN.',
proxySslVerify: 'ກວດສອບໃບຢັ້ງຢືນ SSL ຂອງເບື້ອງຫຼັງ',
proxySslVerifyHelper:
'ເມື່ອເປີດໃຊ້, proxy ຈະກວດສອບໃບຢັ້ງຢືນ SSL ຂອງເຊີບເວີຕົ້ນທາງຢ່າງເຂັ້ມງວດ (ປິດໄວ້ໂດຍເລີ່ມຕົ້ນ).',
@@ -3511,9 +3586,9 @@ toolbox: {
realIP: 'IP ທີ່ແທ້ຈິງ',
ipFrom: 'ແຫຼ່ງທີ່ມາຂອງ IP',
ipFromHelper:
- "ໂດຍການຕັ້ງຄ່າແຫຼ່ງ IP ທີ່ເຊື່ອຖືໄດ້, OpenResty ຈະວິເຄາະຂໍ້ມູນ IP ໃນ HTTP headers ເພື່ອລະບຸ ແລະ ບັນທຶກ IP ທີ່ແທ້ຈິງຂອງຜູ້ເຂົ້າຊົມໄດ້ຢ່າງຖືກຕ້ອງ",
- ipFromExample1: "ຖ້າເບື້ອງໜ້າເປັນເຄື່ອງມືເຊັ່ນ Frp, ທ່ານສາມາດປ້ອນ IP ຂອງ Frp ເຊັ່ນ 127.0.0.1",
- ipFromExample2: "ຖ້າເບື້ອງໜ້າເປັນ CDN, ທ່ານສາມາດປ້ອນຊ່ວງ IP ຂອງ CDN",
+ 'ໂດຍການຕັ້ງຄ່າແຫຼ່ງ IP ທີ່ເຊື່ອຖືໄດ້, OpenResty ຈະວິເຄາະຂໍ້ມູນ IP ໃນ HTTP headers ເພື່ອລະບຸ ແລະ ບັນທຶກ IP ທີ່ແທ້ຈິງຂອງຜູ້ເຂົ້າຊົມໄດ້ຢ່າງຖືກຕ້ອງ',
+ ipFromExample1: 'ຖ້າເບື້ອງໜ້າເປັນເຄື່ອງມືເຊັ່ນ Frp, ທ່ານສາມາດປ້ອນ IP ຂອງ Frp ເຊັ່ນ 127.0.0.1',
+ ipFromExample2: 'ຖ້າເບື້ອງໜ້າເປັນ CDN, ທ່ານສາມາດປ້ອນຊ່ວງ IP ຂອງ CDN',
ipFromExample3:
'ຖ້າບໍ່ແນ່ໃຈ, ທ່ານສາມາດປ້ອນ 0.0.0.0/0 (ipv4) ::/0 (ipv6) [ໝາຍເຫດ: ການອະນຸຍາດທຸກແຫຼ່ງ IP ບໍ່ປອດໄພ]',
http3Helper:
@@ -3544,14 +3619,11 @@ toolbox: {
useProxyHelper: 'ໃຊ້ທີ່ຢູ່ເຊີບເວີ proxy ໃນການຕັ້ງຄ່າແຜງຄວບຄຸມ',
westCN: 'West Digital',
openBaseDir: 'ປ້ອງກັນການໂຈມຕີຂ້າມເວັບໄຊ (Cross-Site)',
- openBaseDirHelper:
- 'open_basedir ໃຊ້ເພື່ອຈຳກັດພາດການເຂົ້າເຖິງໄຟລ໌ PHP ເພື່ອຄວາມປອດໄພ',
+ openBaseDirHelper: 'open_basedir ໃຊ້ເພື່ອຈຳກັດພາດການເຂົ້າເຖິງໄຟລ໌ PHP ເພື່ອຄວາມປອດໄພ',
serverCacheTime: 'ເວລາແຄຊເຊີບເວີ',
- serverCacheTimeHelper:
- 'ໄລຍະເວລາທີ່ການຮ້ອງຂໍຈະຖືກແຄຊໄວ້ຢູ່ເຊີບເວີ.',
+ serverCacheTimeHelper: 'ໄລຍະເວລາທີ່ການຮ້ອງຂໍຈະຖືກແຄຊໄວ້ຢູ່ເຊີບເວີ.',
browserCacheTime: 'ເວລາແຄຊບຣາວເຊີ',
- browserCacheTimeHelper:
- 'ໄລຍະເວລາທີ່ຊັບພະຍາກອນຄົງທີ່ຖືກແຄຊໄວ້ໃນບຣາວເຊີຂອງຜູ້ໃຊ້.',
+ browserCacheTimeHelper: 'ໄລຍະເວລາທີ່ຊັບພະຍາກອນຄົງທີ່ຖືກແຄຊໄວ້ໃນບຣາວເຊີຂອງຜູ້ໃຊ້.',
donotLinkeDB: 'ບໍ່ເຊື່ອມຕໍ່ຖານຂໍ້ມູນ',
toWebsiteDir: 'ເຂົ້າສູ່ໂຟນເດີເວັບໄຊ',
execParameters: 'ພາຣາມິເຕີການເຮັດວຽກ',
@@ -3564,8 +3636,7 @@ toolbox: {
batchOperateHelper: 'ປະຕິບັດການ {0} ເວັບໄຊແບບກຸ່ມ, ຕ້ອງການຕໍ່ຫຼືບໍ່?',
stream: 'TCP/UDP Proxy',
streamPorts: 'ພອດທີ່ຟັງ (Listening Ports)',
- streamPortsHelper:
- 'ຕັ້ງຄ່າພອດພາຍນອກ, ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ, ຕົວຢ່າງ: 5222,5223',
+ streamPortsHelper: 'ຕັ້ງຄ່າພອດພາຍນອກ, ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ, ຕົວຢ່າງ: 5222,5223',
streamHelper: 'ການສົ່ງຕໍ່ພອດ TCP/UDP ແລະ ການກະຈາຍພາລະ',
udp: 'ເປີດໃຊ້ UDP',
syncHtmlHelper: 'ຊິງຄ໌ໄປທີ່ເວັບໄຊ PHP ແລະ Static',
@@ -3587,8 +3658,7 @@ toolbox: {
disableFunction: 'ຟັງຊັນທີ່ປິດການໃຊ້ງານ',
disableFunctionHelper: 'ປ້ອນຟັງຊັນທີ່ຕ້ອງການປິດ ເຊັ່ນ exec, ໃຊ້ເຄື່ອງໝາຍຈຸດແຍກ',
uploadMaxSize: 'ຂີດຈຳກັດການອັບໂຫຼດ',
- indexHelper:
- 'ເພື່ອໃຫ້ເວັບໄຊ PHP ເຮັດວຽກໄດ້ຕາມປົກກະຕິ, ກະລຸນາວາງໂຄ້ດໄວ້ໃນໂຟນເດີ index ແລະ ຫຼີກລ່ຽງການປ່ຽນຊື່',
+ indexHelper: 'ເພື່ອໃຫ້ເວັບໄຊ PHP ເຮັດວຽກໄດ້ຕາມປົກກະຕິ, ກະລຸນາວາງໂຄ້ດໄວ້ໃນໂຟນເດີ index ແລະ ຫຼີກລ່ຽງການປ່ຽນຊື່',
extensions: 'ແມ່ແບບສ່ວນຂະຫຍາຍ',
extension: 'ສ່ວນຂະຫຍາຍ',
extensionsHelper: 'ສຳລັບຫຼາຍສ່ວນຂະຫຍາຍ, ໃຫ້ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ',
@@ -3626,15 +3696,12 @@ toolbox: {
script: 'ສະຄຣິບ',
module: 'ໂມດູນ',
build: 'ບິວ (Build)',
- buildWarn:
- 'ການບິວ OpenResty ຕ້ອງໃຊ້ CPU ແລະ ໜ່ວຍຄວາມຈຳໃນລະດັບໜຶ່ງ ແລະ ອາດໃຊ້ເວລາດົນ, ກະລຸນາລໍຖ້າ',
+ buildWarn: 'ການບິວ OpenResty ຕ້ອງໃຊ້ CPU ແລະ ໜ່ວຍຄວາມຈຳໃນລະດັບໜຶ່ງ ແລະ ອາດໃຊ້ເວລາດົນ, ກະລຸນາລໍຖ້າ',
mirrorUrl: 'ແຫຼ່ງຊອບແວ',
paramsHelper: 'ຕົວຢ່າງ: --add-module=/tmp/ngx_brotli',
packagesHelper: 'ຕົວຢ່າງ: git, curl (ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ)',
- scriptHelper:
- 'ສະຄຣິບທີ່ຈະເຮັດວຽກກ່ອນການຄອມໄພລ໌, ມັກໃຊ້ເພື່ອດາວໂຫຼດຊອດໂຄ້ດໂມດູນ ຫຼື ຕິດຕັ້ງ dependency',
- buildHelper:
- 'ຄລິກບິວຫຼັງຈາກເພີ່ມ/ແກ້ໄຂໂມດູນ. OpenResty ຈະເລີ່ມໃໝ່ໂດຍອັດຕະໂນມັດເມື່ອບິວສຳເລັດ.',
+ scriptHelper: 'ສະຄຣິບທີ່ຈະເຮັດວຽກກ່ອນການຄອມໄພລ໌, ມັກໃຊ້ເພື່ອດາວໂຫຼດຊອດໂຄ້ດໂມດູນ ຫຼື ຕິດຕັ້ງ dependency',
+ buildHelper: 'ຄລິກບິວຫຼັງຈາກເພີ່ມ/ແກ້ໄຂໂມດູນ. OpenResty ຈະເລີ່ມໃໝ່ໂດຍອັດຕະໂນມັດເມື່ອບິວສຳເລັດ.',
defaultHttps: 'ການປ້ອງກັນການປອມແປງ HTTPS',
defaultHttpsHelper1: 'ການເປີດໃຊ້ສິ່ງນີ້ສາມາດແກ້ໄຂບັນຫາການປອມແປງ HTTPS ໄດ້.',
sslRejectHandshake: 'ປະຕິເສດການ handshake SSL ເລີ່ມຕົ້ນ',
@@ -3660,8 +3727,7 @@ toolbox: {
autoRenew: 'ຕໍ່ອາຍຸອັດຕະໂນມັດ',
autoRenewHelper: 'ຕໍ່ອາຍຸອັດຕະໂນມັດ 30 ວັນກ່ອນໝົດອາຍຸ',
renewSuccess: 'ຕໍ່ອາຍຸສຳເລັດແລ້ວ',
- renewWebsite:
- 'ໃບຢັ້ງຢືນນີ້ໄດ້ຖືກເຊື່ອມໂຍງກັບເວັບໄຊຕໍ່ໄປນີ້ ແລະ ຈະມີຜົນກັບເວັບໄຊເຫຼົ່ານັ້ນພ້ອມກັນ',
+ renewWebsite: 'ໃບຢັ້ງຢືນນີ້ໄດ້ຖືກເຊື່ອມໂຍງກັບເວັບໄຊຕໍ່ໄປນີ້ ແລະ ຈະມີຜົນກັບເວັບໄຊເຫຼົ່ານັ້ນພ້ອມກັນ',
createAcme: 'ສ້າງບັນຊີ',
acmeHelper: 'ບັນຊີ Acme ໃຊ້ສຳລັບຂໍໃບຢັ້ງຢືນຟຣີ',
upload: 'ນຳເຂົ້າ',
@@ -3684,14 +3750,11 @@ toolbox: {
domainHelper: 'ໜຶ່ງໂດເມນຕໍ່ແຖວ, ຮອງຮັບ * ແລະ ທີ່ຢູ່ IP',
pushDir: 'ສົ່ງໃບຢັ້ງຢືນໄປຍັງໂຟນເດີໃນເຄື່ອງ',
dir: 'ໂຟນເດີ',
- pushDirHelper:
- 'ໄຟລ໌ "fullchain.pem" ແລະ "privkey.pem" ຈະຖືກສ້າງໃນໂຟນເດີນີ້.',
+ pushDirHelper: 'ໄຟລ໌ "fullchain.pem" ແລະ "privkey.pem" ຈະຖືກສ້າງໃນໂຟນເດີນີ້.',
organizationDetail: 'ລາຍລະອຽດອົງກອນ',
fromWebsite: 'ຈາກເວັບໄຊ',
- dnsMauanlHelper:
- 'ໃນໂໝດຈັດການ DNS ດ້ວຍຕົນເອງ, ທ່ານຕ້ອງຄລິກປຸ່ມ "ຂໍໃບຢັ້ງຢືນ" ຫຼັງຈາກສ້າງເພື່ອຮັບຄ່າ DNS',
- httpHelper:
- 'ການໃຊ້ໂໝດ HTTP ຕ້ອງຕິດຕັ້ງ OpenResty ແລະ ບໍ່ຮອງຮັບການຂໍໃບຢັ້ງຢືນແບບ wildcard.',
+ dnsMauanlHelper: 'ໃນໂໝດຈັດການ DNS ດ້ວຍຕົນເອງ, ທ່ານຕ້ອງຄລິກປຸ່ມ "ຂໍໃບຢັ້ງຢືນ" ຫຼັງຈາກສ້າງເພື່ອຮັບຄ່າ DNS',
+ httpHelper: 'ການໃຊ້ໂໝດ HTTP ຕ້ອງຕິດຕັ້ງ OpenResty ແລະ ບໍ່ຮອງຮັບການຂໍໃບຢັ້ງຢືນແບບ wildcard.',
buypassHelper: 'Buypass ອາດເຂົ້າເຖິງບໍ່ໄດ້ໃນບາງພື້ນທີ່',
googleHelper: 'ວິທີຮັບ EAB HmacKey ແລະ EAB kid',
googleCloudHelper: 'Google Cloud API ອາດເຂົ້າເຖິງບໍ່ໄດ້ໃນບາງພື້ນທີ່',
@@ -3699,8 +3762,7 @@ toolbox: {
skipDNSCheckHelper: 'ເລືອກບ່ອນນີ້ສະເພາະເມື່ອທ່ານພົບຫາເວລາໝົດອາຍຸລະຫວ່າງການຂໍໃບຢັ້ງຢືນ.',
cfHelper: 'ຫ້າມໃຊ້ Global API Key',
deprecated: 'ຈະຖືກຍົກເລີກໃນໄວໆນີ້',
- deprecatedHelper:
- 'ຢຸດການບຳລຸງຮັກສາແລ້ວ ແລະ ອາດຈະຖືກເອົາອອກໃນເວີຊັນໜ້າ. ກະລຸນາໃຊ້ວິທີ Tencent Cloud ແທນ',
+ deprecatedHelper: 'ຢຸດການບຳລຸງຮັກສາແລ້ວ ແລະ ອາດຈະຖືກເອົາອອກໃນເວີຊັນໜ້າ. ກະລຸນາໃຊ້ວິທີ Tencent Cloud ແທນ',
dnsPodRemoved: 'ຖືກເອົາອອກແລ້ວ',
dnsPodRemovedTip:
'DnsPod ຖືກເອົາອອກໃນ lego v5; ບັນຊີນີ້ບໍ່ສາມາດໃຊ້ຂໍໃບຢັ້ງຢືນໃໝ່ ຫຼື ຕໍ່ອາຍຸໄດ້. ກະລຸນາປ່ຽນໄປໃຊ້ TencentCloud DNS.',
@@ -3741,8 +3803,7 @@ toolbox: {
cookieBlockList: 'Cookie ທີ່ບລັອກ',
dockerHelper:
'ໄຟວໍປະຈຸບັນບໍ່ສາມາດປິດການແມັບພອດຄອນເທນເນີໄດ້. ແອັບທີ່ຕິດຕັ້ງແລ້ວສາມາດໄປທີ່ໜ້າ [ຕິດຕັ້ງແລ້ວ] ເພື່ອແກ້ໄຂພາຣາມິເຕີ ແລະ ຕັ້ງຄ່າການເປີດພອດ.',
- iptablesHelper:
- 'ກວດພົບວ່າລະບົບໃຊ້ໄຟວໍ {0}. ຖ້າຕ້ອງການປ່ຽນເປັນ iptables, ກະລຸນາຖອນການຕິດຕັ້ງມັນອອກກ່ອນ!',
+ iptablesHelper: 'ກວດພົບວ່າລະບົບໃຊ້ໄຟວໍ {0}. ຖ້າຕ້ອງການປ່ຽນເປັນ iptables, ກະລຸນາຖອນການຕິດຕັ້ງມັນອອກກ່ອນ!',
quickJump: 'ເຂົ້າເຖິງດ່ວນ',
used: 'ໃຊ້ແລ້ວ',
unUsed: 'ບໍ່ໄດ້ໃຊ້',
@@ -3756,7 +3817,7 @@ toolbox: {
enableBanPing: 'ບລັອກ Ping',
disableBanPing: 'ເລີກບລັອກ Ping',
noPingTitle: 'ປິດການ Ping',
- noPingHelper: "ນີ້ຈະປິດການ Ping ແລະ ເຊີບເວີຈະບໍ່ຕອບສະໜອງ ICMP. ຕ້ອງການຕໍ່ຫຼືບໍ່?",
+ noPingHelper: 'ນີ້ຈະປິດການ Ping ແລະ ເຊີບເວີຈະບໍ່ຕອບສະໜອງ ICMP. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
onPingHelper: 'ນີ້ຈະເປີດການ Ping ແລະ ແຮັກເກີອາດຈະກວດພົບເຊີບເວີຂອງທ່ານ. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
changeStrategy: 'ປ່ຽນກົນລະຍຸດ {0}',
changeStrategyIPHelper1:
@@ -3772,7 +3833,7 @@ toolbox: {
portHelper1: 'ຫຼາຍພອດ ຕົວຢ່າງ: 8080,8081',
portHelper2: 'ຊ່ວງພອດ ຕົວຢ່າງ: 8080-8089',
changeStrategyHelper:
- 'ປ່ຽນກົນລະຍຸດ {0} ຂອງ [{1}] ເປັນ [{2}]. ຕ້ອງການຕໍ່ຫຼືບໍ່?',
+ 'ປ່ຽນກົນລະຍຸດ {0} ຂອງ [{1}] ເປັນ [{2}]. ຫຼັງຈາກຕັ້ງຄ່າແລ້ວ {0} ຈະເຂົ້າເຖິງ {2} ຈາກພາຍນອກ. ຕ້ອງການຕໍ່ບໍ?',
strategy: 'ກົນລະຍຸດ',
accept: 'ຍອມຮັບ (Accept)',
drop: 'ຖິ້ມ (Drop)',
@@ -3806,15 +3867,13 @@ toolbox: {
forwardIptables: 'ບໍລິການສົ່ງຕໍ່ພອດ iptables',
advanceIptables: 'ບໍລິການຕັ້ງຄ່າຂັ້ນສູງ iptables',
initMsg: 'ກຳລັງຈະເລີ່ມຕົ້ນ {0}, ຕ້ອງການຕໍ່ຫຼືບໍ່?',
- initHelper:
- 'ກວດພົບວ່າ {0} ຍັງບໍ່ໄດ້ຖືກຕັ້ງຄ່າເລີ່ມຕົ້ນ. ຄລິກປຸ່ມເລີ່ມຕົ້ນຢູ່ແຖບສະຖານະດ້ານເທິງເພື່ອຕັ້ງຄ່າ!',
+ initHelper: 'ກວດພົບວ່າ {0} ຍັງບໍ່ໄດ້ຖືກຕັ້ງຄ່າເລີ່ມຕົ້ນ. ຄລິກປຸ່ມເລີ່ມຕົ້ນຢູ່ແຖບສະຖານະດ້ານເທິງເພື່ອຕັ້ງຄ່າ!',
bindHelper: 'ຜູກມັດ - ກົດລະບຽບໄຟວໍຈະມີຜົນເມື່ອສະຖານະຖືກຜູກມັດເທົ່ານັ້ນ. ຢືນຢັນ?',
unbindHelper:
'ຍົກເລີກການຜູກມັດ - ເມື່ອຍົກເລີກ, ກົດລະບຽບໄຟວໍທັງໝົດຈະບໍ່ມີຜົນ. ກະລຸນາເຮັດດ້ວຍຄວາມລະມັດລະວັງ. ຢືນຢັນ?',
whiteList: 'ລາຍການອະນຸຍາດ (Allowlist)',
portWhiteList: 'ພອດທີ່ອະນຸຍາດ',
- portWhiteListAlter:
- 'ພອດໃນລາຍການອະນຸຍາດຈະຖືກເປີດໂດຍອັດຕະໂນມັດເມື່ອເລີ່ມຕົ້ນໄຟວໍ.',
+ portWhiteListAlter: 'ພອດໃນລາຍການອະນຸຍາດຈະຖືກເປີດໂດຍອັດຕະໂນມັດເມື່ອເລີ່ມຕົ້ນໄຟວໍ.',
portWhiteListHelper: 'ສາມາດກຳນົດໂປຣໂຕຄໍໄດ້ ເຊັ່ນ 80/tcp ຫຼື 443/udp. ເລີ່ມຕົ້ນແມ່ນ tcp.',
defaultStrategy: 'ກົນລະຍຸດເລີ່ມຕົ້ນສຳລັບ Chain {0} ແມ່ນ {1}',
defaultStrategy2:
@@ -3874,12 +3933,11 @@ toolbox: {
imageSource: 'ແຫຼ່ງອິມເມຈ',
moduleManager: 'ການຈັດການໂມດູນ',
module: 'ໂມດູນ',
- nodeOperatorHelper:
- 'ທ່ານແນ່ໃຈຫຼືບໍ່ວ່າຈະ {0} ໂມດູນ {1}? ການດຳເນີນການນີ້ອາດເຮັດໃຫ້ຣັນທາມເຮັດວຽກຜິດປົກກະຕິ.',
+ nodeOperatorHelper: 'ທ່ານແນ່ໃຈຫຼືບໍ່ວ່າຈະ {0} ໂມດູນ {1}? ການດຳເນີນການນີ້ອາດເຮັດໃຫ້ຣັນທາມເຮັດວຽກຜິດປົກກະຕິ.',
customScript: 'ຄຳສັ່ງເລີ່ມຕົ້ນທີ່ກຳນົດເອງ',
customScriptHelper:
'ປ້ອນຄຳສັ່ງເລີ່ມຕົ້ນທີ່ສົມບູນ ຕົວຢ່າງ: npm run start. ສຳລັບຄຳສັ່ງ PM2, ໃຫ້ປ່ຽນເປັນ pm2-runtime.',
- portError: "ຫ້າມໃຊ້ພອດຊ້ຳກັນ.",
+ portError: 'ຫ້າມໃຊ້ພອດຊ້ຳກັນ.',
systemRestartHelper: 'ລາຍລະອຽດ: ຖືກຂັດຈັງຫວະ - ບໍ່ສາມາດດຶງສະຖານະໄດ້ເນື່ອງຈາກລະບົບເລີ່ມຕົ້ນໃໝ່',
javaScriptHelper: 'ປ້ອນຄຳສັ່ງເລີ່ມຕົ້ນທີ່ສົມບູນ ຕົວຢ່າງ: "java -jar halo.jar -Xmx1024M -Xms256M".',
javaDirHelper: 'ໂຟນເດີຕ້ອງມີໄຟລ໌ jar, ໂຟນເດີ່ຍ່ອຍກໍສາມາດໃຊ້ໄດ້',
@@ -3890,18 +3948,14 @@ toolbox: {
loadedExtension: 'ສ່ວນຂະຫຍາຍທີ່ໂຫຼດແລ້ວ',
popularExtension: 'ສ່ວນຂະຫຍາຍຍອດນິຍົມ',
uninstallExtension: 'ທ່ານແນ່ໃຈຫຼືບໍ່ວ່າຈະຖອນການຕິດຕັ້ງສ່ວນຂະຫຍາຍ {0}',
- phpConfigHelper:
- 'ການແກ້ໄຂການຕັ້ງຄ່າຕ້ອງມີການເລີ່ມຕົ້ນຣັນທາມໃໝ່, ຕ້ອງການຕໍ່ຫຼືບໍ່',
+ phpConfigHelper: 'ການແກ້ໄຂການຕັ້ງຄ່າຕ້ອງມີການເລີ່ມຕົ້ນຣັນທາມໃໝ່, ຕ້ອງການຕໍ່ຫຼືບໍ່',
operateMode: 'ໂໝດການເຮັດວຽກ',
dynamic: 'ໄດນາມິກ (dynamic)',
static: 'ຄົງທີ່ (static)',
ondemand: 'ຕາມຄວາມຕ້ອງການ (on-demand)',
- dynamicHelper:
- 'ປັບຈຳນວນຂະບວນການອັດຕະໂນມັດ, ມີຄວາມຍືດຫຍຸ່ນສູງ, ເໝາະສຳລັບເວັບໄຊທີ່ມີທຣາຟຟິກບໍ່ຄົງທີ່',
- staticHelper:
- 'ກຳນົດຈຳນວນຂະບວນການຄົງທີ່, ເໝາະສຳລັບເວັບໄຊທີ່ມີການເຂົ້າເຖິງສູງ ແລະ ຄົງທີ່, ໃຊ້ຊັບພະຍາກອນສູງ',
- ondemandHelper:
- 'ຂະບວນການຈະຖືກສ້າງ ແລະ ທຳລາຍຕາມຄວາມຕ້ອງການ, ປະຢັດຊັບພະຍາກອນ ແຕ່ການຕອບສະໜອງທຳອິດອາດຊ້າ',
+ dynamicHelper: 'ປັບຈຳນວນຂະບວນການອັດຕະໂນມັດ, ມີຄວາມຍືດຫຍຸ່ນສູງ, ເໝາະສຳລັບເວັບໄຊທີ່ມີທຣາຟຟິກບໍ່ຄົງທີ່',
+ staticHelper: 'ກຳນົດຈຳນວນຂະບວນການຄົງທີ່, ເໝາະສຳລັບເວັບໄຊທີ່ມີການເຂົ້າເຖິງສູງ ແລະ ຄົງທີ່, ໃຊ້ຊັບພະຍາກອນສູງ',
+ ondemandHelper: 'ຂະບວນການຈະຖືກສ້າງ ແລະ ທຳລາຍຕາມຄວາມຕ້ອງການ, ປະຢັດຊັບພະຍາກອນ ແຕ່ການຕອບສະໜອງທຳອິດອາດຊ້າ',
max_children: 'ຈຳນວນຂະບວນການສູງສຸດທີ່ອະນຸຍາດໃຫ້ສ້າງ',
start_servers: 'ຈຳນວນຂະບວນການທີ່ສ້າງເມື່ອເລີ່ມຕົ້ນ',
min_spare_servers: 'ຈຳນວນຂະບວນການຫວ່າງຕ່ຳສຸດ',
@@ -3998,8 +4052,7 @@ toolbox: {
unmount: 'ຍົກເລີກການ Mount',
unmountHelper: 'ຕ້ອງການຍົກເລີກການ mount ພາທິຊັນ {0} ຫຼືບໍ່?',
mount: 'Mount',
- partitionAlert:
- 'ການແບ່ງພາທິຊັນຕ້ອງມີການຟໍແມັດດິສກ໌, ເຊິ່ງຈະລຶບຂໍ້ມູນທີ່ມີຢູ່ທັງໝົດ. ກະລຸນາສຳຮອງຂໍ້ມູນກ່ອນ.',
+ partitionAlert: 'ການແບ່ງພາທິຊັນຕ້ອງມີການຟໍແມັດດິສກ໌, ເຊິ່ງຈະລຶບຂໍ້ມູນທີ່ມີຢູ່ທັງໝົດ. ກະລຸນາສຳຮອງຂໍ້ມູນກ່ອນ.',
mountPoint: 'ຈຸດ Mount',
systemDisk: 'ດິສກ໌ລະບົບ',
unpartitionedDisk: 'ດິສກ໌ທີ່ຍັງບໍ່ໄດ້ແບ່ງພາທິຊັນ',
@@ -4211,15 +4264,12 @@ toolbox: {
bindDomainRestrictedDesc: 'ຜູກມັດໂດເມນການເຂົ້າເຖິງແລ້ວ',
bindDomainRiskDesc: 'ຍັງບໍ່ໄດ້ຜູກມັດໂດເມນ. ກະລຸນາຈຳກັດການເຂົ້າເຖິງຜ່ານໂດເມນທີ່ກຳນົດ',
accessRestrictionValue: 'IP ທີ່ອະນຸຍາດ: {0} / ໂດເມນທີ່ຜູກ: {1}',
- accessRestrictionNormalDesc:
- 'ຕັ້ງຄ່າ IP ທີ່ອະນຸຍາດ ຫຼື ຜູກມັດໂດເມນແລ້ວເພື່ອຈຳກັດແຫຼ່ງການເຂົ້າເຖິງ',
- accessRestrictionRiskDesc:
- 'ບໍ່ໄດ້ຕັ້ງຄ່າ IP ຫຼື ໂດເມນ. ກະລຸນາຕັ້ງຄ່າຢ່າງໜ້ອຍໜຶ່ງຢ່າງ',
+ accessRestrictionNormalDesc: 'ຕັ້ງຄ່າ IP ທີ່ອະນຸຍາດ ຫຼື ຜູກມັດໂດເມນແລ້ວເພື່ອຈຳກັດແຫຼ່ງການເຂົ້າເຖິງ',
+ accessRestrictionRiskDesc: 'ບໍ່ໄດ້ຕັ້ງຄ່າ IP ຫຼື ໂດເມນ. ກະລຸນາຕັ້ງຄ່າຢ່າງໜ້ອຍໜຶ່ງຢ່າງ',
panelHTTPSNormalDesc: 'ເປີດໃຊ້ HTTPS ຂອງແຜງຄວບຄຸມແລ້ວ',
panelHTTPSRiskDesc: 'ປິດ HTTPS ຂອງແຜງຄວບຄຸມຢູ່. ຂໍ້ມູນການເຂົ້າລະບົບອາດຈະຖືກເປີດເຜີຍ',
passwordComplexityNormalDesc: 'ເປີດໃຊ້ການກວດສອບຄວາມຊັບຊ້ອນຂອງລະຫັດຜ່ານແລ້ວ',
- passwordComplexityRiskDesc:
- 'ປິດການກວດສອບຄວາມຊັບຊ້ອນຢູ່, ເພີ່ມຄວາມສ່ຽງຈາກລະຫັດຜ່ານທີ່ເດົາງ່າຍ',
+ passwordComplexityRiskDesc: 'ປິດການກວດສອບຄວາມຊັບຊ້ອນຢູ່, ເພີ່ມຄວາມສ່ຽງຈາກລະຫັດຜ່ານທີ່ເດົາງ່າຍ',
mfa: 'MFA (ການຢືນຢັນຕົວຕົນຫຼາຍຂັ້ນຕອນ)',
mfaNormalDesc: 'ເປີດໃຊ້ MFA ແລ້ວ, ຊ່ວຍເພີ່ມຄວາມປອດໄພການເຂົ້າລະບົບ',
mfaRiskDesc: 'ປິດ MFA ຢູ່. ກະລຸນາເປີດໃຊ້ການຢືນຢັນຕົວຕົນຫຼາຍຂັ້ນຕອນ',
@@ -4498,1075 +4548,1216 @@ toolbox: {
systemThreshold: 'ເກນຂອງລະບົບ',
metric: 'ຕົວຊີ້ວັດ',
currentRule: 'ກົດລະບຽບປະຈຸບັນ',
- hostMonitor: 'ຕິດຕາມໂຮສຕ໌',
- monitorInterval: 'ໄລຍະຫ່າງການຕິດຕາມ',
- exportSettings: 'ສົ່ງອອກການຕັ້ງຄ່າ',
- lastExportReport: 'ຜົນການສ້າງລາຍງານຫຼ້າສຸດ',
- noLastExportReport: 'ບໍ່ມີປະຫວັດການສົ່ງອອກລາຍງານ',
- lastExportStatus: 'ສະຖານະການສົ່ງອອກຫຼ້າສຸດ',
- exportFile: 'ໄຟລ໌ສົ່ງອອກ',
- generateTime: 'ສ້າງຂຶ້ນເມື່ອ',
- fileSize: 'ຂະໜາດໄຟລ໌',
- viewExportHistory: 'ເບິ່ງປະຫວັດການສົ່ງອອກ',
- defaultFormat: 'ຮູບແບບເລີ່ມຕົ້ນ',
- savePath: 'ບ່ອນເກັບໄຟລ໌',
- savePathRequired: 'ກະລຸນາກຳນົດບ່ອນເກັບລາຍງານ',
- autoExport: 'ເປີດໃຊ້ການສົ່ງອອກອັດຕະໂນມັດ',
- autoExportDesc: 'ເມື່ອເປີດໃຊ້, ລະບົບຈະສ້າງລາຍງານ Ops ໂດຍອັດຕະໂນມັດທຸກມື້ເວລາ 09:00',
- autoExportEnabled: 'ເປີດການສົ່ງອອກອັດຕະໂນມັດແລ້ວ',
- autoExportDisabled: 'ປິດການສົ່ງອອກອັດຕະໂນມັດແລ້ວ',
- readOnlyPermissionTip:
- 'ບັນຊີນີ້ສາມາດເບິ່ງໄດ້ຢ່າງດຽວ. ກະລຸນາຕິດຕໍ່ຜູ້ດູແລລະບົບເພື່ອແກ້ໄຂ.',
- refreshing: 'ກຳລັງໂຫຼດໃໝ່',
- exporting: 'ກຳລັງສົ່ງອອກ',
- exportFailed: 'ສົ່ງອອກລາຍງານລົ້ມເຫຼວ',
- generating: 'ກຳລັງສ້າງ',
- saved: 'ບັນທຶກແລ້ວ',
- saveFailed: 'ບັນທຶກການຕັ້ງຄ່າລົ້ມເຫຼວ',
- generateNow: 'ສ້າງດຽວນີ້',
- generateSuccess: 'ສ້າງໄຟລ໌ລາຍງານສຳເລັດ: {0}',
- generateFailed: 'ສ້າງລາຍງານລົ້ມເຫຼວ',
- enabledStatus: 'ເປີດໃຊ້ງານ',
- disabledStatus: 'ປິດໃຊ້ງານ',
- alertConfigInvalid: 'ການຕັ້ງຄ່າບໍ່ຖືກຕ້ອງ',
- thresholdRule: 'ເກນກຳນົດ {0}, ເຮັດວຽກຫຼັງຈາກຕິດກັນ {1} ຄັ້ງ',
- hours: '{0} ຊົ່ວໂມງ',
- minutes: '{0} ນາທີ',
- seconds: '{0} ວິນາທີ',
- totalExports: 'ການສົ່ງອອກທັງໝົດ',
- successExports: 'ສົ່ງອອກສຳເລັດ',
- failedExports: 'ສົ່ງອອກລົ້ມເຫຼວ',
- reportName: 'ຊື່ລາຍງານ',
- exportFormat: 'ຮູບແບບການສົ່ງອອກ',
- operator: 'ຜູ້ດຳເນີນການ',
- triggerType: 'ຕົວຈຸດຊະນວນ',
- filePath: 'ທີ່ຢູ່ໄຟລ໌',
- manualExport: 'ຈັດການເອງ',
- scheduledExport: 'ຕາມກຳນົດເວລາ',
- exportResult: 'ຜົນການສົ່ງອອກ',
- exportDetail: 'ລາຍລະອຽດການສົ່ງອອກ',
+ hostMonitor: 'ຕິດຕາມໂຮສຕ໌',
+ monitorInterval: 'ໄລຍະຫ່າງການຕິດຕາມ',
+ exportSettings: 'ສົ່ງອອກການຕັ້ງຄ່າ',
+ lastExportReport: 'ຜົນການສ້າງລາຍງານຫຼ້າສຸດ',
+ noLastExportReport: 'ບໍ່ມີປະຫວັດການສົ່ງອອກລາຍງານ',
+ lastExportStatus: 'ສະຖານະການສົ່ງອອກຫຼ້າສຸດ',
+ exportFile: 'ໄຟລ໌ສົ່ງອອກ',
+ generateTime: 'ສ້າງຂຶ້ນເມື່ອ',
+ fileSize: 'ຂະໜາດໄຟລ໌',
+ viewExportHistory: 'ເບິ່ງປະຫວັດການສົ່ງອອກ',
+ defaultFormat: 'ຮູບແບບເລີ່ມຕົ້ນ',
+ savePath: 'ບ່ອນເກັບໄຟລ໌',
+ savePathRequired: 'ກະລຸນາກຳນົດບ່ອນເກັບລາຍງານ',
+ autoExport: 'ເປີດໃຊ້ການສົ່ງອອກອັດຕະໂນມັດ',
+ autoExportDesc: 'ເມື່ອເປີດໃຊ້, ລະບົບຈະສ້າງລາຍງານ Ops ໂດຍອັດຕະໂນມັດທຸກມື້ເວລາ 09:00',
+ autoExportEnabled: 'ເປີດການສົ່ງອອກອັດຕະໂນມັດແລ້ວ',
+ autoExportDisabled: 'ປິດການສົ່ງອອກອັດຕະໂນມັດແລ້ວ',
+ readOnlyPermissionTip: 'ບັນຊີນີ້ສາມາດເບິ່ງໄດ້ຢ່າງດຽວ. ກະລຸນາຕິດຕໍ່ຜູ້ດູແລລະບົບເພື່ອແກ້ໄຂ.',
+ refreshing: 'ກຳລັງໂຫຼດໃໝ່',
+ exporting: 'ກຳລັງສົ່ງອອກ',
+ exportFailed: 'ສົ່ງອອກລາຍງານລົ້ມເຫຼວ',
+ generating: 'ກຳລັງສ້າງ',
+ saved: 'ບັນທຶກແລ້ວ',
+ saveFailed: 'ບັນທຶກການຕັ້ງຄ່າລົ້ມເຫຼວ',
+ generateNow: 'ສ້າງດຽວນີ້',
+ generateSuccess: 'ສ້າງໄຟລ໌ລາຍງານສຳເລັດ: {0}',
+ generateFailed: 'ສ້າງລາຍງານລົ້ມເຫຼວ',
+ enabledStatus: 'ເປີດໃຊ້ງານ',
+ disabledStatus: 'ປິດໃຊ້ງານ',
+ alertConfigInvalid: 'ການຕັ້ງຄ່າບໍ່ຖືກຕ້ອງ',
+ thresholdRule: 'ເກນກຳນົດ {0}, ເຮັດວຽກຫຼັງຈາກຕິດກັນ {1} ຄັ້ງ',
+ hours: '{0} ຊົ່ວໂມງ',
+ minutes: '{0} ນາທີ',
+ seconds: '{0} ວິນາທີ',
+ totalExports: 'ການສົ່ງອອກທັງໝົດ',
+ successExports: 'ສົ່ງອອກສຳເລັດ',
+ failedExports: 'ສົ່ງອອກລົ້ມເຫຼວ',
+ reportName: 'ຊື່ລາຍງານ',
+ exportFormat: 'ຮູບແບບການສົ່ງອອກ',
+ operator: 'ຜູ້ດຳເນີນການ',
+ triggerType: 'ຕົວຈຸດຊະນວນ',
+ filePath: 'ທີ່ຢູ່ໄຟລ໌',
+ manualExport: 'ຈັດການເອງ',
+ scheduledExport: 'ຕາມກຳນົດເວລາ',
+ exportResult: 'ຜົນການສົ່ງອອກ',
+ exportDetail: 'ລາຍລະອຽດການສົ່ງອອກ',
+ },
},
- },
- user: {
- user: 'ຜູ້ໃຊ້',
- userInfo: 'ຂໍ້ມູນຜູ້ໃຊ້',
- userManage: 'ຈັດການຜູ້ໃຊ້',
- superAdmin: 'ຜູ້ດູແລລະບົບສູງສຸດ',
- superAdminDesc: 'ມີສິດຈັດການລະບົບທັງໝົດ ແລະ ສາມາດຈັດການຊັບພະຍາກອນທຸກຢ່າງ.',
- nodeAdmin: 'ຜູ້ດູແລໂນດ',
- nodeAdminDesc:
- 'ມີສິດຈັດການສະເພາະໂນດທີ່ກຳນົດ ແລະ ສາມາດຈັດການຊັບພະຍາກອນພາຍໃນໂນດນັ້ນ.',
- readOnly: 'ອ່ານໄດ້ຢ່າງດຽວ',
- readOnlyDesc:
- 'ສາມາດເບິ່ງຂໍ້ມູນທຸກຢ່າງໃນລະບົບໄດ້ ແຕ່ບໍ່ສາມາດແກ້ໄຂໄດ້.',
- bindNode: 'ຜູກມັດໂນດ',
- boundUsers: 'ຜູ້ໃຊ້ທີ່ຜູກມັດ',
- role: 'ບົດບາດ',
- roleName: 'ຊື່',
- permission: 'ສິດການໃຊ້ງານ',
- permissionDuplicate: 'ແຕ່ລະໂນດສາມາດກຳນົດໄດ້ພຽງບົດບາດດຽວເທົ່ານັ້ນ',
- nodeAdminMasterConfirm:
- 'ສິດຜູ້ດູແລໂນດໃນໂນດຫຼັກ (Master) ຈະມີສິດສູງ. ກະລຸນາມອບໝາຍຢ່າງລະມັດລະວັງ.',
- permissionLinkageTip:
- 'ສິດທີ່ກ່ຽວຂ້ອງຈະຖືກເລືອກໂດຍອັດຕະໂນມັດ; ຫາກລຶບອອກເອງ ອາດເຮັດໃຫ້ບາງຟີເຈີໃຊ້ງານບໍ່ໄດ້.',
- allViewPermissionHelper: 'ໃຫ້ສິດການເບິ່ງທັງໝົດສຳລັບ AI Gateway.',
- apiKeyViewPermissionHelper: 'ອະນຸຍາດໃຫ້ເບິ່ງສະເພາະ AI Gateway API Keys.',
- masterOnlyPermission: 'ສິດສະເພາະໂນດຫຼັກ',
- masterOnlyPermissionHelper: 'ສິດນີ້ມີຜົນສະເພາະຢູ່ໃນໂນດຫຼັກເທົ່ານັ້ນ.',
- view: 'ເບິ່ງ',
- manage: 'ຈັດການ',
- },
- app: {
- app: 'ແອັບ',
- title: 'ຊື່ແທນພາແນລ',
- titleHelper: 'ຊື່ແທນພາແນລສຳລັບສະແດງຜົນໃນແອັບ (ຊື່ເລີ່ມຕົ້ນ)',
- qrCode: 'QR Code',
- apiStatusHelper: 'ແອັບພາແນລຈຳເປັນຕ້ອງເປີດໃຊ້ງານ API',
- apiInterfaceHelper:
- 'ຮອງຮັບການເຂົ້າເຖິງຜ່ານ API (ຕ້ອງເປີດໃຊ້ງານເພື່ອເຊື່ອມຕໍ່ກັບແອັບ)',
- apiInterfaceHelper1:
- "ການເຂົ້າເຖິງແອັບຕ້ອງເພີ່ມ IP ໃນ Whitelist; ຫາກ IP ບໍ່ຄົງທີ່ ແນະນຳໃຫ້ໃຊ້ 0.0.0.0/0 (IPv4 ທັງໝົດ), ::/0 (IPv6 ທັງໝົດ)",
- qrCodeExpired: 'ເວລາໂຫຼດໃໝ່',
- apiLeakageHelper: 'ຫ້າມເປີດເຜີຍ QR code ນີ້. ໃຫ້ແນ່ໃຈວ່າໃຊ້ໃນສະພາບແວດລ້ອມທີ່ປອດໄພ.',
- },
- waf: {
- name: 'WAF',
- blackWhite: 'ລາຍຊື່ດຳ ແລະ ຂາວ',
- globalSetting: 'ຕັ້ງຄ່າທົ່ວໄປ',
- websiteSetting: 'ຕັ້ງຄ່າເວັບໄຊ',
- blockRecords: 'ປະຫວັດການບລັອກ',
- world: 'ທົ່ວໂລກ',
- china: 'ຈີນ',
- intercept: 'ການສະກັດກັ້ນ',
- request: 'ຄຳຮ້ອງຂໍ',
- count4xx: 'ຈຳນວນ 4xx',
- count5xx: 'ຈຳນວນ 5xx',
- todayStatus: "ສະຖານະມື້ນີ້",
- reqMap: 'ແຜນທີ່ການໂຈມຕີ (30 ວັນຫຼ້າສຸດ)',
- resource: 'ແຫຼ່ງທີ່ມາ',
- count: 'ຈຳນວນ',
- hight: 'ສູງ',
- low: 'ຕ່ຳ',
- reqCount: 'ຄຳຮ້ອງຂໍ',
- interceptCount: 'ຈຳນວນການສະກັດກັ້ນ',
- requestTrends: 'ແນວໂນ້ມຄຳຮ້ອງຂໍ (7 ວັນຫຼ້າສຸດ)',
- interceptTrends: 'ແນວໂນ້ມການສະກັດກັ້ນ (7 ວັນຫຼ້າສຸດ)',
- whiteList: 'Whitelist (ບັນຊີຂາວ)',
- blackList: 'Blacklist (ບັນຊີດຳ)',
- ipBlackListHelper: 'IP ໃນບັນຊີດຳຈະຖືກບລັອກບໍ່ໃຫ້ເຂົ້າເຖິງເວັບໄຊ',
- ipWhiteListHelper: 'IP ໃນບັນຊີຂາວຈະຜ່ານທຸກການຈຳກັດ',
- uaBlackListHelper: 'ຄຳຮ້ອງຂໍທີ່ມີ User-Agent ໃນບັນຊີດຳຈະຖືກບລັອກ',
- uaWhiteListHelper: 'ຄຳຮ້ອງຂໍທີ່ມີ User-Agent ໃນບັນຊີຂາວຈະຜ່ານທຸກການຈຳກັດ',
- urlBlackListHelper: 'URL ໃນບັນຊີດຳຈະຖືກບລັອກ',
- urlWhiteListHelper: 'URL ໃນບັນຊີຂາວຈະຜ່ານທຸກການຈຳກັດ',
- ccHelper:
- 'ຫາກເວັບໄຊໄດ້ຮັບຄຳຮ້ອງຂໍເກີນ {1} ຄັ້ງຈາກ IP ດຽວກັນພາຍໃນ {0} ວິນາທີ, IP ຈະຖືກບລັອກເປັນເວລາ {2}',
- blockTime: 'ໄລຍະເວລາການບລັອກ',
- attackHelper: 'ຫາກມີການສະກັດກັ້ນສະສົມເກີນ {1} ຄັ້ງພາຍໃນ {0} ວິນາທີ, IP ຈະຖືກບລັອກເປັນເວລາ {2}',
- notFoundHelper:
- 'ຫາກມີຄຳຮ້ອງຂໍທີ່ຕອບກັບເປັນ 404 ສະສົມເກີນ {1} ຄັ້ງພາຍໃນ {0} ວິນາທີ, IP ຈະຖືກບລັອກເປັນເວລາ {2}',
- frequencyLimit: 'ຈຳກັດຄວາມຖີ່',
- regionLimit: 'ຈຳກັດພື້ນທີ່',
- defaultRule: 'ກົດເກນເລີ່ມຕົ້ນ',
- accessFrequencyLimit: 'ຈຳກັດຄວາມຖີ່ການເຂົ້າເຖິງ',
- attackLimit: 'ຈຳກັດຄວາມຖີ່ການໂຈມຕີ',
- notFoundLimit: 'ຈຳກັດຄວາມຖີ່ 404',
- urlLimit: 'ຈຳກັດຄວາມຖີ່ URL',
- urlLimitHelper: 'ຕັ້ງຄ່າຄວາມຖີ່ການເຂົ້າເຖິງສຳລັບແຕ່ລະ URL',
- sqliDefense: 'ປ້ອງກັນ SQL Injection',
- sqliHelper: 'ກວດຈັບ ແລະ ບລັອກການໂຈມຕີ SQL injection',
- xssHelper: 'ກວດຈັບ ແລະ ບລັອກການໂຈມຕີ XSS',
- xssDefense: 'ປ້ອງກັນ XSS',
- uaDefense: 'ກົດເກນ User-Agent ທີ່ເປັນອັນຕະລາຍ',
- uaHelper: 'ລວມມີກົດເກນເພື່ອລະບຸບັອດ (Bot) ທີ່ບໍ່ຫວັງດີ',
- argsDefense: 'ກົດເກນພະລາມິເຕີທີ່ເປັນອັນຕະລາຍ',
- argsHelper: 'ບລັອກຄຳຮ້ອງຂໍທີ່ມີພະລາມິເຕີທີ່ບໍ່ຫວັງດີ',
- cookieDefense: 'ກົດເກນ Cookie ທີ່ເປັນອັນຕະລາຍ',
- cookieHelper: 'ຫ້າມໃຊ້ Cookie ທີ່ເປັນອັນຕະລາຍໃນຄຳຮ້ອງຂໍ',
- headerDefense: 'ກົດເກນ Header ທີ່ເປັນອັນຕະລາຍ',
- headerHelper: 'ຫ້າມຄຳຮ້ອງຂໍທີ່ມີ Header ທີ່ບໍ່ຫວັງດີ',
- httpRule: 'ກົດເກນວິທີການ HTTP (Method)',
- httpHelper:
- 'ກຳນົດວິທີການເຂົ້າເຖິງທີ່ອະນຸຍາດ. ຫາກຕ້ອງການຈຳກັດ, ກະລຸນາປິດປຸ່ມນັ້ນ. ຕົວຢ່າງ: ຫາກອະນຸຍາດສະເພາະ GET, ຕ້ອງປິດປຸ່ມອື່ນໆທັງໝົດ',
- geoRule: 'ຈຳກັດການເຂົ້າເຖິງຕາມພື້ນທີ່',
- geoHelper:
- 'ຈຳກັດການເຂົ້າເຖິງເວັບໄຊຈາກບາງປະເທດ ຫຼື ພື້ນທີ່',
- ipLocation: 'ທີ່ຕັ້ງ IP',
- action: 'ການດຳເນີນການ',
- ruleType: 'ປະເພດການໂຈມຕີ',
- ipHelper: 'ປ້ອນທີ່ຢູ່ IP',
- attackLog: 'ບັນທຶກການໂຈມຕີ',
- rule: 'ກົດເກນ',
- ipArr: 'ຊ່ວງ IPV4',
- ipStart: 'IP ເລີ່ມຕົ້ນ',
- ipEnd: 'IP ສິ້ນສຸດ',
- ipv4: 'IPv4',
- ipv6: 'IPv6',
- urlDefense: 'ກົດເກນ URL',
- urlHelper: 'URL ທີ່ຕ້ອງຫ້າມ',
- dirFilter: 'ກອງໄດເຣັກທໍຣີ',
- sqlInject: 'SQL Injection',
- xss: 'XSS',
- phpExec: 'ການທຳງານຂອງສະຄຣິບ PHP',
- oneWordTrojan: 'One word Trojan',
- appFilter: 'ການກອງໄດເຣັກທໍຣີທີ່ເປັນອັນຕະລາຍ',
- webShell: 'Webshell',
- args: 'ພະລາມິເຕີທີ່ບໍ່ຫວັງດີ',
- protocolFilter: 'ການກອງໂປຣໂຕຄໍ',
- javaFilter: 'ການກອງໄຟລ໌ Java ທີ່ເປັນອັນຕະລາຍ',
- scannerFilter: 'ການກອງ Scanner',
- escapeFilter: 'ການກອງ Escape',
- customRule: 'ກົດເກນກຳນົດເອງ',
- httpMethod: 'ການກອງ HTTP Method',
- fileExt: 'ຈຳກັດການອັບໂຫຼດໄຟລ໌',
- fileExtHelper: 'ນາມສະກຸນໄຟລ໌ທີ່ຫ້າມອັບໂຫຼດ',
- deny: 'ປະຕິເສດ',
- allow: 'ອະນຸຍາດ',
- field: 'ເປົ້າໝາຍ',
- pattern: 'ເງື່ອນໄຂ',
- ruleContent: 'ເນື້ອໃນ',
- contain: 'ລວມມີ',
- equal: 'ເທົ່າກັບ',
- regex: 'Regular Expression',
- notEqual: 'ບໍ່ເທົ່າກັບ',
- customRuleHelper: 'ດຳເນີນການຕາມເງື່ອນໄຂທີ່ກຳນົດ',
- actionAllow: 'ອະນຸຍາດ',
- blockIP: 'ບລັອກ IP',
- code: 'ລະຫັດສະຖານະຕອບກັບ',
- noRes: 'ຕັດການເຊື່ອມຕໍ່ (444)',
- badReq: 'ພະລາມິເຕີບໍ່ຖືກຕ້ອງ (400)',
- forbidden: 'ປະຕິເສດການເຂົ້າເຖິງ (403)',
- serverErr: 'ເຊີເວີຂັດຂ້ອງ (500)',
- resHtml: 'ໜ້າຕອບກັບ',
- allowHelper: 'ການອະນຸຍາດຈະຂ້າມກົດເກນ WAF ອື່ນໆ, ກະລຸນາໃຊ້ຢ່າງລະມັດລະວັງ',
- captcha: 'ການຢືນຢັນຕົວຕົນ (Captcha)',
- fiveSeconds: 'ຢືນຢັນ 5 ວິນາທີ',
- location: 'ພື້ນທີ່',
- redisConfig: 'ການຕັ້ງຄ່າ Redis',
- redisHelper: 'ເປີດໃຊ້ Redis ເພື່ອເກັບລາຍຊື່ IP ທີ່ຖືກບລັອກຊົ່ວຄາວ',
- wafHelper: 'ເວັບໄຊທັງໝົດຈະບໍ່ໄດ້ຮັບການປ້ອງກັນຫາກປິດໃຊ້ງານ',
- websiteWafHelper: 'ເວັບໄຊນີ້ຈະບໍ່ໄດ້ຮັບການປ້ອງກັນຫາກປິດໃຊ້ງານ',
- attackIP: 'IP ທີ່ໂຈມຕີ',
- attackParam: 'ລາຍລະອຽດການໂຈມຕີ',
- execRule: 'ກົດເກນທີ່ກວດພົບ',
- acl: 'ACL',
- sql: 'SQL Injection',
- cc: 'ຈຳກັດຄວາມຖີ່ການເຂົ້າເຖິງ',
- isBlocking: 'ຖືກບລັອກ',
- isFree: 'ປົດບລັອກແລ້ວ',
- unLock: 'ປົດບລັອກ',
- unLockHelper: 'ປົດບລັອກ IP: {0}?',
- saveDefault: 'ບັນທຶກເປັນຄ່າເລີ່ມຕົ້ນ',
- saveToWebsite: 'ນຳໃຊ້ກັບເວັບໄຊ',
- saveToWebsiteHelper: 'ນຳໃຊ້ການຕັ້ງຄ່າປັດຈຸບັນກັບທຸກເວັບໄຊ?',
- websiteHelper:
- 'ນີ້ຄືຄ່າເລີ່ມຕົ້ນສຳລັບການສ້າງເວັບໄຊໃໝ່. ການແກ້ໄຂຕ້ອງນຳໃຊ້ກັບເວັບໄຊຈຶ່ງຈະມີຜົນ',
- websiteHelper2:
- 'ນີ້ຄືຄ່າເລີ່ມຕົ້ນສຳລັບການສ້າງເວັບໄຊໃໝ່. ກະລຸນາແກ້ໄຂການຕັ້ງຄ່າສະເພາະຢູ່ທີ່ຕົວເວັບໄຊ',
- ipGroup: 'ກຸ່ມ IP',
- ipGroupHelper:
- 'ໜຶ່ງ IP ຫຼື ຊ່ວງ IP ຕໍ່ແຖວ, ຮອງຮັບ IPv4 ແລະ IPv6, ຕົວຢ່າງ: 192.168.1.1 ຫຼື 192.168.1.0/24',
- ipBlack: 'ບັນຊີດຳ IP',
- openRestyAlert: 'ເວີຊັນ OpenResty ຕ້ອງສູງກວ່າ {0}',
- initAlert:
- 'ຕ້ອງມີການເລີ່ມຕົ້ນລະບົບ (Initialization) ໃນການໃຊ້ງານຄັ້ງທຳອິດ, ໄຟລ໌ຕັ້ງຄ່າເວັບໄຊຈະຖືກແກ້ໄຂ ແລະ ຄ່າ WAF ເດີມຈະຫາຍໄປ. ກະລຸນາສຳຮອງຂໍ້ມູນ OpenResty ກ່ອນ',
- initHelper:
- 'ການເລີ່ມຕົ້ນລະບົບຈະລຶບການຕັ້ງຄ່າ WAF ທີ່ມີຢູ່. ເຈົ້າແນ່ໃຈບໍວ່າຕ້ອງການເລີ່ມຕົ້ນ?',
- mainSwitch: 'ສະວິດຫຼັກ',
- websiteSwitch: 'ສະວິດ',
- websiteAlert: 'ກະລຸນາສ້າງເວັບໄຊກ່ອນ',
- defaultUrlBlack: 'ກົດເກນ URL',
- htmlRes: 'ໜ້າສະກັດກັ້ນ',
- urlSearchHelper: 'ປ້ອນ URL ເພື່ອຄົ້ນຫາ',
- toCreate: 'ສ້າງ',
- closeWaf: 'ປິດ WAF',
- closeWafHelper: 'ການປິດ WAF ຈະເຮັດໃຫ້ເວັບໄຊບໍ່ມີການປ້ອງກັນ, ຕ້ອງການດຳເນີນການຕໍ່ບໍ?',
- addblack: 'ເພີ່ມເຂົ້າບັນຊີດຳ',
- addwhite: 'ເພີ່ມເຂົ້າບັນຊີຂາວ',
- addblackHelper: 'ເພີ່ມ IP:{0} ເຂົ້າໃນບັນຊີດຳເລີ່ມຕົ້ນ?',
- addwhiteHelper: 'ເພີ່ມ IP:{0} ເຂົ້າໃນບັນຊີຂາວເລີ່ມຕົ້ນ?',
- defaultUaBlack: 'ກົດເກນ User-Agent',
- defaultIpBlack: 'ກຸ່ມ IP ທີ່ບໍ່ຫວັງດີ',
- cookie: 'ກົດເກນ Cookie',
- urlBlack: 'ບັນຊີດຳ URL',
- uaBlack: 'ບັນຊີດຳ User-Agent',
- attackCount: 'ຈຳກັດຄວາມຖີ່ການໂຈມຕີ',
- fileExtCheck: 'ຈຳກັດການອັບໂຫຼດໄຟລ໌',
- geoRestrict: 'ຈຳກັດການເຂົ້າເຖິງຕາມພື້ນທີ່',
- attacklog: 'ປະຫວັດການສະກັດກັ້ນ',
- unknownWebsite: 'ການເຂົ້າເຖິງໂດເມນທີ່ບໍ່ໄດ້ຮັບອະນຸຍາດ',
- geoRuleEmpty: 'ພື້ນທີ່ບໍ່ສາມາດຫວ່າງໄດ້',
- unknown: 'ບໍ່ມີເວັບໄຊນີ້',
- geo: 'ຈຳກັດພື້ນທີ່',
- revertHtml: 'ຄືນຄ່າ {0} ເປັນໜ້າເລີ່ມຕົ້ນ?',
- five_seconds: 'ຢືນຢັນ 5 ວິນາທີ',
- header: 'ກົດເກນ Header',
- methodWhite: 'ກົດເກນ HTTP',
- expiryDate: 'ວັນໝົດອາຍຸ',
- expiryDateHelper:
- 'ຫຼັງຈາກຢືນຢັນຜ່ານແລ້ວ, ຈະບໍ່ມີການຢືນຢັນອີກພາຍໃນກຳນົດເວລາ',
- defaultIpBlackHelper: 'ລວມລາຍຊື່ IP ທີ່ບໍ່ຫວັງດີຈາກອິນເຕີເນັດເພື່ອປ້ອງກັນການເຂົ້າເຖິງ',
- notFoundCount: 'ຈຳກັດຄວາມຖີ່ 404',
- matchValue: 'ຄ່າທີ່ກົງກັນ',
- headerName: 'ຮອງຮັບຕົວອັກສອນພາສາອັງກິດ, ຕົວເລກ, - ຄວາມຍາວ 3-30',
- cdnHelper: 'ເວັບໄຊທີ່ໃຊ້ CDN ສາມາດເປີດບ່ອນນີ້ເພື່ອດຶງ IP ທີ່ແທ້ຈິງ',
- clearLogWarn: 'ບໍ່ສາມາດກູ້ຄືນບັນທຶກທີ່ລຶບແລ້ວໄດ້, ຕ້ອງການຕໍ່ບໍ?',
- commonRuleHelper: 'ກົດເກນເປັນແບບຄົ້ນຫາບາງສ່ວນ (Fuzzy Matching)',
- blockIPHelper:
- 'IP ທີ່ຖືກບລັອກຈະຖືກເກັບໄວ້ໃນ OpenResty ຊົ່ວຄາວ ແລະ ຈະປົດບລັອກເມື່ອ Restart OpenResty. ສາມາດບລັອກຖາວອນໄດ້ຜ່ານຟັງຊັນບລັອກ',
- addWhiteUrlHelper: 'ເພີ່ມ URL {0} ເຂົ້າໃນບັນຊີຂາວ?',
- dashHelper: 'ເວີຊັນ Community ສາມາດໃຊ້ຟັງຊັນໃນການຕັ້ງຄ່າທົ່ວໄປ ແລະ ເວັບໄຊໄດ້',
- wafStatusHelper: 'ໄຟວໍ (Firewall) ຍັງບໍ່ໄດ້ເປີດໃຊ້. ການປ້ອງກັນເວັບໄຊຖືກຢຸດຊົ່ວຄາວ.',
- enableProtection: 'ເປີດການປ້ອງກັນ',
- ccMode: 'ໂໝດ',
- global: 'ໂໝດທົ່ວໄປ',
- uriMode: 'ໂໝດ URL',
- globalHelper:
- 'ໂໝດທົ່ວໄປ: ເຮັດວຽກເມື່ອຈຳນວນຄຳຮ້ອງຂໍທັງໝົດໄປຫາ URL ໃດໜຶ່ງເກີນເກນທີ່ກຳນົດ',
- uriModeHelper:
- 'ໂໝດ URL: ເຮັດວຽກເມື່ອຈຳນວນຄຳຮ້ອງຂໍໄປຫາ URL ດຽວເກີນເກນທີ່ກຳນົດ',
- ip: 'ບັນຊີດຳ IP',
- globalSettingHelper:
- 'ການຕັ້ງຄ່າທີ່ມີແທັກ [ເວັບໄຊ] ຕ້ອງເປີດໃນ [ຕັ້ງຄ່າເວັບໄຊ], ຄ່າທົ່ວໄປເປັນພຽງຄ່າເລີ່ມຕົ້ນສຳລັບເວັບໄຊໃໝ່',
- globalSettingHelper2:
- 'ຕ້ອງເປີດໃຊ້ງານທັງໃນ [ຕັ້ງຄ່າທົ່ວໄປ] ແລະ [ຕັ້ງຄ່າເວັບໄຊ] ພ້ອມກັນ',
- urlCCHelper: 'ຄຳຮ້ອງຂໍເກີນ {1} ຄັ້ງຕໍ່ URL ນີ້ພາຍໃນ {0} ວິນາທີ, ຈະບລັອກ IP ນີ້ {2}',
- urlCCHelper2: 'URL ບໍ່ສາມາດມີພະລາມິເຕີໄດ້',
- notContain: 'ບໍ່ລວມມີ',
- urlcc: 'ຈຳກັດຄວາມຖີ່ URL',
- method: 'ປະເພດຄຳຮ້ອງຂໍ',
- addIpsToBlock: 'ບລັອກ IP ແບບກຸ່ມ',
- addUrlsToWhite: 'ເພີ່ມ URL ເຂົ້າບັນຊີຂາວແບບກຸ່ມ',
- noBlackIp: 'IP ຖືກບລັອກແລ້ວ, ບໍ່ຈຳເປັນຕ້ອງບລັອກຊ້ຳ',
- noWhiteUrl: 'URL ຢູ່ໃນບັນຊີຂາວແລ້ວ, ບໍ່ຈຳເປັນຕ້ອງເພີ່ມຊ້ຳ',
- spiderIpHelper:
- 'ລວມມີ Baidu, Bing, Google, 360, Shenma, Sogou, ByteDance, DuckDuckGo, Yandex. ຫາກປິດຈະບລັອກ Spider ທັງໝົດ.',
- spiderIp: 'ກຸ່ມ IP ຂອງ Spider',
- geoIp: 'ຖານຂໍ້ມູນທີ່ຢູ່ IP',
- geoIpHelper: 'ໃຊ້ເພື່ອຢືນຢັນທີ່ຕັ້ງທາງພູມສາດຂອງ IP',
- stat: 'ລາຍງານການໂຈມຕີ',
- statTitle: 'ລາຍງານ',
- attackIp: 'IP',
- attackCountNum: 'ຈຳນວນຄັ້ງ',
- percent: 'ເປີເຊັນ',
- addblackUrlHelper: 'ຕ້ອງການເພີ່ມ URL: {0} ເຂົ້າໃນບັນຊີດຳເລີ່ມຕົ້ນບໍ?',
- rce: 'Remote Code Execution',
- software: 'ຊອບແວ',
- cveHelper: 'ລວມມີຊ່ອງໂຫວ່ຂອງຊອບແວ ແລະ Framework ທີ່ພົບເລື້ອຍ',
- vulnCheck: 'ກົດເກນເພີ່ມເຕີມ',
- ssrf: 'ຊ່ອງໂຫວ່ SSRF',
- afr: 'ການອ່ານໄຟລ໌ຕາມໃຈ (Arbitrary File Read)',
- ua: 'ການເຂົ້າເຖິງໂດຍບໍ່ໄດ້ຮັບອະນຸຍາດ',
- id: 'ຂໍ້ມູນຮົ່ວໄຫຼ',
- aa: 'ການຂ້າມຜ່ານການຢືນຢັນຕົວຕົນ',
- dr: 'Directory Traversal',
- xxe: 'ຊ່ອງໂຫວ່ XXE',
- suid: 'ຊ່ອງໂຫວ່ Serialization',
- dos: 'ຊ່ອງໂຫວ່ Denial of Service',
- afd: 'ການດາວໂຫຼດໄຟລ໌ຕາມໃຈ',
- sqlInjection: 'SQL Injection',
- afw: 'ການຂຽນໄຟລ໌ຕາມໃຈ',
- il: 'ຂໍ້ມູນຮົ່ວໄຫຼ',
- clearAllLog: 'ລຶບບັນທຶກທັງໝົດ',
- exportLog: 'ສົ່ງອອກບັນທຶກ',
- appRule: 'ກົດເກນແອັບພລິເຄຊັນ',
- appRuleHelper:
- 'ກົດເກນແອັບພລິເຄຊັນທົ່ວໄປ, ການເປີດໃຊ້ຈະຊ່ວຍລຸດຂໍ້ຜິດພາດ (False Positives), ໜຶ່ງເວັບໄຊໃຊ້ໄດ້ພຽງກົດເກນດຽວ',
- logExternal: 'ປະເພດທີ່ບໍ່ບັນທຶກ',
- ipWhite: 'ບັນຊີຂາວ IP',
- urlWhite: 'ບັນຊີຂາວ URL',
- uaWhite: 'ບັນຊີຂາວ User-Agent',
- logExternalHelper:
- 'ປະເພດທີ່ເລືອກຈະບໍ່ຖືກບັນທຶກໃນ Log. ບັນຊີດຳ/ຂາວ, ການຈຳກັດພື້ນທີ່ ແລະ ກົດເກນກຳນົດເອງມັກຈະສ້າງ Log ຈຳນວນຫຼາຍ ແນະນຳໃຫ້ຍົກເວັ້ນ',
- ssti: 'ການໂຈມຕີ SSTI',
- crlf: 'CRLF Injection',
- strict: 'ໂໝດເຂັ້ມງວດ',
- strictHelper: 'ໃຊ້ກົດເກນທີ່ເຂັ້ມງວດກວ່າເພື່ອທົດສອບຄຳຮ້ອງຂໍ',
- saveLog: 'ບັນທຶກ Log',
- remoteURLHelper: 'Remote URL ຕ້ອງມີໜຶ່ງ IP ຕໍ່ແຖວ ແລະ ບໍ່ມີຕົວອັກສອນອື່ນ',
- notFound: 'ບໍ່ພົບ (404)',
- serviceUnavailable: 'ບໍລິການບໍ່ພ້ອມໃຊ້ງານ (503)',
- gatewayTimeout: 'Gateway Timeout (504)',
- belongToIpGroup: 'ຢູ່ໃນກຸ່ມ IP',
- notBelongToIpGroup: 'ບໍ່ຢູ່ໃນກຸ່ມ IP',
- unknownWebsiteKey: 'ບໍ່ຮູ້ຈັກໂດເມນ',
- special: 'ພິເສດ',
- fileToLarge: 'ໄຟລ໌ໃຫຍ່ເກີນ 1MB ບໍ່ສາມາດອັບໂຫຼດໄດ້',
- uploadOverLimit: 'ອັບໂຫຼດໄຟລ໌ເກີນຈຳນວນທີ່ກຳນົດ, ສູງສຸດ 1 ໄຟລ໌',
- importRuleHelper: 'ໜຶ່ງກົດເກນຕໍ່ແຖວ',
- },
- monitor: {
- '360': '360 Search',
- name: 'ຕິດຕາມເວັບໄຊ',
- pv: 'Page Views',
- uv: 'Unique Visitors',
- flow: 'ການຮັບສົ່ງຂໍ້ມູນ',
- ip: 'IP',
- spider: 'Spider',
- visitors: 'ແນວໂນ້ມຜູ້ເຂົ້າຊົມ',
- today: 'ມື້ນີ້',
- last7days: '7 ວັນຫຼ້າສຸດ',
- last30days: '30 ວັນຫຼ້າສຸດ',
- uvMap: 'ແຜນທີ່ຜູ້ເຂົ້າຊົມ (ວັນທີ 30)',
- qps: 'ຄຳຮ້ອງຂໍທັນທີ (ຕໍ່ນາທີ)',
- flowSec: 'ການຮັບສົ່ງຂໍ້ມູນທັນທີ (ຕໍ່ນາທີ)',
- excludeCode: 'ຍົກເວັ້ນລະຫັດສະຖານະ',
- excludeUrl: 'ຍົກເວັ້ນ URL',
- excludeExt: 'ຍົກເວັ້ນນາມສະກຸນໄຟລ໌',
- cdnHelper: 'ດຶງ IP ທີ່ແທ້ຈິງຈາກ Header ທີ່ CDN ສົ່ງມາ',
- reqRank: 'ອັນດັບການເຂົ້າຊົມ',
- refererDomain: 'ໂດເມນທີ່ສົ່ງມາ',
- os: 'ລະບົບປະຕິບັດການ',
- browser: 'ບຣາວເຊີ/ໄຄລເອັນ',
- device: 'ອຸປະກອນ',
- showMore: 'ເພີ່ມເຕີມ',
- unknown: 'ອື່ນໆ',
- pc: 'ຄອມພິວເຕີ',
- mobile: 'ອຸປະກອນມືຖື',
- wechat: 'WeChat',
- machine: 'ເຄື່ອງຈັກ/ບັອດ',
- tencent: 'Tencent Browser',
- ucweb: 'UC Browser',
- '2345explorer': '2345 browser',
- huaweibrowser: 'Huawei Browser',
- log: 'ບັນທຶກຄຳຮ້ອງຂໍ',
- statusCode: 'ລະຫັດສະຖານະ',
- requestTime: 'ເວລາຕອບສະໜອງ',
- flowRes: 'ຂໍ້ມູນທີ່ຕອບກັບ',
- method: 'ວິທີການ (Method)',
- statusCodeHelper: 'ປ້ອນລະຫັດສະຖານະດ້ານເທິງ',
- statusCodeError: 'ປະເພດລະຫັດສະຖານະບໍ່ຖືກຕ້ອງ',
- methodHelper: 'ປ້ອນວິທີການດ້ານເທິງ',
- all: 'ທັງໝົດ',
- baidu: 'Baidu',
- google: 'Google',
- bing: 'Bing',
- bytes: 'Today headlines',
- sogou: 'Sogou',
- failed: 'ຜິດພາດ',
- ipCount: 'ຈຳນວນ IP',
- spiderCount: 'ຄຳຮ້ອງຂໍຈາກ Spider',
- averageReqTime: 'ເວລາຕອບສະໜອງສະເລ່ຍ',
- totalFlow: 'ຂໍ້ມູນທັງໝົດ',
- logSize: 'ຂະໜາດໄຟລ໌ Log',
- realIPType: 'ວິທີການດຶງ IP ທີ່ແທ້ຈິງ',
- fromHeader: 'ດຶງຈາກ HTTP Header',
- fromHeaders: 'ດຶງຈາກລາຍຊື່ Header',
- header: 'HTTP Header',
- cdnConfig: 'ການຕັ້ງຄ່າ CDN',
- xff1: 'Proxy ຊັ້ນທີ 1 ຈາກ X-Forwarded-For',
- xff2: 'Proxy ຊັ້ນທີ 2 ຈາກ X-Forwarded-For',
- xff3: 'Proxy ຊັ້ນທີ 3 ຈາກ X-Forwarded-For',
- xffHelper:
- 'ຕົວຢ່າງ: X-Forwarded-For: ,,, Proxy ຊັ້ນເທິງຈະເອົາ IP ສຸດທ້າຍ ',
- headersHelper:
- 'ດຶງ IP ທີ່ແທ້ຈິງຈາກ Header ທີ່ CDN ໃຊ້ເລື້ອຍໆ, ໂດຍເລືອກຄ່າທຳອິດທີ່ມີ',
- monitorCDNHelper:
- 'ການແກ້ໄຂ CDN ໃນການຕິດຕາມເວັບໄຊຈະອັບເດດການຕັ້ງຄ່າ WAF CDN ນຳ',
- wafCDNHelper: 'ການແກ້ໄຂ CDN ໃນ WAF ຈະອັບເດດການຕັ້ງຄ່າຕິດຕາມເວັບໄຊນຳ',
- statusErr: 'ຮູບແບບລະຫັດສະຖານະບໍ່ຖືກຕ້ອງ',
- shenma: 'Shenma Search',
- duckduckgo: 'DuckDuckGo',
- excludeUri: 'ຍົກເວັ້ນ URI',
- top100Helper: 'ສະແດງຂໍ້ມູນ 100 ອັນດັບທຳອິດ',
- logSaveDay: 'ໄລຍະເວລາເກັບ Log (ວັນ)',
- cros: 'Chrome OS',
- theworld: 'TheWorld Browser',
- edge: 'Microsoft Edge',
- maxthon: 'Maxthon Browser',
- monitorStatusHelper: 'ການຕິດຕາມເວັບໄຊຖືກປິດຢູ່. ເປີດໃຊ້ງານດຽວນີ້',
- excludeIp: 'ຍົກເວັ້ນທີ່ຢູ່ IP',
- excludeUa: 'ຍົກເວັ້ນ User-Agent',
- remotePort: 'ພອດປາຍທາງ',
- unknown_browser: 'ບໍ່ຮູ້ຈັກ',
- unknown_os: 'ບໍ່ຮູ້ຈັກ',
- unknown_device: 'ບໍ່ຮູ້ຈັກ',
- logSaveSize: 'ຂະໜາດ Log ສູງສຸດ',
- logSaveSizeHelper: 'ນີ້ຄືຂະໜາດການບັນທຶກ Log ສຳລັບໜຶ່ງເວັບໄຊ',
- '360se': '360 Security Browser',
- websites: 'ລາຍຊື່ເວັບໄຊ',
- trend: 'ສະຖິຕິແນວໂນ້ມ',
- reqCount: 'ຈຳນວນຄຳຮ້ອງຂໍ',
- uriHelper: 'ສາມາດໃຊ້ /test/* ຫຼື /*/index.php ເພື່ອຍົກເວັ້ນ Uri',
- },
- tamper: {
- tamper: 'ປ້ອງກັນການແຊກແຊງເວັບໄຊ',
- ignoreTemplate: 'ແທັມເພລດການຍົກເວັ້ນ',
- protectTemplate: 'ແທັມເພລດການປ້ອງກັນ',
- ignoreTemplateHelper:
- 'ປ້ອນກົດເກນການຍົກເວັ້ນ (ແຍກດ້ວຍ Enter ຫຼື ຍະຫວ່າງ). (ໄດເຣັກທໍຣີສະເພາະ ./log ຫຼື ຊື່ tmp. ສຳລັບໄຟລ໌ ໃຫ້ປ້ອນທີ່ຢູ່ໄຟລ໌ ເຊັ່ນ ./data/test.html)',
- protectTemplateHelper:
- 'ປ້ອນກົດເກນການປ້ອງກັນ (ແຍກດ້ວຍ Enter ຫຼື ຍະຫວ່າງ). (ໄຟລ໌ສະເພາະ ./index.html, ນາມສະກຸນ .html, ປະເພດໄຟລ໌ js. ສຳລັບໄດເຣັກທໍຣີ ໃຫ້ປ້ອນທີ່ຢູ່ ເຊັ່ນ ./log)',
- templateContent: 'ເນື້ອໃນແທັມເພລດ',
- template: 'ແທັມເພລດ',
- saveTemplate: 'ບັນທຶກເປັນແທັມເພລດ',
- tamperHelper1:
- 'ສຳລັບເວັບໄຊທີ່ຕິດຕັ້ງແບບຄລິກດຽວ, ແນະນຳໃຫ້ປ້ອງກັນໄດເຣັກທໍຣີຂອງແອັບ. ຫາກເວັບໄຊໃຊ້ງານບໍ່ໄດ້ ຫຼື ສຳຮອງ/ກູ້ຄືນລົ້ມເຫຼວ, ໃຫ້ປິດການປ້ອງກັນກ່ອນ.',
- tamperHelper2:
- 'ນີ້ຈະຈຳກັດການອ່ານ, ຂຽນ, ລຶບ, ປ່ຽນສິດ ແລະ ເຈົ້າຂອງໄຟລ໌ໃນໄດເຣັກທໍຣີທີ່ໄດ້ຮັບການປ້ອງກັນ.',
- tamperPath: 'ໄດເຣັກທໍຣີທີ່ປ້ອງກັນ',
- tamperPathEdit: 'ແກ້ໄຂທີ່ຢູ່',
- log: 'Log ການສະກັດກັ້ນ',
- totalProtect: 'ການປ້ອງກັນທັງໝົດ',
- todayProtect: 'ການປ້ອງກັນມື້ນີ້',
- templateRule: 'ຄວາມຍາວ 1-512, ແລະ ຊື່ຫ້າມມີສັນຍະລັກ {0}.',
- ignore: 'ຍົກເວັ້ນ',
- ignoreHelper:
- 'ເລືອກ ຫຼື ປ້ອນກົດເກນການຍົກເວັ້ນ (ແຍກດ້ວຍ Enter ຫຼື ຍະຫວ່າງ).',
- protect: 'ປ້ອງກັນ',
- protectHelper:
- 'ເລືອກ ຫຼື ປ້ອນກົດເກນການປ້ອງກັນ (ແຍກດ້ວຍ Enter ຫຼື ຍະຫວ່າງ).',
- tamperHelper00: 'ການຍົກເວັ້ນ ແລະ ປ້ອງກັນ ຮອງຮັບສະເພາະທີ່ຢູ່ແບບສຳພັດ (Relative Paths).',
- tamperHelper01:
- 'ຫຼັງຈາກເປີດໃຊ້, ລະບົບຈະຈຳກັດການສ້າງ, ແກ້ໄຂ ແລະ ລຶບໄຟລ໌ໃນໄດເຣັກທໍຣີທີ່ປ້ອງກັນ.',
- tamperHelper02: 'ລຳດັບຄວາມສຳຄັນ: ປ້ອງກັນສະເພາະທີ່ຢູ່ > ຍົກເວັ້ນສະເພາະທີ່ຢູ່ > ປ້ອງກັນ > ຍົກເວັ້ນ',
- tamperHelper03:
- 'ການຕິດຕາມຈະເຮັດວຽກສະເພາະໄດເຣັກທໍຣີທີ່ບໍ່ໄດ້ຍົກເວັ້ນ, ໂດຍກວດສອບການສ້າງໄຟລ໌ທີ່ບໍ່ໄດ້ປ້ອງກັນ.',
- disableHelper: 'ກຳລັງຈະປິດການປ້ອງກັນການແຊກແຊງສຳລັບເວັບໄຊຕໍ່ໄປນີ້, ຕ້ອງການຕໍ່ບໍ?',
- appendOnly: 'ເພີ່ມໄດ້ຢ່າງດຽວ',
- appendOnlyHelper:
- 'ຈຳກັດການລຶບໄຟລ໌ໃນໄດເຣັກທໍຣີນີ້, ອະນຸຍາດສະເພາະການເພີ່ມໄດເຣັກທໍຣີທີ່ຍົກເວັ້ນ ຫຼື ໄຟລ໌ທີ່ບໍ່ໄດ້ປ້ອງກັນ',
- immutable: 'ປ່ຽນແປງບໍ່ໄດ້',
- immutableHelper: 'ຈຳກັດການແກ້ໄຂ, ລຶບ, ປ່ຽນສິດ ແລະ ເຈົ້າຂອງສຳລັບໄຟລ໌ນີ້',
- onWatch: 'ຕິດຕາມ',
- onWatchHelper:
- 'ຕິດຕາມ ແລະ ສະກັດກັ້ນການສ້າງໄຟລ໌ທີ່ປ້ອງກັນ ຫຼື ໄດເຣັກທໍຣີທີ່ບໍ່ໄດ້ຍົກເວັ້ນ',
- forceStop: 'ບັງຄັບປິດ',
- forceStopHelper: 'ກຳລັງຈະບັງຄັບປິດຟັງຊັນປ້ອງກັນການແຊກແຊງສຳລັບເວັບໄຊນີ້. ຕ້ອງການຕໍ່ບໍ?',
- },
- setting: {
- setting: 'ຕັ້ງຄ່າພາແນລ',
- title: 'ຄຳອະທິບາຍພາແນລ',
- titleHelper:
- 'ຈະສະແດງໃນໜ້າລັອກອິນ (ເຊັ່ນ: ພາແນລຈັດການເຊີເວີ Linux, ແນະນຳ 8-15 ຕົວອັກສອນ)',
- logo: 'ໂລໂກ້ (ບໍ່ມີຂໍ້ຄວາມ)',
- logoHelper:
- 'ຈະສະແດງຢູ່ມຸມຊ້າຍເທິງເມື່ອເມນູຖືກຫຍໍ້ (ຂະໜາດແນະນຳ: 82px*82px)',
- logoWithText: 'ໂລໂກ້ (ມີຂໍ້ຄວາມ)',
- logoWithTextHelper:
- 'ຈະສະແດງຢູ່ມຸມຊ້າຍເທິງເມື່ອເມນູຖືກຂະຫຍາຍ (ຂະໜາດແນະນຳ: 185px*55px)',
- favicon: 'ໄອຄອນເວັບໄຊ',
- faviconHelper: 'ໄອຄອນເວັບໄຊ (ຂະໜາດແນະນຳ: 16px*16px)',
- setDefault: 'ຄືນຄ່າເລີ່ມຕົ້ນ',
- setHelper: 'ການຕັ້ງຄ່າປັດຈຸບັນຈະຖືກບັນທຶກ. ຕ້ອງການຕໍ່ບໍ?',
- setDefaultHelper: 'ການຕັ້ງຄ່າພາແນລທັງໝົດຈະຖືກຄືນຄ່າເປັນເລີ່ມຕົ້ນ. ຕ້ອງການຕໍ່ບໍ?',
- logoGroup: 'ໂລໂກ້',
- imageGroup: 'ຮູບພາບ',
- loginImage: 'ຮູບພາບ',
- loginImageHelper: 'ສະແດງໃນໜ້າລັອກອິນ (ຂະໜາດແນະນຳ: 500*416px)',
- loginBgType: 'ປະເພດພື້ນຫຼັງ',
- loginBgImage: 'ຮູບພື້ນຫຼັງ',
- loginBgImageHelper: 'ສະແດງເປັນຮູບພື້ນຫຼັງໃນໜ້າລັອກອິນ (ຂະໜາດແນະນຳ: 1920*1080px)',
- loginBgColor: 'ສີພື້ນຫຼັງ',
- loginBgColorHelper: 'ສະແດງເປັນສີພື້ນຫຼັງໃນໜ້າລັອກອິນ',
- image: 'ຮູບພາບ',
- bgColor: 'ສີພື້ນຫຼັງ',
- loginGroup: 'ໜ້າລັອກອິນ',
- loginBtnLinkColor: 'ສີປຸ່ມ/ລິ້ງ',
- loginBtnLinkColorHelper: 'ຈະສະແດງເປັນສີປຸ່ມ ຫຼື ລິ້ງໃນໜ້າລັອກອິນ',
- },
- helper: {
- wafTitle1: 'ແຜນທີ່ການສະກັດກັ້ນ',
- wafContent1: 'ສະແດງການກະຈາຍຕົວທາງພູມສາດຂອງການສະກັດກັ້ນໃນ 30 ວັນຫຼ້າສຸດ',
- wafTitle2: 'ຈຳກັດການເຂົ້າເຖິງຕາມພື້ນທີ່',
- wafContent2: 'ຈຳກັດແຫຼ່ງທີ່ມາຂອງເວັບໄຊຕາມທີ່ຕັ້ງທາງພູມສາດ',
- wafTitle3: 'ໜ້າສະກັດກັ້ນກຳນົດເອງ',
- wafContent3: 'ສ້າງໜ້າເວັບກຳນົດເອງເພື່ອສະແດງຫຼັງຈາກຄຳຮ້ອງຂໍຖືກສະກັດກັ້ນ',
- wafTitle4: 'ກົດເກນກຳນົດເອງ (ACL)',
- wafContent4: 'ສະກັດກັ້ນຄຳຮ້ອງຂໍຕາມກົດເກນທີ່ກຳນົດເອງ',
- tamperTitle1: 'ຕິດຕາມຄວາມສົມບູນຂອງໄຟລ໌',
- tamperContent1:
- 'ຕິດຕາມຄວາມສົມບູນຂອງໄຟລ໌ເວັບໄຊ, ລວມມີໄຟລ໌ຫຼັກ, ສະຄຣິບ ແລະ ໄຟລ໌ຕັ້ງຄ່າ.',
- tamperTitle2: 'ສະແກນ ແລະ ກວດຈັບແບບທັນທີ',
- tamperContent2: 'ກວດຈັບໄຟລ໌ທີ່ຜິດປົກກະຕິ ຫຼື ຖືກແຊກແຊງໂດຍການສະແກນລະບົບໄຟລ໌ແບບທັນທີ.',
- tamperTitle3: 'ຕັ້ງຄ່າສິດຄວາມປອດໄພ',
- tamperContent3:
- 'ຈຳກັດການເຂົ້າເຖິງໄຟລ໌ຜ່ານການຕັ້ງສິດທີ່ເໝາະສົມ, ຊ່ວຍລຸດຊ່ອງທາງການໂຈມຕີ.',
- tamperTitle4: 'ການບັນທຶກ ແລະ ວິເຄາະ',
- tamperContent4:
- 'ບັນທຶກການເຂົ້າເຖິງ ແລະ ດຳເນີນການກັບໄຟລ໌ເພື່ອການກວດສອບ ແລະ ວິເຄາະໄພຄຸກຄາມ.',
- settingTitle1: 'ຂໍ້ຄວາມຕ້ອນຮັບກຳນົດເອງ',
- settingContent1: 'ຕັ້ງຂໍ້ຄວາມຕ້ອນຮັບໃນໜ້າລັອກອິນຂອງ 1Panel.',
- settingTitle2: 'ໂລໂກ້ກຳນົດເອງ',
- settingContent2: 'ອະນຸຍາດໃຫ້ອັບໂຫຼດໂລໂກ້ທີ່ມີຊື່ແບຣນ ຫຼື ຂໍ້ຄວາມອື່ນໆ.',
- settingTitle3: 'ໄອຄອນເວັບໄຊກຳນົດເອງ',
- settingContent3:
- 'ອະນຸຍາດໃຫ້ອັບໂຫຼດໄອຄອນເພື່ອແທນທີ່ໄອຄອນບຣາວເຊີເລີ່ມຕົ້ນ.',
- monitorTitle1: 'ແນວໂນ້ມຜູ້ເຂົ້າຊົມ',
- monitorContent1: 'ສະຖິຕິ ແລະ ສະແດງແນວໂນ້ມຜູ້ເຂົ້າຊົມເວັບໄຊ',
- monitorTitle2: 'ແຜນທີ່ຜູ້ເຂົ້າຊົມ',
- monitorContent2: 'ສະຖິຕິ ແລະ ສະແດງການກະຈາຍຕົວທາງພູມສາດຂອງຜູ້ເຂົ້າຊົມ',
- monitorTitle3: 'ສະຖິຕິການເຂົ້າເຖິງ',
- monitorContent3:
- 'ສະຖິຕິຂໍ້ມູນຄຳຮ້ອງຂໍ, ລວມມີ Spider, ອຸປະກອນ, ສະຖານະຄຳຮ້ອງຂໍ ແລະ ອື່ນໆ.',
- monitorTitle4: 'ຕິດຕາມແບບທັນທີ',
- monitorContent4:
- 'ຕິດຕາມຂໍ້ມູນຄຳຮ້ອງຂໍແບບທັນທີ, ລວມມີຈຳນວນຄຳຮ້ອງຂໍ, ປະລິມານຂໍ້ມູນ ແລະ ອື່ນໆ.',
- alertTitle1: 'ແຈ້ງເຕືອນຜ່ານ SMS',
- alertContent1:
- 'ແຈ້ງເຕືອນເມື່ອຊັບພະຍາກອນເຊີເວີຜິດປົກກະຕິ, ເວັບໄຊ ຫຼື ໃບຢັ້ງຢືນໝົດອາຍຸ ແລະ ອື່ນໆ.',
- alertTitle2: 'ບັນທຶກການແຈ້ງເຕືອນ',
- alertContent2:
- 'ເບິ່ງປະຫວັດການແຈ້ງເຕືອນເພື່ອຕິດຕາມ ແລະ ວິເຄາະເຫດການທີ່ຜ່ານມາ.',
- alertTitle3: 'ຕັ້ງຄ່າການແຈ້ງເຕືອນ',
- alertContent3:
- 'ກຳນົດເບີໂທລະສັບ, ຄວາມຖີ່ ແລະ ເວລາການສົ່ງແຈ້ງເຕືອນໃຫ້ເໝາະສົມ.',
- nodeDashTitle1: 'ຈັດການແອັບພລິເຄຊັນ',
- nodeDashContent1:
- 'ຈັດການແອັບຫຼາຍໂນດແບບລວມສູນ, ຕິດຕາມສະຖານະ, ເລີ່ມ/ຢຸດ ແລະ ສຳຮອງຂໍ້ມູນ',
- nodeDashTitle2: 'ຈັດການເວັບໄຊ',
- nodeDashContent2:
- 'ຈັດການເວັບໄຊຫຼາຍໂນດ, ຕິດຕາມສະຖານະແບບທັນທີ ແລະ ສຳຮອງຂໍ້ມູນແບບກຸ່ມ',
- nodeDashTitle3: 'ຈັດການຖານຂໍ້ມູນ',
- nodeDashContent3:
- 'ຈັດການຖານຂໍ້ມູນຫຼາຍໂນດ, ເບິ່ງສະຖານະຫຼັກ ແລະ ສຳຮອງຂໍ້ມູນຄລິກດຽວ',
- nodeDashTitle4: 'ຈັດການງານທີ່ຕັ້ງເວລາ',
- nodeDashContent4:
- 'ຈັດການງານ Cronjob ຫຼາຍໂນດ, ຕິດຕາມສະຖານະ ແລະ ສັ່ງທຳງານດ້ວຍຕົນເອງ',
- nodeTitle1: 'ເພີ່ມໂນດຄລິກດຽວ',
- nodeContent1: 'ເຊື່ອມຕໍ່ຫຼາຍເຊີເວີໂນດໄດ້ຢ່າງວ່ອງໄວ',
- nodeTitle2: 'ອັບເກຣດແບບກຸ່ມ',
- nodeContent2: 'ຊິງໂຄຣໄນ ແລະ ອັບເກຣດທຸກໂນດພ້ອມກັນໃນຄັ້ງດຽວ',
- nodeTitle3: 'ຕິດຕາມສະຖານະໂນດ',
- nodeContent3: "ຕິດຕາມສະຖານະການທຳງານຂອງແຕ່ລະໂນດແບບທັນທີ",
- nodeTitle4: 'ເຊື່ອມຕໍ່ໄລຍະໄກວ່ອງໄວ',
- nodeContent4: 'ເຊື່ອມຕໍ່ຫາເທີມິນອລຂອງໂນດໄດ້ໂດຍກົງຄລິກດຽວ',
- fileExchangeTitle1: 'ສົ່ງຂໍ້ມູນຜ່ານ Key Authentication',
- fileExchangeContent1: 'ຢືນຢັນຕົວຕົນຜ່ານ SSH keys ເພື່ອຄວາມປອດໄພໃນການສົ່ງຂໍ້ມູນ.',
- fileExchangeTitle2: 'ຊິງໂຄຣໄນໄຟລ໌ທີ່ມີປະສິດທິພາບ',
- fileExchangeContent2:
- 'ຊິງໂຄຣໄນສະເພາະເນື້ອໃນທີ່ປ່ຽນແປງເພື່ອຄວາມໄວ ແລະ ສະຖຽນລະພາບ.',
- fileExchangeTitle3: 'ຮອງຮັບການສື່ສານລະຫວ່າງໂນດ',
- fileExchangeContent3:
- 'ໂອນໄຟລ໌ໂຄງການລະຫວ່າງໂນດຕ່າງໆໄດ້ງ່າຍ, ຈັດການຫຼາຍເຊີເວີໄດ້ຢືດຢຸ່ນ.',
- nodeAppTitle1: 'ຈັດການອັບເກຣດແອັບ',
- nodeAppContent1: 'ຕິດຕາມການອັບເດດແອັບຫຼາຍໂນດແບບລວມສູນ, ຮອງຮັບການອັບເກຣດຄລິກດຽວ',
- appTitle1: 'ຈັດການພາແນລຢ່າງຢືດຢຸ່ນ',
- appContent1: 'ຈັດການເຊີເວີ 1Panel ໄດ້ທຸກບ່ອນ ທຸກເວລາ.',
- appTitle2: 'ຂໍ້ມູນການບໍລິການຄົບຖ້ວນ',
- appContent2:
- 'ຈັດການແອັບພື້ນຖານ, ເວັບໄຊ, Docker, ຖານຂໍ້ມູນ ແລະ ສ້າງແອັບຜ່ານມືຖືໄດ້ໄວ.',
- appTitle3: 'ຕິດຕາມຄວາມຜິດປົກກະຕິທັນທີ',
- appContent3:
- 'ເບິ່ງສະຖານະເຊີເວີ, ຄວາມປອດໄພ WAF, ສະຖິຕິການເຂົ້າຊົມ ແລະ ສະຖານະຂະບວນການຜ່ານແອັບມືຖື.',
- clusterTitle1: 'ຕິດຕັ້ງແບບ Master-Slave',
- clusterContent1:
- 'ສ້າງ MySQL/Postgres/Redis Master-Slave ໃນໂນດຕ່າງໆ, ເຊື່ອມຕໍ່ ແລະ ເລີ່ມຕົ້ນລະບົບອັດຕະໂນມັດ',
- clusterTitle2: 'ຈັດການ Master-Slave',
- clusterContent2:
- 'ຈັດການຫຼາຍໂນດ Master-Slave ໃນໜ້າດຽວ, ເບິ່ງບົດບາດ ແລະ ສະຖານະການທຳງານ.',
- clusterTitle3: 'ສະຖານະການກັອບປີ້ຂໍ້ມູນ',
- clusterContent3:
- 'ສະແດງສະຖານະການ Replication ແລະ ຂໍ້ມູນການດີເລ (Delay) ເພື່ອຊ່ວຍແກ້ໄຂບັນຫາ.',
- vllmTitle1: 'ຈັດການແບບລວມສູນ',
- vllmContent1:
- 'ລວມບໍລິການ vLLM ທີ່ກະຈັດກະຈາຍເຂົ້າມາໃນ 1Panel ເພື່ອເບິ່ງສະຖານະ, ເວີຊັນ ແລະ ເສັ້ນທາງທຳງານ.',
- vllmTitle2: 'ຕິດຕັ້ງວ່ອງໄວ',
- vllmContent2:
- 'ໃຊ້ຟອມເພື່ອເລືອກເວີຊັນ, ເທົາມໍເດລ ແລະ ຕັ້ງຄ່າການເລີ່ມຕົ້ນໄດ້ງ່າຍ.',
- vllmTitle3: 'ປະສິດທິພາບການດຳເນີນງານ',
- vllmContent3:
- 'ຈັດການສ້າງ, ແກ້ໄຂ, ເລີ່ມ, ຢຸດ ແລະ ລຶບ ໄດ້ໃນໜ້າດຽວ.',
- vllmTitle4: 'ຄວບຄຸມການຕັ້ງຄ່າ',
- vllmContent4:
- 'ກຳນົດພອດ, ຄອນເທນເນີ ແລະ ຄຳສັ່ງເລີ່ມຕົ້ນໃຫ້ເປັນມາດຕະຖານ.',
- modelDownloaderTitle1: 'ຄົ້ນຫາມໍເດລ',
- modelDownloaderContent1:
- 'ຄົ້ນຫາຄັງມໍເດລ HuggingFace ໂດຍກົງ ແລະ ເບິ່ງຍອດດາວໂຫຼດ, ໄລ້ ແລະ ລາຍລະອຽດໄຟລ໌.',
- modelDownloaderTitle2: 'ດາວໂຫຼດເລັ່ງດ່ວນ',
- modelDownloaderContent2:
- 'ຕັ້ງຄ່າ HuggingFace acceleration endpoint ແລະ Token ສຳລັບມໍເດລສ່ວນຕົວ.',
- modelDownloaderTitle3: 'ຕິດຕາມງານ',
- modelDownloaderContent3:
- 'ກວດສອບຄິວດາວໂຫຼດ, ສະຖານະ, ຄວາມຄືບໜ້າ ແລະ ຂໍ້ຜິດພາດ.',
- modelDownloaderTitle4: 'ຈັດການໃນເຄື່ອງ',
- modelDownloaderContent4:
- 'ຈັດການໄດເຣັກທໍຣີມໍເດລໃນເຄື່ອງ, ລວມມີຂະໜາດ, ເວລາ ແລະ ການລຶບໄຟລ໌ທີ່ບໍ່ໄດ້ໃຊ້.',
- },
- node: {
- master: 'ໂນດຫຼັກ (Master)',
- masterBackup: 'ສຳຮອງໂນດຫຼັກ',
- backupNode: 'ໂນດສຳຮອງ',
- backupFrequency: 'ຄວາມຖີ່ການສຳຮອງ (ຊົ່ວໂມງ)',
- backupCopies: 'ຈຳນວນສຳເນົາທີ່ເກັບໄວ້',
- noBackupNode: 'ຍັງບໍ່ມີໂນດສຳຮອງ. ກະລຸນາເລືອກໂນດສຳຮອງເພື່ອບັນທຶກ ແລະ ລອງໃໝ່!',
- masterBackupAlert:
- 'ຍັງບໍ່ໄດ້ຕັ້ງຄ່າສຳຮອງໂນດຫຼັກ. ເພື່ອຄວາມປອດໄພຂອງຂໍ້ມູນ, ກະລຸນາຕັ້ງຄ່າໂນດສຳຮອງໂດຍໄວ.',
- node: 'ໂນດ',
- addr: 'ທີ່ຢູ່',
- nodeUpgrade: 'ຕັ້ງຄ່າການອັບເດດ',
- nodeUpgradeHelper:
- 'ໂນດທີ່ເລືອກຈະເລີ່ມອັບເກຣດອັດຕະໂນມັດຫຼັງຈາກໂນດຫຼັກອັບເກຣດສຳເລັດ.',
- nodeUpgradePackageManage: 'ຈັດການແພັກເກັດຕິດຕັ້ງ',
- nodeUpgradePackageClean: 'ລ້າງຂໍ້ມູນ',
- nodeUpgradePackageFormatHelper:
- 'ຮອງຮັບສະເພາະແພັກເກັດ `1panel-agent_v*_*` ຫຼື `1panel-v*-linux-*` ເທົ່ານັ້ນ',
- nodeUpgradePackageHostConfirm: 'ໄຟລ໌ເຊີເວີ {0} ຈະຖືກເລືອກ. ຕ້ອງການຕໍ່ບໍ?',
- nodeUpgradePackageCleanHelper: 'ແພັກເກັດອັບເດດເວີຊັນເກົ່າທັງໝົດຈະຖືກລຶບ. ຕ້ອງການຕໍ່ບໍ?',
- nodeUpgradeOfflinePackageHelper:
- 'ໃນສະພາບແວດລ້ອມອອບລາຍ, ໂນດທີ່ມີສະຖາປັດຕະຍະກຳຕ່າງກັນຕ້ອງອັບໂຫຼດແພັກເກັດທີ່ກົງກັນກ່ອນອັບເດດ.',
- nodeUnhealthy: 'ສະຖານະໂນດຜິດປົກກະຕິ',
- deletedNode: 'ໂນດ {0} ທີ່ຖືກລຶບໄປແລ້ວ ບໍ່ຮອງຮັບການອັບເກຣດ!',
- nodeUnhealthyHelper: 'ກວດພົບສະຖານະໂນດຜິດປົກກະຕິ. ກະລຸນາກວດສອບໃນ [ຈັດການໂນດ]!',
- nodeUnbind: 'ໂນດບໍ່ໄດ້ຜູກມັດກັບ License',
- nodeUnbindHelper:
- 'ໂນດນີ້ບໍ່ໄດ້ຜູກມັດກັບ License. ກະລຸນາຜູກມັດໃນເມນູ [ຕັ້ງຄ່າພາແນລ - License]!',
- memTotal: 'ໜ່ວຍຄວາມຈຳທັງໝົດ',
- nodeManagement: 'ຈັດການຫຼາຍເຄື່ອງ',
- multiOverview: 'ພາບລວມຫຼາຍເຄື່ອງ',
- commonNodes: 'ໂນດທີ່ໃຊ້ເລື້ອຍໆ',
- searchNodePlaceholder: 'ຄົ້ນຫາຊື່ໂນດ, ກຸ່ມ ຫຼື ທີ່ຢູ່',
- nodeItem: 'ຈັດການໂນດ',
- panelItem: 'ຈັດການພາແນລ',
- addPanel: 'ເພີ່ມພາແນລ',
- addPanelHelper:
- 'ຫຼັງຈາກເພີ່ມພາແນລສຳເລັດ, ທ່ານສາມາດເຂົ້າເຖິງພາແນລເປົ້າໝາຍໄດ້ໄວໃນ [ພາບລວມ - ພາແນລ].',
- panel: 'ພາແນລ 1Panel',
- others: 'ພາແນລອື່ນໆ',
- addNode: 'ເພີ່ມໂນດ',
- connInfo: 'ຂໍ້ມູນການເຊື່ອມຕໍ່',
- nodeInfo: 'ຂໍ້ມູນໂນດ',
- withProxy: 'ເປີດໃຊ້ການເຂົ້າເຖິງຜ່ານ Proxy',
- withoutProxy: 'ປິດໃຊ້ການເຂົ້າເຖິງຜ່ານ Proxy',
- withProxyHelper:
- 'ຈະໃຊ້ Proxy ລະບົບ {0} ທີ່ຕັ້ງໄວ້ເພື່ອເຂົ້າເຖິງໂນດລູກ. ຕ້ອງການຕໍ່ບໍ?',
- withoutProxyHelper:
- 'ຈະຢຸດໃຊ້ Proxy ລະບົບເພື່ອເຂົ້າເຖິງໂນດລູກ. ຕ້ອງການຕໍ່ບໍ?',
- syncInfo: 'ຊິງໂຄຣໄນ',
- syncHelper: 'ເມື່ອຂໍ້ມູນໂນດຫຼັກປ່ຽນແປງ, ມັນຈະຊິງໂຄຣໄນໄປຫາໂນດລູກແບບທັນທີ',
- syncBackupAccount: 'ຊິງໂຄຣໄນການຕັ້ງຄ່າບັນຊີສຳຮອງ',
- syncWithMaster:
- 'ຫຼັງຈາກອັບເກຣດເປັນ Pro, ຂໍ້ມູນທັງໝົດຈະຖືກຊິງໂຄຣໄນຕາມຄ່າເລີ່ມຕົ້ນ.',
- syncProxy: 'ຊິງໂຄຣໄນຕັ້ງຄ່າ Proxy ລະບົບ',
- syncProxyHelper: 'ການຊິງໂຄຣໄນ Proxy ລະບົບຕ້ອງ Restart Docker',
- syncProxyHelper1: 'ການ Restart Docker ອາດສົ່ງຜົນກະທົບຕໍ່ຄອນເທນເນີທີ່ກຳລັງທຳງານ.',
- syncProxyHelper2: 'ທ່ານສາມາດ Restart ເອງໄດ້ໃນໜ້າ ຄອນເທນເນີ - ການຕັ້ງຄ່າ.',
- syncProxyHelper3:
- 'ຕ້ອງ Restart Docker ເພື່ອຊິງໂຄຣໄນ Proxy, ອາດສົ່ງຜົນກະທົບຕໍ່ບໍລິການ',
- syncProxyHelper4:
- 'ຕ້ອງ Restart Docker ເພື່ອຊິງໂຄຣໄນ Proxy. ທ່ານສາມາດ Restart ເອງພາຍຫຼັງໄດ້.',
- syncCustomApp: 'ຊິງໂຄຣໄນຄັງແອັບກຳນົດເອງ',
- syncAlertSetting: 'ຊິງໂຄຣໄນຕັ້ງຄ່າແຈ້ງເຕືອນລະບົບ',
- syncNodeInfo: 'ຂໍ້ມູນພື້ນຖານຂອງໂນດ,',
- nodeSyncHelper: 'ການຊິງໂຄຣໄນຂໍ້ມູນໂນດຈະລວມມີຂໍ້ມູນຕໍ່ໄປນີ້:',
- nodeSyncHelper1: '1. ຂໍ້ມູນບັນຊີສຳຮອງສາທາລະນະ',
- nodeSyncHelper2: '2. ຂໍ້ມູນການເຊື່ອມຕໍ່ລະຫວ່າງໂນດຫຼັກ ແລະ ໂນດລູກ',
- nodeCheck: 'ກວດສອບຄວາມພ້ອມໃຊ້ງານ',
- checkSSH: 'ກວດສອບການເຊື່ອມຕໍ່ SSH',
- checkUserPermission: 'ກວດສອບສິດຜູ້ໃຊ້',
- isNotRoot: 'ກວດພົບວ່າບໍ່ຮອງຮັບ sudo ແບບບໍ່ໃຊ້ລະຫັດຜ່ານ ແລະ ຜູ້ໃຊ້ບໍ່ແມ່ນ root',
- checkLicense: 'ກວດສອບສະຖານະ License',
- checkService: 'ກວດສອບຂໍ້ມູນບໍລິການທີ່ມີຢູ່ໃນໂນດ',
- checkPort: 'ກວດສອບການເຂົ້າເຖິງພອດ',
- panelExist:
- 'ກວດພົບວ່າໂນດນີ້ກຳລັງໃຊ້ 1Panel V1. ກະລຸນາອັບເກຣດເປັນ V2 ຜ່ານສະຄຣິບຍ້າຍຂໍ້ມູນກ່ອນ.',
- coreExist:
- 'ໂນດນີ້ຖືກຕັ້ງເປັນໂນດຫຼັກແລ້ວ ບໍ່ສາມາດເພີ່ມເປັນໂນດລູກໄດ້ໂດຍກົງ.',
- agentExist:
- 'ກວດພົບວ່າ 1panel-agent ຖືກຕິດຕັ້ງແລ້ວ. ການດຳເນີນການຕໍ່ຈະເກັບຂໍ້ມູນເດີມໄວ້ ແລະ ປ່ຽນສະເພາະບໍລິການ agent.',
- agentNotExist:
- 'ບໍ່ພົບ 1panel-agent ໃນໂນດນີ້, ບໍ່ສາມາດແກ້ໄຂຂໍ້ມູນໄດ້ໂດຍກົງ. ກະລຸນາລຶບ ແລະ ເພີ່ມໃໝ່.',
- oldDataExist:
- 'ກວດພົບຂໍ້ມູນ 1Panel V2 ເກົ່າໃນໂນດນີ້. ຂໍ້ມູນຕໍ່ໄປນີ້ຈະຖືກໃຊ້ເພື່ອທັບການຕັ້ງຄ່າປັດຈຸບັນ:',
- errLicense: 'License ທີ່ຜູກມັດກັບໂນດນີ້ໃຊ້ງານບໍ່ໄດ້!',
- errNodePort:
- 'ພອດໂນດ [ {0} ] ເຂົ້າເຖິງບໍ່ໄດ້. ກະລຸນາກວດສອບໄຟວໍ ຫຼື Security Group.',
- reinstallHelper: 'ຕິດຕັ້ງໂນດ {0} ໃໝ່, ຕ້ອງການຕໍ່ບໍ?',
- unhealthyCheck: 'ກວດສອບຄວາມຜິດປົກກະຕິ',
- fixOperation: 'ການແກ້ໄຂ',
- checkName: 'ລາຍການກວດສອບ',
- checkSSHConn: 'ກວດສອບການເຊື່ອມຕໍ່ SSH',
- fixSSHConn: 'ແກ້ໄຂຂໍ້ມູນການເຊື່ອມຕໍ່ໂນດດ້ວຍຕົນເອງ',
- checkConnInfo: 'ກວດສອບຂໍ້ມູນການເຊື່ອມຕໍ່ Agent',
- checkStatus: 'ກວດສອບຄວາມພ້ອມຂອງບໍລິການໂນດ',
- fixStatus: 'ລັນ "systemctl status 1panel-agent.service" ເພື່ອກວດສອບການທຳງານ.',
- checkAPI: 'ກວດສອບ API ຂອງໂນດ',
- fixAPI: 'ກວດສອບ Log ຂອງໂນດ ແລະ ພອດໄຟວໍ.',
- forceDelete: 'ບັງຄັບລຶບ',
- operateHelper: 'ໂນດຕໍ່ໄປນີ້ຈະຖືກ {0}, ຕ້ອງການຕໍ່ບໍ?',
- operatePanelHelper: 'ພາແນລຕໍ່ໄປນີ້ຈະຖືກ {0}, ຕ້ອງການຕໍ່ບໍ?',
- forceDeleteHelper: 'ການບັງຄັບລຶບຈະບໍ່ສົນໃຈຂໍ້ຜິດພາດ ແລະ ລຶບຂໍ້ມູນໃນຖານຂໍ້ມູນຖາວອນ',
- uninstall: 'ລຶບຂໍ້ມູນໂນດ',
- uninstallHelper: 'ນີ້ຈະລຶບຂໍ້ມູນທັງໝົດທີ່ກ່ຽວຂ້ອງກັບ 1Panel ໃນໂນດນີ້. ກະລຸນາລະມັດລະວັງ!',
- baseDir: 'ໄດເຣັກທໍຣີຕິດຕັ້ງ',
- baseDirHelper:
- 'ຫາກຫວ່າງໄວ້, ຈະຕິດຕັ້ງໃນ /opt ໂດຍອັດຕະໂນມັດ',
- nodePort: 'ພອດໂນດ',
- offline: 'ໂໝດອອບລາຍ',
- freeCount: 'ໂຄຕ້າຟຣີ [{0}]',
- offlineHelper: 'ໃຊ້ເມື່ອໂນດຢູ່ໃນສະພາບແວດລ້ອມທີ່ບໍ່ມີອິນເຕີເນັດ',
- appUpgrade: 'ອັບເກຣດແອັບ',
- appUpgradeHelper: 'ມີ {0} ແອັບທີ່ຕ້ອງອັບເກຣດ',
- dashboardSetting: 'ຕັ້ງຄ່າພາບລວມ',
- keepOneDashboardComponent: 'ຕ້ອງເກັບໄວ້ຢ່າງໜ້ອຍໜຶ່ງສ່ວນໃນໜ້າພາບລວມ',
- },
- customApp: {
- name: 'ຄັງແອັບກຳນົດເອງ',
- appStoreType: 'ແຫຼ່ງແພັກເກັດແອັບສະໂຕຣ',
- appStoreUrl: 'URL ຂອງຄັງເກັບ',
- local: 'ທີ່ຢູ່ພາຍໃນເຄື່ອງ',
- remote: 'ລິ້ງທາງໄກ',
- imagePrefix: 'Image Prefix',
- imagePrefixHelper:
- 'ຟັງຊັນ: ກຳນົດ Prefix ຂອງ Image ເອງ. ຕົວຢ່າງ: ຫາກຕັ້ງເປັນ 1panel/custom, image ຂອງ MaxKB ຈະປ່ຽນເປັນ 1panel/custom/maxkb:v1.10.0',
- closeHelper: 'ຍົກເລີກການໃຊ້ຄັງແອັບກຳນົດເອງ',
- appStoreUrlHelper: 'ຮອງຮັບສະເພາະຮູບແບບ .tar.gz',
- postNode: 'ຊິງໂຄຣໄນໄປຫາໂນດລູກ',
- postNodeHelper:
- 'ຊິງໂຄຣໄນແພັກເກັດໄປຫາ tmp/customApp/apps.tar.gz ໃນໂນດລູກ',
- nodes: 'ໂນດ',
- selectNode: 'ເລືອກໂນດ',
- selectNodeError: 'ກະລຸນາເລືອກໂນດ',
- licenseHelper: 'ເວີຊັນ Pro ຮອງຮັບຟີເຈີຄັງແອັບພລິເຄຊັນກຳນົດເອງ',
- databaseHelper: 'ຖານຂໍ້ມູນທີ່ກ່ຽວຂ້ອງ, ເລືອກຖານຂໍ້ມູນໂນດເປົ້າໝາຍ',
- nodeHelper: 'ບໍ່ສາມາດເລືອກໂນດປັດຈຸບັນໄດ້',
- migrateHelper:
- 'ປັດຈຸບັນຮອງຮັບການຍ້າຍສະເພາະແອັບແບບ Monolithic ແລະ ແອັບທີ່ເຊື່ອມກັບ MySQL, MariaDB, PostgreSQL ເທົັ້ນັ້ນ',
- opensslHelper:
- 'ຫາກໃຊ້ການສຳຮອງແບບເຂົ້າລະຫັດ, ເວີຊັນ OpenSSL ຂອງທັງສອງໂນດຕ້ອງກົງກັນ.',
- installApp: 'ຕິດຕັ້ງແບບກຸ່ມ',
- installAppHelper: 'ຕິດຕັ້ງແອັບໃຫ້ໂນດທີ່ເລືອກແບບກຸ່ມ',
- },
- alert: {
- isAlert: 'ແຈ້ງເຕືອນ',
- alertCount: 'ຈຳນວນແຈ້ງເຕືອນ',
- clamHelper: 'ແຈ້ງເຕືອນເມື່ອສະແກນພົບໄຟລ໌ຕິດໄວຣັສ',
- cronJobHelper: 'ແຈ້ງເຕືອນເມື່ອງານທີ່ຕັ້ງເວລາທຳງານລົ້ມເຫຼວ',
- licenseHelper: 'ເວີຊັນ Commercial ຮອງຮັບຊ່ອງທາງການແຈ້ງເຕືອນເພີ່ມເຕີມ',
- alertCountHelper: 'ຄວາມຖີ່ການແຈ້ງເຕືອນສູງສຸດຕໍ່ມື້',
- alert: 'ແຈ້ງເຕືອນ SMS',
- logs: 'ບັນທຶກການແຈ້ງເຕືອນ',
- list: 'ລາຍຊື່ການແຈ້ງເຕືອນ',
- addTask: 'ສ້າງການແຈ້ງເຕືອນ',
- editTask: 'ແກ້ໄຂການແຈ້ງເຕືອນ',
- alertMethod: 'ວິທີການ',
- alertMsg: 'ຂໍ້ຄວາມແຈ້ງເຕືອນ',
- alertRule: 'ກົດເກນການແຈ້ງເຕືອນ',
- titleSearchHelper: 'ປ້ອນຊື່ການແຈ້ງເຕືອນເພື່ອຄົ້ນຫາ',
- taskType: 'ປະເພດ',
- ssl: 'ໃບຢັ້ງຢືນໝົດອາຍຸ',
- siteEndTime: 'ເວັບໄຊໝົດອາຍຸ',
- panelPwdEndTime: 'ລະຫັດຜ່ານພາແນລໝົດອາຍຸ',
- panelUpdate: 'ມີພາແນລເວີຊັນໃໝ່',
- cpu: 'ແຈ້ງເຕືອນ CPU ເຊີເວີ',
- memory: 'ແຈ້ງເຕືອນ Memory ເຊີເວີ',
- load: 'ແຈ້ງເຕືອນ Load ເຊີເວີ',
- disk: 'ແຈ້ງເຕືອນ Disk ເຊີເວີ',
- website: 'ເວັບໄຊ',
- certificate: 'ໃບຢັ້ງຢືນ SSL',
- remainingDays: 'ມື້ທີ່ເຫຼືອ',
- sendCount: 'ຈຳນວນການສົ່ງ',
- sms: 'SMS',
- wechat: 'WeChat',
- dingTalk: 'DingTalk',
- feiShu: 'FeiShu',
- mail: 'ອີເມລ',
- email: 'ອີເມລ',
- weCom: 'WeCom',
- bark: 'Bark',
- sendCountRulesHelper: 'ຈຳນວນແຈ້ງເຕືອນທັງໝົດກ່ອນໝົດອາຍຸ (ມື້ລະຄັ້ງ)',
- panelUpdateRulesHelper: 'ຈຳນວນແຈ້ງເຕືອນສຳລັບເວີຊັນໃໝ່ (ມື້ລະຄັ້ງ)',
- oneDaySendCountRulesHelper: 'ຈຳນວນແຈ້ງເຕືອນສູງສຸດຕໍ່ມື້',
- siteEndTimeRulesHelper: 'ເວັບໄຊທີ່ບໍ່ມີວັນໝົດອາຍຸຈະບໍ່ມີການແຈ້ງເຕືອນ',
- autoRenewRulesHelper:
- 'ໃບຢັ້ງຢືນທີ່ເປີດຕໍ່ອາຍຸອັດຕະໂນມັດ ແລະ ເຫຼືອຫຼາຍກວ່າ 31 ວັນ ຈະບໍ່ແຈ້ງເຕືອນ',
- panelPwdEndTimeRulesHelper: 'ຫາກບໍ່ໄດ້ຕັ້ງວັນໝົດອາຍຸລະຫັດຜ່ານ ຈະບໍ່ມີການແຈ້ງເຕືອນ',
- sslRulesHelper: 'ໃບຢັ້ງຢືນ SSL ທັງໝົດ',
- diskInfo: 'ດິສກ໌',
- monitoringType: 'ປະເພດການຕິດຕາມ',
- autoRenew: 'ຕໍ່ອາຍຸອັດຕະໂນມັດ',
- useDisk: 'ການໃຊ້ງານດິສກ໌',
- usePercentage: 'ເປີເຊັນການໃຊ້ງານ',
- changeStatus: 'ປ່ຽນສະຖານະ',
- disableMsg: 'ການຢຸດງານແຈ້ງເຕືອນຈະເຮັດໃຫ້ລະບົບບໍ່ສົ່ງຂໍ້ຄວາມ. ຕ້ອງການຕໍ່ບໍ?',
- enableMsg: 'ການເປີດງານແຈ້ງເຕືອນຈະເຮັດໃຫ້ລະບົບສົ່ງຂໍ້ຄວາມ. ຕ້ອງການຕໍ່ບໍ?',
- useExceed: 'ການໃຊ້ງານເກີນ',
- useExceedRulesHelper: 'ແຈ້ງເຕືອນເມື່ອການໃຊ້ງານເກີນຄ່າທີ່ກຳນົດ',
- cpuUseExceedAvg: 'ຄ່າສະເລ່ຍການໃຊ້ CPU ເກີນກຳນົດ',
- memoryUseExceedAvg: 'ຄ່າສະເລ່ຍການໃຊ້ Memory ເກີນກຳນົດ',
- loadUseExceedAvg: 'ຄ່າສະເລ່ຍ Load ເກີນກຳນົດ',
- cpuUseExceedAvgHelper: 'ການໃຊ້ CPU ສະເລ່ຍໃນເວລາທີ່ກຳນົດເກີນຄ່າ',
- memoryUseExceedAvgHelper: 'ການໃຊ້ Memory ສະເລ່ຍໃນເວລາທີ່ກຳນົດເກີນຄ່າ',
- loadUseExceedAvgHelper: 'ຄ່າ Load ສະເລ່ຍໃນເວລາທີ່ກຳນົດເກີນຄ່າ',
- resourceAlertRulesHelper: 'ໝາຍເຫດ: ການແຈ້ງເຕືອນຕໍ່ເນື່ອງໃນ 30 ນາທີ ຈະສົ່ງພຽງຄັ້ງດຽວ',
- specifiedTime: 'ເວລາທີ່ກຳນົດ',
- deleteTitle: 'ລຶບການແຈ້ງເຕືອນ',
- deleteMsg: 'ເຈົ້າແນ່ໃຈບໍວ່າຕ້ອງການລຶບງານແຈ້ງເຕືອນນີ້?',
- allSslTitle: 'ແຈ້ງເຕືອນໃບຢັ້ງຢືນ SSL ເວັບໄຊທັງໝົດໝົດອາຍຸ',
- sslTitle: 'ແຈ້ງເຕືອນໃບຢັ້ງຢືນ SSL ເວັບໄຊ {0} ໝົດອາຍຸ',
- allSiteEndTimeTitle: 'ແຈ້ງເຕືອນເວັບໄຊທັງໝົດໝົດອາຍຸ',
- siteEndTimeTitle: 'ແຈ້ງເຕືອນເວັບໄຊ {0} ໝົດອາຍຸ',
- panelPwdEndTimeTitle: 'ແຈ້ງເຕືອນລະຫັດຜ່ານພາແນລໝົດອາຍຸ',
- panelUpdateTitle: 'ແຈ້ງເຕືອນພາແນລເວີຊັນໃໝ່',
- cpuTitle: 'ແຈ້ງເຕືອນການໃຊ້ CPU ສູງ',
- memoryTitle: 'ແຈ້ງເຕືອນການໃຊ້ Memory ສູງ',
- loadTitle: 'ແຈ້ງເຕືອນ Load ສູງ',
- diskTitle: 'ແຈ້ງເຕືອນການໃຊ້ Disk ສູງສຳລັບໄດເຣັກທໍຣີ {0}',
- allDiskTitle: 'ແຈ້ງເຕືອນການໃຊ້ Disk ສູງ',
- timeRule: 'ເວລາເຫຼືອໜ້ອຍກວ່າ {0} ວັນ (ຫາກບໍ່ຈັດການ ຈະສົ່ງໃໝ່ໃນມື້ຖັດໄປ)',
- panelUpdateRule:
- 'ສົ່ງແຈ້ງເຕືອນຄັ້ງດຽວເມື່ອພົບເວີຊັນໃໝ່ (ຫາກບໍ່ຈັດການ ຈະສົ່ງໃໝ່ໃນມື້ຖັດໄປ)',
- avgRule: 'ການໃຊ້ງານ {1} ສະເລ່ຍເກີນ {2}% ພາຍໃນ {0} ນາທີ, ສົ່ງ {3} ຄັ້ງຕໍ່ມື້',
- diskRule: 'ການໃຊ້ Disk ສຳລັບ {0} ເກີນ {1}{2}, ສົ່ງ {3} ຄັ້ງຕໍ່ມື້',
- allDiskRule: 'ການໃຊ້ Disk ເກີນ {0}{1}, ສົ່ງ {2} ຄັ້ງຕໍ່ມື້',
- cpuName: ' CPU ',
- memoryName: 'Memory',
- loadName: 'Load',
- diskName: 'Disk',
- syncAlertInfo: 'ສົ່ງແຈ້ງເຕືອນເອງ',
- syncAlertInfoMsg: 'ຕ້ອງການສົ່ງການແຈ້ງເຕືອນນີ້ດ້ວຍຕົນເອງບໍ?',
- pushError: 'ສົ່ງບໍ່ສຳເລັດ',
- pushSuccess: 'ສົ່ງສຳເລັດ',
- syncError: 'ຊິງໂຄຣໄນບໍ່ສຳເລັດ',
- success: 'ແຈ້ງເຕືອນສຳເລັດ',
- pushing: 'ກຳລັງສົ່ງ...',
- error: 'ແຈ້ງເຕືອນລົ້ມເຫຼວ',
- cleanLog: 'ລ້າງບັນທຶກ',
- cleanAlertLogs: 'ລ້າງບັນທຶກການແຈ້ງເຕືອນ',
- daily: 'ແຈ້ງເຕືອນມື້ນີ້: {0}',
- cumulative: 'ແຈ້ງເຕືອນສະສົມ: {0}',
- clams: 'ແຈ້ງເຕືອນສະແກນໄວຣັສ',
- taskName: 'ຊື່ງານ',
- cronJobType: 'ປະເພດງານ',
- clamPath: 'ໄດເຣັກທໍຣີທີ່ສະແກນ',
- cronjob: 'ງານ Cronjob {0} ລົ້ມເຫຼວ',
- app: 'ສຳຮອງແອັບ',
- web: 'ສຳຮອງເວັບໄຊ',
- database: 'ສຳຮອງຖານຂໍ້ມູນ',
- directory: 'ສຳຮອງໄດເຣັກທໍຣີ',
- log: 'ສຳຮອງບັນທຶກ (Log)',
- snapshot: 'System Snapshot',
- clamsRulesHelper: 'ງານສະແກນໄວຣັສທີ່ຕ້ອງການແຈ້ງເຕືອນ',
- cronJobRulesHelper: 'ຕ້ອງຕັ້ງຄ່າງານ Cronjob ປະເພດນີ້',
- clamsTitle: 'ງານສະແກນໄວຣັສ 「 {0} 」 ກວດພົບໄຟລ໌ອັນຕະລາຍ',
- cronJobAppTitle: 'ແຈ້ງເຕືອນງານສຳຮອງແອັບ 「 {0} 」 ລົ້ມເຫຼວ',
- cronJobWebsiteTitle: 'ແຈ້ງເຕືອນງານສຳຮອງເວັບໄຊ 「 {0} 」 ລົ້ມເຫຼວ',
- cronJobDatabaseTitle: 'ແຈ້ງເຕືອນງານສຳຮອງຖານຂໍ້ມູນ 「 {0} 」 ລົ້ມເຫຼວ',
- cronJobDirectoryTitle: 'ແຈ້ງເຕືອນງານສຳຮອງໄດເຣັກທໍຣີ 「 {0} 」 ລົ້ມເຫຼວ',
- cronJobLogTitle: 'ແຈ້ງເຕືອນງານສຳຮອງ Log 「 {0} 」 ລົ້ມເຫຼວ',
- cronJobSnapshotTitle: 'ແຈ້ງເຕືອນງານສຳຮອງ Snapshot 「 {0} 」 ລົ້ມເຫຼວ',
- cronJobShellTitle: 'ແຈ້ງເຕືອນງານ Shell script 「 {0} 」 ລົ້ມເຫຼວ',
- cronJobCurlTitle: 'ແຈ້ງເຕືອນງານເຂົ້າເຖິງ URL 「 {0} 」 ລົ້ມເຫຼວ',
- cronJobCutWebsiteLogTitle: 'ແຈ້ງເຕືອນງານຕັດ Log ເວັບໄຊ 「 {0} 」 ລົ້ມເຫຼວ',
- cronJobCleanTitle: 'ແຈ້ງເຕືອນງານລ້າງ Cache 「 {0} 」 ລົ້ມເຫຼວ',
- cronJobNtpTitle: 'ແຈ້ງເຕືອນງານຊິງໂຄຣໄນເວລາເຊີເວີ 「 {0} 」 ລົ້ມເຫຼວ',
- clamsRule: 'ແຈ້ງເຕືອນພົບໄວຣັສ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
- cronJobAppRule: 'ແຈ້ງເຕືອນສຳຮອງແອັບລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
- cronJobWebsiteRule: 'ແຈ້ງເຕືອນສຳຮອງເວັບໄຊລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
- cronJobDatabaseRule: 'ແຈ້ງເຕືອນສຳຮອງຖານຂໍ້ມູນລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
- cronJobDirectoryRule: 'ແຈ້ງເຕືອນສຳຮອງໄດເຣັກທໍຣີລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
- cronJobLogRule: 'ແຈ້ງເຕືອນສຳຮອງ Log ລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
- cronJobSnapshotRule: 'ແຈ້ງເຕືອນສຳຮອງ Snapshot ລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
- cronJobShellRule: 'ແຈ້ງເຕືອນ Shell script ລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
- cronJobCurlRule: 'ແຈ້ງເຕືອນເຂົ້າເຖິງ URL ລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
- cronJobCutWebsiteLogRule: 'ແຈ້ງເຕືອນຕັດ Log ເວັບໄຊລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
- cronJobCleanRule: 'ແຈ້ງເຕືອນລ້າງ Cache ລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
- cronJobNtpRule: 'ແຈ້ງເຕືອນຊິງໂຄຣໄນເວລາລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
- alertSmsHelper: 'ຂໍ້ຈຳກັດ SMS: ທັງໝົດ {0} ຂໍ້ຄວາມ, ໃຊ້ໄປແລ້ວ {1}',
- goBuy: 'ຊື້ເພີ່ມ',
- phone: 'ເບີໂທລະສັບ',
- phoneHelper: 'ປ້ອນເບີໂທລະສັບທີ່ແທ້ຈິງເພື່ອຮັບແຈ້ງເຕືອນ',
- dailyAlertNum: 'ຂີດຈຳກັດແຈ້ງເຕືອນຕໍ່ມື້',
- dailyAlertNumHelper: 'ຈຳນວນແຈ້ງເຕືອນສູງສຸດຕໍ່ມື້ (ບໍ່ເກີນ 100)',
- timeRange: 'ຊ່ວງເວລາ',
- sendTimeRange: 'ຊ່ວງເວລາສົ່ງ',
- sendTimeRangeHelper: 'ສາມາດສົ່ງໄດ້ໃນຊ່ວງເວລາ {0}',
- to: 'ຫາ',
- startTime: 'ເວລາເລີ່ມຕົ້ນ',
- endTime: 'ເວລາສິ້ນສຸດ',
- defaultPhone: 'ເລີ່ມຕົ້ນເປັນເບີໂທລະສັບທີ່ຜູກກັບ License',
- noticeAlert: 'ແຈ້ງເຕືອນທົ່ວໄປ',
- resourceAlert: 'ແຈ້ງເຕືອນຊັບພະຍາກອນ',
- agentOfflineAlertHelper:
- 'ເມື່ອເປີດແຈ້ງເຕືອນອອບລາຍ, ໂນດຫຼັກຈະສະແກນທຸກໆ 30 ນາທີ.',
- offline: 'ແຈ້ງເຕືອນອອບລາຍ',
- offlineHelper:
- 'ເມື່ອຕັ້ງເປັນແຈ້ງເຕືອນອອບລາຍ, ໂນດຫຼັກຈະສະແກນທຸກໆ 30 ນາທີ.',
- offlineOff: 'ເປີດແຈ້ງເຕືອນອອບລາຍ',
- offlineOffHelper:
- 'ການເປີດແຈ້ງເຕືອນອອບລາຍຈະເຮັດໃຫ້ໂນດຫຼັກສະແກນທຸກໆ 30 ນາທີ.',
- offlineClose: 'ປິດແຈ້ງເຕືອນອອບລາຍ',
- offlineCloseHelper:
- 'ການປິດແຈ້ງເຕືອນອອບລາຍຈະເຮັດໃຫ້ໂນດລູກຕ້ອງຈັດການການແຈ້ງເຕືອນເອງ.',
- alertNotice: 'ການແຈ້ງເຕືອນ',
- methodConfig: 'ຕັ້ງຄ່າວິທີການແຈ້ງເຕືອນ',
- createMethod: 'ສ້າງວິທີການແຈ້ງເຕືອນ',
- methodInvalid: 'ການຕັ້ງຄ່າ {0} ບໍ່ຖືກຕ້ອງ',
- commonConfig: 'ການຕັ້ງຄ່າທົ່ວໄປ',
- smsConfig: 'SMS',
- smsConfigHelper: 'ຕັ້ງຄ່າເບີໂທລະສັບສຳລັບ SMS',
- emailConfig: 'ອີເມລ',
- emailConfigHelper: 'ຕັ້ງຄ່າບໍລິການສົ່ງອີເມລ SMTP',
- deleteConfigTitle: 'ລຶບການຕັ້ງຄ່າແຈ້ງເຕືອນ',
- deleteConfigMsg: 'ເຈົ້າແນ່ໃຈບໍວ່າຕ້ອງການລຶບການຕັ້ງຄ່າແຈ້ງເຕືອນນີ້?',
- test: 'ທົດສອບ',
- alertTestOk: 'ທົດສອບການແຈ້ງເຕືອນສຳເລັດ',
- alertTestFailed: 'ທົດສອບການແຈ້ງເຕືອນລົ້ມເຫຼວ',
- displayName: 'ຊື່ສະແດງ',
- sender: 'ຜູ້ສົ່ງ',
- password: 'ລະຫັດຜ່ານ',
- host: 'ເຊີເວີ SMTP',
- port: 'ພອດ',
- encryption: 'ການເຂົ້າລະຫັດ',
- recipient: 'ຜູ້ຮັບ',
- licenseTime: 'ແຈ້ງເຕືອນ License ໝົດອາຍຸ',
- licenseTimeTitle: 'ແຈ້ງເຕືອນ License ໝົດອາຍຸ',
- displayNameHelper: 'ຊື່ຜູ້ສົ່ງທີ່ຈະສະແດງໃນອີເມລ',
- senderHelper: 'ທີ່ຢູ່ອີເມລທີ່ໃຊ້ສົ່ງຂໍ້ຄວາມ',
- passwordHelper: 'ລະຫັດຜ່ານ ຫຼື Authorization code ຂອງອີເມລ',
- hostHelper: 'ທີ່ຢູ່ເຊີເວີ SMTP, ເຊັ່ນ: smtp.qq.com',
- portHelper: 'SSL ມັກຈະໃຊ້ 465, TLS ມັກຈະໃຊ້ 587',
- sslHelper: 'ຫາກພອດແມ່ນ 465, ມັກຈະຕ້ອງໃຊ້ SSL',
- tlsHelper: 'ຫາກພອດແມ່ນ 587, ມັກຈະຕ້ອງໃຊ້ TLS',
- triggerCondition: 'ເງື່ອນໄຂການເຮັດວຽກ',
- loginFail: ' ລັອກອິນລົ້ມເຫຼວພາຍໃນ',
- nodeException: 'ແຈ້ງເຕືອນໂນດຜິດປົກກະຕິ',
- licenseException: 'ແຈ້ງເຕືອນ License ຜິດປົກກະຕິ',
- panelLogin: 'ແຈ້ງເຕືອນການລັອກອິນພາແນລຜິດປົກກະຕິ',
- sshLogin: 'ແຈ້ງເຕືອນການລັອກອິນ SSH ຜິດປົກກະຕິ',
- panelIpLogin: 'ແຈ້ງເຕືອນ IP ລັອກອິນພາແນລຜິດປົກກະຕິ',
- sshIpLogin: 'ແຈ້ງເຕືອນ IP ລັອກອິນ SSH ຜິດປົກກະຕິ',
- ipWhiteListHelper:
- 'IP ໃນ Whitelist ຈະບໍ່ຖືກຈຳກັດ ແລະ ຈະບໍ່ມີການແຈ້ງເຕືອນເມື່ອລັອກອິນສຳເລັດ',
- nodeExceptionRule: 'ແຈ້ງເຕືອນໂນດຜິດປົກກະຕິ, ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
- licenseExceptionRule: 'ແຈ້ງເຕືອນ License ຜິດປົກກະຕິ, ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
- panelLoginRule: 'ແຈ້ງເຕືອນການລັອກອິນພາແນລ, ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
- sshLoginRule: 'ແຈ້ງເຕືອນການລັອກອິນ SSH, ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
- userNameHelper: 'ຫາກຊື່ຜູ້ໃຊ້ຫວ່າງ, ຈະໃຊ້ທີ່ຢູ່ຜູ້ສົ່ງເປັນຄ່າເລີ່ມຕົ້ນ',
- alertConfigHelper: 'ຕັ້ງຄ່າຊ່ອງທາງການແຈ້ງເຕືອນເພື່ອຮັບຂໍ້ມູນຈາກພາແນລ',
- weComConfigHelper: 'ຕັ້ງຄ່າການແຈ້ງເຕືອນ WeCom',
- barkConfigHelper: 'ຕັ້ງຄ່າການແຈ້ງເຕືອນ Bark',
- wechatConfigHelper: 'ຕັ້ງຄ່າການແຈ້ງເຕືອນ WeChat Official Account',
- dingTalkConfigHelper: 'ຕັ້ງຄ່າການແຈ້ງເຕືອນ DingTalk',
- feiShuConfigHelper: 'ຕັ້ງຄ່າການແຈ້ງເຕືອນ Feishu',
- webhookName: 'ຊື່ບັອດ',
- webhookUrl: 'Webhook URL',
- alertConfigProHelper: 'ເວີຊັນ Commercial ຮອງຮັບ WeCom, DingTalk, Feishu ແລະ SMS.',
- recipientPlaceholder: 'ກະລຸນາປ້ອນທີ່ຢູ່ອີເມລຜູ້ຮັບ',
- addRecipient: 'ເພີ່ມຜູ້ຮັບ',
- webhookItem: 'Webhook',
- addWebhook: 'ເພີ່ມ Webhook',
- selectAlertType: 'ເລືອກປະເພດການແຈ້ງເຕືອນ',
- configDetail: 'ລາຍລະອຽດການຕັ້ງຄ່າ',
- webhookCount: ' Webhook',
- },
- theme: {
- lingXiaGold: 'LXware Gold',
- classicBlue: 'Classic Blue',
- freshGreen: 'Fresh Green',
- customColor: 'ສີກຳນົດເອງ',
- setDefault: 'ເລີ່ມຕົ້ນ',
- setDefaultHelper: 'ຊຸດສີທີມຈະຖືກຄືນຄ່າເປັນເລີ່ມຕົ້ນ. ຕ້ອງການຕໍ່ບໍ?',
- setHelper: 'ຊຸດສີທີມທີ່ເລືອກຈະຖືກບັນທຶກ. ຕ້ອງການຕໍ່ບໍ?',
- },
- sync: {
- menu: 'ຊິງໂຄຣໄນຊັບພະຍາກອນ',
- file: 'ແລກປ່ຽນໄຟລ໌',
- fileSyncConfirm: 'ເຈົ້າຕ້ອງການໂອນໄຟລ໌/ໂຟນເດີ {1} ຈາກໂນດ {0} ໄປຫາ {3} ໃນໂນດ {2} ບໍ?',
- image: 'ແລກປ່ຽນ Image',
- imageBatchDesc: 'ເລືອກໂນດຕົ້ນທາງ ແລະ Image ກ່ອນ, ຈາກນັ້ນໂອນແບບກຸ່ມໄປຫາຫຼາຍໂນດ.',
- imageBatchConfirmPrefix: 'ກຳລັງຈະໂອນ {0} images ໄປຫາ {1} ໂນດ, ລວມທັງໝົດ {2} ງານ.',
+ user: {
+ user: 'ຜູ້ໃຊ້',
+ userInfo: 'ຂໍ້ມູນຜູ້ໃຊ້',
+ userManage: 'ຈັດການຜູ້ໃຊ້',
+ superAdmin: 'ຜູ້ດູແລລະບົບສູງສຸດ',
+ superAdminDesc: 'ມີສິດຈັດການລະບົບທັງໝົດ ແລະ ສາມາດຈັດການຊັບພະຍາກອນທຸກຢ່າງ.',
+ nodeAdmin: 'ຜູ້ດູແລໂນດ',
+ nodeAdminDesc: 'ມີສິດຈັດການສະເພາະໂນດທີ່ກຳນົດ ແລະ ສາມາດຈັດການຊັບພະຍາກອນພາຍໃນໂນດນັ້ນ.',
+ readOnly: 'ອ່ານໄດ້ຢ່າງດຽວ',
+ readOnlyDesc: 'ສາມາດເບິ່ງຂໍ້ມູນທຸກຢ່າງໃນລະບົບໄດ້ ແຕ່ບໍ່ສາມາດແກ້ໄຂໄດ້.',
+ bindNode: 'ຜູກມັດໂນດ',
+ boundUsers: 'ຜູ້ໃຊ້ທີ່ຜູກມັດ',
+ role: 'ບົດບາດ',
+ roleName: 'ຊື່',
+ permission: 'ສິດການໃຊ້ງານ',
+ permissionDuplicate: 'ແຕ່ລະໂນດສາມາດກຳນົດໄດ້ພຽງບົດບາດດຽວເທົ່ານັ້ນ',
+ nodeAdminMasterConfirm: 'ສິດຜູ້ດູແລໂນດໃນໂນດຫຼັກ (Master) ຈະມີສິດສູງ. ກະລຸນາມອບໝາຍຢ່າງລະມັດລະວັງ.',
+ permissionLinkageTip: 'ສິດທີ່ກ່ຽວຂ້ອງຈະຖືກເລືອກໂດຍອັດຕະໂນມັດ; ຫາກລຶບອອກເອງ ອາດເຮັດໃຫ້ບາງຟີເຈີໃຊ້ງານບໍ່ໄດ້.',
+ allViewPermissionHelper: 'ໃຫ້ສິດການເບິ່ງທັງໝົດສຳລັບ AI Gateway.',
+ apiKeyViewPermissionHelper: 'ອະນຸຍາດໃຫ້ເບິ່ງສະເພາະ AI Gateway API Keys.',
+ masterOnlyPermission: 'ສິດສະເພາະໂນດຫຼັກ',
+ masterOnlyPermissionHelper: 'ສິດນີ້ມີຜົນສະເພາະຢູ່ໃນໂນດຫຼັກເທົ່ານັ້ນ.',
+ view: 'ເບິ່ງ',
+ manage: 'ຈັດການ',
+ },
+ app: {
+ app: 'ແອັບ',
+ title: 'ຊື່ແທນພາແນລ',
+ titleHelper: 'ຊື່ແທນພາແນລສຳລັບສະແດງຜົນໃນແອັບ (ຊື່ເລີ່ມຕົ້ນ)',
+ qrCode: 'QR Code',
+ apiStatusHelper: 'ແອັບພາແນລຈຳເປັນຕ້ອງເປີດໃຊ້ງານ API',
+ apiInterfaceHelper: 'ຮອງຮັບການເຂົ້າເຖິງຜ່ານ API (ຕ້ອງເປີດໃຊ້ງານເພື່ອເຊື່ອມຕໍ່ກັບແອັບ)',
+ apiInterfaceHelper1:
+ 'ການເຂົ້າເຖິງແອັບຕ້ອງເພີ່ມ IP ໃນ Whitelist; ຫາກ IP ບໍ່ຄົງທີ່ ແນະນຳໃຫ້ໃຊ້ 0.0.0.0/0 (IPv4 ທັງໝົດ), ::/0 (IPv6 ທັງໝົດ)',
+ qrCodeExpired: 'ເວລາໂຫຼດໃໝ່',
+ apiLeakageHelper: 'ຫ້າມເປີດເຜີຍ QR code ນີ້. ໃຫ້ແນ່ໃຈວ່າໃຊ້ໃນສະພາບແວດລ້ອມທີ່ປອດໄພ.',
+ },
+ logExport: {
+ title: 'ສົ່ງອອກລັອກ',
+ records: 'ບັນທຶກການສົ່ງອອກ',
+ retentionDays: 'ໄລຍະເກັບບັນທຶກການສົ່ງອອກ',
+ timeRange: 'ຊ່ວງເວລາ',
+ timeRequired: 'ກະລຸນາເລືອກຊ່ວງເວລາສົ່ງອອກ',
+ websiteRequired: 'ກະລຸນາເລືອກເວັບໄຊ',
+ blackStatus: 'ສະຖານະບັນຊີດຳ',
+ black: 'ຢູ່ໃນບັນຊີດຳ',
+ notBlack: 'ບໍ່ຢູ່ໃນບັນຊີດຳ',
+ fuzzy: 'ການຈັບຄູ່ແບບຄຸມເຄືອ',
+ regex: 'Regular Expression',
+ invalidRegex: 'ປ້ອນ RE2 Regular Expression ທີ່ຖືກຕ້ອງ ແລະ ຍາວບໍ່ເກີນ 256 ຕົວອັກສອນ',
+ created: 'ສ້າງວຽກສົ່ງອອກແລ້ວ',
+ fileName: 'ຊື່ໄຟລ໌',
+ fileSize: 'ຂະໜາດໄຟລ໌',
+ expiresAt: 'ໝົດອາຍຸເມື່ອ',
+ cancelConfirm: 'ຍົກເລີກວຽກສົ່ງອອກນີ້ບໍ?',
+ deleteConfirm: 'ລຶບບັນທຶກການສົ່ງອອກ ແລະ ໄຟລ໌ນີ້ບໍ?',
+ },
+ waf: {
+ name: 'WAF',
+ blackWhite: 'ລາຍຊື່ດຳ ແລະ ຂາວ',
+ globalSetting: 'ຕັ້ງຄ່າທົ່ວໄປ',
+ websiteSetting: 'ຕັ້ງຄ່າເວັບໄຊ',
+ blockRecords: 'ປະຫວັດການບລັອກ',
+ world: 'ທົ່ວໂລກ',
+ china: 'ຈີນ',
+ intercept: 'ການສະກັດກັ້ນ',
+ request: 'ຄຳຮ້ອງຂໍ',
+ count4xx: 'ຈຳນວນ 4xx',
+ count5xx: 'ຈຳນວນ 5xx',
+ todayStatus: 'ສະຖານະມື້ນີ້',
+ reqMap: 'ແຜນທີ່ການໂຈມຕີ (30 ວັນຫຼ້າສຸດ)',
+ resource: 'ແຫຼ່ງທີ່ມາ',
+ count: 'ຈຳນວນ',
+ hight: 'ສູງ',
+ low: 'ຕ່ຳ',
+ reqCount: 'ຄຳຮ້ອງຂໍ',
+ interceptCount: 'ຈຳນວນການສະກັດກັ້ນ',
+ requestTrends: 'ແນວໂນ້ມຄຳຮ້ອງຂໍ (7 ວັນຫຼ້າສຸດ)',
+ interceptTrends: 'ແນວໂນ້ມການສະກັດກັ້ນ (7 ວັນຫຼ້າສຸດ)',
+ whiteList: 'Whitelist (ບັນຊີຂາວ)',
+ blackList: 'Blacklist (ບັນຊີດຳ)',
+ ipBlackListHelper: 'IP ໃນບັນຊີດຳຈະຖືກບລັອກບໍ່ໃຫ້ເຂົ້າເຖິງເວັບໄຊ',
+ ipWhiteListHelper: 'IP ໃນບັນຊີຂາວຈະຜ່ານທຸກການຈຳກັດ',
+ uaBlackListHelper: 'ຄຳຮ້ອງຂໍທີ່ມີ User-Agent ໃນບັນຊີດຳຈະຖືກບລັອກ',
+ uaWhiteListHelper: 'ຄຳຮ້ອງຂໍທີ່ມີ User-Agent ໃນບັນຊີຂາວຈະຜ່ານທຸກການຈຳກັດ',
+ urlBlackListHelper: 'URL ໃນບັນຊີດຳຈະຖືກບລັອກ',
+ urlWhiteListHelper: 'URL ໃນບັນຊີຂາວຈະຜ່ານທຸກການຈຳກັດ',
+ ccHelper: 'ຫາກເວັບໄຊໄດ້ຮັບຄຳຮ້ອງຂໍເກີນ {1} ຄັ້ງຈາກ IP ດຽວກັນພາຍໃນ {0} ວິນາທີ, IP ຈະຖືກບລັອກເປັນເວລາ {2}',
+ blockTime: 'ໄລຍະເວລາການບລັອກ',
+ attackHelper: 'ຫາກມີການສະກັດກັ້ນສະສົມເກີນ {1} ຄັ້ງພາຍໃນ {0} ວິນາທີ, IP ຈະຖືກບລັອກເປັນເວລາ {2}',
+ notFoundHelper:
+ 'ຫາກມີຄຳຮ້ອງຂໍທີ່ຕອບກັບເປັນ 404 ສະສົມເກີນ {1} ຄັ້ງພາຍໃນ {0} ວິນາທີ, IP ຈະຖືກບລັອກເປັນເວລາ {2}',
+ frequencyLimit: 'ຈຳກັດຄວາມຖີ່',
+ regionLimit: 'ຈຳກັດພື້ນທີ່',
+ defaultRule: 'ກົດເກນເລີ່ມຕົ້ນ',
+ accessFrequencyLimit: 'ຈຳກັດຄວາມຖີ່ການເຂົ້າເຖິງ',
+ attackLimit: 'ຈຳກັດຄວາມຖີ່ການໂຈມຕີ',
+ notFoundLimit: 'ຈຳກັດຄວາມຖີ່ 404',
+ urlLimit: 'ຈຳກັດຄວາມຖີ່ URL',
+ urlLimitHelper: 'ຕັ້ງຄ່າຄວາມຖີ່ການເຂົ້າເຖິງສຳລັບແຕ່ລະ URL',
+ sqliDefense: 'ປ້ອງກັນ SQL Injection',
+ sqliHelper: 'ກວດຈັບ ແລະ ບລັອກການໂຈມຕີ SQL injection',
+ xssHelper: 'ກວດຈັບ ແລະ ບລັອກການໂຈມຕີ XSS',
+ xssDefense: 'ປ້ອງກັນ XSS',
+ uaDefense: 'ກົດເກນ User-Agent ທີ່ເປັນອັນຕະລາຍ',
+ uaHelper: 'ລວມມີກົດເກນເພື່ອລະບຸບັອດ (Bot) ທີ່ບໍ່ຫວັງດີ',
+ argsDefense: 'ກົດເກນພະລາມິເຕີທີ່ເປັນອັນຕະລາຍ',
+ argsHelper: 'ບລັອກຄຳຮ້ອງຂໍທີ່ມີພະລາມິເຕີທີ່ບໍ່ຫວັງດີ',
+ cookieDefense: 'ກົດເກນ Cookie ທີ່ເປັນອັນຕະລາຍ',
+ cookieHelper: 'ຫ້າມໃຊ້ Cookie ທີ່ເປັນອັນຕະລາຍໃນຄຳຮ້ອງຂໍ',
+ headerDefense: 'ກົດເກນ Header ທີ່ເປັນອັນຕະລາຍ',
+ headerHelper: 'ຫ້າມຄຳຮ້ອງຂໍທີ່ມີ Header ທີ່ບໍ່ຫວັງດີ',
+ httpRule: 'ກົດເກນວິທີການ HTTP (Method)',
+ httpHelper:
+ 'ກຳນົດວິທີການເຂົ້າເຖິງທີ່ອະນຸຍາດ. ຫາກຕ້ອງການຈຳກັດ, ກະລຸນາປິດປຸ່ມນັ້ນ. ຕົວຢ່າງ: ຫາກອະນຸຍາດສະເພາະ GET, ຕ້ອງປິດປຸ່ມອື່ນໆທັງໝົດ',
+ geoRule: 'ຈຳກັດການເຂົ້າເຖິງຕາມພື້ນທີ່',
+ geoHelper: 'ຈຳກັດການເຂົ້າເຖິງເວັບໄຊຈາກບາງປະເທດ ຫຼື ພື້ນທີ່',
+ regionPolicy: 'ນະໂຍບາຍພາກພື້ນ',
+ provincePolicy: 'ນະໂຍບາຍແຂວງ',
+ provinceRuleLabel: 'ແຂວງ',
+ openRestyFeatureVersionAlert: 'OpenResty ຕ້ອງໃໝ່ກວ່າ 1.31.1.1-0 ເພື່ອໃຫ້ {0} ມີຜົນ.',
+ ipLocation: 'ທີ່ຕັ້ງ IP',
+ action: 'ການດຳເນີນການ',
+ ruleType: 'ປະເພດການໂຈມຕີ',
+ ipHelper: 'ປ້ອນທີ່ຢູ່ IP',
+ attackLog: 'ບັນທຶກການໂຈມຕີ',
+ rule: 'ກົດເກນ',
+ ipArr: 'ຊ່ວງ IPV4',
+ ipStart: 'IP ເລີ່ມຕົ້ນ',
+ ipEnd: 'IP ສິ້ນສຸດ',
+ ipv4: 'IPv4',
+ ipv6: 'IPv6',
+ urlDefense: 'ກົດເກນ URL',
+ urlHelper: 'URL ທີ່ຕ້ອງຫ້າມ',
+ dirFilter: 'ກອງໄດເຣັກທໍຣີ',
+ sqlInject: 'SQL Injection',
+ xss: 'XSS',
+ phpExec: 'ການທຳງານຂອງສະຄຣິບ PHP',
+ oneWordTrojan: 'One word Trojan',
+ appFilter: 'ການກອງໄດເຣັກທໍຣີທີ່ເປັນອັນຕະລາຍ',
+ webShell: 'Webshell',
+ args: 'ພະລາມິເຕີທີ່ບໍ່ຫວັງດີ',
+ protocolFilter: 'ການກອງໂປຣໂຕຄໍ',
+ javaFilter: 'ການກອງໄຟລ໌ Java ທີ່ເປັນອັນຕະລາຍ',
+ scannerFilter: 'ການກອງ Scanner',
+ escapeFilter: 'ການກອງ Escape',
+ customRule: 'ກົດເກນກຳນົດເອງ',
+ httpMethod: 'ການກອງ HTTP Method',
+ fileExt: 'ຈຳກັດການອັບໂຫຼດໄຟລ໌',
+ fileExtHelper: 'ນາມສະກຸນໄຟລ໌ທີ່ຫ້າມອັບໂຫຼດ',
+ deny: 'ປະຕິເສດ',
+ allow: 'ອະນຸຍາດ',
+ allowOnly: 'ອະນຸຍາດສະເພາະ',
+ field: 'ເປົ້າໝາຍ',
+ pattern: 'ເງື່ອນໄຂ',
+ ruleContent: 'ເນື້ອໃນ',
+ contain: 'ລວມມີ',
+ equal: 'ເທົ່າກັບ',
+ regex: 'Regular Expression',
+ notEqual: 'ບໍ່ເທົ່າກັບ',
+ customRuleHelper: 'ດຳເນີນການຕາມເງື່ອນໄຂທີ່ກຳນົດ',
+ actionAllow: 'ອະນຸຍາດ',
+ blockIP: 'ບລັອກ IP',
+ code: 'ລະຫັດສະຖານະຕອບກັບ',
+ noRes: 'ຕັດການເຊື່ອມຕໍ່ (444)',
+ badReq: 'ພະລາມິເຕີບໍ່ຖືກຕ້ອງ (400)',
+ forbidden: 'ປະຕິເສດການເຂົ້າເຖິງ (403)',
+ serverErr: 'ເຊີເວີຂັດຂ້ອງ (500)',
+ resHtml: 'ໜ້າຕອບກັບ',
+ allowHelper: 'ການອະນຸຍາດຈະຂ້າມກົດເກນ WAF ອື່ນໆ, ກະລຸນາໃຊ້ຢ່າງລະມັດລະວັງ',
+ captcha: 'ການຢືນຢັນຕົວຕົນ (Captcha)',
+ fiveSeconds: 'ຢືນຢັນ 5 ວິນາທີ',
+ location: 'ພື້ນທີ່',
+ redisConfig: 'ການຕັ້ງຄ່າ Redis',
+ redisHelper: 'ເປີດໃຊ້ Redis ເພື່ອເກັບລາຍຊື່ IP ທີ່ຖືກບລັອກຊົ່ວຄາວ',
+ wafHelper: 'ເວັບໄຊທັງໝົດຈະບໍ່ໄດ້ຮັບການປ້ອງກັນຫາກປິດໃຊ້ງານ',
+ websiteWafHelper: 'ເວັບໄຊນີ້ຈະບໍ່ໄດ້ຮັບການປ້ອງກັນຫາກປິດໃຊ້ງານ',
+ attackIP: 'IP ທີ່ໂຈມຕີ',
+ attackParam: 'ລາຍລະອຽດການໂຈມຕີ',
+ execRule: 'ກົດເກນທີ່ກວດພົບ',
+ acl: 'ACL',
+ sql: 'SQL Injection',
+ cc: 'ຈຳກັດຄວາມຖີ່ການເຂົ້າເຖິງ',
+ isBlocking: 'ຖືກບລັອກ',
+ isFree: 'ປົດບລັອກແລ້ວ',
+ unLock: 'ປົດບລັອກ',
+ unLockHelper: 'ປົດບລັອກ IP: {0}?',
+ saveDefault: 'ບັນທຶກເປັນຄ່າເລີ່ມຕົ້ນ',
+ saveToWebsite: 'ນຳໃຊ້ກັບເວັບໄຊ',
+ saveToWebsiteHelper: 'ນຳໃຊ້ການຕັ້ງຄ່າປັດຈຸບັນກັບທຸກເວັບໄຊ?',
+ websiteHelper: 'ນີ້ຄືຄ່າເລີ່ມຕົ້ນສຳລັບການສ້າງເວັບໄຊໃໝ່. ການແກ້ໄຂຕ້ອງນຳໃຊ້ກັບເວັບໄຊຈຶ່ງຈະມີຜົນ',
+ websiteHelper2: 'ນີ້ຄືຄ່າເລີ່ມຕົ້ນສຳລັບການສ້າງເວັບໄຊໃໝ່. ກະລຸນາແກ້ໄຂການຕັ້ງຄ່າສະເພາະຢູ່ທີ່ຕົວເວັບໄຊ',
+ ipGroup: 'ກຸ່ມ IP',
+ ipGroupHelper: 'ໜຶ່ງ IP ຫຼື ຊ່ວງ IP ຕໍ່ແຖວ, ຮອງຮັບ IPv4 ແລະ IPv6, ຕົວຢ່າງ: 192.168.1.1 ຫຼື 192.168.1.0/24',
+ ipBlack: 'ບັນຊີດຳ IP',
+ openRestyAlert: 'ເວີຊັນ OpenResty ຕ້ອງສູງກວ່າ {0}',
+ initAlert:
+ 'ຕ້ອງມີການເລີ່ມຕົ້ນລະບົບ (Initialization) ໃນການໃຊ້ງານຄັ້ງທຳອິດ, ໄຟລ໌ຕັ້ງຄ່າເວັບໄຊຈະຖືກແກ້ໄຂ ແລະ ຄ່າ WAF ເດີມຈະຫາຍໄປ. ກະລຸນາສຳຮອງຂໍ້ມູນ OpenResty ກ່ອນ',
+ initHelper: 'ການເລີ່ມຕົ້ນລະບົບຈະລຶບການຕັ້ງຄ່າ WAF ທີ່ມີຢູ່. ເຈົ້າແນ່ໃຈບໍວ່າຕ້ອງການເລີ່ມຕົ້ນ?',
+ mainSwitch: 'ສະວິດຫຼັກ',
+ websiteSwitch: 'ສະວິດ',
+ websiteAlert: 'ກະລຸນາສ້າງເວັບໄຊກ່ອນ',
+ defaultUrlBlack: 'ກົດເກນ URL',
+ htmlRes: 'ໜ້າສະກັດກັ້ນ',
+ urlSearchHelper: 'ປ້ອນ URL ເພື່ອຄົ້ນຫາ',
+ hostSearchHelper: 'ປ້ອນ Host ເພື່ອຮອງຮັບການຄົ້ນຫາແບບຄຸມເຄືອ',
+ toCreate: 'ສ້າງ',
+ closeWaf: 'ປິດ WAF',
+ closeWafHelper: 'ການປິດ WAF ຈະເຮັດໃຫ້ເວັບໄຊບໍ່ມີການປ້ອງກັນ, ຕ້ອງການດຳເນີນການຕໍ່ບໍ?',
+ addblack: 'ເພີ່ມເຂົ້າບັນຊີດຳ',
+ addwhite: 'ເພີ່ມເຂົ້າບັນຊີຂາວ',
+ addblackHelper: 'ເພີ່ມ IP:{0} ເຂົ້າໃນບັນຊີດຳເລີ່ມຕົ້ນ?',
+ addwhiteHelper: 'ເພີ່ມ IP:{0} ເຂົ້າໃນບັນຊີຂາວເລີ່ມຕົ້ນ?',
+ defaultUaBlack: 'ກົດເກນ User-Agent',
+ defaultIpBlack: 'ກຸ່ມ IP ທີ່ບໍ່ຫວັງດີ',
+ cookie: 'ກົດເກນ Cookie',
+ urlBlack: 'ບັນຊີດຳ URL',
+ uaBlack: 'ບັນຊີດຳ User-Agent',
+ attackCount: 'ຈຳກັດຄວາມຖີ່ການໂຈມຕີ',
+ fileExtCheck: 'ຈຳກັດການອັບໂຫຼດໄຟລ໌',
+ geoRestrict: 'ຈຳກັດການເຂົ້າເຖິງຕາມພື້ນທີ່',
+ originProtect: 'ການປ້ອງກັນ CDN Origin',
+ attacklog: 'ປະຫວັດການສະກັດກັ້ນ',
+ unknownWebsite: 'ການເຂົ້າເຖິງໂດເມນທີ່ບໍ່ໄດ້ຮັບອະນຸຍາດ',
+ geoRuleEmpty: 'ພື້ນທີ່ບໍ່ສາມາດຫວ່າງໄດ້',
+ unknown: 'ບໍ່ມີເວັບໄຊນີ້',
+ geo: 'ຈຳກັດພື້ນທີ່',
+ revertHtml: 'ຄືນຄ່າ {0} ເປັນໜ້າເລີ່ມຕົ້ນ?',
+ five_seconds: 'ຢືນຢັນ 5 ວິນາທີ',
+ header: 'ກົດເກນ Header',
+ methodWhite: 'ກົດເກນ HTTP',
+ expiryDate: 'ວັນໝົດອາຍຸ',
+ expiryDateHelper: 'ຫຼັງຈາກຢືນຢັນຜ່ານແລ້ວ, ຈະບໍ່ມີການຢືນຢັນອີກພາຍໃນກຳນົດເວລາ',
+ defaultIpBlackHelper: 'ລວມລາຍຊື່ IP ທີ່ບໍ່ຫວັງດີຈາກອິນເຕີເນັດເພື່ອປ້ອງກັນການເຂົ້າເຖິງ',
+ notFoundCount: 'ຈຳກັດຄວາມຖີ່ 404',
+ matchValue: 'ຄ່າທີ່ກົງກັນ',
+ headerName: 'ຮອງຮັບຕົວອັກສອນພາສາອັງກິດ, ຕົວເລກ, - ຄວາມຍາວ 3-30',
+ cdnHelper: 'ເວັບໄຊທີ່ໃຊ້ CDN ສາມາດເປີດບ່ອນນີ້ເພື່ອດຶງ IP ທີ່ແທ້ຈິງ',
+ clearLogWarn: 'ບໍ່ສາມາດກູ້ຄືນບັນທຶກທີ່ລຶບແລ້ວໄດ້, ຕ້ອງການຕໍ່ບໍ?',
+ commonRuleHelper: 'ກົດເກນເປັນແບບຄົ້ນຫາບາງສ່ວນ (Fuzzy Matching)',
+ blockIPHelper:
+ 'IP ທີ່ຖືກບລັອກຈະຖືກເກັບໄວ້ໃນ OpenResty ຊົ່ວຄາວ ແລະ ຈະປົດບລັອກເມື່ອ Restart OpenResty. ສາມາດບລັອກຖາວອນໄດ້ຜ່ານຟັງຊັນບລັອກ',
+ addWhiteUrlHelper: 'ເພີ່ມ URL {0} ເຂົ້າໃນບັນຊີຂາວ?',
+ dashHelper: 'ເວີຊັນ Community ສາມາດໃຊ້ຟັງຊັນໃນການຕັ້ງຄ່າທົ່ວໄປ ແລະ ເວັບໄຊໄດ້',
+ wafStatusHelper: 'ໄຟວໍ (Firewall) ຍັງບໍ່ໄດ້ເປີດໃຊ້. ການປ້ອງກັນເວັບໄຊຖືກຢຸດຊົ່ວຄາວ.',
+ enableProtection: 'ເປີດການປ້ອງກັນ',
+ ccMode: 'ໂໝດ',
+ global: 'ໂໝດທົ່ວໄປ',
+ uriMode: 'ໂໝດ URL',
+ globalHelper: 'ໂໝດທົ່ວໄປ: ເຮັດວຽກເມື່ອຈຳນວນຄຳຮ້ອງຂໍທັງໝົດໄປຫາ URL ໃດໜຶ່ງເກີນເກນທີ່ກຳນົດ',
+ uriModeHelper: 'ໂໝດ URL: ເຮັດວຽກເມື່ອຈຳນວນຄຳຮ້ອງຂໍໄປຫາ URL ດຽວເກີນເກນທີ່ກຳນົດ',
+ ip: 'ບັນຊີດຳ IP',
+ globalSettingHelper:
+ 'ການຕັ້ງຄ່າທີ່ມີແທັກ [ເວັບໄຊ] ຕ້ອງເປີດໃນ [ຕັ້ງຄ່າເວັບໄຊ], ຄ່າທົ່ວໄປເປັນພຽງຄ່າເລີ່ມຕົ້ນສຳລັບເວັບໄຊໃໝ່',
+ globalSettingHelper2: 'ຕ້ອງເປີດໃຊ້ງານທັງໃນ [ຕັ້ງຄ່າທົ່ວໄປ] ແລະ [ຕັ້ງຄ່າເວັບໄຊ] ພ້ອມກັນ',
+ urlCCHelper: 'ຄຳຮ້ອງຂໍເກີນ {1} ຄັ້ງຕໍ່ URL ນີ້ພາຍໃນ {0} ວິນາທີ, ຈະບລັອກ IP ນີ້ {2}',
+ urlCCHelper2: 'URL ບໍ່ສາມາດມີພະລາມິເຕີໄດ້',
+ notContain: 'ບໍ່ລວມມີ',
+ urlcc: 'ຈຳກັດຄວາມຖີ່ URL',
+ method: 'ປະເພດຄຳຮ້ອງຂໍ',
+ addIpsToBlock: 'ບລັອກ IP ແບບກຸ່ມ',
+ addIpSegmentToBlock: 'ບລັອກຊ່ວງ IP',
+ addIpSegmentsToBlock: 'ບລັອກຊ່ວງ IP ແບບກຸ່ມ',
+ addUrlsToWhite: 'ເພີ່ມ URL ເຂົ້າບັນຊີຂາວແບບກຸ່ມ',
+ noBlackIp: 'IP ຖືກບລັອກແລ້ວ, ບໍ່ຈຳເປັນຕ້ອງບລັອກຊ້ຳ',
+ noWhiteUrl: 'URL ຢູ່ໃນບັນຊີຂາວແລ້ວ, ບໍ່ຈຳເປັນຕ້ອງເພີ່ມຊ້ຳ',
+ spiderIpHelper:
+ 'ລວມມີ Baidu, Bing, Google, 360, Shenma, Sogou, ByteDance, DuckDuckGo, Yandex. ຫາກປິດຈະບລັອກ Spider ທັງໝົດ.',
+ spiderIp: 'ກຸ່ມ IP ຂອງ Spider',
+ spider: 'Spider',
+ spiderAllowlist: 'Spider ທີ່ອະນຸຍາດ',
+ spiderAllowlistEmpty: 'ບໍ່ໄດ້ເລືອກ Spider. ການບັນທຶກຈະບລັອກການເຂົ້າເຖິງຂອງ Spider ທັງໝົດ.',
+ geoIp: 'ຖານຂໍ້ມູນທີ່ຢູ່ IP',
+ geoIpHelper: 'ໃຊ້ເພື່ອຢືນຢັນທີ່ຕັ້ງທາງພູມສາດຂອງ IP',
+ stat: 'ລາຍງານການໂຈມຕີ',
+ statTitle: 'ລາຍງານ',
+ attackIp: 'IP',
+ attackCountNum: 'ຈຳນວນຄັ້ງ',
+ percent: 'ເປີເຊັນ',
+ addblackUrlHelper: 'ຕ້ອງການເພີ່ມ URL: {0} ເຂົ້າໃນບັນຊີດຳເລີ່ມຕົ້ນບໍ?',
+ rce: 'Remote Code Execution',
+ software: 'ຊອບແວ',
+ cveHelper: 'ລວມມີຊ່ອງໂຫວ່ຂອງຊອບແວ ແລະ Framework ທີ່ພົບເລື້ອຍ',
+ vulnCheck: 'ກົດເກນເພີ່ມເຕີມ',
+ ssrf: 'ຊ່ອງໂຫວ່ SSRF',
+ afr: 'ການອ່ານໄຟລ໌ຕາມໃຈ (Arbitrary File Read)',
+ ua: 'ການເຂົ້າເຖິງໂດຍບໍ່ໄດ້ຮັບອະນຸຍາດ',
+ id: 'ຂໍ້ມູນຮົ່ວໄຫຼ',
+ aa: 'ການຂ້າມຜ່ານການຢືນຢັນຕົວຕົນ',
+ dr: 'Directory Traversal',
+ xxe: 'ຊ່ອງໂຫວ່ XXE',
+ suid: 'ຊ່ອງໂຫວ່ Serialization',
+ dos: 'ຊ່ອງໂຫວ່ Denial of Service',
+ afd: 'ການດາວໂຫຼດໄຟລ໌ຕາມໃຈ',
+ sqlInjection: 'SQL Injection',
+ afw: 'ການຂຽນໄຟລ໌ຕາມໃຈ',
+ il: 'ຂໍ້ມູນຮົ່ວໄຫຼ',
+ clearAllLog: 'ລຶບບັນທຶກທັງໝົດ',
+ exportLog: 'ສົ່ງອອກບັນທຶກ',
+ appRule: 'ກົດເກນແອັບພລິເຄຊັນ',
+ appRuleHelper:
+ 'ກົດເກນແອັບພລິເຄຊັນທົ່ວໄປ, ການເປີດໃຊ້ຈະຊ່ວຍລຸດຂໍ້ຜິດພາດ (False Positives), ໜຶ່ງເວັບໄຊໃຊ້ໄດ້ພຽງກົດເກນດຽວ',
+ logExternal: 'ປະເພດທີ່ບໍ່ບັນທຶກ',
+ ipWhite: 'ບັນຊີຂາວ IP',
+ urlWhite: 'ບັນຊີຂາວ URL',
+ uaWhite: 'ບັນຊີຂາວ User-Agent',
+ logExternalHelper:
+ 'ປະເພດທີ່ເລືອກຈະບໍ່ຖືກບັນທຶກໃນ Log. ບັນຊີດຳ/ຂາວ, ການຈຳກັດພື້ນທີ່ ແລະ ກົດເກນກຳນົດເອງມັກຈະສ້າງ Log ຈຳນວນຫຼາຍ ແນະນຳໃຫ້ຍົກເວັ້ນ',
+ ssti: 'ການໂຈມຕີ SSTI',
+ crlf: 'CRLF Injection',
+ strict: 'ໂໝດເຂັ້ມງວດ',
+ strictHelper: 'ໃຊ້ກົດເກນທີ່ເຂັ້ມງວດກວ່າເພື່ອທົດສອບຄຳຮ້ອງຂໍ',
+ executionStrategy: 'ກົນລະຍຸດການດຳເນີນງານ',
+ detectionStrength: 'ຄວາມເຂັ້ມແຂງການກວດຈັບ',
+ protectionMode: 'ໂໝດປ້ອງກັນ',
+ observationMode: 'ໂໝດສັງເກດການ',
+ standardMode: 'ໂໝດມາດຕະຖານ',
+ observationModeHelper: 'ກວດຈັບ ແລະ ບັນທຶກຄຳຮ້ອງຂໍໂດຍບໍ່ບລັອກ',
+ observationModeConfirm: 'ໃນໂໝດສັງເກດການ ການຈັບຄູ່ WAF ທັງໝົດຈະຖືກບັນທຶກໂດຍບໍ່ບລັອກຄຳຮ້ອງຂໍ. ຕ້ອງການຕໍ່ບໍ?',
+ globalStrictRequired: 'ກະລຸນາເປີດໂໝດເຂັ້ມງວດໃນການຕັ້ງຄ່າສ່ວນກາງກ່ອນ',
+ observe: 'ສັງເກດການ',
+ saveLog: 'ບັນທຶກ Log',
+ remoteURLHelper: 'Remote URL ຕ້ອງມີໜຶ່ງ IP ຕໍ່ແຖວ ແລະ ບໍ່ມີຕົວອັກສອນອື່ນ',
+ notFound: 'ບໍ່ພົບ (404)',
+ serviceUnavailable: 'ບໍລິການບໍ່ພ້ອມໃຊ້ງານ (503)',
+ gatewayTimeout: 'Gateway Timeout (504)',
+ belongToIpGroup: 'ຢູ່ໃນກຸ່ມ IP',
+ notBelongToIpGroup: 'ບໍ່ຢູ່ໃນກຸ່ມ IP',
+ unknownWebsiteKey: 'ບໍ່ຮູ້ຈັກໂດເມນ',
+ special: 'ພິເສດ',
+ fileToLarge: 'ໄຟລ໌ໃຫຍ່ເກີນ 1MB ບໍ່ສາມາດອັບໂຫຼດໄດ້',
+ uploadOverLimit: 'ອັບໂຫຼດໄຟລ໌ເກີນຈຳນວນທີ່ກຳນົດ, ສູງສຸດ 1 ໄຟລ໌',
+ importRuleHelper: 'ໜຶ່ງກົດເກນຕໍ່ແຖວ',
+ },
+ monitor: {
+ '360': '360 Search',
+ name: 'ຕິດຕາມເວັບໄຊ',
+ pv: 'Page Views',
+ uv: 'Unique Visitors',
+ flow: 'ການຮັບສົ່ງຂໍ້ມູນ',
+ ip: 'IP',
+ spider: 'Spider',
+ visitors: 'ແນວໂນ້ມຜູ້ເຂົ້າຊົມ',
+ today: 'ມື້ນີ້',
+ last7days: '7 ວັນຫຼ້າສຸດ',
+ last30days: '30 ວັນຫຼ້າສຸດ',
+ uvMap: 'ແຜນທີ່ຜູ້ເຂົ້າຊົມ (ວັນທີ 30)',
+ qps: 'ຄຳຮ້ອງຂໍທັນທີ (ຕໍ່ນາທີ)',
+ flowSec: 'ການຮັບສົ່ງຂໍ້ມູນທັນທີ (ຕໍ່ນາທີ)',
+ excludeCode: 'ຍົກເວັ້ນລະຫັດສະຖານະ',
+ excludeUrl: 'ຍົກເວັ້ນ URL',
+ excludeExt: 'ຍົກເວັ້ນນາມສະກຸນໄຟລ໌',
+ cdnHelper: 'ດຶງ IP ທີ່ແທ້ຈິງຈາກ Header ທີ່ CDN ສົ່ງມາ',
+ reqRank: 'ອັນດັບການເຂົ້າຊົມ',
+ refererDomain: 'ໂດເມນທີ່ສົ່ງມາ',
+ os: 'ລະບົບປະຕິບັດການ',
+ browser: 'ບຣາວເຊີ/ໄຄລເອັນ',
+ device: 'ອຸປະກອນ',
+ showMore: 'ເພີ່ມເຕີມ',
+ unknown: 'ອື່ນໆ',
+ pc: 'ຄອມພິວເຕີ',
+ mobile: 'ອຸປະກອນມືຖື',
+ wechat: 'WeChat',
+ machine: 'ເຄື່ອງຈັກ/ບັອດ',
+ tencent: 'Tencent Browser',
+ ucweb: 'UC Browser',
+ '2345explorer': '2345 browser',
+ huaweibrowser: 'Huawei Browser',
+ log: 'ບັນທຶກຄຳຮ້ອງຂໍ',
+ statusCode: 'ລະຫັດສະຖານະ',
+ requestTime: 'ເວລາຕອບສະໜອງ',
+ flowRes: 'ຂໍ້ມູນທີ່ຕອບກັບ',
+ method: 'ວິທີການ (Method)',
+ statusCodeHelper: 'ປ້ອນລະຫັດສະຖານະດ້ານເທິງ',
+ statusCodeError: 'ປະເພດລະຫັດສະຖານະບໍ່ຖືກຕ້ອງ',
+ methodHelper: 'ປ້ອນວິທີການດ້ານເທິງ',
+ all: 'ທັງໝົດ',
+ baidu: 'Baidu',
+ google: 'Google',
+ bing: 'Bing',
+ bytes: 'Today headlines',
+ sogou: 'Sogou',
+ failed: 'ຜິດພາດ',
+ ipCount: 'ຈຳນວນ IP',
+ spiderCount: 'ຄຳຮ້ອງຂໍຈາກ Spider',
+ averageReqTime: 'ເວລາຕອບສະໜອງສະເລ່ຍ',
+ totalFlow: 'ຂໍ້ມູນທັງໝົດ',
+ logSize: 'ຂະໜາດໄຟລ໌ Log',
+ realIPType: 'ວິທີການດຶງ IP ທີ່ແທ້ຈິງ',
+ realIPRecognition: 'ການກວດຈັບ IP ຈິງ',
+ fromHeader: 'ດຶງຈາກ HTTP Header',
+ fromHeaders: 'ດຶງຈາກລາຍຊື່ Header',
+ header: 'HTTP Header',
+ cdnConfig: 'ການຕັ້ງຄ່າ CDN',
+ xff1: 'Proxy ຊັ້ນທີ 1 ຈາກ X-Forwarded-For',
+ xff2: 'Proxy ຊັ້ນທີ 2 ຈາກ X-Forwarded-For',
+ xff3: 'Proxy ຊັ້ນທີ 3 ຈາກ X-Forwarded-For',
+ xffHelper:
+ 'ຕົວຢ່າງ: X-Forwarded-For: ,,, Proxy ຊັ້ນເທິງຈະເອົາ IP ສຸດທ້າຍ ',
+ headersHelper: 'ດຶງ IP ທີ່ແທ້ຈິງຈາກ Header ທີ່ CDN ໃຊ້ເລື້ອຍໆ, ໂດຍເລືອກຄ່າທຳອິດທີ່ມີ',
+ monitorCDNHelper: 'ການແກ້ໄຂ CDN ໃນການຕິດຕາມເວັບໄຊຈະອັບເດດການຕັ້ງຄ່າ WAF CDN ນຳ',
+ wafCDNHelper: 'ການແກ້ໄຂ CDN ໃນ WAF ຈະອັບເດດການຕັ້ງຄ່າຕິດຕາມເວັບໄຊນຳ',
+ originProtection: 'ການປ້ອງກັນ Origin',
+ originProtectionHelper:
+ 'ມີພຽງໂນດ CDN ໃນກຸ່ມ IP ທີ່ເລືອກເທົ່ານັ້ນທີ່ສາມາດເຊື່ອມຕໍ່ Origin. ການກວດຈັບ IP ຈິງຂອງຜູ້ເຂົ້າຊົມໃຊ້ສະວິດແຍກຕ່າງຫາກ.',
+ originProtectionIPGroups: 'ກຸ່ມ IP Origin ຂອງ CDN',
+ originProtectionIPGroupsPlaceholder: 'ເລືອກກຸ່ມ IP Origin ຂອງ CDN ທີ່ເຊື່ອຖືໄດ້',
+ originProtectionWarning:
+ 'ການຕັ້ງຄ່າທີ່ບໍ່ຖືກຕ້ອງອາດເຮັດໃຫ້ເວັບໄຊໃຊ້ງານບໍ່ໄດ້. ກະລຸນາຢືນຢັນວ່າລວມທີ່ຢູ່ CDN Origin ທັງໝົດແລ້ວ.',
+ originProtectionEnableConfirm:
+ 'ການເຊື່ອມຕໍ່ນອກກຸ່ມ IP ທີ່ເລືອກຈະຖືກມອງວ່າເປັນການເຂົ້າ Origin ໂດຍກົງ ແລະ ຈະຖືກບລັອກ. ຕ້ອງການຕໍ່ບໍ?',
+ statusErr: 'ຮູບແບບລະຫັດສະຖານະບໍ່ຖືກຕ້ອງ',
+ shenma: 'Shenma Search',
+ duckduckgo: 'DuckDuckGo',
+ yandex: 'Yandex',
+ gptbot: 'GPTBot',
+ excludeUri: 'ຍົກເວັ້ນ URI',
+ top100Helper: 'ສະແດງຂໍ້ມູນ 100 ອັນດັບທຳອິດ',
+ logSaveDay: 'ໄລຍະເວລາເກັບ Log (ວັນ)',
+ cros: 'Chrome OS',
+ theworld: 'TheWorld Browser',
+ edge: 'Microsoft Edge',
+ maxthon: 'Maxthon Browser',
+ monitorStatusHelper: 'ການຕິດຕາມເວັບໄຊຖືກປິດຢູ່. ເປີດໃຊ້ງານດຽວນີ້',
+ excludeIp: 'ຍົກເວັ້ນທີ່ຢູ່ IP',
+ excludeUa: 'ຍົກເວັ້ນ User-Agent',
+ remotePort: 'ພອດປາຍທາງ',
+ unknown_browser: 'ບໍ່ຮູ້ຈັກ',
+ unknown_os: 'ບໍ່ຮູ້ຈັກ',
+ unknown_device: 'ບໍ່ຮູ້ຈັກ',
+ logSaveSize: 'ຂະໜາດ Log ສູງສຸດ',
+ logSaveSizeHelper: 'ນີ້ຄືຂະໜາດການບັນທຶກ Log ສຳລັບໜຶ່ງເວັບໄຊ',
+ '360se': '360 Security Browser',
+ websites: 'ລາຍຊື່ເວັບໄຊ',
+ trend: 'ສະຖິຕິແນວໂນ້ມ',
+ reqCount: 'ຈຳນວນຄຳຮ້ອງຂໍ',
+ uriHelper: 'ສາມາດໃຊ້ /test/* ຫຼື /*/index.php ເພື່ອຍົກເວັ້ນ Uri',
+ },
+ tamper: {
+ tamper: 'ປ້ອງກັນການແຊກແຊງເວັບໄຊ',
+ tamperCreateHint:
+ 'ໄດເຣັກທໍຣີປັດຈຸບັນອາດໄດ້ຮັບຜົນຈາກການປ້ອງກັນການແກ້ໄຂ ຫຼື ຄຸນສົມບັດໄຟລ໌, ເຮັດໃຫ້ສ້າງບໍ່ສຳເລັດ.',
+ ignoreTemplate: 'ແທັມເພລດການຍົກເວັ້ນ',
+ protectTemplate: 'ແທັມເພລດການປ້ອງກັນ',
+ ignoreTemplateHelper:
+ 'ປ້ອນກົດເກນການຍົກເວັ້ນ (ແຍກດ້ວຍ Enter ຫຼື ຍະຫວ່າງ). (ໄດເຣັກທໍຣີສະເພາະ ./log ຫຼື ຊື່ tmp. ສຳລັບໄຟລ໌ ໃຫ້ປ້ອນທີ່ຢູ່ໄຟລ໌ ເຊັ່ນ ./data/test.html)',
+ protectTemplateHelper:
+ 'ປ້ອນກົດເກນການປ້ອງກັນ (ແຍກດ້ວຍ Enter ຫຼື ຍະຫວ່າງ). (ໄຟລ໌ສະເພາະ ./index.html, ນາມສະກຸນ .html, ປະເພດໄຟລ໌ js. ສຳລັບໄດເຣັກທໍຣີ ໃຫ້ປ້ອນທີ່ຢູ່ ເຊັ່ນ ./log)',
+ templateContent: 'ເນື້ອໃນແທັມເພລດ',
+ template: 'ແທັມເພລດ',
+ saveTemplate: 'ບັນທຶກເປັນແທັມເພລດ',
+ tamperHelper1:
+ 'ສຳລັບເວັບໄຊທີ່ຕິດຕັ້ງແບບຄລິກດຽວ, ແນະນຳໃຫ້ປ້ອງກັນໄດເຣັກທໍຣີຂອງແອັບ. ຫາກເວັບໄຊໃຊ້ງານບໍ່ໄດ້ ຫຼື ສຳຮອງ/ກູ້ຄືນລົ້ມເຫຼວ, ໃຫ້ປິດການປ້ອງກັນກ່ອນ.',
+ tamperHelper2: 'ນີ້ຈະຈຳກັດການອ່ານ, ຂຽນ, ລຶບ, ປ່ຽນສິດ ແລະ ເຈົ້າຂອງໄຟລ໌ໃນໄດເຣັກທໍຣີທີ່ໄດ້ຮັບການປ້ອງກັນ.',
+ tamperPath: 'ໄດເຣັກທໍຣີທີ່ປ້ອງກັນ',
+ tamperPathEdit: 'ແກ້ໄຂທີ່ຢູ່',
+ log: 'Log ການສະກັດກັ້ນ',
+ totalProtect: 'ການປ້ອງກັນທັງໝົດ',
+ todayProtect: 'ການປ້ອງກັນມື້ນີ້',
+ templateRule: 'ຄວາມຍາວ 1-512, ແລະ ຊື່ຫ້າມມີສັນຍະລັກ {0}.',
+ ignore: 'ຍົກເວັ້ນ',
+ ignoreHelper: 'ເລືອກ ຫຼື ປ້ອນກົດເກນການຍົກເວັ້ນ (ແຍກດ້ວຍ Enter ຫຼື ຍະຫວ່າງ).',
+ protect: 'ປ້ອງກັນ',
+ protectHelper: 'ເລືອກ ຫຼື ປ້ອນກົດເກນການປ້ອງກັນ (ແຍກດ້ວຍ Enter ຫຼື ຍະຫວ່າງ).',
+ tamperHelper00: 'ການຍົກເວັ້ນ ແລະ ປ້ອງກັນ ຮອງຮັບສະເພາະທີ່ຢູ່ແບບສຳພັດ (Relative Paths).',
+ tamperHelper01: 'ຫຼັງຈາກເປີດໃຊ້, ລະບົບຈະຈຳກັດການສ້າງ, ແກ້ໄຂ ແລະ ລຶບໄຟລ໌ໃນໄດເຣັກທໍຣີທີ່ປ້ອງກັນ.',
+ tamperHelper02: 'ລຳດັບຄວາມສຳຄັນ: ປ້ອງກັນສະເພາະທີ່ຢູ່ > ຍົກເວັ້ນສະເພາະທີ່ຢູ່ > ປ້ອງກັນ > ຍົກເວັ້ນ',
+ tamperHelper03:
+ 'ການຕິດຕາມຈະເຮັດວຽກສະເພາະໄດເຣັກທໍຣີທີ່ບໍ່ໄດ້ຍົກເວັ້ນ, ໂດຍກວດສອບການສ້າງໄຟລ໌ທີ່ບໍ່ໄດ້ປ້ອງກັນ.',
+ disableHelper: 'ກຳລັງຈະປິດການປ້ອງກັນການແຊກແຊງສຳລັບເວັບໄຊຕໍ່ໄປນີ້, ຕ້ອງການຕໍ່ບໍ?',
+ appendOnly: 'ເພີ່ມໄດ້ຢ່າງດຽວ',
+ appendOnlyHelper:
+ 'ຈຳກັດການລຶບໄຟລ໌ໃນໄດເຣັກທໍຣີນີ້, ອະນຸຍາດສະເພາະການເພີ່ມໄດເຣັກທໍຣີທີ່ຍົກເວັ້ນ ຫຼື ໄຟລ໌ທີ່ບໍ່ໄດ້ປ້ອງກັນ',
+ immutable: 'ປ່ຽນແປງບໍ່ໄດ້',
+ immutableHelper: 'ຈຳກັດການແກ້ໄຂ, ລຶບ, ປ່ຽນສິດ ແລະ ເຈົ້າຂອງສຳລັບໄຟລ໌ນີ້',
+ onWatch: 'ຕິດຕາມ',
+ onWatchHelper: 'ຕິດຕາມ ແລະ ສະກັດກັ້ນການສ້າງໄຟລ໌ທີ່ປ້ອງກັນ ຫຼື ໄດເຣັກທໍຣີທີ່ບໍ່ໄດ້ຍົກເວັ້ນ',
+ forceStop: 'ບັງຄັບປິດ',
+ forceStopHelper: 'ກຳລັງຈະບັງຄັບປິດຟັງຊັນປ້ອງກັນການແຊກແຊງສຳລັບເວັບໄຊນີ້. ຕ້ອງການຕໍ່ບໍ?',
+ },
+ setting: {
+ setting: 'ຕັ້ງຄ່າພາແນລ',
+ title: 'ຄຳອະທິບາຍພາແນລ',
+ titleHelper: 'ຈະສະແດງໃນໜ້າລັອກອິນ (ເຊັ່ນ: ພາແນລຈັດການເຊີເວີ Linux, ແນະນຳ 8-15 ຕົວອັກສອນ)',
+ logo: 'ໂລໂກ້ (ບໍ່ມີຂໍ້ຄວາມ)',
+ logoHelper: 'ຈະສະແດງຢູ່ມຸມຊ້າຍເທິງເມື່ອເມນູຖືກຫຍໍ້ (ຂະໜາດແນະນຳ: 82px*82px)',
+ logoWithText: 'ໂລໂກ້ (ມີຂໍ້ຄວາມ)',
+ logoWithTextHelper: 'ຈະສະແດງຢູ່ມຸມຊ້າຍເທິງເມື່ອເມນູຖືກຂະຫຍາຍ (ຂະໜາດແນະນຳ: 185px*55px)',
+ favicon: 'ໄອຄອນເວັບໄຊ',
+ faviconHelper: 'ໄອຄອນເວັບໄຊ (ຂະໜາດແນະນຳ: 16px*16px)',
+ setDefault: 'ຄືນຄ່າເລີ່ມຕົ້ນ',
+ setHelper: 'ການຕັ້ງຄ່າປັດຈຸບັນຈະຖືກບັນທຶກ. ຕ້ອງການຕໍ່ບໍ?',
+ setDefaultHelper: 'ການຕັ້ງຄ່າພາແນລທັງໝົດຈະຖືກຄືນຄ່າເປັນເລີ່ມຕົ້ນ. ຕ້ອງການຕໍ່ບໍ?',
+ logoGroup: 'ໂລໂກ້',
+ imageGroup: 'ຮູບພາບ',
+ loginImage: 'ຮູບພາບ',
+ loginImageHelper: 'ສະແດງໃນໜ້າລັອກອິນ (ຂະໜາດແນະນຳ: 500*416px)',
+ loginBgType: 'ປະເພດພື້ນຫຼັງ',
+ loginBgImage: 'ຮູບພື້ນຫຼັງ',
+ loginBgImageHelper: 'ສະແດງເປັນຮູບພື້ນຫຼັງໃນໜ້າລັອກອິນ (ຂະໜາດແນະນຳ: 1920*1080px)',
+ loginBgColor: 'ສີພື້ນຫຼັງ',
+ loginBgColorHelper: 'ສະແດງເປັນສີພື້ນຫຼັງໃນໜ້າລັອກອິນ',
+ image: 'ຮູບພາບ',
+ bgColor: 'ສີພື້ນຫຼັງ',
+ loginGroup: 'ໜ້າລັອກອິນ',
+ loginBtnLinkColor: 'ສີປຸ່ມ/ລິ້ງ',
+ loginBtnLinkColorHelper: 'ຈະສະແດງເປັນສີປຸ່ມ ຫຼື ລິ້ງໃນໜ້າລັອກອິນ',
+ },
+ helper: {
+ wafTitle1: 'ແຜນທີ່ການສະກັດກັ້ນ',
+ wafContent1: 'ສະແດງການກະຈາຍຕົວທາງພູມສາດຂອງການສະກັດກັ້ນໃນ 30 ວັນຫຼ້າສຸດ',
+ wafTitle2: 'ຈຳກັດການເຂົ້າເຖິງຕາມພື້ນທີ່',
+ wafContent2: 'ຈຳກັດແຫຼ່ງທີ່ມາຂອງເວັບໄຊຕາມທີ່ຕັ້ງທາງພູມສາດ',
+ wafTitle3: 'ໜ້າສະກັດກັ້ນກຳນົດເອງ',
+ wafContent3: 'ສ້າງໜ້າເວັບກຳນົດເອງເພື່ອສະແດງຫຼັງຈາກຄຳຮ້ອງຂໍຖືກສະກັດກັ້ນ',
+ wafTitle4: 'ກົດເກນກຳນົດເອງ (ACL)',
+ wafContent4: 'ສະກັດກັ້ນຄຳຮ້ອງຂໍຕາມກົດເກນທີ່ກຳນົດເອງ',
+ tamperTitle1: 'ຕິດຕາມຄວາມສົມບູນຂອງໄຟລ໌',
+ tamperContent1: 'ຕິດຕາມຄວາມສົມບູນຂອງໄຟລ໌ເວັບໄຊ, ລວມມີໄຟລ໌ຫຼັກ, ສະຄຣິບ ແລະ ໄຟລ໌ຕັ້ງຄ່າ.',
+ tamperTitle2: 'ສະແກນ ແລະ ກວດຈັບແບບທັນທີ',
+ tamperContent2: 'ກວດຈັບໄຟລ໌ທີ່ຜິດປົກກະຕິ ຫຼື ຖືກແຊກແຊງໂດຍການສະແກນລະບົບໄຟລ໌ແບບທັນທີ.',
+ tamperTitle3: 'ຕັ້ງຄ່າສິດຄວາມປອດໄພ',
+ tamperContent3: 'ຈຳກັດການເຂົ້າເຖິງໄຟລ໌ຜ່ານການຕັ້ງສິດທີ່ເໝາະສົມ, ຊ່ວຍລຸດຊ່ອງທາງການໂຈມຕີ.',
+ tamperTitle4: 'ການບັນທຶກ ແລະ ວິເຄາະ',
+ tamperContent4: 'ບັນທຶກການເຂົ້າເຖິງ ແລະ ດຳເນີນການກັບໄຟລ໌ເພື່ອການກວດສອບ ແລະ ວິເຄາະໄພຄຸກຄາມ.',
+ settingTitle1: 'ຂໍ້ຄວາມຕ້ອນຮັບກຳນົດເອງ',
+ settingContent1: 'ຕັ້ງຂໍ້ຄວາມຕ້ອນຮັບໃນໜ້າລັອກອິນຂອງ 1Panel.',
+ settingTitle2: 'ໂລໂກ້ກຳນົດເອງ',
+ settingContent2: 'ອະນຸຍາດໃຫ້ອັບໂຫຼດໂລໂກ້ທີ່ມີຊື່ແບຣນ ຫຼື ຂໍ້ຄວາມອື່ນໆ.',
+ settingTitle3: 'ໄອຄອນເວັບໄຊກຳນົດເອງ',
+ settingContent3: 'ອະນຸຍາດໃຫ້ອັບໂຫຼດໄອຄອນເພື່ອແທນທີ່ໄອຄອນບຣາວເຊີເລີ່ມຕົ້ນ.',
+ monitorTitle1: 'ແນວໂນ້ມຜູ້ເຂົ້າຊົມ',
+ monitorContent1: 'ສະຖິຕິ ແລະ ສະແດງແນວໂນ້ມຜູ້ເຂົ້າຊົມເວັບໄຊ',
+ monitorTitle2: 'ແຜນທີ່ຜູ້ເຂົ້າຊົມ',
+ monitorContent2: 'ສະຖິຕິ ແລະ ສະແດງການກະຈາຍຕົວທາງພູມສາດຂອງຜູ້ເຂົ້າຊົມ',
+ monitorTitle3: 'ສະຖິຕິການເຂົ້າເຖິງ',
+ monitorContent3: 'ສະຖິຕິຂໍ້ມູນຄຳຮ້ອງຂໍ, ລວມມີ Spider, ອຸປະກອນ, ສະຖານະຄຳຮ້ອງຂໍ ແລະ ອື່ນໆ.',
+ monitorTitle4: 'ຕິດຕາມແບບທັນທີ',
+ monitorContent4: 'ຕິດຕາມຂໍ້ມູນຄຳຮ້ອງຂໍແບບທັນທີ, ລວມມີຈຳນວນຄຳຮ້ອງຂໍ, ປະລິມານຂໍ້ມູນ ແລະ ອື່ນໆ.',
+ alertTitle1: 'ແຈ້ງເຕືອນຜ່ານ SMS',
+ alertContent1: 'ແຈ້ງເຕືອນເມື່ອຊັບພະຍາກອນເຊີເວີຜິດປົກກະຕິ, ເວັບໄຊ ຫຼື ໃບຢັ້ງຢືນໝົດອາຍຸ ແລະ ອື່ນໆ.',
+ alertTitle2: 'ບັນທຶກການແຈ້ງເຕືອນ',
+ alertContent2: 'ເບິ່ງປະຫວັດການແຈ້ງເຕືອນເພື່ອຕິດຕາມ ແລະ ວິເຄາະເຫດການທີ່ຜ່ານມາ.',
+ alertTitle3: 'ຕັ້ງຄ່າການແຈ້ງເຕືອນ',
+ alertContent3: 'ກຳນົດເບີໂທລະສັບ, ຄວາມຖີ່ ແລະ ເວລາການສົ່ງແຈ້ງເຕືອນໃຫ້ເໝາະສົມ.',
+ nodeDashTitle1: 'ຈັດການແອັບພລິເຄຊັນ',
+ nodeDashContent1: 'ຈັດການແອັບຫຼາຍໂນດແບບລວມສູນ, ຕິດຕາມສະຖານະ, ເລີ່ມ/ຢຸດ ແລະ ສຳຮອງຂໍ້ມູນ',
+ nodeDashTitle2: 'ຈັດການເວັບໄຊ',
+ nodeDashContent2: 'ຈັດການເວັບໄຊຫຼາຍໂນດ, ຕິດຕາມສະຖານະແບບທັນທີ ແລະ ສຳຮອງຂໍ້ມູນແບບກຸ່ມ',
+ nodeDashTitle3: 'ຈັດການຖານຂໍ້ມູນ',
+ nodeDashContent3: 'ຈັດການຖານຂໍ້ມູນຫຼາຍໂນດ, ເບິ່ງສະຖານະຫຼັກ ແລະ ສຳຮອງຂໍ້ມູນຄລິກດຽວ',
+ nodeDashTitle4: 'ຈັດການງານທີ່ຕັ້ງເວລາ',
+ nodeDashContent4: 'ຈັດການງານ Cronjob ຫຼາຍໂນດ, ຕິດຕາມສະຖານະ ແລະ ສັ່ງທຳງານດ້ວຍຕົນເອງ',
+ nodeTitle1: 'ເພີ່ມໂນດຄລິກດຽວ',
+ nodeContent1: 'ເຊື່ອມຕໍ່ຫຼາຍເຊີເວີໂນດໄດ້ຢ່າງວ່ອງໄວ',
+ nodeTitle2: 'ອັບເກຣດແບບກຸ່ມ',
+ nodeContent2: 'ຊິງໂຄຣໄນ ແລະ ອັບເກຣດທຸກໂນດພ້ອມກັນໃນຄັ້ງດຽວ',
+ nodeTitle3: 'ຕິດຕາມສະຖານະໂນດ',
+ nodeContent3: 'ຕິດຕາມສະຖານະການທຳງານຂອງແຕ່ລະໂນດແບບທັນທີ',
+ nodeTitle4: 'ເຊື່ອມຕໍ່ໄລຍະໄກວ່ອງໄວ',
+ nodeContent4: 'ເຊື່ອມຕໍ່ຫາເທີມິນອລຂອງໂນດໄດ້ໂດຍກົງຄລິກດຽວ',
+ fileExchangeTitle1: 'ສົ່ງຂໍ້ມູນຜ່ານ Key Authentication',
+ fileExchangeContent1: 'ຢືນຢັນຕົວຕົນຜ່ານ SSH keys ເພື່ອຄວາມປອດໄພໃນການສົ່ງຂໍ້ມູນ.',
+ fileExchangeTitle2: 'ຊິງໂຄຣໄນໄຟລ໌ທີ່ມີປະສິດທິພາບ',
+ fileExchangeContent2: 'ຊິງໂຄຣໄນສະເພາະເນື້ອໃນທີ່ປ່ຽນແປງເພື່ອຄວາມໄວ ແລະ ສະຖຽນລະພາບ.',
+ fileExchangeTitle3: 'ຮອງຮັບການສື່ສານລະຫວ່າງໂນດ',
+ fileExchangeContent3: 'ໂອນໄຟລ໌ໂຄງການລະຫວ່າງໂນດຕ່າງໆໄດ້ງ່າຍ, ຈັດການຫຼາຍເຊີເວີໄດ້ຢືດຢຸ່ນ.',
+ nodeAppTitle1: 'ຈັດການອັບເກຣດແອັບ',
+ nodeAppContent1: 'ຕິດຕາມການອັບເດດແອັບຫຼາຍໂນດແບບລວມສູນ, ຮອງຮັບການອັບເກຣດຄລິກດຽວ',
+ appTitle1: 'ຈັດການພາແນລຢ່າງຢືດຢຸ່ນ',
+ appContent1: 'ຈັດການເຊີເວີ 1Panel ໄດ້ທຸກບ່ອນ ທຸກເວລາ.',
+ appTitle2: 'ຂໍ້ມູນການບໍລິການຄົບຖ້ວນ',
+ appContent2: 'ຈັດການແອັບພື້ນຖານ, ເວັບໄຊ, Docker, ຖານຂໍ້ມູນ ແລະ ສ້າງແອັບຜ່ານມືຖືໄດ້ໄວ.',
+ appTitle3: 'ຕິດຕາມຄວາມຜິດປົກກະຕິທັນທີ',
+ appContent3: 'ເບິ່ງສະຖານະເຊີເວີ, ຄວາມປອດໄພ WAF, ສະຖິຕິການເຂົ້າຊົມ ແລະ ສະຖານະຂະບວນການຜ່ານແອັບມືຖື.',
+ clusterTitle1: 'ຕິດຕັ້ງແບບ Master-Slave',
+ clusterContent1:
+ 'ສ້າງ MySQL/Postgres/Redis Master-Slave ໃນໂນດຕ່າງໆ, ເຊື່ອມຕໍ່ ແລະ ເລີ່ມຕົ້ນລະບົບອັດຕະໂນມັດ',
+ clusterTitle2: 'ຈັດການ Master-Slave',
+ clusterContent2: 'ຈັດການຫຼາຍໂນດ Master-Slave ໃນໜ້າດຽວ, ເບິ່ງບົດບາດ ແລະ ສະຖານະການທຳງານ.',
+ clusterTitle3: 'ສະຖານະການກັອບປີ້ຂໍ້ມູນ',
+ clusterContent3: 'ສະແດງສະຖານະການ Replication ແລະ ຂໍ້ມູນການດີເລ (Delay) ເພື່ອຊ່ວຍແກ້ໄຂບັນຫາ.',
+ vllmTitle1: 'ຈັດການແບບລວມສູນ',
+ vllmContent1: 'ລວມບໍລິການ vLLM ທີ່ກະຈັດກະຈາຍເຂົ້າມາໃນ 1Panel ເພື່ອເບິ່ງສະຖານະ, ເວີຊັນ ແລະ ເສັ້ນທາງທຳງານ.',
+ vllmTitle2: 'ຕິດຕັ້ງວ່ອງໄວ',
+ vllmContent2: 'ໃຊ້ຟອມເພື່ອເລືອກເວີຊັນ, ເທົາມໍເດລ ແລະ ຕັ້ງຄ່າການເລີ່ມຕົ້ນໄດ້ງ່າຍ.',
+ vllmTitle3: 'ປະສິດທິພາບການດຳເນີນງານ',
+ vllmContent3: 'ຈັດການສ້າງ, ແກ້ໄຂ, ເລີ່ມ, ຢຸດ ແລະ ລຶບ ໄດ້ໃນໜ້າດຽວ.',
+ vllmTitle4: 'ຄວບຄຸມການຕັ້ງຄ່າ',
+ vllmContent4: 'ກຳນົດພອດ, ຄອນເທນເນີ ແລະ ຄຳສັ່ງເລີ່ມຕົ້ນໃຫ້ເປັນມາດຕະຖານ.',
+ modelDownloaderTitle1: 'ຄົ້ນຫາມໍເດລ',
+ modelDownloaderContent1: 'ຄົ້ນຫາຄັງມໍເດລ HuggingFace ໂດຍກົງ ແລະ ເບິ່ງຍອດດາວໂຫຼດ, ໄລ້ ແລະ ລາຍລະອຽດໄຟລ໌.',
+ modelDownloaderTitle2: 'ດາວໂຫຼດເລັ່ງດ່ວນ',
+ modelDownloaderContent2: 'ຕັ້ງຄ່າ HuggingFace acceleration endpoint ແລະ Token ສຳລັບມໍເດລສ່ວນຕົວ.',
+ modelDownloaderTitle3: 'ຕິດຕາມງານ',
+ modelDownloaderContent3: 'ກວດສອບຄິວດາວໂຫຼດ, ສະຖານະ, ຄວາມຄືບໜ້າ ແລະ ຂໍ້ຜິດພາດ.',
+ modelDownloaderTitle4: 'ຈັດການໃນເຄື່ອງ',
+ modelDownloaderContent4: 'ຈັດການໄດເຣັກທໍຣີມໍເດລໃນເຄື່ອງ, ລວມມີຂະໜາດ, ເວລາ ແລະ ການລຶບໄຟລ໌ທີ່ບໍ່ໄດ້ໃຊ້.',
+ },
+ node: {
+ master: 'ໂນດຫຼັກ (Master)',
+ masterBackup: 'ສຳຮອງໂນດຫຼັກ',
+ backupNode: 'ໂນດສຳຮອງ',
+ backupFrequency: 'ຄວາມຖີ່ການສຳຮອງ (ຊົ່ວໂມງ)',
+ backupCopies: 'ຈຳນວນສຳເນົາທີ່ເກັບໄວ້',
+ noBackupNode: 'ຍັງບໍ່ມີໂນດສຳຮອງ. ກະລຸນາເລືອກໂນດສຳຮອງເພື່ອບັນທຶກ ແລະ ລອງໃໝ່!',
+ masterBackupAlert: 'ຍັງບໍ່ໄດ້ຕັ້ງຄ່າສຳຮອງໂນດຫຼັກ. ເພື່ອຄວາມປອດໄພຂອງຂໍ້ມູນ, ກະລຸນາຕັ້ງຄ່າໂນດສຳຮອງໂດຍໄວ.',
+ node: 'ໂນດ',
+ addr: 'ທີ່ຢູ່',
+ nodeUpgrade: 'ຕັ້ງຄ່າການອັບເດດ',
+ nodeUpgradeHelper: 'ໂນດທີ່ເລືອກຈະເລີ່ມອັບເກຣດອັດຕະໂນມັດຫຼັງຈາກໂນດຫຼັກອັບເກຣດສຳເລັດ.',
+ nodeUpgradePackageManage: 'ຈັດການແພັກເກັດຕິດຕັ້ງ',
+ nodeUpgradePackageClean: 'ລ້າງຂໍ້ມູນ',
+ nodeUpgradePackageFormatHelper:
+ 'ຮອງຮັບສະເພາະແພັກເກັດ `1panel-agent_v*_*` ຫຼື `1panel-v*-linux-*` ເທົ່ານັ້ນ',
+ nodeUpgradePackageHostConfirm: 'ໄຟລ໌ເຊີເວີ {0} ຈະຖືກເລືອກ. ຕ້ອງການຕໍ່ບໍ?',
+ nodeUpgradePackageCleanHelper: 'ແພັກເກັດອັບເດດເວີຊັນເກົ່າທັງໝົດຈະຖືກລຶບ. ຕ້ອງການຕໍ່ບໍ?',
+ nodeUpgradeOfflinePackageHelper:
+ 'ໃນສະພາບແວດລ້ອມອອບລາຍ, ໂນດທີ່ມີສະຖາປັດຕະຍະກຳຕ່າງກັນຕ້ອງອັບໂຫຼດແພັກເກັດທີ່ກົງກັນກ່ອນອັບເດດ.',
+ healthCheck: 'ກວດສອບສຸຂະພາບ',
+ healthCheckFrequency: 'ຄວາມຖີ່ການກວດສອບ',
+ healthCheckFrequencyHelper: 'ກວດສອບສຸຂະພາບໂນດ Backend ເປັນໄລຍະ. ປ້ອນ 0 ເພື່ອປິດການກວດສອບ.',
+ healthCheckFrequencyLimit: 'ຄວາມຖີ່ການກວດສອບຕ້ອງບໍ່ເກີນໜຶ່ງມື້ ແລະ ຕ້ອງເປັນຈຳນວນເຕັມທີ່ບໍ່ຕິດລົບ.',
+ loadFailedNodeResources: 'ໂຫຼດຊັບພະຍາກອນຂອງໂນດທີ່ລົ້ມເຫຼວ',
+ loadFailedNodeResourcesHelper: 'ເມື່ອເປີດລາຍຊື່ໂນດ ໃຫ້ໂຫຼດຂໍ້ມູນຊັບພະຍາກອນຂອງໂນດທີ່ລົ້ມເຫຼວນຳ.',
+ nodeUnhealthy: 'ສະຖານະໂນດຜິດປົກກະຕິ',
+ deletedNode: 'ໂນດ {0} ທີ່ຖືກລຶບໄປແລ້ວ ບໍ່ຮອງຮັບການອັບເກຣດ!',
+ nodeUnhealthyHelper: 'ກວດພົບສະຖານະໂນດຜິດປົກກະຕິ. ກະລຸນາກວດສອບໃນ [ຈັດການໂນດ]!',
+ nodeUnbind: 'ໂນດບໍ່ໄດ້ຜູກມັດກັບ License',
+ nodeUnbindHelper: 'ໂນດນີ້ບໍ່ໄດ້ຜູກມັດກັບ License. ກະລຸນາຜູກມັດໃນເມນູ [ຕັ້ງຄ່າພາແນລ - License]!',
+ memTotal: 'ໜ່ວຍຄວາມຈຳທັງໝົດ',
+ nodeManagement: 'ຈັດການຫຼາຍເຄື່ອງ',
+ multiOverview: 'ພາບລວມຫຼາຍເຄື່ອງ',
+ commonNodes: 'ໂນດທີ່ໃຊ້ເລື້ອຍໆ',
+ searchNodePlaceholder: 'ຄົ້ນຫາຊື່ໂນດ, ກຸ່ມ ຫຼື ທີ່ຢູ່',
+ nodeItem: 'ຈັດການໂນດ',
+ panelItem: 'ຈັດການພາແນລ',
+ addPanel: 'ເພີ່ມພາແນລ',
+ addPanelHelper: 'ຫຼັງຈາກເພີ່ມພາແນລສຳເລັດ, ທ່ານສາມາດເຂົ້າເຖິງພາແນລເປົ້າໝາຍໄດ້ໄວໃນ [ພາບລວມ - ພາແນລ].',
+ panel: 'ພາແນລ 1Panel',
+ others: 'ພາແນລອື່ນໆ',
+ addNode: 'ເພີ່ມໂນດ',
+ connInfo: 'ຂໍ້ມູນການເຊື່ອມຕໍ່',
+ nodeInfo: 'ຂໍ້ມູນໂນດ',
+ withProxy: 'ເປີດໃຊ້ການເຂົ້າເຖິງຜ່ານ Proxy',
+ withoutProxy: 'ປິດໃຊ້ການເຂົ້າເຖິງຜ່ານ Proxy',
+ withProxyHelper: 'ຈະໃຊ້ Proxy ລະບົບ {0} ທີ່ຕັ້ງໄວ້ເພື່ອເຂົ້າເຖິງໂນດລູກ. ຕ້ອງການຕໍ່ບໍ?',
+ withoutProxyHelper: 'ຈະຢຸດໃຊ້ Proxy ລະບົບເພື່ອເຂົ້າເຖິງໂນດລູກ. ຕ້ອງການຕໍ່ບໍ?',
+ syncInfo: 'ຊິງໂຄຣໄນ',
+ syncHelper: 'ເມື່ອຂໍ້ມູນໂນດຫຼັກປ່ຽນແປງ, ມັນຈະຊິງໂຄຣໄນໄປຫາໂນດລູກແບບທັນທີ',
+ syncBackupAccount: 'ຊິງໂຄຣໄນການຕັ້ງຄ່າບັນຊີສຳຮອງ',
+ syncWithMaster: 'ຫຼັງຈາກອັບເກຣດເປັນ Pro, ຂໍ້ມູນທັງໝົດຈະຖືກຊິງໂຄຣໄນຕາມຄ່າເລີ່ມຕົ້ນ.',
+ syncProxy: 'ຊິງໂຄຣໄນຕັ້ງຄ່າ Proxy ລະບົບ',
+ syncProxyHelper: 'ການຊິງໂຄຣໄນ Proxy ລະບົບຕ້ອງ Restart Docker',
+ syncProxyHelper1: 'ການ Restart Docker ອາດສົ່ງຜົນກະທົບຕໍ່ຄອນເທນເນີທີ່ກຳລັງທຳງານ.',
+ syncProxyHelper2: 'ທ່ານສາມາດ Restart ເອງໄດ້ໃນໜ້າ ຄອນເທນເນີ - ການຕັ້ງຄ່າ.',
+ syncProxyHelper3: 'ຕ້ອງ Restart Docker ເພື່ອຊິງໂຄຣໄນ Proxy, ອາດສົ່ງຜົນກະທົບຕໍ່ບໍລິການ',
+ syncProxyHelper4: 'ຕ້ອງ Restart Docker ເພື່ອຊິງໂຄຣໄນ Proxy. ທ່ານສາມາດ Restart ເອງພາຍຫຼັງໄດ້.',
+ syncCustomApp: 'ຊິງໂຄຣໄນຄັງແອັບກຳນົດເອງ',
+ syncAlertSetting: 'ຊິງໂຄຣໄນຕັ້ງຄ່າແຈ້ງເຕືອນລະບົບ',
+ syncNodeInfo: 'ຂໍ້ມູນພື້ນຖານຂອງໂນດ,',
+ nodeSyncHelper: 'ການຊິງໂຄຣໄນຂໍ້ມູນໂນດຈະລວມມີຂໍ້ມູນຕໍ່ໄປນີ້:',
+ nodeSyncHelper1: '1. ຂໍ້ມູນບັນຊີສຳຮອງສາທາລະນະ',
+ nodeSyncHelper2: '2. ຂໍ້ມູນການເຊື່ອມຕໍ່ລະຫວ່າງໂນດຫຼັກ ແລະ ໂນດລູກ',
+ nodeCheck: 'ກວດສອບຄວາມພ້ອມໃຊ້ງານ',
+ checkSSH: 'ກວດສອບການເຊື່ອມຕໍ່ SSH',
+ checkUserPermission: 'ກວດສອບສິດຜູ້ໃຊ້',
+ isNotRoot: 'ກວດພົບວ່າບໍ່ຮອງຮັບ sudo ແບບບໍ່ໃຊ້ລະຫັດຜ່ານ ແລະ ຜູ້ໃຊ້ບໍ່ແມ່ນ root',
+ checkLicense: 'ກວດສອບສະຖານະ License',
+ checkService: 'ກວດສອບຂໍ້ມູນບໍລິການທີ່ມີຢູ່ໃນໂນດ',
+ checkPort: 'ກວດສອບການເຂົ້າເຖິງພອດ',
+ panelExist: 'ກວດພົບວ່າໂນດນີ້ກຳລັງໃຊ້ 1Panel V1. ກະລຸນາອັບເກຣດເປັນ V2 ຜ່ານສະຄຣິບຍ້າຍຂໍ້ມູນກ່ອນ.',
+ coreExist: 'ໂນດນີ້ຖືກຕັ້ງເປັນໂນດຫຼັກແລ້ວ ບໍ່ສາມາດເພີ່ມເປັນໂນດລູກໄດ້ໂດຍກົງ.',
+ agentExist:
+ 'ກວດພົບວ່າ 1panel-agent ຖືກຕິດຕັ້ງແລ້ວ. ການດຳເນີນການຕໍ່ຈະເກັບຂໍ້ມູນເດີມໄວ້ ແລະ ປ່ຽນສະເພາະບໍລິການ agent.',
+ agentNotExist: 'ບໍ່ພົບ 1panel-agent ໃນໂນດນີ້, ບໍ່ສາມາດແກ້ໄຂຂໍ້ມູນໄດ້ໂດຍກົງ. ກະລຸນາລຶບ ແລະ ເພີ່ມໃໝ່.',
+ oldDataExist: 'ກວດພົບຂໍ້ມູນ 1Panel V2 ເກົ່າໃນໂນດນີ້. ຂໍ້ມູນຕໍ່ໄປນີ້ຈະຖືກໃຊ້ເພື່ອທັບການຕັ້ງຄ່າປັດຈຸບັນ:',
+ errLicense: 'License ທີ່ຜູກມັດກັບໂນດນີ້ໃຊ້ງານບໍ່ໄດ້!',
+ errNodePort: 'ພອດໂນດ [ {0} ] ເຂົ້າເຖິງບໍ່ໄດ້. ກະລຸນາກວດສອບໄຟວໍ ຫຼື Security Group.',
+ reinstallHelper: 'ຕິດຕັ້ງໂນດ {0} ໃໝ່, ຕ້ອງການຕໍ່ບໍ?',
+ unhealthyCheck: 'ກວດສອບຄວາມຜິດປົກກະຕິ',
+ fixOperation: 'ການແກ້ໄຂ',
+ checkName: 'ລາຍການກວດສອບ',
+ checkSSHConn: 'ກວດສອບການເຊື່ອມຕໍ່ SSH',
+ fixSSHConn: 'ແກ້ໄຂຂໍ້ມູນການເຊື່ອມຕໍ່ໂນດດ້ວຍຕົນເອງ',
+ checkConnInfo: 'ກວດສອບຂໍ້ມູນການເຊື່ອມຕໍ່ Agent',
+ checkStatus: 'ກວດສອບຄວາມພ້ອມຂອງບໍລິການໂນດ',
+ fixStatus: 'ລັນ "systemctl status 1panel-agent.service" ເພື່ອກວດສອບການທຳງານ.',
+ checkAPI: 'ກວດສອບ API ຂອງໂນດ',
+ fixAPI: 'ກວດສອບ Log ຂອງໂນດ ແລະ ພອດໄຟວໍ.',
+ forceDelete: 'ບັງຄັບລຶບ',
+ operateHelper: 'ໂນດຕໍ່ໄປນີ້ຈະຖືກ {0}, ຕ້ອງການຕໍ່ບໍ?',
+ operatePanelHelper: 'ພາແນລຕໍ່ໄປນີ້ຈະຖືກ {0}, ຕ້ອງການຕໍ່ບໍ?',
+ forceDeleteHelper: 'ການບັງຄັບລຶບຈະບໍ່ສົນໃຈຂໍ້ຜິດພາດ ແລະ ລຶບຂໍ້ມູນໃນຖານຂໍ້ມູນຖາວອນ',
+ uninstall: 'ລຶບຂໍ້ມູນໂນດ',
+ uninstallHelper: 'ນີ້ຈະລຶບຂໍ້ມູນທັງໝົດທີ່ກ່ຽວຂ້ອງກັບ 1Panel ໃນໂນດນີ້. ກະລຸນາລະມັດລະວັງ!',
+ baseDir: 'ໄດເຣັກທໍຣີຕິດຕັ້ງ',
+ baseDirHelper: 'ຫາກຫວ່າງໄວ້, ຈະຕິດຕັ້ງໃນ /opt ໂດຍອັດຕະໂນມັດ',
+ nodePort: 'ພອດໂນດ',
+ offline: 'ໂໝດອອບລາຍ',
+ freeCount: 'ໂຄຕ້າຟຣີ [{0}]',
+ offlineHelper: 'ໃຊ້ເມື່ອໂນດຢູ່ໃນສະພາບແວດລ້ອມທີ່ບໍ່ມີອິນເຕີເນັດ',
+ appUpgrade: 'ອັບເກຣດແອັບ',
+ appUpgradeHelper: 'ມີ {0} ແອັບທີ່ຕ້ອງອັບເກຣດ',
+ dashboardSetting: 'ຕັ້ງຄ່າພາບລວມ',
+ keepOneDashboardComponent: 'ຕ້ອງເກັບໄວ້ຢ່າງໜ້ອຍໜຶ່ງສ່ວນໃນໜ້າພາບລວມ',
+ },
+ customApp: {
+ name: 'ຄັງແອັບກຳນົດເອງ',
+ appStoreType: 'ແຫຼ່ງແພັກເກັດແອັບສະໂຕຣ',
+ appStoreUrl: 'URL ຂອງຄັງເກັບ',
+ local: 'ທີ່ຢູ່ພາຍໃນເຄື່ອງ',
+ remote: 'ລິ້ງທາງໄກ',
+ imagePrefix: 'Image Prefix',
+ imagePrefixHelper:
+ 'ຟັງຊັນ: ກຳນົດ Prefix ຂອງ Image ເອງ. ຕົວຢ່າງ: ຫາກຕັ້ງເປັນ 1panel/custom, image ຂອງ MaxKB ຈະປ່ຽນເປັນ 1panel/custom/maxkb:v1.10.0',
+ closeHelper: 'ຍົກເລີກການໃຊ້ຄັງແອັບກຳນົດເອງ',
+ appStoreUrlHelper: 'ຮອງຮັບສະເພາະຮູບແບບ .tar.gz',
+ postNode: 'ຊິງໂຄຣໄນໄປຫາໂນດລູກ',
+ postNodeHelper: 'ຊິງໂຄຣໄນແພັກເກັດໄປຫາ tmp/customApp/apps.tar.gz ໃນໂນດລູກ',
+ nodes: 'ໂນດ',
+ selectNode: 'ເລືອກໂນດ',
+ selectNodeError: 'ກະລຸນາເລືອກໂນດ',
+ licenseHelper: 'ເວີຊັນ Pro ຮອງຮັບຟີເຈີຄັງແອັບພລິເຄຊັນກຳນົດເອງ',
+ databaseHelper: 'ຖານຂໍ້ມູນທີ່ກ່ຽວຂ້ອງ, ເລືອກຖານຂໍ້ມູນໂນດເປົ້າໝາຍ',
+ nodeHelper: 'ບໍ່ສາມາດເລືອກໂນດປັດຈຸບັນໄດ້',
+ migrateHelper:
+ 'ປັດຈຸບັນຮອງຮັບການຍ້າຍສະເພາະແອັບແບບ Monolithic ແລະ ແອັບທີ່ເຊື່ອມກັບ MySQL, MariaDB, PostgreSQL ເທົັ້ນັ້ນ',
+ opensslHelper: 'ຫາກໃຊ້ການສຳຮອງແບບເຂົ້າລະຫັດ, ເວີຊັນ OpenSSL ຂອງທັງສອງໂນດຕ້ອງກົງກັນ.',
+ installApp: 'ຕິດຕັ້ງແບບກຸ່ມ',
+ installAppHelper: 'ຕິດຕັ້ງແອັບໃຫ້ໂນດທີ່ເລືອກແບບກຸ່ມ',
+ },
+ alert: {
+ isAlert: 'ແຈ້ງເຕືອນ',
+ alertCount: 'ຈຳນວນແຈ້ງເຕືອນ',
+ clamHelper: 'ແຈ້ງເຕືອນເມື່ອສະແກນພົບໄຟລ໌ຕິດໄວຣັສ',
+ cronJobHelper: 'ແຈ້ງເຕືອນເມື່ອງານທີ່ຕັ້ງເວລາທຳງານລົ້ມເຫຼວ',
+ licenseHelper: 'ເວີຊັນ Commercial ຮອງຮັບຊ່ອງທາງການແຈ້ງເຕືອນເພີ່ມເຕີມ',
+ alertCountHelper: 'ຄວາມຖີ່ການແຈ້ງເຕືອນສູງສຸດຕໍ່ມື້',
+ alert: 'ແຈ້ງເຕືອນ SMS',
+ logs: 'ບັນທຶກການແຈ້ງເຕືອນ',
+ list: 'ລາຍຊື່ການແຈ້ງເຕືອນ',
+ addTask: 'ສ້າງການແຈ້ງເຕືອນ',
+ editTask: 'ແກ້ໄຂການແຈ້ງເຕືອນ',
+ alertMethod: 'ວິທີການ',
+ alertMsg: 'ຂໍ້ຄວາມແຈ້ງເຕືອນ',
+ alertRule: 'ກົດເກນການແຈ້ງເຕືອນ',
+ titleSearchHelper: 'ປ້ອນຊື່ການແຈ້ງເຕືອນເພື່ອຄົ້ນຫາ',
+ taskType: 'ປະເພດ',
+ ssl: 'ໃບຢັ້ງຢືນໝົດອາຍຸ',
+ siteEndTime: 'ເວັບໄຊໝົດອາຍຸ',
+ panelPwdEndTime: 'ລະຫັດຜ່ານພາແນລໝົດອາຍຸ',
+ panelUpdate: 'ມີພາແນລເວີຊັນໃໝ່',
+ cpu: 'ແຈ້ງເຕືອນ CPU ເຊີເວີ',
+ memory: 'ແຈ້ງເຕືອນ Memory ເຊີເວີ',
+ load: 'ແຈ້ງເຕືອນ Load ເຊີເວີ',
+ disk: 'ແຈ້ງເຕືອນ Disk ເຊີເວີ',
+ website: 'ເວັບໄຊ',
+ certificate: 'ໃບຢັ້ງຢືນ SSL',
+ remainingDays: 'ມື້ທີ່ເຫຼືອ',
+ sendCount: 'ຈຳນວນການສົ່ງ',
+ sms: 'SMS',
+ wechat: 'WeChat',
+ dingTalk: 'DingTalk',
+ feiShu: 'FeiShu',
+ mail: 'ອີເມລ',
+ email: 'ອີເມລ',
+ weCom: 'WeCom',
+ bark: 'Bark',
+ sendCountRulesHelper: 'ຈຳນວນແຈ້ງເຕືອນທັງໝົດກ່ອນໝົດອາຍຸ (ມື້ລະຄັ້ງ)',
+ panelUpdateRulesHelper: 'ຈຳນວນແຈ້ງເຕືອນສຳລັບເວີຊັນໃໝ່ (ມື້ລະຄັ້ງ)',
+ oneDaySendCountRulesHelper: 'ຈຳນວນແຈ້ງເຕືອນສູງສຸດຕໍ່ມື້',
+ siteEndTimeRulesHelper: 'ເວັບໄຊທີ່ບໍ່ມີວັນໝົດອາຍຸຈະບໍ່ມີການແຈ້ງເຕືອນ',
+ autoRenewRulesHelper: 'ໃບຢັ້ງຢືນທີ່ເປີດຕໍ່ອາຍຸອັດຕະໂນມັດ ແລະ ເຫຼືອຫຼາຍກວ່າ 31 ວັນ ຈະບໍ່ແຈ້ງເຕືອນ',
+ panelPwdEndTimeRulesHelper: 'ຫາກບໍ່ໄດ້ຕັ້ງວັນໝົດອາຍຸລະຫັດຜ່ານ ຈະບໍ່ມີການແຈ້ງເຕືອນ',
+ sslRulesHelper: 'ໃບຢັ້ງຢືນ SSL ທັງໝົດ',
+ diskInfo: 'ດິສກ໌',
+ monitoringType: 'ປະເພດການຕິດຕາມ',
+ autoRenew: 'ຕໍ່ອາຍຸອັດຕະໂນມັດ',
+ useDisk: 'ການໃຊ້ງານດິສກ໌',
+ usePercentage: 'ເປີເຊັນການໃຊ້ງານ',
+ changeStatus: 'ປ່ຽນສະຖານະ',
+ disableMsg: 'ການຢຸດງານແຈ້ງເຕືອນຈະເຮັດໃຫ້ລະບົບບໍ່ສົ່ງຂໍ້ຄວາມ. ຕ້ອງການຕໍ່ບໍ?',
+ enableMsg: 'ການເປີດງານແຈ້ງເຕືອນຈະເຮັດໃຫ້ລະບົບສົ່ງຂໍ້ຄວາມ. ຕ້ອງການຕໍ່ບໍ?',
+ useExceed: 'ການໃຊ້ງານເກີນ',
+ useExceedRulesHelper: 'ແຈ້ງເຕືອນເມື່ອການໃຊ້ງານເກີນຄ່າທີ່ກຳນົດ',
+ cpuUseExceedAvg: 'ຄ່າສະເລ່ຍການໃຊ້ CPU ເກີນກຳນົດ',
+ memoryUseExceedAvg: 'ຄ່າສະເລ່ຍການໃຊ້ Memory ເກີນກຳນົດ',
+ loadUseExceedAvg: 'ຄ່າສະເລ່ຍ Load ເກີນກຳນົດ',
+ cpuUseExceedAvgHelper: 'ການໃຊ້ CPU ສະເລ່ຍໃນເວລາທີ່ກຳນົດເກີນຄ່າ',
+ memoryUseExceedAvgHelper: 'ການໃຊ້ Memory ສະເລ່ຍໃນເວລາທີ່ກຳນົດເກີນຄ່າ',
+ loadUseExceedAvgHelper: 'ຄ່າ Load ສະເລ່ຍໃນເວລາທີ່ກຳນົດເກີນຄ່າ',
+ resourceAlertRulesHelper: 'ໝາຍເຫດ: ການແຈ້ງເຕືອນຕໍ່ເນື່ອງໃນ 30 ນາທີ ຈະສົ່ງພຽງຄັ້ງດຽວ',
+ specifiedTime: 'ເວລາທີ່ກຳນົດ',
+ deleteTitle: 'ລຶບການແຈ້ງເຕືອນ',
+ deleteMsg: 'ເຈົ້າແນ່ໃຈບໍວ່າຕ້ອງການລຶບງານແຈ້ງເຕືອນນີ້?',
+ allSslTitle: 'ແຈ້ງເຕືອນໃບຢັ້ງຢືນ SSL ເວັບໄຊທັງໝົດໝົດອາຍຸ',
+ sslTitle: 'ແຈ້ງເຕືອນໃບຢັ້ງຢືນ SSL ເວັບໄຊ {0} ໝົດອາຍຸ',
+ allSiteEndTimeTitle: 'ແຈ້ງເຕືອນເວັບໄຊທັງໝົດໝົດອາຍຸ',
+ siteEndTimeTitle: 'ແຈ້ງເຕືອນເວັບໄຊ {0} ໝົດອາຍຸ',
+ panelPwdEndTimeTitle: 'ແຈ້ງເຕືອນລະຫັດຜ່ານພາແນລໝົດອາຍຸ',
+ panelUpdateTitle: 'ແຈ້ງເຕືອນພາແນລເວີຊັນໃໝ່',
+ cpuTitle: 'ແຈ້ງເຕືອນການໃຊ້ CPU ສູງ',
+ memoryTitle: 'ແຈ້ງເຕືອນການໃຊ້ Memory ສູງ',
+ loadTitle: 'ແຈ້ງເຕືອນ Load ສູງ',
+ diskTitle: 'ແຈ້ງເຕືອນການໃຊ້ Disk ສູງສຳລັບໄດເຣັກທໍຣີ {0}',
+ allDiskTitle: 'ແຈ້ງເຕືອນການໃຊ້ Disk ສູງ',
+ timeRule: 'ເວລາເຫຼືອໜ້ອຍກວ່າ {0} ວັນ (ຫາກບໍ່ຈັດການ ຈະສົ່ງໃໝ່ໃນມື້ຖັດໄປ)',
+ panelUpdateRule: 'ສົ່ງແຈ້ງເຕືອນຄັ້ງດຽວເມື່ອພົບເວີຊັນໃໝ່ (ຫາກບໍ່ຈັດການ ຈະສົ່ງໃໝ່ໃນມື້ຖັດໄປ)',
+ avgRule: 'ການໃຊ້ງານ {1} ສະເລ່ຍເກີນ {2}% ພາຍໃນ {0} ນາທີ, ສົ່ງ {3} ຄັ້ງຕໍ່ມື້',
+ diskRule: 'ການໃຊ້ Disk ສຳລັບ {0} ເກີນ {1}{2}, ສົ່ງ {3} ຄັ້ງຕໍ່ມື້',
+ allDiskRule: 'ການໃຊ້ Disk ເກີນ {0}{1}, ສົ່ງ {2} ຄັ້ງຕໍ່ມື້',
+ cpuName: ' CPU ',
+ memoryName: 'Memory',
+ loadName: 'Load',
+ diskName: 'Disk',
+ syncAlertInfo: 'ສົ່ງແຈ້ງເຕືອນເອງ',
+ syncAlertInfoMsg: 'ຕ້ອງການສົ່ງການແຈ້ງເຕືອນນີ້ດ້ວຍຕົນເອງບໍ?',
+ pushError: 'ສົ່ງບໍ່ສຳເລັດ',
+ pushSuccess: 'ສົ່ງສຳເລັດ',
+ syncError: 'ຊິງໂຄຣໄນບໍ່ສຳເລັດ',
+ success: 'ແຈ້ງເຕືອນສຳເລັດ',
+ pushing: 'ກຳລັງສົ່ງ...',
+ error: 'ແຈ້ງເຕືອນລົ້ມເຫຼວ',
+ cleanLog: 'ລ້າງບັນທຶກ',
+ cleanAlertLogs: 'ລ້າງບັນທຶກການແຈ້ງເຕືອນ',
+ daily: 'ແຈ້ງເຕືອນມື້ນີ້: {0}',
+ cumulative: 'ແຈ້ງເຕືອນສະສົມ: {0}',
+ clams: 'ແຈ້ງເຕືອນສະແກນໄວຣັສ',
+ taskName: 'ຊື່ງານ',
+ cronJobType: 'ປະເພດງານ',
+ clamPath: 'ໄດເຣັກທໍຣີທີ່ສະແກນ',
+ cronjob: 'ງານ Cronjob {0} ລົ້ມເຫຼວ',
+ app: 'ສຳຮອງແອັບ',
+ web: 'ສຳຮອງເວັບໄຊ',
+ database: 'ສຳຮອງຖານຂໍ້ມູນ',
+ directory: 'ສຳຮອງໄດເຣັກທໍຣີ',
+ log: 'ສຳຮອງບັນທຶກ (Log)',
+ snapshot: 'System Snapshot',
+ clamsRulesHelper: 'ງານສະແກນໄວຣັສທີ່ຕ້ອງການແຈ້ງເຕືອນ',
+ cronJobRulesHelper: 'ຕ້ອງຕັ້ງຄ່າງານ Cronjob ປະເພດນີ້',
+ clamsTitle: 'ງານສະແກນໄວຣັສ 「 {0} 」 ກວດພົບໄຟລ໌ອັນຕະລາຍ',
+ cronJobAppTitle: 'ແຈ້ງເຕືອນງານສຳຮອງແອັບ 「 {0} 」 ລົ້ມເຫຼວ',
+ cronJobWebsiteTitle: 'ແຈ້ງເຕືອນງານສຳຮອງເວັບໄຊ 「 {0} 」 ລົ້ມເຫຼວ',
+ cronJobDatabaseTitle: 'ແຈ້ງເຕືອນງານສຳຮອງຖານຂໍ້ມູນ 「 {0} 」 ລົ້ມເຫຼວ',
+ cronJobDirectoryTitle: 'ແຈ້ງເຕືອນງານສຳຮອງໄດເຣັກທໍຣີ 「 {0} 」 ລົ້ມເຫຼວ',
+ cronJobLogTitle: 'ແຈ້ງເຕືອນງານສຳຮອງ Log 「 {0} 」 ລົ້ມເຫຼວ',
+ cronJobSnapshotTitle: 'ແຈ້ງເຕືອນງານສຳຮອງ Snapshot 「 {0} 」 ລົ້ມເຫຼວ',
+ cronJobShellTitle: 'ແຈ້ງເຕືອນງານ Shell script 「 {0} 」 ລົ້ມເຫຼວ',
+ cronJobCurlTitle: 'ແຈ້ງເຕືອນງານເຂົ້າເຖິງ URL 「 {0} 」 ລົ້ມເຫຼວ',
+ cronJobCutWebsiteLogTitle: 'ແຈ້ງເຕືອນງານຕັດ Log ເວັບໄຊ 「 {0} 」 ລົ້ມເຫຼວ',
+ cronJobCleanTitle: 'ແຈ້ງເຕືອນງານລ້າງ Cache 「 {0} 」 ລົ້ມເຫຼວ',
+ cronJobNtpTitle: 'ແຈ້ງເຕືອນງານຊິງໂຄຣໄນເວລາເຊີເວີ 「 {0} 」 ລົ້ມເຫຼວ',
+ clamsRule: 'ແຈ້ງເຕືອນພົບໄວຣັສ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
+ cronJobAppRule: 'ແຈ້ງເຕືອນສຳຮອງແອັບລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
+ cronJobWebsiteRule: 'ແຈ້ງເຕືອນສຳຮອງເວັບໄຊລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
+ cronJobDatabaseRule: 'ແຈ້ງເຕືອນສຳຮອງຖານຂໍ້ມູນລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
+ cronJobDirectoryRule: 'ແຈ້ງເຕືອນສຳຮອງໄດເຣັກທໍຣີລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
+ cronJobLogRule: 'ແຈ້ງເຕືອນສຳຮອງ Log ລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
+ cronJobSnapshotRule: 'ແຈ້ງເຕືອນສຳຮອງ Snapshot ລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
+ cronJobShellRule: 'ແຈ້ງເຕືອນ Shell script ລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
+ cronJobCurlRule: 'ແຈ້ງເຕືອນເຂົ້າເຖິງ URL ລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
+ cronJobCutWebsiteLogRule: 'ແຈ້ງເຕືອນຕັດ Log ເວັບໄຊລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
+ cronJobCleanRule: 'ແຈ້ງເຕືອນລ້າງ Cache ລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
+ cronJobNtpRule: 'ແຈ້ງເຕືອນຊິງໂຄຣໄນເວລາລົ້ມເຫຼວ,ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
+ alertSmsHelper: 'ຂໍ້ຈຳກັດ SMS: ທັງໝົດ {0} ຂໍ້ຄວາມ, ໃຊ້ໄປແລ້ວ {1}',
+ goBuy: 'ຊື້ເພີ່ມ',
+ phone: 'ເບີໂທລະສັບ',
+ phoneHelper: 'ປ້ອນເບີໂທລະສັບທີ່ແທ້ຈິງເພື່ອຮັບແຈ້ງເຕືອນ',
+ dailyAlertNum: 'ຂີດຈຳກັດແຈ້ງເຕືອນຕໍ່ມື້',
+ dailyAlertNumHelper: 'ຈຳນວນແຈ້ງເຕືອນສູງສຸດຕໍ່ມື້ (ບໍ່ເກີນ 100)',
+ timeRange: 'ຊ່ວງເວລາ',
+ sendTimeRange: 'ຊ່ວງເວລາສົ່ງ',
+ sendTimeRangeHelper: 'ສາມາດສົ່ງໄດ້ໃນຊ່ວງເວລາ {0}',
+ to: 'ຫາ',
+ startTime: 'ເວລາເລີ່ມຕົ້ນ',
+ endTime: 'ເວລາສິ້ນສຸດ',
+ defaultPhone: 'ເລີ່ມຕົ້ນເປັນເບີໂທລະສັບທີ່ຜູກກັບ License',
+ noticeAlert: 'ແຈ້ງເຕືອນທົ່ວໄປ',
+ resourceAlert: 'ແຈ້ງເຕືອນຊັບພະຍາກອນ',
+ agentOfflineAlertHelper: 'ເມື່ອເປີດແຈ້ງເຕືອນອອບລາຍ, ໂນດຫຼັກຈະສະແກນທຸກໆ 30 ນາທີ.',
+ offline: 'ແຈ້ງເຕືອນອອບລາຍ',
+ offlineHelper: 'ເມື່ອຕັ້ງເປັນແຈ້ງເຕືອນອອບລາຍ, ໂນດຫຼັກຈະສະແກນທຸກໆ 30 ນາທີ.',
+ offlineOff: 'ເປີດແຈ້ງເຕືອນອອບລາຍ',
+ offlineOffHelper: 'ການເປີດແຈ້ງເຕືອນອອບລາຍຈະເຮັດໃຫ້ໂນດຫຼັກສະແກນທຸກໆ 30 ນາທີ.',
+ offlineClose: 'ປິດແຈ້ງເຕືອນອອບລາຍ',
+ offlineCloseHelper: 'ການປິດແຈ້ງເຕືອນອອບລາຍຈະເຮັດໃຫ້ໂນດລູກຕ້ອງຈັດການການແຈ້ງເຕືອນເອງ.',
+ alertNotice: 'ການແຈ້ງເຕືອນ',
+ methodConfig: 'ຕັ້ງຄ່າວິທີການແຈ້ງເຕືອນ',
+ createMethod: 'ສ້າງວິທີການແຈ້ງເຕືອນ',
+ methodInvalid: 'ການຕັ້ງຄ່າ {0} ບໍ່ຖືກຕ້ອງ',
+ commonConfig: 'ການຕັ້ງຄ່າທົ່ວໄປ',
+ smsConfig: 'SMS',
+ smsConfigHelper: 'ຕັ້ງຄ່າເບີໂທລະສັບສຳລັບ SMS',
+ emailConfig: 'ອີເມລ',
+ emailConfigHelper: 'ຕັ້ງຄ່າບໍລິການສົ່ງອີເມລ SMTP',
+ deleteConfigTitle: 'ລຶບການຕັ້ງຄ່າແຈ້ງເຕືອນ',
+ deleteConfigMsg: 'ເຈົ້າແນ່ໃຈບໍວ່າຕ້ອງການລຶບການຕັ້ງຄ່າແຈ້ງເຕືອນນີ້?',
+ test: 'ທົດສອບ',
+ alertTestOk: 'ທົດສອບການແຈ້ງເຕືອນສຳເລັດ',
+ alertTestFailed: 'ທົດສອບການແຈ້ງເຕືອນລົ້ມເຫຼວ',
+ displayName: 'ຊື່ສະແດງ',
+ sender: 'ຜູ້ສົ່ງ',
+ password: 'ລະຫັດຜ່ານ',
+ host: 'ເຊີເວີ SMTP',
+ port: 'ພອດ',
+ encryption: 'ການເຂົ້າລະຫັດ',
+ recipient: 'ຜູ້ຮັບ',
+ licenseTime: 'ແຈ້ງເຕືອນ License ໝົດອາຍຸ',
+ licenseTimeTitle: 'ແຈ້ງເຕືອນ License ໝົດອາຍຸ',
+ displayNameHelper: 'ຊື່ຜູ້ສົ່ງທີ່ຈະສະແດງໃນອີເມລ',
+ senderHelper: 'ທີ່ຢູ່ອີເມລທີ່ໃຊ້ສົ່ງຂໍ້ຄວາມ',
+ passwordHelper: 'ລະຫັດຜ່ານ ຫຼື Authorization code ຂອງອີເມລ',
+ hostHelper: 'ທີ່ຢູ່ເຊີເວີ SMTP, ເຊັ່ນ: smtp.qq.com',
+ portHelper: 'SSL ມັກຈະໃຊ້ 465, TLS ມັກຈະໃຊ້ 587',
+ sslHelper: 'ຫາກພອດແມ່ນ 465, ມັກຈະຕ້ອງໃຊ້ SSL',
+ tlsHelper: 'ຫາກພອດແມ່ນ 587, ມັກຈະຕ້ອງໃຊ້ TLS',
+ triggerCondition: 'ເງື່ອນໄຂການເຮັດວຽກ',
+ loginFail: ' ລັອກອິນລົ້ມເຫຼວພາຍໃນ',
+ nodeException: 'ແຈ້ງເຕືອນໂນດຜິດປົກກະຕິ',
+ licenseException: 'ແຈ້ງເຕືອນ License ຜິດປົກກະຕິ',
+ panelLogin: 'ແຈ້ງເຕືອນການລັອກອິນພາແນລຜິດປົກກະຕິ',
+ sshLogin: 'ແຈ້ງເຕືອນການລັອກອິນ SSH ຜິດປົກກະຕິ',
+ panelIpLogin: 'ແຈ້ງເຕືອນ IP ລັອກອິນພາແນລຜິດປົກກະຕິ',
+ sshIpLogin: 'ແຈ້ງເຕືອນ IP ລັອກອິນ SSH ຜິດປົກກະຕິ',
+ ipWhiteListHelper: 'IP ໃນ Whitelist ຈະບໍ່ຖືກຈຳກັດ ແລະ ຈະບໍ່ມີການແຈ້ງເຕືອນເມື່ອລັອກອິນສຳເລັດ',
+ nodeExceptionRule: 'ແຈ້ງເຕືອນໂນດຜິດປົກກະຕິ, ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
+ licenseExceptionRule: 'ແຈ້ງເຕືອນ License ຜິດປົກກະຕິ, ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
+ panelLoginRule: 'ແຈ້ງເຕືອນການລັອກອິນພາແນລ, ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
+ sshLoginRule: 'ແຈ້ງເຕືອນການລັອກອິນ SSH, ສົ່ງ {0} ຄັ້ງຕໍ່ມື້',
+ userNameHelper: 'ຫາກຊື່ຜູ້ໃຊ້ຫວ່າງ, ຈະໃຊ້ທີ່ຢູ່ຜູ້ສົ່ງເປັນຄ່າເລີ່ມຕົ້ນ',
+ alertConfigHelper: 'ຕັ້ງຄ່າຊ່ອງທາງການແຈ້ງເຕືອນເພື່ອຮັບຂໍ້ມູນຈາກພາແນລ',
+ weComConfigHelper: 'ຕັ້ງຄ່າການແຈ້ງເຕືອນ WeCom',
+ barkConfigHelper: 'ຕັ້ງຄ່າການແຈ້ງເຕືອນ Bark',
+ wechatConfigHelper: 'ຕັ້ງຄ່າການແຈ້ງເຕືອນ WeChat Official Account',
+ dingTalkConfigHelper: 'ຕັ້ງຄ່າການແຈ້ງເຕືອນ DingTalk',
+ feiShuConfigHelper: 'ຕັ້ງຄ່າການແຈ້ງເຕືອນ Feishu',
+ webhookName: 'ຊື່ບັອດ',
+ webhookUrl: 'Webhook URL',
+ alertConfigProHelper: 'ເວີຊັນ Commercial ຮອງຮັບ WeCom, DingTalk, Feishu ແລະ SMS.',
+ recipientPlaceholder: 'ກະລຸນາປ້ອນທີ່ຢູ່ອີເມລຜູ້ຮັບ',
+ addRecipient: 'ເພີ່ມຜູ້ຮັບ',
+ webhookItem: 'Webhook',
+ addWebhook: 'ເພີ່ມ Webhook',
+ selectAlertType: 'ເລືອກປະເພດການແຈ້ງເຕືອນ',
+ configDetail: 'ລາຍລະອຽດການຕັ້ງຄ່າ',
+ webhookCount: ' Webhook',
+ },
+ theme: {
+ lingXiaGold: 'LXware Gold',
+ classicBlue: 'Classic Blue',
+ freshGreen: 'Fresh Green',
+ customColor: 'ສີກຳນົດເອງ',
+ setDefault: 'ເລີ່ມຕົ້ນ',
+ setDefaultHelper: 'ຊຸດສີທີມຈະຖືກຄືນຄ່າເປັນເລີ່ມຕົ້ນ. ຕ້ອງການຕໍ່ບໍ?',
+ setHelper: 'ຊຸດສີທີມທີ່ເລືອກຈະຖືກບັນທຶກ. ຕ້ອງການຕໍ່ບໍ?',
+ },
+ sync: {
+ menu: 'ຊິງໂຄຣໄນຊັບພະຍາກອນ',
+ file: 'ແລກປ່ຽນໄຟລ໌',
+ fileSyncConfirm: 'ເຈົ້າຕ້ອງການໂອນໄຟລ໌/ໂຟນເດີ {1} ຈາກໂນດ {0} ໄປຫາ {3} ໃນໂນດ {2} ບໍ?',
+ image: 'ແລກປ່ຽນ Image',
+ imageBatchDesc: 'ເລືອກໂນດຕົ້ນທາງ ແລະ Image ກ່ອນ, ຈາກນັ້ນໂອນແບບກຸ່ມໄປຫາຫຼາຍໂນດ.',
+ imageBatchConfirmPrefix: 'ກຳລັງຈະໂອນ {0} images ໄປຫາ {1} ໂນດ, ລວມທັງໝົດ {2} ງານ.',
- cert: 'ຊິງໂຄຣໄນໃບຢັ້ງຢືນ',
- certBatchDesc:
- 'ເລືອກໂນດຕົ້ນທາງ ແລະ ຊິງໂຄຣໄນໃບຢັ້ງຢືນທີ່ກຳນົດເຂົ້າມາໃນພາແນລປັດຈຸບັນ.',
- certBatchConfirmPrefix: 'ກຳລັງຈະຊິງໂຄຣໄນ {0} ໃບຢັ້ງຢືນ ໄປຫາ {1} ໂນດ, ລວມທັງໝົດ {2} ງານ.',
+ ssl: 'ຊິງໂຄຣໄນໃບຢັ້ງຢືນ',
+ sslBatchDesc: 'ເລືອກໂນດຕົ້ນທາງ ແລະ ຊິງໂຄຣໄນໃບຢັ້ງຢືນທີ່ກຳນົດເຂົ້າມາໃນພາແນລປັດຈຸບັນ.',
+ sslBatchConfirmPrefix: 'ກຳລັງຈະຊິງໂຄຣໄນ {0} ໃບຢັ້ງຢືນ ໄປຫາ {1} ໂນດ, ລວມທັງໝົດ {2} ງານ.',
- app: 'ການໂອນຍ້າຍແອັບ',
- appBatchDesc:
- 'ເລືອກໂນດຕົ້ນທາງ, ແອັບ ແລະ ໂນດເປົ້າໝາຍ, ຈາກນັ້ນກວດສອບຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ.',
- appSelectedApp: 'ແອັບທີ່ເລືອກ:',
- appPreviewTitle: 'ຕົວຢ່າງການໂອນຍ້າຍ',
- appPreviewDesc: 'ກວດສອບໂນດເປົ້າໝາຍ ແລະ ຊັບພະຍາກອນທີ່ຈຳເປັນກ່ອນເລີ່ມ.',
- appDatabaseDependency: 'ຖານຂໍ້ມູນທີ່ກ່ຽວຂ້ອງ',
- appResourceRequired: 'ກະລຸນາເລືອກຊັບພະຍາກອນທີ່ເຊື່ອມໂຍງໃຫ້ຄົບຖ້ວນ.',
- appUnsupportedMultipleResources: 'ຮອງຮັບສະເພາະແອັບທີ່ມີຊັບພະຍາກອນເຊື່ອມໂຍງບໍ່ເກີນໜຶ່ງຢ່າງ.',
- appUnsupportedResourceType:
- 'ຮອງຮັບສະເພາະແອັບທີ່ບໍ່ມີຊັບພະຍາກອນ ຫຼື ມີພຽງ MySQL, MariaDB, PostgreSQL ຢ່າງດຽວ.',
+ app: 'ການໂອນຍ້າຍແອັບ',
+ appBatchDesc: 'ເລືອກໂນດຕົ້ນທາງ, ແອັບ ແລະ ໂນດເປົ້າໝາຍ, ຈາກນັ້ນກວດສອບຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ.',
+ appSelectedApp: 'ແອັບທີ່ເລືອກ:',
+ appPreviewTitle: 'ຕົວຢ່າງການໂອນຍ້າຍ',
+ appPreviewDesc: 'ກວດສອບໂນດເປົ້າໝາຍ ແລະ ຊັບພະຍາກອນທີ່ຈຳເປັນກ່ອນເລີ່ມ.',
+ appDatabaseDependency: 'ຖານຂໍ້ມູນທີ່ກ່ຽວຂ້ອງ',
+ appResourceRequired: 'ກະລຸນາເລືອກຊັບພະຍາກອນທີ່ເຊື່ອມໂຍງໃຫ້ຄົບຖ້ວນ.',
+ appUnsupportedMultipleResources: 'ຮອງຮັບສະເພາະແອັບທີ່ມີຊັບພະຍາກອນເຊື່ອມໂຍງບໍ່ເກີນໜຶ່ງຢ່າງ.',
+ appUnsupportedResourceType:
+ 'ຮອງຮັບສະເພາະແອັບທີ່ບໍ່ມີຊັບພະຍາກອນ ຫຼື ມີພຽງ MySQL, MariaDB, PostgreSQL ຢ່າງດຽວ.',
- targetTitle: 'ໂນດເປົ້າໝາຍ',
- targetDesc: 'ໂນດຕົ້ນທາງຈະຖືກຍົກເວັ້ນໂດຍອັດຕະໂນມັດ. ເລືອກໜຶ່ງ ຫຼື ຫຼາຍໂນດ.',
- targetSearchPlaceholder: 'ຄົ້ນຫາຊື່ ຫຼື ທີ່ຢູ່ໂນດ',
- noTargetNodes: 'ບໍ່ມີໂນດເປົ້າໝາຍ',
- noSourceNode: 'ກະລຸນາເລືອກໂນດຕົ້ນທາງກ່ອນ',
- reviewTargets: 'ໂນດເປົ້າໝາຍ',
- reviewEmpty: 'ກະລຸນາເລືອກຊັບພະຍາກອນ ແລະ ໂນດເປົ້າໝາຍກ່ອນ',
- selectSourceFirst: 'ກະລຸນາເລືອກໂນດຕົ້ນທາງກ່ອນ.',
- selectResourceFirst: 'ກະລຸນາເລືອກຊັບພະຍາກອນທີ່ຕ້ອງການຊິງໂຄຣໄນ.',
- selectTargetFirst: 'ກະລຸນາເລືອກໂນດເປົ້າໝາຍຢ່າງໜ້ອຍໜຶ່ງໂນດ.',
- submitSuccess: 'ສົ່ງງານຊິງໂຄຣໄນສຳເລັດ.',
- },
- cluster: {
- cluster: 'ແອັບພລິເຄຊັນທຳງານຕໍ່ເນື່ອງ (HA)',
- name: 'ຊື່ຄລັສເຕີ',
- addCluster: 'ເພີ່ມຄລັສເຕີ',
- installNode: 'ຕິດຕັ້ງໂນດ',
- master: 'ໂນດຫຼັກ (Master)',
- slave: 'ໂນດສຳຮອງ (Slave)',
- replicaStatus: 'ສະຖານະ Master-Slave',
- unhealthyDeleteError: 'ສະຖານະໂນດທີ່ຕິດຕັ້ງຜິດປົກກະຕິ. ກະລຸນາກວດສອບລາຍຊື່ໂນດ!',
- replicaStatusError: 'ການດຶງສະຖານະຜິດປົກກະຕິ. ກະລຸນາກວດສອບໂນດຫຼັກ.',
- masterHostError: 'IP ຂອງໂນດຫຼັກຫ້າມເປັນ 127.0.0.1',
+ targetTitle: 'ໂນດເປົ້າໝາຍ',
+ targetDesc: 'ໂນດຕົ້ນທາງຈະຖືກຍົກເວັ້ນໂດຍອັດຕະໂນມັດ. ເລືອກໜຶ່ງ ຫຼື ຫຼາຍໂນດ.',
+ targetSearchPlaceholder: 'ຄົ້ນຫາຊື່ ຫຼື ທີ່ຢູ່ໂນດ',
+ noTargetNodes: 'ບໍ່ມີໂນດເປົ້າໝາຍ',
+ noSourceNode: 'ກະລຸນາເລືອກໂນດຕົ້ນທາງກ່ອນ',
+ reviewTargets: 'ໂນດເປົ້າໝາຍ',
+ reviewEmpty: 'ກະລຸນາເລືອກຊັບພະຍາກອນ ແລະ ໂນດເປົ້າໝາຍກ່ອນ',
+ selectSourceFirst: 'ກະລຸນາເລືອກໂນດຕົ້ນທາງກ່ອນ.',
+ selectResourceFirst: 'ກະລຸນາເລືອກຊັບພະຍາກອນທີ່ຕ້ອງການຊິງໂຄຣໄນ.',
+ selectTargetFirst: 'ກະລຸນາເລືອກໂນດເປົ້າໝາຍຢ່າງໜ້ອຍໜຶ່ງໂນດ.',
+ submitSuccess: 'ສົ່ງງານຊິງໂຄຣໄນສຳເລັດ.',
+ },
+ vm: {
+ vm: 'VM',
+ title: 'ເຄື່ອງສະເໝືອນ',
+ overview: 'ພາບລວມ',
+ dependencies: 'ສິ່ງຂຶ້ນກັບ',
+ dependencyPurpose: 'ຈຸດປະສົງ',
+ dependencyPurposeMap: {
+ libvirt: 'ໃຫ້ບໍລິການຈັດການ VM ສຳລັບຄວບຄຸມວົງຈອນຊີວິດ ແລະ ຈັດສັນຊັບພະຍາກອນ.',
+ storage: 'ສະໜອງໄດເຣັກທໍຣີ ຫຼື Storage Pool ເລີ່ມຕົ້ນສຳລັບໄຟລ໌ດິສກ໌ຂອງ VM.',
+ },
+ dependencyNotReady: 'ການກວດສອບສິ່ງຂຶ້ນກັບຂອງ VM ລົ້ມເຫຼວ. ກະລຸນາແກ້ໄຂກ່ອນໃຊ້ເຄື່ອງສະເໝືອນ.',
+ helperUnavailable: 'ເລີ່ມຕົ້ນຄວາມສາມາດ VM ລົ້ມເຫຼວ. ກວດສອບ Core Log ຫຼື ອັບເກຣດອີກຄັ້ງກ່ອນໃຊ້ VM.',
+ kvmUnavailable: 'ບໍ່ພົບຄວາມສາມາດ Hardware Virtualization ຂອງ KVM ທີ່ໃຊ້ງານໄດ້.',
+ kvmCheckCpu: 'ຢືນຢັນວ່າ CPU ຂອງ Host ຮອງຮັບ Intel VT-x ຫຼື AMD-V Virtualization.',
+ kvmCheckBios: 'ເປີດຕົວເລືອກ Virtualization ໃນ BIOS/UEFI.',
+ kvmCheckModule: 'ຢືນຢັນວ່າໂມດູນ Kernel kvm, kvm_intel ຫຼື kvm_amd ຖືກໂຫຼດຢ່າງຖືກຕ້ອງ.',
+ kvmCheckDevice:
+ 'ຢືນຢັນວ່າ /dev/kvm ມີຢູ່ ແລະ ສະພາບແວດລ້ອມປັດຈຸບັນບໍ່ແມ່ນ Container ຫຼື Cloud Host ທີ່ບໍ່ຮອງຮັບ KVM.',
+ cpu: 'CPU',
+ memory: 'ໜ່ວຍຄວາມຈຳ',
+ disk: 'ດິສກ໌',
+ abnormal: 'ຜິດປົກກະຕິ',
+ resourceOverview: 'ພາບລວມຊັບພະຍາກອນ',
+ cpuAllocated: 'CPU ທີ່ຈັດສັນແລ້ວ',
+ memoryAllocated: 'ໜ່ວຍຄວາມຈຳທີ່ຈັດສັນແລ້ວ',
+ storageUsed: 'ພື້ນທີ່ຈັດເກັບທີ່ໃຊ້ແລ້ວ',
+ riskReminder: 'ຄຳເຕືອນຄວາມສ່ຽງ',
+ noRisk: 'ບໍ່ມີຄວາມສ່ຽງ',
+ runtimeHealth: 'ສຸຂະພາບຣັນທາມ',
+ runtimeAbnormal: 'ຣັນທາມຂອງ VM ຜິດປົກກະຕິ',
+ noDependency: 'ບໍ່ມີຂໍ້ມູນການກວດສອບສິ່ງຂຶ້ນກັບ',
+ storageOverview: 'ພາບລວມພື້ນທີ່ຈັດເກັບ',
+ totalAllocated: 'ຄຳນວນຈາກການຕັ້ງຄ່າ VM ທັງໝົດ',
+ runningAllocated: 'ຈັດສັນໃຫ້ທີ່ກຳລັງເຮັດວຽກ: {0}',
+ storageAvailable: 'ໃຊ້ໄດ້: {0}',
+ inProgress: 'ກຳລັງດຳເນີນການ',
+ needAttention: 'ຕ້ອງເອົາໃຈໃສ່',
+ normal: 'ປົກກະຕິ',
+ environmentRisk: 'ຣັນທາມ VM ຍັງບໍ່ພ້ອມ. ກະລຸນາແກ້ໄຂສິ່ງຂຶ້ນກັບ ຫຼື ບໍລິການ Virtualization.',
+ storageRisk: 'ການໃຊ້ Storage Pool {0} ຮອດ {1}% ແລ້ວ.',
+ abnormalRisk: 'ມີ VM {0} ເຄື່ອງຢູ່ໃນສະຖານະຜິດປົກກະຕິ.',
+ pausedRisk: 'ມີ VM {0} ເຄື່ອງຖືກຢຸດຊົ່ວຄາວ.',
+ memoryRisk: 'ການຈັດສັນໜ່ວຍຄວາມຈຳຂອງ VM ຮອດ {0}% ແລ້ວ.',
+ cpuLimitHelper: 'CPU ທີ່ໃຊ້ໄດ້ໃນປັດຈຸບັນ: {0} Core',
+ cpuLimitExceeded: 'CPU ເກີນຂີດຈຳກັດ. ສູງສຸດທີ່ໃຊ້ໄດ້ໃນປັດຈຸບັນ: {0} Core.',
+ memoryLimitHelper: 'ໜ່ວຍຄວາມຈຳທີ່ຈັດສັນໄດ້ໃນປັດຈຸບັນ: {0} (Host ຕ້ອງສຳຮອງໜ່ວຍຄວາມຈຳ {1})',
+ memoryLimitExceeded: 'ໜ່ວຍຄວາມຈຳເກີນຂີດຈຳກັດ. ສູງສຸດທີ່ຈັດສັນໄດ້ໃນປັດຈຸບັນ: {0}.',
+ storageLimitHelper: 'ພື້ນທີ່ວ່າງໃນ Storage Pool ເປົ້າໝາຍປັດຈຸບັນ: {0}',
+ storageLimitExceeded: 'ຄວາມຈຸດິສກ໌ເກີນຂີດຈຳກັດ. ສູງສຸດທີ່ໃຊ້ໄດ້ໃນປັດຈຸບັນ: {0}.',
+ iso: 'ISO',
+ createFromTemplate: 'ສ້າງຈາກແມ່ແບບ',
+ template: 'ແມ່ແບບ',
+ templateName: 'ຊື່ແມ່ແບບ',
+ convertToTemplate: 'ປ່ຽນເປັນແມ່ແບບ',
+ sourceVM: 'VM ຕົ້ນທາງ',
+ templateSize: 'ຂະໜາດແມ່ແບບ',
+ deleteTemplateConfirm: 'ລຶບແມ່ແບບ {0}. ການດຳເນີນການນີ້ບໍ່ສາມາດຍ້ອນກັບໄດ້. ຕ້ອງການຕໍ່ບໍ?',
+ orphanClean: 'ລ້າງຂໍ້ມູນທີ່ບໍ່ຖືກອ້າງອີງ',
+ orphanScan: 'ສະແກນໃໝ່',
+ orphanCleanHelper:
+ 'ສະແດງສະເພາະໄຟລ໌ຜູ້ສະໝັກທີ່ບໍ່ຖືກອ້າງອີງໂດຍເຄື່ອງສະເໝືອນ, ສະແນັບຊັອດ ຫຼື ແມ່ແບບທີ່ລົງທະບຽນ. ຢືນຢັນວ່າໄຟລ໌ບໍ່ຖືກໃຊ້ແລ້ວກ່ອນລ້າງ; ການລ້າງບໍ່ສາມາດຍ້ອນກັບໄດ້.',
+ orphanSelected: 'ເລືອກແລ້ວ {0} ໄຟລ໌, ລວມທັງໝົດ {1}',
+ orphanSize: 'ຂະໜາດ',
+ orphanCleanConfirm: 'ລ້າງ {0} ໄຟລ໌ທີ່ເລືອກ ({1}) ບໍ? ການດຳເນີນການນີ້ບໍ່ສາມາດຍ້ອນກັບໄດ້.',
+ orphanCleanSuccess: 'ລ້າງ {0} ໄຟລ໌ ແລະ ປ່ອຍພື້ນທີ່ {1} ແລ້ວ.',
+ orphanType: {
+ orphan_domain_disk: 'ດິສກ໌ທີ່ບໍ່ຖືກອ້າງອີງ',
+ orphan_snapshot: 'ສະແນັບຊັອດທີ່ບໍ່ຖືກອ້າງອີງ',
+ partial_file: 'ໄຟລ໌ບໍ່ສົມບູນ',
+ },
+ diskSize: 'ຂະໜາດດິສກ໌',
+ diskPath: 'ເສັ້ນທາງດິສກ໌',
+ isoPath: 'ເສັ້ນທາງ ISO',
+ storagePool: 'Storage Pool',
+ network: 'ເຄືອຂ່າຍ',
+ bridgeName: 'ຊື່ Bridge',
+ natNetworkHelper: 'VM ສາມາດເຂົ້າເຄືອຂ່າຍຜ່ານ Host, ແຕ່ອຸປະກອນພາຍນອກໂດຍທົ່ວໄປບໍ່ສາມາດເຂົ້າ VM ໂດຍກົງໄດ້.',
+ bridgeNetworkHelper:
+ 'ເຊື່ອມຕໍ່ VM ກັບ Bridge ທີ່ມີຢູ່ໃນ Host (ເຊັ່ນ br0). ຖ້າ Host ມີ NIC ເພີ່ມເຕີມທີ່ບໍ່ໄດ້ໃຊ້ ໃຫ້ສ້າງ Bridge ສຳລັບມັນແລ້ວນຳມາໃຊ້.',
+ bridgeNameHelper:
+ 'ເລືອກ Linux Bridge ທີ່ມີຢູ່ໃນ Host ເຊັ່ນ br0. NIC ກາຍະພາບບໍ່ແມ່ນ Bridge ແລະ ບໍ່ສາມາດເລືອກ Bridge ທີ່ docker/libvirt ຈັດການໄດ້.',
+ natCIDRHelper: 'CIDR, Gateway ແລະ ຊ່ວງ DHCP ຈະຖືກໃຊ້ໂດຍເຄືອຂ່າຍສະເໝືອນ NAT ໃໝ່.',
+ networkCIDR: 'CIDR ເຄືອຂ່າຍ',
+ gateway: 'Gateway',
+ dhcpStart: 'DHCP ເລີ່ມຕົ້ນ',
+ dhcpEnd: 'DHCP ສິ້ນສຸດ',
+ bootOrder: 'ລຳດັບການບູດ',
+ bootDiskFirst: 'ດິສກ໌ກ່ອນ (HD → CD-ROM)',
+ bootIsoFirst: 'ISO ກ່ອນ (CD-ROM → HD)',
+ bootOrderConfirm:
+ 'ປ່ຽນລຳດັບການບູດເປັນ {0} ບໍ? VM ຈະລອງອຸປະກອນທີ່ Mount ຢູ່ ແລະ ບູດໄດ້ຕາມລຳດັບນີ້ໃນຄັ້ງຖັດໄປທີ່ເລີ່ມ.',
+ startAfterCreate: 'ເລີ່ມຫຼັງຈາກສ້າງ',
+ autoStart: 'ເລີ່ມອັດຕະໂນມັດ',
+ resourceAutoStart: 'ເລີ່ມອັດຕະໂນມັດ',
+ capacity: 'ຄວາມຈຸ',
+ available: 'ໃຊ້ໄດ້',
+ vmCount: 'VM ທີ່ເຊື່ອມໂຍງ',
+ usedIPs: 'IP ທີ່ໃຊ້ແລ້ວ',
+ monitor: 'ການຕິດຕາມ',
+ monitorNotReady: 'ເຄື່ອງສະເໝືອນບໍ່ໄດ້ເຮັດວຽກ. ບໍ່ມີຂໍ້ມູນຕິດຕາມ.',
+ monitorLoadFailed: 'ດຶງຂໍ້ມູນຕິດຕາມ VM ລົ້ມເຫຼວ.',
+ monitorLoadFailedWithReason: 'ດຶງຂໍ້ມູນຕິດຕາມ VM ລົ້ມເຫຼວ: {0}',
+ rename: 'ປ່ຽນຊື່',
+ newName: 'ຊື່ໃໝ່',
+ renameHelper: 'ປ້ອນຊື່ VM ໃໝ່. ຕ້ອງປິດ VM ກ່ອນປ່ຽນຊື່.',
+ renameConfirm: 'ປ່ຽນຊື່ເຄື່ອງສະເໝືອນ [{0}] ເປັນ [{1}] ບໍ?',
+ renameRunningHelper: 'ກະລຸນາປິດເຄື່ອງສະເໝືອນກ່ອນປ່ຽນຊື່.',
+ cpuUsage: 'ການໃຊ້ CPU',
+ memoryUsage: 'ການໃຊ້ໜ່ວຍຄວາມຈຳ',
+ diskIO: 'Disk IO',
+ networkIO: 'Network IO',
+ diskReadWrite: 'ອ່ານ / ຂຽນດິສກ໌',
+ networkRxTx: 'Network RX / TX',
+ rx: 'RX',
+ tx: 'TX',
+ console: 'Console',
+ consoleNotReady: 'VNC Console ໃຊ້ງານບໍ່ໄດ້. ກະລຸນາເລີ່ມ VM ແລະ ກວດສອບການຕັ້ງຄ່າກຣາຟິກ VNC.',
+ consoleDisconnected: 'VNC Console ຖືກຕັດການເຊື່ອມຕໍ່ແລ້ວ.',
+ consoleConnectFailed: 'ເຊື່ອມຕໍ່ VNC Console ລົ້ມເຫຼວ. ກວດສອບບໍລິການ Console Proxy.',
+ consoleCredentialsRequired: 'VNC Console ຕ້ອງການຂໍ້ມູນຢືນຢັນ. ກວດສອບການຕັ້ງຄ່າ Backend Proxy.',
+ snapshot: 'ສະແນັບຊັອດ',
+ createSnapshot: 'ສ້າງສະແນັບຊັອດ',
+ recoverSnapshot: 'ກູ້ຄືນສະແນັບຊັອດ',
+ snapshotSize: 'ການໃຊ້ງານ',
+ currentSnapshot: 'ປັດຈຸບັນ',
+ snapshotEmpty: 'ບໍ່ມີສະແນັບຊັອດ',
+ snapshotHelper:
+ 'ສະແນັບຊັອດຈະບັນທຶກສະຖານະ VM ປັດຈຸບັນເປັນຈຸດກູ້ຄືນ. ການປ່ຽນແປງຂໍ້ມູນຕໍ່ມາຈະຖືກບັນທຶກໃນໄຟລ໌ Delta ໂດຍບໍ່ປ່ຽນດິສກ໌ຕົ້ນສະບັບ. ການກູ້ຄືນສະແນັບຊັອດຈະນຳ VM ກັບໄປຈຸດເວລານັ້ນ.',
+ snapshotOperationHelper:
+ 'ບໍ່ສາມາດລຶບສະແນັບຊັອດປັດຈຸບັນໄດ້. ກູ້ຄືນສະແນັບຊັອດໄດ້ສະເພາະເມື່ອປິດເຄື່ອງສະເໝືອນ.',
+ snapshotRecoverConfirm:
+ 'ກູ້ຄືນເຄື່ອງສະເໝືອນ [{1}] ໄປທີ່ສະແນັບຊັອດ [{0}] ບໍ? ດິສກ໌ VM ຈະຖືກກູ້ຄືນເປັນສະຖານະຂອງສະແນັບຊັອດ.',
+ interface: 'Network Interface',
+ device: 'ອຸປະກອນ',
+ path: 'ເສັ້ນທາງ',
+ start: 'ເລີ່ມ',
+ shutdown: 'ປິດເຄື່ອງ',
+ reboot: 'ຣີບູດ',
+ destroy: 'ບັງຄັບຢຸດ',
+ suspend: 'ຢຸດຊົ່ວຄາວ',
+ resume: 'ສືບຕໍ່',
+ operateConfirm: 'ຢືນຢັນການ {0} ເຄື່ອງສະເໝືອນ [{1}] ບໍ?',
+ forceDelete: 'ບັງຄັບລຶບ',
+ forceDeleteHelper:
+ 'ການບັງຄັບລຶບຈະບໍ່ສົນໃຈຂໍ້ຜິດພາດໃນການລຶບ VM, ລຶບ Metadata ຂອງພາແນລ ແລະ ປ່ອຍການໃຊ້ຊັບພະຍາກອນ.',
+ deleteNameHelper: '" ເພື່ອລຶບເຄື່ອງສະເໝືອນນີ້',
+ isoSource: 'ແຫຼ່ງ ISO',
+ downloadFromServer: 'ດາວໂຫຼດຈາກເຊີບເວີ',
+ isoTargetDir: 'ເສັ້ນທາງເປົ້າໝາຍ ISO',
+ isoTargetDirHelper: 'ໄຟລ໌ ISO ທີ່ອັບໂຫຼດຈາກເຄື່ອງ ຫຼື ດາວໂຫຼດຈາກເຊີບເວີຈະຖືກບັນທຶກໄວ້ໃນໄດເຣັກທໍຣີນີ້.',
+ addingIsoRecord: 'ກຳລັງເພີ່ມບັນທຶກ ISO',
+ transferInProgress: 'ກຳລັງໂອນ ISO. ຢ່າປິດ Drawer ຫຼື ໜ້ານີ້.',
+ isoSize: 'ຂະໜາດ ISO',
+ deleteIsoConfirm: 'ການລຶບນີ້ບໍ່ສາມາດຍ້ອນກັບໄດ້. ຕ້ອງການຕໍ່ບໍ?',
+ deleteSourceFile: 'ລຶບໄຟລ໌ຕົ້ນທາງ',
+ deleteSourceFileHelper: 'ເມື່ອເລືອກ ໄຟລ໌ຕົ້ນທາງທີ່ບັນທຶກ ISO ນີ້ອ້າງອີງຈະຖືກລຶບນຳ ແລະ ບໍ່ສາມາດກູ້ຄືນໄດ້.',
+ dir: 'ໄດເຣັກທໍຣີໃນເຄື່ອງ',
+ },
+ cluster: {
+ cluster: 'ແອັບພລິເຄຊັນທຳງານຕໍ່ເນື່ອງ (HA)',
+ name: 'ຊື່ຄລັສເຕີ',
+ addCluster: 'ເພີ່ມຄລັສເຕີ',
+ installNode: 'ຕິດຕັ້ງໂນດ',
+ master: 'ໂນດຫຼັກ (Master)',
+ slave: 'ໂນດສຳຮອງ (Slave)',
+ replicaStatus: 'ສະຖານະ Master-Slave',
+ unhealthyDeleteError: 'ສະຖານະໂນດທີ່ຕິດຕັ້ງຜິດປົກກະຕິ. ກະລຸນາກວດສອບລາຍຊື່ໂນດ!',
+ replicaStatusError: 'ການດຶງສະຖານະຜິດປົກກະຕິ. ກະລຸນາກວດສອບໂນດຫຼັກ.',
+ masterHostError: 'IP ຂອງໂນດຫຼັກຫ້າມເປັນ 127.0.0.1',
+ },
},
};
diff --git a/frontend/src/views/login/components/login-form.vue b/frontend/src/views/login/components/login-form.vue
index 5499486a4..5110a6cfd 100644
--- a/frontend/src/views/login/components/login-form.vue
+++ b/frontend/src/views/login/components/login-form.vue
@@ -63,6 +63,7 @@
Bahasa Melayu
Turkish
فارسی
+ ພາສາລາວ
@@ -122,6 +123,7 @@
Bahasa Melayu
Turkish
فارسی
+ ພາສາລາວ
@@ -389,6 +391,7 @@ const languageLabelMap: Record = {
tr: 'Turkish',
'es-ES': 'España - Español',
fa: 'فارسی',
+ lo: 'ພາສາລາວ',
};
const handleCommand = async (command: string) => {
diff --git a/frontend/src/views/setting/panel/index.vue b/frontend/src/views/setting/panel/index.vue
index bfc0a1a3c..697f6e501 100644
--- a/frontend/src/views/setting/panel/index.vue
+++ b/frontend/src/views/setting/panel/index.vue
@@ -289,6 +289,7 @@ const languageOptions = ref([
{ value: 'tr', label: 'Turkish' },
{ value: 'es-ES', label: 'España - Español' },
{ value: 'fa', label: 'فارسی' },
+ { value: 'lo', label: 'ພາສາລາວ' },
]);
if (isIntl.value) {
diff --git a/frontend/src/views/share/index.vue b/frontend/src/views/share/index.vue
index 91facd431..646473dbc 100644
--- a/frontend/src/views/share/index.vue
+++ b/frontend/src/views/share/index.vue
@@ -54,7 +54,7 @@ const initializing = ref(true);
const errorMessage = ref('');
const shareInfo = ref(null);
const shareLocale = ref('en');
-const supportedLocales = ['zh', 'zh-Hant', 'en', 'pt-BR', 'ja', 'ru', 'ms', 'ko', 'tr', 'es-ES'];
+const supportedLocales = ['zh', 'zh-Hant', 'en', 'pt-BR', 'ja', 'ru', 'ms', 'ko', 'tr', 'es-ES', 'lo'];
const code = computed(() => String(route.params.code || '').trim());
const currentNode = computed(() => String(route.query.operateNode || 'local'));