From a1177497a2c5e35e7504a7f932e05636f9b04637 Mon Sep 17 00:00:00 2001 From: "Marco (Valandur)" Date: Sun, 24 May 2020 14:52:51 +0200 Subject: [PATCH] feat(i18n): Update translations --- i18n/bot/ar.json | 56 +++-- i18n/bot/bg.json | 54 +++-- i18n/bot/cs.json | 54 +++-- i18n/bot/de.json | 54 +++-- i18n/bot/el.json | 54 +++-- i18n/bot/en.json | 54 +++-- i18n/bot/es.json | 54 +++-- i18n/bot/fr.json | 56 +++-- i18n/bot/hu.json | 54 +++-- i18n/bot/id_ID.json | 54 +++-- i18n/bot/it.json | 54 +++-- i18n/bot/ja.json | 56 +++-- i18n/bot/lt.json | 54 +++-- i18n/bot/nl.json | 66 ++++-- i18n/bot/pl.json | 54 +++-- i18n/bot/pt.json | 54 +++-- i18n/bot/pt_BR.json | 54 +++-- i18n/bot/ro.json | 54 +++-- i18n/bot/ru.json | 206 ++++++++++-------- i18n/bot/sr.json | 54 +++-- i18n/bot/tr.json | 142 ++++++------ i18n/bot/zh_CN.json | 54 +++-- i18n/bot/zh_TW.json | 54 +++-- package.json | 1 + scripts/check-i18n.js | 108 +++++++++ src/framework/commands/config/permissions.ts | 2 +- src/framework/commands/premium/tryPremium.ts | 4 +- src/framework/resolvers/BooleanResolver.ts | 2 +- src/framework/resolvers/ChannelResolver.ts | 6 +- src/framework/resolvers/CommandResolver.ts | 6 +- src/framework/resolvers/EnumResolver.ts | 4 +- src/framework/resolvers/InviteCodeResolver.ts | 2 +- src/framework/resolvers/MemberResolver.ts | 6 +- src/framework/resolvers/NumberResolver.ts | 10 +- src/framework/resolvers/RoleResolver.ts | 6 +- src/framework/resolvers/UserResolver.ts | 6 +- src/framework/services/Messaging.ts | 2 +- src/moderation/commands/mod/mute.ts | 2 +- src/music/commands/music/rewind.ts | 7 +- 39 files changed, 1096 insertions(+), 578 deletions(-) create mode 100644 scripts/check-i18n.js diff --git a/i18n/bot/ar.json b/i18n/bot/ar.json index 52a6a7e2..a7b35a9c 100644 --- a/i18n/bot/ar.json +++ b/i18n/bot/ar.json @@ -230,7 +230,8 @@ "canNotReadMessages": "ليس لدي اذن الـ **read messages** في هذه الغرفة/الروم", "canNotSendEmbeds": "ليس لدي اذن الـ **embed links** في هذه الغرفة/الروم", "canNotSendMessages": "ليس لدي اذن الـ **send message** في هذه الغرفة/الروم", - "mustBeTextChannel": "هذه الغرفة/الروم ليست للكتابة" + "mustBeTextChannel": "هذه الغرفة/الروم ليست للكتابة", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "اعدادات جديدة" @@ -501,7 +502,9 @@ }, "text": "ضبط اعدادات كود الدعوات لفرد معين", "title": "اعدادات كود الدعوات", - "noneSet": "الاعدادات لم تضبط بعد!" + "noneSet": "الاعدادات لم تضبط بعد!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "تم ارسال جميع روابط الدعوات في الخاص التابع لك.", @@ -687,6 +690,10 @@ "done": "تم اسكات العضو!", "error": "حدث خطأ في اسكات هذا الشخص.", "missingRole": "رتبة الاسكات لم تحدد أو غير موجودة!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "المدة التي يجب اسكات المستخدم فيها.", @@ -711,7 +718,8 @@ "role": "الدور الذي ينبغي منحه أو رفض الوصول إلى الأمر." }, "description": "تهيئة الإذن ليستخدم الأوامر" - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "تم رفض دفعتك للقسط ، يرجى التحقق من Patreon الخاص بك.", "done": "لديك اشتراك نشط نشط صالح حتى {{{valid}}}.\nاستخدم {{{cmd}}} لمزيد من المعلومات.", "notFound": "حسابك ليس لديه اشتراك متميز مرتبط.\nإذا كنت ممتازًا باستخدام Patreon ، فيرجى التأكد من ربط حساب Discord الخاص بك مع Patreon لجمع مكافآتك ، ثم قم بتشغيل هذا الأمر مرة أخرى", - "title": "تحقق من وجود قسط الاشتراك" + "title": "تحقق من وجود قسط الاشتراك", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "أنت تستخدم روبوت مخصص. الروبوتات المخصصة لها دائما قسط.", @@ -970,6 +979,8 @@ "alreadyUsed": "You have already used your free premium trial! If you like this bot, please consider purchasing premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "رجاءا قم بالاجابة بـ **yes** او **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Try the premium version of InviteManager for free for a limited duration." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "لا يمكن فك اسكات المستخدم.", "done": "تم فك الاسكات من المستخدم.", "missingRole": "Muted role not set or does not exist!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "المستخدم الذي يجب فك اسكاته." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "لم يتم اجاد نتائج!" + "noResults": "لم يتم اجاد نتائج!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "مجهول", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "لا يوجد لديك صلاحيات لاستخدام هذا الامر.\nفقط من يمتلك **Administrators** يمكنه استخدامه", - "createInviteCode": "إنشاء دعوة فورية", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Manage Server", "manageRoles": "Manage Roles", "premiumOnly": "هذا الامر لا يتوفر الا لمن يستخدم النسخة المدفوعة!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "تم الغاءها" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "ليس رقمًا صالحًا", "type": "رقم", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "تم العثور على أدوار مطابقة متعددة. {{{الأدوار}}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "رقم الدعوة", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { @@ -1536,7 +1554,7 @@ "title": "موسيقى", "description": "اعدادات الموسيقى", "general": { - "title": "موسيقى", + "title": "Music", "description": "إعدادات الموسيقى العامة" }, "announcement": { diff --git a/i18n/bot/bg.json b/i18n/bot/bg.json index 8206a22c..4e8e04ce 100644 --- a/i18n/bot/bg.json +++ b/i18n/bot/bg.json @@ -230,7 +230,8 @@ "canNotReadMessages": "I don't have permission to **read messages** in that channel.", "canNotSendEmbeds": "I don't have permission to **embed links** in that channel.", "canNotSendMessages": "I don't have permission to **send messages** in that channel.", - "mustBeTextChannel": "That channel is not a text channel." + "mustBeTextChannel": "That channel is not a text channel.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "New Value" @@ -501,7 +502,9 @@ }, "text": "Set configs for individual invite codes.", "title": "Invite Code Config", - "noneSet": "No configs set!" + "noneSet": "No configs set!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "I sent you a DM with all your invite codes.", @@ -687,6 +690,10 @@ "done": "User muted!", "error": "There was an error muting this person.", "missingRole": "Muted role not set or does not exist!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "The duration for which the user should be muted.", @@ -711,7 +718,8 @@ "role": "The role which should be granted or denied access to the command." }, "description": "Configure permissions to use commands." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "Your payment for premium has been declined, plesae check your Patreon.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Your account does not have a premium subscription associated.\n\nIf you aquired premium using Patreon, please make sure to link your Discord account to Patreon to collect your rewards, then run this command again.", - "title": "Check for a Premium Subscription" + "title": "Check for a Premium Subscription", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "You are using a custom bot. Custom bots always have premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "You have already used your free premium trial! If you like this bot, please consider purchasing premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "Please reply with **yes** or **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Try the premium version of InviteManager for free for a limited duration." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Cannot unmute that user.", "done": "User has been unmuted.", "missingRole": "Muted role not set or does not exist!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "The user that should be unmuted." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "No results found!" + "noResults": "No results found!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "Unknown", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "You do not have permission to use this command.\nOnly **Administrators** may use this command.", - "createInviteCode": "Create Instant Invite", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Manage Server", "manageRoles": "Manage Roles", "premiumOnly": "This command is only available for premium subscribers!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "Canceled" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Not a valid number.", "type": "Number", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Multiple matching roles found. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { diff --git a/i18n/bot/cs.json b/i18n/bot/cs.json index 6d0e1612..e40ee4b4 100644 --- a/i18n/bot/cs.json +++ b/i18n/bot/cs.json @@ -230,7 +230,8 @@ "canNotReadMessages": "Nemám oprávnění pro **čtení zpráv** v tomto kanálu.", "canNotSendEmbeds": "I don't have permission to **embed links** in that channel.", "canNotSendMessages": "Nemám oprávnění **posílat zprávy**  v tomto kanálu.", - "mustBeTextChannel": "Kanál není textový." + "mustBeTextChannel": "Kanál není textový.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "Nová hodnota" @@ -501,7 +502,9 @@ }, "text": "Set configs for individual invite codes.", "title": "Invite Code Config", - "noneSet": "No configs set!" + "noneSet": "No configs set!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "I sent you a DM with all your invite codes.", @@ -687,6 +690,10 @@ "done": "User muted!", "error": "There was an error muting this person.", "missingRole": "Muted role not set or does not exist!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "The duration for which the user should be muted.", @@ -711,7 +718,8 @@ "role": "The role which should be granted or denied access to the command." }, "description": "Configure permissions to use commands." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "Your payment for premium has been declined, plesae check your Patreon.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Your account does not have a premium subscription associated.\n\nIf you aquired premium using Patreon, please make sure to link your Discord account to Patreon to collect your rewards, then run this command again.", - "title": "Check for a Premium Subscription" + "title": "Check for a Premium Subscription", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "You are using a custom bot. Custom bots always have premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "You have already used your free premium trial! If you like this bot, please consider purchasing premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "Please reply with **yes** or **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Try the premium version of InviteManager for free for a limited duration." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Cannot unmute that user.", "done": "User has been unmuted.", "missingRole": "Muted role not set or does not exist!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "The user that should be unmuted." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "No results found!" + "noResults": "No results found!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "Unknown", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "You do not have permission to use this command.\nOnly **Administrators** may use this command.", - "createInviteCode": "Create Instant Invite", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Manage Server", "manageRoles": "Manage Roles", "premiumOnly": "This command is only available for premium subscribers!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "Canceled" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Not a valid number.", "type": "Number", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Multiple matching roles found. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { diff --git a/i18n/bot/de.json b/i18n/bot/de.json index fa6f1b9d..4b825efb 100644 --- a/i18n/bot/de.json +++ b/i18n/bot/de.json @@ -230,7 +230,8 @@ "canNotReadMessages": "Ich habe keine **Nachrichten lesen** Berechtigungen in diesem Kanal.", "canNotSendEmbeds": "Ich habe keine **Links einbetten** Berechtigungen in diesem Kanal.", "canNotSendMessages": "Ich habe keine **Nachrichten versenden** Berechtigungen in diesem Kanal.", - "mustBeTextChannel": "Dieser Kanal ist kein Textkanal." + "mustBeTextChannel": "Dieser Kanal ist kein Textkanal.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "Neuer Wert" @@ -501,7 +502,9 @@ }, "text": "Set configs for individual invite codes.", "title": "Invite Code Config", - "noneSet": "No configs set!" + "noneSet": "No configs set!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "Ich habe dir eine privatnachricht mit mit allen deinen Einladungslinks", @@ -687,6 +690,10 @@ "done": "User muted!", "error": "There was an error muting this person.", "missingRole": "Muted role not set or does not exist!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "The duration for which the user should be muted.", @@ -711,7 +718,8 @@ "role": "The role which should be granted or denied access to the command." }, "description": "Configure permissions to use commands." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "Your payment for premium has been declined, plesae check your Patreon.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Your account does not have a premium subscription associated.\n\nIf you aquired premium using Patreon, please make sure to link your Discord account to Patreon to collect your rewards, then run this command again.", - "title": "Check for a Premium Subscription" + "title": "Check for a Premium Subscription", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "You are using a custom bot. Custom bots always have premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "You have already used your free premium trial! If you like this bot, please consider purchasing premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "Please reply with **yes** or **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Try the premium version of InviteManager for free for a limited duration." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Cannot unmute that user.", "done": "User has been unmuted.", "missingRole": "Muted role not set or does not exist!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "The user that should be unmuted." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "No results found!" + "noResults": "No results found!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "Unknown", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "You do not have permission to use this command.\nOnly **Administrators** may use this command.", - "createInviteCode": "Create Instant Invite", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Manage Server", "manageRoles": "Manage Roles", "premiumOnly": "This command is only available for premium subscribers!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "Canceled" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Not a valid number.", "type": "Number", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Multiple matching roles found. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { diff --git a/i18n/bot/el.json b/i18n/bot/el.json index 18537c10..f6530c48 100644 --- a/i18n/bot/el.json +++ b/i18n/bot/el.json @@ -230,7 +230,8 @@ "canNotReadMessages": "I don't have permission to **read messages** in that channel.", "canNotSendEmbeds": "I don't have permission to **embed links** in that channel.", "canNotSendMessages": "I don't have permission to **send messages** in that channel.", - "mustBeTextChannel": "That channel is not a text channel." + "mustBeTextChannel": "That channel is not a text channel.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "New Value" @@ -501,7 +502,9 @@ }, "text": "Set configs for individual invite codes.", "title": "Invite Code Config", - "noneSet": "No configs set!" + "noneSet": "No configs set!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "I sent you a DM with all your invite codes.", @@ -687,6 +690,10 @@ "done": "User muted!", "error": "There was an error muting this person.", "missingRole": "Muted role not set or does not exist!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "The duration for which the user should be muted.", @@ -711,7 +718,8 @@ "role": "The role which should be granted or denied access to the command." }, "description": "Configure permissions to use commands." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "Your payment for premium has been declined, plesae check your Patreon.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Your account does not have a premium subscription associated.\n\nIf you aquired premium using Patreon, please make sure to link your Discord account to Patreon to collect your rewards, then run this command again.", - "title": "Check for a Premium Subscription" + "title": "Check for a Premium Subscription", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "You are using a custom bot. Custom bots always have premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "You have already used your free premium trial! If you like this bot, please consider purchasing premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "Please reply with **yes** or **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Try the premium version of InviteManager for free for a limited duration." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Cannot unmute that user.", "done": "User has been unmuted.", "missingRole": "Muted role not set or does not exist!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "The user that should be unmuted." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "No results found!" + "noResults": "No results found!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "Unknown", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "You do not have permission to use this command.\nOnly **Administrators** may use this command.", - "createInviteCode": "Create Instant Invite", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Manage Server", "manageRoles": "Manage Roles", "premiumOnly": "This command is only available for premium subscribers!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "Canceled" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Not a valid number.", "type": "Number", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Multiple matching roles found. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { diff --git a/i18n/bot/en.json b/i18n/bot/en.json index 18537c10..f6530c48 100644 --- a/i18n/bot/en.json +++ b/i18n/bot/en.json @@ -230,7 +230,8 @@ "canNotReadMessages": "I don't have permission to **read messages** in that channel.", "canNotSendEmbeds": "I don't have permission to **embed links** in that channel.", "canNotSendMessages": "I don't have permission to **send messages** in that channel.", - "mustBeTextChannel": "That channel is not a text channel." + "mustBeTextChannel": "That channel is not a text channel.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "New Value" @@ -501,7 +502,9 @@ }, "text": "Set configs for individual invite codes.", "title": "Invite Code Config", - "noneSet": "No configs set!" + "noneSet": "No configs set!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "I sent you a DM with all your invite codes.", @@ -687,6 +690,10 @@ "done": "User muted!", "error": "There was an error muting this person.", "missingRole": "Muted role not set or does not exist!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "The duration for which the user should be muted.", @@ -711,7 +718,8 @@ "role": "The role which should be granted or denied access to the command." }, "description": "Configure permissions to use commands." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "Your payment for premium has been declined, plesae check your Patreon.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Your account does not have a premium subscription associated.\n\nIf you aquired premium using Patreon, please make sure to link your Discord account to Patreon to collect your rewards, then run this command again.", - "title": "Check for a Premium Subscription" + "title": "Check for a Premium Subscription", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "You are using a custom bot. Custom bots always have premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "You have already used your free premium trial! If you like this bot, please consider purchasing premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "Please reply with **yes** or **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Try the premium version of InviteManager for free for a limited duration." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Cannot unmute that user.", "done": "User has been unmuted.", "missingRole": "Muted role not set or does not exist!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "The user that should be unmuted." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "No results found!" + "noResults": "No results found!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "Unknown", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "You do not have permission to use this command.\nOnly **Administrators** may use this command.", - "createInviteCode": "Create Instant Invite", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Manage Server", "manageRoles": "Manage Roles", "premiumOnly": "This command is only available for premium subscribers!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "Canceled" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Not a valid number.", "type": "Number", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Multiple matching roles found. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { diff --git a/i18n/bot/es.json b/i18n/bot/es.json index 2b23f5fe..3ba04ed6 100644 --- a/i18n/bot/es.json +++ b/i18n/bot/es.json @@ -230,7 +230,8 @@ "canNotReadMessages": "No tengo permiso para **leer mensajes** en ese canal.", "canNotSendEmbeds": "No tengo permiso para **hacer embeds de enlaces** en ese canal.", "canNotSendMessages": "No tengo permiso para ** enviar mensajes ** en ese canal.", - "mustBeTextChannel": "Ese canal no es un canal de texto." + "mustBeTextChannel": "Ese canal no es un canal de texto.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "Nuevo valor" @@ -501,7 +502,9 @@ }, "text": "Establecer configuraciones para códigos de invitación individuales.", "title": "Configuración del código de invitación", - "noneSet": "No hay configuraciones establecidas!" + "noneSet": "No hay configuraciones establecidas!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "Te he enviado un mensaje privado con todos tus codigos de invitacion.", @@ -687,6 +690,10 @@ "done": "Usuario silenciado!", "error": "Hubo un problema al silenciar a esta persona.", "missingRole": "¡El rol silenciado no está establecido o no existe!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "El tiempo por el que deberá estar silenciado el usuario.", @@ -711,7 +718,8 @@ "role": "El rol al cual se le debería dar ornegar acceso al comando." }, "description": "Configura permisos para usar comandos." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "La transacción para pagar la suscripción Premium fue rechazada, por favor, revisa tu Patreon.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Tu cuenta no esta asociada a una suscripción Premium.\n\nSi compraste Premium usando Patreon, asegurate de conectar tu cuenta de Discord a Patreon para recibir tu recompensa, y después ejecuta este comando nuevamente.", - "title": "Check for a Premium Subscription" + "title": "Check for a Premium Subscription", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "Estás usando un Bot personalizado. Los Bots personalizados ya vienen con Premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "¡Ya usaste tu prueba gratuita de Premium! Si te gusta este Bot, considera comprar una suscripción Premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "Por favor responde con **yes** o **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Prueba la versión premium de InviteManager gratis por un limitado periodo de tiempo." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Cannot unmute that user.", "done": "El usuario no ha sido silenciado.", "missingRole": "¡El rol silenciado no está establecido o no existe!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "El usuario que debe estar sin silenciar." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "No results found!" + "noResults": "No results found!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} ha salido del servidor, pero no pude averiguar quien lo ha invitado.", - "unknownInviter": "Desconocido", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "No tienes permiso para usar este comando.\nSolo **Administradores** pueden usar este comando.", - "createInviteCode": "Crear invitación instantánea", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Administrar el Servidor", "manageRoles": "Administrar Roles", "premiumOnly": "Este comando solo esta disponible para suscriptores premium!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "Cancelado" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Not a valid number.", "type": "Number", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Multiple matching roles found. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { diff --git a/i18n/bot/fr.json b/i18n/bot/fr.json index d4c3b3fd..b4165a61 100644 --- a/i18n/bot/fr.json +++ b/i18n/bot/fr.json @@ -230,7 +230,8 @@ "canNotReadMessages": "Je n'ai pas la permission de **lire les messages** dans ce salon.", "canNotSendEmbeds": "Je n'ai pas la permission **d'intégrer des liens** dans ce salon.", "canNotSendMessages": "Je n'ai pas la permission **d'envoyer des messages** dans ce salon.", - "mustBeTextChannel": "Ce channel n'est pas un channel textuel." + "mustBeTextChannel": "Ce channel n'est pas un channel textuel.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "Nouvelle valeur" @@ -501,7 +502,9 @@ }, "text": "Défini les paramètres pour les codes d'invitations individuelles.", "title": "Configuration des codes d'invitations", - "noneSet": "Aucune configuration définie !" + "noneSet": "Aucune configuration définie !", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "Je vous ai envoyé un MP avec tous vos codes d'invitation.", @@ -687,6 +690,10 @@ "done": "Utilisateur rendu muet !", "error": "Une erreur est survenue lors d'une tentative de rendre cette personne muette.", "missingRole": "Rôle muet non défini ou inexistant!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "La durée pour laquelle l'utilisateur doit être rendu muet.", @@ -711,7 +718,8 @@ "role": "Le rôle qui aura l'accès ou non à la commande." }, "description": "Configurez les permissions pour utiliser des commandes." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "Votre paiement pour le premium a été refusé, veuillez vérifier votre Patreon.", "done": "Vous disposez d'un abonnement premium valide jusqu'à {{{ valid }}}.\n\nUtilisez {{{ cmd }}} pour plus d'informations.", "notFound": "Votre compte n'est pas associé à un abonnement premium.\n\nSi vous avez acquis le premium par Patreon, assurez vous d'avoir lié votre compte Discord à votre Patreon pour pouvoir profiter des récompenses, puis refaites cette commande.", - "title": "Rechercher un abonnement Premium" + "title": "Rechercher un abonnement Premium", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "Vous utilisez une version personnalisée du bot. Ces bots ont toujours le premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "Vous avez déjà utilisé votre essai premium gratuit! Si vous aimez ce bot, envisagez de payer le premium.", "currentlyActive": "Vous avez un abonnement premium actif !", "prompt": "Veuillez répondre par **oui** ou par **non**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Essayez gratuitement la version premium d’InviteManager pour une durée limitée." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Impossible de rendre la parole à cet utilisateur.", "done": "L'utilisateur peut de nouveau parler.", "missingRole": "Le rôle muet n'est pas défini ou n'existe pas!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "L'utilisateur qui doit reprendre la parole." @@ -1044,7 +1056,8 @@ "args": { "videos": "Les vidéos qui doivent être mélangées ensemble." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rejoue la musique depuis le début." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Résultats pour {{ term }}", - "noResults": "Aucun résultat!" + "noResults": "Aucun résultat!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "La musique sera jouée à ce moment (depuis le début, en secondes)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Crée un nouveau, ou édite un placeholder existant." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "Le placeholder avec cet ID n'a pas pu être trouvé." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "Le salon que vous voulez bloquer." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Les messages d'arrivées et de départs de type \"Embed\" est une fonction premium. Le premium n'a pas l'air d'être activé sur ce serveur. Merci de nous contacter pour en savoir plus sur comment acheter le premium.", "messages": { "joinUnknownInviter": "Je n'arrive pas à comprendre comment <@{{ id }}> a rejoint le serveur.", "joinVanityUrl": "<@{{ id }}> a rejoint le server avec une invitation personnalisée.", "leaveUnknownInviter": "{{ tag }} a quitté le serveur, mais je n'ai trouvé qui l'a invité.", - "unknownInviter": "Inconnu", - "joinServerWidget": "L'utilisateur a rejoint en utilisant un widget serveur." + "joinServerWidget": "L'utilisateur a rejoint en utilisant un widget serveur.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "Vous n'êtes pas autorisé à utiliser cette commande.\nSeulement ** Les administrateurs ** peuvent utiliser cette commande.", - "createInviteCode": "Créer une invitation instantanée", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Gérer le serveur", "manageRoles": "Gérer les rôles", "premiumOnly": "Cette commande est uniquement disponible pour les abonnés premium!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Lire l'historique des messages", "missing": "Il me manque la permission {{{ permissions }}} dans {{{ channel }}}", "banMembers": "Banni des membres", - "kickMembers": "Expulse des membres" - }, - "prompt": { - "canceled": "Annulé" + "kickMembers": "Expulse des membres", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Ce n'est pas un nombre valide.", "type": "Nombre", - "typeInfo": "Veuillez spécifier un nombre" + "typeInfo": "Veuillez spécifier un nombre", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Plusieurs rôles trouvés. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Code d'invitation", - "typeInfo": "Cet argument attend un code d'invitation Discord.\n\n> Vous pouvez donner uniquement le code après `https://discord.gg/` pour annuler l'aperçu créé par Discord." + "typeInfo": "Cet argument attend un code d'invitation Discord.\n\n> Vous pouvez donner uniquement le code après `https://discord.gg/` pour annuler l'aperçu créé par Discord.", + "notFound": "The specified invite code could not be found." } }, "settings": { @@ -1536,7 +1554,7 @@ "title": "Musique", "description": "Paramètres de la musique", "general": { - "title": "Musique", + "title": "Music", "description": "Paramètres généraux de musique" }, "announcement": { diff --git a/i18n/bot/hu.json b/i18n/bot/hu.json index 18537c10..f6530c48 100644 --- a/i18n/bot/hu.json +++ b/i18n/bot/hu.json @@ -230,7 +230,8 @@ "canNotReadMessages": "I don't have permission to **read messages** in that channel.", "canNotSendEmbeds": "I don't have permission to **embed links** in that channel.", "canNotSendMessages": "I don't have permission to **send messages** in that channel.", - "mustBeTextChannel": "That channel is not a text channel." + "mustBeTextChannel": "That channel is not a text channel.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "New Value" @@ -501,7 +502,9 @@ }, "text": "Set configs for individual invite codes.", "title": "Invite Code Config", - "noneSet": "No configs set!" + "noneSet": "No configs set!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "I sent you a DM with all your invite codes.", @@ -687,6 +690,10 @@ "done": "User muted!", "error": "There was an error muting this person.", "missingRole": "Muted role not set or does not exist!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "The duration for which the user should be muted.", @@ -711,7 +718,8 @@ "role": "The role which should be granted or denied access to the command." }, "description": "Configure permissions to use commands." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "Your payment for premium has been declined, plesae check your Patreon.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Your account does not have a premium subscription associated.\n\nIf you aquired premium using Patreon, please make sure to link your Discord account to Patreon to collect your rewards, then run this command again.", - "title": "Check for a Premium Subscription" + "title": "Check for a Premium Subscription", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "You are using a custom bot. Custom bots always have premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "You have already used your free premium trial! If you like this bot, please consider purchasing premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "Please reply with **yes** or **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Try the premium version of InviteManager for free for a limited duration." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Cannot unmute that user.", "done": "User has been unmuted.", "missingRole": "Muted role not set or does not exist!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "The user that should be unmuted." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "No results found!" + "noResults": "No results found!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "Unknown", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "You do not have permission to use this command.\nOnly **Administrators** may use this command.", - "createInviteCode": "Create Instant Invite", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Manage Server", "manageRoles": "Manage Roles", "premiumOnly": "This command is only available for premium subscribers!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "Canceled" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Not a valid number.", "type": "Number", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Multiple matching roles found. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { diff --git a/i18n/bot/id_ID.json b/i18n/bot/id_ID.json index eb6b084a..0cd3b748 100644 --- a/i18n/bot/id_ID.json +++ b/i18n/bot/id_ID.json @@ -230,7 +230,8 @@ "canNotReadMessages": "Saya tidak mempunyai izin untuk **membaca pesan** di channel itu.", "canNotSendEmbeds": "I don't have permission to **embed links** in that channel.", "canNotSendMessages": "I don't have permission to **send messages** in that channel.", - "mustBeTextChannel": "That channel is not a text channel." + "mustBeTextChannel": "That channel is not a text channel.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "New Value" @@ -501,7 +502,9 @@ }, "text": "Set configs for individual invite codes.", "title": "Invite Code Config", - "noneSet": "No configs set!" + "noneSet": "No configs set!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "I sent you a DM with all your invite codes.", @@ -687,6 +690,10 @@ "done": "User muted!", "error": "There was an error muting this person.", "missingRole": "Muted role not set or does not exist!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "The duration for which the user should be muted.", @@ -711,7 +718,8 @@ "role": "The role which should be granted or denied access to the command." }, "description": "Configure permissions to use commands." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "Your payment for premium has been declined, plesae check your Patreon.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Your account does not have a premium subscription associated.\n\nIf you aquired premium using Patreon, please make sure to link your Discord account to Patreon to collect your rewards, then run this command again.", - "title": "Check for a Premium Subscription" + "title": "Check for a Premium Subscription", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "You are using a custom bot. Custom bots always have premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "You have already used your free premium trial! If you like this bot, please consider purchasing premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "Please reply with **yes** or **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Try the premium version of InviteManager for free for a limited duration." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Cannot unmute that user.", "done": "User has been unmuted.", "missingRole": "Muted role not set or does not exist!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "The user that should be unmuted." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "No results found!" + "noResults": "No results found!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "Unknown", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "You do not have permission to use this command.\nOnly **Administrators** may use this command.", - "createInviteCode": "Create Instant Invite", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Manage Server", "manageRoles": "Manage Roles", "premiumOnly": "This command is only available for premium subscribers!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "Canceled" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Not a valid number.", "type": "Number", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Multiple matching roles found. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { diff --git a/i18n/bot/it.json b/i18n/bot/it.json index 16d4bb98..44d21203 100644 --- a/i18n/bot/it.json +++ b/i18n/bot/it.json @@ -230,7 +230,8 @@ "canNotReadMessages": "I don't have permission to **read messages** in that channel.", "canNotSendEmbeds": "I don't have permission to **embed links** in that channel.", "canNotSendMessages": "I don't have permission to **send messages** in that channel.", - "mustBeTextChannel": "That channel is not a text channel." + "mustBeTextChannel": "That channel is not a text channel.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "New Value" @@ -501,7 +502,9 @@ }, "text": "Set configs for individual invite codes.", "title": "Invite Code Config", - "noneSet": "No configs set!" + "noneSet": "No configs set!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "I sent you a DM with all your invite codes.", @@ -687,6 +690,10 @@ "done": "User muted!", "error": "There was an error muting this person.", "missingRole": "Muted role not set or does not exist!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "The duration for which the user should be muted.", @@ -711,7 +718,8 @@ "role": "The role which should be granted or denied access to the command." }, "description": "Configure permissions to use commands." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "Your payment for premium has been declined, plesae check your Patreon.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Your account does not have a premium subscription associated.\n\nIf you aquired premium using Patreon, please make sure to link your Discord account to Patreon to collect your rewards, then run this command again.", - "title": "Check for a Premium Subscription" + "title": "Check for a Premium Subscription", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "You are using a custom bot. Custom bots always have premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "You have already used your free premium trial! If you like this bot, please consider purchasing premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "Please reply with **yes** or **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Try the premium version of InviteManager for free for a limited duration." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Cannot unmute that user.", "done": "User has been unmuted.", "missingRole": "Muted role not set or does not exist!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "The user that should be unmuted." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "No results found!" + "noResults": "No results found!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "Unknown", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "You do not have permission to use this command.\nOnly **Administrators** may use this command.", - "createInviteCode": "Create Instant Invite", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Manage Server", "manageRoles": "Manage Roles", "premiumOnly": "This command is only available for premium subscribers!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "Canceled" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Not a valid number.", "type": "Number", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Multiple matching roles found. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { diff --git a/i18n/bot/ja.json b/i18n/bot/ja.json index 92f6b313..80c9574f 100644 --- a/i18n/bot/ja.json +++ b/i18n/bot/ja.json @@ -230,7 +230,8 @@ "canNotReadMessages": "そのチャンネルでの、**メッセージを読む**権限がありません。", "canNotSendEmbeds": "そのチャンネルでの、**埋め込みリンク**権限がありません。", "canNotSendMessages": "そのチャンネルでの、**メッセージを送信する**権限がありません。", - "mustBeTextChannel": "そのチャンネルはテキストチャンネルではありません。" + "mustBeTextChannel": "そのチャンネルはテキストチャンネルではありません。", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "新しい値" @@ -501,7 +502,9 @@ }, "text": "個々の招待リンクの設定をします。", "title": "招待リンク設定", - "noneSet": "設定がセットされていません。" + "noneSet": "設定がセットされていません。", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "あなたのすべての招待コードをあなたにDMを送りました。", @@ -687,6 +690,10 @@ "done": "ユーザーがミュートされました!", "error": "この人のミュート中にエラーが発生しました。", "missingRole": "ミュート用の役職が設定されていないか存在しません。", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "ユーザーがミュートされる期間。", @@ -711,7 +718,8 @@ "role": "コマンドへのアクセスを許可または拒否する役職。" }, "description": "コマンドを使用するための権限を設定します。" - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "使用料の支払いが拒否されました。Patreonを確認してください。", "done": "あなたは{{{valid}}}まで有効なプレミアム購読を有効にしています。\n\n詳細については{{{cmd}}}を使用してください。", "notFound": "あなたのアカウントにはプレミアム登録が関連付けられていません。\n\nPatreonを使用してプレミアムを取得した場合は、DiscordアカウントをPatreonにリンクして報酬を集めるようにしてから、もう一度このコマンドを実行してください。", - "title": "プレミアム購読を確認する" + "title": "プレミアム購読を確認する", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "カスタムボットを使用しています。 カスタムボットには常にプレミアムがあります。", @@ -970,6 +979,8 @@ "alreadyUsed": "あなたはすでに無料のプレミアムトライアルを使っています! あなたはこのボットが好きなら、プレミアムの購入を検討してください。", "currentlyActive": "あなたは現在アクティブなプレミアム購読をしています!", "prompt": "** yes **または** no **で返信してください。", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "プレミアム版のInviteManagerを期間限定で無料でお試しください。" }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "そのユーザーのミュートを解除することはできません。", "done": "ユーザーのミュートが解除されました。", "missingRole": "ミュート用の役職が設定されていないか存在しません。", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "ミュートを解除する必要があるユーザー。" @@ -1044,7 +1056,8 @@ "args": { "videos": "ビデオを一緒にマッシュアップする必要があります" } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "曲を巻き戻して最初から始めます。" - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "{{ term }}の検索結果", - "noResults": "結果が見つかりません!" + "noResults": "結果が見つかりません!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "曲がスキップされる位置(最初から秒単位)" } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "参加/退会メッセージとして埋め込みを使用することは、プレミアム機能です。 このサーバーではプレミアムがアクティブになっていないようです。 プレミアムの購入方法の詳細については、お問い合わせください。", "messages": { "joinUnknownInviter": "<@ {{id}}>がどのようにサーバーに参加したのかわかりません。", "joinVanityUrl": "<@ {{id}}>は一時的な招待を使用してサーバーに参加しました。", "leaveUnknownInviter": "{{tag}}はサーバーを退出しましたが、誰が招待したのかわかりませんでした。", - "unknownInviter": "未知の", - "joinServerWidget": "ユーザーがサーバーウィジェットを使用して参加しました。" + "joinServerWidget": "ユーザーがサーバーウィジェットを使用して参加しました。", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "このコマンドを使用する権限がありません。\nこのコマンドを使用できるのは**管理者**のみです。", - "createInviteCode": "期間制招待を作成", + "createInstantInvite": "Create Instant Invite", "manageGuild": "サーバーの管理", "manageRoles": "役職の管理", "premiumOnly": "このコマンドはプレミアムメンバーにのみ利用可能です。", @@ -1205,10 +1222,8 @@ "readMessageHistory": "メッセージの履歴を見る", "missing": "InviteManagerは{{{ channel }}}の{{{ permissions }}}許可がありません", "banMembers": "禁止メンバー", - "kickMembers": "キックメンバー" - }, - "prompt": { - "canceled": "キャンセルしました。" + "kickMembers": "キックメンバー", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "不正な数です。", "type": "番号", - "typeInfo": "この引数には数値が必要です" + "typeInfo": "この引数には数値が必要です", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "複数の役職が見つかりました。 {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "招待コード", - "typeInfo": "この引数は、Discord Invite Codeを想定しています。\n\n> `https://discord.gg/` の後ろの部分置くことができ、Discordがプレビューを作成しないようにします。" + "typeInfo": "この引数は、Discord Invite Codeを想定しています。\n\n> `https://discord.gg/` の後ろの部分置くことができ、Discordがプレビューを作成しないようにします。", + "notFound": "The specified invite code could not be found." } }, "settings": { @@ -1536,7 +1554,7 @@ "title": "音楽", "description": "音楽の設定", "general": { - "title": "音楽", + "title": "Music", "description": "総合的な音楽の設定" }, "announcement": { diff --git a/i18n/bot/lt.json b/i18n/bot/lt.json index 18537c10..f6530c48 100644 --- a/i18n/bot/lt.json +++ b/i18n/bot/lt.json @@ -230,7 +230,8 @@ "canNotReadMessages": "I don't have permission to **read messages** in that channel.", "canNotSendEmbeds": "I don't have permission to **embed links** in that channel.", "canNotSendMessages": "I don't have permission to **send messages** in that channel.", - "mustBeTextChannel": "That channel is not a text channel." + "mustBeTextChannel": "That channel is not a text channel.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "New Value" @@ -501,7 +502,9 @@ }, "text": "Set configs for individual invite codes.", "title": "Invite Code Config", - "noneSet": "No configs set!" + "noneSet": "No configs set!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "I sent you a DM with all your invite codes.", @@ -687,6 +690,10 @@ "done": "User muted!", "error": "There was an error muting this person.", "missingRole": "Muted role not set or does not exist!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "The duration for which the user should be muted.", @@ -711,7 +718,8 @@ "role": "The role which should be granted or denied access to the command." }, "description": "Configure permissions to use commands." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "Your payment for premium has been declined, plesae check your Patreon.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Your account does not have a premium subscription associated.\n\nIf you aquired premium using Patreon, please make sure to link your Discord account to Patreon to collect your rewards, then run this command again.", - "title": "Check for a Premium Subscription" + "title": "Check for a Premium Subscription", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "You are using a custom bot. Custom bots always have premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "You have already used your free premium trial! If you like this bot, please consider purchasing premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "Please reply with **yes** or **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Try the premium version of InviteManager for free for a limited duration." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Cannot unmute that user.", "done": "User has been unmuted.", "missingRole": "Muted role not set or does not exist!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "The user that should be unmuted." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "No results found!" + "noResults": "No results found!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "Unknown", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "You do not have permission to use this command.\nOnly **Administrators** may use this command.", - "createInviteCode": "Create Instant Invite", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Manage Server", "manageRoles": "Manage Roles", "premiumOnly": "This command is only available for premium subscribers!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "Canceled" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Not a valid number.", "type": "Number", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Multiple matching roles found. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { diff --git a/i18n/bot/nl.json b/i18n/bot/nl.json index 115ab792..0b0776c0 100644 --- a/i18n/bot/nl.json +++ b/i18n/bot/nl.json @@ -230,7 +230,8 @@ "canNotReadMessages": "Ik heb de **berichten lezen** rechten niet in dat kanaal.", "canNotSendEmbeds": "Ik heb de **ingesloten links** rechten niet in dat kanaal.", "canNotSendMessages": "Ik heb de **berichten verzenden** rechten niet in dat kanaal.", - "mustBeTextChannel": "Dat kanaal is geen tekst kanaal." + "mustBeTextChannel": "Dat kanaal is geen tekst kanaal.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "Nieuwe Waarde" @@ -416,7 +417,7 @@ } }, "interactiveConfig": { - "useWeb": "Please use the {{{ configCmd }}} command or our website at {{{ link }}} to configure your bot.", + "useWeb": "Gebruik de {{{ configCmd }}} commando of gebruik onze website {{{ link }}} om je bot to configureren.", "add": "Vul een waarde of lijst van waardes in om toe te voegen.", "change": "**Huidige waarde**\n{{{ current }}}\n\n**Mogelijke waardes**\n{{{ possible }}}", "current": { @@ -501,7 +502,9 @@ }, "text": "Stel de configuraties in voor individuele invite codes.", "title": "Invite Code Configuratie", - "noneSet": "Geen configuraties gezet!" + "noneSet": "Geen configuraties gezet!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "Ik heb je een prive bericht gestuurt met al je invite codes.", @@ -687,6 +690,10 @@ "done": "Gebruiker is gemute!", "error": "Er is een error opgetreden tijdens het muten van deze persoon.", "missingRole": "Muted role is niet gezet of bestaat niet!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "De tijd waarvoor de gebruiker gemute wordt.", @@ -711,7 +718,8 @@ "role": "De role die toegang of geen toegang moet krijgen tot het commando." }, "description": "Configureer permissies om commando's te gebruiken." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -733,13 +741,14 @@ "noSubscription": "Je hebt geen betaalde abonnement.\n\nGebruik {{{ cmd }}} voor meer informatie.", "title": "Activeer premium op deze server", "permissions": "Je hebt de `Server Beheren` permissies nodig om dit commando te gebruiken.", - "maxGuilds": "You have activated premium on the maximum number of guilds." + "maxGuilds": "Je hebt premium geactiveerd op je maximaal aantal guilds." }, "check": { "declined": "Je betaling voor premium is geweigerd. Zie alsjeblieft je Patreon.", "done": "Je hebt een betaalde abonnement geldig tot {{{ valid }}}.\n\nGebruik {{{ cmd }}} voor meer informatie.", "notFound": "Je account heeft geen premium abonnement.\n\nAls je premium hebt gekocht via Patreon, zorg dan dat je patreon account gekoppeld is aan je discord account. Voer dan het commando opnieuw uit.", - "title": "Check voor een Premium Abonnement" + "title": "Check voor een Premium Abonnement", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "Je gebruikt een custom bot. Custom bots hebben altijd premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "Je hebt al je free premium voor tijdelijk gebruikt! Als je deze bot goed vind, kan je altijd ervoor kiezen om de betaalde bot te kopen.", "currentlyActive": "Je hebt momenteel een actieve betaalde abonnement.", "prompt": "Reageer met **yes** of **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Probeer de betaalde versie van InviteManager gratis voor een bepaalde tijd." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Die gebruiker kan niet geunmute worden.", "done": "De gebruiker is geunmute.", "missingRole": "Muted role in niet gezet of bestaat niet!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "De gebruiker die geunmute wordt." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Laat het nummer opnieuw afspelen." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Resultaten voor {{ term }}", - "noResults": "Geen resultaten gevonden!" + "noResults": "Geen resultaten gevonden!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Maak een nieuwe of verander een bestaande placeholder bericht." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "De placeholder bericht met de opgegeven id kan niet worden gevonden." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "Het kanaal dat in lockdown wilt." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Het gebruik van embeds in join/leave berichten is een premium toevoeging. Premium is niet geactiveerd in deze server. Contacteer ons alsjeblieft om meer te weten te komen hoe je premium koopt.", "messages": { "joinUnknownInviter": "Ik kan niet vinden hoe <@{{ id }}> de server gejoind is.", "joinVanityUrl": "<@{{ id }}> is de server gejoint via een vanity invite.", "leaveUnknownInviter": "{{ tag }} heeft de server verlaten, maar ik kan niet uitvinden wie hem geïnvite heeft.", - "unknownInviter": "Onbekend", - "joinServerWidget": "De gebruiker is gejoined via een server widget." + "joinServerWidget": "De gebruiker is gejoined via een server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "je hebt de permissies niet om dit commando te gebruiken.\nAlleen **Administrators** mogen dit commando gebruiken.", - "createInviteCode": "Maak een instant invite", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Beheer Server", "manageRoles": "Beheer Rollen", "premiumOnly": "Dit commando is alleen beschikbaar voor premium gebruikers!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Lees Bericht Geschiedenis", "missing": "InviteManager mist de permissies {{{ permissions }}} in {{{ channel }}}", "banMembers": "Verban Gebruikers", - "kickMembers": "KIck Gebruikers" - }, - "prompt": { - "canceled": "Geannuleerd" + "kickMembers": "KIck Gebruikers", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Geen geldige nummer.", "type": "Nummer", - "typeInfo": "De argument zou een nummer moeten zijn" + "typeInfo": "De argument zou een nummer moeten zijn", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Verschillende overeenkomende rollen gevonden. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "Deze argument zou een Discord Invite Code moeten zijn\n\n> Je kan alleen de invite code achter `https://discord.gg/` plaatsen om te voorkomen dat Discord een preview maakt." + "typeInfo": "Deze argument zou een Discord Invite Code moeten zijn\n\n> Je kan alleen de invite code achter `https://discord.gg/` plaatsen om te voorkomen dat Discord een preview maakt.", + "notFound": "The specified invite code could not be found." } }, "settings": { @@ -1313,15 +1331,15 @@ "description": "Gedupliceerde berichten worden automatisch gemoderate (kopiëren-plakken spam)." }, "autoModDuplicateTextTimeframeInSeconds": { - "title": "Timeframe in Seconds", + "title": "Tijd in seconden", "description": "The timeframe whithin which messages will be considered duplicates." }, "autoModEmojisEnabled": { - "title": "Enabled", - "description": "Automatically moderate messages with an excessive amount of emojis." + "title": "Ingeschakeld", + "description": "Berichten met een grote hoeveelheid emojis worden automatisch gemoderate." }, "autoModEmojisMaxNumberOfEmojis": { - "title": "Max # of Emojis", + "title": "Maximaal aantal emojis", "description": "The maximum amount of emojis a message is allowed to have before trigger the rule." }, "autoModEnabled": { diff --git a/i18n/bot/pl.json b/i18n/bot/pl.json index e6dc00d3..fee2cbf0 100644 --- a/i18n/bot/pl.json +++ b/i18n/bot/pl.json @@ -230,7 +230,8 @@ "canNotReadMessages": "Nie mam pozwolenia do **czytania wiadomości** na tym kanale.", "canNotSendEmbeds": "Nie mam pozwolenia do **embed links** na tym kanale.", "canNotSendMessages": "Nie mam pozwolenia do **wysyłania wiadomości** na tym kanale.", - "mustBeTextChannel": "Ten kanał to nie kanał tekstowy." + "mustBeTextChannel": "Ten kanał to nie kanał tekstowy.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "Nowa wartość" @@ -501,7 +502,9 @@ }, "text": "Ustaw konfiguracje dla pojedynczych kodów zaproszenia", "title": "Konfiguracja Kodu Zaproszenia", - "noneSet": "Brak ustawionych konfiguracji!" + "noneSet": "Brak ustawionych konfiguracji!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "Wysłałem tobie wiadomość prywatną z wszystkimi twoimi kodami zaproszenia.", @@ -687,6 +690,10 @@ "done": "Użytkownik wyciszony!", "error": "Wystąpił błąd podczas wyciszania tego użytkownika.", "missingRole": "Muted role not set or does not exist!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "The duration for which the user should be muted.", @@ -711,7 +718,8 @@ "role": "The role which should be granted or denied access to the command." }, "description": "Configure permissions to use commands." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "Your payment for premium has been declined, plesae check your Patreon.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Your account does not have a premium subscription associated.\n\nIf you aquired premium using Patreon, please make sure to link your Discord account to Patreon to collect your rewards, then run this command again.", - "title": "Check for a Premium Subscription" + "title": "Check for a Premium Subscription", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "You are using a custom bot. Custom bots always have premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "You have already used your free premium trial! If you like this bot, please consider purchasing premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "Please reply with **yes** or **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Try the premium version of InviteManager for free for a limited duration." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Cannot unmute that user.", "done": "User has been unmuted.", "missingRole": "Muted role not set or does not exist!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "The user that should be unmuted." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "No results found!" + "noResults": "No results found!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "Unknown", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "You do not have permission to use this command.\nOnly **Administrators** may use this command.", - "createInviteCode": "Create Instant Invite", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Manage Server", "manageRoles": "Manage Roles", "premiumOnly": "This command is only available for premium subscribers!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "Canceled" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Not a valid number.", "type": "Number", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Multiple matching roles found. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { diff --git a/i18n/bot/pt.json b/i18n/bot/pt.json index b2cbca70..a54d49ed 100644 --- a/i18n/bot/pt.json +++ b/i18n/bot/pt.json @@ -230,7 +230,8 @@ "canNotReadMessages": "I don't have permission to **read messages** in that channel.", "canNotSendEmbeds": "I don't have permission to **embed links** in that channel.", "canNotSendMessages": "I don't have permission to **send messages** in that channel.", - "mustBeTextChannel": "That channel is not a text channel." + "mustBeTextChannel": "That channel is not a text channel.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "Valor novo" @@ -501,7 +502,9 @@ }, "text": "Set configs for individual invite codes.", "title": "Invite Code Config", - "noneSet": "No configs set!" + "noneSet": "No configs set!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "Enviei-lhe uma DM com todos os códigos de seu convites.", @@ -687,6 +690,10 @@ "done": "User muted!", "error": "There was an error muting this person.", "missingRole": "Muted role not set or does not exist!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "The duration for which the user should be muted.", @@ -711,7 +718,8 @@ "role": "The role which should be granted or denied access to the command." }, "description": "Configure permissions to use commands." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "Your payment for premium has been declined, plesae check your Patreon.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Your account does not have a premium subscription associated.\n\nIf you aquired premium using Patreon, please make sure to link your Discord account to Patreon to collect your rewards, then run this command again.", - "title": "Check for a Premium Subscription" + "title": "Check for a Premium Subscription", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "You are using a custom bot. Custom bots always have premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "You have already used your free premium trial! If you like this bot, please consider purchasing premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "Please reply with **yes** or **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Try the premium version of InviteManager for free for a limited duration." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Cannot unmute that user.", "done": "User has been unmuted.", "missingRole": "Muted role not set or does not exist!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "The user that should be unmuted." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "No results found!" + "noResults": "No results found!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "Unknown", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "You do not have permission to use this command.\nOnly **Administrators** may use this command.", - "createInviteCode": "Create Instant Invite", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Manage Server", "manageRoles": "Manage Roles", "premiumOnly": "This command is only available for premium subscribers!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "Canceled" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Not a valid number.", "type": "Number", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Multiple matching roles found. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { diff --git a/i18n/bot/pt_BR.json b/i18n/bot/pt_BR.json index 23017583..4dd19aac 100644 --- a/i18n/bot/pt_BR.json +++ b/i18n/bot/pt_BR.json @@ -230,7 +230,8 @@ "canNotReadMessages": "I don't have permission to **read messages** in that channel.", "canNotSendEmbeds": "I don't have permission to **embed links** in that channel.", "canNotSendMessages": "I don't have permission to **send messages** in that channel.", - "mustBeTextChannel": "That channel is not a text channel." + "mustBeTextChannel": "That channel is not a text channel.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "New Value" @@ -501,7 +502,9 @@ }, "text": "Set configs for individual invite codes.", "title": "Invite Code Config", - "noneSet": "No configs set!" + "noneSet": "No configs set!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "I sent you a DM with all your invite codes.", @@ -687,6 +690,10 @@ "done": "User muted!", "error": "There was an error muting this person.", "missingRole": "Muted role not set or does not exist!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "The duration for which the user should be muted.", @@ -711,7 +718,8 @@ "role": "The role which should be granted or denied access to the command." }, "description": "Configure permissions to use commands." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "Your payment for premium has been declined, plesae check your Patreon.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Your account does not have a premium subscription associated.\n\nIf you aquired premium using Patreon, please make sure to link your Discord account to Patreon to collect your rewards, then run this command again.", - "title": "Check for a Premium Subscription" + "title": "Check for a Premium Subscription", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "You are using a custom bot. Custom bots always have premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "You have already used your free premium trial! If you like this bot, please consider purchasing premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "Please reply with **yes** or **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Try the premium version of InviteManager for free for a limited duration." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Cannot unmute that user.", "done": "User has been unmuted.", "missingRole": "Muted role not set or does not exist!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "The user that should be unmuted." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "No results found!" + "noResults": "No results found!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "Unknown", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "You do not have permission to use this command.\nOnly **Administrators** may use this command.", - "createInviteCode": "Create Instant Invite", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Manage Server", "manageRoles": "Manage Roles", "premiumOnly": "This command is only available for premium subscribers!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "Canceled" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Not a valid number.", "type": "Number", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Multiple matching roles found. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { diff --git a/i18n/bot/ro.json b/i18n/bot/ro.json index 7aae38ec..5228e437 100644 --- a/i18n/bot/ro.json +++ b/i18n/bot/ro.json @@ -230,7 +230,8 @@ "canNotReadMessages": "I don't have permission to **read messages** in that channel.", "canNotSendEmbeds": "I don't have permission to **embed links** in that channel.", "canNotSendMessages": "I don't have permission to **send messages** in that channel.", - "mustBeTextChannel": "That channel is not a text channel." + "mustBeTextChannel": "That channel is not a text channel.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "Valoarea noua" @@ -501,7 +502,9 @@ }, "text": "Set configs for individual invite codes.", "title": "Invite Code Config", - "noneSet": "No configs set!" + "noneSet": "No configs set!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "Ti-am trimis un mesaj privat cu codurile tale de invitatie!", @@ -687,6 +690,10 @@ "done": "User muted!", "error": "There was an error muting this person.", "missingRole": "Muted role not set or does not exist!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "The duration for which the user should be muted.", @@ -711,7 +718,8 @@ "role": "The role which should be granted or denied access to the command." }, "description": "Configure permissions to use commands." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "Your payment for premium has been declined, plesae check your Patreon.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Your account does not have a premium subscription associated.\n\nIf you aquired premium using Patreon, please make sure to link your Discord account to Patreon to collect your rewards, then run this command again.", - "title": "Check for a Premium Subscription" + "title": "Check for a Premium Subscription", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "You are using a custom bot. Custom bots always have premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "You have already used your free premium trial! If you like this bot, please consider purchasing premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "Please reply with **yes** or **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Try the premium version of InviteManager for free for a limited duration." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Cannot unmute that user.", "done": "User has been unmuted.", "missingRole": "Muted role not set or does not exist!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "The user that should be unmuted." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "No results found!" + "noResults": "No results found!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "Unknown", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "You do not have permission to use this command.\nOnly **Administrators** may use this command.", - "createInviteCode": "Create Instant Invite", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Manage Server", "manageRoles": "Manage Roles", "premiumOnly": "This command is only available for premium subscribers!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "Canceled" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Not a valid number.", "type": "Number", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Multiple matching roles found. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { diff --git a/i18n/bot/ru.json b/i18n/bot/ru.json index 94c59c75..b5b65f14 100644 --- a/i18n/bot/ru.json +++ b/i18n/bot/ru.json @@ -32,171 +32,171 @@ "description": "Добавляет/Убирает приглашения для пользователя" }, "zero": "Добавление 0 приглашений реально ничего не изменит...", - "numberTooLarge": "The number you provided is too big.", - "numberTooSmall": "The number you provided is too small." + "numberTooLarge": "Число которое в задали слишком большое!", + "numberTooSmall": "Число которое в задали слишком маленькое!" }, "addRank": { "created": "Добавлена роль {{{ role }}}, для которой нужно иметь {{ invites }} приглашений и оно имеет описание: {{ description }}", - "roleTooHigh": "The role {{{ role }}} is higher up than my role ({{{ myRole }}}), so I won't be able to assign it to members that earn it.", + "roleTooHigh": "Роль {{{ role }}} выше чем {{{ myRole }}}, и я не смогу её присвоить пользователям которые получили её.", "self": { "args": { - "info": "A description that users will see so they know more about this rank.", - "invites": "The amount of invites needed to reach the rank.", - "role": "The role which the user will receive when reaching this rank." + "info": "Описание позволит пользователям узнать больше о ролию.", + "invites": "Количество приглашений требуемых для получения роли.", + "role": "Роль которую пользователь получит при достижении ранга." }, - "description": "Add a new rank." + "description": "Добавить ранг." }, - "updated": "Rank {{{ role }}} updated: Now needs {{ invites }} invites and has the following description: {{ description }}" + "updated": "Ранг {{{ role }}} обновлён: теперь требуется пригласить {{ invites }} людей. Описание роли: {{ description }}" }, "ban": { - "canNotBan": "I cannot ban this user.", - "done": "The user was successfully banned.", - "error": "There was an error banning this user:\n{{ error }}", - "missingPermissions": "I need the `Ban Members` permission to use this command.", + "canNotBan": "Блокировка невозможна.", + "done": "Пользователь успешно заблокирован!", + "error": "Произошла тезническая ошибка в результате которой операция не выполнелась. Попробуйте позже. {{ error }}", + "missingPermissions": "Нет прав.", "self": { "args": { "deleteMessageDays": "How far back messages will be deleted (in days).", - "reason": "Why was the user banned.", - "user": "User to ban." + "reason": "Причина блокировки.", + "user": "Ползоватьель которого нужно заблокировать." }, - "description": "Ban a member from the server.", + "description": "Заблокировать пользователя.", "flags": { "deleteMessageDays": "If specified will delete messages by the banned members this many days back." } }, - "canNotSoftBan": "I cannot softban this user." + "canNotSoftBan": "Невозможна блокировка типа \"soft\"." }, "botConfig": { - "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `{{ prefix }}botConfig {{ key }} default` to reset it to the default value.", + "canNotClear": "Невозможна очистка параметра **{{ key }}**! Используйте `{{ prefix }}botConfig {{ key }} default` для отката к изначальным настройкам.", "changed": { - "text": "This config has been changed.\nUse `{{ prefix }}botConfig {{ key }} ` to change it again.\nUse `{{ prefix }}botConfig {{ key }} default` to reset it to the default." + "text": "Данный параметр был успешно изменён!\nИспользуйте `{{ prefix }}botConfig {{ key }} <значение>` для повторного изменения.\nUse `{{ prefix }}botConfig {{ key }} default` для отката к изначальным настройкам." }, "current": { - "clear": "Use `{{ prefix }}botConfig {{ key }} none` to clear it.", - "notSet": "This config is currently **not** set.\nUse `{{ prefix }}config {{ key }} ` to set it.", - "text": "This config is currently set.\nUse `{{ prefix }}botConfig {{ key }} ` to change it.\nUse `{{ prefix }}botConfig {{ key }} default` to reset it to the default.", - "title": "Current Value" + "clear": "Используйте `{{ prefix }}botConfig {{ key }} none` для очистки значения параметра.", + "notSet": "Параметр не настроен.\nUse `{{ prefix }}config {{ key }} <значение>` для настройки.", + "text": "Данный параметр был успешно задан!\nИспользуйте `{{ prefix }}botConfig {{ key }} <значение>` для повторного изменения.\nUse `{{ prefix }}botConfig {{ key }} default` для отката к изначальным настройкам.", + "title": "Значение на данный момент" }, "customOnly": "**This command is only available for custom bots.**\nIf you are looking for your server config, please use the `{{ prefix }}config` command.\n\nVisit our patreon page to learn more about how you can get your own custom bot: {{{ patreon }}}", "invalid": { - "twitchOnly": "Discord only supports twitch.tv URLs for the streaming activity." + "twitchOnly": "Discord поддерживает ссылки на трансляции twitch.tv" }, "new": { - "title": "New Value" + "title": "Новое значение" }, - "none": "None", - "notSet": "These settings are not set", + "none": "Пусто", + "notSet": "Эти параметры не настроены", "preview": { - "nextMessage": "", - "title": "Preview" + "nextMessage": "<просмотр следующего сообщения>", + "title": "предварительный просмотр." }, "previous": { - "title": "Previous Value" + "title": "Предыдущее значение" }, - "sameValue": "This config is already set to that value.", + "sameValue": "Параметр уже имеет данное значение.", "self": { "args": { - "key": "The bot config setting which you want to show/change.", - "value": "The new value of the setting." + "key": "Тот параметр который вы хотите изсенить.", + "value": "Значение параметра." }, - "description": "Show and change the config of the bot." + "description": "Показать/изменить значение параметра." }, "text": "Снизу весь конфиг настроек данного бота\nИспользуй `{{ prefix }}botConfig ` чтобы увидеть кождую настройку\nИспользуй `{{ prefix }}botConfig ` чтобы настроить конфиг в ", - "title": "Custom Bot Config" + "title": "Конфигурация" }, "botInfo": { "guilds": "Сервера", "members": "Участники", "premium": { - "active": "This server has an **active premium** subscription.", - "custom": "You are using a custom version of the bot!", - "none": "This server currently **does not** have premium.", - "title": "Premium" + "active": "У этого сервера **действует** премиум подписка!", + "custom": "Вы используете модифицированную версию бота.", + "none": "У этого сервера **нет** премиум подписки!", + "title": "Премиум." }, "self": { - "description": "Get general information about the bot." + "description": "Уснайте основную информацию о боте." }, "shards": { "current": "Current Shard", "total": "Total Shards" }, - "uptime": "Uptime", + "uptime": "Время работы", "version": "Версия" }, "caseDelete": { - "done": "Case deleted", - "notFound": "Case not found", + "done": "Кейс убран!", + "notFound": "Кейс не найден.", "self": { "args": { - "caseNumber": "Case number", - "reason": "The reason for removing the case." + "caseNumber": "ID кейса.", + "reason": "Причина удаления кейса." }, - "description": "Delete a specific case." + "description": "Убрать какой-либо кейс." }, - "title": "Case #{{ id }}" + "title": "Кейс #{{ id }}" }, "caseView": { - "notFound": "Case not found", + "notFound": "Кейс не найден", "self": { "args": { - "caseNumber": "Case number" + "caseNumber": "Номер кейса" }, - "description": "View info about a specific case." + "description": "Посмотреть информацию про кейс." }, - "strike": "{{{ member }}} received {{{ amount }}} strikes for violating the {{{ violation }}} rule {{{ date }}}.", - "title": "Case #{{ id }}" + "strike": "{{{ member }}} получил {{{ amount }}} страйк(ов) в связи с нарушением правила {{{ violation }}}. {{{ date }}}.", + "title": "Кейс #{{ id }}" }, "check": { - "noHistory": "User does not have any history.", + "noHistory": "У данного пользователя нет истории.", "punishments": { - "entry": "{{ punishment }} because he had {{ amount }} strikes {{ date }}", - "title": "Punishments", - "total": "Punishments Total", - "totalText": "{{{ amount }}} punishments." + "entry": "{{ punishment }} посколько у него было {{ amount }} страйков. {{ date }}.", + "title": "Наказания", + "total": "ИТОГО наказаний", + "totalText": "{{{ amount }}} наказаний." }, "self": { "args": { - "user": "User to check." + "user": "Пользователь которого нужно проверить." }, - "description": "Check violation and punishment history of a user." + "description": "Проверьте историю наказаний пользователя." }, "strikes": { - "entry": "#{{ id }} - Received {{ amount }} strikes for {{ violation }} {{ date }}", - "title": "Strikes", - "total": "Strikes Total", - "totalText": "Received {{{ total }}} strikes for {{{ amount }}} violations." + "entry": "#{{ id }} - Получил {{ amount }} страйков из-за {{ violation }}. {{ date }}.", + "title": "Страйки", + "total": "ИТОГО страйков", + "totalText": "Получено {{{ total }}} страйков за нарушение {{{ amount }}} правил." } }, "clean": { "error": "Ошибка", - "invalidQuantity": "You must specify a positive amount of messages to clean", + "invalidQuantity": "Число убраных сообщений должно быть выше 0.", "self": { "args": { - "member": "User whose messages get deleted.", - "numberOfMessages": "Number of messages that will be searched.", - "quantity": "How many messages should be deleted.", - "type": "The type of messages that will be deleted." + "member": "Пользователь сообщения которого нужно убрать", + "numberOfMessages": "Количество сообщений которые должны быть найдены.", + "quantity": "Количество найденых сообщений которые должны быть убраны.", + "type": "Тип удаляемых сообщений." }, - "description": "Clean a channel of certain message types." + "description": "Удалить сообщения специального типа из канала." }, - "text": "Deleted {{ amount }} messages.\nThis message will be deleted in 5 seconds.", - "title": "Deleted Messages", - "textReactions": "Deleted {{ amount }} messages containing reactions." + "text": "Удалено {{ amount }} сообщений.\nЭто сообщение автоматически удалится через 5 секунд.", + "title": "Убранные сообщения", + "textReactions": "Удалено {{ amount }} сообщений содержащих реакции." }, "cleanShort": { "self": { "args": { - "maxTextLength": "All messages shorter than this will be deleted.", - "numberOfMessages": "Number of messages that will be searched." + "maxTextLength": "Установите значение количества символов сообщения ниже которого удалены.", + "numberOfMessages": "Количество сообщений которых нужно найти." }, - "description": "Clear short messages" + "description": "Удалить короткие сообщения." } }, "cleanText": { "self": { "args": { - "numberOfMessages": "Number of messages that will be searched.", - "text": "All messages containing this word will be deleted." + "numberOfMessages": "Количество сообщений которые нужно найти", + "text": "Все сообщения с данным словом будут удалены" }, "description": "Delete messages containing certain keywords." } @@ -230,7 +230,8 @@ "canNotReadMessages": "I don't have permission to **read messages** in that channel.", "canNotSendEmbeds": "I don't have permission to **embed links** in that channel.", "canNotSendMessages": "I don't have permission to **send messages** in that channel.", - "mustBeTextChannel": "That channel is not a text channel." + "mustBeTextChannel": "That channel is not a text channel.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "Новое значение" @@ -501,7 +502,9 @@ }, "text": "Set configs for individual invite codes.", "title": "Invite Code Config", - "noneSet": "No configs set!" + "noneSet": "No configs set!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "I sent you a DM with all your invite codes.", @@ -687,6 +690,10 @@ "done": "User muted!", "error": "There was an error muting this person.", "missingRole": "Muted role not set or does not exist!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "The duration for which the user should be muted.", @@ -711,7 +718,8 @@ "role": "The role which should be granted or denied access to the command." }, "description": "Configure permissions to use commands." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "Your payment for premium has been declined, plesae check your Patreon.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Your account does not have a premium subscription associated.\n\nIf you aquired premium using Patreon, please make sure to link your Discord account to Patreon to collect your rewards, then run this command again.", - "title": "Check for a Premium Subscription" + "title": "Check for a Premium Subscription", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "You are using a custom bot. Custom bots always have premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "You have already used your free premium trial! If you like this bot, please consider purchasing premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "Please reply with **yes** or **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Try the premium version of InviteManager for free for a limited duration." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Cannot unmute that user.", "done": "User has been unmuted.", "missingRole": "Muted role not set or does not exist!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "The user that should be unmuted." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "No results found!" + "noResults": "No results found!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "Unknown", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "You do not have permission to use this command.\nOnly **Administrators** may use this command.", - "createInviteCode": "Create Instant Invite", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Упровлять сервером", "manageRoles": "Manage Roles", "premiumOnly": "This command is only available for premium subscribers!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "Отменено" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Not a valid number.", "type": "Number", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Multiple matching roles found. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { diff --git a/i18n/bot/sr.json b/i18n/bot/sr.json index 18537c10..f6530c48 100644 --- a/i18n/bot/sr.json +++ b/i18n/bot/sr.json @@ -230,7 +230,8 @@ "canNotReadMessages": "I don't have permission to **read messages** in that channel.", "canNotSendEmbeds": "I don't have permission to **embed links** in that channel.", "canNotSendMessages": "I don't have permission to **send messages** in that channel.", - "mustBeTextChannel": "That channel is not a text channel." + "mustBeTextChannel": "That channel is not a text channel.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "New Value" @@ -501,7 +502,9 @@ }, "text": "Set configs for individual invite codes.", "title": "Invite Code Config", - "noneSet": "No configs set!" + "noneSet": "No configs set!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "I sent you a DM with all your invite codes.", @@ -687,6 +690,10 @@ "done": "User muted!", "error": "There was an error muting this person.", "missingRole": "Muted role not set or does not exist!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "The duration for which the user should be muted.", @@ -711,7 +718,8 @@ "role": "The role which should be granted or denied access to the command." }, "description": "Configure permissions to use commands." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "Your payment for premium has been declined, plesae check your Patreon.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Your account does not have a premium subscription associated.\n\nIf you aquired premium using Patreon, please make sure to link your Discord account to Patreon to collect your rewards, then run this command again.", - "title": "Check for a Premium Subscription" + "title": "Check for a Premium Subscription", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "You are using a custom bot. Custom bots always have premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "You have already used your free premium trial! If you like this bot, please consider purchasing premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "Please reply with **yes** or **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Try the premium version of InviteManager for free for a limited duration." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Cannot unmute that user.", "done": "User has been unmuted.", "missingRole": "Muted role not set or does not exist!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "The user that should be unmuted." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "No results found!" + "noResults": "No results found!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "Unknown", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "You do not have permission to use this command.\nOnly **Administrators** may use this command.", - "createInviteCode": "Create Instant Invite", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Manage Server", "manageRoles": "Manage Roles", "premiumOnly": "This command is only available for premium subscribers!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "Canceled" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Not a valid number.", "type": "Number", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Multiple matching roles found. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { diff --git a/i18n/bot/tr.json b/i18n/bot/tr.json index 003d4f87..8d608758 100644 --- a/i18n/bot/tr.json +++ b/i18n/bot/tr.json @@ -230,7 +230,8 @@ "canNotReadMessages": "Bu kanalda **mesajları okuma** yetkim yok.", "canNotSendEmbeds": "Bu kanalda **bağlantı yerleştir** yetkim yok.", "canNotSendMessages": "Bu kanalda **mesaj gönder** yetkim yok.", - "mustBeTextChannel": "Bu kanal bir yazı kanalı değil." + "mustBeTextChannel": "Bu kanal bir yazı kanalı değil.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "Yeni Değer" @@ -352,7 +353,7 @@ }, "description": "Yardımı gösterir." }, - "text": "This is a list of commands you can use. You can get more info about a specific command by using `{{ prefix }}help ` (e.g. `{{ prefix }}help add-ranks`)", + "text": "Bu, kullanabileceğiniz komutların bir listesidir. `{{ prefix }} yardım `(ör.`{{ prefix }}help add-ranks`) kullanarak belirli bir komut hakkında daha fazla bilgi alabilirsiniz.", "usage": { "title": "Kullanım" } @@ -470,7 +471,7 @@ }, "inviteCodeConfig": { "changed": { - "text": "This invite code config has been changed.\n\nUse `{{ prefix }}inviteCodeConfig {{ key }} {{ code }} ` to change it again.\nUse `{{ prefix }}inviteCodeConfig {{ key }} {{ code }} none` to reset it to the default." + "text": "Bu davet kodu yapılandırması değiştirildi.\n\nTekrar değiştirmek için `{{ prefix }}inviteCodeConfig {{ key }} {{ code }} '' kullanın.\nVarsayılana sıfırlamak için `{{ prefix }}inviteCodeConfig {{ key }} {{ code }} none` kullanın." }, "current": { "clear": "Use `{{ prefix }}inviteCodeConfig {{ key }} {{ code }} none` to clear it.", @@ -501,7 +502,9 @@ }, "text": "Bireysel davet kodları için yapılandırmalar ayarlayın.", "title": "Davet Kodu Yapılandırması", - "noneSet": "Hiçbir yapılandırma ayarlanmadı!" + "noneSet": "Hiçbir yapılandırma ayarlanmadı!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "Senin Özel Mesajlarına tüm davet kodlarını gönderdim.", @@ -519,11 +522,11 @@ "description": "Tüm davet kodlarınızın bir listesini alın" }, "temporary": { - "entry": "**Uses**: {{ uses }}\n**Max Age**: {{ maxAge }}\r\n**Max Uses**: {{ maxUses }}\r\n**Channel**: {{{ channel }}}\r\n**Expires**: {{ expires }}", + "entry": "**Kullanım**: {{ uses }}\n**Maksimum Yaş**: {{ maxAge }}\r\n**Maksimum Kullanım**: {{ maxUses }}\r\n**Kanal**: {{{ channel }}}\r\n**Sona Erme**: {{ expires }}", "text": "Bu davetlerin süresi belirli bir süre sonra dolar.", "title": "Geçici" }, - "title": "You have the following codes on the server {{ guild }}", + "title": "Sunucuda aşağıdaki kodlar var {{ guild }}", "error": "Davet kodlarınızı gönderemedim, bu sunucudan özel mesajlara izin verdiğinizden emin olun." }, "inviteDetails": { @@ -538,8 +541,8 @@ }, "invites": { "amount": { - "other": "{{{ target }}} has {{ total }} invites! ({{ regular }} regular, {{ custom }} bonus, {{ fake }} fake, {{ leave }} leaves)", - "self": "You have {{ total }} invites! ({{ regular }} regular, {{ custom }} bonus, {{ fake }} fake, {{ leave }} leaves)" + "other": "{{{ target }}}'ın {{ total }} daveti var! ({{ normal }} düzenli, {{ custom }} bonus, {{ fake }} sahte, {{ leave }} ayrılma)", + "self": "Senin {{ total }} davetin var! ({{ normal }} düzenli, {{ custom }} bonus, {{ fake }} sahte, {{ leave }} ayrılma)" }, "highestRank": { "other": "{{{ target }}} şu anda en yüksek rütbeye sahip!", @@ -687,6 +690,10 @@ "done": "Kullanıcı susturuldu!", "error": "Bu kişinin sesi kapatılırken bir hata oluştu.", "missingRole": "Susturulmuş kullanıcı rolü ayarlanmadı veya mevcut değil!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "Kullanıcının susturulması gereken süre.", @@ -695,7 +702,7 @@ }, "description": "Bir kullanıcı sustur", "flags": { - "duration": "The duration to mute the user for" + "duration": "Kullanıcının susturulma süresi" } } }, @@ -711,7 +718,8 @@ "role": "Komuta erişim izni verilmesi veya reddedilmesi gereken rol." }, "description": "Komutları kullanmak için izinleri yapılandırın." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -730,16 +738,17 @@ "customBot": "Özel bir bot kullanıyorsunuz. Özel botlar her zaman premiumludur.", "done": "Bu sunucu için Premium başarıyla etkinleştirildi.", "noGuild": "Bu komutu bir sunucunun içinde çalıştırmalısınız.", - "noSubscription": "You do not have an active premium subscription.\n\nUse {{{ cmd }}} for more info.", + "noSubscription": "Aktif bir premium aboneliğiniz yok.\n\nDaha fazla bilgi için {{{ cmd }}} kullanın.", "title": "Bu sunucuda premium'u etkinleştir", "permissions": "Bu komutu bu sunucuda kullanmak için `Sunucuyu Yönet` izinine ihtiyacınız vardır.", - "maxGuilds": "You have activated premium on the maximum number of guilds." + "maxGuilds": "Maksimum lonca sayısı için premiumu etkinleştirdiniz." }, "check": { "declined": "Prim ödemeniz reddedildi, lütfen Patreon'unuzu kontrol edin.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Hesabınızın premium aboneliği ilişkilendirilmemiş.\n\nPatreon'u kullanarak prim aldıysanız, ödüllerinizi toplamak için lütfen Discord hesabınızı Patreon'a bağladığınızdan emin olun, ardından bu komutu tekrar çalıştırın.", - "title": "Check for a Premium Subscription" + "title": "Premium Abonelik Kontrolü", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "Özel bir bot kullanıyorsunuz. Özel botlar her zaman premiumludur.", @@ -756,20 +765,20 @@ }, "export": { "text": "Botumuzu davet ettiğinizden beri sunucunuzda gerçekleşen tüm katılmaları ve ayrılmaları dışa aktarabilirsiniz.", - "title": "Premium Feature: History export" + "title": "Premium Özellik: Tarihçeyi dışa aktarım" }, "patreon": { "text": "Run {{{ cmd }}} to validate and activate your Patreon plegde.", - "title": "If you purchsed premium on Patreon" + "title": "Patreon'da premium satın aldıysanız" }, "servers": { - "text": "Once you have premium you may activate it on up to 5 servers of your choosing, and you can change these 5 servers anytime.", - "title": "Premium Feature: Up to 5 servers" + "text": "Premium olur olmaz, seçtiğiniz 5 sunucuya kadar etkinleştirebilirsiniz ve istediğiniz zaman bu 5 sunucuyu değiştirebilirsiniz.", + "title": "Premium Özellik: 5 sunucuya kadar" } }, "noPremium": { "text": "Premium bir katmana abone olarak botun geliştirilmesine yardımcı olursunuz ve ayrıca bazı ek özellikler elde edersiniz.", - "title": "You currently do not have a premium subscription" + "title": "Şu anda bir premium aboneliğiniz yok" }, "premium": { "activate": "Use {{{ cmd }}} to activate it on this server", @@ -788,15 +797,15 @@ "deletedText": "Members will no longer receive the punishment {{ punishment }}", "self": { "args": { - "args": "Arguments passed to the punishment.", - "punishment": "Type of punishment to use.", - "strikes": "Number of strikes for this punishment to be used." + "args": "İddialar cezaya geçti.", + "punishment": "Kullanılacak cezalandırma türü.", + "strikes": "Bu cezalandırma için kullanılacak ihtar sayısı." }, "description": "Configure punishments when reaching a certain amount of strikes." }, "text": "{{ strikes }} strikes are punished with a {{ punishment }}", "title": "Ceza Yapılandırması", - "unusedPunishment": "Unused Punishment" + "unusedPunishment": "Kullanılmayan Cezalandırma" }, "purge": { "error": "Hata", @@ -807,7 +816,7 @@ "quantity": "Kaç mesaj silinmelidir.", "user": "Mesajları silinmiş olan kullanıcı." }, - "description": "Purge messages in a channel." + "description": "Bir kanaldaki mesajları temizleme" }, "text": "{{ amount }} mesaj silindi.\nBu mesaj 5 saniye içinde silinecek.", "title": "Silinmiş mesajlar" @@ -938,13 +947,13 @@ "self": { "args": { "strikes": "Number of strikes.", - "violation": "Violation type." + "violation": "İhlal türü." }, "description": "Configure strikes received for various violations." }, "text": "The violation {{ violation }} gives a user {{ strikes }} strikes.", "title": "Grev Yapılandırması", - "unusedViolations": "Unused violations" + "unusedViolations": "Kullanılmayan ihlaller" }, "subtractFakes": { "done": "Sahte Davetler Silindi!", @@ -970,11 +979,13 @@ "alreadyUsed": "Ücretsiz premium denemenizi zaten kullandınız! Bu botu beğendiyseniz, lütfen premium almayı düşünün.\n ", "currentlyActive": "Şu anda aktif bir premium aboneliğiniz var!", "prompt": "Lütfen **evet** veya **hayır** yazarak cevap verin.\n ", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "InviteManager'ın premium sürümünü sınırlı bir süre için ücretsiz deneyin." }, "started": "You successfully started your trial! Use `{{ prefix }}premium` to check how much time you have left.", - "text": "You can try out our premium features for {{ duration }}. You can only do this once. Would you like to test it now?", + "text": "{{ duration }} için premium özelliklerimizi deneyebilirsiniz. Bunu sadece bir kez yapabilirsiniz. Şimdi test etmek ister misiniz?", "title": "InviteManager - Premium'u deneyin" }, "unban": { @@ -1003,9 +1014,10 @@ "canNotUnmute": "Bu kullanıcının susturulmasını kaldıramıyorum.", "done": "Kullanıcının susturulması kaldırıldı", "missingRole": "Susturulmuş rolü ayarlanmadı veya mevcut değil!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { - "user": "The user that should be unmuted." + "user": "Susturulması gereken kullanıcı" }, "description": "Unmute a user" } @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,11 +1106,12 @@ "rewind": { "self": { "description": "Şarkıyı geri sar ve en baştan başla." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { - "description": "Search for the search term and let you chose one of the results.", + "description": "Arama terimini arayın ve sonuçlardan birini seçmenize izin verin.", "flags": { "platform": "Select the platform where you want the song to be played." }, @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "Sonuç bulunamadı!" + "noResults": "Sonuç bulunamadı!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,13 +1129,14 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { - "description": "Skip the current song and play the next song in the queue.", + "description": "Geçerli şarkıyı atlayın ve sıradaki bir sonraki şarkıyı çalın.", "args": { - "amount": "How many songs will be skipped." + "amount": "Kaç şarkı atlanacak." } } }, @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1163,19 +1180,19 @@ "timeout": "Kilitlemenin otomatik olarak sona erdiği zaman aşımı süresi. Kilidi manuel olarak sonlandırmak için komutu tekrar çalıştırın." }, "args": { - "channel": "The channel that you want to lock down." + "channel": "Kilitlemek istediğiniz kanal." } }, - "noSuitingRoleFound": "No suitable role found to start a lockdown!" + "notATextChannel": "That channel is not a text channel.", + "noSuitingRoleFound": "Bir kilitleme başlatmak için uygun bir rol bulunamadı!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Linkli katılma / ayrılma mesajınız olarak kullanmak premium bir özelliktir. Premium, bu sunucuda etkin görünmüyor. Premium satın alma hakkında daha fazla bilgi edinmek için lütfen bizimle iletişime geçin.", "messages": { "joinUnknownInviter": "<@{{ id }}> sunucuya nasıl katıldığını anlayamıyorum.", "joinVanityUrl": "<@{{ id }}> özel bir davetle sunucuya katıldı.", - "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "Bilinmeyen", - "joinServerWidget": "Kullanıcı bir sunucu widget'ı kullanarak katıldı." + "leaveUnknownInviter": "{{ tag }} sunucudan ayrıldı, ancak onu kimin davet ettiğini bulamadım", + "joinServerWidget": "Kullanıcı bir sunucu widget'ı kullanarak katıldı.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,21 +1211,19 @@ }, "permissions": { "adminOnly": "Bu komutu kullanma izniniz yok.\nBu komutu yalnızca ** Yönetici ** kullanabilir.", - "createInviteCode": "Anında Davetiye Oluştur", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Sunucuyu Yönet", "manageRoles": "Rolleri Yönet", "premiumOnly": "Bu komut yalnızca premium aboneler için geçerlidir!", - "rateLimit": "Slow down! Please wait {{ cooldown }} seconds and try again.", + "rateLimit": "Yavaşla! Lütfen {{ cooldown }} saniye bekleyin ve tekrar deneyin.", "role": "Bu komutu kullanmak için yetkin yok\nAşağıdaki rollerden birine ihtiyacınız var: {{{roller}}}", "viewAuditLogs": "Denetim Kaydını Görüntüleyin", "manageMessages": "Mesajları Yönet", "readMessageHistory": "Read Message History", "missing": "InviteManager'da {{{ channel }}} içindeki {{{ permissions }}} izinleri eksik", "banMembers": "Üyeleri Yasakla", - "kickMembers": "Üyeleri At" - }, - "prompt": { - "canceled": "İptal edildi" + "kickMembers": "Üyeleri At", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1227,7 +1242,7 @@ "notFound": "Komut bulunamadı.", "type": "Komut", "validValues": "Use one of the following values: {{{ values }}}", - "typeInfo": "This argument expects a command of this bot. You can use any of the following methods to provide a command:\n\n- Use the command name: `invites`\n- Use an alias of the command: `p`" + "typeInfo": "Bu argüman bu botun bir komutunu bekliyor. Komut sağlamak için aşağıdaki yöntemlerden birini kullanabilirsiniz: \n\n- Komut adını kullanın: `invites`\n- Komutun takma adını kullanın: `p`" }, "enum": { "invalid": "Not a valid value.", @@ -1245,7 +1260,9 @@ "number": { "invalid": "Geçerli bir numara değil.", "type": "Sayı", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Birden fazla eşleşen rol bulundu. {{{ roles }}}", @@ -1271,12 +1288,13 @@ "typeInfo": "Bu argüman bir tarih bekliyor. Çeşitli formatlar kullanabilirsiniz, ancak şunları öneririz: `YYYY-AA-GG`" }, "duration": { - "type": "Duration", + "type": "Süre", "typeInfo": "This argument expects a duration. The following duration types are supported:\n\n- Seconds: `s` (`5s` = 5 seconds)\n- Minutes: `min` (`3min` = 3 minutes)\n- Hours: `h` (`4h` = 4 hours)\n- Days: `d` (`2d` = 2 days)\n- Weeks: `w` (`1w` = 1 week)\n- Months: `mo` (`6mo` = 6 months)\n- Years: `y` (`10y` = 10 years)" }, "invitecode": { "type": "Davet Kodu", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { @@ -1309,7 +1327,7 @@ "description": "The amount of time a member has to be in your server to be considered 'old'." }, "autoModDuplicateTextEnabled": { - "title": "Enabled", + "title": "Etkin", "description": "Automatically moderate duplicate messages (copy-paste spam)." }, "autoModDuplicateTextTimeframeInSeconds": { @@ -1322,14 +1340,14 @@ }, "autoModEmojisMaxNumberOfEmojis": { "title": "Max # of Emojis", - "description": "The maximum amount of emojis a message is allowed to have before trigger the rule." + "description": "Kuralı tetiklemeden önce bir iletinin sahip olabileceği maksimum emoji miktarı." }, "autoModEnabled": { "title": "etkin", "description": "Automatically moderate messages (specific rules can also be turned on or off, this has to be ON for ANY rule to work)." }, "autoModHoistEnabled": { - "title": "Enabled", + "title": "Etkin", "description": "Kaldırmaya çalışırlarsa üyelere otomatik olarak takma adlar verin (kullanıcı listesinin en üstünde görünmek için özel karakterler kullanın)." }, "autoModIgnoredChannels": { @@ -1345,11 +1363,11 @@ "description": "Discord Sunucu davet bağlantıları için iletileri otomatik olarak tarayın ve kaldırın." }, "autoModLinksBlacklist": { - "title": "Blacklist", + "title": "Kara liste", "description": "Blacklist certain links which users won't be able to post." }, "autoModLinksEnabled": { - "title": "Enabled", + "title": "Etkin", "description": "Automatically remove messages containing links (you can set a whitelist and blacklist)." }, "autoModLinksFollowRedirects": { @@ -1365,7 +1383,7 @@ "description": "Log any moderation actions that the bot makes." }, "autoModMentionRolesEnabled": { - "title": "Enabled", + "title": "Etkin", "description": "Automatically moderate messages that mention an excessive amount of roles." }, "autoModMentionRolesMaxNumberOfMentions": { @@ -1401,7 +1419,7 @@ "description": "The timeframe within which a user is allowed to send a maximum amount of messages." }, "autoModWordsBlacklist": { - "description": "A list of words that are banned.", + "description": "Yasaklanan kelimelerin listesi.", "title": "Kara liste" }, "autoModWordsEnabled": { @@ -1409,7 +1427,7 @@ "title": "Etkin" }, "autoSubtractFakes": { - "description": "Automatically subtract fake invites.", + "description": "Sahte davetleri otomatik olarak çıkarın", "title": "Auto Subtract" }, "autoSubtractLeaves": { @@ -1446,10 +1464,10 @@ }, "channels": { "title": "Komut kanalları", - "description": "The channels in which the bot will react to commands." + "description": "Botun komutlara tepki vereceği kanallar." }, "getUpdates": { - "description": "Enable to receive development updates about InviteManager.", + "description": "InviteManager hakkında geliştirme güncellemelerini almayı etkinleştirin.", "title": "Yükselt." }, "groups": { @@ -1536,8 +1554,8 @@ "title": "Müzik", "description": "Müzik Ayarları", "general": { - "title": "Müzik", - "description": "General Music Settings" + "title": "Music", + "description": "Genel Müzik Ayarları" }, "announcement": { "title": "Duyuru", diff --git a/i18n/bot/zh_CN.json b/i18n/bot/zh_CN.json index 3eba0c75..47898322 100644 --- a/i18n/bot/zh_CN.json +++ b/i18n/bot/zh_CN.json @@ -230,7 +230,8 @@ "canNotReadMessages": "I don't have permission to **read messages** in that channel.", "canNotSendEmbeds": "I don't have permission to **embed links** in that channel.", "canNotSendMessages": "I don't have permission to **send messages** in that channel.", - "mustBeTextChannel": "That channel is not a text channel." + "mustBeTextChannel": "That channel is not a text channel.", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "New Value" @@ -501,7 +502,9 @@ }, "text": "Set configs for individual invite codes.", "title": "Invite Code Config", - "noneSet": "No configs set!" + "noneSet": "No configs set!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "I sent you a DM with all your invite codes.", @@ -687,6 +690,10 @@ "done": "User muted!", "error": "There was an error muting this person.", "missingRole": "Muted role not set or does not exist!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "The duration for which the user should be muted.", @@ -711,7 +718,8 @@ "role": "The role which should be granted or denied access to the command." }, "description": "Configure permissions to use commands." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "Your payment for premium has been declined, plesae check your Patreon.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Your account does not have a premium subscription associated.\n\nIf you aquired premium using Patreon, please make sure to link your Discord account to Patreon to collect your rewards, then run this command again.", - "title": "Check for a Premium Subscription" + "title": "Check for a Premium Subscription", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "You are using a custom bot. Custom bots always have premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "You have already used your free premium trial! If you like this bot, please consider purchasing premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "Please reply with **yes** or **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Try the premium version of InviteManager for free for a limited duration." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Cannot unmute that user.", "done": "User has been unmuted.", "missingRole": "Muted role not set or does not exist!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "The user that should be unmuted." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "No results found!" + "noResults": "No results found!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "Unknown", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "You do not have permission to use this command.\nOnly **Administrators** may use this command.", - "createInviteCode": "Create Instant Invite", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Manage Server", "manageRoles": "Manage Roles", "premiumOnly": "This command is only available for premium subscribers!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "Canceled" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Not a valid number.", "type": "Number", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Multiple matching roles found. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { diff --git a/i18n/bot/zh_TW.json b/i18n/bot/zh_TW.json index 64fa1ba8..8dd77fc2 100644 --- a/i18n/bot/zh_TW.json +++ b/i18n/bot/zh_TW.json @@ -230,7 +230,8 @@ "canNotReadMessages": "我沒有權限來**讀取訊息**在那個頻道。", "canNotSendEmbeds": "我沒有權限來**嵌入連結**在那個頻道。", "canNotSendMessages": "我沒有權限來**發送訊息**在那個頻道。", - "mustBeTextChannel": "那個頻道不是一個文字頻道。" + "mustBeTextChannel": "那個頻道不是一個文字頻道。", + "multipleJoinRolesIsPremium": "Multiple join roles are a premium feature." }, "new": { "title": "新的值" @@ -501,7 +502,9 @@ }, "text": "Set configs for individual invite codes.", "title": "Invite Code Config", - "noneSet": "No configs set!" + "noneSet": "No configs set!", + "codeForOtherGuild": "This invite code is for another server.", + "canNotClear": "The config setting **{{ key }}** can not be cleared. You can use `inviteCodeConfig {{ key }} default` to reset it to the default value." }, "inviteCodes": { "dmSent": "I sent you a DM with all your invite codes.", @@ -687,6 +690,10 @@ "done": "User muted!", "error": "There was an error muting this person.", "missingRole": "Muted role not set or does not exist!", + "unmute": { + "title": "Auto unmute", + "description": "User will be unmuted in {{{ duration }}}" + }, "self": { "args": { "muteDuration": "The duration for which the user should be muted.", @@ -711,7 +718,8 @@ "role": "The role which should be granted or denied access to the command." }, "description": "Configure permissions to use commands." - } + }, + "canNotChange": "The permissions for the {{{ cmd }}} command cannot be changed." }, "ping": { "self": { @@ -739,7 +747,8 @@ "declined": "Your payment for premium has been declined, plesae check your Patreon.", "done": "You have an active premium subscription valid until {{{ valid }}}.\n\nUse {{{ cmd }}} for more info.", "notFound": "Your account does not have a premium subscription associated.\n\nIf you aquired premium using Patreon, please make sure to link your Discord account to Patreon to collect your rewards, then run this command again.", - "title": "Check for a Premium Subscription" + "title": "Check for a Premium Subscription", + "paused": "Your subscription currently seems to be paused, please check your Patreon." }, "deactivate": { "customBot": "You are using a custom bot. Custom bots always have premium.", @@ -970,6 +979,8 @@ "alreadyUsed": "You have already used your free premium trial! If you like this bot, please consider purchasing premium.", "currentlyActive": "You currently have an active premium subscription!", "prompt": "Please reply with **yes** or **no**.", + "timedOut": "The request has timed out, please try again.", + "canceled": "The try-premium process has been aborted.", "self": { "description": "Try the premium version of InviteManager for free for a limited duration." }, @@ -1003,6 +1014,7 @@ "canNotUnmute": "Cannot unmute that user.", "done": "User has been unmuted.", "missingRole": "Muted role not set or does not exist!", + "error": "Could not unmute member: {{{ error }}}", "self": { "args": { "user": "The user that should be unmuted." @@ -1044,7 +1056,8 @@ "args": { "videos": "The videos that should be mashed together." } - } + }, + "missingSecondVideo": "Missing second video link!" }, "nowPlaying": { "self": { @@ -1093,7 +1106,8 @@ "rewind": { "self": { "description": "Rewind the song and start from the beginning." - } + }, + "notSupported": "Rewinding is not supported on {{{ platform }}}" }, "search": { "self": { @@ -1106,7 +1120,8 @@ } }, "title": "Results for {{ term }}", - "noResults": "No results found!" + "noResults": "No results found!", + "notSupported": "Searching is not supported on {{{ platform }}}" }, "seek": { "self": { @@ -1114,7 +1129,8 @@ "args": { "duration": "The position the song will be skipped to (from the beginning, in seconds)." } - } + }, + "notSupported": "Seeking is not supported on {{{ platform }}}" }, "skip": { "self": { @@ -1148,6 +1164,7 @@ }, "description": "Creates a new or edits an existing placeholder message." }, + "noMessage": "You need to provide a message for the placeholder", "noMessageFoundInDatabase": "The placeholder message with the specified id could not be found." }, "reactionRole": { @@ -1166,16 +1183,16 @@ "channel": "The channel that you want to lock down." } }, + "notATextChannel": "That channel is not a text channel.", "noSuitingRoleFound": "No suitable role found to start a lockdown!" } }, - "JOIN_LEAVE_EMBEDS_IS_PREMIUM": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium.", "messages": { "joinUnknownInviter": "I can't figure out how <@{{ id }}> joined the server.", "joinVanityUrl": "<@{{ id }}> joined the server using a vanity invite.", "leaveUnknownInviter": "{{ tag }} left the server, but I couldn't figure out who invited them.", - "unknownInviter": "Unknown", - "joinServerWidget": "The user joined using a server widget." + "joinServerWidget": "The user joined using a server widget.", + "joinLeaveEmbedsIsPremium": "Using an embed as your join/leave message is a premium feature. Premium does not seem to be active on this server. Please contact us to learn more about how to purchase premium." }, "moderation": { "punishments": { @@ -1194,7 +1211,7 @@ }, "permissions": { "adminOnly": "You do not have permission to use this command.\nOnly **Administrators** may use this command.", - "createInviteCode": "Create Instant Invite", + "createInstantInvite": "Create Instant Invite", "manageGuild": "Manage Server", "manageRoles": "Manage Roles", "premiumOnly": "This command is only available for premium subscribers!", @@ -1205,10 +1222,8 @@ "readMessageHistory": "Read Message History", "missing": "InviteManager is missing the permissions {{{ permissions }}} in {{{ channel }}}", "banMembers": "Ban Members", - "kickMembers": "Kick Members" - }, - "prompt": { - "canceled": "Canceled" + "kickMembers": "Kick Members", + "memberError": "Could not get member" }, "resolvers": { "boolean": { @@ -1245,7 +1260,9 @@ "number": { "invalid": "Not a valid number.", "type": "Number", - "typeInfo": "This arguments expects a number" + "typeInfo": "This arguments expects a number", + "tooSmall": "That number is too small, it has to be at least {{{ min }}}.", + "tooLarge": "That number is too large, it has to be at most {{{ max }}}." }, "role": { "multiple": "Multiple matching roles found. {{{ roles }}}", @@ -1276,7 +1293,8 @@ }, "invitecode": { "type": "Invite Code", - "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview." + "typeInfo": "This arguments expects a Discord Invite Code. \n\n> You can put only the part after `https://discord.gg/` to prevent Discord from creating a preview.", + "notFound": "The specified invite code could not be found." } }, "settings": { diff --git a/package.json b/package.json index cadaa83c..cc0388ad 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "lint": "tslint --project tsconfig.json --config tslint.json --format stylish", "format": "prettier --write \"src/**/*.ts\" \"docs/**/*.md\" \"README.md\" \"CHANGELOG.md\"", "release": "npm run build && npm run docs && npm run format && standard-version", + "i18n": "node scripts/check-i18n.js", "nxv": "node ./scripts/npm-exact-versions.js", "docs": "node scripts/generate-docs.js" }, diff --git a/scripts/check-i18n.js b/scripts/check-i18n.js new file mode 100644 index 00000000..c2db5a9b --- /dev/null +++ b/scripts/check-i18n.js @@ -0,0 +1,108 @@ +const { readFileSync, readdirSync, statSync } = require('fs'); +const { resolve, relative } = require('path'); +const chalk = require('chalk'); + +const en = require('../i18n/bot/en.json'); + +const REGEX = /(?:\W(?:t)\(|phrase:)\s*['`"](.+?)['`"]/gi; + +const found = []; +const variablePrefixes = []; + +function readDir(dir) { + const fileNames = readdirSync(dir); + for (const fileName of fileNames) { + const file = dir + '/' + fileName; + + if (statSync(file).isDirectory()) { + readDir(file); + continue; + } + + if (!file.endsWith('.ts') && !file.endsWith('.tsx')) { + continue; + } + + const text = readFileSync(file, 'utf8'); + const fileFound = []; + + let matches; + while ((matches = REGEX.exec(text))) { + fileFound.push(matches[1]); + } + + found.push([relative(resolve(__dirname, '../'), file), fileFound]); + } +} + +function flattenLang(lang, prefix) { + let arr = []; + for (const key of Object.keys(lang)) { + const value = lang[key]; + const subKey = `${prefix ? prefix + '.' : ''}${key}`; + + if (typeof value === 'string') { + arr.push(subKey); + } else { + arr = arr.concat(flattenLang(value, subKey)); + } + } + return arr; +} + +function checkLang(lang, key) { + const parts = key.split('.'); + let obj = lang; + if (typeof obj === 'undefined') { + return false; + } + + for (let i = 0; i < parts.length; i++) { + obj = obj[parts[i]]; + if (typeof obj === 'undefined') { + return false; + } + } + return true; +} + +console.log(chalk.blue('Checking that all used keys are translated...')); + +readDir(resolve(__dirname, '../src')); + +for (const [file, matches] of found) { + for (const match of matches) { + let variableIndex = match.indexOf('$'); + if (variableIndex >= 0) { + variablePrefixes.push(match.substr(0, variableIndex)); + console.log(chalk.yellow(`⚠️ ${chalk.blue(file)}: Variable found in ${chalk.blue(match)} - skipping checks`)); + continue; + } + + const enOk = checkLang(en, match); + if (!enOk) { + console.error(chalk.red(`✗ ${chalk.blue(match)} (EN) from ${chalk.blue(file)}`)); + } + } + + console.log(chalk.green(`✓ ${file}`)); +} + +console.log(chalk.blue('Checking that all translated keys are used...')); + +const keys = [] + .concat(flattenLang(en).map((key) => ['EN', key])) + .filter(([, key], i, arr) => arr.findIndex(([, key2]) => key2 === key) === i); + +for (const [lang, key] of keys) { + if (!found.some(([, matches]) => matches.includes(key))) { + if (variablePrefixes.some((prefix) => key.startsWith(prefix))) { + console.log(chalk.yellow(`⚠️ ${chalk.blue(key)}: Key starts with a variable prefix - skipping checks`)); + continue; + } + + console.error(chalk.red(`✗ ${chalk.blue(key)} (${lang}) not used in any file`)); + } + + console.log(chalk.green(`✓ ${key}`)); +} diff --git a/src/framework/commands/config/permissions.ts b/src/framework/commands/config/permissions.ts index 06456f63..1c169af8 100644 --- a/src/framework/commands/config/permissions.ts +++ b/src/framework/commands/config/permissions.ts @@ -151,7 +151,7 @@ export default class extends Command { cmd.name === InvitesCommand.addRank || cmd.name === InvitesCommand.removeRank ) { - return this.sendReply(message, t('cmd.permissions.canNotChange')); + return this.sendReply(message, t('cmd.permissions.canNotChange', { cmd: cmd.name })); } const oldPerms = await this.client.db.getRolePermissions(guild.id, role.id, cmd.name); diff --git a/src/framework/commands/premium/tryPremium.ts b/src/framework/commands/premium/tryPremium.ts index 282030e5..e5c77f58 100644 --- a/src/framework/commands/premium/tryPremium.ts +++ b/src/framework/commands/premium/tryPremium.ts @@ -47,10 +47,10 @@ export default class extends Command { const [keyResult] = await this.client.msg.prompt(message, t('cmd.tryPremium.prompt')); if (keyResult === PromptResult.TIMEOUT) { - return this.sendReply(message, t('prompt.timedOut')); + return this.sendReply(message, t('cmd.tryPremium.timedOut')); } if (keyResult === PromptResult.FAILURE) { - return this.sendReply(message, t('prompt.canceled')); + return this.sendReply(message, t('cmd.tryPremium.canceled')); } await this.client.db.savePremiumSubscription({ diff --git a/src/framework/resolvers/BooleanResolver.ts b/src/framework/resolvers/BooleanResolver.ts index ae65b382..f30b2e01 100644 --- a/src/framework/resolvers/BooleanResolver.ts +++ b/src/framework/resolvers/BooleanResolver.ts @@ -18,6 +18,6 @@ export class BooleanResolver extends Resolver { if (fs.has(value)) { return false; } - throw Error(t(`resolvers.${this.getType()}.invalid`)); + throw Error(t(`resolvers.boolean.invalid`)); } } diff --git a/src/framework/resolvers/ChannelResolver.ts b/src/framework/resolvers/ChannelResolver.ts index f4499609..94c13552 100644 --- a/src/framework/resolvers/ChannelResolver.ts +++ b/src/framework/resolvers/ChannelResolver.ts @@ -17,7 +17,7 @@ export class ChannelResolver extends Resolver { const id = value.match(channelRegex)[1]; channel = guild.channels.get(id); if (!channel) { - throw Error(t(`resolvers.${this.getType()}.notFound`)); + throw Error(t(`resolvers.channel.notFound`)); } } else { const name = value.toLowerCase(); @@ -30,10 +30,10 @@ export class ChannelResolver extends Resolver { channel = channels[0]; } else { if (channels.length === 0) { - throw Error(t(`resolvers.${this.getType()}.notFound`)); + throw Error(t(`resolvers.channel.notFound`)); } else { throw Error( - t(`resolvers.${this.getType()}.multiple`, { + t(`resolvers.channel.multiple`, { channels: channels .slice(0, 10) .map((c) => `\`${c.name}\``) diff --git a/src/framework/resolvers/CommandResolver.ts b/src/framework/resolvers/CommandResolver.ts index 5e810164..1710c0b3 100644 --- a/src/framework/resolvers/CommandResolver.ts +++ b/src/framework/resolvers/CommandResolver.ts @@ -14,14 +14,14 @@ export class CommandResolver extends Resolver { ); if (cmds.length === 0) { - throw Error(t(`resolvers.${this.getType()}.notFound`)); + throw Error(t(`resolvers.command.notFound`)); } else if (cmds.length === 1) { return cmds[0]; } else { const cmd = cmds.find((c) => c.name.length - name.length === 0); if (!cmd) { throw Error( - t(`resolvers.${this.getType()}.multiple`, { + t(`resolvers.command.multiple`, { commands: cmds .slice(0, 10) .map((c) => `\`${c.name}\``) @@ -34,7 +34,7 @@ export class CommandResolver extends Resolver { } public getHelp({ t }: Context) { - return t(`resolvers.${this.getType()}.validValues`, { + return t(`resolvers.command.validValues`, { values: this.client.cmds.commands.map((c) => '`' + c.name + '`').join(', ') }); } diff --git a/src/framework/resolvers/EnumResolver.ts b/src/framework/resolvers/EnumResolver.ts index 97bcd6e5..7b50f750 100644 --- a/src/framework/resolvers/EnumResolver.ts +++ b/src/framework/resolvers/EnumResolver.ts @@ -22,11 +22,11 @@ export class EnumResolver extends Resolver { if (this.values.has(val)) { return this.values.get(val); } - throw Error(t(`resolvers.${this.getType()}.invalid`)); + throw Error(t(`resolvers.enum.invalid`)); } public getHelp({ t }: Context) { - return t(`resolvers.${this.getType()}.validValues`, { + return t(`resolvers.enum.validValues`, { values: [...this.values.values()] .sort((a, b) => a.localeCompare(b)) .map((v) => '`' + v + '`') diff --git a/src/framework/resolvers/InviteCodeResolver.ts b/src/framework/resolvers/InviteCodeResolver.ts index 3d2e2c9b..8c6aa3b4 100644 --- a/src/framework/resolvers/InviteCodeResolver.ts +++ b/src/framework/resolvers/InviteCodeResolver.ts @@ -18,7 +18,7 @@ export class InviteCodeResolver extends Resolver { inv = await this.client.getInvite(id); } if (!inv) { - throw Error(t(`resolvers.${this.getType()}.notFound`)); + throw Error(t(`resolvers.invitecode.notFound`)); } return inv; diff --git a/src/framework/resolvers/MemberResolver.ts b/src/framework/resolvers/MemberResolver.ts index eec21027..b56bef77 100644 --- a/src/framework/resolvers/MemberResolver.ts +++ b/src/framework/resolvers/MemberResolver.ts @@ -20,7 +20,7 @@ export class MemberResolver extends Resolver { member = await guild.getRESTMember(id).then(() => undefined); } if (!member) { - throw Error(t(`resolvers.${this.getType()}.notFound`)); + throw Error(t(`resolvers.member.notFound`)); } } else { const name = value.toLowerCase(); @@ -32,10 +32,10 @@ export class MemberResolver extends Resolver { member = members[0]; } else { if (members.length === 0) { - throw Error(t(`resolvers.${this.getType()}.notFound`)); + throw Error(t(`resolvers.member.notFound`)); } else { throw Error( - t(`resolvers.${this.getType()}.multiple`, { + t(`resolvers.member.multiple`, { members: members .slice(0, 10) .map((m) => `\`${m.username}#${m.discriminator}\``) diff --git a/src/framework/resolvers/NumberResolver.ts b/src/framework/resolvers/NumberResolver.ts index 13ef387b..17ded6ce 100644 --- a/src/framework/resolvers/NumberResolver.ts +++ b/src/framework/resolvers/NumberResolver.ts @@ -24,24 +24,24 @@ export class NumberResolver extends Resolver { const val = parseFloat(value); if (isNaN(val) || !isFinite(val)) { - throw Error(t(`resolvers.${this.getType()}.invalid`)); + throw Error(t(`resolvers.number.invalid`)); } if (val < MIN_VALUE) { - throw Error(t(`resolvers.${this.getType()}.tooSmall`)); + throw Error(t(`resolvers.number.tooSmall`, { min: this.min || MIN_VALUE })); } if (val > MAX_VALUE) { - throw Error(t(`resolvers.${this.getType()}.tooLarge`)); + throw Error(t(`resolvers.number.tooLarge`, { max: this.max || MAX_VALUE })); } if (this.min) { if (val < this.min) { - throw Error(t(`resolvers.${this.getType()}.tooSmall`)); + throw Error(t(`resolvers.number.tooSmall`, { min: this.min })); } } if (this.max) { if (val > this.max) { - throw Error(t(`resolvers.${this.getType()}.tooLarge`)); + throw Error(t(`resolvers.number.tooLarge`, { max: this.max })); } } diff --git a/src/framework/resolvers/RoleResolver.ts b/src/framework/resolvers/RoleResolver.ts index 24692f7c..826f7b8c 100644 --- a/src/framework/resolvers/RoleResolver.ts +++ b/src/framework/resolvers/RoleResolver.ts @@ -17,7 +17,7 @@ export class RoleResolver extends Resolver { const id = value.match(idRegex)[1]; role = guild.roles.get(id); if (!role) { - throw Error(t(`resolvers.${this.getType()}.notFound`)); + throw Error(t(`resolvers.role.notFound`)); } } else { const name = value.toLowerCase(); @@ -40,10 +40,10 @@ export class RoleResolver extends Resolver { role = roles[0]; } else { if (roles.length === 0) { - throw Error(t(`resolvers.${this.getType()}.notFound`)); + throw Error(t(`resolvers.role.notFound`)); } else { throw Error( - t(`resolvers.${this.getType()}.multiple`, { + t(`resolvers.role.multiple`, { roles: roles .slice(0, 10) .map((r) => `\`${r.name}\``) diff --git a/src/framework/resolvers/UserResolver.ts b/src/framework/resolvers/UserResolver.ts index 73998b98..1a08ba3d 100644 --- a/src/framework/resolvers/UserResolver.ts +++ b/src/framework/resolvers/UserResolver.ts @@ -31,7 +31,7 @@ export class UserResolver extends Resolver { })); } if (!user) { - throw Error(t(`resolvers.${this.getType()}.notFound`)); + throw Error(t(`resolvers.user.notFound`)); } } else { const fullName = value.toLowerCase(); @@ -87,10 +87,10 @@ export class UserResolver extends Resolver { if (users.length === 1) { user = users[0]; } else if (users.length === 0) { - throw Error(t(`resolvers.${this.getType()}.notFound`)); + throw Error(t(`resolvers.user.notFound`)); } else { throw Error( - t(`resolvers.${this.getType()}.multiple`, { + t(`resolvers.user.multiple`, { users: users .slice(0, 10) .map((u) => `\`${u.username}#${u.discriminator}\``) diff --git a/src/framework/services/Messaging.ts b/src/framework/services/Messaging.ts index 8466027d..7f0313b0 100644 --- a/src/framework/services/Messaging.ts +++ b/src/framework/services/Messaging.ts @@ -208,7 +208,7 @@ export class MessagingService extends IMService { return this.createEmbed(temp, false); } else { const lang = (await this.client.cache.guilds.get(guild.id)).lang; - msg += '\n\n' + i18n.__({ locale: lang, phrase: 'JOIN_LEAVE_EMBEDS_IS_PREMIUM' }); + msg += '\n\n' + i18n.__({ locale: lang, phrase: 'messages.joinLeaveEmbedsIsPremium' }); } } catch (e) { // diff --git a/src/moderation/commands/mod/mute.ts b/src/moderation/commands/mod/mute.ts index 0be4f99d..6b04d393 100644 --- a/src/moderation/commands/mod/mute.ts +++ b/src/moderation/commands/mod/mute.ts @@ -88,7 +88,7 @@ export default class extends Command { if (duration) { embed.fields.push({ name: t('cmd.mute.unmute.title'), - value: t('cmd.mute.unmute.desecription', { duration: duration.humanize() }) + value: t('cmd.mute.unmute.description', { duration: duration.humanize(false) }) }); await this.client.scheduler.addScheduledAction( guild.id, diff --git a/src/music/commands/music/rewind.ts b/src/music/commands/music/rewind.ts index 54ef2ebd..6756c192 100644 --- a/src/music/commands/music/rewind.ts +++ b/src/music/commands/music/rewind.ts @@ -27,12 +27,7 @@ export default class extends Command { const musicPlatform: MusicPlatform = conn.getNowPlaying().getPlatform(); if (!musicPlatform.supportsRewind) { - await this.sendReply( - message, - t('cmd.rewind.notSupported', { - platform: musicPlatform.getType() - }) - ); + await this.sendReply(message, t('cmd.rewind.notSupported', { platform: musicPlatform.getType() })); return; }