@pinepaper.studio/mcp-server 1.0.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/LICENSE +21 -0
- package/README.md +406 -0
- package/dist/__tests__/fixtures/index.d.ts +8 -0
- package/dist/__tests__/fixtures/index.d.ts.map +1 -0
- package/dist/__tests__/fixtures/index.js +8 -0
- package/dist/__tests__/fixtures/index.js.map +1 -0
- package/dist/__tests__/fixtures/mock-animations.d.ts +213 -0
- package/dist/__tests__/fixtures/mock-animations.d.ts.map +1 -0
- package/dist/__tests__/fixtures/mock-animations.js +96 -0
- package/dist/__tests__/fixtures/mock-animations.js.map +1 -0
- package/dist/__tests__/fixtures/mock-generators.d.ts +147 -0
- package/dist/__tests__/fixtures/mock-generators.d.ts.map +1 -0
- package/dist/__tests__/fixtures/mock-generators.js +90 -0
- package/dist/__tests__/fixtures/mock-generators.js.map +1 -0
- package/dist/__tests__/fixtures/mock-items.d.ts +157 -0
- package/dist/__tests__/fixtures/mock-items.d.ts.map +1 -0
- package/dist/__tests__/fixtures/mock-items.js +74 -0
- package/dist/__tests__/fixtures/mock-items.js.map +1 -0
- package/dist/__tests__/fixtures/mock-relations.d.ts +147 -0
- package/dist/__tests__/fixtures/mock-relations.d.ts.map +1 -0
- package/dist/__tests__/fixtures/mock-relations.js +90 -0
- package/dist/__tests__/fixtures/mock-relations.js.map +1 -0
- package/dist/browser/bridge.d.ts +127 -0
- package/dist/browser/bridge.d.ts.map +1 -0
- package/dist/browser/bridge.js +320 -0
- package/dist/browser/bridge.js.map +1 -0
- package/dist/browser/index.d.ts +8 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +8 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/puppeteer-controller.d.ts +93 -0
- package/dist/browser/puppeteer-controller.d.ts.map +1 -0
- package/dist/browser/puppeteer-controller.js +280 -0
- package/dist/browser/puppeteer-controller.js.map +1 -0
- package/dist/cli.d.ts +8 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +109 -0
- package/dist/cli.js.map +1 -0
- package/dist/i18n/i18n-manager.d.ts +88 -0
- package/dist/i18n/i18n-manager.d.ts.map +1 -0
- package/dist/i18n/i18n-manager.js +209 -0
- package/dist/i18n/i18n-manager.js.map +1 -0
- package/dist/i18n/index.d.ts +10 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +10 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/locales/ar.d.ts +6 -0
- package/dist/i18n/locales/ar.d.ts.map +1 -0
- package/dist/i18n/locales/ar.js +106 -0
- package/dist/i18n/locales/ar.js.map +1 -0
- package/dist/i18n/locales/base.d.ts +17 -0
- package/dist/i18n/locales/base.d.ts.map +1 -0
- package/dist/i18n/locales/base.js +213 -0
- package/dist/i18n/locales/base.js.map +1 -0
- package/dist/i18n/locales/bn.d.ts +6 -0
- package/dist/i18n/locales/bn.d.ts.map +1 -0
- package/dist/i18n/locales/bn.js +106 -0
- package/dist/i18n/locales/bn.js.map +1 -0
- package/dist/i18n/locales/chp.d.ts +8 -0
- package/dist/i18n/locales/chp.d.ts.map +1 -0
- package/dist/i18n/locales/chp.js +11 -0
- package/dist/i18n/locales/chp.js.map +1 -0
- package/dist/i18n/locales/cr.d.ts +8 -0
- package/dist/i18n/locales/cr.d.ts.map +1 -0
- package/dist/i18n/locales/cr.js +11 -0
- package/dist/i18n/locales/cr.js.map +1 -0
- package/dist/i18n/locales/crg.d.ts +8 -0
- package/dist/i18n/locales/crg.d.ts.map +1 -0
- package/dist/i18n/locales/crg.js +11 -0
- package/dist/i18n/locales/crg.js.map +1 -0
- package/dist/i18n/locales/cs.d.ts +6 -0
- package/dist/i18n/locales/cs.d.ts.map +1 -0
- package/dist/i18n/locales/cs.js +106 -0
- package/dist/i18n/locales/cs.js.map +1 -0
- package/dist/i18n/locales/da.d.ts +6 -0
- package/dist/i18n/locales/da.d.ts.map +1 -0
- package/dist/i18n/locales/da.js +106 -0
- package/dist/i18n/locales/da.js.map +1 -0
- package/dist/i18n/locales/de.d.ts +6 -0
- package/dist/i18n/locales/de.d.ts.map +1 -0
- package/dist/i18n/locales/de.js +106 -0
- package/dist/i18n/locales/de.js.map +1 -0
- package/dist/i18n/locales/el.d.ts +6 -0
- package/dist/i18n/locales/el.d.ts.map +1 -0
- package/dist/i18n/locales/el.js +106 -0
- package/dist/i18n/locales/el.js.map +1 -0
- package/dist/i18n/locales/en.d.ts +6 -0
- package/dist/i18n/locales/en.d.ts.map +1 -0
- package/dist/i18n/locales/en.js +383 -0
- package/dist/i18n/locales/en.js.map +1 -0
- package/dist/i18n/locales/es.d.ts +6 -0
- package/dist/i18n/locales/es.d.ts.map +1 -0
- package/dist/i18n/locales/es.js +106 -0
- package/dist/i18n/locales/es.js.map +1 -0
- package/dist/i18n/locales/fa.d.ts +6 -0
- package/dist/i18n/locales/fa.d.ts.map +1 -0
- package/dist/i18n/locales/fa.js +106 -0
- package/dist/i18n/locales/fa.js.map +1 -0
- package/dist/i18n/locales/fi.d.ts +6 -0
- package/dist/i18n/locales/fi.d.ts.map +1 -0
- package/dist/i18n/locales/fi.js +106 -0
- package/dist/i18n/locales/fi.js.map +1 -0
- package/dist/i18n/locales/fil.d.ts +6 -0
- package/dist/i18n/locales/fil.d.ts.map +1 -0
- package/dist/i18n/locales/fil.js +383 -0
- package/dist/i18n/locales/fil.js.map +1 -0
- package/dist/i18n/locales/fr.d.ts +6 -0
- package/dist/i18n/locales/fr.d.ts.map +1 -0
- package/dist/i18n/locales/fr.js +106 -0
- package/dist/i18n/locales/fr.js.map +1 -0
- package/dist/i18n/locales/gu.d.ts +6 -0
- package/dist/i18n/locales/gu.d.ts.map +1 -0
- package/dist/i18n/locales/gu.js +106 -0
- package/dist/i18n/locales/gu.js.map +1 -0
- package/dist/i18n/locales/he.d.ts +6 -0
- package/dist/i18n/locales/he.d.ts.map +1 -0
- package/dist/i18n/locales/he.js +106 -0
- package/dist/i18n/locales/he.js.map +1 -0
- package/dist/i18n/locales/hi.d.ts +6 -0
- package/dist/i18n/locales/hi.d.ts.map +1 -0
- package/dist/i18n/locales/hi.js +106 -0
- package/dist/i18n/locales/hi.js.map +1 -0
- package/dist/i18n/locales/hu.d.ts +6 -0
- package/dist/i18n/locales/hu.d.ts.map +1 -0
- package/dist/i18n/locales/hu.js +106 -0
- package/dist/i18n/locales/hu.js.map +1 -0
- package/dist/i18n/locales/id.d.ts +6 -0
- package/dist/i18n/locales/id.d.ts.map +1 -0
- package/dist/i18n/locales/id.js +106 -0
- package/dist/i18n/locales/id.js.map +1 -0
- package/dist/i18n/locales/index.d.ts +110 -0
- package/dist/i18n/locales/index.d.ts.map +1 -0
- package/dist/i18n/locales/index.js +123 -0
- package/dist/i18n/locales/index.js.map +1 -0
- package/dist/i18n/locales/is.d.ts +6 -0
- package/dist/i18n/locales/is.d.ts.map +1 -0
- package/dist/i18n/locales/is.js +383 -0
- package/dist/i18n/locales/is.js.map +1 -0
- package/dist/i18n/locales/it.d.ts +6 -0
- package/dist/i18n/locales/it.d.ts.map +1 -0
- package/dist/i18n/locales/it.js +106 -0
- package/dist/i18n/locales/it.js.map +1 -0
- package/dist/i18n/locales/iu.d.ts +8 -0
- package/dist/i18n/locales/iu.d.ts.map +1 -0
- package/dist/i18n/locales/iu.js +11 -0
- package/dist/i18n/locales/iu.js.map +1 -0
- package/dist/i18n/locales/ja.d.ts +6 -0
- package/dist/i18n/locales/ja.d.ts.map +1 -0
- package/dist/i18n/locales/ja.js +106 -0
- package/dist/i18n/locales/ja.js.map +1 -0
- package/dist/i18n/locales/kn.d.ts +6 -0
- package/dist/i18n/locales/kn.d.ts.map +1 -0
- package/dist/i18n/locales/kn.js +106 -0
- package/dist/i18n/locales/kn.js.map +1 -0
- package/dist/i18n/locales/ko.d.ts +6 -0
- package/dist/i18n/locales/ko.d.ts.map +1 -0
- package/dist/i18n/locales/ko.js +106 -0
- package/dist/i18n/locales/ko.js.map +1 -0
- package/dist/i18n/locales/mic.d.ts +8 -0
- package/dist/i18n/locales/mic.d.ts.map +1 -0
- package/dist/i18n/locales/mic.js +11 -0
- package/dist/i18n/locales/mic.js.map +1 -0
- package/dist/i18n/locales/ml.d.ts +6 -0
- package/dist/i18n/locales/ml.d.ts.map +1 -0
- package/dist/i18n/locales/ml.js +106 -0
- package/dist/i18n/locales/ml.js.map +1 -0
- package/dist/i18n/locales/moh.d.ts +8 -0
- package/dist/i18n/locales/moh.d.ts.map +1 -0
- package/dist/i18n/locales/moh.js +11 -0
- package/dist/i18n/locales/moh.js.map +1 -0
- package/dist/i18n/locales/mr.d.ts +6 -0
- package/dist/i18n/locales/mr.d.ts.map +1 -0
- package/dist/i18n/locales/mr.js +106 -0
- package/dist/i18n/locales/mr.js.map +1 -0
- package/dist/i18n/locales/ms.d.ts +6 -0
- package/dist/i18n/locales/ms.d.ts.map +1 -0
- package/dist/i18n/locales/ms.js +106 -0
- package/dist/i18n/locales/ms.js.map +1 -0
- package/dist/i18n/locales/nl.d.ts +6 -0
- package/dist/i18n/locales/nl.d.ts.map +1 -0
- package/dist/i18n/locales/nl.js +106 -0
- package/dist/i18n/locales/nl.js.map +1 -0
- package/dist/i18n/locales/no.d.ts +6 -0
- package/dist/i18n/locales/no.d.ts.map +1 -0
- package/dist/i18n/locales/no.js +106 -0
- package/dist/i18n/locales/no.js.map +1 -0
- package/dist/i18n/locales/oj.d.ts +8 -0
- package/dist/i18n/locales/oj.d.ts.map +1 -0
- package/dist/i18n/locales/oj.js +11 -0
- package/dist/i18n/locales/oj.js.map +1 -0
- package/dist/i18n/locales/pa.d.ts +6 -0
- package/dist/i18n/locales/pa.d.ts.map +1 -0
- package/dist/i18n/locales/pa.js +106 -0
- package/dist/i18n/locales/pa.js.map +1 -0
- package/dist/i18n/locales/pl.d.ts +6 -0
- package/dist/i18n/locales/pl.d.ts.map +1 -0
- package/dist/i18n/locales/pl.js +106 -0
- package/dist/i18n/locales/pl.js.map +1 -0
- package/dist/i18n/locales/pt-BR.d.ts +6 -0
- package/dist/i18n/locales/pt-BR.d.ts.map +1 -0
- package/dist/i18n/locales/pt-BR.js +106 -0
- package/dist/i18n/locales/pt-BR.js.map +1 -0
- package/dist/i18n/locales/pt.d.ts +6 -0
- package/dist/i18n/locales/pt.d.ts.map +1 -0
- package/dist/i18n/locales/pt.js +106 -0
- package/dist/i18n/locales/pt.js.map +1 -0
- package/dist/i18n/locales/ro.d.ts +6 -0
- package/dist/i18n/locales/ro.d.ts.map +1 -0
- package/dist/i18n/locales/ro.js +106 -0
- package/dist/i18n/locales/ro.js.map +1 -0
- package/dist/i18n/locales/ru.d.ts +6 -0
- package/dist/i18n/locales/ru.d.ts.map +1 -0
- package/dist/i18n/locales/ru.js +106 -0
- package/dist/i18n/locales/ru.js.map +1 -0
- package/dist/i18n/locales/sv.d.ts +6 -0
- package/dist/i18n/locales/sv.d.ts.map +1 -0
- package/dist/i18n/locales/sv.js +106 -0
- package/dist/i18n/locales/sv.js.map +1 -0
- package/dist/i18n/locales/ta.d.ts +6 -0
- package/dist/i18n/locales/ta.d.ts.map +1 -0
- package/dist/i18n/locales/ta.js +106 -0
- package/dist/i18n/locales/ta.js.map +1 -0
- package/dist/i18n/locales/te.d.ts +6 -0
- package/dist/i18n/locales/te.d.ts.map +1 -0
- package/dist/i18n/locales/te.js +106 -0
- package/dist/i18n/locales/te.js.map +1 -0
- package/dist/i18n/locales/th.d.ts +6 -0
- package/dist/i18n/locales/th.d.ts.map +1 -0
- package/dist/i18n/locales/th.js +106 -0
- package/dist/i18n/locales/th.js.map +1 -0
- package/dist/i18n/locales/tl.d.ts +6 -0
- package/dist/i18n/locales/tl.d.ts.map +1 -0
- package/dist/i18n/locales/tl.js +106 -0
- package/dist/i18n/locales/tl.js.map +1 -0
- package/dist/i18n/locales/tr.d.ts +6 -0
- package/dist/i18n/locales/tr.d.ts.map +1 -0
- package/dist/i18n/locales/tr.js +106 -0
- package/dist/i18n/locales/tr.js.map +1 -0
- package/dist/i18n/locales/uk.d.ts +6 -0
- package/dist/i18n/locales/uk.d.ts.map +1 -0
- package/dist/i18n/locales/uk.js +106 -0
- package/dist/i18n/locales/uk.js.map +1 -0
- package/dist/i18n/locales/ur.d.ts +6 -0
- package/dist/i18n/locales/ur.d.ts.map +1 -0
- package/dist/i18n/locales/ur.js +383 -0
- package/dist/i18n/locales/ur.js.map +1 -0
- package/dist/i18n/locales/vi.d.ts +6 -0
- package/dist/i18n/locales/vi.d.ts.map +1 -0
- package/dist/i18n/locales/vi.js +106 -0
- package/dist/i18n/locales/vi.js.map +1 -0
- package/dist/i18n/locales/zh-CN.d.ts +6 -0
- package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
- package/dist/i18n/locales/zh-CN.js +106 -0
- package/dist/i18n/locales/zh-CN.js.map +1 -0
- package/dist/i18n/locales/zh-TW.d.ts +6 -0
- package/dist/i18n/locales/zh-TW.d.ts.map +1 -0
- package/dist/i18n/locales/zh-TW.js +106 -0
- package/dist/i18n/locales/zh-TW.js.map +1 -0
- package/dist/i18n/types.d.ts +101 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +65 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +472 -0
- package/dist/index.js.map +1 -0
- package/dist/server/index.d.ts +39 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +89 -0
- package/dist/server/index.js.map +1 -0
- package/dist/tools/definitions.d.ts +26 -0
- package/dist/tools/definitions.d.ts.map +1 -0
- package/dist/tools/definitions.js +785 -0
- package/dist/tools/definitions.js.map +1 -0
- package/dist/tools/handlers.d.ts +19 -0
- package/dist/tools/handlers.d.ts.map +1 -0
- package/dist/tools/handlers.js +477 -0
- package/dist/tools/handlers.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +3 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types/code-generator.d.ts +97 -0
- package/dist/types/code-generator.d.ts.map +1 -0
- package/dist/types/code-generator.js +545 -0
- package/dist/types/code-generator.js.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/schemas.d.ts +707 -0
- package/dist/types/schemas.d.ts.map +1 -0
- package/dist/types/schemas.js +341 -0
- package/dist/types/schemas.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* i18n Manager
|
|
3
|
+
*
|
|
4
|
+
* Handles internationalization for the PinePaper MCP Server.
|
|
5
|
+
* Supports all 41 locales from PinePaper Studio.
|
|
6
|
+
*/
|
|
7
|
+
import { DEFAULT_LOCALE, SUPPORTED_LOCALES, RTL_LOCALES, } from './types.js';
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// I18N MANAGER
|
|
10
|
+
// =============================================================================
|
|
11
|
+
export class I18nManager {
|
|
12
|
+
currentLocale;
|
|
13
|
+
fallbackLocale;
|
|
14
|
+
translations = new Map();
|
|
15
|
+
loadedLocales = new Set();
|
|
16
|
+
constructor(config = {}) {
|
|
17
|
+
this.currentLocale = config.defaultLocale || DEFAULT_LOCALE;
|
|
18
|
+
this.fallbackLocale = config.fallbackLocale || DEFAULT_LOCALE;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Load translations for a locale
|
|
22
|
+
*/
|
|
23
|
+
async loadLocale(locale) {
|
|
24
|
+
if (this.loadedLocales.has(locale)) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
// Dynamic import of locale file
|
|
29
|
+
const module = await import(`./locales/${locale}.js`);
|
|
30
|
+
this.translations.set(locale, module.default || module[locale]);
|
|
31
|
+
this.loadedLocales.add(locale);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
console.error(`Failed to load locale ${locale}:`, error);
|
|
35
|
+
// Fall back to English if locale not found
|
|
36
|
+
if (locale !== 'en') {
|
|
37
|
+
await this.loadLocale('en');
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Set the current locale
|
|
43
|
+
*/
|
|
44
|
+
async setLocale(locale) {
|
|
45
|
+
if (!SUPPORTED_LOCALES.includes(locale)) {
|
|
46
|
+
console.warn(`Unsupported locale: ${locale}, falling back to ${this.fallbackLocale}`);
|
|
47
|
+
locale = this.fallbackLocale;
|
|
48
|
+
}
|
|
49
|
+
await this.loadLocale(locale);
|
|
50
|
+
this.currentLocale = locale;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Get the current locale
|
|
54
|
+
*/
|
|
55
|
+
getLocale() {
|
|
56
|
+
return this.currentLocale;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Check if current locale is RTL
|
|
60
|
+
*/
|
|
61
|
+
isRTL() {
|
|
62
|
+
return RTL_LOCALES.includes(this.currentLocale);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get translation for a key
|
|
66
|
+
*/
|
|
67
|
+
t(key, params) {
|
|
68
|
+
const keys = key.split('.');
|
|
69
|
+
let translation = this.getNestedValue(this.translations.get(this.currentLocale), keys);
|
|
70
|
+
// Fallback to default locale
|
|
71
|
+
if (!translation && this.currentLocale !== this.fallbackLocale) {
|
|
72
|
+
translation = this.getNestedValue(this.translations.get(this.fallbackLocale), keys);
|
|
73
|
+
}
|
|
74
|
+
// Return key if no translation found
|
|
75
|
+
if (!translation) {
|
|
76
|
+
return key;
|
|
77
|
+
}
|
|
78
|
+
// Replace parameters
|
|
79
|
+
if (params) {
|
|
80
|
+
return this.interpolate(translation, params);
|
|
81
|
+
}
|
|
82
|
+
return translation;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Get a translation function bound to current locale
|
|
86
|
+
*/
|
|
87
|
+
getTranslationFunction() {
|
|
88
|
+
return (key, params) => this.t(key, params);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Get all translations for current locale
|
|
92
|
+
*/
|
|
93
|
+
getTranslations() {
|
|
94
|
+
return this.translations.get(this.currentLocale);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get tool description in current locale
|
|
98
|
+
*/
|
|
99
|
+
getToolDescription(toolName) {
|
|
100
|
+
return this.t(`tools.${toolName}.description`);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get tool name in current locale
|
|
104
|
+
*/
|
|
105
|
+
getToolName(toolName) {
|
|
106
|
+
return this.t(`tools.${toolName}.name`);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get error message in current locale
|
|
110
|
+
*/
|
|
111
|
+
getError(errorKey, params) {
|
|
112
|
+
return this.t(`errors.${errorKey}`, params);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get success message in current locale
|
|
116
|
+
*/
|
|
117
|
+
getSuccess(successKey, params) {
|
|
118
|
+
return this.t(`success.${successKey}`, params);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Detect locale from Accept-Language header
|
|
122
|
+
*/
|
|
123
|
+
static detectLocale(acceptLanguage) {
|
|
124
|
+
if (!acceptLanguage) {
|
|
125
|
+
return DEFAULT_LOCALE;
|
|
126
|
+
}
|
|
127
|
+
// Parse Accept-Language header
|
|
128
|
+
const locales = acceptLanguage
|
|
129
|
+
.split(',')
|
|
130
|
+
.map((lang) => {
|
|
131
|
+
const [locale, quality = 'q=1'] = lang.trim().split(';');
|
|
132
|
+
const q = parseFloat(quality.replace('q=', '')) || 1;
|
|
133
|
+
return { locale: locale.trim(), quality: q };
|
|
134
|
+
})
|
|
135
|
+
.sort((a, b) => b.quality - a.quality);
|
|
136
|
+
// Find first supported locale
|
|
137
|
+
for (const { locale } of locales) {
|
|
138
|
+
// Exact match
|
|
139
|
+
if (SUPPORTED_LOCALES.includes(locale)) {
|
|
140
|
+
return locale;
|
|
141
|
+
}
|
|
142
|
+
// Language-only match (e.g., 'en-US' -> 'en')
|
|
143
|
+
const lang = locale.split('-')[0];
|
|
144
|
+
if (SUPPORTED_LOCALES.includes(lang)) {
|
|
145
|
+
return lang;
|
|
146
|
+
}
|
|
147
|
+
// Regional variant match (e.g., 'zh' -> 'zh-CN')
|
|
148
|
+
const variant = SUPPORTED_LOCALES.find((l) => l.startsWith(lang + '-'));
|
|
149
|
+
if (variant) {
|
|
150
|
+
return variant;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return DEFAULT_LOCALE;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Get nested value from object
|
|
157
|
+
*/
|
|
158
|
+
getNestedValue(obj, keys) {
|
|
159
|
+
let current = obj;
|
|
160
|
+
for (const key of keys) {
|
|
161
|
+
if (current && typeof current === 'object' && key in current) {
|
|
162
|
+
current = current[key];
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
return undefined;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return typeof current === 'string' ? current : undefined;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Interpolate parameters into translation string
|
|
172
|
+
*/
|
|
173
|
+
interpolate(template, params) {
|
|
174
|
+
return template.replace(/\{\{(\w+)\}\}/g, (match, key) => {
|
|
175
|
+
return key in params ? String(params[key]) : match;
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// =============================================================================
|
|
180
|
+
// SINGLETON INSTANCE
|
|
181
|
+
// =============================================================================
|
|
182
|
+
let instance = null;
|
|
183
|
+
/**
|
|
184
|
+
* Get the singleton i18n manager instance
|
|
185
|
+
*/
|
|
186
|
+
export function getI18n() {
|
|
187
|
+
if (!instance) {
|
|
188
|
+
instance = new I18nManager();
|
|
189
|
+
}
|
|
190
|
+
return instance;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Initialize i18n with a specific locale
|
|
194
|
+
*/
|
|
195
|
+
export async function initI18n(locale) {
|
|
196
|
+
const i18n = getI18n();
|
|
197
|
+
await i18n.loadLocale('en'); // Always load English as fallback
|
|
198
|
+
if (locale && locale !== 'en') {
|
|
199
|
+
await i18n.setLocale(locale);
|
|
200
|
+
}
|
|
201
|
+
return i18n;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Shorthand translation function
|
|
205
|
+
*/
|
|
206
|
+
export function t(key, params) {
|
|
207
|
+
return getI18n().t(key, params);
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=i18n-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-manager.js","sourceRoot":"","sources":["../../src/i18n/i18n-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* i18n Module
|
|
3
|
+
*
|
|
4
|
+
* Internationalization support for PinePaper MCP Server.
|
|
5
|
+
* Supports 41 locales matching PinePaper Studio.
|
|
6
|
+
*/
|
|
7
|
+
export * from './types.js';
|
|
8
|
+
export * from './i18n-manager.js';
|
|
9
|
+
export { localeMap } from './locales/index.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* i18n Module
|
|
3
|
+
*
|
|
4
|
+
* Internationalization support for PinePaper MCP Server.
|
|
5
|
+
* Supports 41 locales matching PinePaper Studio.
|
|
6
|
+
*/
|
|
7
|
+
export * from './types.js';
|
|
8
|
+
export * from './i18n-manager.js';
|
|
9
|
+
export { localeMap } from './locales/index.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ar.d.ts","sourceRoot":"","sources":["../../../src/i18n/locales/ar.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,eAAO,MAAM,EAAE,uCA0Gb,CAAC;AAEH,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Arabic Translations (RTL)
|
|
3
|
+
*/
|
|
4
|
+
import { createBaseTranslation } from './base.js';
|
|
5
|
+
export const ar = createBaseTranslation({
|
|
6
|
+
tools: {
|
|
7
|
+
pinepaper_create_item: { name: 'إنشاء عنصر', description: '' },
|
|
8
|
+
pinepaper_modify_item: { name: 'تعديل عنصر', description: '' },
|
|
9
|
+
pinepaper_delete_item: { name: 'حذف عنصر', description: '' },
|
|
10
|
+
pinepaper_add_relation: { name: 'إضافة علاقة', description: '' },
|
|
11
|
+
pinepaper_remove_relation: { name: 'إزالة علاقة', description: '' },
|
|
12
|
+
pinepaper_query_relations: { name: 'استعلام العلاقات', description: '' },
|
|
13
|
+
pinepaper_animate: { name: 'تحريك', description: '' },
|
|
14
|
+
pinepaper_keyframe_animate: { name: 'تحريك بالإطارات الرئيسية', description: '' },
|
|
15
|
+
pinepaper_play_timeline: { name: 'تشغيل الخط الزمني', description: '' },
|
|
16
|
+
pinepaper_execute_generator: { name: 'تنفيذ المولد', description: '' },
|
|
17
|
+
pinepaper_list_generators: { name: 'قائمة المولدات', description: '' },
|
|
18
|
+
pinepaper_apply_effect: { name: 'تطبيق تأثير', description: '' },
|
|
19
|
+
pinepaper_get_items: { name: 'الحصول على العناصر', description: '' },
|
|
20
|
+
pinepaper_get_relation_stats: { name: 'إحصائيات العلاقات', description: '' },
|
|
21
|
+
pinepaper_set_background_color: { name: 'تعيين لون الخلفية', description: '' },
|
|
22
|
+
pinepaper_set_canvas_size: { name: 'تعيين حجم اللوحة', description: '' },
|
|
23
|
+
pinepaper_export_svg: { name: 'تصدير SVG', description: '' },
|
|
24
|
+
pinepaper_export_training_data: { name: 'تصدير بيانات التدريب', description: '' },
|
|
25
|
+
},
|
|
26
|
+
errors: {
|
|
27
|
+
itemNotFound: 'العنصر غير موجود: {{itemId}}',
|
|
28
|
+
invalidRelation: 'علاقة غير صالحة: {{relationType}}',
|
|
29
|
+
invalidParams: 'معلمات غير صالحة: {{details}}',
|
|
30
|
+
generatorNotFound: 'المولد غير موجود: {{generatorName}}',
|
|
31
|
+
exportFailed: 'فشل التصدير: {{reason}}',
|
|
32
|
+
executionError: 'خطأ في التنفيذ: {{message}}',
|
|
33
|
+
validationError: 'خطأ في التحقق: {{message}}',
|
|
34
|
+
unknownTool: 'أداة غير معروفة: {{toolName}}',
|
|
35
|
+
apiKeyRequired: 'مطلوب مفتاح API',
|
|
36
|
+
apiKeyInvalid: 'مفتاح API غير صالح',
|
|
37
|
+
apiKeyExpired: 'انتهت صلاحية مفتاح API',
|
|
38
|
+
rateLimitExceeded: 'تم تجاوز حد الطلبات. حاول مرة أخرى بعد {{seconds}} ثانية.',
|
|
39
|
+
},
|
|
40
|
+
success: {
|
|
41
|
+
itemCreated: 'تم إنشاء {{itemType}} في الموضع ({{x}}, {{y}})',
|
|
42
|
+
itemModified: 'تم تعديل العنصر {{itemId}}',
|
|
43
|
+
itemDeleted: 'تم حذف العنصر {{itemId}}',
|
|
44
|
+
relationAdded: 'تمت إضافة علاقة {{relationType}}: {{sourceId}} ← {{targetId}}',
|
|
45
|
+
relationRemoved: 'تمت إزالة العلاقة بين {{sourceId}} و {{targetId}}',
|
|
46
|
+
animationApplied: 'تم تطبيق تحريك {{animationType}} على {{itemId}}',
|
|
47
|
+
generatorExecuted: 'تم تنفيذ المولد {{generatorName}}',
|
|
48
|
+
effectApplied: 'تم تطبيق تأثير {{effectType}} على {{itemId}}',
|
|
49
|
+
backgroundSet: 'تم تعيين لون الخلفية إلى {{color}}',
|
|
50
|
+
canvasSizeSet: 'تم تعيين حجم اللوحة إلى {{width}}×{{height}}',
|
|
51
|
+
exported: 'تم تصدير {{format}} بنجاح',
|
|
52
|
+
},
|
|
53
|
+
itemTypes: {
|
|
54
|
+
text: 'نص',
|
|
55
|
+
circle: 'دائرة',
|
|
56
|
+
star: 'نجمة',
|
|
57
|
+
rectangle: 'مستطيل',
|
|
58
|
+
triangle: 'مثلث',
|
|
59
|
+
polygon: 'مضلع',
|
|
60
|
+
ellipse: 'قطع ناقص',
|
|
61
|
+
path: 'مسار',
|
|
62
|
+
line: 'خط',
|
|
63
|
+
arc: 'قوس',
|
|
64
|
+
},
|
|
65
|
+
relationTypes: {
|
|
66
|
+
orbits: 'يدور',
|
|
67
|
+
follows: 'يتبع',
|
|
68
|
+
attached_to: 'مرتبط بـ',
|
|
69
|
+
maintains_distance: 'يحافظ على المسافة',
|
|
70
|
+
points_at: 'يشير إلى',
|
|
71
|
+
mirrors: 'يعكس',
|
|
72
|
+
parallax: 'المنظر',
|
|
73
|
+
bounds_to: 'محدود بـ',
|
|
74
|
+
},
|
|
75
|
+
animationTypes: {
|
|
76
|
+
pulse: 'نبض',
|
|
77
|
+
rotate: 'دوران',
|
|
78
|
+
bounce: 'ارتداد',
|
|
79
|
+
fade: 'تلاشي',
|
|
80
|
+
wobble: 'تذبذب',
|
|
81
|
+
slide: 'انزلاق',
|
|
82
|
+
typewriter: 'آلة كاتبة',
|
|
83
|
+
},
|
|
84
|
+
generators: {
|
|
85
|
+
drawSunburst: 'أشعة الشمس',
|
|
86
|
+
drawSunsetScene: 'مشهد الغروب',
|
|
87
|
+
drawGrid: 'شبكة',
|
|
88
|
+
drawStackedCircles: 'دوائر متراصة',
|
|
89
|
+
drawCircuit: 'لوحة دوائر',
|
|
90
|
+
drawWaves: 'موجات',
|
|
91
|
+
drawPattern: 'نمط',
|
|
92
|
+
},
|
|
93
|
+
common: {
|
|
94
|
+
at: 'في',
|
|
95
|
+
with: 'مع',
|
|
96
|
+
to: 'إلى',
|
|
97
|
+
from: 'من',
|
|
98
|
+
position: 'موضع',
|
|
99
|
+
radius: 'نصف القطر',
|
|
100
|
+
color: 'لون',
|
|
101
|
+
speed: 'سرعة',
|
|
102
|
+
duration: 'مدة',
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
export default ar;
|
|
106
|
+
//# sourceMappingURL=ar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ar.js","sourceRoot":"","sources":["../../../src/i18n/locales/ar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Translation Template
|
|
3
|
+
*
|
|
4
|
+
* This file contains the structure for all translations.
|
|
5
|
+
* Each locale file should follow this structure.
|
|
6
|
+
*
|
|
7
|
+
* Tool descriptions are kept in English for AI/LLM processing,
|
|
8
|
+
* but UI-facing strings (names, errors, success messages) are translated.
|
|
9
|
+
*/
|
|
10
|
+
import { TranslationKeys } from '../types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Creates a base translation with common tool descriptions.
|
|
13
|
+
* Tool descriptions remain in English for optimal AI understanding,
|
|
14
|
+
* while user-facing messages are translated.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createBaseTranslation(overrides: Partial<TranslationKeys>): TranslationKeys;
|
|
17
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/i18n/locales/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CA6M1F"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Translation Template
|
|
3
|
+
*
|
|
4
|
+
* This file contains the structure for all translations.
|
|
5
|
+
* Each locale file should follow this structure.
|
|
6
|
+
*
|
|
7
|
+
* Tool descriptions are kept in English for AI/LLM processing,
|
|
8
|
+
* but UI-facing strings (names, errors, success messages) are translated.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Creates a base translation with common tool descriptions.
|
|
12
|
+
* Tool descriptions remain in English for optimal AI understanding,
|
|
13
|
+
* while user-facing messages are translated.
|
|
14
|
+
*/
|
|
15
|
+
export function createBaseTranslation(overrides) {
|
|
16
|
+
const base = {
|
|
17
|
+
tools: {
|
|
18
|
+
// Tool descriptions are intentionally kept in English
|
|
19
|
+
// for optimal AI/LLM understanding and consistency
|
|
20
|
+
pinepaper_create_item: {
|
|
21
|
+
name: overrides.tools?.pinepaper_create_item?.name || 'Create Item',
|
|
22
|
+
description: `Create an item on the PinePaper canvas.
|
|
23
|
+
|
|
24
|
+
USE WHEN:
|
|
25
|
+
- User wants to add text, shapes, or graphics to the canvas
|
|
26
|
+
- Creating new visual elements (circles, stars, rectangles, etc.)
|
|
27
|
+
- Starting a new scene or composition
|
|
28
|
+
|
|
29
|
+
ITEM TYPES:
|
|
30
|
+
- text: Text content with font styling
|
|
31
|
+
- circle: Circular shape with radius
|
|
32
|
+
- star: Star shape with inner/outer radius
|
|
33
|
+
- rectangle: Rectangle with width/height
|
|
34
|
+
- triangle: Triangular shape
|
|
35
|
+
- polygon: Regular polygon with N sides
|
|
36
|
+
- ellipse: Oval shape
|
|
37
|
+
- path: Custom path with segments or SVG data
|
|
38
|
+
- line: Line between two points
|
|
39
|
+
- arc: Curved arc through three points`,
|
|
40
|
+
},
|
|
41
|
+
pinepaper_modify_item: {
|
|
42
|
+
name: overrides.tools?.pinepaper_modify_item?.name || 'Modify Item',
|
|
43
|
+
description: `Modify an existing item's properties.
|
|
44
|
+
|
|
45
|
+
USE WHEN:
|
|
46
|
+
- Changing color, size, position of an existing item
|
|
47
|
+
- Updating text content
|
|
48
|
+
- Adjusting styling properties`,
|
|
49
|
+
},
|
|
50
|
+
pinepaper_delete_item: {
|
|
51
|
+
name: overrides.tools?.pinepaper_delete_item?.name || 'Delete Item',
|
|
52
|
+
description: `Delete an item from the canvas.
|
|
53
|
+
|
|
54
|
+
USE WHEN:
|
|
55
|
+
- Removing unwanted items
|
|
56
|
+
- Clearing specific elements
|
|
57
|
+
- Cleaning up the scene`,
|
|
58
|
+
},
|
|
59
|
+
pinepaper_add_relation: {
|
|
60
|
+
name: overrides.tools?.pinepaper_add_relation?.name || 'Add Relation',
|
|
61
|
+
description: `Create a behavior relationship between two items. Relations are the PRIMARY way to add animation in PinePaper.
|
|
62
|
+
|
|
63
|
+
RELATION TYPES:
|
|
64
|
+
- orbits: Circular motion around target
|
|
65
|
+
- follows: Move toward target with smoothing
|
|
66
|
+
- attached_to: Fixed offset from target
|
|
67
|
+
- maintains_distance: Stay fixed distance from target
|
|
68
|
+
- points_at: Rotate to face target
|
|
69
|
+
- mirrors: Mirror position across axis
|
|
70
|
+
- parallax: Move relative by depth
|
|
71
|
+
- bounds_to: Stay within bounds`,
|
|
72
|
+
},
|
|
73
|
+
pinepaper_remove_relation: {
|
|
74
|
+
name: overrides.tools?.pinepaper_remove_relation?.name || 'Remove Relation',
|
|
75
|
+
description: 'Remove a relationship between items.',
|
|
76
|
+
},
|
|
77
|
+
pinepaper_query_relations: {
|
|
78
|
+
name: overrides.tools?.pinepaper_query_relations?.name || 'Query Relations',
|
|
79
|
+
description: 'Query relationships for an item.',
|
|
80
|
+
},
|
|
81
|
+
pinepaper_animate: {
|
|
82
|
+
name: overrides.tools?.pinepaper_animate?.name || 'Animate',
|
|
83
|
+
description: `Apply a simple LOOP animation to an item.
|
|
84
|
+
|
|
85
|
+
ANIMATION TYPES: pulse, rotate, bounce, fade, wobble, slide, typewriter`,
|
|
86
|
+
},
|
|
87
|
+
pinepaper_keyframe_animate: {
|
|
88
|
+
name: overrides.tools?.pinepaper_keyframe_animate?.name || 'Keyframe Animation',
|
|
89
|
+
description: 'Apply keyframe-based animation with precise timing.',
|
|
90
|
+
},
|
|
91
|
+
pinepaper_play_timeline: {
|
|
92
|
+
name: overrides.tools?.pinepaper_play_timeline?.name || 'Play Timeline',
|
|
93
|
+
description: 'Control keyframe animation playback.',
|
|
94
|
+
},
|
|
95
|
+
pinepaper_execute_generator: {
|
|
96
|
+
name: overrides.tools?.pinepaper_execute_generator?.name || 'Execute Generator',
|
|
97
|
+
description: 'Execute a background generator to create procedural patterns.',
|
|
98
|
+
},
|
|
99
|
+
pinepaper_list_generators: {
|
|
100
|
+
name: overrides.tools?.pinepaper_list_generators?.name || 'List Generators',
|
|
101
|
+
description: 'Get a list of all available background generators.',
|
|
102
|
+
},
|
|
103
|
+
pinepaper_apply_effect: {
|
|
104
|
+
name: overrides.tools?.pinepaper_apply_effect?.name || 'Apply Effect',
|
|
105
|
+
description: 'Apply a visual effect to an item.',
|
|
106
|
+
},
|
|
107
|
+
pinepaper_get_items: {
|
|
108
|
+
name: overrides.tools?.pinepaper_get_items?.name || 'Get Items',
|
|
109
|
+
description: 'Get all or filtered items from the canvas.',
|
|
110
|
+
},
|
|
111
|
+
pinepaper_get_relation_stats: {
|
|
112
|
+
name: overrides.tools?.pinepaper_get_relation_stats?.name || 'Get Relation Stats',
|
|
113
|
+
description: 'Get statistics about active relations in the scene.',
|
|
114
|
+
},
|
|
115
|
+
pinepaper_set_background_color: {
|
|
116
|
+
name: overrides.tools?.pinepaper_set_background_color?.name || 'Set Background Color',
|
|
117
|
+
description: 'Set the canvas background color.',
|
|
118
|
+
},
|
|
119
|
+
pinepaper_set_canvas_size: {
|
|
120
|
+
name: overrides.tools?.pinepaper_set_canvas_size?.name || 'Set Canvas Size',
|
|
121
|
+
description: 'Change the canvas dimensions.',
|
|
122
|
+
},
|
|
123
|
+
pinepaper_export_svg: {
|
|
124
|
+
name: overrides.tools?.pinepaper_export_svg?.name || 'Export SVG',
|
|
125
|
+
description: 'Export the scene as animated SVG.',
|
|
126
|
+
},
|
|
127
|
+
pinepaper_export_training_data: {
|
|
128
|
+
name: overrides.tools?.pinepaper_export_training_data?.name || 'Export Training Data',
|
|
129
|
+
description: 'Export relation data as training pairs for LLM fine-tuning.',
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
errors: {
|
|
133
|
+
itemNotFound: overrides.errors?.itemNotFound || 'Item not found: {{itemId}}',
|
|
134
|
+
invalidRelation: overrides.errors?.invalidRelation || 'Invalid relation: {{relationType}}',
|
|
135
|
+
invalidParams: overrides.errors?.invalidParams || 'Invalid parameters: {{details}}',
|
|
136
|
+
generatorNotFound: overrides.errors?.generatorNotFound || 'Generator not found: {{generatorName}}',
|
|
137
|
+
exportFailed: overrides.errors?.exportFailed || 'Export failed: {{reason}}',
|
|
138
|
+
executionError: overrides.errors?.executionError || 'Execution error: {{message}}',
|
|
139
|
+
validationError: overrides.errors?.validationError || 'Validation error: {{message}}',
|
|
140
|
+
unknownTool: overrides.errors?.unknownTool || 'Unknown tool: {{toolName}}',
|
|
141
|
+
apiKeyRequired: overrides.errors?.apiKeyRequired || 'API key required',
|
|
142
|
+
apiKeyInvalid: overrides.errors?.apiKeyInvalid || 'Invalid API key',
|
|
143
|
+
apiKeyExpired: overrides.errors?.apiKeyExpired || 'API key expired',
|
|
144
|
+
rateLimitExceeded: overrides.errors?.rateLimitExceeded || 'Rate limit exceeded. Try again in {{seconds}} seconds.',
|
|
145
|
+
},
|
|
146
|
+
success: {
|
|
147
|
+
itemCreated: overrides.success?.itemCreated || 'Created {{itemType}} at position ({{x}}, {{y}})',
|
|
148
|
+
itemModified: overrides.success?.itemModified || 'Modified item {{itemId}}',
|
|
149
|
+
itemDeleted: overrides.success?.itemDeleted || 'Deleted item {{itemId}}',
|
|
150
|
+
relationAdded: overrides.success?.relationAdded || 'Added {{relationType}} relation: {{sourceId}} → {{targetId}}',
|
|
151
|
+
relationRemoved: overrides.success?.relationRemoved || 'Removed relation between {{sourceId}} and {{targetId}}',
|
|
152
|
+
animationApplied: overrides.success?.animationApplied || 'Applied {{animationType}} animation to {{itemId}}',
|
|
153
|
+
generatorExecuted: overrides.success?.generatorExecuted || 'Executed {{generatorName}} generator',
|
|
154
|
+
effectApplied: overrides.success?.effectApplied || 'Applied {{effectType}} effect to {{itemId}}',
|
|
155
|
+
backgroundSet: overrides.success?.backgroundSet || 'Set background color to {{color}}',
|
|
156
|
+
canvasSizeSet: overrides.success?.canvasSizeSet || 'Set canvas size to {{width}}×{{height}}',
|
|
157
|
+
exported: overrides.success?.exported || 'Exported {{format}} successfully',
|
|
158
|
+
},
|
|
159
|
+
itemTypes: {
|
|
160
|
+
text: overrides.itemTypes?.text || 'Text',
|
|
161
|
+
circle: overrides.itemTypes?.circle || 'Circle',
|
|
162
|
+
star: overrides.itemTypes?.star || 'Star',
|
|
163
|
+
rectangle: overrides.itemTypes?.rectangle || 'Rectangle',
|
|
164
|
+
triangle: overrides.itemTypes?.triangle || 'Triangle',
|
|
165
|
+
polygon: overrides.itemTypes?.polygon || 'Polygon',
|
|
166
|
+
ellipse: overrides.itemTypes?.ellipse || 'Ellipse',
|
|
167
|
+
path: overrides.itemTypes?.path || 'Path',
|
|
168
|
+
line: overrides.itemTypes?.line || 'Line',
|
|
169
|
+
arc: overrides.itemTypes?.arc || 'Arc',
|
|
170
|
+
},
|
|
171
|
+
relationTypes: {
|
|
172
|
+
orbits: overrides.relationTypes?.orbits || 'Orbits',
|
|
173
|
+
follows: overrides.relationTypes?.follows || 'Follows',
|
|
174
|
+
attached_to: overrides.relationTypes?.attached_to || 'Attached to',
|
|
175
|
+
maintains_distance: overrides.relationTypes?.maintains_distance || 'Maintains distance',
|
|
176
|
+
points_at: overrides.relationTypes?.points_at || 'Points at',
|
|
177
|
+
mirrors: overrides.relationTypes?.mirrors || 'Mirrors',
|
|
178
|
+
parallax: overrides.relationTypes?.parallax || 'Parallax',
|
|
179
|
+
bounds_to: overrides.relationTypes?.bounds_to || 'Bounds to',
|
|
180
|
+
},
|
|
181
|
+
animationTypes: {
|
|
182
|
+
pulse: overrides.animationTypes?.pulse || 'Pulse',
|
|
183
|
+
rotate: overrides.animationTypes?.rotate || 'Rotate',
|
|
184
|
+
bounce: overrides.animationTypes?.bounce || 'Bounce',
|
|
185
|
+
fade: overrides.animationTypes?.fade || 'Fade',
|
|
186
|
+
wobble: overrides.animationTypes?.wobble || 'Wobble',
|
|
187
|
+
slide: overrides.animationTypes?.slide || 'Slide',
|
|
188
|
+
typewriter: overrides.animationTypes?.typewriter || 'Typewriter',
|
|
189
|
+
},
|
|
190
|
+
generators: {
|
|
191
|
+
drawSunburst: overrides.generators?.drawSunburst || 'Sunburst',
|
|
192
|
+
drawSunsetScene: overrides.generators?.drawSunsetScene || 'Sunset Scene',
|
|
193
|
+
drawGrid: overrides.generators?.drawGrid || 'Grid',
|
|
194
|
+
drawStackedCircles: overrides.generators?.drawStackedCircles || 'Stacked Circles',
|
|
195
|
+
drawCircuit: overrides.generators?.drawCircuit || 'Circuit Board',
|
|
196
|
+
drawWaves: overrides.generators?.drawWaves || 'Waves',
|
|
197
|
+
drawPattern: overrides.generators?.drawPattern || 'Pattern',
|
|
198
|
+
},
|
|
199
|
+
common: {
|
|
200
|
+
at: overrides.common?.at || 'at',
|
|
201
|
+
with: overrides.common?.with || 'with',
|
|
202
|
+
to: overrides.common?.to || 'to',
|
|
203
|
+
from: overrides.common?.from || 'from',
|
|
204
|
+
position: overrides.common?.position || 'position',
|
|
205
|
+
radius: overrides.common?.radius || 'radius',
|
|
206
|
+
color: overrides.common?.color || 'color',
|
|
207
|
+
speed: overrides.common?.speed || 'speed',
|
|
208
|
+
duration: overrides.common?.duration || 'duration',
|
|
209
|
+
},
|
|
210
|
+
};
|
|
211
|
+
return base;
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/i18n/locales/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bn.d.ts","sourceRoot":"","sources":["../../../src/i18n/locales/bn.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,eAAO,MAAM,EAAE,uCA0Gb,CAAC;AAEH,eAAe,EAAE,CAAC"}
|