@sapphire/plugin-i18next 2.0.0-next.9af3e85.0 → 2.0.0-next.9f83c09.0
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 +104 -3
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/InternationalizationHandler.d.ts.map +1 -1
- package/dist/lib/InternationalizationHandler.js +17 -10
- package/dist/lib/InternationalizationHandler.js.map +1 -1
- package/dist/lib/functions.d.ts +3 -4
- package/dist/lib/functions.d.ts.map +1 -1
- package/dist/lib/functions.js +1 -1
- package/dist/lib/functions.js.map +1 -1
- package/dist/lib/types.d.ts +13 -7
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/register.d.ts.map +1 -1
- package/dist/register.js +0 -2
- package/dist/register.js.map +1 -1
- package/package.json +7 -6
package/README.md
CHANGED
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
[](https://codecov.io/gh/sapphiredev/plugins)
|
|
11
11
|
[](https://bundlephobia.com/result?p=@sapphire/plugin-in17n)
|
|
12
12
|
[](https://www.npmjs.com/package/@sapphire/plugin-in17n)
|
|
13
|
-
[](https://depfu.com/github/sapphiredev/plugins?project_id=15201)
|
|
14
13
|
|
|
15
14
|
</div>
|
|
16
15
|
|
|
@@ -32,23 +31,124 @@ An implementation of i18next's [filesystem backend] for Sapphire. It allows you
|
|
|
32
31
|
`@sapphire/plugin-i18next` depends on the following packages. Be sure to install these along with this package!
|
|
33
32
|
|
|
34
33
|
- [`@sapphire/framework`](https://www.npmjs.com/package/@sapphire/framework)
|
|
35
|
-
- [`@sapphire/pieces v1.x`](https://www.npmjs.com/package/@sapphire/pieces/v/1.2.5)
|
|
36
34
|
- [`discord.js`](https://www.npmjs.com/package/discord.js)
|
|
37
35
|
|
|
38
36
|
You can use the following command to install this package, or replace `npm install` with your package manager of choice.
|
|
39
37
|
|
|
40
38
|
```sh
|
|
41
|
-
npm install @sapphire/plugin-i18next @sapphire/framework
|
|
39
|
+
npm install @sapphire/plugin-i18next @sapphire/framework discord.js
|
|
42
40
|
```
|
|
43
41
|
|
|
44
42
|
---
|
|
45
43
|
|
|
46
44
|
## Usage
|
|
47
45
|
|
|
46
|
+
This registers the methods and options necessary for message translations in the Sapphire client.
|
|
47
|
+
|
|
48
48
|
```typescript
|
|
49
|
+
// Main bot file
|
|
50
|
+
// Be sure to register the plugin before instantiating the client.
|
|
49
51
|
import '@sapphire/plugin-i18next/register';
|
|
50
52
|
```
|
|
51
53
|
|
|
54
|
+
The basic structure of a translation file is as follows:
|
|
55
|
+
|
|
56
|
+
```jsonc
|
|
57
|
+
// languages/en-US/commands/ping.json
|
|
58
|
+
{
|
|
59
|
+
"success": "Pong!",
|
|
60
|
+
"success_with_args": "Pong! Took me {{latency}}ms to reply"
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
The `resolveKey` function can be used anywhere to get translated text by its key. In this example, it is used in a method to send a message.
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
import { resolveKey } from '@sapphire/plugin-i18next';
|
|
68
|
+
import { Command, CommandOptions, PieceContext } from '@sapphire/framework';
|
|
69
|
+
import type { Message } from 'discord.js';
|
|
70
|
+
|
|
71
|
+
export class PingCommand extends Command {
|
|
72
|
+
public constructor(context: PieceContext, options: CommandOptions) {
|
|
73
|
+
super(context, {
|
|
74
|
+
...options,
|
|
75
|
+
description: 'ping pong'
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
public async run(message: Message) {
|
|
80
|
+
await message.channel.send(await resolveKey('commands/ping:success'));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
`sendLocalized` will send translated text resolved from a key to a specified channel.
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
import { sendLocalized } from '@sapphire/plugin-i18next';
|
|
89
|
+
import { Command, CommandOptions, PieceContext } from '@sapphire/framework';
|
|
90
|
+
|
|
91
|
+
import type { Message } from 'discord.js';
|
|
92
|
+
|
|
93
|
+
export class PingCommand extends Command {
|
|
94
|
+
public constructor(context: PieceContext, options: CommandOptions) {
|
|
95
|
+
super(context, {
|
|
96
|
+
...options,
|
|
97
|
+
description: 'ping pong'
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
public async run(message: Message) {
|
|
102
|
+
await sendLocalized(message, 'commands/ping:success');
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
`editLocalized` edits a message, replacing its content with translated text resolved from its key.
|
|
108
|
+
|
|
109
|
+
```typescript
|
|
110
|
+
import { editLocalized } from '@sapphire/plugin-i18next';
|
|
111
|
+
import { Command, CommandOptions, PieceContext } from '@sapphire/framework';
|
|
112
|
+
|
|
113
|
+
import type { Message } from 'discord.js';
|
|
114
|
+
|
|
115
|
+
export class PingCommand extends Command {
|
|
116
|
+
public constructor(context: PieceContext, options: CommandOptions) {
|
|
117
|
+
super(context, {
|
|
118
|
+
...options,
|
|
119
|
+
description: 'ping pong'
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
public async run(message: Message) {
|
|
124
|
+
await editLocalized(message, 'commands/ping:success_args', { latency: ws.ping });
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
`fetchLanguage` returns the guild-specific language that the client is using.
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
import { fetchLanguage } from '@sapphire/plugin-i18next';
|
|
133
|
+
import { Command, CommandOptions, PieceContext } from '@sapphire/framework';
|
|
134
|
+
|
|
135
|
+
import type { Message } from 'discord.js';
|
|
136
|
+
|
|
137
|
+
export class PingCommand extends Command {
|
|
138
|
+
public constructor(context: PieceContext, options: CommandOptions) {
|
|
139
|
+
super(context, {
|
|
140
|
+
...options,
|
|
141
|
+
description: 'ping pong'
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
public async run(message: Message) {
|
|
146
|
+
return message.channel.send(await fetchLanguage(message));
|
|
147
|
+
// ===> en-US
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
52
152
|
## Sapphire i18next Documentation
|
|
53
153
|
|
|
54
154
|
For the full @sapphire/plugin-i18next documentation please refer to the TypeDoc generated [documentation](https://sapphiredev.github.io/plugins/modules/_sapphire_plugin_i18next.html).
|
|
@@ -87,6 +187,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
|
|
87
187
|
<td align="center"><a href="https://github.com/Nytelife26"><img src="https://avatars1.githubusercontent.com/u/22531310?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tyler J Russell</b></sub></a><br /><a href="https://github.com/sapphiredev/plugins/commits?author=Nytelife26" title="Code">💻</a></td>
|
|
88
188
|
<td align="center"><a href="https://github.com/Stitch07"><img src="https://avatars.githubusercontent.com/u/29275227?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Stitch07</b></sub></a><br /><a href="https://github.com/sapphiredev/plugins/commits?author=Stitch07" title="Code">💻</a> <a href="https://github.com/sapphiredev/plugins/issues?q=author%3AStitch07" title="Bug reports">🐛</a></td>
|
|
89
189
|
<td align="center"><a href="https://github.com/PlatinBae"><img src="https://avatars.githubusercontent.com/u/50950966?v=4?s=100" width="100px;" alt=""/><br /><sub><b>PlatinBae</b></sub></a><br /><a href="https://github.com/sapphiredev/plugins/commits?author=PlatinBae" title="Documentation">📖</a></td>
|
|
190
|
+
<td align="center"><a href="https://kaname.netlify.app"><img src="https://avatars.githubusercontent.com/u/56084970?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kaname</b></sub></a><br /><a href="https://github.com/sapphiredev/plugins/commits?author=kaname-png" title="Code">💻</a> <a href="https://github.com/sapphiredev/plugins/commits?author=kaname-png" title="Documentation">📖</a></td>
|
|
90
191
|
</tr>
|
|
91
192
|
</table>
|
|
92
193
|
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./lib/functions"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./lib/InternationalizationHandler"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./lib/types"), exports);
|
|
4
|
+
(0, tslib_1.__exportStar)(require("./lib/functions"), exports);
|
|
5
|
+
(0, tslib_1.__exportStar)(require("./lib/InternationalizationHandler"), exports);
|
|
6
|
+
(0, tslib_1.__exportStar)(require("./lib/types"), exports);
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,+DAAgC;AAChC,iFAAkD;AAClD,2DAA4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternationalizationHandler.d.ts","sourceRoot":"","sources":["../../src/lib/InternationalizationHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAc,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAClG,OAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAExF;;;GAGG;AACH,qBAAa,2BAA2B;IACvC;;;OAGG;IACI,eAAe,UAAS;IAE/B;;;OAGG;IACI,UAAU,cAAqB;IAEtC;;;OAGG;IACH,SAAgB,SAAS,yBAAgC;IAEzD;;;OAGG;IACH,SAAgB,OAAO,EAAE,2BAA2B,CAAC;IAErD;;;;OAIG;IACH,SAAgB,kBAAkB,EAAE,MAAM,CAAC;IAE3C;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC,uBAAuB,CAAC;IAE5E;;;;OAIG;gBACgB,OAAO,CAAC,EAAE,2BAA2B;
|
|
1
|
+
{"version":3,"file":"InternationalizationHandler.d.ts","sourceRoot":"","sources":["../../src/lib/InternationalizationHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAc,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAClG,OAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAExF;;;GAGG;AACH,qBAAa,2BAA2B;IACvC;;;OAGG;IACI,eAAe,UAAS;IAE/B;;;OAGG;IACI,UAAU,cAAqB;IAEtC;;;OAGG;IACH,SAAgB,SAAS,yBAAgC;IAEzD;;;OAGG;IACH,SAAgB,OAAO,EAAE,2BAA2B,CAAC;IAErD;;;;OAIG;IACH,SAAgB,kBAAkB,EAAE,MAAM,CAAC;IAE3C;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC,uBAAuB,CAAC;IAE5E;;;;OAIG;gBACgB,OAAO,CAAC,EAAE,2BAA2B;IAexD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACI,aAAa,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAc;IAEpG;;;OAGG;IACU,IAAI;IA+BjB;;;;OAIG;IACI,IAAI,CAAC,MAAM,EAAE,MAAM;IAQ1B;;;;;;;;OAQG;IACI,MAAM,CACZ,OAAO,SAAS,eAAe,GAAG,MAAM,EACxC,KAAK,SAAS,aAAa,GAAG,MAAM,EACpC,iBAAiB,SAAS,aAAa,GAAG,SAAS,EAClD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,OAAO;IAavF;;;;;;OAMG;IACU,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,EAAO,EAAE,OAAO,SAAK;;;;CAoBvF"}
|
|
@@ -5,8 +5,8 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const pieces_1 = require("@sapphire/pieces");
|
|
6
6
|
const utilities_1 = require("@sapphire/utilities");
|
|
7
7
|
const promises_1 = require("fs/promises");
|
|
8
|
-
const i18next_1 = tslib_1.__importDefault(require("i18next"));
|
|
9
|
-
const i18next_fs_backend_1 = tslib_1.__importDefault(require("i18next-fs-backend"));
|
|
8
|
+
const i18next_1 = (0, tslib_1.__importDefault)(require("i18next"));
|
|
9
|
+
const i18next_fs_backend_1 = (0, tslib_1.__importDefault)(require("i18next-fs-backend"));
|
|
10
10
|
const path_1 = require("path");
|
|
11
11
|
/**
|
|
12
12
|
* A generalized class for handling `i18next` JSON files and their discovery.
|
|
@@ -123,13 +123,16 @@ class InternationalizationHandler {
|
|
|
123
123
|
writable: true,
|
|
124
124
|
value: () => null
|
|
125
125
|
});
|
|
126
|
-
this.options = options ?? {};
|
|
127
|
-
this.languagesDirectory = this.options.defaultLanguageDirectory ?? path_1.join(pieces_1.getRootData().root, 'languages');
|
|
126
|
+
this.options = options ?? { i18next: { ignoreJSONStructure: false } };
|
|
127
|
+
this.languagesDirectory = this.options.defaultLanguageDirectory ?? (0, path_1.join)((0, pieces_1.getRootData)().root, 'languages');
|
|
128
128
|
this.backendOptions = {
|
|
129
|
-
loadPath: path_1.join(this.languagesDirectory, '{{lng}}', '{{ns}}.json'),
|
|
129
|
+
loadPath: (0, path_1.join)(this.languagesDirectory, '{{lng}}', '{{ns}}.json'),
|
|
130
130
|
addPath: this.languagesDirectory,
|
|
131
131
|
...this.options.backend
|
|
132
132
|
};
|
|
133
|
+
if ((0, utilities_1.isFunction)(this.options.fetchLanguage)) {
|
|
134
|
+
this.fetchLanguage = this.options.fetchLanguage;
|
|
135
|
+
}
|
|
133
136
|
}
|
|
134
137
|
/**
|
|
135
138
|
* Initializes the handler by loading in the namespaces, passing the data to i18next, and filling in the {@link InternationalizationHandler#languages}.
|
|
@@ -137,7 +140,9 @@ class InternationalizationHandler {
|
|
|
137
140
|
*/
|
|
138
141
|
async init() {
|
|
139
142
|
const { namespaces, languages } = await this.walkLanguageDirectory(this.languagesDirectory);
|
|
140
|
-
const userOptions = utilities_1.isFunction(this.options.i18next) ? this.options.i18next(namespaces, languages) : this.options.i18next;
|
|
143
|
+
const userOptions = (0, utilities_1.isFunction)(this.options.i18next) ? this.options.i18next(namespaces, languages) : this.options.i18next;
|
|
144
|
+
const ignoreJSONStructure = userOptions?.ignoreJSONStructure ?? false;
|
|
145
|
+
const skipOnVariables = userOptions?.interpolation?.skipOnVariables ?? false;
|
|
141
146
|
i18next_1.default.use(i18next_fs_backend_1.default);
|
|
142
147
|
await i18next_1.default.init({
|
|
143
148
|
backend: this.backendOptions,
|
|
@@ -145,13 +150,15 @@ class InternationalizationHandler {
|
|
|
145
150
|
initImmediate: false,
|
|
146
151
|
interpolation: {
|
|
147
152
|
escapeValue: false,
|
|
148
|
-
...userOptions?.interpolation
|
|
153
|
+
...userOptions?.interpolation,
|
|
154
|
+
skipOnVariables
|
|
149
155
|
},
|
|
150
156
|
load: 'all',
|
|
151
157
|
defaultNS: 'default',
|
|
152
158
|
ns: namespaces,
|
|
153
159
|
preload: languages,
|
|
154
|
-
...userOptions
|
|
160
|
+
...userOptions,
|
|
161
|
+
ignoreJSONStructure
|
|
155
162
|
});
|
|
156
163
|
this.namespaces = new Set(namespaces);
|
|
157
164
|
for (const item of languages) {
|
|
@@ -200,7 +207,7 @@ class InternationalizationHandler {
|
|
|
200
207
|
* @since 1.0.0
|
|
201
208
|
*/
|
|
202
209
|
async walkLanguageDirectory(dir, namespaces = [], current = '') {
|
|
203
|
-
const directory = await promises_1.opendir(dir);
|
|
210
|
+
const directory = await (0, promises_1.opendir)(dir);
|
|
204
211
|
const languages = [];
|
|
205
212
|
for await (const entry of directory) {
|
|
206
213
|
const fn = entry.name;
|
|
@@ -210,7 +217,7 @@ class InternationalizationHandler {
|
|
|
210
217
|
const isLanguage = fn.includes('-');
|
|
211
218
|
if (isLanguage)
|
|
212
219
|
languages.push(fn);
|
|
213
|
-
({ namespaces } = await this.walkLanguageDirectory(path_1.join(dir, fn), namespaces, isLanguage ? '' : `${fn}/`));
|
|
220
|
+
({ namespaces } = await this.walkLanguageDirectory((0, path_1.join)(dir, fn), namespaces, isLanguage ? '' : `${fn}/`));
|
|
214
221
|
}
|
|
215
222
|
else if (entry.name.endsWith('.json')) {
|
|
216
223
|
namespaces.push(`${current}${fn.substr(0, fn.length - 5)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternationalizationHandler.js","sourceRoot":"","sources":["../../src/lib/InternationalizationHandler.ts"],"names":[],"mappings":";;;;AAAA,6CAA+C;AAC/C,mDAAyE;AACzE,0CAAsC;AACtC,
|
|
1
|
+
{"version":3,"file":"InternationalizationHandler.js","sourceRoot":"","sources":["../../src/lib/InternationalizationHandler.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/functions.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ import { NonNullObject } from '@sapphire/utilities';
|
|
|
2
2
|
import { Guild, Message, MessageOptions } from 'discord.js';
|
|
3
3
|
import type { StringMap, TFunctionKeys, TFunctionResult, TOptions } from 'i18next';
|
|
4
4
|
import type { DiscordChannel } from './types';
|
|
5
|
-
declare type ChannelTarget = Message | DiscordChannel;
|
|
6
|
-
declare type Target = ChannelTarget | Guild;
|
|
5
|
+
export declare type ChannelTarget = Message | DiscordChannel;
|
|
6
|
+
export declare type Target = ChannelTarget | Guild;
|
|
7
7
|
/**
|
|
8
8
|
* Retrieves the language name for a specific target, using {@link InternationalizationHandler.fetchLanguage}, and if it
|
|
9
9
|
* returns a nullish value, then it falls back to {@link Guild.preferredLocale}, then
|
|
@@ -77,7 +77,7 @@ export declare function sendLocalized<TKeys extends TFunctionKeys = string, TInt
|
|
|
77
77
|
* @param options The options to be sent, requiring at least `keys` to be passed.
|
|
78
78
|
* @example
|
|
79
79
|
* ```typescript
|
|
80
|
-
* await
|
|
80
|
+
* await editLocalized(message, 'commands/ping:success');
|
|
81
81
|
* // ➡ "Pong!"
|
|
82
82
|
* ```
|
|
83
83
|
*/
|
|
@@ -105,5 +105,4 @@ export declare function editLocalized<TKeys extends TFunctionKeys = string>(targ
|
|
|
105
105
|
* ```
|
|
106
106
|
*/
|
|
107
107
|
export declare function editLocalized<TKeys extends TFunctionKeys = string, TInterpolationMap extends NonNullObject = StringMap>(target: Message, options: LocalizedMessageOptions<TKeys, TInterpolationMap>): Promise<Message>;
|
|
108
|
-
export {};
|
|
109
108
|
//# sourceMappingURL=functions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/lib/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAwD,MAAM,SAAS,CAAC;AAEpG,
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/lib/functions.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAwD,MAAM,SAAS,CAAC;AAEpG,oBAAY,aAAa,GAAG,OAAO,GAAG,cAAc,CAAC;AACrD,oBAAY,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC;AAE3C;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB7D;AAED;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,MAAM,EAAE,MAAM,wCAE1C;AAED;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC/B,OAAO,SAAS,eAAe,GAAG,MAAM,EACxC,KAAK,SAAS,aAAa,GAAG,MAAM,EACpC,iBAAiB,SAAS,aAAa,GAAG,SAAS,EAClD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAE/F;AAED,MAAM,WAAW,uBAAuB,CAAC,KAAK,SAAS,aAAa,GAAG,MAAM,EAAE,iBAAiB,SAAS,aAAa,GAAG,SAAS,CACjI,SAAQ,8BAA8B,CAAC,iBAAiB,CAAC;IACzD,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,8BAA8B,CAAC,iBAAiB,SAAS,aAAa,GAAG,SAAS,CAAE,SAAQ,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC;IAC3I,aAAa,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;CAC5C;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAC,KAAK,SAAS,aAAa,GAAG,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC1I;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,aAAa,CAAC,KAAK,SAAS,aAAa,GAAG,MAAM,EAAE,iBAAiB,SAAS,aAAa,GAAG,SAAS,EAC5H,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,CAAC,GACxD,OAAO,CAAC,OAAO,CAAC,CAAC;AASpB;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAC,KAAK,SAAS,aAAa,GAAG,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AACpI;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,aAAa,CAAC,KAAK,SAAS,aAAa,GAAG,MAAM,EAAE,iBAAiB,SAAS,aAAa,GAAG,SAAS,EAC5H,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,CAAC,GACxD,OAAO,CAAC,OAAO,CAAC,CAAC"}
|
package/dist/lib/functions.js
CHANGED
|
@@ -82,7 +82,7 @@ function resolveTextChannel(target) {
|
|
|
82
82
|
* @private
|
|
83
83
|
*/
|
|
84
84
|
async function resolveOverloads(target, options) {
|
|
85
|
-
if (utilities_1.isObject(options)) {
|
|
85
|
+
if ((0, utilities_1.isObject)(options)) {
|
|
86
86
|
const casted = options;
|
|
87
87
|
return { ...options, content: await resolveKey(target, casted.keys, casted.formatOptions) };
|
|
88
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/lib/functions.ts"],"names":[],"mappings":";;;AAAA,6CAA6C;AAC7C,mDAA8D;AAC9D,2CAA4D;AAO5D;;;;;;;;GAQG;AACH,SAAgB,aAAa,CAAC,MAAc;IAC3C,kBAAkB;IAClB,IAAI,MAAM,YAAY,oBAAO,EAAE;QAC9B,OAAO,eAAe,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;KAChG;IAED,gBAAgB;IAChB,IAAI,MAAM,YAAY,kBAAK,EAAE;QAC5B,OAAO,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;KACvE;IAED,oBAAoB;IACpB,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;QACzB,OAAO,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;KACvE;IAED,4BAA4B;IAC5B,OAAO,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAChF,CAAC;AAlBD,sCAkBC;AAED;;;;;GAKG;AACI,KAAK,UAAU,MAAM,CAAC,MAAc;IAC1C,OAAO,kBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AACzD,CAAC;AAFD,wBAEC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,UAAU,CAI9B,MAAc,EAAE,GAAoB,EAAE,OAAqC;IAC5E,OAAO,kBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAND,gCAMC;AAgDM,KAAK,UAAU,aAAa,CAClC,MAAqB,EACrB,OAA4E;IAE5E,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9D,CAAC;AAND,sCAMC;AAwCM,KAAK,UAAU,aAAa,CAClC,MAAe,EACf,OAA4E;IAE5E,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7D,CAAC;AALD,sCAKC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAAC,OAAoC;IAClE,MAAM,IAAI,GAAG,MAAM,kBAAS,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACzD,OAAO,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,eAAe,IAAI,kBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC;AAChG,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAqB;IAChD,IAAI,MAAM,YAAY,oBAAO;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IACrD,IAAI,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,MAAM,CAAC;IACnC,MAAM,IAAI,SAAS,CAAC,kBAAkB,MAAM,CAAC,IAAI,2BAA2B,CAAC,CAAC;AAC/E,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC9B,MAAc,EACd,OAA4E;IAE5E,IAAI,oBAAQ,
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/lib/functions.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Awaited } from '@sapphire/utilities';
|
|
1
2
|
import type { Guild, Message, StageChannel, StoreChannel, User, VoiceChannel } from 'discord.js';
|
|
2
3
|
import type { InitOptions } from 'i18next';
|
|
3
4
|
import type { i18nextFsBackend } from 'i18next-fs-backend';
|
|
@@ -46,11 +47,22 @@ export interface InternationalizationOptions {
|
|
|
46
47
|
* @since 1.0.0
|
|
47
48
|
*/
|
|
48
49
|
defaultNS?: string;
|
|
50
|
+
/**
|
|
51
|
+
* A function that is to be used to retrieve the language for the current context.
|
|
52
|
+
* Context exists of a {@link Guild `guild`}, a {@link DiscordChannel `channel`} and a {@link User `user`}.
|
|
53
|
+
*
|
|
54
|
+
* If this is not set, then the language will always be the default language.
|
|
55
|
+
*
|
|
56
|
+
* This will be inserted for {@link InternationalizationHandler.fetchLanguage}.
|
|
57
|
+
* @since 2.0.0
|
|
58
|
+
* @default () => InternationalizationOptions.defaultName
|
|
59
|
+
*/
|
|
60
|
+
fetchLanguage?: (context: InternationalizationContext) => Awaited<string | null>;
|
|
49
61
|
}
|
|
50
62
|
export declare type TextBasedDiscordChannel = Message['channel'];
|
|
51
63
|
export declare type DiscordChannel = TextBasedDiscordChannel | StoreChannel | StageChannel | VoiceChannel;
|
|
52
64
|
/**
|
|
53
|
-
* Context for {@link
|
|
65
|
+
* Context for {@link InternationalizationHandler.fetchLanguage} functions.
|
|
54
66
|
* This context enables implementation of per-guild, per-channel, and per-user localization.
|
|
55
67
|
*/
|
|
56
68
|
export interface InternationalizationContext {
|
|
@@ -60,11 +72,5 @@ export interface InternationalizationContext {
|
|
|
60
72
|
}
|
|
61
73
|
export interface InternationalizationClientOptions {
|
|
62
74
|
i18n?: InternationalizationOptions;
|
|
63
|
-
/**
|
|
64
|
-
* Hook that returns the name of a language. Should correspond to {@link InternationalizationHandler.fetchLanguage}.
|
|
65
|
-
* @since 1.0.0
|
|
66
|
-
* @default () => {@link I18nOptions.defaultName}
|
|
67
|
-
*/
|
|
68
|
-
fetchLanguage?: (context: InternationalizationContext) => Promise<string | null> | string | null;
|
|
69
75
|
}
|
|
70
76
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;;;GAIG;AACH,oBAAY,cAAc,CAAC,CAAC,SAAS,WAAW,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAErG;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC3C;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC,uBAAuB,CAAC;IAEnD;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAEpD;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;;;GAIG;AACH,oBAAY,cAAc,CAAC,CAAC,SAAS,WAAW,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAErG;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC3C;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC,uBAAuB,CAAC;IAEnD;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAEpD;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACjF;AAED,oBAAY,uBAAuB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACzD,oBAAY,cAAc,GAAG,uBAAuB,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;AAElG;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC3C,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,iCAAiC;IACjD,IAAI,CAAC,EAAE,2BAA2B,CAAC;CACnC"}
|
package/dist/register.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC7G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iCAAiC,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAEzF,qBAAa,aAAc,SAAQ,MAAM;WAC1B,CAAC,yBAAyB,CAAC,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC7G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iCAAiC,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAEzF,qBAAa,aAAc,SAAQ,MAAM;WAC1B,CAAC,yBAAyB,CAAC,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;WAIzE,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAGnE;AAKD,OAAO,QAAQ,kBAAkB,CAAC;IACjC,UAAU,SAAS;QAClB,IAAI,EAAE,2BAA2B,CAAC;KAClC;CACD;AAED,OAAO,QAAQ,YAAY,CAAC;IAC3B,UAAiB,aAAc,SAAQ,iCAAiC;KAAG;CAC3E"}
|
package/dist/register.js
CHANGED
|
@@ -6,8 +6,6 @@ const index_1 = require("./index");
|
|
|
6
6
|
class I18nextPlugin extends framework_1.Plugin {
|
|
7
7
|
static [framework_1.preGenericsInitialization](options) {
|
|
8
8
|
framework_1.container.i18n = new index_1.InternationalizationHandler(options.i18n);
|
|
9
|
-
if (typeof options.fetchLanguage === 'function')
|
|
10
|
-
framework_1.container.i18n.fetchLanguage = options.fetchLanguage;
|
|
11
9
|
}
|
|
12
10
|
static async [framework_1.preLogin]() {
|
|
13
11
|
await framework_1.container.i18n.init();
|
package/dist/register.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":";;;AAAA,mDAA6G;AAE7G,mCAAyF;AAEzF,MAAa,aAAc,SAAQ,kBAAM;IACjC,MAAM,CAAC,CAAC,qCAAyB,CAAC,CAAuB,OAAsB;QACrF,qBAAS,CAAC,IAAI,GAAG,IAAI,mCAA2B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":";;;AAAA,mDAA6G;AAE7G,mCAAyF;AAEzF,MAAa,aAAc,SAAQ,kBAAM;IACjC,MAAM,CAAC,CAAC,qCAAyB,CAAC,CAAuB,OAAsB;QACrF,qBAAS,CAAC,IAAI,GAAG,IAAI,mCAA2B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,CAAC,oBAAQ,CAAC;QAC7B,MAAM,qBAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;CACD;AARD,sCAQC;AAED,0BAAc,CAAC,OAAO,CAAC,8BAA8B,CAAC,aAAa,CAAC,qCAAyB,CAAC,EAAE,mCAAmC,CAAC,CAAC;AACrI,0BAAc,CAAC,OAAO,CAAC,oBAAoB,CAAC,aAAa,CAAC,oBAAQ,CAAC,EAAE,kBAAkB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sapphire/plugin-i18next",
|
|
3
|
-
"version": "2.0.0-next.
|
|
3
|
+
"version": "2.0.0-next.9f83c09.0",
|
|
4
4
|
"description": "Plugin for @sapphire/framework to support i18next.",
|
|
5
5
|
"author": "@sapphire",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"module": "dist/index.mjs",
|
|
9
9
|
"types": "dist/index.d.ts",
|
|
10
|
+
"typedocMain": "src/index.ts",
|
|
10
11
|
"exports": {
|
|
11
12
|
".": {
|
|
12
13
|
"import": "./dist/index.mjs",
|
|
@@ -35,10 +36,10 @@
|
|
|
35
36
|
},
|
|
36
37
|
"dependencies": {
|
|
37
38
|
"@sapphire/utilities": "^2.0.1",
|
|
38
|
-
"@types/i18next-fs-backend": "^1.
|
|
39
|
-
"i18next": "^
|
|
39
|
+
"@types/i18next-fs-backend": "^1.1.2",
|
|
40
|
+
"i18next": "^21.1.1",
|
|
40
41
|
"i18next-fs-backend": "^1.1.1",
|
|
41
|
-
"tslib": "^2.3.
|
|
42
|
+
"tslib": "^2.3.1"
|
|
42
43
|
},
|
|
43
44
|
"repository": {
|
|
44
45
|
"type": "git",
|
|
@@ -51,7 +52,7 @@
|
|
|
51
52
|
"register.*"
|
|
52
53
|
],
|
|
53
54
|
"engines": {
|
|
54
|
-
"node": ">=
|
|
55
|
+
"node": ">=v14.18.0",
|
|
55
56
|
"npm": ">=6"
|
|
56
57
|
},
|
|
57
58
|
"keywords": [
|
|
@@ -72,5 +73,5 @@
|
|
|
72
73
|
"publishConfig": {
|
|
73
74
|
"access": "public"
|
|
74
75
|
},
|
|
75
|
-
"gitHead": "
|
|
76
|
+
"gitHead": "9f83c09d73c30d3e89ca2d14e410c39680fe570d"
|
|
76
77
|
}
|