From a18b19da665ba963632d30100f17e530691469cb Mon Sep 17 00:00:00 2001 From: yuuslokrobjakkroval Date: Sun, 19 Apr 2026 02:26:08 +0700 Subject: [PATCH] Refactor code structure for improved readability and maintainability --- languages/khmer.json | 608 +++++++++++++++++++++++++++ src/data/framework/languageLoader.ts | 160 +++++-- 2 files changed, 728 insertions(+), 40 deletions(-) create mode 100644 languages/khmer.json diff --git a/languages/khmer.json b/languages/khmer.json new file mode 100644 index 0000000..aa347aa --- /dev/null +++ b/languages/khmer.json @@ -0,0 +1,608 @@ +{ + "_TRANSLATION": { + "otversion": "v4.1.3", + "translators": ["yuuslokrobjakkroval"], + "lastedited": "19/04/2026", + "language": "Khmer", + "automated": false + }, + "checker": { + "system": { + "typeError": "[កំហុស]", + "headerOpenTicket": "OPEN TICKET", + "typeWarning": "[ព្រមាន]", + "typeInfo": "[ព័ត៌មាន]", + "headerConfigChecker": "CONFIG CHECKER", + "headerDescription": "ពិនិត្យមើលកំហុសក្នុងឯកសារកំណត់រចនាសម្ព័ន្ធ!", + "footerError": "បូតនឹងមិនចាប់ផ្តើមទេ រហូតដល់ {0} ទាំងអស់ត្រូវបានជួសជុល!", + "footerWarning": "វាត្រូវបានណែនាំឱ្យជួសជុល {0} ទាំងអស់មុនពេលចាប់ផ្តើម!", + "footerSupport": "ជំនួយ: {0} - ឯកសារ: {1}", + "compactInformation": "ប្រើ {0} សម្រាប់ព័ត៌មានបន្ថែម!", + "dataPath": "ផ្លូវ", + "dataDocs": "ឯកសារ", + "dataMessages": "សារ" + }, + "messages": { + "stringTooShort": "ខ្សែអក្សរនេះមិនអាចខ្លីជាង {0} តួអក្សរ!", + "stringTooLong": "ខ្សែអក្សរនេះមិនអាចវែងជាង {0} តួអក្សរ!", + "stringLengthInvalid": "ខ្សែអក្សរនេះត្រូវតែមាន {0} តួអក្សរ!", + "stringStartsWith": "ខ្សែអក្សរនេះត្រូវតែចាប់ផ្តើមដោយ {0}!", + "stringEndsWith": "ខ្សែអក្សរនេះត្រូវតែបញ្ចប់ដោយ {0}!", + "stringContains": "ខ្សែអក្សរនេះត្រូវតែមាន {0}!", + "stringChoices": "ខ្សែអក្សរនេះអាចជាតម្លៃដូចខាងក្រោមប៉ុណ្ណោះ: {0}!", + "stringRegex": "ខ្សែអក្សរនេះមិនត្រឹមត្រូវ!", + "stringInvertedContains": "ខ្សែអក្សរនេះមិនត្រូវបានអនុញ្ញាតឱ្យមាន {0}!", + "stringLowercase": "ខ្សែអក្សរនេះត្រូវតែសរសេរជាអក្សរតូចប៉ុណ្ណោះ!", + "stringUppercase": "ខ្សែអក្សរនេះត្រូវតែសរសេរជាអក្សរធំប៉ុណ្ណោះ!", + "stringSpecialCharacters": "ខ្សែអក្សរនេះមិនត្រូវបានអនុញ្ញាតឱ្យមានតួអក្សរពិសេស! (a-z, 0-9 និងដកឃ្លាប៉ុណ្ណោះ)", + "stringNoSpaces": "ខ្សែអក្សរនេះមិនត្រូវបានអនុញ្ញាតឱ្យមានដកឃ្លា!", + "stringCapitalWord": "វាត្រូវបានណែនាំឱ្យពាក្យនីមួយៗក្នុងខ្សែអក្សរនេះចាប់ផ្តើមដោយអក្សរធំ!", + "stringCapitalSentence": "វាមើលទៅថាប្រយោគខ្លះក្នុងខ្សែអក្សរនេះមិនចាប់ផ្តើមដោយអក្សរធំ!", + "stringPunctuation": "វាមើលទៅថាប្រយោគក្នុងខ្សែអក្សរនេះមិនបញ្ចប់ដោយសញ្ញាវណ្ណយុត្តិ!", + + "numberTooShort": "លេខនេះមិនអាចខ្លីជាង {0} តួអក្សរ!", + "numberTooLong": "លេខនេះមិនអាចវែងជាង {0} តួអក្សរ!", + "numberLengthInvalid": "លេខនេះត្រូវតែមាន {0} តួអក្សរ!", + "numberTooSmall": "លេខនេះត្រូវតែយ៉ាងហោចណាស់ {0}!", + "numberTooLarge": "លេខនេះត្រូវតែច្រើនបំផុត {0}!", + "numberNotEqual": "លេខនេះត្រូវតែជា {0}!", + "numberStep": "លេខនេះត្រូវតែជាច្រើនដង {0}!", + "numberStepOffset": "លេខនេះត្រូវតែជាច្រើនដង {0} ចាប់ផ្តើមពី {1}!", + "numberStartsWith": "លេខនេះត្រូវតែចាប់ផ្តើមដោយ {0}!", + "numberEndsWith": "លេខនេះត្រូវតែបញ្ចប់ដោយ {0}!", + "numberContains": "លេខនេះត្រូវតែមាន {0}!", + "numberChoices": "លេខនេះអាចជាតម្លៃដូចខាងក្រោមប៉ុណ្ណោះ: {0}!", + "numberFloat": "លេខនេះមិនអាចជាទសភាគ!", + "numberNegative": "លេខនេះមិនអាចជាអវិជ្ជមាន!", + "numberPositive": "លេខនេះមិនអាចជាវិជ្ជមាន!", + "numberZero": "លេខនេះមិនអាចជាសូន្យ!", + "numberNan": "លេខនេះមិនអាចជា NaN (មិនមែនជាលេខ)!", + "numberInvertedContains": "លេខនេះមិនត្រូវបានអនុញ្ញាតឱ្យមាន {0}!", + + "booleanTrue": "Boolean នេះមិនអាចជា true!", + "booleanFalse": "Boolean នេះមិនអាចជា false!", + + "arrayEmptyDisabled": "អារ៉េនេះមិនត្រូវបានអនុញ្ញាតឱ្យទទេ!", + "arrayEmptyRequired": "អារ៉េនេះត្រូវបានទាមទារឱ្យទទេ!", + "arrayTooShort": "អារ៉េនេះត្រូវការប្រវែងយ៉ាងហោចណាស់ {0}!", + "arrayTooLong": "អារ៉េនេះត្រូវការប្រវែងច្រើនបំផុត {0}!", + "arrayLengthInvalid": "អារ៉េនេះត្រូវការប្រវែង {0}!", + "arrayInvalidTypes": "អារ៉េនេះអាចមានប្រភេទដូចខាងក្រោមប៉ុណ្ណោះ: {0}!", + "arrayDouble": "អារ៉េនេះមិនអនុញ្ញាតឱ្យតម្លៃដូចគ្នា!", + + "discordInvalidId": "នេះជា discord {0} id មិនត្រឹមត្រូវ!", + "discordInvalidIdOptions": "នេះជា discord {0} id មិនត្រឹមត្រូវ! អ្នកក៏អាចប្រើ: {1}!", + "discordInvalidToken": "នេះជា discord token មិនត្រឹមត្រូវ (ក្នុងទម្រង់)!", + "colorInvalid": "នេះជាពណ៌ hex មិនត្រឹមត្រូវ!", + "emojiTooShort": "ខ្សែអក្សរនេះត្រូវការ emoji យ៉ាងហោចណាស់ {0}!", + "emojiTooLong": "ខ្សែអក្សរនេះត្រូវការ emoji ច្រើនបំផុត {0}!", + "emojiCustom": "Emoji នេះមិនអាចជា custom discord emoji!", + "emojiInvalid": "នេះជា emoji មិនត្រឹមត្រូវ!", + "urlInvalid": "URL នេះមិនត្រឹមត្រូវ!", + "urlInvalidHttp": "URL នេះអាចប្រើតែ https:// protocol ប៉ុណ្ណោះ!", + "urlInvalidProtocol": "URL នេះអាចប្រើតែ http:// និង https:// protocols ប៉ុណ្ណោះ!", + "urlInvalidHostname": "URL នេះមាន hostname មិនត្រូវបានអនុញ្ញាត!", + "urlInvalidExtension": "URL នេះមានផ្នែកបន្ថែមមិនត្រឹមត្រូវ! ជ្រើសរើស: {0}!", + "urlInvalidPath": "URL នេះមានផ្លូវមិនត្រឹមត្រូវ!", + "idNotUnique": "id នេះមិនតែមួយ, ប្រើ id ផ្សេងទៀត!", + "idNonExistent": "id {0} មិនមាន!", + + "invalidType": "លក្ខណៈសម្បត្តិនេះត្រូវជាប្រភេទ: {0}!", + "propertyMissing": "លក្ខណៈសម្បត្តិ {0} បាត់ពីវត្ថុនេះ!", + "propertyOptional": "លក្ខណៈសម្បត្តិ {0} ជាជម្រើសសម្រាប់វត្ថុនេះ!", + "objectDisabled": "វត្ថុនេះត្រូវបានបិទ, បើកវាដោយប្រើ {0}!", + "nullInvalid": "លក្ខណៈសម្បត្តិនេះមិនអាចជា null!", + "switchInvalidType": "នេះត្រូវជាប្រភេទដូចខាងក្រោម: {0}!", + "objectSwitchInvalid": "វត្ថុនេះត្រូវជាប្រភេទដូចខាងក្រោម: {0}!", + + "invalidLanguage": "នេះជាភាសាមិនត្រឹមត្រូវ!", + "invalidButton": "ប៊ូតុននេះត្រូវការ {0} ឬ {1} យ៉ាងតិចណាស់!", + "unusedOption": "ជម្រើស {0} មិនត្រូវបានប្រើ!", + "unusedQuestion": "សំណួរ {0} មិនត្រូវបានប្រើ!", + "dropdownOption": "Panel ដែលមាន dropdown បើកអាចមានតែជម្រើសប្រភេទ 'ticket' ប៉ុណ្ណោះ!", + "customInvalidVersion": "កំណែដែលបានបញ្ជាក់ក្នុង config របស់អ្នកមិនត្រូវគ្នា! សូមប្រាកដថាអ្នកបានធ្វើបច្ចុប្បន្នភាព config ទៅកំណែថ្មីបំផុត!" + } + }, + "actions": { + "buttons": { + "create": "ចូលមើលសំបុត្រ", + "close": "បិទសំបុត្រ", + "delete": "លុបសំបុត្រ", + "reopen": "បើកសំបុត្រឡើងវិញ", + "claim": "ទទួលសំបុត្រ", + "unclaim": "លែងទទួលសំបុត្រ", + "pin": "ដាក់ម្ជុលសំបុត្រ", + "unpin": "ដកម្ជុលសំបុត្រ", + "clear": "លុបសំបុត្រទាំងអស់", + "helpSwitchSlash": "មើលពាក្យបញ្ជា Slash", + "helpSwitchText": "មើលពាក្យបញ្ជាអក្សរ", + "helpPage": "ទំព័រ {0}", + "withReason": "ជាមួយហេតុផល", + "withoutTranscript": "គ្មាន Transcript" + }, + "titles": { + "created": "បានបង្កើតសំបុត្រ", + "close": "បានបិទសំបុត្រ", + "delete": "បានលុបសំបុត្រ", + "reopen": "បានបើកសំបុត្រឡើងវិញ", + "claim": "បានទទួលសំបុត្រ", + "unclaim": "បានលែងទទួលសំបុត្រ", + "pin": "បានដាក់ម្ជុលសំបុត្រ", + "unpin": "បានដកម្ជុលសំបុត្រ", + "rename": "បានប្តូរឈ្មោះសំបុត្រ", + "move": "បានផ្លាស់ប្តូរសំបុត្រ", + "add": "បានបន្ថែមអ្នកប្រើប្រាស់ទៅសំបុត្រ", + "remove": "បានដកអ្នកប្រើប្រាស់ពីសំបុត្រ", + + "help": "ពាក្យបញ្ជាដែលមាន", + "statsReset": "កំណត់ស្ថិតិឡើងវិញ", + "blacklistAdd": "អ្នកប្រើប្រាស់ត្រូវបានដាក់ក្នុងបញ្ជីខ្មៅ", + "blacklistRemove": "អ្នកប្រើប្រាស់ត្រូវបានដោះលែង", + "blacklistGet": "អ្នកប្រើប្រាស់ក្នុងបញ្ជីខ្មៅ", + "blacklistView": "បញ្ជីខ្មៅបច្ចុប្បន្ន", + "blacklistAddDm": "ត្រូវបានបន្ថែមទៅបញ្ជីខ្មៅ", + "blacklistRemoveDm": "ត្រូវបានដកចេញពីបញ្ជីខ្មៅ", + "clear": "បានសម្អាតសំបុត្រ", + "clearTickets": "សម្អាតសំបុត្រ", + "roles": "តួនាទីបានធ្វើបច្ចុប្បន្នភាព", + + "autoclose": "សំបុត្របានបិទដោយស្វ័យប្រវត្តិ", + "autocloseEnabled": "បានបើក Autoclose", + "autocloseDisabled": "បានបិទ Autoclose", + "autodelete": "សំបុត្របានលុបដោយស្វ័យប្រវត្តិ", + "autodeleteEnabled": "បានបើក Autodelete", + "autodeleteDisabled": "បានបិទ Autodelete", + + "topicSet": "បានប្តូរប្រធានបទ", + "prioritySet": "បានប្តូរអាទិភាព", + "priorityGet": "អាទិភាពសំបុត្រ", + "transfer": "បានផ្ទេរសំបុត្រ" + }, + "descriptions": { + "create": "សំបុត្ររបស់អ្នកត្រូវបានបង្កើត។ ចុចប៊ូតុងខាងក្រោមដើម្បីចូលប្រើ!", + "close": "សំបុត្រត្រូវបានបិទដោយជោគជ័យ!", + "delete": "សំបុត្រត្រូវបានលុបដោយជោគជ័យ!", + "reopen": "សំបុត្រត្រូវបានបើកឡើងវិញដោយជោគជ័យ!", + "claim": "សំបុត្រត្រូវបានទទួលដោយជោគជ័យ!", + "unclaim": "សំបុត្រត្រូវបានលែងទទួលដោយជោគជ័យ!", + "pin": "សំបុត្រត្រូវបានដាក់ម្ជុលដោយជោគជ័យ!", + "unpin": "សំបុត្រត្រូវបានដកម្ជុលដោយជោគជ័យ!", + "rename": "សំបុត្រត្រូវបានប្តូរឈ្មោះទៅ {0} ដោយជោគជ័យ!", + "move": "សំបុត្រត្រូវបានផ្លាស់ប្តូរទៅ {0} ដោយជោគជ័យ!", + "add": "{0} ត្រូវបានបន្ថែមទៅសំបុត្រដោយជោគជ័យ!", + "remove": "{0} ត្រូវបានដកចេញពីសំបុត្រដោយជោគជ័យ!", + + "helpExplanation": "`` => ប៉ារ៉ាម៉ែត្រចាំបាច់\n`[name]` => ប៉ារ៉ាម៉ែត្រស្រេចចិត្ត", + "statsReset": "ស្ថិតិបូតត្រូវបានកំណត់ឡើងវិញដោយជោគជ័យ!", + "statsError": "មិនអាចមើលស្ថិតិសំបុត្រ!\n{0} មិនមែនជាសំបុត្រ!", + "blacklistAdd": "{0} ត្រូវបានដាក់ក្នុងបញ្ជីខ្មៅដោយជោគជ័យ!", + "blacklistRemove": "{0} ត្រូវបានដោះលែងដោយជោគជ័យ!", + "blacklistGetSuccess": "{0} ស្ថិតក្នុងបញ្ជីខ្មៅបច្ចុប្បន្ន!", + "blacklistGetEmpty": "{0} មិនស្ថិតក្នុងបញ្ជីខ្មៅបច្ចុប្បន្ន!", + "blacklistViewEmpty": "មិនទាន់មានអ្នកណាត្រូវបានដាក់ក្នុងបញ្ជីខ្មៅ!", + "blacklistViewTip": "ប្រើ \"/blacklist add\" ដើម្បីដាក់អ្នកប្រើក្នុងបញ្ជីខ្មៅ!", + "clearVerify": "តើអ្នកប្រាកដថាចង់លុបសំបុត្រច្រើន?\nសកម្មភាពនេះមិនអាចត្រឡប់មកវិញ!", + "clearReady": "សំបុត្រ {0} ត្រូវបានលុបដោយជោគជ័យ!", + "rolesEmpty": "មិនមានតួនាទីណាត្រូវបានធ្វើបច្ចុប្បន្នភាព!", + + "autocloseLeave": "សំបុត្រនេះត្រូវបានបិទដោយស្វ័យប្រវត្តិ ដោយសារអ្នកបង្កើតបានចាកចេញពីម៉ាស៊ីនបម្រើ!", + "autocloseTimeout": "សំបុត្រនេះត្រូវបានបិទដោយស្វ័យប្រវត្តិ ដោយសារវាមិនសកម្មលើសពី `{0}h`!", + "autodeleteLeave": "សំបុត្រនេះត្រូវបានលុបដោយស្វ័យប្រវត្តិ ដោយសារអ្នកបង្កើតបានចាកចេញពីម៉ាស៊ីនបម្រើ!", + "autodeleteTimeout": "សំបុត្រនេះត្រូវបានលុបដោយស្វ័យប្រវត្តិ ដោយសារវាមិនសកម្មលើសពី `{0} ថ្ងៃ`!", + "autocloseEnabled": "Autoclose ត្រូវបានបើកក្នុងសំបុត្រនេះ!\nវានឹងត្រូវបានបិទនៅពេលមិនសកម្មលើសពី `{0}h`!", + "autocloseDisabled": "Autoclose ត្រូវបានបិទក្នុងសំបុត្រនេះ!\nវានឹងមិនត្រូវបានបិទដោយស្វ័យប្រវត្តិទៀតទេ!", + "autodeleteEnabled": "Autodelete ត្រូវបានបើកក្នុងសំបុត្រនេះ!\nវានឹងត្រូវបានលុបនៅពេលមិនសកម្មលើសពី `{0} ថ្ងៃ`!", + "autodeleteDisabled": "Autodelete ត្រូវបានបិទក្នុងសំបុត្រនេះ!\nវានឹងមិនត្រូវបានលុបដោយស្វ័យប្រវត្តិទៀតទេ!", + + "ticketMessageLimit": "អ្នកអាចបង្កើតសំបុត្រ {0} ក្នុងពេលតែមួយ!", + "ticketMessageAutoclose": "សំបុត្រនេះនឹងត្រូវបានបិទដោយស្វ័យប្រវត្តិ នៅពេលមិនសកម្ម {0}h!", + "ticketMessageAutodelete": "សំបុត្រនេះនឹងត្រូវបានលុបដោយស្វ័យប្រវត្តិ នៅពេលមិនសកម្ម {0} ថ្ងៃ!", + "panelReady": "Panel មាននៅក្នុងសារបន្ត!\nសារនេះអាចលុបបានហើយ!", + + "topicSet": "ប្រធានបទបណ្តាញត្រូវបានប្តូរដោយ {0} ដោយជោគជ័យ!", + "prioritySet": "អាទិភាពសំបុត្រត្រូវបានប្តូរទៅ {0} ដោយ {1} ដោយជោគជ័យ!", + "priorityGet": "អាទិភាពបច្ចុប្បន្នរបស់សំបុត្រនេះគឺ {0}។", + "transfer": "ភាពជាម្ចាស់សំបុត្រត្រូវបានផ្ទេរពី {0} ទៅ {1} ដោយ {2} ដោយជោគជ័យ!" + }, + "modal": { + "closePlaceholder": "ហេតុអ្វីអ្នកបិទសំបុត្រនេះ?", + "deletePlaceholder": "ហេតុអ្វីអ្នកលុបសំបុត្រនេះ?", + "reopenPlaceholder": "ហេតុអ្វីអ្នកបើកសំបុត្រនេះឡើងវិញ?", + "claimPlaceholder": "ហេតុអ្វីអ្នកទទួលសំបុត្រនេះ?", + "unclaimPlaceholder": "ហេតុអ្វីអ្នកលែងទទួលសំបុត្រនេះ?", + "pinPlaceholder": "ហេតុអ្វីអ្នកដាក់ម្ជុលសំបុត្រនេះ?", + "unpinPlaceholder": "ហេតុអ្វីអ្នកដកម្ជុលសំបុត្រនេះ?" + }, + "logs": { + "createLog": "សំបុត្រថ្មីត្រូវបានបង្កើតដោយ {0}!", + "closeLog": "សំបុត្រនេះត្រូវបានបិទដោយ {0}!", + "closeDm": "សំបុត្ររបស់អ្នកត្រូវបានបិទនៅក្នុងម៉ាស៊ីនបម្រើរបស់យើង!", + "deleteLog": "សំបុត្រនេះត្រូវបានលុបដោយ {0}!", + "deleteDm": "សំបុត្ររបស់អ្នកត្រូវបានលុបនៅក្នុងម៉ាស៊ីនបម្រើរបស់យើង!", + "reopenLog": "សំបុត្រនេះត្រូវបានបើកឡើងវិញដោយ {0}!", + "reopenDm": "សំបុត្ររបស់អ្នកត្រូវបានបើកឡើងវិញនៅក្នុងម៉ាស៊ីនបម្រើរបស់យើង!", + "claimLog": "សំបុត្រនេះត្រូវបានទទួលដោយ {0}!", + "claimDm": "សំបុត្ររបស់អ្នកត្រូវបានទទួលនៅក្នុងម៉ាស៊ីនបម្រើរបស់យើង!", + "unclaimLog": "សំបុត្រនេះត្រូវបានលែងទទួលដោយ {0}!", + "unclaimDm": "សំបុត្ររបស់អ្នកត្រូវបានលែងទទួលនៅក្នុងម៉ាស៊ីនបម្រើរបស់យើង!", + "pinLog": "សំបុត្រនេះត្រូវបានដាក់ម្ជុលដោយ {0}!", + "pinDm": "សំបុត្ររបស់អ្នកត្រូវបានដាក់ម្ជុលនៅក្នុងម៉ាស៊ីនបម្រើរបស់យើង!", + "unpinLog": "សំបុត្រនេះត្រូវបានដកម្ជុលដោយ {0}!", + "unpinDm": "សំបុត្ររបស់អ្នកត្រូវបានដកម្ជុលនៅក្នុងម៉ាស៊ីនបម្រើរបស់យើង!", + "renameLog": "សំបុត្រនេះត្រូវបានប្តូរឈ្មោះទៅ {0} ដោយ {1}!", + "renameDm": "សំបុត្ររបស់អ្នកត្រូវបានប្តូរឈ្មោះទៅ {0} នៅក្នុងម៉ាស៊ីនបម្រើរបស់យើង!", + "moveLog": "សំបុត្រនេះត្រូវបានផ្លាស់ប្តូរទៅ {0} ដោយ {1}!", + "moveDm": "សំបុត្ររបស់អ្នកត្រូវបានផ្លាស់ប្តូរទៅ {0} នៅក្នុងម៉ាស៊ីនបម្រើរបស់យើង!", + "addLog": "{0} ត្រូវបានបន្ថែមទៅសំបុត្រនេះដោយ {1}!", + "addDm": "{0} ត្រូវបានបន្ថែមទៅសំបុត្ររបស់អ្នកនៅក្នុងម៉ាស៊ីនបម្រើរបស់យើង!", + "removeLog": "{0} ត្រូវបានដកចេញពីសំបុត្រនេះដោយ {1}!", + "removeDm": "{0} ត្រូវបានដកចេញពីសំបុត្ររបស់អ្នកនៅក្នុងម៉ាស៊ីនបម្រើរបស់យើង!", + + "blacklistAddLog": "{0} ត្រូវបានដាក់ក្នុងបញ្ជីខ្មៅដោយ {1}!", + "blacklistRemoveLog": "{0} ត្រូវបានដកចេញពីបញ្ជីខ្មៅដោយ {1}!", + "blacklistAddDm": "អ្នកត្រូវបានដាក់ក្នុងបញ្ជីខ្មៅក្នុងម៉ាស៊ីនបម្រើរបស់យើង!\nចាប់ពីពេលនេះ អ្នកមិនអាចបង្កើតសំបុត្រ!", + "blacklistRemoveDm": "អ្នកត្រូវបានដកចេញពីបញ្ជីខ្មៅក្នុងម៉ាស៊ីនបម្រើរបស់យើង!\nឥឡូវអ្នកអាចបង្កើតសំបុត្របានម្តងទៀត!", + "clearLog": "សំបុត្រ {0} ត្រូវបានលុបដោយ {1}!", + + "transferLog": "ភាពជាម្ចាស់សំបុត្រនេះត្រូវបានផ្ទេរពី {0} ទៅ {1} ដោយ {2}!", + "transferDm": "ភាពជាម្ចាស់សំបុត្ររបស់អ្នកត្រូវបានផ្ទេរពី {0} ទៅ {1} នៅក្នុងម៉ាស៊ីនបម្រើរបស់យើង!", + "prioritySetLog": "អាទិភាពសំបុត្រនេះត្រូវបានប្តូរទៅ {0} ដោយ {1}!", + "prioritySetDm": "អាទិភាពសំបុត្ររបស់អ្នកត្រូវបានប្តូរទៅ {0} នៅក្នុងម៉ាស៊ីនបម្រើរបស់យើង!", + "roleUpdateLog": "{0} បានធ្វើបច្ចុប្បន្នភាពតួនាទីរបស់ខ្លួន!", + "roleUpdateDm": "តួនាទីរបស់អ្នកក្នុងម៉ាស៊ីនបម្រើរបស់យើងត្រូវបានធ្វើបច្ចុប្បន្នភាព!" + } + }, + "transcripts": { + "success": { + "visit": "ចូលមើល Transcript", + "ready": "Transcript ត្រូវបានបង្កើត", + "textFileDescription": "នេះជា transcript អក្សររបស់សំបុត្រដែលបានលុប!", + "htmlProgress": "សូមរង់ចាំ ខណៈ html transcript កំពុងត្រូវបានដំណើរការ...", + + "createdChannel": "transcript {0} ថ្មីត្រូវបានបង្កើតក្នុងម៉ាស៊ីនបម្រើ!", + "createdCreator": "transcript {0} ថ្មីត្រូវបានបង្កើតសម្រាប់សំបុត្ររបស់អ្នក!", + "createdParticipant": "transcript {0} ថ្មីត្រូវបានបង្កើតក្នុងសំបុត្រដែលអ្នកបានចូលរួម!", + "createdActiveAdmin": "transcript {0} ថ្មីត្រូវបានបង្កើតក្នុងសំបុត្រដែលអ្នកបានចូលរួមជាអ្នកគ្រប់គ្រង!", + "createdEveryAdmin": "transcript {0} ថ្មីត្រូវបានបង្កើតក្នុងសំបុត្រដែលអ្នកជាអ្នកគ្រប់គ្រង!", + "createdOther": "transcript {0} ថ្មីត្រូវបានបង្កើត!" + }, + "errors": { + "retry": "ព្យាយាមម្តងទៀត", + "continue": "លុបដោយគ្មាន Transcript", + "backup": "បង្កើត Transcript បម្រុង", + "error": "មានបញ្ហាខ្លះក្នុងការបង្កើត transcript។\nអ្នកចង់ធ្វើអ្វី?\n\nសំបុត្រនេះនឹងមិនត្រូវបានលុបទេ រហូតអ្នកចុចប៊ូតុងណាមួយ។", + "title": "កំហុស Transcript" + }, + "text": { + "messagesTitle": "សារ", + "embedTitle": "EMBED", + "fileTitle": "ឯកសារ", + "fieldsTitle": "វាល", + "reactionsTitle": "ប្រតិកម្ម", + "statsTitle": "ស្ថិតិ", + "emptyContent": "<មាតិកាទទេ>", + "noTitle": "<គ្មានចំណងជើង>", + "noDesc": "<គ្មានការពិពណ៌នា>" + } + }, + "errors": { + "titles": { + "internalError": "កំហុសផ្ទៃក្នុង", + "optionMissing": "ជម្រើសពាក្យបញ្ជាបាត់", + "optionInvalid": "ជម្រើសពាក្យបញ្ជាមិនត្រឹមត្រូវ", + "unknownCommand": "ពាក្យបញ្ជាមិនស្គាល់", + "noPermissions": "គ្មានសិទ្ធិ", + "unknownTicket": "សំបុត្រមិនស្គាល់", + "deprecatedTicket": "សំបុត្រហួសសម័យ", + "unknownOption": "ជម្រើសមិនស្គាល់", + "unknownPanel": "Panel មិនស្គាល់", + "notInGuild": "មិននៅក្នុងម៉ាស៊ីនបម្រើ", + "channelRename": "មិនអាចប្តូរឈ្មោះបណ្តាញ", + "busy": "សំបុត្រកំពុងដំណើរការ", + "permissionError": "កំហុសសិទ្ធិ" + }, + "descriptions": { + "askForInfo": "ទំនាក់ទំនងម្ចាស់បូតនេះសម្រាប់ព័ត៌មានបន្ថែម!", + "askForInfoResolve": "ទំនាក់ទំនងម្ចាស់បូតនេះ ប្រសិនបើបញ្ហានេះមិនដោះស្រាយបន្ទាប់ពីព្យាយាមមួយចំនួន។", + "internalError": "បរាជ័យក្នុងការឆ្លើយតប {0} ដោយសារកំហុសផ្ទៃក្នុង!", + "optionMissing": "ប៉ារ៉ាម៉ែត្រចាំបាច់ខ្វះក្នុងពាក្យបញ្ជានេះ!", + "optionInvalid": "ប៉ារ៉ាម៉ែត្រក្នុងពាក្យបញ្ជានេះមិនត្រឹមត្រូវ!", + "optionInvalidChoose": "ជ្រើសរើសរវាង", + "unknownCommand": "សូមចូលមើលម៉ឺនុយជំនួយសម្រាប់ព័ត៌មានបន្ថែម!", + "noPermissions": "អ្នកមិនត្រូវបានអនុញ្ញាតឱ្យប្រើ {0} នេះ!", + "noPermissionsList": "សិទ្ធិដែលត្រូវការ: (មួយក្នុងចំណោម)", + "noPermissionsCooldown": "អ្នកមិនត្រូវបានអនុញ្ញាតឱ្យប្រើ {0} នេះ ដោយសារអ្នកមានរយៈពេលត្រជាក់!", + "noPermissionsBlacklist": "អ្នកមិនត្រូវបានអនុញ្ញាតឱ្យប្រើ {0} នេះ ដោយសារអ្នកត្រូវបានដាក់ក្នុងបញ្ជីខ្មៅ!", + "noPermissionsLimitGlobal": "អ្នកមិនអាចបង្កើតសំបុត្រ ដោយសារម៉ាស៊ីនបម្រើឈានដល់ដែនកំណត់សំបុត្រច្រើនបំផុត!", + "noPermissionsLimitGlobalUser": "អ្នកមិនអាចបង្កើតសំបុត្រ ដោយសារអ្នកឈានដល់ដែនកំណត់សំបុត្រច្រើនបំផុត!", + "noPermissionsLimitOption": "អ្នកមិនអាចបង្កើតសំបុត្រ ដោយសារម៉ាស៊ីនបម្រើឈានដល់ដែនកំណត់សំបុត្រច្រើនបំផុតសម្រាប់ជម្រើសនេះ!", + "noPermissionsLimitOptionUser": "អ្នកមិនអាចបង្កើតសំបុត្រ ដោយសារអ្នកឈានដល់ដែនកំណត់សំបុត្រច្រើនបំផុតសម្រាប់ជម្រើសនេះ!", + "unknownTicket": "សូមសាកល្បងពាក្យបញ្ជានេះម្តងទៀតក្នុងសំបុត្រត្រឹមត្រូវ!", + "deprecatedTicket": "បណ្តាញបច្ចុប្បន្នមិនមែនជាសំបុត្រត្រឹមត្រូវ! វាប្រហែលជាសំបុត្រពី Open Ticket កំណែចាស់!", + "notInGuild": "{0} នេះមិនដំណើរការក្នុង DM! សូមសាកល្បងម្តងទៀតក្នុងម៉ាស៊ីនបម្រើ!", + "channelRename": "ដោយសារ discord ratelimits, វាមិនអាចទៅបានសម្រាប់បូតក្នុងការប្តូរឈ្មោះបណ្តាញ។ បណ្តាញនឹងត្រូវបានប្តូរឈ្មោះដោយស្វ័យប្រវត្តិ ក្នុងរយៈពេល 10 នាទី ប្រសិនបើបូតមិនបានចាប់ផ្តើមឡើងវិញ។", + "channelRenameSource": "ប្រភពកំហុសនេះគឺ: {0}", + "busy": "មិនអាចប្រើ {0} នេះ!\nសំបុត្រកំពុងត្រូវបានដំណើរការដោយបូត។\n\nសូមព្យាយាមម្តងទៀតក្នុងពីរបីវិនាទី!", + "closeBeforeMessage": "សំបុត្រនេះមិនអាចបិទ/លុបមុនមានសារពីអ្នកប្រើ។", + "closeBeforeAdminMessage": "សំបុត្រនេះមិនអាចបិទ/លុបមុនមានសារពីអ្នកគ្រប់គ្រងសំបុត្រ ឬសមាជិកជំនួយ។", + "unableToCreateTicket": "អ្នកមិនអាចបង្កើតសំបុត្រ។" + }, + "optionInvalidReasons": { + "stringRegex": "តម្លៃមិនត្រូវនឹងលំនាំ!", + "stringMinLength": "តម្លៃត្រូវការយ៉ាងហោចណាស់ {0} តួអក្សរ!", + "stringMaxLength": "តម្លៃត្រូវការច្រើនបំផុត {0} តួអក្សរ!", + "numberInvalid": "លេខមិនត្រឹមត្រូវ!", + "numberMin": "លេខត្រូវការយ៉ាងហោចណាស់ {0}!", + "numberMax": "លេខត្រូវការច្រើនបំផុត {0}!", + "numberDecimal": "លេខមិនត្រូវបានអនុញ្ញាតជាទសភាគ!", + "numberNegative": "លេខមិនត្រូវបានអនុញ្ញាតជាអវិជ្ជមាន!", + "numberPositive": "លេខមិនត្រូវបានអនុញ្ញាតជាវិជ្ជមាន!", + "numberZero": "លេខមិនត្រូវបានអនុញ្ញាតជាសូន្យ!", + "channelNotFound": "រកបណ្តាញមិនឃើញ!", + "userNotFound": "រកអ្នកប្រើប្រាស់មិនឃើញ!", + "roleNotFound": "រកតួនាទីមិនឃើញ!", + "memberNotFound": "រកអ្នកប្រើប្រាស់មិនឃើញ!", + "mentionableNotFound": "រកអ្នកប្រើប្រាស់ ឬតួនាទីមិនឃើញ!", + "channelType": "ប្រភេទបណ្តាញមិនត្រឹមត្រូវ!", + "notInGuild": "ជម្រើសនេះទាមទារឱ្យអ្នកនៅក្នុងម៉ាស៊ីនបម្រើ!" + }, + "permissions": { + "developer": "អ្នកត្រូវជា developer របស់បូត។", + "owner": "អ្នកត្រូវជាម្ចាស់ម៉ាស៊ីនបម្រើ។", + "admin": "អ្នកត្រូវជា admin ម៉ាស៊ីនបម្រើ។", + "moderator": "អ្នកត្រូវជាអ្នកសម្រុះសម្រួល។", + "support": "អ្នកត្រូវនៅក្នុងក្រុមជំនួយ។", + "member": "អ្នកត្រូវជាសមាជិក។", + "discord-administrator": "អ្នកត្រូវមានសិទ្ធិ `ADMINISTRATOR`។" + }, + "actionInvalid": { + "close": "សំបុត្របានបិទហើយ!", + "reopen": "សំបុត្រមិនទាន់បិទ!", + "claim": "សំបុត្របានទទួលហើយ!", + "unclaim": "សំបុត្រមិនទាន់ត្រូវបានទទួល!", + "pin": "សំបុត្របានដាក់ម្ជុលហើយ!", + "unpin": "សំបុត្រមិនទាន់ត្រូវបានដាក់ម្ជុល!", + "add": "អ្នកប្រើប្រាស់នេះអាចចូលប្រើសំបុត្រហើយ!", + "remove": "មិនអាចដកអ្នកប្រើប្រាស់នេះចេញពីសំបុត្រ!" + } + }, + "params": { + "uppercase": { + "ticket": "សំបុត្រ", + "tickets": "សំបុត្រ", + "reason": "មូលហេតុ", + "creator": "អ្នកបង្កើត", + "remaining": "ពេលវេលានៅសល់", + "added": "បន្ថែម", + "removed": "ដក", + "filter": "តម្រង", + "method": "វិធីសាស្ត្រ", + "type": "ប្រភេទ", + "blacklisted": "ក្នុងបញ្ជីខ្មៅ", + "panel": "Panel", + "command": "ពាក្យបញ្ជា", + "system": "ប្រព័ន្ធ", + "true": "ពិត", + "false": "មិនពិត", + "syntax": "វាក្យសម្ព័ន្ធ", + "originalName": "ឈ្មោះដើម", + "newName": "ឈ្មោះថ្មី", + "until": "រហូតដល់", + "validOptions": "ជម្រើសត្រឹមត្រូវ", + "validPanels": "Panel ត្រឹមត្រូវ", + "autoclose": "Autoclose", + "autodelete": "Autodelete", + "startupDate": "កាលបរិច្ឆេទចាប់ផ្តើម", + "version": "កំណែ", + "name": "ឈ្មោះ", + "role": "តួនាទី", + "status": "ស្ថានភាព", + "claimed": "ទទួលហើយ", + "pinned": "ដាក់ម្ជុលហើយ", + "creationDate": "កាលបរិច្ឆេទបង្កើត", + + "noone": "គ្មាននរណា", + "open": "បើក", + "closed": "បិទ", + "priority": "អាទិភាព", + "participants": "អ្នកចូលរួម", + "yes": "បាទ/ចាស", + "no": "ទេ", + "option": "ជម្រើស", + "topic": "ប្រធានបទ", + "uptime": "ពេលដំណើរការប្រព័ន្ធ", + "messages": "សារ", + "embeds": "Embeds", + "files": "ឯកសារ", + "components": "ធាតុ", + "cooldown": "រយៈពេលត្រជាក់", + "maxTickets": "សំបុត្រច្រើនបំផុត", + "admins": "អ្នកគ្រប់គ្រង", + "roles": "តួនាទី", + "size": "ទំហំ" + }, + "lowercase": { + "text": "អក្សរ", + "html": "html", + "command": "ពាក្យបញ្ជា", + "modal": "modal", + "button": "ប៊ូតុង", + "dropdown": "dropdown", + "method": "វិធីសាស្ត្រ" + } + }, + "commands": { + "reason": "បញ្ជាក់មូលហេតុស្រេចចិត្តដែលនឹងបង្ហាញក្នុង logs។", + "help": "ទទួលបានបញ្ជីពាក្យបញ្ជាដែលមាន។", + "panel": "បង្ហាញសារជាមួយ dropdown ឬ buttons (សម្រាប់ការបង្កើតសំបុត្រ)។", + "panelId": "អ្នកកំណត់អត្តសញ្ញាណ panel ដែលអ្នកចង់បង្ហាញ។", + "panelAutoUpdate": "តើអ្នកចង់ panel នេះធ្វើបច្ចុប្បន្នភាពដោយស្វ័យប្រវត្តិ នៅពេលកែប្រែ?", + "ticket": "បង្កើតសំបុត្រភ្លាមៗ។", + "ticketId": "អ្នកកំណត់អត្តសញ្ញាណសំបុត្រដែលអ្នកចង់បង្កើត។", + "close": "បិទសំបុត្រ។", + "delete": "លុបសំបុត្រ។", + "deleteNoTranscript": "លុបសំបុត្រនេះដោយគ្មានការបង្កើត transcript។", + "reopen": "បើកសំបុត្រឡើងវិញ។", + "claim": "ទទួលសំបុត្រ។", + "claimUser": "ទទួលសំបុត្រនេះទៅឱ្យនរណាម្នាក់ផ្សេងទៀត ជំនួសអ្នក។", + "unclaim": "លែងទទួលសំបុត្រ។", + "pin": "ដាក់ម្ជុលសំបុត្រ។", + "unpin": "ដកម្ជុលសំបុត្រ។", + + "move": "ផ្លាស់ប្តូរសំបុត្រ។", + "moveId": "អ្នកកំណត់អត្តសញ្ញាណជម្រើសដែលអ្នកចង់ផ្លាស់ប្តូរទៅ។", + "rename": "ប្តូរឈ្មោះសំបុត្រ។", + "renameName": "ឈ្មោះថ្មីសម្រាប់សំបុត្រនេះ។", + "add": "បន្ថែមអ្នកប្រើប្រាស់ទៅសំបុត្រ។", + "addUser": "អ្នកប្រើប្រាស់ដែលត្រូវបន្ថែម។", + "remove": "ដកអ្នកប្រើប្រាស់ចេញពីសំបុត្រ។", + "removeUser": "អ្នកប្រើប្រាស់ដែលត្រូវដក។", + + "blacklist": "គ្រប់គ្រងបញ្ជីខ្មៅសំបុត្រ។", + "blacklistView": "មើលបញ្ជីបញ្ជីខ្មៅបច្ចុប្បន្ន។", + "blacklistAdd": "បន្ថែមអ្នកប្រើប្រាស់ទៅបញ្ជីខ្មៅ។", + "blacklistRemove": "ដកអ្នកប្រើប្រាស់ចេញពីបញ្ជីខ្មៅ។", + "blacklistGet": "ទទួលបានព័ត៌មានលម្អិតពីអ្នកប្រើប្រាស់ក្នុងបញ្ជីខ្មៅ។", + "blacklistGetUser": "អ្នកប្រើប្រាស់ដែលត្រូវទទួលព័ត៌មានលម្អិត។", + "stats": "មើលស្ថិតិពីបូត, សមាជិក ឬសំបុត្រ។", + "statsReset": "កំណត់ស្ថិតិបូតទាំងអស់ឡើងវិញ (ចាប់ផ្តើមរាប់ពីសូន្យ)។", + "statsGlobal": "មើលស្ថិតិសរុប។", + "statsUser": "មើលស្ថិតិពីអ្នកប្រើប្រាស់ក្នុងម៉ាស៊ីនបម្រើ។", + "statsUserUser": "អ្នកប្រើប្រាស់ដែលត្រូវមើល។", + "statsTicket": "មើលស្ថិតិពីសំបុត្រក្នុងម៉ាស៊ីនបម្រើ។", + "statsTicketTicket": "សំបុត្រដែលត្រូវមើល។", + + "clear": "លុបសំបុត្រច្រើនក្នុងពេលតែមួយ។", + "clearFilter": "តម្រងសម្រាប់ការសម្អាតសំបុត្រ។", + "clearFilters": { + "all": "ទាំងអស់", + "open": "បើក", + "close": "បិទ", + "claim": "ទទួលហើយ", + "unclaim": "មិនទាន់ទទួល", + "pin": "ដាក់ម្ជុលហើយ", + "unpin": "មិនទាន់ដាក់ម្ជុល", + "autoclose": "បិទដោយស្វ័យប្រវត្តិ" + }, + + "autoclose": "គ្រប់គ្រង autoclose ក្នុងសំបុត្រ។", + "autocloseDisable": "បិទ autoclose ក្នុងសំបុត្រនេះ។", + "autocloseEnable": "បើក autoclose ក្នុងសំបុត្រនេះ។", + "autocloseEnableTime": "ចំនួនម៉ោងដែលសំបុត្រនេះត្រូវមិនសកម្ម ដើម្បីបិទ។", + "autodelete": "គ្រប់គ្រង autodelete ក្នុងសំបុត្រ។", + "autodeleteDisable": "បិទ autodelete ក្នុងសំបុត្រនេះ។", + "autodeleteEnable": "បើក autodelete ក្នុងសំបុត្រនេះ។", + "autodeleteEnableTime": "ចំនួនថ្ងៃដែលសំបុត្រនេះត្រូវមិនសកម្ម ដើម្បីលុប។", + + "topic": "គ្រប់គ្រងប្រធានបទបណ្តាញសំបុត្រ។", + "topicSet": "កំណត់ប្រធានបទបណ្តាញសំបុត្រ។", + "topicValue": "ប្រធានបទថ្មីរបស់បណ្តាញ។", + "topicList": "ទទួលបានបញ្ជីសំបុត្រទាំងអស់ ជាមួយប្រធានបទ និងស្ថិតិ។", + "priority": "គ្រប់គ្រងអាទិភាពសំបុត្រ។", + "prioritySet": "កំណត់អាទិភាពសំបុត្រ។", + "priorityValue": "អាទិភាពរបស់បណ្តាញ។", + "priorityGet": "ទទួលបានអាទិភាពសំបុត្រ។", + "priorityList": "ទទួលបានបញ្ជីសំបុត្រទាំងអស់ ជាមួយស្ថានភាពអាទិភាព។", + "transfer": "ផ្ទេរភាពជាម្ចាស់សំបុត្រពីអ្នកប្រើប្រាស់ម្នាក់ទៅម្នាក់ទៀត។", + "transferUser": "អ្នកប្រើប្រាស់ដែលត្រូវផ្ទេរទៅ។" + }, + "helpMenu": { + "help": "ទទួលបានបញ្ជីពាក្យបញ្ជាដែលមាន។", + "ticket": "បង្កើតសំបុត្រភ្លាមៗ។", + "close": "បិទសំបុត្រ, វិធីនេះបិទការសរសេរក្នុងបណ្តាញ។", + "delete": "លុបសំបុត្រ, វិធីនេះបង្កើត transcript នៅពេលបើក។", + "reopen": "បើកសំបុត្រឡើងវិញ, វិធីនេះបើកការសរសេរក្នុងបណ្តាញម្តងទៀត។", + "pin": "ដាក់ម្ជុលសំបុត្រ។ វានឹងផ្លាស់សំបុត្រទៅខាងលើ ហើយបន្ថែម '📌' ទៅឈ្មោះ។", + "unpin": "ដកម្ជុលសំបុត្រ។ សំបុត្រនឹងនៅតំណែងដដែល ប៉ុន្តែនឹងបាត់ '📌'។", + "move": "ផ្លាស់ប្តូរសំបុត្រ។ វានឹងប្តូរប្រភេទរបស់សំបុត្រ។", + "rename": "ប្តូរឈ្មោះសំបុត្រ។ វានឹងប្តូរឈ្មោះបណ្តាញរបស់សំបុត្រ។", + "claim": "ទទួលសំបុត្រ។ ដោយវិធីនេះ អ្នកអាចប្រាប់ក្រុមរបស់អ្នកថាអ្នកកំពុងដោះស្រាយសំបុត្រនេះ។", + "unclaim": "លែងទទួលសំបុត្រ។ ដោយវិធីនេះ អ្នកអាចប្រាប់ក្រុមរបស់អ្នកថាសំបុត្រនេះទំនេរ។", + "add": "បន្ថែមអ្នកប្រើប្រាស់ទៅសំបុត្រ។ វានឹងអនុញ្ញាតឱ្យអ្នកប្រើប្រាស់អាននិងសរសេរក្នុងសំបុត្រ។", + "remove": "ដកអ្នកប្រើប្រាស់ចេញពីសំបុត្រ។ វានឹងដកសិទ្ធិអាននិងសរសេររបស់អ្នកប្រើប្រាស់ក្នុងសំបុត្រ។", + "panel": "បង្ហាញសារជាមួយ dropdown ឬ buttons (សម្រាប់ការបង្កើតសំបុត្រ)។", + "blacklistView": "មើលបញ្ជីបញ្ជីខ្មៅបច្ចុប្បន្ន។", + "blacklistAdd": "បន្ថែមអ្នកប្រើប្រាស់ទៅបញ្ជីខ្មៅ។", + "blacklistRemove": "ដកអ្នកប្រើប្រាស់ចេញពីបញ្ជីខ្មៅ។", + "blacklistGet": "ទទួលបានព័ត៌មានលម្អិតពីអ្នកប្រើប្រាស់ក្នុងបញ្ជីខ្មៅ។", + "statsGlobal": "មើលស្ថិតិសរុប។", + "statsTicket": "មើលស្ថិតិពីសំបុត្រក្នុងម៉ាស៊ីនបម្រើ។", + "statsUser": "មើលស្ថិតិពីអ្នកប្រើប្រាស់ក្នុងម៉ាស៊ីនបម្រើ។", + "statsReset": "កំណត់ស្ថិតិបូតទាំងអស់ឡើងវិញ (ចាប់ផ្តើមរាប់ពីសូន្យ)។", + "autocloseDisable": "បិទ autoclose ក្នុងសំបុត្រនេះ។", + "autocloseEnable": "បើក autoclose ក្នុងសំបុត្រនេះ។", + "autodeleteDisable": "បិទ autodelete ក្នុងសំបុត្រនេះ។", + "autodeleteEnable": "បើក autodelete ក្នុងសំបុត្រនេះ។", + "categories": { + "general": "ពាក្យបញ្ជាទូទៅ", + "basicTicket": "ពាក្យបញ្ជាសំបុត្រមូលដ្ឋាន", + "advancedTicket": "ពាក្យបញ្ជាសំបុត្រកម្រិតខ្ពស់", + "userTicket": "ពាក្យបញ្ជាសំបុត្រអ្នកប្រើប្រាស់", + "admin": "ពាក្យបញ្ជា Admin", + "advanced": "ពាក្យបញ្ជាកម្រិតខ្ពស់", + "extra": "ពាក្យបញ្ជាបន្ថែម" + } + }, + "stats": { + "scopes": { + "global": "ស្ថិតិសរុប", + "system": "ស្ថិតិប្រព័ន្ធ", + "user": "ស្ថិតិអ្នកប្រើប្រាស់", + "ticket": "ស្ថិតិសំបុត្រ", + "participants": "អ្នកចូលរួម", + "messages": "សារ" + }, + "properties": { + "ticketsCreated": "សំបុត្របានបង្កើត", + "ticketsClosed": "សំបុត្របានបិទ", + "ticketsDeleted": "សំបុត្របានលុប", + "ticketsReopened": "សំបុត្របានបើកឡើងវិញ", + "ticketsAutoclosed": "សំបុត្របានបិទដោយស្វ័យប្រវត្តិ", + "ticketsClaimed": "សំបុត្របានទទួល", + "ticketsPinned": "សំបុត្របានដាក់ម្ជុល", + "ticketsMoved": "សំបុត្របានផ្លាស់ប្តូរ", + "usersBlacklisted": "អ្នកប្រើប្រាស់ក្នុងបញ្ជីខ្មៅ", + "transcriptsCreated": "Transcript បានបង្កើត", + "ticketsAutodeleted": "សំបុត្របានលុបដោយស្វ័យប្រវត្តិ", + "ticketsTransferred": "សំបុត្របានផ្ទេរ", + "ticketVolume": "ចំនួនសំបុត្រ", + "averageTickets": "ចំនួនសំបុត្រជាមធ្យម/អ្នកប្រើ", + "currentTickets": "សំបុត្របច្ចុប្បន្ន", + "age": "អាយុសំបុត្រ", + "responseTime": "ពេលឆ្លើយតប", + "resolutionTime": "ពេលដោះស្រាយ", + "createdOn": "បង្កើតនៅ", + "createdBy": "បង្កើតដោយ", + "closedOn": "បិទនៅ", + "closedBy": "បិទដោយ", + "claimedOn": "ទទួលនៅ", + "claimedBy": "ទទួលដោយ", + "pinnedOn": "ដាក់ម្ជុលនៅ", + "pinnedBy": "ដាក់ម្ជុលដោយ", + "deletedOn": "លុបនៅ", + "deletedBy": "លុបដោយ" + }, + "roles": { + "developer": "Developer", + "serverOwner": "ម្ចាស់ម៉ាស៊ីនបម្រើ", + "serverAdmin": "Admin ម៉ាស៊ីនបម្រើ", + "moderator": "ក្រុមអ្នកសម្រុះសម្រួល", + "support": "ក្រុមជំនួយ", + "member": "សមាជិក" + } + }, + "panel": { + "selectTicket": "ជ្រើសរើសសំបុត្ររបស់អ្នក", + "selectRole": "ជ្រើសរើសតួនាទីរបស់អ្នក", + "selectOption": "ជ្រើសរើសជម្រើសរបស់អ្នក" + }, + "priorities": { + "urgent": "បន្ទាន់ខ្លាំង", + "veryHigh": "ខ្ពស់ណាស់", + "high": "ខ្ពស់", + "normal": "ធម្មតា", + "low": "ទាប", + "veryLow": "ទាបណាស់", + "none": "គ្មាន" + } +} diff --git a/src/data/framework/languageLoader.ts b/src/data/framework/languageLoader.ts index de1ef2c..b09a10d 100644 --- a/src/data/framework/languageLoader.ts +++ b/src/data/framework/languageLoader.ts @@ -1,4 +1,4 @@ -import {opendiscord, api, utilities} from "../../index" +import { opendiscord, api, utilities } from "../../index"; /** (CONTRIBUTOR GUIDE) HOW TO ADD NEW LANGUAGES? * - Add the file to (./languages/) and make sure the metadata is valid. @@ -10,42 +10,122 @@ import {opendiscord, api, utilities} from "../../index" */ export const loadAllLanguages = async () => { - //register languages - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:custom","custom.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:english","english.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:dutch","dutch.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:portuguese","portuguese.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:czech","czech.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:german","german.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:catalan","catalan.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:hungarian","hungarian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:spanish","spanish.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:romanian","romanian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:ukrainian","ukrainian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:indonesian","indonesian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:italian","italian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:estonian","estonian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:finnish","finnish.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:danish","danish.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:thai","thai.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:turkish","turkish.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:french","french.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:arabic","arabic.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:hindi","hindi.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:lithuanian","lithuanian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:polish","polish.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:latvian","latvian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:norwegian","norwegian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:russian","russian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:swedish","swedish.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:vietnamese","vietnamese.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:persian","persian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:bengali","bengali.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:greek","greek.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:japanese","japanese.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:korean","korean.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:kurdish","kurdish.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:simplified-chinese","simplified-chinese.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:slovenian","slovenian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:tamil","tamil.json")) -} \ No newline at end of file + //register languages + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:custom", "custom.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:english", "english.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:dutch", "dutch.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:portuguese", "portuguese.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:czech", "czech.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:german", "german.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:catalan", "catalan.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:hungarian", "hungarian.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:spanish", "spanish.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:romanian", "romanian.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:ukrainian", "ukrainian.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:indonesian", "indonesian.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:italian", "italian.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:estonian", "estonian.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:finnish", "finnish.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:danish", "danish.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:thai", "thai.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:turkish", "turkish.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:french", "french.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:arabic", "arabic.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:hindi", "hindi.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:lithuanian", "lithuanian.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:polish", "polish.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:latvian", "latvian.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:norwegian", "norwegian.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:russian", "russian.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:swedish", "swedish.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:vietnamese", "vietnamese.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:persian", "persian.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:bengali", "bengali.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:greek", "greek.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:japanese", "japanese.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:khmer", "khmer.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:korean", "korean.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:kurdish", "kurdish.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage( + "opendiscord:simplified-chinese", + "simplified-chinese.json", + ), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:slovenian", "slovenian.json"), + ); + opendiscord.languages.add( + new api.ODJsonLanguage("opendiscord:tamil", "tamil.json"), + ); +};