Compare commits

...
583 Commits
Author SHA1 Message Date
Jasper ddae7b5e46 Open Ticket v4.1.3
Open Ticket v4.1.3
2026-02-16 10:38:43 +01:00
DJj123dj 32c9a6b4f3 Update README.md 2026-02-16 10:30:16 +01:00
DJj123dj 0ad24ba89f (v4.1.3) Finished adding all missing languages 2026-02-16 10:23:14 +01:00
DJj123dj 5412416166 Updated plugin.json format (backwards compatible) 2026-02-15 13:19:48 +01:00
DJj123dj 78a937d4e9 (v4.1.3) Fixed unintended cooldown bug with modals 2026-02-15 13:13:18 +01:00
DJj123dj 5b45dc265b Readme improvements (last time 😄 ) 2026-02-14 16:12:57 +01:00
DJj123dj 4b210fe793 Readme Improvements 2026-02-14 16:11:46 +01:00
DJj123dj 8891320bdf Update README.md 2026-02-14 15:53:43 +01:00
DJj123dj 8ccfd5c4eb (v4.1.3) Added all missing translations from v4.1 2026-02-14 15:52:39 +01:00
DJj123dj 44074004e4 Update pluginLauncher.ts 2026-02-11 20:53:21 +01:00
DJj123dj 2f1c885b4f Update README.md 2026-02-11 20:43:28 +01:00
Jasper c94867280d Merge pull request #193 from SKaranjaN/feature/plugin-json-improvements
feat: improve plugin.json with multiple authors, versions, and pre-compilation dependency checking
2026-02-11 20:40:20 +01:00
DJj123dj 138f7fa2bb Small Improvements for the new plugin.json code 2026-02-11 20:37:28 +01:00
DJj123dj 465eda1c24 (v4.1.3) Updated README + plugin list 2026-02-11 19:54:06 +01:00
DJj123dj c821e7dd6d Fixed typo in LICENSE.md 2026-02-11 18:45:54 +01:00
DJj123dj f9ce496cc5 Update quickSetup.ts 2026-02-11 17:48:35 +01:00
Karanja-Stephen 3989fb5f76 refactor: simplify comments and make them less verbose 2026-02-11 10:44:51 +03:00
Karanja-Stephen 779efca39a feat: improve plugin.json with multiple authors, versions, and pre-compilation dependency checking
- Add support for multiple authors and contributors in plugin.json
- Maintain backwards compatibility with single author (string) format
- Add versions array to specify compatible Open Ticket versions (e.g., OTv4.0.x, ODv1.0.0)
- Implement version compatibility checking during plugin loading
- Read plugin.json files before TypeScript compilation to check npm dependencies
- Warn about missing npm dependencies before compilation starts
- Update example plugin to demonstrate new features

Fixes #162
2026-02-10 13:13:24 +03:00
DJj123dj 4976aa3d45 Added v4.1 Lithuanian translations (by TsgIndrius) 2026-02-08 21:17:34 +01:00
DJj123dj 9cdff2c1de Added v4.1 French translations (by @guillee3 ) 2026-02-08 13:29:04 +01:00
DJj123dj 2e29947ba5 Update README.md 2026-02-08 12:43:53 +01:00
DJj123dj 0aa3dca63b Added v4.1 Italian translations (by imperatorix_17) 2026-02-08 12:26:22 +01:00
Jasper 90851f881d Open Ticket v4.1.2
Open Ticket v4.1.2
2026-02-06 21:25:32 +01:00
DJj123dj b972c97871 Fixed: Unknown interaction when on cooldown 2026-02-06 21:16:30 +01:00
DJj123dj db94f226fb Fixed: Panel embed was replaced with cooldown error 2026-02-06 20:59:36 +01:00
DJj123dj 6a4f40d862 (v4.1.2) Readme updates & general improvements 2026-02-06 20:48:21 +01:00
DJj123dj 1f402a848e (v4.1.2) Massive permission system cleanup 2026-02-06 20:08:55 +01:00
DJj123dj 24d98aeaeb (v4.1.2) Fixed autocomplete bug with many options 2026-02-06 17:45:31 +01:00
DJj123dj b95b8f239e Fixed typescript compilation error 2026-01-01 23:00:29 +01:00
DJj123dj 488b5fce53 Fixed fetch() errors of unknown guild members 2025-12-27 10:42:10 +01:00
DJj123dj c2117a67ed Updated German translation for v4.1 2025-12-03 16:20:17 +01:00
Jasper d31be1bb57 Open Ticket v4.1.1
Open Ticket v4.1.1
2025-11-16 11:44:45 +01:00
DJj123dj 76095bea30 Update README.md 2025-11-16 11:33:16 +01:00
DJj123dj da962c6c2e Major bugfixes & improvements for v4.1 2025-11-16 11:23:15 +01:00
DJj123dj a89d5c2149 Added 7 updated translations for v4.1 2025-11-16 10:43:46 +01:00
DJj123dj 7d5313c77e Open Ticket v4.1.1 2025-11-16 10:11:56 +01:00
Jasper 16f1be32a3 Open Ticket v4.1.0
Open Ticket v4.1.0
2025-11-09 19:11:57 +01:00
DJj123dj e1a6feea6e Updated README.md language list 2025-11-09 19:05:53 +01:00
DJj123dj 9668851a82 Added 9 updated translations for v4.1 2025-11-09 13:04:51 +01:00
DJj123dj 68d6a2df3f Added language merge utility tool 2025-11-09 12:51:18 +01:00
DJj123dj f835850b3f Translated code strings using language manager 2025-11-09 12:50:57 +01:00
Jasper f7fa0998b6 v4.1 Minor Bugfixes
v4.1 Minor Bugfixes
2025-11-05 14:55:05 +01:00
JasperAtSchool 4416736947 Merge branch 'open-discord-bots:dev-v4.1.0' into dev-v4.1.0 2025-11-05 14:53:43 +01:00
JasperAtSchool 5494c1ad8f (v4.1) Minor Bugfixes 2025-11-05 14:53:05 +01:00
DJj123dj 4147658575 README Updates 2025-11-05 14:42:26 +01:00
DJj123dj f7cda48ed6 Improved LICENSE Terminology 2025-11-04 20:07:18 +01:00
DJj123dj 4b485adf82 (v4.1) Additional autoclose/autodelete features 2025-11-04 19:53:40 +01:00
DJj123dj e55438cc67 (v4.1) Added +/-10 Minor Features & Improvements 2025-11-04 19:39:52 +01:00
DJj123dj c7b44232c4 Added transfer command (/transfer) + new stats
With this command you're able to transfer the ticket ownership to another person in the server.
2025-11-02 20:09:38 +01:00
DJj123dj 68a8170570 Minor bugfixes & improvements (priority & topic) 2025-11-02 20:08:57 +01:00
DJj123dj 34ed4edede Added priority commands (/priority get,set) 2025-11-02 18:41:46 +01:00
DJj123dj a40a9b8be8 Added channel topic command (/topic set) 2025-11-02 18:40:49 +01:00
DJj123dj e8f96ef84f Finished channel topic feature 2025-10-28 13:24:08 +01:00
DJj123dj 8413d3c2b7 Started with channel topic auto-update action 2025-10-27 21:19:59 +01:00
DJj123dj 30b6ab4df6 Finished channel topic on ticket creation 2025-10-27 11:41:56 +01:00
DJj123dj 2aef855902 Started working on channel topic again 2025-10-12 22:18:38 +02:00
DJj123dj 4aacdd1607 fix: #122 improved windows OT plugin support
Open Ticket instances with plugins are now also able to exist outside of the default C:\\ drive on windows. This has been fixed by searching for the plugins relative to the bot instead of using an absolute path.
2025-09-21 20:31:47 +02:00
Jasper d66925a450 Added user-nickname channel suffix option 2025-09-14 22:23:42 +02:00
DJj123dj d2cd6be513 Small nickname suffix fixes & discord.js try-catch 2025-09-14 22:22:09 +02:00
DJj123dj 30a0a6c503 (API) Renamed ODPriority --> ODPriorityLevel 2025-09-14 22:09:09 +02:00
DJj123dj 72f84b2566 (API) Class & comment readability improvements 2025-09-14 22:05:30 +02:00
DJj123dj 6ce017b407 Added /topic set command (Part 1, Incomplete) 2025-09-14 22:04:42 +02:00
DJj123dj 415330be21 Added priority system (Part 1, Incomplete) 2025-09-14 22:04:11 +02:00
Steven DUBOIS 21ce2921a1 Add user-nickname option for channel suffixe 2025-09-10 18:38:57 +02:00
DJj123dj b07252151b #181 : Fixed async permission registration issues 2025-08-28 12:46:37 +02:00
DJj123dj 02d37dd177 (API) Implemented opendiscord:reopened in database 2025-08-28 11:25:18 +02:00
DJj123dj 706006e319 Added 9 new statistics in the /stats command
Ticket volume, Average tickets/user, System uptime, Current tickets, Ticket age, Message/Embed/File/Component amount.
2025-08-28 11:20:02 +02:00
DJj123dj 82f2aeaa90 Added autocomplete to panel, ticket & move cmds
Ticket/panel options are now autocompleted instead of being a choice in the slash commands. This also results in the max amount of tickets limit to be increased to infinity.
2025-08-28 09:00:07 +02:00
DJj123dj 793c6f0603 Added: Slow Mode & Updated discord.js 2025-08-28 08:59:16 +02:00
DJj123dj 1ef74f0b6b Custom reason for create-ticket-permissions action
Added support for custom reasons in the opendiscord:create-ticket-permissions action. Now it's easier for plugins to add a custom message when the validation fails.
2025-08-27 14:10:58 +02:00
DJj123dj 337dc3827e Refactor config checker children options
Made the "priority" and "optional" fields in ODCheckerObjectStructure children optional. This improves readability and code simplicity
2025-08-27 11:57:28 +02:00
DJj123dj 810db76e91 Finished adding 10 new config checker validators 2025-08-27 11:46:42 +02:00
DJj123dj f4f6f30fa2 Added: Show global admins in panel message 2025-08-12 14:19:18 +02:00
DJj123dj 8436b19cbf Updated bot versions to v4.1.0 2025-08-05 10:42:35 +02:00
DJj123dj 549c161830 Added all the new config variables for v4.1.0! 2025-08-05 10:42:15 +02:00
DJj123dj adc2433216 Merge branch 'dev' into dev-v4.1.0 2025-06-24 11:05:59 +02:00
Jasper 3b3c0aff96 Open Ticket v4.0.7
Open Ticket v4.0.7
2025-06-24 10:46:44 +02:00
DJj123dj ce6ca6fc09 Update livestatus.json 2025-06-24 10:42:04 +02:00
DJj123dj e3bc985c0c Updated all versions to v4.0.7 2025-06-24 10:38:33 +02:00
DJj123dj ff8568fde7 Added the 8 new languages to the system + readme 2025-06-24 09:05:13 +02:00
DJj123dj 8ec710fa55 Renamed simplified-chinese translation file 2025-06-24 08:49:39 +02:00
Jasper 076fcbcb37 Added 8 new languages by HanumeshGupta (used AI)
Added Language and update Readme
2025-06-24 08:46:56 +02:00
DJj123dj 6df3498cb5 Finished autocomplete & context menu interactions
Autocomplete & context menu interactions have been fully implemented in the Open Discord framework. They have not yet been implemented in the Open Ticket bot code though.
2025-06-24 08:43:57 +02:00
DJj123dj 8116d4d8dd Startscreen plugin list rendering improvements 2025-06-21 22:17:31 +02:00
DJj123dj e987c176b7 Add autocomplete manager + context menu bugfixes 2025-06-21 22:16:50 +02:00
DJj123dj 2ea38cd7a5 (Open Discord) Added support for context menu's 2025-06-20 18:20:27 +02:00
DJj123dj b2f2ef3405 Update quickSetup.ts 2025-06-20 15:59:52 +02:00
DJj123dj c2e6f781b9 Finished Quick Setup CLI 2025-06-19 22:43:38 +02:00
Hanumesh Gupta 8dfd17ddde Added Tamil and updated readme 2025-06-19 22:01:14 +05:30
Hanumesh Gupta 5f077e87f6 Added more Language and edited readme 2025-06-19 15:48:18 +05:30
Hanumesh Gupta 76dc3b1022 Added More Language and Updated Readme 2025-06-19 15:20:22 +05:30
Hanumesh Gupta 93ed56b4ae Added Language and update Readme 2025-06-19 12:46:03 +05:30
DJj123dj 160f89c7cf Improved inline contributor guides
Improved the inline contributor guides for registering new languages, config variables & commands.
2025-06-16 20:11:00 +02:00
DJj123dj 51c4ae0229 Finished Interactive Update CLI Questions
Added all remaining questions including panel configuration, ticket message layout, ticket limits, emoji style & more. Also fixed some smaller bugs.
2025-06-16 20:10:09 +02:00
DJj123dj 2cc2ccc68e Added ODQuickMessage builders 2025-06-16 17:45:28 +02:00
DJj123dj 0a29e13640 Added new questions to quick setup CLI + fixes
Added question 12, 13 & 14 (autoclose, cooldown, close participants policy. Also fixed backFn-bugs and rewrote a few sentences for better spelling. Also added some UI improvements to string-inputs
2025-06-16 15:37:57 +02:00
DJj123dj 31b94718f1 Repositioned + Tested Reaction Role Logs 2025-06-16 14:47:09 +02:00
Jasper 6ac993617e Merge pull #176 from sdehaarte (Reaction Role Logs)
Added Reaction Role Logs
2025-06-16 14:44:08 +02:00
sdehaarte 9f4999b89b Feature Reaction Role Logs. Adds logging functionality for reaction roles. This helps track when users add or remove reaction roles. 2025-06-11 20:06:43 -04:00
DJj123dj dd3c159413 Added new questions to quick setup CLI
Added: channel logs, ticket category, ticket creation count, ticket option configuration (name, descr, button, prefix & suffix)
2025-06-11 21:12:20 +02:00
DJj123dj 72627a7058 Added new config checker utility function
createTemporaryCheckerEnvironment() is able to help you with using `ODCheckerStructure` validators without officially registering them in opendiscord.checkers.
2025-06-11 21:10:29 +02:00
Jasper b683365126 Merge pull request #175 from JasperAtSchool/dev-v4.1.0
(v4.1) Added new string config checker validators (part 1)
2025-06-11 18:51:01 +02:00
JasperAtSchool 03b3495eb2 (v4.1) Added new string config checker validators 2025-06-06 11:14:21 +02:00
Jasper a6be9df213 Fixed validation in UniqueIdArray checker (by guillee3)
Fixed validation in UniqueIdArray checker
2025-06-01 17:58:38 +02:00
guillee3 6b2f291122 Fixed validation in ODCheckerCustomStructure_UniqueIdArray to reject string inputs. 2025-06-01 15:02:46 +02:00
DJj123dj af0dc879c6 Merge branch 'dev' into dev-v4.1.0 2025-05-31 11:07:36 +02:00
Jasper a12f60136a Open Ticket v4.0.6
Open Ticket v4.0.6
2025-05-31 11:01:13 +02:00
DJj123dj 1d05d04bf2 Updated all versions to v4.0.6 2025-05-31 10:51:29 +02:00
DJj123dj ff6a9eefaf Update package.json 2025-05-31 10:43:04 +02:00
DJj123dj aa9004d7e2 Compare/diff persian language + translation improv 2025-05-31 10:42:18 +02:00
Jasper 7e1fe78a26 Merge pull request #172 from zhavis/development (Persian translation)
Create persian.json
2025-05-31 10:29:05 +02:00
DJj123dj 675571b8d8 Added recommended hostings to README.md
Want to advertise your hosting too? Contact us in our discord server.
2025-05-31 10:24:32 +02:00
DJj123dj 48f0d65fad Fixed slash cmd registration bug
This was caused by already registered commands of a different type than 'chatInput'.
2025-05-31 10:24:04 +02:00
zhavihosseini a54422b222 Create persian.json 2025-05-28 07:11:03 +03:30
DJj123dj c243d03216 Merge branch 'dev' into dev-v4.1.0 2025-05-03 21:15:03 +02:00
Jasper b965a4f5a2 Open Ticket v4.0.5
Open Ticket v4.0.5
2025-05-03 21:09:55 +02:00
DJj123dj 0d8dd8cd17 Updated all versions to v4.0.5 2025-05-03 21:02:47 +02:00
DJj123dj 6ac432cadc Fix: Panels now require at least 1 option. 2025-05-03 20:59:22 +02:00
DJj123dj dec6c7598b Improv: Decreased QuickBuilder boilerplate params 2025-05-03 20:58:50 +02:00
DJj123dj 2de2e3cd9b Fixed option suffixes with ot-sqlite-database 2025-05-03 18:34:10 +02:00
DJj123dj f117943e00 Added 6th, 7th & 8th questions to quick setup CLI 2025-05-02 17:51:52 +02:00
DJj123dj 951aff093a Added 4th & 5th questions to quick setup 2025-05-01 22:01:04 +02:00
DJj123dj 2acd185d6f Merge branch 'dev' into dev-v4.1.0 2025-05-01 14:26:41 +02:00
DJj123dj 2fbef46a53 Merge branch 'dev' of https://github.com/open-discord-bots/open-ticket into dev 2025-05-01 14:14:39 +02:00
Jasper 5d0776a9b9 Open Ticket v4.0.4
Open Ticket v4.0.4
2025-05-01 14:10:55 +02:00
Jasper 7bf843c851 Dev v4.0.4
Dev v4.0.4
2025-05-01 14:05:56 +02:00
DJj123dj 3e3ea9263f Updated all versions to v4.0.4 2025-05-01 14:05:06 +02:00
DJj123dj bb5c3e9c8d Support for HTML Transcripts v2.1 2025-05-01 13:56:38 +02:00
Jasper 8df13b0d36 Open Ticket v4.1.0 Improvements + Minor Additions
Open Ticket v4.1.0 Improvements + Minor Additions
2025-05-01 13:52:45 +02:00
DJj123dj b5dd7158df Update README.md 2025-04-29 17:56:54 +02:00
DJj123dj 05919bb57e Update README.md 2025-04-29 17:51:39 +02:00
DJj123dj 1d6572aa36 Merge branch 'dev' of https://github.com/open-discord-bots/open-ticket into dev 2025-04-29 17:50:51 +02:00
JasperAtSchool 83080a6e4d Removed openticket -> opendiscord migration utils 2025-04-29 09:58:36 +02:00
JasperAtSchool 35fdafb21d Removed deprecated API classes + properties 2025-04-29 09:54:48 +02:00
JasperAtSchool a0e03be103 Added ordinal numbers to config checker. 2025-04-29 09:47:29 +02:00
Jasper d404f343e0 Sync Dev Branches
* Fixed bug due to discord.js new components

* Updated all versions to v4.0.3

* #155 : Fixed reply on creation when disabled.

Fixed a bug that caused the bot to send a partial ephemeral message while "replyOnTicketCreation" was disabled.
2025-04-28 18:30:43 +02:00
Jasper adf4acd443 Merge branch 'dev-v4.1.0' into dev 2025-04-28 18:30:21 +02:00
Jasper 94f32674cb Open Ticket v4.0.3
Open Ticket v4.0.3
2025-04-28 18:27:48 +02:00
DJj123dj e8eb52e00b #155 : Fixed reply on creation when disabled.
Fixed a bug that caused the bot to send a partial ephemeral message while "replyOnTicketCreation" was disabled.
2025-04-28 18:22:54 +02:00
DJj123dj 4efa165949 Updated all versions to v4.0.3 2025-04-27 18:21:56 +02:00
DJj123dj 4c3e4ef9a5 Fixed bug due to discord.js new components 2025-04-27 18:17:38 +02:00
DJj123dj fd739054fd Added 3th & 4th question to Quick Setup CLI 2025-04-20 12:08:52 +02:00
DJj123dj 2d1724893e Update README.md 2025-04-20 11:14:19 +02:00
DJj123dj 7696202dec Updated Dutch Translations 2025-04-19 21:05:08 +02:00
DJj123dj e36c1992de Added 2nd question in the CLI quick setup 2025-04-17 18:38:54 +02:00
DJj123dj e73c8e9b3b Started with CLI "Quick Setup" feature. 2025-04-16 21:44:23 +02:00
DJj123dj ad623f9650 Finished display names + descriptions (Part 4) 2025-04-16 13:20:07 +02:00
DJj123dj 515b7e1ffc Added more display names + descriptions (Part 3) 2025-04-16 09:18:13 +02:00
DJj123dj 605173e788 Added more display names + descriptions (Part 2) 2025-04-15 22:36:58 +02:00
DJj123dj e129724c12 Added display values for all general.json settings 2025-04-14 14:53:31 +02:00
DJj123dj 49504bc3de Added formatters to all built-in config files.
Added formatters to all built-in JSON config files for the Open Ticket interactive CLI. The new save() feature from the ODJsonConfig class will be using this formatter to save the config to the filesystem.
2025-04-14 14:22:09 +02:00
Jasper f414fd77fc Synced Dev Branches
Sync Dev Branches
2025-04-13 21:11:40 +02:00
DJj123dj 5dcbcbfabc More CLI improvements + layout changes 2025-04-13 21:03:55 +02:00
DJj123dj 6ec228df53 Added 'save()' feature to configs + improvements 2025-04-13 21:03:45 +02:00
DJj123dj 1f3894141a Finished the 'edit config' module from the CLI 2025-04-13 10:33:01 +02:00
DJj123dj 9253377766 CLI improvements 2025-04-12 21:05:52 +02:00
Jasper 6355fb5562 Open Ticket v4.0.2
Open Ticket v4.0.2
2025-04-12 19:19:06 +02:00
DJj123dj 442c201994 Updated all version badges to v4.0.2 2025-04-12 19:02:57 +02:00
DJj123dj b61f9d4d5a Update README.md 2025-04-12 18:57:53 +02:00
DJj123dj 129053b9f5 Fixed autoclose hours showing the wrong number.
Fixed that the ticket message embed shows the wrong amount of hours when used manually with /autoclose enable
2025-04-08 22:06:22 +02:00
DJj123dj 35a0511b97 Merge branch 'dev' of https://github.com/open-discord-bots/open-ticket into dev 2025-04-08 22:01:38 +02:00
DJj123dj bae221056c Fixed #149 Tickets not changing categories 2025-04-08 22:01:36 +02:00
DJj123dj 9c6e4ccde4 Update checkerLoader.ts 2025-04-08 21:59:08 +02:00
Roppl3r ac6845b4d4 Fixed Issue #151 (Max length for option 'name' should be 45, currently set to 50)
Fixed config checker bug related to the name of a ticket option in a dropdown.
2025-04-08 21:58:03 +02:00
DJj123dj 30352b570a Updated Interactive Setup CLI (Unfinished Part 2) 2025-04-08 13:51:01 +02:00
DJj123dj 1fddad1e96 Improved TS interfaces for the config checker 2025-04-08 13:49:59 +02:00
DJj123dj 75770c84b2 Update README.md preview images 2025-04-08 09:03:41 +02:00
DJj123dj 2281d78896 Implemented Vietnamese translations 2025-04-07 18:13:23 +02:00
ngocdiep2006 37cc3b794e Added Vietnamese translation
Create vietnamese.json
2025-04-07 18:07:59 +02:00
DJj123dj d545d21bb1 Update cli.ts 2025-04-07 16:47:57 +02:00
DJj123dj 5f79ae909b Added Interactive Setup CLI (Unfinished)
Added the first part of the interactive setup CLI. You can explore the interface but some parts will not work yet. It will also not save to the config file yet.

The "Quick Setup" & "Manage Plugins" parts of the CLI will arrive later this week.
2025-04-06 19:04:09 +02:00
DJj123dj 831e120093 Finished --silent flag 2025-04-05 22:18:45 +02:00
DJj123dj 376fa23288 Started working on --silent flag 2025-04-04 22:40:15 +02:00
Jasper 9414b96221 Open Ticket v4.0.1
Open Ticket v4.0.1
2025-04-02 14:49:08 +02:00
Jasper 0befd2860e Open Ticket v4.0.1
Open Ticket v4.0.1
2025-04-02 14:35:53 +02:00
DJj123dj 74d4ac24f2 Added new plugins to README.md 2025-04-02 07:34:42 +02:00
DJj123dj 364bf4f702 #144 : Added quick builders for plugins 2025-04-01 20:12:42 +02:00
DJj123dj dd5b76f3d8 Update README.md 2025-03-31 21:36:07 +02:00
DJj123dj a02ba56e9a Updated README.md 2025-03-31 17:54:10 +02:00
DJj123dj 6d5bdc5dd4 #143 : Panels now edit after using dropdown
From now on, all panels will update/edit themselfs after a dropdown has been used. This will reset the dropdown selection in the user client which results in a smoother user experience.
2025-03-29 13:16:27 +01:00
DJj123dj 51bfb1a367 #126 : ODManagers now use Maps instead of Arrays
This results in a minor speed increase within large managers (e.g. builders, tickets, blacklist, ...)
2025-03-29 13:14:59 +01:00
DJj123dj d85d842046 #142 : ODVersion + ODHTTPRequest improvements
Added new methods to ODVersion class & added User-Agent header to ODHTTPRequest classes
2025-03-29 13:13:35 +01:00
DJj123dj 53136e0e6c Fixed .DS_Store bug in plugin launcher 2025-03-29 13:10:58 +01:00
DJj123dj 2031a82523 #141 : Finished type simplifications 2025-03-29 13:10:27 +01:00
DJj123dj 453c48fab5 Update init.ts 2025-03-28 17:36:50 +01:00
DJj123dj fd3bc0e7b9 API: allowCategoryChange param in related actions
Added the 'allowCategoryChange' parameter in related ticket actions (claim, unclaim, close, reopen) to disable the changing of the category. This can be used by plugins not wanting the category of the channel to change.
2025-03-27 16:30:37 +01:00
DJj123dj f316ae83e7 Update CONTENT_CREATORS.md 2025-03-26 15:29:31 +01:00
DJj123dj d2c5cf0fc1 Added extra comments in some places 2025-03-26 15:24:56 +01:00
DJj123dj 45dfc18c1d Updated all file versions to v4.0.1 2025-03-26 15:14:11 +01:00
DJj123dj d81b1e7be3 The 4 new languages can now be used in OTv4.0.1 2025-03-26 15:13:55 +01:00
Jasper 2a82bdebae Added 4 new languages (by NoOneNook)
Added 4 new languages + updated README.md
2025-03-26 14:54:39 +01:00
NoOneNook c9e13b2471 Update README.md 2025-03-25 23:58:45 +01:00
NoOneNook cbeac2fda2 Update README.md 2025-03-25 23:50:12 +01:00
NoOneNook 8b1dd7d27a Update README.md 2025-03-25 23:47:34 +01:00
NoOneNook 9e7cd28c6a Russian language file
I created a Russian language file using AI. This file has been verified in several other places and was also reviewed using ChatGPT afterwards to ensure that everything is correct, properly structured, and contains the necessary translations and messages for the system.

ChatGPT was not used for translation, only to check that the entire file is correctly written in the Russian language
2025-03-25 23:46:52 +01:00
NoOneNook fabe11bfd1 Update README.md 2025-03-25 23:22:26 +01:00
NoOneNook 79187b9995 Add files via upload 2025-03-25 23:21:29 +01:00
NoOneNook a1251cf11c Delete languages/latvian.json
Wrong file!
This language will be translated soon
2025-03-25 22:46:28 +01:00
NoOneNook 1bc8b2b401 Latvian (coming soon)
tarted in a new language. Soon to be finished.
2025-03-25 22:43:51 +01:00
NoOneNook ce727e52b0 Update on swedish.json
Updated 
"translators": ["NoOneNook / ItsNook_"],
to 
"translators": ["NoOneNook"],
2025-03-25 22:13:24 +01:00
NoOneNook 30233df7b0 Update on norwegian.json
Updated "translators": ["NoOneNook"], to "translators": ["NoOneNook"],
2025-03-25 22:10:54 +01:00
NoOneNook 48d3296868 Delete languages/README.md
Deleted README.md from wrong folder
2025-03-25 22:01:09 +01:00
NoOneNook 6b8ef26b4c Remove README.md
Deleted README.md text from wrong folder
2025-03-25 22:00:25 +01:00
NoOneNook 9c992c3dbd name fix
Updated readme below the lines for Norwegian and Swedish
2025-03-25 21:58:19 +01:00
NoOneNook 6feb56c25c Name fix
Fixed lines for Norwegian and Swedish
2025-03-25 21:56:40 +01:00
NoOneNook e29b6afd87 Translate update
Updated readme below the lines for Norwegian and Swedish
2025-03-25 21:54:18 +01:00
NoOneNook d35b7fca99 Add files via upload
Norwegian and Swedish translation complete
2025-03-25 21:49:40 +01:00
DJj123dj 126fada990 Merge branch 'dev' 2025-03-25 18:44:56 +01:00
DJj123dj bd4929f11b Updated all URLs for repository transfer 2025-03-25 17:49:42 +01:00
DJj123dj d28fcf40d7 Fixed broken flag alias using --dev-database 2025-03-22 11:08:09 +01:00
DJj123dj bed4e2a56a Improved CONTRIBUTING.md & SECURITY.md markdown 2025-03-16 18:35:25 +01:00
DJj123dj ba3a35a343 Added official Open Ticket Pterodactyl eggs! 2025-03-16 18:34:43 +01:00
DJj123dj 1e159c9bab Improved dockerfile & compose 2025-03-12 22:13:00 +01:00
DJj123dj e7ad3dd50b Fixed startup crash codes (for Docker) 2025-03-12 22:12:51 +01:00
DJj123dj 177dee7468 Type simplifications (for documentation) 2025-02-27 20:51:59 +01:00
DJj123dj 0d40c23aa8 Fixed HTML Transcripts "member not found" error. 2025-02-19 15:48:37 +01:00
DJj123dj 15eef95fdd Decreased /clear speed to reduce ratelimit chances 2025-02-19 15:43:43 +01:00
DJj123dj c89e93d33d Fixed crash resulting of non-returning statements 2025-02-19 15:29:16 +01:00
DJj123dj e6c413cdf5 Fixed typos in comments 2025-02-18 18:18:10 +01:00
DJj123dj b12556120c Made database migration compatible with plugins 2025-02-17 19:44:18 +01:00
DJj123dj 58674452d8 Added quick setup to README.md 2025-02-15 19:01:53 +01:00
DJj123dj a2f9593d55 Fixed #134 : text transcripts incorrect newlines 2025-02-15 18:22:23 +01:00
DJj123dj 9702c4d97d Fixed stats resetting due to breaking change 2025-02-12 16:27:34 +01:00
DJj123dj f13777e5f3 Update README.md 2025-02-09 11:34:37 +01:00
DJj123dj 9395e9af75 Added 13 new utility events for plugins 2025-02-09 11:19:03 +01:00
DJj123dj b2a5e65fe2 Update README.md 2025-02-09 11:18:24 +01:00
DJj123dj 071c8f953c Update createDocs.js 2025-02-05 17:04:10 +01:00
DJj123dj 9a4e5e2175 Merge branch 'dev' of https://github.com/DJj123dj/open-ticket into dev 2025-02-04 17:42:37 +01:00
DJj123dj 4e709f2a0b Update createDocs.js 2025-02-04 17:42:24 +01:00
Jasper 27e3e78439 Fixed dateString() utility
Fixed dateString() utility
2025-02-03 21:28:51 +01:00
DJj123dj 06e7919162 Fixed panel dropdown bug with empty option label 2025-02-03 21:01:36 +01:00
Roppl3r bf952e3ef7 Fixed month parsing in dateString() utility causing incorrect dates in text transcripts. 2025-02-02 20:23:32 +01:00
DJj123dj a397b66c9e Update createDocs.js 2025-02-01 11:52:02 +01:00
DJj123dj 27f6e3a81f Compiler will now only hash JS & TS files 2025-02-01 11:23:17 +01:00
DJj123dj f2cefae37c database will auto-update for the breaking change 2025-02-01 11:22:49 +01:00
DJj123dj 6acbf74846 BREAKING: changed all ids to "opendiscord:" 2025-02-01 10:29:35 +01:00
DJj123dj 29f8e1452c BREAKING: changed openticket to opendiscord in API 2025-02-01 10:22:27 +01:00
DJj123dj ce242741cd Update README.md 2025-02-01 10:05:26 +01:00
DJj123dj ac587568d3 Update createDocs.js 2025-01-31 17:14:56 +01:00
DJj123dj f5e78949d7 Added typedoc for OT Docs API Reference 2025-01-31 16:03:02 +01:00
DJj123dj 8e7fe4e502 Update README.md 2025-01-29 21:36:26 +01:00
DJj123dj e51cc54090 Fixed polish translation 2025-01-29 19:50:31 +01:00
Jasper dc3515da10 Added Polish Translation
Added Polish Translation
2025-01-29 19:47:25 +01:00
Jasper c57f3397a4 Update checker.ts 2025-01-29 19:46:04 +01:00
Jasper 686b45b0bd Added Polish Translation
Added Polish Language 🇵🇱
2025-01-29 19:43:53 +01:00
DJj123dj 96d6758b4a Update README.md 2025-01-29 19:35:10 +01:00
DanoGlez 52b49ec564 Added Custom Emojis
feat: allow custom emojis by modifying checker
2025-01-28 23:23:18 +00:00
DanoGlez deebd2b758 Added Polish 2025-01-28 23:14:55 +00:00
DJj123dj ed9afffd70 Finished API comments 2025-01-28 18:16:14 +01:00
Jasper 91cad963e5 Added new API comments (part 9-12)
Added new API comments (part 9-12)
2025-01-28 17:50:23 +01:00
JasperAtSchool baa4e35878 Added new API comments (part 12) 2025-01-28 14:33:10 +01:00
JasperAtSchool f6c70fa62a Added new API comments (part 11) 2025-01-28 14:22:26 +01:00
JasperAtSchool 58fb7b7512 Added new API comments (part 10) 2025-01-28 14:16:43 +01:00
JasperAtSchool 5e1cfe7942 Added new API comments (part 9) 2025-01-28 11:21:49 +01:00
DJj123dj 507d254556 Added new API comments (part 8) 2025-01-27 23:37:49 +01:00
DJj123dj 43356fef05 Added Lithuanian translation (by tsgindrius) 2025-01-27 23:15:58 +01:00
DJj123dj bbae139c6b Updated README.md 2025-01-25 23:10:45 +01:00
DJj123dj 6516857866 Fixed deprecation of HTML Transcripts interactions 2025-01-25 22:54:50 +01:00
DJj123dj 213ec32225 Fixed small bugs 2025-01-25 14:06:41 +01:00
DJj123dj 04789d5426 Fixed #121 : Ticket busy will now reset on reboot 2025-01-25 11:47:50 +01:00
DJj123dj 0437af1507 Fixed #120 : Temporarily removed bot status state
Will be added back in a future update, but customisable instead of double text :)
2025-01-25 11:43:13 +01:00
DJj123dj 73d188c5dc Fixed #129 : Improved invalid token error 2025-01-25 11:28:32 +01:00
DJj123dj 057a5fc6ae Fixed #124 : DMs are now sent to ticket creator 2025-01-25 11:18:10 +01:00
DJj123dj d35eb8f8bf Updated issue templates 2025-01-25 10:56:18 +01:00
DJj123dj 19e5902320 Fixed: checker not working correctly using .env
Fixed the config checker not working correctly when parsing the token from the .env file.
2025-01-24 17:34:05 +01:00
DJj123dj 66b0377a2b Update index.ts 2025-01-22 17:11:01 +01:00
DJj123dj 3bd308007c Updated sponsors 2025-01-22 16:58:24 +01:00
DJj123dj 40bd873a33 Added new API comments (part 7) 2025-01-22 15:13:13 +01:00
Jasper 09d9b2d265 Added new API comments (part 6)
Added new API comments (part 6)
2025-01-21 18:51:06 +01:00
JasperAtSchool 7fb169789b Added new API comments (part 6) 2025-01-21 12:05:36 +01:00
DJj123dj 1ab207b4eb Found more missing translations 2025-01-20 20:42:23 +01:00
DJj123dj 5e5ac3e409 Implemented progress bars when loading slash cmds 2025-01-19 15:16:04 +01:00
DJj123dj 7809ffc5c6 Fixed typo's in comments 2025-01-19 15:15:29 +01:00
DJj123dj 9da823aa4b Added new progress bars API & classes 2025-01-19 00:17:39 +01:00
DJj123dj ff23b0e89e Added comment to dump command 2025-01-18 21:53:53 +01:00
DJj123dj c3474fb017 Made built-in cmds compatible with slash update 2025-01-18 20:41:12 +01:00
DJj123dj 03982f644e MAJOR: Full rewrite of slash cmd loading system
The system of detecting, comparing & registering slash cmds has been rewritten and updated for future compatibility. This will break all current plugins (so please wait until they are updated)

=> Increased speed
=> All cmd params are now used when comparing
=> Future compability & removed deprecated functions
=> New universal utility interfaces for slash commands
=> And more!
2025-01-18 20:40:52 +01:00
DJj123dj 3a30152cb2 Improved startup time (5 sec) due to config bug 2025-01-18 20:36:08 +01:00
DJj123dj 334c9dde21 Moved sponsors more to top of README.md 2025-01-14 18:14:23 +01:00
DJj123dj b6985f9d28 Updated LICENSE 2025-01-14 17:56:27 +01:00
DJj123dj 7d30bf24d9 The bot will now only re-compile when changed
The bot will now only re-compile when the plugins or source code changes. (computed using a hash)

This reduces the average startup time by 50%.
2025-01-14 17:53:11 +01:00
DJj123dj 138378ac31 Added new API comments (part 5) 2025-01-14 17:18:47 +01:00
DJj123dj 9a73ee0d01 Fixed bug with option description being empty
Fixed a bug which caused the /panel command to crash when using an option without any description in combination with the "describeOptionsInEmbedFields" mode enabled.
2025-01-14 16:46:22 +01:00
Jasper f26e6f5e99 Added new API comments (part 4)
Added new API comments (part 4)
2025-01-14 16:40:17 +01:00
JasperAtSchool 209041c1e5 Merge branch 'DJj123dj:dev' into dev 2025-01-14 16:38:39 +01:00
JasperAtSchool 499901fbf1 Added new API comments (part 4) 2025-01-14 16:37:43 +01:00
DJj123dj 1a1a3f3b02 Update README.md 2025-01-11 22:27:52 +01:00
DJj123dj dd5374f84c Update plugin.json 2025-01-10 23:01:03 +01:00
DJj123dj 02e8b7d0a1 Added new API comments (part 3) 2025-01-09 19:42:11 +01:00
DJj123dj ce0af7e1e9 Added new API comments (part 2) 2025-01-09 18:34:29 +01:00
Jasper e1fab310a4 Added new API comments (part 1)
Added new API comments (part 1)
2025-01-09 18:03:28 +01:00
JasperAtSchool 0615235780 Added new API comments (part 1) 2025-01-09 17:48:50 +01:00
DJj123dj abd672dd3b Small bug fixes (plugin system) 2025-01-07 19:36:29 +01:00
Jasper f05d2d7d1b Update README.md
Updated v4.0 beta announcement
2025-01-07 18:54:24 +01:00
DJj123dj e65a092bc0 Small bug fixes 2025-01-06 22:29:09 +01:00
DJj123dj 17e1902681 Updated discord.js to v14.17.2 2025-01-06 21:14:41 +01:00
DJj123dj 91657f7519 Fixed ot-sqlite-database plugin stats not working 2025-01-06 20:51:36 +01:00
DJj123dj cfa692b356 Updated README.md year to 2025 😄 2025-01-06 20:51:11 +01:00
Jasper 0604e334ed Open Ticket v3.5.9
**Improved:**
- Updated discord.js to `v14.17.2`

**Fixed:**
- discord.js PermissionOverwrites => `Supplied parameter is not a User nor a Role`
- message `"ephemeral"` is deprecated warning
- A few config checker typos
2025-01-04 09:52:57 +01:00
DJj123dj e9d20c0a14 Improvements + Updated discord.js to v14.17.2 2025-01-04 09:50:17 +01:00
DJj123dj 67465bfdf4 Bugfix: ephemeral in message reply is deprecated 2025-01-04 09:49:52 +01:00
DJj123dj a66d3aad2d Updated to v3.5.9 2025-01-04 09:36:42 +01:00
DJj123dj f2de7fc408 Bugfix: discord.js PermissionOverwrites id invalid 2025-01-04 09:35:48 +01:00
DJj123dj 0cbf991090 Update transcripts.json 2024-12-25 21:05:01 +01:00
DJj123dj 72f7cbce26 Improved default config message descriptions. 2024-12-25 18:21:37 +01:00
DJj123dj 05b4080ac5 Plugins can now use import path shortcuts
Plugins are now able to use import path shortcuts to import all API classes, utilities and the openticket globals. You can now import everything from "#opendiscord" instead of "../../src/index"
2024-12-25 18:20:58 +01:00
DJj123dj 7646b3fc35 Increased HTML Transcript log level 2024-12-15 20:11:39 +01:00
DJj123dj bf13e15d56 Disabled autoclose & delete by default 2024-12-15 19:47:20 +01:00
DJj123dj f0183c319a Added Hindi Translation (by an_developer) 2024-12-15 19:46:40 +01:00
DJj123dj c6e836455c Updated README.md Contributors 2024-12-15 19:46:10 +01:00
DJj123dj 8a6a8e527f Added 6 new plugins to README.md 2024-12-08 18:29:00 +01:00
DJj123dj 4e7d45ea07 Increased button label length to 80 characters 2024-12-08 18:28:49 +01:00
DJj123dj b7f5c7191d Fixed responder TS typo 2024-12-08 18:28:22 +01:00
DJj123dj 106cb0f718 Fixed dropdown not supporting empty emojis
Fixed a bug that caused the bot to crash when spawning a dropdown panel which includes an option without emoji.
2024-12-07 21:46:49 +01:00
DJj123dj 0c2b688862 Fixed English translation typo's 2024-12-07 13:27:24 +01:00
DJj123dj a037d76060 Fixed database ghosted unused-options bug
Fixed a problem where unused ticket options would stay in the options database in certain circumstances. Even when there is no ticket that uses the option anymore.
2024-12-07 00:34:49 +01:00
DJj123dj 1e2321313f Implemented "removeParticipantsOnClose"
Implemented the option "removeParticipantsOnClose" in the config/general.json. It wasn't implemented in the code by accident.
2024-12-06 15:59:08 +01:00
DJj123dj 91ea12a6cc Added Arabic translation 2024-12-06 15:44:58 +01:00
DJj123dj 5d86269743 Fixed stats not displaying with SQLite plugin
Lot's of stats were hidden in the embed when using the ot-sqlite-database plugin. This was caused by a recent API breaking-change that made everything async.

The problem wasn't related to the plugin itself, but the Open Ticket api. Updating the plugin is not required.
2024-12-05 22:10:02 +01:00
DJj123dj 42ff447a94 Added French & Turkish translations 2024-12-05 21:47:17 +01:00
Jasper 7627c07b71 Added French Translation (+ Catalan fixes)
Translations Updates
2024-12-05 21:42:33 +01:00
Guillem Parera Jové 147ebc90da - Fixed Catalan Translation.
- Added French Translation.
2024-12-05 21:03:14 +01:00
DJj123dj e8319cccea Updated README.md 2024-11-25 20:06:11 +01:00
DJj123dj 66ab30bf06 Livestatus source moved to github 2024-11-25 19:46:56 +01:00
DJj123dj d0ef2a9873 Language loading => async + moved livestatus file 2024-11-25 19:43:58 +01:00
DJj123dj 3e928ed06e Bug fixes for new database system 2024-11-25 19:24:48 +01:00
DJj123dj b22f7b2de7 major bug fixes & breaking change in database code
Major bug fixes and improvements have been made. There's also a breaking change for plugins using the database system. All database related functions are now async based.
2024-11-24 23:26:14 +01:00
DJj123dj 6b36b1caf6 Update plugin.json 2024-11-21 23:43:39 +01:00
DJj123dj f8da68607d Update client.ts 2024-11-18 20:50:02 +01:00
DJj123dj a31588f025 Small changes to the plugin loading system 2024-11-18 20:19:25 +01:00
DJj123dj 5a4b45aa3f Added Thai Translation (by ModsHD) 2024-11-14 17:50:06 +01:00
DJj123dj 92aa42fc7c ticket creator bug fix + added danish translation 2024-11-11 21:27:53 +01:00
DJj123dj 4022ae49c2 Major bug fixes + updated contributing guidelines 2024-11-06 20:59:00 +01:00
DJj123dj 319bbe318d Added previews + plugins to README.md 2024-10-28 13:52:14 +01:00
DJj123dj 970807d144 Added 2 new languages + small ODMain improvements 2024-10-28 12:29:33 +01:00
Jasper 929f57721b Added Estonian and Finnish translations (by iamnotmega) 2024-10-28 12:23:05 +01:00
NotMega 3469e61065 Update finnish.json 2024-10-26 19:45:34 +03:00
NotMega 3ddb03a569 Update estonian.json 2024-10-26 19:45:17 +03:00
NotMega 3fa72e07d8 Create finnish.json 2024-10-26 19:42:01 +03:00
NotMega 6423ed4b41 Create estonian.json 2024-10-26 19:41:36 +03:00
Jasper fc8a252e67 Translation Credits
Gives some credit to AI that notmega used while doing his translations
2024-10-21 18:29:12 +02:00
Ronalds ca9fe0aa77 add some credit to ai 2024-10-20 18:16:26 +03:00
DJj123dj 798ab8fab1 Update README.md 2024-10-16 14:22:17 +02:00
DJj123dj 848c968483 Fixed all currently known bugs :) 2024-10-14 20:30:45 +02:00
DJj123dj 330ea47ab9 Updated german & fixed async forEach errors 2024-10-07 22:24:02 +02:00
DJj123dj 4e10cba203 Added docker compatibility 2024-10-06 21:17:32 +02:00
DJj123dj 56e1fb3939 Fixed loopAll() async errors 2024-10-03 20:46:01 +02:00
DJj123dj 7c76be8473 Fixed suffix register error on config reload 2024-10-03 20:16:42 +02:00
DJj123dj 7fa5dca7b3 Updated Italian 2024-10-02 23:28:00 +02:00
DJj123dj 6d3f210612 Added Italian by fraden1mvp 2024-10-02 23:21:20 +02:00
DJj123dj 118161698e Fixed blacklist bug 2024-10-02 22:41:12 +02:00
DJj123dj 6a8a8dd34d languages/config improvements & bug fixes 2024-10-02 17:36:08 +02:00
DJj123dj 28f0d974e5 Fixes "successfully" typo. 2024-09-24 19:32:35 +02:00
DJj123dj 77c486e2b7 Update createTranscript.ts 2024-09-15 17:55:42 +02:00
DJj123dj 20bf25aa98 Small bug fixes + auto cycles are now debug only! 2024-09-12 21:14:26 +02:00
DJj123dj 70048fa399 Added in-code flags support for pterodactyl 2024-09-11 21:08:05 +02:00
DJj123dj 8eae88b1c6 Added 2 new plugins to README.md 2024-09-05 23:27:40 +02:00
DJj123dj 35b02e0a8f Added first plugins 2024-09-05 21:01:36 +02:00
DJj123dj 2a8e41005f Update init.ts 2024-09-05 20:58:57 +02:00
DJj123dj 85026793a4 Added Indonesian by erxg 2024-09-04 20:39:20 +02:00
DJj123dj 55bcff8030 fix ticket cmd perms, updated djs & added dump cmd 2024-09-04 20:13:13 +02:00
DJj123dj 39099a0dfe Fixed small translation mistakes 2024-09-02 16:10:02 +02:00
DJj123dj 504889a83d Fixed config checker emoji count 2024-09-01 21:30:56 +02:00
DJj123dj c1c80fc04d Small improvements 2024-09-01 20:55:50 +02:00
DJj123dj 4e030bf95b Fixed config checker bugs & added new flags 2024-09-01 18:38:08 +02:00
DJj123dj adae64bab9 Romanian & Ukrainian languages are now available! 2024-09-01 17:53:29 +02:00
DJj123dj bfa05297b2 Fixed plugins not loading on windows 2024-09-01 17:30:25 +02:00
DJj123dj 509e961446 Typescript will now be compiled without CLI 2024-09-01 16:27:25 +02:00
DJj123dj 147eae05b3 Testing pterodactyl compile support! 2024-09-01 11:58:16 +02:00
DJj123dj e410ceaa64 Added Ukrainian & Romanian languages 2024-08-31 21:55:52 +02:00
Jasper 51e1ca6fa3 Added Ukrainian by Anderskiy
upload a new language
2024-08-31 21:44:02 +02:00
Anderskiy e67c505e32 Add files via upload 2024-08-31 15:08:14 +03:00
DJj123dj 12885f63d6 Fixed spanish max string length issues 2024-08-23 23:24:59 +02:00
Jasper c49f577f7f Added Spanish by Josuens & Reddishye
Added Spanish Language
2024-08-23 23:21:09 +02:00
DJj123dj d5295a9480 Fixed bugs & added/updated languages! 2024-08-23 23:19:44 +02:00
DJj123dj 177ab95dba Fixed permission error & preparing for win build 2024-08-22 21:22:19 +02:00
DJj123dj 5e2e0417dc Update index.js 2024-08-22 16:17:22 +02:00
DJj123dj b3cd37bb4b Update index.js 2024-08-22 16:13:27 +02:00
DJj123dj 5512bc1134 Pterodactyl panel support part 2 2024-08-22 16:09:29 +02:00
DJj123dj 7dd9bf1ac0 OTv4 is now pterodactyl panel compatible! 2024-08-22 15:45:38 +02:00
Hugo Torres cd7fb7533f Add Spanish Language 2024-08-22 11:39:07 +02:00
DJj123dj 8e730fdfae Tried to fix typescript not working on pterodactyl 2024-08-22 10:28:24 +02:00
DJj123dj 1dd8c0246a Fixed some translation errors & added Catalan! 2024-08-21 22:46:54 +02:00
DJj123dj 0a69efdfe5 Added german translation by benzorich 2024-08-21 14:52:33 +02:00
Jasper 9028eaa16a Update README.md 2024-08-21 14:24:55 +02:00
DJj123dj 0c2aca7039 Open Ticket v4 Beta 2024-08-21 13:24:56 +02:00
DJj123dj 9326d0fae8 v4.0.0 preparations 2024-08-21 11:56:47 +02:00
Jasper e1f4936ae6 Open Ticket v3.5.8
**fixed:**
- updated hungarian translation (by kornel0706)
- updated turkish translation (by 0x15d3)
- updated portuguese translation (by quiradon)
- updated czech translation (by spyeye_)
- fixed "unknown interaction" on ticket creation (in certain situations)
2024-08-02 14:51:17 +02:00
DJj123dj fd3ae39150 v3.5.8 2024-08-02 14:46:53 +02:00
Jasper 1b0da061ba Update czech.json 2024-07-31 11:52:35 +02:00
Jasper 07eb8f34e9 Update turkish by 0x15d3
Update turkish.json
2024-07-31 11:44:27 +02:00
artren 64fef62bf5 Update turkish.json 2024-07-27 23:18:34 +03:00
Jasper b2be76f5b6 Update Portuguese by Quiradon
Update portuguese.json
2024-07-23 20:22:29 +02:00
QuiraDon 856ccc10b9 Update portuguese.json 2024-07-23 14:27:08 -03:00
Jasper 8c6681f025 Open Ticket v3.5.7
Open Ticket v3.5.7
2024-07-02 19:40:06 +02:00
DJj123dj cc21e28470 Open Ticket v3.5.7 (Part 2) 2024-07-02 19:36:42 +02:00
DJj123dj 7815400472 Open Ticket v3.5.7 (Part 1) 2024-07-01 09:46:16 +02:00
Jasper fda8a397d6 Added 8 languages from iamnotmega (Part 2)
Added 8 new languages
2024-07-01 09:39:17 +02:00
mega ae306332bb Update README.md 2024-07-01 10:30:30 +03:00
mega bc46d4ab46 Update checker.js 2024-07-01 10:17:06 +03:00
mega b0b4e21aff Create vietnamese.json 2024-07-01 07:18:19 +03:00
mega fb3764eefb Create finnish.json 2024-07-01 07:17:43 +03:00
mega d5efe06fe5 Delete language/i.json 2024-07-01 07:15:32 +03:00
mega cdb2673217 Create i.json 2024-07-01 07:14:13 +03:00
mega 6018a183fb Create swedish.json 2024-07-01 07:12:06 +03:00
Jasper 73f9f4037f Added 5 languages from iamnotmega (Part 1)
Added 5 new languages
2024-06-30 19:59:59 +02:00
mega b5b537e85e Create japanese.json 2024-06-30 20:19:50 +03:00
mega 6ebeb7a93c Create korean.json 2024-06-30 20:19:06 +03:00
mega 7584c25e93 Create traditionalchinese.json 2024-06-30 20:12:40 +03:00
mega 94b3788cfb Create simplifiedchinese.json 2024-06-30 20:10:59 +03:00
mega e7d9ad374e Update estonian.json 2024-06-30 20:09:00 +03:00
mega 0e597232f0 Create estonian.json 2024-06-30 20:01:53 +03:00
Jasper acc89990c2 Open Ticket v3.5.6
Open Ticket v3.5.6
2024-05-31 16:42:41 +02:00
DJj123dj ee9f8eaca1 v3.5.6 bug fix update 2024-05-31 16:36:08 +02:00
Jasper ae8a8d1b14 v3.5.5 hotfix (instant push)
v3.5.5 hotfix (instant push)
2024-05-12 11:14:40 +02:00
DJj123dj 38afb9c2a6 v3.5.5 hotfix (instant push) 2024-05-12 11:14:02 +02:00
Jasper 5bdb7941b6 Open Ticket v3.5.5
Open Ticket v3.5.5
2024-05-10 14:08:11 +02:00
DJj123dj 01c1f3150e v3.5.5 push 2 2024-05-04 14:36:36 +02:00
DJj123dj e524cccd19 v3.5.5 push 1 2024-05-04 14:22:41 +02:00
Jasper ede102bddf Add Latvian Translation (Part 4) 2024-04-27 11:22:05 +02:00
Jasper ab5d5c06be Latvian Translation (Part 3) 2024-04-27 11:17:31 +02:00
Jasper 355f078ee5 Add Latvian translation (Part 2) 2024-04-27 11:14:30 +02:00
Jasper c207560743 Add Latvian translation (Part 1)
Still requires checker.js validation & testing
2024-04-27 11:12:46 +02:00
Ronalds b29dfaeaae Create latvian.json 2024-04-27 12:06:57 +03:00
Jasper 1710111fcb Open Ticket Sponsoring!
Open Ticket Sponsoring!
2024-04-22 21:25:43 +02:00
Jasper 805c6b8e55 Open Ticket Sponsoring!
Lets goo! Open Ticket has sponsorships!
2024-04-22 21:24:55 +02:00
Jasper d0ab311da4 Fixed readme
Fixed readme
2024-04-08 23:30:21 +02:00
Jasper 92a3671768 Fixed README documentation links 2024-04-08 23:28:53 +02:00
Jasper 71074e1afe Open Ticket v3.5.4
Open Ticket v3.5.4
2024-04-04 15:38:22 +02:00
DJj123dj e80ce1a64a v3.5.4 push 2 2024-04-04 14:06:48 +02:00
DJj123dj 5dfbce1856 v3.5.4 push 1 2024-03-27 14:22:35 +01:00
Jasper 407e56a806 Open Ticket v3.5.3
Open Ticket v3.5.3
2024-02-05 21:34:56 +01:00
DJj123dj e0f42834e5 v3.5.3 push 2 2024-02-05 21:32:02 +01:00
DJj123dj d03abd9eeb v3.5.3 push 1 2024-01-27 20:32:27 +01:00
Jasper 466a4aea81 Open Ticket v3.5.2
Open Ticket v3.5.2
2024-01-10 17:12:37 +01:00
DJj123dj 9d96d11cd3 v3.5.2 2024-01-10 17:11:46 +01:00
Jasper e3b99e656e Open Ticket v3.5.1!
Open Ticket v3.5.1!
2023-12-25 19:01:13 +01:00
DJj123dj 07e2a68d06 v3.5.1 push 2 (fix button color bug) 2023-12-25 18:56:28 +01:00
DJj123dj 795ca4f981 v3.5.1 push 1 (translation update) 2023-12-23 14:19:36 +01:00
Jasper 5231129278 Open Ticket v3.5.0
Open Ticket v3.5.0
2023-12-17 14:13:30 +01:00
DJj123dj f62bc7adf9 v3.5.0 last push 2023-12-17 14:12:22 +01:00
DJj123dj 5de6b1e906 v3.5.0 translation push 2 + improved thai 2023-12-16 18:00:54 +01:00
DJj123dj 62413505d6 v3.5.0 translation push 1 + bug fix 2023-12-16 17:46:34 +01:00
DJj123dj 20b617f6eb v3.5.0 push 5 2023-12-14 21:37:29 +01:00
DJj123dj 94510bbfb0 v3.5.0 push 4 2023-12-13 21:39:18 +01:00
DJj123dj d51511fdb5 v3.5.0 push 3 2023-12-13 12:27:01 +01:00
DJj123dj 3447a37603 v3.5.0 push 2 2023-12-12 21:32:15 +01:00
DJj123dj 4b17aa640f v3.5.0 push 1 2023-11-29 19:29:27 +01:00
Jasper 3b7674f1a5 Open Ticket v3.4.4
v3.4.4
2023-11-09 20:37:10 +01:00
DJj123dj 7de9339da3 v3.4.4 2023-11-09 20:36:21 +01:00
Jasper e2e1e19bc8 Open Ticket v3.4.3
Open Ticket v3.4.3
2023-08-30 17:23:21 +02:00
DJj123dj 5f19adf561 v3.4.3 2023-08-30 17:22:26 +02:00
Jasper 1bb70745ea Open Ticket v3.4.2
Open Ticket v3.4.2
2023-08-11 11:23:50 +02:00
DJj123dj 589bbe5cd5 v3.4.2 2023-08-11 11:22:25 +02:00
Jasper 447fddea56 Open Ticket v3.4.1
Open Ticket v3.4.1
2023-06-17 12:20:40 +02:00
DJj123dj bf7a003799 Update slash.json 2023-06-17 12:18:41 +02:00
DJj123dj 6115ab1cc8 Merge branch 'dev' of https://github.com/DJj123dj/open-ticket into dev 2023-06-17 12:16:26 +02:00
DJj123dj c2307fd1ed bug fix update v3.4.1 2023-06-17 12:16:23 +02:00
Jasper 2a3850c3cc Merge pull request #71 from NoOneNook/dev
Norwegian in slash.json | Dev- branch
2023-06-07 13:01:35 +02:00
NoOneNook 688c40ce7b Update slash.json
Translated slash.json into Norwegian
2023-06-07 03:16:44 +02:00
Jasper dee2a21be9 Update reopen.js 2023-05-19 16:23:12 +02:00
Jasper d7ae040d60 Removed readme warning
Update README.md
2023-05-19 15:03:22 +02:00
Jasper 7b6202985a Update README.md 2023-05-19 15:02:43 +02:00
Jasper a2f2c601a5 Open Ticket 3.4.0!
Open Ticket 3.4.0!
2023-05-19 15:02:09 +02:00
Jasper b27016df2e Merge branch 'main' into dev 2023-05-19 15:00:47 +02:00
DJj123dj 6341f2f71b v3.4.0 last push 2023-05-19 14:55:29 +02:00
DJj123dj 56a5b9c7d0 Merge branch 'dev' of https://github.com/DJj123dj/open-ticket into dev 2023-05-17 21:43:59 +02:00
DJj123dj f608cb71ce v3.4.0 push 2 (html transcripts v2) 2023-05-17 21:43:57 +02:00
Jasper 7c7c325307 temp fix for bugs 2023-05-01 13:11:34 +02:00
Jasper 832021d72a Update russian.json
Update russian.json
2023-04-30 12:23:11 +02:00
Apexo 030554a7f5 Update russian.json 2023-04-30 13:17:08 +03:00
Jasper ada5ea0c5d temp fix for "forEach" bug
This is a temporary fix for the "Cannot read properties of undefined (reading 'forEach')" bug. This will be fixed in a better way in v3.4.0
2023-04-30 12:11:31 +02:00
DJj123dj fb6b891835 v3.4.0 push 1: fixed all currently known bugs 2023-04-29 09:15:56 +02:00
Jasper 739ad81f3f v3.3.3 MAJOR FIX!
v3.3.3 MAJOR FIX!
2023-04-22 16:53:32 +02:00
DJj123dj a6f67a9452 v3.3.3 MAJOR FIX! 2023-04-22 16:52:43 +02:00
Jasper 56a6540663 v3.3.2 extra
v3.3.2 extra
2023-04-19 18:45:55 +02:00
DJj123dj 5f8812d261 v3.3.2 push 2 2023-04-19 18:45:12 +02:00
Jasper 7a3dcf4c42 Open Ticket v3.3.2
Open Ticket v3.3.2
2023-04-19 18:43:38 +02:00
DJj123dj 7cebd4dd6a Merge branch 'dev' of https://github.com/DJj123dj/open-ticket into dev 2023-04-19 18:39:23 +02:00
DJj123dj 27912a0c37 v3.3.2 2023-04-19 18:39:21 +02:00
Jasper 67871d885a Update dev
update dev branch
2023-03-23 14:22:29 +01:00
Jasper 1bd0d013ed Update config.json 2023-03-23 14:21:39 +01:00
Jasper a074a17519 Update issue templates 2023-03-23 14:15:25 +01:00
Jasper 67af96ef5c Update SECURITY.md 2023-03-23 14:10:38 +01:00
Jasper a041f28cf7 Update CONTRIBUTING.md 2023-03-23 14:10:03 +01:00
Jasper a8c9c2ea8d Create SECURITY.md 2023-03-23 13:35:08 +01:00
Jasper 8748301b04 Open Ticket v3.3.1
Open Ticket v3.3.1
2023-03-23 12:51:58 +01:00
DJj123dj 2d7a7b5728 v3.3.1 push 4 2023-03-23 12:46:53 +01:00
DJj123dj 0807ca884c Update ticketAutoclose.js 2023-03-21 20:10:06 +01:00
DJj123dj 0ead037fa8 v3.3.1 push 3 (autoclose spam fix) 2023-03-21 19:49:12 +01:00
DJj123dj 4287c11bf1 v3.3.1 push 2 (fixed dropdown crash) 2023-03-21 17:38:15 +01:00
DJj123dj 69fdc7ccf0 v3.3.1 BUG FIXES! (+ added Slovenian) 2023-03-20 20:01:09 +01:00
Jasper 6c213306b6 Add Slovenian language
add slovenian language
2023-03-19 12:51:12 +01:00
n1kkec 4096e8196d feat(language): add slovenian language 2023-03-19 12:47:24 +01:00
Jasper 94ee890848 Open Ticket v3.3!
Open Ticket v3.3!
2023-03-19 12:34:23 +01:00
DJj123dj 4dced819a3 v3.3 push 7 (added autoclose) 2023-03-19 12:29:24 +01:00
DJj123dj 1159af9fa9 v3.3 push 6 (added ticket claiming) 2023-03-18 11:48:01 +01:00
DJj123dj 67d429c52b v3.3 push 5 2023-03-16 20:58:08 +01:00
DJj123dj f67af805c1 v3.3 push 4 (1 entire afternoon of work)
My TODO list is too big :)
2023-03-15 20:57:14 +01:00
DJj123dj 944032f690 v3.3 push 3 (lots of small changes 😄) 2023-03-13 20:22:23 +01:00
DJj123dj ee248e86bc Merge branch 'dev' of https://github.com/DJj123dj/open-ticket into dev 2023-03-12 11:22:55 +01:00
DJj123dj b171bce62b v3.3 push 2 (added Polish) 2023-03-12 11:22:53 +01:00
Jasper df0bce0189 Delete test.txt 2023-03-01 14:31:36 +01:00
Jasper 2630aa899f Create test.txt 2023-03-01 14:03:50 +01:00
DJj123dj dba370d66e v3.3 push 1 & added turkish language 2023-02-25 21:02:31 +01:00
Jasper d0bcf26b93 Open Ticket v3.2.2
new update :)
2023-02-24 21:58:40 +01:00
DJj123dj 65f82171d3 v3.2.2 push 4 2023-02-24 21:48:59 +01:00
DJj123dj 6e730f058d github files moved to new directory 2023-02-24 15:13:33 +01:00
DJj123dj 4702c633ec v3.2.2 push 2 2023-02-24 15:02:53 +01:00
DJj123dj dc14a39c4e v3.2.2 push 1 2023-02-24 14:49:36 +01:00
Jasper 05c97909d4 Merge pull request #49 from DJj123dj/translation
Translation
2023-02-13 21:18:59 +01:00
Jasper b3c4c2f6e8 Merge pull request #47 from Apexo01/main
Added russian language
2023-02-13 21:01:19 +01:00
Jasper e0e678bee0 Merge pull request #48 from DJj123dj/main
test
2023-02-13 20:59:04 +01:00
Jasper 1b01b1703f Merge branch 'dev' into main 2023-02-13 20:57:43 +01:00
Jasper 26539360c6 Merge pull request #46 from quiradon/patch-2
Update portuguese.json
2023-02-13 20:54:30 +01:00
Apexo 627c461f64 Update README.md 2023-02-13 22:30:18 +03:00
Apexo 2e40dc0468 Added russian language 2023-02-13 22:18:07 +03:00
Jasper fa57b9a93f Update checker.js 2023-02-12 15:09:27 +01:00
QuiraDon 930452155b Update portuguese.json
some fixes on what was missing.
2023-02-09 02:20:09 -03:00
DJj123dj e70f22162d Merge branch 'dev' of https://github.com/DJj123dj/open-ticket into dev 2023-02-08 14:27:40 +01:00
DJj123dj d5b0a0f3c6 /change bugfix 2023-02-08 14:27:39 +01:00
Jasper c43081e05d Merge pull request #45 from quiradon/patch-1 2023-02-08 07:09:44 +01:00
QuiraDon 8c4bf735f1 Update Portugueses Lang
I completed the translation into Portuguese that was missing a few things.
2023-02-07 23:33:26 -03:00
Jasper 3a20c4707b open ticket v3.2.1
Update dev branch
2023-02-07 17:03:22 +01:00
Jasper 9a7e563c57 Update dev branch 2023-02-07 17:02:02 +01:00
Jasper 72b4f43a25 Open Ticket v3.2.1
Bug fix update
2023-02-07 17:01:14 +01:00
DJj123dj 5fec028cc9 Merge branch 'dev' of https://github.com/DJj123dj/open-ticket into dev 2023-02-07 16:59:26 +01:00
DJj123dj 81300303e5 Update danish.json 2023-02-07 16:59:19 +01:00
Jasper 8a1ea1c856 Update README.md 2023-02-06 22:08:11 +01:00
Jasper 8a9d63bf8b Merge pull request #41 from Sank34/patch-2
French Translation New
2023-02-06 22:07:18 +01:00
DJj123dj 208b365276 Update czech.json 2023-02-06 21:49:42 +01:00
Andrei abb64a0575 French Translation New 2023-02-05 23:32:42 +02:00
DJj123dj c930140540 Update german.json 2023-02-05 22:17:19 +01:00
DJj123dj 294c4d3f2b Merge branch 'dev' of https://github.com/DJj123dj/open-ticket into dev 2023-02-05 16:22:47 +01:00
DJj123dj 28e7d48e7e v3.2.1 push 3 2023-02-05 16:22:44 +01:00
Jasper bad278e681 Merge pull request #40 from DJj123dj/readme-edit
Edited readme
2023-02-02 18:16:52 +01:00
Jasper 2e2542d064 added documentation below 2023-02-02 18:15:42 +01:00
Jasper 2c48da45ae readme-update step 1 2023-02-02 18:11:46 +01:00
Jasper e1232a559e Added translation from Sank34/patch-1
Romanian for v3.2.1
2023-01-28 12:18:17 +01:00
Andrei 3d58475461 Update to the new Version 2023-01-28 13:16:17 +02:00
DJj123dj f702b199da v3.2.1 TRANSLATION! 2023-01-28 11:51:10 +01:00
DJj123dj ea1604a805 v3.2.1 push 1 (fixed /change bugs) 2023-01-25 16:28:19 +01:00
DJj123dj f8bc3d9e12 bug fix: tickets couldn't close in some situations 2023-01-19 17:42:44 +01:00
Jasper af35f83291 Open Ticket v3.2.0
Open Ticket v3.2.0
2023-01-18 21:48:13 +01:00
DJj123dj 39fec94ead changed readme.md 2023-01-18 21:47:32 +01:00
DJj123dj 1b8468330e v3.2 last push 2023-01-18 21:44:56 +01:00
DJj123dj b698c89a89 v3.2 push 2 2023-01-17 22:25:20 +01:00
DJj123dj 7ed2d7bcc7 v3.2 push 1 NOT WORKING YET!!! 2023-01-17 17:34:51 +01:00
Jasper f2ddaa5fd4 Merge pull request #36 from DJj123dj/dev
Open Ticket v3.1.0
2022-12-31 11:47:35 +01:00
DJj123dj fc50a8e83f v3.1 last push 2022-12-31 11:42:33 +01:00
DJj123dj 5bece3357d v3.1.0 push 3 2022-12-27 17:41:54 +01:00
Jasper 97d1489558 Delete .DS_Store 2022-12-27 17:37:23 +01:00
Jasper a211cef1f6 Delete database.json 2022-12-27 17:36:52 +01:00
DJj123dj ae002e168b v3.1.0 push 2 2022-12-27 17:35:01 +01:00
DJj123dj 86a5a1a2ca v3.1.0 push 1 2022-12-27 11:38:32 +01:00
Jasper 23ebc14b8b Merge pull request #35 from DJj123dj/dev
Open Ticket v3.0.1
2022-12-10 13:38:08 +01:00
DJj123dj 3a5768a1b1 added new README image 2022-12-10 13:37:02 +01:00
DJj123dj 33c3803ca8 openticket v3.0.1 2022-12-10 12:59:44 +01:00
DJj123dj f3613fb674 update to discord.js 14.7 2022-12-05 19:32:11 +01:00
DJj123dj f1dc8cbcf5 changed some stuff 2022-11-24 21:51:13 +01:00
Jasper a365c4b69f Update issue templates 2022-10-10 20:01:10 +02:00
Jasper 687372481a Update issue templates 2022-10-10 19:54:28 +02:00
Jasper 1bc8bde922 Update issue templates 2022-10-10 19:49:16 +02:00
Jasper 4b8074c520 Merge pull request #29 from DJj123dj/dev
Open ticket 3.0!
2022-10-07 16:36:20 +02:00
Jasper 1d5830975f Merge branch 'main' into dev 2022-10-07 16:35:58 +02:00
DJj123dj 95bc1f4fbf 3.0 update! 2022-10-07 16:32:29 +02:00
DJj123dj bfc02611c7 Create slash.json 2022-10-05 20:38:06 +02:00
DJj123dj e4c1e2559e 3.0 public beta 4 2022-10-05 20:25:35 +02:00
DJj123dj 69b669956e 3.0 public beta 3 2022-10-01 12:08:42 +02:00
DJj123dj 893a7c5b1f 3.0 public beta 2 2022-10-01 11:14:37 +02:00
DJj123dj ed9c98e2f0 3.0 update first beta 2022-09-24 08:56:34 +02:00
Jasper 62d950b1a6 Update checker.js 2022-09-14 20:49:20 +02:00
DJj123dj 69de612d1e added close with reason 2022-09-03 13:20:00 +02:00
Jasper 5494e112c0 Create CONTRIBUTING.md 2022-08-30 15:55:08 +02:00
Jasper cd2c08303e Merge pull request #28 from DJj123dj/add-code-of-conduct
Create CODE_OF_CONDUCT.md
2022-08-30 15:50:58 +02:00
Jasper a8619e448a Create CODE_OF_CONDUCT.md 2022-08-30 15:49:57 +02:00
DJj123dj c990257c02 v2.5.1 2022-08-16 13:00:17 +02:00
Jasper e7f05b4ed5 Merge pull request #26 from DJj123dj/dev
Update 2.5!
2022-08-15 15:03:37 +02:00
DJj123dj 697594b311 added french & czech translation 2022-08-15 14:55:34 +02:00
DJj123dj 6823b96114 fixed the last bugs & added czech translation 2022-08-14 22:13:51 +02:00
DJj123dj 0845390569 v2.5 (added translation for 2 new languages) 2022-08-14 21:23:04 +02:00
DJj123dj 568b2c9bee v2.5.0 push 2 2022-08-12 11:20:42 +02:00
DJj123dj 034247ea99 v2.5.0 first push 2022-08-10 19:35:10 +02:00
275 changed files with 64739 additions and 4662 deletions
+328
View File
@@ -0,0 +1,328 @@
//@ts-check
const fs = require("fs")
/*////// OT DOCS GENERATOR ////////
What does this file do?:
Well, this file will parse the result returned from typedoc (the documentation generator).
The resulting file will then be used in the OT Docs markdown generator to generate the Open Ticket API Reference.
In short:
This file generates the documentation for Open Ticket :)
Contributing:
If you want to contribute to the Open Ticket Docs, please run the following command:
> npm run docs
This will give you a "result.json" file which can then be used in the OT Docs.
Further instructions can be found there.
/////////////////////////////////*/
if (!fs.existsSync(".docs/typedoc-result.json")){
console.log("Unable to generate documentation! Run typedoc first!")
process.exit(1)
}
const result = JSON.parse(fs.readFileSync(".docs/typedoc-result.json").toString())
const availableElements = []
const skipElementNames = [
"#opendiscord-types"
]
const handleFunction = (memberType) => {
if (!memberType || !memberType.signatures || !Array.isArray(memberType.signatures)) return {type:"unknown"}
//try to get signature
let signature = memberType.signatures.find((s) => !s.typeParameters)
if (!signature) signature = memberType.signatures[0]
if (!signature) return {type:"unknown"}
//try to get comment
let comment = signature.comment
if (!comment) comment = memberType.signatures.find((s) => s.comment)?.comment
if (!comment) comment = null
const signatureInherited = signature.flags.isInherited ? true : false
const signatureComment = comment ? comment.summary?.map((c) => c.text).join("") : null
const signatureParameters = signature.parameters?.map((p) => {
return {name:p.name,details:handleType(p.type)}
}) ?? []
const signatureReturns = handleType(signature.type)
return {type:"function",inherited:signatureInherited,comment:signatureComment,parameters:signatureParameters,returns:signatureReturns}
}
const handleObject = (memberType) => {
if (!memberType || !memberType.children || !Array.isArray(memberType.children)) return {type:"unknown"}
const propertyIds = memberType.groups?.find((g) => g.title == "Properties")?.children ?? []
const methodIds = memberType.groups?.find((g) => g.title == "Methods")?.children ?? []
const objectChildren = []
for (const member of (memberType.children ?? [])){
const memberName = member.name
const memberType = propertyIds.includes(member.id) ? "property" : methodIds.includes(member.id) ? "method" : "other"
let memberComment = member.comment?.summary?.map((c) => c.text).join("") ?? null
const rawMemberSource = member.sources ? (member.sources[0] ?? null) : null
let memberSource = rawMemberSource ? rawMemberSource.fileName+":"+rawMemberSource.line+":"+rawMemberSource.character : null
let memberDetails = null
if (memberType == "property"){
//INTERFACE => PROPERTY
memberDetails = handleType(member.type)
}else if (memberType == "method"){
//INTERFACE => METHOD
memberDetails = handleFunction(member)
memberComment = memberDetails.comment
}
objectChildren.push({
type:memberType,
name:memberName,
comment:memberComment,
source:memberSource,
details:memberDetails
})
}
return {type:"object",children:objectChildren}
}
const handleType = (memberType) => {
if (!memberType || !memberType.type) return {type:"unknown"}
else if (memberType.type == "intrinsic") return {type:"primitive",name:memberType.name}
else if (memberType.type == "array") return {type:"array",child:handleType(memberType.elementType)}
else if (memberType.type == "union") return {type:"union",children:memberType.types.map((t) => handleType(t))}
else if (memberType.type == "intersection") return {type:"intersection",children:memberType.types.map((t) => handleType(t))}
else if (memberType.type == "reference"){
const referenceTypeArguments = (memberType.typeArguments) ? memberType.typeArguments.map((ta) => handleType(ta)) : null
let referenceType = availableElements.find((el) => el.name == memberType.name)?.type ?? null
if (referenceType){
//member is known type (from Open Ticket)
return {type:"reference",name:memberType.name,target:referenceType,typeArguments:referenceTypeArguments}
}else if (memberType.package){
//member is type from node.js or another package
if (memberType.package == "typescript") return {type:"internal",name:memberType.name,typeArguments:referenceTypeArguments}
if (memberType.package == "open-ticket" && memberType.refersToTypeParameter) return {type:"typeParam",name:memberType.name,typeArguments:referenceTypeArguments}
else return {type:"external",package:memberType.package,name:memberType.name,typeArguments:referenceTypeArguments}
}else return {type:"unknown"}
}
else if (memberType.type == "literal") return {type:"literal",name:(typeof memberType.value == "string") ? JSON.stringify(memberType.value) : String(memberType.value)}
else if (memberType.type == "typeOperator"){
if (memberType.operator == "keyof") return {type:"keyof",child:handleType(memberType.target)}
else if (memberType.operator == "readonly") return {type:"readonly",child:handleType(memberType.target)}
else if (memberType.operator == "unique") return {type:"unique",child:handleType(memberType.target)}
}
else if (memberType.type == "conditional") return {type:"conditional",checker:handleType(memberType.checkType),extends:handleType(memberType.extendsType),trueValue:handleType(memberType.trueType),falseValue:handleType(memberType.falseType)}
else if (memberType.type == "indexedAccess") return {type:"index",index:handleType(memberType.indexType),object:handleType(memberType.objectType)}
else if (memberType.type == "mapped") return {type:"mapped",parameterName:memberType.parameter,parameter:handleType(memberType.parameterType),template:handleType(memberType.templateType)}
else if (memberType.type == "optional") return {type:"optional",child:handleType(memberType.elementType)}
else if (memberType.type == "predicate") return {type:"predicate",name:memberType.name,target:handleType(memberType.targetType)}
else if (memberType.type == "query") return {type:"query",target:handleType(memberType.queryType)}
else if (memberType.type == "rest") return {type:"rest",child:handleType(memberType.elementType)}
else if (memberType.type == "tuple") return {type:"tuple",children:memberType.elements.map((t) => handleType(t))}
else if (memberType.type == "templateLiteral") return {type:"template",head:memberType.head,tails:memberType.tail.map((t) => {
return {element:handleType(t[0]),text:t[1]}
})}
else if (memberType.type == "reflection" && memberType.declaration && memberType.declaration.signatures && memberType.declaration.signatures[0]){
return handleFunction(memberType.declaration)
}
else if (memberType.type == "reflection"){
return handleObject(memberType.declaration)
}
else return {type:"unknown"}
}
for (const file of result.children){
const classIds = file.groups?.find((g) => g.title == "Classes")?.children ?? []
const interfaceIds = file.groups?.find((g) => g.title == "Interfaces")?.children ?? []
const typeIds = file.groups?.find((g) => g.title == "Type Aliases")?.children ?? []
const enumIds = file.groups?.find((g) => g.title == "Enumerations")?.children ?? []
const varIds = file.groups?.find((g) => g.title == "Variables")?.children ?? []
const funcIds = file.groups?.find((g) => g.title == "Functions")?.children ?? []
for (const declaration of file.children){
const declarationName = declaration.name
const declarationType = classIds.includes(declaration.id) ? "class" : interfaceIds.includes(declaration.id) ? "interface" : typeIds.includes(declaration.id) ? "type" : enumIds.includes(declaration.id) ? "enum" : varIds.includes(declaration.id) ? "variable" : funcIds.includes(declaration.id) ? "function" : "other"
availableElements.push({name:declarationName,type:declarationType})
}
}
const exported = []
for (const file of result.children){
const classIds = file.groups?.find((g) => g.title == "Classes")?.children ?? []
const interfaceIds = file.groups?.find((g) => g.title == "Interfaces")?.children ?? []
const typeIds = file.groups?.find((g) => g.title == "Type Aliases")?.children ?? []
const enumIds = file.groups?.find((g) => g.title == "Enumerations")?.children ?? []
const varIds = file.groups?.find((g) => g.title == "Variables")?.children ?? []
const funcIds = file.groups?.find((g) => g.title == "Functions")?.children ?? []
for (const declaration of (file.children ?? [])){
const declarationName = declaration.name
if (skipElementNames.includes(declarationName)) continue
const declarationType = classIds.includes(declaration.id) ? "class" : interfaceIds.includes(declaration.id) ? "interface" : typeIds.includes(declaration.id) ? "type" : enumIds.includes(declaration.id) ? "enum" : varIds.includes(declaration.id) ? "variable" : funcIds.includes(declaration.id) ? "function" : "other"
const declarationTypeParams = (declaration.typeParameters) ? declaration.typeParameters.map((tp) => {
return {name:tp.name,type:handleType(tp.type)}
}) : null
const declarationComment = declaration.comment?.summary?.map((c) => c.text).join("") ?? null
const declarationConstant = declaration.flags.isConst ? true : false
const rawDeclarationSource = declaration.sources ? (declaration.sources[0] ?? null) : null
const declarationSource = rawDeclarationSource ? rawDeclarationSource.fileName+":"+rawDeclarationSource.line+":"+rawDeclarationSource.character : null
const declarationChildren = []
if (declarationType == "class"){
//CLASS
const constructorIds = declaration.groups?.find((g) => g.title == "Constructors")?.children ?? []
const propertyIds = declaration.groups?.find((g) => g.title == "Properties")?.children ?? []
const methodIds = declaration.groups?.find((g) => g.title == "Methods")?.children ?? []
for (const member of (declaration.children ?? [])){
const memberName = member.name
const memberType = constructorIds.includes(member.id) ? "constructor" : propertyIds.includes(member.id) ? "property" : methodIds.includes(member.id) ? "method" : "other"
let memberComment = member.comment?.summary?.map((c) => c.text).join("") ?? null
const rawMemberSource = member.sources ? (member.sources[0] ?? null) : null
let memberSource = rawMemberSource ? rawMemberSource.fileName+":"+rawMemberSource.line+":"+rawMemberSource.character : null
const memberInherited = member.flags.isInherited ? true : false
const memberStatic = member.flags.isStatic ? true : false
const memberProtected = member.flags.isProtected ? true : false
const memberOptional = member.flags.isOptional ? true : false
const memberReadonly = member.flags.isReadonly ? true : false
let memberDetails = null
if (memberType == "property"){
//CLASS => PROPERTY
memberDetails = handleType(member.type)
}else if (memberType == "method"){
//CLASS => METHOD
memberDetails = handleFunction(member)
memberComment = memberDetails.comment
}else if (memberType == "constructor"){
//CLASS => CONSTRUCTOR
memberDetails = handleFunction(member)
memberComment = memberDetails.comment
}
declarationChildren.push({
type:memberType,
name:memberName,
comment:memberComment,
source:memberSource,
details:memberDetails,
inherited:memberInherited,
static:memberStatic,
protected:memberProtected,
optional:memberOptional,
readonly:memberReadonly
})
}
}else if (declarationType == "interface"){
//INTERFACE
const propertyIds = declaration.groups?.find((g) => g.title == "Properties")?.children ?? []
const methodIds = declaration.groups?.find((g) => g.title == "Methods")?.children ?? []
for (const member of (declaration.children ?? [])){
const memberName = member.name
const memberType = propertyIds.includes(member.id) ? "property" : methodIds.includes(member.id) ? "method" : "other"
let memberComment = member.comment?.summary?.map((c) => c.text).join("") ?? null
const rawMemberSource = member.sources ? (member.sources[0] ?? null) : null
let memberSource = rawMemberSource ? rawMemberSource.fileName+":"+rawMemberSource.line+":"+rawMemberSource.character : null
const memberInherited = member.flags.isInherited ? true : false
const memberStatic = member.flags.isStatic ? true : false
const memberProtected = member.flags.isProtected ? true : false
const memberOptional = member.flags.isOptional ? true : false
const memberReadonly = member.flags.isReadonly ? true : false
let memberDetails = null
if (memberType == "property"){
//INTERFACE => PROPERTY
memberDetails = handleType(member.type)
}else if (memberType == "method"){
//INTERFACE => METHOD
memberDetails = handleFunction(member)
memberComment = memberDetails.comment
}
declarationChildren.push({
type:memberType,
name:memberName,
comment:memberComment,
source:memberSource,
details:memberDetails,
inherited:memberInherited,
static:memberStatic,
protected:memberProtected,
optional:memberOptional,
readonly:memberReadonly
})
}
}else if (declarationType == "type"){
//TYPE
declarationChildren.push(handleType(declaration.type))
}else if (declarationType == "enum"){
//ENUM
const enumerableIds = declaration.groups?.find((g) => g.title == "Enumeration Members")?.children ?? []
for (const member of (declaration.children ?? [])){
const memberName = member.name
const memberType = enumerableIds.includes(member.id) ? "enumerable" : "other"
const memberComment = member.comment?.summary?.map((c) => c.text).join("") ?? null
const rawMemberSource = member.sources ? (member.sources[0] ?? null) : null
let memberSource = rawMemberSource ? rawMemberSource.fileName+":"+rawMemberSource.line+":"+rawMemberSource.character : null
let memberDetails = null
if (memberType == "enumerable"){
//ENUM => ENUMERABLE
memberDetails = handleType(member.type)
}
const memberInherited = member.flags.isInherited ? true : false
const memberStatic = member.flags.isStatic ? true : false
const memberProtected = member.flags.isProtected ? true : false
const memberOptional = member.flags.isOptional ? true : false
const memberReadonly = member.flags.isReadonly ? true : false
declarationChildren.push({
type:memberType,
name:memberName,
comment:memberComment,
source:memberSource,
details:memberDetails,
inherited:memberInherited,
static:memberStatic,
protected:memberProtected,
optional:memberOptional,
readonly:memberReadonly
})
}
}else if (declarationType == "variable"){
//VARIABLE
declarationChildren.push(handleType(declaration.type))
}else if (declarationType == "function"){
//FUNCTION
declarationChildren.push(handleFunction(declaration))
}
exported.push({
type:declarationType,
name:declarationName,
comment:declarationComment,
constant:declarationConstant,
source:declarationSource,
children:declarationChildren,
typeParams:declarationTypeParams
})
}
}
fs.writeFileSync(".docs/result.json",JSON.stringify(exported,null,"\t"))
fs.rmSync(".docs/typedoc-result.json")
+649
View File
@@ -0,0 +1,649 @@
//@ts-check
const fjs = require("formatted-json-stringify")
const fs = require("fs")
const formatter = new fjs.ObjectFormatter(null,true,[
new fjs.ObjectFormatter("_TRANSLATION",true,[
new fjs.PropertyFormatter("otversion"),
new fjs.ArrayFormatter("translators",false,new fjs.PropertyFormatter(null)),
new fjs.PropertyFormatter("lastedited"),
new fjs.PropertyFormatter("language"),
new fjs.PropertyFormatter("automated"),
]),
new fjs.ObjectFormatter("checker",true,[
new fjs.ObjectFormatter("system",true,[
new fjs.PropertyFormatter("typeError"),
new fjs.PropertyFormatter("headerOpenTicket"),
new fjs.PropertyFormatter("typeWarning"),
new fjs.PropertyFormatter("typeInfo"),
new fjs.PropertyFormatter("headerConfigChecker"),
new fjs.PropertyFormatter("headerDescription"),
new fjs.PropertyFormatter("footerError"),
new fjs.PropertyFormatter("footerWarning"),
new fjs.PropertyFormatter("footerSupport"),
new fjs.PropertyFormatter("compactInformation"),
new fjs.PropertyFormatter("dataPath"),
new fjs.PropertyFormatter("dataDocs"),
new fjs.PropertyFormatter("dataMessages"),
]),
new fjs.ObjectFormatter("messages",true,[
new fjs.PropertyFormatter("stringTooShort"),
new fjs.PropertyFormatter("stringTooLong"),
new fjs.PropertyFormatter("stringLengthInvalid"),
new fjs.PropertyFormatter("stringStartsWith"),
new fjs.PropertyFormatter("stringEndsWith"),
new fjs.PropertyFormatter("stringContains"),
new fjs.PropertyFormatter("stringChoices"),
new fjs.PropertyFormatter("stringRegex"),
new fjs.PropertyFormatter("stringInvertedContains"),
new fjs.PropertyFormatter("stringLowercase"),
new fjs.PropertyFormatter("stringUppercase"),
new fjs.PropertyFormatter("stringSpecialCharacters"),
new fjs.PropertyFormatter("stringNoSpaces"),
new fjs.PropertyFormatter("stringCapitalWord"),
new fjs.PropertyFormatter("stringCapitalSentence"),
new fjs.PropertyFormatter("stringPunctuation"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("numberTooShort"),
new fjs.PropertyFormatter("numberTooLong"),
new fjs.PropertyFormatter("numberLengthInvalid"),
new fjs.PropertyFormatter("numberTooSmall"),
new fjs.PropertyFormatter("numberTooLarge"),
new fjs.PropertyFormatter("numberNotEqual"),
new fjs.PropertyFormatter("numberStep"),
new fjs.PropertyFormatter("numberStepOffset"),
new fjs.PropertyFormatter("numberStartsWith"),
new fjs.PropertyFormatter("numberEndsWith"),
new fjs.PropertyFormatter("numberContains"),
new fjs.PropertyFormatter("numberChoices"),
new fjs.PropertyFormatter("numberFloat"),
new fjs.PropertyFormatter("numberNegative"),
new fjs.PropertyFormatter("numberPositive"),
new fjs.PropertyFormatter("numberZero"),
new fjs.PropertyFormatter("numberNan"),
new fjs.PropertyFormatter("numberInvertedContains"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("booleanTrue"),
new fjs.PropertyFormatter("booleanFalse"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("arrayEmptyDisabled"),
new fjs.PropertyFormatter("arrayEmptyRequired"),
new fjs.PropertyFormatter("arrayTooShort"),
new fjs.PropertyFormatter("arrayTooLong"),
new fjs.PropertyFormatter("arrayLengthInvalid"),
new fjs.PropertyFormatter("arrayInvalidTypes"),
new fjs.PropertyFormatter("arrayDouble"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("discordInvalidId"),
new fjs.PropertyFormatter("discordInvalidIdOptions"),
new fjs.PropertyFormatter("discordInvalidToken"),
new fjs.PropertyFormatter("colorInvalid"),
new fjs.PropertyFormatter("emojiTooShort"),
new fjs.PropertyFormatter("emojiTooLong"),
new fjs.PropertyFormatter("emojiCustom"),
new fjs.PropertyFormatter("emojiInvalid"),
new fjs.PropertyFormatter("urlInvalid"),
new fjs.PropertyFormatter("urlInvalidHttp"),
new fjs.PropertyFormatter("urlInvalidProtocol"),
new fjs.PropertyFormatter("urlInvalidHostname"),
new fjs.PropertyFormatter("urlInvalidExtension"),
new fjs.PropertyFormatter("urlInvalidPath"),
new fjs.PropertyFormatter("idNotUnique"),
new fjs.PropertyFormatter("idNonExistent"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("invalidType"),
new fjs.PropertyFormatter("propertyMissing"),
new fjs.PropertyFormatter("propertyOptional"),
new fjs.PropertyFormatter("objectDisabled"),
new fjs.PropertyFormatter("nullInvalid"),
new fjs.PropertyFormatter("switchInvalidType"),
new fjs.PropertyFormatter("objectSwitchInvalid"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("invalidLanguage"),
new fjs.PropertyFormatter("invalidButton"),
new fjs.PropertyFormatter("unusedOption"),
new fjs.PropertyFormatter("unusedQuestion"),
new fjs.PropertyFormatter("dropdownOption"),
new fjs.PropertyFormatter("customInvalidVersion"),
]),
]),
new fjs.ObjectFormatter("actions",true,[
new fjs.ObjectFormatter("buttons",true,[
new fjs.PropertyFormatter("create"),
new fjs.PropertyFormatter("close"),
new fjs.PropertyFormatter("delete"),
new fjs.PropertyFormatter("reopen"),
new fjs.PropertyFormatter("claim"),
new fjs.PropertyFormatter("unclaim"),
new fjs.PropertyFormatter("pin"),
new fjs.PropertyFormatter("unpin"),
new fjs.PropertyFormatter("clear"),
new fjs.PropertyFormatter("helpSwitchSlash"),
new fjs.PropertyFormatter("helpSwitchText"),
new fjs.PropertyFormatter("helpPage"),
new fjs.PropertyFormatter("withReason"),
new fjs.PropertyFormatter("withoutTranscript"),
]),
new fjs.ObjectFormatter("titles",true,[
new fjs.PropertyFormatter("created"),
new fjs.PropertyFormatter("close"),
new fjs.PropertyFormatter("delete"),
new fjs.PropertyFormatter("reopen"),
new fjs.PropertyFormatter("claim"),
new fjs.PropertyFormatter("unclaim"),
new fjs.PropertyFormatter("pin"),
new fjs.PropertyFormatter("unpin"),
new fjs.PropertyFormatter("rename"),
new fjs.PropertyFormatter("move"),
new fjs.PropertyFormatter("add"),
new fjs.PropertyFormatter("remove"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("help"),
new fjs.PropertyFormatter("statsReset"),
new fjs.PropertyFormatter("blacklistAdd"),
new fjs.PropertyFormatter("blacklistRemove"),
new fjs.PropertyFormatter("blacklistGet"),
new fjs.PropertyFormatter("blacklistView"),
new fjs.PropertyFormatter("blacklistAddDm"),
new fjs.PropertyFormatter("blacklistRemoveDm"),
new fjs.PropertyFormatter("clear"),
new fjs.PropertyFormatter("clearTickets"),
new fjs.PropertyFormatter("roles"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("autoclose"),
new fjs.PropertyFormatter("autocloseEnabled"),
new fjs.PropertyFormatter("autocloseDisabled"),
new fjs.PropertyFormatter("autodelete"),
new fjs.PropertyFormatter("autodeleteEnabled"),
new fjs.PropertyFormatter("autodeleteDisabled"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("topicSet"),
new fjs.PropertyFormatter("prioritySet"),
new fjs.PropertyFormatter("priorityGet"),
new fjs.PropertyFormatter("transfer"),
]),
new fjs.ObjectFormatter("descriptions",true,[
new fjs.PropertyFormatter("create"),
new fjs.PropertyFormatter("close"),
new fjs.PropertyFormatter("delete"),
new fjs.PropertyFormatter("reopen"),
new fjs.PropertyFormatter("claim"),
new fjs.PropertyFormatter("unclaim"),
new fjs.PropertyFormatter("pin"),
new fjs.PropertyFormatter("unpin"),
new fjs.PropertyFormatter("rename"),
new fjs.PropertyFormatter("move"),
new fjs.PropertyFormatter("add"),
new fjs.PropertyFormatter("remove"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("helpExplanation"),
new fjs.PropertyFormatter("statsReset"),
new fjs.PropertyFormatter("statsError"),
new fjs.PropertyFormatter("blacklistAdd"),
new fjs.PropertyFormatter("blacklistRemove"),
new fjs.PropertyFormatter("blacklistGetSuccess"),
new fjs.PropertyFormatter("blacklistGetEmpty"),
new fjs.PropertyFormatter("blacklistViewEmpty"),
new fjs.PropertyFormatter("blacklistViewTip"),
new fjs.PropertyFormatter("clearVerify"),
new fjs.PropertyFormatter("clearReady"),
new fjs.PropertyFormatter("rolesEmpty"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("autocloseLeave"),
new fjs.PropertyFormatter("autocloseTimeout"),
new fjs.PropertyFormatter("autodeleteLeave"),
new fjs.PropertyFormatter("autodeleteTimeout"),
new fjs.PropertyFormatter("autocloseEnabled"),
new fjs.PropertyFormatter("autocloseDisabled"),
new fjs.PropertyFormatter("autodeleteEnabled"),
new fjs.PropertyFormatter("autodeleteDisabled"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("ticketMessageLimit"),
new fjs.PropertyFormatter("ticketMessageAutoclose"),
new fjs.PropertyFormatter("ticketMessageAutodelete"),
new fjs.PropertyFormatter("panelReady"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("topicSet"),
new fjs.PropertyFormatter("prioritySet"),
new fjs.PropertyFormatter("priorityGet"),
new fjs.PropertyFormatter("transfer"),
]),
new fjs.ObjectFormatter("modal",true,[
new fjs.PropertyFormatter("closePlaceholder"),
new fjs.PropertyFormatter("deletePlaceholder"),
new fjs.PropertyFormatter("reopenPlaceholder"),
new fjs.PropertyFormatter("claimPlaceholder"),
new fjs.PropertyFormatter("unclaimPlaceholder"),
new fjs.PropertyFormatter("pinPlaceholder"),
new fjs.PropertyFormatter("unpinPlaceholder"),
]),
new fjs.ObjectFormatter("logs",true,[
new fjs.PropertyFormatter("createLog"),
new fjs.PropertyFormatter("closeLog"),
new fjs.PropertyFormatter("closeDm"),
new fjs.PropertyFormatter("deleteLog"),
new fjs.PropertyFormatter("deleteDm"),
new fjs.PropertyFormatter("reopenLog"),
new fjs.PropertyFormatter("reopenDm"),
new fjs.PropertyFormatter("claimLog"),
new fjs.PropertyFormatter("claimDm"),
new fjs.PropertyFormatter("unclaimLog"),
new fjs.PropertyFormatter("unclaimDm"),
new fjs.PropertyFormatter("pinLog"),
new fjs.PropertyFormatter("pinDm"),
new fjs.PropertyFormatter("unpinLog"),
new fjs.PropertyFormatter("unpinDm"),
new fjs.PropertyFormatter("renameLog"),
new fjs.PropertyFormatter("renameDm"),
new fjs.PropertyFormatter("moveLog"),
new fjs.PropertyFormatter("moveDm"),
new fjs.PropertyFormatter("addLog"),
new fjs.PropertyFormatter("addDm"),
new fjs.PropertyFormatter("removeLog"),
new fjs.PropertyFormatter("removeDm"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("blacklistAddLog"),
new fjs.PropertyFormatter("blacklistRemoveLog"),
new fjs.PropertyFormatter("blacklistAddDm"),
new fjs.PropertyFormatter("blacklistRemoveDm"),
new fjs.PropertyFormatter("clearLog"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("transferLog"),
new fjs.PropertyFormatter("transferDm"),
new fjs.PropertyFormatter("prioritySetLog"),
new fjs.PropertyFormatter("prioritySetDm"),
new fjs.PropertyFormatter("roleUpdateLog"),
new fjs.PropertyFormatter("roleUpdateDm"),
]),
]),
new fjs.ObjectFormatter("transcripts",true,[
new fjs.ObjectFormatter("success",true,[
new fjs.PropertyFormatter("visit"),
new fjs.PropertyFormatter("ready"),
new fjs.PropertyFormatter("textFileDescription"),
new fjs.PropertyFormatter("htmlProgress"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("createdChannel"),
new fjs.PropertyFormatter("createdCreator"),
new fjs.PropertyFormatter("createdParticipant"),
new fjs.PropertyFormatter("createdActiveAdmin"),
new fjs.PropertyFormatter("createdEveryAdmin"),
new fjs.PropertyFormatter("createdOther"),
]),
new fjs.ObjectFormatter("errors",true,[
new fjs.PropertyFormatter("retry"),
new fjs.PropertyFormatter("continue"),
new fjs.PropertyFormatter("backup"),
new fjs.PropertyFormatter("error"),
new fjs.PropertyFormatter("title"),
]),
new fjs.ObjectFormatter("text",true,[
new fjs.PropertyFormatter("messagesTitle"),
new fjs.PropertyFormatter("embedTitle"),
new fjs.PropertyFormatter("fileTitle"),
new fjs.PropertyFormatter("fieldsTitle"),
new fjs.PropertyFormatter("reactionsTitle"),
new fjs.PropertyFormatter("statsTitle"),
new fjs.PropertyFormatter("emptyContent"),
new fjs.PropertyFormatter("noTitle"),
new fjs.PropertyFormatter("noDesc"),
]),
]),
new fjs.ObjectFormatter("errors",true,[
new fjs.ObjectFormatter("titles",true,[
new fjs.PropertyFormatter("internalError"),
new fjs.PropertyFormatter("optionMissing"),
new fjs.PropertyFormatter("optionInvalid"),
new fjs.PropertyFormatter("unknownCommand"),
new fjs.PropertyFormatter("noPermissions"),
new fjs.PropertyFormatter("unknownTicket"),
new fjs.PropertyFormatter("deprecatedTicket"),
new fjs.PropertyFormatter("unknownOption"),
new fjs.PropertyFormatter("unknownPanel"),
new fjs.PropertyFormatter("notInGuild"),
new fjs.PropertyFormatter("channelRename"),
new fjs.PropertyFormatter("busy"),
new fjs.PropertyFormatter("permissionError"),
]),
new fjs.ObjectFormatter("descriptions",true,[
new fjs.PropertyFormatter("askForInfo"),
new fjs.PropertyFormatter("askForInfoResolve"),
new fjs.PropertyFormatter("internalError"),
new fjs.PropertyFormatter("optionMissing"),
new fjs.PropertyFormatter("optionInvalid"),
new fjs.PropertyFormatter("optionInvalidChoose"),
new fjs.PropertyFormatter("unknownCommand"),
new fjs.PropertyFormatter("noPermissions"),
new fjs.PropertyFormatter("noPermissionsList"),
new fjs.PropertyFormatter("noPermissionsCooldown"),
new fjs.PropertyFormatter("noPermissionsBlacklist"),
new fjs.PropertyFormatter("noPermissionsLimitGlobal"),
new fjs.PropertyFormatter("noPermissionsLimitGlobalUser"),
new fjs.PropertyFormatter("noPermissionsLimitOption"),
new fjs.PropertyFormatter("noPermissionsLimitOptionUser"),
new fjs.PropertyFormatter("unknownTicket"),
new fjs.PropertyFormatter("deprecatedTicket"),
new fjs.PropertyFormatter("notInGuild"),
new fjs.PropertyFormatter("channelRename"),
new fjs.PropertyFormatter("channelRenameSource"),
new fjs.PropertyFormatter("busy"),
new fjs.PropertyFormatter("closeBeforeMessage"),
new fjs.PropertyFormatter("closeBeforeAdminMessage"),
new fjs.PropertyFormatter("unableToCreateTicket"),
]),
new fjs.ObjectFormatter("optionInvalidReasons",true,[
new fjs.PropertyFormatter("stringRegex"),
new fjs.PropertyFormatter("stringMinLength"),
new fjs.PropertyFormatter("stringMaxLength"),
new fjs.PropertyFormatter("numberInvalid"),
new fjs.PropertyFormatter("numberMin"),
new fjs.PropertyFormatter("numberMax"),
new fjs.PropertyFormatter("numberDecimal"),
new fjs.PropertyFormatter("numberNegative"),
new fjs.PropertyFormatter("numberPositive"),
new fjs.PropertyFormatter("numberZero"),
new fjs.PropertyFormatter("channelNotFound"),
new fjs.PropertyFormatter("userNotFound"),
new fjs.PropertyFormatter("roleNotFound"),
new fjs.PropertyFormatter("memberNotFound"),
new fjs.PropertyFormatter("mentionableNotFound"),
new fjs.PropertyFormatter("channelType"),
new fjs.PropertyFormatter("notInGuild"),
]),
new fjs.ObjectFormatter("permissions",true,[
new fjs.PropertyFormatter("developer"),
new fjs.PropertyFormatter("owner"),
new fjs.PropertyFormatter("admin"),
new fjs.PropertyFormatter("moderator"),
new fjs.PropertyFormatter("support"),
new fjs.PropertyFormatter("member"),
new fjs.PropertyFormatter("discord-administrator"),
]),
new fjs.ObjectFormatter("actionInvalid",true,[
new fjs.PropertyFormatter("close"),
new fjs.PropertyFormatter("reopen"),
new fjs.PropertyFormatter("claim"),
new fjs.PropertyFormatter("unclaim"),
new fjs.PropertyFormatter("pin"),
new fjs.PropertyFormatter("unpin"),
new fjs.PropertyFormatter("add"),
new fjs.PropertyFormatter("remove"),
]),
]),
new fjs.ObjectFormatter("params",true,[
new fjs.ObjectFormatter("uppercase",true,[
new fjs.PropertyFormatter("ticket"),
new fjs.PropertyFormatter("tickets"),
new fjs.PropertyFormatter("reason"),
new fjs.PropertyFormatter("creator"),
new fjs.PropertyFormatter("remaining"),
new fjs.PropertyFormatter("added"),
new fjs.PropertyFormatter("removed"),
new fjs.PropertyFormatter("filter"),
new fjs.PropertyFormatter("method"),
new fjs.PropertyFormatter("type"),
new fjs.PropertyFormatter("blacklisted"),
new fjs.PropertyFormatter("panel"),
new fjs.PropertyFormatter("command"),
new fjs.PropertyFormatter("system"),
new fjs.PropertyFormatter("true"),
new fjs.PropertyFormatter("false"),
new fjs.PropertyFormatter("syntax"),
new fjs.PropertyFormatter("originalName"),
new fjs.PropertyFormatter("newName"),
new fjs.PropertyFormatter("until"),
new fjs.PropertyFormatter("validOptions"),
new fjs.PropertyFormatter("validPanels"),
new fjs.PropertyFormatter("autoclose"),
new fjs.PropertyFormatter("autodelete"),
new fjs.PropertyFormatter("startupDate"),
new fjs.PropertyFormatter("version"),
new fjs.PropertyFormatter("name"),
new fjs.PropertyFormatter("role"),
new fjs.PropertyFormatter("status"),
new fjs.PropertyFormatter("claimed"),
new fjs.PropertyFormatter("pinned"),
new fjs.PropertyFormatter("creationDate"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("noone"),
new fjs.PropertyFormatter("open"),
new fjs.PropertyFormatter("closed"),
new fjs.PropertyFormatter("priority"),
new fjs.PropertyFormatter("participants"),
new fjs.PropertyFormatter("yes"),
new fjs.PropertyFormatter("no"),
new fjs.PropertyFormatter("option"),
new fjs.PropertyFormatter("topic"),
new fjs.PropertyFormatter("uptime"),
new fjs.PropertyFormatter("messages"),
new fjs.PropertyFormatter("embeds"),
new fjs.PropertyFormatter("files"),
new fjs.PropertyFormatter("components"),
new fjs.PropertyFormatter("cooldown"),
new fjs.PropertyFormatter("maxTickets"),
new fjs.PropertyFormatter("admins"),
new fjs.PropertyFormatter("roles"),
new fjs.PropertyFormatter("size"),
]),
new fjs.ObjectFormatter("lowercase",true,[
new fjs.PropertyFormatter("text"),
new fjs.PropertyFormatter("html"),
new fjs.PropertyFormatter("command"),
new fjs.PropertyFormatter("modal"),
new fjs.PropertyFormatter("button"),
new fjs.PropertyFormatter("dropdown"),
new fjs.PropertyFormatter("method"),
]),
]),
new fjs.ObjectFormatter("commands",true,[
new fjs.PropertyFormatter("reason"),
new fjs.PropertyFormatter("help"),
new fjs.PropertyFormatter("panel"),
new fjs.PropertyFormatter("panelId"),
new fjs.PropertyFormatter("panelAutoUpdate"),
new fjs.PropertyFormatter("ticket"),
new fjs.PropertyFormatter("ticketId"),
new fjs.PropertyFormatter("close"),
new fjs.PropertyFormatter("delete"),
new fjs.PropertyFormatter("deleteNoTranscript"),
new fjs.PropertyFormatter("reopen"),
new fjs.PropertyFormatter("claim"),
new fjs.PropertyFormatter("claimUser"),
new fjs.PropertyFormatter("unclaim"),
new fjs.PropertyFormatter("pin"),
new fjs.PropertyFormatter("unpin"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("move"),
new fjs.PropertyFormatter("moveId"),
new fjs.PropertyFormatter("rename"),
new fjs.PropertyFormatter("renameName"),
new fjs.PropertyFormatter("add"),
new fjs.PropertyFormatter("addUser"),
new fjs.PropertyFormatter("remove"),
new fjs.PropertyFormatter("removeUser"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("blacklist"),
new fjs.PropertyFormatter("blacklistView"),
new fjs.PropertyFormatter("blacklistAdd"),
new fjs.PropertyFormatter("blacklistRemove"),
new fjs.PropertyFormatter("blacklistGet"),
new fjs.PropertyFormatter("blacklistGetUser"),
new fjs.PropertyFormatter("stats"),
new fjs.PropertyFormatter("statsReset"),
new fjs.PropertyFormatter("statsGlobal"),
new fjs.PropertyFormatter("statsUser"),
new fjs.PropertyFormatter("statsUserUser"),
new fjs.PropertyFormatter("statsTicket"),
new fjs.PropertyFormatter("statsTicketTicket"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("clear"),
new fjs.PropertyFormatter("clearFilter"),
new fjs.ObjectFormatter("clearFilters",true,[
new fjs.PropertyFormatter("all"),
new fjs.PropertyFormatter("open"),
new fjs.PropertyFormatter("close"),
new fjs.PropertyFormatter("claim"),
new fjs.PropertyFormatter("unclaim"),
new fjs.PropertyFormatter("pin"),
new fjs.PropertyFormatter("unpin"),
new fjs.PropertyFormatter("autoclose"),
]),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("autoclose"),
new fjs.PropertyFormatter("autocloseDisable"),
new fjs.PropertyFormatter("autocloseEnable"),
new fjs.PropertyFormatter("autocloseEnableTime"),
new fjs.PropertyFormatter("autodelete"),
new fjs.PropertyFormatter("autodeleteDisable"),
new fjs.PropertyFormatter("autodeleteEnable"),
new fjs.PropertyFormatter("autodeleteEnableTime"),
new fjs.TextFormatter(""),
new fjs.PropertyFormatter("topic"),
new fjs.PropertyFormatter("topicSet"),
new fjs.PropertyFormatter("topicValue"),
new fjs.PropertyFormatter("topicList"),
new fjs.PropertyFormatter("priority"),
new fjs.PropertyFormatter("prioritySet"),
new fjs.PropertyFormatter("priorityValue"),
new fjs.PropertyFormatter("priorityGet"),
new fjs.PropertyFormatter("priorityList"),
new fjs.PropertyFormatter("transfer"),
new fjs.PropertyFormatter("transferUser"),
]),
new fjs.ObjectFormatter("helpMenu",true,[
new fjs.PropertyFormatter("help"),
new fjs.PropertyFormatter("ticket"),
new fjs.PropertyFormatter("close"),
new fjs.PropertyFormatter("delete"),
new fjs.PropertyFormatter("reopen"),
new fjs.PropertyFormatter("pin"),
new fjs.PropertyFormatter("unpin"),
new fjs.PropertyFormatter("move"),
new fjs.PropertyFormatter("rename"),
new fjs.PropertyFormatter("claim"),
new fjs.PropertyFormatter("unclaim"),
new fjs.PropertyFormatter("add"),
new fjs.PropertyFormatter("remove"),
new fjs.PropertyFormatter("panel"),
new fjs.PropertyFormatter("blacklistView"),
new fjs.PropertyFormatter("blacklistAdd"),
new fjs.PropertyFormatter("blacklistRemove"),
new fjs.PropertyFormatter("blacklistGet"),
new fjs.PropertyFormatter("statsGlobal"),
new fjs.PropertyFormatter("statsTicket"),
new fjs.PropertyFormatter("statsUser"),
new fjs.PropertyFormatter("statsReset"),
new fjs.PropertyFormatter("autocloseDisable"),
new fjs.PropertyFormatter("autocloseEnable"),
new fjs.PropertyFormatter("autodeleteDisable"),
new fjs.PropertyFormatter("autodeleteEnable"),
new fjs.ObjectFormatter("categories",true,[
new fjs.PropertyFormatter("general"),
new fjs.PropertyFormatter("basicTicket"),
new fjs.PropertyFormatter("advancedTicket"),
new fjs.PropertyFormatter("userTicket"),
new fjs.PropertyFormatter("admin"),
new fjs.PropertyFormatter("advanced"),
new fjs.PropertyFormatter("extra"),
])
]),
new fjs.ObjectFormatter("stats",true,[
new fjs.ObjectFormatter("scopes",true,[
new fjs.PropertyFormatter("global"),
new fjs.PropertyFormatter("system"),
new fjs.PropertyFormatter("user"),
new fjs.PropertyFormatter("ticket"),
new fjs.PropertyFormatter("participants"),
new fjs.PropertyFormatter("messages"),
]),
new fjs.ObjectFormatter("properties",true,[
new fjs.PropertyFormatter("ticketsCreated"),
new fjs.PropertyFormatter("ticketsClosed"),
new fjs.PropertyFormatter("ticketsDeleted"),
new fjs.PropertyFormatter("ticketsReopened"),
new fjs.PropertyFormatter("ticketsAutoclosed"),
new fjs.PropertyFormatter("ticketsClaimed"),
new fjs.PropertyFormatter("ticketsPinned"),
new fjs.PropertyFormatter("ticketsMoved"),
new fjs.PropertyFormatter("usersBlacklisted"),
new fjs.PropertyFormatter("transcriptsCreated"),
new fjs.PropertyFormatter("ticketsAutodeleted"),
new fjs.PropertyFormatter("ticketsTransferred"),
new fjs.PropertyFormatter("ticketVolume"),
new fjs.PropertyFormatter("averageTickets"),
new fjs.PropertyFormatter("currentTickets"),
new fjs.PropertyFormatter("age"),
new fjs.PropertyFormatter("responseTime"),
new fjs.PropertyFormatter("resolutionTime"),
new fjs.PropertyFormatter("createdOn"),
new fjs.PropertyFormatter("createdBy"),
new fjs.PropertyFormatter("closedOn"),
new fjs.PropertyFormatter("closedBy"),
new fjs.PropertyFormatter("claimedOn"),
new fjs.PropertyFormatter("claimedBy"),
new fjs.PropertyFormatter("pinnedOn"),
new fjs.PropertyFormatter("pinnedBy"),
new fjs.PropertyFormatter("deletedOn"),
new fjs.PropertyFormatter("deletedBy"),
]),
new fjs.ObjectFormatter("roles",true,[
new fjs.PropertyFormatter("developer"),
new fjs.PropertyFormatter("serverOwner"),
new fjs.PropertyFormatter("serverAdmin"),
new fjs.PropertyFormatter("moderator"),
new fjs.PropertyFormatter("support"),
new fjs.PropertyFormatter("member"),
])
]),
new fjs.ObjectFormatter("panel",true,[
new fjs.PropertyFormatter("selectTicket"),
new fjs.PropertyFormatter("selectRole"),
new fjs.PropertyFormatter("selectOption"),
]),
new fjs.ObjectFormatter("priorities",true,[
new fjs.PropertyFormatter("urgent"),
new fjs.PropertyFormatter("veryHigh"),
new fjs.PropertyFormatter("high"),
new fjs.PropertyFormatter("normal"),
new fjs.PropertyFormatter("low"),
new fjs.PropertyFormatter("veryLow"),
new fjs.PropertyFormatter("none"),
]),
])
for (const language of fs.readdirSync(".docs/languages/")){
if (!fs.existsSync("./languages/"+language)){
console.log("language:",language,"does not exist yet in the primary ./languages/ folder. Unable to merge!")
continue
}
console.log("merging "+language+"...")
const original = JSON.parse(fs.readFileSync("./languages/"+language).toString())
const newSentences = JSON.parse(fs.readFileSync(".docs/languages/"+language).toString())
for (const key of Object.keys(newSentences)){
if (key.startsWith("_")) continue
try{
const splitted = key.split(".")
let currentObject = original
splitted.forEach((property,index) => {
let shouldBeObject = (splitted.length-1 !== index)
if (shouldBeObject && typeof currentObject[property] == "object"){
currentObject = currentObject[property]
}else if (shouldBeObject && typeof currentObject[property] == "undefined"){
currentObject[property] = {}
currentObject = currentObject[property]
}else if (typeof currentObject[property] == "string" || typeof currentObject[property] == "undefined"){
currentObject[property] = newSentences[key]
}else{
console.log("Failed to merge key:",key,"in file:",language,"--> Invalid type:",typeof currentObject[property])
}
})
}catch(err){
console.log("Failed to merge key:",key,"in file:",language)
}
}
original["_TRANSLATION"]["lastedited"] = new Date().toLocaleDateString("nl-BE",{day:"2-digit",month:"2-digit",year:"numeric"})
original["_TRANSLATION"]["otversion"] = "v4.1.3"
const finalText = formatter.stringify(original)
fs.writeFileSync("./languages/"+language,finalText)
}
+13
View File
@@ -0,0 +1,13 @@
{
"$schema": "https://typedoc.org/schema.json",
"entryPoints": [
"../src/core/api/modules/",
"../src/core/api/defaults/",
"../src/core/api/openticket/",
"../src/core/api/main.ts",
"../src/core/startup/init.ts",
],
"entryPointStrategy": "expand",
"json": "./typedoc-result.json",
"basePath": "../"
}
+50
View File
@@ -0,0 +1,50 @@
# Pterodactyl Eggs
<img src="https://apis.dj-dj.be/cdn/openticket/logo.png" alt="Open Ticket Logo" width="500px">
[![discord](https://img.shields.io/badge/discord-support%20server-5865F2.svg?style=flat-square&logo=discord)](https://discord.com/invite/26vT9wt3n3)
[![version](https://img.shields.io/badge/version-4.1.3-brightgreen.svg?style=flat-square)](https://github.com/open-discord-bots/open-ticket/releases/tag/v4.1.3)
[![Sponsor DJj123dj](https://img.shields.io/badge/sponsor-DJj123dj-ea4aaa?style=flat-square&logo=githubsponsors)](https://github.com/sponsors/DJj123dj)
[![Open Ticket supports Pterodactyl Eggs!](https://img.shields.io/badge/pterodactyl-supported-10539F?style=flat-square&logo=pterodactyl)](.eggs/README.md)
Hi there! Open Ticket provides **official eggs** for the Pterodactyl & Pelican panels!<br>
There are different eggs for different versions of Open Ticket.
Please choose the one that fits your needs the most.
If you encounter any issues while installing these eggs, please head to our [**discord server**](https://discord.dj-dj.be) for further assistance!
### Requirements
It's recommended to provide at least `1GB` of **Memory/RAM** and `5GB` of **disk space** for Open Ticket to work correctly.
### Egg Variants
[**`openticket-egg-main.json` (Recommended)**](openticket-egg-main.json)
- This egg will use the `main` branch of Open Ticket.
[**`openticket-egg-v4.1.3.json`**](openticket-egg-v4.1.3.json)
- This egg will always use Open Ticket `v4.1.3`. Open Ticket updates will not have an effect on this egg.
[**`openticket-egg-v4.1.2.json`**](openticket-egg-v4.1.2.json)
- This egg will always use Open Ticket `v4.1.2`. Open Ticket updates will not have an effect on this egg.
[**`openticket-egg-v4.1.1.json`**](openticket-egg-v4.1.1.json)
- This egg will always use Open Ticket `v4.1.1`. Open Ticket updates will not have an effect on this egg.
[**`openticket-egg-v4.1.0.json`**](openticket-egg-v4.1.0.json)
- This egg will always use Open Ticket `v4.1.0`. Open Ticket updates will not have an effect on this egg.
[**`openticket-egg-v4.0.7.json`**](openticket-egg-v4.0.7.json)
- This egg will always use Open Ticket `v4.0.7`. Open Ticket updates will not have an effect on this egg.
[**`openticket-egg-v3.5.9.json`**](openticket-egg-v3.5.9.json)
- This egg will always use Open Ticket `v3.5.9`. Open Ticket updates will not have an effect on this egg.
[**`openticket-egg-dev.json` (Not Recommended)**](openticket-egg-dev.json)
- This egg will use the `dev` branch of Open Ticket.
---
<img src="https://apis.dj-dj.be/cdn/openticket/logo.png" alt="Open Ticket Logo" width="170px">
**Pterodactyl Eggs**<br>
[Changelog](https://otgithub.dj-dj.be/releases) - [Documentation](https://otdocs.dj-dj.be) - [Website](https://openticket.dj-dj.be) - [Support Server](https://discord.dj-dj.be) - [License](./LICENSE.md)<br>
© 2021 - 2026 - [DJdj Development](https://www.dj-dj.be) - [Terms](https://www.dj-dj.be/terms) - [Privacy Policy](https://www.dj-dj.be/privacy) - [Support Us](https://github.com/sponsors/DJj123dj)
+62
View File
@@ -0,0 +1,62 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2025-03-16T18:10:21+01:00",
"name": "Open Ticket (Experimental)",
"author": "support@dj-dj.be",
"description": "This is the experimental Pterodactyl egg for Open Ticket, the most advanced & customisable discord ticket bot that you will ever find! DO NOT USE IN PRODUCTION!",
"features": null,
"docker_images": {
"ghcr.io\/parkervcp\/yolks:nodejs_20": "ghcr.io\/parkervcp\/yolks:nodejs_20"
},
"file_denylist": [],
"startup": "if [[ ! -z ${NODE_PACKAGES} ]]; then npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then npm install; fi; node \"\/home\/container\/index.js\" ${NODE_FLAGS};",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"STARTUP INFO:\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Open Ticket Installation Script (dev)\r\n# Inspired by: Node.js Installation Script\r\n# \u00a9 DJdj Development\r\n\r\necho -e \"[OT INSTALLER] installing dependencies. please wait...\"\r\napt update\r\napt install -y git curl\r\n\r\necho -e \"[OT INSTALLER] updating npm. please wait...\"\r\nnpm install npm@latest --location=global\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nBRANCH=\"dev\"\r\n\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"[OT INSTALLER] \/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \"[OT INSTALLER] .git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"[OT INSTALLER] loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"[OT INSTALLER] files found with no git config\"\r\n echo -e \"[OT INSTALLER] closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"https:\/\/github.com\/open-discord-bots\/open-ticket.git\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"[OT INSTALLER] \/mnt\/server is empty.\"\r\n echo -e \"[OT INSTALLER] cloning files into repo.\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"[OT INSTALLER] cloning default branch\"\r\n git clone https:\/\/github.com\/open-discord-bots\/open-ticket.git .\r\n else\r\n echo -e \"[OT INSTALLER] cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} https:\/\/github.com\/open-discord-bots\/open-ticket.git .\r\n fi\r\nfi\r\n\r\necho -e \"[OT INSTALLER] installing Open Ticket node.js packages.\"\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --omit=dev\r\nfi\r\n\r\necho -e \"[OT INSTALLER] installing custom node.js packages.\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\necho -e \"[OT INSTALLER] install complete!\"\r\nexit 0",
"container": "node:latest",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Additional Npm Packages",
"description": "Specify additional npm packages used by Open Ticket plugins. Use spaces to separate.",
"env_variable": "NODE_PACKAGES",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "Startup Flags",
"description": "Start the bot with additional Open Ticket flags. Separate using spaces.\r\nA full reference list can be found in the documentation.",
"env_variable": "NODE_FLAGS",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "Uninstall Npm Packages",
"description": "A list of npm packages to uninstall. Separate by spaces.",
"env_variable": "UNNODE_PACKAGES",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
}
]
}
+62
View File
@@ -0,0 +1,62 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2025-03-16T18:10:20+01:00",
"name": "Open Ticket (Latest)",
"author": "support@dj-dj.be",
"description": "This is the official Pterodactyl egg for Open Ticket, the most advanced & customisable discord ticket bot that you will ever find! You can customise up to 300+ variables! This includes Html Transcripts, Advanced Plugins, Custom Embeds, Questions\/Modals, Stats & more!",
"features": null,
"docker_images": {
"ghcr.io\/parkervcp\/yolks:nodejs_20": "ghcr.io\/parkervcp\/yolks:nodejs_20"
},
"file_denylist": [],
"startup": "if [[ ! -z ${NODE_PACKAGES} ]]; then npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then npm install; fi; node \"\/home\/container\/index.js\" ${NODE_FLAGS};",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"STARTUP INFO:\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Open Ticket Installation Script (main)\r\n# Inspired by: Node.js Installation Script\r\n# \u00a9 DJdj Development\r\n\r\necho -e \"[OT INSTALLER] installing dependencies. please wait...\"\r\napt update\r\napt install -y git curl\r\n\r\necho -e \"[OT INSTALLER] updating npm. please wait...\"\r\nnpm install npm@latest --location=global\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nBRANCH=\"main\"\r\n\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"[OT INSTALLER] \/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \"[OT INSTALLER] .git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"[OT INSTALLER] loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"[OT INSTALLER] files found with no git config\"\r\n echo -e \"[OT INSTALLER] closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"https:\/\/github.com\/open-discord-bots\/open-ticket.git\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"[OT INSTALLER] \/mnt\/server is empty.\"\r\n echo -e \"[OT INSTALLER] cloning files into repo.\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"[OT INSTALLER] cloning default branch\"\r\n git clone https:\/\/github.com\/open-discord-bots\/open-ticket.git .\r\n else\r\n echo -e \"[OT INSTALLER] cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} https:\/\/github.com\/open-discord-bots\/open-ticket.git .\r\n fi\r\nfi\r\n\r\necho -e \"[OT INSTALLER] installing Open Ticket node.js packages.\"\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --omit=dev\r\nfi\r\n\r\necho -e \"[OT INSTALLER] installing custom node.js packages.\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\necho -e \"[OT INSTALLER] install complete!\"\r\nexit 0",
"container": "node:latest",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Additional Npm Packages",
"description": "Specify additional npm packages used by Open Ticket plugins. Use spaces to separate.",
"env_variable": "NODE_PACKAGES",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "Startup Flags",
"description": "Start the bot with additional Open Ticket flags. Separate using spaces.\r\nA full reference list can be found in the documentation.",
"env_variable": "NODE_FLAGS",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "Uninstall Npm Packages",
"description": "A list of npm packages to uninstall. Separate by spaces.",
"env_variable": "UNNODE_PACKAGES",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
}
]
}
+62
View File
@@ -0,0 +1,62 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2025-03-16T18:10:19+01:00",
"name": "Open Ticket (v3.5.9)",
"author": "support@dj-dj.be",
"description": "This is the official Pterodactyl egg for Open Ticket v3.5.9, the most advanced & customisable discord ticket bot that you will ever find! You can customise up to 300+ variables! This includes Html Transcripts, Advanced Plugins, Custom Embeds, Questions\/Modals, Stats & more!",
"features": null,
"docker_images": {
"ghcr.io\/parkervcp\/yolks:nodejs_20": "ghcr.io\/parkervcp\/yolks:nodejs_20"
},
"file_denylist": [],
"startup": "if [[ ! -z ${NODE_PACKAGES} ]]; then npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then npm install; fi; node \"\/home\/container\/index.js\" ${NODE_FLAGS};",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"STARTUP INFO:\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Open Ticket Installation Script (v3.5.9)\r\n# Inspired by: Node.js Installation Script\r\n# \u00a9 DJdj Development\r\n\r\necho -e \"[OT INSTALLER] installing dependencies. please wait...\"\r\napt update\r\napt install -y git curl\r\n\r\necho -e \"[OT INSTALLER] updating npm. please wait...\"\r\nnpm install npm@latest --location=global\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nBRANCH=\"v3.5.9\"\r\n\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"[OT INSTALLER] \/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \"[OT INSTALLER] .git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"[OT INSTALLER] loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"[OT INSTALLER] files found with no git config\"\r\n echo -e \"[OT INSTALLER] closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"https:\/\/github.com\/open-discord-bots\/open-ticket.git\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"[OT INSTALLER] \/mnt\/server is empty.\"\r\n echo -e \"[OT INSTALLER] cloning files into repo.\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"[OT INSTALLER] cloning default branch\"\r\n git clone https:\/\/github.com\/open-discord-bots\/open-ticket.git .\r\n else\r\n echo -e \"[OT INSTALLER] cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} https:\/\/github.com\/open-discord-bots\/open-ticket.git .\r\n fi\r\nfi\r\n\r\necho -e \"[OT INSTALLER] installing Open Ticket node.js packages.\"\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --omit=dev\r\nfi\r\n\r\necho -e \"[OT INSTALLER] installing custom node.js packages.\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\necho -e \"[OT INSTALLER] install complete!\"\r\nexit 0",
"container": "node:latest",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Additional Npm Packages",
"description": "Specify additional npm packages used by Open Ticket plugins. Use spaces to separate.",
"env_variable": "NODE_PACKAGES",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "Startup Flags",
"description": "Start the bot with additional Open Ticket flags. Separate using spaces.\r\nA full reference list can be found in the documentation.",
"env_variable": "NODE_FLAGS",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "Uninstall Npm Packages",
"description": "A list of npm packages to uninstall. Separate by spaces.",
"env_variable": "UNNODE_PACKAGES",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
}
]
}
+62
View File
@@ -0,0 +1,62 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2025-03-16T18:10:18+01:00",
"name": "Open Ticket (v4.0.7)",
"author": "support@dj-dj.be",
"description": "This is the official Pterodactyl egg for Open Ticket v4.0.7, the most advanced & customisable discord ticket bot that you will ever find! You can customise up to 300+ variables! This includes Html Transcripts, Advanced Plugins, Custom Embeds, Questions\/Modals, Stats & more!",
"features": null,
"docker_images": {
"ghcr.io\/parkervcp\/yolks:nodejs_20": "ghcr.io\/parkervcp\/yolks:nodejs_20"
},
"file_denylist": [],
"startup": "if [[ ! -z ${NODE_PACKAGES} ]]; then npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then npm install; fi; node \"\/home\/container\/index.js\" ${NODE_FLAGS};",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"STARTUP INFO:\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Open Ticket Installation Script (v4.0.7)\r\n# Inspired by: Node.js Installation Script\r\n# \u00a9 DJdj Development\r\n\r\necho -e \"[OT INSTALLER] installing dependencies. please wait...\"\r\napt update\r\napt install -y git curl\r\n\r\necho -e \"[OT INSTALLER] updating npm. please wait...\"\r\nnpm install npm@latest --location=global\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nBRANCH=\"v4.0.7\"\r\n\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"[OT INSTALLER] \/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \"[OT INSTALLER] .git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"[OT INSTALLER] loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"[OT INSTALLER] files found with no git config\"\r\n echo -e \"[OT INSTALLER] closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"https:\/\/github.com\/open-discord-bots\/open-ticket.git\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"[OT INSTALLER] \/mnt\/server is empty.\"\r\n echo -e \"[OT INSTALLER] cloning files into repo.\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"[OT INSTALLER] cloning default branch\"\r\n git clone https:\/\/github.com\/open-discord-bots\/open-ticket.git .\r\n else\r\n echo -e \"[OT INSTALLER] cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} https:\/\/github.com\/open-discord-bots\/open-ticket.git .\r\n fi\r\nfi\r\n\r\necho -e \"[OT INSTALLER] installing Open Ticket node.js packages.\"\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --omit=dev\r\nfi\r\n\r\necho -e \"[OT INSTALLER] installing custom node.js packages.\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\necho -e \"[OT INSTALLER] install complete!\"\r\nexit 0",
"container": "node:latest",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Additional Npm Packages",
"description": "Specify additional npm packages used by Open Ticket plugins. Use spaces to separate.",
"env_variable": "NODE_PACKAGES",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "Startup Flags",
"description": "Start the bot with additional Open Ticket flags. Separate using spaces.\r\nA full reference list can be found in the documentation.",
"env_variable": "NODE_FLAGS",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "Uninstall Npm Packages",
"description": "A list of npm packages to uninstall. Separate by spaces.",
"env_variable": "UNNODE_PACKAGES",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
}
]
}
+62
View File
@@ -0,0 +1,62 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2025-03-16T18:10:18+01:00",
"name": "Open Ticket (v4.1.0)",
"author": "support@dj-dj.be",
"description": "This is the official Pterodactyl egg for Open Ticket v4.1.0, the most advanced & customisable discord ticket bot that you will ever find! You can customise up to 300+ variables! This includes Html Transcripts, Advanced Plugins, Custom Embeds, Questions\/Modals, Stats & more!",
"features": null,
"docker_images": {
"ghcr.io\/parkervcp\/yolks:nodejs_20": "ghcr.io\/parkervcp\/yolks:nodejs_20"
},
"file_denylist": [],
"startup": "if [[ ! -z ${NODE_PACKAGES} ]]; then npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then npm install; fi; node \"\/home\/container\/index.js\" ${NODE_FLAGS};",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"STARTUP INFO:\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Open Ticket Installation Script (v4.1.0)\r\n# Inspired by: Node.js Installation Script\r\n# \u00a9 DJdj Development\r\n\r\necho -e \"[OT INSTALLER] installing dependencies. please wait...\"\r\napt update\r\napt install -y git curl\r\n\r\necho -e \"[OT INSTALLER] updating npm. please wait...\"\r\nnpm install npm@latest --location=global\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nBRANCH=\"v4.1.0\"\r\n\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"[OT INSTALLER] \/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \"[OT INSTALLER] .git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"[OT INSTALLER] loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"[OT INSTALLER] files found with no git config\"\r\n echo -e \"[OT INSTALLER] closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"https:\/\/github.com\/open-discord-bots\/open-ticket.git\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"[OT INSTALLER] \/mnt\/server is empty.\"\r\n echo -e \"[OT INSTALLER] cloning files into repo.\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"[OT INSTALLER] cloning default branch\"\r\n git clone https:\/\/github.com\/open-discord-bots\/open-ticket.git .\r\n else\r\n echo -e \"[OT INSTALLER] cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} https:\/\/github.com\/open-discord-bots\/open-ticket.git .\r\n fi\r\nfi\r\n\r\necho -e \"[OT INSTALLER] installing Open Ticket node.js packages.\"\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --omit=dev\r\nfi\r\n\r\necho -e \"[OT INSTALLER] installing custom node.js packages.\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\necho -e \"[OT INSTALLER] install complete!\"\r\nexit 0",
"container": "node:latest",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Additional Npm Packages",
"description": "Specify additional npm packages used by Open Ticket plugins. Use spaces to separate.",
"env_variable": "NODE_PACKAGES",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "Startup Flags",
"description": "Start the bot with additional Open Ticket flags. Separate using spaces.\r\nA full reference list can be found in the documentation.",
"env_variable": "NODE_FLAGS",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "Uninstall Npm Packages",
"description": "A list of npm packages to uninstall. Separate by spaces.",
"env_variable": "UNNODE_PACKAGES",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
}
]
}
+62
View File
@@ -0,0 +1,62 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2025-03-16T18:10:18+01:00",
"name": "Open Ticket (v4.1.1)",
"author": "support@dj-dj.be",
"description": "This is the official Pterodactyl egg for Open Ticket v4.1.1, the most advanced & customisable discord ticket bot that you will ever find! You can customise up to 300+ variables! This includes Html Transcripts, Advanced Plugins, Custom Embeds, Questions\/Modals, Stats & more!",
"features": null,
"docker_images": {
"ghcr.io\/parkervcp\/yolks:nodejs_20": "ghcr.io\/parkervcp\/yolks:nodejs_20"
},
"file_denylist": [],
"startup": "if [[ ! -z ${NODE_PACKAGES} ]]; then npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then npm install; fi; node \"\/home\/container\/index.js\" ${NODE_FLAGS};",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"STARTUP INFO:\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Open Ticket Installation Script (v4.1.1)\r\n# Inspired by: Node.js Installation Script\r\n# \u00a9 DJdj Development\r\n\r\necho -e \"[OT INSTALLER] installing dependencies. please wait...\"\r\napt update\r\napt install -y git curl\r\n\r\necho -e \"[OT INSTALLER] updating npm. please wait...\"\r\nnpm install npm@latest --location=global\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nBRANCH=\"v4.1.1\"\r\n\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"[OT INSTALLER] \/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \"[OT INSTALLER] .git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"[OT INSTALLER] loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"[OT INSTALLER] files found with no git config\"\r\n echo -e \"[OT INSTALLER] closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"https:\/\/github.com\/open-discord-bots\/open-ticket.git\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"[OT INSTALLER] \/mnt\/server is empty.\"\r\n echo -e \"[OT INSTALLER] cloning files into repo.\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"[OT INSTALLER] cloning default branch\"\r\n git clone https:\/\/github.com\/open-discord-bots\/open-ticket.git .\r\n else\r\n echo -e \"[OT INSTALLER] cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} https:\/\/github.com\/open-discord-bots\/open-ticket.git .\r\n fi\r\nfi\r\n\r\necho -e \"[OT INSTALLER] installing Open Ticket node.js packages.\"\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --omit=dev\r\nfi\r\n\r\necho -e \"[OT INSTALLER] installing custom node.js packages.\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\necho -e \"[OT INSTALLER] install complete!\"\r\nexit 0",
"container": "node:latest",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Additional Npm Packages",
"description": "Specify additional npm packages used by Open Ticket plugins. Use spaces to separate.",
"env_variable": "NODE_PACKAGES",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "Startup Flags",
"description": "Start the bot with additional Open Ticket flags. Separate using spaces.\r\nA full reference list can be found in the documentation.",
"env_variable": "NODE_FLAGS",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "Uninstall Npm Packages",
"description": "A list of npm packages to uninstall. Separate by spaces.",
"env_variable": "UNNODE_PACKAGES",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
}
]
}
+62
View File
@@ -0,0 +1,62 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2025-03-16T18:10:18+01:00",
"name": "Open Ticket (v4.1.2)",
"author": "support@dj-dj.be",
"description": "This is the official Pterodactyl egg for Open Ticket v4.1.2, the most advanced & customisable discord ticket bot that you will ever find! You can customise up to 300+ variables! This includes Html Transcripts, Advanced Plugins, Custom Embeds, Questions\/Modals, Stats & more!",
"features": null,
"docker_images": {
"ghcr.io\/parkervcp\/yolks:nodejs_20": "ghcr.io\/parkervcp\/yolks:nodejs_20"
},
"file_denylist": [],
"startup": "if [[ ! -z ${NODE_PACKAGES} ]]; then npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then npm install; fi; node \"\/home\/container\/index.js\" ${NODE_FLAGS};",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"STARTUP INFO:\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Open Ticket Installation Script (v4.1.2)\r\n# Inspired by: Node.js Installation Script\r\n# \u00a9 DJdj Development\r\n\r\necho -e \"[OT INSTALLER] installing dependencies. please wait...\"\r\napt update\r\napt install -y git curl\r\n\r\necho -e \"[OT INSTALLER] updating npm. please wait...\"\r\nnpm install npm@latest --location=global\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nBRANCH=\"v4.1.2\"\r\n\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"[OT INSTALLER] \/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \"[OT INSTALLER] .git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"[OT INSTALLER] loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"[OT INSTALLER] files found with no git config\"\r\n echo -e \"[OT INSTALLER] closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"https:\/\/github.com\/open-discord-bots\/open-ticket.git\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"[OT INSTALLER] \/mnt\/server is empty.\"\r\n echo -e \"[OT INSTALLER] cloning files into repo.\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"[OT INSTALLER] cloning default branch\"\r\n git clone https:\/\/github.com\/open-discord-bots\/open-ticket.git .\r\n else\r\n echo -e \"[OT INSTALLER] cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} https:\/\/github.com\/open-discord-bots\/open-ticket.git .\r\n fi\r\nfi\r\n\r\necho -e \"[OT INSTALLER] installing Open Ticket node.js packages.\"\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --omit=dev\r\nfi\r\n\r\necho -e \"[OT INSTALLER] installing custom node.js packages.\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\necho -e \"[OT INSTALLER] install complete!\"\r\nexit 0",
"container": "node:latest",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Additional Npm Packages",
"description": "Specify additional npm packages used by Open Ticket plugins. Use spaces to separate.",
"env_variable": "NODE_PACKAGES",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "Startup Flags",
"description": "Start the bot with additional Open Ticket flags. Separate using spaces.\r\nA full reference list can be found in the documentation.",
"env_variable": "NODE_FLAGS",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "Uninstall Npm Packages",
"description": "A list of npm packages to uninstall. Separate by spaces.",
"env_variable": "UNNODE_PACKAGES",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
}
]
}
+62
View File
@@ -0,0 +1,62 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2025-03-16T18:10:18+01:00",
"name": "Open Ticket (v4.1.3)",
"author": "support@dj-dj.be",
"description": "This is the official Pterodactyl egg for Open Ticket v4.1.3, the most advanced & customisable discord ticket bot that you will ever find! You can customise up to 300+ variables! This includes Html Transcripts, Advanced Plugins, Custom Embeds, Questions\/Modals, Stats & more!",
"features": null,
"docker_images": {
"ghcr.io\/parkervcp\/yolks:nodejs_20": "ghcr.io\/parkervcp\/yolks:nodejs_20"
},
"file_denylist": [],
"startup": "if [[ ! -z ${NODE_PACKAGES} ]]; then npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then npm install; fi; node \"\/home\/container\/index.js\" ${NODE_FLAGS};",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"STARTUP INFO:\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Open Ticket Installation Script (v4.1.3)\r\n# Inspired by: Node.js Installation Script\r\n# \u00a9 DJdj Development\r\n\r\necho -e \"[OT INSTALLER] installing dependencies. please wait...\"\r\napt update\r\napt install -y git curl\r\n\r\necho -e \"[OT INSTALLER] updating npm. please wait...\"\r\nnpm install npm@latest --location=global\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nBRANCH=\"v4.1.3\"\r\n\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"[OT INSTALLER] \/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \"[OT INSTALLER] .git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"[OT INSTALLER] loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"[OT INSTALLER] files found with no git config\"\r\n echo -e \"[OT INSTALLER] closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"https:\/\/github.com\/open-discord-bots\/open-ticket.git\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"[OT INSTALLER] \/mnt\/server is empty.\"\r\n echo -e \"[OT INSTALLER] cloning files into repo.\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"[OT INSTALLER] cloning default branch\"\r\n git clone https:\/\/github.com\/open-discord-bots\/open-ticket.git .\r\n else\r\n echo -e \"[OT INSTALLER] cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} https:\/\/github.com\/open-discord-bots\/open-ticket.git .\r\n fi\r\nfi\r\n\r\necho -e \"[OT INSTALLER] installing Open Ticket node.js packages.\"\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --omit=dev\r\nfi\r\n\r\necho -e \"[OT INSTALLER] installing custom node.js packages.\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\necho -e \"[OT INSTALLER] install complete!\"\r\nexit 0",
"container": "node:latest",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Additional Npm Packages",
"description": "Specify additional npm packages used by Open Ticket plugins. Use spaces to separate.",
"env_variable": "NODE_PACKAGES",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "Startup Flags",
"description": "Start the bot with additional Open Ticket flags. Separate using spaces.\r\nA full reference list can be found in the documentation.",
"env_variable": "NODE_FLAGS",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "Uninstall Npm Packages",
"description": "A list of npm packages to uninstall. Separate by spaces.",
"env_variable": "UNNODE_PACKAGES",
"default_value": "",
"user_viewable": false,
"user_editable": true,
"rules": "string|nullable",
"field_type": "text"
}
]
}
+128
View File
@@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
support@dj-dj.be.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
+39
View File
@@ -0,0 +1,39 @@
# 🎥 Content Creators
Hi there! We're searching for content creators to create tutorials & setup guides for Open Ticket.
You can get many great rewards from helping us!
You can choose which type of tutorial you want to make. You can create a quick setup, full setup, plugin tutorial or something else!
You are not required to talk in the video, but make sure it has some kind of subtitles instead.
### 📄 Requirements
- 📌 Video length of at least 2 minutes.
- 📌 Provide a link to the Open Ticket repository in the description of the video.
- 📌 Please use the latest version of Open Ticket available at the time of making the video.
- 📌 **(Optional)** Recommended language is English.
- 📌 **(Optional)** Recommended platform is YouTube!
- 📌 **(Optional)** Speech in the video *(AI is allowed)*
### 🎁 Rewards
We won't give out any compensation in money, but we will give you some advantages!
- ✅ Advertisement of tutorial in the [README.md](../README.md)!
- ✅ Advertisement of channel in our [discord server](https://discord.dj-dj.be)!
- ✅ `Content Creator` role in our [discord server](https://discord.dj-dj.be)!
- ✅ Advertisement of tutorial & channel in documentation!
- ✅ Lot's of of views generated from GitHub traffic!
- ✅ A completely free 24/7 hosted Open Ticket bot!
- ✅ We will advertise the video to all our socials!
### 💤 Outdated Content
When a tutorial or setup guide is outdated or no longer applicable,
we will remove it from the `README.md` & documentation.
Your channel will still stay in the list of contributors, so don't worry about that!
You will be noticed at least a month before removal.
This way you can take time to create an updated tutorial if you want.
### 💬 Contact Us
If you've read all these guidelines, requirements & rewards,
you can create a ticket in our [discord server](https://discord.dj-dj.be) to start working on it!
We will try to help you as fast as possible!
+92
View File
@@ -0,0 +1,92 @@
# Contributing Guidelines
<img src="https://apis.dj-dj.be/cdn/openticket/logo.png" alt="Open Ticket Logo" width="500px">
[![discord](https://img.shields.io/badge/discord-support%20server-5865F2.svg?style=flat-square&logo=discord)](https://discord.com/invite/26vT9wt3n3) [![version](https://img.shields.io/badge/version-4.1.3-brightgreen.svg?style=flat-square)](https://github.com/open-discord-bots/open-ticket/releases/tag/v4.1.3) [![Sponsor DJj123dj](https://img.shields.io/badge/sponsor-DJj123dj-ea4aaa?style=flat-square&logo=githubsponsors)](https://github.com/sponsors/DJj123dj)
These are the Contributing Guidelines of Open Ticket!<br>
Here you can find everything you need to know about contributing to Open Ticket.<br>
This includes new features, translations & bug fixes.
### 💬 Translations
#### Step 1: View & Check
1. Check the [`./languages/`](./languages/) folder for existing translations.
2. When it doesn't exist yet, visit **[step 2](#step-2-translation)**.
3. When it does exist, check if it is outdated, incorrect or incomplete.
4. If you match one of these requirements, you can also visit **[step 2](#step-2-translating)**.
#### Step 2: Translation
1. If your language doesn't exist yet, copy the [`english.json`](./../languages/english.json) file and rename it to your language.
2. **(❌ Not Recommended)** You are allowed to use `Google Translate` or `DeepL`, but only when you say it in the pull request and enable the `"automated"` boolean.
3. Only translate existing values in the json file. Don't add or remove any values from the file.
4. You're **NOT REQUIRED** to translate everything! If you only want to translate a part of it, it's okay!
5. If you are unable to translate something, leave it in `English`.
#### Step 3: Metadata
Metadata can be found in the `_TRANSLATION` variable.
|Value |Notes |
|--------------|-------------------------------------------------------------------------------------------------|
|`otversion` |The Open Ticket version of this translation. **❌ DON'T EDIT!** |
|`translators` |The discord usernames from the translators. Add your name to the list when you've contributed. |
|`lastedited` |The last edited date in the `DD/MM/YYYY` format. |
|`language` |The full name of the language with capital letter. |
|`automated` |Enable this boolean when this translation has been made using ChatGPT, Google Translate, ... |
> #### ✅ You are also allowed to add your username to the [`README.md`](./../README.md) translator list!
#### Step 4: Uploading
1. When adding a new language, please mention @DJj123dj. He will add the code required for the language to work.
2. There are currently 3 ways of uploading translations:
- Create a pull request to the [__`dev` branch!__](https://github.com/open-discord-bots/open-ticket/tree/dev)
- Create a ticket in our [discord server](https://discord.dj-dj.be)!
- Send a DM to @DJj123dj on discord!
3. Now you'll need to wait until the next Open Ticket version for it to be added.
#### Step 5: Rewards
Translators get some rewards for translating Open Ticket!
- ✅ Credits in the [`README.md`](./../README.md) translator list!
- ✅ Credits in the changelog!
- ✅ Credits in the documentation!
- ✅ Credits in the translation JSON file!
- ✅ A special role in our [Discord server](https://discord.dj-dj.be)!
### 🧩 Plugins
#### Step 1: Creating Plugins
The documentation for creating plugins will be ready soon!<br>
In the meantime, you can already look at existing plugins or try it at your own!
#### Step 2: Uploading Plugins
Create a pull request in the [**`open-discord-plugins`**](https://odplugins.dj-dj.be/) repository or contact DJj123dj in our [Discord server](https://discord.dj-dj.be)!
### 📦 Features
Feature requests are required to be made in one of the following ways:
- ✅ In our [Discord server](https://discord.dj-dj.be)
- ✅ Create an issue on GitHub
- ✅ Message DJj123dj in DM on Discord
- ✅ Email to support@dj-dj.be
> **We won't accept pull requests for features. Only for bugs, small fixes, translation and plugins!**
### 🕷️ Bug Fixes
You are able to report bugs in one of the following ways:
- ✅ In our [Discord server](https://discord.dj-dj.be)
- ✅ Create an issue on GitHub
- ✅ Message DJj123dj in DM on Discord
- ✅ Email to support@dj-dj.be
📌 **If you want, you can also create a pull request to fix the bug yourself :)**
#### 🔴 Security Vulnerabilities
If you've found a bug which could affect the **SECURITY OF THE BOT** or may be potentially dangerous to the users of the bot,
you are **REQUIRED to send the bug privately via one of the following methods:**
- 🔴 Message DJj123dj in DM on Discord
- 🔴 Email to support@dj-dj.be
> ### Please try to always include the `otdebug.txt` file!
---
<img src="https://apis.dj-dj.be/cdn/openticket/logo.png" alt="Open Ticket Logo" width="170px">
**Contributing Guidelines**<br>
[Changelog](https://otgithub.dj-dj.be/releases) - [Documentation](https://otdocs.dj-dj.be) - [Website](https://openticket.dj-dj.be) - [Support Server](https://discord.dj-dj.be) - [License](./LICENSE.md)<br>
© 2021 - 2026 - [DJdj Development](https://www.dj-dj.be) - [Terms](https://www.dj-dj.be/terms) - [Privacy Policy](https://www.dj-dj.be/privacy) - [Support Us](https://github.com/sponsors/DJj123dj)
+1
View File
@@ -0,0 +1 @@
github: DJj123dj
+30
View File
@@ -0,0 +1,30 @@
---
name: Bug Report
about: Report bugs to help us improve Open Ticket!
title: "Your Bug Name"
---
### Bug Description:
A clear and concise description of what the bug is.
### Steps To Reproduce:
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
> Leave empty when you are unable to reproduce the bug!
### Expected Behaviour:
A clear and concise description of what you expected to happen.
### Screenshots:
If applicable, add screenshots to help explain your problem.
### Files:
Please include the `otdebug.txt` file in your report! With this file, we can take a deep-dive in to the error that happend.
> This file doesn't contain any credentials or sensitive information!
### Additional Notes:
Add any other context about the problem here.
+27
View File
@@ -0,0 +1,27 @@
---
name: Documentation
about: Do you know anything to be improved in the Open Ticket documentation?
title: "Documentation Improvement Name"
labels: "Documentation"
---
### Related Docs/Systems:
Choose related systems/docs for this improvement/change:
- [ ] Guides
- [ ] Developer Guides
- [ ] API Reference
- [ ] Blog
- [ ] System (Docusaurus & Javascript)
- [ ] Assets (images)
- [ ] Other
### Improvement Description:
A clear and concise description of the improvement.
> Please explain it as detailed as possible!
### Screenshots:
If applicable, add screenshots to help explain your request.
### Additional Notes:
Add any other context about the request here.
+27
View File
@@ -0,0 +1,27 @@
---
name: Feature Request
about: Do you have a great idea for Open Ticket? Let us know using this issue!
title: "Your Feature Name"
labels: "Concept"
---
### Feature Description:
A clear and concise description of what the feature is.
### Affected Systems
Systems which are affected, improved or modified:
- (example) Slash command registration...
- (example) API embed builders...
- Scroll down to '....'
- See error
> Leave empty when you don't know which parts this feature affects!
### Advantages & Use Cases:
What advantages & use cases do you think this feature would result in?
### Screenshots:
If applicable, add screenshots to help explain your feature request.
### Additional Notes:
Add any other context about the request here.
@@ -0,0 +1,20 @@
---
name: HTML Transcripts
about: Found a bug related to the HTML Transcripts? Or do you have a feature request?
title: "Your Bug/Improvement Name"
labels: "HTML Transcripts"
---
### Feature/Bug Description:
A clear and concise description of what the feature/bug report is.
### Screenshots:
If applicable, add screenshots to help explain your feature request or bug report.
### Files:
Please include the `otdebug.txt` file in your report! With this file, we can take a deep-dive in to the error that happend.
> #### Include this file for bug reports!
> This file doesn't contain any credentials or sensitive information!
### Additional Notes:
Add any other context about the problem here.
+30
View File
@@ -0,0 +1,30 @@
---
name: New Language
about: Do you want to add a new language to Open Ticket?
title: "Language Name"
labels: "New Translation"
---
### Language Name
The name of the new language.
### Language Description/Details:
A clear and concise description of the translation/language.
### Checklist
Before the language is fully implemented, the following checklist must be met:
- [ ] **📌 Created a language file in the `./languages/` directory.**
- [ ] **📌 The translation file uses the `<lowercase-language-name>.json` format.**
- [ ] **📌 The `"_TRANSLATION"` metadata in the language file is correctly configured.**
- [ ] The `"otversion"` is correct.
- [ ] The `"translators"` list is up to date has the discord/github usernames from all translators.
- [ ] The `"lastedited"` variable is the last edited date in the following format: `DD/MM/YYYY`.
- [ ] The `"language"` variable is the name of the language in English.
- [ ] `"automated"` is enabled when `Google Translate`, `DeepL`, `ChatGPT` or any other kind of translation tools were used.
- [ ] **📌 The language has been added to the `README.md` list.**
- [ ] **📌 The language counters have been updated in the `README.md`.**
- [ ] **📌 The language has been added to the list in the `ODLanguageManagerIds_Default` interface in (`./src/core/api/defaults/language.ts`).**
- [ ] **📌 The language has been added to the list in `./src/data/languageLoader.ts`.**
### Additional Notes:
Add any other context about the problem here.
+20
View File
@@ -0,0 +1,20 @@
---
name: Plugin Request
about: Do you have an idea for an Open Ticket plugin?
title: "Your Plugin Name"
labels: "Plugin"
---
### Plugin Description:
A clear and concise description of what the plugin is & does.
> Please explain the plugin as detailed as possible!
### Advantages & Use Cases:
What advantages & use cases do you think this plugin would result in?
### Screenshots:
If applicable, add screenshots to help explain your plugin request.
### Additional Notes:
Add any other context about the request here.
+28
View File
@@ -0,0 +1,28 @@
---
name: Question
about: Do you have a question about Open Ticket?
title: "My Question"
labels: "Question"
---
### Question:
A clear and concise description of the question.
> Please explain the question as detailed as possible!
### Screenshots:
If applicable, add screenshots to help explain your plugin request.
### Checklist:
Before creating this question, the following checklist must be met:
- [ ] **📌 I've read the docs (https://otdocs.dj-dj.be) and I didn't found the solution.**
- [ ] **📌 I've asked other people & they didn't know the solution.**
- [ ] **📌 The question is not related to the following subjects: (If so, ask it in our discord server: https://discord.dj-dj.be)**
- Configuring the bot
- Hosting the bot (24/7)
- Updating the bot
- [ ] **📌 I know that this issue is publicly visible for everyone and I haven't shared any private info.**
### Additional Notes:
Add any other context about the request here.
@@ -0,0 +1,24 @@
---
name: Updated Language
about: Do you want to update/improve an existing language in Open Ticket?
title: "Language Name"
labels: "Updated Translation"
---
### Language Name
The name of the existing language.
### Language Description/Details:
A clear and concise description of the translation/language changes.
### Checklist
Before the language is updated, the following checklist must be met:
- [ ] **📌 The `"_TRANSLATION"` metadata in the language file is correctly configured.**
- [ ] The `"otversion"` is correct.
- [ ] The `"translators"` list is up to date has the discord/github usernames from all translators.
- [ ] The `"lastedited"` variable is the last edited date in the following format: `DD/MM/YYYY`.
- [ ] The `"language"` variable is the name of the language in English.
- [ ] `"automated"` is enabled when `Google Translate`, `DeepL`, `ChatGPT` or any other kind of translation tools were used.
### Additional Notes:
Add any other context about the problem here.
+55
View File
@@ -0,0 +1,55 @@
# Security Policy
<img src="https://apis.dj-dj.be/cdn/openticket/logo.png" alt="Open Ticket Logo" width="500px">
[![discord](https://img.shields.io/badge/discord-support%20server-5865F2.svg?style=flat-square&logo=discord)](https://discord.com/invite/26vT9wt3n3) [![version](https://img.shields.io/badge/version-4.0.4-brightgreen.svg?style=flat-square)](https://github.com/open-discord-bots/open-ticket/releases/tag/v4.0.4) [![Sponsor DJj123dj](https://img.shields.io/badge/sponsor-DJj123dj-ea4aaa?style=flat-square&logo=githubsponsors)](https://github.com/sponsors/DJj123dj)
This is the Security Policy of Open Ticket!<br>
Here you can find a list of all supported & deprecated versions of the bot.<br>
You will also find some guidelines about how to report vulnerabilities, bugs & errors.
### 📦 Supported Versions
Below, you can find a list with the status of every Open Ticket version.<br>
This list will be updated on every release.
- 🟦 In Development **(ideas, bugs, support, html transcripts)**
- ✅ Supported **(features, bugs, support, docs, html transcripts)**
- 🚧 Maintenance **(support, docs, html transcripts)**
- 🟧 Deprecated **(docs only)**
- ❌ Fully Deprecated
| Version | Supported | Notes |
|------------|-----------|---------------------------------------------------------------|
| 4.2.0 | 🟦 | In Development |
| 4.1.x | 🟦 | In Development |
| 4.1.3 | ✅ | |
| 4.1.2 | ✅ | |
| 4.1.1 | ✅ | Supported Until April 2026 (LTS) |
| 4.1.0 | 🚧 | |
| 4.0.7 | 🚧 | |
| 4.0.6 | 🚧 | |
| 4.0.5 | 🟧 | Deprecated |
| 4.0.4 | 🟧 | Deprecated |
| < 4.0.4 | 🟧 | Deprecated, Transcripts v2.0, Documentation Only |
| < 4.0.0 | ❌ | |
### 🕷️ Reporting Vulnerabilities
You can report vulnerabilities, errors & bugs using one of the following methods:
- Create an issue on GitHub!
- Create a ticket in our [discord server](https://discord.dj-dj.be)!
- Message @DJj123dj in DM on discord!
- Send an E-mail to [support@dj-dj.be](mailto:support@dj-dj.be)!
When you report a problem, please **give a small description** about what & how it happend.<br>
Try to explain the issue in as much detail as possible.
If possible, try to provide screenshots!
### Please upload the `otdebug.txt` file together with your bug report!
---
<img src="https://apis.dj-dj.be/cdn/openticket/logo.png" alt="Open Ticket Logo" width="170px">
**Security Policy**<br>
[Changelog](https://otgithub.dj-dj.be/releases) - [Documentation](https://otdocs.dj-dj.be) - [Website](https://openticket.dj-dj.be) - [Support Server](https://discord.dj-dj.be) - [License](./LICENSE.md)<br>
© 2021 - 2026 - [DJdj Development](https://www.dj-dj.be) - [Terms](https://www.dj-dj.be/terms) - [Privacy Policy](https://www.dj-dj.be/privacy) - [Support Us](https://github.com/sponsors/DJj123dj)
+20 -10
View File
@@ -1,13 +1,23 @@
node_modules/
package-lock.json
devConfig.json
devConfig1.json
devConfig2.json
devConfig3.json
devConfig4.json
devConfig5.json
.vscode/
devconfig/
devdatabase/
plugins/*
!plugins/example-plugin/
database/openticket.sqlite
dist/
otdebug.txt
.DS_Store
openticketdebug.txt
developerChangelog.md
storage/dynamicDB/
storage/.DS_Store
*/.DS_Store
*/*/.DS_Store
*/*/*/.DS_Store
**/.DS_Store
.docs/*
!.docs/createDocs.js
!.docs/mergeTranslations.js
!.docs/typedoc-config.json
+42 -3
View File
@@ -1,7 +1,17 @@
<!-- omit from toc -->
# Open Ticket (License)
© 2021 - 2026 - DJj123dj & Contributors
#### Table Of Contents
- [General License](#general-license)
- [Additional Terms for Open Ticket](#additional-terms-for-open-ticket)
### General License
```
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Copyright (C) 2026 DJdj Development. <https://www.dj-dj.be/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -70,7 +80,7 @@ modification follow.
TERMS AND CONDITIONS
0. Definitions.
1. Definitions.
"This License" refers to version 3 of the GNU General Public License.
@@ -671,4 +681,33 @@ into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.
<https://www.gnu.org/licenses/why-not-lgpl.html>.
```
### Additional Terms for Open Ticket
#### Terminology:
1. **“Software”**
Refers to the Open Ticket source code, documentation, and any associated files distributed under this license, including any modifications or derivative works thereof.
1. **“Public Discord Bot**
A Discord bot that is made publicly available for use by multiple, unrelated Discord servers or users, where the bot’s functionality is provided as a service rather than for private or personal use.
1. **“Monetized Service”**
Refers to any service or deployment that generates direct or indirect revenue through the use of the Software. This includes, but is not limited to, subscriptions, premium features, paid hosting, advertisements.
1. **“For-Profit Discord Server”**
Means a Discord server that generates income, revenue, or other material benefits, whether through memberships, donations, or other monetization strategies.
1. **“Private Use”**
Refers to using the Software on a limited number of Discord servers controlled or operated by a single individual or organization, not made available as a public service to multiple unrelated users.
#### Additional Terms:
The following additional terms apply to the use of this software:
1. This software may not be used as (or part of) a public Discord bot that is monetized (e.g., generating revenue through subscriptions, donations, or other forms of payment) without the prior written permission of the original author.
2. This software may not be used as (or part of) a public Discord bot on multiple Discord servers without attribution to the original author.
3. You are allowed to use this bot in a Discord server that makes money or is for-profit, provided that the income is not generated directly from the ticket bot or its functionality.
These additional terms are an extension to the GNU GPL v3 and must be followed alongside the original license terms. In case of any conflict between these additional terms and the GNU GPL v3, the additional terms shall take precedence.
+242 -66
View File
@@ -1,87 +1,263 @@
## We need translators!
If you know a language that isn't already in open ticket and you can write json,
then is this the job for you!
<p align="center">
<img src="https://apis.dj-dj.be/cdn/openticket/logo.png" alt="Open Ticket" width="650px"><br>
<span align="center"><b>The most advanced self-hosted ticket bot for Discord</b></span><br>
<sub align="center">Related Projects:</sub><br>
<a href="https://odplugins.dj-dj.be"><img src="https://apis.dj-dj.be/cdn/opendiscord/logo.png" alt="Open Discord" height="55px"></a><br><br>
<a href="https://discord.com/invite/26vT9wt3n3"><img alt="Discord Invite Link" src="https://img.shields.io/badge/discord-support%20server-5865F2.svg?style=flat-square&logo=discord"></img></a>
<a href="https://github.com/open-discord-bots/open-ticket/releases/tag/v4.1.3"><img alt="Open Ticket Version" src="https://img.shields.io/badge/version-4.1.3-brightgreen.svg?style=flat-square"></img></a>
<a href="https://otdocs.dj-dj.be"><img alt="Open Ticket Documentation" src="https://img.shields.io/badge/discord.js-v14-CB3837.svg?style=flat-square&logo=npm"></img></a>
<a href="https://github.com/open-discord-bots/open-ticket/blob/main/LICENSE"><img alt="Open Ticket License" src="https://img.shields.io/badge/license-GPL%203.0-important.svg?style=flat-square"></img></a>
<a href="https://otdocs.dj-dj.be"><img alt="Open Ticket Stars" src="https://img.shields.io/github/stars/djj123dj/open-ticket?color=yellow&label=stars&logo=github&style=flat-square"></img></a>
<br>
<a href="https://github.com/sponsors/DJj123dj"><img alt="Sponsor DJj123dj" src="https://img.shields.io/badge/sponsor-DJj123dj-ea4aaa?style=flat-square&logo=githubsponsors"></img></a>
<a href="https://hub.docker.com/repository/docker/djj123dj/open-ticket"><img alt="Open Ticket supports Docker!" src="https://img.shields.io/badge/docker-supported-2496ED?style=flat-square&logo=docker"></img></a>
<a href=".eggs/README.md"><img alt="Open Ticket supports Pterodactyl Eggs!" src="https://img.shields.io/badge/pterodactyl-supported-10539F?style=flat-square&logo=pterodactyl"></img></a>
</p>
make a ticket in our server to start!
<p align="center">
Open Ticket is the most <b>advanced and customizable</b> Discord ticket bot available. With <b>350+ configurable settings</b>, you have full control over every aspect of your ticket system!
From <code>HTML transcripts</code> and <code>Advanced Plugins</code> to <code>Claiming & Pinning</code>, <code>Questions & Modals</code>, <code>Detailed Statistics</code>, and much more.<br><br>
The bot is fully translated into <b>36+ languages</b> and has been battle-tested in large Discord servers.<br>
Need help or want to get involved? Feel free to join our <a href="https://discord.dj-dj.be"><b>Discord server</b></a>.
</p>
*if you translate, you will come in the credits*
<h3 align="center"><b>⭐️ Support Open Ticket’s growth by starring this repo! ⭐️</b></h3>
<p align="center"><sup>❤️ Love Open Ticket? <a href="https://github.com/sponsors/DJj123dj">Sponsorships</a> help fuel our HTML transcript servers and future features! ❤️</sup></p>
# open-ticket
[![discord](https://img.shields.io/badge/discord-join%20our%20server-5865F2.svg?style=flat-square&logo=discord)](https://discord.com/invite/26vT9wt3n3) [![version](https://img.shields.io/badge/version-2.4.0%20stable-brightgreen.svg?style=flat-square)](https://github.com/DJj123dj/open-ticket/releases/tag/v2.4.0) [![npm](https://img.shields.io/badge/npm-external%20libraries%20needed-CB3837.svg?style=flat-square&logo=npm)](#packages) [![license](https://img.shields.io/badge/license-GPL%203.0-important.svg?style=flat-square)](https://github.com/DJj123dj/open-ticket/blob/main/LICENSE)
---
> **[-> Navigate to (⏱️ Quick Setup)](#️-quick-start-using-cli)**
> **[-> Navigate to (📚 Documentation)](https://otdocs.dj-dj.be)**
> **[-> Navigate to (📞 Support Server)](https://discord.dj-dj.be)**
This is an open-source discord ticket bot, you can configure it and it comes with cool features like transcripts & custom options!
### 📌 Features
- **⏳ Quick Setup** - Using the interactive Quick Setup CLI, you can **configure Open Ticket in less than 5min!**
- **🦇 Pterodactyl Support** - Open Ticket works perfect on Pterodactyl based panels. [(Download official eggs)](.eggs/README.md)
- **💩 No Credits** - Your bot won't contain any form of bloat or credits. It's all yours!
- **🔒 Private & Secure** - It has been battletested by thousands of servers and **respects security & privacy.**
- **📈 Scalable** - Made to handle huge servers and has already been **tested in servers with 100k members.**
- **📄 HTML Transcripts** - The **built-in HTML Transcripts Service** provides beautiful & easy-to-use transcripts.
- **✅ Ticket Status** - Close, reopen, delete, claim, pin, rename or move tickets in your server.
- **🇬🇧 Translation** - Every message has been translated in more than **36 languages** by our community.
- **🎨 Customisation** - More than **200+ settings** are related to customisation & advanced features.
- **🖥️ Interactions** - The bot has full support for buttons, dropdowns, slash/text commands & modals.
- **∞ Unlimited Possibilities** - Create an infinite amount of tickets, questions & panels.
- **📝 Advanced Plugins** - Create advanced plugins or use [**pre-made plugins**](#-plugins) by our community.
- **👥 Participants** - Add or remove participants & transfer ownership from one user to another.
- **📊 Detailed Statistics** - With more than **50+ statistics** for tickets, users & the server.
- **🚫 Blacklist** - Blacklist users to prevent them from creating new tickets.
- **🚨 Priorities** - Assign different **priority levels** to tickets to mark them as important.
- **❓ Modal Questions** - Give users the ability to **answer questions** in a modal before their ticket is created.
- **✨ Commands** - Manage all your tickets with more than 28+ commands.
- **🤖 Automation** - Automate ticket handling with **autoclose, autodelete** & slow mode.
- **😎 Additional Features** - For some weird reason, the bot also supports Reaction Role & URL Buttons.
<img src="logo.png" alt="Open Ticket logo" style="height: 200px; width:200px;"/>
#### And even more using [pre-made community plugins](#-plugins)!
- **💬 Reviews** - Create & manage a support review system.
- **📢 Feedback** - Collect feedback & create forms for users to answer.
- **⏰ Reminders** - Create & manage customisable reminders.
- **🏷️ Tags** - Create tags & answer questions automatically using keywords.
- **📝 Forms** - Create advanced forms and automatically ask for repetitive questions.
- **🔄 Channel Display** - Create a voice channel with realtime statistics from the ticket system.
- **💾 SQLite Database** - Use an `SQLite` database for increased performance.
- **🎉 Custom Embeds** - Create your own embeds and send them using a command.
- **🎨 Customisation** - Yep, you heard it right. Even more customisation!
- **😁 And so much more...**
[![wiki](https://img.shields.io/badge/documentation-click%20here-blue.svg?style=flat-square)](https://www.github.com/DJj123dj/open-ticket/wiki)
### ⏱️ Quick Start (Using Interactive CLI Tool)
> 1. Download the latest version of Open Ticket on [Github](https://github.com/open-discord-bots/open-ticket).
> 2. Make sure Node.js & Npm are installed using `node -v` (minimum `v20`).
> 3. Install any required dependencies using `npm install`.
> 4. Start the **Quick Setup CLI** using `npm run setup`.
> 5. Click on `> ⏱️ Quick Setup` and follow the instructions.
> 6. Start the bot using `npm start` or `node index.js`
> - If required, the bot will give a report of errors that must be solved.
> - Follow the instructions and restart the bot.
> 7. Enjoy using Open Ticket!
>
> #### 🚦 Navigation
> **[-> Navigate to (📚 Documentation)](https://otdocs.dj-dj.be)**
> **[-> Navigate to (📞 Support Server)](https://discord.dj-dj.be)**
> **[-> Navigate to (🧩 Download Plugins)](https://odplugins.dj-dj.be)**
>
> #### 🖥️ Recommended Hosting
> - **A VPS (Virtual Private Server)** - Extra customisation & more stability. Recommended for most servers.
> - **Any Pterodactyl-Based Panel** - Easy installation & configuration.
### Thanks to these people:
- DJ-Lite: for doing the administration
- Sanke: for translation & new ideas
- Everyone that reported a bug
#### And our translators!
- ExothDE: for translation
- 1x1: for translation
- R0JO: for translation
- t0miiis for translation
### ❤️ Sponsors
Huge thanks to our sponsors for making this project possible. Your support means everything to us.
<table>
<tr>
<td><img src="https://github.com/guillee3.png" alt="Profile Picture" width="100px"></td>
<td><img src="https://github.com/yeeetSK.png" alt="Profile Picture" width="100px"></td>
<td><img src="https://github.com/jacobhumston.png" alt="Profile Picture" width="100px"></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/guillee3"><b>guillee3</b></a></td>
<td align="center"><a href="https://github.com/yeeetSK"><b>yeeetSK</b></a></td>
<td align="center"><a href="https://github.com/jacobhumston"><b>jacobhumston</b></a></td>
</tr>
</table>
## features
- discord interaction buttons
- slash & text commands
- close, delete & re-open tickets
- translation in 8 different languages
- dynamic database system
- transcripts
- add/remove users from a ticket
- custom colors & name for embeds
- customise your ticket
- create url buttons for websites
- create reaction roles
- build with discord.js v14
- configure everything per ticket
- remove credits if you want :(
- unlimited tickets spread over multiple messages
**Past Sponsors:**<br>
<a href="https://github.com/sponsors/DJj123dj">
<img src="https://github.com/SpyEye2.png" alt="SpyEye" width="40px">
<img src="https://github.com/mods-hd.png" alt="Mods HD" width="40px">
<img src="https://github.com/DOSEV5.png" alt="DOSEV5" width="40px">
<img src="https://github.com/BENZORICH.png" alt="BENZORICH" width="40px">
</a>
*comming soon:*
- dashboard
- view transcripts in dashboard
- share transcripts
- close with reason
- more translation
## 📸 Preview
<img alt="An example of a panel." src="https://apis.dj-dj.be/cdn/openticket/preview-v4/panel-examples.png">
<img alt="An example of a ticket message." src="https://apis.dj-dj.be/cdn/openticket/preview-v4/ticket-example.png">
<img alt="Examples of built-in commands." src="https://apis.dj-dj.be/cdn/openticket/preview-v4/command-examples.png">
## installation
**You need `node.js 16` to run this project!**
## 🛠️ Contributors
### 🖥️ Team & Contributors
A list of amazing people who have contributed or provided supported for **Open Ticket** and **Open Discord**.
<table>
<tr>
<td align="center"><img src="https://github.com/DJj123dj.png" alt="Profile Picture" width="80px"></td>
<td align="center"><img src="https://github.com/guillee3.png" alt="Profile Picture" width="80px"></td>
<td align="center"><img src="https://github.com/smetsliam.png" alt="Profile Picture" width="80px"></td>
<td align="center"><img src="https://github.com/FrankVissers.png" alt="Profile Picture" width="80px"></td>
<td align="center"><img src="https://github.com/Sank34.png" alt="Profile Picture" width="80px"></td>
<td align="center"><img src="https://github.com/SKaranjaN.png" alt="Profile Picture" width="80px"></td>
</tr>
<tr>
<th><a href="https://github.com/DJj123dj">💻🧩💬 DJj123dj</a></th>
<th><a href="https://github.com/guillee3">🧩💬 Guillee3</a></th>
<th><a href="https://github.com/smetsliam">💬 smetsliam</a></th>
<th><a href="https://github.com/FrankVissers">💬 Frank Vissers</a></th>
<th><a href="https://github.com/Sank34">💬 Sanke</a></th>
<th><a href="https://github.com/SKaranjaN">🧩 SKaranjaN</a></th>
</tr>
</table>
### packages
- chalk => version `latest`
- discord.js => version `latest`
- express => version `latest`
- node-localstorage => version `latest`
- axios => version `latest`
### 💬 Translators
With the amazing support of our translators, we've been able to translate Open Ticket in more than **36 languages**!
#### Categories:
- **🟢 Available**
- **🤖 Partially Made Using AI**
- **🟠 Incomplete**
- **🔴 Unavailable/Outdated**
You can install all of them by running `npm install`
|🔍 |Languages (36) |Maintainer (Github/Discord) |
|----|---------------------|--------------------------------|
|🟢 |🇬🇧 English |djj123dj |
|🟢 |🇳🇱 Dutch |djj123dj |
|🟢 |🇩🇪 German |benzorich |
|🟢 |🇫🇷 French |guillee.3 |
|🟢 |🇪🇸 Spanish |redactado & josuens |
|🟢 |🇵🇹 Portuguese |quiradon |
|🟢 |🇮🇹 Italian |fraden1mvp. & imperatorix_17 |
|🟢 |🇸🇪 Swedish |NoOneNook |
|🟢 |🇳🇴 Norwegian |NoOneNook |
|🟢 |🇹🇭 Thai |modshd |
|🟢 |🇮🇳 Hindi |challenger_nova |
|🟢 |🇭🇺 Hungarian |kornel0706 |
|🟢 |🇮🇩 Indonesian |erxg |
|🟢 |🇱🇹 Lithuanian |tsgindrius |
|🟢 |🇺🇦 Ukrainian |anderskiy |
|🟢 |🇨🇿 Czech |spyeye_ |
|🟢 |🇷🇴 Romanian |sankedev |
|🟢 |🇩🇰 Danish |the_gamer |
|🟢 |🇹🇷 Turkish |palestinian |
|🟢 |🇦🇪 Arabic |palestinian |
|🟢 |🇵🇱 Polish |danoglez |
|🟢 |🇮🇷 Persian |dysashop & zhavis |
|🟢 |🇧🇩 Bengali |HanumeshGupta |
|🟢 |❓ Catalan |guillee3 |
|🤖 |🇪🇪 Estonian |iamnotmega |
|🤖 |🇫🇮 Finnish |iamnotmega |
|🤖 |🇯🇵 Japanese |HanumeshGupta |
|🤖 |🇬🇷 Greek |HanumeshGupta |
|🤖 |🇸🇮 Slovenian |HanumeshGupta |
|🤖 |🇰🇷 Korean |HanumeshGupta |
|🤖 |🇮🇳 Tamil |HanumeshGupta |
|🤖 |🇨🇳 Simplified Chinese |HanumeshGupta |
|🤖 |❓ Kurdish |HanumeshGupta |
|🤖 |🇷🇺 Russian |NoOneNook |
|🤖 |🇱🇻 Latvian |NoOneNook |
|🤖 |🇻🇳 Vietnamese |ngocdiep2006 |
|🔴 |🇨🇳 Traditional Chinese|[⭐ Contribute!](.github/CONTRIBUTING.md)|
<!--[⭐ Contribute!](.github/CONTRIBUTING.md) -->
## running
you can run `node index.js` but i would recommend you to use `npm start`
## ⭐️ Star History
If you enjoy using Open ticket, **consider starring** this repository.
This will help us grow and reach even more people!
if there are any errors, you can open an **issue on github** or **contact me in our discord server**.
<a href="https://star-history.com/#open-discord-bots/open-ticket&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=open-discord-bots/open-ticket&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=open-discord-bots/open-ticket&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=open-discord-bots/open-ticket&type=Date" />
</picture>
</a>
### config
Our config documentation is moved to another file:
[click here to view](https://www.github.com/DJj123dj/open-ticket/wiki/config-v2.4.0)
## 🧩 Plugins
**Download all plugins from our [Official Plugin Repository](https://github.com/open-discord-bots/plugins)!**<br>
> #### ⭐ Featured Plugins (Top 5 Most Used)
> **[`ot-sqlite-database`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-sqlite-database/),
> [`ot-reviews`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-reviews/),
> [`ot-feedback`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-feedback/),
> [`ot-tags`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-tags/),
> [`ot-restrictions`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-restrictions/)**
### intents & permissions
In the discord developer portal in the "bot" panel you will find 3 switches under the title "Gateaway Intents". The following switches should always be turned on
- `SERVER MEMBERS INTENT`
- `MESSAGE CONTENT INTENT`
#### Categories:
- **📄 Example** - These plugins serve as an example or starting template.
- **📢 Command** - These plugins add new commands to the bot.
- **⚙️ Utility** - These plugins help with utility systems. You might not notice them as a ticket user/admin directly.
- **🎨 Customisation** - These plugins add even more customisation to the bot.
- **💼 Management** - These plugins add features that help you manage your server or ticket system.
- **🤖 Client** - These plugins add features affecting the Discord Client or bot itself.
- Please Create a new category when your plugin doesn't fit in one of the available categories.
To work the best, the bot needs `ADMINISTRATOR` permissions.
You can also configure your own permissions
### 📦 Official *(made by DJdj Development)*
|Name |Category |Description |
|----------------------------------------------------------------------|----------------------------|-------------------------|
|[`example-plugin`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/example-plugin/) |📄 Example |This is just an example plugin for people that want to create their own plugin. |
|[`example-command`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/example-command/) |📄 Example |Sample custom command using the Open Discord system. |
|[`ot-jump-to-top`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-jump-to-top/) |📢 Command |Add a simple command to jump to the top of the ticket. |
|[`ot-kill-switch`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-kill-switch/) |📢 Command |Temporarily disable the ticket system using a kill switch. |
|[`ot-hosting-status`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-hosting-status/) |📢 Command |A simple command to send hosting status updates to a channel. |
|[`ot-shutdown`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-shutdown/) |📢 Command |A simple command to turn off the bot from a slash command (server & bot owner only). |
|[`ot-sqlite-database`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-sqlite-database/) |⚙️ Utility |With this plugin, the database will be an SQLite file. It's a must-have for large servers! |
|[`ot-no-slash-clear`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-no-slash-clear/) |⚙️ Utility |Disable the automatic removal of slash commands that aren't used by Open Ticket. |
|[`ot-migrate-v3`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-migrate-v3/) |⚙️ Utility |Use this plugin to migrate all tickets from Open Ticket v3 to v4. |
|[`ot-ticket-message-extras`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-ticket-message-extras/) |🎨 Customisation |A plugin which adds a few little features to the ticket message. |
|[`ot-rename-keep-prefix`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-rename-keep-prefix/) |🎨 Customisation |Simple plugin to keep the channel prefix when using the /rename command. |
|[`ot-customise-buttons`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-customise-buttons/) |🎨 Customisation |Customise almost all built-in buttons. This includes the claim, reopen, close & delete buttons. |
|[`ot-ephemeral-messages`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-ephemeral-messages/) |🎨 Customisation |Customise for every messages if it needs to be ephemeral or not. |
|[`ot-footers`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-footers/) |🎨 Customisation |A simple plugin to add footers in all Open Ticket embeds. |
|[`ot-alt-detector`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-alt-detector/) |💼 Management |Use the discord-alt-detector npm package by DJdj Development in your ticket bot. |
|[`ot-embeds`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-embeds/) |💼 Management |Create custom premade embeds in the config or use the command to create one from scratch. |
|[`ot-move-actions`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-move-actions/) |💼 Management |Automatically unclaim/unpin a ticket when it's moved using `/move`. |
|[`ot-reviews`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-reviews/) |💼 Management |Review system for Open Ticket! It is very customisable and has lots of features. |
|[`ot-tags`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-tags/) |💼 Management |Use tags to quickly reply with a pre-existing text. |
|[`ot-restrictions`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-restrictions/) |💼 Management |Restrict which roles can open a specific ticket option. |
|[`ot-better-status`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-better-status/) |🤖 Client |An advanced status plugin to rotate between states. It also allows for the use of variables. |
|[`ot-channel-display`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-channel-display/) |🤖 Client |A plugin to show different variables in a voice channel in your server. |
|[`ot-vanity`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-vanity/) |🤖 Client |A plugin to detect the vanity status of members in the server and give them exclusive privilleges. |
## information
### ✅ Verified *(made by community)*
|Name |Author |Category |Description |
|---------------------------------------------------------------------|----------------------------|----------------------------|-------------------------|
|[`ot-config-reload`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-config-reload/) |guillee.3 |⚙️ Utility |This plugin adds a new command that allows reloading the Open Ticket config files without the need for a restart. |
|[`ot-feedback`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-feedback/) |an_developer |💼 Management |A plugin to gather feedback of your support service. |
|[`ot-assign-role`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-assign-role/) |rapid.fast |💼 Management |This plugin assigns a predefined role to a user upon creating a ticket. |
|[`ot-moderation`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-moderation/) |NotMukundOP |💼 Management |A simple moderation plugin for Open Discord with ban, kick & warnings. |
|[`ot-template-system`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-template-system/) |DanoGlez |💼 Management |Predefined template system for sending quick messages. |
|[`ot-volume-warning`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-volume-warning/) |guillee.3 |💼 Management |Alerts ticket creators when too many tickets are open, indicating possible response delays. |
|[`ot-reminders`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-reminders/) |guillee.3 |💼 Management |Set reminders that will be sent to a channel every specified time. |
|[`ot-ticket-forms`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-ticket-forms/) |guillee.3 |💼 Management |An advanced forms plugin for Open Ticket. |
|[`ot-followups`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-followups/) |guillee.3 |💼 Management |Send additional follow-up messages to a ticket. |
|[`ot-twitch-notifier`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-twitch-notifier/) |guillee.3 |💼 Management |Get notified when your favorite Twitch streamers go live. |
|[`ot-translate-cmds`](https://github.com/open-discord-bots/plugins/tree/main/open-ticket/ot-translate-cmds/) |guillee.3 |🤖 Client |Translate all built-in command names, descriptions & options. |
_v2.4.0 stable_
---
<img src="https://apis.dj-dj.be/cdn/openticket/logo.png" alt="Open Ticket Logo" width="170px">
changelog: [click here](https://www.github.com/DJj123dj/open-ticket/wiki/Changelog)
**README.md**<br>
[Changelog](https://otgithub.dj-dj.be/releases) - [Documentation](https://otdocs.dj-dj.be) - [Website](https://openticket.dj-dj.be) - [Support Server](https://discord.dj-dj.be) - [License](./LICENSE.md)<br>
© 2022 - DJdj Development | [website](https://www.dj-dj.be) | [discord](https://discord.dj-dj.be) | [terms of service](https://www.dj-dj.be/terms)
© 2021 - 2026 - [DJdj Development](https://www.dj-dj.be) - [Terms](https://www.dj-dj.be/terms) - [Privacy Policy](https://www.dj-dj.be/privacy) - [Support Us](https://github.com/sponsors/DJj123dj)
-78
View File
@@ -1,78 +0,0 @@
const discord = require('discord.js')
const bot = require('../index')
const client = bot.client
const config = bot.config
const log = bot.errorLog.log
const l = bot.language
const permsChecker = require("../core/utils/permisssionChecker")
const APIEvents = require("../core/api/modules/events")
module.exports = () => {
client.on("messageCreate",msg => {
if (!msg.content.startsWith(config.prefix+"add")) return
var user = msg.mentions.users.first()
if (!user) return msg.channel.send({embeds:[bot.errorLog.invalidArgsMessage(l.errors.missingArgsDescription+" `<user>`:\n`"+config.prefix+"add <user>`")]})
if (!msg.guild) return
if (!permsChecker.command(msg.author.id,msg.guild.id)){
permsChecker.sendUserNoPerms(msg.author)
return
}
msg.channel.messages.fetchPinned().then(msglist => {
var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return msg.channel.send({embeds:[bot.errorLog.notInATicket]})
msg.channel.permissionOverwrites.create(user.id, { VIEW_CHANNEL:true, ADD_REACTIONS:true,ATTACH_FILES:true, EMBED_LINKS:true, SEND_MESSAGES:true})
msg.channel.send({embeds:[bot.errorLog.success(l.commands.userAddedTitle,l.commands.userAddedDescription.replace("{0}",user.tag))]})
var loguser = msg.mentions.users.first()
log("command","someone used the 'add' command",[{key:"user",value:msg.author.tag}])
log("system","user added to ticket",[{key:"user",value:msg.author.tag},{key:"ticket",value:msg.channel.name},{key:"added_user",value:loguser.tag}])
const ticketId = firstmsg.embeds[0].footer.text.split("Ticket Type: ")[1]
const ticketData = require("../core/getoptions").getOptionsById("newT"+ticketId)
APIEvents.onTicketAdd(msg.author,loguser,msg.channel,msg.guild,new Date(),{status:"open",name:msg.channel.name,ticketOptions:ticketData})
APIEvents.onCommand("add",permsChecker.command(msg.author.id,msg.guild.id),msg.author,msg.channel,msg.guild,new Date())
})
})
client.on("interactionCreate",(interaction) => {
if (!interaction.isChatInputCommand()) return
if (interaction.commandName != "add") return
const user = interaction.options.getUser("user")
if (!interaction.guild) return
if (!permsChecker.command(interaction.user.id,interaction.guild.id)){
permsChecker.sendUserNoPerms(interaction.user)
return
}
interaction.deferReply()
interaction.channel.messages.fetchPinned().then(msglist => {
var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return interaction.reply({embeds:[bot.errorLog.notInATicket]})
interaction.channel.permissionOverwrites.create(user.id, { VIEW_CHANNEL:true, ADD_REACTIONS:true,ATTACH_FILES:true, EMBED_LINKS:true, SEND_MESSAGES:true})
interaction.reply({embeds:[bot.errorLog.success(l.commands.userAddedTitle,l.commands.userAddedDescription.replace("{0}",user.tag))]})
var loguser = user
log("command","someone used the 'add' command",[{key:"user",value:interaction.user.tag}])
log("system","user added to ticket",[{key:"user",value:interaction.user.tag},{key:"ticket",value:interaction.channel.name},{key:"added_user",value:loguser.tag}])
const ticketId = firstmsg.embeds[0].footer.text.split("Ticket Type: ")[1]
const ticketData = require("../core/getoptions").getOptionsById("newT"+ticketId)
APIEvents.onTicketAdd(interaction.user,loguser,interaction.channel,interaction.guild,new Date(),{status:"open",name:interaction.channel.name,ticketOptions:ticketData})
APIEvents.onCommand("add",permsChecker.command(interaction.user.id,interaction.guild.id),interaction.user,interaction.channel,interaction.guild,new Date())
})
})
}
-67
View File
@@ -1,67 +0,0 @@
const discord = require('discord.js')
const bot = require('../index')
const client = bot.client
const config = bot.config
const log = bot.errorLog.log
const l = bot.language
const permsChecker = require("../core/utils/permisssionChecker")
const APIEvents = require("../core/api/modules/events")
module.exports = () => {
client.on("messageCreate",msg => {
if (!msg.content.startsWith(config.prefix+"close")) return
msg.channel.messages.fetchPinned().then(msglist => {
var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return msg.channel.send({embeds:[bot.errorLog.notInATicket]})
const closebutton = new discord.ActionRowBuilder()
.addComponents([
new discord.ButtonBuilder()
.setCustomId("closeTicketTrue1")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setEmoji("🔒")
])
msg.channel.send({embeds:[bot.errorLog.success(l.commands.closeTitle,l.commands.closeDescription)],components:[closebutton]})
log("command","someone used the 'close' command",[{key:"user",value:msg.author.tag}])
APIEvents.onCommand("close",true,msg.author,msg.channel,msg.guild,new Date())
})
})
client.on("interactionCreate",(interaction) => {
if (!interaction.isChatInputCommand()) return
if (interaction.commandName != "close") return
interaction.deferReply()
interaction.channel.messages.fetchPinned().then(msglist => {
var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return interaction.reply({embeds:[bot.errorLog.notInATicket]})
const closebutton = new discord.ActionRowBuilder()
.addComponents([
new discord.ButtonBuilder()
.setCustomId("closeTicketTrue1")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setEmoji("🔒")
])
interaction.reply({embeds:[bot.errorLog.success(l.commands.closeTitle,l.commands.closeDescription)],components:[closebutton]})
log("command","someone used the 'close' command",[{key:"user",value:interaction.user.tag}])
APIEvents.onCommand("close",true,interaction.user,interaction.channel,interaction.guild,new Date())
})
})
}
-77
View File
@@ -1,77 +0,0 @@
const discord = require('discord.js')
const bot = require('../index')
const client = bot.client
const config = bot.config
const log = bot.errorLog.log
const l = bot.language
const permsChecker = require("../core/utils/permisssionChecker")
const APIEvents = require("../core/api/modules/events")
module.exports = () => {
client.on("messageCreate",msg => {
if (!msg.content.startsWith(config.prefix+"delete")) return
if (!msg.guild) return
if (!permsChecker.command(msg.author.id,msg.guild.id)){
permsChecker.sendUserNoPerms(msg.author)
return
}
msg.channel.messages.fetchPinned().then(msglist => {
var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return msg.channel.send({embeds:[bot.errorLog.notInATicket]})
const closebutton = new discord.ActionRowBuilder()
.addComponents([
new discord.ButtonBuilder()
.setCustomId("deleteTicketTrue")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setEmoji("❌")
])
msg.channel.send({embeds:[bot.errorLog.success(l.commands.deleteTitle,l.commands.deleteDescription)],components:[closebutton]})
log("command","someone used the 'delete' command",[{key:"user",value:msg.author.tag}])
APIEvents.onCommand("delete",permsChecker.command(msg.author.id,msg.guild.id),msg.author,msg.channel,msg.guild,new Date())
})
})
client.on("interactionCreate",(interaction) => {
if (!interaction.isChatInputCommand()) return
if (interaction.commandName != "delete") return
interaction.deferReply()
if (!interaction.guild) return
if (!permsChecker.command(interaction.user.id,interaction.guild.id)){
permsChecker.sendUserNoPerms(interaction.user)
return
}
interaction.channel.messages.fetchPinned().then(msglist => {
var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return interaction.reply({embeds:[bot.errorLog.notInATicket]})
const closebutton = new discord.ActionRowBuilder()
.addComponents([
new discord.ButtonBuilder()
.setCustomId("deleteTicketTrue")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setEmoji("❌")
])
interaction.reply({embeds:[bot.errorLog.success(l.commands.deleteTitle,l.commands.deleteDescription)],components:[closebutton]})
log("command","someone used the 'close' command",[{key:"user",value:interaction.user.tag}])
APIEvents.onCommand("delete",permsChecker.command(interaction.user.id,interaction.guild.id),interaction.user,interaction.channel,interaction.guild,new Date())
})
})
}
-49
View File
@@ -1,49 +0,0 @@
const discord = require('discord.js')
const bot = require('../index')
const client = bot.client
const config = bot.config
const log = bot.errorLog.log
const l = bot.language
const APIEvents = require("../core/api/modules/events")
module.exports = () => {
const helpEmbed = new discord.EmbedBuilder()
.setColor(config.main_color)
.setTitle(l.helpMenu.title)
const prefix = config.prefix
const header = config.system.ticket_channel ? l.helpMenu.header1.replace("{0}","<#"+config.system.ticket_channel+">") : l.helpMenu.header2
helpEmbed.setDescription(header+"`"+prefix+"msg <id>` ➜ _"+l.helpMenu.msgCmd+"_\n\n`"+prefix+"rename <name>` ➜ _"+l.helpMenu.renameCmd+"_\n`"+prefix+"close` ➜ _"+l.helpMenu.closeCmd+"_\n`"+prefix+"delete` ➜ _"+l.helpMenu.deleteCmd+"_\n`"+prefix+"reopen` ➜ _"+l.helpMenu.reopenCmd+"_\n\n`"+prefix+"add <user>` ➜ _"+l.helpMenu.addCmd+"_\n`"+prefix+"remove <user>` ➜ _"+l.helpMenu.removeCmd+"_`")
if (config.credits) helpEmbed.setFooter({text:"Open-Ticket by DJdj Development | view on github for source code",iconURL:"https://raw.githubusercontent.com/DJj123dj/open-ticket/main/logo.png"})
client.on("messageCreate",msg => {
if (!msg.content.startsWith(config.prefix)) return
var args = msg.content.split(config.prefix)
if (!args[1]){
msg.channel.send({embeds:[helpEmbed]})
log("command","someone used the 'help' command",[{key:"user",value:msg.author.tag}])
APIEvents.onCommand("help",true,msg.author,msg.channel,msg.guild,new Date())
return
}
if (!args[1].startsWith("close") && !args[1].startsWith("delete") && !args[1].startsWith("remove") && !args[1].startsWith("add") && !args[1].startsWith("msg") && !args[1].startsWith("remove") && !args[1].startsWith("rename") && !args[1].startsWith("reopen")){
msg.channel.send({embeds:[helpEmbed]})
log("command","someone used the 'help' command",[{key:"user",value:msg.author.tag}])
APIEvents.onCommand("help",true,msg.author,msg.channel,msg.guild,new Date())
}
})
client.on("interactionCreate",(interaction) => {
if (!interaction.isChatInputCommand()) return
if (interaction.commandName != "help") return
interaction.reply({embeds:[helpEmbed]})
log("command","someone used the 'help' command",[{key:"user",value:interaction.user.tag}])
APIEvents.onCommand("help",true,interaction.user,interaction.channel,interaction.guild,new Date())
})
}
-80
View File
@@ -1,80 +0,0 @@
const discord = require('discord.js')
const bot = require('../index')
const client = bot.client
const config = bot.config
const log = bot.errorLog.log
const l = bot.language
const permsChecker = require("../core/utils/permisssionChecker")
const APIEvents = require("../core/api/modules/events")
module.exports = () => {
client.on("messageCreate",msg => {
if (!msg.content.startsWith(config.prefix+"remove")) return
var user = msg.mentions.users.first()
if (!user) return msg.channel.send({embeds:[bot.errorLog.invalidArgsMessage(l.errors.missingArgsDescription+" `<user>`:\n`"+config.prefix+"remove <user>`")]})
if (!msg.guild) return
if (!permsChecker.command(msg.author.id,msg.guild.id)){
permsChecker.sendUserNoPerms(msg.author)
return
}
interaction.deferReply()
msg.channel.messages.fetchPinned().then(msglist => {
var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return msg.channel.send({embeds:[bot.errorLog.notInATicket]})
msg.channel.permissionOverwrites.delete(user.id)
msg.channel.send({embeds:[bot.errorLog.success(l.commands.userRemovedTitle,l.commands.userRemovedDescription.replace("{0}",user.tag))]})
var loguser = msg.mentions.users.first()
log("command","someone used the 'remove' command",[{key:"user",value:msg.author.tag}])
log("system","user removed from ticket",[{key:"user",value:msg.author.tag},{key:"ticket",value:msg.channel.name},{key:"removed_user",value:loguser.tag}])
const ticketId = firstmsg.embeds[0].footer.text.split("Ticket Type: ")[1]
const ticketData = require("../core/getoptions").getOptionsById("newT"+ticketId)
APIEvents.onTicketRemove(msg.author,loguser,msg.channel,msg.guild,new Date(),{status:"open",name:msg.channel.name,ticketOptions:ticketData})
APIEvents.onCommand("remove",permsChecker.command(msg.author.id,msg.guild.id),msg.author,msg.channel,msg.guild,new Date())
})
})
client.on("interactionCreate",(interaction) => {
if (!interaction.isChatInputCommand()) return
if (interaction.commandName != "remove") return
const user = interaction.options.getUser("user")
if (!interaction.guild) return
if (!permsChecker.command(interaction.user.id,interaction.guild.id)){
permsChecker.sendUserNoPerms(interaction.user)
return
}
interaction.channel.messages.fetchPinned().then(msglist => {
var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return interaction.reply({embeds:[bot.errorLog.notInATicket]})
interaction.channel.permissionOverwrites.delete(user.id)
interaction.reply({embeds:[bot.errorLog.success(l.commands.userRemovedTitle,l.commands.userRemovedDescription.replace("{0}",user.tag))]})
var loguser = user
log("command","someone used the 'remove' command",[{key:"user",value:interaction.user.tag}])
log("system","user removed from ticket",[{key:"user",value:interaction.user.tag},{key:"ticket",value:interaction.channel.name},{key:"removed_user",value:loguser.tag}])
const ticketId = firstmsg.embeds[0].footer.text.split("Ticket Type: ")[1]
const ticketData = require("../core/getoptions").getOptionsById("newT"+ticketId)
APIEvents.onTicketRemove(interaction.user,loguser,interaction.channel,interaction.guild,new Date(),{status:"open",name:interaction.channel.name,ticketOptions:ticketData})
APIEvents.onCommand("remove",permsChecker.command(interaction.user.id,interaction.guild.id),interaction.user,interaction.channel,interaction.guild,new Date())
})
})
}
-90
View File
@@ -1,90 +0,0 @@
const discord = require('discord.js')
const bot = require('../index')
const client = bot.client
const config = bot.config
const log = bot.errorLog.log
const l = bot.language
const permsChecker = require("../core/utils/permisssionChecker")
const APIEvents = require("../core/api/modules/events")
module.exports = () => {
client.on("messageCreate",msg => {
if (!msg.content.startsWith(config.prefix+"rename")) return
msg.channel.messages.fetchPinned().then(msglist => {
var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return msg.channel.send({embeds:[bot.errorLog.notInATicket]})
if (!msg.guild) return
if (!permsChecker.command(msg.author.id,msg.guild.id)){
permsChecker.sendUserNoPerms(msg.author)
return
}
var newname = msg.content.split(config.prefix+"rename")[1].substring(1)
if (!newname) return msg.channel.send({embeds:[bot.errorLog.invalidArgsMessage(l.errors.missingArgsDescription+" `<name>`:\n`"+config.prefix+"rename <name>`")]})
var name = msg.channel.name
var prefix = ""
const tickets = config.options
tickets.forEach((ticket) => {
if (name.startsWith(ticket.channelprefix)){
prefix = ticket.channelprefix
}
})
if (!prefix) prefix = "noprefix-"
msg.channel.setName(prefix+newname)
msg.channel.send({embeds:[bot.errorLog.success(l.commands.renameTitle,l.commands.renameWarning)]})
log("command","someone used the 'rename' command",[{key:"user",value:msg.author.tag}])
log("system","ticket renamed",[{key:"user",value:msg.author.tag},{key:"ticket",value:name},{key:"newname",value:newname}])
APIEvents.onCommand("rename",permsChecker.command(msg.author.id,msg.guild.id),msg.author,msg.channel,msg.guild,new Date())
})
})
client.on("interactionCreate",(interaction) => {
if (!interaction.isChatInputCommand()) return
if (interaction.commandName != "rename") return
interaction.deferReply()
interaction.channel.messages.fetchPinned().then(msglist => {
var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id)return interaction.reply({embeds:[bot.errorLog.notInATicket]})
if (!interaction.guild) return
if (!permsChecker.command(interaction.user.id,interaction.guild.id)){
permsChecker.sendUserNoPerms(interaction.user)
return
}
var newname = interaction.options.getString("name")
var name = interaction.channel.name
var prefix = ""
const tickets = config.options
tickets.forEach((ticket) => {
if (name.startsWith(ticket.channelprefix)){
prefix = ticket.channelprefix
}
})
if (!prefix) prefix = "noprefix-"
interaction.channel.setName(prefix+newname)
interaction.reply({embeds:[bot.errorLog.success(l.commands.renameTitle,l.commands.renameWarning)]})
log("command","someone used the 'rename' command",[{key:"user",value:interaction.user.tag}])
log("system","ticket renamed",[{key:"user",value:interaction.user.tag},{key:"ticket",value:name},{key:"newname",value:newname}])
APIEvents.onCommand("rename",permsChecker.command(interaction.user.id,interaction.guild.id),interaction.user,interaction.channel,interaction.guild,new Date())
})
})
}
-62
View File
@@ -1,62 +0,0 @@
const discord = require('discord.js')
const bot = require('../index')
const client = bot.client
const config = bot.config
const log = bot.errorLog.log
const l = bot.language
const permsChecker = require("../core/utils/permisssionChecker")
const APIEvents = require("../core/api/modules/events")
module.exports = () => {
var reopenCommandBar = new discord.ActionRowBuilder()
.addComponents(
new discord.ButtonBuilder()
.setCustomId("reopenTicket1")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setEmoji("🔓")
)
client.on("messageCreate",msg => {
if (!msg.content.startsWith(config.prefix+"reopen")) return
msg.channel.messages.fetchPinned().then(msglist => {
var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return msg.channel.send({embeds:[bot.errorLog.notInATicket]})
msg.channel.send({embeds:[bot.errorLog.success(l.commands.reopenTitle,l.commands.reopenDescription)],components:[reopenCommandBar]})
log("command","someone used the 'reopen' command",[{key:"user",value:msg.author.tag}])
APIEvents.onCommand("reopen",true,msg.author,msg.channel,msg.guild,new Date())
})
})
client.on("interactionCreate",async (interaction) => {
if (!interaction.isChatInputCommand()) return
if (interaction.commandName != "reopen") return
await interaction.deferReply()
interaction.channel.messages.fetchPinned().then(async msglist => {
var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return msg.channel.send({embeds:[bot.errorLog.notInATicket]})
try {
await interaction.reply({embeds:[bot.errorLog.success(l.commands.reopenTitle,l.commands.reopenDescription)],components:[reopenCommandBar]})
}catch{
await interaction.editReply({embeds:[bot.errorLog.success(l.commands.reopenTitle,l.commands.reopenDescription)],components:[reopenCommandBar]})
}
log("command","someone used the 'reopen' command",[{key:"user",value:interaction.user.tag}])
APIEvents.onCommand("reopen",true,interaction.user,interaction.channel,interaction.guild,new Date())
})
})
}
-67
View File
@@ -1,67 +0,0 @@
const discord = require('discord.js')
const bot = require('../index')
const client = bot.client
const config = bot.config
const log = bot.errorLog.log
const l = bot.language
const permsChecker = require("../core/utils/permisssionChecker")
const APIEvents = require("../core/api/modules/events")
module.exports = () => {
/**@type {String[]} */
var msgIds = []
config.messages.forEach((msg) => {
msgIds.push(msg.id)
})
client.on("messageCreate", msg => {
if (msg.content.startsWith(config.prefix+"msg"||config.prefix+"message")){
if (!msg.guild) return
if (!permsChecker.command(msg.author.id,msg.guild.id)){
permsChecker.sendUserNoPerms(msg.author)
return
}
const id = msg.content.split(config.prefix+"msg")[1].substring(1) ? msg.content.split(config.prefix+"msg")[1].substring(1) : false
if (!id) return msg.channel.send({embeds:[bot.errorLog.invalidArgsMessage(l.errors.missingArgsDescription+" `<id>`:\n`"+config.prefix+"msg <id>`")]})
if (!msgIds.includes(id)) return msg.channel.send({embeds:[bot.errorLog.invalidIdChooseFromList(msgIds)]})
const {embed,componentRows} = require("../core/ticketMessageEmbed").createEmbed(id)
msg.channel.send({embeds:[embed],components:componentRows})
log("command","someone used the 'message' command",[{key:"user",value:msg.author.tag},{key:"id",value:id}])
APIEvents.onCommand("message",permsChecker.command(msg.author.id,msg.guild.id),msg.author,msg.channel,msg.guild,new Date())
}
})
client.on("interactionCreate", (interaction) => {
if (!interaction.isChatInputCommand()) return
if (interaction.commandName != "message") return
if (!interaction.guild) return
if (!permsChecker.command(interaction.user.id,interaction.guild.id)){
permsChecker.sendUserNoPerms(interaction.user)
return
}
const id = interaction.options.getString("id")
if (!msgIds.includes(id)) return interaction.reply({embeds:[bot.errorLog.invalidIdChooseFromList(msgIds)]})
const {embed,componentRows} = require("../core/ticketMessageEmbed").createEmbed(id)
interaction.reply({content:l.commands.ticketWarning})
interaction.channel.send({embeds:[embed],components:componentRows})
log("command","someone used the 'message' command",[{key:"user",value:interaction.user.tag},{key:"id",value:id}])
APIEvents.onCommand("message",permsChecker.command(interaction.user.id,interaction.guild.id),interaction.user,interaction.channel,interaction.guild,new Date())
})
}
-95
View File
@@ -1,95 +0,0 @@
{
"main_color":"#ffffff",
"server_id":"server id (for slash cmds)",
"auth_token":"auth token",
"main_adminroles":["discord role id"],
"prefix":"!ticket ",
"languagefile":"english",
"credits":true,
"status":{
"enabled":true,
"type":"PLAYING",
"text":"!ticket help"
},
"system":{
"ticket_channel":"channel id",
"max_allowed_tickets":3,
"enable_DM_Messages":true,
"has@everyoneaccess":false,
"member_role":"member role (doesn't have access to tickets)",
"closeMode":"adminonly|normal",
"enable_transcript":false,
"enable_DM_transcript":false,
"transcript_channel":"channel id"
},
"options":[
{
"id":"general",
"name":"Question",
"description":"Create this ticket if you have a question.",
"icon":"🎫",
"label":"question",
"type":"ticket",
"color":"gray",
"adminroles":["role id"],
"channelprefix":"question-",
"category":"category id",
"message":"You created a ticket!",
"enableDMMessage":true,
"ticketmessage":"The staff will help you soon!\n\n*Click on the button below to close the ticket!*"
},
{
"id":"website",
"name":"Website",
"description":"Go to our website.",
"icon":"✅",
"label":"click here",
"type":"website",
"url":"https://www.dj-dj.be"
},
{
"id":"role",
"name":"Verify",
"description":"Click here to get the verify role.",
"icon":"👮🏼",
"label":"get a role",
"type":"role",
"color":"red",
"roles":["discord role id"],
"mode":"add&remove|remove|add",
"enableDMMessage":true
}
],
"messages":[
{
"id":"1",
"name":"Choose Your Ticket",
"description":"You can click one of the buttons below!",
"enableFooter":false,
"footer":"Open Ticket v2.4.0 - I'm a footer!",
"enableThumbnail":false,
"thumbnail":"https://www.example.com/catmemes/cat.png",
"enableCustomColor":false,
"color":"#ffffff",
"options":["general","apply"],
"enableTicketExplaination":true,
"enableMaxTicketsWarning":true
}
]
}
+125
View File
@@ -0,0 +1,125 @@
{
"_INFO":{
"support":"https://otdocs.dj-dj.be",
"discord":"https://discord.dj-dj.be",
"version":"open-ticket-v4.1.3"
},
"token":"insert your bot token here! (or leave empty when using 'tokenFromENV')",
"tokenFromENV":false,
"mainColor":"#f8ba00",
"language":"english",
"prefix":"!ticket ",
"serverId":"discord server id",
"globalAdmins":["discord role id"],
"slashCommands":true,
"textCommands":true,
"status":{
"enabled":true,
"type":"listening OR watching OR playing OR custom",
"mode":"online OR invisible OR idle OR dnd",
"text":"/help",
"state":"(additional text or leave empty)"
},
"system":{
"preferSlashOverText":true,
"sendErrorOnUnknownCommand":true,
"questionFieldsInCodeBlock":true,
"displayFieldsWithQuestions":false,
"showGlobalAdminsInPanelRoles":false,
"disableVerifyBars":false,
"useRedErrorEmbeds":true,
"alwaysShowReason":false,
"emojiStyle":"before (OR after OR double OR disabled)",
"pinEmoji":"📌",
"replyOnTicketCreation":true,
"replyOnReactionRole":true,
"askPriorityOnTicketCreation":false,
"removeParticipantsOnClose":false,
"disableAutocloseAfterReopen":true,
"autodeleteRequiresClosedTicket":true,
"adminOnlyDeleteWithoutTranscript":true,
"allowCloseBeforeMessage":false,
"allowCloseBeforeAdminMessage":true,
"useTranslatedConfigChecker":true,
"pinFirstTicketMessage":false,
"enableTicketClaimButtons":true,
"enableTicketCloseButtons":true,
"enableTicketPinButtons":true,
"enableTicketDeleteButtons":true,
"enableTicketActionWithReason":true,
"enableDeleteWithoutTranscript":true,
"logs":{
"enabled":false,
"channel":"discord channel id"
},
"limits":{
"enabled":true,
"globalMaximum":50,
"userMaximum":3
},
"channelTopic":{
"showOptionName":true,
"showOptionDescription":false,
"showOptionTopic":true,
"showPriority":false,
"showClosed":true,
"showClaimed":false,
"showPinned":false,
"showCreator":false,
"showParticipants":false
},
"permissions":{
"help":"everyone (OR admin OR none OR role id)",
"panel":"admin (OR everyone OR none OR role id)",
"ticket":"none (OR admin OR everyone OR role id)",
"close":"everyone (OR admin OR none OR role id)",
"delete":"admin (OR everyone OR none OR role id)",
"reopen":"everyone (OR admin OR none OR role id)",
"claim":"admin (OR everyone OR none OR role id)",
"unclaim":"admin (OR everyone OR none OR role id)",
"pin":"admin (OR everyone OR none OR role id)",
"unpin":"admin (OR everyone OR none OR role id)",
"move":"admin (OR everyone OR none OR role id)",
"rename":"admin (OR everyone OR none OR role id)",
"add":"admin (OR everyone OR none OR role id)",
"remove":"admin (OR everyone OR none OR role id)",
"blacklist":"admin (OR everyone OR none OR role id)",
"stats":"everyone (OR admin OR none OR role id)",
"clear":"admin (OR everyone OR none OR role id)",
"autoclose":"admin (OR everyone OR none OR role id)",
"autodelete":"admin (OR everyone OR none OR role id)",
"transfer":"admin (OR everyone OR none OR role id)",
"topic":"admin (OR everyone OR none OR role id)",
"priority":"admin (OR everyone OR none OR role id)"
},
"messages":{
"creation":{"dm":false,"logs":true},
"closing":{"dm":false,"logs":true},
"deleting":{"dm":false,"logs":true},
"reopening":{"dm":false,"logs":true},
"claiming":{"dm":false,"logs":true},
"pinning":{"dm":false,"logs":true},
"adding":{"dm":false,"logs":true},
"removing":{"dm":false,"logs":true},
"renaming":{"dm":false,"logs":true},
"moving":{"dm":false,"logs":true},
"blacklisting":{"dm":false,"logs":true},
"transferring":{"dm":false,"logs":true},
"topicChange":{"dm":false,"logs":true},
"priorityChange":{"dm":false,"logs":true},
"reactionRole":{"dm":false,"logs":true}
}
}
}
+126
View File
@@ -0,0 +1,126 @@
[
{
"id":"example-ticket",
"name":"Question",
"description":"Create this ticket if you have a question! (or leave empty)",
"type":"ticket",
"button":{
"emoji":"🎫 (or leave empty)",
"label":"question (or leave empty)",
"color":"gray OR red OR green OR blue"
},
"ticketAdmins":["discord role id"],
"readonlyAdmins":["discord role id"],
"allowCreationByBlacklistedUsers":false,
"questions":["example-question-1","example-question-2"],
"channel":{
"prefix":"question-",
"suffix":"user-name OR user-id OR random-number OR random-hex OR counter-dynamic OR counter-fixed",
"category":"category id (or leave empty)",
"closedCategory":"category id (or leave empty)",
"backupCategory":"category id (or leave empty)",
"claimedCategory":[
{"user":"user id","category":"category id"}
],
"topic":"This is the topic of this ticket channel and is visible to everyone! (or leave empty)"
},
"dmMessage":{
"enabled":false,
"text":"Thank you for creating a ticket in our server! (or leave empty)",
"embed":{
"enabled":false,
"title":"Embed Title! (or leave empty)",
"description":"Description (or leave empty)",
"customColor":"#f8ab00 (or leave empty)",
"image":"https://www.example.com/image.png (or leave empty)",
"thumbnail":"https://www.example.com/image.png (or leave empty)",
"fields":[
{"name":"field name","value":"field value","inline":false}
],
"timestamp":false
}
},
"ticketMessage":{
"enabled":true,
"text":"",
"embed":{
"enabled":true,
"title":"Question Ticket",
"description":"Thank you for creating a 'Question' ticket in our server!\nOur support team will help you as soon as possible!",
"customColor":"#f8ab00 (or leave empty)",
"image":"https://www.example.com/image.png (or leave empty)",
"thumbnail":"https://www.example.com/image.png (or leave empty)",
"fields":[
{"name":"field name","value":"field value","inline":false}
],
"timestamp":false
},
"ping":{
"@here":true,
"@everyone":false,
"custom":["discord role id"]
}
},
"autoclose":{
"enableInactiveHours":false,
"inactiveHours":24,
"enableUserLeave":false,
"disableOnClaim":false
},
"autodelete":{
"enableInactiveDays":false,
"inactiveDays":7,
"enableUserLeave":false,
"disableOnClaim":false
},
"cooldown":{
"enabled":false,
"cooldownMinutes":10
},
"limits":{
"enabled":false,
"globalMaximum":20,
"userMaximum":3
},
"slowMode":{
"enabled":false,
"slowModeSeconds":20
}
},
{
"id":"example-website",
"name":"Website",
"description":"Go to our website.",
"type":"website",
"button":{
"emoji":"😃",
"label":"Visit our website"
},
"url":"https://www.dj-dj.be"
},
{
"id":"example-role",
"name":"Update Ping",
"description":"Click here to get notified on updates!",
"type":"role",
"button":{
"emoji":"📢",
"label":"Update Ping",
"color":"gray OR red OR green OR blue"
},
"roles":["discord role id"],
"mode":"add&remove OR remove OR add",
"removeRolesOnAdd":["discord role id"],
"addOnMemberJoin":false
}
]
+39
View File
@@ -0,0 +1,39 @@
[
{
"id":"example-embed",
"name":"Example Embed",
"dropdown":false,
"options":["example-ticket","example-website","example-role"],
"text":"",
"embed":{
"enabled":true,
"title":"Tickets:",
"description":"Create a ticket by clicking one of the buttons below!",
"customColor":"#f8ab00 (or leave empty)",
"url":"https://openticket.dj-dj.be (or leave empty)",
"image":"https://www.example.com/image.png (or leave empty)",
"thumbnail":"https://www.example.com/image.png (or leave empty)",
"footer":"Open Ticket v4.1.3 (or leave empty)",
"fields":[
{"name":"field name","value":"field value","inline":false}
],
"timestamp":false
},
"settings":{
"dropdownPlaceholder":"Create a ticket!",
"enableMaxTicketsWarningInText":false,
"enableMaxTicketsWarningInEmbed":true,
"describeOptionsLayout":"simple OR normal OR detailed",
"describeOptionsCustomTitle":"",
"describeOptionsInText":false,
"describeOptionsInEmbedFields":true,
"describeOptionsInEmbedDescription":false
}
}
]
+28
View File
@@ -0,0 +1,28 @@
[
{
"id":"example-question-1",
"name":"Example Question 1",
"type":"short",
"required":true,
"placeholder":"Insert your short answer here!",
"length":{
"enabled":false,
"min":0,
"max":1000
}
},
{
"id":"example-question-2",
"name":"Example Question 2",
"type":"paragraph",
"required":false,
"placeholder":"Insert your long answer here!",
"length":{
"enabled":false,
"min":0,
"max":1000
}
}
]
+55
View File
@@ -0,0 +1,55 @@
{
"general":{
"enabled":false,
"enableChannel":false,
"enableCreatorDM":false,
"enableParticipantDM":false,
"enableActiveAdminDM":false,
"enableEveryAdminDM":false,
"channel":"transcript channel id (or leave empty)",
"mode":"html OR text"
},
"embedSettings":{
"customColor":"#f8ab00 (or leave empty)",
"listAllParticipants":false,
"includeTicketStats":false
},
"textTranscriptStyle":{
"layout":"simple OR normal OR detailed",
"includeStats":true,
"includeIds":false,
"includeEmbeds":true,
"includeFiles":true,
"includeBotMessages":true,
"fileMode":"custom OR channel-name OR channel-id OR user-name OR user-id",
"customFileName":"this-is-a-transcript (or leave empty)"
},
"htmlTranscriptStyle":{
"background":{
"enableCustomBackground":false,
"backgroundColor":"#f8ba00 (or leave empty)",
"backgroundImage":"https://www.example.com/image.png (or leave empty)"
},
"header":{
"enableCustomHeader":false,
"backgroundColor":"#202225",
"decoColor":"#f8ba00",
"textColor":"#ffffff"
},
"stats":{
"enableCustomStats":false,
"backgroundColor":"#202225",
"keyTextColor":"#737373",
"valueTextColor":"#ffffff",
"hideBackgroundColor":"#40444a",
"hideTextColor":"#ffffff"
},
"favicon":{
"enableCustomFavicon":false,
"imageUrl":"https://t.dj-dj.be/favicon.png"
}
}
}
-18
View File
@@ -1,18 +0,0 @@
//base
const bot = require("../../index")
exports.client = bot.client
exports.config = bot.config
exports.utils = {
log:bot.errorLog.log(),
storage:bot.storage
}
//events
const events = require("./modules/events").events
exports.events = events
//actions
const actions = require("./modules/actions").actions
//comming soon
//exports.actions = actions
-46
View File
@@ -1,46 +0,0 @@
{
"version":"1.0.0",
"disclaimer":"DISABLE doesn't work yet! Below this message!",
"disable":{
"messages":{
"ticketCreated":false,
"ticketClosed":false,
"ticketDeleted":false,
"ticketReopened":false
},
"transcripts":{
"server":false,
"dm":false
},
"commands":{
"text":{
"help":false,
"msg":false,
"close":false,
"delete":false,
"reopen":false,
"new":false,
"add":false,
"remove":false,
"rename":false
},
"slash":{
"help":false,
"msg":false,
"close":false,
"delete":false,
"reopen":false,
"new":false,
"add":false,
"remove":false,
"rename":false
}
},
"checkerjs":{
"token":false,
"all":false
}
}
}
-7
View File
@@ -1,7 +0,0 @@
//ACTIONS:
//EXPORT ACTIONS:
exports.actions = {
}
-28
View File
@@ -1,28 +0,0 @@
const discord = require('discord.js')
const bot = require("../../../index")
const client = bot.client
const config = bot.config
const log = bot.errorLog.log
const l = bot.language
const storage = bot.storage
/** FOR DEVELOPERS ONLY!!
* Don't change anything in this file, read the api documentation first!
* look into "api docs.md" for the docs!
*/
//used when creating plugins!
exports.enableApiLogs = false
//DOESN'T WORK YET
//this is used when embedding open ticket into another bot
exports.embeddedMode = false
exports.clientLocation = require("../../../index").client
/** !! WARNING !!
* Only edit or extend the code when you know what you are doing!
* If open ticket crashes while you change the code, then we can't help you!
*
* DO IT ON YOUR OWN RISK!
*/
-349
View File
@@ -1,349 +0,0 @@
const discord = require('discord.js')
const bot = require('../../../index')
const client = bot.client
const config = bot.config
const log = bot.errorLog.log
const l = bot.language
const storage = bot.storage
//EVENT API:
const ticketOpenListeners = []
const ticketCloseListeners = []
const ticketDeleteListeners = []
const ticketReopenListeners = []
const ticketAddListeners = []
const ticketRemoveListeners = []
const transcriptCreationListeners = []
const commandListeners = []
const reactionRoleListeners = []
const errorListeners = []
/**
*
* @param {discord.User} user
* @param {discord.TextChannel} channel
* @param {discord.Guild} guild
* @param {Date} date
* @param {{name:String,status:"open"|"closed"|"deleted"|"reopened",ticketOptions:Object|false}} ticketdata
*/
exports.onTicketOpen = (user,channel,guild,date,ticketdata) => {
//system
bot.errorLog.log("api","new ticket created",[{key:"userid",value:user.id},{key:"channelid",value:channel.id},{key:"guildid",value:guild.id},{key:"ticketdata",value:JSON.stringify(ticketdata)}])
ticketOpenListeners.forEach((func) => {
try {
func(user,channel,guild,date,ticketdata)
}catch{}
})
}
/**
*
* @param {discord.User} user
* @param {discord.TextChannel} channel
* @param {discord.Guild} guild
* @param {Date} date
* @param {{name:String,status:"open"|"closed"|"deleted"|"reopened",ticketOptions:Object|false}} ticketdata
*/
exports.onTicketClose = (user,channel,guild,date,ticketdata) => {
//system
bot.errorLog.log("api","ticket closed",[{key:"userid",value:user.id},{key:"channelid",value:channel.id},{key:"guildid",value:guild.id},{key:"ticketdata",value:JSON.stringify(ticketdata)}])
ticketCloseListeners.forEach((func) => {
try {
func(user,channel,guild,date,ticketdata)
}catch{}
})
}
/**
*
* @param {discord.User} user
* @param {discord.TextChannel} channel
* @param {discord.Guild} guild
* @param {Date} date
* @param {{name:String,status:"open"|"closed"|"deleted"|"reopened",ticketOptions:Object|false}} ticketdata
*/
exports.onTicketDelete = (user,channel,guild,date,ticketdata) => {
//system
bot.errorLog.log("api","ticket deleted",[{key:"userid",value:user.id},{key:"channelid",value:channel.id},{key:"guildid",value:guild.id},{key:"ticketdata",value:JSON.stringify(ticketdata)}])
ticketDeleteListeners.forEach((func) => {
try {
func(user,channel,guild,date,ticketdata)
}catch{}
})
}
/**
*
* @param {discord.User} user
* @param {discord.TextChannel} channel
* @param {discord.Guild} guild
* @param {Date} date
* @param {{name:String,status:"open"|"closed"|"deleted"|"reopened",ticketOptions:Object|false}} ticketdata
*/
exports.onTicketReopen = (user,channel,guild,date,ticketdata) => {
//system
bot.errorLog.log("api","ticket reopened",[{key:"userid",value:user.id},{key:"channelid",value:channel.id},{key:"guildid",value:guild.id},{key:"ticketdata",value:JSON.stringify(ticketdata)}])
ticketReopenListeners.forEach((func) => {
try {
func(user,channel,guild,date,ticketdata)
}catch{}
})
}
/**
*
* @param {discord.User} user
* @param {discord.User} editeduser
* @param {discord.TextChannel} channel
* @param {discord.Guild} guild
* @param {Date} date
* @param {{name:String,status:"open"|"closed"|"deleted"|"reopened",ticketOptions:Object|false}} ticketdata
*/
exports.onTicketAdd = (user,editeduser,channel,guild,date,ticketdata) => {
//system
bot.errorLog.log("api","user added to ticket",[{key:"userid",value:user.id},{key:"editeduser",value:editeduser.id},{key:"channelid",value:channel.id},{key:"guildid",value:guild.id},{key:"ticketdata",value:JSON.stringify(ticketdata)}])
ticketAddListeners.forEach((func) => {
try {
func(user,editeduser,channel,guild,date,ticketdata)
}catch{}
})
}
/**
*
* @param {discord.User} user
* @param {discord.User} editeduser
* @param {discord.TextChannel} channel
* @param {discord.Guild} guild
* @param {Date} date
* @param {{name:String,status:"open"|"closed"|"deleted"|"reopened",ticketOptions:Object|false}} ticketdata
*/
exports.onTicketRemove = (user,editeduser,channel,guild,date,ticketdata) => {
//system
bot.errorLog.log("api","user removed from ticket",[{key:"userid",value:user.id},{key:"editeduser",value:editeduser.id},{key:"channelid",value:channel.id},{key:"guildid",value:guild.id},{key:"ticketdata",value:JSON.stringify(ticketdata)}])
ticketRemoveListeners.forEach((func) => {
try {
func(user,editeduser,channel,guild,date,ticketdata)
}catch{}
})
}
/**
*
* @param {discord.Message[]} messages
* @param {discord.TextChannel} channel
* @param {discord.Guild} guild
* @param {Date} date
*/
exports.onTranscriptCreation = (messages,channel,guild,date) => {
//system
bot.errorLog.log("api","transcript created",[{key:"messages",value:JSON.stringify(messages)},{key:"channelid",value:channel.id},{key:"guildid",value:guild.id}])
transcriptCreationListeners.forEach((func) => {
try {
func(messages,channel,guild,date)
}catch{}
})
}
/**@typedef {"help"|"message"|"close"|"delete"|"reopen"|"rename"|"add"|"remove"} OTCommandType */
/**
*
* @param {OTCommandType} type
* @param {Boolean} hasPerms
* @param {discord.User} user
* @param {discord.TextChannel} channel
* @param {discord.Guild} guild
* @param {Date} date
*/
exports.onCommand = (type,hasPerms,user,channel,guild,date) => {
//system
bot.errorLog.log("api","someone used a command",[{key:"type",value:type},{key:"hasPerms",value:hasPerms},{key:"userid",value:user},{key:"channelid",value:channel.id},{key:"guildid",value:guild.id}])
commandListeners.forEach((func) => {
try {
func(type,hasPerms,user,channel,guild,date)
}catch{}
})
}
/**@typedef {"add"|"remove"|"add&remove"} OTReactionRoleType */
/**@typedef {"add"|"remove"} OTReactionRoleMode */
/**
* @param {OTReactionRoleMode} mode
* @param {OTReactionRoleType} type
* @param {discord.Role} role
* @param {discord.User} user
* @param {discord.TextChannel} channel
* @param {discord.Guild} guild
* @param {Date} date
*/
exports.onReactionRole = (mode,type,role,user,channel,guild,date) => {
//system
bot.errorLog.log("api","someone used a reaction role",[{key:"mode",value:mode},{key:"type",value:type},{key:"roleid",value:role.id},{key:"userid",value:user},{key:"channelid",value:channel.id},{key:"guildid",value:guild.id}])
reactionRoleListeners.forEach((func) => {
try {
func(mode,type,role,user,channel,guild,date)
}catch{}
})
}
/**
* @param {String} err
* @param {Date} date
*/
exports.onError = (err,date) => {
//system
bot.errorLog.log("api","there is an error",[{key:"error",value:err}])
errorListeners.forEach((func) => {
try {
func(err,date)
}catch{}
})
}
//EVENT CALLBACKS:
/**
* @callback TicketActionEvent
* @param {discord.User} user
* @param {discord.TextChannel} channel
* @param {discord.Guild} guild
* @param {Date} date
* @param {{name:String,status:"open"|"closed"|"deleted"|"reopened",ticketOptions:Object|false}} ticketdata
*/
/**
* @callback TranscriptCreationEvent
* @param {discord.Message[]} messages
* @param {discord.TextChannel} channel
* @param {discord.Guild} guild
* @param {Date} date
*/
/**
* @callback TicketUserChangeEvent
* @param {discord.User} user
* @param {discord.User} editeduser
* @param {discord.TextChannel} channel
* @param {discord.Guild} guild
* @param {Date} date
* @param {{name:String,status:"open"|"closed"|"deleted"|"reopened",ticketOptions:Object|false}} ticketdata
*/
/**
* @callback CommandEvent
* @param {OTCommandType} type
* @param {Boolean} hasPerms
* @param {discord.User} user
* @param {discord.TextChannel} channel
* @param {discord.Guild} guild
* @param {Date} date
*/
/**
* @callback ReactionRoleEvent
* @param {OTReactionRoleMode} mode
* @param {OTReactionRoleType} type
* @param {discord.Role} role
* @param {discord.User} user
* @param {discord.TextChannel} channel
* @param {discord.Guild} guild
* @param {Date} date
*/
/**
* @callback ErrorEvent
* @param {String} error
* @param {Date} date
*/
//EVENT EXPORT:
/**@param {TicketActionEvent} callback */
const onTicketOpen = (callback) => {
ticketOpenListeners.push(callback)
}
/**@param {TicketActionEvent} callback */
const onTicketClose = (callback) => {
ticketCloseListeners.push(callback)
}
/**@param {TicketActionEvent} callback */
const onTicketDelete = (callback) => {
ticketDeleteListeners.push(callback)
}
/**@param {TicketActionEvent} callback */
const onTicketReopen = (callback) => {
ticketReopenListeners.push(callback)
}
/**@param {TicketUserChangeEvent} callback */
const onTicketAdd = (callback) => {
ticketAddListeners.push(callback)
}
/**@param {TicketUserChangeEvent} callback */
const onTicketRemove = (callback) => {
ticketRemoveListeners.push(callback)
}
/**@param {TranscriptCreationEvent} callback */
const onTranscriptCreation = (callback) => {
transcriptCreationListeners.push(callback)
}
/**@param {CommandEvent} callback */
const onCommand = (callback) => {
commandListeners.push(callback)
}
/**@param {ReactionRoleEvent} callback */
const onReactionRole = (callback) => {
commandListeners.push(callback)
}
/**@param {ErrorEvent} callback */
const onError = (callback) => {
errorListeners.push(callback)
}
exports.events = {
onTicketOpen,
onTicketClose,
onTicketDelete,
onTicketReopen,
onTicketAdd,
onTicketRemove,
onTranscriptCreation,
onCommand,
onReactionRole,
onError
}
-26
View File
@@ -1,26 +0,0 @@
const fs = require("fs")
const bot = require("../../index")
const log = bot.errorLog.log
module.exports = () => {
const files = fs.readdirSync("./plugins")
var totalcount = 0
var successcount = 0
var failcount = 0
files.forEach((file) => {
if (file.endsWith(".plugin.js")){
try {
require("../../plugins/"+file)()
successcount++
totalcount++
}catch{
failcount++
totalcount++
}
}
})
log("info","loaded plugins",[{key:"success",value:successcount},{key:"error",value:failcount},{key:"total",value:totalcount}])
}
-366
View File
@@ -1,366 +0,0 @@
exports.checker = async () => {
const chalk = await (await import("chalk")).default
const config = require("../config.json")
var errorList = []
var isError = false
var warnList = []
var isWarn = false
const createError = (message) => {
isError = true
errorList.push("open-ticket CONFIG ERROR: "+message)
}
const createWarn = (message) => {
isWarn = true
warnList.push("open-ticket CONFIG WARNING: "+message)
}
//validators
/**@param {"userid"|"roleid"|"channelid"|"serverid"|"categoryid"} mode @param {String} value @param {String} path */
const checkDiscord = (mode,value,path) => {
if (mode == "userid"){
if (value.length < 16 || value.length > 20 || !/^\d+$/.test(value)){
createError("'"+path+"' | this user id is invalid")
}
}else if (mode == "channelid"){
if (value.length < 16 || value.length > 20 || !/^\d+$/.test(value)){
createError("'"+path+"' | this channel id is invalid")
}
}else if (mode == "roleid"){
if (value.length < 16 || value.length > 20 || !/^\d+$/.test(value)){
createError("'"+path+"' | this role id is invalid")
}
}else if (mode == "serverid"){
if (value.length < 16 || value.length > 20 || !/^\d+$/.test(value)){
createError("'"+path+"' | this server id is invalid")
}
}else if (mode == "categoryid"){
if (value.length < 16 || value.length > 20 || !/^\d+$/.test(value)){
createError("'"+path+"' | this category id is invalid")
}
}
}
/**@param {String} value */
const checkToken = (value) => {
if (value.includes(" ") || value.length < 40 || value.length > 90){
createError("'auth_token' | your token is invalid")
}
}
/**@param {String} value @param {String} path */
const checkHexColor = (value,path) => {
if (!/^#[a-fA-F0-9]{3,6}$/.test(value)){
if (value.length < 4) return createError("'"+path+"' | hex color too short! (example: #123abc)")
if (value.length > 7) return createError("'"+path+"' | hex color too long! (example: #123abc)")
createError("'"+path+"' | invalid color! (example: #123abc)")
}
}
/**@param {String} value @param {String} path */
const checkEmbedColor = (value,path) => {
if (!['DEFAULT','WHITE','AQUA','GREEN','BLUE','YELLOW','PURPLE','LUMINOUS_VIVID_PINK','FUCHSIA','GOLD','ORANGE','RED','GREY','DARKER_GREY','NAVY','DARK_AQUA','DARK_GREEN','DARK_BLUE','DARK_PURPLE','DARK_VIVID_PINK','DARK_GOLD','DARK_ORANGE','DARK_RED','DARK_GREY','LIGHT_GREY','DARK_NAVY','BLURPLE','GREYPLE','DARK_BUT_NOT_BLACK','NOT_QUITE_BLACK','RANDOM'].includes(value)){
return createError("'"+path+"' | invalid color, must be a hex code or default color (more info in the wiki)")
}
}
/**@param {String} value @param {String} path @param {Number} minLength @param {Number} maxLength @param {String} name */
const checkString = (value,minLength,maxLength,path,name) => {
if (value.length < minLength){
createError("'"+path+"' | "+name+" is too short!")
}else if (value.length > maxLength){
createError("'"+path+"' | "+name+" is too long!")
}
}
/**@param {"userid"|"roleid"|"channelid"|"serverid"} mode @param {String[]} arrayValue @param {String} path */
const checkDiscordArray = (mode,arrayValue,path) => {
if (mode == "userid"){
arrayValue.forEach((value,index) => {
if (value.length < 16 || value.length > 20 || !/^\d+$/.test(value)){
createError("'"+path+":"+index+"' | this user id is invalid")
}
})
}else if (mode == "channelid"){
arrayValue.forEach((value,index) => {
if (value.length < 16 || value.length > 20 || !/^\d+$/.test(value)){
createError("'"+path+":"+index+"' | this channel id is invalid")
}
})
}else if (mode == "roleid"){
arrayValue.forEach((value,index) => {
if (value.length < 16 || value.length > 20 || !/^\d+$/.test(value)){
createError("'"+path+":"+index+"' | this role id is invalid")
}
})
}else if (mode == "serverid"){
arrayValue.forEach((value,index) => {
if (value.length < 16 || value.length > 20 || !/^\d+$/.test(value)){
createError("'"+path+":"+index+"' | this server id is invalid")
}
})
}
}
/**@param {String} value @param {"string"|"boolean"|"number"} type */
const checkType = (value,type,path) => {
if (type == "boolean"){
if (typeof value != "boolean"){
createError("'"+path+"' | invalid type, this must be a boolean!")
}
}else if (type == "number"){
if (typeof value != "number"){
createError("'"+path+"' | invalid type, this must be a number!")
}
}else if (type == "string"){
if (typeof value != "string"){
createError("'"+path+"' | invalid type, this must be a string!")
}
}
}
const checkButtonColor = (value,path) => {
if (value != "none" && value != "grey" && value != "gray" && value != "black" && value != "red" && value != "green" && value != "blue" && value != "blurple"){
createError("'"+path+"' | invalid color, it must be one of these: none, gray, red, green, blue!")
}
}
const getButtonClass = require("./utils/getButton").rawButtonData
/**@param {getButtonClass} option */
const checkOption = (option,path) => {
//id
checkType(option.id,"string",path+"/id")
if (option.id.includes(" ")){
createError("'"+path+"/id' | option id can't contain space characters!")
}
if (option.id.length > 20){
createError("'"+path+"/id' | option id max lenght is 20!")
}
//name
checkType(option.name,"string",path+"/name")
if (option.name.length > 100){
createWarn("'"+path+"/name' | if your name is too long it maybe doesn't look so good!")
}else if (option.name.length < 1){
createError("'"+path+"/name' | there is no name!")
}
//description
checkType(option.description,"string",path+"/description")
//icon
const emojiRegex = /(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/gi;
if (option.icon.length > 0){
const isEmoji = emojiRegex.test(option.icon)
if (isEmoji == false){
createError("'"+path+"/icon' | invalid emoji or custom discord emoji")
}
}
checkType(option.icon,"string",path+"/icon")
//label
checkType(option.label,"string",path+"/label")
if (option.label.length < 1 && option.icon.length < 1){
createError("'"+path+"' | you need at least one of these: label, icon!")
}
//type
checkType(option.type,"string",path+"/type")
if (option.type != "ticket" && option.type != "website" && option.type != "role"){
createError("'"+path+"/type' | the type must be one of these: ticket, website, role!")
}
/**@type {"ticket"|"website"|"role"} */
const type = option.type
if (type == "ticket"){
//color
checkType(option.color,"string",path+"/color")
checkButtonColor(option.color,path+"/color")
//adminroles
checkDiscordArray("roleid",option.adminroles,path+"/adminroles")
//channelprefix
checkType(option.channelprefix,"string",path+"/channelprefix")
if (option.channelprefix.includes(" ")){
createWarn("'"+path+"/channelprefix' | this prefix can't contain spaces!")
}
//category
checkType(option.category,"string",path+"/category")
if (option.category.length > 0){
checkDiscord("categoryid",option.category,path+"/category")
}
//message
checkType(option.message,"string",path+"/message")
//enableDMmessage
checkType(option.enableDMMessage,"boolean",path+"/enableDMMessage")
//ticketmessage
checkType(option.ticketmessage,"string",path+"/ticketmessage")
}else if (type == "website"){
//url
checkType(option.url,"string",path+"/url")
if (option.url.includes(" ")){
createWarn("'"+path+"/url' | a url can't contain spaces")
}
if (option.url.length < 1){
createError("'"+path+"/url' | you have no url in this button")
}
if (!option.url.startsWith("https://") && !option.url.startsWith("http://") && !option.url.startsWith("discord://")){
createWarn("'"+path+"/url' | your url doesn't start with https or http!")
}
if (option.url.startsWith("http://")){
createWarn("'"+path+"/url' | your url is not a HTTPS link! discord maybe blocks this url!")
}
}else if (type == "role"){
//color
checkType(option.color,"string",path+"/color")
checkButtonColor(option.color,path+"/color")
//roles
checkDiscordArray("roleid",option.roles,path+"/roles")
//mode
checkType(option.mode,"string",path+"/mode")
if (option.mode != "add&remove" && option.mode != "add" && option.mode != "remove"){
createError("'"+path+"/mode' | mode must be one of these: add, remove, add&remove")
}
//enableDMmessage
checkType(option.enableDMMessage,"boolean",path+"/enableDMMessage")
}
}
const checkMessage = (input,path) => {
}
//--------------------------|
//--------------------------|
//checker => START HERE |
//--------------------------|
//--------------------------|
var configArray = ["main_color","server_id","auth_token","main_adminroles","prefix","languagefile","credits","status","system","options","messages"]
configArray.forEach((item) => {
if (config[item] == undefined){
throw new Error("\n\nMAIN ERROR: the item '"+item+"' doesn't exist in config.json")
}
})
checkHexColor(config.main_color,"main_color")
checkDiscord("serverid",config.server_id,"server_id")
checkToken(config.auth_token)
checkDiscordArray("roleid",config.main_adminroles,"main_adminroles")
checkString(config.prefix,1,15,"prefix","prefix")
//languagefile
checkType(config.languagefile,"string","languagefile")
const lf = config.languagefile
if (!lf.startsWith("custom") && !lf.startsWith("english") && !lf.startsWith("dutch") && !lf.startsWith("romanian") && !lf.startsWith("german") && !lf.startsWith("arabic") && !lf.startsWith("spanish")){
createError("'languagefile' | invalid language, more info in the wiki")
}
checkType(config.credits,"boolean","credits")
//status:
checkType(config.status.enabled,"boolean","status/enabled")
if (config.status.enabled){
if (config.status.type != "PLAYING" && config.status.type != "LISTENING" && config.status.type != "WATCHING"){
createError("'status/type' | not a valid status type!")
}
if (config.status.text.length < 1 || config.status.text.length > 40){
createError("'status/text' | text too long or short!")
}
}
//system:
if (config.system.ticket_channel){
if (config.system.ticket_channel.length < 16 || config.system.ticket_channel.length > 20 || !/^\d+$/.test(config.system.ticket_channel)){
createError("'system/ticket_channel' | this channel id is invalid")
}
}else createWarn("'"+path+"' | you have no ticket channel selected!")
checkType(config.system.max_allowed_tickets,"number","system/max_allowed_tickets")
checkType(config.system.enable_DM_Messages,"boolean","system/enable_DM_Messages")
checkType(config.system["has@everyoneaccess"],"boolean","system/has@everyoneaccess")
if (config.system.member_role != "" && config.system.member_role != " " && config.system.member_role != "false" && config.system.member_role != "null" && config.system.member_role != "0"){
checkDiscord("roleid",config.system.member_role,"system/member_role")
}else{
createWarn("'system/member_role' | You don't have a member role, but it's recommended!")
}
checkType(config.system.closeMode,"string","system/closeMode")
if (!["normal","adminonly"].includes(config.system.closeMode)){
createError("'system/closeMode' | the close mode must be adminonly or normal")
}
checkType(config.system.enable_transcript,"boolean","system/enable_transcript")
checkType(config.system.enable_DM_transcript,"boolean","system/enable_DM_transcript")
if (config.system.enable_transcript){
checkDiscord("channelid",config.system.transcript_channel,"system/transcript_channel")
}
//options
config.options.forEach((option,index) => {
checkOption(option,"options/"+index)
})
//discord check
/**
const discord = require("discord.js")
const {GatewayIntentBits,Partials} = discord
const client = new discord.Client({
intents:[
GatewayIntentBits.DirectMessages,
GatewayIntentBits.GuildInvites,
GatewayIntentBits.GuildMembers,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.Guilds,
GatewayIntentBits.MessageContent
],
partials:[Partials.Channel,Partials.Message]
})
await client.guilds.fetch()
if (!client.guilds.cache.find(g => g.id == config.server_id)){
createError("'server_id' | i'm not in a server with this id!")
}
*/
//the end
if (errorList.length > 0 || warnList.length > 0){
console.log("REPORT:\n===========================")
}
warnList.forEach((w) => {
const splitw = w.split("'")
if (splitw.length > 1){
var splitstring = chalk.yellow(splitw[0])+chalk.blue("'"+splitw[1]+"'")+chalk.yellow(splitw[2])
}else {var splitstring = chalk.yellow(splitw[0])}
console.log(splitstring)
})
errorList.forEach((e) => {
const splite = e.split("'")
if (splite.length > 1){
var splitstring = chalk.red(splite[0])+chalk.blue("'"+splite[1]+"'")+chalk.red(splite[2])
}else {var splitstring = chalk.red(splite[0])}
console.log(splitstring)
})
if (isError){
console.log("===========================")
console.log("=> "+chalk.bgRed("your bot doesn't work if you don't fix the above errors!"))
if (isWarn){
console.log("\n=> "+chalk.bgYellow("if you ignore warns, some things may work differently than expected!"))
}
process.exit(0)
}else if (isWarn == true && isError == false){
console.log("===========================")
console.log("=> "+chalk.bgYellow("if you ignore warns, some things may work differently than expected!"))
}
}
-331
View File
@@ -1,331 +0,0 @@
const discord = require('discord.js')
const bot = require('../index')
const client = bot.client
const config = bot.config
const l = bot.language
module.exports = () => {
//closebar
var closeBar = new discord.ActionRowBuilder()
.addComponents(
new discord.ButtonBuilder()
.setCustomId("closeTicketTrue")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setEmoji("✅")
)
.addComponents(
new discord.ButtonBuilder()
.setCustomId("closeTicketFalse")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setEmoji("❌")
)
var deleteBar = new discord.ActionRowBuilder()
.addComponents(
new discord.ButtonBuilder()
.setCustomId("deleteTicketTrue")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setEmoji("✅")
)
.addComponents(
new discord.ButtonBuilder()
.setCustomId("deleteTicketFalse")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setEmoji("❌")
)
var deleteBar1 = new discord.ActionRowBuilder()
.addComponents(
new discord.ButtonBuilder()
.setCustomId("deleteTicketTrue1")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setEmoji("✅")
)
.addComponents(
new discord.ButtonBuilder()
.setCustomId("deleteTicketFalse1")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setEmoji("❌")
)
//closebutton
var closeRowNormal = new discord.ActionRowBuilder()
.addComponents(
new discord.ButtonBuilder()
.setCustomId("closeTicket")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setLabel(l.buttons.close)
.setEmoji("🔒")
)
.addComponents(
new discord.ButtonBuilder()
.setCustomId("deleteTicket")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Danger)
.setLabel(l.buttons.delete)
.setEmoji("✖️")
)
var closeRowClosed = new discord.ActionRowBuilder()
.addComponents(
new discord.ButtonBuilder()
.setCustomId("deleteTicket1")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Danger)
.setLabel(l.buttons.delete)
.setEmoji("✖️")
)
.addComponents(
new discord.ButtonBuilder()
.setCustomId("sendTranscript")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setLabel(l.buttons.sendTranscript)
.setEmoji("📄")
)
.addComponents(
new discord.ButtonBuilder()
.setCustomId("reopenTicket")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Success)
.setLabel(l.buttons.reopen)
.setEmoji("✔")
)
var closeRowDisabled = new discord.ActionRowBuilder()
.addComponents(
new discord.ButtonBuilder()
.setCustomId("closeTicket")
.setDisabled(true)
.setStyle(discord.ButtonStyle.Secondary)
.setLabel(l.buttons.close)
.setEmoji("🔒")
)
.addComponents(
new discord.ButtonBuilder()
.setCustomId("deleteTicket")
.setDisabled(true)
.setStyle(discord.ButtonStyle.Danger)
.setLabel(l.buttons.delete)
.setEmoji("✖️")
)
//NORMAL CLOSE
client.on("interactionCreate",interaction => {
if (!interaction.isButton()) return
if (interaction.customId != "closeTicket") return
interaction.deferUpdate()
interaction.message.edit({components:[closeBar]})
})
client.on("interactionCreate",interaction => {
if (!interaction.isButton()) return
if (interaction.customId != "closeTicketFalse") return
interaction.deferUpdate()
interaction.message.edit({components:[closeRowNormal]})
})
var closeTicketButtonChecker = false
client.on("interactionCreate",async interaction => {
if (!interaction.isButton()) return
if (interaction.customId != "closeTicketTrue") return
interaction.deferUpdate()
if (closeTicketButtonChecker == true) return
closeTicketButtonChecker = true
if (config.system.closeMode == "adminonly"){
const permsmember = client.guilds.cache.find(g => g.id == interaction.guild.id).members.cache.find(m => m.id == interaction.member.id)
if (config.main_adminroles.some((item)=>{return permsmember.roles.cache.has(item)}) == false && !permsmember.permissions.has("Administrator") && !permsmember.permissions.has("ManageGuild")){
try {
return msg.member.send({embeds:[bot.errorLog.noPermsMessage]})
}catch{
return msg.channel.send({embeds:[bot.errorLog.noPermsMessage]})
}
}
}
interaction.message.edit({components:[closeRowDisabled]})
/**
* @type {String}
*/
const name = interaction.channel.name
var prefix = ""
const tickets = config.options
tickets.forEach((ticket) => {
if (name.startsWith(ticket.channelprefix)){
prefix = ticket.channelprefix
}
})
await require("./ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"close")
closeTicketButtonChecker = false
})
var closeTicket1ButtonChecker = false
client.on("interactionCreate",async interaction => {
if (!interaction.isButton()) return
if (interaction.customId != "closeTicketTrue1") return
interaction.deferUpdate()
if (closeTicket1ButtonChecker == true) return
closeTicket1ButtonChecker = true
if (config.system.closeMode == "adminonly"){
const permsmember = client.guilds.cache.find(g => g.id == interaction.guild.id).members.cache.find(m => m.id == interaction.member.id)
if (config.main_adminroles.some((item)=>{return permsmember.roles.cache.has(item)}) == false && !permsmember.permissions.has("Administrator") && !permsmember.permissions.has("ManageGuild")){
try {
return interaction.member.send({embeds:[bot.errorLog.noPermsMessage]})
}catch{
return interaction.channel.send({embeds:[bot.errorLog.noPermsMessage]})
}
}
}
const closedButtonDisabled = new discord.ActionRowBuilder()
.addComponents([
new discord.ButtonBuilder()
.setCustomId("closeTicketTrue1")
.setDisabled(true)
.setStyle(discord.ButtonStyle.Secondary)
.setEmoji("🔒")
])
interaction.message.edit({components:[closedButtonDisabled]})
interaction.channel.messages.fetchPinned().then((messages) => {
messages.first().edit({components:[closeRowDisabled]})
})
/**
* @type {String}
*/
const name = interaction.channel.name
var prefix = ""
const tickets = config.options
tickets.forEach((ticket) => {
if (name.startsWith(ticket.channelprefix)){
prefix = ticket.channelprefix
}
})
await require("./ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"close")
closeTicket1ButtonChecker = false
})
//NORMAL DELETE
client.on("interactionCreate",interaction => {
if (!interaction.isButton()) return
if (interaction.customId != "deleteTicket") return
interaction.deferUpdate()
interaction.message.edit({components:[deleteBar]})
})
client.on("interactionCreate",interaction => {
if (!interaction.isButton()) return
if (interaction.customId != "deleteTicketFalse") return
interaction.deferUpdate()
interaction.message.edit({components:[closeRowNormal]})
})
var deleteTicketButtonChecker = false
client.on("interactionCreate",async interaction => {
if (!interaction.isButton()) return
if (interaction.customId != "deleteTicketTrue") return
interaction.deferUpdate()
if (deleteTicketButtonChecker == true) return
deleteTicketButtonChecker = true
const permsmember = client.guilds.cache.find(g => g.id == interaction.guild.id).members.cache.find(m => m.id == interaction.member.id)
if (config.main_adminroles.some((item)=>{return permsmember.roles.cache.has(item)}) == false && !permsmember.permissions.has("Administrator") && !permsmember.permissions.has("ManageGuild")){
try {
return interaction.member.send({embeds:[bot.errorLog.noPermsMessage]})
}catch{
return interaction.channel.send({embeds:[bot.errorLog.noPermsMessage]})
}
}
/**
* @type {String}
*/
const name = interaction.channel.name
var prefix = ""
const tickets = config.options
tickets.forEach((ticket) => {
if (name.startsWith(ticket.channelprefix)){
prefix = ticket.channelprefix
}
})
await require("./ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"delete")
deleteTicketButtonChecker = false
})
//CLOSED DELETE
client.on("interactionCreate",interaction => {
if (!interaction.isButton()) return
if (interaction.customId != "deleteTicket1") return
interaction.deferUpdate()
interaction.message.edit({components:[deleteBar1]})
})
client.on("interactionCreate",interaction => {
if (!interaction.isButton()) return
if (interaction.customId != "deleteTicketFalse1") return
interaction.deferUpdate()
interaction.message.edit({components:[closeRowClosed]})
})
var deleteTicket1ButtonChecker = false
client.on("interactionCreate",async interaction => {
if (!interaction.isButton()) return
if (interaction.customId != "deleteTicketTrue1") return
interaction.deferUpdate()
if (deleteTicket1ButtonChecker == true) return
deleteTicket1ButtonChecker = true
const permsmember = client.guilds.cache.find(g => g.id == interaction.guild.id).members.cache.find(m => m.id == interaction.member.id)
if (config.main_adminroles.some((item)=>{return permsmember.roles.cache.has(item)}) == false && !permsmember.permissions.has("Administrator") && !permsmember.permissions.has("ManageGuild")){
try {
return interaction.member.send({embeds:[bot.errorLog.noPermsMessage]})
}catch{
return interaction.channel.send({embeds:[bot.errorLog.noPermsMessage]})
}
}
/**
* @type {String}
*/
const name = interaction.channel.name
var prefix = ""
const tickets = config.options
tickets.forEach((ticket) => {
if (name.startsWith(ticket.channelprefix)){
prefix = ticket.channelprefix
}
})
await require("./ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"deletenotranscript")
deleteTicket1ButtonChecker = false
})
}
-53
View File
@@ -1,53 +0,0 @@
const fs = require('fs')
const readline = require("readline")
const rl = readline.createInterface({
input:process.stdin,
output:process.stdout,
terminal:true
})
const ask = async () => {
const chalk = await (await import("chalk")).default
rl.question(chalk.yellow("WARNING: are you sure that there are",chalk.red("no tickets open"),"at the moment? ")+chalk.green("(yes/no)")+"\n",(answer) => {
if (answer != "1" && !answer.toLowerCase().startsWith("yes")){
console.log(chalk.red("invalid answer"))
ask()
return
}
console.log(chalk.green("clearing data..."))
runClear()
rl.close()
})
}
ask()
const runClear = async () => {
const chalk = await (await import("chalk")).default
//console.log(chalk.blue("You can get a node.js warning below, just ignore that, it's not important!"))
const dataPaths = ["./storage/dynamicDB"]
var index = 0
dataPaths.forEach((path) => {
try {
fs.rmSync(path,{recursive:true,force:true})
}catch{
//console.log(path,"doesn't exist")
}
setTimeout(() => {
try{
fs.mkdirSync(path)
}catch{
//console.log(path,"already exists")
}
index++
},500)
})
setInterval(() => {
if (index >= 1){
console.log(chalk.bgGreen("All local data is cleared!"))
process.exit(1)
}
},500)
}
@@ -1,39 +0,0 @@
const localstorage = require("node-localstorage")
const ls = new localstorage.LocalStorage("./storage/dynamicDB")
/**
*
* @param {String} category
* @param {String} id
* @param {String} value
* @returns {Boolean}
*/
exports.set = (category,id,value) => {
ls.setItem(category+"--"+id,value.toString())
return true
}
/**
*
* @param {String} category
* @param {String} id
* @returns {String|false}
*/
exports.get = (category,id) => {
const result = ls.getItem(category+"--"+id)
if (!result) return false
return result
}
/**
*
* @param {String} category
* @param {String} id
* @returns {Boolean}
*/
exports.delete = (category,id) => {
ls.removeItem(category+"--"+id)
return true
}
-33
View File
@@ -1,33 +0,0 @@
//Do not change this without knowing what you are doing!!
const databaseFile = "local"
//Do not change this without knowing what you are doing!!
try {
var db = require("./dynamicfiles/local")
}catch{
console.log("I couldn't find the database file! (location: ./core/dynamicdatabase/storage.js:2)")
process.exit(1)
}
module.exports = db
/** =============================
** NOT READY YET
** must be dynamic
** =============================*/
//const LocalStorage = require("node-localstorage")
//
//const ticketStorage = new LocalStorage.LocalStorage("./storage/tickets")
//exports.ticketStorage = ticketStorage
//
//const userTicketStorage = new LocalStorage.LocalStorage("./storage/userTickets")
//exports.userTicketStorage = userTicketStorage
//
//const transcriptStorage = new LocalStorage.LocalStorage("./storage/transcripts")
//exports.transcriptStorage = transcriptStorage
//const ticketNumberStorage = new LocalStorage.LocalStorage("./storage/ticketNumbers")
//exports.ticketNumberStorage = ticketNumberStorage
-124
View File
@@ -1,124 +0,0 @@
const discord = require('discord.js')
const bot = require('../index')
const client = bot.client
const config = bot.config
const l = bot.language
const loadChalk = async () => {
return await (await import("chalk")).default
}
const embed = discord.EmbedBuilder
const c = discord.Colors
exports.noPermsMessage = new embed()
.setColor(c.Red)
.setTitle(":x: "+l.errors.noPermsTitle+" :x:")
.setDescription(l.errors.noPermsDescription)
/**@param {String} message */
exports.invalidArgsMessage = (message) => {
var x = new embed()
.setColor(c.Red)
.setTitle(":x: "+l.errors.missingArgsTitle+" :x:")
.setDescription(message)
return x
}
/**@param {String} message */
exports.serverError = (message) => {
var x = new embed()
.setColor(c.Orange)
.setTitle(":warning: "+l.errors.boterror+" :warning:")
.setDescription(message)
return x
}
/**@param {String[]} list */
exports.invalidIdChooseFromList = (list) => {
var x = new embed()
.setColor(c.Red)
.setTitle(":x: "+l.errors.chooseFromListTitle+" :x:")
.setDescription(l.errors.chooseFromListDescription+"\n`"+list.join("`\n`")+"`")
return x
}
exports.notInATicket = new embed()
.setColor(c.Red)
.setTitle(":x: "+l.errors.notInTicketTitle+" :x:")
.setDescription(l.errors.notInTicketDescription)
/**@param {String} message @param {String} title */
exports.success = (title,message) => {
var x = new embed()
.setColor(config.main_color)
.setTitle(":white_check_mark: "+title+" :white_check_mark:")
.setDescription(message)
return x
}
/**@param {String} message @param {String} title */
exports.warning = (title,message) => {
var x = new embed()
.setColor(c.Orange)
.setTitle(":warning: "+title+" :warning:")
.setDescription(message)
return x
}
/**@param {String} message the message @param {String} title the title @param {String} emoji an discord emoji @param {discord.ColorResolvable} color the embed color*/
exports.custom = (title,message,emoji,color) => {
var x = new embed()
.setColor(color)
.setTitle(emoji+" "+title+" "+emoji)
.setDescription(message)
return x
}
const normalLog = (debugString) => {
const fs = require("fs")
const content = fs.existsSync("./openticketdebug.txt") ? fs.readFileSync("./openticketdebug.txt").toString() : "==========================\n<OPEN TICKET DEBUG FILE:>\n=========================="
fs.writeFileSync("./openticketdebug.txt",content+"\nSYSTEM: "+debugString)
}
/**
*
* @param {"system"|"command"|"info"|"api"} type
* @param {String} message
* @param {[{key:String,value:String}]} params
*/
exports.log = async (type,message,params) => {
var ptype = type
const chalk = await loadChalk()
var paramstring = ""
if (params){
if (params.length > 0){
params.forEach((p) => {
paramstring = paramstring+p.key+": "+p.value+" "
})
}
}
const parameters = params ? "("+paramstring+")" : " "
if (ptype == "command"){
console.log(chalk.green("[command] ")+message+" "+chalk.yellow(parameters))
}else if (ptype == "info"){
console.log(chalk.blue("[info] ")+message+" "+chalk.yellow(parameters))
}else if (ptype == "system"){
console.log(chalk.green("[system] ")+message+" "+chalk.yellow(parameters))
}else if (ptype == "api"){
if (require("./api/modules/base").enableApiLogs == true){
console.log(chalk.red("[api v"+require("./api/api.json").version+"] ")+message+" "+chalk.yellow(parameters))
}
ptype = "api v"+require("./api/api.json").version
}
const cd = new Date()
const months = ["January","February","March","April","May","June","July","August","September","October","November","December"]
normalLog("["+cd.getDate()+" "+months[cd.getMonth()-1]+" "+cd.getFullYear()+" - "+cd.getSeconds()+":"+cd.getMinutes()+":"+cd.getHours()+"] ["+ptype+"] "+message+" "+parameters)
}
-116
View File
@@ -1,116 +0,0 @@
const bot = require("../index")
const config = bot.config
/**
* @param {Number} index
* @param {"id"|"name"|"description"|"icon"|"label"|"type"|"color"|"adminroles"|"channelprefix"|"category"|"message"|"enableDMMessage"|"ticketmessage"} value
*/
exports.getTicketValue = (index,value) => {
if (value == "id"){
return "newT"+config.options[index][value]
}
return config.options[index][value]
}
/**
* @param {Number} index
* @param {"id"|"name"|"description"|"icon"|"label"|"type"|"url"} value
*/
exports.getWebsiteValue = (index,value) => {
return config.options[index][value]
}
/**
* @param {Number} index
* @param {"id"|"name"|"description"|"icon"|"label"|"type"|"color"|"roles"|"mode"|"enableDMMessage"} value
*/
exports.getRoleValue = (index,value) => {
return config.options[index][value]
}
/**
* @param {"id"|"name"|"description"|"icon"|"label"|"type"|"color"|"adminroles"|"channelprefix"|"category"|"message"|"enableDMMessage"|"ticketmessage"} value
*/
exports.getTicketValues = (value) => {
var result = []
config.options.forEach((o) => {
if (value == "id"){
result.push("newT"+o[value])
}else{
result.push(o[value])
}
})
return result
}
/**
* @param {"id"|"name"|"description"|"icon"|"label"|"type"|"url"} value
*/
exports.getWebsiteValues = (value) => {
var result = []
config.options.forEach((o) => {
result.push(o[value])
})
return result
}
/**
* @param {"id"|"name"|"description"|"icon"|"label"|"type"|"color"|"roles"|"mode"|"enableDMMessage""} value
*/
exports.getRoleValues = (value) => {
var result = []
config.options.forEach((o) => {
result.push(o[value])
})
return result
}
class TicketOptions {
constructor() {
this.id = ""
this.name = ""
this.description = ""
this.icon = ""
this.label = ""
this.type = ""
this.color = ""
this.adminroles = ["",""]
this.channelprefix = ""
this.category = ""
this.message = ""
this.enableDMMessage = true
this.ticketmessage = ""
}
}
/**
*
* @param {String} id
* @returns {TicketOptions|false}
*/
exports.getOptionsById = (id) => {
var result = false
config.options.forEach((option) => {
if ("newT"+option.id == id){
result = option
}
})
return result
}
exports.exportedOptionClass = class {
constructor() {
this.id = ""
this.name = ""
this.description = ""
this.icon = ""
this.label = ""
this.type = ""
this.color = ""
this.adminroles = ["",""]
this.channelprefix = ""
this.category = ""
this.message = ""
this.enableDMMessage = true
this.ticketmessage = ""
}
}
-39
View File
@@ -1,39 +0,0 @@
const index = require("../index")
if (index.developerMode){
var config = require("../devConfig.json")
}else{var config = require("../config.json")}
var localLanguage = require("../language/english.json")
if (config.languagefile.startsWith("custom")) localLanguage = require("../language/custom.json")
else if (config.languagefile.startsWith("dutch")) localLanguage = require("../language/dutch.json")
else if (config.languagefile.startsWith("english")) localLanguage = require("../language/english.json")
else if (config.languagefile.startsWith("german")) localLanguage = require("../language/german.json")
else if (config.languagefile.startsWith("french")) localLanguage = require("../language/french.json")
else if (config.languagefile.startsWith("romanian")) localLanguage = require("../language/romanian.json")
else if (config.languagefile.startsWith("arabic")) localLanguage = require("../language/arabic.json")
else if (config.languagefile.startsWith("spanish")) localLanguage = require("../language/spanish.json")
const errorLog = async () => {
const chalk = await (await import("chalk")).default
console.log(chalk.red("Something went wrong when loading the language!")+"\nCheck the config file or create a ticket in our server!")
}
const successLog = async (language) => {
const chalk = await (await import("chalk")).default
console.log(chalk.green("loaded language "+language+"..."))
}
if (!localLanguage){
const runError = async () => {
await errorLog()
process.exit(1)
}
runError()
}else{
exports.language = localLanguage
successLog(config.languagefile)
}
-75
View File
@@ -1,75 +0,0 @@
const discord = require('discord.js')
const bot = require('../index')
const client = bot.client
const config = bot.config
const log = bot.errorLog.log
const l = bot.language
const storage = bot.storage
const APIEvents = require("./api/modules/events")
module.exports = async () => {
const chalk = await (await import("chalk")).default
client.on("interactionCreate",(interaction) => {
if (!interaction.isButton()) return
if (!interaction.customId.startsWith("newR")) return
interaction.deferUpdate()
if (interaction.customId.startsWith("newR")){
const optionid = interaction.customId.split("newR")[1]
if (!optionid){
interaction.reply({embeds:[bot.errorLog.serverError(l.errors.roleDoesntExist)]})
return
}
try {
const option = require("./utils/getButton").getOption(optionid)
/**@type {"add"|"remove"|"add&remove"} */
const mode = option.mode
const user = interaction.member
if (mode == "add"){
option.roles.forEach((role) => {
interaction.guild.members.cache.find(u => u.id == user.id).roles.add(role)
log("system","added role (reaction roles)",[{key:"user",value:interaction.user.tag},{key:"role",value:role}])
const apirole = interaction.guild.roles.cache.find(r => r.id == role)
APIEvents.onReactionRole("add","add",apirole,interaction.user,interaction.channel,interaction.guild,new Date())
})
}else if (mode == "remove"){
option.roles.forEach((role) => {
interaction.guild.members.cache.find(u => u.id == user.id).roles.remove(role)
log("system","removed role (reaction roles)",[{key:"user",value:interaction.user.tag},{key:"role",value:role}])
const apirole = interaction.guild.roles.cache.find(r => r.id == role)
APIEvents.onReactionRole("remove","remove",apirole,interaction.user,interaction.channel,interaction.guild,new Date())
})
}else if (mode == "add&remove"){
option.roles.forEach((role) => {
if (interaction.guild.members.cache.find(u => u.id == user.id).roles.cache.has(role)){
interaction.guild.members.cache.find(u => u.id == user.id).roles.remove(role)
log("system","added role (reaction roles)",[{key:"user",value:interaction.user.tag},{key:"role",value:role}])
const apirole = interaction.guild.roles.cache.find(r => r.id == role)
APIEvents.onReactionRole("add","add&remove",apirole,interaction.user,interaction.channel,interaction.guild,new Date())
}else {
interaction.guild.members.cache.find(u => u.id == user.id).roles.add(role)
log("system","removed role (reaction roles)",[{key:"user",value:interaction.user.tag},{key:"role",value:role}])
const apirole = interaction.guild.roles.cache.find(r => r.id == role)
APIEvents.onReactionRole("remove","add&remove",apirole,interaction.user,interaction.channel,interaction.guild,new Date())
}
})
}
}catch{
interaction.channel.send({embeds:[bot.errorLog.serverError(l.errors.somethingWentWrong)]})
}
}
})
}
-24
View File
@@ -1,24 +0,0 @@
const discord = require("discord.js")
const bot = require("../../index")
const client = require("../../index").client
const config = bot.config
const getoptions = require("../getoptions")
module.exports = async () => {
const chalk = (await import("chalk")).default
console.log(chalk.red("\nINSTRUCTIONS:\n\n1: Run the command you want to delete in discord.\n2: You get the message 'This command is now deleted!'\n3: There is also a message in the console that says the command is deleted.\n4: reload your discord."))
client.on("interactionCreate",(interaction) => {
if (!interaction.isChatInputCommand()) return console.log("this isn't a command!")
interaction.reply({content:"This command is now deleted!"})
try {
client.application.commands.delete(interaction.commandId,interaction.guild.id).then(() => {
console.log("deleted the command",chalk.blue(interaction.commandName),"(id:",interaction.commandId+")")
})
}catch{
console.log(chalk.red("something went wrong by the deleting of this command!"))
}
})
}
-198
View File
@@ -1,198 +0,0 @@
const discord = require("discord.js")
const bot = require("../../index")
const client = require("../../index").client
const config = bot.config
const getoptions = require("../getoptions")
const act = discord.ApplicationCommandType
const acot = discord.ApplicationCommandOptionType
module.exports = async () => {
const chalk = (await import("chalk")).default
const sid = config.server_id
const ids = getoptions.getTicketValues("id")
/**@type {[{name:String,value:String}]} */
var choices = []
ids.forEach((id) => {
const option = getoptions.getOptionsById(id)
if (option.type == "ticket"){
choices.push({name:option.name,value:option.id})
}
})
/**@type {[{name:String,value:String}]} */
var msgchoices = []
config.messages.forEach((msg) => {
msgchoices.push({name:msg.id,value:msg.id})
})
var readystats = 0
process.stdout.write("[status] there are "+chalk.blue("0 out of 10")+" commands ready! (this can take up to 40 seconds)")
setInterval(() => {
process.stdout.cursorTo(0)
process.stdout.write("[status] there are "+chalk.blue(readystats+" out of 9")+" commands ready! (this can take up to 40 seconds)")
if (readystats >= 10){
console.log(chalk.green("\nready!"))
console.log(chalk.bgBlue("you can now start the bot with 'npm start'!"))
process.exit(1)
}
},100)
//create a ticket (/new or /ticket)
client.application.commands.create({
name:"ticket",
description:"Create a ticket!",
defaultPermission:true,
type:act.ChatInput,
options:[
{
type:acot.String,
name:"type",
description:"The type of ticket.",
required:true,
choices:choices
}
]
},sid).then(() => {
readystats++
})
client.application.commands.create({
name:"new",
description:"Create a ticket!",
defaultPermission:true,
type:act.ChatInput,
options:[
{
type:acot.String,
name:"type",
description:"The type of ticket.",
required:true,
choices:choices
}
]
},sid).then(() => {
readystats++
})
//help
client.application.commands.create({
name:"help",
description:"The help menu",
defaultPermission:true,
type:act.ChatInput
},sid).then(() => {
readystats++
})
//close
client.application.commands.create({
name:"close",
description:"Close the current ticket.",
defaultPermission:true,
type:act.ChatInput
},sid).then(() => {
readystats++
})
//delete
client.application.commands.create({
name:"delete",
description:"Delete the current ticket.",
defaultPermission:true,
type:act.ChatInput
},sid).then(() => {
readystats++
})
//msg
client.application.commands.create({
name:"message",
description:"Create a ticket message.",
defaultPermission:true,
type:act.ChatInput,
options:[
{
type:acot.String,
name:"id",
description:"The message id.",
required:true,
choices:msgchoices,
max_length:30
}
]
},sid).then(() => {
readystats++
})
//add
client.application.commands.create({
name:"add",
description:"Add people to this ticket.",
defaultPermission:true,
type:act.ChatInput,
options:[
{
type:acot.User,
name:"user",
description:"The user to add.",
required:true
}
]
},sid).then(() => {
readystats++
})
//remove
client.application.commands.create({
name:"remove",
description:"Remove people from this ticket.",
defaultPermission:true,
type:act.ChatInput,
options:[
{
type:acot.User,
name:"user",
description:"The user to remove.",
required:true
}
]
},sid).then(() => {
readystats++
})
//rename
client.application.commands.create({
name:"rename",
description:"Rename this ticket.",
defaultPermission:true,
type:act.ChatInput,
options:[
{
type:acot.String,
name:"name",
description:"The new name (without prefix).",
required:true
}
]
},sid).then(() => {
readystats++
})
//reopen
client.application.commands.create({
name:"reopen",
description:"Reopen this ticket.",
defaultPermission:true,
type:act.ChatInput
},sid).then(() => {
readystats++
})
}
-335
View File
@@ -1,335 +0,0 @@
const discord = require('discord.js')
const bot = require('../index')
const client = bot.client
const config = bot.config
const log = bot.errorLog.log
const l = bot.language
const storage = bot.storage
const permsChecker = require("./utils/permisssionChecker")
exports.runThis = () => {
client.on("interactionCreate",async (interaction) => {
if (!interaction.isButton()) return
if (interaction.customId != "sendTranscript") return
interaction.deferUpdate()
const channelmessages = await interaction.channel.messages.fetch()
channelmessages.sweep((msgSweep) => {
return msgSweep.author.id == client.user.id
})
var fileattachment = await require("./transcript").createTranscript(channelmessages,interaction.channel)
if (fileattachment == false){
log("system","internal error: transcript is not created!")
interaction.channel.send({embeds:[bot.errorLog.serverError(l.errors.somethingWentWrongTranscript)]})
return
}
interaction.channel.send({content:"**"+l.messages.hereIsTheTranscript+"**",files:[fileattachment]})
})
}
/**
*
* @param {discord.GuildMember} member
* @param {discord.TextChannel} channel
* @param {String} prefix
* @param {"delete"|"close"|"deletenotranscript"} mode
*/
exports.NEWcloseTicket = async (member,channel,prefix,mode) => {
const guild = channel.guild
const user = member.user
const chalk = await (await import("chalk")).default
const channelmessages = await channel.messages.fetch()
//start code
//remove ot bot from transcript
channelmessages.sweep((msgSweep) => {return msgSweep.author.id == client.user.id})
/**@type {String}*/
const channelname = channel.name
const ticketOpenerChannelName = channelname.split(prefix)[1]
//get user that opened the ticket
var getuserID = storage.get("userTicketStorage",channel.id)
try {
var ticketOpener = client.users.cache.find(u => u.id === getuserID)
var isDatabaseError = false
}catch{var isDatabaseError = true}
if (!ticketOpener){
console.log(chalk.red("[database error]"),"something went wrong when getting the data in the database.\nNo panic, this error fixes itself!")
var isDatabaseError = true
}
var enableTranscript = true
var deleteRequired = false
if (mode == "delete"){
//delete
//check perms
if (!guild) return
if (!permsChecker.command(user.id,guild.id)){
permsChecker.sendUserNoPerms(user)
return
}
//start delete proccess
deleteRequired = true
await channel.send({content:"**"+l.messages.gettingdeleted+"**"})
log("system","deleted a ticket",[{key:"user",value:user.tag},{key:"ticket",value:channel.name}])
if (!isDatabaseError) storage.set("ticketStorage",getuserID,Number(storage.get("ticketStorage",getuserID)) - 1)
//getID & send DM & send api event
await channel.messages.fetchPinned().then(msglist => {
var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return false
const ticketId = firstmsg.embeds[0].footer.text.split("Ticket Type: ")[1]
const ticketData = require("./getoptions").getOptionsById("newT"+ticketId)
require("./api/modules/events").onTicketDelete(user,channel,guild,new Date(),{name:channel.name,status:"deleted",ticketOptions:ticketData})
if (!firstmsg.embeds[0].author) return false
const id = firstmsg.embeds[0].author.name
if (!id) return false
try{
if (config.system.enable_DM_Messages){
member.send({embeds:[bot.errorLog.custom(l.messages.deletedTicketDmTitle,l.messages.deletedTicketDmDescription,":ticket:",config.main_color)]})
}
}
catch{log("system","can't send DM to member, member doesn't allow dm's")}
})
}else if (mode == "close"){
//close
//check perms
if (config.system.closeMode == "adminonly"){
if (!guild) return
if (!permsChecker.command(user.id,guild.id)){
permsChecker.sendUserNoPerms(user)
return
}
}
//set new permissions
var permissionArray = []
const pfb = discord.PermissionFlagsBits
if (!isDatabaseError) permissionArray.push({
id:ticketOpener,
type:"member",
allow:[pfb.ViewChannel],
deny:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages]
})
permissionArray.push({
id:guild.roles.everyone,
type:"role",
deny:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel]
})
//add main adminroles
config.main_adminroles.forEach((role,index) => {
try {
const adminrole = guild.roles.cache.find(r => r.id == role)
if (!adminrole) return
permissionArray.push({
id:adminrole,
type:"role",
allow:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel]
})
}catch{
log("system","invalid role! At 'config.json => main_adminroles:"+index)
}
})
//add ticket adminroles
await channel.messages.fetchPinned().then(msglist => {
var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return false
const ticketId = firstmsg.embeds[0].footer.text.split("Ticket Type: ")[1]
const ticketData = require("./getoptions").getOptionsById("newT"+ticketId)
if (!ticketData) return
/**
* @type {String[]}
*/
const ticketadmin = ticketData.adminroles
ticketadmin.forEach((role,index) => {
if (!config.main_adminroles.includes(role)){
try {
const adminrole = guild.roles.cache.find(r => r.id == role)
if (!adminrole) return
permissionArray.push({
id:adminrole,
type:"role",
allow:[pfb.AddReactions,pfb.ViewChannel],
deny:[pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages]
})
}catch{
log("system","invalid role! At 'config.json => options/ticket/...:"+index)
}
}
})
})
channel.permissionOverwrites.set(permissionArray)
//message
var closeButtonRow = new discord.ActionRowBuilder()
.addComponents(
new discord.ButtonBuilder()
.setCustomId("deleteTicket1")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Danger)
.setLabel(l.buttons.delete)
.setEmoji("✖️")
)
.addComponents(
new discord.ButtonBuilder()
.setCustomId("sendTranscript")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setLabel(l.buttons.sendTranscript)
.setEmoji("📄")
)
.addComponents(
new discord.ButtonBuilder()
.setCustomId("reopenTicket")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Success)
.setLabel(l.buttons.reopen)
.setEmoji("✔")
)
const embed = new discord.EmbedBuilder()
.setColor(config.main_color)
.setTitle(":lock: "+l.messages.closedTitle+" :lock:")
.setDescription(l.messages.closedDescription)
channel.send({embeds:[embed],components:[closeButtonRow]})
log("system","closed a ticket",[{key:"user",value:user.tag},{key:"ticket",value:channel.name}])
//getID & send DM & send api event
await channel.messages.fetchPinned().then(msglist => {
var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return false
const ticketId = firstmsg.embeds[0].footer.text.split("Ticket Type: ")[1]
const ticketData = require("./getoptions").getOptionsById("newT"+ticketId)
require("./api/modules/events").onTicketClose(user,channel,guild,new Date(),{name:channel.name,status:"closed",ticketOptions:ticketData})
const id = firstmsg.embeds[0].author.name
if (!id) return false
try{
if (config.system.enable_DM_Messages){
member.send({embeds:[bot.errorLog.custom(l.messages.closedTicketDmTitle,l.messages.closedTicketDmDescription,":ticket:",config.main_color)]})
}
}
catch{log("system","can't send DM to member, member doesn't allow dm's")}
})
}else if (mode == "deletenotranscript"){
//delete with no transcript
//check perms
if (!guild) return
if (!permsChecker.command(user.id,guild.id)){
permsChecker.sendUserNoPerms(user)
return
}
//start delete proccess
enableTranscript = false
deleteRequired = true
channel.send({content:"**"+l.messages.gettingdeleted+"**"})
log("system","deleted a ticket",[{key:"user",value:user.tag},{key:"ticket",value:channel.name}])
if (!isDatabaseError) storage.set("ticketStorage",getuserID,Number(storage.get("ticketStorage",getuserID)) - 1)
//getID & send DM & send api event
await channel.messages.fetchPinned().then(msglist => {
var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return false
const ticketId = firstmsg.embeds[0].footer.text.split("Ticket Type: ")[1]
const ticketData = require("./getoptions").getOptionsById("newT"+ticketId)
require("./api/modules/events").onTicketDelete(user,channel,guild,new Date(),{name:channel.name,status:"deleted",ticketOptions:ticketData})
const id = firstmsg.embeds[0].author.name
if (!id) return false
try{
if (config.system.enable_DM_Messages){
member.send({embeds:[bot.errorLog.custom(l.messages.deletedTicketDmTitle,l.messages.deletedTicketDmDescription,":ticket:",config.main_color)]})
}
}
catch{log("system","can't send DM to member, member doesn't allow dm's")}
})
}
if (enableTranscript == true && mode != "deletenotranscript"){
if (config.system.enable_transcript || config.system.enable_DM_transcript){
var fileattachment = await require("./transcript").createTranscript(channelmessages,channel)
if (fileattachment == false){log("system","internal error: transcript is not created!");return}
}
if (config.system.enable_transcript){
const transcriptEmbed = new discord.EmbedBuilder()
.setColor(config.main_color)
.setTitle(l.messages.newTranscriptTitle)
.setAuthor({name:user.username,iconURL:user.displayAvatarURL({format:"png"})})
.setDescription(l.messages.newTranscriptDescription)
.setFooter({text:"ticket: "+channelname})
guild.channels.cache.find(c => c.id == config.system.transcript_channel).send({
embeds:[transcriptEmbed],
files:[fileattachment]
})
}
if (config.system.enable_DM_transcript){
const transcriptEmbed = new discord.EmbedBuilder()
.setColor(config.main_color)
.setTitle(l.messages.newTranscriptTitle)
.setDescription(l.messages.newTranscriptDescription)
.setFooter({text:"ticket: "+channelname})
if (!isDatabaseError) ticketOpener.send({
embeds:[transcriptEmbed],
files:[fileattachment]
})
}
}
if (deleteRequired){
const timer = () => {return new Promise((resolve,reject) => {
setTimeout(() => {resolve(true)},7000)
})}
await timer()
await channel.delete()
}
}
-98
View File
@@ -1,98 +0,0 @@
const discord = require('discord.js')
const bot = require('../index')
const client = bot.client
const config = bot.config
const getButton = require("./utils/getButton")
const l = bot.language
/**
*
* @param {String} id the id from an open-ticket embed
* @returns {{embed:discord.EmbedBuilder,componentRows:discord.MessageActionRow[]}} discord embed
*/
exports.createEmbed = (id) => {
//-----------------------------------
//general importing
const data = require("./utils/getTicketMessages").getTicketMessage(id)
/**@type {discord.ButtonBuilder[]}*/
var buttons = []
/**@type {getButton.rawButtonData[]} */
var buttonData = []
data.options.forEach((option) => {
var button = getButton.getButton(option)
var localButtonData = getButton.getOption(option)
if (button) buttons.push(button)
if (localButtonData) buttonData.push(localButtonData)
})
//-----------------------------------
//-----------------------------------
//create the embed
const embed = new discord.EmbedBuilder()
.setTitle(data.name)
if (data.enableFooter) embed.setFooter({text:data.footer})
if (data.enableThumbnail) embed.setThumbnail(data.thumbnail)
if (data.enableCustomColor){
embed.setColor(data.color)
}else{
embed.setColor(config.main_color)
}
var description = data.description
if (data.enableTicketExplaination){
description = description+"\n\n__"+l.messages.chooseCategory+"__\n"
var ticketExplainations = []
buttonData.forEach((button) => {
var explaination = button.icon+" **"+button.name+":**\n"+button.description
ticketExplainations.push(explaination)
})
description = description+ticketExplainations.join("\n\n")
}
if (data.enableMaxTicketsWarning){
description = description+"\n\n"+l.commands.maxTicketWarning.replace("{0}",config.system.max_allowed_tickets)
}
embed.setDescription(description)
//-----------------------------------
//-----------------------------------
//create the components
var AmountOfRows = Math.ceil(buttons.length / 4)
var currentRow = 0
/**
* @type {discord.MessageActionRow[]}
*/
var componentRows = []
for (let i = AmountOfRows; i > 0; i--){
componentRows.push(new discord.ActionRowBuilder())
}
buttons.forEach((button,index) => {
componentRows[currentRow].addComponents([button])
if (index == 3 || index == 7 || index == 11 || index == 15 || index == 19 || index == 23 || index == 27 || index == 31 || index == 35 || index == 39){
currentRow = currentRow + 1
}
})
//-----------------------------------
//return everything
/**
* @type {{embed:discord.EmbedBuilder,componentRows:discord.MessageActionRow[]}}
*/
const returnedData = {embed:embed,componentRows:componentRows}
return returnedData
}
-208
View File
@@ -1,208 +0,0 @@
const discord = require('discord.js')
const bot = require('../index')
const client = bot.client
const config = bot.config
const l = bot.language
const log = bot.errorLog.log
const getconfigoptions = require("./getoptions")
const storage = bot.storage
module.exports = () => {
var closeButton = new discord.ActionRowBuilder()
.addComponents(
new discord.ButtonBuilder()
.setCustomId("closeTicket")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setLabel(l.buttons.close)
.setEmoji("🔒")
)
.addComponents(
new discord.ButtonBuilder()
.setCustomId("deleteTicket")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Danger)
.setLabel(l.buttons.delete)
.setEmoji("✖️")
)
//ticket button click / create ticket
client.on("interactionCreate",(interaction) => {
if (interaction.isChatInputCommand() && (interaction.commandName == "new" || interaction.commandName == "ticket")){
var customId = "newT"+interaction.options.getString("type")
}else if (interaction.isButton()){
var customId = interaction.customId
}else return
if (interaction.isButton()){
if (interaction.customId.startsWith("newT")){
const optionid = interaction.customId.split("newT")[1]
if (!optionid){
interaction.reply({embeds:[bot.errorLog.serverError(l.errors.ticketDoesntExist)]})
return
}
}
}
if (getconfigoptions.getTicketValues("id").includes(customId)){
//ticketoptions from config
const currentTicketOptions = getconfigoptions.getOptionsById(customId)
if (currentTicketOptions == false || currentTicketOptions.type != "ticket") return interaction.reply({embeds:[bot.errorLog.serverError(l.errors.anotherOption)]})
if (interaction.isButton()){
interaction.deferUpdate()
}else if (interaction.isChatInputCommand()){
interaction.reply({embeds:[bot.errorLog.success(l.messages.createdTitle,l.messages.createdDescription)]})
}
if (storage.get("ticketStorage",interaction.member.id) == null || storage.get("ticketStorage",interaction.member.id) == "false"|| Number(storage.get("ticketStorage",interaction.member.id)) < config.system.max_allowed_tickets){
try{
if (config.system.enable_DM_Messages){
interaction.member.send({embeds:[bot.errorLog.custom(l.messages.newTicketDmTitle,currentTicketOptions.message,":ticket:",config.main_color)]})
}
}
catch{log("system","can't send DM to member, member doesn't allow dm's")}
//update storage
storage.set("ticketStorage",interaction.member.id,Number(storage.get("ticketStorage",interaction.member.id))+1)
var ticketNumber = interaction.member.user.username
//set ticketName
var ticketName = currentTicketOptions.channelprefix+ticketNumber
var logsname = currentTicketOptions.name
//category
if (currentTicketOptions.category.length < 16 || currentTicketOptions.category.length > 20){
var newTicketCategory = null
}else{
var newTicketCategory = currentTicketOptions.category
}
var permissionsArray = []
const pfb = discord.PermissionFlagsBits
const guild = client.guilds.cache.find(g => g.id == interaction.guild.id)
//set everyone allowed
if (config.system['has@everyoneaccess']){
var everyoneAllowPerms = [pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel]
var everyoneDenyPerms = []
}else{
var everyoneAllowPerms = []
var everyoneDenyPerms = [pfb.ViewChannel]
}
permissionsArray.push({
id:interaction.guild.roles.everyone,
type:"role",
allow:everyoneAllowPerms,
deny:everyoneDenyPerms
})
//add the user that created the ticket
permissionsArray.push({
id:interaction.member.user,
type:"member",
allow:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel]
})
//add main adminroles
config.main_adminroles.forEach((role,index) => {
try {
const adminrole = guild.roles.cache.find(r => r.id == role)
if (!adminrole) return
permissionsArray.push({
id:adminrole,
type:"role",
allow:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel]
})
}catch{
log("system","invalid role! At 'config.json => main_adminroles:"+index)
}
})
//add ticket adminroles
/**
* @type {String[]}
*/
const ticketadmin = currentTicketOptions.adminroles
ticketadmin.forEach((role,index) => {
if (!config.main_adminroles.includes(role)){
try {
const adminrole = guild.roles.cache.find(r => r.id == role)
if (!adminrole) return
permissionsArray.push({
id:adminrole,
type:"role",
allow:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel]
})
}catch{
log("system","invalid role! At 'config.json => options/ticket/...:"+index)
}
}
})
//add member role
if (config.system.member_role != "" && config.system.member_role != " " && config.system.member_role != "false" && config.system.member_role != "null" && config.system.member_role != "0"){
try {
const userrole = guild.roles.cache.find(r => r.id == config.system.member_role)
if (!userrole) return
permissionsArray.push({
id:userrole,
type:"role",
deny:[pfb.ViewChannel]
})
}catch{
log("system","invalid role! At 'config.json => system/member_role")
}
}
//create the channel
interaction.guild.channels.create({
name:ticketName,
type:discord.ChannelType.GuildText,
parent:newTicketCategory,
reason:"A new ticket is created",
permissionOverwrites:permissionsArray
}).then((ticketChannel) => {
storage.set("userTicketStorage",ticketChannel.id,interaction.member.id)
var ticketEmbed = new discord.EmbedBuilder()
.setAuthor({name:interaction.user.id})
.setColor(config.main_color)
.setTitle(currentTicketOptions.name)
.setFooter({text:"Ticket Type: "+currentTicketOptions.id})
if (currentTicketOptions.ticketmessage.length > 0) ticketEmbed.setDescription(currentTicketOptions.ticketmessage)
ticketChannel.send({
content:"<@"+interaction.member.id+"> @here",
embeds:[ticketEmbed],
components:[closeButton]
}).then(firstmsg => {
firstmsg.pin()
})
log("system","created new ticket",[{key:"ticket",value:ticketName},{key:"user",value:interaction.user.tag}])
require("./api/modules/events").onTicketOpen(interaction.user,ticketChannel,interaction.guild,new Date(),{name:ticketName,status:"open",ticketOptions:currentTicketOptions})
})
}else{
try {
if (config.system.enable_DM_Messages){
interaction.member.send({embeds:[bot.errorLog.warning(l.errors.maxAmountTitle,l.errors.maxAmountDescription)]})
}
}
catch{log("system","can't send DM to member, member doesn't allow dm's")}
}
}
})
}
-212
View File
@@ -1,212 +0,0 @@
const discord = require('discord.js')
const bot = require('../index')
const client = bot.client
const config = bot.config
const log = bot.errorLog.log
const l = bot.language
const storage = bot.storage
module.exports = () => {
var closeRowNormal = new discord.ActionRowBuilder()
.addComponents(
new discord.ButtonBuilder()
.setCustomId("closeTicket")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setLabel(l.buttons.close)
.setEmoji("🔒")
)
.addComponents(
new discord.ButtonBuilder()
.setCustomId("deleteTicket")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Danger)
.setLabel(l.buttons.delete)
.setEmoji("✖️")
)
var closeRowClosed = new discord.ActionRowBuilder()
.addComponents(
new discord.ButtonBuilder()
.setCustomId("deleteTicket1")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Danger)
.setLabel(l.buttons.delete)
.setEmoji("✖️")
)
.addComponents(
new discord.ButtonBuilder()
.setCustomId("sendTranscript")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setLabel(l.buttons.sendTranscript)
.setEmoji("📄")
)
.addComponents(
new discord.ButtonBuilder()
.setCustomId("reopenTicket")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Success)
.setLabel(l.buttons.reopen)
.setEmoji("✔")
)
var reopenBar = new discord.ActionRowBuilder()
.addComponents(
new discord.ButtonBuilder()
.setCustomId("reopenTicketTrue")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setEmoji("✅")
)
.addComponents(
new discord.ButtonBuilder()
.setCustomId("reopenTicketFalse")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setEmoji("❌")
)
var reopenBar1 = new discord.ActionRowBuilder()
.addComponents(
new discord.ButtonBuilder()
.setCustomId("reopenTicketTrue1")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setEmoji("✅")
)
.addComponents(
new discord.ButtonBuilder()
.setCustomId("reopenTicketFalse1")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setEmoji("❌")
)
var reopenCommandBar = new discord.ActionRowBuilder()
.addComponents(
new discord.ButtonBuilder()
.setCustomId("reopenTicket1")
.setDisabled(false)
.setStyle(discord.ButtonStyle.Secondary)
.setEmoji("🔓")
)
/**
*
* @param {discord.Guild} guild
* @param {discord.TextBasedChannel} channel
* @param {discord.User} user
* @returns
*/
const reopenTicket = (guild,channel,user) => {
log("system","re-opened a ticket",[{key:"ticket",value:channel.name},{key:"user",value:user.tag}])
var permissionsArray = []
//set everyone allowed
if (config.system['has@everyoneaccess']){
var everyoneAllowPerms = [pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel]
var everyoneDenyPerms = []
}else{
var everyoneAllowPerms = []
var everyoneDenyPerms = [pfb.ViewChannel]
}
permissionsArray.push({
id:guild.roles.everyone,
type:"role",
allow:everyoneAllowPerms,
deny:everyoneDenyPerms
})
channel.permissionOverwrites.cache.forEach((p) => {
if (p.type == "member"){
permissionsArray.push({
id:p.id,
type:"member",
allow:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel],
deny:[]
})
}
})
channel.permissionOverwrites.set(permissionsArray)
require("./api/modules/events").onTicketReopen(user,channel,guild,new Date(),{name:channel.name,status:"reopened",ticketOptions:false})
}
//NORMAL WAY
client.on("interactionCreate",(interaction) => {
if (!interaction.isButton()) return
if (interaction.customId != "reopenTicket") return
interaction.deferUpdate()
interaction.message.edit({components:[reopenBar]})
})
client.on("interactionCreate",(interaction) => {
if (!interaction.isButton()) return
if (interaction.customId != "reopenTicketFalse") return
interaction.deferUpdate()
interaction.message.edit({components:[closeRowClosed]})
})
const pfb = discord.PermissionFlagsBits
client.on("interactionCreate",(interaction) => {
if (!interaction.isButton()) return
if (interaction.customId != "reopenTicketTrue") return
interaction.deferUpdate()
const embed = new discord.EmbedBuilder()
.setColor(config.main_color)
.setTitle(":unlock: "+l.messages.reopenTitle+" :unlock:")
.setDescription(l.messages.reopenDescription)
interaction.message.edit({embeds:[embed],components:[closeRowNormal]})
reopenTicket(interaction.guild,interaction.channel,interaction.user)
})
//COMMAND WAY
client.on("interactionCreate",(interaction) => {
if (!interaction.isButton()) return
if (interaction.customId != "reopenTicket1") return
interaction.deferUpdate()
interaction.message.edit({components:[reopenBar1]})
})
client.on("interactionCreate",(interaction) => {
if (!interaction.isButton()) return
if (interaction.customId != "reopenTicketFalse1") return
interaction.deferUpdate()
interaction.message.edit({components:[reopenCommandBar]})
})
client.on("interactionCreate",(interaction) => {
if (!interaction.isButton()) return
if (interaction.customId != "reopenTicketTrue1") return
interaction.deferUpdate()
const embed = new discord.EmbedBuilder()
.setColor(config.main_color)
.setTitle(":unlock: "+l.messages.reopenTitle+" :unlock:")
.setDescription(l.messages.reopenDescription)
interaction.message.edit({content:null,embeds:[embed],components:[closeRowNormal]})
reopenTicket(interaction.guild,interaction.channel,interaction.user)
})
}
-74
View File
@@ -1,74 +0,0 @@
const discord = require('discord.js')
const bot = require('../index')
const client = bot.client
const config = bot.config
const l = bot.language
/** @param {discord.TextBasedChannel} channel @returns {Promise<{ticketname:String,ticketopener:{discordjsuser:discord.User,name:String,id:String}>} */
const getUserInfo = (channel) => {
return new Promise((promiseresolve,reject) => {
//getID
var result = {
ticketopener:{
discordjsuser:"",
id:"/",
name:"/"
},
ticketname:"/"
}
channel.messages.fetchPinned().then(msglist => {
var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return false
const id = firstmsg.embeds[0].author.name ? firstmsg.embeds[0].author.name : false
result.ticketopener.id = id
const ticketopener = client.users.cache.find(u => u.id == id)
const name = ticketopener.tag
const channelname = channel.name
promiseresolve({ticketname:channelname,ticketopener:{discordjsuser:ticketopener,name:name,id:id}})
})
})
}
/**
*
* @param {discord.Message[]} messagecollection
* @param {discord.Channel} channel
* @returns new `discord.attachmentBuilder`
*/
exports.createTranscript = async (messagecollection,channel) => {
const ticketuserdata = await getUserInfo(channel)
require("./api/modules/events").onTranscriptCreation(messagecollection,channel,channel.guild,new Date())
try {
const cd = new Date()
const months = ["January","February","March","April","May","June","July","August","September","October","November","December"]
const dateString = cd.getDate()+" "+months[cd.getMonth()-1]+" "+cd.getFullYear()+" - "+cd.getSeconds()+":"+cd.getMinutes()+":"+cd.getHours()
const filearray = ["open ticket transcript:\ntranscript creation: "+dateString+"\nticket name: "+ticketuserdata.ticketname+"\nticket opener: "+ticketuserdata.ticketopener.name,"\nTRANSCRIPT START:"]
messagecollection.reverse()
messagecollection.forEach((msg) => {
const timestamp = new Date(msg.createdTimestamp)
if (msg.content){var content = msg.content}else{var content = "*empty message*"}
const msgstats = "files: "+msg.attachments.size+", embeds: "+msg.embeds.length
filearray.push("["+timestamp.getDate()+"/"+timestamp.getMonth()+"/"+timestamp.getFullYear()+", "+timestamp.getHours()+":"+timestamp.getMinutes()+":"+timestamp.getSeconds()+"|"+msg.author.tag+"] ["+msgstats+"]\n"+content+"\n")
})
if (filearray.length < 2) filearray.push("transcript is empty")
const filestring = filearray.join("\n")
const filebuff = Buffer.from(filestring,"utf-8")
return new discord.AttachmentBuilder(filebuff,{name:"transcript_"+ticketuserdata.ticketname+".txt",description:"An Open Ticket transcript"})
}catch(err){
console.log("[error] "+err)
return false
}
}
-3
View File
@@ -1,3 +0,0 @@
/**
* @typedef {String|Boolean} OTErrorType
*/
-95
View File
@@ -1,95 +0,0 @@
const discord = require("discord.js")
const bot = require("../../index")
const config = bot.config
const getoptions = require("../getoptions")
const l = bot.language
/**@returns {"DANGER"|"SUCCESS"|"PRIMARY"|"SECONDARY"} */
const getColor = (color) => {
const b = discord.ButtonStyle
if (color.toLowerCase() == "red"){
return b.Danger
}else if (color.toLowerCase() == "green"){
return b.Success
}else if (color.toLowerCase() == "blue" || color.toLowerCase() == "blurple"){
return b.Primary
}else if (color.toLowerCase() == "black" || color.toLowerCase() == "gray" || color.toLowerCase() == "grey"){
return b.Secondary
}else if (color == "DANGER" || color == "SECONDARY" || color == "SUCCESS" || color == "PRIMARY"){
return color
}else if (color.toLowerCase() == "none" || color.toLowerCase() == "false" || color.toLowerCase() == ""){
return b.Secondary
}else return b.Secondary
}
const getOption = (id) => {
const result = config.options.find((option) => option.id == id)
if (!result){return false}else return result
}
exports.getOption = getOption
/**
*
* @param {String} id
* @returns {discord.ButtonBuilder|false}
*/
exports.getButton = (id) => {
const option = getOption(id)
if (!option) return false
if (option.type == "ticket"){
var button = new discord.ButtonBuilder()
.setCustomId("newT"+option.id)
.setDisabled(false)
.setStyle(getColor(option.color))
if (option.label){button.setLabel(option.label)}
if (option.icon){button.setEmoji(option.icon)}
if (!option.label && !option.icon){button.setLabel("no label or emoji")}
}else if (option.type == "website"){
var button = new discord.ButtonBuilder()
.setDisabled(false)
.setStyle(discord.ButtonStyle.Link)
.setURL(option.url)
if (option.label){button.setLabel(option.label)}
if (option.icon){button.setEmoji(option.icon)}
if (!option.label && !option.icon){button.setLabel("no label or emoji")}
}else if (option.type == "role"){
var button = new discord.ButtonBuilder()
.setCustomId("newR"+option.id)
.setDisabled(false)
.setStyle(getColor(option.color))
if (option.label){button.setLabel(option.label)}
if (option.icon){button.setEmoji(option.icon)}
if (!option.label && !option.icon){button.setLabel("no label or emoji")}
}
return button
}
exports.rawButtonData = class {
constructor() {
this.id = ""
this.name = ""
this.description = ""
this.icon = ""
this.label = ""
this.type = ""
this.color = ""
this.enableDMMessage = true
this.url = ""
this.roles = ["",""]
this.mode = ""
this.adminroles = ["",""]
this.channelprefix = ""
this.category = ""
this.message = ""
this.ticketmessage = ""
}
}
-16
View File
@@ -1,16 +0,0 @@
const bot = require("../../index")
const config = bot.config
const l = bot.language
exports.getTicketMessage = (input) => {
var returned = config.messages.find(a => a.id == input)
if (returned){
return returned
}
var result = config.messages[0]
if (!result){
throw new Error("'messages' object in config.json is empty")
return
}
return result
}
-76
View File
@@ -1,76 +0,0 @@
const discord = require('discord.js')
const bot = require('../../index')
const client = bot.client
const config = bot.config
const log = bot.errorLog.log
const l = bot.language
const storage = bot.storage
/**
*
* @param {String} memberid
* @param {String} guildid
* @returns {Boolean} has permissions?
*/
exports.command = (memberid,guildid) => {
const permsmember = client.guilds.cache.find(g => g.id == guildid).members.cache.find(m => m.id == memberid)
if (config.main_adminroles.some((item)=>{return permsmember.roles.cache.has(item)}) == false && !permsmember.permissions.has("Administrator") && !permsmember.permissions.has("ManageGuild")){
return false
}else {return true}
}
/**
*
* @param {discord.User} user
* @returns {Boolean}
*/
exports.sendUserNoPerms = (user) => {
try {
user.send({embeds:[bot.errorLog.noPermsMessage]})
return true
}catch{
return false
}
}
/**
*
* @param {discord.User} user
* @returns {Boolean}
*/
exports.sendUserNoTicket = (user) => {
try {
user.send({embeds:[bot.errorLog.notInATicket]})
return true
}catch{
return false
}
}
/**
*
* @param {discord.TextChannel} channel
* @returns {Boolean}
*/
exports.sendChannelNoPerms = (channel) => {
try {
channel.send({embeds:[bot.errorLog.noPermsMessage]})
return true
}catch{
return false
}
}
/**
*
* @param {discord.TextChannel} channel
* @returns {Boolean}
*/
exports.sendChannelNoTicket = (channel) => {
try {
channel.send({embeds:[bot.errorLog.notInATicket]})
return true
}catch{
return false
}
}
+1
View File
@@ -0,0 +1 @@
[]
+1
View File
@@ -0,0 +1 @@
[]
+1
View File
@@ -0,0 +1 @@
[]
+1
View File
@@ -0,0 +1 @@
[]
+1
View File
@@ -0,0 +1 @@
[]
+11
View File
@@ -0,0 +1,11 @@
# Docker Compose for Open Ticket v4
version: '3'
services:
openticket:
build: .
volumes:
- openticket:/home/container
restart: no
container_name: open-ticket
volumes:
openticket:
+18
View File
@@ -0,0 +1,18 @@
# Docker File for Open Ticket v4
# Use the official Node.js 20 image from Docker Hub
FROM node:20-alpine
# Set pterodactyl working directory inside the container
WORKDIR /home/container
# Copy package.json and package-lock.json into the container
COPY package*.json ./
# Install dependencies
RUN npm install
# Copy the rest of your app's source code into the container
COPY . .
# Run the bot from index.js
CMD ["node", "index.js"]
+167 -165
View File
@@ -1,181 +1,183 @@
// __________ __________ ___________ ____ ____
// / ____ \ / ______ \ / | | \ | |
// | / \ | | | | | | |_______| | \ | |
// | | | | | |____| | | | | |\ \ | |
// | | | | | ________/ | |______ | | \ \ | |
// | | | | | | | _____| | | \ \ | |
// | | | | | | | | | | \ \ | |
// | | | | | | | |________ | | \ \| |
// | \____/ | | | | | | | \ |
// \__________/ |__| \__________| |__| \___|
/////////////// STARTUP FLAGS ///////////////
const flags = [
// Edit flags here when being unable to use the flags in the command prompt.
//PTERODACTYL PANEL
//add startup flags here (e.g. "--no-compile") when running via the panel
]
process.argv.push(...flags)
/////////////// STARTUP FLAGS ///////////////
/*
██████╗ ██████╗ ███████╗███╗ ██╗ ████████╗██╗ ██████╗██╗ ██╗███████╗████████╗
██╔═══██╗██╔══██╗██╔════╝████╗ ██║ ╚══██╔══╝██║██╔════╝██║ ██╔╝██╔════╝╚══██╔══╝
██║ ██║██████╔╝█████╗ ██╔██╗ ██║ ██║ ██║██║ █████╔╝ █████╗ ██║
██║ ██║██╔═══╝ ██╔══╝ ██║╚██╗██║ ██║ ██║██║ ██╔═██╗ ██╔══╝ ██║
╚██████╔╝██║ ███████╗██║ ╚████║ ██║ ██║╚██████╗██║ ██╗███████╗ ██║
╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝ ╚═╝
v4.1.3 - Made by DJj123dj & Contributors
const discord = require('discord.js')
const fs = require('fs')
const {GatewayIntentBits,Partials} = discord
const client = new discord.Client({
intents:[
GatewayIntentBits.DirectMessages,
GatewayIntentBits.GuildInvites,
GatewayIntentBits.GuildMembers,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.Guilds,
GatewayIntentBits.MessageContent
],
partials:[Partials.Channel,Partials.Message]
})
exports.client = client
Discord: https://discord.dj-dj.be
Docs: https://otdocs.dj-dj.be
Support Us: https://github.com/sponsors/DJj123dj/
*/
///////////////////////////////////////////
////////// COMPILATION + STARTUP //////////
///////////////////////////////////////////
const fs = require("fs")
const ts = require("typescript")
const {createHash,Hash} = require("crypto")
const nodepath = require('path')
const ansis = require("ansis")
client.setMaxListeners(30)
if (process.argv[2]){
if (process.argv[2].endsWith("d")){
var isDev = true
console.log("starting in dev mode...")
}else{var isDev = false}
}else{var isDev = false}
exports.developerMode = isDev
const language = require("./core/languageManager").language
exports.language = language
if (isDev){
try {
var config = require('./devConfig.json')
}catch{
console.log("devConfig.json not found! Trying the normal config...")
var config = require("./config.json")
}
}else{var config = require('./config.json')}
exports.config = config
exports.errorLog = require("./core/errorLogSystem")
const log = this.errorLog.log
client.on('ready',async () => {
var statusSet = false
const setStatus = (type,text) => {
if (statusSet == true) return
const getTypeEnum = (text) => {
if (text.toLowerCase() == "playing") return discord.ActivityType.Playing
else if (text.toLowerCase() == "listening") return discord.ActivityType.Listening
else if (text.toLowerCase() == "watching") return discord.ActivityType.Watching
else return discord.ActivityType.Listening
}
client.user.setActivity(text,{type:getTypeEnum(type)})
statusSet = true
log("system","loaded status",[{key:"type",value:type},{key:"text",value:text}])
}
const chalk = await (await import("chalk")).default
if (!process.argv[2]){
console.log(chalk.red("WELCOME TO OPEN TICKET!"))
log("info","open ticket ready",[{key:"version",value:require("./package.json").version},{key:"language",value:config.languagefile}])
console.log(chalk.blue("\n\nlogs:")+"\n============")
if (config.status.enabled){
setStatus(config.status.type,config.status.text)
}
log("system","bot logged in!")
await client.guilds.cache.find((g) => g.id == config.server_id).members.fetch()
return
}
if (process.argv[2] == "d"){
if (config.status.enabled){
setStatus(config.status.type,config.status.text)
/** ## What is this?
* This is a function which compares `./src/` with a hash stored in `./dist/hash.txt`.
* The hash is based on the modified date & file metadata of all files in `./src/`.
*
* If the hash is different, the bot will automatically re-compile.
* This will help you save CPU resources because the bot shouldn't re-compile when nothing has been changed :)
*
* @param {string} dir
* @param {Hash|null} upperHash
*/
function computeSourceHash(dir,upperHash){
const hash = upperHash ? upperHash : createHash("sha256")
const info = fs.readdirSync(dir,{withFileTypes:true})
for (const file of info) {
const fullPath = nodepath.join(dir,file.name)
if (file.isFile() && [".js",".ts",".jsx",".tsx"].some((ext) => file.name.endsWith(ext))){
const statInfo = fs.statSync(fullPath)
//compute hash using file metadata
const fileInfo = `${fullPath}:${statInfo.size}:${statInfo.mtimeMs}`
hash.update(fileInfo)
}else if (file.isDirectory()){
//recursively compute all folders
computeSourceHash(fullPath,hash)
}
}
//return when not being called recursively
if (!upperHash) {
return hash.digest("hex")
}
}
function requiresCompilation(){
//check hashes when not using "--compile-only" flag
if (process.argv.includes("--compile-only")) return true
if (!process.argv[2].startsWith("slash")){
console.log(chalk.red("WELCOME TO OPEN TICKET!"))
log("info","open ticket ready",[{key:"version",value:require("./package.json").version},{key:"language",value:config.languagefile}])
console.log("OT: Comparing prebuilds with source...")
const sourceHash = computeSourceHash("./src/")
const pluginHash = computeSourceHash("./plugins/")
const hash = sourceHash+":"+pluginHash
console.log(chalk.blue("\n\nlogs:")+"\n============")
if (config.status.enabled){
setStatus(config.status.type,config.status.text)
if (fs.existsSync("./dist/hash.txt")){
const distHash = fs.readFileSync("./dist/hash.txt").toString()
if (distHash === hash) return false
else return true
}else return true
}
function saveNewCompilationHash(){
const sourceHash = computeSourceHash("./src/")
const pluginHash = computeSourceHash("./plugins/")
const hash = sourceHash+":"+pluginHash
fs.writeFileSync("./dist/hash.txt",hash)
}
if (!process.argv.includes("--no-compile")){
const requiredDependencies = new Set()
if (fs.existsSync("./plugins")){
console.log("OT: Reading plugin.json files...")
for (const pluginDir of fs.readdirSync("./plugins")){
if (pluginDir === ".DS_Store") continue
const pluginPath = nodepath.join("./plugins", pluginDir)
if (!fs.statSync(pluginPath).isDirectory()) continue
const pluginJsonPath = nodepath.join(pluginPath, "plugin.json")
if (fs.existsSync(pluginJsonPath)){
try{
const pluginData = JSON.parse(fs.readFileSync(pluginJsonPath).toString())
if (pluginData.npmDependencies && Array.isArray(pluginData.npmDependencies)){
pluginData.npmDependencies.forEach((dep) => {
if (typeof dep === "string" && dep.trim()){
requiredDependencies.add(dep.trim())
}
})
}
}catch(err){
// skip invalid plugin.json files, will be caught later
}
}
}
if (requiredDependencies.size > 0){
console.log("OT: Checking plugin npm dependencies...")
/**@type {string[]} */
const missingDeps = []
for (const dep of requiredDependencies){
try{
require.resolve(dep)
}catch(err){
missingDeps.push(dep)
}
}
if (missingDeps.length > 0){
console.log(ansis.red("OT: ❌ Fatal Error --> Missing npm dependencies required by plugins:\n\n")+ansis.cyan(missingDeps.map((dep) => " - "+dep).join("\n")+"\n"))
console.log("OT: Please install missing dependencies using the following command:\n> "+ansis.bold.green("npm install " + missingDeps.join(" "))+"\n")
process.exit(1)
}
}
}
if (requiresCompilation()){
console.log("OT: Compilation Required...")
log("system","bot logged in!")
//REMOVE EXISTING BUILDS
console.log("OT: Removing Prebuilds...")
fs.rmSync("./dist",{recursive:true,force:true})
await client.guilds.cache.find((g) => g.id == config.server_id).members.fetch()
}else{
console.log(chalk.red("STARTING IN ")+chalk.blue("SLASH MODE")+chalk.red("..."))
console.log("logs:\n================")
console.log("client logged in...")
console.log("loading files...")
if (process.argv[3] == "enable"){
console.log(chalk.green("switching to slashEnable.js"))
require("./core/slashSystem/slashEnable")()
}else if (process.argv[3] == "disable"){
console.log(chalk.green("switching to slashDisable.js"))
require("./core/slashSystem/slashDisable")()
}else{
console.log(chalk.red("Internal Error: unknown slash mode!"))
//COMPILE TYPESCRIPT
console.log("OT: Compiling Typescript...")
const configPath = nodepath.resolve('./tsconfig.json')
const configFile = ts.readConfigFile(configPath,ts.sys.readFile)
//check for tsconfig errors
if (configFile.error){
const message = ts.formatDiagnosticsWithColorAndContext([configFile.error],ts.createCompilerHost({}))
console.error(message)
process.exit(1)
}
}
//load plugins
require("./core/api/pluginlauncher")()
})
//parse tsconfig file
const parsedConfig = ts.parseJsonConfigFileContent(configFile.config,ts.sys,nodepath.dirname(configPath))
if (!isDev){
require("./core/checker").checker()
//create program/compiler
const program = ts.createProgram({
rootNames:parsedConfig.fileNames,
options:parsedConfig.options
})
//emit all compiled files
const emitResult = program.emit()
//print emit errors/warnings (type errors)
const allDiagnostics = ts.getPreEmitDiagnostics(program).concat(emitResult.diagnostics)
const formattedDiagnostics = ts.formatDiagnosticsWithColorAndContext(allDiagnostics, ts.createCompilerHost(parsedConfig.options))
console.log(formattedDiagnostics)
if (emitResult.emitSkipped || allDiagnostics.find((d) => d.category == ts.DiagnosticCategory.Error || d.category == ts.DiagnosticCategory.Warning)){
console.log("OT: Compilation Failed!")
process.exit(1)
}
}else console.log("OT: No Compilation Required...")
//save new compilation hash
saveNewCompilationHash()
}
if (process.argv[2] && process.argv[2].startsWith("slash")){
//do nothing
}else{
var storage = require('./core/dynamicdatabase/storage')
exports.storage = storage
//commands
require('./commands/ticket')()
require("./commands/help")()
require("./commands/close")()
require("./commands/delete")()
require("./commands/rename")()
require("./commands/add")()
require("./commands/remove")()
require("./commands/reopen")()
//core
require('./core/ticketOpener')()
require("./core/ticketCloser").runThis()
require("./core/closebuttons")()
require("./core/reactionRoles")()
require("./core/ticketReopener")()
}
const APIEvents = require("./core/api/modules/events")
const debugLog = (debugString) => {
const content = fs.existsSync("./openticketdebug.txt") ? fs.readFileSync("./openticketdebug.txt").toString() : "==========================\n<OPEN TICKET DEBUG FILE:>\n=========================="
fs.writeFileSync("./openticketdebug.txt",content+"\nDEBUG: "+debugString)
}
const errorLog = (errorString,stack) => {
const content = fs.existsSync("./openticketdebug.txt") ? fs.readFileSync("./openticketdebug.txt").toString() : "==========================\n<OPEN TICKET DEBUG FILE:>\n=========================="
fs.writeFileSync("./openticketdebug.txt",content+"\nERROR: "+errorString+" STACK: "+stack)
}
client.on("debug", async (message) => {
if (message.startsWith("Provided token:")){
debugLog("Provided token: ***********bot token is invisible**************...")
return
}
debugLog(message)
});
process.on("uncaughtException",async (error,origin) => {
const chalk = await (await import("chalk")).default
console.log(chalk.red("\nOPEN TICKET ERROR: ")+error+"\n"+chalk.green("\nCreate a ticket in our support server for more information!\nIf you do this, you might help us to avoid a future bug!\n"))
errorLog(error.name+": "+error.message+" | origin: "+origin,error.stack)
APIEvents.onError(error.name+": "+error.message,new Date())
})
client.login(config.auth_token)
//START BOT
console.log("OT: Compilation Succeeded!")
if (process.argv.includes("--compile-only")) process.exit(0) //exit when only compile is required!
console.log("OT: Starting Bot!")
require("./dist/src/index.js")
-80
View File
@@ -1,80 +0,0 @@
{
"errors":{
"missingArgsTitle":"حجج باطلة",
"missingArgsDescription":"حجة مفقودة",
"noPermsTitle":"ليس لديك إذن",
"noPermsDescription":"ليس لديك إذن لاستخدام هذا\nأنت بحاجة إلى إذن 'ADMINISTRATOR' أو أن تكون في قائمة الأدوار المسموح بها!",
"chooseFromListTitle":"بطاقة التعريف غير صالحة",
"chooseFromListDescription":"اختر أحد المعرفات أدناه:",
"boterror":"مشكلة في الروبوت",
"notInTicketTitle":"أنت لست في تذكرة!",
"notInTicketDescription":"هذا الأمر لا يعمل خارج التذاكر!",
"ticketDoesntExist":"هذه التذكرة لم تعد موجودة!",
"roleDoesntExist":"هذا الدور لم يعد موجودًا!",
"anotherOption":"هذا الخيار ليس تذكرة بل نوع آخر!",
"maxAmountTitle":"بلغ الحد الأقصى!",
"maxAmountDescription":"لقد وصلت إلى الحد الأقصى لعدد التذاكر المسموح بها!\nلذلك لا يمكنك إنشاء واحدة جديدة!",
"somethingWentWrong":"**هناك خطأ ما!**\nالرجاء المحاولة مرة أخرى!",
"somethingWentWrongTranscript":"**حدث خطأ ما أثناء كتابة النص!**\nالرجاء المحاولة مرة أخرى!"
},
"commands":{
"userAddedTitle":"تمت إضافة المستخدم!",
"userAddedDescription":"{0} يضاف إلى هذه التذكرة!",
"userRemovedTitle":"تمت إزالة المستخدم!",
"userRemovedDescription":"{0} تمت إزالته من هذه التذكرة!",
"renameTitle":"تم تغيير الاسم!",
"renameWarning":"تحذير: يمكنك فقط تغيير اسم القناة مرتين في الدقيقة!\n(هذا يرجع إلى حدود معدل الخلاف)",
"closeTitle":"أغلق هذه التذكرة!",
"closeDescription":"يمكنك إغلاق هذه التذكرة بالضغط على الزر أدناه!",
"deleteTitle":"احذف هذه التذكرة!",
"deleteDescription":"يمكنك حذف هذه التذكرة بالضغط على الزر أدناه!",
"reopenTitle":"أعد فتح هذه التذكرة!",
"reopenDescription":"يمكنك إعادة فتح هذه التذكرة بالضغط على الزر أدناه!",
"ticketWarning":"التضمين في الرسالة أدناه!",
"maxTicketWarning":"**تحذير:** _يمكنك فقط إنشاء ملفات {0} تذكرة في كل مرة!_"
},
"helpMenu":{
"title":"قائمة التعليمات:",
"header1":"**اذهب إلى {0} لإنشاء تذكرة!**\n\n",
"header2":"**قم بتشغيل الأمر `/new` أو `/ticket` لإنشاء تذكرة!**\n\n",
"msgCmd":"تفرخ تضمين مع الأزرار. (المسؤولون فقط)",
"renameCmd":"إعادة تسمية تذكرة. (بدون مسافات)",
"closeCmd":"أغلق التذكرة.",
"deleteCmd":"حذف التذكرة.",
"addCmd":"أضف مستخدمًا إلى التذكرة.",
"removeCmd":"إزالة مستخدم من التذكرة.",
"reopenCmd":"أعد فتح التذكرة بعد إغلاقه."
},
"buttons":{
"close":"إغلاق التذكرة",
"delete":"حذف التذكرة",
"reopen":"إعادة فتح التذكرة",
"sendTranscript":"إرسال ملف النص"
},
"messages":{
"reopenTitle":"أعيد فتح هذه التذكرة!",
"reopenDescription":"لا تتردد في التحدث مرة أخرى!",
"closedTitle":"أغلقت هذه التذكرة!",
"closedDescription":"يمكن للمسؤولين فقط التحدث في هذه التذكرة الآن!\n\n*انقر فوق الزر أدناه لحذف هذه التذكرة أو إعادة فتحها!*",
"createdTitle":"تم إنشاء التذكرة!",
"createdDescription":"تم إنشاء تذكرتك ، يمكنك اكتشافها عن طريق ping",
"newTicketDmTitle":"تذكرة جديدة!",
"closedTicketDmTitle":"تم إغلاق التذكرة!",
"deletedTicketDmTitle":"تم حذف التذكرة!",
"closedTicketDmDescription":"تم إغلاق تذكرتك!",
"deletedTicketDmDescription":"تم حذف تذكرتك!",
"reopenTicketDmTitle":"أعيد فتح التذكرة!",
"reopenTicketDmDescription":"تم إعادة فتح تذكرتك!",
"newTranscriptTitle":"نسخة جديدة هنا!",
"newTranscriptDescription":"يمكنك العثور على النص في الملف النصي أعلاه!",
"hereIsTheTranscript":"هذا هو النص:",
"chooseCategory":"اختر فئة:",
"gettingdeleted":"...يتم حذف التذكرة"
}
}
-80
View File
@@ -1,80 +0,0 @@
{
"errors":{
"missingArgsTitle":"Invalid Arguments!",
"missingArgsDescription":"Missing Argument",
"noPermsTitle":"No Permissions!",
"noPermsDescription":"You don't have the correct roles to run this command!\nYou need the `ADMINISTRATOR` permission or be in the list of allowed roles!",
"chooseFromListTitle":"Invalid ID",
"chooseFromListDescription":"Choose one of the id's below:",
"boterror":"Bot Error!",
"notInTicketTitle":"You are not in a ticket!",
"notInTicketDescription":"This command doesn't work outside tickets!",
"ticketDoesntExist":"This ticket doesn't exist anymore!",
"roleDoesntExist":"This role doesn't exist anymore!",
"anotherOption":"This option is not a ticket but another type!",
"maxAmountTitle":"Max amount reached!",
"maxAmountDescription":"You reached the maximum number of tickets allowed!\nSo you can't create a new one!",
"somethingWentWrong":"**Something went wrong!**\nPlease try again another time!",
"somethingWentWrongTranscript":"Something went wrong while making the transcript!**\nPlease try again another time!"
},
"commands":{
"userAddedTitle":"User Added!",
"userAddedDescription":"{0} is added to this ticket!",
"userRemovedTitle":"User Removed!",
"userRemovedDescription":"{0} is removed from this ticket!",
"renameTitle":"The name is changed!",
"renameWarning":"Warning: you can only change the channel name 2 times per minute!\n(this is due discord rate limits)",
"closeTitle":"Close this ticket!",
"closeDescription":"You can close this ticket by clicking on the button below!",
"deleteTitle":"Delete this ticket!",
"deleteDescription":"You can delete this ticket by clicking on the button below!",
"reopenTitle":"Re-Open this ticket!",
"reopenDescription":"You can re-open this ticket by clicking on the button below!",
"ticketWarning":"The embed is in the message below!",
"maxTicketWarning":"**Warning:** _You can only create {0} ticket(s) at a time!_"
},
"helpMenu":{
"title":"Help Menu:",
"header1":"**Go to {0} to create a ticket!**\n\n",
"header2":"**Run the command `/new` or `/ticket` to create a ticket!**\n\n",
"msgCmd":"Spawn an embed with buttons. (admins only)",
"renameCmd":"Rename a ticket. (no spaces)",
"closeCmd":"Close a ticket.",
"deleteCmd":"Delete a ticket.",
"addCmd":"Add a user to the ticket.",
"removeCmd":"Remove a user from the ticket.",
"reopenCmd":"Re-Open a ticket after it was closed."
},
"buttons":{
"close":"Close Ticket",
"delete":"Delete Ticket",
"reopen":"Re-Open Ticket",
"sendTranscript":"Send Transcript File"
},
"messages":{
"reopenTitle":"Re-Opened this ticket!",
"reopenDescription":"Feel free to talk again!",
"closedTitle":"Closed this ticket!",
"closedDescription":"Only admins can talk in this ticket now!\n\n*Click on the button below to delete or to re-open this ticket!*",
"createdTitle":"Ticket Created!",
"createdDescription":"Your ticket is created, you can detect it by a ping!",
"newTicketDmTitle":"New Ticket!",
"closedTicketDmTitle":"Ticket Closed!",
"deletedTicketDmTitle":"Ticket Deleted!",
"closedTicketDmDescription":"Your ticket is closed!",
"deletedTicketDmDescription":"Your ticket is deleted!",
"reopenTicketDmTitle":"Ticket Re-opened!",
"reopenTicketDmDescription":"Your ticket is re-opened!",
"newTranscriptTitle":"A new transcript is here!",
"newTranscriptDescription":"You can find the transcript in the text file above!",
"hereIsTheTranscript":"Here is the transcript:",
"chooseCategory":"choose a category:",
"gettingdeleted":"Ticket is getting deleted..."
}
}
-79
View File
@@ -1,79 +0,0 @@
{
"errors":{
"missingArgsTitle":"Neplatné argumenty",
"missingArgsDescription":"Chybí argumenty",
"noPermsTitle":"Nemáš práva!",
"noPermsDescription":"Nemáš dostatečné práva na tento příkaz!\n Potřebuješ ADMINISTRATOR aby jsi mohl provést příkaz!",
"chooseFromListTitle":"Neplatné ID",
"chooseFromListDescription":"Vyber si z těchto ID:",
"boterror":"Error!",
"notInTicketTitle":"Nejsi v ticketu!",
"notInTicketDescription":"Tento příkaz nefunguje mimo tickety!",
"ticketDoesntExist":"Tento ticket už bohužel neexistuje!",
"roleDoesntExist":"Tato role bohužel neexistuje!",
"anotherOption":"Tato možnost není ticket ale něco jiného!",
"maxAmountTitle":"Maximální počet ticketů dosažen!",
"maxAmountDescription":"Dosáhl jsi maximálního povoleného počtu ticketů!\n Nemůžeš si vytvořit nový!",
"somethingWentWrong":"**Něco je špatně**\nProsím zkus to příště znovu!",
"somethingWentWrongTranscript":"Něco je špatně s transcriptem!**\nProsím zkus to příště znovu!"
},
"commands":{
"userAddedTitle":"Uživatel přidán!",
"userAddedDescription":"{0} je přidán do ticketu!",
"userRemovedTitle":"Uživatel odebrán!",
"userRemovedDescription":"{0} je odstraněn z ticketu!",
"renameTitle":"Jméno bylo změněno!",
"renameWarning":"Varování: jméno kanálu můžeš změnit pouze 2x za minutu!",
"closeTitle":"Zavři tento ticket!",
"closeDescription":"Můžeš zavřít ticket kliknutím na tlačítko níže!",
"deleteTitle":"Smaž tento ticket!",
"deleteDescription":"Můžeš smazat ticket kliknutím na tlačítko níže!",
"reopenTitle":"Znovu otevři ticket!",
"reopenDescription":"Můžeš znovu otevřít tento ticket kliknutínm na tlačítko níže!",
"ticketWarning":"The embed is in the message below!",
"maxTicketWarning":"**Varovaní:** _Můžeš si vytvořit použe {0} ticket(s) v jednu chvíli!_"
},
"helpMenu":{
"title":"Příkazy:",
"header1":"**Běž {0} vytvořit si ticket!**\n\n",
"header2":"**Použij příkaz `/new` nebo `/ticket` k vytvoření ticketu!**\n\n",
"msgCmd":"Vytvoř možnost otevírat tickety přes tlačítko. (ADMIN)",
"renameCmd":"Přejmenovat ticket. (Žádné mezery)",
"closeCmd":"Zavři ticket.",
"deleteCmd":"Smaž ticket.",
"addCmd":"Přidej člena do ticketu.",
"removeCmd":"Odebere člena z ticketu.",
"reopenCmd":"Znovu otevři ticket po uzavření."
},
"buttons":{
"close":"Zavři ticket",
"delete":"Smaž ticket",
"reopen":"Znovu otevři ticket",
"sendTranscript":"Odešli log ticketu"
},
"messages":{
"reopenTitle":"Ticket znovu otevřen!",
"reopenDescription":"Cítím se skvěle že si můžeme zase povídat!",
"closedTitle":"Zavřený ticket!",
"closedDescription":"Pouze admin team zde může nyní komunikovat!\n\n*Klikni na tlačítko níže pro smazání nebo znovu otevření ticketu!*",
"createdTitle":"Ticket vytvořen!",
"createdDescription":"Váš tiket je vytvořen, můžete ho zjistit pomocí pingu!",
"newTicketDmTitle":"Nový ticket!",
"closedTicketDmTitle":"Ticket uzavřen!",
"deletedTicketDmTitle":"Ticket smazán!",
"closedTicketDmDescription":"Tvůj ticket byl uzavřen!",
"deletedTicketDmDescription":"Tvůj ticket byl smazán!",
"reopenTicketDmTitle":"Ticket znovu otevřen!",
"reopenTicketDmDescription":"Tvůj ticket byl znovu otevřen!",
"newTranscriptTitle":"Nový log ticketu je zde!",
"newTranscriptDescription":"Zde najdeš log svého ticketu!",
"hereIsTheTranscript":"Zde je log:",
"chooseCategory":"Vyber kategorii:"
}
}
-80
View File
@@ -1,80 +0,0 @@
{
"errors":{
"missingArgsTitle":"Ongeldige Argumenten!",
"missingArgsDescription":"Geen Argument",
"noPermsTitle":"Geen permissies!",
"noPermsDescription":"Je hebt niet de juiste rollen om deze command uit te voeren!\nJe hebt de `ADMINISTRATOR` permissie nodig of je moet in de lijst van toegestane rollen zitten!",
"chooseFromListTitle":"Ongeldig ID",
"chooseFromListDescription":"Kies een van deze id's:",
"boterror":"Bot Error!",
"notInTicketTitle":"Je bent niet in een ticket!",
"notInTicketDescription":"Deze command werkt niet buiten tickets!",
"ticketDoesntExist":"Dit ticket bestaat niet meer!",
"roleDoesntExist":"Deze rol bestaat niet meer!",
"anotherOption":"Deze optie is geen ticket maar een ander type!",
"maxAmountTitle":"Max aantal bereikt!",
"maxAmountDescription":"Je hebt het maximum aantal openstaande ticket bereikt!\nDus je kan er geen nieuwe maken!",
"somethingWentWrong":"**Iets ging fout!**\nProbeer een andere keer opnieuw!",
"somethingWentWrongTranscript":"Iets ging fout bij het maken van het transcript!**\nProbeer een andere keer opnieuw!"
},
"commands":{
"userAddedTitle":"User Toegevoegd!",
"userAddedDescription":"{0} is toegevoegd aan dit ticket!",
"userRemovedTitle":"User Verwijderd!",
"userRemovedDescription":"{0} is verwijderd van dit ticket!",
"renameTitle":"De naam is veranderd!",
"renameWarning":"Waarschuwing: je kan de kanaalnaam maar 2 keer per minuut veranderen!\n(dit heeft te maken met discord rate limits)",
"closeTitle":"Sluit dit ticket!",
"closeDescription":"Je kan dit ticket sluiten door op de knop hier onder te duwen!",
"deleteTitle":"Verwijder dit ticket!",
"deleteDescription":"Je kan dit ticket verwijderen door op de knop hier onder te duwen!",
"reopenTitle":"Heropen dit ticket!",
"reopenDescription":"Je kan dit ticket heropenen door op de knop hier onder te duwen!",
"ticketWarning":"De embed is in het bericht hier onder!",
"maxTicketWarning":"**Waarschuwing:** _Je kan maar {0} ticket(s) tegelijkertijd aanmaken!_"
},
"helpMenu":{
"title":"Help Menu:",
"header1":"**Ga naar {0} om een ticket te maken!**\n\n",
"header2":"**Run de command `/new` of `/ticket` om een ticket te maken!**\n\n",
"msgCmd":"Spawn een embed met knoppen. (admins only)",
"renameCmd":"Hernoem een ticket. (geen spaties)",
"closeCmd":"Sluit een ticket.",
"deleteCmd":"Verwijder een ticket.",
"addCmd":"Voeg een user toe aan een ticket.",
"removeCmd":"Verwijder een user van een ticket.",
"reopenCmd":"Heropen een ticket nadat het gesloten wordt."
},
"buttons":{
"close":"Sluit Ticket",
"delete":"Verwijder Ticket",
"reopen":"Heropen Ticket",
"sendTranscript":"Stuur Transcript Bestand"
},
"messages":{
"reopenTitle":"Dit ticket is terug geopend!",
"reopenDescription":"Voel vrij om terug te praten!",
"closedTitle":"Dit ticket is gesloten!",
"closedDescription":"Nu kunnen alleen nog admins praten in dit ticket!\n\n*Klik op de knop hier onder om het ticket terug te openen of te verwijderen!*",
"createdTitle":"Ticket Gemaakt!",
"createdDescription":"Je ticket is gemaakt, je kan het detecteren bij een ping!",
"newTicketDmTitle":"Nieuw Ticket!",
"closedTicketDmTitle":"Ticket Gesloten!",
"deletedTicketDmTitle":"Ticket Verwijderd!",
"closedTicketDmDescription":"Je ticket is gesloten!",
"deletedTicketDmDescription":"Je ticket is verwijderd!",
"reopenTicketDmTitle":"Ticket Heropend!",
"reopenTicketDmDescription":"Je ticket is heropend!",
"newTranscriptTitle":"Een nieuw transcript is hier!",
"newTranscriptDescription":"Je kan het transcript vinden in het bestand hierboven!",
"hereIsTheTranscript":"Hier is het transcript:",
"chooseCategory":"kies een categorie:",
"gettingdeleted":"Ticket wordt verwijderd..."
}
}
-80
View File
@@ -1,80 +0,0 @@
{
"errors":{
"missingArgsTitle":"Invalid Arguments!",
"missingArgsDescription":"Missing Argument",
"noPermsTitle":"No Permissions!",
"noPermsDescription":"You don't have the correct roles to run this command!\nYou need the `ADMINISTRATOR` permission or be in the list of allowed roles!",
"chooseFromListTitle":"Invalid ID",
"chooseFromListDescription":"Choose one of the id's below:",
"boterror":"Bot Error!",
"notInTicketTitle":"You are not in a ticket!",
"notInTicketDescription":"This command doesn't work outside tickets!",
"ticketDoesntExist":"This ticket doesn't exist anymore!",
"roleDoesntExist":"This role doesn't exist anymore!",
"anotherOption":"This option is not a ticket but another type!",
"maxAmountTitle":"Max amount reached!",
"maxAmountDescription":"You reached the maximum number of tickets allowed!\nSo you can't create a new one!",
"somethingWentWrong":"**Something went wrong!**\nPlease try again another time!",
"somethingWentWrongTranscript":"Something went wrong while making the transcript!**\nPlease try again another time!"
},
"commands":{
"userAddedTitle":"User Added!",
"userAddedDescription":"{0} is added to this ticket!",
"userRemovedTitle":"User Removed!",
"userRemovedDescription":"{0} is removed from this ticket!",
"renameTitle":"The name is changed!",
"renameWarning":"Warning: you can only change the channel name 2 times per minute!\n(this is due discord rate limits)",
"closeTitle":"Close this ticket!",
"closeDescription":"You can close this ticket by clicking on the button below!",
"deleteTitle":"Delete this ticket!",
"deleteDescription":"You can delete this ticket by clicking on the button below!",
"reopenTitle":"Re-Open this ticket!",
"reopenDescription":"You can re-open this ticket by clicking on the button below!",
"ticketWarning":"The embed is in the message below!",
"maxTicketWarning":"**Warning:** _You can only create {0} ticket(s) at a time!_"
},
"helpMenu":{
"title":"Help Menu:",
"header1":"**Go to {0} to create a ticket!**\n\n",
"header2":"**Run the command `/new` or `/ticket` to create a ticket!**\n\n",
"msgCmd":"Spawn an embed with buttons. (admins only)",
"renameCmd":"Rename a ticket. (no spaces)",
"closeCmd":"Close a ticket.",
"deleteCmd":"Delete a ticket.",
"addCmd":"Add a user to the ticket.",
"removeCmd":"Remove a user from the ticket.",
"reopenCmd":"Re-Open a ticket after it was closed."
},
"buttons":{
"close":"Close Ticket",
"delete":"Delete Ticket",
"reopen":"Re-Open Ticket",
"sendTranscript":"Send Transcript File"
},
"messages":{
"reopenTitle":"Re-Opened this ticket!",
"reopenDescription":"Feel free to talk again!",
"closedTitle":"Closed this ticket!",
"closedDescription":"Only admins can talk in this ticket now!\n\n*Click on the button below to delete or to re-open this ticket!*",
"createdTitle":"Ticket Created!",
"createdDescription":"Your ticket is created, you can detect it by a ping!",
"newTicketDmTitle":"New Ticket!",
"closedTicketDmTitle":"Ticket Closed!",
"deletedTicketDmTitle":"Ticket Deleted!",
"closedTicketDmDescription":"Your ticket is closed!",
"deletedTicketDmDescription":"Your ticket is deleted!",
"reopenTicketDmTitle":"Ticket Re-opened!",
"reopenTicketDmDescription":"Your ticket is re-opened!",
"newTranscriptTitle":"A new transcript is here!",
"newTranscriptDescription":"You can find the transcript in the text file above!",
"hereIsTheTranscript":"Here is the transcript:",
"chooseCategory":"choose a category:",
"gettingdeleted":"Ticket is getting deleted..."
}
}
-74
View File
@@ -1,74 +0,0 @@
{
"errors":{
"missingArgsTitle":"Arguments invalides !",
"missingArgsDescription":"Argument manquant",
"noPermsTitle":"Pas de permissions!",
"noPermsDescription":"Vous n'avez pas les bons rôles pour exécuter cette commande !\nVous avez besoin de la permission `ADMINISTRATOR` ou d'être dans la liste des rôles autorisés !",
"chooseFromListTitle":"Invalid ID",
"chooseFromListDescription":"Choisissez l'un des identifiants ci-dessous:",
"boterror":"Bot Error!",
"notInTicketTitle":"Vous n'êtes pas dans un ticket !",
"notInTicketDescription":"Cette commande ne fonctionne pas en dehors des tickets !",
"ticketDoesntExist":"Ce billet n'existe plus !",
"roleDoesntExist":"Ce rôle n'existe plus !",
"anotherOption":"Cette option n'est pas un ticket mais un autre type !",
"maxAmountTitle":"Montant max atteint !",
"maxAmountDescription":"Vous avez atteint le nombre maximum de tickets autorisés !\nVous ne pouvez donc pas en créer un nouveau !",
"somethingWentWrong":"**Une erreur s'est produite !**\nVeuillez réessayer une autre fois !",
"somethingWentWrongTranscript":"Une erreur s'est produite lors de la création de la transcription !**\nVeuillez réessayer une autre fois !"
},
"commands":{
"userAddedTitle":"Utilisateur ajouté !",
"userAddedDescription":"{0} est ajouté à ce billet !",
"userRemovedTitle":"Utilisateur supprimé!",
"userRemovedDescription":"{0} est supprimé de ce ticket!",
"renameTitle":"Le nom est changé !",
"renameWarning":"Attention : vous ne pouvez modifier le nom de la chaîne que 2 fois par minute !\n(ceci est dû aux limites du taux de discorde)",
"closeTitle":"Fermez ce ticket !",
"closeDescription":"Vous pouvez fermer ce ticket en cliquant sur le bouton ci-dessous !",
"deleteTitle":"Supprimez ce billet !",
"deleteDescription":"Vous pouvez supprimer ce ticket en cliquant sur le bouton ci-dessous !",
"reopenTitle":"Ré-ouvrez ce ticket !",
"reopenDescription":"Vous pouvez rouvrir ce ticket en cliquant sur le bouton ci-dessous !",
"ticketWarning":"L'intégration est dans le message ci-dessous !",
"maxTicketWarning":"**Attention :** _Vous ne pouvez créer que {0} billet(s) à la fois !_"
},
"helpMenu":{
"title":"Menu d'aide:",
"header1":"**Allez à {0} pour créer un ticket !**\n\n",
"header2":"**Exécutez la commande `/new` ou `/ticket` pour créer un ticket!**\n\n",
"msgCmd":"Créez une intégration avec des boutons. (administrateurs uniquement)",
"renameCmd":"Renommer un ticket. (sans espaces)",
"closeCmd":"Fermer un ticket.",
"deleteCmd":"Supprimer un billet.",
"addCmd":"Ajouter un utilisateur au ticket.",
"removeCmd":"Supprimer un utilisateur du ticket.",
"reopenCmd":"Re-Open a ticket after it was closed."
},
"buttons":{
"close":"Fermer le ticket",
"delete":"Supprimer le billet",
"reopen":"Billet de réouverture",
"sendTranscript":"Envoyer le fichier de transcription"
},
"messages":{
"reopenTitle":"A rouvert ce ticket!",
"reopenDescription":"N'hésitez pas à reparler!",
"closedTitle":"Fermé ce ticket",
"closedDescription":"Seuls les administrateurs peuvent parler dans ce ticket maintenant !\n\n*Cliquez sur le bouton ci-dessous pour supprimer ou rouvrir ce ticket !*",
"createdTitle":"Ticket créé !",
"createdDescription":"Votre ticket est créé, vous pouvez le détecter par un ping !",
"newTicketDmTitle":"Nouveau ticket!",
"newTranscriptTitle":"Une nouvelle transcription est ici!",
"newTranscriptDescription":"Vous pouvez trouver la transcription dans le fichier texte ci-dessus !",
"hereIsTheTranscript":"Voici la transcription :",
"chooseCategory":"choisissez une catégorie:",
"gettingdeleted":"Le ticket est en cours de suppression..."
}
}
-80
View File
@@ -1,80 +0,0 @@
{
"errors":{
"missingArgsTitle":"Ungültiges Argument!",
"missingArgsDescription":"Fehlendes Argument!",
"noPermsTitle":"Du hast keine Rechte!",
"noPermsDescription":"Sie haben nicht die richtigen Rollen, um diesen Befehl auszuführen!\nSie benötigen die `ADMINISTRATOR` Erlaubnis oder in der Liste der erlaubten Rollen sein!",
"chooseFromListTitle":"Ungültige ID",
"chooseFromListDescription":"Wählen Sie eine der folgenden ID:",
"boterror":"Bot Fehler!",
"notInTicketTitle":"Du bist ein kein Ticket!",
"notInTicketDescription":"Der Befehl funktioniert nicht außerhalb eines Tickets!",
"ticketDoesntExist":"Das Ticket Exisitert nicht mehr!",
"roleDoesntExist":"Die Rolle Exisitiert nicht mehr!",
"anotherOption":"Diese Option ist kein Ticket, sondern eine andere Art!",
"maxAmountTitle":"Das Limit wurde erreicht!",
"maxAmountDescription":"Sie haben die maximal zulässige Anzahl von Tickets erreicht!\nSie können also keine neue erstellen.!",
"somethingWentWrong":"**Etwas ist schief gelaufen!**\nBitte versuchen Sie es ein anderes Mal!",
"somethingWentWrongTranscript":"Bei der Erstellung der Transcript ist etwas schief gelaufen!**\nBitte versuchen Sie es ein anderes Mal!"
},
"commands":{
"userAddedTitle":"User geaddet!",
"userAddedDescription":"{0} wird zu diesem Ticket hinzugefügt!",
"userRemovedTitle":"User entfernt!",
"userRemovedDescription":"{0} wird aus diesem Ticket entfernt!",
"renameTitle":"Der Name wurde geändert!",
"renameWarning":"Achtung: Sie können den Kanalnamen nur 2 Mal pro Minute ändern!\n(dies ist auf die Begrenzung der Diskordrate zurückzuführen)",
"closeTitle":"Dieses Ticket schließen!",
"closeDescription":"Sie können dieses Ticket schließen, indem Sie auf die Schaltfläche unten klicken!",
"deleteTitle":"Löschen Sie dieses Ticket!",
"deleteDescription":"Sie können dieses Ticket löschen, indem Sie auf die Schaltfläche unten klicken!",
"reopenTitle":"Öffne dieses Ticket erneut!",
"reopenDescription":"Sie können dieses Ticket erneut öffnen, indem Sie auf die Schaltfläche unten klicken!",
"ticketWarning":"Die Einbettung befindet sich in der Nachricht unten!",
"maxTicketWarning":"**Warnung:** _Sie können nur {0} ticket(s) erstellen zu einer Zeit!_"
},
"helpMenu":{
"title":"Hilfe Menu:",
"header1":"**Gehe zu {0} um ein Ticket zu erstellen!**\n\n",
"header2":"**Führen Sie den Befehl `/new` oder `/ticket` um ein Ticket zu erstellen!**\n\n",
"msgCmd":"Eine Einbettung mit Schaltflächen erzeugen. (nur admins)",
"renameCmd":"Ein Ticket umbenennen. (keine Leerzeichen)",
"closeCmd":"Schließen Sie ein Ticket.",
"deleteCmd":"Ein Ticket löschen.",
"addCmd":"Fügen Sie dem Ticket einen Benutzer hinzu.",
"removeCmd":"Entfernen eines Benutzers aus dem Ticket.",
"reopenCmd":"Öffnen Sie ein Ticket erneut, nachdem es geschlossen wurde."
},
"buttons":{
"close":"Ticket schließen",
"delete":"Ticket löschen",
"reopen":"Ticket wieder öffnen",
"sendTranscript":"Transcript-Datei senden"
},
"messages":{
"reopenTitle":"Dieses Ticket wiedereröffnet!",
"reopenDescription":"Sie können gerne weiterreden!",
"closedTitle":"Dieses Ticket geschlossen!",
"closedDescription":"Nur Admins können jetzt in diesem Ticket sprechen!\n\n*Klicken Sie auf die Schaltfläche unten, um dieses Ticket zu löschen oder erneut zu öffnen!*",
"createdTitle":"Ticket erstellt!",
"createdDescription":"Ihr Ticket ist erstellt, Sie können es durch einen Ping erkennen!",
"newTicketDmTitle":"Neues Ticket!",
"closedTicketDmTitle":"Ticket schließen!",
"deletedTicketDmTitle":"Ticket löschen!",
"closedTicketDmDescription":"Ihr Ticket ist geschlossen!",
"deletedTicketDmDescription":"Ihr Ticket ist gelöscht!",
"reopenTicketDmTitle":"Ticket neu Eröffnen!",
"reopenTicketDmDescription":"Dein Ticket ist Neu eröffnet!",
"newTranscriptTitle":"Eine neue Transscript finden Sie hier!",
"newTranscriptDescription":"Die Abschrift finden Sie in der obigen Textdatei!",
"hereIsTheTranscript":"Hier ist das Transscript:",
"chooseCategory":"Wähle eine Kategorie:",
"gettingdeleted":"Ticket wird gelöscht..."
}
}
-80
View File
@@ -1,80 +0,0 @@
{
"errors":{
"missingArgsTitle":"Argumente invalide!",
"missingArgsDescription":"Argument lipsa",
"noPermsTitle":"Nu ai permisiunile necesare!",
"noPermsDescription":"Nu ai rolurile necesare!\nAi nevoie de permisiunea `ADMINISTRATOR` sau sa fii in lista rolurilor permise!",
"chooseFromListTitle":"ID invalid",
"chooseFromListDescription":"Alege unul dintre id-urile urmatoare:",
"boterror":"Eroare bot!",
"notInTicketTitle":"Nu esti intr-un ticket!",
"notInTicketDescription":"Aceasta comanda nu functioneaza in afara ticket-urilor!",
"ticketDoesntExist":"Acest ticket nu mai exista!",
"roleDoesntExist":"Acest rol nu mai exista",
"anotherOption":"Aceasta optiune nu este un ticket ci doar alt tip!",
"maxAmountTitle":"Limita a fost atinsa",
"maxAmountDescription":"Ai atins limita maxima de tickete\nNu mai poti creea altele!",
"somethingWentWrong":"**Ceva nu a mers bine :(**\nTe rugam sa incerci din nou mai tarziu",
"somethingWentWrongTranscript":"**Ceva nu a mers bine in timpul creerii copiei a ticket-ului!**\nTe rugam sa incerci din nou mai tarziu!"
},
"commands":{
"userAddedTitle":"Utilizator adaugat!",
"userAddedDescription":"{0} este adaugat la acest ticket!",
"userRemovedTitle":"Utilizator eliminat!",
"userRemovedDescription":"{0} este eliminat din acest ticket!",
"renameTitle":"Numele este schimbat!",
"renameWarning":"ATENTIE: poti schimba numele acestui ticket doar de 2 ori pe minut!\n(se datoreaza limitarii discord-ului)",
"closeTitle":"Inchide acest ticket",
"closeDescription":"Poti inchide acest ticket doar apasand butonul de mai jos!",
"deleteTitle":"Sterge acest ticket!",
"deleteDescription":"Poti sterge acest ticket doar apasand butonul de mai jos",
"reopenTitle":"Re-deschide acest ticket!",
"reopenDescription":"Poti redeschide acest ticket doar apasand butonul de mai jos!",
"ticketWarning":"Embed-ul se afla in mesajul de mai jos:",
"maxTicketWarning":"**ATENTIE:** _Poti creea doar {0} ticket-e odata!_"
},
"helpMenu":{
"title":"Meniu de ajutor:",
"header1":"**Deschide {0} pentru a creea un ticket!**\n\n",
"header2":"**Ruleaza comanda `/new` ori `/ticket` pentru a creea un ticket!**\n\n",
"msgCmd":"Afiseaza embed-ul cu tickete. (doar administratorii)",
"renameCmd":"Redenumeste un ticket. (fara spatii)",
"closeCmd":"Redenumeste un ticket ticket.",
"deleteCmd":"Sterge un ticket a ticket.",
"addCmd":"adauga un utilizator la ticket.",
"removeCmd":"Elimina un utilizator de la ticket.",
"reopenCmd":"Re-deschide un ticket dupa ce a fost inchis."
},
"buttons":{
"close":"Inchide Ticket-ul",
"delete":"Sterge Ticket-ul",
"reopen":"Re-deschide Ticket-ul",
"sendTranscript":"Trimite copia chat-ului ticket-ului"
},
"messages":{
"reopenTitle":"Ticket re-deschis",
"reopenDescription":"Simte-te comfortabil sa vorbesti din nou!",
"closedTitle":"Inchide acest ticket ticket!",
"closedDescription":"Doar administratorii pot vorbi in acest ticket de acum!\n\n*Apasa pe butonele de mai jos pentru a inchide/deschide ticket-ul!*",
"createdTitle":"Ticket Creat!",
"createdDescription":"Ticket-ul tau a fost creat, il poti vedea dupa mentionarea ta!",
"newTicketDmTitle":"Ticket Nou!",
"closedTicketDmTitle":"Ticket închis!",
"deletedTicketDmTitle":"Ticket șters!",
"closedTicketDmDescription":"Ticket-ul tau este închis!",
"deletedTicketDmDescription":"Ticket-ul tau este șters!",
"reopenTicketDmTitle":"Ticket Re-deschis!",
"reopenTicketDmDescription":"Ticket-ul tau este re-deschis!",
"newTranscriptTitle":"O noua copie a ticket-ului este aici!",
"newTranscriptDescription":"Poti vedea copia ticket-ului in fisierul .txt de mai sus!",
"hereIsTheTranscript":"Aceasta este copia ticket-ului:",
"chooseCategory":"Alege o categorie:",
"gettingdeleted":"Ticket-ul se sterge..."
}
}
-80
View File
@@ -1,80 +0,0 @@
{
"errors":{
"missingArgsTitle":"¡Argumentos inválidos!",
"missingArgsDescription":"Argumento faltante.",
"noPermsTitle":"¡Sin permisos!",
"noPermsDescription":"¡No tienes permiso para usar este comando.!\n¡Necesitas el permiso `ADMINISTRATOR` permiso o tener uno de los roles permitidos!",
"chooseFromListTitle":"ID Invalida",
"chooseFromListDescription":"Elije una de las ID de abajo:",
"boterror":"¡Error del bot!",
"notInTicketTitle":"¡No te encuentras en un ticket!",
"notInTicketDescription":"¡Este comando no funciona fuera de los tickets!",
"ticketDoesntExist":"¡Este ticket no existe!",
"roleDoesntExist":"¡Este rol no existe!",
"anotherOption":"¡Esta opción no es un ticket, si no otra cosa!",
"maxAmountTitle":"¡Máxima cantidad alcanzada!",
"maxAmountDescription":"¡Has alcanzado la máxima cantidad de tickets permitida!\n¡Por lo que no puedes crear otro!",
"somethingWentWrong":"**¡Algo salió mal!**\n¡Prueba dentro de un rato!",
"somethingWentWrongTranscript":"**¡Algo salió mal al hacer el transcript!**\n¡Prueba en otro momento!"
},
"commands":{
"userAddedTitle":"¡Usuario agregado!",
"userAddedDescription":"¡{0} fué agregado al ticket!",
"userRemovedTitle":"¡Usuario eliminado!",
"userRemovedDescription":"¡{0} fué eliminado del ticket!",
"renameTitle":"¡El nombre fué cambiado!",
"renameWarning":"Aviso: Solo puedes cambiar el nombre 2 veces por minuto.\n(Esto es por limitaciones de Discord)",
"closeTitle":"¡Cierra el ticket!",
"closeDescription":"¡Puedes cerrar el ticket con el botón de abajo!",
"deleteTitle":"¡Elimina el ticket!",
"deleteDescription":"¡Puedes eliminar el ticket con el botón de abajo!",
"reopenTitle":"¡Re-Abre el ticket!",
"reopenDescription":"¡Puedes re-abrir el ticket con el botón de abajo!",
"ticketWarning":"¡El emblema está en el mensaje de abajo!",
"maxTicketWarning":"**Aviso:** _Solo puedes poseer {0} ticket(s) al mismo tiempo!_"
},
"helpMenu":{
"title":"Menú de ayuda:",
"header1":"**¡Dirígete a {0} para crear un nuevo ticket!**\n\n",
"header2":"**¡Ejecuta el comando `/new` o `/ticket` para crear un ticket!**\n\n",
"msgCmd":"Generar un embed con botones. (Solo admins)",
"renameCmd":"Renombrar un ticket. (Sin espacios)",
"closeCmd":"Cerrar un ticket.",
"deleteCmd":"Eliminar un ticket.",
"addCmd":"Agregar un usuario al ticket.",
"removeCmd":"Eliminar un usuario del ticket.",
"reopenCmd":"Re-Abre un ticket después de que este se vea cerrado."
},
"buttons":{
"close":"Cerrar ticket.",
"delete":"Eliminar ticket",
"reopen":"Re-Abrir ticket",
"sendTranscript":"Obtener transcript."
},
"messages":{
"reopenTitle":"¡Ticket Re-Abierto!",
"reopenDescription":"¡Siéntete libre de hablar de nuevo!",
"closedTitle":"¡Ticket cerrado!",
"closedDescription":"¡Solo admins pueden hablar ahora en este ticket!\n\n*¡Presiona en el botón de abajo para eliminar o re-abrir el ticket!*",
"createdTitle":"¡Ticket creado!",
"createdDescription":"¡Ticket creado, también te he mencionado en él!",
"newTicketDmTitle":"¡Nuevo ticket!",
"closedTicketDmTitle":"¡Ticket cerrado!",
"deletedTicketDmTitle":"¡Ticket eliminado!",
"closedTicketDmDescription":"¡Tu ticket fué cerrado!",
"deletedTicketDmDescription":"¡Tu ticket fué eliminado!",
"reopenTicketDmTitle":"¡Ticket re-abierto!",
"reopenTicketDmDescription":"¡Tu ticket se vió abierto de nuevo!",
"newTranscriptTitle":"¡Un nuevo transcript está aquí!",
"newTranscriptDescription":"¡Puedes encontrar el transcript en el archivo de texto que se muestra arriba!",
"hereIsTheTranscript":"Aquí está el transcript:",
"chooseCategory":"elije una categoría:",
"gettingdeleted":"El ticket se está viendo eliminado..."
}
}
+608
View File
@@ -0,0 +1,608 @@
{
"_TRANSLATION":{
"otversion":"v4.1.3",
"translators":["palestinian"],
"lastedited":"16/02/2026",
"language":"Arabic",
"automated":false
},
"checker":{
"system":{
"typeError":"[خطأ]",
"headerOpenTicket":"فتح تذكرة",
"typeWarning":"[تحذير]",
"typeInfo":"[معلومات]",
"headerConfigChecker":"مدقق التكوين",
"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 (Not A Number)!",
"numberInvertedContains":"لا يُسمح لهذا الرقم باحتواء {0}!",
"booleanTrue":"لا يمكن أن تكون هذه القيمة صحيحة!",
"booleanFalse":"لا يمكن أن تكون هذه القيمة خاطئة!",
"arrayEmptyDisabled":"لا يُسمح أن تكون هذه المصفوفة فارغة!",
"arrayEmptyRequired":"هذه المصفوفة مطلوبة أن تكون فارغة!",
"arrayTooShort":"يجب أن تحتوي هذه المصفوفة على طول لا يقل عن {0}!",
"arrayTooLong":"يجب أن تحتوي هذه المصفوفة على طول لا يزيد عن {0}!",
"arrayLengthInvalid":"يجب أن تحتوي هذه المصفوفة على طول {0}!",
"arrayInvalidTypes":"يمكن أن تحتوي هذه المصفوفة فقط على الأنواع التالية: {0}!",
"arrayDouble":"لا تسمح هذه المصفوفة بنفس القيمة مرتين!",
"discordInvalidId":"هذا هو معرف {0} غير صالح!",
"discordInvalidIdOptions":"هذا هو معرف {0} غير صالح! يمكنك أيضًا استخدام واحد من هؤلاء: {1}!",
"discordInvalidToken":"هذا هو رمز ديسكورد غير صالح (من الناحية التركيبية)!",
"colorInvalid":"هذا هو لون سداسي غير صالح!",
"emojiTooShort":"يجب أن تحتوي هذه السلسلة على ما لا يقل عن {0} رموز تعبيرية!",
"emojiTooLong":"يجب أن تحتوي هذه السلسلة على ما لا يزيد عن {0} رموز تعبيرية!",
"emojiCustom":"لا يمكن أن تكون هذه الرموز التعبيرية رمزًا مخصصًا لديسكورد!",
"emojiInvalid":"هذه الرموز التعبيرية غير صالحة!",
"urlInvalid":"هذا الرابط غير صالح!",
"urlInvalidHttp":"يمكن أن يستخدم هذا الرابط بروتوكول https:// فقط!",
"urlInvalidProtocol":"يمكن أن يستخدم هذا الرابط بروتوكولات http:// و https:// فقط!",
"urlInvalidHostname":"هذا الرابط يحتوي على اسم مضيف غير مسموح به!",
"urlInvalidExtension":"هذا الرابط يحتوي على امتداد غير صالح! اختر بين: {0}!",
"urlInvalidPath":"هذا الرابط يحتوي على مسار غير صالح!",
"idNotUnique":"هذا المعرف ليس فريدًا، استخدم معرفًا آخر بدلاً من ذلك!",
"idNonExistent":"المعرف {0} غير موجود!",
"invalidType":"تحتاج هذه الخاصية إلى أن تكون من النوع: {0}!",
"propertyMissing":"الخاصية {0} مفقودة من هذا الكائن!",
"propertyOptional":"الخاصية {0} اختيارية في هذا الكائن!",
"objectDisabled":"هذا الكائن معطل، قم بتمكينه باستخدام {0}!",
"nullInvalid":"لا يمكن أن تكون هذه الخاصية فارغة!",
"switchInvalidType":"يجب أن تكون واحدة من الأنواع التالية: {0}!",
"objectSwitchInvalid":"يجب أن يكون هذا الكائن واحدًا من الأنواع التالية: {0}!",
"invalidLanguage":"هذه لغة غير صالحة!",
"invalidButton":"يجب أن تحتوي هذه الزر على {0} أو {1} على الأقل!",
"unusedOption":"الخيار {0} غير مستخدم في أي مكان!",
"unusedQuestion":"السؤال {0} غير مستخدم في أي مكان!",
"dropdownOption":"يمكن أن تحتوي لوحة مع تمكين القائمة المنسدلة على خيارات من نوع 'تذكرة' فقط!",
"customInvalidVersion":"الإصدار المحدد في الإعدادات غير متطابق! تأكد من تحديث الإعدادات إلى أحدث إصدار!"
}
},
"actions":{
"buttons":{
"create":"زيارة التذكرة",
"close":"إغلاق التذكرة",
"delete":"حذف التذكرة",
"reopen":"إعادة فتح التذكرة",
"claim":"مطالبة بالتذكرة",
"unclaim":"إلغاء المطالبة بالتذكرة",
"pin":"تثبيت التذكرة",
"unpin":"إلغاء تثبيت التذكرة",
"clear":"حذف التذاكر",
"helpSwitchSlash":"عرض أوامر الشريحة",
"helpSwitchText":"عرض أوامر النص",
"helpPage":"صفحة {0}",
"withReason":"مع سبب",
"withoutTranscript":"بدون نص"
},
"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":"تم تمكين الإغلاق التلقائي",
"autocloseDisabled":"تم تعطيل الإغلاق التلقائي",
"autodelete":"تم حذف التذكرة تلقائيًا",
"autodeleteEnabled":"تم تمكين الحذف التلقائي",
"autodeleteDisabled":"تم تعطيل الحذف التلقائي",
"topicSet":"تم تغيير الموضوع",
"prioritySet":"تم تغيير الأولوية",
"priorityGet":"أولوية التذكرة",
"transfer":"تم نقل التذكرة"
},
"descriptions":{
"create":"تم إنشاء تذكرتك. انقر على الزر أدناه للوصول إليها!",
"close":"تم إغلاق التذكرة بنجاح!",
"delete":"تم حذف التذكرة بنجاح!",
"reopen":"تم إعادة فتح التذكرة بنجاح!",
"claim":"تم المطالبة بالتذكرة بنجاح!",
"unclaim":"تم إلغاء المطالبة بالتذكرة بنجاح!",
"pin":"تم تثبيت التذكرة بنجاح!",
"unpin":"تم إلغاء تثبيت التذكرة بنجاح!",
"rename":"تم إعادة تسمية التذكرة إلى {0} بنجاح!",
"move":"تم نقل التذكرة إلى {0} بنجاح!",
"add":"{0} تم إضافته إلى التذكرة بنجاح!",
"remove":"{0} تم إزالته من التذكرة بنجاح!",
"helpExplanation":"`<name>` => معلمة مطلوبة\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} ساعة`!",
"autodeleteLeave":"تم حذف هذه التذكرة تلقائيًا لأن المنشئ غادر الخادم!",
"autodeleteTimeout":"تم حذف هذه التذكرة تلقائيًا لأنها كانت غير نشطة لأكثر من `{0} يوم`!",
"autocloseEnabled":"تم تمكين الإغلاق التلقائي في هذه التذكرة!\nسيتم إغلاقها عندما تكون غير نشطة لأكثر من `{0} ساعة`!",
"autocloseDisabled":"تم تعطيل الإغلاق التلقائي في هذه التذكرة!\nلن يتم إغلاقها تلقائيًا بعد الآن!",
"autodeleteEnabled":"تم تمكين الحذف التلقائي في هذه التذكرة!\nسيتم حذفها عندما تكون غير نشطة لأكثر من `{0} يوم`!",
"autodeleteDisabled":"تم تعطيل الحذف التلقائي في هذه التذكرة!\nلن يتم حذفها تلقائيًا بعد الآن!",
"ticketMessageLimit":"يمكنك فقط إنشاء {0} تذكرة(ات) في نفس الوقت!",
"ticketMessageAutoclose":"ستغلق هذه التذكرة تلقائيًا عندما تكون غير نشطة لمدة {0} ساعة!",
"ticketMessageAutodelete":"ستحذف هذه التذكرة تلقائيًا عندما تكون غير نشطة لمدة {0} يوم!",
"panelReady":"اللوحة متاحة في الرسالة التالية!\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":"زيارة النص",
"ready":"تم إنشاء النص",
"textFileDescription":"هذا هو النص النصي لتذكرة محذوفة!",
"htmlProgress":"يرجى الانتظار بينما يتم معالجة هذا النص html...",
"createdChannel":"تم إنشاء نص جديد من نوع {0} في الخادم!",
"createdCreator":"تم إنشاء نص جديد من نوع {0} لأحد تذاكرك!",
"createdParticipant":"تم إنشاء نص جديد من نوع {0} في إحدى التذاكر التي شاركت فيها!",
"createdActiveAdmin":"تم إنشاء نص جديد من نوع {0} في إحدى التذاكر التي كنت مشرفًا فيها!",
"createdEveryAdmin":"تم إنشاء نص جديد من نوع {0} في إحدى التذاكر التي كنت مشرفًا فيها!",
"createdOther":"تم إنشاء نص جديد من نوع {0}!"
},
"errors":{
"retry":"إعادة المحاولة",
"continue":"حذف بدون نص",
"backup":"إنشاء نص احتياطي",
"error":"حدث خطأ أثناء محاولة إنشاء النص.\nماذا تريد أن تفعل؟\n\nلن يتم حذف هذه التذكرة حتى تضغط على أحد هذه الأزرار.",
"title":"خطأ في النسخ"
},
"text":{
"messagesTitle":"الرسائل",
"embedTitle":"EMBED",
"fileTitle":"ملف",
"fieldsTitle":"الحقول",
"reactionsTitle":"التفاعلات",
"statsTitle":"الإحصائيات",
"emptyContent":"<المحتوى فارغ>",
"noTitle":"<بدون-عنوان>",
"noDesc":"<بدون-وصف>"
}
},
"errors":{
"titles":{
"internalError":"خطأ داخلي",
"optionMissing":"خيار الأمر مفقود",
"optionInvalid":"خيار الأمر غير صالح",
"unknownCommand":"أمر غير معروف",
"noPermissions":"لا توجد أذونات",
"unknownTicket":"تذكرة غير معروفة",
"deprecatedTicket":"تذكرة قديمة",
"unknownOption":"خيار غير معروف",
"unknownPanel":"لوحة غير معروفة",
"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":"بسبب حدود معدل ديسكورد، من المستحيل حاليًا على البوت إعادة تسمية القناة. سيتم إعادة تسمية القناة تلقائيًا بعد 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":"تحتاج إلى أن تكون مطور البوت.",
"owner":"تحتاج إلى أن تكون مالك الخادم.",
"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":"لوحة",
"command":"أمر",
"system":"نظام",
"true":"صحيح",
"false":"خطأ",
"syntax":"بناء الجملة",
"originalName":"الاسم الأصلي",
"newName":"الاسم الجديد",
"until":"حتى",
"validOptions":"خيارات صالحة",
"validPanels":"لوحات صالحة",
"autoclose":"إغلاق تلقائي",
"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":"نموذج",
"button":"زر",
"dropdown":"قائمة منسدلة",
"method":"طريقة"
}
},
"commands":{
"reason":"حدد سببًا اختياريًا سيكون مرئيًا في السجلات.",
"help":"احصل على قائمة بجميع الأوامر المتاحة.",
"panel":"قم بإنشاء رسالة مع قائمة منسدلة أو أزرار (لإنشاء تذكرة).",
"panelId":"معرف اللوحة التي تريد إنشائها.",
"panelAutoUpdate":"هل تريد أن يتم تحديث هذه اللوحة تلقائيًا عند تعديلها؟",
"ticket":"قم بإنشاء تذكرة على الفور.",
"ticketId":"معرف التذكرة التي تريد إنشائها.",
"close":"أغلق تذكرة.",
"delete":"احذف تذكرة.",
"deleteNoTranscript":"احذف هذه التذكرة دون إنشاء نص.",
"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":"إدارة الإغلاق التلقائي في تذكرة.",
"autocloseDisable":"تعطيل الإغلاق التلقائي في هذه التذكرة.",
"autocloseEnable":"تمكين الإغلاق التلقائي في هذه التذكرة.",
"autocloseEnableTime":"عدد الساعات التي تحتاجها هذه التذكرة لتكون غير نشطة لإغلاقها.",
"autodelete":"إدارة الحذف التلقائي في تذكرة.",
"autodeleteDisable":"تعطيل الحذف التلقائي في هذه التذكرة.",
"autodeleteEnable":"تمكين الحذف التلقائي في هذه التذكرة.",
"autodeleteEnableTime":"عدد الأيام التي تحتاجها هذه التذكرة لتكون غير نشطة لحذفها.",
"topic":"إدارة موضوع قناة التذكرة.",
"topicSet":"تعيين موضوع قناة التذكرة.",
"topicValue":"الموضوع الجديد للقناة.",
"topicList":"الحصول على قائمة بجميع التذاكر مع مواضيعها وإحصائياتها.",
"priority":"إدارة أولوية التذكرة.",
"prioritySet":"تعيين أولوية التذكرة.",
"priorityValue":"أولوية القناة.",
"priorityGet":"الحصول على أولوية التذكرة.",
"priorityList":"الحصول على قائمة بجميع التذاكر مع حالة أولويتها.",
"transfer":"نقل ملكية التذكرة من مستخدم إلى آخر.",
"transferUser":"المستخدم الذي سيتم النقل إليه."
},
"helpMenu":{
"help":"احصل على قائمة بجميع الأوامر المتاحة.",
"ticket":"قم بإنشاء تذكرة على الفور.",
"close":"أغلق تذكرة، هذا يعطل الكتابة في هذه القناة.",
"delete":"احذف تذكرة، هذا ينشئ نصًا عند تمكينه.",
"reopen":"أعد فتح تذكرة، هذا يمكّن الكتابة في هذه القناة مرة أخرى.",
"pin":"ثبّت تذكرة. سيؤدي ذلك إلى نقل التذكرة إلى الأعلى وإضافة رمز '📌' إلى الاسم.",
"unpin":"ألغِ تثبيت تذكرة. ستبقى التذكرة في مكانها ولكن ستفقد رمز '📌'.",
"move":"انقل تذكرة. سيؤدي ذلك إلى تغيير نوع هذه التذكرة.",
"rename":"أعد تسمية تذكرة. سيؤدي ذلك إلى تغيير اسم القناة لهذه التذكرة.",
"claim":"اطلب تذكرة. باستخدام هذا، يمكنك إبلاغ فريقك أنك تتعامل مع هذه التذكرة.",
"unclaim":"ألغِ مطالبة بتذكرة. باستخدام هذا، يمكنك إبلاغ فريقك أن هذه التذكرة متاحة مرة أخرى.",
"add":"أضف مستخدمًا إلى تذكرة. سيسمح ذلك للمستخدم بقراءة وكتابة في هذه التذكرة.",
"remove":"إزالة مستخدم من تذكرة. سيؤدي ذلك إلى إزالة القدرة على القراءة والكتابة لمستخدم في هذه التذكرة.",
"panel":"قم بإنشاء رسالة مع قائمة منسدلة أو أزرار (لإنشاء تذكرة).",
"blacklistView":"عرض قائمة بالمستخدمين المحظورين حاليًا.",
"blacklistAdd":"إضافة مستخدم إلى القائمة السوداء.",
"blacklistRemove":"إزالة مستخدم من القائمة السوداء.",
"blacklistGet":"احصل على تفاصيل من مستخدم محظور.",
"statsGlobal":"عرض الإحصائيات العالمية.",
"statsTicket":"عرض إحصائيات تذكرة في الخادم.",
"statsUser":"عرض إحصائيات مستخدم في الخادم.",
"statsReset":"إعادة تعيين جميع إحصائيات البوت (والبدء من الصفر).",
"autocloseDisable":"تعطيل الإغلاق التلقائي في هذه التذكرة.",
"autocloseEnable":"تمكين الإغلاق التلقائي في هذه الت ذكرة.",
"autodeleteDisable":"تعطيل الحذف التلقائي في هذه التذكرة.",
"autodeleteEnable":"تمكين الحذف التلقائي في هذه التذكرة.",
"categories":{
"general":"الأوامر العامة",
"basicTicket":"أوامر التذاكر الأساسية",
"advancedTicket":"أوامر التذاكر المتقدمة",
"userTicket":"أوامر تذاكر المستخدم",
"admin":"أوامر المشرف",
"advanced":"أوامر متقدمة",
"extra":"أوامر إضافية"
}
},
"stats":{
"scopes":{
"global":"إحصائيات عالمية",
"system":"إحصائيات النظام",
"user":"إحصائيات المستخدم",
"ticket":"إحصائيات التذكرة",
"participants":"المشاركون",
"messages":"الرسائل"
},
"properties":{
"ticketsCreated":"التذاكر التي تم إنشاؤها",
"ticketsClosed":"التذاكر المغلقة",
"ticketsDeleted":"التذاكر المحذوفة",
"ticketsReopened":"التذاكر المعاد فتحها",
"ticketsAutoclosed":"التذاكر المغلقة تلقائيًا",
"ticketsClaimed":"التذاكر المطالب بها",
"ticketsPinned":"التذاكر المثبتة",
"ticketsMoved":"التذاكر المنقولة",
"usersBlacklisted":"المستخدمون المحظورون",
"transcriptsCreated":"النصوص التي تم إنشاؤها",
"ticketsAutodeleted":"تذاكر تم حذفها تلقائيًا",
"ticketsTransferred":"تذاكر تم نقلها",
"ticketVolume":"حجم التذاكر",
"averageTickets":"متوسط التذاكر/مستخدم",
"currentTickets":"التذاكر الحالية",
"age":"عمر التذكرة",
"responseTime":"وقت الاستجابة",
"resolutionTime":"وقت الحل",
"createdOn":"تم الإنشاء في",
"createdBy":"تم الإنشاء بواسطة",
"closedOn":"تم الإغلاق في",
"closedBy":"تم الإغلاق بواسطة",
"claimedOn":"تم الاستلام في",
"claimedBy":"تم الاستلام بواسطة",
"pinnedOn":"تم التثبيت في",
"pinnedBy":"تم التثبيت بواسطة",
"deletedOn":"تم الحذف في",
"deletedBy":"تم الحذف بواسطة"
},
"roles":{
"developer":"مطوّر",
"serverOwner":"مالك الخادم",
"serverAdmin":"مشرف الخادم",
"moderator":"فريق الإشراف",
"support":"فريق الدعم",
"member":"عضو"
}
},
"panel":{
"selectTicket":"اختر تذكرتك",
"selectRole":"اختر دورك",
"selectOption":"اختر خيارك"
},
"priorities":{
"urgent":"عاجل",
"veryHigh":"عالية جدًا",
"high":"عالية",
"normal":"عادية",
"low":"منخفضة",
"veryLow":"منخفضة جدًا",
"none":"بدون"
}
}
+608
View File
@@ -0,0 +1,608 @@
{
"_TRANSLATION":{
"otversion":"v4.1.3",
"translators":["HanumeshGupta"],
"lastedited":"16/02/2026",
"language":"Bengali",
"automated":false
},
"checker":{
"system":{
"typeError":"[ত্রুটি]",
"headerOpenTicket":"টিকেট খুলুন",
"typeWarning":"[সতর্কতা]",
"typeInfo":"[তথ্য]",
"headerConfigChecker":"কনফিগ চেকার",
"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":"এই সংখ্যাটি {1} থেকে শুরু করে {0} এর গুণিতক হতে হবে!",
"numberStartsWith":"এই সংখ্যাটি {0} দিয়ে শুরু হতে হবে!",
"numberEndsWith":"এই সংখ্যাটি {0} দিয়ে শেষ হতে হবে!",
"numberContains":"এই সংখ্যাটিতে {0} থাকতে হবে!",
"numberChoices":"এই সংখ্যাটি শুধুমাত্র নিম্নলিখিত মানগুলির একটি হতে পারে: {0}!",
"numberFloat":"এই সংখ্যাটি দশমিক হতে পারে না!",
"numberNegative":"এই সংখ্যাটি ঋণাত্মক হতে পারে না!",
"numberPositive":"এই সংখ্যাটি ধনাত্মক হতে পারে না!",
"numberZero":"এই সংখ্যাটি শূন্য হতে পারে না!",
"numberNan":"এই সংখ্যা NaN (সংখ্যা নয়) হতে পারে না!",
"numberInvertedContains":"এই সংখ্যায় {0} থাকতে পারবে না!",
"booleanTrue":"এই বুলিয়ানটি সত্য হতে পারে না!",
"booleanFalse":"এই বুলিয়ানটি মিথ্যা হতে পারে না!",
"arrayEmptyDisabled":"এই অ্যারেটি খালি হতে পারে না!",
"arrayEmptyRequired":"এই অ্যারেটি খালি হতে হবে!",
"arrayTooShort":"এই অ্যারেটির দৈর্ঘ্য কমপক্ষে {0} হতে হবে!",
"arrayTooLong":"এই অ্যারেটির দৈর্ঘ্য সর্বাধিক {0} হতে হবে!",
"arrayLengthInvalid":"এই অ্যারেটির দৈর্ঘ্য {0} হতে হবে!",
"arrayInvalidTypes":"এই অ্যারেটিতে শুধুমাত্র নিম্নলিখিত ধরনগুলি থাকতে পারে: {0}!",
"arrayDouble":"এই অ্যারেটিতে একই মান দুবার থাকতে পারে না!",
"discordInvalidId":"এটি একটি অবৈধ ডিসকর্ড {0} আইডি!",
"discordInvalidIdOptions":"এটি একটি অবৈধ ডিসকর্ড {0} আইডি! আপনি এগুলির মধ্যে একটি ব্যবহার করতে পারেন: {1}!",
"discordInvalidToken":"এটি একটি অবৈধ ডিসকর্ড টোকেন (বাক্য গঠনগতভাবে)!",
"colorInvalid":"এটি একটি অবৈধ হেক্স রঙ!",
"emojiTooShort":"এই স্ট্রিংটিতে কমপক্ষে {0} ইমোজি থাকতে হবে!",
"emojiTooLong":"এই স্ট্রিংটিতে সর্বাধিক {0} ইমোজি থাকতে পারে!",
"emojiCustom":"এই ইমোজিটি একটি কাস্টম ডিসকর্ড ইমোজি হতে পারে না!",
"emojiInvalid":"এটি একটি অবৈধ ইমোজি!",
"urlInvalid":"এই URL টি অবৈধ!",
"urlInvalidHttp":"এই URL টি শুধুমাত্র https:// প্রোটোকল ব্যবহার করতে পারে!",
"urlInvalidProtocol":"এই URL টি শুধুমাত্র http:// এবং https:// প্রোটোকল ব্যবহার করতে পারে!",
"urlInvalidHostname":"এই URL টির একটি অননুমোদিত হোস্টনেম আছে!",
"urlInvalidExtension":"এই URL টির একটি অবৈধ এক্সটেনশন আছে! নিম্নলিখিতগুলির মধ্যে选择一个: {0}!",
"urlInvalidPath":"এই URL টির একটি অবৈধ পথ আছে!",
"idNotUnique":"এই আইডিটি অনন্য নয়, পরিবর্তে অন্য একটি আইডি ব্যবহার করুন!",
"idNonExistent":"আইডি {0} বিদ্যমান নেই!",
"invalidType":"এই প্রপার্টিটির ধরন হতে হবে: {0}!",
"propertyMissing":"এই অবজেক্টে {0} প্রপার্টিটি অনুপস্থিত!",
"propertyOptional":"এই অবজেক্টে {0} প্রপার্টিটি ঐচ্ছিক!",
"objectDisabled":"এই অবজেক্টটি নিষ্ক্রিয়, {0} ব্যবহার করে এটি সক্রিয় করুন!",
"nullInvalid":"এই প্রপার্টিটি null হতে পারে না!",
"switchInvalidType":"এটি নিম্নলিখিত ধরনগুলির একটি হতে হবে: {0}!",
"objectSwitchInvalid":"এই অবজেক্টটি নিম্নলিখিত ধরনগুলির একটি হতে হবে: {0}!",
"invalidLanguage":"এটি একটি অবৈধ ভাষা!",
"invalidButton":"এই বাটনটিতে কমপক্ষে একটি {0} বা {1} থাকতে হবে!",
"unusedOption":"অপশন {0} কোথাও ব্যবহার করা হয়নি!",
"unusedQuestion":"প্রশ্ন {0} কোথাও ব্যবহার করা হয়নি!",
"dropdownOption":"ড্রপডাউন সক্রিয় থাকা একটি প্যানেল শুধুমাত্র 'টিকেট' টাইপের অপশন ধারণ করতে পারে!",
"customInvalidVersion":"আপনার কনফিগারেশনে উল্লেখিত সংস্করণ মেলছে না! নিশ্চিত করুন যে কনফিগারেশন সর্বশেষ সংস্করণে আপডেট হয়েছে!"
}
},
"actions":{
"buttons":{
"create":"টিকেট দেখুন",
"close":"টিকেট বন্ধ করুন",
"delete":"টিকেট মুছুন",
"reopen":"টিকেট পুনরায় খুলুন",
"claim":"টিকেট দাবি করুন",
"unclaim":"টিকেট দাবি ত্যাগ করুন",
"pin":"টিকেট পিন করুন",
"unpin":"টিকেট আনপিন করুন",
"clear":"টিকেট মুছুন",
"helpSwitchSlash":"স্ল্যাশ কমান্ড দেখুন",
"helpSwitchText":"টেক্সট কমান্ড দেখুন",
"helpPage":"পৃষ্ঠা {0}",
"withReason":"কারণ সহ",
"withoutTranscript":"ট্রান্সক্রিপ্ট ছাড়া"
},
"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":"স্বয়ংক্রিয় বন্ধ সক্রিয়",
"autocloseDisabled":"স্বয়ংক্রিয় বন্ধ নিষ্ক্রিয়",
"autodelete":"টিকেট স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়েছে",
"autodeleteEnabled":"স্বয়ংক্রিয় মুছে ফেলা সক্রিয়",
"autodeleteDisabled":"স্বয়ংক্রিয় মুছে ফেলা নিষ্ক্রিয়",
"topicSet":"বিষয় পরিবর্তিত হয়েছে",
"prioritySet":"অগ্রাধিকার পরিবর্তিত হয়েছে",
"priorityGet":"টিকিটের অগ্রাধিকার",
"transfer":"টিকিট স্থানান্তরিত হয়েছে"
},
"descriptions":{
"create":"আপনার টিকেট তৈরি করা হয়েছে। এটি অ্যাক্সেস করতে নীচের বাটনে ক্লিক করুন!",
"close":"টিকেটটি সফলভাবে বন্ধ করা হয়েছে!",
"delete":"টিকেটটি সফলভাবে মুছে ফেলা হয়েছে!",
"reopen":"টিকেটটি সফলভাবে পুনরায় খোলা হয়েছে!",
"claim":"টিকেটটি সফলভাবে দাবি করা হয়েছে!",
"unclaim":"টিকেটটি সফলভাবে দাবি ত্যাগ করা হয়েছে!",
"pin":"টিকেটটি সফলভাবে পিন করা হয়েছে!",
"unpin":"টিকেটটি সফলভাবে আনপিন করা হয়েছে!",
"rename":"টিকেটটির নাম সফলভাবে {0} এ পরিবর্তন করা হয়েছে!",
"move":"টিকেটটি সফলভাবে {0} এ সরানো হয়েছে!",
"add":"{0} কে সফলভাবে টিকেটে যোগ করা হয়েছে!",
"remove":"{0} কে সফলভাবে টিকেট থেকে সরানো হয়েছে!",
"helpExplanation":"`<নাম>` => প্রয়োজনীয় প্যারামিটার\n`[নাম]` => ঐচ্ছিক প্যারামিটার",
"statsReset":"বট পরিসংখ্যান সফলভাবে রিসেট করা হয়েছে!",
"statsError":"টিকেট পরিসংখ্যান দেখতে অক্ষম!\n{0} একটি টিকেট নয়!",
"blacklistAdd":"{0} কে সফলভাবে ব্ল্যাকলিস্ট করা হয়েছে!",
"blacklistRemove":"{0} কে সফলভাবে মুক্তি দেওয়া হয়েছে!",
"blacklistGetSuccess":"{0} বর্তমানে ব্ল্যাকলিস্টেড!",
"blacklistGetEmpty":"{0} বর্তমানে ব্ল্যাকলিস্টেড নয়!",
"blacklistViewEmpty":"এখন পর্যন্ত কাউকে ব্ল্যাকলিস্ট করা হয়নি!",
"blacklistViewTip":"ব্যবহারকারী ব্ল্যাকলিস্ট করতে \"/blacklist add\" ব্যবহার করুন!",
"clearVerify":"আপনি কি নিশ্চিত যে আপনি একাধিক টিকেট মুছতে চান?\nএই ক্রিয়াটি পূর্বাবস্থায় ফেরানো যাবে না!",
"clearReady":"{0} টি টিকেট সফলভাবে মুছে ফেলা হয়েছে!",
"rolesEmpty":"কোন ভূমিকা আপডেট করা হয়নি!",
"autocloseLeave":"এই টিকেটটি স্বয়ংক্রিয়ভাবে বন্ধ হয়েছে কারণ নির্মাতা সার্ভার ছেড়ে চলে গেছেন!",
"autocloseTimeout":"এই টিকেটটি স্বয়ংক্রিয়ভাবে বন্ধ হয়েছে কারণ এটি `{0}ঘণ্টা` এর বেশি সময় ধরে নিষ্ক্রিয় ছিল!",
"autodeleteLeave":"এই টিকেটটি স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়েছে কারণ নির্মাতা সার্ভার ছেড়ে চলে গেছেন!",
"autodeleteTimeout":"এই টিকেটটি স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়েছে কারণ এটি `{0} দিন` এর বেশি সময় ধরে নিষ্ক্রিয় ছিল!",
"autocloseEnabled":"এই টিকেটে স্বয়ংক্রিয় বন্ধ সক্রিয় করা হয়েছে!\nএটি `{0}ঘণ্টা` এর বেশি সময় ধরে নিষ্ক্রিয় থাকলে বন্ধ হয়ে যাবে!",
"autocloseDisabled":"এই টিকেটে স্বয়ংক্রিয় বন্ধ নিষ্ক্রিয় করা হয়েছে!\nএটি আর স্বয়ংক্রিয়ভাবে বন্ধ হবে না!",
"autodeleteEnabled":"এই টিকেটে স্বয়ংক্রিয় মুছে ফেলা সক্রিয় করা হয়েছে!\nএটি `{0} দিন` এর বেশি সময় ধরে নিষ্ক্রিয় থাকলে মুছে ফেলা হবে!",
"autodeleteDisabled":"এই টিকেটে স্বয়ংক্রিয় মুছে ফেলা নিষ্ক্রিয় করা হয়েছে!\nএটি আর স্বয়ংক্রিয়ভাবে মুছে ফেলা হবে না!",
"ticketMessageLimit":"আপনি একই সময়ে শুধুমাত্র {0} টি টিকেট তৈরি করতে পারেন!",
"ticketMessageAutoclose":"এই টিকেটটি {0}ঘণ্টা নিষ্ক্রিয় থাকলে স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে!",
"ticketMessageAutodelete":"এই টিকেটটি {0} দিন নিষ্ক্রিয় থাকলে স্বয়ংক্রিয়ভাবে মুছে ফেলা হবে!",
"panelReady":"প্যানেলটি ফলোআপ বার্তায় উপলব্ধ!\nএখন এই বার্তাটি মুছে ফেলা যেতে পারে!",
"topicSet":"চ্যানেলের বিষয় {0} দ্বারা সফলভাবে পরিবর্তন করা হয়েছে!",
"prioritySet":"টিকিটের অগ্রাধিকার {1} দ্বারা {0} এ সফলভাবে পরিবর্তন করা হয়েছে!",
"priorityGet":"এই টিকিটের বর্তমান অগ্রাধিকার হলো {0}.",
"transfer":"টিকিটের মালিকানা {2} দ্বারা {0} থেকে {1}-এ সফলভাবে স্থানান্তরিত হয়েছে!"
},
"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":"এই টিকিটের মালিকানা {2} দ্বারা {0} থেকে {1}-এ স্থানান্তরিত হয়েছে!",
"transferDm":"আপনার টিকিটের মালিকানা আমাদের সার্ভারে {0} থেকে {1}-এ স্থানান্তরিত হয়েছে!",
"prioritySetLog":"এই টিকিটের অগ্রাধিকার {1} দ্বারা {0}-এ পরিবর্তিত হয়েছে!",
"prioritySetDm":"আপনার টিকিটের অগ্রাধিকার আমাদের সার্ভারে {0}-এ পরিবর্তিত হয়েছে!",
"roleUpdateLog":"{0} তাদের ভূমিকা আপডেট করেছেন!",
"roleUpdateDm":"আপনার সার্ভারে ভূমিকা আপডেট করা হয়েছে!"
}
},
"transcripts":{
"success":{
"visit":"ট্রান্সক্রিপ্ট দেখুন",
"ready":"ট্রান্সক্রিপ্ট তৈরি করা হয়েছে",
"textFileDescription":"এটি একটি মুছে ফেলা টিকেটের টেক্সট ট্রান্সক্রিপ্ট!",
"htmlProgress":"এই HTML ট্রান্সক্রিপ্ট প্রক্রিয়া করা হচ্ছে, অনুগ্রহ করে অপেক্ষা করুন...",
"createdChannel":"সার্ভারে একটি নতুন {0} ট্রান্সক্রিপ্ট তৈরি করা হয়েছে!",
"createdCreator":"আপনার একটি টিকেটের জন্য একটি নতুন {0} ট্রান্সক্রিপ্ট তৈরি করা হয়েছে!",
"createdParticipant":"আপনার অংশগ্রহণ করা একটি টিকেটে একটি নতুন {0} ট্রান্সক্রিপ্ট তৈরি করা হয়েছে!",
"createdActiveAdmin":"আপনার প্রশাসক হিসাবে অংশগ্রহণ করা একটি টিকেটে একটি নতুন {0} ট্রান্সক্রিপ্ট তৈরি করা হয়েছে!",
"createdEveryAdmin":"আপনার প্রশাসক হিসাবে থাকা একটি টিকেটে একটি নতুন {0} ট্রান্সক্রিপ্ট তৈরি করা হয়েছে!",
"createdOther":"একটি নতুন {0} ট্রান্সক্রিপ্ট তৈরি করা হয়েছে!"
},
"errors":{
"retry":"পুনরায় চেষ্টা করুন",
"continue":"ট্রান্সক্রিপ্ট ছাড়া মুছুন",
"backup":"ব্যাকআপ ট্রান্সক্রিপ্ট তৈরি করুন",
"error":"ট্রান্সক্রিপ্ট তৈরি করার সময় কিছু ভুল হয়েছে।\nআপনি কি করতে চান?\n\nআপনি এই বাটনগুলির একটিতে ক্লিক না করা পর্যন্ত এই টিকেটটি মুছে ফেলা হবে না।",
"title":"ট্রান্সক্রিপ্ট ত্রুটি"
},
"text":{
"messagesTitle":"বার্তা",
"embedTitle":"এম্বেড",
"fileTitle":"ফাইল",
"fieldsTitle":"ফিল্ড",
"reactionsTitle":"প্রতিক্রিয়া",
"statsTitle":"পরিসংখ্যান",
"emptyContent":"<কোনো কনটেন্ট নেই>",
"noTitle":"<শিরোনাম নেই>",
"noDesc":"<বর্ণনা নেই>"
}
},
"errors":{
"titles":{
"internalError":"অভ্যন্তরীণ ত্রুটি",
"optionMissing":"কমান্ড অপশন অনুপস্থিত",
"optionInvalid":"অবৈধ কমান্ড অপশন",
"unknownCommand":"অজানা কমান্ড",
"noPermissions":"অনুমতি নেই",
"unknownTicket":"অজানা টিকেট",
"deprecatedTicket":"অপ্রচলিত টিকেট",
"unknownOption":"অজানা অপশন",
"unknownPanel":"অজানা প্যানেল",
"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":"ডিসকর্ড রেটলিমিটের কারণে, বটের পক্ষে চ্যানেলের নাম পরিবর্তন করা বর্তমানে অসম্ভব। বট রিবুট না করা হলে চ্যানেলটি ১০ মিনিটের মধ্যে স্বয়ংক্রিয়ভাবে নাম পরিবর্তন করা হবে।",
"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":"আপনাকে বটের ডেভেলপার হতে হবে।",
"owner":"আপনাকে সার্ভারের মালিক হতে হবে।",
"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":"প্যানেল",
"command":"কমান্ড",
"system":"সিস্টেম",
"true":"সত্য",
"false":"মিথ্যা",
"syntax":"সিনট্যাক্স",
"originalName":"আসল নাম",
"newName":"নতুন নাম",
"until":"যতক্ষণ না",
"validOptions":"বৈধ অপশনসমূহ",
"validPanels":"বৈধ প্যানেলসমূহ",
"autoclose":"স্বয়ংক্রিয় বন্ধ",
"autodelete":"স্বয়ংক্রিয় মুছে ফেলা",
"startupDate":"শুরু করার তারিখ",
"version":"সংস্করণ",
"name":"নাম",
"role":"রোল",
"status":"অবস্থা",
"claimed":"দাবি করা হয়েছে",
"pinned":"পিন করা হয়েছে",
"creationDate":"তৈরির তারিখ",
"noone":"কেউ নয়",
"open":"খোলা",
"closed":"বন্ধ",
"priority":"অগ্রাধিকার",
"participants":"অংশগ্রহণকারী",
"yes":"হ্যাঁ",
"no":"না",
"option":"বিকল্প",
"topic":"বিষয়",
"uptime":"সিস্টেম চালু সময়",
"messages":"বার্তা",
"embeds":"এম্বেড",
"files":"ফাইল",
"components":"কম্পোনেন্ট",
"cooldown":"কুলডাউন",
"maxTickets":"সর্বোচ্চ টিকিট",
"admins":"অ্যাডমিন",
"roles":"ভূমিকা",
"size":"আকার"
},
"lowercase":{
"text":"টেক্সট",
"html":"এইচটিএমএল",
"command":"কমান্ড",
"modal":"মোডাল",
"button":"বাটন",
"dropdown":"ড্রপডাউন",
"method":"পদ্ধতি"
}
},
"commands":{
"reason":"একটি ঐচ্ছিক কারণ উল্লেখ করুন যা লগে দৃশ্যমান হবে।",
"help":"সমস্ত উপলব্ধ কমান্ডের তালিকা পান।",
"panel":"একটি ড্রপডাউন বা বাটন সহ একটি বার্তা তৈরি করুন (টিকেট তৈরির জন্য)।",
"panelId":"আপনি যে প্যানেল তৈরি করতে চান তার আইডেন্টিফায়ার।",
"panelAutoUpdate":"আপনি কি এই প্যানেলটিকে সম্পাদনা করার সময় স্বয়ংক্রিয়ভাবে আপডেট করতে চান?",
"ticket":"তাৎক্ষণিকভাবে একটি টিকেট তৈরি করুন।",
"ticketId":"আপনি যে টিকেট তৈরি করতে চান তার আইডেন্টিফায়ার।",
"close":"একটি টিকেট বন্ধ করুন।",
"delete":"একটি টিকেট মুছুন।",
"deleteNoTranscript":"ট্রান্সক্রিপ্ট তৈরি না করে এই টিকেটটি মুছুন।",
"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":"একটি টিকেটে স্বয়ংক্রিয় বন্ধ পরিচালনা করুন।",
"autocloseDisable":"এই টিকেটে স্বয়ংক্রিয় বন্ধ নিষ্ক্রিয় করুন।",
"autocloseEnable":"এই টিকেটে স্বয়ংক্রিয় বন্ধ সক্রিয় করুন।",
"autocloseEnableTime":"এই টিকেটটি বন্ধ করার জন্য কত ঘণ্টা নিষ্ক্রিয় থাকতে হবে।",
"autodelete":"একটি টিকেটে স্বয়ংক্রিয় মুছে ফেলা পরিচালনা করুন।",
"autodeleteDisable":"এই টিকেটে স্বয়ংক্রিয় মুছে ফেলা নিষ্ক্রিয় করুন।",
"autodeleteEnable":"এই টিকেটে স্বয়ংক্রিয় মুছে ফেলা সক্রিয় করুন।",
"autodeleteEnableTime":"এই টিকেটটি মুছে ফেলার জন্য কত দিন নিষ্ক্রিয় থাকতে হবে।",
"topic":"টিকিট চ্যানেলের বিষয় পরিচালনা করুন।",
"topicSet":"টিকিট চ্যানেলের বিষয় সেট করুন।",
"topicValue":"চ্যানেলের নতুন বিষয়।",
"topicList":"সমস্ত টিকিটের তালিকা এবং তাদের বিষয় এবং পরিসংখ্যান দেখুন।",
"priority":"টিকিটের অগ্রাধিকার পরিচালনা করুন।",
"prioritySet":"টিকিটের অগ্রাধিকার সেট করুন।",
"priorityValue":"চ্যানেলের অগ্রাধিকার।",
"priorityGet":"টিকিটের অগ্রাধিকার দেখুন।",
"priorityList":"সমস্ত টিকিটের তালিকা এবং তাদের অগ্রাধিকার দেখুন।",
"transfer":"একজন ব্যবহারকারীর থেকে অন্য ব্যবহারকারীর কাছে টিকিটের মালিকানা স্থানান্তর করুন।",
"transferUser":"যার কাছে স্থানান্তর করতে হবে সেই ব্যবহারকারী।"
},
"helpMenu":{
"help":"সমস্ত উপলব্ধ কমান্ডের তালিকা পান।",
"ticket":"তাৎক্ষণিকভাবে একটি টিকেট তৈরি করুন।",
"close":"একটি টিকেট বন্ধ করুন, এটি এই চ্যানেলে লেখা নিষ্ক্রিয় করে।",
"delete":"একটি টিকেট মুছুন, এটি সক্রিয় থাকলে একটি ট্রান্সক্রিপ্ট তৈরি করে।",
"reopen":"একটি টিকেট পুনরায় খুলুন, এটি এই চ্যানেলে আবার লেখা সক্রিয় করে।",
"pin":"একটি টিকেট পিন করুন। এটি টিকেটটি শীর্ষে নিয়ে যাবে এবং নামে একটি '📌' ইমোজি যোগ করবে।",
"unpin":"একটি টিকেট আনপিন করুন। টিকেটটি তার অবস্থানে থাকবে কিন্তু '📌' ইমোজি হারাবে।",
"move":"একটি টিকেট সরান। এটি এই টিকেটের ধরন পরিবর্তন করবে।",
"rename":"একটি টিকেটের নাম পরিবর্তন করুন। এটি এই টিকেটের চ্যানেল নাম পরিবর্তন করবে。",
"claim":"একটি টিকেট দাবি করুন। এর মাধ্যমে, আপনি আপনার টিমকে জানাতে পারেন যে আপনি এই টিকেটটি হ্যান্ডল করছেন।",
"unclaim":"একটি টিকেট দাবি ত্যাগ করুন। এর মাধ্যমে, আপনি আপনার টিমকে জানাতে পারেন যে এই টিকেটটি এখন ফ্রি।",
"add":"একটি টিকেটে ব্যবহারকারী যোগ করুন। এটি ব্যবহারকারীকে এই টিকেটে পড়তে এবং লিখতে অনুমতি দেবে।",
"remove":"একটি টিকেট থেকে ব্যবহারকারী সরান। এটি একটি ব্যবহারকারীর জন্য এই টিকেটে পড়া এবং লেখার ক্ষমতা সরিয়ে দেবে।",
"panel":"একটি ড্রপডাউন বা বাটন সহ একটি বার্তা তৈরি করুন (টিকেট তৈরির জন্য)।",
"blacklistView":"বর্তমান ব্ল্যাকলিস্টের তালিকা দেখুন।",
"blacklistAdd":"ব্ল্যাকলিস্টে একজন ব্যবহারকারী যোগ করুন।",
"blacklistRemove":"ব্ল্যাকলিস্ট থেকে একজন ব্যবহারকারী সরান।",
"blacklistGet":"একজন ব্ল্যাকলিস্টেড ব্যবহারকারীর বিবরণ পান।",
"statsGlobal":"গ্লোবাল পরিসংখ্যান দেখুন।",
"statsTicket":"সার্ভারে একটি টিকেটের পরিসংখ্যান দেখুন।",
"statsUser":"সার্ভারে একজন ব্যবহারকারীর পরিসংখ্যান দেখুন।",
"statsReset":"বটের সমস্ত পরিসংখ্যান রিসেট করুন (এবং শূন্য থেকে গণনা শুরু করুন)।",
"autocloseDisable":"এই টিকেটে স্বয়ংক্রিয় বন্ধ নিষ্ক্রিয় করুন।",
"autocloseEnable":"এই টিকেটে স্বয়ংক্রিয় বন্ধ সক্রিয় করুন।",
"autodeleteDisable":"এই টিকেটে স্বয়ংক্রিয় মুছে ফেলা নিষ্ক্রিয় করুন।",
"autodeleteEnable":"এই টিকেটে স্বয়ংক্রিয় মুছে ফেলা সক্রিয় করুন।",
"categories":{
"general":"সাধারণ কমান্ড",
"basicTicket":"বেসিক টিকিট কমান্ড",
"advancedTicket":"উন্নত টিকিট কমান্ড",
"userTicket":"ব্যবহারকারী টিকিট কমান্ড",
"admin":"অ্যাডমিন কমান্ড",
"advanced":"উন্নত কমান্ড",
"extra":"অতিরিক্ত কমান্ড"
}
},
"stats":{
"scopes":{
"global":"গ্লোবাল পরিসংখ্যান",
"system":"সিস্টেম পরিসংখ্যান",
"user":"ব্যবহারকারী পরিসংখ্যান",
"ticket":"টিকেট পরিসংখ্যান",
"participants":"অংশগ্রহণকারী",
"messages":"বার্তা"
},
"properties":{
"ticketsCreated":"টিকেট তৈরি হয়েছে",
"ticketsClosed":"টিকেট বন্ধ হয়েছে",
"ticketsDeleted":"টিকেট মুছে ফেলা হয়েছে",
"ticketsReopened":"টিকেট পুনরায় খোলা হয়েছে",
"ticketsAutoclosed":"স্বয়ংক্রিয়ভাবে টিকেট বন্ধ হয়েছে",
"ticketsClaimed":"টিকেট দাবি করা হয়েছে",
"ticketsPinned":"টিকেট পিন করা হয়েছে",
"ticketsMoved":"টিকেট সরানো হয়েছে",
"usersBlacklisted":"ব্যবহারকারী ব্ল্যাকলিস্ট করা হয়েছে",
"transcriptsCreated":"ট্রান্সক্রিপ্ট তৈরি হয়েছে",
"ticketsAutodeleted":"অটো-মুছে ফেলা টিকিট",
"ticketsTransferred":"স্থানান্তরিত টিকিট",
"ticketVolume":"টিকিট ভলিউম",
"averageTickets":"গড় টিকিট/ব্যবহারকারী",
"currentTickets":"বর্তমান টিকিট",
"age":"টিকিটের বয়স",
"responseTime":"প্রতিক্রিয়া সময়",
"resolutionTime":"সমাধান সময়",
"createdOn":"তৈরির তারিখ",
"createdBy":"তৈরি করেছেন",
"closedOn":"বন্ধ হয়েছে",
"closedBy":"বন্ধ করেছেন",
"claimedOn":"দাবি করা হয়েছে",
"claimedBy":"দাবি করেছেন",
"pinnedOn":"পিন করা হয়েছে",
"pinnedBy":"পিন করেছেন",
"deletedOn":"মুছে ফেলা হয়েছে",
"deletedBy":"মুছে ফেলেছেন"
},
"roles":{
"developer":"ডেভেলপার",
"serverOwner":"সার্ভারের মালিক",
"serverAdmin":"সার্ভার অ্যাডমিন",
"moderator":"মডারেটর টিম",
"support":"সাপোর্ট টিম",
"member":"সদস্য"
}
},
"panel":{
"selectTicket":"আপনার টিকিট নির্বাচন করুন",
"selectRole":"আপনার ভূমিকা নির্বাচন করুন",
"selectOption":"আপনার বিকল্প নির্বাচন করুন"
},
"priorities":{
"urgent":"জরুরি",
"veryHigh":"খুব উচ্চ",
"high":"উচ্চ",
"normal":"সাধারণ",
"low":"নিম্ন",
"veryLow":"খুব নিম্ন",
"none":"কোনোটি নয়"
}
}
+608
View File
@@ -0,0 +1,608 @@
{
"_TRANSLATION":{
"otversion":"v4.1.3",
"translators":["guillee3"],
"lastedited":"16/02/2026",
"language":"Catalan",
"automated":false
},
"checker":{
"system":{
"typeError":"[ERROR]",
"headerOpenTicket":"OPEN TICKET",
"typeWarning":"[AVÍS]",
"typeInfo":"[INFO]",
"headerConfigChecker":"VERIFICADOR DE CONFIGURACIÓ",
"headerDescription":"comprova si existeixen errors als teus fitxers de configuració!",
"footerError":"el bot no s'iniciarà fins que tots els {0} es solucionin!",
"footerWarning":"es recomana solucionar tots els {0} abans de començar!",
"footerSupport":"SUPORT: {0} - DOCUMENTACIÓ: {1}",
"compactInformation":"utilitza {0} per obtenir més informació!",
"dataPath":"ruta",
"dataDocs":"documents",
"dataMessages":"missatge"
},
"messages":{
"stringTooShort":"Aquesta cadena no pot tenir menys de {0} caràcters!",
"stringTooLong":"Aquesta cadena no pot tenir més de {0} caràcters!",
"stringLengthInvalid":"Aquesta cadena ha de tenir {0} caràcters!",
"stringStartsWith":"Aquesta cadena ha de començar amb {0}!",
"stringEndsWith":"Aquesta cadena ha d'acabar amb {0}!",
"stringContains":"Aquesta cadena ha de contenir {0}!",
"stringChoices":"Aquesta cadena només pot ser un dels valors següents: {0}!",
"stringRegex":"Aquesta cadena és invàlida!",
"stringInvertedContains":"Aquesta cadena no pot contenir {0}!",
"stringLowercase":"Aquesta cadena ha d'estar escrita només en minúscules!",
"stringUppercase":"Aquesta cadena ha d'estar escrita només en majúscules!",
"stringSpecialCharacters":"Aquesta cadena no pot contenir cap caràcter especial! (només a-z, 0-9 i espai)",
"stringNoSpaces":"Aquesta cadena no pot contenir espais!",
"stringCapitalWord":"Es recomana que cada paraula d'aquesta cadena comenci amb una lletra majúscula!",
"stringCapitalSentence":"Sembla que algunes frases d'aquesta cadena no comencen amb una lletra majúscula!",
"stringPunctuation":"Sembla que la frase d'aquesta cadena no acaba amb un signe de puntuació!",
"numberTooShort":"Aquest nombre no pot tenir menys de {0} caràcters!",
"numberTooLong":"Aquest nombre no pot tenir més de {0} caràcters!",
"numberLengthInvalid":"Aquest nombre ha de tenir {0} caràcters!",
"numberTooSmall":"Aquest nombre ha de ser almenys {0}!",
"numberTooLarge":"Aquest nombre ha de ser com a màxim {0}!",
"numberNotEqual":"Aquest nombre ha de ser {0}!",
"numberStep":"Aquest nombre ha de ser un múltiple de {0}!",
"numberStepOffset":"Aquest nombre ha de ser un múltiple de {0} començant amb {1}!",
"numberStartsWith":"Aquest nombre ha de començar amb {0}!",
"numberEndsWith":"Aquest nombre ha d'acabar amb {0}!",
"numberContains":"Aquest nombre ha de contenir {0}!",
"numberChoices":"Aquest nombre només pot ser un dels valors següents: {0}!",
"numberFloat":"Aquest nombre no pot ser un decimal!",
"numberNegative":"Aquest nombre no pot ser negatiu!",
"numberPositive":"Aquest nombre no pot ser positiu!",
"numberZero":"Aquest nombre no pot ser zero!",
"numberNan":"Aquest número no pot ser NaN (Not A Number)!",
"numberInvertedContains":"Aquest número no pot contenir {0}!",
"booleanTrue":"Aquest booleà no pot ser veritable!",
"booleanFalse":"Aquest booleà no pot ser fals!",
"arrayEmptyDisabled":"Aquest array no pot estar buit!",
"arrayEmptyRequired":"Aquest array ha d'estar buit!",
"arrayTooShort":"Aquest array ha de tenir una longitud d'almenys {0}!",
"arrayTooLong":"Aquest array ha de tenir una longitud màxima de {0}!",
"arrayLengthInvalid":"Aquest array ha de tenir una longitud de {0}!",
"arrayInvalidTypes":"Aquest array només pot contenir els tipus següents: {0}!",
"arrayDouble":"Aquest array no permet el mateix valor dues vegades!",
"discordInvalidId":"Aquest és un id de {0} de discord invàlid!",
"discordInvalidIdOptions":"Aquest és un id de {0} de discord invàlid! També en pots utilitzar un d'aquests: {1}!",
"discordInvalidToken":"Aquest és un token de discord invàlid (sintàcticament)!",
"colorInvalid":"Aquest és un color hex invàlid!",
"emojiTooShort":"Aquesta cadena ha de tenir almenys {0} emojis!",
"emojiTooLong":"Aquesta cadena ha de tenir com a màxim {0} emojis!",
"emojiCustom":"Aquest emoji no pot ser un emoji personalitzat de discord!",
"emojiInvalid":"Aquest és un emoji invàlid!",
"urlInvalid":"Aquesta url és invàlida!",
"urlInvalidHttp":"Aquesta url només pot utilitzar el protocol https://!",
"urlInvalidProtocol":"Aquesta url només pot utilitzar els protocols http:// i https://!",
"urlInvalidHostname":"Aquesta url té un nom de domini no permès!",
"urlInvalidExtension":"Aquesta url té una extensió invàlida! Tria entre: {0}!",
"urlInvalidPath":"Aquesta url té un camí invàlid!",
"idNotUnique":"Aquest id no és únic, utilitza un altre id!",
"idNonExistent":"L'id {0} no existeix!",
"invalidType":"Aquesta propietat ha de ser del tipus: {0}!",
"propertyMissing":"La propietat {0} falta en aquest objecte!",
"propertyOptional":"La propietat {0} és opcional en aquest objecte!",
"objectDisabled":"Aquest objecte està desactivat, activa'l utilitzant {0}!",
"nullInvalid":"Aquesta propietat no pot ser nul·la!",
"switchInvalidType":"Això ha de ser d'un dels tipus següents: {0}!",
"objectSwitchInvalid":"Aquest objecte ha de ser d'un dels tipus següents: {0}!",
"invalidLanguage":"Aquest és un idioma invàlid!",
"invalidButton":"Aquest botó ha de tenir almenys un {0} o {1}!",
"unusedOption":"L'opció {0} no s'utilitza enlloc!",
"unusedQuestion":"La pregunta {0} no s'utilitza enlloc!",
"dropdownOption":"Un panell amb desplegable activat només pot contenir opcions del tipus 'ticket'!",
"customInvalidVersion":"La versió especificada a la teva configuració no coincideix! Assegura't d'haver actualitzat la configuració a la versió més recent!"
}
},
"actions":{
"buttons":{
"create":"Veure Ticket",
"close":"Tancar Ticket",
"delete":"Eliminar Ticket",
"reopen":"Reobrir Ticket",
"claim":"Reclamar Ticket",
"unclaim":"Alliberar Ticket",
"pin":"Fixar Ticket",
"unpin":"Desfixar Ticket",
"clear":"Eliminar Tickets",
"helpSwitchSlash":"Veure Comandes Slash",
"helpSwitchText":"Veure Comandes de Text",
"helpPage":"Pàgina {0}",
"withReason":"Amb Motiu",
"withoutTranscript":"Sense Transcripció"
},
"titles":{
"created":"Ticket Creat",
"close":"Ticket Tancat",
"delete":"Ticket Eliminat",
"reopen":"Ticket Reobert",
"claim":"Ticket Reclamat",
"unclaim":"Ticket Alliberat",
"pin":"Ticket Fixat",
"unpin":"Ticket Desfixat",
"rename":"Ticket Renomenat",
"move":"Ticket Mogut",
"add":"Usuari Afegit al Ticket",
"remove":"Usuari Eliminat del Ticket",
"help":"Comandes Disponibles",
"statsReset":"Restablir Estadístiques",
"blacklistAdd":"Usuari a la Llista Negra",
"blacklistRemove":"Usuari Alliberat",
"blacklistGet":"Usuari a la Llista Negra",
"blacklistView":"Llista Negra Actual",
"blacklistAddDm":"Afegit a la Llista Negra",
"blacklistRemoveDm":"Eliminat de la Llista Negra",
"clear":"Tickets Netejats",
"clearTickets":"Netejar Tickets",
"roles":"Rols Actualitzats",
"autoclose":"Ticket Tancat Automàticament",
"autocloseEnabled":"Tancament Automàtic Activat",
"autocloseDisabled":"Tancament Automàtic Desactivat",
"autodelete":"Ticket Eliminat Automàticament",
"autodeleteEnabled":"Eliminació Automàtica Activada",
"autodeleteDisabled":"Eliminació Automàtica Desactivada",
"topicSet":"Tema Canviat",
"prioritySet":"Prioritat Canviada",
"priorityGet":"Prioritat del Ticket",
"transfer":"Ticket Transferit"
},
"descriptions":{
"create":"El teu ticket ha estat creat. Fes clic al botó a continuació per accedir-hi!",
"close":"El ticket ha estat tancat amb èxit!",
"delete":"El ticket ha estat eliminat amb èxit!",
"reopen":"El ticket ha estat reobert amb èxit!",
"claim":"El ticket ha estat reclamat amb èxit!",
"unclaim":"El ticket ha estat alliberat amb èxit!",
"pin":"El ticket ha estat fixat amb èxit!",
"unpin":"El ticket ha estat desfixat amb èxit!",
"rename":"El ticket ha estat renomenat a {0} amb èxit!",
"move":"El ticket ha estat mogut a {0} amb èxit!",
"add":"{0} ha estat afegit al ticket amb èxit!",
"remove":"{0} ha estat eliminat del ticket amb èxit!",
"helpExplanation":"`<nom>` => paràmetre requerit\n`[nom]` => paràmetre opcional",
"statsReset":"Les estadístiques del bot s'han restablert correctament!",
"statsError":"No es poden veure les estadístiques del ticket!\n{0} no és un ticket!",
"blacklistAdd":"{0} ha estat afegit a la llista negra amb èxit!",
"blacklistRemove":"{0} ha estat alliberat amb èxit!",
"blacklistGetSuccess":"{0} està actualment a la llista negra!",
"blacklistGetEmpty":"{0} actualment no està a la llista negra!",
"blacklistViewEmpty":"Encara no hi ha ningú a la llista negra!",
"blacklistViewTip":"Utilitza \"/blacklist add\" per afegir un usuari a la llista negra!",
"clearVerify":"Estàs segur que vols eliminar múltiples tickets?\nAquesta acció no es pot desfer!",
"clearReady":"{0} tickets han estat eliminats amb èxit!",
"rolesEmpty":"No s'han actualitzat rols!",
"autocloseLeave":"Aquest ticket ha estat tancat automàticament perquè el creador ha abandonat el servidor!",
"autocloseTimeout":"Aquest ticket ha estat tancat automàticament perquè ha estat inactiu durant més de `{0}h`!",
"autodeleteLeave":"Aquest ticket ha estat eliminat automàticament perquè el creador ha abandonat el servidor!",
"autodeleteTimeout":"Aquest ticket ha estat eliminat automàticament perquè ha estat inactiu durant més de `{0} dies`!",
"autocloseEnabled":"El tancament automàtic ha estat activat en aquest ticket!\nEs tancarà quan estigui inactiu durant més de `{0}h`!",
"autocloseDisabled":"El tancament automàtic ha estat desactivat en aquest ticket!\nJa no es tancarà automàticament!",
"autodeleteEnabled":"L'eliminació automàtica ha estat activada en aquest ticket!\nS'eliminarà quan estigui inactiu durant més de `{0} dies`!",
"autodeleteDisabled":"L'eliminació automàtica ha estat desactivada en aquest ticket!\nJa no s'eliminarà automàticament!",
"ticketMessageLimit":"Només pots crear {0} ticket(s) al mateix temps!",
"ticketMessageAutoclose":"Aquest ticket es tancarà automàticament quan estigui inactiu durant {0}h!",
"ticketMessageAutodelete":"Aquest ticket es eliminarà automàticament quan estigui inactiu durant {0} dies!",
"panelReady":"El panell està disponible en el missatge de seguiment!\nAquest missatge es pot eliminar ara!",
"topicSet":"El tema del canal ha estat canviat per {0} amb èxit!",
"prioritySet":"La prioritat del ticket ha estat canviada a {0} per {1} amb èxit!",
"priorityGet":"La prioritat actual d'aquest ticket és {0}.",
"transfer":"La propietat del ticket ha estat transferida de {0} a {1} per {2} amb èxit!"
},
"modal":{
"closePlaceholder":"Per què has tancat aquest ticket?",
"deletePlaceholder":"Per què has eliminat aquest ticket?",
"reopenPlaceholder":"Per què has reobert aquest ticket?",
"claimPlaceholder":"Per què has reclamat aquest ticket?",
"unclaimPlaceholder":"Per què has alliberat aquest ticket?",
"pinPlaceholder":"Per què has fixat aquest ticket?",
"unpinPlaceholder":"Per què has desfixat aquest ticket?"
},
"logs":{
"createLog":"Un nou ticket ha estat creat per {0}!",
"closeLog":"Aquest ticket ha estat tancat per {0}!",
"closeDm":"El teu ticket ha estat tancat al nostre servidor!",
"deleteLog":"Aquest ticket ha estat eliminat per {0}!",
"deleteDm":"El teu ticket ha estat eliminat al nostre servidor!",
"reopenLog":"Aquest ticket ha estat reobert per {0}!",
"reopenDm":"El teu ticket ha estat reobert al nostre servidor!",
"claimLog":"Aquest ticket ha estat reclamat per {0}!",
"claimDm":"El teu ticket ha estat reclamat al nostre servidor!",
"unclaimLog":"Aquest ticket ha estat alliberat per {0}!",
"unclaimDm":"El teu ticket ha estat alliberat al nostre servidor!",
"pinLog":"Aquest ticket ha estat fixat per {0}!",
"pinDm":"El teu ticket ha estat fixat al nostre servidor!",
"unpinLog":"Aquest ticket ha estat desfixat per {0}!",
"unpinDm":"El teu ticket ha estat desfixat al nostre servidor!",
"renameLog":"Aquest ticket ha estat renombrat a {0} per {1}!",
"renameDm":"El teu ticket ha estat renombrat a {0} al nostre servidor!",
"moveLog":"Aquest ticket ha estat mogut a {0} per {1}!",
"moveDm":"El teu ticket ha estat mogut a {0} al nostre servidor!",
"addLog":"{0} ha estat afegit a aquest ticket per {1}!",
"addDm":"{0} ha estat afegit al teu ticket al nostre servidor!",
"removeLog":"{0} ha estat eliminat d'aquest ticket per {1}!",
"removeDm":"{0} ha estat eliminat del teu ticket al nostre servidor!",
"blacklistAddLog":"{0} ha estat afegit a la llista negra per {1}!",
"blacklistRemoveLog":"{0} ha estat eliminat de la llista negra per {1}!",
"blacklistAddDm":"Has estat afegit a la llista negra al nostre servidor!\nA partir d'ara, no pots crear cap ticket!",
"blacklistRemoveDm":"Has estat eliminat de la llista negra al nostre servidor!\nAra pots crear tickets de nou!",
"clearLog":"{0} tickets han estat eliminats per {1}!",
"transferLog":"La propietat d'aquest ticket ha estat transferida de {0} a {1} per {2}!",
"transferDm":"La propietat del teu ticket ha estat transferida de {0} a {1} al nostre servidor!",
"prioritySetLog":"La prioritat d'aquest ticket ha estat canviada a {0} per {1}!",
"prioritySetDm":"La prioritat del teu ticket ha estat canviada a {0} al nostre servidor!",
"roleUpdateLog":"{0} ha actualitzat els seus rols!",
"roleUpdateDm":"Els teus rols al nostre servidor han estat actualitzats!"
}
},
"transcripts":{
"success":{
"visit":"Veure Transcripció",
"ready":"Transcripció Creada",
"textFileDescription":"Aquesta és la transcripció de text d'un ticket eliminat!",
"htmlProgress":"Si us plau, espera mentre aquesta transcripció html es processa...",
"createdChannel":"S'ha creat una nova transcripció tipus {0} al servidor!",
"createdCreator":"S'ha creat una nova transcripció tipus {0} per un dels teus tickets!",
"createdParticipant":"S'ha creat una nova transcripció tipus {0} en un dels tickets on has participat!",
"createdActiveAdmin":"S'ha creat una nova transcripció tipus {0} en un dels tickets on has participat com a administrador!",
"createdEveryAdmin":"S'ha creat una nova transcripció tipus {0} en un dels tickets on eres administrador!",
"createdOther":"S'ha creat una nova transcripció tipus {0}!"
},
"errors":{
"retry":"Torna-ho a intentar",
"continue":"Elimina Sense Transcripció",
"backup":"Crea Transcripció de Backup",
"error":"Alguna cosa ha anat malament mentre intentàvem crear la transcripció.\nQuè t'agradaria fer?\n\nAquest ticket no s'eliminarà fins que facis clic en un d'aquests botons.",
"title":"Error de transcripció"
},
"text":{
"messagesTitle":"MISSATGES",
"embedTitle":"EMBED",
"fileTitle":"FITXER",
"fieldsTitle":"CAMPS",
"reactionsTitle":"REACCIONS",
"statsTitle":"ESTADÍSTIQUES",
"emptyContent":"<el contingut està buit>",
"noTitle":"<sense títol>",
"noDesc":"<sense descripció>"
}
},
"errors":{
"titles":{
"internalError":"Error Intern",
"optionMissing":"Opció de Comanda Absent",
"optionInvalid":"Opció de Comanda Invàlida",
"unknownCommand":"Comanda Desconeguda",
"noPermissions":"No Tens Permisos",
"unknownTicket":"Ticket Desconegut",
"deprecatedTicket":"Ticket Obsolet",
"unknownOption":"Opció Desconeguda",
"unknownPanel":"Panell Desconegut",
"notInGuild":"No Ets Al Servidor",
"channelRename":"No Es Pot Canviar El Nom Del Canal",
"busy":"El Ticket Està Ocupat",
"permissionError":"Error de Permisos"
},
"descriptions":{
"askForInfo":"Contacta amb el propietari d'aquest bot per obtenir més informació!",
"askForInfoResolve":"Contacta amb el propietari del bot si aquest problema no es resol després de diversos intents.",
"internalError":"No s'ha pogut respondre a aquest {0} a causa d'un error intern!",
"optionMissing":"Falta un paràmetre requerit en aquesta comanda!",
"optionInvalid":"Un paràmetre d'aquesta comanda és invàlid!",
"optionInvalidChoose":"Tria entre",
"unknownCommand":"Prova de visitar el menú d'ajuda per obtenir més informació!",
"noPermissions":"No tens permís per utilitzar aquest {0}!",
"noPermissionsList":"Permisos Requerits: (un d'ells)",
"noPermissionsCooldown":"No tens permís per utilitzar aquest {0} perquè tens un temps de refredament!",
"noPermissionsBlacklist":"No tens permís per utilitzar aquest {0} perquè estàs a la llista negra!",
"noPermissionsLimitGlobal":"No tens permís per crear un ticket perquè el servidor ha arribat al límit màxim de tickets!",
"noPermissionsLimitGlobalUser":"No tens permís per crear un ticket perquè has arribat al límit màxim de tickets!",
"noPermissionsLimitOption":"No tens permís per crear un ticket perquè el servidor ha arribat al límit màxim de tickets per aquesta opció!",
"noPermissionsLimitOptionUser":"No tens permís per crear un ticket perquè has arribat al límit màxim de tickets per aquesta opció!",
"unknownTicket":"Torna a intentar aquesta comanda en un ticket vàlid!",
"deprecatedTicket":"El canal actual no és un ticket vàlid! Pot ser que fos un ticket d'una versió antiga de Open Ticket!",
"notInGuild":"Aquest {0} no funciona en DM! Si us plau, torna a intentar-ho en un servidor!",
"channelRename":"Degut a les limitacions de discord, actualment és impossible per al bot canviar el nom del canal. El canal es canviarà automàticament en 10 minuts si el bot no es reinicia.",
"channelRenameSource":"La font d'aquest error és: {0}",
"busy":"No es pot utilitzar aquest {0}!\nEl ticket està sent processat pel bot.\n\nSi us plau, torna a intentar-ho en uns segons!",
"closeBeforeMessage":"Aquest ticket no pot ser tancat/eliminat abans que un usuari hagi enviat un missatge.",
"closeBeforeAdminMessage":"Aquest ticket no pot ser tancat/eliminat abans que un administrador o membre de suport hagi enviat un missatge.",
"unableToCreateTicket":"No pots crear cap ticket."
},
"optionInvalidReasons":{
"stringRegex":"El valor no coincideix amb el patró!",
"stringMinLength":"El valor ha de tenir almenys {0} caràcters!",
"stringMaxLength":"El valor ha de tenir com a màxim {0} caràcters!",
"numberInvalid":"Nombre invàlid!",
"numberMin":"El nombre ha de ser almenys {0}!",
"numberMax":"El nombre ha de ser com a màxim {0}!",
"numberDecimal":"El nombre no pot ser decimal!",
"numberNegative":"El nombre no pot ser negatiu!",
"numberPositive":"El nombre no pot ser positiu!",
"numberZero":"El nombre no pot ser zero!",
"channelNotFound":"No es pot trobar el canal!",
"userNotFound":"No es pot trobar l'usuari!",
"roleNotFound":"No es pot trobar el rol!",
"memberNotFound":"No es pot trobar l'usuari!",
"mentionableNotFound":"No es pot trobar l'usuari o el rol!",
"channelType":"Tipus de canal invàlid!",
"notInGuild":"Aquesta opció requereix que siguis en un servidor!"
},
"permissions":{
"developer":"Has de ser el desenvolupador del bot.",
"owner":"Has de ser el propietari del servidor.",
"admin":"Has de ser un administrador del servidor.",
"moderator":"Has de ser un moderador.",
"support":"Has de formar part de l'equip de suport.",
"member":"Has de ser un membre.",
"discord-administrator":"Has de tenir el permís `ADMINISTRADOR`."
},
"actionInvalid":{
"close":"El ticket ja està tancat!",
"reopen":"El ticket encara no està tancat!",
"claim":"El ticket ja està reclamat!",
"unclaim":"El ticket encara no està reclamat!",
"pin":"El ticket ja està fixat!",
"unpin":"El ticket encara no està fixat!",
"add":"Aquest usuari ja té accés al ticket!",
"remove":"No es pot eliminar aquest usuari del ticket!"
}
},
"params":{
"uppercase":{
"ticket":"Ticket",
"tickets":"Tickets",
"reason":"Motiu",
"creator":"Creador",
"remaining":"Temps Restant",
"added":"Afegit",
"removed":"Eliminat",
"filter":"Filtre",
"method":"Mètode",
"type":"Tipus",
"blacklisted":"Llista Negra",
"panel":"Panell",
"command":"Comanda",
"system":"Sistema",
"true":"Cert",
"false":"Fals",
"syntax":"Sintaxi",
"originalName":"Nom Original",
"newName":"Nom Nou",
"until":"Fins a",
"validOptions":"Opcions Vàlides",
"validPanels":"Panells Vàlids",
"autoclose":"Tancament Automàtic",
"autodelete":"Eliminació Automàtica",
"startupDate":"Data d'Inici",
"version":"Versió",
"name":"Nom",
"role":"Rol",
"status":"Estat",
"claimed":"Reclamat",
"pinned":"Fixat",
"creationDate":"Data de Creació",
"noone":"Ningú",
"open":"Obert",
"closed":"Tancat",
"priority":"Prioritat",
"participants":"Participants",
"yes":"Si",
"no":"No",
"option":"Opció",
"topic":"Tema",
"uptime":"Temps d'Activitat del Sistema",
"messages":"Missatges",
"embeds":"Embeds",
"files":"Fitxers",
"components":"Components",
"cooldown":"Refredament",
"maxTickets":"Max Tickets",
"admins":"Admins",
"roles":"Rols",
"size":"Mida"
},
"lowercase":{
"text":"text",
"html":"html",
"command":"comanda",
"modal":"modal",
"button":"botó",
"dropdown":"desplegable",
"method":"mètode"
}
},
"commands":{
"reason":"Especifica una raó opcional que serà visible als registres.",
"help":"Obtingues una llista de totes les comandes disponibles.",
"panel":"Genera un missatge amb un desplegable o botons (per a la creació de tickets).",
"panelId":"L'identificador del panell que vols generar.",
"panelAutoUpdate":"Vols que aquest panell s'actualitzi automàticament quan s'edita?",
"ticket":"Crea instantàniament un ticket.",
"ticketId":"L'identificador del ticket que vols crear.",
"close":"Tanca un ticket.",
"delete":"Elimina un ticket.",
"deleteNoTranscript":"Elimina aquest ticket sense crear una transcripció.",
"reopen":"Reobre un ticket.",
"claim":"Reclama un ticket.",
"claimUser":"Reclama aquest ticket per a una altra persona en lloc de tu mateix.",
"unclaim":"Allibera un ticket.",
"pin":"Fixa un ticket.",
"unpin":"Desfixa un ticket.",
"move":"Mou un ticket.",
"moveId":"L'identificador de l'opció a la qual vols moure't.",
"rename":"Renomena un ticket.",
"renameName":"El nou nom per aquest ticket.",
"add":"Afegeix un usuari a un ticket.",
"addUser":"L'usuari a afegir.",
"remove":"Elimina un usuari d'un ticket.",
"removeUser":"L'usuari a eliminar.",
"blacklist":"Gestiona la llista negra de tickets.",
"blacklistView":"Veure una llista de l'actual llista negra.",
"blacklistAdd":"Afegeix un usuari a la llista negra.",
"blacklistRemove":"Elimina un usuari de la llista negra.",
"blacklistGet":"Obtingues els detalls d'un usuari a la llista negra.",
"blacklistGetUser":"L'usuari dels qual vols obtenir detalls.",
"stats":"Veure estadístiques del bot, d'un membre o d'un ticket.",
"statsReset":"Restablir totes les estadístiques del bot (i començar a comptar des de zero).",
"statsGlobal":"Veure les estadístiques globals.",
"statsUser":"Veure les estadístiques d'un usuari al servidor.",
"statsUserUser":"L'usuari del qual vols veure les estadístiques.",
"statsTicket":"Veure les estadístiques d'un ticket al servidor.",
"statsTicketTicket":"El ticket que vols veure.",
"clear":"Elimina múltiples tickets al mateix temps.",
"clearFilter":"El filtre per a la neteja de tickets.",
"clearFilters":{
"all":"Tots",
"open":"Oberts",
"close":"Tancats",
"claim":"Reclamats",
"unclaim":"Alliberats",
"pin":"Fixats",
"unpin":"Desfixats",
"autoclose":"Tancat Automàticaments"
},
"autoclose":"Gestiona el tancament automàtic en un ticket.",
"autocloseDisable":"Desactiva el tancament automàtic en aquest ticket.",
"autocloseEnable":"Activa el tancament automàtic en aquest ticket.",
"autocloseEnableTime":"La quantitat d'hores que aquest ticket ha d'estar inactiu per tancar-lo.",
"autodelete":"Gestiona l'eliminació automàtica en un ticket.",
"autodeleteDisable":"Desactiva l'eliminació automàtica en aquest ticket.",
"autodeleteEnable":"Activa l'eliminació automàtica en aquest ticket.",
"autodeleteEnableTime":"La quantitat de dies que aquest ticket ha d'estar inactiu per eliminar-lo.",
"topic":"Gestiona el tema del canal del ticket.",
"topicSet":"Estableix el tema del canal del ticket.",
"topicValue":"El nou tema del canal.",
"topicList":"Obté una llista de tots els tickets amb el seu tema i estadístiques.",
"priority":"Gestiona la prioritat del ticket.",
"prioritySet":"Estableix la prioritat del ticket.",
"priorityValue":"La prioritat del canal.",
"priorityGet":"Obtenir la prioritat del ticket.",
"priorityList":"Obté una llista de tots els tickets amb el seu estat de prioritat.",
"transfer":"Transfereix la propietat del ticket d'un usuari a un altre.",
"transferUser":"L'usuari al qual transferir."
},
"helpMenu":{
"help":"Obtingues una llista de totes les comandes disponibles.",
"ticket":"Crea instantàniament un ticket.",
"close":"Tanca un ticket, això desactiva l'escriptura en aquest canal.",
"delete":"Elimina un ticket, això crea una transcripció quan està activat.",
"reopen":"Reobre un ticket, això permet escriure de nou en aquest canal.",
"pin":"Fixar un ticket. Això mou el ticket a la part superior i afegeix un emoji '📌' al nom.",
"unpin":"Desfixar un ticket. El ticket romandrà a la seva posició però perdrà l'emoji '📌'.",
"move":"Mou un ticket. Això canvia el tipus d'aquest ticket.",
"rename":"Renomena un ticket. Això canvia el nom del canal d'aquest ticket.",
"claim":"Reclama un ticket. Amb això, pots fer saber al teu equip que estàs gestionant aquest ticket.",
"unclaim":"Allibera un ticket. Amb això, pots fer saber al teu equip que aquest ticket està lliure de nou.",
"add":"Afegeix un usuari a un ticket. Això permetrà a l'usuari llegir i escriure en aquest ticket.",
"remove":"Elimina un usuari d'un ticket. Això eliminarà la capacitat de llegir i escriure per a un usuari en aquest ticket.",
"panel":"Genera un missatge amb un desplegable o botons (per a la creació de tickets).",
"blacklistView":"Veure una la llista negra actual.",
"blacklistAdd":"Afegeix un usuari a la llista negra.",
"blacklistRemove":"Elimina un usuari de la llista negra.",
"blacklistGet":"Obtingues els detalls d'un usuari de la llista negra.",
"statsGlobal":"Veure les estadístiques globals.",
"statsTicket":"Veure les estadístiques d'un ticket al servidor.",
"statsUser":"Veure les estadístiques d'un usuari al servidor.",
"statsReset":"Restablir totes les estadístiques del bot (i començar a comptar des de zero).",
"autocloseDisable":"Desactiva el tancament automàtic en aquest ticket.",
"autocloseEnable":"Activa el tancament automàtic en aquest ticket.",
"autodeleteDisable":"Desactiva l'eliminació automàtica en aquest ticket.",
"autodeleteEnable":"Activa l'eliminació automàtica en aquest ticket.",
"categories":{
"general":"Comandes Generals",
"basicTicket":"Comandes Bàsiques de Tickets",
"advancedTicket":"Comandes Avançades de Tickets",
"userTicket":"Comandes de Tickets d'Usuari",
"admin":"Comandes d'Admin",
"advanced":"Comandes Avançades",
"extra":"Comandes Extra"
}
},
"stats":{
"scopes":{
"global":"Estadístiques Globals",
"system":"Estadístiques del Sistema",
"user":"Estadístiques d'Usuari",
"ticket":"Estadístiques de Ticket",
"participants":"Participants",
"messages":"Missatges"
},
"properties":{
"ticketsCreated":"Tickets Creats",
"ticketsClosed":"Tickets Tancats",
"ticketsDeleted":"Tickets Eliminats",
"ticketsReopened":"Tickets Reoberts",
"ticketsAutoclosed":"Tickets Tancats Automàticament",
"ticketsClaimed":"Tickets Reclamats",
"ticketsPinned":"Tickets Fixats",
"ticketsMoved":"Tickets Moguts",
"usersBlacklisted":"Usuaris a la Llista Negra",
"transcriptsCreated":"Transcripcions Creades",
"ticketsAutodeleted":"Tickets Eliminats Automàticament",
"ticketsTransferred":"Tickets Transferits",
"ticketVolume":"Volum de Tickets",
"averageTickets":"Mitjana de Tickets/Usuari",
"currentTickets":"Tickets Actuals",
"age":"Edat del Ticket",
"responseTime":"Temps de Resposta",
"resolutionTime":"Temps de Resolució",
"createdOn":"Creat el",
"createdBy":"Creat per",
"closedOn":"Tancat el",
"closedBy":"Tancat per",
"claimedOn":"Reclamat el",
"claimedBy":"Reclamat per",
"pinnedOn":"Fixat el",
"pinnedBy":"Fixat per",
"deletedOn":"Eliminat el",
"deletedBy":"Eliminat per"
},
"roles":{
"developer":"Desenvolupador",
"serverOwner":"Propietari del Servidor",
"serverAdmin":"Admin del Servidor",
"moderator":"Equip de Moderació",
"support":"Equip de Suport",
"member":"Membre"
}
},
"panel":{
"selectTicket":"Selecciona el teu ticket",
"selectRole":"Selecciona el teu rol",
"selectOption":"Selecciona la teva opció"
},
"priorities":{
"urgent":"Urgent",
"veryHigh":"Molt Alt",
"high":"Alt",
"normal":"Normal",
"low":"Baix",
"veryLow":"Molt Baix",
"none":"Cap"
}
}
+608
View File
@@ -0,0 +1,608 @@
{
"_TRANSLATION":{
"otversion":"v4.1.3",
"translators":["DJj123dj"],
"lastedited":"16/02/2026",
"language":"Custom",
"automated":false
},
"checker":{
"system":{
"typeError":"[ERROR]",
"headerOpenTicket":"OPEN TICKET",
"typeWarning":"[WARNING]",
"typeInfo":"[INFO]",
"headerConfigChecker":"CONFIG CHECKER",
"headerDescription":"check for errors in your config files!",
"footerError":"the bot won't start until all {0}'s are fixed!",
"footerWarning":"it's recommended to fix all {0}'s before starting!",
"footerSupport":"SUPPORT: {0} - DOCS: {1}",
"compactInformation":"use {0} for more information!",
"dataPath":"path",
"dataDocs":"docs",
"dataMessages":"message"
},
"messages":{
"stringTooShort":"This string can't be shorter than {0} characters!",
"stringTooLong":"This string can't be longer than {0} characters!",
"stringLengthInvalid":"This string needs to be {0} characters long!",
"stringStartsWith":"This string needs to start with {0}!",
"stringEndsWith":"This string needs to end with {0}!",
"stringContains":"This string needs to contain {0}!",
"stringChoices":"This string can only be one of the following values: {0}!",
"stringRegex":"This string is invalid!",
"stringInvertedContains":"This string is not allowed to contain {0}!",
"stringLowercase":"This string must be written in lowercase only!",
"stringUppercase":"This string must be written in uppercase only!",
"stringSpecialCharacters":"This string is not allowed to contain any special characters! (a-z, 0-9 & space only)",
"stringNoSpaces":"This string is not allowed to contain spaces!",
"stringCapitalWord":"It's recommended that each word in this string starts with a capital letter!",
"stringCapitalSentence":"It looks like some sentences in this string don't start with a capital letter!",
"stringPunctuation":"It looks like the sentence in this string doesn't end with a punctuation mark!",
"numberTooShort":"This number can't be shorter than {0} characters!",
"numberTooLong":"This number can't be longer than {0} characters!",
"numberLengthInvalid":"This number needs to be {0} characters long!",
"numberTooSmall":"This number needs to be at least {0}!",
"numberTooLarge":"This number needs to be at most {0}!",
"numberNotEqual":"This number needs to be {0}!",
"numberStep":"This number needs to be a multiple of {0}!",
"numberStepOffset":"This number needs to be a multiple of {0} starting with {1}!",
"numberStartsWith":"This number needs to start with {0}!",
"numberEndsWith":"This number needs to end with {0}!",
"numberContains":"This number needs to contain {0}!",
"numberChoices":"This number can only be one of the following values: {0}!",
"numberFloat":"This number can't be a decimal!",
"numberNegative":"This number can't be negative!",
"numberPositive":"This number can't be positive!",
"numberZero":"This number can't be zero!",
"numberNan":"This number can't be NaN (Not A Number)!",
"numberInvertedContains":"This number is not allowed to contain {0}!",
"booleanTrue":"This boolean can't be true!",
"booleanFalse":"This boolean can't be false!",
"arrayEmptyDisabled":"This array isn't allowed to be empty!",
"arrayEmptyRequired":"This array is required to be empty!",
"arrayTooShort":"This array needs to have a length of at least {0}!",
"arrayTooLong":"This array needs to have a length of at most {0}!",
"arrayLengthInvalid":"This array needs to have a length of {0}!",
"arrayInvalidTypes":"This array can only contain the following types: {0}!",
"arrayDouble":"This array doesn't allow the same value twice!",
"discordInvalidId":"This is an invalid discord {0} id!",
"discordInvalidIdOptions":"This is an invalid discord {0} id! You can also use one of these: {1}!",
"discordInvalidToken":"This is an invalid discord token (syntactically)!",
"colorInvalid":"This is an invalid hex color!",
"emojiTooShort":"This string needs to have at least {0} emoji's!",
"emojiTooLong":"This string needs to have at most {0} emoji's!",
"emojiCustom":"This emoji can't be a custom discord emoji!",
"emojiInvalid":"This is an invalid emoji!",
"urlInvalid":"This url is invalid!",
"urlInvalidHttp":"This url can only use the https:// protocol!",
"urlInvalidProtocol":"This url can only use the http:// & https:// protocols!",
"urlInvalidHostname":"This url has a disallowed hostname!",
"urlInvalidExtension":"This url has an invalid extension! Choose between: {0}!",
"urlInvalidPath":"This url has an invalid path!",
"idNotUnique":"This id isn't unique, use another id instead!",
"idNonExistent":"The id {0} doesn't exist!",
"invalidType":"This property needs to be the type: {0}!",
"propertyMissing":"The property {0} is missing from this object!",
"propertyOptional":"The property {0} is optional in this object!",
"objectDisabled":"This object is disabled, enable it using {0}!",
"nullInvalid":"This property can't be null!",
"switchInvalidType":"This needs to be one of the following types: {0}!",
"objectSwitchInvalid":"This object needs to be one of the following types: {0}!",
"invalidLanguage":"This is an invalid language!",
"invalidButton":"This button needs to have at least an {0} or {1}!",
"unusedOption":"The option {0} isn't used anywhere!",
"unusedQuestion":"The question {0} isn't used anywhere!",
"dropdownOption":"A panel with dropdown enabled can only contain options of the 'ticket' type!",
"customInvalidVersion":"The version specified in your config does not match! Make sure you have updated the config to the latest version!"
}
},
"actions":{
"buttons":{
"create":"Visit Ticket",
"close":"Close Ticket",
"delete":"Delete Ticket",
"reopen":"Reopen Ticket",
"claim":"Claim Ticket",
"unclaim":"Unclaim Ticket",
"pin":"Pin Ticket",
"unpin":"Unpin Ticket",
"clear":"Delete Tickets",
"helpSwitchSlash":"View Slash Commands",
"helpSwitchText":"View Text Commands",
"helpPage":"Page {0}",
"withReason":"With Reason",
"withoutTranscript":"Without Transcript"
},
"titles":{
"created":"Ticket Created",
"close":"Ticket Closed",
"delete":"Ticket Deleted",
"reopen":"Ticket Reopened",
"claim":"Ticket Claimed",
"unclaim":"Ticket Unclaimed",
"pin":"Ticket Pinned",
"unpin":"Ticket Unpinned",
"rename":"Ticket Renamed",
"move":"Ticket Moved",
"add":"Ticket User Added",
"remove":"Ticket User Removed",
"help":"Available Commands",
"statsReset":"Reset Stats",
"blacklistAdd":"User Blacklisted",
"blacklistRemove":"User Released",
"blacklistGet":"Blacklisted User",
"blacklistView":"Current Blacklist",
"blacklistAddDm":"Added To Blacklist",
"blacklistRemoveDm":"Removed From Blacklist",
"clear":"Tickets Cleared",
"clearTickets":"Clear Tickets",
"roles":"Roles Updated",
"autoclose":"Ticket Autoclosed",
"autocloseEnabled":"Autoclose Enabled",
"autocloseDisabled":"Autoclose Disabled",
"autodelete":"Ticket Autodeleted",
"autodeleteEnabled":"Autodelete Enabled",
"autodeleteDisabled":"Autodelete Disabled",
"topicSet":"Topic Changed",
"prioritySet":"Priority Changed",
"priorityGet":"Ticket Priority",
"transfer":"Ticket Transferred"
},
"descriptions":{
"create":"Your ticket has been created. Click the button below to access it!",
"close":"The ticket has been closed successfully!",
"delete":"The ticket has been deleted successfully!",
"reopen":"The ticket has been reopened successfully!",
"claim":"The ticket has been claimed successfully!",
"unclaim":"The ticket has been unclaimed successfully!",
"pin":"The ticket has been pinned successfully!",
"unpin":"The ticket has been unpinned successfully!",
"rename":"The ticket has been renamed to {0} successfully!",
"move":"The ticket has been moved to {0} successfully!",
"add":"{0} has been added to the ticket successfully!",
"remove":"{0} has been removed from the ticket successfully!",
"helpExplanation":"`<name>` => required parameter\n`[name]` => optional parameter",
"statsReset":"The bot stats have been reset successfully!",
"statsError":"Unable to view ticket stats!\n{0} is not a ticket!",
"blacklistAdd":"{0} has been blacklisted successfully!",
"blacklistRemove":"{0} has been released successfully!",
"blacklistGetSuccess":"{0} is currently blacklisted!",
"blacklistGetEmpty":"{0} is currently not blacklisted!",
"blacklistViewEmpty":"No-one has been blacklisted yet!",
"blacklistViewTip":"Use \"/blacklist add\" to blacklist a user!",
"clearVerify":"Are you sure you want to delete multiple tickets?\nThis action can't be undone!",
"clearReady":"{0} tickets have been deleted successfully!",
"rolesEmpty":"No roles have been updated!",
"autocloseLeave":"This ticket has been autoclosed because the creator left the server!",
"autocloseTimeout":"This ticket has been autoclosed because it has been inactive for more than `{0}h`!",
"autodeleteLeave":"This ticket has been autodeleted because the creator left the server!",
"autodeleteTimeout":"This ticket has been autodeleted because it has been inactive for more than `{0} days`!",
"autocloseEnabled":"Autoclose has been enabled in this ticket!\nIt will be closed when it is inactive for more than `{0}h`!",
"autocloseDisabled":"Autoclose has been disabled in this ticket!\nIt won't be closed automatically anymore!",
"autodeleteEnabled":"Autodelete has been enabled in this ticket!\nIt will be deleted when it is inactive for more than `{0} days`!",
"autodeleteDisabled":"Autodelete has been disabled in this ticket!\nIt won't be deleted automatically anymore!",
"ticketMessageLimit":"You can only create {0} ticket(s) at the same time!",
"ticketMessageAutoclose":"This ticket will be autoclosed when inactive for {0}h!",
"ticketMessageAutodelete":"This ticket will be autodeleted when inactive for {0} days!",
"panelReady":"The panel is available in the followup message!\nThis message can now be deleted!",
"topicSet":"The channel topic has been changed by {0} successfully!",
"prioritySet":"The ticket priority has been changed to {0} by {1} successfully!",
"priorityGet":"The current priority of this ticket is {0}.",
"transfer":"The ticket ownership has been transferred from {0} to {1} by {2} successfully!"
},
"modal":{
"closePlaceholder":"Why did you close this ticket?",
"deletePlaceholder":"Why did you delete this ticket?",
"reopenPlaceholder":"Why did you reopen this ticket?",
"claimPlaceholder":"Why did you claim this ticket?",
"unclaimPlaceholder":"Why did you unclaim this ticket?",
"pinPlaceholder":"Why did you pin this ticket?",
"unpinPlaceholder":"Why did you unpin this ticket?"
},
"logs":{
"createLog":"A new ticket got created by {0}!",
"closeLog":"This ticket has been closed by {0}!",
"closeDm":"Your ticket has been closed in our server!",
"deleteLog":"This ticket has been deleted by {0}!",
"deleteDm":"Your ticket has been deleted in our server!",
"reopenLog":"This ticket has been reopened by {0}!",
"reopenDm":"Your ticket has been reopened in our server!",
"claimLog":"This ticket has been claimed by {0}!",
"claimDm":"Your ticket has been claimed in our server!",
"unclaimLog":"This ticket has been unclaimed by {0}!",
"unclaimDm":"Your ticket has been unclaimed in our server!",
"pinLog":"This ticket has been pinned by {0}!",
"pinDm":"Your ticket has been pinned in our server!",
"unpinLog":"This ticket has been unpinned by {0}!",
"unpinDm":"Your ticket has been unpinned in our server!",
"renameLog":"This ticket has been renamed to {0} by {1}!",
"renameDm":"Your ticket has been renamed to {0} in our server!",
"moveLog":"This ticket has been moved to {0} by {1}!",
"moveDm":"Your ticket has been moved to {0} in our server!",
"addLog":"{0} has been added to this ticket by {1}!",
"addDm":"{0} has been added to your ticket in our server!",
"removeLog":"{0} has been removed from this ticket by {1}!",
"removeDm":"{0} has been removed from your ticket in our server!",
"blacklistAddLog":"{0} was blacklisted by {1}!",
"blacklistRemoveLog":"{0} was removed from the blacklist by {1}!",
"blacklistAddDm":"You have been blacklisted in our server!\nFrom now on, you are unable to create a ticket!",
"blacklistRemoveDm":"You have been removed from the blacklist in our server!\nNow you can create tickets again!",
"clearLog":"{0} tickets have been deleted by {1}!",
"transferLog":"The ownership of this ticket has been transferred from {0} to {1} by {2}!",
"transferDm":"The ownership of your ticket has been transferred from {0} to {1} in our server!",
"prioritySetLog":"The priority of this ticket has been changed to {0} by {1}!",
"prioritySetDm":"The priority of your ticket has been changed to {0} in our server!",
"roleUpdateLog":"{0} has updated their roles!",
"roleUpdateDm":"Your roles in our server have been updated!"
}
},
"transcripts":{
"success":{
"visit":"Visit Transcript",
"ready":"Transcript Created",
"textFileDescription":"This is the text transcript of a deleted ticket!",
"htmlProgress":"Please wait while this html transcript is getting processed...",
"createdChannel":"A new {0} transcript has been created in the server!",
"createdCreator":"A new {0} transcript has been created for one of your tickets!",
"createdParticipant":"A new {0} transcript has been created in one of the tickets you participated in!",
"createdActiveAdmin":"A new {0} transcript has been created in one of the tickets you participated as admin!",
"createdEveryAdmin":"A new {0} transcript has been created in one of the tickets you were admin in!",
"createdOther":"A new {0} transcript has been created!"
},
"errors":{
"retry":"Retry",
"continue":"Delete Without Transcript",
"backup":"Create Backup Transcript",
"error":"Something went wrong while trying to create the transcript.\nWhat would you like to do?\n\nThis ticket won't be deleted until you click one of these buttons.",
"title":"Transcript Error"
},
"text":{
"messagesTitle":"MESSAGES",
"embedTitle":"EMBED",
"fileTitle":"FILE",
"fieldsTitle":"FIELDS",
"reactionsTitle":"REACTIONS",
"statsTitle":"STATS",
"emptyContent":"<content is empty>",
"noTitle":"<no-title>",
"noDesc":"<no-description>"
}
},
"errors":{
"titles":{
"internalError":"Internal Error",
"optionMissing":"Command Option Missing",
"optionInvalid":"Command Option Invalid",
"unknownCommand":"Unknown Command",
"noPermissions":"No Permissions",
"unknownTicket":"Unknown Ticket",
"deprecatedTicket":"Deprecated Ticket",
"unknownOption":"Unknown Option",
"unknownPanel":"Unknown Panel",
"notInGuild":"Not In Server",
"channelRename":"Unable To Rename Channel",
"busy":"Ticket Is Busy",
"permissionError":"Permission Error"
},
"descriptions":{
"askForInfo":"Contact the owner of this bot for more info!",
"askForInfoResolve":"Contact the bot owner of this bot if this issue doesn't resolve after a few tries.",
"internalError":"Failed to respond to this {0} due to an internal error!",
"optionMissing":"A required parameter is missing in this command!",
"optionInvalid":"A parameter in this command is invalid!",
"optionInvalidChoose":"Choose between",
"unknownCommand":"Try visiting the help menu for more info!",
"noPermissions":"You are not allowed to use this {0}!",
"noPermissionsList":"Required Permissions: (one of them)",
"noPermissionsCooldown":"You are not allowed to use this {0} because you have a cooldown!",
"noPermissionsBlacklist":"You are not allowed to use this {0} because you have been blacklisted!",
"noPermissionsLimitGlobal":"You are not allowed to create a ticket because the server reached the max tickets limit!",
"noPermissionsLimitGlobalUser":"You are not allowed to create a ticket because you reached the max tickets limit!",
"noPermissionsLimitOption":"You are not allowed to create a ticket because the server reached the max tickets limit for this option!",
"noPermissionsLimitOptionUser":"You are not allowed to create a ticket because you reached the max tickets limit for this option!",
"unknownTicket":"Try this command again in a valid ticket!",
"deprecatedTicket":"The current channel is not a valid ticket! It might have been a ticket from an old Open Ticket version!",
"notInGuild":"This {0} doesn't work in DM! Please try it again in a server!",
"channelRename":"Due to discord ratelimits, it's currently impossible for the bot to rename the channel. The channel will automatically be renamed over 10 minutes if the bot isn't rebooted.",
"channelRenameSource":"The source of this error is: {0}",
"busy":"Unable to use this {0}!\nThe ticket is currently being processed by the bot.\n\nPlease try again in a few seconds!",
"closeBeforeMessage":"This ticket cannot be closed/deleted before a message has been sent by a user.",
"closeBeforeAdminMessage":"This ticket cannot be closed/deleted before a message has been sent by a ticket admin or support member.",
"unableToCreateTicket":"You are unable to create a ticket."
},
"optionInvalidReasons":{
"stringRegex":"Value doesn't match pattern!",
"stringMinLength":"Value needs to be at least {0} characters!",
"stringMaxLength":"Value needs to be at most {0} characters!",
"numberInvalid":"Invalid number!",
"numberMin":"Number needs to be at least {0}!",
"numberMax":"Number needs to be at most {0}!",
"numberDecimal":"Number is not allowed to be a decimal!",
"numberNegative":"Number is not allowed to be negative!",
"numberPositive":"Number is not allowed to be positive!",
"numberZero":"Number is not allowed to be zero!",
"channelNotFound":"Unable to find channel!",
"userNotFound":"Unable to find user!",
"roleNotFound":"Unable to find role!",
"memberNotFound":"Unable to find user!",
"mentionableNotFound":"Unable to find user or role!",
"channelType":"Invalid channel type!",
"notInGuild":"This option requires you to be in a server!"
},
"permissions":{
"developer":"You need to be the developer of the bot.",
"owner":"You need to be the server owner.",
"admin":"You need to be a server admin.",
"moderator":"You need to be a moderator.",
"support":"You need to be in the support team.",
"member":"You need to be a member.",
"discord-administrator":"You need to have the `ADMINISTRATOR` permission."
},
"actionInvalid":{
"close":"Ticket is already closed!",
"reopen":"Ticket is not closed yet!",
"claim":"Ticket is already claimed!",
"unclaim":"Ticket is not claimed yet!",
"pin":"Ticket is already pinned!",
"unpin":"Ticket is not pinned yet!",
"add":"This user is already able to access the ticket!",
"remove":"Unable to remove this user from the ticket!"
}
},
"params":{
"uppercase":{
"ticket":"Ticket",
"tickets":"Tickets",
"reason":"Reason",
"creator":"Creator",
"remaining":"Time Remaining",
"added":"Added",
"removed":"Removed",
"filter":"Filter",
"method":"Method",
"type":"Type",
"blacklisted":"Blacklisted",
"panel":"Panel",
"command":"Command",
"system":"System",
"true":"True",
"false":"False",
"syntax":"Syntax",
"originalName":"Original Name",
"newName":"New Name",
"until":"Until",
"validOptions":"Valid Options",
"validPanels":"Valid Panels",
"autoclose":"Autoclose",
"autodelete":"Autodelete",
"startupDate":"Startup Date",
"version":"Version",
"name":"Name",
"role":"Role",
"status":"Status",
"claimed":"Claimed",
"pinned":"Pinned",
"creationDate":"Creation Date",
"noone":"No-One",
"open":"Open",
"closed":"Closed",
"priority":"Priority",
"participants":"Participants",
"yes":"Yes",
"no":"No",
"option":"Option",
"topic":"Topic",
"uptime":"System Uptime",
"messages":"Messages",
"embeds":"Embeds",
"files":"Files",
"components":"Components",
"cooldown":"Cooldown",
"maxTickets":"Max Tickets",
"admins":"Admins",
"roles":"Roles",
"size":"Size"
},
"lowercase":{
"text":"text",
"html":"html",
"command":"command",
"modal":"modal",
"button":"button",
"dropdown":"dropdown",
"method":"method"
}
},
"commands":{
"reason":"Specify an optional reason that will be visible in logs.",
"help":"Get a list of all the available commands.",
"panel":"Spawn a message with a dropdown or buttons (for ticket creation).",
"panelId":"The identifier of the panel that you want to spawn.",
"panelAutoUpdate":"Do you want this panel to automatically update when edited?",
"ticket":"Instantly create a ticket.",
"ticketId":"The identifier of the ticket that you want to create.",
"close":"Close a ticket.",
"delete":"Delete a ticket.",
"deleteNoTranscript":"Delete this ticket without creating a transcript.",
"reopen":"Reopen a ticket.",
"claim":"Claim a ticket.",
"claimUser":"Claim this ticket to someone else instead of yourself.",
"unclaim":"Unclaim a ticket.",
"pin":"Pin a ticket.",
"unpin":"Unpin a ticket.",
"move":"Move a ticket.",
"moveId":"The identifier of the option that you want to move to.",
"rename":"Rename a ticket.",
"renameName":"The new name for this ticket.",
"add":"Add a user to a ticket.",
"addUser":"The user to add.",
"remove":"Remove a user from a ticket.",
"removeUser":"The user to remove.",
"blacklist":"Manage the ticket blacklist.",
"blacklistView":"View a list of the current blacklist.",
"blacklistAdd":"Add a user to the blacklist.",
"blacklistRemove":"Remove a user from the blacklist.",
"blacklistGet":"Get the details from a blacklisted user.",
"blacklistGetUser":"The user to get details from.",
"stats":"View statistics from the bot, a member or a ticket.",
"statsReset":"Reset all the stats of the bot (and start counting from zero).",
"statsGlobal":"View the global stats.",
"statsUser":"View the stats from a user in the server.",
"statsUserUser":"The user to view.",
"statsTicket":"View the stats of a ticket in the server.",
"statsTicketTicket":"The ticket to view.",
"clear":"Delete multiple tickets at the same time.",
"clearFilter":"The filter for clearing tickets.",
"clearFilters":{
"all":"All",
"open":"Open",
"close":"Closed",
"claim":"Claimed",
"unclaim":"Unclaimed",
"pin":"Pinned",
"unpin":"Unpinned",
"autoclose":"Autoclosed"
},
"autoclose":"Manage autoclose in a ticket.",
"autocloseDisable":"Disable autoclose in this ticket.",
"autocloseEnable":"Enable autoclose in this ticket.",
"autocloseEnableTime":"The amount of hours this ticket needs to be inactive to close it.",
"autodelete":"Manage autodelete in a ticket.",
"autodeleteDisable":"Disable autodelete in this ticket.",
"autodeleteEnable":"Enable autodelete in this ticket.",
"autodeleteEnableTime":"The amount of days this ticket needs to be inactive to delete it.",
"topic":"Manage the topic of the ticket channel.",
"topicSet":"Set the topic of the ticket channel.",
"topicValue":"The new topic of the channel.",
"topicList":"Get a list of all tickets with their topic and stats.",
"priority":"Manage the priority of the ticket.",
"prioritySet":"Set the priority of the ticket.",
"priorityValue":"The priority of the channel.",
"priorityGet":"Get the priority of the ticket.",
"priorityList":"Get a list of all tickets with their priority status.",
"transfer":"Transfer the ticket ownership from one user to another.",
"transferUser":"The user to transfer to."
},
"helpMenu":{
"help":"Get a list of all the available commands.",
"ticket":"Instantly create a ticket.",
"close":"Close a ticket, this disables writing in this channel.",
"delete":"Delete a ticket, this creates a transcript when enabled.",
"reopen":"Reopen a ticket, this enables writing in this channel again.",
"pin":"Pin a ticket. This will move the ticket to the top and will add a '📌' emoij to the name.",
"unpin":"Unpin a ticket. The ticket will stay on it's position but will lose the '📌' emoij.",
"move":"Move a ticket. This will change the type of this ticket.",
"rename":"Rename a ticket. This will change the channel name of this ticket.",
"claim":"Claim a ticket. With this, you can let your team know you are handling this ticket.",
"unclaim":"Unclaim a ticket. With this, you can let your team know that this ticket is free again.",
"add":"Add a user to a ticket. This will allow the user to read & write in this ticket.",
"remove":"Remove a user from a ticket. This will remove the ability to read & write for a user in this ticket.",
"panel":"Spawn a message with a dropdown or buttons (for ticket creation).",
"blacklistView":"View a list of the current blacklist.",
"blacklistAdd":"Add a user to the blacklist.",
"blacklistRemove":"Remove a user from the blacklist.",
"blacklistGet":"Get the details from a blacklisted user.",
"statsGlobal":"View the global stats.",
"statsTicket":"View the stats of a ticket in the server.",
"statsUser":"View the stats from a user in the server.",
"statsReset":"Reset all the stats of the bot (and start counting from zero).",
"autocloseDisable":"Disable autoclose in this ticket.",
"autocloseEnable":"Enable autoclose in this ticket.",
"autodeleteDisable":"Disable autodelete in this ticket.",
"autodeleteEnable":"Enable autodelete in this ticket.",
"categories":{
"general":"General Commands",
"basicTicket":"Basic Ticket Commands",
"advancedTicket":"Advanced Ticket Commands",
"userTicket":"User Ticket Commands",
"admin":"Admin Commands",
"advanced":"Advanced Commands",
"extra":"Extra Commands"
}
},
"stats":{
"scopes":{
"global":"Global Stats",
"system":"System Stats",
"user":"User Stats",
"ticket":"Ticket Stats",
"participants":"Participants",
"messages":"Messages"
},
"properties":{
"ticketsCreated":"Tickets Created",
"ticketsClosed":"Tickets Closed",
"ticketsDeleted":"Tickets Deleted",
"ticketsReopened":"Tickets Reopened",
"ticketsAutoclosed":"Tickets Autoclosed",
"ticketsClaimed":"Tickets Claimed",
"ticketsPinned":"Tickets Pinned",
"ticketsMoved":"Tickets Moved",
"usersBlacklisted":"Users Blacklisted",
"transcriptsCreated":"Transcripts Created",
"ticketsAutodeleted":"Tickets Autodeleted",
"ticketsTransferred":"Tickets Transferred",
"ticketVolume":"Ticket Volume",
"averageTickets":"Average Tickets/User",
"currentTickets":"Current Tickets",
"age":"Ticket Age",
"responseTime":"Response Time",
"resolutionTime":"Resolution Time",
"createdOn":"Created On",
"createdBy":"Created By",
"closedOn":"Closed On",
"closedBy":"Closed By",
"claimedOn":"Claimed On",
"claimedBy":"Claimed By",
"pinnedOn":"Pinned On",
"pinnedBy":"Pinned By",
"deletedOn":"Deleted On",
"deletedBy":"Deleted By"
},
"roles":{
"developer":"Developer",
"serverOwner":"Server Owner",
"serverAdmin":"Server Admin",
"moderator":"Moderator Team",
"support":"Support Team",
"member":"Member"
}
},
"panel":{
"selectTicket":"Select your ticket",
"selectRole":"Select your role",
"selectOption":"Select your option"
},
"priorities":{
"urgent":"Urgent",
"veryHigh":"Very High",
"high":"High",
"normal":"Normal",
"low":"Low",
"veryLow":"Very Low",
"none":"None"
}
}
+608
View File
@@ -0,0 +1,608 @@
{
"_TRANSLATION":{
"otversion":"v4.1.3",
"translators":["spyeye_"],
"lastedited":"16/02/2026",
"language":"Czech",
"automated":false
},
"checker":{
"system":{
"typeError":"[ERROR]",
"headerOpenTicket":"OPEN TICKET",
"typeWarning":"[WARNING]",
"typeInfo":"[INFO]",
"headerConfigChecker":"CONFIG CHECKER",
"headerDescription":"kontrola chyb v konfiguračních souborech!",
"footerError":"Bot se nespustí, dokud všechny {0} nebudou opraveny!",
"footerWarning":"Doporučejeme opravit všechny {0} před spuštěním!",
"footerSupport":"PODPORA: {0} - DOKUMENTACE: {1}",
"compactInformation":"Použij {0} pro více informací!",
"dataPath":"path",
"dataDocs":"docs",
"dataMessages":"message"
},
"messages":{
"stringTooShort":"Tento string nesmí být kratší než {0} znaků!",
"stringTooLong":"Tento string nesmí být delší než {0} znaků!",
"stringLengthInvalid":"Tento string musí mít délku {0} znaků!",
"stringStartsWith":"Tento string musí začínat {0}!",
"stringEndsWith":"Tento string musí končit {0}!",
"stringContains":"Tento string musí obsahovat {0}!",
"stringChoices":"Tento string může být pouze jednou z následujících možností: {0}!",
"stringRegex":"Tento string je neplatný!",
"stringInvertedContains":"Tento řetězec nesmí obsahovat {0}!",
"stringLowercase":"Tento řetězec musí být napsán pouze malými písmeny!",
"stringUppercase":"Tento řetězec musí být napsán pouze velkými písmeny!",
"stringSpecialCharacters":"Tento řetězec nesmí obsahovat žádné speciální znaky! (pouze a-z, 0-9 a mezery)",
"stringNoSpaces":"Tento řetězec nesmí obsahovat mezery!",
"stringCapitalWord":"Doporučuje se, aby každé slovo v tomto řetězci začínalo velkým písmenem!",
"stringCapitalSentence":"Zdá se, že některé věty v tomto řetězci nezačínají velkým písmenem!",
"stringPunctuation":"Zdá se, že věta v tomto řetězci nekončí interpunkčním znaménkem!",
"numberTooShort":"Toto číslo nesmí být kratší než {0} znaků!",
"numberTooLong":"Toto číslo nesmí být delší než {0} znaků.!",
"numberLengthInvalid":"Toto číslo musí mít délku {0} znaků.!",
"numberTooSmall":"Toto číslo musí být alespoň {0}.!",
"numberTooLarge":"Toto číslo musí být nejvýše {0}!",
"numberNotEqual":"Toto číslo musí být {0}!",
"numberStep":"Toto číslo musí být násobkem {0}.!",
"numberStepOffset":"Toto číslo musí být násobkem {0} žačínající {1}.!",
"numberStartsWith":"Toto číslo musí začínat {0}!",
"numberEndsWith":"Toto číslo musí končit {0}!",
"numberContains":"Toto číslo musí obsahovat {0}!",
"numberChoices":"Toto číslo může být pouze jedno z následujících hodnot: {0}!",
"numberFloat":"Toto číslo nemůže být desetinné!",
"numberNegative":"Toto číslo nemůže být záporné!",
"numberPositive":"Toto číslo nemůže být kladné!",
"numberZero":"Toto číslo nemůže být nula!",
"numberNan":"Toto číslo nemůže být NaN (není číslo)!",
"numberInvertedContains":"Toto číslo nesmí obsahovat {0}!",
"booleanTrue":"Tento boolean nemůže být true!",
"booleanFalse":"Tento boolean nemůže být false!",
"arrayEmptyDisabled":"Toto pole nesmí být prázdné.!",
"arrayEmptyRequired":"Toto pole musí být prázdné!",
"arrayTooShort":"Toto pole musí mít délku alespoň {0}!",
"arrayTooLong":"Toto pole musí mít délku maximálně {0}!",
"arrayLengthInvalid":"Toto pole musí mít délku {0}!",
"arrayInvalidTypes":"Toto pole může obsahovat pouze následující typy: {0}!",
"arrayDouble":"Toto pole neumožňuje zadat stejnou hodnotu dvakrát.!",
"discordInvalidId":"Toto je neplatné discord {0} id!",
"discordInvalidIdOptions":"Toto je neplatné Discord ID {0}! Můžete také použít jeden z těchto: {1}!",
"discordInvalidToken":"Toto je neplatný discord token (syntakticky)!",
"colorInvalid":"Toto je neplatná hex barva!",
"emojiTooShort":"Tento string musí obsahovat alespoň {0} emotikonů.!",
"emojiTooLong":"Tento string musí obsahovat nejvýše {0} emotikonů.!",
"emojiCustom":"Tento emotikon nemůže být custom emotikon!",
"emojiInvalid":"Toto je neplatný emotikon!",
"urlInvalid":"Tato url adresa je neplatná!",
"urlInvalidHttp":"Tato url může používat pouze protokol https://!",
"urlInvalidProtocol":"Tato url může používat pouze protokoly http:// a https://!",
"urlInvalidHostname":"Tato url má zakázané hostitelské jméno!",
"urlInvalidExtension":"Tato url má neplatnou příponu! Vyberte si mezi: {0}!",
"urlInvalidPath":"Tato url má neplatnou cestu!",
"idNotUnique":"Toto id není jedinečné, místo něj použijte jiné id!",
"idNonExistent":"Id {0} neexistuje!",
"invalidType":"Toto nastavení musí být typu: {0}!",
"propertyMissing":"U tohoto objektu chybí vlastnost {0}!",
"propertyOptional":"Vlastnost {0} je v tomto objektu nepovinná!",
"objectDisabled":"Tento objekt je zakázán, povolte jej pomocí {0}!",
"nullInvalid":"Tato vlastnost nemůže být nulová!",
"switchInvalidType":"Musí se jednat o jeden z následujících typů: {0}!",
"objectSwitchInvalid":"Tento objekt musí být jednoho z následujících typů: {0}!",
"invalidLanguage":"Jedná se o neplatný jazyk!",
"invalidButton":"Toto tlačítko musí mít alespoň {0} nebo {1}!",
"unusedOption":"Možnost {0} se nikde nepoužívá!",
"unusedQuestion":"Otázka {0} není nikde použita!",
"dropdownOption":"Panel s povoleným rozevíracím seznamem může obsahovat pouze možnosti typu „ticketu“!",
"customInvalidVersion":"Verze uvedená ve vaší konfiguraci neodpovídá! Ujistěte se, že jste konfiguraci aktualizovali na nejnovější verzi!"
}
},
"actions":{
"buttons":{
"create":"Zobrazit ticket",
"close":"Uzavřít ticket",
"delete":"Vymazat ticket",
"reopen":"Znovu otevřít ticket",
"claim":"Převzít ticket",
"unclaim":"Zrušit převzetí ticketu",
"pin":"Připnout ticket",
"unpin":"Odepnout ticket",
"clear":"Vymazat tickety",
"helpSwitchSlash":"Zobrazit slash příkazy",
"helpSwitchText":"Zobrazit textové příkazy",
"helpPage":"Strana {0}",
"withReason":"S důvodem",
"withoutTranscript":"Bez důvodu"
},
"titles":{
"created":"Ticket vytvořen",
"close":"Ticket uzavřen",
"delete":"Ticket vymazán",
"reopen":"Ticket znovu otevřen",
"claim":"Ticket převzat",
"unclaim":"Ticket již není převezmut",
"pin":"Ticket připnut",
"unpin":"Ticket odepnut",
"rename":"Ticket přejmenován",
"move":"Ticket přesunut",
"add":"Uživatel přidán",
"remove":"Uživatel odebrán",
"help":"Dostupné příkazy:",
"statsReset":"Resetovat statistiky",
"blacklistAdd":"Uživatel blacklistován",
"blacklistRemove":"Uživatel odebrán z blacklistu",
"blacklistGet":"Uživatel na blacklistu",
"blacklistView":"Aktuální blacklist",
"blacklistAddDm":"Přidán na blacklistu",
"blacklistRemoveDm":"Odebrán z blacklistu",
"clear":"Tickety vyčištěny",
"clearTickets":"Vymazat tikety",
"roles":"Role aktualizovány",
"autoclose":"Ticket automaticky uzavřen",
"autocloseEnabled":"Automatické uzavření povoleno",
"autocloseDisabled":"Automatické uzavření zakázáno",
"autodelete":"Ticket automaticky vymazán",
"autodeleteEnabled":"Automatické mazání povoleno",
"autodeleteDisabled":"Automatické mazání zakázáno",
"topicSet":"Téma změněno",
"prioritySet":"Priorita změněna",
"priorityGet":"Priorita tiketu",
"transfer":"Ticket přenesen"
},
"descriptions":{
"create":"Tvůj ticket byl vytvořen. Klikni na tlačítko pod zprávou pro zobrazení!",
"close":"Ticket byl úspěšně uzavřen!",
"delete":"Ticket byl úspěšně vymazán!",
"reopen":"Ticket byl úspěšně znovu otevřen!",
"claim":"Ticket byl úspěšně převzat!",
"unclaim":"Ticket již není převezmut!",
"pin":"Ticket byl úspěšně připnut!",
"unpin":"Ticket byl úspěšně odepnut!",
"rename":"Ticket byl úspěšně přejmenován na {0}!",
"move":"Ticket byl úspěšně přesunut do {0}!",
"add":"{0} byl úspěšně přidán do ticketu!",
"remove":"{0} byl úspěšně odstraněn z ticketu!",
"helpExplanation":"`<name>` => povinný parametr\n`[name]` => nepovinný parametr",
"statsReset":"Statistiky bota byly úspěšně resetovány!",
"statsError":"Nelze zobrazit statistiky ticketu!\n{0} není ticket!",
"blacklistAdd":"{0} byl přídán na blacklist!",
"blacklistRemove":"{0} byl odebrán z blacklistu!",
"blacklistGetSuccess":"{0} je nyní na blacklistu!",
"blacklistGetEmpty":"{0} nyní není na blacklistu!",
"blacklistViewEmpty":"Na blacklistu ještě nikdo není",
"blacklistViewTip":"Použij \"/blacklist add\" pro přidání uživatele na blacklist!",
"clearVerify":"Opravdu chcete smazat více ticketů?\nTuto akci nelze vrátit zpět!",
"clearReady":"{0} ticketů bylo úspěšně smazány!",
"rolesEmpty":"Žádné role nebyly aktualizovány!",
"autocloseLeave":"Tento ticket byl automaticky uzavřen, protože jeho autor opustil server.!",
"autocloseTimeout":"Tento ticket byl automaticky uzavřen, protože byl neaktivní déle než `{0}h`!",
"autodeleteLeave":"Tento ticket byl automaticky smazán, protože jeho autor opustil server!",
"autodeleteTimeout":"Tento ticket byl automaticky smazán, protože je neaktivní déle než `{0} dní`!",
"autocloseEnabled":"U tohoto ticketu bylo povoleno automatické uzavření!\nTicket bude uzavřen, pokud bude neaktivní déle než `{0}h`!",
"autocloseDisabled":"U tohoto ticketu bylo vypnuto automatické zavírání!\nUž se nebude automaticky zavírat!",
"autodeleteEnabled":"U tohoto ticketu bylo povoleno automatické mazání!\nBude smazán, pokud je neaktivní déle než `{0} dní`!",
"autodeleteDisabled":"Automatické mazání bylo v tomto zakázáno!\nUž se nebude automaticky mazat!",
"ticketMessageLimit":"Současně lze vytvořit pouze {0} ticketu!",
"ticketMessageAutoclose":"Tento ticket se automaticky uzavře, pokud je neaktivní po dobu {0}h!",
"ticketMessageAutodelete":"Tento ticket bude automaticky smazán, pokud bude neaktivní po dobu {0} dnů!",
"panelReady":"Panel je k dispozici ve zprávě následně!\nTato zpráva může být nyní smazána!",
"topicSet":"Téma kanálu bylo úspěšně změněno {0}!",
"prioritySet":"Priorita tiketu byla úspěšně změněna na {0} {1}!",
"priorityGet":"Aktuální priorita tohoto tiketu je {0}.",
"transfer":"Vlastnictví tiketu bylo úspěšně převedeno z {0} na {1} {2}!"
},
"modal":{
"closePlaceholder":"Proč jste tento ticket uzavřel?",
"deletePlaceholder":"Proč jste tento ticket smazali?",
"reopenPlaceholder":"Proč jste tento ticket znovu otevřeli?",
"claimPlaceholder":"Proč jste si vyžádal tento ticket?",
"unclaimPlaceholder":"Proč jste zrušili převzetí tohoto ticketu?",
"pinPlaceholder":"Proč jste připnuli tento ticket?",
"unpinPlaceholder":"Proč jste odepnuli tento ticket?"
},
"logs":{
"createLog":"Nový ticket byl vytvořen uživatelem {0}!",
"closeLog":"Tento ticket byl uzavřen uživatelem {0}!",
"closeDm":"Tvůj ticket byl uzavřen na našem serveru!",
"deleteLog":"Tento ticket byl smazán uživatelem {0}!",
"deleteDm":"Tvůj ticket byl smazán na našem serveru!",
"reopenLog":"Tento ticket byl znovu otevřen uživatelem {0}!",
"reopenDm":"Tvůj ticket byl znovu otevřen na našem serveru!",
"claimLog":"Tento ticket byl přidělen uživatelem {0}!",
"claimDm":"Tvůj ticket byl přidělen na našem serveru!",
"unclaimLog":"Tento ticket byl odhlášen uživatelem {0}!",
"unclaimDm":"Tvůj ticket byl odhlášen na našem serveru!",
"pinLog":"Tento ticket byl připnut uživatelem {0}!",
"pinDm":"Tvůj ticket byl připnut na našem serveru!",
"unpinLog":"Tento ticket byl odepnut uživatelem {0}!",
"unpinDm":"Tvůj ticket byl odepnut na našem serveru!",
"renameLog":"Tento ticket byl přejmenován na {0} uživatelem {1}!",
"renameDm":"Tvůj ticket byl přejmenován na {0} na našem serveru!",
"moveLog":"Tento ticket byl přesunut do {0} uživatelem {1}!",
"moveDm":"Tvůj ticket byl přesunut do {0} na našem serveru!",
"addLog":"{0} byl přidán do tohoto ticketu uživatelem {1}!",
"addDm":"{0} byl přidán do tvého ticketu na našem serveru!",
"removeLog":"{0} byl odstraněn z tohoto ticketu uživatelem {1}!",
"removeDm":"{0} byl odstraněn z tvého ticketu na našem serveru!",
"blacklistAddLog":"{0} byl přidán na blacklist uživatelem {1}!",
"blacklistRemoveLog":"{0} byl odstraněn z blacklistu uživatelem {1}!",
"blacklistAddDm":"Byl jsi přidán na blacklist na našem serveru!\nOd teď nemůžeš vytvářet tickety!",
"blacklistRemoveDm":"Byl jsi odstraněn z blacklistu na našem serveru!\nNyní můžeš opět vytvářet tickety!",
"clearLog":"{0} ticketů bylo smazáno uživatelem {1}!",
"transferLog":"Vlastnictví tohoto tiketu bylo převedeno z {0} na {1} {2}!",
"transferDm":"Vlastnictví vašeho tiketu bylo převedeno z {0} na {1} na našem serveru!",
"prioritySetLog":"Priorita tohoto tiketu byla změněna na {0} {1}!",
"prioritySetDm":"Priorita vašeho tiketu byla změněna na {0} na našem serveru!",
"roleUpdateLog":"{0} aktualizoval své role!",
"roleUpdateDm":"Vaše role na našem serveru byly aktualizovány!"
}
},
"transcripts":{
"success":{
"visit":"Zobrazit přepis",
"ready":"Přepis vytvořen",
"textFileDescription":"Toto je textový přepis smazaného ticketu!",
"htmlProgress":"Prosím, počkejte, zatímco se zpracovává HTML přepis...",
"createdChannel":"Na serveru byl vytvořen nový přepis {0}!",
"createdCreator":"Byl vytvořen nový přepis {0} pro jeden z tvých ticketů!",
"createdParticipant":"Byl vytvořen nový přepis {0} v jednom z ticketů, kterých ses účastnil!",
"createdActiveAdmin":"Byl vytvořen nový přepis {0} v jednom z ticketů, kterých ses účastnil jako admin!",
"createdEveryAdmin":"Byl vytvořen nový přepis {0} v jednom z ticketů, kde jsi byl adminem!",
"createdOther":"Byl vytvořen nový přepis {0}!"
},
"errors":{
"retry":"Zkusit Znovu",
"continue":"Vymazat bez přepisu",
"backup":"Vytvořit záložní přepis",
"error":"Při pokusu o vytvoření přepisu se něco pokazilo.\nCo chcete udělat?\n\nTento ticket nebude smazán, dokud nekliknete na jedno z těchto tlačítek.",
"title":"Chyba přepisu"
},
"text":{
"messagesTitle":"ZPRÁVY",
"embedTitle":"EMBED",
"fileTitle":"SOUBOR",
"fieldsTitle":"POLE",
"reactionsTitle":"REAKCE",
"statsTitle":"STATISTIKY",
"emptyContent":"<obsah prázdný>",
"noTitle":"<bez názvu>",
"noDesc":"<bez popisu>"
}
},
"errors":{
"titles":{
"internalError":"Interní chyba",
"optionMissing":"Chybějící možnost příkazu",
"optionInvalid":"Neplatná možnost příkazu",
"unknownCommand":"Neznámý příkaz",
"noPermissions":"Nemáš oprávnění",
"unknownTicket":"Neznámý ticket",
"deprecatedTicket":"Zastaralý ticket",
"unknownOption":"Neznámá možnost",
"unknownPanel":"Neznámý panel",
"notInGuild":"Nejsi na serveru",
"channelRename":"Nepodařilo se přejmenovat kanál",
"busy":"Ticket je zaneprázdněn",
"permissionError":"Chyba oprávnění"
},
"descriptions":{
"askForInfo":"Pro více informací kontaktuj vlastníka tohoto bota!",
"askForInfoResolve":"Kontaktuj vlastníka tohoto bota, pokud se tento problém nevyřeší po několika pokusech.",
"internalError":"Nepodařilo se odpovědět na tento {0} kvůli interní chybě!",
"optionMissing":"V tomto příkazu chybí požadovaný parametr!",
"optionInvalid":"V tomto příkazu je neplatný parametr!",
"optionInvalidChoose":"Vyber z",
"unknownCommand":"Zkus navštívit nabídku nápovědy pro více informací!",
"noPermissions":"Nemáš oprávnění k použití tohoto {0}!",
"noPermissionsList":"Požadovaná oprávnění: (jedno z nich)",
"noPermissionsCooldown":"Nemáš oprávnění k použití tohoto {0}, protože máš cooldown!",
"noPermissionsBlacklist":"Nemáš oprávnění k použití tohoto {0}, protože jsi byl přidán na blacklist!",
"noPermissionsLimitGlobal":"Nemáš oprávnění vytvořit ticket, protože server dosáhl maximálního limitu ticketů!",
"noPermissionsLimitGlobalUser":"Nemáš oprávnění vytvořit ticket, protože jsi dosáhl maximálního limitu ticketů!",
"noPermissionsLimitOption":"Nemáš oprávnění vytvořit ticket, protože server dosáhl maximálního limitu ticketů pro tuto možnost!",
"noPermissionsLimitOptionUser":"Nemáš oprávnění vytvořit ticket, protože jsi dosáhl maximálního limitu ticketů pro tuto možnost!",
"unknownTicket":"Zkus tento příkaz znovu v platném ticketu!",
"deprecatedTicket":"Aktuální kanál není platný ticket! Může se jednat o ticket ze starší verze Open Ticketu!",
"notInGuild":"Tento {0} nefunguje v DM! Zkus to znovu na serveru!",
"channelRename":"Kvůli ratelimitům Discordu není momentálně možné, aby bot přejmenoval kanál. Kanál bude automaticky přejmenován do 10 minut, pokud nedojde k restartu bota.",
"channelRenameSource":"Zdroj této chyby je: {0}",
"busy":"Nelze použít tento {0}!\nTicket je momentálně zpracováván botem.\n\nZkus to prosím znovu za několik sekund!",
"closeBeforeMessage":"Tento tiket nelze uzavřít/smazat, dokud uživatel neodešle zprávu.",
"closeBeforeAdminMessage":"Tento tiket nelze uzavřít/smazat, dokud admin tiketu nebo člen podpory neodešle zprávu.",
"unableToCreateTicket":"Nemůžete vytvořit tiket."
},
"optionInvalidReasons":{
"stringRegex":"Hodnota neodpovídá vzoru!",
"stringMinLength":"Hodnota musí mít alespoň {0} znaků!",
"stringMaxLength":"Hodnota může mít maximálně {0} znaků!",
"numberInvalid":"Neplatné číslo!",
"numberMin":"Číslo musí být alespoň {0}!",
"numberMax":"Číslo může být maximálně {0}!",
"numberDecimal":"Číslo nesmí být desetinné!",
"numberNegative":"Číslo nesmí být záporné!",
"numberPositive":"Číslo nesmí být kladné!",
"numberZero":"Číslo nesmí být nula!",
"channelNotFound":"Nelze najít kanál!",
"userNotFound":"Nelze najít uživatele!",
"roleNotFound":"Nelze najít roli!",
"memberNotFound":"Nelze najít uživatele!",
"mentionableNotFound":"Nelze najít uživatele nebo roli!",
"channelType":"Neplatný typ kanálu!",
"notInGuild":"Tato možnost vyžaduje, abys byl na serveru!"
},
"permissions":{
"developer":"Musíš být vývojářem tohoto bota.",
"owner":"Musíš být vlastníkem serveru.",
"admin":"Musíš být adminem serveru.",
"moderator":"Musíš být moderátorem.",
"support":"Musíš být členem týmu podpory.",
"member":"Musíš být členem.",
"discord-administrator":"Musíš mít oprávnění `ADMINISTRATOR`."
},
"actionInvalid":{
"close":"Ticket je již uzavřený!",
"reopen":"Ticket ještě není uzavřený!",
"claim":"Ticket je již přidělený!",
"unclaim":"Ticket ještě není přidělený!",
"pin":"Ticket je již připnutý!",
"unpin":"Ticket ještě není připnutý!",
"add":"Tento uživatel už má k ticketu přístup!",
"remove":"Tohoto uživatele nelze z ticketu odstranit!"
}
},
"params":{
"uppercase":{
"ticket":"Ticket",
"tickets":"Tickety",
"reason":"Důvod",
"creator":"Tvůrce",
"remaining":"Zbývající čas",
"added":"Přidáno",
"removed":"Odstraněno",
"filter":"Filtr",
"method":"Metoda",
"type":"Typ",
"blacklisted":"Na blacklistu",
"panel":"Panel",
"command":"Příkaz",
"system":"Systém",
"true":"true",
"false":"false",
"syntax":"Syntaxe",
"originalName":"Původní jméno",
"newName":"Nové jméno",
"until":"Do",
"validOptions":"Platné možnosti",
"validPanels":"Platné panely",
"autoclose":"Automatické uzavření",
"autodelete":"Automatické smazání",
"startupDate":"Datum spuštění",
"version":"Verze",
"name":"Jméno",
"role":"Role",
"status":"STAV",
"claimed":"Přiděleno",
"pinned":"Připnuto",
"creationDate":"Datum vytvoření",
"noone":"Nikdo",
"open":"OTEVŘENO",
"closed":"UZAVŘENO",
"priority":"PRIORITA",
"participants":"ÚČASTNÍCI",
"yes":"Ano",
"no":"Ne",
"option":"Možnost",
"topic":"Téma",
"uptime":"Doba provozu systému",
"messages":"Zprávy",
"embeds":"Embeds",
"files":"Soubory",
"components":"Komponenty",
"cooldown":"Cooldown",
"maxTickets":"Maximální tikety",
"admins":"Admini",
"roles":"Role",
"size":"Velikost"
},
"lowercase":{
"text":"text",
"html":"html",
"command":"příkaz",
"modal":"modal",
"button":"tlačítko",
"dropdown":"roletka",
"method":"metoda"
}
},
"commands":{
"reason":"Zadej nepovinný důvod, který bude viditelný v logu.",
"help":"Získej seznam všech dostupných příkazů.",
"panel":"Vytvoř zprávu s roletkou nebo tlačítky (pro vytvoření ticketu).",
"panelId":"Identifikátor panelu, který chceš vytvořit.",
"panelAutoUpdate":"Chceš, aby se tento panel automaticky aktualizoval při úpravách?",
"ticket":"Okamžitě vytvoř ticket.",
"ticketId":"Identifikátor ticketu, který chceš vytvořit.",
"close":"Uzavři ticket.",
"delete":"Smaž ticket.",
"deleteNoTranscript":"Smaž tento ticket bez vytvoření přepisu.",
"reopen":"Znovu otevři ticket.",
"claim":"Přiděl ticket.",
"claimUser":"Přiděl tento ticket někomu jinému místo sebe.",
"unclaim":"Odeber přidělení ticketu.",
"pin":"Připni ticket.",
"unpin":"Odepni ticket.",
"move":"Přesuň ticket.",
"moveId":"Identifikátor možnost, na který chceš přesunout.",
"rename":"Přejmenuj ticket.",
"renameName":"Nový název pro tento ticket.",
"add":"Přidej uživatele k ticketu.",
"addUser":"Uživatel k přidání.",
"remove":"Odstraň uživatele z ticketu.",
"removeUser":"Uživatel k odstranění.",
"blacklist":"Spravuj blacklist ticketů.",
"blacklistView":"Zobraz seznam aktuálního blacklistu.",
"blacklistAdd":"Přidej uživatele na blacklist.",
"blacklistRemove":"Odstraň uživatele z blacklistu.",
"blacklistGet":"Získej detaily o uživateli na blacklistu.",
"blacklistGetUser":"Uživatel, o kterém chceš získat detaily.",
"stats":"Zobraz statistiky bota, člena nebo ticketu.",
"statsReset":"Resetuj všechny statistiky bota (a začni počítat od nuly).",
"statsGlobal":"Zobraz globální statistiky.",
"statsUser":"Zobraz statistiky uživatele na serveru.",
"statsUserUser":"Uživatel, jehož statistiky chceš zobrazit.",
"statsTicket":"Zobraz statistiky ticketu na serveru.",
"statsTicketTicket":"Ticket, jehož statistiky chceš zobrazit.",
"clear":"Smaž více ticketů najednou. Lze zadat volitelný filtr.",
"clearFilter":"Filtr pro vymazání tiketů.",
"clearFilters":{
"all":"Vše",
"open":"Otevřené",
"close":"Uzavřené",
"claim":"Přidělené",
"unclaim":"Nepřidělené",
"pin":"Připnuté",
"unpin":"Nepřipnuté",
"autoclose":"Automaticky uzavřené"
},
"autoclose":"Spravuj automatické uzavření ticketu.",
"autocloseDisable":"Deaktivuj automatické uzavření v tomto ticketu.",
"autocloseEnable":"Aktivuj automatické uzavření v tomto ticketu.",
"autocloseEnableTime":"Počet hodin neaktivity, po kterých se ticket uzavře.",
"autodelete":"Spravuj automatické smazání ticketu.",
"autodeleteDisable":"Deaktivuj automatické smazání v tomto ticketu.",
"autodeleteEnable":"Aktivuj automatické smazání v tomto ticketu.",
"autodeleteEnableTime":"Počet dnů neaktivity, po kterých se ticket smaže.",
"topic":"Spravujte téma kanálu tiketu.",
"topicSet":"Nastavte téma kanálu tiketu.",
"topicValue":"Nové téma kanálu.",
"topicList":"Získejte seznam všech tiketů s jejich tématy a statistikami.",
"priority":"Spravujte prioritu tiketu.",
"prioritySet":"Nastavte prioritu tiketu.",
"priorityValue":"Priorita kanálu.",
"priorityGet":"Získejte prioritu tiketu.",
"priorityList":"Získejte seznam všech tiketů s jejich prioritou.",
"transfer":"Přeneste vlastnictví tiketu od jednoho uživatele k druhému.",
"transferUser":"Uživatel, na kterého se přenáší."
},
"helpMenu":{
"help":"Získej seznam všech dostupných příkazů.",
"ticket":"Okamžitě vytvoř ticket.",
"close":"Uzavři ticket, čímž se zakáže psaní v tomto kanálu.",
"delete":"Smaž ticket, čímž se vytvoří přepis, pokud je to povoleno.",
"reopen":"Znovu otevři ticket, což opět umožní psaní v tomto kanálu.",
"pin":"Připni ticket. Tento ticket se přesune na začátek a bude mít ve jménu emoji '📌'.",
"unpin":"Odepni ticket. Ticket zůstane na svém místě, ale ztratí emoji '📌'.",
"move":"Přesuň ticket. Tím se změní typ tohoto ticketu.",
"rename":"Přejmenuj ticket. Tím se změní název kanálu tohoto ticketu.",
"claim":"Přiděl ticket. Tím dáš svému týmu najevo, že tento ticket řešíš.",
"unclaim":"Odeber přidělení ticketu. Tím dáš svému týmu najevo, že je tento ticket znovu volný.",
"add":"Přidej uživatele k ticketu. Tímto uživateli umožníš číst a psát v tomto ticketu.",
"remove":"Odstraň uživatele z ticketu. Tímto uživateli odebereš možnost číst a psát v tomto ticketu.",
"panel":"Vytvoř zprávu s roletkou nebo tlačítky (pro vytvoření ticketu).",
"blacklistView":"Zobraz seznam aktuálního blacklistu.",
"blacklistAdd":"Přidej uživatele na blacklist.",
"blacklistRemove":"Odstraň uživatele z blacklistu.",
"blacklistGet":"Získej detaily o uživateli na blacklistu.",
"statsGlobal":"Zobraz globální statistiky.",
"statsTicket":"Zobraz statistiky ticketu na serveru.",
"statsUser":"Zobraz statistiky uživatele na serveru.",
"statsReset":"Resetuj všechny statistiky bota (a začni počítat od nuly).",
"autocloseDisable":"Deaktivuj automatické uzavření v tomto ticketu.",
"autocloseEnable":"Aktivuj automatické uzavření v tomto ticketu.",
"autodeleteDisable":"Deaktivuj automatické smazání v tomto ticketu.",
"autodeleteEnable":"Aktivuj automatické smazání v tomto ticketu.",
"categories":{
"general":"Obecné příkazy",
"basicTicket":"Základní příkazy tiketu",
"advancedTicket":"Pokročilé příkazy tiketu",
"userTicket":"Příkazy uživatelského tiketu",
"admin":"Admin příkazy",
"advanced":"Pokročilé příkazy",
"extra":"Extra příkazy"
}
},
"stats":{
"scopes":{
"global":"Globální statistiky",
"system":"Statistiky systému",
"user":"Statistiky uživatele",
"ticket":"Statistiky ticketu",
"participants":"Účastníci",
"messages":"Zprávy"
},
"properties":{
"ticketsCreated":"Vytvořené tickety",
"ticketsClosed":"Uzavřené tickety",
"ticketsDeleted":"Smazané tickety",
"ticketsReopened":"Znovu otevřené tickety",
"ticketsAutoclosed":"Automaticky uzavřené tickety",
"ticketsClaimed":"Přidělené tickety",
"ticketsPinned":"Připnuté tickety",
"ticketsMoved":"Přesunuté tickety",
"usersBlacklisted":"Uživatelé na blacklistu",
"transcriptsCreated":"Vytvořené přepisy",
"ticketsAutodeleted":"Automaticky smazané tikety",
"ticketsTransferred":"Přenesené tikety",
"ticketVolume":"Objem tiketů",
"averageTickets":"Průměr tiketů/uživatel",
"currentTickets":"Aktuální tikety",
"age":"Věk tiketu",
"responseTime":"Doba odezvy",
"resolutionTime":"Doba vyřešení",
"createdOn":"Vytvořeno dne",
"createdBy":"Vytvořil",
"closedOn":"Uzavřeno dne",
"closedBy":"Uzavřel",
"claimedOn":"Převzato dne",
"claimedBy":"Převzal",
"pinnedOn":"Připnuto dne",
"pinnedBy":"Připnul",
"deletedOn":"Smazáno dne",
"deletedBy":"Smazal"
},
"roles":{
"developer":"Vývojář",
"serverOwner":"Vlastník serveru",
"serverAdmin":"Server Admin",
"moderator":"Moderátorský tým",
"support":"Podpůrný tým",
"member":"Člen"
}
},
"panel":{
"selectTicket":"Vyberte svůj tiket",
"selectRole":"Vyberte svou roli",
"selectOption":"Vyberte svou možnost"
},
"priorities":{
"urgent":"Naléhavé",
"veryHigh":"Velmi vysoké",
"high":"Vysoké",
"normal":"Normální",
"low":"Nízké",
"veryLow":"Velmi nízké",
"none":"Žádné"
}
}
+608
View File
@@ -0,0 +1,608 @@
{
"_TRANSLATION":{
"otversion":"v4.1.3",
"translators":["the_gamer"],
"lastedited":"16/02/2026",
"language":"Danish",
"automated":false
},
"checker":{
"system":{
"typeError":"[FEJL]",
"headerOpenTicket":"ÅBEN TICKET",
"typeWarning":"[ADVARSEL]",
"typeInfo":"[INFO]",
"headerConfigChecker":"CONFIG CHECKER",
"headerDescription":"tjek efter fejl i din config!",
"footerError":"botten vil ikke fikse før alle {0}'s are fixed!",
"footerWarning":"it's recommended to fix all {0}'s before starting!",
"footerSupport":"SUPPORT: {0} - DOCS: {1}",
"compactInformation":"brug {0} for mere information!",
"dataPath":"path",
"dataDocs":"docs",
"dataMessages":"besked"
},
"messages":{
"stringTooShort":"Denne linje kan ikke være kortere end {0} karaktere!",
"stringTooLong":"Denne linke kan ikke være længere end {0} karaktere!",
"stringLengthInvalid":"Denne linje skal være {0} karaktere lang!",
"stringStartsWith":"Denne linje skal starte med {0}!",
"stringEndsWith":"Denne linje skal ende med {0}!",
"stringContains":"Denne tekst skal indeholde {0}!",
"stringChoices":"Denne tekst kan kun være en af følgende værdier: {0}!",
"stringRegex":"Denne tekst er ugyldig!",
"stringInvertedContains":"Denne streng må ikke indeholde {0}!",
"stringLowercase":"Denne streng skal kun skrives med små bogstaver!",
"stringUppercase":"Denne streng skal kun skrives med store bogstaver!",
"stringSpecialCharacters":"Denne streng må ikke indeholde specialtegn! (kun a-z, 0-9 og mellemrum)",
"stringNoSpaces":"Denne streng må ikke indeholde mellemrum!",
"stringCapitalWord":"Det anbefales, at hvert ord i denne streng starter med stort bogstav!",
"stringCapitalSentence":"Det ser ud til, at nogle sætninger i denne streng ikke starter med stort bogstav!",
"stringPunctuation":"Det ser ud til, at sætningen i denne streng ikke slutter med tegnsætning!",
"numberTooShort":"Dette nummer kan ikke være kortere end {0} tegn!",
"numberTooLong":"Dette nummer kan ikke være længere end {0} tegn!",
"numberLengthInvalid":"Dette nummer skal være {0} tegn langt!",
"numberTooSmall":"Dette nummer skal være mindst {0}!",
"numberTooLarge":"Dette nummer skal være højst {0}!",
"numberNotEqual":"Dette nummer skal være {0}!",
"numberStep":"Dette nummer skal være et multiplum af {0}!",
"numberStepOffset":"Dette nummer skal være et multiplum af {0}, startende med {1}!",
"numberStartsWith":"Dette nummer skal starte med {0}!",
"numberEndsWith":"Dette nummer skal ende med {0}!",
"numberContains":"Dette nummer skal indeholde {0}!",
"numberChoices":"Dette nummer kan kun være en af følgende værdier: {0}!",
"numberFloat":"Dette nummer kan ikke være et decimaltal!",
"numberNegative":"Dette nummer kan ikke være negativt!",
"numberPositive":"Dette nummer kan ikke være positivt!",
"numberZero":"Dette nummer kan ikke være nul!",
"numberNan":"Dette tal kan ikke være NaN (ikke et tal)!",
"numberInvertedContains":"Dette tal må ikke indeholde {0}!",
"booleanTrue":"Denne boolean kan ikke være sand!",
"booleanFalse":"Denne boolean kan ikke være falsk!",
"arrayEmptyDisabled":"Dette array må ikke være tomt!",
"arrayEmptyRequired":"Dette array skal være tomt!",
"arrayTooShort":"Dette array skal have en længde på mindst {0}!",
"arrayTooLong":"Dette array skal have en længde på højst {0}!",
"arrayLengthInvalid":"Dette array skal have en længde på {0}!",
"arrayInvalidTypes":"Dette array kan kun indeholde følgende typer: {0}!",
"arrayDouble":"Dette array tillader ikke den samme værdi to gange!",
"discordInvalidId":"Dette er et ugyldigt Discord {0} id!",
"discordInvalidIdOptions":"Dette er et ugyldigt Discord {0} id! Du kan også bruge en af disse: {1}!",
"discordInvalidToken":"Dette er et ugyldigt Discord token (syntaktisk)!",
"colorInvalid":"Dette er en ugyldig hex-farve!",
"emojiTooShort":"Denne tekst skal have mindst {0} emojis!",
"emojiTooLong":"Denne tekst skal have højst {0} emojis!",
"emojiCustom":"Denne emoji kan ikke være en brugerdefineret Discord-emoji!",
"emojiInvalid":"Dette er en ugyldig emoji!",
"urlInvalid":"Denne URL er ugyldig!",
"urlInvalidHttp":"Denne URL kan kun bruge https:// protokollen!",
"urlInvalidProtocol":"Denne URL kan kun bruge http:// & https:// protokoller!",
"urlInvalidHostname":"Denne URL har et ikke-tilladt hostname!",
"urlInvalidExtension":"Denne URL har en ugyldig filendelse! Vælg mellem: {0}!",
"urlInvalidPath":"Denne URL har en ugyldig sti!",
"idNotUnique":"Dette id er ikke unikt, brug et andet id i stedet!",
"idNonExistent":"Id'et {0} eksisterer ikke!",
"invalidType":"Denne egenskab skal være typen: {0}!",
"propertyMissing":"Egenskaben {0} mangler i dette objekt!",
"propertyOptional":"Egenskaben {0} er valgfri i dette objekt!",
"objectDisabled":"Dette objekt er deaktiveret, aktiver det ved at bruge {0}!",
"nullInvalid":"Denne egenskab kan ikke være null!",
"switchInvalidType":"Dette skal være en af følgende typer: {0}!",
"objectSwitchInvalid":"Dette objekt skal være en af følgende typer: {0}!",
"invalidLanguage":"Dette er et ugyldigt sprog!",
"invalidButton":"Denne knap skal have mindst en {0} eller {1}!",
"unusedOption":"Muligheden {0} bruges ikke nogen steder!",
"unusedQuestion":"Spørgsmålet {0} bruges ikke nogen steder!",
"dropdownOption":"Et panel med dropdown aktiveret kan kun indeholde muligheder af typen 'ticket'!",
"customInvalidVersion":"Den version, der er angivet i din konfiguration, matcher ikke! Sørg for, at du har opdateret konfigurationen til den nyeste version!"
}
},
"actions":{
"buttons":{
"create":"Opret Ticket",
"close":"Luk Ticket",
"delete":"Slet Ticket",
"reopen":"Genåbn Ticket",
"claim":"Tag Ticket",
"unclaim":"Fraskriv Ticket",
"pin":"Fastgør Ticket",
"unpin":"Fjern Fastgørelse af Ticket",
"clear":"Slet Tickets",
"helpSwitchSlash":"Vis Slash Kommandoer",
"helpSwitchText":"Vis Tekst Kommandoer",
"helpPage":"Side {0}",
"withReason":"Med Årsag",
"withoutTranscript":"Uden Transkript"
},
"titles":{
"created":"Ticket Oprettet",
"close":"Ticket Lukket",
"delete":"Ticket Slettet",
"reopen":"Ticket Genåbnet",
"claim":"Ticket Taget",
"unclaim":"Ticket Fraskrevet",
"pin":"Ticket Fastgjort",
"unpin":"Ticket Fjernet fra Fastgørelse",
"rename":"Ticket Omdøbt",
"move":"Ticket Flyttet",
"add":"Bruger Tilføjet til Ticket",
"remove":"Bruger Fjernet fra Ticket",
"help":"Tilgængelige Kommandoer",
"statsReset":"Nulstil Statistik",
"blacklistAdd":"Bruger Blacklistet",
"blacklistRemove":"Bruger Fjernet fra Blacklist",
"blacklistGet":"Blacklistet Bruger",
"blacklistView":"Nuværende Blacklist",
"blacklistAddDm":"Tilføjet til Blacklist",
"blacklistRemoveDm":"Fjernet fra Blacklist",
"clear":"Tickets Renset",
"clearTickets":"Ryd Tickets",
"roles":"Roller Opdateret",
"autoclose":"Ticket Autolukket",
"autocloseEnabled":"Autolukning Aktiveret",
"autocloseDisabled":"Autolukning Deaktiveret",
"autodelete":"Ticket Autoslettet",
"autodeleteEnabled":"Autosletning Aktiveret",
"autodeleteDisabled":"Autosletning Deaktiveret",
"topicSet":"Emne Ændret",
"prioritySet":"Prioritet Ændret",
"priorityGet":"Ticket Prioritet",
"transfer":"Ticket Overført"
},
"descriptions":{
"create":"Din ticket er blevet oprettet. Klik på knappen nedenfor for at få adgang til den!",
"close":"ticket er blevet lukket succesfuldt!",
"delete":"ticket er blevet slettet succesfuldt!",
"reopen":"ticket er blevet genåbnet succesfuldt!",
"claim":"ticket er blevet taget succesfuldt!",
"unclaim":"ticket er blevet fraskrevet succesfuldt!",
"pin":"ticket er blevet fastgjort succesfuldt!",
"unpin":"ticket er blevet fjernet fra fastgørelse succesfuldt!",
"rename":"ticket er blevet omdøbt til {0} succesfuldt!",
"move":"ticket er blevet flyttet til {0} succesfuldt!",
"add":"{0} er blevet tilføjet til ticketten succesfuldt!",
"remove":"{0} er blevet fjernet fra ticketten succesfuldt!",
"helpExplanation":"`<name>` => påkrævet parameter\n`[name]` => valgfri parameter",
"statsReset":"Bot-statistikken er blevet nulstillet succesfuldt!",
"statsError":"Kan ikke vise ticketstatistik!\n{0} er ikke en ticket!",
"blacklistAdd":"{0} er blevet blacklistet succesfuldt!",
"blacklistRemove":"{0} er blevet frigivet succesfuldt!",
"blacklistGetSuccess":"{0} er i øjeblikket blacklistet!",
"blacklistGetEmpty":"{0} er i øjeblikket ikke blacklistet!",
"blacklistViewEmpty":"Ingen har endnu været blacklistet!",
"blacklistViewTip":"Brug \"/blacklist add\" for at blacklist en bruger!",
"clearVerify":"Er du sikker på, at du vil slette flere tickets?\nDenne handling kan ikke fortrydes!",
"clearReady":"{0} tickets er blevet slettet succesfuldt!",
"rolesEmpty":"Ingen roller er blevet opdateret!",
"autocloseLeave":"Denne ticket er blevet autolukket, fordi skaberen forlod serveren!",
"autocloseTimeout":"Denne ticket er blevet autolukket, fordi den har været inaktiv i mere end `{0}h`!",
"autodeleteLeave":"Denne ticket er blevet autoslettet, fordi skaberen forlod serveren!",
"autodeleteTimeout":"Denne ticket er blevet autoslettet, fordi den har været inaktiv i mere end `{0} dage`!",
"autocloseEnabled":"Autolukning er blevet aktiveret i denne ticket!\nDen vil blive lukket, når den er inaktiv i mere end `{0}h`!",
"autocloseDisabled":"Autolukning er blevet deaktiveret i denne ticket!\nDen vil ikke blive lukket automatisk længere!",
"autodeleteEnabled":"Autosletning er blevet aktiveret i denne ticket!\nDen vil blive slettet, når den er inaktiv i mere end `{0} dage`!",
"autodeleteDisabled":"Autosletning er blevet deaktiveret i denne ticket!\nDen vil ikke blive slettet automatisk længere!",
"ticketMessageLimit":"Du kan kun oprette {0} ticket(ter) ad gangen!",
"ticketMessageAutoclose":"Denne ticket vil blive autolukket, når den er inaktiv i {0}h!",
"ticketMessageAutodelete":"Denne ticket vil blive autoslettet, når den er inaktiv i {0} dage!",
"panelReady":"Panelet er tilgængeligt i opfølgningsmeddelelsen!\nDenne meddelelse kan nu slettes!",
"topicSet":"Kanalens emne blev ændret af {0}!",
"prioritySet":"Ticket-prioriteten blev ændret til {0} af {1}!",
"priorityGet":"Den aktuelle prioritet for denne ticket er {0}.",
"transfer":"Ticket-ejerskab blev overført fra {0} til {1} af {2}!"
},
"modal":{
"closePlaceholder":"Hvorfor lukkede du denne ticket?",
"deletePlaceholder":"Hvorfor slettede du denne ticket?",
"reopenPlaceholder":"Hvorfor genåbnede du denne ticket?",
"claimPlaceholder":"Hvorfor tog du denne ticket?",
"unclaimPlaceholder":"Hvorfor fraskrev du denne ticket?",
"pinPlaceholder":"Hvorfor fastgjorde du denne ticket?",
"unpinPlaceholder":"Hvorfor fjernede du fastgørelsen af denne ticket?"
},
"logs":{
"createLog":"En ny ticket er blevet oprettet af {0}!",
"closeLog":"Denne ticket er blevet lukket af {0}!",
"closeDm":"Din ticket er blevet lukket på vores server!",
"deleteLog":"Denne ticket er blevet slettet af {0}!",
"deleteDm":"Din ticket er blevet slettet på vores server!",
"reopenLog":"Denne ticket er blevet genåbnet af {0}!",
"reopenDm":"Din ticket er blevet genåbnet på vores server!",
"claimLog":"Denne ticket er blevet taget af {0}!",
"claimDm":"Din ticket er blevet taget på vores server!",
"unclaimLog":"Denne ticket er blevet fraskrevet af {0}!",
"unclaimDm":"Din ticket er blevet fraskrevet på vores server!",
"pinLog":"Denne ticket er blevet fastgjort af {0}!",
"pinDm":"Din ticket er blevet fastgjort på vores server!",
"unpinLog":"Denne ticket er blevet fjernet fra fastgørelse af {0}!",
"unpinDm":"Din ticket er blevet fjernet fra fastgørelse på vores server!",
"renameLog":"Denne ticket er blevet omdøbt til {0} af {1}!",
"renameDm":"Din ticket er blevet omdøbt til {0} på vores server!",
"moveLog":"Denne ticket er blevet flyttet til {0} af {1}!",
"moveDm":"Din ticket er blevet flyttet til {0} på vores server!",
"addLog":"{0} er blevet tilføjet til denne ticket af {1}!",
"addDm":"{0} er blevet tilføjet til din ticket på vores server!",
"removeLog":"{0} er blevet fjernet fra denne ticket af {1}!",
"removeDm":"{0} er blevet fjernet fra din ticket på vores server!",
"blacklistAddLog":"{0} er blevet blacklistet af {1}!",
"blacklistRemoveLog":"{0} er blevet fjernet fra blacklisten af {1}!",
"blacklistAddDm":"Du er blevet blacklistet på vores server!\nFra nu af kan du ikke oprette en ticket!",
"blacklistRemoveDm":"Du er blevet fjernet fra blacklisten på vores server!\nNu kan du igen oprette ticketter!",
"clearLog":"{0} ticketter er blevet slettet af {1}!",
"transferLog":"Ejerskabet af denne ticket er blevet overført fra {0} til {1} af {2}!",
"transferDm":"Ejerskabet af din ticket er blevet overført fra {0} til {1} på vores server!",
"prioritySetLog":"Prioriteten af denne ticket er blevet ændret til {0} af {1}!",
"prioritySetDm":"Prioriteten af din ticket er blevet ændret til {0} på vores server!",
"roleUpdateLog":"{0} har opdateret deres roller!",
"roleUpdateDm":"Dine roller på vores server er blevet opdateret!"
}
},
"transcripts":{
"success":{
"visit":"Besøg Transkript",
"ready":"Transkript Oprettet",
"textFileDescription":"Dette er teksttranskriptet af en slettet billet!",
"htmlProgress":"Vent venligst mens dette HTML-transkript bliver behandlet...",
"createdChannel":"Et nyt {0} transkript er blevet oprettet på serveren!",
"createdCreator":"Et nyt {0} transkript er blevet oprettet for en af dine billetter!",
"createdParticipant":"Et nyt {0} transkript er blevet oprettet i en af de billetter, du deltog i!",
"createdActiveAdmin":"Et nyt {0} transkript er blevet oprettet i en af de billetter, hvor du deltog som administrator!",
"createdEveryAdmin":"Et nyt {0} transkript er blevet oprettet i en af de billetter, hvor du var administrator!",
"createdOther":"Et nyt {0} transkript er blevet oprettet!"
},
"errors":{
"retry":"Prøv igen",
"continue":"Slet uden transkript",
"backup":"Opret backup-transkript",
"error":"Noget gik galt, da vi forsøgte at oprette transkriptet.\nHvad vil du gerne gøre?\n\nDenne ticket bliver ikke slettet, før du klikker på en af disse knapper.",
"title":"Transkriptfejl"
},
"text":{
"messagesTitle":"BESKEDER",
"embedTitle":"EMBED",
"fileTitle":"FIL",
"fieldsTitle":"FELTER",
"reactionsTitle":"REAKTIONER",
"statsTitle":"STATISTIK",
"emptyContent":"<indhold tomt>",
"noTitle":"<ingen titel>",
"noDesc":"<ingen beskrivelse>"
}
},
"errors":{
"titles":{
"internalError":"Intern fejl",
"optionMissing":"Kommandoindstilling mangler",
"optionInvalid":"Ugyldig kommandoindstilling",
"unknownCommand":"Ukendt kommando",
"noPermissions":"Ingen tilladelser",
"unknownTicket":"Ukendt ticket",
"deprecatedTicket":"Forældet ticket",
"unknownOption":"Ukendt indstilling",
"unknownPanel":"Ukendt panel",
"notInGuild":"Ikke på server",
"channelRename":"Kan ikke omdøbe kanalen",
"busy":"Ticket er optaget",
"permissionError":"Tilladelsesfejl"
},
"descriptions":{
"askForInfo":"Kontakt ejeren af denne bot for mere info!",
"askForInfoResolve":"Kontakt ejeren af denne bot, hvis problemet ikke løses efter et par forsøg.",
"internalError":"Kunne ikke svare på denne {0} på grund af en intern fejl!",
"optionMissing":"Der mangler en påkrævet parameter i denne kommando!",
"optionInvalid":"En parameter i denne kommando er ugyldig!",
"optionInvalidChoose":"Vælg mellem",
"unknownCommand":"Prøv at besøge hjælpe-menuen for mere info!",
"noPermissions":"Du har ikke tilladelse til at bruge denne {0}!",
"noPermissionsList":"Påkrævede tilladelser: (en af dem)",
"noPermissionsCooldown":"Du har ikke tilladelse til at bruge denne {0}, fordi du har en nedkølingsperiode!",
"noPermissionsBlacklist":"Du har ikke tilladelse til at bruge denne {0}, fordi du er blevet sortlistet!",
"noPermissionsLimitGlobal":"Du har ikke tilladelse til at oprette en ticket, fordi serveren har nået det maksimale antal tickets!",
"noPermissionsLimitGlobalUser":"Du har ikke tilladelse til at oprette en ticket, fordi du har nået det maksimale antal tickets!",
"noPermissionsLimitOption":"Du har ikke tilladelse til at oprette en ticket, fordi serveren har nået det maksimale antal tickets for denne indstilling!",
"noPermissionsLimitOptionUser":"Du har ikke tilladelse til at oprette en ticket, fordi du har nået det maksimale antal tickets for denne indstilling!",
"unknownTicket":"Prøv denne kommando igen i en gyldig ticket!",
"deprecatedTicket":"Den aktuelle kanal er ikke en gyldig ticket! Det kan være en ticket fra en ældre version af Open Ticket!",
"notInGuild":"Denne {0} virker ikke i DM! Prøv igen på en server!",
"channelRename":"På grund af Discord-ratelimits er det i øjeblikket umuligt for botten at omdøbe kanalen. Kanalen vil automatisk blive omdøbt inden for 10 minutter, hvis botten ikke genstartes.",
"channelRenameSource":"Kilden til denne fejl er: {0}",
"busy":"Kan ikke bruge denne {0}!\nTicketen bliver i øjeblikket behandlet af botten.\n\nPrøv igen om et par sekunder!",
"closeBeforeMessage":"Denne ticket kan ikke lukkes/slettes, før en bruger har sendt en besked.",
"closeBeforeAdminMessage":"Denne ticket kan ikke lukkes/slettes, før en ticket-admin eller supportmedlem har sendt en besked.",
"unableToCreateTicket":"Du kan ikke oprette en ticket."
},
"optionInvalidReasons":{
"stringRegex":"Værdien matcher ikke mønsteret!",
"stringMinLength":"Værdien skal være mindst {0} tegn!",
"stringMaxLength":"Værdien skal være højst {0} tegn!",
"numberInvalid":"Ugyldigt tal!",
"numberMin":"Tallet skal være mindst {0}!",
"numberMax":"Tallet skal være højst {0}!",
"numberDecimal":"Tallet må ikke være et decimaltal!",
"numberNegative":"Tallet må ikke være negativt!",
"numberPositive":"Tallet må ikke være positivt!",
"numberZero":"Tallet må ikke være nul!",
"channelNotFound":"Kan ikke finde kanalen!",
"userNotFound":"Kan ikke finde brugeren!",
"roleNotFound":"Kan ikke finde rollen!",
"memberNotFound":"Kan ikke finde brugeren!",
"mentionableNotFound":"Kan ikke finde brugeren eller rollen!",
"channelType":"Ugyldig kanaltype!",
"notInGuild":"Denne mulighed kræver, at du er på en server!"
},
"permissions":{
"developer":"Du skal være udvikler af botten.",
"owner":"Du skal være serverejer.",
"admin":"Du skal være serveradministrator.",
"moderator":"Du skal være moderator.",
"support":"Du skal være en del af supportteamet.",
"member":"Du skal være medlem.",
"discord-administrator":"Du skal have `ADMINISTRATOR` tilladelsen."
},
"actionInvalid":{
"close":"Ticket er allerede lukket!",
"reopen":"Ticket er ikke lukket endnu!",
"claim":"Ticket er allerede gjort krav på!",
"unclaim":"Ticket er ikke gjort krav på endnu!",
"pin":"Ticket er allerede fastgjort!",
"unpin":"Ticket er ikke fastgjort endnu!",
"add":"Denne bruger har allerede adgang til ticketen!",
"remove":"Kan ikke fjerne denne bruger fra ticketen!"
}
},
"params":{
"uppercase":{
"ticket":"Ticket",
"tickets":"Tickets",
"reason":"Årsag",
"creator":"Skaber",
"remaining":"Tid tilbage",
"added":"Tilføjet",
"removed":"Fjernet",
"filter":"Filter",
"method":"Metode",
"type":"Type",
"blacklisted":"Sortlistet",
"panel":"Panel",
"command":"Kommando",
"system":"System",
"true":"Sand",
"false":"Falsk",
"syntax":"Syntaks",
"originalName":"Originalt navn",
"newName":"Nyt navn",
"until":"Indtil",
"validOptions":"Gyldige indstillinger",
"validPanels":"Gyldige paneler",
"autoclose":"Auto-lukning",
"autodelete":"Auto-sletning",
"startupDate":"Startdato",
"version":"Version",
"name":"Navn",
"role":"Rolle",
"status":"STATUS",
"claimed":"Gjort krav på",
"pinned":"Fastgjort",
"creationDate":"Oprettelsesdato",
"noone":"Ingen",
"open":"ÅBEN",
"closed":"LUKKET",
"priority":"PRIORITET",
"participants":"DELTAGERE",
"yes":"Ja",
"no":"Nej",
"option":"Mulighed",
"topic":"Emne",
"uptime":"System Oppetid",
"messages":"Beskeder",
"embeds":"Embeds",
"files":"Filer",
"components":"Komponenter",
"cooldown":"Cooldown",
"maxTickets":"Maks Tickets",
"admins":"Admins",
"roles":"Roller",
"size":"Størrelse"
},
"lowercase":{
"text":"tekst",
"html":"html",
"command":"kommando",
"modal":"modal",
"button":"knap",
"dropdown":"dropdown",
"method":"metode"
}
},
"commands":{
"reason":"Angiv en valgfri årsag, der vil være synlig i loggene.",
"help":"Få en liste over alle tilgængelige kommandoer.",
"panel":"Opret en besked med en dropdown eller knapper (til ticket-oprettelse).",
"panelId":"Identifikatoren for panelet, som du vil oprette.",
"panelAutoUpdate":"Vil du have, at dette panel automatisk opdateres, når det redigeres?",
"ticket":"Opret en ticket med det samme.",
"ticketId":"Identifikatoren for ticketen, som du vil oprette.",
"close":"Luk en ticket.",
"delete":"Slet en ticket.",
"deleteNoTranscript":"Slet denne ticket uden at oprette et transkript.",
"reopen":"Genåbn en ticket.",
"claim":"Gør krav på en ticket.",
"claimUser":"Gør krav på denne ticket til en anden bruger i stedet for dig selv.",
"unclaim":"Afstå fra krav på en ticket.",
"pin":"Fastgør en ticket.",
"unpin":"Frigør en fastgjort ticket.",
"move":"Flyt en ticket.",
"moveId":"Identifikatoren for den indstilling, du vil flytte til.",
"rename":"Omdøb en ticket.",
"renameName":"Det nye navn for denne ticket.",
"add":"Tilføj en bruger til en ticket.",
"addUser":"Brugeren, der skal tilføjes.",
"remove":"Fjern en bruger fra en ticket.",
"removeUser":"Brugeren, der skal fjernes.",
"blacklist":"Administrer ticket-blacklisten.",
"blacklistView":"Se en liste over den nuværende blacklist.",
"blacklistAdd":"Tilføj en bruger til blacklisten.",
"blacklistRemove":"Fjern en bruger fra blacklisten.",
"blacklistGet":"Få detaljer fra en sortlistet bruger.",
"blacklistGetUser":"Brugeren at få detaljer fra.",
"stats":"Se statistik fra botten, en bruger eller en ticket.",
"statsReset":"Nulstil al statistik for botten (og start tælling fra nul).",
"statsGlobal":"Se de globale statistikker.",
"statsUser":"Se statistik fra en bruger på serveren.",
"statsUserUser":"Brugeren, der skal vises.",
"statsTicket":"Se statistik for en ticket på serveren.",
"statsTicketTicket":"Ticketen, der skal vises.",
"clear":"Slet flere tickets på samme tid.",
"clearFilter":"Filteret til at rydde tickets.",
"clearFilters":{
"all":"Alle",
"open":"Åbne",
"close":"Lukkede",
"claim":"Gjort krav på",
"unclaim":"Ikke gjort krav på",
"pin":"Fastgjort",
"unpin":"Ikke fastgjort",
"autoclose":"Auto-lukket"
},
"autoclose":"Administrer auto-lukning i en ticket.",
"autocloseDisable":"Deaktiver auto-lukning i denne ticket.",
"autocloseEnable":"Aktiver auto-lukning i denne ticket.",
"autocloseEnableTime":"Antal timer, denne ticket skal være inaktiv for at lukke den.",
"autodelete":"Administrer auto-sletning i en ticket.",
"autodeleteDisable":"Deaktiver auto-sletning i denne ticket.",
"autodeleteEnable":"Aktiver auto-sletning i denne ticket.",
"autodeleteEnableTime":"Antal dage, denne ticket skal være inaktiv for at slette den.",
"topic":"Administrer emnet for ticket-kanalen.",
"topicSet":"Indstil emnet for ticket-kanalen.",
"topicValue":"Det nye emne for kanalen.",
"topicList":"Få en liste over alle tickets med deres emner og statistik.",
"priority":"Administrer prioriteten for ticketen.",
"prioritySet":"Indstil prioritet for ticketen.",
"priorityValue":"Prioritet for kanalen.",
"priorityGet":"Få prioritet for ticketen.",
"priorityList":"Få en liste over alle tickets med deres prioritet.",
"transfer":"Overfør ticket-ejerskab fra en bruger til en anden.",
"transferUser":"Brugeren der skal overføres til."
},
"helpMenu":{
"help":"Få en liste over alle de tilgængelige kommandoer.",
"ticket":"Opret en ticket med det samme.",
"close":"Luk en ticket, dette deaktiverer skrivning i denne kanal.",
"delete":"Slet en ticket, dette opretter et transkript, når det er aktiveret.",
"reopen":"Genåbn en ticket, dette aktiverer skrivning i denne kanal igen.",
"pin":"Fastgør en ticket. Dette vil flytte ticketen til toppen og tilføje en '📌' emoji til navnet.",
"unpin":"Frigør en ticket. Ticketen forbliver på sin position, men mister '📌' emoji.",
"move":"Flyt en ticket. Dette vil ændre typen af denne ticket.",
"rename":"Omdøb en ticket. Dette vil ændre kanalnavnet på denne ticket.",
"claim":"Gør krav på en ticket. Med dette kan du lade dit team vide, at du håndterer denne ticket.",
"unclaim":"Afstå fra krav på en ticket. Med dette kan du lade dit team vide, at denne ticket er fri igen.",
"add":"Tilføj en bruger til en ticket. Dette vil give brugeren mulighed for at læse og skrive i denne ticket.",
"remove":"Fjern en bruger fra en ticket. Dette vil fjerne muligheden for at læse og skrive for en bruger i denne ticket.",
"panel":"Opret en besked med en dropdown eller knapper (til ticket-oprettelse).",
"blacklistView":"Se en liste over den nuværende blacklist.",
"blacklistAdd":"Tilføj en bruger til blacklisten.",
"blacklistRemove":"Fjern en bruger fra blacklisten.",
"blacklistGet":"Få detaljerne fra en sortlistet bruger.",
"statsGlobal":"Se de globale statistikker.",
"statsTicket":"Se statistikken for en ticket på serveren.",
"statsUser":"Se statistikken fra en bruger på serveren.",
"statsReset":"Nulstil al statistik for botten (og start tælling fra nul).",
"autocloseDisable":"Deaktiver auto-lukning i denne ticket.",
"autocloseEnable":"Aktiver auto-lukning i denne ticket.",
"autodeleteDisable":"Deaktiver auto-sletning i denne ticket.",
"autodeleteEnable":"Aktiver auto-sletning i denne ticket.",
"categories":{
"general":"Generelle Kommandoer",
"basicTicket":"Grundlæggende Ticket Kommandoer",
"advancedTicket":"Avancerede Ticket Kommandoer",
"userTicket":"Bruger Ticket Kommandoer",
"admin":"Admin Kommandoer",
"advanced":"Avancerede Kommandoer",
"extra":"Ekstra Kommandoer"
}
},
"stats":{
"scopes":{
"global":"Globale Statistikker",
"system":"Systemstatistikker",
"user":"Brugerstatistikker",
"ticket":"Ticketstatistikker",
"participants":"Deltagere",
"messages":"Beskeder"
},
"properties":{
"ticketsCreated":"Oprettede Tickets",
"ticketsClosed":"Lukkede Tickets",
"ticketsDeleted":"Slettede Tickets",
"ticketsReopened":"Genåbnede Tickets",
"ticketsAutoclosed":"Auto-lukkede Tickets",
"ticketsClaimed":"Gjorte krav på Tickets",
"ticketsPinned":"Fastgjorte Tickets",
"ticketsMoved":"Flyttede Tickets",
"usersBlacklisted":"Sortlistede Brugere",
"transcriptsCreated":"Oprettede Transkripter",
"ticketsAutodeleted":"Tickets Auto-slettet",
"ticketsTransferred":"Tickets Overført",
"ticketVolume":"Ticket Volume",
"averageTickets":"Gennemsnitlige Tickets/Bruger",
"currentTickets":"Nuværende Tickets",
"age":"Ticket Alder",
"responseTime":"Responstid",
"resolutionTime":"Løsningstid",
"createdOn":"Oprettet den",
"createdBy":"Oprettet af",
"closedOn":"Lukket den",
"closedBy":"Lukket af",
"claimedOn":"Tildelt den",
"claimedBy":"Tildelt af",
"pinnedOn":"Fastgjort den",
"pinnedBy":"Fastgjort af",
"deletedOn":"Slettet den",
"deletedBy":"Slettet af"
},
"roles":{
"developer":"Udvikler",
"serverOwner":"Serverejer",
"serverAdmin":"Server Admin",
"moderator":"Moderator Team",
"support":"Support Team",
"member":"Medlem"
}
},
"panel":{
"selectTicket":"Vælg din ticket",
"selectRole":"Vælg din rolle",
"selectOption":"Vælg dit valg"
},
"priorities":{
"urgent":"Haster",
"veryHigh":"Meget Høj",
"high":"Høj",
"normal":"Normal",
"low":"Lav",
"veryLow":"Meget Lav",
"none":"Ingen"
}
}
+608
View File
@@ -0,0 +1,608 @@
{
"_TRANSLATION":{
"otversion":"v4.1.3",
"translators":["DJj123dj"],
"lastedited":"16/02/2026",
"language":"Dutch",
"automated":false
},
"checker":{
"system":{
"typeError":"[ERROR]",
"headerOpenTicket":"OPEN TICKET",
"typeWarning":"[WAARSCHUWING]",
"typeInfo":"[INFO]",
"headerConfigChecker":"CONFIG CHECKER",
"headerDescription":"check voor errors in je config bestanden!",
"footerError":"de bot start niet tot alle {0}'s opgelost zijn!",
"footerWarning":"het is aangeraden om alle {0}'en op te lossen voor het starten!",
"footerSupport":"SUPPORT: {0} - DOCS: {1}",
"compactInformation":"gebruik {0} voor meer informatie!",
"dataPath":"pad",
"dataDocs":"docs",
"dataMessages":"bericht"
},
"messages":{
"stringTooShort":"Deze tekst kan niet korter dan {0} karakters zijn!",
"stringTooLong":"Deze tekst kan niet langer dan {0} karakters zijn!",
"stringLengthInvalid":"Deze tekst moet {0} karakters lang zijn!",
"stringStartsWith":"Deze tekst moet starten met {0}!",
"stringEndsWith":"Deze tekst moet eindigen met {0}!",
"stringContains":"Deze tekst moet {0} bevatten!",
"stringChoices":"Deze tekst kan alleen de volgende waardes bevatten: {0}!",
"stringRegex":"Deze tekst is ongeldig!",
"stringInvertedContains":"Deze tekst mag niet {0} bevatten!",
"stringLowercase":"Deze tekst moet in kleine letters geschreven zijn!",
"stringUppercase":"Deze tekst moet in hoofdletters geschreven zijn!",
"stringSpecialCharacters":"Deze tekst mag geen speciale karakters bevatten! (enkel a-z, 0-9 & spatie)",
"stringNoSpaces":"Deze tekst mag geen spaties bevatten!",
"stringCapitalWord":"Het is aangeraden om ieder woord in de zin te laten starten met een hoofdletter!",
"stringCapitalSentence":"Het ziet er naar uit dat sommige zinnen in deze tekst niet met een hoofdletter beginnen!",
"stringPunctuation":"Het ziet er naar uit dat de zin in deze tekst niet met een leesteken eindigt!",
"numberTooShort":"Dit nummer kan niet korter dan {0} karakters zijn!",
"numberTooLong":"Dit nummer kan niet langer dan {0} karakters zijn!",
"numberLengthInvalid":"Dit nummer moet {0} karakters lang zijn!",
"numberTooSmall":"Dit nummer moet minimum {0} zijn!",
"numberTooLarge":"Dit nummer kan maximum {0} zijn!",
"numberNotEqual":"Dit nummer moet gelijk zijn aan {0}!",
"numberStep":"Dit nummer moet een meervoud zijn van {0}!",
"numberStepOffset":"Dit nummer moet een meervoud zijn van {0} startend bij {1}!",
"numberStartsWith":"Dit nummer moet starten met {0}!",
"numberEndsWith":"Dit nummer moet eindigen met {0}!",
"numberContains":"Dit nummer moet {0} bevatten!",
"numberChoices":"Dit nummer kan alleen een van de volgende waardes bevatten: {0}!",
"numberFloat":"Dit nummer kan geen kommagetal zijn!",
"numberNegative":"Dit nummer kan niet negatief zijn!",
"numberPositive":"Dit nummer kan niet positief zijn!",
"numberZero":"Dit nummer kan niet nul zijn!",
"numberNan":"Dit nummer kan geen NaN (Not A Number) zijn!",
"numberInvertedContains":"Dit nummer mag niet {0} bevatten!",
"booleanTrue":"Deze boolean kan niet true zijn!",
"booleanFalse":"Deze boolean kan niet false zijn!",
"arrayEmptyDisabled":"Deze array mag niet leeg zijn!",
"arrayEmptyRequired":"Deze array moet leeg zijn!",
"arrayTooShort":"Deze array moet een minimum lengte hebben van {0}!",
"arrayTooLong":"Deze array mag niet langer zijn dan {0}!",
"arrayLengthInvalid":"Deze array moet een lengte hebben van {0}!",
"arrayInvalidTypes":"Deze array kan alleen de volgende waardes bevatten: {0}!",
"arrayDouble":"Deze array staat dubbele waardes niet toe!",
"discordInvalidId":"Dit is een ongeldig discord {0} id!",
"discordInvalidIdOptions":"Dit is an ongeldig discord {0} id! Je kan ook een van deze gebruiken: {1}!",
"discordInvalidToken":"Dit is een ongeldig discord token (syntactisch)!",
"colorInvalid":"Dit is een ongeldig hex kleur!",
"emojiTooShort":"Deze tekst moet minimum {0} emoji's hebben!",
"emojiTooLong":"Deze tekst mag maximum {0} emoji's hebben!",
"emojiCustom":"Deze emoji kan geen custom discord emoji zijn!",
"emojiInvalid":"Dit is een ongeldige emoji!",
"urlInvalid":"Deze url is ongeldig!",
"urlInvalidHttp":"Deze url kan alleen het https:// protocol gebruiken!",
"urlInvalidProtocol":"Deze url kan alleen de http:// & https:// protocolen gebruiken!",
"urlInvalidHostname":"Deze url heeft een verboden hostnaam (domein)!",
"urlInvalidExtension":"Deze url heeft een ongeldige extensie! Kies tussen: {0}!",
"urlInvalidPath":"Deze url heeft een ongeldig pad!",
"idNotUnique":"Dit id is niet uniek, gebruik een andere in de plaats!",
"idNonExistent":"Het id {0} bestaat niet!",
"invalidType":"Het type van deze property moet gelijk zijn aan: {0}!",
"propertyMissing":"De property {0} mist in dit object!",
"propertyOptional":"De property {0} is optioneel in dit object!",
"objectDisabled":"Dit object is uitgeschakeld, gebruik het met behulp van {0}!",
"nullInvalid":"Deze property kan niet null zijn!",
"switchInvalidType":"Dit moet een van de volgende types zijn: {0}!",
"objectSwitchInvalid":"Dit object moet een van de volgende types zijn: {0}!",
"invalidLanguage":"Dit is een ongeldige taal!",
"invalidButton":"Deze knop moet een {0} of {1} hebben!",
"unusedOption":"De optie {0} wordt nergens gebruikt!",
"unusedQuestion":"The vraag {0} wordt nergens gebruikt!",
"dropdownOption":"Een paneel met dropdown mag alleen opties bevaten van het 'ticket' type!",
"customInvalidVersion":"De versie gespecificeerd in u configbestand komt niet overeen! Zorg dat u het configbestand geüpdatet heeft naar de laatste versie!"
}
},
"actions":{
"buttons":{
"create":"Bekijk Ticket",
"close":"Sluit Ticket",
"delete":"Verwijder Ticket",
"reopen":"Heropen Ticket",
"claim":"Claim Ticket",
"unclaim":"Ontclaim Ticket",
"pin":"Pin Ticket",
"unpin":"Maak Ticket Los",
"clear":"Verwijder Tickets",
"helpSwitchSlash":"Bekijk Slash Commands",
"helpSwitchText":"Bekijk Text Commands",
"helpPage":"Pagina {0}",
"withReason":"Met Reden",
"withoutTranscript":"Zonder Transcript"
},
"titles":{
"created":"Ticket Gecreëerd",
"close":"Ticket Gesloten",
"delete":"Ticket Verwijderd",
"reopen":"Ticket Heropend",
"claim":"Ticket Geclaimd",
"unclaim":"Ticket Ontclaimd",
"pin":"Ticket Gepind",
"unpin":"Ticket Losgemaakt",
"rename":"Ticket Hernoemd",
"move":"Ticket Verplaatst",
"add":"Ticket Gebruiker Toegevoegd",
"remove":"Ticket Gebruiker Verwijderd",
"help":"Beschikbare Commands",
"statsReset":"Reset Stats",
"blacklistAdd":"Gebruiker Geblacklisted",
"blacklistRemove":"Gebruiker Vrijgelaten",
"blacklistGet":"Geblackliste Gebruiker",
"blacklistView":"Huidige Blacklist",
"blacklistAddDm":"Toegevoegd Aan Blacklist",
"blacklistRemoveDm":"Verwijderd Van Blacklist",
"clear":"Tickets Opgeruimd",
"clearTickets":"Tickets Opruimen",
"roles":"Rollen Bijgewerkt",
"autoclose":"Ticket Automatisch Gesloten",
"autocloseEnabled":"Autoclose Ingeschakeld",
"autocloseDisabled":"Autoclose Uitgeschakeld",
"autodelete":"Ticket Automatisch Verwijderd",
"autodeleteEnabled":"Autodelete Ingeschakeld",
"autodeleteDisabled":"Autodelete Uitgeschakeld",
"topicSet":"Onderwerp Veranderd",
"prioritySet":"Prioriteit Veranderd",
"priorityGet":"Ticket Prioriteit",
"transfer":"Ticket Overgedragen"
},
"descriptions":{
"create":"Je ticket is aangemaakt. Klik op de knop hier onder om er naar toe te gaan!",
"close":"Het ticket is succesvol gesloten!",
"delete":"Het ticket is succesvol verwijderd!",
"reopen":"Het ticket is succesvol heropend!",
"claim":"Het ticket is succesvol geclaimd!",
"unclaim":"Het ticket is succesvol ontclaimd!",
"pin":"Het ticket is succesvol gepind!",
"unpin":"Het ticket is succesvol losgemaakt!",
"rename":"Het ticket is succesvol hernoemd naar {0}!",
"move":"Het ticket is succesvol verplaatst naar {0}!",
"add":"{0} is succesvol toegevoegd aan het ticket!",
"remove":"{0} is succesvol verwijderd van het ticket!",
"helpExplanation":"`<naam>` => verplichte parameter\n`[naam]` => optionele parameter",
"statsReset":"De bot stats zijn succesvol gereset!",
"statsError":"Kan ticket stats niet bekijken!\n{0} is geen ticket!",
"blacklistAdd":"{0} is succesvol geblacklist!",
"blacklistRemove":"{0} is succesvol vrijgelaten!",
"blacklistGetSuccess":"{0} is op dit moment geblacklist!",
"blacklistGetEmpty":"{0} is op dit moment niet geblacklist!",
"blacklistViewEmpty":"Nog niemand is geblacklist!",
"blacklistViewTip":"Gebruik \"/blacklist add\" om een gebruiker te blacklisten!",
"clearVerify":"Weet je zeker dat je meerdere tickets wilt verwijderen? Deze actie kan niet teruggedraaid worden!",
"clearReady":"{0} tickets zijn succesvol verwijderd!",
"rolesEmpty":"Geen enkele rollen zijn bijgewerkt!",
"autocloseLeave":"Dit ticket is automatisch gesloten omdat de maker de server verlaten is!",
"autocloseTimeout":"Dit ticket is automatisch gesloten omdat het meer dan `{0} uur` inactief was!",
"autodeleteLeave":"Dit ticket is automatisch verwijderd omdat de maker de server verlaten is!",
"autodeleteTimeout":"Dit ticket is automatisch verwijderd omdat het meer dan `{0} dagen` inactief was!",
"autocloseEnabled":"Autoclose is ingeschakeld in dit ticket!\nHet wordt gesloten na `{0} uur` inactiviteit!",
"autocloseDisabled":"Autoclose is uitgeschakeld in dit ticket!\nHet wordt niet meer automatisch gesloten!",
"autodeleteEnabled":"Autodelete is ingeschakeld in dit ticket!\nHet wordt verwijderd na `{0} dagen` inactiviteit!",
"autodeleteDisabled":"Autodelete is uitgeschakeld in dit ticket!\nHet wordt niet meer automatisch verwijderd!",
"ticketMessageLimit":"Je kan maar {0} ticket(s) op het zelfde moment aanmaken!",
"ticketMessageAutoclose":"Dit ticket wordt automatisch gesloten wanneer het inactief is voor {0} uur!",
"ticketMessageAutodelete":"Dit ticket wordt automatisch verwijderd wanneer het inactief is voor {0} dagen!",
"panelReady":"Het paneel is beschikbaar in het volgende bericht!\nDit bericht kan verwijderd worden!",
"topicSet":"Het kanaalsonderwerp is succesvol veranderd naar {0}!",
"prioritySet":"De ticket prioriteit is succesvol veranderd naar {0} door {1}!",
"priorityGet":"De huidige prioriteit van dit ticket is {0}.",
"transfer":"Het ticket is succesvol overgedragen van {0} naar {1} door {2}!"
},
"modal":{
"closePlaceholder":"Waarom heb je dit ticket gesloten?",
"deletePlaceholder":"Waarom heb je dit ticket verwijderd?",
"reopenPlaceholder":"Waarom heb je dit ticket heropend?",
"claimPlaceholder":"Waarom heb je dit ticket geclaimd?",
"unclaimPlaceholder":"Waarom heb je dit ticket ontclaimd?",
"pinPlaceholder":"Waarom heb je dit ticket gepind?",
"unpinPlaceholder":"Waarom heb je dit ticket losgemaakt?"
},
"logs":{
"createLog":"Een nieuw ticket is aangemaakt door {0}!",
"closeLog":"Dit ticket is gesloten door {0}!",
"closeDm":"Jouw ticket is gesloten in onze server!",
"deleteLog":"Dit ticket is verwijderd door {0}!",
"deleteDm":"Jouw ticket is verwijderd in onze server!",
"reopenLog":"Dit ticket is heropend door {0}!",
"reopenDm":"Jouw ticket is heropend in onze server!",
"claimLog":"Dit ticket is geclaimd door {0}!",
"claimDm":"Jouw ticket is geclaimd in onze server!",
"unclaimLog":"Dit ticket is ontclaimd door {0}!",
"unclaimDm":"Jouw ticket is ontclaimd in onze server!",
"pinLog":"Dit ticket is gepind door {0}!",
"pinDm":"Jouw ticket is gepind in onze server!",
"unpinLog":"Dit ticket is losgemaakt door {0}!",
"unpinDm":"Jouw ticket is losgemaakt in onze server!",
"renameLog":"Dit ticket is hernoemd naar {0} door {1}!",
"renameDm":"Jouw ticket is hernoemd naar {0} in onze server!",
"moveLog":"Dit ticket is verplaatst naar {0} door {1}!",
"moveDm":"Jouw ticket is verplaatst naar {0} in onze server!",
"addLog":"{0} is toegevoegd aan dit ticket door {1}!",
"addDm":"{0} is toegevoegd aan jouw ticket in onze server!",
"removeLog":"{0} is verwijderd van dit ticket door {1}!",
"removeDm":"{0} is verwijderd van jouw ticket in onze server!",
"blacklistAddLog":"{0} is geblacklist door {1}!",
"blacklistRemoveLog":"{0} is verwijderd van de blacklist door {1}!",
"blacklistAddDm":"Je bent geblacklist in onze server!\nVanaf nu kan je geen tickets meer aanmaken!",
"blacklistRemoveDm":"Je bent verwijderd van de blacklist in onze server!\nNormaal zou je nu terug tickets kunnen aanmaken!",
"clearLog":"{0} tickets zijn verwijderd door by {1}!",
"transferLog":"Het ticket is overgedragen van {0} naar {1} door {2}!",
"transferDm":"U ticket is overgedragen van {0} naar {1} in onze server!",
"prioritySetLog":"De prioriteit van dit ticket is veranderd naar {0} door {1}!",
"prioritySetDm":"De prioriteit van u ticket is veranderd naar {0} in onze server!",
"roleUpdateLog":"{0} heeft zijn/haar rollen bewerkt!",
"roleUpdateDm":"U rollen in onze server zijn veranderd!"
}
},
"transcripts":{
"success":{
"visit":"Bekijk Transcript",
"ready":"Transcript Aangemaakt",
"textFileDescription":"Dit is een tekst transcript van een verwijderd ticket!",
"htmlProgress":"Gelieve te wachten terwijl dit html transcript verwerkt wordt...",
"createdChannel":"Een nieuw {0} transcript is aangemaakt in de server!",
"createdCreator":"Een nieuw {0} transcript is aangemaakt voor een van jouw tickets!",
"createdParticipant":"Een nieuw {0} transcript is aangemaakt in een van de tickets waar jij lid van was!",
"createdActiveAdmin":"Een nieuw {0} transcript is aangemaakt in een van de tickets waar jij een actieve admin was!",
"createdEveryAdmin":"Een nieuw {0} transcript is aangemaakt in een van de tickets waar jij admin was!",
"createdOther":"Een nieuw {0} transcript is aangemaakt!"
},
"errors":{
"retry":"Herprobeer",
"continue":"Verwijder Zonder Transcript",
"backup":"Maak Backup Transcript",
"error":"Er is iets misgegaan bij het maken van het transcript.\nWat wil je doen?\n\nDit ticket wordt niet meer verwijderd to je een van de onderstaande knoppen gebruikt.",
"title":"Transcript Error"
},
"text":{
"messagesTitle":"BERICHTEN",
"embedTitle":"EMBED",
"fileTitle":"BESTAND",
"fieldsTitle":"VELDEN",
"reactionsTitle":"REACTIES",
"statsTitle":"STATS",
"emptyContent":"<inhoud is leeg>",
"noTitle":"<geen-titel>",
"noDesc":"<geen-beschrijving>"
}
},
"errors":{
"titles":{
"internalError":"Interne Error",
"optionMissing":"Missende Command Optie",
"optionInvalid":"Onjuiste Command Optie",
"unknownCommand":"Onbekende Command",
"noPermissions":"Geen Permissies",
"unknownTicket":"Onbekend Ticket",
"deprecatedTicket":"Verouderd Ticket",
"unknownOption":"Onbekende Optie",
"unknownPanel":"Onbekend Paneel",
"notInGuild":"Niet In Server",
"channelRename":"Kan Kanaal Niet Hernoemen",
"busy":"Ticket Is Bezig",
"permissionError":"Permission Error"
},
"descriptions":{
"askForInfo":"Contacteer de eigenaar van deze bot voor meer info!",
"askForInfoResolve":"Contacteer de eigenaar van deze bot als het probleem niet opgelost wordt na enkele keren.",
"internalError":"Gefaald om te reageren op deze {0} door een interne error!",
"optionMissing":"Een verplichte parameter mist in deze command!",
"optionInvalid":"Een parameter in deze command is ongeldig!",
"optionInvalidChoose":"Kies tussen",
"unknownCommand":"Probeer het help menu te bekijken voor meer info!",
"noPermissions":"Je bent niet toegestaan om deze {0} te gebruiken!",
"noPermissionsList":"Benodigde Permissies: (één van deze)",
"noPermissionsCooldown":"Je bent niet toegestaan om deze {0} te gebruiken omdat je een cooldown hebt!",
"noPermissionsBlacklist":"Je bent niet toegestaan om deze {0} te gebruiken omdat je geblacklist bent!",
"noPermissionsLimitGlobal":"Je bent niet toegestaan om een ticket aan te maken omdat de server het maximum tickets limiet heeft bereikt!",
"noPermissionsLimitGlobalUser":"Je bent niet toegestaan om een ticket aan te maken omdat je het maximum tickets limiet hebt bereikt!",
"noPermissionsLimitOption":"Je bent niet toegestaan om een ticket aan te maken omdat de server het maximum tickets limiet van deze optie heeft bereikt!",
"noPermissionsLimitOptionUser":"Je bent niet toegestaan om een ticket aan te maken omdat je het maximum tickets limiet van deze optie hebt bereikt!",
"unknownTicket":"Probeer deze command opnieuw in een geldig ticket!",
"deprecatedTicket":"Het huidige kanaal is geen geldig ticket! Het is misschien een ticket van een oudere Open Ticket versie!",
"notInGuild":"Deze {0} werkt niet in DM! Probeer het opnieuw in een server!",
"channelRename":"Door discord ratelimits is het op dit moment onmogelijk voor de bot om het kanaal te hernoemen. Het kanaal zal automatisch hernoemd worden over 10 min als de bot niet herstart wordt.",
"channelRenameSource":"De bron van deze error is: {0}",
"busy":"Kan deze {0} niet gebruiken!\nHet ticket wordt op dit moment verwerkt door de bot.\n\nProbeer het opnieuw binnen een paar seconden!",
"closeBeforeMessage":"Dit ticket kan niet gesloten/verwijderd worden vooraleer er een bericht door een gebruiker verstuurd is.",
"closeBeforeAdminMessage":"Dit ticket kan niet gesloten/verwijderd worden vooraleer er een bericht door een ticket admin of supportlid verstuurd is.",
"unableToCreateTicket":"U kunt geen ticket aanmaken."
},
"optionInvalidReasons":{
"stringRegex":"Waarde is niet gelijk aan het patroon!",
"stringMinLength":"Waarde moet minstens {0} karakters hebben!",
"stringMaxLength":"Waarde moet maximum {0} karakters hebben!",
"numberInvalid":"Ongeldig nummer!",
"numberMin":"Nummer moet minstens {0} zijn!",
"numberMax":"Nummer moet maximum {0} zijn!",
"numberDecimal":"Nummer kan geen kommagetal zijn!",
"numberNegative":"Nummer mag niet negatief zijn!",
"numberPositive":"Nummer mag niet positief zijn!",
"numberZero":"Nummer mag niet nul zijn!",
"channelNotFound":"Kan kanaal niet vinden!",
"userNotFound":"Kan gebruiker niet vinden!",
"roleNotFound":"Kan rol niet vinden!",
"memberNotFound":"Kan gebruiker niet vinden!",
"mentionableNotFound":"Kan gebruiker of rol niet vinden!",
"channelType":"Ongeldig kanaal type!",
"notInGuild":"Voor deze optie moet je in een server zitten!"
},
"permissions":{
"developer":"Je moet de ontwikkelaar van de bot zijn.",
"owner":"Je moet de server eigenaar zijn.",
"admin":"Je moet een server admin zijn.",
"moderator":"Je moet een server moderator zijn.",
"support":"Je moet in het support team zitten.",
"member":"Je moet een member van de server zijn.",
"discord-administrator":"Je hebt de `ADMINISTRATOR` permissie nodig."
},
"actionInvalid":{
"close":"Ticket is al gesloten!",
"reopen":"Ticket is nog niet gesloten!",
"claim":"Ticket is al geclaimd!",
"unclaim":"Ticket nog niet geclaimd!",
"pin":"Ticket is al gepind!",
"unpin":"Ticket nog niet gepind!",
"add":"Deze gebruiker heeft al toegang tot dit ticket!",
"remove":"Deze gebruiker kan niet verwijderd worden van dit ticket!"
}
},
"params":{
"uppercase":{
"ticket":"Ticket",
"tickets":"Tickets",
"reason":"Reden",
"creator":"Maker",
"remaining":"Resterende Tijd",
"added":"Toegevoegd",
"removed":"Verwijderd",
"filter":"Filter",
"method":"Methode",
"type":"Type",
"blacklisted":"Geblacklist",
"panel":"Paneel",
"command":"Command",
"system":"Systeem",
"true":"Waar",
"false":"Onwaar",
"syntax":"Syntax",
"originalName":"Originele Naam",
"newName":"Nieuwe Naam",
"until":"Tot",
"validOptions":"Geldige Opties",
"validPanels":"Geldige Panelen",
"autoclose":"Autoclose",
"autodelete":"Autodelete",
"startupDate":"Opstart Datum",
"version":"Versie",
"name":"Naam",
"role":"Rol",
"status":"Status",
"claimed":"Geclaimd",
"pinned":"Gepind",
"creationDate":"Aanmaakdatum",
"noone":"Niemand",
"open":"Open",
"closed":"Gesloten",
"priority":"Prioriteit",
"participants":"Deelnemers",
"yes":"Ja",
"no":"Nee",
"option":"Optie",
"topic":"Onderwerp",
"uptime":"Systeem Uptime",
"messages":"Berichten",
"embeds":"Embeds",
"files":"Bestanden",
"components":"Componenten",
"cooldown":"Cooldown",
"maxTickets":"Max Tickets",
"admins":"Admins",
"roles":"Rollen",
"size":"Grootte"
},
"lowercase":{
"text":"tekst",
"html":"html",
"command":"command",
"modal":"form",
"button":"knop",
"dropdown":"dropdown",
"method":"methode"
}
},
"commands":{
"reason":"Specifieer een optionele reden die zichtbaar is in de logs.",
"help":"Verkrijg een lijst met alle beschikbare commands.",
"panel":"Spawn een bericht met een dropdown of knoppen (voor ticket creatie).",
"panelId":"Het id van het paneel dat je wilt spawnen.",
"panelAutoUpdate":"Wil je dat dit paneel automatisch bijwerkt wanneer het aangepast wordt?",
"ticket":"Maak een instant ticket.",
"ticketId":"Het id van het ticket dat je wilt aanmaken.",
"close":"Sluit een ticket, dit schakelt schrijven in het kanaal uit.",
"delete":"Verwijder een ticket, dit maakt een transcript waneer ingeschakeld.",
"deleteNoTranscript":"Verwijder dit ticket zonder een transcript aan te maken.",
"reopen":"Heropen een ticket, dit schakelt schrijven in het kanaal terug aan.",
"claim":"Claim een ticket.",
"claimUser":"Claim dit ticket voor iemand anders.",
"unclaim":"Ontclaim dit ticket.",
"pin":"Pin dit ticket.",
"unpin":"Maak dit ticket los.",
"move":"Verplaats een ticket.",
"moveId":"Het id van de optie waarnaar je wilt verplaatsen.",
"rename":"Hernoem een ticket.",
"renameName":"De nieuwe naam voor dit ticket.",
"add":"Voeg een gebruiker toe aan dit ticket.",
"addUser":"De gebruiker om toe te voegen.",
"remove":"Verwijder een user van dit ticket.",
"removeUser":"De gebruiker om te verwijderen.",
"blacklist":"Beheer de ticket blacklist.",
"blacklistView":"Bekijk de huidige blacklist.",
"blacklistAdd":"Voeg een gebruiker toe aan de blacklist.",
"blacklistRemove":"Verwijder een gebruiker van de blacklist.",
"blacklistGet":"Verkrijg de details van een geblackliste gebruiker.",
"blacklistGetUser":"De gebruiker om details van te verkrijgen.",
"stats":"Bekijk statistieken van de bot, een gebruiker of ticket.",
"statsReset":"Reset alle stats van de bot (en begin terug bij nul).",
"statsGlobal":"Bekijk de globale stats.",
"statsUser":"Bekijk de stats van een gebruiker in de server.",
"statsUserUser":"De gebruiker om te bekijken.",
"statsTicket":"Bekijk de stats van een ticket in de server.",
"statsTicketTicket":"Het ticket om te bekijken.",
"clear":"Verwijder meerdere tickets tegelijkertijd.",
"clearFilter":"De filter om tickets op te ruimen.",
"clearFilters":{
"all":"Allemaal",
"open":"Open (niet gesloten)",
"close":"Gesloten",
"claim":"Geclaimd",
"unclaim":"Ontclaimd (niet geclaimd)",
"pin":"Gepind",
"unpin":"Losgemaakt (niet gepind)",
"autoclose":"Automatisch Gesloten"
},
"autoclose":"Beheer autoclose in een ticket.",
"autocloseDisable":"Schakel autoclose in dit ticket uit.",
"autocloseEnable":"Schakel autoclose in dit ticket in.",
"autocloseEnableTime":"De hoeveelheid uren dat dit ticket inactief moet zijn voor het te sluiten.",
"autodelete":"Beheer autodelete in een ticket.",
"autodeleteDisable":"Schakel autodelete in dit ticket aan.",
"autodeleteEnable":"Schakel autodelete in dit ticket aan.",
"autodeleteEnableTime":"De hoeveelheid dagen dat dit ticket inactief moet zijn voor het te verwijderen.",
"topic":"Beheer het onderwerp van een ticket kanaal.",
"topicSet":"Verander het onderwerp van een ticket kanaal.",
"topicValue":"Het nieuwe onderwerp van het kanaal.",
"topicList":"Bekijk een lijst van alle tickets met hun onderwerp en stats.",
"priority":"Beheer de prioriteit van een ticket.",
"prioritySet":"Verander de prioriteit van een ticket.",
"priorityValue":"De prioriteit van het kanaal.",
"priorityGet":"Bekijk de prioriteit van een ticket.",
"priorityList":"Bekijk een lijst van alle tickets met hun prioriteit.",
"transfer":"Draag het ticket eigendom over van de ene naar de andere gebruiker.",
"transferUser":"De user om naar over te dragen."
},
"helpMenu":{
"help":"Krijg een lijst van alle beschikbare commands.",
"ticket":"Maak een instant ticket.",
"close":"Sluit een ticket, dit schakelt schrijven in het kanaal uit.",
"delete":"Verwijder een ticket, dit maakt een transcript wanneer ingeschakeld.",
"reopen":"Heropen een ticket, dit schakeld schrijven in het kanaal terug aan.",
"pin":"Pin een ticket. Dit verplaatst het ticket naar boven & voegt een '📌' emoij toe.",
"unpin":"Maak een ticket los. Het ticket zal blijven staan, maar de '📌' emoij verliezen.",
"move":"Verplaats een ticket. Dit verandert het soort van dit ticket.",
"rename":"Hernoem een ticket. Dit zal de kanaalnaam veranderen.",
"claim":"Claim een ticket. Hiermee kan je laten weten dat je bezig bent met dit ticket.",
"unclaim":"Ontclaim een ticket. Hiermee kan je laten weten dat het ticket terug vrij is.",
"add":"Voeg een user toe aan een ticket.",
"remove":"Verwijder een user van een ticket.",
"panel":"Spawn een bericht met dropdown of knoppen.",
"blacklistView":"Bekijk een lijst van de huidige blacklist.",
"blacklistAdd":"Voeg een user toe aan de blacklist.",
"blacklistRemove":"Verwijder een user van de blacklist.",
"blacklistGet":"Verkrijg de details van een geblacklisted user.",
"statsGlobal":"Bekijk de globale stats.",
"statsTicket":"Bekijk de stats van een ticket in de server.",
"statsUser":"Bekijk de stats van een user in de server.",
"statsReset":"Reset alle stats van de bot (en begin terug vanaf 0).",
"autocloseDisable":"Zet autoclose uit in dit ticket.",
"autocloseEnable":"Zet autoclose in aan dit ticket.",
"autodeleteDisable":"Zet autodelete uit in dit ticket.",
"autodeleteEnable":"Zet autodelete aan in dit ticket.",
"categories":{
"general":"Algemene Commands",
"basicTicket":"Basis Ticket Commands",
"advancedTicket":"Geavanceerde Ticket Commands",
"userTicket":"Gebruiker Ticket Commands",
"admin":"Admin Commands",
"advanced":"Geavanceerde Commands",
"extra":"Extra Commands"
}
},
"stats":{
"scopes":{
"global":"Globale Stats",
"system":"Systeem Stats",
"user":"User Stats",
"ticket":"Ticket Stats",
"participants":"Deelnemers",
"messages":"Berichten"
},
"properties":{
"ticketsCreated":"Tickets Aangemaakt",
"ticketsClosed":"Tickets Gesloten",
"ticketsDeleted":"Tickets Verwijderd",
"ticketsReopened":"Tickets Heropend",
"ticketsAutoclosed":"Tickets Autoclosed",
"ticketsClaimed":"Tickets Geclaimd",
"ticketsPinned":"Tickets Gepind",
"ticketsMoved":"Tickets Verplaatst",
"usersBlacklisted":"Users Geblacklist",
"transcriptsCreated":"Transcripts Aangemaakt",
"ticketsAutodeleted":"Tickets Autodeleted",
"ticketsTransferred":"Tickets Overgedragen",
"ticketVolume":"Ticket Volume",
"averageTickets":"Gemiddelde Tickets/Gebruiker",
"currentTickets":"Huidige Tickets",
"age":"Ticket Leeftijd",
"responseTime":"Antwoordtijd",
"resolutionTime":"Oplostijd",
"createdOn":"Gemaakt Op",
"createdBy":"Gemaakt Door",
"closedOn":"Gesloten Op",
"closedBy":"Gesloten Door",
"claimedOn":"Geclaimed Op",
"claimedBy":"Geclaimed Door",
"pinnedOn":"Gepint Op",
"pinnedBy":"Gepint Door",
"deletedOn":"Verwijderd Op",
"deletedBy":"Verwijderd Door"
},
"roles":{
"developer":"Developer",
"serverOwner":"Server Eigenaar",
"serverAdmin":"Server Admin",
"moderator":"Moderator Team",
"support":"Support Team",
"member":"Serverlid"
}
},
"panel":{
"selectTicket":"Selecteer u ticket",
"selectRole":"Selecteer u rol",
"selectOption":"Selecteer u optie"
},
"priorities":{
"urgent":"Urgent",
"veryHigh":"Zeer Hoog",
"high":"Hoog",
"normal":"Normaal",
"low":"Laag",
"veryLow":"Zeer Laag",
"none":"Geen"
}
}
+608
View File
@@ -0,0 +1,608 @@
{
"_TRANSLATION":{
"otversion":"v4.1.3",
"translators":["DJj123dj"],
"lastedited":"16/02/2026",
"language":"English",
"automated":false
},
"checker":{
"system":{
"typeError":"[ERROR]",
"headerOpenTicket":"OPEN TICKET",
"typeWarning":"[WARNING]",
"typeInfo":"[INFO]",
"headerConfigChecker":"CONFIG CHECKER",
"headerDescription":"check for errors in your config files!",
"footerError":"the bot won't start until all {0}'s are fixed!",
"footerWarning":"it's recommended to fix all {0}'s before starting!",
"footerSupport":"SUPPORT: {0} - DOCS: {1}",
"compactInformation":"use {0} for more information!",
"dataPath":"path",
"dataDocs":"docs",
"dataMessages":"message"
},
"messages":{
"stringTooShort":"This string can't be shorter than {0} characters!",
"stringTooLong":"This string can't be longer than {0} characters!",
"stringLengthInvalid":"This string needs to be {0} characters long!",
"stringStartsWith":"This string needs to start with {0}!",
"stringEndsWith":"This string needs to end with {0}!",
"stringContains":"This string needs to contain {0}!",
"stringChoices":"This string can only be one of the following values: {0}!",
"stringRegex":"This string is invalid!",
"stringInvertedContains":"This string is not allowed to contain {0}!",
"stringLowercase":"This string must be written in lowercase only!",
"stringUppercase":"This string must be written in uppercase only!",
"stringSpecialCharacters":"This string is not allowed to contain any special characters! (a-z, 0-9 & space only)",
"stringNoSpaces":"This string is not allowed to contain spaces!",
"stringCapitalWord":"It's recommended that each word in this string starts with a capital letter!",
"stringCapitalSentence":"It looks like some sentences in this string don't start with a capital letter!",
"stringPunctuation":"It looks like the sentence in this string doesn't end with a punctuation mark!",
"numberTooShort":"This number can't be shorter than {0} characters!",
"numberTooLong":"This number can't be longer than {0} characters!",
"numberLengthInvalid":"This number needs to be {0} characters long!",
"numberTooSmall":"This number needs to be at least {0}!",
"numberTooLarge":"This number needs to be at most {0}!",
"numberNotEqual":"This number needs to be {0}!",
"numberStep":"This number needs to be a multiple of {0}!",
"numberStepOffset":"This number needs to be a multiple of {0} starting with {1}!",
"numberStartsWith":"This number needs to start with {0}!",
"numberEndsWith":"This number needs to end with {0}!",
"numberContains":"This number needs to contain {0}!",
"numberChoices":"This number can only be one of the following values: {0}!",
"numberFloat":"This number can't be a decimal!",
"numberNegative":"This number can't be negative!",
"numberPositive":"This number can't be positive!",
"numberZero":"This number can't be zero!",
"numberNan":"This number can't be NaN (Not A Number)!",
"numberInvertedContains":"This number is not allowed to contain {0}!",
"booleanTrue":"This boolean can't be true!",
"booleanFalse":"This boolean can't be false!",
"arrayEmptyDisabled":"This array isn't allowed to be empty!",
"arrayEmptyRequired":"This array is required to be empty!",
"arrayTooShort":"This array needs to have a length of at least {0}!",
"arrayTooLong":"This array needs to have a length of at most {0}!",
"arrayLengthInvalid":"This array needs to have a length of {0}!",
"arrayInvalidTypes":"This array can only contain the following types: {0}!",
"arrayDouble":"This array doesn't allow the same value twice!",
"discordInvalidId":"This is an invalid discord {0} id!",
"discordInvalidIdOptions":"This is an invalid discord {0} id! You can also use one of these: {1}!",
"discordInvalidToken":"This is an invalid discord token (syntactically)!",
"colorInvalid":"This is an invalid hex color!",
"emojiTooShort":"This string needs to have at least {0} emoji's!",
"emojiTooLong":"This string needs to have at most {0} emoji's!",
"emojiCustom":"This emoji can't be a custom discord emoji!",
"emojiInvalid":"This is an invalid emoji!",
"urlInvalid":"This url is invalid!",
"urlInvalidHttp":"This url can only use the https:// protocol!",
"urlInvalidProtocol":"This url can only use the http:// & https:// protocols!",
"urlInvalidHostname":"This url has a disallowed hostname!",
"urlInvalidExtension":"This url has an invalid extension! Choose between: {0}!",
"urlInvalidPath":"This url has an invalid path!",
"idNotUnique":"This id isn't unique, use another id instead!",
"idNonExistent":"The id {0} doesn't exist!",
"invalidType":"This property needs to be the type: {0}!",
"propertyMissing":"The property {0} is missing from this object!",
"propertyOptional":"The property {0} is optional in this object!",
"objectDisabled":"This object is disabled, enable it using {0}!",
"nullInvalid":"This property can't be null!",
"switchInvalidType":"This needs to be one of the following types: {0}!",
"objectSwitchInvalid":"This object needs to be one of the following types: {0}!",
"invalidLanguage":"This is an invalid language!",
"invalidButton":"This button needs to have at least an {0} or {1}!",
"unusedOption":"The option {0} isn't used anywhere!",
"unusedQuestion":"The question {0} isn't used anywhere!",
"dropdownOption":"A panel with dropdown enabled can only contain options of the 'ticket' type!",
"customInvalidVersion":"The version specified in your config does not match! Make sure you have updated the config to the latest version!"
}
},
"actions":{
"buttons":{
"create":"Visit Ticket",
"close":"Close Ticket",
"delete":"Delete Ticket",
"reopen":"Reopen Ticket",
"claim":"Claim Ticket",
"unclaim":"Unclaim Ticket",
"pin":"Pin Ticket",
"unpin":"Unpin Ticket",
"clear":"Delete Tickets",
"helpSwitchSlash":"View Slash Commands",
"helpSwitchText":"View Text Commands",
"helpPage":"Page {0}",
"withReason":"With Reason",
"withoutTranscript":"Without Transcript"
},
"titles":{
"created":"Ticket Created",
"close":"Ticket Closed",
"delete":"Ticket Deleted",
"reopen":"Ticket Reopened",
"claim":"Ticket Claimed",
"unclaim":"Ticket Unclaimed",
"pin":"Ticket Pinned",
"unpin":"Ticket Unpinned",
"rename":"Ticket Renamed",
"move":"Ticket Moved",
"add":"Ticket User Added",
"remove":"Ticket User Removed",
"help":"Available Commands",
"statsReset":"Reset Stats",
"blacklistAdd":"User Blacklisted",
"blacklistRemove":"User Released",
"blacklistGet":"Blacklisted User",
"blacklistView":"Current Blacklist",
"blacklistAddDm":"Added To Blacklist",
"blacklistRemoveDm":"Removed From Blacklist",
"clear":"Tickets Cleared",
"clearTickets":"Clear Tickets",
"roles":"Roles Updated",
"autoclose":"Ticket Autoclosed",
"autocloseEnabled":"Autoclose Enabled",
"autocloseDisabled":"Autoclose Disabled",
"autodelete":"Ticket Autodeleted",
"autodeleteEnabled":"Autodelete Enabled",
"autodeleteDisabled":"Autodelete Disabled",
"topicSet":"Topic Changed",
"prioritySet":"Priority Changed",
"priorityGet":"Ticket Priority",
"transfer":"Ticket Transferred"
},
"descriptions":{
"create":"Your ticket has been created. Click the button below to access it!",
"close":"The ticket has been closed successfully!",
"delete":"The ticket has been deleted successfully!",
"reopen":"The ticket has been reopened successfully!",
"claim":"The ticket has been claimed successfully!",
"unclaim":"The ticket has been unclaimed successfully!",
"pin":"The ticket has been pinned successfully!",
"unpin":"The ticket has been unpinned successfully!",
"rename":"The ticket has been renamed to {0} successfully!",
"move":"The ticket has been moved to {0} successfully!",
"add":"{0} has been added to the ticket successfully!",
"remove":"{0} has been removed from the ticket successfully!",
"helpExplanation":"`<name>` => required parameter\n`[name]` => optional parameter",
"statsReset":"The bot stats have been reset successfully!",
"statsError":"Unable to view ticket stats!\n{0} is not a ticket!",
"blacklistAdd":"{0} has been blacklisted successfully!",
"blacklistRemove":"{0} has been released successfully!",
"blacklistGetSuccess":"{0} is currently blacklisted!",
"blacklistGetEmpty":"{0} is currently not blacklisted!",
"blacklistViewEmpty":"No-one has been blacklisted yet!",
"blacklistViewTip":"Use \"/blacklist add\" to blacklist a user!",
"clearVerify":"Are you sure you want to delete multiple tickets?\nThis action can't be undone!",
"clearReady":"{0} tickets have been deleted successfully!",
"rolesEmpty":"No roles have been updated!",
"autocloseLeave":"This ticket has been autoclosed because the creator left the server!",
"autocloseTimeout":"This ticket has been autoclosed because it has been inactive for more than `{0}h`!",
"autodeleteLeave":"This ticket has been autodeleted because the creator left the server!",
"autodeleteTimeout":"This ticket has been autodeleted because it has been inactive for more than `{0} days`!",
"autocloseEnabled":"Autoclose has been enabled in this ticket!\nIt will be closed when it is inactive for more than `{0}h`!",
"autocloseDisabled":"Autoclose has been disabled in this ticket!\nIt won't be closed automatically anymore!",
"autodeleteEnabled":"Autodelete has been enabled in this ticket!\nIt will be deleted when it is inactive for more than `{0} days`!",
"autodeleteDisabled":"Autodelete has been disabled in this ticket!\nIt won't be deleted automatically anymore!",
"ticketMessageLimit":"You can only create {0} ticket(s) at the same time!",
"ticketMessageAutoclose":"This ticket will be autoclosed when inactive for {0}h!",
"ticketMessageAutodelete":"This ticket will be autodeleted when inactive for {0} days!",
"panelReady":"The panel is available in the followup message!\nThis message can now be deleted!",
"topicSet":"The channel topic has been changed by {0} successfully!",
"prioritySet":"The ticket priority has been changed to {0} by {1} successfully!",
"priorityGet":"The current priority of this ticket is {0}.",
"transfer":"The ticket ownership has been transferred from {0} to {1} by {2} successfully!"
},
"modal":{
"closePlaceholder":"Why did you close this ticket?",
"deletePlaceholder":"Why did you delete this ticket?",
"reopenPlaceholder":"Why did you reopen this ticket?",
"claimPlaceholder":"Why did you claim this ticket?",
"unclaimPlaceholder":"Why did you unclaim this ticket?",
"pinPlaceholder":"Why did you pin this ticket?",
"unpinPlaceholder":"Why did you unpin this ticket?"
},
"logs":{
"createLog":"A new ticket got created by {0}!",
"closeLog":"This ticket has been closed by {0}!",
"closeDm":"Your ticket has been closed in our server!",
"deleteLog":"This ticket has been deleted by {0}!",
"deleteDm":"Your ticket has been deleted in our server!",
"reopenLog":"This ticket has been reopened by {0}!",
"reopenDm":"Your ticket has been reopened in our server!",
"claimLog":"This ticket has been claimed by {0}!",
"claimDm":"Your ticket has been claimed in our server!",
"unclaimLog":"This ticket has been unclaimed by {0}!",
"unclaimDm":"Your ticket has been unclaimed in our server!",
"pinLog":"This ticket has been pinned by {0}!",
"pinDm":"Your ticket has been pinned in our server!",
"unpinLog":"This ticket has been unpinned by {0}!",
"unpinDm":"Your ticket has been unpinned in our server!",
"renameLog":"This ticket has been renamed to {0} by {1}!",
"renameDm":"Your ticket has been renamed to {0} in our server!",
"moveLog":"This ticket has been moved to {0} by {1}!",
"moveDm":"Your ticket has been moved to {0} in our server!",
"addLog":"{0} has been added to this ticket by {1}!",
"addDm":"{0} has been added to your ticket in our server!",
"removeLog":"{0} has been removed from this ticket by {1}!",
"removeDm":"{0} has been removed from your ticket in our server!",
"blacklistAddLog":"{0} was blacklisted by {1}!",
"blacklistRemoveLog":"{0} was removed from the blacklist by {1}!",
"blacklistAddDm":"You have been blacklisted in our server!\nFrom now on, you are unable to create a ticket!",
"blacklistRemoveDm":"You have been removed from the blacklist in our server!\nNow you can create tickets again!",
"clearLog":"{0} tickets have been deleted by {1}!",
"transferLog":"The ownership of this ticket has been transferred from {0} to {1} by {2}!",
"transferDm":"The ownership of your ticket has been transferred from {0} to {1} in our server!",
"prioritySetLog":"The priority of this ticket has been changed to {0} by {1}!",
"prioritySetDm":"The priority of your ticket has been changed to {0} in our server!",
"roleUpdateLog":"{0} has updated their roles!",
"roleUpdateDm":"Your roles in our server have been updated!"
}
},
"transcripts":{
"success":{
"visit":"Visit Transcript",
"ready":"Transcript Created",
"textFileDescription":"This is the text transcript of a deleted ticket!",
"htmlProgress":"Please wait while this html transcript is getting processed...",
"createdChannel":"A new {0} transcript has been created in the server!",
"createdCreator":"A new {0} transcript has been created for one of your tickets!",
"createdParticipant":"A new {0} transcript has been created in one of the tickets you participated in!",
"createdActiveAdmin":"A new {0} transcript has been created in one of the tickets you participated as admin!",
"createdEveryAdmin":"A new {0} transcript has been created in one of the tickets you were admin in!",
"createdOther":"A new {0} transcript has been created!"
},
"errors":{
"retry":"Retry",
"continue":"Delete Without Transcript",
"backup":"Create Backup Transcript",
"error":"Something went wrong while trying to create the transcript.\nWhat would you like to do?\n\nThis ticket won't be deleted until you click one of these buttons.",
"title":"Transcript Error"
},
"text":{
"messagesTitle":"MESSAGES",
"embedTitle":"EMBED",
"fileTitle":"FILE",
"fieldsTitle":"FIELDS",
"reactionsTitle":"REACTIONS",
"statsTitle":"STATS",
"emptyContent":"<content is empty>",
"noTitle":"<no-title>",
"noDesc":"<no-description>"
}
},
"errors":{
"titles":{
"internalError":"Internal Error",
"optionMissing":"Command Option Missing",
"optionInvalid":"Command Option Invalid",
"unknownCommand":"Unknown Command",
"noPermissions":"No Permissions",
"unknownTicket":"Unknown Ticket",
"deprecatedTicket":"Deprecated Ticket",
"unknownOption":"Unknown Option",
"unknownPanel":"Unknown Panel",
"notInGuild":"Not In Server",
"channelRename":"Unable To Rename Channel",
"busy":"Ticket Is Busy",
"permissionError":"Permission Error"
},
"descriptions":{
"askForInfo":"Contact the owner of this bot for more info!",
"askForInfoResolve":"Contact the bot owner of this bot if this issue doesn't resolve after a few tries.",
"internalError":"Failed to respond to this {0} due to an internal error!",
"optionMissing":"A required parameter is missing in this command!",
"optionInvalid":"A parameter in this command is invalid!",
"optionInvalidChoose":"Choose between",
"unknownCommand":"Try visiting the help menu for more info!",
"noPermissions":"You are not allowed to use this {0}!",
"noPermissionsList":"Required Permissions: (one of them)",
"noPermissionsCooldown":"You are not allowed to use this {0} because you have a cooldown!",
"noPermissionsBlacklist":"You are not allowed to use this {0} because you have been blacklisted!",
"noPermissionsLimitGlobal":"You are not allowed to create a ticket because the server reached the max tickets limit!",
"noPermissionsLimitGlobalUser":"You are not allowed to create a ticket because you reached the max tickets limit!",
"noPermissionsLimitOption":"You are not allowed to create a ticket because the server reached the max tickets limit for this option!",
"noPermissionsLimitOptionUser":"You are not allowed to create a ticket because you reached the max tickets limit for this option!",
"unknownTicket":"Try this command again in a valid ticket!",
"deprecatedTicket":"The current channel is not a valid ticket! It might have been a ticket from an old Open Ticket version!",
"notInGuild":"This {0} doesn't work in DM! Please try it again in a server!",
"channelRename":"Due to discord ratelimits, it's currently impossible for the bot to rename the channel. The channel will automatically be renamed over 10 minutes if the bot isn't rebooted.",
"channelRenameSource":"The source of this error is: {0}",
"busy":"Unable to use this {0}!\nThe ticket is currently being processed by the bot.\n\nPlease try again in a few seconds!",
"closeBeforeMessage":"This ticket cannot be closed/deleted before a message has been sent by a user.",
"closeBeforeAdminMessage":"This ticket cannot be closed/deleted before a message has been sent by a ticket admin or support member.",
"unableToCreateTicket":"You are unable to create a ticket."
},
"optionInvalidReasons":{
"stringRegex":"Value doesn't match pattern!",
"stringMinLength":"Value needs to be at least {0} characters!",
"stringMaxLength":"Value needs to be at most {0} characters!",
"numberInvalid":"Invalid number!",
"numberMin":"Number needs to be at least {0}!",
"numberMax":"Number needs to be at most {0}!",
"numberDecimal":"Number is not allowed to be a decimal!",
"numberNegative":"Number is not allowed to be negative!",
"numberPositive":"Number is not allowed to be positive!",
"numberZero":"Number is not allowed to be zero!",
"channelNotFound":"Unable to find channel!",
"userNotFound":"Unable to find user!",
"roleNotFound":"Unable to find role!",
"memberNotFound":"Unable to find user!",
"mentionableNotFound":"Unable to find user or role!",
"channelType":"Invalid channel type!",
"notInGuild":"This option requires you to be in a server!"
},
"permissions":{
"developer":"You need to be the developer of the bot.",
"owner":"You need to be the server owner.",
"admin":"You need to be a server admin.",
"moderator":"You need to be a moderator.",
"support":"You need to be in the support team.",
"member":"You need to be a member.",
"discord-administrator":"You need to have the `ADMINISTRATOR` permission."
},
"actionInvalid":{
"close":"Ticket is already closed!",
"reopen":"Ticket is not closed yet!",
"claim":"Ticket is already claimed!",
"unclaim":"Ticket is not claimed yet!",
"pin":"Ticket is already pinned!",
"unpin":"Ticket is not pinned yet!",
"add":"This user is already able to access the ticket!",
"remove":"Unable to remove this user from the ticket!"
}
},
"params":{
"uppercase":{
"ticket":"Ticket",
"tickets":"Tickets",
"reason":"Reason",
"creator":"Creator",
"remaining":"Time Remaining",
"added":"Added",
"removed":"Removed",
"filter":"Filter",
"method":"Method",
"type":"Type",
"blacklisted":"Blacklisted",
"panel":"Panel",
"command":"Command",
"system":"System",
"true":"True",
"false":"False",
"syntax":"Syntax",
"originalName":"Original Name",
"newName":"New Name",
"until":"Until",
"validOptions":"Valid Options",
"validPanels":"Valid Panels",
"autoclose":"Autoclose",
"autodelete":"Autodelete",
"startupDate":"Startup Date",
"version":"Version",
"name":"Name",
"role":"Role",
"status":"Status",
"claimed":"Claimed",
"pinned":"Pinned",
"creationDate":"Creation Date",
"noone":"No-One",
"open":"Open",
"closed":"Closed",
"priority":"Priority",
"participants":"Participants",
"yes":"Yes",
"no":"No",
"option":"Option",
"topic":"Topic",
"uptime":"System Uptime",
"messages":"Messages",
"embeds":"Embeds",
"files":"Files",
"components":"Components",
"cooldown":"Cooldown",
"maxTickets":"Max Tickets",
"admins":"Admins",
"roles":"Roles",
"size":"Size"
},
"lowercase":{
"text":"text",
"html":"html",
"command":"command",
"modal":"modal",
"button":"button",
"dropdown":"dropdown",
"method":"method"
}
},
"commands":{
"reason":"Specify an optional reason that will be visible in logs.",
"help":"Get a list of all the available commands.",
"panel":"Spawn a message with a dropdown or buttons (for ticket creation).",
"panelId":"The identifier of the panel that you want to spawn.",
"panelAutoUpdate":"Do you want this panel to automatically update when edited?",
"ticket":"Instantly create a ticket.",
"ticketId":"The identifier of the ticket that you want to create.",
"close":"Close a ticket.",
"delete":"Delete a ticket.",
"deleteNoTranscript":"Delete this ticket without creating a transcript.",
"reopen":"Reopen a ticket.",
"claim":"Claim a ticket.",
"claimUser":"Claim this ticket to someone else instead of yourself.",
"unclaim":"Unclaim a ticket.",
"pin":"Pin a ticket.",
"unpin":"Unpin a ticket.",
"move":"Move a ticket.",
"moveId":"The identifier of the option that you want to move to.",
"rename":"Rename a ticket.",
"renameName":"The new name for this ticket.",
"add":"Add a user to a ticket.",
"addUser":"The user to add.",
"remove":"Remove a user from a ticket.",
"removeUser":"The user to remove.",
"blacklist":"Manage the ticket blacklist.",
"blacklistView":"View a list of the current blacklist.",
"blacklistAdd":"Add a user to the blacklist.",
"blacklistRemove":"Remove a user from the blacklist.",
"blacklistGet":"Get the details from a blacklisted user.",
"blacklistGetUser":"The user to get details from.",
"stats":"View statistics from the bot, a member or a ticket.",
"statsReset":"Reset all the stats of the bot (and start counting from zero).",
"statsGlobal":"View the global stats.",
"statsUser":"View the stats from a user in the server.",
"statsUserUser":"The user to view.",
"statsTicket":"View the stats of a ticket in the server.",
"statsTicketTicket":"The ticket to view.",
"clear":"Delete multiple tickets at the same time.",
"clearFilter":"The filter for clearing tickets.",
"clearFilters":{
"all":"All",
"open":"Open",
"close":"Closed",
"claim":"Claimed",
"unclaim":"Unclaimed",
"pin":"Pinned",
"unpin":"Unpinned",
"autoclose":"Autoclosed"
},
"autoclose":"Manage autoclose in a ticket.",
"autocloseDisable":"Disable autoclose in this ticket.",
"autocloseEnable":"Enable autoclose in this ticket.",
"autocloseEnableTime":"The amount of hours this ticket needs to be inactive to close it.",
"autodelete":"Manage autodelete in a ticket.",
"autodeleteDisable":"Disable autodelete in this ticket.",
"autodeleteEnable":"Enable autodelete in this ticket.",
"autodeleteEnableTime":"The amount of days this ticket needs to be inactive to delete it.",
"topic":"Manage the topic of the ticket channel.",
"topicSet":"Set the topic of the ticket channel.",
"topicValue":"The new topic of the channel.",
"topicList":"Get a list of all tickets with their topic and stats.",
"priority":"Manage the priority of the ticket.",
"prioritySet":"Set the priority of the ticket.",
"priorityValue":"The priority of the channel.",
"priorityGet":"Get the priority of the ticket.",
"priorityList":"Get a list of all tickets with their priority status.",
"transfer":"Transfer the ticket ownership from one user to another.",
"transferUser":"The user to transfer to."
},
"helpMenu":{
"help":"Get a list of all the available commands.",
"ticket":"Instantly create a ticket.",
"close":"Close a ticket, this disables writing in this channel.",
"delete":"Delete a ticket, this creates a transcript when enabled.",
"reopen":"Reopen a ticket, this enables writing in this channel again.",
"pin":"Pin a ticket. This will move the ticket to the top and will add a '📌' emoij to the name.",
"unpin":"Unpin a ticket. The ticket will stay on it's position but will lose the '📌' emoij.",
"move":"Move a ticket. This will change the type of this ticket.",
"rename":"Rename a ticket. This will change the channel name of this ticket.",
"claim":"Claim a ticket. With this, you can let your team know you are handling this ticket.",
"unclaim":"Unclaim a ticket. With this, you can let your team know that this ticket is free again.",
"add":"Add a user to a ticket. This will allow the user to read & write in this ticket.",
"remove":"Remove a user from a ticket. This will remove the ability to read & write for a user in this ticket.",
"panel":"Spawn a message with a dropdown or buttons (for ticket creation).",
"blacklistView":"View a list of the current blacklist.",
"blacklistAdd":"Add a user to the blacklist.",
"blacklistRemove":"Remove a user from the blacklist.",
"blacklistGet":"Get the details from a blacklisted user.",
"statsGlobal":"View the global stats.",
"statsTicket":"View the stats of a ticket in the server.",
"statsUser":"View the stats from a user in the server.",
"statsReset":"Reset all the stats of the bot (and start counting from zero).",
"autocloseDisable":"Disable autoclose in this ticket.",
"autocloseEnable":"Enable autoclose in this ticket.",
"autodeleteDisable":"Disable autodelete in this ticket.",
"autodeleteEnable":"Enable autodelete in this ticket.",
"categories":{
"general":"General Commands",
"basicTicket":"Basic Ticket Commands",
"advancedTicket":"Advanced Ticket Commands",
"userTicket":"User Ticket Commands",
"admin":"Admin Commands",
"advanced":"Advanced Commands",
"extra":"Extra Commands"
}
},
"stats":{
"scopes":{
"global":"Global Stats",
"system":"System Stats",
"user":"User Stats",
"ticket":"Ticket Stats",
"participants":"Participants",
"messages":"Messages"
},
"properties":{
"ticketsCreated":"Tickets Created",
"ticketsClosed":"Tickets Closed",
"ticketsDeleted":"Tickets Deleted",
"ticketsReopened":"Tickets Reopened",
"ticketsAutoclosed":"Tickets Autoclosed",
"ticketsClaimed":"Tickets Claimed",
"ticketsPinned":"Tickets Pinned",
"ticketsMoved":"Tickets Moved",
"usersBlacklisted":"Users Blacklisted",
"transcriptsCreated":"Transcripts Created",
"ticketsAutodeleted":"Tickets Autodeleted",
"ticketsTransferred":"Tickets Transferred",
"ticketVolume":"Ticket Volume",
"averageTickets":"Average Tickets/User",
"currentTickets":"Current Tickets",
"age":"Ticket Age",
"responseTime":"Response Time",
"resolutionTime":"Resolution Time",
"createdOn":"Created On",
"createdBy":"Created By",
"closedOn":"Closed On",
"closedBy":"Closed By",
"claimedOn":"Claimed On",
"claimedBy":"Claimed By",
"pinnedOn":"Pinned On",
"pinnedBy":"Pinned By",
"deletedOn":"Deleted On",
"deletedBy":"Deleted By"
},
"roles":{
"developer":"Developer",
"serverOwner":"Server Owner",
"serverAdmin":"Server Admin",
"moderator":"Moderator Team",
"support":"Support Team",
"member":"Member"
}
},
"panel":{
"selectTicket":"Select your ticket",
"selectRole":"Select your role",
"selectOption":"Select your option"
},
"priorities":{
"urgent":"Urgent",
"veryHigh":"Very High",
"high":"High",
"normal":"Normal",
"low":"Low",
"veryLow":"Very Low",
"none":"None"
}
}
+608
View File
@@ -0,0 +1,608 @@
{
"_TRANSLATION":{
"otversion":"v4.1.3",
"translators":["iamnotmega","ChatGPT"],
"lastedited":"16/02/2026",
"language":"Estonian",
"automated":true
},
"checker":{
"system":{
"typeError":"[VIGA]",
"headerOpenTicket":"AVATUD PILET",
"typeWarning":"[HOIATUS]",
"typeInfo":"[INFO]",
"headerConfigChecker":"KONFIGURATSIOONI KONTROLLIJA",
"headerDescription":"kontrollige konfiguratsioonifailides vigu!",
"footerError":"robot ei käivitu enne, kui kõik {0} on parandatud!",
"footerWarning":"enne alustamist on soovitatav kõik {0} parandada!",
"footerSupport":"TUGI: {0} – DOKUMENTATSIOON: {1}",
"compactInformation":"lisateabe saamiseks kasutage {0}!",
"dataPath":"tee",
"dataDocs":"dokumentatsioon",
"dataMessages":"message"
},
"messages":{
"stringTooShort":"See string ei tohi olla lühem kui {0} tähemärki!",
"stringTooLong":"See string ei tohi olla pikem kui {0} tähemärki!",
"stringLengthInvalid":"See string peab olema {0} tähemärki pikk!",
"stringStartsWith":"See string peab algama tähega {0}!",
"stringEndsWith":"See string peab lõppema tähega {0}!",
"stringContains":"See string peab sisaldama {0}!",
"stringChoices":"See string võib olla ainult üks järgmistest väärtustest: {0}!",
"stringRegex":"See string on kehtetu!",
"stringInvertedContains":"See string ei tohi sisaldada {0}!",
"stringLowercase":"See string peab olema kirjutatud ainult väikeste tähtedega!",
"stringUppercase":"See string peab olema kirjutatud ainult suurte tähtedega!",
"stringSpecialCharacters":"See string ei tohi sisaldada erimärke! (ainult a-z, 0-9 ja tühik)",
"stringNoSpaces":"See string ei tohi sisaldada tühikuid!",
"stringCapitalWord":"Soovitatav on, et iga sõna selles stringis algaks suure tähega!",
"stringCapitalSentence":"Tundub, et mõned laused selles stringis ei alga suure tähega!",
"stringPunctuation":"Tundub, et lause selles stringis ei lõpe kirjavahemärgiga!",
"numberTooShort":"See number ei tohi olla lühem kui {0} tähemärki!",
"numberTooLong":"See number ei tohi olla pikem kui {0} tähemärki!",
"numberLengthInvalid":"See number peab olema {0} tähemärki pikk!",
"numberTooSmall":"See number peab olema vähemalt {0}!",
"numberTooLarge":"See arv peab olema kuni {0}!",
"numberNotEqual":"See number peab olema {0}!",
"numberStep":"See arv peab olema arvu {0} kordne!",
"numberStepOffset":"See arv peab olema arvu {0} kordne, mis algab numbriga {1}!",
"numberStartsWith":"See number peab algama tähega {0}!",
"numberEndsWith":"See number peab lõppema numbriga {0}!",
"numberContains":"See number peab sisaldama {0}!",
"numberChoices":"See arv võib olla ainult üks järgmistest väärtustest: {0}!",
"numberFloat":"See arv ei tohi olla kümnendkoht!",
"numberNegative":"See arv ei saa olla negatiivne!",
"numberPositive":"See arv ei saa olla positiivne!",
"numberZero":"See arv ei saa olla null!",
"numberNan":"See number ei tohi olla NaN (mitte number)!",
"numberInvertedContains":"See number ei tohi sisaldada {0}!",
"booleanTrue":"See tõeväärtus ei saa olla tõsi!",
"booleanFalse":"See tõeväärtus ei saa olla vale!",
"arrayEmptyDisabled":"See massiiv ei tohi olla tühi!",
"arrayEmptyRequired":"See massiiv peab olema tühi!",
"arrayTooShort":"Selle massiivi pikkus peab olema vähemalt {0}!",
"arrayTooLong":"Selle massiivi pikkus peab olema maksimaalselt {0}!",
"arrayLengthInvalid":"Selle massiivi pikkus peab olema {0}!",
"arrayInvalidTypes":"See massiiv võib sisaldada ainult järgmisi tüüpe: {0}!",
"arrayDouble":"See massiiv ei luba sama väärtust kaks korda kasutada!",
"discordInvalidId":"See on kehtetu Discordi {0} ID!",
"discordInvalidIdOptions":"See on kehtetu Discordi {0} ID! Võite kasutada ka ühte järgmistest: {1}!",
"discordInvalidToken":"See on kehtetu Discordi tooken (süntaktiliselt)!",
"colorInvalid":"See on sobimatu kuusnurkne värv!",
"emojiTooShort":"Sellel stringil peab olema vähemalt {0} emotikonit!",
"emojiTooLong":"Selles stringis peab olema kuni {0} emotikonit!",
"emojiCustom":"See emotikon ei saa olla kohandatud emotikon!",
"emojiInvalid":"See on sobimatu emotikon!",
"urlInvalid":"See URL on kehtetu!",
"urlInvalidHttp":"See URL saab kasutada ainult https:// protokolli!",
"urlInvalidProtocol":"See URL saab kasutada ainult http:// ja https:// protokolle!",
"urlInvalidHostname":"Sellel URL-il on keelatud hostinimi!",
"urlInvalidExtension":"Sellel URL-il on sobimatu laiend! Valige järgmiste hulgast: {0}!",
"urlInvalidPath":"Sellel URL-il on vale tee!",
"idNotUnique":"See ID ei ole kordumatu, kasutage selle asemel teist ID-d!",
"idNonExistent":"ID-d {0} pole olemas!",
"invalidType":"Selle atribuudi tüüp peab olema: {0}!",
"propertyMissing":"Sellel objektil puudub atribuut {0}!",
"propertyOptional":"Atribuut {0} on selles objektis valikuline!",
"objectDisabled":"See objekt on keelatud, lubage see, kasutades {0}!",
"nullInvalid":"See vara ei saa olla tühi!",
"switchInvalidType":"See peab olema üks järgmistest tüüpidest: {0}!",
"objectSwitchInvalid":"See objekt peab olema ühte järgmistest tüüpidest: {0}!",
"invalidLanguage":"See on sobimatu keel!",
"invalidButton":"Sellel nupul peab olema vähemalt {0} või {1}!",
"unusedOption":"Valik {0} ei ole kusagil kasutusel!",
"unusedQuestion":"Küsimust {0} ei kasutata kuskil!",
"dropdownOption":"Lubatud rippmenüüga paneel võib sisaldada ainult \"pileti\" tüüpi valikuid!",
"customInvalidVersion":"Teie konfiguratsioonis määratud versioon ei ühti! Veenduge, et olete konfiguratsiooni uuendanud uusimale versioonile!"
}
},
"actions":{
"buttons":{
"create":"Külastage Piletit",
"close":"Sulge pilet",
"delete":"Kustuta pilet",
"reopen":"Ava pilet uuesti",
"claim":"Nõudke pilet",
"unclaim":"Tühista pilet",
"pin":"Kinnita pilet",
"unpin":"Vabastage pilet",
"clear":"Kustuta piletid",
"helpSwitchSlash":"Vaadake kaldkriipsu käske",
"helpSwitchText":"Vaadake tekstikäske",
"helpPage":"Leht {0}",
"withReason":"Põhjusega",
"withoutTranscript":"Ilma ärakirjata"
},
"titles":{
"created":"Pilet loodud",
"close":"Pilet suletud",
"delete":"Pilet kustutatud",
"reopen":"Pilet taasavatud",
"claim":"Pilet nõutud",
"unclaim":"Pilet tühistatud",
"pin":"Pilet kinnitatud",
"unpin":"Pilet vabastatud",
"rename":"Pilet nimetati ümber",
"move":"Pilet teisaldatud",
"add":"Pileti kasutaja lisatud",
"remove":"Pileti kasutaja eemaldatud",
"help":"Saadaolevad käsud",
"statsReset":"Lähtestage statistika",
"blacklistAdd":"Kasutaja on mustas nimekirjas",
"blacklistRemove":"Kasutaja vabastatud",
"blacklistGet":"Musta nimekirja kantud kasutaja",
"blacklistView":"Praegune must nimekiri",
"blacklistAddDm":"Lisatud musta nimekirja",
"blacklistRemoveDm":"Eemaldatud mustast nimekirjast",
"clear":"Piletid kustutatud",
"clearTickets":"Kustuta Piletid",
"roles":"Rollid uuendatud",
"autoclose":"Pilet automaatselt suletud",
"autocloseEnabled":"Automaatne sulgemine lubatud",
"autocloseDisabled":"Automaatne sulgemine keelatud",
"autodelete":"Pilet on automaatselt kustutatud",
"autodeleteEnabled":"Automaatne kustutamine lubatud",
"autodeleteDisabled":"Automaatne kustutamine keelatud",
"topicSet":"Teema Muudetud",
"prioritySet":"Prioriteet Muudetud",
"priorityGet":"Pileti Prioriteet",
"transfer":"Pilet Üle Antud"
},
"descriptions":{
"create":"Teie pilet on loodud. Sellele juurdepääsuks klõpsake alloleval nupul!",
"close":"Pilet on edukalt suletud!",
"delete":"Pilet on edukalt kustutatud!",
"reopen":"Pilet on edukalt taasavatud!",
"claim":"Pilet on edukalt vastu võetud!",
"unclaim":"Pilet on edukalt tühistatud!",
"pin":"Pilet on edukalt kinnitatud!",
"unpin":"Pilet on edukalt vabastatud!",
"rename":"Pilet on edukalt ümber nimetatud nimeks {0}!",
"move":"Pilet teisaldati asukohta {0} edukalt!",
"add":"{0} lisati piletile edukalt!",
"remove":"{0} eemaldati piletist edukalt!",
"helpExplanation":"`<nimi>` => nõutav parameeter\n`[nimi]` => valikuline parameeter",
"statsReset":"Boti statistika on edukalt lähtestatud!",
"statsError":"Piletistatistikat ei saa vaadata!\n{0} ei ole pilet!",
"blacklistAdd":"{0} on edukalt musta nimekirja kantud!",
"blacklistRemove":"{0} vabastati edukalt!",
"blacklistGetSuccess":"{0} on praegu mustas nimekirjas!",
"blacklistGetEmpty":"{0} ei ole praegu mustas nimekirjas!",
"blacklistViewEmpty":"Keegi pole veel musta nimekirja kantud!",
"blacklistViewTip":"Kasutage \"/blacklist add\" kasutaja musta nimekirja lisamiseks!",
"clearVerify":"Kas soovite kindlasti mitu piletit kustutada?\nSeda toimingut ei saa tagasi võtta!",
"clearReady":"{0} piletit on edukalt kustutatud!",
"rolesEmpty":"Ühtegi rolli pole värskendatud!",
"autocloseLeave":"See pilet on automaatselt suletud, kuna looja lahkus serverist!",
"autocloseTimeout":"See pilet on automaatselt suletud, kuna see on olnud passiivne rohkem kui `{0}h`!",
"autodeleteLeave":"See pilet on automaatselt kustutatud, kuna looja lahkus serverist!",
"autodeleteTimeout":"See pilet on automaatselt kustutatud, kuna see on olnud passiivne rohkem kui `{0} päeva`!",
"autocloseEnabled":"Sellel piletil on automaatne sulgemine lubatud!\nSee suletakse, kui see on passiivne rohkem kui `{0}h`!",
"autocloseDisabled":"Automaatne sulgemine on sellel piletil keelatud!\nSeda ei suleta enam automaatselt!",
"autodeleteEnabled":"Sellel piletil on automaatne kustutamine lubatud!\nSee kustutatakse, kui see on passiivne rohkem kui `{0} päeva`!",
"autodeleteDisabled":"Automaatne kustutamine on sellel piletil keelatud!\nSeda ei kustutata enam automaatselt!",
"ticketMessageLimit":"Saate korraga luua ainult {0} piletit!",
"ticketMessageAutoclose":"See pilet suletakse automaatselt, kui see on {0} tundi passiivne!",
"ticketMessageAutodelete":"See pilet kustutatakse automaatselt, kui see on {0} päeva passiivne!",
"panelReady":"Paneel on saadaval järelteates!\nSelle sõnumi võib nüüd kustutada!",
"topicSet":"Kanaliteema on edukalt muudetud kasutaja {0} poolt!",
"prioritySet":"Pileti prioriteet on edukalt muudetud väärtuseks {0} kasutaja {1} poolt!",
"priorityGet":"Selle pileti praegune prioriteet on {0}.",
"transfer":"Pileti omand on edukalt üle antud kasutajalt {0} kasutajale {1} kasutaja {2} poolt!"
},
"modal":{
"closePlaceholder":"Miks sa selle pileti kinni panid?",
"deletePlaceholder":"Miks sa selle pileti kustutasid?",
"reopenPlaceholder":"Miks te selle pileti uuesti avasite?",
"claimPlaceholder":"Miks sa selle pileti välja nõudsid?",
"unclaimPlaceholder":"Miks te selle pileti tühistasite?",
"pinPlaceholder":"Miks sa selle pileti kinni panid?",
"unpinPlaceholder":"Miks sa selle pileti lahti kinnitasid?"
},
"logs":{
"createLog":"{0} lõi uue pileti!",
"closeLog":"Selle pileti sulges {0}!",
"closeDm":"Teie pilet on meie serveris suletud!",
"deleteLog":"{0} on selle pileti kustutanud!",
"deleteDm":"Teie pilet on meie serverist kustutatud!",
"reopenLog":"{0} on selle pileti uuesti avanud!",
"reopenDm":"Teie pilet on meie serveris uuesti avatud!",
"claimLog":"Selle pileti on nõudnud {0}!",
"claimDm":"Teie pilet on meie serveris välja nõutud!",
"unclaimLog":"{0} on selle pileti tagasi võtnud!",
"unclaimDm":"Teie pilet on meie serveris välja võtmata!",
"pinLog":"Selle pileti on kinnitanud {0}!",
"pinDm":"Teie pilet on kinnitatud meie serverisse!",
"unpinLog":"{0} on selle pileti vabastanud!",
"unpinDm":"Teie pilet on meie serveris vabastatud!",
"renameLog":"{1} on selle pileti ümber nimetanud piletiks {0}!",
"renameDm":"Teie pilet on meie serveris ümber nimetatud {0}-ks!",
"moveLog":"{1} on selle pileti teisaldanud asukohta {0}!",
"moveDm":"Teie pilet on teisaldatud meie serverisse {0}!",
"addLog":"{1} on sellele piletile lisanud {0}!",
"addDm":"{0} lisati teie piletile meie serveris!",
"removeLog":"Kasutaja {1} eemaldas sellelt piletilt {0}!",
"removeDm":"{0} on teie piletist meie serveris eemaldatud!",
"blacklistAddLog":"{1} lisas kasutaja {0} musta nimekirja!",
"blacklistRemoveLog":"Kasutaja {1} eemaldas kasutaja {0} mustast nimekirjast!",
"blacklistAddDm":"Olete meie serveris mustas nimekirjas!\nNüüdsest ei saa te piletit luua!",
"blacklistRemoveDm":"Teid on meie serveri mustast nimekirjast eemaldatud!\nNüüd saate uuesti pileteid luua!",
"clearLog":"{1} on kustutanud {0} piletit!",
"transferLog":"Selle pileti omand on üle antud kasutajalt {0} kasutajale {1} kasutaja {2} poolt!",
"transferDm":"Teie pileti omand on üle antud kasutajalt {0} kasutajale {1} meie serveris!",
"prioritySetLog":"Selle pileti prioriteet on muudetud väärtuseks {0} kasutaja {1} poolt!",
"prioritySetDm":"Teie pileti prioriteet on muudetud väärtuseks {0} meie serveris!",
"roleUpdateLog":"{0} uuendas oma rolle!",
"roleUpdateDm":"Teie rolle meie serveris on uuendatud!"
}
},
"transcripts":{
"success":{
"visit":"Külastage Transkriptsiooni",
"ready":"Transkriptsioon loodud",
"textFileDescription":"See on kustutatud pileti teksti ärakiri!",
"htmlProgress":"Palun oodake, kuni seda html-i ärakirja töödeldakse...",
"createdChannel":"Serveris on loodud uus {0} ärakiri!",
"createdCreator":"Ühe teie pileti jaoks on loodud uus {0} ärakiri!",
"createdParticipant":"Ühes teie osalenud piletis on loodud uus {0} ärakiri!",
"createdActiveAdmin":"Ühes piletis, milles osalesite administraatorina, on loodud uus {0} ärakiri!",
"createdEveryAdmin":"Ühes piletis, mille administraator olite, on loodud uus {0} ärakiri!",
"createdOther":"Uus {0} ärakiri on loodud!"
},
"errors":{
"retry":"Proovi uuesti",
"continue":"Kustuta ilma ärakirjata",
"backup":"Loo varukoopia ärakirjast",
"error":"Midagi läks ärakirja loomisel valesti.\nMida sa teha tahaksid?\n\nSeda piletit ei kustutata enne, kui klõpsate ühel neist nuppudest.",
"title":"Transkriptsiooniviga"
},
"text":{
"messagesTitle":"SÕNUMID",
"embedTitle":"EMBED",
"fileTitle":"FAIL",
"fieldsTitle":"VÄLJAD",
"reactionsTitle":"REAKTSIOONID",
"statsTitle":"STATISTIKA",
"emptyContent":"<sisu on tühi>",
"noTitle":"<pealkiri puudub>",
"noDesc":"<kirjeldus puudub>"
}
},
"errors":{
"titles":{
"internalError":"Sisemine viga",
"optionMissing":"Käsuvalik puudub",
"optionInvalid":"Käsuvalik on kehtetu",
"unknownCommand":"Tundmatu käsk",
"noPermissions":"Lubasid pole",
"unknownTicket":"Tundmatu pilet",
"deprecatedTicket":"Aegunud pilet",
"unknownOption":"Tundmatu valik",
"unknownPanel":"Tundmatu paneel",
"notInGuild":"Pole serveris",
"channelRename":"Kanalit ei saa ümber nimetada",
"busy":"Pilet on kinni",
"permissionError":"Õiguste Viga"
},
"descriptions":{
"askForInfo":"Lisateabe saamiseks võtke ühendust selle roboti omanikuga!",
"askForInfoResolve":"Kui probleem mõne katsega ei lahene, võtke ühendust selle roboti omanikuga.",
"internalError":"Sellele {0}-le vastamine ebaõnnestus sisemise vea tõttu!",
"optionMissing":"Selles käsus puudub nõutav parameeter!",
"optionInvalid":"Selle käsu parameeter on kehtetu!",
"optionInvalidChoose":"Valige vahel",
"unknownCommand":"Lisateabe saamiseks külastage abimenüüd!",
"noPermissions":"Teil ei ole lubatud seda {0} kasutada!",
"noPermissionsList":"Nõutavad load: (üks neist)",
"noPermissionsCooldown":"Teil ei ole lubatud seda {0} kasutada, kuna teil on jahtumine!",
"noPermissionsBlacklist":"Teil ei ole lubatud seda {0} kasutada, kuna olete lisatud musta nimekirja!",
"noPermissionsLimitGlobal":"Teil ei ole lubatud piletit luua, kuna server saavutas maksimaalse piletite limiidi!",
"noPermissionsLimitGlobalUser":"Teil ei ole lubatud piletit luua, kuna olete täis piletite maksimumlimiiti!",
"noPermissionsLimitOption":"Teil ei ole lubatud piletit luua, kuna server saavutas selle valiku maksimaalse piletite limiidi!",
"noPermissionsLimitOptionUser":"Teil ei ole lubatud piletit luua, kuna olete saavutanud selle valiku maksimaalse piletite limiidi!",
"unknownTicket":"Proovige seda käsku kehtiva piletiga uuesti!",
"deprecatedTicket":"Praegune kanal ei ole kehtiv pilet! See võis olla pilet vanast Open Ticketi versioonist!",
"notInGuild":"See {0} ei tööta DM-is! Palun proovi uuesti serveris!",
"channelRename":"Ebakõlaliste kiiruspiirangute tõttu on robotil praegu võimatu kanalit ümber nimetada. Kui robotit ei taaskäivitata, nimetatakse kanal 10 minuti jooksul automaatselt ümber.",
"channelRenameSource":"Selle vea allikas on: {0}",
"busy":"Seda {0} ei saa kasutada!\nPiletit töötleb praegu bot.\n\nPalun proovige mõne sekundi pärast uuesti!",
"closeBeforeMessage":"Seda piletit ei saa sulgeda/kustutada enne, kui kasutaja on sõnumi saatnud.",
"closeBeforeAdminMessage":"Seda piletit ei saa sulgeda/kustutada enne, kui piletihaldur või tugiliige on sõnumi saatnud.",
"unableToCreateTicket":"Te ei saa piletit luua."
},
"optionInvalidReasons":{
"stringRegex":"Väärtus ei vasta mustrile!",
"stringMinLength":"Väärtus peab olema vähemalt {0} tähemärki!",
"stringMaxLength":"Väärtus võib olla kuni {0} tähemärki!",
"numberInvalid":"Vale number!",
"numberMin":"Number peab olema vähemalt {0}!",
"numberMax":"Arv võib olla kuni {0}!",
"numberDecimal":"Arv ei tohi olla kümnendkoht!",
"numberNegative":"Arv ei tohi olla negatiivne!",
"numberPositive":"Arv ei tohi olla positiivne!",
"numberZero":"Arv ei tohi olla null!",
"channelNotFound":"Kanalit ei leitud!",
"userNotFound":"Kasutajat ei leitud!",
"roleNotFound":"Rolli ei leitud!",
"memberNotFound":"Kasutajat ei leitud!",
"mentionableNotFound":"Kasutajat või rolli ei leitud!",
"channelType":"Sobimatu kanali tüüp!",
"notInGuild":"See valik nõuab serveris viibimist!"
},
"permissions":{
"developer":"Peate olema roboti arendaja.",
"owner":"Peate olema serveri omanik.",
"admin":"Peate olema serveri administraator.",
"moderator":"Peate olema moderaator.",
"support":"Peate olema tugimeeskonnas.",
"member":"You need to be a member.",
"discord-administrator":"Teil peab olema ADMINISTRATORI luba."
},
"actionInvalid":{
"close":"Pilet on juba suletud!",
"reopen":"Pilet pole veel suletud!",
"claim":"Pilet on juba ostetud!",
"unclaim":"Piletit pole veel ostetud!",
"pin":"Pilet on juba kinni pandud!",
"unpin":"Pilet pole veel kinnitatud!",
"add":"Sellel kasutajal on juba juurdepääs piletile!",
"remove":"Seda kasutajat ei saa piletist eemaldada!"
}
},
"params":{
"uppercase":{
"ticket":"Pilet",
"tickets":"Piletid",
"reason":"Põhjus",
"creator":"Looja",
"remaining":"Järelejäänud aeg",
"added":"Lisatud",
"removed":"Eemaldatud",
"filter":"Filter",
"method":"Meetod",
"type":"Tüüp",
"blacklisted":"Mustas nimekirjas",
"panel":"Paneel",
"command":"Käsk",
"system":"Süsteem",
"true":"Tõsi",
"false":"Vale",
"syntax":"Süntaks",
"originalName":"Algne nimi",
"newName":"Uus nimi",
"until":"Kuni",
"validOptions":"Kehtivad valikud",
"validPanels":"Kehtivad paneelid",
"autoclose":"Automaatne sulgemine",
"autodelete":"Automaatne kustutamine",
"startupDate":"Käivitamise kuupäev",
"version":"Versioon",
"name":"Nimi",
"role":"Roll",
"status":"Olek",
"claimed":"Nõutud",
"pinned":"Kinnitatud",
"creationDate":"Loomise kuupäev",
"noone":"Mitte Keegi",
"open":"Avatud",
"closed":"Suletud",
"priority":"Prioriteet",
"participants":"Osalejad",
"yes":"Jah",
"no":"Ei",
"option":"Valik",
"topic":"Teema",
"uptime":"Süsteemi Töötamise Aeg",
"messages":"Sõnumid",
"embeds":"Embedid",
"files":"Failid",
"components":"Komponendid",
"cooldown":"Jahtumisaeg",
"maxTickets":"Maksimaalselt Pileteid",
"admins":"Adminid",
"roles":"Rollid",
"size":"Suurus"
},
"lowercase":{
"text":"tekst",
"html":"html",
"command":"käsk",
"modal":"modaalne",
"button":"nuppu",
"dropdown":"rippmenüüst",
"method":"meetod"
}
},
"commands":{
"reason":"Määrake valikuline põhjus, mis on logides nähtav.",
"help":"Hankige kõigi saadaolevate käskude loend.",
"panel":"Looge sõnum rippmenüü või nuppudega (pileti loomiseks).",
"panelId":"Selle paneeli identifikaator, mille soovite luua.",
"panelAutoUpdate":"Kas soovite seda paneeli redigeerimisel automaatselt värskendada?",
"ticket":"Looge pilet koheselt.",
"ticketId":"Pileti identifikaator, mille soovite luua.",
"close":"Sulgege pilet.",
"delete":"Kustuta pilet.",
"deleteNoTranscript":"Kustutage see pilet ilma ärakirja loomata.",
"reopen":"Avage pilet uuesti.",
"claim":"Nõudke pilet.",
"claimUser":"Hankige see pilet enda asemel kellelegi teisele.",
"unclaim":"Tühista pilet.",
"pin":"Kinnitage pilet.",
"unpin":"Vabastage pilet.",
"move":"Liigutage pilet.",
"moveId":"Selle valiku identifikaator, millele soovite liikuda.",
"rename":"Nimetage pilet ümber.",
"renameName":"Selle pileti uus nimi.",
"add":"Lisage piletile kasutaja.",
"addUser":"Lisatav kasutaja.",
"remove":"Kasutaja eemaldamine piletist.",
"removeUser":"Eemaldatav kasutaja.",
"blacklist":"Hallake piletite musta nimekirja.",
"blacklistView":"Vaadake praeguse musta nimekirja loendit.",
"blacklistAdd":"Lisage kasutaja musta nimekirja.",
"blacklistRemove":"Eemaldage kasutaja mustast nimekirjast.",
"blacklistGet":"Hankige üksikasjad musta nimekirja kantud kasutajalt.",
"blacklistGetUser":"Kasutaja, kellelt üksikasju saada.",
"stats":"Vaadake boti, liikme või pileti statistikat.",
"statsReset":"Lähtestage kogu roboti statistika (ja alustage loendamist nullist).",
"statsGlobal":"Vaadake globaalset statistikat.",
"statsUser":"Vaadake serveris oleva kasutaja statistikat.",
"statsUserUser":"Kasutaja vaatamiseks.",
"statsTicket":"Vaadake serveris pileti statistikat.",
"statsTicketTicket":"Pilet vaatamiseks.",
"clear":"Kustutage mitu piletit korraga.",
"clearFilter":"Piletite puhastamise filter.",
"clearFilters":{
"all":"Kõik",
"open":"Avatud",
"close":"Suletud",
"claim":"Nõutud",
"unclaim":"Nõudmata",
"pin":"Kinnitatud",
"unpin":"Vabastatud",
"autoclose":"Automaatselt suletud"
},
"autoclose":"Hallake piletis automaatset sulgemist.",
"autocloseDisable":"Keela sellel piletil automaatne sulgemine.",
"autocloseEnable":"Luba sellel piletil automaatne sulgemine.",
"autocloseEnableTime":"Selle pileti sulgemiseks peab olema passiivne tundide arv.",
"autodelete":"Automaatse kustutamise haldamine piletis.",
"autodeleteDisable":"Keela sellel piletil automaatne kustutamine.",
"autodeleteEnable":"Luba sellel piletil automaatne kustutamine.",
"autodeleteEnableTime":"Päevade arv, mille jooksul see pilet peab olema selle kustutamiseks passiivne.",
"topic":"Halda pileti kanali teemat.",
"topicSet":"Määra pileti kanali teema.",
"topicValue":"Kanali uus teema.",
"topicList":"Hangi nimekiri kõigist piletitest koos nende teemade ja statistikaga.",
"priority":"Halda pileti prioriteeti.",
"prioritySet":"Määra pileti prioriteet.",
"priorityValue":"Kanali prioriteet.",
"priorityGet":"Hangi pileti prioriteet.",
"priorityList":"Hangi nimekiri kõigist piletitest ja nende prioriteedi olekust.",
"transfer":"Anna pileti omand üle ühelt kasutajalt teisele.",
"transferUser":"Kasutaja, kellele omand üle anda."
},
"helpMenu":{
"help":"Hankige kõigi saadaolevate käskude loend.",
"ticket":"Looge pilet koheselt.",
"close":"Sulgege pilet, see keelab sellele kanalile kirjutamise.",
"delete":"Kustutage pilet, kui see on lubatud, loob see ärakirja.",
"reopen":"Avage pilet uuesti, see võimaldab sellele kanalile uuesti kirjutada.",
"pin":"Kinnitage pilet. See liigutab pileti ülaossa ja lisab nimele emoij '📌'",
"unpin":"\nVabastage pilet. Pilet jääb oma positsioonile, kuid kaotab emoij '📌'",
"move":"Liigutage pilet. See muudab selle pileti tüüpi.",
"rename":"Nimetage pilet ümber. See muudab selle pileti kanali nime.",
"claim":"Nõudke pilet. Sellega saate oma meeskonnale teada anda, et tegelete selle piletiga.",
"unclaim":"Tühista pilet. Sellega saate oma meeskonnale teada anda, et see pilet on taas tasuta.",
"add":"Lisage piletile kasutaja. See võimaldab kasutajal sellel piletil lugeda ja kirjutada.",
"remove":"Kasutaja eemaldamine piletist. See eemaldab selle pileti kasutajalt lugemis- ja kirjutamisvõimaluse.",
"panel":"Looge sõnum rippmenüü või nuppudega (pileti loomiseks).",
"blacklistView":"Vaadake praeguse musta nimekirja loendit.",
"blacklistAdd":"Lisage kasutaja musta nimekirja.",
"blacklistRemove":"Eemaldage kasutaja mustast nimekirjast.",
"blacklistGet":"Hankige üksikasjad musta nimekirja kantud kasutajalt.",
"statsGlobal":"Vaadake globaalset statistikat.",
"statsTicket":"Vaadake serveris pileti statistikat.",
"statsUser":"Vaadake serveris oleva kasutaja statistikat.",
"statsReset":"Lähtestage kogu roboti statistika (ja alustage loendamist nullist).",
"autocloseDisable":"Keela sellel piletil automaatne sulgemine.",
"autocloseEnable":"Luba sellel piletil automaatne sulgemine.",
"autodeleteDisable":"Keela sellel piletil automaatne kustutamine.",
"autodeleteEnable":"Luba sellel piletil automaatne kustutamine.",
"categories":{
"general":"Üldised Käsud",
"basicTicket":"Põhilised Piletikäsud",
"advancedTicket":"Täpsemad Piletikäsud",
"userTicket":"Kasutaja Piletikäsud",
"admin":"Admini Käsud",
"advanced":"Täpsemad Käsud",
"extra":"Lisakäsud"
}
},
"stats":{
"scopes":{
"global":"Globaalne statistika",
"system":"Süsteemi statistika",
"user":"Kasutaja statistika",
"ticket":"Piletistatistika",
"participants":"Osalejad",
"messages":"Sõnumid"
},
"properties":{
"ticketsCreated":"Pileteid loodud",
"ticketsClosed":"Pileteid suletud",
"ticketsDeleted":"Pileteid kustutatud",
"ticketsReopened":"Pileteid taasavatud",
"ticketsAutoclosed":"Pileteid suletud",
"ticketsClaimed":"Pileteid välja nõutud",
"ticketsPinned":"Pileteid kinnitatud",
"ticketsMoved":"Pileteid teisaldatud",
"usersBlacklisted":"Kasutajaid mustas nimekirjas",
"transcriptsCreated":"Loodud ärakirjad",
"ticketsAutodeleted":"Piletid Automaatselt Kustutatud",
"ticketsTransferred":"Piletid Üle Antud",
"ticketVolume":"Piletite Arv",
"averageTickets":"Keskmine Piletite Arv/Kasutaja",
"currentTickets":"Praegused Piletid",
"age":"Pileti Vanus",
"responseTime":"Reageerimisaeg",
"resolutionTime":"Lahendusaeg",
"createdOn":"Loodud",
"createdBy":"Looja",
"closedOn":"Suletud",
"closedBy":"Sulgenud",
"claimedOn":"Võetud",
"claimedBy":"Võtnud",
"pinnedOn":"Kinnitatud",
"pinnedBy":"Kinnitanud",
"deletedOn":"Kustutatud",
"deletedBy":"Kustutanud"
},
"roles":{
"developer":"Arendaja",
"serverOwner":"Serveri Omanik",
"serverAdmin":"Serveri Administraator",
"moderator":"Moderaatorite Meeskond",
"support":"Tugimeeskond",
"member":"Liige"
}
},
"panel":{
"selectTicket":"Vali oma pilet",
"selectRole":"Vali oma roll",
"selectOption":"Vali oma valik"
},
"priorities":{
"urgent":"Kiireloomuline",
"veryHigh":"Väga Kõrge",
"high":"Kõrge",
"normal":"Tavaline",
"low":"Madal",
"veryLow":"Väga Madal",
"none":"Puudub"
}
}
+608
View File
@@ -0,0 +1,608 @@
{
"_TRANSLATION":{
"otversion":"v4.1.3",
"translators":["iamnotmega","ChatGPT"],
"lastedited":"16/02/2026",
"language":"Finnish",
"automated":true
},
"checker":{
"system":{
"typeError":"[VIRHE]",
"headerOpenTicket":"AVAA LIPPU",
"typeWarning":"[VAROITUS]",
"typeInfo":"[TIEDOT]",
"headerConfigChecker":"ASETUKSEN TARKISTAJA",
"headerDescription":"tarkista asetustiedostoissasi virheitä!",
"footerError":"botti ei käynnisty ennen kuin kaikki {0} on korjattu!",
"footerWarning":"on suositeltavaa korjata kaikki {0} ennen aloittamista!",
"footerSupport":"TUKI: {0} - DOCS: {1}",
"compactInformation":"käytä {0} saadaksesi lisätietoja!",
"dataPath":"polku",
"dataDocs":"asiakirjoja",
"dataMessages":"viesti"
},
"messages":{
"stringTooShort":"Tämä merkkijono ei voi olla lyhyempi kuin {0} merkkiä!",
"stringTooLong":"Tämä merkkijono ei voi olla pidempi kuin {0} merkkiä!",
"stringLengthInvalid":"Tämän merkkijonon on oltava {0} merkkiä pitkä!",
"stringStartsWith":"Tämän merkkijonon on alettava kirjaimella {0}!",
"stringEndsWith":"Tämän merkkijonon tulee päättyä {0}!",
"stringContains":"Tämän merkkijonon täytyy sisältää {0}!",
"stringChoices":"Tämä merkkijono voi olla vain yksi seuraavista arvoista: {0}!",
"stringRegex":"Tämä merkkijono on virheellinen!",
"stringInvertedContains":"Tämä merkkijono ei saa sisältää {0}!",
"stringLowercase":"Tämä merkkijono on kirjoitettava vain pienillä kirjaimilla!",
"stringUppercase":"Tämä merkkijono on kirjoitettava vain isoilla kirjaimilla!",
"stringSpecialCharacters":"Tämä merkkijono ei saa sisältää erikoismerkkejä! (vain a–z, 0–9 ja välilyönti)",
"stringNoSpaces":"Tämä merkkijono ei saa sisältää välilyöntejä!",
"stringCapitalWord":"On suositeltavaa, että jokainen sana tässä merkkijonossa alkaa isolla kirjaimella!",
"stringCapitalSentence":"Näyttää siltä, että jotkut lauseet tässä merkkijonossa eivät ala isolla kirjaimella!",
"stringPunctuation":"Näyttää siltä, että tämän merkkijonon lause ei pääty välimerkkiin!",
"numberTooShort":"Tämä numero ei voi olla lyhyempi kuin {0} merkkiä!",
"numberTooLong":"Tämä numero ei voi olla pidempi kuin {0} merkkiä!",
"numberLengthInvalid":"Tämän numeron on oltava {0} merkkiä pitkä!",
"numberTooSmall":"Tämän numeron on oltava vähintään {0}!",
"numberTooLarge":"Tämän numeron on oltava enintään {0}!",
"numberNotEqual":"Tämän numeron on oltava {0}!",
"numberStep":"Tämän luvun on oltava luvun {0} kerrannainen!",
"numberStepOffset":"Tämän luvun on oltava luvun {0} jaollinen, joka alkaa numerolla {1}!",
"numberStartsWith":"Tämän numeron täytyy alkaa numerolla {0}!",
"numberEndsWith":"Tämän numeron lopussa on oltava {0}!",
"numberContains":"Tämän numeron on sisällettävä {0}!",
"numberChoices":"Tämä numero voi olla vain yksi seuraavista arvoista: {0}!",
"numberFloat":"Tämä luku ei voi olla desimaali!",
"numberNegative":"Tämä luku ei voi olla negatiivinen!",
"numberPositive":"Tämä luku ei voi olla positiivinen!",
"numberZero":"Tämä luku ei voi olla nolla!",
"numberNan":"Tämä numero ei voi olla NaN (ei numero)!",
"numberInvertedContains":"Tämä numero ei saa sisältää {0}!",
"booleanTrue":"Tämä boolean ei voi olla totta!",
"booleanFalse":"Tämä boolean ei voi olla väärä!",
"arrayEmptyDisabled":"Tämä taulukko ei saa olla tyhjä!",
"arrayEmptyRequired":"Tämän taulukon on oltava tyhjä!",
"arrayTooShort":"Tämän taulukon pituuden on oltava vähintään {0}!",
"arrayTooLong":"Tämän taulukon pituus saa olla enintään {0}!",
"arrayLengthInvalid":"Tämän taulukon pituuden on oltava {0}!",
"arrayInvalidTypes":"Tämä matriisi voi sisältää vain seuraavat tyypit: {0}!",
"arrayDouble":"Tämä matriisi ei salli samaa arvoa kahdesti!",
"discordInvalidId":"Tämä on virheellinen discord {0} -tunnus!",
"discordInvalidIdOptions":"Tämä on virheellinen discord {0} -tunnus! Voit myös käyttää jotakin seuraavista: {1}!",
"discordInvalidToken":"Tämä on virheellinen discord tunnus (syntaktisesti)!",
"colorInvalid":"Tämä on virheellinen kuusioväri!",
"emojiTooShort":"Tässä merkkijonossa on oltava vähintään {0} emojia!",
"emojiTooLong":"Tässä merkkijonossa saa olla enintään {0} emojia!",
"emojiCustom":"Tämä emoji ei voi olla mukautettu emoji!",
"emojiInvalid":"Tämä on virheellinen emoji!",
"urlInvalid":"Tämä URL-osoite on virheellinen!",
"urlInvalidHttp":"Tämä URL-osoite voi käyttää vain https://-protokollaa!",
"urlInvalidProtocol":"Tämä URL-osoite voi käyttää vain http://- ja https://-protokollia!",
"urlInvalidHostname":"Tällä URL-osoitteella on kielletty isäntänimi!",
"urlInvalidExtension":"Tässä URL-osoitteessa on virheellinen laajennus! Valitse seuraavista: {0}!",
"urlInvalidPath":"Tällä URL-osoitteella on virheellinen polku!",
"idNotUnique":"Tämä tunnus ei ole ainutlaatuinen, käytä sen sijaan toista tunnusta!",
"idNonExistent":"Tunnusta {0} ei ole olemassa!",
"invalidType":"Tämän ominaisuuden on oltava tyyppiä: {0}!",
"propertyMissing":"Ominaisuus {0} puuttuu tästä objektista!",
"propertyOptional":"Ominaisuus {0} on valinnainen tässä objektissa!",
"objectDisabled":"Tämä objekti on poistettu käytöstä, ota se käyttöön käyttämällä {0}!",
"nullInvalid":"Tämä omaisuus ei voi olla tyhjä!",
"switchInvalidType":"Tämän on oltava jokin seuraavista: {0}!",
"objectSwitchInvalid":"Tämän objektin on oltava jokin seuraavista tyypeistä: {0}!",
"invalidLanguage":"Tämä on virheellinen kieli!",
"invalidButton":"Tässä painikkeessa on oltava vähintään {0} tai {1}!",
"unusedOption":"Vaihtoehtoa {0} ei käytetä missään!",
"unusedQuestion":"Kysymystä {0} ei käytetä missään!",
"dropdownOption":"Paneeli, jossa pudotusvalikko on käytössä, voi sisältää vain \"lippu\"-tyyppisiä vaihtoehtoja!",
"customInvalidVersion":"Määritetty versio kokoonpanossasi ei vastaa! Varmista, että olet päivittänyt kokoonpanon uusimpaan versioon!"
}
},
"actions":{
"buttons":{
"create":"Vieraile Ticketissä",
"close":"Sulje lippu",
"delete":"Poista lippu",
"reopen":"Avaa lippu uudelleen",
"claim":"Lunasta lippu",
"unclaim":"Peruuta lippu",
"pin":"Pin Lippu",
"unpin":"Irrota lippu",
"clear":"Poista liput",
"helpSwitchSlash":"Näytä Slash-komennot",
"helpSwitchText":"Näytä tekstikomennot",
"helpPage":"Sivu {0}",
"withReason":"Syyllä",
"withoutTranscript":"Ilman transkriptiota"
},
"titles":{
"created":"Lippu luotu",
"close":"Lippu suljettu",
"delete":"Lippu poistettu",
"reopen":"Lippu avattu uudelleen",
"claim":"Lippu lunastettu",
"unclaim":"Lippu lunastamaton",
"pin":"Lippu kiinnitetty",
"unpin":"Lippu irrotettu",
"rename":"Lippu nimetty uudelleen",
"move":"Lippu siirretty",
"add":"Lipun käyttäjä lisätty",
"remove":"Lipun käyttäjä poistettu",
"help":"Käytettävissä olevat komennot",
"statsReset":"Nollaa tilastot",
"blacklistAdd":"Käyttäjä mustalla listalla",
"blacklistRemove":"Käyttäjä vapautettu",
"blacklistGet":"Mustalla listalla oleva käyttäjä",
"blacklistView":"Nykyinen musta lista",
"blacklistAddDm":"Lisätty mustalle listalle",
"blacklistRemoveDm":"Poistettu mustalta listalta",
"clear":"Liput tyhjennetty",
"clearTickets":"Tyhjennä Tiketit",
"roles":"Roolit päivitetty",
"autoclose":"Lippu suljettu automaattisesti",
"autocloseEnabled":"Automaattinen sulkeminen käytössä",
"autocloseDisabled":"Automaattinen sulkeminen pois käytöstä",
"autodelete":"Lippu poistettu automaattisesti",
"autodeleteEnabled":"Automaattinen poisto käytössä",
"autodeleteDisabled":"Automaattinen poisto poissa käytöstä",
"topicSet":"Aihe Muutettu",
"prioritySet":"Prioriteetti Muutettu",
"priorityGet":"Tiketin Prioriteetti",
"transfer":"Tiketti Siirretty"
},
"descriptions":{
"create":"Lippusi on luotu. Napsauta alla olevaa painiketta päästäksesi siihen!",
"close":"Lippu on suljettu onnistuneesti!",
"delete":"Lippu on poistettu onnistuneesti!",
"reopen":"Lippu on avattu uudelleen onnistuneesti!",
"claim":"Lippu on lunastettu onnistuneesti!",
"unclaim":"Lippu on lunastettu onnistuneesti!",
"pin":"Lippu on kiinnitetty onnistuneesti!",
"unpin":"Lippu on irrotettu onnistuneesti!",
"rename":"Lippu on nimetty uudelleen muotoon {0}!",
"move":"Lippu on siirretty kohteeseen {0} onnistuneesti!",
"add":"{0} on lisätty lippuun onnistuneesti!",
"remove":"{0} on poistettu lipusta onnistuneesti!",
"helpExplanation":"`<nimi>` => pakollinen parametri\n`[nimi]` => valinnainen parametri",
"statsReset":"Bottitilastot on nollattu onnistuneesti!",
"statsError":"Lipputilastoja ei voi tarkastella!\n{0} ei ole lippu!",
"blacklistAdd":"{0} on lisätty mustalle listalle onnistuneesti!",
"blacklistRemove":"{0} on julkaistu onnistuneesti!",
"blacklistGetSuccess":"{0} on tällä hetkellä mustalla listalla!",
"blacklistGetEmpty":"{0} ei ole tällä hetkellä mustalla listalla!",
"blacklistViewEmpty":"Ketään ei ole vielä mustalla listalla!",
"blacklistViewTip":"Käytä \"/blacklist add\" lisätäksesi käyttäjän mustalle listalle!",
"clearVerify":"Haluatko varmasti poistaa useita lippuja? Tätä toimintoa ei voi kumota!",
"clearReady":"{0} lippua on poistettu onnistuneesti!",
"rolesEmpty":"Rooleja ei ole päivitetty!",
"autocloseLeave":"Tämä lippu on suljettu automaattisesti, koska luoja poistui palvelimelta!",
"autocloseTimeout":"Tämä lippu on suljettu automaattisesti, koska se on ollut passiivinen yli `{0}h`!",
"autodeleteLeave":"Tämä lippu on poistettu automaattisesti, koska sisällöntuottaja poistui palvelimelta!",
"autodeleteTimeout":"Tämä lippu on poistettu automaattisesti, koska se on ollut passiivinen yli `{0} päivää`!",
"autocloseEnabled":"Automaattinen sulkeminen on otettu käyttöön tässä lipussa! Se suljetaan, kun se on epäaktiivinen yli `{0}h'!",
"autocloseDisabled":"Automaattinen sulkeminen on poistettu käytöstä tässä lipussa! Se ei enää sulkeudu automaattisesti!",
"autodeleteEnabled":"Automaattinen poisto on otettu käyttöön tässä lipussa! Se poistetaan, kun se on passiivinen yli `{0} päivään`!",
"autodeleteDisabled":"Automaattinen poisto on poistettu käytöstä tässä lipussa! Sitä ei enää poisteta automaattisesti!",
"ticketMessageLimit":"Voit luoda vain {0} lippua samanaikaisesti!",
"ticketMessageAutoclose":"Tämä lippu suljetaan automaattisesti, kun se ei ole aktiivinen {0} tuntia!",
"ticketMessageAutodelete":"Tämä lippu poistetaan automaattisesti, kun se ei ole aktiivinen {0} päivään!",
"panelReady":"Paneeli on saatavilla jatkoviestissä!\nTämä viesti voidaan nyt poistaa!",
"topicSet":"Kanavan aihe on vaihdettu käyttäjän {0} toimesta onnistuneesti!",
"prioritySet":"Tiketin prioriteetti on vaihdettu arvoksi {0} käyttäjän {1} toimesta onnistuneesti!",
"priorityGet":"Tämän tiketin nykyinen prioriteetti on {0}.",
"transfer":"Tiketin omistus on siirretty käyttäjältä {0} käyttäjälle {1} käyttäjän {2} toimesta onnistuneesti!"
},
"modal":{
"closePlaceholder":"Miksi suljit tämän lipun?",
"deletePlaceholder":"Miksi poistit tämän lipun?",
"reopenPlaceholder":"Miksi avasit tämän lipun uudelleen?",
"claimPlaceholder":"Miksi lunasit tämän lipun?",
"unclaimPlaceholder":"Miksi peruutit tämän lipun?",
"pinPlaceholder":"Miksi kiinnitit tämän lipun?",
"unpinPlaceholder":"Miksi irrotit tämän lipun?"
},
"logs":{
"createLog":"{0} loi uuden lipun!",
"closeLog":"Tämän lipun on sulkenut {0}!",
"closeDm":"Lippusi on suljettu palvelimellamme!",
"deleteLog":"{0} on poistanut tämän lipun!",
"deleteDm":"Lippusi on poistettu palvelimeltamme!",
"reopenLog":"{0} on avannut tämän lipun uudelleen!",
"reopenDm":"Lippusi on avattu uudelleen palvelimellamme!",
"claimLog":"{0} on lunastanut tämän lipun!",
"claimDm":"Lippusi on lunastettu palvelimellamme!",
"unclaimLog":"{0} ei ole lunastanut tätä lippua!",
"unclaimDm":"Lippuasi on lunastettu palvelimellamme!",
"pinLog":"{0} on kiinnittänyt tämän lipun!",
"pinDm":"Lippusi on kiinnitetty palvelimellemme!",
"unpinLog":"{0} on irrottanut tämän lipun!",
"unpinDm":"Lippusi on irrotettu palvelimeltamme!",
"renameLog":"{1} on nimennyt tämän lipun uudelleen nimellä {0}!",
"renameDm":"Lippusi nimeksi on muutettu palvelimellamme {0}!",
"moveLog":"{1} on siirtänyt tämän lipun paikkaan {0}!",
"moveDm":"Lippusi on siirretty palvelimellamme osoitteeseen {0}!",
"addLog":"{1} on lisännyt {0} tähän lippuun!",
"addDm":"{0} on lisätty lippuusi palvelimellamme!",
"removeLog":"{1} on poistanut {0} tästä lipusta!",
"removeDm":"{0} on poistettu lipustasi palvelimellamme!",
"blacklistAddLog":"{1} lisäsi käyttäjän {0} mustalle listalle!",
"blacklistRemoveLog":"{1} poisti käyttäjän {0} mustalta listalta!",
"blacklistAddDm":"Sinut on mustalla listalla palvelimellamme! Tästä eteenpäin et voi luoda lippua!",
"blacklistRemoveDm":"Sinut on poistettu palvelimemme mustalta listalta! Nyt voit luoda lippuja uudelleen!",
"clearLog":"{1} on poistanut {0} lippua!",
"transferLog":"Tämän tiketin omistus on siirretty käyttäjältä {0} käyttäjälle {1} käyttäjän {2} toimesta!",
"transferDm":"Tiketin omistus on siirretty käyttäjältä {0} käyttäjälle {1} palvelimellamme!",
"prioritySetLog":"Tämän tiketin prioriteetti on vaihdettu arvoksi {0} käyttäjän {1} toimesta!",
"prioritySetDm":"Tiketin prioriteetti on vaihdettu arvoksi {0} palvelimellamme!",
"roleUpdateLog":"{0} on päivittänyt roolinsa!",
"roleUpdateDm":"Roolisi palvelimellamme on päivitetty!"
}
},
"transcripts":{
"success":{
"visit":"Vieraile Transcriptissä",
"ready":"Transkriptio luotu",
"textFileDescription":"Tämä on poistetun lipun tekstikopio!",
"htmlProgress":"Odota, kun tätä html-transkriptiota käsitellään...",
"createdChannel":"Uusi {0}-transkriptio on luotu palvelimelle!",
"createdCreator":"Yhdelle lipullesi on luotu uusi transkriptio {0}!",
"createdParticipant":"Uusi {0}-transkriptio on luotu yhteen lipuista, joihin osallistuit!",
"createdActiveAdmin":"Yhdessä lipussa, johon osallistuit järjestelmänvalvojana, on luotu uusi transkriptio {0}!",
"createdEveryAdmin":"Uusi {0}-transkriptio on luotu yhteen lipuista, joissa olit järjestelmänvalvoja!",
"createdOther":"Uusi transkriptio {0} on luotu!"
},
"errors":{
"retry":"Yritä uudelleen",
"continue":"Poista ilman transkriptiota",
"backup":"Luo varmuuskopio",
"error":"Jotain meni pieleen, kun yritettiin luoda transkriptiota. Mitä haluaisit tehdä? Tätä lippua ei poisteta, ennen kuin napsautat jotakin näistä painikkeista. ",
"title":"Transkriptiovirhe"
},
"text":{
"messagesTitle":"VIESTIT",
"embedTitle":"UPOTUS",
"fileTitle":"TIEDOSTO",
"fieldsTitle":"KENTÄT",
"reactionsTitle":"REAKTIOT",
"statsTitle":"TILASTOT",
"emptyContent":"<sisältö on tyhjä>",
"noTitle":"<ei-otsikkoa>",
"noDesc":"<ei-kuvausta>"
}
},
"errors":{
"titles":{
"internalError":"Sisäinen virhe",
"optionMissing":"Komentovaihtoehto puuttuu",
"optionInvalid":"Komentovaihtoehto ei kelpaa",
"unknownCommand":"Tuntematon komento",
"noPermissions":"Ei käyttöoikeuksia",
"unknownTicket":"Tuntematon lippu",
"deprecatedTicket":"Käytöstä poistettu lippu",
"unknownOption":"Tuntematon vaihtoehto",
"unknownPanel":"Tuntematon paneeli",
"notInGuild":"Ei Palvelimessa",
"channelRename":"Kanavaa ei voi nimetä uudelleen",
"busy":"Lippu on varattu",
"permissionError":"Käyttöoikeusvirhe"
},
"descriptions":{
"askForInfo":"Ota yhteyttä tämän botin omistajaan saadaksesi lisätietoja!",
"askForInfoResolve":"Ota yhteyttä tämän botin omistajaan, jos ongelma ei ratkea muutaman yrityksen jälkeen.",
"internalError":"Tähän viestiin {0} ei voi vastata sisäisen virheen vuoksi!",
"optionMissing":"Tästä komennosta puuttuu pakollinen parametri!",
"optionInvalid":"Tämän komennon parametri on virheellinen!",
"optionInvalidChoose":"Valitse väliltä",
"unknownCommand":"Kokeile lisätietoja ohjevalikosta!",
"noPermissions":"Sinulla ei ole lupaa käyttää tätä {0}!",
"noPermissionsList":"Vaaditut luvat: (yksi niistä)",
"noPermissionsCooldown":"Sinulla ei ole oikeutta käyttää tätä {0}-palvelua, koska sinulla on jäähdytys!",
"noPermissionsBlacklist":"Sinulla ei ole oikeutta käyttää tätä {0}, koska sinut on mustalla listalla!",
"noPermissionsLimitGlobal":"Et voi luoda lippua, koska palvelin saavutti lippujen enimmäisrajan!",
"noPermissionsLimitGlobalUser":"Et voi luoda lippua, koska saavutit lippujen enimmäisrajan!",
"noPermissionsLimitOption":"Et voi luoda lippua, koska palvelin saavutti tämän vaihtoehdon lippujen enimmäisrajan!",
"noPermissionsLimitOptionUser":"Et voi luoda lippua, koska saavutit tämän vaihtoehdon lippujen enimmäisrajan!",
"unknownTicket":"Kokeile tätä komentoa uudelleen voimassa olevalla lipulla!",
"deprecatedTicket":"Nykyinen kanava ei ole kelvollinen lippu! Se saattoi olla lippu vanhasta Open Ticket -versiosta!",
"notInGuild":"Tämä {0} ei toimi DM:ssä! Ole hyvä ja yritä uudelleen palvelimella!",
"channelRename":"Discordin nopeusrajoitusten vuoksi botin on tällä hetkellä mahdotonta nimetä kanavaa uudelleen. Kanava nimetään automaattisesti uudelleen 10 minuutin kuluttua, jos bottia ei käynnistetä uudelleen.",
"channelRenameSource":"Tämän virheen lähde on: {0}",
"busy":"Tätä {0} ei voi käyttää! Botti käsittelee lippua parhaillaan. Yritä uudelleen muutaman sekunnin kuluttua!",
"closeBeforeMessage":"Tätä tikettiä ei voi sulkea/poistaa ennen kuin käyttäjä on lähettänyt viestin.",
"closeBeforeAdminMessage":"Tätä tikettiä ei voi sulkea/poistaa ennen kuin tikettien ylläpitäjä tai tukihenkilö on lähettänyt viestin.",
"unableToCreateTicket":"Et voi luoda tikettiä."
},
"optionInvalidReasons":{
"stringRegex":"Arvo ei vastaa mallia!",
"stringMinLength":"Arvon on oltava vähintään {0} merkkiä!",
"stringMaxLength":"Arvo saa olla enintään {0} merkkiä!",
"numberInvalid":"Virheellinen numero!",
"numberMin":"Numeron on oltava vähintään {0}!",
"numberMax":"Numeron on oltava enintään {0}!",
"numberDecimal":"Numero ei saa olla desimaali!",
"numberNegative":"Numero ei saa olla negatiivinen!",
"numberPositive":"Numero ei saa olla positiivinen!",
"numberZero":"Numero ei saa olla nolla!",
"channelNotFound":"Kanavaa ei löydy!",
"userNotFound":"Käyttäjää ei löydy!",
"roleNotFound":"Roolia ei löydy!",
"memberNotFound":"Käyttäjää ei löydy!",
"mentionableNotFound":"Käyttäjää tai roolia ei löydy!",
"channelType":"Virheellinen kanavatyyppi!",
"notInGuild":"Tämä vaihtoehto edellyttää, että olet palvelimella!"
},
"permissions":{
"developer":"Sinun on oltava botin kehittäjä.",
"owner":"Sinun on oltava palvelimen omistaja.",
"admin":"Sinun tulee olla palvelimen järjestelmänvalvoja.",
"moderator":"Sinun täytyy olla moderaattori.",
"support":"Sinun on kuuluttava tukitiimiin.",
"member":"Sinun täytyy olla jäsen.",
"discord-administrator":"Sinulla on oltava ADMINISTRATOR-käyttöoikeus."
},
"actionInvalid":{
"close":"Lippu on jo suljettu!",
"reopen":"Lippu ei ole vielä suljettu!",
"claim":"Lippu on jo lunastettu!",
"unclaim":"Lippua ei ole vielä lunastettu!",
"pin":"Lippu on jo kiinnitetty!",
"unpin":"Lippua ei ole vielä kiinnitetty!",
"add":"Tämä käyttäjä voi jo käyttää lippua!",
"remove":"Tätä käyttäjää ei voi poistaa lipusta!"
}
},
"params":{
"uppercase":{
"ticket":"Lippu",
"tickets":"Liput",
"reason":"Syy",
"creator":"Luoja",
"remaining":"Aikaa jäljellä",
"added":"Lisätty",
"removed":"Poistettu",
"filter":"Suodattaa",
"method":"Menetelmä",
"type":"Tyyppi",
"blacklisted":"Mustalla listalla",
"panel":"Paneeli",
"command":"Komento",
"system":"Järjestelmä",
"true":"Totta",
"false":"Väärä",
"syntax":"Syntaksi",
"originalName":"Alkuperäinen Nimi",
"newName":"Alkuperäinen Nimi",
"until":"Kunnes",
"validOptions":"Kelvolliset vaihtoehdot",
"validPanels":"Kelvolliset paneelit",
"autoclose":"Automaattinen sulkeminen",
"autodelete":"Automaattinen poisto",
"startupDate":"Aloituspäivämäärä",
"version":"Versio",
"name":"Nimi",
"role":"Rooli",
"status":"Tila",
"claimed":"Väitetty",
"pinned":"Kiinnitetty",
"creationDate":"Luontipäivämäärä",
"noone":"Ei Kukaan",
"open":"Avoin",
"closed":"Suljettu",
"priority":"Prioriteetti",
"participants":"Osallistujat",
"yes":"Kyllä",
"no":"Ei",
"option":"Vaihtoehto",
"topic":"Aihe",
"uptime":"Järjestelmän Käyttöaika",
"messages":"Viestit",
"embeds":"Upotukset",
"files":"Tiedostot",
"components":"Komponentit",
"cooldown":"Jäähy",
"maxTickets":"Maksimi Tiketit",
"admins":"Ylläpitäjät",
"roles":"Roolit",
"size":"Koko"
},
"lowercase":{
"text":"teksti",
"html":"html",
"command":"komento",
"modal":"modaalinen",
"button":"-painiketta",
"dropdown":"pudotusvalikosta",
"method":"menetelmä"
}
},
"commands":{
"reason":"Määritä valinnainen syy, joka näkyy lokeissa.",
"help":"Hanki luettelo kaikista käytettävissä olevista komennoista.",
"panel":"Luo viesti avattavalla valikosta tai painikkeilla (lippujen luomista varten).",
"panelId":"Sen paneelin tunniste, jonka haluat luoda.",
"panelAutoUpdate":"Haluatko tämän paneelin päivittyvän automaattisesti, kun sitä muokataan?",
"ticket":"Luo lippu välittömästi.",
"ticketId":"Sen lipun tunniste, jonka haluat luoda.",
"close":"Sulje lippu.",
"delete":"Poista lippu.",
"deleteNoTranscript":"Poista tämä lippu luomatta transkriptiota.",
"reopen":"Avaa lippu uudelleen.",
"claim":"Lunasta lippu.",
"claimUser":"Lunasta tämä lippu jollekin muulle itsesi sijaan.",
"unclaim":"Peruuta lippu.",
"pin":"Kiinnitä lippu.",
"unpin":"Irrota lippu.",
"move":"Siirrä lippu.",
"moveId":"Sen vaihtoehdon tunniste, johon haluat siirtyä.",
"rename":"Nimeä lippu uudelleen.",
"renameName":"Tämän lipun uusi nimi.",
"add":"Lisää käyttäjä lippuun.",
"addUser":"Lisättävä käyttäjä.",
"remove":"Poista käyttäjä lipusta.",
"removeUser":"Poistettava käyttäjä.",
"blacklist":"Hallitse lippujen mustaa listaa.",
"blacklistView":"Näytä luettelo nykyisestä mustasta listasta.",
"blacklistAdd":"Lisää käyttäjä mustalle listalle.",
"blacklistRemove":"Poista käyttäjä mustalta listalta.",
"blacklistGet":"Hanki tiedot mustalla listalla olevalta käyttäjältä.",
"blacklistGetUser":"Käyttäjä, jolta saa tietoja.",
"stats":"Tarkastele botin, jäsenen tai lipun tilastoja.",
"statsReset":"Nollaa kaikki botin tilastot (ja aloita laskeminen nollasta).",
"statsGlobal":"Katso globaalit tilastot.",
"statsUser":"Tarkastele palvelimella olevan käyttäjän tilastoja.",
"statsUserUser":"Käyttäjä katsella.",
"statsTicket":"Tarkastele lipun tilastoja palvelimella.",
"statsTicketTicket":"Lippu katsottavaksi.",
"clear":"Poista useita lippuja samanaikaisesti.",
"clearFilter":"Lippujen tyhjennyssuodatin.",
"clearFilters":{
"all":"Kaikki",
"open":"Avata",
"close":"Suljettu",
"claim":"Väitetty",
"unclaim":"Lunastamaton",
"pin":"Kiinnitetty",
"unpin":"Irrotettu",
"autoclose":"Automaattisuljettu"
},
"autoclose":"Hallitse automaattista sulkemista lipussa.",
"autocloseDisable":"Poista automaattinen sulkeminen käytöstä tässä lipussa.",
"autocloseEnable":"Ota automaattinen sulkeminen käyttöön tässä lipussa.",
"autocloseEnableTime":"Tämän lipun on oltava passiivinen, jotta se voidaan sulkea.",
"autodelete":"Hallitse automaattista poistoa lipussa.",
"autodeleteDisable":"Poista automaattinen poisto käytöstä tässä lipussa.",
"autodeleteEnable":"Ota automaattinen poisto käyttöön tässä lipussa.",
"autodeleteEnableTime":"Kuinka monta päivää tämän lipun on oltava passiivinen, jotta se voidaan poistaa.",
"topic":"Hallitse tikettikanavan aihetta.",
"topicSet":"Aseta tikettikanavan aihe.",
"topicValue":"Kanavan uusi aihe.",
"topicList":"Hae lista kaikista tiketeistä niiden aiheen ja tilastojen kanssa.",
"priority":"Hallitse tiketin prioriteettia.",
"prioritySet":"Aseta tiketin prioriteetti.",
"priorityValue":"Kanavan prioriteetti.",
"priorityGet":"Hae tiketin prioriteetti.",
"priorityList":"Hae lista kaikista tiketeistä ja niiden prioriteettitilasta.",
"transfer":"Siirrä tiketin omistus käyttäjältä toiselle.",
"transferUser":"Käyttäjä, jolle omistus siirretään."
},
"helpMenu":{
"help":"Hanki luettelo kaikista käytettävissä olevista komennoista.",
"ticket":"Luo lippu välittömästi.",
"close":"Sulje lippu, tämä estää kirjoittamisen tälle kanavalle.",
"delete":"Poista lippu. Tämä luo transkription, kun se on käytössä.",
"reopen":"Avaa lippu uudelleen, tämä mahdollistaa kirjoittamisen uudelleen tälle kanavalle.",
"pin":"Kiinnitä lippu. Tämä siirtää lipun yläreunaan ja lisää nimeen emoijin '📌'.",
"unpin":"\nIrrota lippu. Lippu pysyy paikallaan, mutta menettää '📌' emoijin.",
"move":"Siirrä lippu. Tämä muuttaa tämän lipun tyyppiä.",
"rename":"Nimeä lippu uudelleen. Tämä muuttaa tämän lipun kanavan nimen.",
"claim":"Lunasta lippu. Tämän avulla voit ilmoittaa tiimillesi, että käsittelet tätä lippua.",
"unclaim":"Peruuta lippu. Tällä voit ilmoittaa joukkueellesi, että tämä lippu on jälleen ilmainen.",
"add":"Lisää käyttäjä lippuun. Tämä antaa käyttäjälle mahdollisuuden lukea ja kirjoittaa tähän lippuun.",
"remove":"Poista käyttäjä lipusta. Tämä poistaa tämän lipun käyttäjältä mahdollisuuden lukea ja kirjoittaa.",
"panel":"Luo viesti avattavalla valikosta tai painikkeilla (lippujen luomista varten).",
"blacklistView":"Näytä luettelo nykyisestä mustasta listasta.",
"blacklistAdd":"Lisää käyttäjä mustalle listalle.",
"blacklistRemove":"Poista käyttäjä mustalta listalta.",
"blacklistGet":"Hanki tiedot mustalla listalla olevalta käyttäjältä.",
"statsGlobal":"Katso globaalit tilastot.",
"statsTicket":"Tarkastele lipun tilastoja palvelimella.",
"statsUser":"Tarkastele palvelimella olevan käyttäjän tilastoja.",
"statsReset":"Nollaa kaikki botin tilastot (ja aloita laskeminen nollasta).",
"autocloseDisable":"Poista automaattinen sulkeminen käytöstä tässä lipussa.",
"autocloseEnable":"Ota automaattinen sulkeminen käyttöön tässä lipussa.",
"autodeleteDisable":"Poista automaattinen poisto käytöstä tässä lipussa.",
"autodeleteEnable":"Ota automaattinen poisto käyttöön tässä lipussa.",
"categories":{
"general":"Yleiset Komennot",
"basicTicket":"Perus Tikettikomennot",
"advancedTicket":"Edistyneet Tikettikomennot",
"userTicket":"Käyttäjän Tikettikomennot",
"admin":"Ylläpitäjäkomennot",
"advanced":"Edistyneet Komennot",
"extra":"Lisäkomennot"
}
},
"stats":{
"scopes":{
"global":"Globaalit tilastot",
"system":"Järjestelmätilastot",
"user":"Käyttäjätilastot",
"ticket":"Lipputilastot",
"participants":"Osallistujat",
"messages":"Viestit"
},
"properties":{
"ticketsCreated":"Liput luotu",
"ticketsClosed":"Liput suljettu",
"ticketsDeleted":"Liput poistettu",
"ticketsReopened":"Liput avattu uudelleen",
"ticketsAutoclosed":"Liput automaattisesti suljettu",
"ticketsClaimed":"Liput lunastettu",
"ticketsPinned":"Liput kiinni",
"ticketsMoved":"Liput siirretty",
"usersBlacklisted":"Käyttäjät mustalla listalla",
"transcriptsCreated":"Transkriptiot luotu",
"ticketsAutodeleted":"Tiketit Automaattisesti Poistettu",
"ticketsTransferred":"Tiketit Siirretty",
"ticketVolume":"Tikettilukumäärä",
"averageTickets":"Keskimääräiset Tiketit/Käyttäjä",
"currentTickets":"Nykyiset Tiketit",
"age":"Tiketin Ikä",
"responseTime":"Vastausaika",
"resolutionTime":"Ratkaisuaika",
"createdOn":"Luotu",
"createdBy":"Luonut",
"closedOn":"Suljettu",
"closedBy":"Sulkenut",
"claimedOn":"Otettu Vastaan",
"claimedBy":"Vastaanottanut",
"pinnedOn":"Kiinnitetty",
"pinnedBy":"Kiinnittänyt",
"deletedOn":"Poistettu",
"deletedBy":"Poistanut"
},
"roles":{
"developer":"Kehittäjä",
"serverOwner":"Palvelimen Omistaja",
"serverAdmin":"Palvelimen Ylläpitäjä",
"moderator":"Moderaattoritiimi",
"support":"Tukitiimi",
"member":"Jäsen"
}
},
"panel":{
"selectTicket":"Valitse tikettisi",
"selectRole":"Valitse roolisi",
"selectOption":"Valitse vaihtoehtosi"
},
"priorities":{
"urgent":"Kiireellinen",
"veryHigh":"Erittäin Korkea",
"high":"Korkea",
"normal":"Normaali",
"low":"Matala",
"veryLow":"Erittäin Matala",
"none":"Ei Mikään"
}
}
+608
View File
@@ -0,0 +1,608 @@
{
"_TRANSLATION":{
"otversion":"v4.1.3",
"translators":["guillee3"],
"lastedited":"16/02/2026",
"language":"French",
"automated":false
},
"checker":{
"system":{
"typeError":"[ERREUR]",
"headerOpenTicket":"OUVRIR TICKET",
"typeWarning":"[ALERTE]",
"typeInfo":"[INFO]",
"headerConfigChecker":"VÉRIFICATEUR DE CONFIGURATION",
"headerDescription":"vérifiez les erreurs dans vos fichiers de config!",
"footerError":"le bot ne démarrera pas tant que tous les {0} ne sont pas corrigés!",
"footerWarning":"il est recommandé de corriger tous les {0} avant de commencer!",
"footerSupport":"SUPPORT: {0} - DOCS: {1}",
"compactInformation":"utilisez {0} pour plus d'informations!",
"dataPath":"chemin",
"dataDocs":"docs",
"dataMessages":"message"
},
"messages":{
"stringTooShort":"Cette chaîne ne peut pas être plus courte que {0} caractères!",
"stringTooLong":"Cette chaîne ne peut pas être plus longue que {0} caractères!",
"stringLengthInvalid":"Cette chaîne doit comporter {0} caractères!",
"stringStartsWith":"Cette chaîne doit commencer par {0}!",
"stringEndsWith":"Cette chaîne doit se terminer par {0}!",
"stringContains":"Cette chaîne doit contenir {0}!",
"stringChoices":"Cette chaîne ne peut être que l'une des valeurs suivantes : {0}!",
"stringRegex":"Cette chaîne est invalide!",
"stringInvertedContains":"Cette chaîne ne peut pas contenir {0}!",
"stringLowercase":"Cette chaîne doit être écrite uniquement en minuscules!",
"stringUppercase":"Cette chaîne doit être écrite uniquement en majuscules!",
"stringSpecialCharacters":"Cette chaîne ne peut pas contenir de caractères spéciaux! (a-z, 0-9 et espace uniquement)",
"stringNoSpaces":"Cette chaîne ne peut pas contenir d'espaces!",
"stringCapitalWord":"Il est recommandé que chaque mot de cette chaîne commence par une majuscule!",
"stringCapitalSentence":"Il semble que certaines phrases dans cette chaîne ne commencent pas par une majuscule!",
"stringPunctuation":"Il semble que la phrase dans cette chaîne ne se termine pas par un signe de ponctuation!",
"numberTooShort":"Ce nombre ne peut pas être plus court que {0} caractères!",
"numberTooLong":"Ce nombre ne peut pas être plus long que {0} caractères!",
"numberLengthInvalid":"Ce nombre doit comporter {0} caractères!",
"numberTooSmall":"Ce nombre doit être au moins {0}!",
"numberTooLarge":"Ce nombre doit être au maximum {0}!",
"numberNotEqual":"Ce nombre doit être {0}!",
"numberStep":"Ce nombre doit être un multiple de {0}!",
"numberStepOffset":"Ce nombre doit être un multiple de {0} en commençant par {1}!",
"numberStartsWith":"Ce nombre doit commencer par {0}!",
"numberEndsWith":"Ce nombre doit se terminer par {0}!",
"numberContains":"Ce nombre doit contenir {0}!",
"numberChoices":"Ce nombre ne peut être que l'une des valeurs suivantes : {0}!",
"numberFloat":"Ce nombre ne peut pas être un décimal!",
"numberNegative":"Ce nombre ne peut pas être négatif!",
"numberPositive":"Ce nombre ne peut pas être positif!",
"numberZero":"Ce nombre ne peut pas être zéro!",
"numberNan":"Ce nombre ne peut pas être NaN (Not A Number)!",
"numberInvertedContains":"Ce nombre ne peut pas contenir {0}!",
"booleanTrue":"Ce booléen ne peut pas être vrai!",
"booleanFalse":"Ce booléen ne peut pas être faux!",
"arrayEmptyDisabled":"Ce tableau ne peut pas être vide!",
"arrayEmptyRequired":"Ce tableau doit être vide!",
"arrayTooShort":"Ce tableau doit avoir une longueur d'au moins {0}!",
"arrayTooLong":"Ce tableau doit avoir une longueur d'au plus {0}!",
"arrayLengthInvalid":"Ce tableau doit avoir une longueur de {0}!",
"arrayInvalidTypes":"Ce tableau ne peut contenir que les types suivants : {0}!",
"arrayDouble":"Ce tableau n'autorise pas la même valeur deux fois!",
"discordInvalidId":"Ceci est un identifiant de {0} Discord invalide!",
"discordInvalidIdOptions":"Ceci est un identifiant de {0} Discord invalide! Vous pouvez également utiliser l'un de ceux-ci: {1}!",
"discordInvalidToken":"Ceci est un token Discord invalide (syntactiquement)!",
"colorInvalid":"Ceci est une couleur hex invalide!",
"emojiTooShort":"Cette chaîne doit contenir au moins {0} émojis!",
"emojiTooLong":"Cette chaîne doit contenir au plus {0} émojis!",
"emojiCustom":"Cet émoji ne peut pas être un émoji Discord personnalisé!",
"emojiInvalid":"Ceci est un émoji invalide!",
"urlInvalid":"Cette URL est invalide!",
"urlInvalidHttp":"Cette URL ne peut utiliser que le protocole https://!",
"urlInvalidProtocol":"Cette URL ne peut utiliser que les protocoles http:// et https://!",
"urlInvalidHostname":"Cette URL a un nom d'hôte non autorisé!",
"urlInvalidExtension":"Cette URL a une extension invalide! Choisissez parmi : {0}!",
"urlInvalidPath":"Cette URL a un chemin invalide!",
"idNotUnique":"Cet identifiant n'est pas unique, utilisez un autre identifiant à la place!",
"idNonExistent":"L'identifiant {0} n'existe pas!",
"invalidType":"Cette propriété doit être du type: {0}!",
"propertyMissing":"La propriété {0} est manquante dans cet objet!",
"propertyOptional":"La propriété {0} est optionnelle dans cet objet!",
"objectDisabled":"Cet objet est désactivé, activez-le en utilisant {0}!",
"nullInvalid":"Cette propriété ne peut pas être nulle!",
"switchInvalidType":"Cela doit être l'un des types suivants: {0}!",
"objectSwitchInvalid":"Cet objet doit être l'un des types suivants : {0}!",
"invalidLanguage":"Ceci est une langue invalide!",
"invalidButton":"Ce bouton doit avoir au moins un {0} ou {1}!",
"unusedOption":"L'option {0} n'est utilisée nulle part!",
"unusedQuestion":"La question {0} n'est utilisée nulle part!",
"dropdownOption":"Un panneau avec un menu déroulant activé ne peut contenir que des options du type 'ticket'!",
"customInvalidVersion":"La version spécifiée dans votre config ne correspond pas! Assurez-vous d'avoir mis à jour la config vers la dernière version!"
}
},
"actions":{
"buttons":{
"create":"Visiter le Ticket",
"close":"Fermer le Ticket",
"delete":"Supprimer le Ticket",
"reopen":"Rouvrir le Ticket",
"claim":"Réclamer le ticket",
"unclaim":"Libérer le Ticket",
"pin":"Épingler le Ticket",
"unpin":"Désépingler le Ticket",
"clear":"Supprimer les Tickets",
"helpSwitchSlash":"Voir les Commandes Slash",
"helpSwitchText":"Voir les Commandes Textuelles",
"helpPage":"Page {0}",
"withReason":"Avec Raison",
"withoutTranscript":"Sans Transcription"
},
"titles":{
"created":"Ticket Créé",
"close":"Ticket Fermé",
"delete":"Ticket Supprimé",
"reopen":"Ticket Rouvert",
"claim":"Ticket Pris en Charge",
"unclaim":"Ticket libéré",
"pin":"Ticket Épinglé",
"unpin":"Ticket Désépinglé",
"rename":"Ticket Renommé",
"move":"Ticket Déplacé",
"add":"Utilisateur Ajouté au Ticket",
"remove":"Utilisateur Retiré du Ticket",
"help":"Commandes Disponibles",
"statsReset":"Réinitialiser les Statistiques",
"blacklistAdd":"Utilisateur Ajouté à la Liste Noire",
"blacklistRemove":"Utilisateur Retiré de la Liste Noire",
"blacklistGet":"Utilisateur en Liste Noire",
"blacklistView":"Liste Noire Actuelle",
"blacklistAddDm":"Ajouté à la Liste Noire",
"blacklistRemoveDm":"Retiré de la Liste Noire",
"clear":"Tickets Supprimés",
"clearTickets":"Effacer les tickets",
"roles":"Rôles Mis à Jour",
"autoclose":"Ticket Fermé Automatiquement",
"autocloseEnabled":"Fermeture Automatique Activée",
"autocloseDisabled":"Fermeture Automatique Désactivée",
"autodelete":"Ticket Supprimé Automatiquement",
"autodeleteEnabled":"Suppression Automatique Activée",
"autodeleteDisabled":"Suppression Automatique Désactivée",
"topicSet":"Sujet modifié",
"prioritySet":"Priorité modifiée",
"priorityGet":"Priorité du ticket",
"transfer":"Ticket transféré"
},
"descriptions":{
"create":"Votre ticket a été créé. Cliquez sur le bouton ci-dessous pour y accéder!",
"close":"Le ticket a été fermé avec succès!",
"delete":"Le ticket a été supprimé avec succès!",
"reopen":"Le ticket a été rouvert avec succès!",
"claim":"Le ticket a été pris en charge avec succès!",
"unclaim":"Le ticket a été libéré avec succès!",
"pin":"Le ticket a été épinglé avec succès!",
"unpin":"Le ticket a été désépinglé avec succès!",
"rename":"Le ticket a été renommé en {0} avec succès!",
"move":"Le ticket a été déplacé vers {0} avec succès!",
"add":"{0} a été ajouté au ticket avec succès!",
"remove":"{0} a été retiré du ticket avec succès!",
"helpExplanation":"`<nom>` => paramètre requis\n`[nom]` => paramètre optionnel",
"statsReset":"Les statistiques du bot ont été réinitialisées avec succès!",
"statsError":"Impossible de visualiser les statistiques du ticket!\n{0} n'est pas un ticket!",
"blacklistAdd":"{0} a été ajouté à la liste noire avec succès!",
"blacklistRemove":"{0} a été retiré de la liste noire avec succès!",
"blacklistGetSuccess":"{0} est actuellement sur la liste noire!",
"blacklistGetEmpty":"{0} n'est actuellement pas sur la liste noire!",
"blacklistViewEmpty":"Personne n'a encore été ajouté à la liste noire!",
"blacklistViewTip":"Utilisez \"/blacklist add\" pour ajouter un utilisateur à la liste noire!",
"clearVerify":"Êtes-vous sûr de vouloir supprimer plusieurs tickets?\nCette action est irréversible!",
"clearReady":"{0} tickets ont été supprimés avec succès!",
"rolesEmpty":"Aucun rôle n'a été mis à jour!",
"autocloseLeave":"Ce ticket a été fermé automatiquement parce que le créateur a quitté le serveur!",
"autocloseTimeout":"Ce ticket a été fermé automatiquement car il est resté inactif pendant plus de `{0}h`!",
"autodeleteLeave":"Ce ticket a été supprimé automatiquement parce que le créateur a quitté le serveur!",
"autodeleteTimeout":"Ce ticket a été supprimé automatiquement car il est resté inactif pendant plus de `{0} jours`!",
"autocloseEnabled":"La fermeture automatique a été activée dans ce ticket!\nIl sera fermé lorsqu'il restera inactif pendant plus de `{0}h`!",
"autocloseDisabled":"La fermeture automatique a été désactivée dans ce ticket!\nIl ne sera plus fermé automatiquement!",
"autodeleteEnabled":"La suppression automatique a été activée dans ce ticket!\nIl sera supprimé lorsqu'il restera inactif pendant plus de `{0} jours`!",
"autodeleteDisabled":"La suppression automatique a été désactivée dans ce ticket!\nIl ne sera plus supprimé automatiquement!",
"ticketMessageLimit":"Vous ne pouvez créer que {0} ticket(s) en même temps!",
"ticketMessageAutoclose":"Ce ticket sera fermé automatiquement après {0}h d'inactivité!",
"ticketMessageAutodelete":"Ce ticket sera supprimé automatiquement après {0} jours d'inactivité!",
"panelReady":"Le panneau est disponible dans le message suivant!\nCe message peut maintenant être supprimé!",
"topicSet":"Le sujet du salon a été modifié par {0} avec succès!",
"prioritySet":"La priorité du ticket a été modifiée en {0} par {1} avec succès!",
"priorityGet":"La priorité actuelle de ce ticket est {0}.",
"transfer":"La propriété de ce ticket a été transférée de {0} à {1} par {2} avec succès!"
},
"modal":{
"closePlaceholder":"Pourquoi avez-vous fermé ce ticket?",
"deletePlaceholder":"Pourquoi avez-vous supprimé ce ticket?",
"reopenPlaceholder":"Pourquoi avez-vous rouvert ce ticket?",
"claimPlaceholder":"Pourquoi avez-vous pris en charge ce ticket?",
"unclaimPlaceholder":"Pourquoi avez-vous libéré ce ticket?",
"pinPlaceholder":"Pourquoi avez-vous épinglé ce ticket?",
"unpinPlaceholder":"Pourquoi avez-vous désépinglé ce ticket?"
},
"logs":{
"createLog":"Un nouveau ticket a été créé par {0}!",
"closeLog":"Ce ticket a été fermé par {0}!",
"closeDm":"Votre ticket a été fermé sur notre serveur!",
"deleteLog":"Ce ticket a été supprimé par {0}!",
"deleteDm":"Votre ticket a été supprimé sur notre serveur!",
"reopenLog":"Ce ticket a été rouvert par {0}!",
"reopenDm":"Votre ticket a été rouvert sur notre serveur!",
"claimLog":"Ce ticket a été pris en charge par {0}!",
"claimDm":"Votre ticket a été pris en charge sur notre serveur!",
"unclaimLog":"Ce ticket a été libéré par {0}!",
"unclaimDm":"Votre ticket a été libéré sur notre serveur!",
"pinLog":"Ce ticket a été épinglé par {0}!",
"pinDm":"Votre ticket a été épinglé sur notre serveur!",
"unpinLog":"Ce ticket a été désépinglé par {0}!",
"unpinDm":"Votre ticket a été désépinglé sur notre serveur!",
"renameLog":"Ce ticket a été renommé en {0} par {1}!",
"renameDm":"Votre ticket a été renommé en {0} sur notre serveur!",
"moveLog":"Ce ticket a été déplacé vers {0} par {1}!",
"moveDm":"Votre ticket a été déplacé vers {0} sur notre serveur!",
"addLog":"{0} a été ajouté à ce ticket par {1}!",
"addDm":"{0} a été ajouté à votre ticket sur notre serveur!",
"removeLog":"{0} a été retiré de ce ticket par {1}!",
"removeDm":"{0} a été retiré de votre ticket sur notre serveur!",
"blacklistAddLog":"{0} a été ajouté à la liste noire par {1}!",
"blacklistRemoveLog":"{0} a été retiré de la liste noire par {1}!",
"blacklistAddDm":"Vous avez été ajouté à la liste noire sur notre serveur!\nDésormais, vous ne pouvez pas créer de ticket!",
"blacklistRemoveDm":"Vous avez été retiré de la liste noire sur notre serveur!\nVous pouvez désormais créer des tickets à nouveau!",
"clearLog":"{0} tickets ont été supprimés par {1}!",
"transferLog":"La propriété de ce ticket a été transférée de {0} à {1} par {2}!",
"transferDm":"La propriété de votre ticket a été transférée de {0} à {1} sur notre serveur!",
"prioritySetLog":"La priorité de ce ticket a été modifiée en {0} par {1}!",
"prioritySetDm":"La priorité de votre ticket a été modifiée en {0} sur notre serveur!",
"roleUpdateLog":"{0} a mis à jour ses rôles!",
"roleUpdateDm":"Vos rôles sur notre serveur ont été mis à jour!"
}
},
"transcripts":{
"success":{
"visit":"Visiter la Transcription",
"ready":"Transcription Créée",
"textFileDescription":"Ceci est la transcription textuelle d'un ticket supprimé!",
"htmlProgress":"Veuillez patienter pendant que cette transcription HTML est en cours de traitement...",
"createdChannel":"Une nouvelle transcription {0} a été créée sur le serveur!",
"createdCreator":"Une nouvelle transcription {0} a été créée pour l'un de vos tickets!",
"createdParticipant":"Une nouvelle transcription {0} a été créée dans l'un des tickets auxquels vous avez participé!",
"createdActiveAdmin":"Une nouvelle transcription {0} a été créée dans l'un des tickets auxquels vous avez participé en tant qu'admin!",
"createdEveryAdmin":"Une nouvelle transcription {0} a été créée dans l'un des tickets où vous étiez admin!",
"createdOther":"Une nouvelle transcription {0} a été créée!"
},
"errors":{
"retry":"Réessayer",
"continue":"Supprimer Sans Transcription",
"backup":"Créer une Transcription de Sauvegarde",
"error":"Une erreur s'est produite lors de la création de la transcription.\nQue souhaitez-vous faire?\n\nCe ticket ne sera pas supprimé tant que vous n'aurez pas cliqué sur l'un de ces boutons.",
"title":"Erreur de transcription"
},
"text":{
"messagesTitle":"MESSAGES",
"embedTitle":"EMBED",
"fileTitle":"FICHIER",
"fieldsTitle":"CHAMPS",
"reactionsTitle":"RÉACTIONS",
"statsTitle":"STATS",
"emptyContent":"<contenu vide>",
"noTitle":"<sans-titre>",
"noDesc":"<sans-description>"
}
},
"errors":{
"titles":{
"internalError":"Erreur Interne",
"optionMissing":"Option de Commande Manquante",
"optionInvalid":"Option de Commande Invalide",
"unknownCommand":"Commande Inconnue",
"noPermissions":"Pas de Permissions",
"unknownTicket":"Ticket Inconnu",
"deprecatedTicket":"Ticket Déprécié",
"unknownOption":"Option Inconnue",
"unknownPanel":"Panneau Inconnu",
"notInGuild":"Pas Dans le Serveur",
"channelRename":"Impossible de Renommer le Canal",
"busy":"Ticket Occupé",
"permissionError":"Erreur de permission"
},
"descriptions":{
"askForInfo":"Contactez le propriétaire de ce bot pour plus d'informations!",
"askForInfoResolve":"Contactez le propriétaire du bot si ce problème ne se résout pas après quelques essais.",
"internalError":"Échec de la réponse à ce {0} en raison d'une erreur interne!",
"optionMissing":"Un paramètre requis est manquant dans cette commande!",
"optionInvalid":"Un paramètre dans cette commande est invalide!",
"optionInvalidChoose":"Choisissez entre",
"unknownCommand":"Essayez de visiter le menu d'aide pour plus d'informations!",
"noPermissions":"Vous n'êtes pas autorisé à utiliser ce {0}!",
"noPermissionsList":"Permissions Requises : (une d'entre elles)",
"noPermissionsCooldown":"Vous n'êtes pas autorisé à utiliser ce {0} car vous êtes en cooldown!",
"noPermissionsBlacklist":"Vous n'êtes pas autorisé à utiliser ce {0} car vous avez été mis sur la liste noire!",
"noPermissionsLimitGlobal":"Vous n'êtes pas autorisé à créer un ticket car le serveur a atteint la limite maximale de tickets!",
"noPermissionsLimitGlobalUser":"Vous n'êtes pas autorisé à créer un ticket car vous avez atteint la limite maximale de tickets!",
"noPermissionsLimitOption":"Vous n'êtes pas autorisé à créer un ticket car le serveur a atteint la limite maximale de tickets pour cette option!",
"noPermissionsLimitOptionUser":"Vous n'êtes pas autorisé à créer un ticket car vous avez atteint la limite maximale de tickets pour cette option!",
"unknownTicket":"Essayez cette commande à nouveau dans un ticket valide!",
"deprecatedTicket":"Le canal actuel n'est pas un ticket valide! Il pourrait s'agir d'un ticket provenant d'une ancienne version d'Open Ticket!",
"notInGuild":"Ce {0} ne fonctionne pas en DM! Veuillez réessayer dans un serveur!",
"channelRename":"En raison des limitations de taux de Discord, il est actuellement impossible pour le bot de renommer le canal. Le canal sera automatiquement renommé après 10 minutes si le bot n'est pas redémarré.",
"channelRenameSource":"La source de cette erreur est : {0}",
"busy":"Impossible d'utiliser ce {0}!\nLe ticket est actuellement en cours de traitement par le bot.\n\nVeuillez réessayer dans quelques secondes!",
"closeBeforeMessage":"Ce ticket ne peut pas être fermé/supprimé avant qu'un utilisateur ait envoyé un message.",
"closeBeforeAdminMessage":"Ce ticket ne peut pas être fermé/supprimé avant qu'un admin de ticket ou un membre du support ait envoyé un message.",
"unableToCreateTicket":"Vous ne pouvez pas créer de ticket."
},
"optionInvalidReasons":{
"stringRegex":"La valeur ne correspond pas au modèle!",
"stringMinLength":"La valeur doit comporter au moins {0} caractères!",
"stringMaxLength":"La valeur doit comporter au maximum {0} caractères!",
"numberInvalid":"Nombre invalide!",
"numberMin":"Le nombre doit être au moins {0}!",
"numberMax":"Le nombre doit être au maximum {0}!",
"numberDecimal":"Le nombre ne peut pas être un décimal!",
"numberNegative":"Le nombre ne peut pas être négatif!",
"numberPositive":"Le nombre ne peut pas être positif!",
"numberZero":"Le nombre ne peut pas être zéro!",
"channelNotFound":"Impossible de trouver le canal!",
"userNotFound":"Impossible de trouver l'utilisateur!",
"roleNotFound":"Impossible de trouver le rôle!",
"memberNotFound":"Impossible de trouver l'utilisateur!",
"mentionableNotFound":"Impossible de trouver l'utilisateur ou le rôle!",
"channelType":"Type de canal invalide!",
"notInGuild":"Cette option nécessite que vous soyez dans un serveur!"
},
"permissions":{
"developer":"Vous devez être le développeur du bot.",
"owner":"Vous devez être le propriétaire du serveur.",
"admin":"Vous devez être un administrateur du serveur.",
"moderator":"Vous devez être un modérateur.",
"support":"Vous devez faire partie de l'équipe de support.",
"member":"Vous devez être membre.",
"discord-administrator":"Vous devez avoir la permission `ADMINISTRATOR`."
},
"actionInvalid":{
"close":"Le ticket est déjà fermé!",
"reopen":"Le ticket n'est pas encore fermé!",
"claim":"Le ticket est déjà pris en charge!",
"unclaim":"Le ticket n'est pas encore pris en charge!",
"pin":"Le ticket est déjà épinglé!",
"unpin":"Le ticket n'est pas encore épinglé!",
"add":"Cet utilisateur a déjà accès au ticket!",
"remove":"Impossible de retirer cet utilisateur du ticket!"
}
},
"params":{
"uppercase":{
"ticket":"Ticket",
"tickets":"Tickets",
"reason":"Raison",
"creator":"Créateur",
"remaining":"Temps Restant",
"added":"Ajouté",
"removed":"Retiré",
"filter":"Filtre",
"method":"Méthode",
"type":"Type",
"blacklisted":"Liste Noire",
"panel":"Panneau",
"command":"Commande",
"system":"Système",
"true":"Vrai",
"false":"Faux",
"syntax":"Syntaxe",
"originalName":"Nom Original",
"newName":"Nouveau Nom",
"until":"Jusqu'à",
"validOptions":"Options Valides",
"validPanels":"Panneaux Valides",
"autoclose":"Fermeture Automatique",
"autodelete":"Suppression Automatique",
"startupDate":"Date de Démarrage",
"version":"Version",
"name":"Nom",
"role":"Rôle",
"status":"Statut",
"claimed":"Pris en Charge",
"pinned":"Épinglé",
"creationDate":"Date de Création",
"noone":"Personne",
"open":"Ouvert",
"closed":"Fermé",
"priority":"Priorité",
"participants":"Participants",
"yes":"Oui",
"no":"Non",
"option":"Option",
"topic":"Sujet",
"uptime":"Temps de fonctionnement",
"messages":"Messages",
"embeds":"Embeds",
"files":"Fichiers",
"components":"Composants",
"cooldown":"Délai",
"maxTickets":"Tickets max",
"admins":"Admins",
"roles":"Rôles",
"size":"Taille"
},
"lowercase":{
"text":"texte",
"html":"html",
"command":"commande",
"modal":"modal",
"button":"bouton",
"dropdown":"menu déroulant",
"method":"méthode"
}
},
"commands":{
"reason":"Spécifiez une raison optionnelle qui sera visible dans les journaux.",
"help":"Obtenez une liste de toutes les commandes disponibles.",
"panel":"Générez un message avec un menu déroulant ou des boutons (pour la création de tickets).",
"panelId":"L'identifiant du panneau que vous souhaitez générer.",
"panelAutoUpdate":"Voulez-vous que ce panneau se mette à jour automatiquement lorsqu'il est modifié?",
"ticket":"Créez instantanément un ticket.",
"ticketId":"L'identifiant du ticket que vous souhaitez créer.",
"close":"Fermez un ticket.",
"delete":"Supprimez un ticket.",
"deleteNoTranscript":"Supprimez ce ticket sans créer de transcription.",
"reopen":"Rouvrez un ticket.",
"claim":"Prendre en charge un ticket.",
"claimUser":"Prendre en charge ce ticket pour quelqu'un d'autre au lieu de vous-même.",
"unclaim":"Libérer un ticket.",
"pin":"Épinglez un ticket.",
"unpin":"Désépingler un ticket.",
"move":"Déplacez un ticket.",
"moveId":"L'identifiant de l'option vers laquelle vous souhaitez déplacer.",
"rename":"Renommez un ticket.",
"renameName":"Le nouveau nom pour ce ticket.",
"add":"Ajoutez un utilisateur à un ticket.",
"addUser":"L'utilisateur à ajouter.",
"remove":"Retirez un utilisateur d'un ticket.",
"removeUser":"L'utilisateur à retirer.",
"blacklist":"Gérez la liste noire des tickets.",
"blacklistView":"Voir la liste noire actuelle.",
"blacklistAdd":"Ajoutez un utilisateur à la liste noire.",
"blacklistRemove":"Retirez un utilisateur de la liste noire.",
"blacklistGet":"Obtenez les détails d'un utilisateur mis sur la liste noire.",
"blacklistGetUser":"L'utilisateur dont vous souhaitez obtenir les détails.",
"stats":"Voir les statistiques du bot, d'un membre ou d'un ticket.",
"statsReset":"Réinitialisez toutes les statistiques du bot (et commencez à compter à partir de zéro).",
"statsGlobal":"Voir les statistiques globales.",
"statsUser":"Voir les statistiques d'un utilisateur dans le serveur.",
"statsUserUser":"L'utilisateur à afficher.",
"statsTicket":"Voir les statistiques d'un ticket dans le serveur.",
"statsTicketTicket":"Le ticket à afficher.",
"clear":"Supprimez plusieurs tickets en même temps.",
"clearFilter":"Le filtre pour supprimer les tickets.",
"clearFilters":{
"all":"Tous",
"open":"Ouverts",
"close":"Fermés",
"claim":"Pris en charge",
"unclaim":"Non pris en charge",
"pin":"Épinglés",
"unpin":"Désépinglés",
"autoclose":"Fermés automatiquement"
},
"autoclose":"Gérez la fermeture automatique dans un ticket.",
"autocloseDisable":"Désactivez la fermeture automatique dans ce ticket.",
"autocloseEnable":"Activez la fermeture automatique dans ce ticket.",
"autocloseEnableTime":"Le nombre d'heures d'inactivité nécessaire pour fermer ce ticket.",
"autodelete":"Gérez la suppression automatique dans un ticket.",
"autodeleteDisable":"Désactivez la suppression automatique dans ce ticket.",
"autodeleteEnable":"Activez la suppression automatique dans ce ticket.",
"autodeleteEnableTime":"Le nombre de jours d'inactivité nécessaire pour supprimer ce ticket.",
"topic":"Gérer le sujet du salon de ticket.",
"topicSet":"Définir le sujet du salon de ticket.",
"topicValue":"Le nouveau sujet du salon.",
"topicList":"Obtenir une liste de tous les tickets avec leur sujet et stats.",
"priority":"Gérer la priorité du ticket.",
"prioritySet":"Définir la priorité du ticket.",
"priorityValue":"La priorité du salon.",
"priorityGet":"Obtenir la priorité du ticket.",
"priorityList":"Obtenir une liste de tous les tickets avec leur statut de priorité.",
"transfer":"Transférer la propriété du ticket d'un utilisateur à un autre.",
"transferUser":"L'utilisateur vers lequel transférer."
},
"helpMenu":{
"help":"Obtenez une liste de toutes les commandes disponibles.",
"ticket":"Créez instantanément un ticket.",
"close":"Fermez un ticket, cela désactive l'écriture dans ce canal.",
"delete":"Supprimez un ticket, cela crée une transcription lorsqu'elle est activée.",
"reopen":"Rouvrez un ticket, cela active à nouveau l'écriture dans ce canal.",
"pin":"Épinglez un ticket. Cela déplacera le ticket en haut et ajoutera un émoji '📌' au nom.",
"unpin":"Désépingler un ticket. Le ticket restera à sa position mais perdra l'émoji '📌'.",
"move":"Déplacez un ticket. Cela changera le type de ce ticket.",
"rename":"Renommez un ticket. Cela changera le nom du canal de ce ticket.",
"claim":"Prendre en charge un ticket. Ainsi, vous pouvez informer votre équipe que vous gérez ce ticket.",
"unclaim":"Libérer un ticket. Ainsi, vous pouvez informer votre équipe que ce ticket est à nouveau libre.",
"add":"Ajoutez un utilisateur à un ticket. Cela permettra à l'utilisateur de lire et d'écrire dans ce ticket.",
"remove":"Retirez un utilisateur d'un ticket. Cela supprimera la capacité de lire et d'écrire pour un utilisateur dans ce ticket.",
"panel":"Générez un message avec un menu déroulant ou des boutons (pour la création de tickets).",
"blacklistView":"Voir la liste noire actuelle.",
"blacklistAdd":"Ajoutez un utilisateur à la liste noire.",
"blacklistRemove":"Retirez un utilisateur de la liste noire.",
"blacklistGet":"Obtenez les détails d'un utilisateur mis sur la liste noire.",
"statsGlobal":"Voir les statistiques globales.",
"statsTicket":"Voir les statistiques d'un ticket dans le serveur.",
"statsUser":"Voir les statistiques d'un utilisateur dans le serveur.",
"statsReset":"Réinitialisez toutes les statistiques du bot (et commencez à compter à partir de zéro).",
"autocloseDisable":"Désactivez la fermeture automatique dans ce ticket.",
"autocloseEnable":"Activez la fermeture automatique dans ce ticket.",
"autodeleteDisable":"Désactivez la suppression automatique dans ce ticket.",
"autodeleteEnable":"Activez la suppression automatique dans ce ticket.",
"categories":{
"general":"Commandes générales",
"basicTicket":"Commandes de ticket basiques",
"advancedTicket":"Commandes de ticket avancées",
"userTicket":"Commandes de ticket utilisateur",
"admin":"Commandes admin",
"advanced":"Commandes avancées",
"extra":"Commandes extra"
}
},
"stats":{
"scopes":{
"global":"Statistiques Globales",
"system":"Statistiques Système",
"user":"Statistiques Utilisateur",
"ticket":"Statistiques Ticket",
"participants":"Participants",
"messages":"Messages"
},
"properties":{
"ticketsCreated":"Tickets Créés",
"ticketsClosed":"Tickets Fermés",
"ticketsDeleted":"Tickets Supprimés",
"ticketsReopened":"Tickets Rouverts",
"ticketsAutoclosed":"Tickets Fermés Automatiquement",
"ticketsClaimed":"Tickets pris en charge",
"ticketsPinned":"Tickets Épinglés",
"ticketsMoved":"Tickets Déplacés",
"usersBlacklisted":"Utilisateurs en Liste Noire",
"transcriptsCreated":"Transcriptions Créées",
"ticketsAutodeleted":"Tickets auto-supprimés",
"ticketsTransferred":"Tickets transférés",
"ticketVolume":"Volume de tickets",
"averageTickets":"Moyenne de tickets/utilisateur",
"currentTickets":"Tickets en cours",
"age":"Âge du ticket",
"responseTime":"Temps de réponse",
"resolutionTime":"Temps de résolution",
"createdOn":"Créé le",
"createdBy":"Créé par",
"closedOn":"Fermé le",
"closedBy":"Fermé par",
"claimedOn":"Pris en charge le",
"claimedBy":"Pris en charge par",
"pinnedOn":"Épinglé le",
"pinnedBy":"Épinglé par",
"deletedOn":"Supprimé le",
"deletedBy":"Supprimé par"
},
"roles":{
"developer":"Développeur",
"serverOwner":"Propriétaire du serveur",
"serverAdmin":"Admin du serveur",
"moderator":"Équipe de modération",
"support":"Équipe de support",
"member":"Membre"
}
},
"panel":{
"selectTicket":"Sélectionnez votre ticket",
"selectRole":"Sélectionnez votre rôle",
"selectOption":"Sélectionnez votre option"
},
"priorities":{
"urgent":"Urgent",
"veryHigh":"Très élevée",
"high":"Élevée",
"normal":"Normale",
"low":"Faible",
"veryLow":"Très faible",
"none":"Aucune"
}
}
+608
View File
@@ -0,0 +1,608 @@
{
"_TRANSLATION":{
"otversion":"v4.1.3",
"translators":["benzorich"],
"lastedited":"16/02/2026",
"language":"German",
"automated":false
},
"checker":{
"system":{
"typeError":"[ERROR]",
"headerOpenTicket":"OPEN TICKET",
"typeWarning":"[WARNUNG]",
"typeInfo":"[INFO]",
"headerConfigChecker":"CONFIG CHECKER",
"headerDescription":"Prüfen Sie auf Fehler in Ihrer Konfigurationsdateien!",
"footerError":"Der Bot wird nicht starten, bis alle {0}'s repariert sind!",
"footerWarning":"Es wird empfohlen, vor dem Start alle {0}'s zu korrigieren!",
"footerSupport":"SUPPORT: {0} - DOCS: {1}",
"compactInformation":"Verwenden Sie {0} für weitere Informationen!",
"dataPath":"Pfad",
"dataDocs":"docs",
"dataMessages":"Nachricht"
},
"messages":{
"stringTooShort":"Diese Zeichenfolge kann nicht kürzer als {0} Zeichen sein!",
"stringTooLong":"Diese Zeichenfolge darf nicht länger als {0} Zeichen sein!",
"stringLengthInvalid":"Diese Zeichenfolge muss {0} Zeichen lang sein!",
"stringStartsWith":"Diese Zeichenfolge muss mit {0} beginnen!",
"stringEndsWith":"Diese Zeichenfolge muss mit {0} enden!",
"stringContains":"Diese Zeichenfolge muss {0} enthalten!",
"stringChoices":"Diese Zeichenfolge kann nur einen der folgenden Werte annehmen: {0}!",
"stringRegex":"Diese Zeichenfolge ist ungültig!",
"stringInvertedContains":"Diese Zeichenkette darf {0} nicht enthalten!",
"stringLowercase":"Diese Zeichenkette muss ausschließlich in Kleinbuchstaben geschrieben werden!",
"stringUppercase":"Diese Zeichenkette muss ausschließlich in Großbuchstaben geschrieben werden!",
"stringSpecialCharacters":"Diese Zeichenkette darf keine Sonderzeichen enthalten! (nur a-z, 0-9 & Leerzeichen)",
"stringNoSpaces":"Diese Zeichenkette darf keine Leerzeichen enthalten!",
"stringCapitalWord":"Es wird empfohlen, dass jedes Wort in dieser Zeichenkette mit einem Großbuchstaben beginnt!",
"stringCapitalSentence":"Es sieht so aus, als würden einige Sätze in dieser Zeichenkette nicht mit einem Großbuchstaben beginnen!",
"stringPunctuation":"Es sieht so aus, als würde der Satz in dieser Zeichenkette nicht mit einem Satzzeichen enden!",
"numberTooShort":"Diese Zahl kann nicht kürzer als {0} Zeichen sein!",
"numberTooLong":"Diese Nummer darf nicht länger als {0} Zeichen sein!",
"numberLengthInvalid":"Diese Nummer muss {0} Zeichen lang sein!",
"numberTooSmall":"Diese Zahl muss mindestens {0} sein!",
"numberTooLarge":"Diese Zahl muss höchstens {0} sein!",
"numberNotEqual":"Diese Zahl muss {0} sein!",
"numberStep":"Diese Zahl muss ein Vielfaches von {0} sein!",
"numberStepOffset":"Diese Zahl muss ein Vielfaches von {0} sein und mit {1} beginnen!",
"numberStartsWith":"Diese Zahl muss mit {0} beginnen!",
"numberEndsWith":"Diese Zahl muss mit {0} enden!",
"numberContains":"Diese Zahl muss {0} enthalten!",
"numberChoices":"Diese Zahl kann nur einen der folgenden Werte annehmen: {0}!",
"numberFloat":"Diese Zahl kann keine Dezimalzahl sein!",
"numberNegative":"Diese Zahl kann nicht negativ sein!",
"numberPositive":"Diese Zahl kann nicht positiv sein!",
"numberZero":"Diese Zahl kann nicht Null sein!",
"numberNan":"Diese Zahl darf nicht NaN (Not A Number) sein!",
"numberInvertedContains":"Diese Zahl darf {0} nicht enthalten!",
"booleanTrue":"Dieser boolean Wert kann nicht wahr sein!",
"booleanFalse":"Dieser boolean Wert kann nicht falsch sein!",
"arrayEmptyDisabled":"Dieses Array darf nicht leer sein!",
"arrayEmptyRequired":"Dieses Array muss leer sein!",
"arrayTooShort":"Dieses Array muss eine Länge von mindestens {0} haben!",
"arrayTooLong":"Dieses Array darf höchstens eine Länge von {0} haben!",
"arrayLengthInvalid":"Dieses Array muss eine Länge von {0} haben!",
"arrayInvalidTypes":"Dieses Array kann nur die folgenden Typen enthalten: {0}!",
"arrayDouble":"In diesem Array darf derselbe Wert nicht zweimal vorkommen!",
"discordInvalidId":"Dies ist eine ungültige Discord {0} id!",
"discordInvalidIdOptions":"Dies ist eine ungültige Discord {0} id! Du kannst auch eine der folgenden verwenden: {1}!",
"discordInvalidToken":"Das ist ein ungültiger Discord-Token (syntaktisch)!",
"colorInvalid":"Dies ist eine ungültige Hex-Farbe!",
"emojiTooShort":"Diese Zeichenfolge muss mindestens {0} Emojis enthalten!",
"emojiTooLong":"Diese Zeichenfolge darf höchstens {0} Emojis enthalten!",
"emojiCustom":"Dieses Emoji kann kein benutzerdefiniertes Discord-Emoji sein!",
"emojiInvalid":"Dies ist ein ungültiges Emoji!",
"urlInvalid":"Diese Url ist ungültig!",
"urlInvalidHttp":"Diese Url kann nur das https:// Protokoll verwenden!",
"urlInvalidProtocol":"Diese Url kann nur die Protokolle http:// & https:// verwenden!",
"urlInvalidHostname":"Diese Url hat einen unzulässigen Hostnamen!",
"urlInvalidExtension":"Diese Url hat eine ungültige Erweiterung! Wählen Sie zwischen: {0}!",
"urlInvalidPath":"Diese Url hat einen ungültigen Pfad!",
"idNotUnique":"Diese ID ist nicht eindeutig, verwenden Sie stattdessen eine andere ID!",
"idNonExistent":"Die ID {0} existiert nicht!",
"invalidType":"Diese Eigenschaft muss vom Typ sein: {0}!",
"propertyMissing":"Die Eigenschaft {0} fehlt in diesem Objekt!",
"propertyOptional":"Die Eigenschaft {0} ist in diesem Objekt optional!",
"objectDisabled":"Dieses Objekt ist deaktiviert, aktivieren Sie es mit {0}!",
"nullInvalid":"Diese Eigenschaft kann nicht null sein!",
"switchInvalidType":"Dies muss einer der folgenden Typen sein: {0}!",
"objectSwitchInvalid":"Dieses Objekt muss einer der folgenden Typen sein: {0}!",
"invalidLanguage":"Dies ist eine ungültige Sprache!",
"invalidButton":"Dieser Button muss mindestens eine {0} oder {1} enthalten!",
"unusedOption":"Die Option {0} wird nirgends verwendet!",
"unusedQuestion":"Die Frage {0} wird nirgends verwendet!",
"dropdownOption":"Ein Panel mit aktiviertem Dropdown kann nur Optionen vom Typ 'Ticket' enthalten!",
"customInvalidVersion":"Die in deiner Konfiguration angegebene Version stimmt nicht überein! Stelle sicher, dass du die Konfiguration auf die neueste Version aktualisiert hast!"
}
},
"actions":{
"buttons":{
"create":"Ticket besuchen",
"close":"Ticket schließen",
"delete":"Ticket löschen",
"reopen":"Ticket wieder öffnen",
"claim":"Ticket beanspruchen",
"unclaim":"Ticket nicht mehr beanspruchen",
"pin":"Ticket anpinnen",
"unpin":"Ticket abpinnen",
"clear":"Tickets löschen",
"helpSwitchSlash":"Slash-Befehle anzeigen",
"helpSwitchText":"Textbefehle anzeigen",
"helpPage":"Seite {0}",
"withReason":"Mit Grund",
"withoutTranscript":"Ohne Transkription"
},
"titles":{
"created":"Ticket erstellt",
"close":"Ticket geschlossen",
"delete":"Ticket Gelöscht",
"reopen":"Ticket wiedereröffnet",
"claim":"Ticket beansprucht",
"unclaim":"Ticket nicht mehr beanspruchen",
"pin":"Ticket angepinnt",
"unpin":"Ticket entpinnt",
"rename":"Ticket umbenannt",
"move":"Ticket verschoben",
"add":"Ticket-Benutzer hinzugefügt",
"remove":"Ticket-Benutzer entfernt",
"help":"Verfügbare Befehle",
"statsReset":"Statistiken zurücksetzen",
"blacklistAdd":"Benutzer auf der Blacklist",
"blacklistRemove":"Benutzer Freigegeben",
"blacklistGet":"Benutzer auf der Blacklist",
"blacklistView":"Aktuelle Blacklist",
"blacklistAddDm":"Zur Blacklist hinzugefügt",
"blacklistRemoveDm":"Von der Blacklist entfernen",
"clear":"Freigegebene Tickets",
"clearTickets":"Tickets Löschen",
"roles":"Aktualisierte Rollen",
"autoclose":"Ticket automatisch geschlossen",
"autocloseEnabled":"Automatisches schließen Aktiviert",
"autocloseDisabled":"Automatisches schließen Deaktiviert",
"autodelete":"Ticket automatisch gelöscht",
"autodeleteEnabled":"Automatisches Löschen Aktiviert",
"autodeleteDisabled":"Automatisches Löschen Deaktiviert",
"topicSet":"Thema Geändert",
"prioritySet":"Priorität Geändert",
"priorityGet":"Ticket-Priorität",
"transfer":"Ticket Übertragen"
},
"descriptions":{
"create":"Ihr Ticket wurde bereits erstellt. Klicken Sie auf die Button unten, um es zu öffnen!",
"close":"Das Ticket wurde erfolgreich geschlossen!",
"delete":"Das Ticket wurde erfolgreich gelöscht!",
"reopen":"Das Ticket wurde erfolgreich wiedereröffnet!",
"claim":"Das Ticket wurde erfolgreich beansprucht!",
"unclaim":"Das Ticket wurde erfolgreich freigegeben!",
"pin":"Das Ticket ist erfolgreich angepinnt worden!",
"unpin":"Das Ticket wurde erfolgreich entpinnt!",
"rename":"Das Ticket wurde erfolgreich in {0} umbenannt!",
"move":"Das Ticket wurde erfolgreich nach {0} verschoben!",
"add":"{0} wurde erfolgreich zum Ticket hinzugefügt!",
"remove":"{0} wurde erfolgreich aus dem Ticket entfernt!",
"helpExplanation":"`<name>` => erforderlicher Parameter\n`[name]` => optionaler Parameter",
"statsReset":"Die Bot-Statistiken wurden erfolgreich zurückgesetzt!",
"statsError":"Ticketstatistiken können nicht angezeigt werden!\n{0} ist kein Ticket!",
"blacklistAdd":"{0} wurde erfolgreich auf die Blacklist gesetzt!",
"blacklistRemove":"{0} wurde erfolgreich freigegeben!",
"blacklistGetSuccess":"{0} steht derzeit auf der Blacklist!",
"blacklistGetEmpty":"{0} steht derzeit nicht auf der Blacklist!",
"blacklistViewEmpty":"Es wurde noch niemand auf die Blacklist gesetzt!",
"blacklistViewTip":"Verwenden Sie \"/blacklist add\", um einen Benutzer auf die Blacklist zu setzen!",
"clearVerify":"Sind Sie sicher, dass Sie mehrere Tickets löschen möchten?\nDiese Aktion kann nicht rückgängig gemacht werden!",
"clearReady":"{0} Tickets wurden erfolgreich gelöscht!",
"rolesEmpty":"Es wurden keine Rollen aktualisiert!",
"autocloseLeave":"Dieses Ticket wurde automatisch geschlossen, weil der Ersteller den Server verlassen hat!",
"autocloseTimeout":"Dieses Ticket wurde automatisch geschlossen, da es seit mehr als `{0}h` inaktiv ist!",
"autodeleteLeave":"Dieses Ticket wurde automatisch gelöscht, weil der Ersteller den Server verlassen hat!",
"autodeleteTimeout":"Dieses Ticket wurde automatisch gelöscht, da es seit mehr als `{0} Tagen` inaktiv ist!",
"autocloseEnabled":"Autoclose wurde für dieses Ticket aktiviert! Es wird geschlossen, wenn es länger als `{0}h` inaktiv ist!",
"autocloseDisabled":"Autoclose wurde für dieses Ticket deaktiviert! Es wird nicht mehr automatisch geschlossen!",
"autodeleteEnabled":"Automatisches Löschen wurde für dieses Ticket aktiviert! Es wird gelöscht, wenn es länger als `{0} Tage` inaktiv ist!",
"autodeleteDisabled":"Automatisches Löschen wurde bei diesem Ticket deaktiviert! Es wird nicht mehr automatisch gelöscht!",
"ticketMessageLimit":"Sie können nur {0} Tickets gleichzeitig erstellen!",
"ticketMessageAutoclose":"Dieses Ticket wird automatisch geschlossen, wenn es {0}h lang inaktiv war!",
"ticketMessageAutodelete":"Dieses Ticket wird automatisch gelöscht, wenn es {0} Tage lang inaktiv war!",
"panelReady":"Das Panel ist in der folgenden Nachricht verfügbar!\nDiese Nachricht kann nun gelöscht werden!",
"topicSet":"Das Kanalthema wurde erfolgreich von {0} geändert!",
"prioritySet":"Die Ticket-Priorität wurde erfolgreich von {1} auf {0} geändert!",
"priorityGet":"Die aktuelle Priorität dieses Tickets ist {0}.",
"transfer":"Das Ticket wurde erfolgreich von {0} an {1} durch {2} übertragen!"
},
"modal":{
"closePlaceholder":"Warum haben Sie dieses Ticket geschlossen?",
"deletePlaceholder":"Warum haben Sie dieses Ticket gelöscht?",
"reopenPlaceholder":"Warum haben Sie dieses Ticket erneut geöffnet?",
"claimPlaceholder":"Warum haben Sie dieses Ticket beansprucht?",
"unclaimPlaceholder":"Warum haben Sie dieses Ticket nicht beansprucht?",
"pinPlaceholder":"Warum haben Sie dieses Ticket angepinnt?",
"unpinPlaceholder":"Warum haben Sie dieses Ticket entpinnt?"
},
"logs":{
"createLog":"Ein neues Ticket wurde von {0} erstellt!",
"closeLog":"Dieses Ticket wurde von {0} geschlossen!",
"closeDm":"Ihr Ticket wurde von unserem Server geschlossen!",
"deleteLog":"Dieses Ticket wurde von {0} gelöscht!",
"deleteDm":"Ihr Ticket wurde auf unserem Server gelöscht!",
"reopenLog":"Dieses Ticket wurde von {0} wiedereröffnet!",
"reopenDm":"Ihr Ticket wurde auf unserem Server wieder geöffnet!",
"claimLog":"Dieses Ticket wurde von {0} beansprucht!",
"claimDm":"Ihr Ticket wurde auf unserem Server beansprucht!",
"unclaimLog":"Dieses Ticket wurde von {0} nicht in Anspruch genommen!",
"unclaimDm":"Ihr Ticket wurde von unserem Server nicht beansprucht!",
"pinLog":"Dieses Ticket wurde von {0} angepinnt!",
"pinDm":"Ihr Ticket wurde an unseren Server angepinnt!",
"unpinLog":"Dieses Ticket wurde von {0} entpinnt!",
"unpinDm":"Ihr Ticket wurde auf unserem Server entpinnt!",
"renameLog":"Dieses Ticket wurde von {1} in {0} umbenannt!",
"renameDm":"Ihr Ticket wurde auf unserem Server in {0} umbenannt!",
"moveLog":"Dieses Ticket wurde von {1} nach {0} verschoben!",
"moveDm":"Ihr Ticket wurde auf {0} in unserem Server verschoben!",
"addLog":"{0} wurde von {1} zu diesem Ticket hinzugefügt!",
"addDm":"{0} wurde zu Ihrem Ticket auf unserem Server hinzugefügt!",
"removeLog":"{0} wurde von {1} aus diesem Ticket entfernt!",
"removeDm":"{0} wurde von Ihrem Ticket auf unserem Server entfernt!",
"blacklistAddLog":"{0} wurde von {1} auf die Blacklist gesetzt!",
"blacklistRemoveLog":"{0} wurde von {1} von der Blacklist entfernt!",
"blacklistAddDm":"Sie wurden in unserem Server auf die Blacklist gesetzt!\nAb sofort können Sie kein Ticket mehr erstellen!",
"blacklistRemoveDm":"Sie wurden von der Blacklist unseres Servers entfernt!\n Jetzt können Sie wieder Tickets erstellen!",
"clearLog":"{0} Tickets wurden von {1} gelöscht!",
"transferLog":"Das Ticket wurde von {0} an {1} durch {2} übertragen!",
"transferDm":"Dein Ticket wurde von {0} an {1} auf unserem Server übertragen!",
"prioritySetLog":"Die Priorität dieses Tickets wurde von {1} auf {0} geändert!",
"prioritySetDm":"Die Priorität deines Tickets wurde auf unserem Server auf {0} geändert!",
"roleUpdateLog":"{0} hat seine Rollen aktualisiert!",
"roleUpdateDm":"Deine Rollen auf unserem Server wurden aktualisiert!"
}
},
"transcripts":{
"success":{
"visit":"Transkript anschauen",
"ready":"Transkript erstellt",
"textFileDescription":"Dies ist die Textabschrift eines gelöschten Tickets!",
"htmlProgress":"Bitte warten Sie, während dieses html-Transkript verarbeitet wird...",
"createdChannel":"Ein neues {0} Transkript wurde auf dem Server erstellt!",
"createdCreator":"Es wurde ein neues {0} Transkript für eines Ihrer Tickets erstellt!",
"createdParticipant":"In einem der Tickets, an denen Sie teilgenommen haben, wurde ein neues {0} Transkript erstellt!",
"createdActiveAdmin":"In einem der Tickets, an dem Sie als Administrator teilgenommen haben, wurde ein neues {0} Transkript erstellt!",
"createdEveryAdmin":"Ein neues {0} Transkript wurde in einem der Tickets erstellt, in dem Sie Administrator waren!",
"createdOther":"Es wurde ein neues {0} Transkript erstellt!"
},
"errors":{
"retry":"Erneut versuchen",
"continue":"Löschen ohne Transkript",
"backup":"Sicherungstranskript erstellen",
"error":"Beim Versuch, das Transkript zu erstellen, ist etwas schief gelaufen.\nWas möchten Sie tun?\n\nDieses Ticket wird erst gelöscht, wenn Sie auf eine der folgenden Buttons klicken.",
"title":"Transkript-Fehler"
},
"text":{
"messagesTitle":"NACHRICHTEN",
"embedTitle":"EMBED",
"fileTitle":"DATEI",
"fieldsTitle":"FELDER",
"reactionsTitle":"REAKTIONEN",
"statsTitle":"STATISTIKEN",
"emptyContent":"<Inhalt ist leer>",
"noTitle":"<kein Titel>",
"noDesc":"<keine Beschreibung>"
}
},
"errors":{
"titles":{
"internalError":"Interner Fehler",
"optionMissing":"Befehlsoption fehlt",
"optionInvalid":"Befehlsoption ungültig",
"unknownCommand":"Unbekannter Befehl",
"noPermissions":"Keine Berechtigung",
"unknownTicket":"Unbekanntes Ticket",
"deprecatedTicket":"Veraltetes Ticket",
"unknownOption":"Unbekannte Option",
"unknownPanel":"Unbekanntes Panel",
"notInGuild":"Nicht auf dem Server",
"channelRename":"Kanal kann nicht umbenannt werden",
"busy":"Ticket ist besetzt",
"permissionError":"Berechtigungsfehler"
},
"descriptions":{
"askForInfo":"Kontaktieren Sie den Besitzer dieses Bots für weitere Informationen!",
"askForInfoResolve":"Wenden Sie sich an den Besitzer dieses Bots, wenn sich das Problem nach einigen Versuchen nicht beheben lässt.",
"internalError":"Aufgrund eines internen Fehlers konnte auf diese {0} nicht geantwortet werden!",
"optionMissing":"Ein erforderlicher Parameter fehlt in diesem Befehl!",
"optionInvalid":"Ein Parameter in diesem Befehl ist ungültig!",
"optionInvalidChoose":"Wählen Sie zwischen",
"unknownCommand":"Besuchen Sie das Hilfemenü für weitere Informationen!",
"noPermissions":"Sie sind nicht berechtigt, {0} zu verwenden!",
"noPermissionsList":"Erforderliche Berechtigungen: (eine von diesen)",
"noPermissionsCooldown":"Du bist nicht berechtigt, {0} zu benutzen, weil du eine Abklingzeit hast!",
"noPermissionsBlacklist":"Sie sind nicht berechtigt, den {0} zu benutzen, da Sie auf der Blacklist stehen!",
"noPermissionsLimitGlobal":"Sie können kein Ticket erstellen, da der Server die maximale Ticketanzahl erreicht hat!",
"noPermissionsLimitGlobalUser":"Sie können kein Ticket erstellen, weil Sie die maximale Anzahl an Tickets erreicht haben!",
"noPermissionsLimitOption":"Sie können kein Ticket erstellen, da der Server die maximale Ticketanzahl für diese Option erreicht hat!",
"noPermissionsLimitOptionUser":"Sie können kein Ticket erstellen, da Sie die maximale Anzahl an Tickets für diese Option erreicht haben!",
"unknownTicket":"Versuchen Sie diesen Befehl noch einmal mit einem gültigen Ticket!",
"deprecatedTicket":"Der aktuelle Kanal ist kein gültiges Ticket! Es könnte sich um ein Ticket aus einer alten Open Ticket Version handeln!",
"notInGuild":"{0} funktioniert nicht in DM! Bitte versuchen Sie es erneut auf einem Server!",
"channelRename":"Aufgrund von Discord-Ratelimits ist es dem Bot derzeit nicht möglich, den Channel umzubenennen. Der Channel wird nach 10 Minuten automatisch umbenannt, wenn der Bot nicht neu gestartet wird.",
"channelRenameSource":"Die Quelle dieses Fehlers ist: {0}",
"busy":"{0} kann nicht verwendet werden!\nDas Ticket wird derzeit vom Bot bearbeitet.\n\nBitte versuchen Sie es in ein paar Sekunden erneut!",
"closeBeforeMessage":"Dieses Ticket kann nicht geschlossen/gelöscht werden, bevor eine Nachricht von einem Benutzer gesendet wurde.",
"closeBeforeAdminMessage":"Dieses Ticket kann nicht geschlossen/gelöscht werden, bevor eine Nachricht von einem Ticket-Admin oder Support-Mitglied gesendet wurde.",
"unableToCreateTicket":"Du kannst kein Ticket erstellen."
},
"optionInvalidReasons":{
"stringRegex":"Wert stimmt nicht mit Muster überein!",
"stringMinLength":"Der Wert muss mindestens {0} Zeichen lang sein!",
"stringMaxLength":"Der Wert darf höchstens {0} Zeichen lang sein!",
"numberInvalid":"Ungültige Nummer!",
"numberMin":"Die Zahl muss mindestens {0} sein!",
"numberMax":"Die Zahl muss höchstens {0} sein!",
"numberDecimal":"Die Zahl darf keine Dezimalzahl sein!",
"numberNegative":"Die Zahl darf nicht negativ sein!",
"numberPositive":"Die Zahl darf nicht positiv sein!",
"numberZero":"Die Zahl darf nicht Null sein!",
"channelNotFound":"Kanal kann nicht gefunden werden!",
"userNotFound":"Benutzer kann nicht gefunden werden!",
"roleNotFound":"Rolle kann nicht gefunden werden!",
"memberNotFound":"Benutzer kann nicht gefunden werden!",
"mentionableNotFound":"Benutzer oder Rolle kann nicht gefunden werden!",
"channelType":"Ungültiger Kanaltyp!",
"notInGuild":"Diese Option setzt voraus, dass Sie sich auf einem Server befinden!"
},
"permissions":{
"developer":"Sie müssen der Entwickler des Bots sein.",
"owner":"Sie müssen der Eigentümer des Servers sein.",
"admin":"Sie müssen ein Server-Administrator sein.",
"moderator":"Sie müssen ein Moderator sein.",
"support":"Sie müssen dem Support-Team angehören.",
"member":"Sie müssen Mitglied sein.",
"discord-administrator":"Sie benötigen die Berechtigung `ADMINISTRATOR`."
},
"actionInvalid":{
"close":"Das Ticket ist bereits geschlossen!",
"reopen":"Das Ticket ist noch nicht geschlossen!",
"claim":"Das Ticket wurde bereits beansprucht!",
"unclaim":"Das Ticket wurde noch nicht beansprucht!",
"pin":"Das Ticket ist bereits angepinnt!",
"unpin":"Das Ticket ist noch nicht angepinnt!",
"add":"Dieser Benutzer kann bereits auf das Ticket zugreifen!",
"remove":"Dieser Benutzer kann nicht aus dem Ticket entfernt werden!"
}
},
"params":{
"uppercase":{
"ticket":"Ticket",
"tickets":"Tickets",
"reason":"Grund",
"creator":"Ersteller",
"remaining":"Verbleibende Zeit",
"added":"Hinzugefügt",
"removed":"Entfernt",
"filter":"Filter",
"method":"Methode",
"type":"Typ",
"blacklisted":"Gesperrt",
"panel":"Panel",
"command":"Command",
"system":"System",
"true":"True",
"false":"False",
"syntax":"Syntax",
"originalName":"Ursprünglicher Name",
"newName":"Neuer Name",
"until":"Bis",
"validOptions":"Gültige Optionen",
"validPanels":"Gültige Panels",
"autoclose":"Autoclose",
"autodelete":"Autolöschung",
"startupDate":"Startdatum",
"version":"Version",
"name":"Name",
"role":"Rolle",
"status":"Status",
"claimed":"Beansprucht",
"pinned":"Angepinnt",
"creationDate":"Erstellungsdatum",
"noone":"Niemand",
"open":"Offen",
"closed":"Geschlossen",
"priority":"Priorität",
"participants":"Teilnehmer",
"yes":"Ja",
"no":"Nein",
"option":"Option",
"topic":"Thema",
"uptime":"System-Laufzeit",
"messages":"Nachrichten",
"embeds":"Embeds",
"files":"Dateien",
"components":"Komponenten",
"cooldown":"Cooldown",
"maxTickets":"Max. Tickets",
"admins":"Admins",
"roles":"Rollen",
"size":"Größe"
},
"lowercase":{
"text":"text",
"html":"html",
"command":"command",
"modal":"modal",
"button":"button",
"dropdown":"dropdown",
"method":"methode"
}
},
"commands":{
"reason":"Geben Sie einen optionalen Grund an, der in den Protokollen sichtbar sein wird.",
"help":"Abrufen einer Liste aller verfügbaren Befehle.",
"panel":"Erzeugen Sie eine Nachricht mit einer Dropdown-Liste oder Buttons (für die Erstellung von Tickets).",
"panelId":"Der Kennung des Panels, das Sie erzeugen wollen.",
"panelAutoUpdate":"Möchten Sie, dass dieses Feld bei der Bearbeitung automatisch aktualisiert wird?",
"ticket":"Erstellen Sie sofort ein Ticket.",
"ticketId":"Der Kennung des Panels, das Sie erzeugen wollen.",
"close":"Schließen Sie ein Ticket.",
"delete":"Ein Ticket löschen.",
"deleteNoTranscript":"Löschen Sie dieses Ticket, ohne ein Transkript zu erstellen.",
"reopen":"Öffnen Sie ein Ticket erneut.",
"claim":"Ein Ticket beanspruchen.",
"claimUser":"Beanspruchen Sie dieses Ticket für jemand anderen statt für sich selbst.",
"unclaim":"Beanspruchen Sie ein Ticket zurück.",
"pin":"Pinne ein Ticket an.",
"unpin":"Pinne ein Ticket ab.",
"move":"Verschieben Sie ein Ticket.",
"moveId":"Die Kennung der Option.",
"rename":"Ein Ticket umbenennen.",
"renameName":"Der neue Name für dieses Ticket.",
"add":"Fügen Sie einen Benutzer zu einem Ticket hinzu.",
"addUser":"Der hinzuzufügende Benutzer.",
"remove":"Entfernen Sie einen Benutzer aus einem Ticket.",
"removeUser":"Der zu entfernende Benutzer.",
"blacklist":"Verwalten Sie die Blacklist für Tickets.",
"blacklistView":"Zeigen Sie eine Liste der aktuellen Blacklist an.",
"blacklistAdd":"Hinzufügen eines Benutzers zur Blacklist.",
"blacklistRemove":"Entfernen Sie einen Benutzer von der Blacklist.",
"blacklistGet":"Abrufen der Details eines auf der Blacklist stehenden Benutzers.",
"blacklistGetUser":"Der Benutzer, von dem Details abgerufen werden sollen.",
"stats":"Statistiken des Bots, eines Mitglieds oder eines Tickets anzeigen.",
"statsReset":"Setzt alle Statistiken des Bots zurück (und beginnt die Zählung bei Null).",
"statsGlobal":"Sehen Sie sich die Gesamtstatistiken an.",
"statsUser":"Zeigt die Statistiken eines Benutzers auf dem Server an.",
"statsUserUser":"Der zu betrachtende Benutzer.",
"statsTicket":"Anzeigen der Statistiken eines Tickets auf dem Server.",
"statsTicketTicket":"Das Ticket zur Betrachtung.",
"clear":"Mehrere Tickets gleichzeitig löschen. Optional kann ein Filter angegeben werden.",
"clearFilter":"Der Filter zum Löschen von Tickets.",
"clearFilters":{
"all":"Alle",
"open":"Offen",
"close":"Geschlossen",
"claim":"Beansprucht",
"unclaim":"Nicht beanspruchte",
"pin":"Angepinnte",
"unpin":"nicht Angepinnte",
"autoclose":"Autoclosed"
},
"autoclose":"Verwalten Sie die automatische Schließung in einem Ticket.",
"autocloseDisable":"Deaktivieren Sie das automatische Schließen in diesem Ticket.",
"autocloseEnable":"Aktivieren Sie das automatische Schließen in diesem Ticket.",
"autocloseEnableTime":"Die Anzahl der Stunden, die das Ticket inaktiv sein muss, um es zu schließen.",
"autodelete":"Verwalten Sie die automatische Löschung in einem Ticket.",
"autodeleteDisable":"Deaktivieren Sie das automatische Löschen in diesem Ticket.",
"autodeleteEnable":"Aktivieren Sie das automatische Löschen in diesem Ticket.",
"autodeleteEnableTime":"Die Anzahl der Tage, die das Ticket inaktiv sein muss, um es zu löschen.",
"topic":"Verwalte das Thema des Ticket-Kanals.",
"topicSet":"Setze das Thema des Ticket-Kanals.",
"topicValue":"Das neue Thema des Kanals.",
"topicList":"Zeige eine Liste aller Tickets mit ihrem Thema und Statistiken an.",
"priority":"Verwalte die Priorität des Tickets.",
"prioritySet":"Setze die Priorität des Tickets.",
"priorityValue":"Die Priorität des Kanals.",
"priorityGet":"Zeige die Priorität des Tickets an.",
"priorityList":"Zeige eine Liste aller Tickets mit ihrem Prioritätsstatus an.",
"transfer":"Übertrage das Ticket von einem Benutzer an einen anderen.",
"transferUser":"Der Benutzer, an den übertragen werden soll."
},
"helpMenu":{
"help":"Erhalten Sie eine Liste mit allen verfügbaren Befehlen.",
"ticket":"Erstellen Sie sofort ein Ticket.",
"close":"Schließen Sie ein Ticket, um das Schreiben in diesem Kanal zu deaktivieren.",
"delete":"Löscht ein Ticket; wenn aktiviert, wird eine Transcript erstellt.",
"reopen":"Öffnen Sie ein Ticket erneut, damit Sie wieder in diesem Kanal schreiben können.",
"pin":"Ein Ticket anheften. Es wird nach oben verschoben und ein 📌 zum Namen hinzugefügt.",
"unpin":"Entpinnen Sie ein Ticket. Es bleibt an seiner Position, verliert aber das 📌-Emoji.",
"move":"Verschieben Sie ein Ticket. Dadurch wird der Typ dieses Tickets geändert.",
"rename":"Ein Ticket umbenennen. Dadurch wird der Kanalname dieses Tickets geändert.",
"claim":"Ein Ticket beanspruchen. Damit können Sie Ihrem Team mitteilen, dass Sie dieses Ticket bearbeiten.",
"unclaim":"Ticket zurück beanspruchen, um Ihrem Team zu zeigen, dass es wieder verfügbar ist.",
"add":"Benutzer zu einem Ticket hinzufügen, um ihm Lese- und Schreibrechte zu geben.",
"remove":"Benutzer aus einem Ticket entfernen, um seine Lese- und Schreibrechte zu entziehen.",
"panel":"Erzeugen Sie eine Nachricht mit einer Dropdown-Liste oder Buttons (für die Erstellung von Tickets).",
"blacklistView":"Zeigen Sie eine Liste der aktuellen Blacklist an.",
"blacklistAdd":"Hinzufügen eines Benutzers zur Blacklist.",
"blacklistRemove":"Entfernen Sie einen Benutzer von der Blacklist.",
"blacklistGet":"Abrufen der Details eines auf der Blacklist stehenden Benutzers.",
"statsGlobal":"Sehen Sie sich die Gesamtstatistiken an.",
"statsTicket":"Anzeigen der Statistiken eines Tickets auf dem Server.",
"statsUser":"Zeigt die Statistiken eines Benutzers auf dem Server an.",
"statsReset":"Setzt alle Statistiken des Bots zurück (und beginnt die Zählung bei Null).",
"autocloseDisable":"Deaktivieren Sie das automatische Schließen in diesem Ticket.",
"autocloseEnable":"Aktivieren Sie das automatische Schließen in diesem Ticket.",
"autodeleteDisable":"Deaktivieren Sie das automatische Löschen in diesem Ticket.",
"autodeleteEnable":"Aktivieren Sie das automatische Löschen in diesem Ticket.",
"categories":{
"general":"Allgemeine Befehle",
"basicTicket":"Basis-Ticket-Befehle",
"advancedTicket":"Erweiterte Ticket-Befehle",
"userTicket":"Benutzer-Ticket-Befehle",
"admin":"Admin-Befehle",
"advanced":"Erweiterte Befehle",
"extra":"Extra-Befehle"
}
},
"stats":{
"scopes":{
"global":"Globale-Statistiken",
"system":"System-Statistiken",
"user":"Benutzer-Statistiken",
"ticket":"Ticket-Statistiken",
"participants":"Teilnehmer",
"messages":"Nachrichten"
},
"properties":{
"ticketsCreated":"Tickets erstellt",
"ticketsClosed":"Tickets geschlossen",
"ticketsDeleted":"Tickets gelöscht",
"ticketsReopened":"Tickets wiedereröffnet",
"ticketsAutoclosed":"Tickets Autoclosed",
"ticketsClaimed":"Tickets beansprucht",
"ticketsPinned":"Tickets angepinnt",
"ticketsMoved":"Tickets verschoben",
"usersBlacklisted":"Nutzer auf der Blacklist",
"transcriptsCreated":"Transcripts erstellt",
"ticketsAutodeleted":"Automatisch gelöschte Tickets",
"ticketsTransferred":"Übertragene Tickets",
"ticketVolume":"Ticket-Volumen",
"averageTickets":"Durchschnittliche Tickets/Benutzer",
"currentTickets":"Aktuelle Tickets",
"age":"Ticket-Alter",
"responseTime":"Antwortzeit",
"resolutionTime":"Lösungszeit",
"createdOn":"Erstellt am",
"createdBy":"Erstellt von",
"closedOn":"Geschlossen am",
"closedBy":"Geschlossen von",
"claimedOn":"Angenommen am",
"claimedBy":"Angenommen von",
"pinnedOn":"Angepinnt am",
"pinnedBy":"Angepinnt von",
"deletedOn":"Gelöscht am",
"deletedBy":"Gelöscht von"
},
"roles":{
"developer":"Entwickler",
"serverOwner":"Server-Besitzer",
"serverAdmin":"Server-Administrator",
"moderator":"Moderatoren-Team",
"support":"Support-Team",
"member":"Mitglied"
}
},
"panel":{
"selectTicket":"Wähle dein Ticket",
"selectRole":"Wähle deine Rolle",
"selectOption":"Wähle deine Option"
},
"priorities":{
"urgent":"Dringend",
"veryHigh":"Sehr Hoch",
"high":"Hoch",
"normal":"Normal",
"low":"Niedrig",
"veryLow":"Sehr Niedrig",
"none":"Keine"
}
}
+608
View File
@@ -0,0 +1,608 @@
{
"_TRANSLATION":{
"otversion":"v4.1.3",
"translators":["HanumeshGupta","ChatGPT"],
"lastedited":"16/02/2026",
"language":"Greek",
"automated":true
},
"checker":{
"system":{
"typeError":"[ΛΑΘΟΣ]",
"headerOpenTicket":"ΑΝΟΙΓΜΑ ΕΙΣΙΤΗΡΙΟΥ",
"typeWarning":"[ΠΡΟΕΙΔΟΠΟΙΗΣΗ]",
"typeInfo":"[ΠΛΗΡΟΦΟΡΙΑ]",
"headerConfigChecker":"ΕΛΕΓΧΟΣ ΡΥΘΜΙΣΕΩΝ",
"headerDescription":"έλεγχος για λάθη στα αρχεία ρυθμίσεων!",
"footerError":"το bot δεν θα ξεκινήσει μέχρι να διορθωθούν όλα τα {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 (Not A Number)!",
"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":"Αυτή η συμβολοσειρά πρέπει να έχει τουλάχιστον {0} emoji!",
"emojiTooLong":"Αυτή η συμβολοσειρά πρέπει να έχει το πολύ {0} emoji!",
"emojiCustom":"Αυτό το emoji δεν μπορεί να είναι προσαρμοσμένο discord emoji!",
"emojiInvalid":"Αυτό είναι ένα άκυρο emoji!",
"urlInvalid":"Αυτό το url είναι άκυρο!",
"urlInvalidHttp":"Αυτό το url μπορεί να χρησιμοποιήσει μόνο το https:// πρωτόκολλο!",
"urlInvalidProtocol":"Αυτό το url μπορεί να χρησιμοποιήσει μόνο τα http:// & https:// πρωτόκολλα!",
"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":"Ένα πάνελ με ενεργοποιημένο dropdown μπορεί να περιέχει μόνο επιλογές τύπου 'ticket'!",
"customInvalidVersion":"Η έκδοση που καθορίστηκε στο config σας δεν ταιριάζει! Βεβαιωθείτε ότι έχετε ενημερώσει το config στην πιο πρόσφατη έκδοση!"
}
},
"actions":{
"buttons":{
"create":"Επίσκεψη Εισιτηρίου",
"close":"Κλείσιμο Εισιτηρίου",
"delete":"Διαγραφή Εισιτηρίου",
"reopen":"Επαναφορά Εισιτηρίου",
"claim":"Ανάληψη Εισιτηρίου",
"unclaim":"Απόσυρση Ανάληψης",
"pin":"Καρφίτσωμα Εισιτηρίου",
"unpin":"Ξεκαρφίτσωμα Εισιτηρίου",
"clear":"Διαγραφή Εισιτηρίων",
"helpSwitchSlash":"Προβολή Slash Εντολών",
"helpSwitchText":"Προβολή Εντολών Κειμένου",
"helpPage":"Σελίδα {0}",
"withReason":"Με Λόγο",
"withoutTranscript":"Χωρίς Αντίγραφο"
},
"titles":{
"created":"Δημιουργήθηκε Εισιτήριο",
"close":"Κλείσιμο Εισιτηρίου",
"delete":"Διαγραφή Εισιτηρίου",
"reopen":"Επαναφορά Εισιτηρίου",
"claim":"Ανάληψη Εισιτηρίου",
"unclaim":"Απόσυρση Ανάληψης",
"pin":"Καρφίτσωμα Εισιτηρίου",
"unpin":"Ξεκαρφίτσωμα Εισιτηρίου",
"rename":"Μετονομασία Εισιτηρίου",
"move":"Μετακίνηση Εισιτηρίου",
"add":"Προσθήκη Χρήστη",
"remove":"Αφαίρεση Χρήστη",
"help":"Διαθέσιμες Εντολές",
"statsReset":"Επαναφορά Στατιστικών",
"blacklistAdd":"Χρήστης στη Μαύρη Λίστα",
"blacklistRemove":"Απελευθέρωση Χρήστη",
"blacklistGet":"Χρήστης Μαύρης Λίστας",
"blacklistView":"Τρέχουσα Μαύρη Λίστα",
"blacklistAddDm":"Προστέθηκε στη Μαύρη Λίστα",
"blacklistRemoveDm":"Αφαιρέθηκε από τη Μαύρη Λίστα",
"clear":"Εισιτήρια Διαγράφηκαν",
"clearTickets":"Εκκαθάριση Tickets",
"roles":"Ενημέρωση Ρόλων",
"autoclose":"Αυτόματο Κλείσιμο",
"autocloseEnabled":"Ενεργοποιήθηκε Αυτόματο Κλείσιμο",
"autocloseDisabled":"Απενεργοποιήθηκε Αυτόματο Κλείσιμο",
"autodelete":"Αυτόματη Διαγραφή",
"autodeleteEnabled":"Ενεργοποιήθηκε Αυτόματη Διαγραφή",
"autodeleteDisabled":"Απενεργοποιήθηκε Αυτόματη Διαγραφή",
"topicSet":"Το Θέμα Αλλάχθηκε",
"prioritySet":"Η Προτεραιότητα Αλλάχθηκε",
"priorityGet":"Προτεραιότητα Ticket",
"transfer":"Το Ticket Μεταφέρθηκε"
},
"descriptions":{
"create":"Το εισιτήριό σας δημιουργήθηκε. Κάντε κλικ στο παρακάτω κουμπί για να το προσπελάσετε!",
"close":"Το εισιτήριο έκλεισε με επιτυχία!",
"delete":"Το εισιτήριο διαγράφηκε με επιτυχία!",
"reopen":"Το εισιτήριο επαναφέρθηκε με επιτυχία!",
"claim":"Το εισιτήριο αναλήφθηκε με επιτυχία!",
"unclaim":"Η ανάληψη του εισιτηρίου ανακλήθηκε με επιτυχία!",
"pin":"Το εισιτήριο καρφιτσώθηκε με επιτυχία!",
"unpin":"Το εισιτήριο ξεκαρφιτσώθηκε με επιτυχία!",
"rename":"Το εισιτήριο μετονομάστηκε σε {0} με επιτυχία!",
"move":"Το εισιτήριο μετακινήθηκε στο {0} με επιτυχία!",
"add":"Ο {0} προστέθηκε στο εισιτήριο με επιτυχία!",
"remove":"Ο {0} αφαιρέθηκε από το εισιτήριο με επιτυχία!",
"helpExplanation":"`<όνομα>` => απαιτούμενη παράμετρος\n`[όνομα]` => προαιρετική παράμετρος",
"statsReset":"Τα στατιστικά του bot επαναφέρθηκαν με επιτυχία!",
"statsError":"Αδυναμία προβολής στατιστικών εισιτηρίου!\nτο {0} δεν είναι εισιτήριο!",
"blacklistAdd":"Ο {0} προστέθηκε στη μαύρη λίστα με επιτυχία!",
"blacklistRemove":"Ο {0} αφαιρέθηκε από τη μαύρη λίστα με επιτυχία!",
"blacklistGetSuccess":"Ο {0} είναι στη μαύρη λίστα!",
"blacklistGetEmpty":"Ο {0} δεν είναι στη μαύρη λίστα!",
"blacklistViewEmpty":"Κανείς δεν έχει προστεθεί στη μαύρη λίστα ακόμα!",
"blacklistViewTip":"Χρησιμοποιήστε \"/blacklist add\" για να προσθέσετε χρήστη στη μαύρη λίστα!",
"clearVerify":"Είστε βέβαιοι ότι θέλετε να διαγράψετε πολλά εισιτήρια;\nΑυτή η ενέργεια δεν μπορεί να αναιρεθεί!",
"clearReady":"{0} εισιτήρια διαγράφηκαν με επιτυχία!",
"rolesEmpty":"Δεν ενημερώθηκαν ρόλοι!",
"autocloseLeave":"Αυτό το εισιτήριο έκλεισε αυτόματα επειδή ο δημιουργός άφησε τον server!",
"autocloseTimeout":"Αυτό το εισιτήριο έκλεισε αυτόματα επειδή ήταν ανενεργό για περισσότερο από `{0} ώρες`!",
"autodeleteLeave":"Αυτό το εισιτήριο διαγράφηκε αυτόματα επειδή ο δημιουργός άφησε τον server!",
"autodeleteTimeout":"Αυτό το εισιτήριο διαγράφηκε αυτόματα επειδή ήταν ανενεργό για περισσότερο από `{0} ημέρες`!",
"autocloseEnabled":"Το αυτόματο κλείσιμο ενεργοποιήθηκε σε αυτό το εισιτήριο!\nΘα κλείσει όταν είναι ανενεργό για περισσότερο από `{0} ώρες`!",
"autocloseDisabled":"Το αυτόματο κλείσιμο απενεργοποιήθηκε σε αυτό το εισιτήριο!\nΔεν θα κλείνει πλέον αυτόματα!",
"autodeleteEnabled":"Η αυτόματη διαγραφή ενεργοποιήθηκε σε αυτό το εισιτήριο!\nΘα διαγραφεί όταν είναι ανενεργό για περισσότερο από `{0} ημέρες`!",
"autodeleteDisabled":"Η αυτόματη διαγραφή απενεργοποιήθηκε σε αυτό το εισιτήριο!\nΔεν θα διαγράφεται πλέον αυτόματα!",
"ticketMessageLimit":"Μπορείτε να δημιουργήσετε μόνο {0} εισιτήρια ταυτόχρονα!",
"ticketMessageAutoclose":"Αυτό το εισιτήριο θα κλείσει αυτόματα όταν είναι ανενεργό για {0} ώρες!",
"ticketMessageAutodelete":"Αυτό το εισιτήριο θα διαγραφεί αυτόματα όταν είναι ανενεργό για {0} ημέρες!",
"panelReady":"Το πάνελ είναι διαθέσιμο στο επόμενο μήνυμα!\nΑυτό το μήνυμα μπορεί τώρα να διαγραφεί!",
"topicSet":"Το θέμα του καναλιού άλλαξε επιτυχώς από τον/την {0}!",
"prioritySet":"Η προτεραιότητα του ticket άλλαξε σε {0} από τον/την {1} επιτυχώς!",
"priorityGet":"Η τρέχουσα προτεραιότητα αυτού του ticket είναι {0}.",
"transfer":"Η ιδιοκτησία του ticket μεταφέρθηκε από τον/την {0} στον/στην {1} από τον/την {2} επιτυχώς!"
},
"modal":{
"closePlaceholder":"Γιατί έκλεισες αυτό το εισιτήριο;",
"deletePlaceholder":"Γιατί διέγραψες αυτό το εισιτήριο;",
"reopenPlaceholder":"Γιατί επανέφερες αυτό το εισιτήριο;",
"claimPlaceholder":"Γιατί ανέλαβες αυτό το εισιτήριο;",
"unclaimPlaceholder":"Γιατί απέσυρες την ανάληψη αυτού του εισιτηρίου;",
"pinPlaceholder":"Γιατί καρφίτσωσες αυτό το εισιτήριο;",
"unpinPlaceholder":"Γιατί ξεκάρφιτσες αυτό το εισιτήριο;"
},
"logs":{
"createLog":"Ένα νέο εισιτήριο δημιουργήθηκε από τον {0}!",
"closeLog":"Αυτό το εισιτήριο έκλεισε από τον {0}!",
"closeDm":"Το εισιτήριό σας έκλεισε στον server μας!",
"deleteLog":"Αυτό το εισιτήριο διαγράφηκε από τον {0}!",
"deleteDm":"Το εισιτήριό σας διαγράφηκε στον server μας!",
"reopenLog":"Αυτό το εισιτήριο επαναφέρθηκε από τον {0}!",
"reopenDm":"Το εισιτήριό σας επαναφέρθηκε στον server μας!",
"claimLog":"Αυτό το εισιτήριο αναλήφθηκε από τον {0}!",
"claimDm":"Το εισιτήριό σας αναλήφθηκε στον server μας!",
"unclaimLog":"Η ανάληψη αυτού του εισιτηρίου ανακλήθηκε από τον {0}!",
"unclaimDm":"Η ανάληψη του εισιτηρίου σας ανακλήθηκε στον server μας!",
"pinLog":"Αυτό το εισιτήριο καρφιτσώθηκε από τον {0}!",
"pinDm":"Το εισιτήριό σας καρφιτσώθηκε στον server μας!",
"unpinLog":"Αυτό το εισιτήριο ξεκαρφιτσώθηκε από τον {0}!",
"unpinDm":"Το εισιτήριό σας ξεκαρφιτσώθηκε στον server μας!",
"renameLog":"Αυτό το εισιτήριο μετονομάστηκε σε {0} από τον {1}!",
"renameDm":"Το εισιτήριό σας μετονομάστηκε σε {0} στον server μας!",
"moveLog":"Αυτό το εισιτήριο μετακινήθηκε στο {0} από τον {1}!",
"moveDm":"Το εισιτήριό σας μετακινήθηκε στο {0} στον server μας!",
"addLog":"Ο {0} προστέθηκε σε αυτό το εισιτήριο από τον {1}!",
"addDm":"Ο {0} προστέθηκε στο εισιτήριό σας στον server μας!",
"removeLog":"Ο {0} αφαιρέθηκε από αυτό το εισιτήριο από τον {1}!",
"removeDm":"Ο {0} αφαιρέθηκε από το εισιτήριό σας στον server μας!",
"blacklistAddLog":"Ο {0} προστέθηκε στη μαύρη λίστα από τον {1}!",
"blacklistRemoveLog":"Ο {0} αφαιρέθηκε από τη μαύρη λίστα από τον {1}!",
"blacklistAddDm":"Έχετε προστεθεί στη μαύρη λίστα στον server μας!\nΑπό τώρα, δεν μπορείτε να δημιουργήσετε εισιτήριο!",
"blacklistRemoveDm":"Έχετε αφαιρεθεί από τη μαύρη λίστα στον server μας!\nΤώρα μπορείτε να δημιουργήσετε εισιτήρια ξανά!",
"clearLog":"{0} εισιτήρια διαγράφηκαν από τον {1}!",
"transferLog":"Η ιδιοκτησία αυτού του ticket μεταφέρθηκε από τον/την {0} στον/στην {1} από τον/την {2}!",
"transferDm":"Η ιδιοκτησία του ticket σας μεταφέρθηκε από τον/την {0} στον/στην {1} στον server μας!",
"prioritySetLog":"Η προτεραιότητα αυτού του ticket άλλαξε σε {0} από τον/την {1}!",
"prioritySetDm":"Η προτεραιότητα του ticket σας άλλαξε σε {0} στον server μας!",
"roleUpdateLog":"Ο/Η {0} ενημέρωσε τους ρόλους του/της!",
"roleUpdateDm":"Οι ρόλοι σας στον server μας έχουν ενημερωθεί!"
}
},
"transcripts":{
"success":{
"visit":"Προβολή Αντιγράφου",
"ready":"Δημιουργήθηκε Αντίγραφο",
"textFileDescription":"Αυτό είναι το αντίγραφο κειμένου ενός διαγεγραμμένου εισιτηρίου!",
"htmlProgress":"Παρακαλώ περιμένετε ενώ επεξεργάζεται αυτό το html αντίγραφο...",
"createdChannel":"Ένα νέο {0} αντίγραφο δημιουργήθηκε στον server!",
"createdCreator":"Ένα νέο {0} αντίγραφο δημιουργήθηκε για ένα από τα εισιτήριά σας!",
"createdParticipant":"Ένα νέο {0} αντίγραφο δημιουργήθηκε σε ένα εισιτήριο που συμμετείχατε!",
"createdActiveAdmin":"Ένα νέο {0} αντίγραφο δημιουργήθηκε σε ένα εισιτήριο που συμμετείχατε ως διαχειριστής!",
"createdEveryAdmin":"Ένα νέο {0} αντίγραφο δημιουργήθηκε σε ένα εισιτήριο που ήσασταν διαχειριστής!",
"createdOther":"Ένα νέο {0} αντίγραφο δημιουργήθηκε!"
},
"errors":{
"retry":"Επανάληψη",
"continue":"Διαγραφή Χωρίς Αντίγραφο",
"backup":"Δημιουργία Αντιγράφου Ασφαλείας",
"error":"Κάτι πήγε στραβά κατά τη δημιουργία του αντιγράφου.\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":"Άγνωστο Πάνελ",
"notInGuild":"Δεν Είστε σε Server",
"channelRename":"Αδυναμία Μετονομασίας Κανάλι",
"busy":"Το Εισιτήριο Είναι Απασχολημένο",
"permissionError":"Σφάλμα Δικαιωμάτων"
},
"descriptions":{
"askForInfo":"Επικοινωνήστε με τον ιδιοκτήτη αυτού του bot για περισσότερες πληροφορίες!",
"askForInfoResolve":"Επικοινωνήστε με τον ιδιοκτήτη του bot αν αυτό το πρόβλημα δεν επιλυθεί μετά από μερικές προσπάθειες.",
"internalError":"Αποτυχία απόκρισης σε αυτό το {0} λόγω εσωτερικού σφάλματος!",
"optionMissing":"Μια απαιτούμενη παράμετρος λείπει από αυτήν την εντολή!",
"optionInvalid":"Μια παράμετρος σε αυτήν την εντολή είναι άκυρη!",
"optionInvalidChoose":"Επιλέξτε μεταξύ",
"unknownCommand":"Δοκιμάστε να επισκεφτείτε το μενού βοήθειας για περισσότερες πληροφορίες!",
"noPermissions":"Δεν επιτρέπεται να χρησιμοποιήσετε αυτό το {0}!",
"noPermissionsList":"Απαιτούμενα Δικαιώματα: (ένα από αυτά)",
"noPermissionsCooldown":"Δεν επιτρέπεται να χρησιμοποιήσετε αυτό το {0} επειδή έχετε cooldown!",
"noPermissionsBlacklist":"Δεν επιτρέπεται να χρησιμοποιήσετε αυτό το {0} επειδή είστε στη μαύρη λίστα!",
"noPermissionsLimitGlobal":"Δεν επιτρέπεται να δημιουργήσετε εισιτήριο επειδή ο server έφτασε το μέγιστο όριο εισιτηρίων!",
"noPermissionsLimitGlobalUser":"Δεν επιτρέπεται να δημιουργήσετε εισιτήριο επειδή έφτασατε το μέγιστο όριο εισιτηρίων!",
"noPermissionsLimitOption":"Δεν επιτρέπεται να δημιουργήσετε εισιτήριο επειδή ο server έφτασε το μέγιστο όριο εισιτηρίων για αυτήν την επιλογή!",
"noPermissionsLimitOptionUser":"Δεν επιτρέπεται να δημιουργήσετε εισιτήριο επειδή έφτασατε το μέγιστο όριο εισιτηρίων για αυτήν την επιλογή!",
"unknownTicket":"Δοκιμάστε ξανά αυτήν την εντολή σε ένα έγκυρο εισιτήριο!",
"deprecatedTicket":"Το τρέχον κανάλι δεν είναι έγκυρο εισιτήριο! Μπορεί να ήταν εισιτήριο από παλιά έκδοση του Open Ticket!",
"notInGuild":"Αυτό το {0} δεν λειτουργεί σε DM! Παρακαλώ δοκιμάστε ξανά σε έναν server!",
"channelRename":"Λόγω discord ratelimits, είναι αδύνατο για το bot να μετονομάσει το κανάλι. Το κανάλι θα μετονομαστεί αυτόματα σε 10 λεπτά αν το bot δεν επανεκκινηθεί.",
"channelRenameSource":"Η πηγή αυτού του σφάλματος είναι: {0}",
"busy":"Αδυναμία χρήσης αυτού του {0}!\nΤο εισιτήριο είναι αυτή τη στιγμή σε επεξεργασία από το bot.\n\nΠαρακαλώ δοκιμάστε ξανά σε λίγα δευτερόλεπτα!",
"closeBeforeMessage":"Αυτό το ticket δεν μπορεί να κλείσει/διαγραφεί πριν σταλεί ένα μήνυμα από έναν χρήστη.",
"closeBeforeAdminMessage":"Αυτό το ticket δεν μπορεί να κλείσει/διαγραφεί πριν σταλεί μήνυμα από έναν ticket admin ή μέλος υποστήριξης.",
"unableToCreateTicket":"Δεν μπορείτε να δημιουργήσετε ticket."
},
"optionInvalidReasons":{
"stringRegex":"Η τιμή δεν ταιριάζει με το μοτίβο!",
"stringMinLength":"Η τιμή πρέπει να είναι τουλάχιστον {0} χαρακτήρες!",
"stringMaxLength":"Η τιμή πρέπει να είναι το πολύ {0} χαρακτήρες!",
"numberInvalid":"Άκυρος αριθμός!",
"numberMin":"Ο αριθμός πρέπει να είναι τουλάχιστον {0}!",
"numberMax":"Ο αριθμός πρέπει να είναι το πολύ {0}!",
"numberDecimal":"Ο αριθμός δεν μπορεί να είναι δεκαδικός!",
"numberNegative":"Ο αριθμός δεν μπορεί να είναι αρνητικός!",
"numberPositive":"Ο αριθμός δεν μπορεί να είναι θετικός!",
"numberZero":"Ο αριθμός δεν μπορεί να είναι μηδέν!",
"channelNotFound":"Αδυναμία εύρεσης καναλιού!",
"userNotFound":"Αδυναμία εύρεσης χρήστη!",
"roleNotFound":"Αδυναμία εύρεσης ρόλου!",
"memberNotFound":"Αδυναμία εύρεσης χρήστη!",
"mentionableNotFound":"Αδυναμία εύρεσης χρήστη ή ρόλου!",
"channelType":"Άκυρος τύπος καναλιού!",
"notInGuild":"Αυτή η επιλογή απαιτεί να είστε σε έναν server!"
},
"permissions":{
"developer":"Πρέπει να είστε ο προγραμματιστής του bot.",
"owner":"Πρέπει να είστε ο ιδιοκτήτης του server.",
"admin":"Πρέπει να είστε διαχειριστής server.",
"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":"Πάνελ",
"command":"Εντολή",
"system":"Σύστημα",
"true":"Ναι",
"false":"Όχι",
"syntax":"Σύνταξη",
"originalName":"Αρχικό Όνομα",
"newName":"Νέο Όνομα",
"until":"Μέχρι",
"validOptions":"Έγκυρες Επιλογές",
"validPanels":"Έγκυρα Πάνελ",
"autoclose":"Αυτόματο Κλείσιμο",
"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":"Μέγιστος Αριθμός Tickets",
"admins":"Διαχειριστές",
"roles":"Ρόλοι",
"size":"Μέγεθος"
},
"lowercase":{
"text":"κείμενο",
"html":"html",
"command":"εντολή",
"modal":"μοντάλ",
"button":"κουμπί",
"dropdown":"πτυσσόμενο μενού",
"method":"μέθοδος"
}
},
"commands":{
"reason":"Καθορίστε έναν προαιρετικό λόγο που θα είναι ορατός στα αρχεία καταγραφής.",
"help":"Λάβετε μια λίστα με όλες τις διαθέσιμες εντολές.",
"panel":"Εμφάνιση μηνύματος με πτυσσόμενο μενού ή κουμπιά (για δημιουργία εισιτηρίου).",
"panelId":"Το αναγνωριστικό του πάνελ που θέλετε να εμφανίσετε.",
"panelAutoUpdate":"Θέλετε αυτό το πάνελ να ενημερώνεται αυτόματα όταν επεξεργαστεί;",
"ticket":"Δημιουργία εισιτηρίου αμέσως.",
"ticketId":"Το αναγνωριστικό του εισιτηρίου που θέλετε να δημιουργήσετε.",
"close":"Κλείσιμο εισιτηρίου.",
"delete":"Διαγραφή εισιτηρίου.",
"deleteNoTranscript":"Διαγραφή αυτού του εισιτηρίου χωρίς δημιουργία μεταγραφής.",
"reopen":"Επαναφορά εισιτηρίου.",
"claim":"Αιτηματοποίηση εισιτηρίου.",
"claimUser":"Αιτηματοποίηση αυτού του εισιτηρίου σε κάποιον άλλον αντί για εσάς.",
"unclaim":"Ακύρωση αιτηματοποίησης εισιτηρίου.",
"pin":"Καρφίτσωμα εισιτηρίου.",
"unpin":"Ξεκαρφίτσωμα εισιτηρίου.",
"move":"Μετακίνηση εισιτηρίου.",
"moveId":"Το αναγνωριστικό της επιλογής στην οποία θέλετε να μετακινήσετε.",
"rename":"Μετονομασία εισιτηρίου.",
"renameName":"Το νέο όνομα για αυτό το εισιτήριο.",
"add":"Προσθήκη χρήστη σε εισιτήριο.",
"addUser":"Ο χρήστης που θα προστεθεί.",
"remove":"Αφαίρεση χρήστη από εισιτήριο.",
"removeUser":"Ο χρήστης που θα αφαιρεθεί.",
"blacklist":"Διαχείριση μαύρης λίστας εισιτηρίων.",
"blacklistView":"Προβολή λίστας της τρέχουσας μαύρης λίστας.",
"blacklistAdd":"Προσθήκη χρήστη στη μαύρη λίστα.",
"blacklistRemove":"Αφαίρεση χρήστη από τη μαύρη λίστα.",
"blacklistGet":"Λήψη λεπτομερειών από έναν χρήστη στη μαύρη λίστα.",
"blacklistGetUser":"Ο χρήστης από τον οποίο θα ληφθούν λεπτομέρειες.",
"stats":"Προβολή στατιστικών από το bot, ένα μέλος ή ένα εισιτήριο.",
"statsReset":"Επαναφορά όλων των στατιστικών του bot (και έναρξη καταμέτρησης από το μηδέν).",
"statsGlobal":"Προβολή παγκόσμιων στατιστικών.",
"statsUser":"Προβολή στατιστικών ενός χρήστη στον server.",
"statsUserUser":"Ο χρήστης που θα προβληθεί.",
"statsTicket":"Προβολή στατιστικών ενός εισιτηρίου στον server.",
"statsTicketTicket":"Το εισιτήριο που θα προβληθεί.",
"clear":"Διαγραφή πολλαπλών εισιτηρίων ταυτόχρονα.",
"clearFilter":"Το φίλτρο για την εκκαθάριση εισιτηρίων.",
"clearFilters":{
"all":"Όλα",
"open":"Ανοιχτά",
"close":"Κλειστά",
"claim":"Αιτηματοποιημένα",
"unclaim":"Μη αιτηματοποιημένα",
"pin":"Καρφιτσωμένα",
"unpin":"Μη καρφιτσωμένα",
"autoclose":"Αυτόματα κλειστά"
},
"autoclose":"Διαχείριση αυτόματου κλεισίματος σε εισιτήριο.",
"autocloseDisable":"Απενεργοποίηση αυτόματου κλεισίματος σε αυτό το εισιτήριο.",
"autocloseEnable":"Ενεργοποίηση αυτόματου κλεισίματος σε αυτό το εισιτήριο.",
"autocloseEnableTime":"Ο αριθμός των ωρών που απαιτείται για να κλείσει αυτόματα το εισιτήριο λόγω αδράνειας.",
"autodelete":"Διαχείριση αυτόματης διαγραφής σε εισιτήριο.",
"autodeleteDisable":"Απενεργοποίηση αυτόματης διαγραφής σε αυτό το εισιτήριο.",
"autodeleteEnable":"Ενεργοποίηση αυτόματης διαγραφής σε αυτό το εισιτήριο.",
"autodeleteEnableTime":"Ο αριθμός των ημερών που απαιτείται για να διαγραφεί αυτόματα το εισιτήριο λόγω αδράνειας.",
"topic":"Διαχειριστείτε το θέμα του καναλιού ticket.",
"topicSet":"Ορίστε το θέμα του καναλιού ticket.",
"topicValue":"Το νέο θέμα του καναλιού.",
"topicList":"Λάβετε μια λίστα όλων των tickets με το θέμα και τα στατιστικά τους.",
"priority":"Διαχειριστείτε την προτεραιότητα του ticket.",
"prioritySet":"Ορίστε την προτεραιότητα του ticket.",
"priorityValue":"Η προτεραιότητα του καναλιού.",
"priorityGet":"Λάβετε την προτεραιότητα του ticket.",
"priorityList":"Λάβετε μια λίστα όλων των tickets με την κατάσταση προτεραιότητάς τους.",
"transfer":"Μεταφέρετε την ιδιοκτησία του ticket από έναν χρήστη σε άλλον.",
"transferUser":"Ο χρήστης στον οποίο θα γίνει η μεταφορά."
},
"helpMenu":{
"help":"Λήψη λίστας όλων των διαθέσιμων εντολών.",
"ticket":"Δημιουργία εισιτηρίου αμέσως.",
"close":"Κλείσιμο εισιτηρίου, αυτό απενεργοποιεί τη γραφή σε αυτό το κανάλι.",
"delete":"Διαγραφή εισιτηρίου, αυτό δημιουργεί μια μεταγραφή όταν είναι ενεργοποιημένη.",
"reopen":"Επαναφορά εισιτηρίου, αυτό ενεργοποιεί ξανά τη γραφή σε αυτό το κανάλι.",
"pin":"Καρφίτσωμα εισιτηρίου. Αυτό θα μετακινήσει το εισιτήριο στην κορυφή και θα προσθέσει ένα emoji '📌' στο όνομα.",
"unpin":"Ξεκαρφίτσωμα εισιτηρίου. Το εισιτήριο θα παραμείνει στη θέση του αλλά θα χάσει το emoji '📌'.",
"move":"Μετακίνηση εισιτηρίου. Αυτό θα αλλάξει τον τύπο αυτού του εισιτηρίου.",
"rename":"Μετονομασία εισιτηρίου. Αυτό θα αλλάξει το όνομα του καναλιού αυτού του εισιτηρίου.",
"claim":"Αιτηματοποίηση εισιτηρίου. Με αυτό, μπορείτε να ενημερώσετε την ομάδα σας ότι το χειρίζεστε.",
"unclaim":"Ακύρωση αιτηματοποίησης εισιτηρίου. Με αυτό, μπορείτε να ενημερώσετε την ομάδα σας ότι το εισιτήριο είναι ελεύθερο ξανά.",
"add":"Προσθήκη χρήστη σε εισιτήριο. Αυτό θα επιτρέψει στον χρήστη να διαβάζει και να γράφει σε αυτό το εισιτήριο.",
"remove":"Αφαίρεση χρήστη από εισιτήριο. Αυτό θα αφαιρέσει τη δυνατότητα ανάγνωσης και εγγραφής για έναν χρήστη σε αυτό το εισιτήριο.",
"panel":"Δημιουργία μηνύματος με αναπτυσσόμενο μενού ή κουμπιά (για δημιουργία εισιτηρίου).",
"blacklistView":"Προβολή λίστας της τρέχουσας μαύρης λίστας.",
"blacklistAdd":"Προσθήκη χρήστη στη μαύρη λίστα.",
"blacklistRemove":"Αφαίρεση χρήστη από τη μαύρη λίστα.",
"blacklistGet":"Λήψη λεπτομερειών από έναν χρήστη στη μαύρη λίστα.",
"statsGlobal":"Προβολή παγκόσμιων στατιστικών.",
"statsTicket":"Προβολή στατιστικών ενός εισιτηρίου στον server.",
"statsUser":"Προβολή στατιστικών ενός χρήστη στον server.",
"statsReset":"Επαναφορά όλων των στατιστικών του bot (και έναρξη καταμέτρησης από το μηδέν).",
"autocloseDisable":"Απενεργοποίηση αυτόματου κλεισίματος σε αυτό το εισιτήριο.",
"autocloseEnable":"Ενεργοποίηση αυτόματου κλεισίματος σε αυτό το εισιτήριο.",
"autodeleteDisable":"Απενεργοποίηση αυτόματης διαγραφής σε αυτό το εισιτήριο.",
"autodeleteEnable":"Ενεργοποίηση αυτόματης διαγραφής σε αυτό το εισιτήριο.",
"categories":{
"general":"Γενικές Εντολές",
"basicTicket":"Βασικές Εντολές Ticket",
"advancedTicket":"Προχωρημένες Εντολές Ticket",
"userTicket":"Εντολές Ticket Χρήστη",
"admin":"Εντολές Διαχειριστή",
"advanced":"Προχωρημένες Εντολές",
"extra":"Επιπλέον Εντολές"
}
},
"stats":{
"scopes":{
"global":"Παγκόσμια Στατιστικά",
"system":"Στατιστικά Συστήματος",
"user":"Στατιστικά Χρήστη",
"ticket":"Στατιστικά Εισιτηρίου",
"participants":"Συμμετέχοντες",
"messages":"Μηνύματα"
},
"properties":{
"ticketsCreated":"Εισιτήρια Δημιουργήθηκαν",
"ticketsClosed":"Εισιτήρια Κλείσαν",
"ticketsDeleted":"Εισιτήρια Διαγράφηκαν",
"ticketsReopened":"Εισιτήρια Επαναφέρθηκαν",
"ticketsAutoclosed":"Εισιτήρια Αυτόματα Κλείσαν",
"ticketsClaimed":"Εισιτήρια Αιτηματοποιήθηκαν",
"ticketsPinned":"Εισιτήρια Καρφιτσώθηκαν",
"ticketsMoved":"Εισιτήρια Μετακινήθηκαν",
"usersBlacklisted":"Χρήστες στη Μαύρη Λίστα",
"transcriptsCreated":"Μεταγραφές Δημιουργήθηκαν",
"ticketsAutodeleted":"Tickets Αυτόματης Διαγραφής",
"ticketsTransferred":"Tickets Μεταφερμένα",
"ticketVolume":"Όγκος Tickets",
"averageTickets":"Μέσος Όρος Tickets/Χρήστη",
"currentTickets":"Τρέχοντα Tickets",
"age":"Ηλικία Ticket",
"responseTime":"Χρόνος Απόκρισης",
"resolutionTime":"Χρόνος Επίλυσης",
"createdOn":"Δημιουργήθηκε Στις",
"createdBy":"Δημιουργήθηκε Από",
"closedOn":"Έκλεισε Στις",
"closedBy":"Έκλεισε Από",
"claimedOn":"Διεκδικήθηκε Στις",
"claimedBy":"Διεκδικήθηκε Από",
"pinnedOn":"Καρφιτσώθηκε Στις",
"pinnedBy":"Καρφιτσώθηκε Από",
"deletedOn":"Διαγράφηκε Στις",
"deletedBy":"Διαγράφηκε Από"
},
"roles":{
"developer":"Developer",
"serverOwner":"Ιδιοκτήτης Server",
"serverAdmin":"Διαχειριστής Server",
"moderator":"Ομάδα Moderators",
"support":"Ομάδα Υποστήριξης",
"member":"Μέλος"
}
},
"panel":{
"selectTicket":"Επιλέξτε το ticket σας",
"selectRole":"Επιλέξτε τον ρόλο σας",
"selectOption":"Επιλέξτε την επιλογή σας"
},
"priorities":{
"urgent":"Επείγον",
"veryHigh":"Πολύ Υψηλή",
"high":"Υψηλή",
"normal":"Κανονική",
"low":"Χαμηλή",
"veryLow":"Πολύ Χαμηλή",
"none":"Καμία"
}
}
+608
View File
@@ -0,0 +1,608 @@
{
"_TRANSLATION":{
"otversion":"v4.1.3",
"translators":["challenger_nova"],
"lastedited":"16/02/2026",
"language":"Hindi",
"automated":false
},
"checker":{
"system":{
"typeError":"[गलती]",
"headerOpenTicket":"खुला टिकट",
"typeWarning":"[चेतावनी]",
"typeInfo":"[जानकारी]",
"headerConfigChecker":"कॉन्फिग चेकर",
"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":"यह संख्या {1} से शुरू होकर {0} का गुणज होनी चाहिए!",
"numberStartsWith":"यह संख्या {0} से शुरू होनी चाहिए!",
"numberEndsWith":"यह संख्या {0} पर समाप्त होनी चाहिए!",
"numberContains":"इस संख्या में {0} होना आवश्यक है!",
"numberChoices":"यह संख्या केवल निम्नलिखित मानों में से एक हो सकती है: {0}!",
"numberFloat":"यह संख्या दशमलव नहीं हो सकती!",
"numberNegative":"यह संख्या ऋणात्मक नहीं हो सकती!",
"numberPositive":"यह संख्या सकारात्मक नहीं हो सकती!",
"numberZero":"यह संख्या शून्य नहीं हो सकती!",
"numberNan":"यह संख्या NaN (Not A Number) नहीं हो सकती!",
"numberInvertedContains":"इस संख्या में {0} शामिल नहीं होना चाहिए!",
"booleanTrue":"यह बूलियन सत्य नहीं हो सकता!",
"booleanFalse":"यह बूलियन झूठा नहीं हो सकता!",
"arrayEmptyDisabled":"इस सरणी को खाली रहने की अनुमति नहीं है!",
"arrayEmptyRequired":"यह सरणी खाली होनी आवश्यक है!",
"arrayTooShort":"इस सरणी की लंबाई कम से कम {0} होनी चाहिए!",
"arrayTooLong":"इस सरणी की लंबाई अधिकतम {0} होनी चाहिए!",
"arrayLengthInvalid":"इस सरणी की लंबाई {0} होनी चाहिए!",
"arrayInvalidTypes":"इस सरणी में केवल निम्नलिखित प्रकार हो सकते हैं: {0}!",
"arrayDouble":"यह सरणी एक ही मान को दो बार अनुमति नहीं देती है!",
"discordInvalidId":"यह एक अमान्य कलह {0} आईडी है!",
"discordInvalidIdOptions":"यह एक अमान्य कलह {0} आईडी है! ",
"discordInvalidToken":"यह एक अमान्य कलह टोकन है (वाक्यविन्यास की दृष्टि से)!",
"colorInvalid":"यह अमान्य हेक्स रंग है!",
"emojiTooShort":"इस स्ट्रिंग में कम से कम {0} इमोजी होना आवश्यक है!",
"emojiTooLong":"इस स्ट्रिंग में अधिकतम {0} इमोजी होना आवश्यक है!",
"emojiCustom":"यह इमोजी कस्टम डिसॉर्डर इमोजी नहीं हो सकता!",
"emojiInvalid":"यह एक अमान्य इमोजी है!",
"urlInvalid":"यह यूआरएल अमान्य है!",
"urlInvalidHttp":"यह यूआरएल केवल https:// प्रोटोकॉल का उपयोग कर सकता है!",
"urlInvalidProtocol":"यह यूआरएल केवल http:// और https:// प्रोटोकॉल का उपयोग कर सकता है!",
"urlInvalidHostname":"इस यूआरएल में एक अस्वीकृत होस्टनाम है!",
"urlInvalidExtension":"इस यूआरएल में एक अमान्य एक्सटेंशन है! ",
"urlInvalidPath":"इस यूआरएल में एक अमान्य पथ है!",
"idNotUnique":"यह आईडी अद्वितीय नहीं है, इसके बजाय किसी अन्य आईडी का उपयोग करें!",
"idNonExistent":"आईडी {0} मौजूद नहीं है!",
"invalidType":"यह संपत्ति इस प्रकार की होनी चाहिए: {0}!",
"propertyMissing":"इस ऑब्जेक्ट में संपत्ति {0} गायब है!",
"propertyOptional":"इस ऑब्जेक्ट में संपत्ति {0} वैकल्पिक है!",
"objectDisabled":"यह ऑब्जेक्ट अक्षम है, इसे {0} का उपयोग करके सक्षम करें!",
"nullInvalid":"यह संपत्ति शून्य नहीं हो सकती!",
"switchInvalidType":"इसे निम्न प्रकारों में से एक होना आवश्यक है: {0}!",
"objectSwitchInvalid":"यह ऑब्जेक्ट निम्न प्रकारों में से एक होना चाहिए: {0}!",
"invalidLanguage":"यह एक अमान्य भाषा है!",
"invalidButton":"इस बटन पर कम से कम {0} या {1} होना आवश्यक है!",
"unusedOption":"विकल्प {0} का उपयोग कहीं भी नहीं किया जाता है!",
"unusedQuestion":"प्रश्न {0} का प्रयोग कहीं भी नहीं किया गया है!",
"dropdownOption":"ड्रॉपडाउन सक्षम पैनल में केवल 'टिकट' प्रकार के विकल्प हो सकते हैं!",
"customInvalidVersion":"आपके कॉन्फ़िग में निर्दिष्ट संस्करण मेल नहीं खाता! कृपया सुनिश्चित करें कि आपने कॉन्फ़िग को नवीनतम संस्करण में अपडेट किया है!"
}
},
"actions":{
"buttons":{
"create":"विजिट टिकट",
"close":"टिकट बंद करें",
"delete":"टिकट हटाएँ",
"reopen":"टिकट पुनः खोलें",
"claim":"टिकट का दावा करें",
"unclaim":"लावारिस टिकट",
"pin":"टिकट पिन करें",
"unpin":"टिकट अनपिन करें",
"clear":"टिकट हटाएँ",
"helpSwitchSlash":"स्लैश कमांड देखें",
"helpSwitchText":"टेक्स्ट कमांड देखें",
"helpPage":"पेज {0}",
"withReason":"कारण के साथ",
"withoutTranscript":"प्रतिलेख के बिना"
},
"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":"स्वत: बंद सक्षम",
"autocloseDisabled":"स्वत: बंद अक्षम",
"autodelete":"टिकट स्वतः हटा दिया गया",
"autodeleteEnabled":"स्वतः हटाना सक्षम",
"autodeleteDisabled":"स्वतः हटाना अक्षम",
"topicSet":"विषय बदला गया",
"prioritySet":"प्राथमिकता बदली गई",
"priorityGet":"टिकट प्राथमिकता",
"transfer":"टिकट स्थानांतरित किया गया"
},
"descriptions":{
"create":"आपका टिकट बन गया है. ",
"close":"टिकट सफलतापूर्वक बंद कर दिया गया है!",
"delete":"टिकट सफलतापूर्वक हटा दिया गया है!",
"reopen":"टिकट सफलतापूर्वक पुनः खोल दिया गया है!",
"claim":"टिकट का सफलतापूर्वक दावा किया गया है!",
"unclaim":"टिकट सफलतापूर्वक लावारिस हो गया है!",
"pin":"टिकट सफलतापूर्वक पिन कर दिया गया है!",
"unpin":"टिकट सफलतापूर्वक अनपिन कर दिया गया है!",
"rename":"टिकट का नाम बदलकर सफलतापूर्वक {0} कर दिया गया है!",
"move":"टिकट को सफलतापूर्वक {0} पर ले जाया गया है!",
"add":"{0} को टिकट में सफलतापूर्वक जोड़ दिया गया है!",
"remove":"{0} को टिकट से सफलतापूर्वक हटा दिया गया है!",
"helpExplanation":"`<name>` => आवश्यक पैरामीटर\n",
"statsReset":"बॉट आँकड़े सफलतापूर्वक रीसेट कर दिए गए हैं!",
"statsError":"टिकट आँकड़े देखने में असमर्थ!\n",
"blacklistAdd":"{0} को सफलतापूर्वक काली सूची में डाल दिया गया है!",
"blacklistRemove":"{0} सफलतापूर्वक जारी कर दिया गया है!",
"blacklistGetSuccess":"{0} वर्तमान में ब्लैकलिस्टेड है!",
"blacklistGetEmpty":"{0} वर्तमान में काली सूची में नहीं डाला गया है!",
"blacklistViewEmpty":"अभी तक किसी को भी काली सूची में नहीं डाला गया है!",
"blacklistViewTip":"किसी उपयोगकर्ता को ब्लैकलिस्ट करने के लिए \"/ब्लैकलिस्ट ऐड\" का उपयोग करें!",
"clearVerify":"क्या आप वाकई एकाधिक टिकट हटाना चाहते हैं?\n",
"clearReady":"{0} टिकट सफलतापूर्वक हटा दिए गए हैं!",
"rolesEmpty":"कोई भूमिका अद्यतन नहीं की गई है!",
"autocloseLeave":"यह टिकट स्वतः बंद हो गया है क्योंकि निर्माता ने सर्वर छोड़ दिया है!",
"autocloseTimeout":"यह टिकट स्वतः बंद कर दिया गया है क्योंकि यह `{0}h` से अधिक समय से निष्क्रिय है!",
"autodeleteLeave":"यह टिकट स्वतः हटा दिया गया है क्योंकि निर्माता ने सर्वर छोड़ दिया है!",
"autodeleteTimeout":"यह टिकट स्वतः हटा दिया गया है क्योंकि यह `{0} दिनों` से अधिक समय से निष्क्रिय है!",
"autocloseEnabled":"इस टिकट में ऑटोक्लोज़ सक्षम कर दिया गया है!\n",
"autocloseDisabled":"इस टिकट में ऑटोक्लोज़ अक्षम कर दिया गया है!\n",
"autodeleteEnabled":"इस टिकट में ऑटोडिलीट सक्षम कर दिया गया है!\n",
"autodeleteDisabled":"इस टिकट में ऑटोडिलीट अक्षम कर दिया गया है!\n",
"ticketMessageLimit":"आप एक ही समय में केवल {0} टिकट बना सकते हैं!",
"ticketMessageAutoclose":"{0}घंटे तक निष्क्रिय रहने पर यह टिकट स्वतः बंद हो जाएगा!",
"ticketMessageAutodelete":"{0} दिनों तक निष्क्रिय रहने पर यह टिकट स्वतः हटा दिया जाएगा!",
"panelReady":"पैनल फॉलोअप संदेश में उपलब्ध है!\nयह संदेश अब हटाया जा सकता है!",
"topicSet":"चैनल का विषय {0} द्वारा सफलतापूर्वक बदल दिया गया है!",
"prioritySet":"टिकट की प्राथमिकता {1} द्वारा {0} में सफलतापूर्वक बदल दी गई है!",
"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":"इस टिकट का नाम बदलकर {1} द्वारा {0} कर दिया गया है!",
"renameDm":"हमारे सर्वर में आपके टिकट का नाम बदलकर {0} कर दिया गया है!",
"moveLog":"इस टिकट को {1} द्वारा {0} में स्थानांतरित कर दिया गया है!",
"moveDm":"आपका टिकट हमारे सर्वर में {0} पर स्थानांतरित कर दिया गया है!",
"addLog":"इस टिकट में {1} द्वारा {0} जोड़ा गया है!",
"addDm":"हमारे सर्वर में आपके टिकट में {0} जोड़ दिया गया है!",
"removeLog":"{1} द्वारा इस टिकट से {0} हटा दिया गया है!",
"removeDm":"हमारे सर्वर में आपके टिकट से {0} हटा दिया गया है!",
"blacklistAddLog":"{0} को {1} द्वारा काली सूची में डाल दिया गया था!",
"blacklistRemoveLog":"{0} को {1} द्वारा काली सूची से हटा दिया गया था!",
"blacklistAddDm":"आपको हमारे सर्वर में काली सूची में डाल दिया गया है!\n",
"blacklistRemoveDm":"आपको हमारे सर्वर में ब्लैकलिस्ट से हटा दिया गया है!\n",
"clearLog":"{0} टिकटें {1} द्वारा हटा दी गई हैं!",
"transferLog":"इस टिकट का स्वामित्व {0} से {1} में {2} द्वारा स्थानांतरित किया गया है!",
"transferDm":"आपके टिकट का स्वामित्व हमारे सर्वर में {0} से {1} में स्थानांतरित कर दिया गया है!",
"prioritySetLog":"इस टिकट की प्राथमिकता {1} द्वारा {0} में बदल दी गई है!",
"prioritySetDm":"आपके टिकट की प्राथमिकता हमारे सर्वर में {0} में बदल दी गई है!",
"roleUpdateLog":"{0} ने अपनी भूमिकाएँ अपडेट की हैं!",
"roleUpdateDm":"आपकी भूमिकाएँ हमारे सर्वर में अपडेट कर दी गई हैं!"
}
},
"transcripts":{
"success":{
"visit":"प्रतिलेख पर जाएँ",
"ready":"प्रतिलेख बनाया गया",
"textFileDescription":"यह हटाए गए टिकट का टेक्स्ट ट्रांसक्रिप्ट है!",
"htmlProgress":"कृपया इस HTML प्रतिलेख के संसाधित होने तक प्रतीक्षा करें...",
"createdChannel":"सर्वर में एक नया {0} ट्रांस्क्रिप्ट बनाया गया है!",
"createdCreator":"आपके एक टिकट के लिए एक नया {0} प्रतिलेख बनाया गया है!",
"createdParticipant":"आपके द्वारा भाग लिए गए टिकटों में से एक में एक नया {0} प्रतिलेख बनाया गया है!",
"createdActiveAdmin":"आपके द्वारा व्यवस्थापक के रूप में भाग लिए गए टिकटों में से एक में एक नया {0} प्रतिलेख बनाया गया है!",
"createdEveryAdmin":"जिन टिकटों के आप व्यवस्थापक थे उनमें से एक में एक नया {0} प्रतिलेख बनाया गया है!",
"createdOther":"एक नया {0} प्रतिलेख बनाया गया है!"
},
"errors":{
"retry":"पुन: प्रयास करें",
"continue":"प्रतिलेख के बिना हटाएँ",
"backup":"बैकअप ट्रांस्क्रिप्ट बनाएं",
"error":"प्रतिलेख बनाने का प्रयास करते समय कुछ गलत हो गया।\n",
"title":"ट्रांसक्रिप्ट त्रुटि"
},
"text":{
"messagesTitle":"संदेश",
"embedTitle":"एम्बेड",
"fileTitle":"फ़ाइल",
"fieldsTitle":"फ़ील्ड्स",
"reactionsTitle":"प्रतिक्रियाएँ",
"statsTitle":"आँकड़े",
"emptyContent":"<सामग्री खाली है>",
"noTitle":"<कोई शीर्षक नहीं>",
"noDesc":"<कोई विवरण नहीं>"
}
},
"errors":{
"titles":{
"internalError":"आंतरिक त्रुटि",
"optionMissing":"आदेश विकल्प गुम है",
"optionInvalid":"आदेश विकल्प अमान्य",
"unknownCommand":"अज्ञात आदेश",
"noPermissions":"कोई अनुमति नहीं",
"unknownTicket":"अज्ञात टिकट",
"deprecatedTicket":"अस्वीकृत टिकट",
"unknownOption":"अज्ञात विकल्प",
"unknownPanel":"अज्ञात पैनल",
"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":"वर्तमान चैनल वैध टिकट नहीं है! ",
"notInGuild":"यह {0} डीएम में काम नहीं करता! ",
"channelRename":"विवाद की दर सीमा के कारण, वर्तमान में बॉट के लिए चैनल का नाम बदलना असंभव है। ",
"channelRenameSource":"इस त्रुटि का स्रोत है: {0}",
"busy":"इस {0} का उपयोग करने में असमर्थ!\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":"आपको बॉट का डेवलपर बनना होगा.",
"owner":"आपको सर्वर स्वामी होना आवश्यक है.",
"admin":"आपको एक सर्वर एडमिन बनना होगा.",
"moderator":"आपको एक मॉडरेटर बनना होगा.",
"support":"आपको सहायता टीम में रहना होगा.",
"member":"आपको सदस्य बनना होगा.",
"discord-administrator":"आपके पास `प्रशासक` की अनुमति होनी चाहिए।"
},
"actionInvalid":{
"close":"टिकट पहले ही बंद हो चुका है!",
"reopen":"टिकट अभी बंद नहीं हुआ है!",
"claim":"टिकट का दावा पहले ही हो चुका है!",
"unclaim":"अभी तक टिकट का दावा नहीं किया गया है!",
"pin":"टिकट पहले ही पिन हो चुका है!",
"unpin":"टिकट अभी तक पिन नहीं किया गया है!",
"add":"यह उपयोगकर्ता पहले से ही टिकट तक पहुंचने में सक्षम है!",
"remove":"इस उपयोगकर्ता को टिकट से हटाने में असमर्थ!"
}
},
"params":{
"uppercase":{
"ticket":"टिकट",
"tickets":"टिकट",
"reason":"कारण",
"creator":"निर्माता",
"remaining":"शेष समय",
"added":"जोड़ा",
"removed":"निकाला गया",
"filter":"फ़िल्टर",
"method":"तरीका",
"type":"प्रकार",
"blacklisted":"ब्लैक लिस्ट किया",
"panel":"पैनल",
"command":"आज्ञा",
"system":"प्रणाली",
"true":"सत्य",
"false":"असत्य",
"syntax":"सिंटेक्स",
"originalName":"मूल नाम",
"newName":"नया नाम",
"until":"जब तक",
"validOptions":"वैध विकल्प",
"validPanels":"वैध पैनल",
"autoclose":"स्वतः",
"autodelete":"स्वतः हटाएं",
"startupDate":"अद्यतनीकरण शुरू करें",
"version":"संस्करण",
"name":"नाम",
"role":"भूमिका",
"status":"स्थिति",
"claimed":"दावा किया",
"pinned":"पिन की गई",
"creationDate":"निर्माण तिथि",
"noone":"कोई नहीं",
"open":"खुला",
"closed":"बंद",
"priority":"प्राथमिकता",
"participants":"प्रतिभागी",
"yes":"हाँ",
"no":"नहीं",
"option":"विकल्प",
"topic":"विषय",
"uptime":"सिस्टम अपटाइम",
"messages":"संदेश",
"embeds":"एम्बेड्स",
"files":"फ़ाइलें",
"components":"घटक",
"cooldown":"कूलडाउन",
"maxTickets":"अधिकतम टिकट",
"admins":"एडमिन",
"roles":"भूमिकाएँ",
"size":"आकार"
},
"lowercase":{
"text":"मूलपाठ",
"html":"एचटीएमएल",
"command":"आज्ञा",
"modal":"मॉडल",
"button":"बटन",
"dropdown":"ड्रॉप डाउन",
"method":"तरीका"
}
},
"commands":{
"reason":"एक वैकल्पिक कारण निर्दिष्ट करें जो लॉग में दिखाई देगा।",
"help":"सभी उपलब्ध आदेशों की सूची प्राप्त करें.",
"panel":"ड्रॉपडाउन या बटन (टिकट निर्माण के लिए) के साथ एक संदेश भेजें।",
"panelId":"उस पैनल का पहचानकर्ता जिसे आप स्पॉन करना चाहते हैं.",
"panelAutoUpdate":"क्या आप चाहते हैं कि संपादित होने पर यह पैनल स्वचालित रूप से अपडेट हो जाए?",
"ticket":"तुरंत टिकट बनाएं.",
"ticketId":"उस टिकट का पहचानकर्ता जिसे आप बनाना चाहते हैं.",
"close":"एक टिकट बंद करें.",
"delete":"एक टिकट हटाएँ.",
"deleteNoTranscript":"प्रतिलेख बनाए बिना इस टिकट को हटा दें।",
"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":"किसी टिकट में ऑटोक्लोज़ प्रबंधित करें.",
"autocloseDisable":"इस टिकट में ऑटोक्लोज़ अक्षम करें.",
"autocloseEnable":"इस टिकट में ऑटोक्लोज़ सक्षम करें।",
"autocloseEnableTime":"इस टिकट को बंद करने के लिए कितने घंटे निष्क्रिय रहने की आवश्यकता है।",
"autodelete":"किसी टिकट में स्वत: हटाना प्रबंधित करें.",
"autodeleteDisable":"इस टिकट में ऑटोडिलीट अक्षम करें।",
"autodeleteEnable":"इस टिकट में ऑटोडिलीट सक्षम करें।",
"autodeleteEnableTime":"इस टिकट को हटाने के लिए उतने दिनों की संख्या निष्क्रिय होनी चाहिए।",
"topic":"टिकट चैनल के विषय का प्रबंधन करें।",
"topicSet":"टिकट चैनल का विषय सेट करें।",
"topicValue":"चैनल का नया विषय।",
"topicList":"सभी टिकटों की सूची प्राप्त करें जिनके विषय और आँकड़े शामिल हैं।",
"priority":"टिकट की प्राथमिकता का प्रबंधन करें।",
"prioritySet":"टिकट की प्राथमिकता सेट करें।",
"priorityValue":"चैनल की प्राथमिकता।",
"priorityGet":"टिकट की प्राथमिकता प्राप्त करें।",
"priorityList":"सभी टिकटों की प्राथमिकता स्थिति की सूची प्राप्त करें।",
"transfer":"टिकट का स्वामित्व एक उपयोगकर्ता से दूसरे को स्थानांतरित करें।",
"transferUser":"जिस उपयोगकर्ता को स्थानांतरित करना है।"
},
"helpMenu":{
"help":"सभी उपलब्ध आदेशों की सूची प्राप्त करें.",
"ticket":"तुरंत टिकट बनाएं.",
"close":"टिकट बंद करें, इससे इस चैनल में लिखना अक्षम हो जाएगा।",
"delete":"टिकट हटाएं, सक्षम होने पर यह एक प्रतिलेख बनाता है।",
"reopen":"टिकट दोबारा खोलें, इससे इस चैनल में फिर से लिखना संभव हो जाएगा।",
"pin":"टिकट पिन करें. ",
"unpin":"टिकट अनपिन करें. ",
"move":"एक टिकट ले जाएँ. ",
"rename":"टिकट का नाम बदलें. ",
"claim":"टिकट का दावा करें. ",
"unclaim":"टिकट का दावा रद्द करें. ",
"add":"किसी उपयोगकर्ता को टिकट में जोड़ें. ",
"remove":"किसी उपयोगकर्ता को टिकट से हटाएँ. ",
"panel":"ड्रॉपडाउन या बटन (टिकट निर्माण के लिए) के साथ एक संदेश भेजें।",
"blacklistView":"वर्तमान ब्लैकलिस्ट की सूची देखें.",
"blacklistAdd":"किसी उपयोगकर्ता को काली सूची में जोड़ें.",
"blacklistRemove":"किसी उपयोगकर्ता को काली सूची से हटाएँ.",
"blacklistGet":"ब्लैकलिस्टेड उपयोगकर्ता से विवरण प्राप्त करें।",
"statsGlobal":"वैश्विक आँकड़े देखें.",
"statsTicket":"सर्वर में टिकट के आँकड़े देखें।",
"statsUser":"सर्वर में किसी उपयोगकर्ता के आँकड़े देखें।",
"statsReset":"बॉट के सभी आँकड़े रीसेट करें (और शून्य से गिनती शुरू करें)।",
"autocloseDisable":"इस टिकट में ऑटोक्लोज़ अक्षम करें.",
"autocloseEnable":"इस टिकट में ऑटोक्लोज़ सक्षम करें।",
"autodeleteDisable":"इस टिकट में ऑटोडिलीट अक्षम करें।",
"autodeleteEnable":"इस टिकट में ऑटोडिलीट सक्षम करें।",
"categories":{
"general":"सामान्य कमांड्स",
"basicTicket":"मूल टिकट कमांड्स",
"advancedTicket":"उन्नत टिकट कमांड्स",
"userTicket":"उपयोगकर्ता टिकट कमांड्स",
"admin":"एडमिन कमांड्स",
"advanced":"उन्नत कमांड्स",
"extra":"अतिरिक्त कमांड्स"
}
},
"stats":{
"scopes":{
"global":"वैश्विक आँकड़े",
"system":"सिस्टम आँकड़े",
"user":"उपयोगकर्ता आँकड़े",
"ticket":"टिकट आँकड़े",
"participants":"प्रतिभागियों",
"messages":"संदेश"
},
"properties":{
"ticketsCreated":"टिकट बनाये गये",
"ticketsClosed":"टिकट बंद",
"ticketsDeleted":"टिकटें हटा दी गईं",
"ticketsReopened":"टिकट पुनः खोले गए",
"ticketsAutoclosed":"टिकट स्वतः बंद",
"ticketsClaimed":"टिकट का दावा किया गया",
"ticketsPinned":"टिकट पिन किये गये",
"ticketsMoved":"टिकट ले जाया गया",
"usersBlacklisted":"उपयोगकर्ता ब्लैकलिस्टेड",
"transcriptsCreated":"प्रतिलिपियाँ बनाई गईं",
"ticketsAutodeleted":"टिकट स्वचालित रूप से हटाए गए",
"ticketsTransferred":"स्थानांतरित टिकट",
"ticketVolume":"टिकट मात्रा",
"averageTickets":"औसत टिकट/उपयोगकर्ता",
"currentTickets":"वर्तमान टिकट",
"age":"टिकट की आयु",
"responseTime":"प्रतिक्रिया समय",
"resolutionTime":"समाधान समय",
"createdOn":"निर्माण तिथि",
"createdBy":"द्वारा बनाया गया",
"closedOn":"बंद करने की तिथि",
"closedBy":"द्वारा बंद किया गया",
"claimedOn":"दावा की गई तिथि",
"claimedBy":"द्वारा दावा किया गया",
"pinnedOn":"पिन की गई तिथि",
"pinnedBy":"द्वारा पिन किया गया",
"deletedOn":"हटाने की तिथि",
"deletedBy":"द्वारा हटाया गया"
},
"roles":{
"developer":"डेवलपर",
"serverOwner":"सर्वर स्वामी",
"serverAdmin":"सर्वर एडमिन",
"moderator":"मॉडरेटर टीम",
"support":"सपोर्ट टीम",
"member":"सदस्य"
}
},
"panel":{
"selectTicket":"अपना टिकट चुनें",
"selectRole":"अपनी भूमिका चुनें",
"selectOption":"अपना विकल्प चुनें"
},
"priorities":{
"urgent":"अत्यावश्यक",
"veryHigh":"बहुत उच्च",
"high":"उच्च",
"normal":"सामान्य",
"low":"निम्न",
"veryLow":"बहुत निम्न",
"none":"कोई नहीं"
}
}
+608
View File
@@ -0,0 +1,608 @@
{
"_TRANSLATION":{
"otversion":"v4.1.3",
"translators":["Kornel0706"],
"lastedited":"16/02/2026",
"language":"Hungarian",
"automated":false
},
"checker":{
"system":{
"typeError":"[HIBA]",
"headerOpenTicket":"NYITOTT JEGY",
"typeWarning":"[FIGYELMEZTETÉS]",
"typeInfo":"[INFORMÁCIÓ]",
"headerConfigChecker":"KONFIGURÁCIÓ ELLENŐRZÉS",
"headerDescription":"hibaellenőrzés a konfigurációdban!",
"footerError":"a bot nem indul el, amíg a következőket nem javítod ki: {0}!",
"footerWarning":"ajánlott javítani a következőket az indítás előtt: {0}!",
"footerSupport":"SUPPORT: {0} - DOKUMENTÁCIÓ: {1}",
"compactInformation":"használd a következőt: {0} további információkért!",
"dataPath":"útvonal",
"dataDocs":"dokumentáció",
"dataMessages":"üzenet"
},
"messages":{
"stringTooShort":"Ez a karakterlánc nem lehet rövidebb, mint {0} karakter!",
"stringTooLong":"Ez a karakterlánc nem lehet hosszabb, mint {0} karakter!",
"stringLengthInvalid":"Ez a karakterlánc {0} karakter hosszúnak kell lennie!",
"stringStartsWith":"Ennek a karakterláncnak {0}-al kell kezdődnie!",
"stringEndsWith":"Ennek a karakterláncnak {0}-al kell végződnie!",
"stringContains":"Ennek a karakterláncnak tartalmaznia kell {0}-t!",
"stringChoices":"Ez a karakterlánc csak a következő értékek egyike lehet: {0}!",
"stringRegex":"Ez a karakterlánc érvénytelen!",
"stringInvertedContains":"Ez a szöveg nem tartalmazhatja a(z) {0} elemet!",
"stringLowercase":"Ez a szöveg csak kisbetűvel írható!",
"stringUppercase":"Ez a szöveg csak nagybetűvel írható!",
"stringSpecialCharacters":"Ez a szöveg nem tartalmazhat különleges karaktereket! (csak a-z, 0-9 és szóköz)",
"stringNoSpaces":"Ez a szöveg nem tartalmazhat szóközt!",
"stringCapitalWord":"Ajánlott, hogy minden szó nagybetűvel kezdődjön!",
"stringCapitalSentence":"Úgy tűnik, néhány mondat ebben a szövegben nem nagybetűvel kezdődik!",
"stringPunctuation":"Úgy tűnik, ez a mondat nem ponttal vagy más írásjellel végződik!",
"numberTooShort":"Ez a szám nem lehet rövidebb, mint {0} karakter!",
"numberTooLong":"Ez a szám nem lehet hosszabb, mint {0} karakter!",
"numberLengthInvalid":"Ez a szám {0} karakter hosszúnak kell lennie!",
"numberTooSmall":"Ennek a számnak legalább {0}-nak kell lennie!",
"numberTooLarge":"Ennek a számnak legfeljebb {0}-nak kell lennie!",
"numberNotEqual":"Ennek a számnak pontosan {0}-nak kell lennie!",
"numberStep":"Ennek a számnak a következő többszörösének kell lennie: {0}!",
"numberStepOffset":"Ennek a számnak a következő többszörösének kell lennie: {0}, kezdve {1}-el!",
"numberStartsWith":"Ennek a számnak {0}-al kell kezdődnie!",
"numberEndsWith":"Ennek a számnak {0}-al kell végződnie!",
"numberContains":"Ennek a számnak tartalmaznia kell {0}-t!",
"numberChoices":"Ez a szám csak a következő értékek egyike lehet: {0}!",
"numberFloat":"Ez a szám nem lehet tizedes!",
"numberNegative":"Ez a szám nem lehet negatív!",
"numberPositive":"Ez a szám nem lehet pozitív!",
"numberZero":"Ez a szám nem lehet nulla!",
"numberNan":"Ez a szám nem lehet NaN (Nem szám)!",
"numberInvertedContains":"Ez a szám nem tartalmazhatja a(z) {0} elemet!",
"booleanTrue":"Ez a logikai érték nem lehet igaz!",
"booleanFalse":"Ez a logikai érték nem lehet hamis!",
"arrayEmptyDisabled":"Ez a tömb nem lehet üres!",
"arrayEmptyRequired":"Ez a tömb üresnek kell lennie!",
"arrayTooShort":"Ennek a tömbnek legalább {0} hosszúnak kell lennie!",
"arrayTooLong":"Ennek a tömbnek legfeljebb {0} hosszúnak kell lennie!",
"arrayLengthInvalid":"Ennek a tömbnek pontosan {0} hosszúnak kell lennie!",
"arrayInvalidTypes":"Ez a tömb csak a következő típusokat tartalmazhatja: {0}!",
"arrayDouble":"Ez a tömb nem engedélyezi ugyanazt az értéket kétszer!",
"discordInvalidId":"Ez egy érvénytelen discord {0} azonosító!",
"discordInvalidIdOptions":"Ez egy érvénytelen discord {0} azonosító! Használhatja a következő lehetőségek egyikét is: {1}!",
"discordInvalidToken":"Ez egy érvénytelen discord token (szintaktikailag)!",
"colorInvalid":"Ez egy érvénytelen hex szín!",
"emojiTooShort":"Ennek a karakterláncnak legalább {0} emoji-t kell tartalmaznia!",
"emojiTooLong":"Ennek a karakterláncnak legfeljebb {0} emoji-t kell tartalmaznia!",
"emojiCustom":"Ez az emoji nem lehet egy egyéni discord emoji!",
"emojiInvalid":"Ez egy érvénytelen emoji!",
"urlInvalid":"Ez egy érvénytelen URL!",
"urlInvalidHttp":"Ez az URL csak a https:// protokollt használhatja!",
"urlInvalidProtocol":"Ez az URL csak a http:// & https:// protokollokat használhatja!",
"urlInvalidHostname":"Ez az URL egy nem engedélyezett hosztnevet tartalmaz!",
"urlInvalidExtension":"Ez az URL egy érvénytelen kiterjesztést tartalmaz! Válasszon a következők közül: {0}!",
"urlInvalidPath":"Ez az URL érvénytelen elérési utat tartalmaz!",
"idNotUnique":"Ez az azonosító nem egyedi, használjon egy másikat!",
"idNonExistent":"Az azonosító {0} nem létezik!",
"invalidType":"Ennek a tulajdonságnak a következő típusúnak kell lennie: {0}!",
"propertyMissing":"A {0} tulajdonság hiányzik ebből az objektumból!",
"propertyOptional":"A {0} tulajdonság opcionális ebben az objektumban!",
"objectDisabled":"Ez az objektum le van tiltva, engedélyezze a következő használatával: {0}!",
"nullInvalid":"Ez a tulajdonság nem lehet null!",
"switchInvalidType":"Ennek a következő típusok egyikének kell lennie: {0}!",
"objectSwitchInvalid":"Ennek az objektumnak a következő típusok egyikének kell lennie: {0}!",
"invalidLanguage":"Ez egy érvénytelen nyelv!",
"invalidButton":"Ennek a gombnak legalább egy {0} vagy {1} kell, hogy tartalmazzon!",
"unusedOption":"Az opció {0} nincs használatban sehol!",
"unusedQuestion":"A kérdés {0} nincs használatban sehol!",
"dropdownOption":"Egy legördülő menüvel rendelkező panel csak a 'jegy' típusú opciókat tartalmazhat!",
"customInvalidVersion":"A konfigurációban megadott verzió nem egyezik! Győződjön meg róla, hogy a konfiguráció a legfrissebb verzióra van frissítve!"
}
},
"actions":{
"buttons":{
"create":"Jegy megnyitása",
"close":"Jegy bezárása",
"delete":"Jegy törlése",
"reopen":"Jegy újranyitása",
"claim":"Jegy igénylése",
"unclaim":"Jegy feloldása",
"pin":"Jegy rögzítése",
"unpin":"Jegy rögzítésének feloldása",
"clear":"Jegyek törlése",
"helpSwitchSlash":"Parancsok megtekintése",
"helpSwitchText":"Szöveges parancsok megtekintése",
"helpPage":"Oldal {0}",
"withReason":"Indoklással",
"withoutTranscript":"Átirat nélkül"
},
"titles":{
"created":"Jegy létrehozva",
"close":"Jegy bezárva",
"delete":"Jegy törölve",
"reopen":"Jegy újranyitva",
"claim":"Jegy igényelve",
"unclaim":"Jegy feloldva",
"pin":"Jegy rögzítve",
"unpin":"Jegy rögzítésének feloldva",
"rename":"Jegy átnevezve {0}-ra",
"move":"Jegy áthelyezve {0}-ra",
"add":"Felhasználó hozzáadva a jegyhez",
"remove":"Felhasználó eltávolítva a jegyből",
"help":"Elérhető parancsok",
"statsReset":"Statisztikák visszaállítása",
"blacklistAdd":"Felhasználó tiltólistára helyezve",
"blacklistRemove":"Felhasználó tiltólistáról eltávolítva",
"blacklistGet":"Tiltólistás felhasználó",
"blacklistView":"Jelenlegi tiltólista",
"blacklistAddDm":"Felvéve a tiltólistára",
"blacklistRemoveDm":"Eltávolítva a tiltólistáról",
"clear":"Jegyek törölve",
"clearTickets":"Jegyek törlése",
"roles":"Szerepek frissítve",
"autoclose":"Jegy automatikusan bezárva",
"autocloseEnabled":"Automatikus bezárás engedélyezve",
"autocloseDisabled":"Automatikus bezárás letiltva",
"autodelete":"Jegy automatikusan törölve",
"autodeleteEnabled":"Automatikus törlés engedélyezve",
"autodeleteDisabled":"Automatikus törlés letiltva",
"topicSet":"Téma megváltoztatva",
"prioritySet":"Prioritás megváltoztatva",
"priorityGet":"Jegy prioritása",
"transfer":"Jegy átvitele"
},
"descriptions":{
"create":"A jegyed létrejött. Kattints az alábbi gombra, hogy hozzáférj!",
"close":"A jegyet sikeresen lezártuk!",
"delete":"A jegyet sikeresen töröltük!",
"reopen":"A jegyet sikeresen újranyitottuk!",
"claim":"A jegyet sikeresen igényeltük!",
"unclaim":"A jegyet sikeresen feloldottuk!",
"pin":"A jegyet sikeresen rögzítettük!",
"unpin":"A jegy rögzítését sikeresen feloldottuk!",
"rename":"A jegyet sikeresen átneveztük {0}-ra!",
"move":"A jegyet sikeresen áthelyeztük {0}-ra!",
"add":"{0} sikeresen hozzáadva a jegyhez!",
"remove":"{0} sikeresen eltávolítva a jegyből!",
"helpExplanation":"`<név>` => kötelező paraméter\n`[név]` => opcionális paraméter",
"statsReset":"A bot statisztikái sikeresen visszaállítva!",
"statsError":"A jegy statisztikáit nem sikerült megtekinteni!\n{0} nem egy jegy!",
"blacklistAdd":"{0} sikeresen felvéve a tiltólistára!",
"blacklistRemove":"{0} sikeresen eltávolítva a tiltólistáról!",
"blacklistGetSuccess":"{0} jelenleg tiltólistán van!",
"blacklistGetEmpty":"{0} jelenleg nincs tiltólistán!",
"blacklistViewEmpty":"Még senki nincs tiltólistán!",
"blacklistViewTip":"Használd a \"/blacklist add\" parancsot, hogy felvegyél valakit a tiltólistára!",
"clearVerify":"Biztos vagy benne, hogy törölni szeretnéd több jegyet? Ez a művelet nem vonható vissza!",
"clearReady":"{0} jegyek sikeresen törölve!",
"rolesEmpty":"Nincsenek frissítve szerepek!",
"autocloseLeave":"Ez a jegy automatikusan bezáródott, mert a készítő elhagyta a szervert!",
"autocloseTimeout":"Ez a jegy automatikusan bezáródott, mert több mint `{0}h` ideje inaktív volt!",
"autodeleteLeave":"Ez a jegy automatikusan törlődött, mert a készítő elhagyta a szervert!",
"autodeleteTimeout":"Ez a jegy automatikusan törlődött, mert több mint `{0} nap` ideje inaktív volt!",
"autocloseEnabled":"Az automatikus bezárás engedélyezve van ebben a jegyben!\nEz bezáródik, ha több mint `{0}h` ideig inaktív!",
"autocloseDisabled":"Az automatikus bezárás le van tiltva ebben a jegyben!\nNem záródik be automatikusan többé!",
"autodeleteEnabled":"Az automatikus törlés engedélyezve van ebben a jegyben!\nEz törlődik, ha több mint `{0} nap` ideig inaktív!",
"autodeleteDisabled":"Az automatikus törlés le van tiltva ebben a jegyben!\nNem törlődik automatikusan többé!",
"ticketMessageLimit":"Egyszerre csak {0} jegyet hozhatsz létre!",
"ticketMessageAutoclose":"Ez a jegy automatikusan bezáródik, ha inaktív marad {0}h ideig!",
"ticketMessageAutodelete":"Ez a jegy automatikusan törlődik, ha inaktív marad {0} nap ideig!",
"panelReady":"A panel elérhető a követő üzenetben!\nEz az üzenet most törölhető!",
"topicSet":"A csatorna témáját sikeresen megváltoztatta: {0}!",
"prioritySet":"A jegy prioritása sikeresen {1}-re változott: {0}!",
"priorityGet":"Ennek a jegynek a jelenlegi prioritása: {0}.",
"transfer":"A jegy tulajdonjoga sikeresen átkerült {0}-tól {1}-hez {2} által!"
},
"modal":{
"closePlaceholder":"Miért zártad be ezt a jegyet?",
"deletePlaceholder":"Miért törölted ezt a jegyet?",
"reopenPlaceholder":"Miért nyitottad újra ezt a jegyet?",
"claimPlaceholder":"Miért igényelted ezt a jegyet?",
"unclaimPlaceholder":"Miért oldottad fel ezt a jegyet?",
"pinPlaceholder":"Miért rögzítetted ezt a jegyet?",
"unpinPlaceholder":"Miért oldottad fel ennek a jegynek a rögzítését?"
},
"logs":{
"createLog":"Egy új jegy létrejött {0} által!",
"closeLog":"Ezt a jegyet lezárta {0}!",
"closeDm":"A jegyed lezárásra került a szerverünkön!",
"deleteLog":"Ezt a jegyet törölte {0}!",
"deleteDm":"A jegyed törlésre került a szerverünkön!",
"reopenLog":"Ezt a jegyet újranyitotta {0}!",
"reopenDm":"A jegyed újranyitásra került a szerverünkön!",
"claimLog":"Ezt a jegyet igényelte {0}!",
"claimDm":"A jegyed igénylésre került a szerverünkön!",
"unclaimLog":"Ezt a jegyet feloldotta {0}!",
"unclaimDm":"A jegyed feloldásra került a szerverünkön!",
"pinLog":"Ezt a jegyet rögzítette {0}!",
"pinDm":"A jegyed rögzítésre került a szerverünkön!",
"unpinLog":"Ezt a jegyet feloldotta {0}!",
"unpinDm":"A jegyed rögzítésének feloldásra került a szerverünkön!",
"renameLog":"Ezt a jegyet átnevezték {0}-ra {1} által!",
"renameDm":"A jegyed átnevezésre került {0}-ra a szerverünkön!",
"moveLog":"Ezt a jegyet áthelyezték {0}-ra {1} által!",
"moveDm":"A jegyed áthelyezésre került {0}-ra a szerverünkön!",
"addLog":"{0} hozzáadásra került ehhez a jegyhez {1} által!",
"addDm":"{0} hozzáadásra került a jegyedhez a szerverünkön!",
"removeLog":"{0} eltávolításra került ebből a jegyből {1} által!",
"removeDm":"{0} eltávolításra került a jegyedből a szerverünkön!",
"blacklistAddLog":"{0} tiltólistára helyezte {1}!",
"blacklistRemoveLog":"{0} eltávolította a tiltólistáról {1}!",
"blacklistAddDm":"Tiltólistára kerültél a szerverünkön!\nEzentúl nem hozhatsz létre jegyet!",
"blacklistRemoveDm":"Eltávolításra kerültél a szerverünk tiltólistájáról!\nMost újra létrehozhatsz jegyeket!",
"clearLog":"{0} jegyek törlésre kerültek {1} által!",
"transferLog":"A jegy tulajdonjoga {2} által {0}-ról {1}-re lett átvive!",
"transferDm":"A jegy tulajdonjoga át lett helyezve {0}-tól {1}-hez a szerverünkön!",
"prioritySetLog":"A jegy prioritása {1} által {0}-re változott!",
"prioritySetDm":"A jegy prioritása a szerverünkön {0}-re változott!",
"roleUpdateLog":"{0} frissítette a szerepköreit!",
"roleUpdateDm":"A szerepköreit frissítették a szerverünkön!"
}
},
"transcripts":{
"success":{
"visit":"Átirat megtekintése",
"ready":"Átirat létrehozva",
"textFileDescription":"Ez egy törölt jegy szöveges átirata!",
"htmlProgress":"Kérjük, várj, amíg ez a HTML átirat feldolgozásra kerül...",
"createdChannel":"Egy új {0} átirat létrejött a szerveren!",
"createdCreator":"Egy új {0} átirat létrejött egy jegyed számára!",
"createdParticipant":"Egy új {0} átirat létrejött egy jegyben, amiben részt vettél!",
"createdActiveAdmin":"Egy új {0} átirat létrejött egy jegyben, amiben adminisztrátorként vettél részt!",
"createdEveryAdmin":"Egy új {0} átirat létrejött egy jegyben, amiben adminisztrátorként voltál jelen!",
"createdOther":"Egy új {0} átirat létrejött!"
},
"errors":{
"retry":"Újra",
"continue":"Törlés átirat nélkül",
"backup":"Biztonsági átirat létrehozása",
"error":"Valami hiba történt az átirat létrehozása közben.\nMit szeretnél tenni?\n\nEz a jegy nem kerül törlésre, amíg nem kattintasz az egyik gombra.",
"title":"Átirat hiba"
},
"text":{
"messagesTitle":"ÜZENETEK",
"embedTitle":"BEÁGYAZÁS",
"fileTitle":"FÁJL",
"fieldsTitle":"MEZŐK",
"reactionsTitle":"REAKCIÓK",
"statsTitle":"STATS",
"emptyContent":"<tartalom üres>",
"noTitle":"<cím nélkül>",
"noDesc":"<leírás nélkül>"
}
},
"errors":{
"titles":{
"internalError":"Belső Hiba",
"optionMissing":"Parancs Opció Hiányzik",
"optionInvalid":"Parancs Opció Érvénytelen",
"unknownCommand":"Ismeretlen Parancs",
"noPermissions":"Nincs Jogosultság",
"unknownTicket":"Ismeretlen Jegy",
"deprecatedTicket":"Elavult Jegy",
"unknownOption":"Ismeretlen Opció",
"unknownPanel":"Ismeretlen Panel",
"notInGuild":"Nem a Szerveren",
"channelRename":"Nem sikerült átnevezni a csatornát",
"busy":"A Jegy Elfoglalt",
"permissionError":"Engedély hiba"
},
"descriptions":{
"askForInfo":"Lépj kapcsolatba a bot tulajdonosával további információkért!",
"askForInfoResolve":"Lépj kapcsolatba a bot tulajdonosával, ha ez a probléma nem oldódik meg néhány próbálkozás után.",
"internalError":"Nem sikerült válaszolni erre a {0}-ra egy belső hiba miatt!",
"optionMissing":"Hiányzik egy szükséges paraméter ebben a parancsban!",
"optionInvalid":"Egy paraméter érvénytelen ebben a parancsban!",
"optionInvalidChoose":"Válassz a következők közül",
"unknownCommand":"Próbáld meg a súgó menü megnyitását további információkért!",
"noPermissions":"Nem vagy jogosult használni ezt a {0}-t!",
"noPermissionsList":"Szükséges Jogosultságok: (egyik)",
"noPermissionsCooldown":"Nem vagy jogosult használni ezt a {0}-t, mert cooldown alatt állsz!",
"noPermissionsBlacklist":"Nem vagy jogosult használni ezt a {0}-t, mert tiltólistára kerültél!",
"noPermissionsLimitGlobal":"Nem hozhatsz létre jegyet, mert a szerver elérte a maximális jegy limitet!",
"noPermissionsLimitGlobalUser":"Nem hozhatsz létre jegyet, mert elérted a maximális jegy limitet!",
"noPermissionsLimitOption":"Nem hozhatsz létre jegyet, mert a szerver elérte a maximális jegy limitet ezzel az opcióval!",
"noPermissionsLimitOptionUser":"Nem hozhatsz létre jegyet, mert elérted a maximális jegy limitet ezzel az opcióval!",
"unknownTicket":"Próbáld újra ezt a parancsot egy érvényes jegyben!",
"deprecatedTicket":"Az aktuális csatorna nem egy érvényes jegy! Lehet, hogy ez egy régi Open Ticket verzióból származó jegy volt!",
"notInGuild":"Ez a {0} nem működik DM-ben! Próbáld újra egy szerveren!",
"channelRename":"A discord korlátai miatt jelenleg nem lehet átnevezni a csatornát. A csatorna automatikusan átnevezésre kerül 10 perc múlva, ha a bot nincs újraindítva.",
"channelRenameSource":"A hiba forrása: {0}",
"busy":"Nem lehet használni ezt a {0}-t!\nA jegy jelenleg a bot által van feldolgozás alatt.\n\nPróbáld meg néhány másodperc múlva!",
"closeBeforeMessage":"Ezt a jegyet nem lehet lezárni/törölni, amíg egy felhasználó nem küldött üzenetet.",
"closeBeforeAdminMessage":"Ezt a jegyet nem lehet lezárni/törölni, amíg a jegy adminja vagy a támogatói csapat tagja nem küldött üzenetet.",
"unableToCreateTicket":"Nem tud jegyet létrehozni."
},
"optionInvalidReasons":{
"stringRegex":"Az érték nem felel meg a mintának!",
"stringMinLength":"Az értéknek legalább {0} karakter hosszúnak kell lennie!",
"stringMaxLength":"Az értéknek legfeljebb {0} karakter hosszúnak kell lennie!",
"numberInvalid":"Érvénytelen szám!",
"numberMin":"A számnak legalább {0}-nak kell lennie!",
"numberMax":"A számnak legfeljebb {0}-nak kell lennie!",
"numberDecimal":"A szám nem lehet tizedes!",
"numberNegative":"A szám nem lehet negatív!",
"numberPositive":"A szám nem lehet pozitív!",
"numberZero":"A szám nem lehet nulla!",
"channelNotFound":"Nem található csatorna!",
"userNotFound":"Nem található felhasználó!",
"roleNotFound":"Nem található szerep!",
"memberNotFound":"Nem található felhasználó!",
"mentionableNotFound":"Nem található felhasználó vagy szerep!",
"channelType":"Érvénytelen csatornatípus!",
"notInGuild":"Ez az opció megköveteli, hogy szerveren legyél!"
},
"permissions":{
"developer":"A bot fejlesztőjének kell lenned.",
"owner":"A szerver tulajdonosának kell lenned.",
"admin":"Szerver adminnak kell lenned.",
"moderator":"Moderátornak kell lenned.",
"support":"A támogatási csapat tagjának kell lenned.",
"member":"Tagként kell lenned.",
"discord-administrator":"Az `ADMINISZTRÁTOR` jogosultsággal kell rendelkezned."
},
"actionInvalid":{
"close":"A jegy már le van zárva!",
"reopen":"A jegy még nincs lezárva!",
"claim":"A jegy már igényelve van!",
"unclaim":"A jegy még nincs feloldva!",
"pin":"A jegy már rögzítve van!",
"unpin":"A jegy még nincs feloldva!",
"add":"Ez a felhasználó már hozzáfér a jegyhez!",
"remove":"Nem lehet eltávolítani ezt a felhasználót a jegyből!"
}
},
"params":{
"uppercase":{
"ticket":"Jegy",
"tickets":"Jegyek",
"reason":"Indok",
"creator":"Készítő",
"remaining":"Hátralévő idő",
"added":"Hozzáadva",
"removed":"Eltávolítva",
"filter":"Szűrő",
"method":"Módszer",
"type":"Típus",
"blacklisted":"Tiltólistás",
"panel":"Panel",
"command":"Parancs",
"system":"Rendszer",
"true":"Igaz",
"false":"Hamis",
"syntax":"Szintaxis",
"originalName":"Eredeti Név",
"newName":"Új Név",
"until":"Amíg",
"validOptions":"Érvényes Opciók",
"validPanels":"Érvényes Panelek",
"autoclose":"Automatikus Bezárás",
"autodelete":"Automatikus Törlés",
"startupDate":"Indulás Dátuma",
"version":"Verzió",
"name":"Név",
"role":"Szerep",
"status":"Állapot",
"claimed":"Igényelt",
"pinned":"Rögzített",
"creationDate":"Létrehozás Dátuma",
"noone":"Senki",
"open":"Nyitott",
"closed":"Zárt",
"priority":"Prioritás",
"participants":"Résztvevők",
"yes":"Igen",
"no":"Nem",
"option":"Opció",
"topic":"Téma",
"uptime":"Rendszer üzemidő",
"messages":"Üzenetek",
"embeds":"Beágyazások",
"files":"Fájlok",
"components":"Komponensek",
"cooldown":"Leállási idő",
"maxTickets":"Max jegyek",
"admins":"Adminok",
"roles":"Szerepkörök",
"size":"Méret"
},
"lowercase":{
"text":"szöveg",
"html":"html",
"command":"parancs",
"modal":"modális ablak",
"button":"gomb",
"dropdown":"legördülő menü",
"method":"módszer"
}
},
"commands":{
"reason":"Adja meg az opcionális indokot, amely látható lesz a naplókban.",
"help":"Parancsok listájának megtekintése.",
"panel":"Üzenet létrehozása legördülő menüvel vagy gombokkal (jegy létrehozásához).",
"panelId":"A panel azonosítója, amelyet létre szeretnél hozni.",
"panelAutoUpdate":"Szeretnéd, hogy ez a panel automatikusan frissüljön szerkesztéskor?",
"ticket":"Azonnal hozz létre egy jegyet.",
"ticketId":"Az azonosítója annak a jegynek, amelyet létre szeretnél hozni.",
"close":"Zárjon be egy jegyet.",
"delete":"Jegy törlése.",
"deleteNoTranscript":"Töröld ezt a jegyet átirat nélkül.",
"reopen":"Nyissa meg újra a jegyet.",
"claim":"Jegy igénylése.",
"claimUser":"Jegy igénylése valaki másnak helyetted.",
"unclaim":"Jegy feloldása.",
"pin":"Jegy rögzítése.",
"unpin":"Jegy rögzítésének feloldása.",
"move":"Jegy áthelyezése.",
"moveId":"Annak a opció az azonosítója, amelyet áthelyezni szeretnél.",
"rename":"Jegy átnevezése.",
"renameName":"Az új név a jegyhez.",
"add":"Felhasználó hozzáadása a jegyhez.",
"addUser":"A felhasználó, akit hozzá szeretnél adni.",
"remove":"Felhasználó eltávolítása a jegyből.",
"removeUser":"A felhasználó, akit el szeretnél távolítani.",
"blacklist":"Jegy tiltólista kezelése.",
"blacklistView":"A jelenlegi tiltólista megtekintése.",
"blacklistAdd":"Felhasználó hozzáadása a tiltólistához.",
"blacklistRemove":"Felhasználó eltávolítása a tiltólistáról.",
"blacklistGet":"Tiltólistás felhasználó adatainak megtekintése.",
"blacklistGetUser":"A felhasználó, akinek az adatait meg szeretnéd tekinteni.",
"stats":"Bot, tag vagy jegy statisztikáinak megtekintése.",
"statsReset":"A bot összes statisztikájának visszaállítása (és újra számolás megkezdése nulláról).",
"statsGlobal":"Globális statisztikák megtekintése.",
"statsUser":"Felhasználó statisztikáinak megtekintése a szerveren.",
"statsUserUser":"A felhasználó, akinek a statisztikáit meg szeretnéd tekinteni.",
"statsTicket":"Jegy statisztikáinak megtekintése a szerveren.",
"statsTicketTicket":"A jegy, amelynek a statisztikáit meg szeretnéd tekinteni.",
"clear":"Több jegy egyidejű törlése. Opcionális szűrő adható meg.",
"clearFilter":"A szűrő a jegyek törléséhez.",
"clearFilters":{
"all":"Összes",
"open":"Nyitott",
"close":"Lezárt",
"claim":"Igényelt",
"unclaim":"Feloldott",
"pin":"Rögzített",
"unpin":"Feloldott",
"autoclose":"Automatikusan Bezárt"
},
"autoclose":"Automatikus bezárás kezelése egy jegyben.",
"autocloseDisable":"Automatikus bezárás letiltása ebben a jegyben.",
"autocloseEnable":"Automatikus bezárás engedélyezése ebben a jegyben.",
"autocloseEnableTime":"Az óra száma, amely inaktívvá kell, hogy váljon ez a jegy a bezáráshoz.",
"autodelete":"Automatikus törlés kezelése egy jegyben.",
"autodeleteDisable":"Automatikus törlés letiltása ebben a jegyben.",
"autodeleteEnable":"Automatikus törlés engedélyezése ebben a jegyben.",
"autodeleteEnableTime":"A napok száma, amely inaktívvá kell, hogy váljon ez a jegy a törléshez.",
"topic":"Kezelje a jegy csatorna témáját.",
"topicSet":"Állítsa be a jegy csatorna témáját.",
"topicValue":"A csatorna új témája.",
"topicList":"Az összes jegy listája a témájukkal és statisztikáikkal.",
"priority":"Kezelje a jegy prioritását.",
"prioritySet":"Állítsa be a jegy prioritását.",
"priorityValue":"A csatorna prioritása.",
"priorityGet":"Kapja meg a jegy prioritását.",
"priorityList":"Az összes jegy listája a prioritásukkal.",
"transfer":"Átadja a jegy tulajdonjogát egyik felhasználótól a másikhoz.",
"transferUser":"A felhasználó, akinek át kell adni."
},
"helpMenu":{
"help":"Parancsok listájának megtekintése.",
"ticket":"Jegy azonnali létrehozása.",
"close":"Jegy bezárása, ezzel letiltod az írást ebben a csatornában.",
"delete":"Jegy törlése, ez átiratot hoz létre, ha engedélyezett.",
"reopen":"Jegy újranyitása, ezzel újra engedélyezed az írást ebben a csatornában.",
"pin":"Jegy rögzítése. Ez a jegyet a lista tetejére helyezi és hozzáad egy '📌' emojit a nevéhez.",
"unpin":"Jegy rögzítésének feloldása. A jegy a helyén marad, de elveszíti a '📌' emojit.",
"move":"Jegy áthelyezése. Ez megváltoztatja a jegy típusát.",
"rename":"Jegy átnevezése. Ez megváltoztatja a jegy csatorna nevét.",
"claim":"Jegy igénylése. Ezzel tudathatod a csapatoddal, hogy ezt a jegyet te kezeled.",
"unclaim":"Jegy feloldása. Ezzel tudathatod a csapatoddal, hogy ez a jegy újra elérhető.",
"add":"Felhasználó hozzáadása a jegyhez. Ez lehetővé teszi a felhasználónak az olvasást és írást ebben a jegyben.",
"remove":"Felhasználó eltávolítása a jegyből. Ez eltávolítja az olvasási és írási jogosultságokat egy felhasználótól ebben a jegyben.",
"panel":"Üzenet létrehozása legördülő menüvel vagy gombokkal (jegy létrehozásához).",
"blacklistView":"A jelenlegi tiltólista megtekintése.",
"blacklistAdd":"Felhasználó hozzáadása a tiltólistához.",
"blacklistRemove":"Felhasználó eltávolítása a tiltólistáról.",
"blacklistGet":"Tiltólistás felhasználó adatainak megtekintése.",
"statsGlobal":"Globális statisztikák megtekintése.",
"statsTicket":"Jegy statisztikáinak megtekintése a szerveren.",
"statsUser":"Felhasználó statisztikáinak megtekintése a szerveren.",
"statsReset":"A bot összes statisztikájának visszaállítása (és újra számolás megkezdése nulláról).",
"autocloseDisable":"Automatikus bezárás letiltása ebben a jegyben.",
"autocloseEnable":"Automatikus bezárás engedélyezése ebben a jegyben.",
"autodeleteDisable":"Automatikus törlés letiltása ebben a jegyben.",
"autodeleteEnable":"Automatikus törlés engedélyezése ebben a jegyben.",
"categories":{
"general":"Általános parancsok",
"basicTicket":"Alap jegy parancsok",
"advancedTicket":"Speciális jegy parancsok",
"userTicket":"Felhasználói jegy parancsok",
"admin":"Admin parancsok",
"advanced":"Speciális parancsok",
"extra":"Extra parancsok"
}
},
"stats":{
"scopes":{
"global":"Globális Statisztikák",
"system":"Rendszer Statisztikák",
"user":"Felhasználói Statisztikák",
"ticket":"Jegy Statisztikák",
"participants":"Résztvevők",
"messages":"Üzenetek"
},
"properties":{
"ticketsCreated":"Létrehozott Jegyek",
"ticketsClosed":"Lezárt Jegyek",
"ticketsDeleted":"Törölt Jegyek",
"ticketsReopened":"Újranyitott Jegyek",
"ticketsAutoclosed":"Automatikusan Bezárt Jegyek",
"ticketsClaimed":"Igényelt Jegyek",
"ticketsPinned":"Rögzített Jegyek",
"ticketsMoved":"Áthelyezett Jegyek",
"usersBlacklisted":"Tiltólistás Felhasználók",
"transcriptsCreated":"Létrehozott Átiratok",
"ticketsAutodeleted":"Automatikusan törölt jegyek",
"ticketsTransferred":"Átadott jegyek",
"ticketVolume":"Jegy mennyiség",
"averageTickets":"Átlag jegyek/felhasználó",
"currentTickets":"Jelenlegi jegyek",
"age":"Jegy kora",
"responseTime":"Válaszidő",
"resolutionTime":"Megoldási idő",
"createdOn":"Létrehozva",
"createdBy":"Létrehozta",
"closedOn":"Lezárva",
"closedBy":"Lezárta",
"claimedOn":"Átvéve",
"claimedBy":"Átvette",
"pinnedOn":"Kitűzve",
"pinnedBy":"Kitűzte",
"deletedOn":"Törölve",
"deletedBy":"Törölte"
},
"roles":{
"developer":"Fejlesztő",
"serverOwner":"Szerver tulajdonos",
"serverAdmin":"Szerver admin",
"moderator":"Moderátor csapat",
"support":"Támogató csapat",
"member":"Tag"
}
},
"panel":{
"selectTicket":"Válassza ki a jegyét",
"selectRole":"Válassza ki a szerepkörét",
"selectOption":"Válassza ki a lehetőségét"
},
"priorities":{
"urgent":"Sürgős",
"veryHigh":"Nagyon magas",
"high":"Magas",
"normal":"Normál",
"low":"Alacsony",
"veryLow":"Nagyon alacsony",
"none":"Nincs"
}
}

Some files were not shown because too many files have changed in this diff Show More