@commandkit/i18n 0.1.2 → 1.2.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/cli.d.ts +16 -0
- package/dist/cli.js +70 -0
- package/dist/constants.d.ts +7 -0
- package/dist/constants.js +8 -1
- package/dist/hooks.d.ts +16 -2
- package/dist/hooks.js +39 -3
- package/dist/i18n.d.ts +40 -2
- package/dist/i18n.js +41 -9
- package/dist/index.d.ts +11 -1
- package/dist/index.js +17 -2
- package/dist/types.d.ts +21 -0
- package/dist/utils.d.ts +8 -0
- package/dist/utils.js +9 -1
- package/package.json +11 -8
package/README.md
CHANGED
|
@@ -75,13 +75,13 @@ The `$command` key defines localization for the command name and description (or
|
|
|
75
75
|
This plugin adds `locale()` function to your command context. You can use it to localize your command responses.
|
|
76
76
|
|
|
77
77
|
```ts
|
|
78
|
-
export const chatInput:
|
|
78
|
+
export const chatInput: ChatInputCommand = async (ctx) => {
|
|
79
79
|
// ctx.locale() auto infers the localization of the current guild
|
|
80
80
|
// you can also pass a discord.js locale enum to use custom locale
|
|
81
81
|
// ctx.locale("fr") // uses french locale
|
|
82
82
|
const { t, i18n } = ctx.locale()
|
|
83
|
-
//
|
|
84
|
-
//
|
|
83
|
+
// | |__ i18next instance
|
|
84
|
+
// |_____ TFunction
|
|
85
85
|
|
|
86
86
|
ctx.interaction.reply({
|
|
87
87
|
content: t("response", { latency: client.ping }),
|
|
@@ -105,4 +105,4 @@ export async function run({ interaction }) {
|
|
|
105
105
|
}
|
|
106
106
|
```
|
|
107
107
|
|
|
108
|
-
This function is identical to the one in the context and it can also infer the locale automatically.
|
|
108
|
+
This function is identical to the one in the context and it can also infer the locale automatically.
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CompilerPlugin, CompilerPluginRuntime } from 'commandkit';
|
|
2
|
+
/**
|
|
3
|
+
* Compiler plugin for the CommandKit CLI to create locale files.
|
|
4
|
+
* This plugin allows users to create locale files for commands in the CLI.
|
|
5
|
+
* It registers a template named "locale" that can be used to generate locale files.
|
|
6
|
+
* @example ```sh
|
|
7
|
+
* commandkit create locale <locale> <commandName>
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
export declare class I18nCliTemplatePlugin extends CompilerPlugin {
|
|
11
|
+
readonly name = "I18nCliTemplatePlugin";
|
|
12
|
+
activate(ctx: CompilerPluginRuntime): Promise<void>;
|
|
13
|
+
deactivate(ctx: CompilerPluginRuntime): Promise<void>;
|
|
14
|
+
private panic;
|
|
15
|
+
private handleTemplate;
|
|
16
|
+
}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.I18nCliTemplatePlugin = void 0;
|
|
4
|
+
const commandkit_1 = require("commandkit");
|
|
5
|
+
const constants_1 = require("./constants");
|
|
6
|
+
const i18n_1 = require("./i18n");
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
/**
|
|
10
|
+
* Compiler plugin for the CommandKit CLI to create locale files.
|
|
11
|
+
* This plugin allows users to create locale files for commands in the CLI.
|
|
12
|
+
* It registers a template named "locale" that can be used to generate locale files.
|
|
13
|
+
* @example ```sh
|
|
14
|
+
* commandkit create locale <locale> <commandName>
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
class I18nCliTemplatePlugin extends commandkit_1.CompilerPlugin {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
this.name = 'I18nCliTemplatePlugin';
|
|
21
|
+
}
|
|
22
|
+
async activate(ctx) {
|
|
23
|
+
try {
|
|
24
|
+
ctx.registerTemplate('locale', this.handleTemplate.bind(this));
|
|
25
|
+
}
|
|
26
|
+
catch (e) {
|
|
27
|
+
commandkit_1.Logger.error(`Failed to register the CLI template "locale": ${e}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async deactivate(ctx) {
|
|
31
|
+
ctx.unregisterTemplate('locale');
|
|
32
|
+
}
|
|
33
|
+
panic(message) {
|
|
34
|
+
commandkit_1.Logger.error(message);
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
async handleTemplate(args) {
|
|
38
|
+
if (args.length < 2) {
|
|
39
|
+
this.panic(`Invalid arguments for locale template. Expected: <locale> <commandName>`);
|
|
40
|
+
}
|
|
41
|
+
const [locale, commandName] = args;
|
|
42
|
+
if (!constants_1.DISCORD_LOCALES.has(locale)) {
|
|
43
|
+
this.panic(`Invalid locale ${locale}. Please use one of the followings:\n${Array.from(constants_1.DISCORD_LOCALES)
|
|
44
|
+
.map((l) => `- ${l}`)
|
|
45
|
+
.join('\n')}`);
|
|
46
|
+
}
|
|
47
|
+
const localePath = i18n_1.I18nPlugin.getLoadPath('src', locale, commandName);
|
|
48
|
+
if ((0, fs_1.existsSync)(localePath)) {
|
|
49
|
+
this.panic(`Locale file for "${locale}:${commandName}" already exists.`);
|
|
50
|
+
}
|
|
51
|
+
const localeDirSrc = (0, path_1.join)(localePath, '..', '..');
|
|
52
|
+
if (!(0, fs_1.existsSync)(localeDirSrc)) {
|
|
53
|
+
this.panic(`Could not locate source directory. Please make sure you are running this command from the location of your commandkit config file.`);
|
|
54
|
+
}
|
|
55
|
+
const localeDir = (0, path_1.join)(localePath, '..');
|
|
56
|
+
if (!(0, fs_1.existsSync)(localeDir)) {
|
|
57
|
+
(0, fs_1.mkdirSync)(localeDir, { recursive: true });
|
|
58
|
+
}
|
|
59
|
+
const data = {
|
|
60
|
+
$command: {
|
|
61
|
+
name: commandName,
|
|
62
|
+
description: `${commandName} command`,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
(0, fs_1.writeFileSync)(localePath, JSON.stringify(data, null, 2));
|
|
66
|
+
commandkit_1.Logger.info(`Locale file for ${locale} and ${commandName} created at ${localePath}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.I18nCliTemplatePlugin = I18nCliTemplatePlugin;
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBMkU7QUFDM0UsMkNBQThDO0FBRTlDLGlDQUFvQztBQUNwQywyQkFBMEQ7QUFDMUQsK0JBQTRCO0FBRTVCOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLHFCQUFzQixTQUFRLDJCQUFjO0lBQXpEOztRQUNrQixTQUFJLEdBQUcsdUJBQXVCLENBQUM7SUF1RWpELENBQUM7SUFyRVEsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUEwQjtRQUM5QyxJQUFJLENBQUM7WUFDSCxHQUFHLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxtQkFBTSxDQUFDLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRSxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBMEI7UUFDaEQsR0FBRyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTyxLQUFLLENBQUMsT0FBZTtRQUMzQixtQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFTyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQWM7UUFDekMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxLQUFLLENBQ1IseUVBQXlFLENBQzFFLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUM7UUFFbkMsSUFBSSxDQUFDLDJCQUFlLENBQUMsR0FBRyxDQUFDLE1BQWdCLENBQUMsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxLQUFLLENBQ1Isa0JBQWtCLE1BQU0sd0NBQXdDLEtBQUssQ0FBQyxJQUFJLENBQ3hFLDJCQUFlLENBQ2hCO2lCQUNFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztpQkFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ2hCLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsaUJBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUV0RSxJQUFJLElBQUEsZUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsTUFBTSxJQUFJLFdBQVcsbUJBQW1CLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBQSxXQUFJLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVsRCxJQUFJLENBQUMsSUFBQSxlQUFVLEVBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxDQUNSLG9JQUFvSSxDQUNySSxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUEsV0FBSSxFQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsSUFBQSxlQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUMzQixJQUFBLGNBQVMsRUFBQyxTQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUc7WUFDWCxRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLFdBQVcsRUFBRSxHQUFHLFdBQVcsVUFBVTthQUN0QztTQUNGLENBQUM7UUFFRixJQUFBLGtCQUFhLEVBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXpELG1CQUFNLENBQUMsSUFBSSxDQUNULG1CQUFtQixNQUFNLFFBQVEsV0FBVyxlQUFlLFVBQVUsRUFBRSxDQUN4RSxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBeEVELHNEQXdFQyJ9
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
import { Locale } from 'discord.js';
|
|
2
|
+
/**
|
|
3
|
+
* Represents a set of locales supported by Discord.
|
|
4
|
+
*/
|
|
2
5
|
export declare const DISCORD_LOCALES: Set<Locale>;
|
|
6
|
+
/**
|
|
7
|
+
* Metadata key for command localization.
|
|
8
|
+
* This key is used to store metadata about commands in the i18n system.
|
|
9
|
+
*/
|
|
3
10
|
export declare const COMMAND_METADATA_KEY = "$command";
|
package/dist/constants.js
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.COMMAND_METADATA_KEY = exports.DISCORD_LOCALES = void 0;
|
|
4
4
|
const discord_js_1 = require("discord.js");
|
|
5
|
+
/**
|
|
6
|
+
* Represents a set of locales supported by Discord.
|
|
7
|
+
*/
|
|
5
8
|
exports.DISCORD_LOCALES = new Set(Object.values(discord_js_1.Locale).filter((locale) => !/^\d+/.test(locale)));
|
|
9
|
+
/**
|
|
10
|
+
* Metadata key for command localization.
|
|
11
|
+
* This key is used to store metadata about commands in the i18n system.
|
|
12
|
+
*/
|
|
6
13
|
exports.COMMAND_METADATA_KEY = '$command';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBb0M7QUFFcEM7O0dBRUc7QUFDVSxRQUFBLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxtQkFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDL0QsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsb0JBQW9CLEdBQUcsVUFBVSxDQUFDIn0=
|
package/dist/hooks.d.ts
CHANGED
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
import type { Locale } from 'discord.js';
|
|
2
|
-
import type
|
|
2
|
+
import { type CommandLocalizationContext } from './i18n';
|
|
3
|
+
import { TFunction } from 'i18next';
|
|
3
4
|
/**
|
|
4
|
-
* Gets the localization context.
|
|
5
|
+
* Gets the localization context. If the context originates from the event worker context, the returned t function is not bound to the command.
|
|
5
6
|
* @param locale The locale to use. Defaults to the detected locale or the default locale.
|
|
7
|
+
* @example const { t, locale, i18n } = locale('en-US');
|
|
8
|
+
* const translated = t('hello'); // Translates 'hello' in the 'en-US' locale
|
|
6
9
|
*/
|
|
7
10
|
export declare function locale(locale?: Locale): CommandLocalizationContext;
|
|
11
|
+
/**
|
|
12
|
+
* Fetches the translation function for the given locale and namespace.
|
|
13
|
+
* @param lng The locale to use.
|
|
14
|
+
* @param ns The namespace to use.
|
|
15
|
+
* @param keyPrefix The key prefix to use.
|
|
16
|
+
* @returns The translation function.
|
|
17
|
+
* @example
|
|
18
|
+
* const t = fetchT('en-US', 'common');
|
|
19
|
+
* const translated = t('hello'); // Translates 'hello' in the 'en-US' locale
|
|
20
|
+
*/
|
|
21
|
+
export declare function fetchT(lng: string | string[], ns?: string | null, keyPrefix?: string): TFunction;
|
package/dist/hooks.js
CHANGED
|
@@ -1,17 +1,53 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.locale = locale;
|
|
4
|
+
exports.fetchT = fetchT;
|
|
5
|
+
const i18n_1 = require("./i18n");
|
|
4
6
|
const commandkit_1 = require("commandkit");
|
|
5
7
|
/**
|
|
6
|
-
* Gets the localization context.
|
|
8
|
+
* Gets the localization context. If the context originates from the event worker context, the returned t function is not bound to the command.
|
|
7
9
|
* @param locale The locale to use. Defaults to the detected locale or the default locale.
|
|
10
|
+
* @example const { t, locale, i18n } = locale('en-US');
|
|
11
|
+
* const translated = t('hello'); // Translates 'hello' in the 'en-US' locale
|
|
8
12
|
*/
|
|
9
13
|
function locale(locale) {
|
|
10
|
-
|
|
14
|
+
let env;
|
|
15
|
+
try {
|
|
16
|
+
env = (0, commandkit_1.useEnvironment)();
|
|
17
|
+
}
|
|
18
|
+
catch { }
|
|
19
|
+
if (!env) {
|
|
20
|
+
const context = commandkit_1.eventWorkerContext.getStore();
|
|
21
|
+
if (!context) {
|
|
22
|
+
throw new Error('No localization context found');
|
|
23
|
+
}
|
|
24
|
+
const commandkit = context.commandkit;
|
|
25
|
+
const i18n = (0, i18n_1.useI18n)(commandkit);
|
|
26
|
+
const detectedLocale = locale || commandkit.appConfig.defaultLocale;
|
|
27
|
+
return {
|
|
28
|
+
t: i18n.getFixedT(detectedLocale, `${context.event}.event`),
|
|
29
|
+
locale: detectedLocale,
|
|
30
|
+
i18n,
|
|
31
|
+
isEventWorker: true,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
11
34
|
const context = env.context;
|
|
12
35
|
if (!context) {
|
|
13
36
|
throw new Error('No localization context found');
|
|
14
37
|
}
|
|
15
38
|
return context.locale(locale);
|
|
16
39
|
}
|
|
17
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Fetches the translation function for the given locale and namespace.
|
|
42
|
+
* @param lng The locale to use.
|
|
43
|
+
* @param ns The namespace to use.
|
|
44
|
+
* @param keyPrefix The key prefix to use.
|
|
45
|
+
* @returns The translation function.
|
|
46
|
+
* @example
|
|
47
|
+
* const t = fetchT('en-US', 'common');
|
|
48
|
+
* const translated = t('hello'); // Translates 'hello' in the 'en-US' locale
|
|
49
|
+
*/
|
|
50
|
+
function fetchT(lng, ns, keyPrefix) {
|
|
51
|
+
return (0, i18n_1.useI18n)().getFixedT(lng, ns, keyPrefix);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9va3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaG9va3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFlQSx3QkFrQ0M7QUFZRCx3QkFNQztBQWxFRCxpQ0FBa0U7QUFDbEUsMkNBSW9CO0FBR3BCOzs7OztHQUtHO0FBQ0gsU0FBZ0IsTUFBTSxDQUFDLE1BQWU7SUFDcEMsSUFBSSxHQUFzQyxDQUFDO0lBRTNDLElBQUksQ0FBQztRQUNILEdBQUcsR0FBRyxJQUFBLDJCQUFjLEdBQUUsQ0FBQztJQUN6QixDQUFDO0lBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQztJQUVWLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNULE1BQU0sT0FBTyxHQUFHLCtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTlDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUV0QyxNQUFNLElBQUksR0FBRyxJQUFBLGNBQU8sRUFBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxNQUFNLGNBQWMsR0FBVyxNQUFNLElBQUksVUFBVSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7UUFFNUUsT0FBTztZQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQztZQUMzRCxNQUFNLEVBQUUsY0FBYztZQUN0QixJQUFJO1lBQ0osYUFBYSxFQUFFLElBQUk7U0FDcEIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO0lBRTVCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixNQUFNLENBQ3BCLEdBQXNCLEVBQ3RCLEVBQWtCLEVBQ2xCLFNBQWtCO0lBRWxCLE9BQU8sSUFBQSxjQUFPLEdBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNqRCxDQUFDIn0=
|
package/dist/i18n.d.ts
CHANGED
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
import type { NewableModule, Module, Newable, i18n, InitOptions } from 'i18next';
|
|
2
|
-
import { CommandKitPluginRuntime, RuntimePlugin, CommandKitEnvironment, CommandSource, PreparedAppCommandExecution, CommandBuilderLike, CommandKitHMREvent } from 'commandkit';
|
|
2
|
+
import CommandKit, { CommandKitPluginRuntime, RuntimePlugin, CommandKitEnvironment, CommandSource, PreparedAppCommandExecution, CommandBuilderLike, CommandKitHMREvent } from 'commandkit';
|
|
3
3
|
import { Locale } from 'discord.js';
|
|
4
|
+
/**
|
|
5
|
+
* @private
|
|
6
|
+
*/
|
|
4
7
|
export type Awaitable<T> = Promise<T> | T;
|
|
8
|
+
/**
|
|
9
|
+
* Represents a localization module that can be used with the i18next plugin.
|
|
10
|
+
*/
|
|
5
11
|
export type LocalizationModule = NewableModule<Module> | Module | Newable<Module>;
|
|
12
|
+
/**
|
|
13
|
+
* Represents a dynamic localization module that can be used with the i18next plugin.
|
|
14
|
+
*/
|
|
6
15
|
export type DynamicLocalizationModule = () => Awaitable<LocalizationModule>;
|
|
16
|
+
/**
|
|
17
|
+
* Options for the localization plugin.
|
|
18
|
+
* This interface defines the options that can be passed to the localization plugin.
|
|
19
|
+
* It includes the i18next plugins to use and the i18next initialization options.
|
|
20
|
+
*/
|
|
7
21
|
export interface LocalizationPluginOptions {
|
|
8
22
|
/**
|
|
9
23
|
* The i18next plugins to use. The plugins are loaded in the order they are
|
|
@@ -31,8 +45,15 @@ export interface CommandLocalizationContext {
|
|
|
31
45
|
* The locale to use for the command.
|
|
32
46
|
*/
|
|
33
47
|
locale: Locale;
|
|
48
|
+
/**
|
|
49
|
+
* Whether the localization context is from event worker context.
|
|
50
|
+
*/
|
|
51
|
+
isEventWorker?: boolean;
|
|
34
52
|
}
|
|
35
53
|
declare module 'commandkit' {
|
|
54
|
+
/**
|
|
55
|
+
* Represents the localization context for a command.
|
|
56
|
+
*/
|
|
36
57
|
interface LocalizationContext extends CommandLocalizationContext {
|
|
37
58
|
}
|
|
38
59
|
interface Context {
|
|
@@ -43,12 +64,29 @@ declare module 'commandkit' {
|
|
|
43
64
|
locale: (locale?: Locale) => LocalizationContext;
|
|
44
65
|
}
|
|
45
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Retrieves the i18n instance from the commandkit store.
|
|
69
|
+
* @param commandkit The commandkit instance.
|
|
70
|
+
* @returns The i18n instance.
|
|
71
|
+
* @throws Error if the i18n instance is not found in the store.
|
|
72
|
+
* @example
|
|
73
|
+
* ```ts
|
|
74
|
+
* import { useI18n } from '@commandkit/i18n';
|
|
75
|
+
* import { commandkit } from 'commandkit';
|
|
76
|
+
*
|
|
77
|
+
* const i18n = useI18n(commandkit);
|
|
78
|
+
*
|
|
79
|
+
* // Use the i18n instance
|
|
80
|
+
* i18n.t('key');
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export declare function useI18n(commandkit?: CommandKit): i18n;
|
|
46
84
|
export declare class I18nPlugin extends RuntimePlugin<LocalizationPluginOptions> {
|
|
47
85
|
readonly name = "I18nPlugin";
|
|
48
86
|
private i18n;
|
|
49
87
|
private metadata;
|
|
50
88
|
activate(ctx: CommandKitPluginRuntime): Promise<void>;
|
|
51
|
-
|
|
89
|
+
static getLoadPath(cwd?: string, lng?: string, ns?: string): string;
|
|
52
90
|
private scanLocaleDirectory;
|
|
53
91
|
performHMR(ctx: CommandKitPluginRuntime, event: CommandKitHMREvent): Promise<void>;
|
|
54
92
|
private loadMetadata;
|
package/dist/i18n.js
CHANGED
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.I18nPlugin = void 0;
|
|
7
|
+
exports.useI18n = useI18n;
|
|
7
8
|
const i18next_1 = __importDefault(require("i18next"));
|
|
8
9
|
const commandkit_1 = require("commandkit");
|
|
9
10
|
const i18next_fs_backend_1 = __importDefault(require("i18next-fs-backend"));
|
|
@@ -25,6 +26,30 @@ commandkit_1.Context.prototype.locale = function (locale) {
|
|
|
25
26
|
i18n,
|
|
26
27
|
};
|
|
27
28
|
};
|
|
29
|
+
/**
|
|
30
|
+
* Retrieves the i18n instance from the commandkit store.
|
|
31
|
+
* @param commandkit The commandkit instance.
|
|
32
|
+
* @returns The i18n instance.
|
|
33
|
+
* @throws Error if the i18n instance is not found in the store.
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* import { useI18n } from '@commandkit/i18n';
|
|
37
|
+
* import { commandkit } from 'commandkit';
|
|
38
|
+
*
|
|
39
|
+
* const i18n = useI18n(commandkit);
|
|
40
|
+
*
|
|
41
|
+
* // Use the i18n instance
|
|
42
|
+
* i18n.t('key');
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
function useI18n(commandkit) {
|
|
46
|
+
commandkit ?? (commandkit = (0, commandkit_1.getCommandKit)(true));
|
|
47
|
+
const i18n = commandkit.store.get('i18n:plugin:instance');
|
|
48
|
+
if (!i18n) {
|
|
49
|
+
throw new Error('I18n not found, is the I18nPlugin registered?');
|
|
50
|
+
}
|
|
51
|
+
return i18n;
|
|
52
|
+
}
|
|
28
53
|
class I18nPlugin extends commandkit_1.RuntimePlugin {
|
|
29
54
|
constructor() {
|
|
30
55
|
super(...arguments);
|
|
@@ -33,6 +58,7 @@ class I18nPlugin extends commandkit_1.RuntimePlugin {
|
|
|
33
58
|
}
|
|
34
59
|
async activate(ctx) {
|
|
35
60
|
this.i18n = i18next_1.default;
|
|
61
|
+
ctx.commandkit.store.set('i18n:plugin:instance', this.i18n);
|
|
36
62
|
this.i18n.use(i18next_fs_backend_1.default);
|
|
37
63
|
if (this.options.plugins?.length) {
|
|
38
64
|
for (const plugin of this.options.plugins) {
|
|
@@ -67,16 +93,17 @@ class I18nPlugin extends commandkit_1.RuntimePlugin {
|
|
|
67
93
|
commandkit_1.Logger.warn('I18nPlugin: No languages loaded. Using default language only.');
|
|
68
94
|
}
|
|
69
95
|
// Set the default locale for command execution
|
|
70
|
-
ctx.commandkit.
|
|
96
|
+
ctx.commandkit.appConfig.defaultLocale = (this.i18n.language ||
|
|
71
97
|
'en-US');
|
|
72
98
|
commandkit_1.Logger.info('I18nPlugin has been activated');
|
|
73
99
|
}
|
|
74
|
-
getLoadPath() {
|
|
75
|
-
return (0, path_1.join)(
|
|
100
|
+
static getLoadPath(cwd = (0, commandkit_1.getCurrentDirectory)(), lng = '{{lng}}', ns = '{{ns}}') {
|
|
101
|
+
return (0, path_1.join)(cwd, `/app/locales/${lng}/${ns}.json`);
|
|
76
102
|
}
|
|
77
103
|
async scanLocaleDirectory() {
|
|
78
104
|
const endPattern = /{{lng}}(\/|\\){{ns}}.json$/;
|
|
79
|
-
const
|
|
105
|
+
const eventFilePattern = /\.event\.json$/;
|
|
106
|
+
const localesPath = I18nPlugin.getLoadPath();
|
|
80
107
|
const scanDirTarget = localesPath.replace(endPattern, '');
|
|
81
108
|
if (!(0, fs_1.existsSync)(scanDirTarget)) {
|
|
82
109
|
commandkit_1.Logger.warn(`I18nPlugin: No locales directory found at ${scanDirTarget}. Skipping scan.`);
|
|
@@ -101,10 +128,12 @@ class I18nPlugin extends commandkit_1.RuntimePlugin {
|
|
|
101
128
|
const ext = (0, path_1.extname)(file.name);
|
|
102
129
|
if (!/\.json$/.test(ext))
|
|
103
130
|
continue;
|
|
131
|
+
const isEvent = eventFilePattern.test(file.name);
|
|
104
132
|
const name = (0, path_1.basename)(file.name, ext);
|
|
105
133
|
namespaces.add(name);
|
|
106
134
|
const locale = (0, path_1.basename)(file.parentPath);
|
|
107
|
-
|
|
135
|
+
if (!isEvent)
|
|
136
|
+
await this.loadMetadata((0, path_1.join)(file.parentPath, file.name), locale, name);
|
|
108
137
|
}
|
|
109
138
|
}
|
|
110
139
|
}
|
|
@@ -112,10 +141,13 @@ class I18nPlugin extends commandkit_1.RuntimePlugin {
|
|
|
112
141
|
const ext = (0, path_1.extname)(file.name);
|
|
113
142
|
if (!/\.json$/.test(ext))
|
|
114
143
|
continue;
|
|
144
|
+
const isEvent = eventFilePattern.test(file.name);
|
|
115
145
|
const name = (0, path_1.basename)(file.name, ext);
|
|
116
146
|
namespaces.add(name);
|
|
117
147
|
const locale = (0, path_1.basename)(file.parentPath);
|
|
118
|
-
|
|
148
|
+
if (!isEvent) {
|
|
149
|
+
await this.loadMetadata((0, path_1.join)(file.parentPath, file.name), locale, name);
|
|
150
|
+
}
|
|
119
151
|
}
|
|
120
152
|
}
|
|
121
153
|
return {
|
|
@@ -125,7 +157,7 @@ class I18nPlugin extends commandkit_1.RuntimePlugin {
|
|
|
125
157
|
}
|
|
126
158
|
async performHMR(ctx, event) {
|
|
127
159
|
const targetLocation = event.path;
|
|
128
|
-
const localeDir = (0, path_1.join)(
|
|
160
|
+
const localeDir = (0, path_1.join)(commandkit_1.COMMANDKIT_CWD, '/src/app/locales');
|
|
129
161
|
if (!targetLocation.startsWith(localeDir))
|
|
130
162
|
return;
|
|
131
163
|
event.accept();
|
|
@@ -150,7 +182,7 @@ class I18nPlugin extends commandkit_1.RuntimePlugin {
|
|
|
150
182
|
catch { }
|
|
151
183
|
}
|
|
152
184
|
getBackendOptions() {
|
|
153
|
-
const loadPath =
|
|
185
|
+
const loadPath = I18nPlugin.getLoadPath();
|
|
154
186
|
return {
|
|
155
187
|
loadPath: function (lng, namespace) {
|
|
156
188
|
const path = loadPath
|
|
@@ -182,4 +214,4 @@ class I18nPlugin extends commandkit_1.RuntimePlugin {
|
|
|
182
214
|
}
|
|
183
215
|
}
|
|
184
216
|
exports.I18nPlugin = I18nPlugin;
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pMThuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQXlJQSwwQkFVQztBQW5KRCxzREFBOEI7QUFROUIsMkNBY29CO0FBQ3BCLDRFQUEyQztBQUMzQywrQkFBK0M7QUFHL0MsMkJBQWdDO0FBRWhDLDJDQUFvRTtBQUNwRSxtQ0FBNEM7QUFDNUMsMENBQWdEO0FBMEVoRCxvQkFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsVUFBVSxNQUFlO0lBQ3hELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxJQUFJLElBQUEsMkJBQWMsR0FBRSxDQUFDO0lBQ3hELE1BQU0sY0FBYyxHQUFXLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDMUQsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQVMsQ0FBQztJQUUvRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELE9BQU87UUFDTCxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDOUQsTUFBTSxFQUFFLGNBQWM7UUFDdEIsSUFBSTtLQUNnQyxDQUFDO0FBQ3pDLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxVQUF1QjtJQUM3QyxVQUFVLEtBQVYsVUFBVSxHQUFLLElBQUEsMEJBQWEsRUFBQyxJQUFJLENBQUMsRUFBQztJQUVuQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBUyxDQUFDO0lBRWxFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNW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
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,12 @@
|
|
|
1
|
+
import { I18nCliTemplatePlugin } from './cli';
|
|
1
2
|
import { I18nPlugin, LocalizationPluginOptions } from './i18n';
|
|
2
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Returns the i18n plugin and CLI template plugin.
|
|
5
|
+
* This function initializes the i18n plugin with the provided options and returns both the i18n plugin and the CLI template plugin.
|
|
6
|
+
* @param options The options for the i18n plugin. If not provided, default options will be used.
|
|
7
|
+
* @returns A tuple containing the i18n plugin and the CLI template plugin.
|
|
8
|
+
*/
|
|
9
|
+
export declare function i18n(options?: LocalizationPluginOptions): [I18nPlugin, I18nCliTemplatePlugin];
|
|
10
|
+
export { I18nCliTemplatePlugin };
|
|
11
|
+
export { locale, fetchT } from './hooks';
|
|
12
|
+
export { useI18n, I18nPlugin, type CommandLocalizationContext } from './i18n';
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.I18nPlugin = exports.useI18n = exports.fetchT = exports.locale = exports.I18nCliTemplatePlugin = void 0;
|
|
3
4
|
exports.i18n = i18n;
|
|
5
|
+
const cli_1 = require("./cli");
|
|
6
|
+
Object.defineProperty(exports, "I18nCliTemplatePlugin", { enumerable: true, get: function () { return cli_1.I18nCliTemplatePlugin; } });
|
|
4
7
|
const i18n_1 = require("./i18n");
|
|
8
|
+
/**
|
|
9
|
+
* Returns the i18n plugin and CLI template plugin.
|
|
10
|
+
* This function initializes the i18n plugin with the provided options and returns both the i18n plugin and the CLI template plugin.
|
|
11
|
+
* @param options The options for the i18n plugin. If not provided, default options will be used.
|
|
12
|
+
* @returns A tuple containing the i18n plugin and the CLI template plugin.
|
|
13
|
+
*/
|
|
5
14
|
function i18n(options) {
|
|
6
15
|
const opt = {
|
|
7
16
|
...options,
|
|
@@ -15,6 +24,12 @@ function i18n(options) {
|
|
|
15
24
|
},
|
|
16
25
|
};
|
|
17
26
|
const localization = new i18n_1.I18nPlugin(opt);
|
|
18
|
-
return localization;
|
|
27
|
+
return [localization, new cli_1.I18nCliTemplatePlugin({})];
|
|
19
28
|
}
|
|
20
|
-
|
|
29
|
+
var hooks_1 = require("./hooks");
|
|
30
|
+
Object.defineProperty(exports, "locale", { enumerable: true, get: function () { return hooks_1.locale; } });
|
|
31
|
+
Object.defineProperty(exports, "fetchT", { enumerable: true, get: function () { return hooks_1.fetchT; } });
|
|
32
|
+
var i18n_2 = require("./i18n");
|
|
33
|
+
Object.defineProperty(exports, "useI18n", { enumerable: true, get: function () { return i18n_2.useI18n; } });
|
|
34
|
+
Object.defineProperty(exports, "I18nPlugin", { enumerable: true, get: function () { return i18n_2.I18nPlugin; } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBU0Esb0JBa0JDO0FBM0JELCtCQUE4QztBQTZCckMsc0dBN0JBLDJCQUFxQixPQTZCQTtBQTVCOUIsaUNBQStEO0FBRS9EOzs7OztHQUtHO0FBQ0gsU0FBZ0IsSUFBSSxDQUNsQixPQUFtQztJQUVuQyxNQUFNLEdBQUcsR0FBRztRQUNWLEdBQUcsT0FBTztRQUNWLFdBQVcsRUFBRTtZQUNYLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFdBQVcsRUFBRSxPQUFPO1lBQ3BCLElBQUksRUFBRSxhQUFhO1lBQ25CLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLHVCQUF1QixFQUFFLElBQUk7WUFDN0IsR0FBRyxPQUFPLEVBQUUsV0FBVztTQUN4QjtLQUMyQixDQUFDO0lBRS9CLE1BQU0sWUFBWSxHQUFHLElBQUksaUJBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV6QyxPQUFPLENBQUMsWUFBWSxFQUFFLElBQUksMkJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBR0QsaUNBQXlDO0FBQWhDLCtGQUFBLE1BQU0sT0FBQTtBQUFFLCtGQUFBLE1BQU0sT0FBQTtBQUN2QiwrQkFBOEU7QUFBckUsK0ZBQUEsT0FBTyxPQUFBO0FBQUUsa0dBQUEsVUFBVSxPQUFBIn0=
|
package/dist/types.d.ts
CHANGED
|
@@ -1,10 +1,31 @@
|
|
|
1
1
|
import { COMMAND_METADATA_KEY } from './constants';
|
|
2
|
+
/**
|
|
3
|
+
* Represents the metadata for command translations.
|
|
4
|
+
*/
|
|
2
5
|
export interface CommandTranslationMetadata {
|
|
6
|
+
/**
|
|
7
|
+
* The name of the command.
|
|
8
|
+
*/
|
|
3
9
|
name?: string;
|
|
10
|
+
/**
|
|
11
|
+
* The description of the command.
|
|
12
|
+
*/
|
|
4
13
|
description?: string;
|
|
14
|
+
/**
|
|
15
|
+
* The options for the command.
|
|
16
|
+
*/
|
|
5
17
|
options?: (Record<'name' | 'description', string> | Record<string, Record<'name' | 'description', string>>)[];
|
|
6
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Represents a command translation, including its metadata and translations.
|
|
21
|
+
*/
|
|
7
22
|
export interface CommandTranslation {
|
|
23
|
+
/**
|
|
24
|
+
* The metadata for the command translation.
|
|
25
|
+
*/
|
|
8
26
|
[COMMAND_METADATA_KEY]: CommandTranslationMetadata;
|
|
27
|
+
/**
|
|
28
|
+
* The translations for the command, keyed by locale.
|
|
29
|
+
*/
|
|
9
30
|
translations: Record<string, any>;
|
|
10
31
|
}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
import type { CommandBuilderLike } from 'commandkit';
|
|
2
2
|
import type { CommandTranslationMetadata } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Applies translations to a command builder-like object.
|
|
5
|
+
* @param command The command builder-like object to apply translations to.
|
|
6
|
+
* @param locale The locale to apply the translations for.
|
|
7
|
+
* @param translation The translation metadata containing the translations.
|
|
8
|
+
* @returns The command builder-like object with applied translations.
|
|
9
|
+
* @private
|
|
10
|
+
*/
|
|
3
11
|
export declare function applyTranslations(command: CommandBuilderLike, locale: string, translation: CommandTranslationMetadata): CommandBuilderLike;
|
package/dist/utils.js
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.applyTranslations = applyTranslations;
|
|
4
|
+
/**
|
|
5
|
+
* Applies translations to a command builder-like object.
|
|
6
|
+
* @param command The command builder-like object to apply translations to.
|
|
7
|
+
* @param locale The locale to apply the translations for.
|
|
8
|
+
* @param translation The translation metadata containing the translations.
|
|
9
|
+
* @returns The command builder-like object with applied translations.
|
|
10
|
+
* @private
|
|
11
|
+
*/
|
|
4
12
|
function applyTranslations(command, locale, translation) {
|
|
5
13
|
const json = 'toJSON' in command ? command.toJSON() : command;
|
|
6
14
|
const { name, description, options } = translation;
|
|
@@ -55,4 +63,4 @@ function applyTranslations(command, locale, translation) {
|
|
|
55
63
|
}
|
|
56
64
|
return json;
|
|
57
65
|
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFXQSw4Q0FtRUM7QUEzRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGlCQUFpQixDQUMvQixPQUEyQixFQUMzQixNQUFjLEVBQ2QsV0FBdUM7SUFFdkMsTUFBTSxJQUFJLEdBQUcsUUFBUSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDOUQsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLEdBQUcsV0FBVyxDQUFDO0lBRW5ELElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxJQUFJLENBQUMsSUFBSSxLQUFULElBQUksQ0FBQyxJQUFJLEdBQUssSUFBSSxFQUFDO1FBQ25CLElBQUksQ0FBQyxrQkFBa0IsS0FBdkIsSUFBSSxDQUFDLGtCQUFrQixHQUFLLEVBQUUsRUFBQztRQUMvQixJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxXQUFXLEtBQWhCLElBQUksQ0FBQyxXQUFXLEdBQUssV0FBVyxFQUFDO1FBQ2pDLElBQUksQ0FBQyx5QkFBeUIsS0FBOUIsSUFBSSxDQUFDLHlCQUF5QixHQUFLLEVBQUUsRUFBQztRQUN0QyxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxDQUFDLEdBQUcsV0FBVyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ1osSUFBSSxDQUFDLE9BQU8sS0FBWixJQUFJLENBQUMsT0FBTyxHQUFLLEVBQUUsRUFBQztRQUNwQixNQUFNLGNBQWMsR0FBRyxDQUNyQixNQUEyQixFQUMzQixpQkFBc0MsRUFDdEMsRUFBRTtZQUNGLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEdBQUcsaUJBQWlCLENBQUM7WUFDaEQsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxNQUFNLENBQUMsSUFBSSxLQUFYLE1BQU0sQ0FBQyxJQUFJLEdBQUssSUFBSSxFQUFDO2dCQUNyQixNQUFNLENBQUMsa0JBQWtCLEtBQXpCLE1BQU0sQ0FBQyxrQkFBa0IsR0FBSyxFQUFFLEVBQUM7Z0JBQ2pDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDM0MsQ0FBQztZQUVELElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLE1BQU0sQ0FBQyxXQUFXLEtBQWxCLE1BQU0sQ0FBQyxXQUFXLEdBQUssV0FBVyxFQUFDO2dCQUNuQyxNQUFNLENBQUMseUJBQXlCLEtBQWhDLE1BQU0sQ0FBQyx5QkFBeUIsR0FBSyxFQUFFLEVBQUM7Z0JBQ3hDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxXQUFXLENBQUM7WUFDekQsQ0FBQztZQUVELElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNuQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztvQkFDL0MsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDcEMsTUFBTSxvQkFBb0IsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDNUQsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO3dCQUN6QixjQUFjLENBQUMsU0FBUyxFQUFFLG9CQUFvQixDQUFDLENBQUM7b0JBQ2xELENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUM7UUFFRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM3QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXJDLElBQUksaUJBQWlCLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztvQkFDckMsS0FBSyxNQUFNLG9CQUFvQixJQUFJLGlCQUFpQixFQUFFLENBQUM7d0JBQ3JELGNBQWMsQ0FBQyxTQUFTLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztvQkFDbEQsQ0FBQztnQkFDSCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sY0FBYyxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO2dCQUMvQyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commandkit/i18n",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "1.2.0-rc.1",
|
|
4
4
|
"description": "CommandKit plugin that adds command localizations backed by i18next",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -16,24 +16,27 @@
|
|
|
16
16
|
"redis",
|
|
17
17
|
"cache"
|
|
18
18
|
],
|
|
19
|
-
"
|
|
19
|
+
"contributors": [
|
|
20
|
+
"Twilight <hello@twlite.dev>",
|
|
21
|
+
"Avraj <avraj@underctrl.io>"
|
|
22
|
+
],
|
|
20
23
|
"license": "MIT",
|
|
21
24
|
"bugs": {
|
|
22
25
|
"url": "https://github.com/underctrl-io/commandkit/issues"
|
|
23
26
|
},
|
|
24
27
|
"homepage": "https://github.com/underctrl-io/commandkit#readme",
|
|
25
28
|
"dependencies": {
|
|
26
|
-
"i18next": "^
|
|
29
|
+
"i18next": "^25.0.0",
|
|
27
30
|
"i18next-fs-backend": "^2.6.0"
|
|
28
31
|
},
|
|
29
32
|
"devDependencies": {
|
|
30
|
-
"discord.js": "14",
|
|
31
|
-
"typescript": "^5.
|
|
32
|
-
"commandkit": "0.1
|
|
33
|
-
"tsconfig": "0.0.0"
|
|
33
|
+
"discord.js": "^14.21.0",
|
|
34
|
+
"typescript": "^5.8.3",
|
|
35
|
+
"commandkit": "1.2.0-rc.1",
|
|
36
|
+
"tsconfig": "0.0.0-rc.1"
|
|
34
37
|
},
|
|
35
38
|
"scripts": {
|
|
36
|
-
"
|
|
39
|
+
"check-types": "tsc --noEmit",
|
|
37
40
|
"build": "tsc"
|
|
38
41
|
}
|
|
39
42
|
}
|