@xivdyetools/core 2.5.0 → 2.7.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/dist/data/locales/de.json +27 -6
- package/dist/data/locales/en.json +27 -6
- package/dist/data/locales/fr.json +27 -6
- package/dist/data/locales/ja.json +27 -6
- package/dist/data/locales/ko.json +27 -6
- package/dist/data/locales/zh.json +27 -6
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/services/APIService.d.ts +32 -1
- package/dist/services/APIService.d.ts.map +1 -1
- package/dist/services/APIService.js +142 -25
- package/dist/services/APIService.js.map +1 -1
- package/dist/services/CharacterColorService.d.ts.map +1 -1
- package/dist/services/CharacterColorService.js +41 -11
- package/dist/services/CharacterColorService.js.map +1 -1
- package/dist/services/ColorService.d.ts +2 -0
- package/dist/services/ColorService.d.ts.map +1 -1
- package/dist/services/ColorService.js.map +1 -1
- package/dist/services/DyeService.d.ts +5 -5
- package/dist/services/DyeService.d.ts.map +1 -1
- package/dist/services/DyeService.js +19 -14
- package/dist/services/DyeService.js.map +1 -1
- package/dist/services/LocalizationService.d.ts +81 -27
- package/dist/services/LocalizationService.d.ts.map +1 -1
- package/dist/services/LocalizationService.js +131 -51
- package/dist/services/LocalizationService.js.map +1 -1
- package/dist/services/PaletteService.d.ts.map +1 -1
- package/dist/services/PaletteService.js +8 -1
- package/dist/services/PaletteService.js.map +1 -1
- package/dist/services/color/ColorConverter.d.ts +5 -0
- package/dist/services/color/ColorConverter.d.ts.map +1 -1
- package/dist/services/color/ColorConverter.js +46 -41
- package/dist/services/color/ColorConverter.js.map +1 -1
- package/dist/services/color/ColorManipulator.d.ts.map +1 -1
- package/dist/services/color/ColorManipulator.js +10 -9
- package/dist/services/color/ColorManipulator.js.map +1 -1
- package/dist/services/color/ColorblindnessSimulator.d.ts.map +1 -1
- package/dist/services/color/ColorblindnessSimulator.js +4 -2
- package/dist/services/color/ColorblindnessSimulator.js.map +1 -1
- package/dist/services/dye/DyeDatabase.d.ts +5 -0
- package/dist/services/dye/DyeDatabase.d.ts.map +1 -1
- package/dist/services/dye/DyeDatabase.js +23 -30
- package/dist/services/dye/DyeDatabase.js.map +1 -1
- package/dist/services/dye/DyeFilter.d.ts +0 -2
- package/dist/services/dye/DyeFilter.d.ts.map +1 -1
- package/dist/services/dye/DyeFilter.js +2 -13
- package/dist/services/dye/DyeFilter.js.map +1 -1
- package/dist/services/dye/DyeSearch.d.ts.map +1 -1
- package/dist/services/dye/DyeSearch.js +14 -74
- package/dist/services/dye/DyeSearch.js.map +1 -1
- package/dist/services/dye/HarmonyGenerator.d.ts.map +1 -1
- package/dist/services/dye/HarmonyGenerator.js +9 -3
- package/dist/services/dye/HarmonyGenerator.js.map +1 -1
- package/dist/services/localization/TranslationProvider.d.ts +53 -1
- package/dist/services/localization/TranslationProvider.d.ts.map +1 -1
- package/dist/services/localization/TranslationProvider.js +99 -0
- package/dist/services/localization/TranslationProvider.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +20 -2
- package/dist/utils/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +11 -11
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* const harmonies = dyeService.findTriadicDyes('#FF0000');
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
|
-
import type { Dye, LocalizedDye } from '@xivdyetools/types';
|
|
27
|
+
import type { Dye, LocalizedDye, LocaleCode } from '@xivdyetools/types';
|
|
28
28
|
import type { Logger } from '@xivdyetools/logger/library';
|
|
29
29
|
import type { FindClosestOptions, FindWithinDistanceOptions } from './dye/DyeSearch.js';
|
|
30
30
|
export type { FindClosestOptions, FindWithinDistanceOptions } from './dye/DyeSearch.js';
|
|
@@ -241,7 +241,7 @@ export declare class DyeService {
|
|
|
241
241
|
* // Finds "Snow White" (スノウホワイト)
|
|
242
242
|
* ```
|
|
243
243
|
*/
|
|
244
|
-
searchByLocalizedName(query: string): Dye[];
|
|
244
|
+
searchByLocalizedName(query: string, locale?: LocaleCode): Dye[];
|
|
245
245
|
/**
|
|
246
246
|
* Get dye by ID with localized name
|
|
247
247
|
* Returns Dye with localizedName property if locale loaded
|
|
@@ -256,7 +256,7 @@ export declare class DyeService {
|
|
|
256
256
|
* // "スノウホワイト" (ja) or "Snow White" (en)
|
|
257
257
|
* ```
|
|
258
258
|
*/
|
|
259
|
-
getLocalizedDyeById(id: number): LocalizedDye | null;
|
|
259
|
+
getLocalizedDyeById(id: number, locale?: LocaleCode): LocalizedDye | null;
|
|
260
260
|
/**
|
|
261
261
|
* Get dye by stainID with localized name
|
|
262
262
|
* Returns Dye with localizedName property if locale loaded
|
|
@@ -266,7 +266,7 @@ export declare class DyeService {
|
|
|
266
266
|
*
|
|
267
267
|
* @since 2.2.0
|
|
268
268
|
*/
|
|
269
|
-
getLocalizedDyeByStainId(stainId: number): LocalizedDye | null;
|
|
269
|
+
getLocalizedDyeByStainId(stainId: number, locale?: LocaleCode): LocalizedDye | null;
|
|
270
270
|
/**
|
|
271
271
|
* Get all dyes with localized names
|
|
272
272
|
* Returns array of dyes with localizedName property if locale loaded
|
|
@@ -282,7 +282,7 @@ export declare class DyeService {
|
|
|
282
282
|
* });
|
|
283
283
|
* ```
|
|
284
284
|
*/
|
|
285
|
-
getAllLocalizedDyes(): LocalizedDye[];
|
|
285
|
+
getAllLocalizedDyes(locale?: LocaleCode): LocalizedDye[];
|
|
286
286
|
/**
|
|
287
287
|
* Get all non-metallic dyes (locale-aware)
|
|
288
288
|
* Excludes dyes based on metallic dye IDs from current locale
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DyeService.d.ts","sourceRoot":"","sources":["../../src/services/DyeService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"DyeService.d.ts","sourceRoot":"","sources":["../../src/services/DyeService.ts"],"names":[],"mappings":"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"}
|
|
@@ -299,8 +299,11 @@ export class DyeService {
|
|
|
299
299
|
* // Finds "Snow White" (スノウホワイト)
|
|
300
300
|
* ```
|
|
301
301
|
*/
|
|
302
|
-
searchByLocalizedName(query) {
|
|
303
|
-
|
|
302
|
+
searchByLocalizedName(query, locale) {
|
|
303
|
+
// BUG-006 (2026-07-18 audit): pass an explicit locale in concurrent
|
|
304
|
+
// multi-locale servers — reading the singleton's current locale races
|
|
305
|
+
// across requests
|
|
306
|
+
if (!LocalizationService.isLocaleLoaded(locale)) {
|
|
304
307
|
return this.searchByName(query); // Fallback to English-only
|
|
305
308
|
}
|
|
306
309
|
const lowerQuery = query.toLowerCase().trim();
|
|
@@ -311,7 +314,7 @@ export class DyeService {
|
|
|
311
314
|
return true;
|
|
312
315
|
}
|
|
313
316
|
// Search localized name (not pre-computed as it's dynamically loaded)
|
|
314
|
-
const localizedName = LocalizationService.getDyeName(dye.itemID);
|
|
317
|
+
const localizedName = LocalizationService.getDyeName(dye.itemID, locale);
|
|
315
318
|
if (localizedName?.toLowerCase().includes(lowerQuery)) {
|
|
316
319
|
return true;
|
|
317
320
|
}
|
|
@@ -332,16 +335,16 @@ export class DyeService {
|
|
|
332
335
|
* // "スノウホワイト" (ja) or "Snow White" (en)
|
|
333
336
|
* ```
|
|
334
337
|
*/
|
|
335
|
-
getLocalizedDyeById(id) {
|
|
338
|
+
getLocalizedDyeById(id, locale) {
|
|
336
339
|
const dye = this.getDyeById(id);
|
|
337
340
|
if (!dye)
|
|
338
341
|
return null;
|
|
339
|
-
if (!LocalizationService.isLocaleLoaded()) {
|
|
342
|
+
if (!LocalizationService.isLocaleLoaded(locale)) {
|
|
340
343
|
return dye;
|
|
341
344
|
}
|
|
342
345
|
return {
|
|
343
346
|
...dye,
|
|
344
|
-
localizedName: LocalizationService.getDyeName(dye.itemID) || undefined,
|
|
347
|
+
localizedName: LocalizationService.getDyeName(dye.itemID, locale) || undefined,
|
|
345
348
|
};
|
|
346
349
|
}
|
|
347
350
|
/**
|
|
@@ -353,16 +356,16 @@ export class DyeService {
|
|
|
353
356
|
*
|
|
354
357
|
* @since 2.2.0
|
|
355
358
|
*/
|
|
356
|
-
getLocalizedDyeByStainId(stainId) {
|
|
359
|
+
getLocalizedDyeByStainId(stainId, locale) {
|
|
357
360
|
const dye = this.getByStainId(stainId);
|
|
358
361
|
if (!dye)
|
|
359
362
|
return null;
|
|
360
|
-
if (!LocalizationService.isLocaleLoaded()) {
|
|
363
|
+
if (!LocalizationService.isLocaleLoaded(locale)) {
|
|
361
364
|
return dye;
|
|
362
365
|
}
|
|
363
366
|
return {
|
|
364
367
|
...dye,
|
|
365
|
-
localizedName: LocalizationService.getDyeName(dye.itemID) || undefined,
|
|
368
|
+
localizedName: LocalizationService.getDyeName(dye.itemID, locale) || undefined,
|
|
366
369
|
};
|
|
367
370
|
}
|
|
368
371
|
/**
|
|
@@ -380,14 +383,14 @@ export class DyeService {
|
|
|
380
383
|
* });
|
|
381
384
|
* ```
|
|
382
385
|
*/
|
|
383
|
-
getAllLocalizedDyes() {
|
|
386
|
+
getAllLocalizedDyes(locale) {
|
|
384
387
|
const dyes = this.getAllDyes();
|
|
385
|
-
if (!LocalizationService.isLocaleLoaded()) {
|
|
388
|
+
if (!LocalizationService.isLocaleLoaded(locale)) {
|
|
386
389
|
return dyes;
|
|
387
390
|
}
|
|
388
391
|
return dyes.map((dye) => ({
|
|
389
392
|
...dye,
|
|
390
|
-
localizedName: LocalizationService.getDyeName(dye.itemID) || undefined,
|
|
393
|
+
localizedName: LocalizationService.getDyeName(dye.itemID, locale) || undefined,
|
|
391
394
|
}));
|
|
392
395
|
}
|
|
393
396
|
/**
|
|
@@ -404,8 +407,10 @@ export class DyeService {
|
|
|
404
407
|
* ```
|
|
405
408
|
*/
|
|
406
409
|
getNonMetallicDyes() {
|
|
407
|
-
|
|
408
|
-
|
|
410
|
+
// BUG-045 (2026-07-18 audit): source the exclusion from the dye data's own
|
|
411
|
+
// isMetallic flag — the previous locale-derived ID list silently returned
|
|
412
|
+
// ALL dyes (metallics included) when no locale had ever been loaded
|
|
413
|
+
return this.getAllDyes().filter((dye) => !dye.isMetallic);
|
|
409
414
|
}
|
|
410
415
|
}
|
|
411
416
|
//# sourceMappingURL=DyeService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DyeService.js","sourceRoot":"","sources":["../../src/services/DyeService.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DyeService.js","sourceRoot":"","sources":["../../src/services/DyeService.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module services
|
|
8
8
|
*/
|
|
9
|
-
import type { LocaleCode, TranslationKey, HarmonyTypeKey, VisionType, JobKey, GrandCompanyKey, RaceKey, ClanKey, LocalePreference } from '@xivdyetools/types';
|
|
9
|
+
import type { LocaleCode, TranslationKey, HarmonyTypeKey, VisionType, ToolKey, SheetKey, JobKey, GrandCompanyKey, RaceKey, ClanKey, LocalePreference } from '@xivdyetools/types';
|
|
10
10
|
import { LocaleLoader } from './localization/LocaleLoader.js';
|
|
11
11
|
import { LocaleRegistry } from './localization/LocaleRegistry.js';
|
|
12
12
|
import { TranslationProvider } from './localization/TranslationProvider.js';
|
|
@@ -121,6 +121,16 @@ export declare class LocalizationService {
|
|
|
121
121
|
/**
|
|
122
122
|
* Set active locale (loads locale file if not cached)
|
|
123
123
|
*
|
|
124
|
+
* ⚠️ CONCURRENCY (BUG-006, 2026-07-18 audit): `currentLocale` is shared
|
|
125
|
+
* mutable state on this instance (and on the process-wide singleton for the
|
|
126
|
+
* static API). In concurrent multi-locale servers (Cloudflare Workers,
|
|
127
|
+
* Node servers), a per-request `setLocale` races with other requests —
|
|
128
|
+
* request A can read another request's locale after any `await`. Such
|
|
129
|
+
* servers must NOT call `setLocale` per request; instead call
|
|
130
|
+
* `ensureLocaleLoaded(locale)` once and pass the request's locale
|
|
131
|
+
* explicitly to every getter (`getDyeName(id, locale)`), or use the
|
|
132
|
+
* stateless `LocaleLoader`/`LocaleRegistry`/`TranslationProvider` trio.
|
|
133
|
+
*
|
|
124
134
|
* @param locale - Locale code ('en', 'ja', 'de', 'fr')
|
|
125
135
|
* @throws {AppError} If locale file fails to load
|
|
126
136
|
*
|
|
@@ -135,6 +145,17 @@ export declare class LocalizationService {
|
|
|
135
145
|
* Static method: Set locale using default instance
|
|
136
146
|
*/
|
|
137
147
|
static setLocale(locale: LocaleCode): Promise<void>;
|
|
148
|
+
/**
|
|
149
|
+
* Ensure a locale's data is loaded/registered WITHOUT mutating the current
|
|
150
|
+
* locale. BUG-006 (2026-07-18 audit): the race-safe alternative to a
|
|
151
|
+
* per-request `setLocale` — combine with explicit-locale getters
|
|
152
|
+
* (`getDyeName(id, locale)`).
|
|
153
|
+
*/
|
|
154
|
+
ensureLocaleLoaded(locale: LocaleCode): Promise<void>;
|
|
155
|
+
/**
|
|
156
|
+
* Static method: Ensure a locale is loaded in the default instance
|
|
157
|
+
*/
|
|
158
|
+
static ensureLocaleLoaded(locale: LocaleCode): Promise<void>;
|
|
138
159
|
/**
|
|
139
160
|
* Set locale from preference object with priority chain
|
|
140
161
|
* Uses pure function resolveLocaleFromPreference for resolution logic
|
|
@@ -187,142 +208,175 @@ export declare class LocalizationService {
|
|
|
187
208
|
* }
|
|
188
209
|
* ```
|
|
189
210
|
*/
|
|
190
|
-
isLocaleLoaded(): boolean;
|
|
211
|
+
isLocaleLoaded(locale?: LocaleCode): boolean;
|
|
191
212
|
/**
|
|
192
213
|
* Static method: Check if locale is loaded in default instance
|
|
193
214
|
*/
|
|
194
|
-
static isLocaleLoaded(): boolean;
|
|
215
|
+
static isLocaleLoaded(locale?: LocaleCode): boolean;
|
|
195
216
|
/**
|
|
196
217
|
* Get localized UI label (with fallback to English)
|
|
197
218
|
*
|
|
198
219
|
* @param key - Translation key
|
|
199
220
|
* @returns Localized label
|
|
200
221
|
*/
|
|
201
|
-
getLabel(key: TranslationKey): string;
|
|
222
|
+
getLabel(key: TranslationKey, locale?: LocaleCode): string;
|
|
202
223
|
/**
|
|
203
224
|
* Static method: Get localized label using default instance
|
|
204
225
|
*/
|
|
205
|
-
static getLabel(key: TranslationKey): string;
|
|
226
|
+
static getLabel(key: TranslationKey, locale?: LocaleCode): string;
|
|
206
227
|
/**
|
|
207
228
|
* Get localized dye name by itemID
|
|
208
229
|
*
|
|
209
230
|
* @param itemID - Dye item ID (5729-48227)
|
|
210
231
|
* @returns Localized name or null if not found
|
|
211
232
|
*/
|
|
212
|
-
getDyeName(itemID: number): string | null;
|
|
233
|
+
getDyeName(itemID: number, locale?: LocaleCode): string | null;
|
|
213
234
|
/**
|
|
214
235
|
* Static method: Get localized dye name using default instance
|
|
215
236
|
*/
|
|
216
|
-
static getDyeName(itemID: number): string | null;
|
|
237
|
+
static getDyeName(itemID: number, locale?: LocaleCode): string | null;
|
|
217
238
|
/**
|
|
218
239
|
* Get localized category name
|
|
219
240
|
*
|
|
220
241
|
* @param category - Category key (e.g., "Reds", "Blues")
|
|
221
242
|
* @returns Localized category name
|
|
222
243
|
*/
|
|
223
|
-
getCategory(category: string): string;
|
|
244
|
+
getCategory(category: string, locale?: LocaleCode): string;
|
|
224
245
|
/**
|
|
225
246
|
* Static method: Get localized category using default instance
|
|
226
247
|
*/
|
|
227
|
-
static getCategory(category: string): string;
|
|
248
|
+
static getCategory(category: string, locale?: LocaleCode): string;
|
|
228
249
|
/**
|
|
229
250
|
* Get localized acquisition method
|
|
230
251
|
*
|
|
231
252
|
* @param acquisition - Acquisition key (e.g., "Dye Vendor", "Crafting")
|
|
232
253
|
* @returns Localized acquisition method
|
|
233
254
|
*/
|
|
234
|
-
getAcquisition(acquisition: string): string;
|
|
255
|
+
getAcquisition(acquisition: string, locale?: LocaleCode): string;
|
|
235
256
|
/**
|
|
236
257
|
* Static method: Get localized acquisition using default instance
|
|
237
258
|
*/
|
|
238
|
-
static getAcquisition(acquisition: string): string;
|
|
259
|
+
static getAcquisition(acquisition: string, locale?: LocaleCode): string;
|
|
239
260
|
/**
|
|
240
261
|
* Get localized currency display label
|
|
241
262
|
*
|
|
242
263
|
* @param currency - Currency key (e.g., "Gil", "Cosmocredits")
|
|
243
264
|
* @returns Localized currency label
|
|
244
265
|
*/
|
|
245
|
-
getCurrency(currency: string): string;
|
|
266
|
+
getCurrency(currency: string, locale?: LocaleCode): string;
|
|
246
267
|
/**
|
|
247
268
|
* Static method: Get localized currency using default instance
|
|
248
269
|
*/
|
|
249
|
-
static getCurrency(currency: string): string;
|
|
270
|
+
static getCurrency(currency: string, locale?: LocaleCode): string;
|
|
250
271
|
/**
|
|
251
272
|
* Get all metallic dye IDs (for exclusion filtering)
|
|
252
273
|
*
|
|
253
274
|
* @returns Array of metallic dye item IDs
|
|
254
275
|
*/
|
|
255
|
-
getMetallicDyeIds(): number[];
|
|
276
|
+
getMetallicDyeIds(locale?: LocaleCode): number[];
|
|
256
277
|
/**
|
|
257
278
|
* Static method: Get metallic dye IDs using default instance
|
|
258
279
|
*/
|
|
259
|
-
static getMetallicDyeIds(): number[];
|
|
280
|
+
static getMetallicDyeIds(locale?: LocaleCode): number[];
|
|
260
281
|
/**
|
|
261
282
|
* Get localized harmony type name
|
|
262
283
|
*
|
|
263
284
|
* @param key - Harmony type key
|
|
264
285
|
* @returns Localized harmony type
|
|
265
286
|
*/
|
|
266
|
-
getHarmonyType(key: HarmonyTypeKey): string;
|
|
287
|
+
getHarmonyType(key: HarmonyTypeKey, locale?: LocaleCode): string;
|
|
267
288
|
/**
|
|
268
289
|
* Static method: Get localized harmony type using default instance
|
|
269
290
|
*/
|
|
270
|
-
static getHarmonyType(key: HarmonyTypeKey): string;
|
|
291
|
+
static getHarmonyType(key: HarmonyTypeKey, locale?: LocaleCode): string;
|
|
271
292
|
/**
|
|
272
293
|
* Get localized vision type name
|
|
273
294
|
*
|
|
274
295
|
* @param key - Vision type key
|
|
275
296
|
* @returns Localized vision type
|
|
276
297
|
*/
|
|
277
|
-
getVisionType(key: VisionType): string;
|
|
298
|
+
getVisionType(key: VisionType, locale?: LocaleCode): string;
|
|
278
299
|
/**
|
|
279
300
|
* Static method: Get localized vision type using default instance
|
|
280
301
|
*/
|
|
281
|
-
static getVisionType(key: VisionType): string;
|
|
302
|
+
static getVisionType(key: VisionType, locale?: LocaleCode): string;
|
|
303
|
+
/**
|
|
304
|
+
* Get localized short vision-name (compact form, no parenthetical)
|
|
305
|
+
*
|
|
306
|
+
* @param key - Vision type key
|
|
307
|
+
* @returns Localized short vision name
|
|
308
|
+
*/
|
|
309
|
+
getVisionShort(key: VisionType, locale?: LocaleCode): string;
|
|
310
|
+
/**
|
|
311
|
+
* Static method: Get localized short vision-name using default instance
|
|
312
|
+
*/
|
|
313
|
+
static getVisionShort(key: VisionType, locale?: LocaleCode): string;
|
|
314
|
+
/**
|
|
315
|
+
* Get localized tool display name
|
|
316
|
+
*
|
|
317
|
+
* @param key - Tool key
|
|
318
|
+
* @returns Localized tool display name
|
|
319
|
+
*/
|
|
320
|
+
getToolName(key: ToolKey, locale?: LocaleCode): string;
|
|
321
|
+
/**
|
|
322
|
+
* Static method: Get localized tool display name using default instance
|
|
323
|
+
*/
|
|
324
|
+
static getToolName(key: ToolKey, locale?: LocaleCode): string;
|
|
325
|
+
/**
|
|
326
|
+
* Get localized color-sheet category name
|
|
327
|
+
*
|
|
328
|
+
* @param key - Sheet key
|
|
329
|
+
* @returns Localized sheet name
|
|
330
|
+
*/
|
|
331
|
+
getSheetName(key: SheetKey, locale?: LocaleCode): string;
|
|
332
|
+
/**
|
|
333
|
+
* Static method: Get localized sheet name using default instance
|
|
334
|
+
*/
|
|
335
|
+
static getSheetName(key: SheetKey, locale?: LocaleCode): string;
|
|
282
336
|
/**
|
|
283
337
|
* Get localized job name
|
|
284
338
|
*
|
|
285
339
|
* @param key - Job key
|
|
286
340
|
* @returns Localized job name
|
|
287
341
|
*/
|
|
288
|
-
getJobName(key: JobKey): string;
|
|
342
|
+
getJobName(key: JobKey, locale?: LocaleCode): string;
|
|
289
343
|
/**
|
|
290
344
|
* Static method: Get localized job name using default instance
|
|
291
345
|
*/
|
|
292
|
-
static getJobName(key: JobKey): string;
|
|
346
|
+
static getJobName(key: JobKey, locale?: LocaleCode): string;
|
|
293
347
|
/**
|
|
294
348
|
* Get localized Grand Company name
|
|
295
349
|
*
|
|
296
350
|
* @param key - Grand Company key
|
|
297
351
|
* @returns Localized Grand Company name
|
|
298
352
|
*/
|
|
299
|
-
getGrandCompanyName(key: GrandCompanyKey): string;
|
|
353
|
+
getGrandCompanyName(key: GrandCompanyKey, locale?: LocaleCode): string;
|
|
300
354
|
/**
|
|
301
355
|
* Static method: Get localized Grand Company name using default instance
|
|
302
356
|
*/
|
|
303
|
-
static getGrandCompanyName(key: GrandCompanyKey): string;
|
|
357
|
+
static getGrandCompanyName(key: GrandCompanyKey, locale?: LocaleCode): string;
|
|
304
358
|
/**
|
|
305
359
|
* Get localized race name
|
|
306
360
|
*
|
|
307
361
|
* @param key - Race key
|
|
308
362
|
* @returns Localized race name
|
|
309
363
|
*/
|
|
310
|
-
getRace(key: RaceKey): string;
|
|
364
|
+
getRace(key: RaceKey, locale?: LocaleCode): string;
|
|
311
365
|
/**
|
|
312
366
|
* Static method: Get localized race name using default instance
|
|
313
367
|
*/
|
|
314
|
-
static getRace(key: RaceKey): string;
|
|
368
|
+
static getRace(key: RaceKey, locale?: LocaleCode): string;
|
|
315
369
|
/**
|
|
316
370
|
* Get localized clan (subrace) name
|
|
317
371
|
*
|
|
318
372
|
* @param key - Clan key
|
|
319
373
|
* @returns Localized clan name
|
|
320
374
|
*/
|
|
321
|
-
getClan(key: ClanKey): string;
|
|
375
|
+
getClan(key: ClanKey, locale?: LocaleCode): string;
|
|
322
376
|
/**
|
|
323
377
|
* Static method: Get localized clan name using default instance
|
|
324
378
|
*/
|
|
325
|
-
static getClan(key: ClanKey): string;
|
|
379
|
+
static getClan(key: ClanKey, locale?: LocaleCode): string;
|
|
326
380
|
/**
|
|
327
381
|
* Get all available locale codes
|
|
328
382
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalizationService.d.ts","sourceRoot":"","sources":["../../src/services/LocalizationService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,UAAU,EACV,MAAM,EACN,eAAe,EACf,OAAO,EACP,OAAO,EACP,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAM5E;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,UAAU,EAOzC,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAGnE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,gBAAgB,GAAG,UAAU,CAwBpF;AAMD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,mBAAmB;IAE9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAEjD,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,aAAa,CAAkB;IAIvC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAkD;IAEhF;;;OAGG;gBACS,MAAM,GAAE,yBAA8B;IAMlD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAIzB
|
|
1
|
+
{"version":3,"file":"LocalizationService.d.ts","sourceRoot":"","sources":["../../src/services/LocalizationService.ts"],"names":[],"mappings":"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"}
|