@kodiak-finance/orderly-i18n 2.9.2 → 2.9.3

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.
Files changed (45) hide show
  1. package/dist/{constant-BVTYiz-c.d.mts → constant-Co-7H6O3.d.mts} +8 -0
  2. package/dist/{constant-BVTYiz-c.d.ts → constant-Co-7H6O3.d.ts} +8 -0
  3. package/dist/constant.d.mts +1 -1
  4. package/dist/constant.d.ts +1 -1
  5. package/dist/constant.js +9 -0
  6. package/dist/constant.js.map +1 -1
  7. package/dist/constant.mjs +9 -0
  8. package/dist/constant.mjs.map +1 -1
  9. package/dist/index.d.mts +5 -5
  10. package/dist/index.d.ts +5 -5
  11. package/dist/index.js +129 -20
  12. package/dist/index.js.map +1 -1
  13. package/dist/index.mjs +128 -21
  14. package/dist/index.mjs.map +1 -1
  15. package/dist/locale.csv +1323 -1321
  16. package/dist/locales/ar.json +1324 -0
  17. package/dist/locales/de.json +2 -0
  18. package/dist/locales/en.json +3 -1
  19. package/dist/locales/es.json +2 -0
  20. package/dist/locales/fa.json +1324 -0
  21. package/dist/locales/fr.json +2 -0
  22. package/dist/locales/he.json +1324 -0
  23. package/dist/locales/id.json +2 -0
  24. package/dist/locales/it.json +2 -0
  25. package/dist/locales/ja.json +2 -0
  26. package/dist/locales/ko.json +2 -0
  27. package/dist/locales/nl.json +2 -0
  28. package/dist/locales/pl.json +2 -0
  29. package/dist/locales/pt.json +2 -0
  30. package/dist/locales/ru.json +2 -0
  31. package/dist/locales/tc.json +2 -0
  32. package/dist/locales/tr.json +2 -0
  33. package/dist/locales/uk.json +2 -0
  34. package/dist/locales/vi.json +2 -0
  35. package/dist/locales/zh.json +2 -0
  36. package/dist/utils.d.mts +8 -2
  37. package/dist/utils.d.ts +8 -2
  38. package/dist/utils.js +55 -7
  39. package/dist/utils.js.map +1 -1
  40. package/dist/utils.mjs +54 -8
  41. package/dist/utils.mjs.map +1 -1
  42. package/docs/guide/integration.md +272 -0
  43. package/package.json +1 -1
  44. package/scripts/mergeAiLocaleChunks.js +77 -0
  45. package/scripts/splitEnLocaleChunks.js +42 -0
@@ -440,6 +440,8 @@ declare const en: {
440
440
  "transfer.LTV.tooltip": string;
441
441
  "transfer.LTV.currentLTV": string;
442
442
  "transfer.LTV.isolatedModeUsdcOnly": string;
443
+ "transfer.LTV.availableCrossMarginHint": string;
444
+ "transfer.LTV.isolatedMarginOrderHint": string;
443
445
  "transfer.convert": string;
444
446
  "transfer.deposit.globalMaxQty.error": string;
445
447
  "transfer.deposit.gasFee.error": string;
@@ -1384,6 +1386,12 @@ declare const useLanguageContext: () => LanguageContextState;
1384
1386
  declare enum LocaleEnum {
1385
1387
  /** English */
1386
1388
  en = "en",
1389
+ /** Arabic */
1390
+ ar = "ar",
1391
+ /** Persian (Farsi) */
1392
+ fa = "fa",
1393
+ /** Hebrew */
1394
+ he = "he",
1387
1395
  /** Chinese */
1388
1396
  zh = "zh",
1389
1397
  /** Japanese */
@@ -440,6 +440,8 @@ declare const en: {
440
440
  "transfer.LTV.tooltip": string;
441
441
  "transfer.LTV.currentLTV": string;
442
442
  "transfer.LTV.isolatedModeUsdcOnly": string;
443
+ "transfer.LTV.availableCrossMarginHint": string;
444
+ "transfer.LTV.isolatedMarginOrderHint": string;
443
445
  "transfer.convert": string;
444
446
  "transfer.deposit.globalMaxQty.error": string;
445
447
  "transfer.deposit.gasFee.error": string;
@@ -1384,6 +1386,12 @@ declare const useLanguageContext: () => LanguageContextState;
1384
1386
  declare enum LocaleEnum {
1385
1387
  /** English */
1386
1388
  en = "en",
1389
+ /** Arabic */
1390
+ ar = "ar",
1391
+ /** Persian (Farsi) */
1392
+ fa = "fa",
1393
+ /** Hebrew */
1394
+ he = "he",
1387
1395
  /** Chinese */
1388
1396
  zh = "zh",
1389
1397
  /** Japanese */
@@ -1,2 +1,2 @@
1
- export { f as LocaleEnum, g as defaultLanguages, h as defaultLng, i as defaultNS, k as i18nCookieKey, j as i18nLocalStorageKey } from './constant-BVTYiz-c.mjs';
1
+ export { f as LocaleEnum, g as defaultLanguages, h as defaultLng, i as defaultNS, k as i18nCookieKey, j as i18nLocalStorageKey } from './constant-Co-7H6O3.mjs';
2
2
  import 'react';
@@ -1,2 +1,2 @@
1
- export { f as LocaleEnum, g as defaultLanguages, h as defaultLng, i as defaultNS, k as i18nCookieKey, j as i18nLocalStorageKey } from './constant-BVTYiz-c.js';
1
+ export { f as LocaleEnum, g as defaultLanguages, h as defaultLng, i as defaultNS, k as i18nCookieKey, j as i18nLocalStorageKey } from './constant-Co-7H6O3.js';
2
2
  import 'react';
package/dist/constant.js CHANGED
@@ -3,6 +3,9 @@
3
3
  // src/constant.ts
4
4
  var LocaleEnum = /* @__PURE__ */ ((LocaleEnum2) => {
5
5
  LocaleEnum2["en"] = "en";
6
+ LocaleEnum2["ar"] = "ar";
7
+ LocaleEnum2["fa"] = "fa";
8
+ LocaleEnum2["he"] = "he";
6
9
  LocaleEnum2["zh"] = "zh";
7
10
  LocaleEnum2["ja"] = "ja";
8
11
  LocaleEnum2["es"] = "es";
@@ -24,6 +27,12 @@ var LocaleEnum = /* @__PURE__ */ ((LocaleEnum2) => {
24
27
  var defaultLanguages = [
25
28
  { localCode: "en" /* en */, displayName: "English" },
26
29
  // English
30
+ { localCode: "ar" /* ar */, displayName: "\u0627\u0644\u0639\u0631\u0628\u064A\u0629" },
31
+ // Arabic
32
+ { localCode: "fa" /* fa */, displayName: "\u0641\u0627\u0631\u0633\u06CC" },
33
+ // Persian
34
+ { localCode: "he" /* he */, displayName: "\u05E2\u05D1\u05E8\u05D9\u05EA" },
35
+ // Hebrew
27
36
  { localCode: "zh" /* zh */, displayName: "\u4E2D\u6587" },
28
37
  // Chinese
29
38
  { localCode: "ja" /* ja */, displayName: "\u65E5\u672C\u8A9E" },
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constant.ts"],"names":["LocaleEnum"],"mappings":";;;AAEO,IAAK,UAAA,qBAAAA,WAAAA,KAAL;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAlCK,EAAA,OAAAA,WAAAA;AAAA,CAAA,EAAA,UAAA,IAAA,EAAA;AAqCL,IAAM,gBAAA,GAA+B;AAAA,EAC1C,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,SAAA,EAAU;AAAA;AAAA,EACnD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,cAAA,EAAK;AAAA;AAAA,EAC9C,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,oBAAA,EAAM;AAAA;AAAA,EAC/C,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,YAAA,EAAU;AAAA;AAAA,EACnD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,oBAAA,EAAM;AAAA;AAAA,EAC/C,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,sBAAA,EAAa;AAAA;AAAA,EACtD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,SAAA,EAAU;AAAA;AAAA,EACnD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,aAAA,EAAW;AAAA;AAAA,EACpD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,4CAAA,EAAU;AAAA;AAAA,EACnD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,kBAAA,EAAmB;AAAA;AAAA,EAC5D,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,cAAA,EAAS;AAAA;AAAA,EAClD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,UAAA,EAAW;AAAA;AAAA,EACpD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,cAAA,EAAY;AAAA;AAAA,EACrD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,8DAAA,EAAa;AAAA;AAAA,EACtD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,QAAA,EAAS;AAAA;AAAA,EAClD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,YAAA,EAAa;AAAA;AAAA,EACtD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,0BAAA;AAAO;AAClD;AACO,IAAM,UAAA,GAAa,IAAA;AACnB,IAAM,SAAA,GAAY;AAElB,IAAM,mBAAA,GAAsB;AAG5B,IAAM,aAAA,GAAgB","file":"constant.js","sourcesContent":["import { Language } from \"./provider/languageContext\";\n\nexport enum LocaleEnum {\n /** English */\n en = \"en\",\n /** Chinese */\n zh = \"zh\",\n /** Japanese */\n ja = \"ja\",\n /** Spanish */\n es = \"es\",\n /** Korean */\n ko = \"ko\",\n /** Vietnamese */\n vi = \"vi\",\n /** German */\n de = \"de\",\n /** French */\n fr = \"fr\",\n /** Russian */\n ru = \"ru\",\n /** Indonesian */\n id = \"id\",\n /** Turkish */\n tr = \"tr\",\n /** Italian */\n it = \"it\",\n /** Portuguese */\n pt = \"pt\",\n /** Ukrainian */\n uk = \"uk\",\n /** Polish */\n pl = \"pl\",\n /** Dutch */\n nl = \"nl\",\n /** Traditional Chinese */\n tc = \"tc\",\n}\n\nexport const defaultLanguages: Language[] = [\n { localCode: LocaleEnum.en, displayName: \"English\" }, // English\n { localCode: LocaleEnum.zh, displayName: \"中文\" }, // Chinese\n { localCode: LocaleEnum.ja, displayName: \"日本語\" }, // Japanese\n { localCode: LocaleEnum.es, displayName: \"Español\" }, // Spanish\n { localCode: LocaleEnum.ko, displayName: \"한국어\" }, // Korean\n { localCode: LocaleEnum.vi, displayName: \"Tiếng Việt\" }, // Vietnamese\n { localCode: LocaleEnum.de, displayName: \"Deutsch\" }, // German\n { localCode: LocaleEnum.fr, displayName: \"Français\" }, // French\n { localCode: LocaleEnum.ru, displayName: \"Русский\" }, // Russian\n { localCode: LocaleEnum.id, displayName: \"Bahasa Indonesia\" }, // Indonesian\n { localCode: LocaleEnum.tr, displayName: \"Türkçe\" }, // Turkish\n { localCode: LocaleEnum.it, displayName: \"Italiano\" }, // Italian\n { localCode: LocaleEnum.pt, displayName: \"Português\" }, // Portuguese\n { localCode: LocaleEnum.uk, displayName: \"Українська\" }, // Ukrainian\n { localCode: LocaleEnum.pl, displayName: \"Polski\" }, // Polish\n { localCode: LocaleEnum.nl, displayName: \"Nederlands\" }, // Dutch\n { localCode: LocaleEnum.tc, displayName: \"繁體中文\" }, // Traditional Chinese\n];\nexport const defaultLng = LocaleEnum.en;\nexport const defaultNS = \"translation\";\n\nexport const i18nLocalStorageKey = \"orderly_i18nLng\";\n\n// preferred-language\nexport const i18nCookieKey = \"orderly_i18nLng\";\n"]}
1
+ {"version":3,"sources":["../src/constant.ts"],"names":["LocaleEnum"],"mappings":"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","file":"constant.js","sourcesContent":["import { Language } from \"./provider/languageContext\";\n\nexport enum LocaleEnum {\n /** English */\n en = \"en\",\n /** Arabic */\n ar = \"ar\",\n /** Persian (Farsi) */\n fa = \"fa\",\n /** Hebrew */\n he = \"he\",\n /** Chinese */\n zh = \"zh\",\n /** Japanese */\n ja = \"ja\",\n /** Spanish */\n es = \"es\",\n /** Korean */\n ko = \"ko\",\n /** Vietnamese */\n vi = \"vi\",\n /** German */\n de = \"de\",\n /** French */\n fr = \"fr\",\n /** Russian */\n ru = \"ru\",\n /** Indonesian */\n id = \"id\",\n /** Turkish */\n tr = \"tr\",\n /** Italian */\n it = \"it\",\n /** Portuguese */\n pt = \"pt\",\n /** Ukrainian */\n uk = \"uk\",\n /** Polish */\n pl = \"pl\",\n /** Dutch */\n nl = \"nl\",\n /** Traditional Chinese */\n tc = \"tc\",\n}\n\nexport const defaultLanguages: Language[] = [\n { localCode: LocaleEnum.en, displayName: \"English\" }, // English\n { localCode: LocaleEnum.ar, displayName: \"العربية\" }, // Arabic\n { localCode: LocaleEnum.fa, displayName: \"فارسی\" }, // Persian\n { localCode: LocaleEnum.he, displayName: \"עברית\" }, // Hebrew\n { localCode: LocaleEnum.zh, displayName: \"中文\" }, // Chinese\n { localCode: LocaleEnum.ja, displayName: \"日本語\" }, // Japanese\n { localCode: LocaleEnum.es, displayName: \"Español\" }, // Spanish\n { localCode: LocaleEnum.ko, displayName: \"한국어\" }, // Korean\n { localCode: LocaleEnum.vi, displayName: \"Tiếng Việt\" }, // Vietnamese\n { localCode: LocaleEnum.de, displayName: \"Deutsch\" }, // German\n { localCode: LocaleEnum.fr, displayName: \"Français\" }, // French\n { localCode: LocaleEnum.ru, displayName: \"Русский\" }, // Russian\n { localCode: LocaleEnum.id, displayName: \"Bahasa Indonesia\" }, // Indonesian\n { localCode: LocaleEnum.tr, displayName: \"Türkçe\" }, // Turkish\n { localCode: LocaleEnum.it, displayName: \"Italiano\" }, // Italian\n { localCode: LocaleEnum.pt, displayName: \"Português\" }, // Portuguese\n { localCode: LocaleEnum.uk, displayName: \"Українська\" }, // Ukrainian\n { localCode: LocaleEnum.pl, displayName: \"Polski\" }, // Polish\n { localCode: LocaleEnum.nl, displayName: \"Nederlands\" }, // Dutch\n { localCode: LocaleEnum.tc, displayName: \"繁體中文\" }, // Traditional Chinese\n];\nexport const defaultLng = LocaleEnum.en;\nexport const defaultNS = \"translation\";\n\nexport const i18nLocalStorageKey = \"orderly_i18nLng\";\n\n// preferred-language\nexport const i18nCookieKey = \"orderly_i18nLng\";\n"]}
package/dist/constant.mjs CHANGED
@@ -1,6 +1,9 @@
1
1
  // src/constant.ts
2
2
  var LocaleEnum = /* @__PURE__ */ ((LocaleEnum2) => {
3
3
  LocaleEnum2["en"] = "en";
4
+ LocaleEnum2["ar"] = "ar";
5
+ LocaleEnum2["fa"] = "fa";
6
+ LocaleEnum2["he"] = "he";
4
7
  LocaleEnum2["zh"] = "zh";
5
8
  LocaleEnum2["ja"] = "ja";
6
9
  LocaleEnum2["es"] = "es";
@@ -22,6 +25,12 @@ var LocaleEnum = /* @__PURE__ */ ((LocaleEnum2) => {
22
25
  var defaultLanguages = [
23
26
  { localCode: "en" /* en */, displayName: "English" },
24
27
  // English
28
+ { localCode: "ar" /* ar */, displayName: "\u0627\u0644\u0639\u0631\u0628\u064A\u0629" },
29
+ // Arabic
30
+ { localCode: "fa" /* fa */, displayName: "\u0641\u0627\u0631\u0633\u06CC" },
31
+ // Persian
32
+ { localCode: "he" /* he */, displayName: "\u05E2\u05D1\u05E8\u05D9\u05EA" },
33
+ // Hebrew
25
34
  { localCode: "zh" /* zh */, displayName: "\u4E2D\u6587" },
26
35
  // Chinese
27
36
  { localCode: "ja" /* ja */, displayName: "\u65E5\u672C\u8A9E" },
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constant.ts"],"names":["LocaleEnum"],"mappings":";AAEO,IAAK,UAAA,qBAAAA,WAAAA,KAAL;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAEL,EAAAA,YAAA,IAAA,CAAA,GAAK,IAAA;AAlCK,EAAA,OAAAA,WAAAA;AAAA,CAAA,EAAA,UAAA,IAAA,EAAA;AAqCL,IAAM,gBAAA,GAA+B;AAAA,EAC1C,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,SAAA,EAAU;AAAA;AAAA,EACnD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,cAAA,EAAK;AAAA;AAAA,EAC9C,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,oBAAA,EAAM;AAAA;AAAA,EAC/C,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,YAAA,EAAU;AAAA;AAAA,EACnD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,oBAAA,EAAM;AAAA;AAAA,EAC/C,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,sBAAA,EAAa;AAAA;AAAA,EACtD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,SAAA,EAAU;AAAA;AAAA,EACnD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,aAAA,EAAW;AAAA;AAAA,EACpD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,4CAAA,EAAU;AAAA;AAAA,EACnD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,kBAAA,EAAmB;AAAA;AAAA,EAC5D,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,cAAA,EAAS;AAAA;AAAA,EAClD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,UAAA,EAAW;AAAA;AAAA,EACpD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,cAAA,EAAY;AAAA;AAAA,EACrD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,8DAAA,EAAa;AAAA;AAAA,EACtD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,QAAA,EAAS;AAAA;AAAA,EAClD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,YAAA,EAAa;AAAA;AAAA,EACtD,EAAE,SAAA,EAAW,IAAA,WAAe,WAAA,EAAa,0BAAA;AAAO;AAClD;AACO,IAAM,UAAA,GAAa,IAAA;AACnB,IAAM,SAAA,GAAY;AAElB,IAAM,mBAAA,GAAsB;AAG5B,IAAM,aAAA,GAAgB","file":"constant.mjs","sourcesContent":["import { Language } from \"./provider/languageContext\";\n\nexport enum LocaleEnum {\n /** English */\n en = \"en\",\n /** Chinese */\n zh = \"zh\",\n /** Japanese */\n ja = \"ja\",\n /** Spanish */\n es = \"es\",\n /** Korean */\n ko = \"ko\",\n /** Vietnamese */\n vi = \"vi\",\n /** German */\n de = \"de\",\n /** French */\n fr = \"fr\",\n /** Russian */\n ru = \"ru\",\n /** Indonesian */\n id = \"id\",\n /** Turkish */\n tr = \"tr\",\n /** Italian */\n it = \"it\",\n /** Portuguese */\n pt = \"pt\",\n /** Ukrainian */\n uk = \"uk\",\n /** Polish */\n pl = \"pl\",\n /** Dutch */\n nl = \"nl\",\n /** Traditional Chinese */\n tc = \"tc\",\n}\n\nexport const defaultLanguages: Language[] = [\n { localCode: LocaleEnum.en, displayName: \"English\" }, // English\n { localCode: LocaleEnum.zh, displayName: \"中文\" }, // Chinese\n { localCode: LocaleEnum.ja, displayName: \"日本語\" }, // Japanese\n { localCode: LocaleEnum.es, displayName: \"Español\" }, // Spanish\n { localCode: LocaleEnum.ko, displayName: \"한국어\" }, // Korean\n { localCode: LocaleEnum.vi, displayName: \"Tiếng Việt\" }, // Vietnamese\n { localCode: LocaleEnum.de, displayName: \"Deutsch\" }, // German\n { localCode: LocaleEnum.fr, displayName: \"Français\" }, // French\n { localCode: LocaleEnum.ru, displayName: \"Русский\" }, // Russian\n { localCode: LocaleEnum.id, displayName: \"Bahasa Indonesia\" }, // Indonesian\n { localCode: LocaleEnum.tr, displayName: \"Türkçe\" }, // Turkish\n { localCode: LocaleEnum.it, displayName: \"Italiano\" }, // Italian\n { localCode: LocaleEnum.pt, displayName: \"Português\" }, // Portuguese\n { localCode: LocaleEnum.uk, displayName: \"Українська\" }, // Ukrainian\n { localCode: LocaleEnum.pl, displayName: \"Polski\" }, // Polish\n { localCode: LocaleEnum.nl, displayName: \"Nederlands\" }, // Dutch\n { localCode: LocaleEnum.tc, displayName: \"繁體中文\" }, // Traditional Chinese\n];\nexport const defaultLng = LocaleEnum.en;\nexport const defaultNS = \"translation\";\n\nexport const i18nLocalStorageKey = \"orderly_i18nLng\";\n\n// preferred-language\nexport const i18nCookieKey = \"orderly_i18nLng\";\n"]}
1
+ {"version":3,"sources":["../src/constant.ts"],"names":["LocaleEnum"],"mappings":"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","file":"constant.mjs","sourcesContent":["import { Language } from \"./provider/languageContext\";\n\nexport enum LocaleEnum {\n /** English */\n en = \"en\",\n /** Arabic */\n ar = \"ar\",\n /** Persian (Farsi) */\n fa = \"fa\",\n /** Hebrew */\n he = \"he\",\n /** Chinese */\n zh = \"zh\",\n /** Japanese */\n ja = \"ja\",\n /** Spanish */\n es = \"es\",\n /** Korean */\n ko = \"ko\",\n /** Vietnamese */\n vi = \"vi\",\n /** German */\n de = \"de\",\n /** French */\n fr = \"fr\",\n /** Russian */\n ru = \"ru\",\n /** Indonesian */\n id = \"id\",\n /** Turkish */\n tr = \"tr\",\n /** Italian */\n it = \"it\",\n /** Portuguese */\n pt = \"pt\",\n /** Ukrainian */\n uk = \"uk\",\n /** Polish */\n pl = \"pl\",\n /** Dutch */\n nl = \"nl\",\n /** Traditional Chinese */\n tc = \"tc\",\n}\n\nexport const defaultLanguages: Language[] = [\n { localCode: LocaleEnum.en, displayName: \"English\" }, // English\n { localCode: LocaleEnum.ar, displayName: \"العربية\" }, // Arabic\n { localCode: LocaleEnum.fa, displayName: \"فارسی\" }, // Persian\n { localCode: LocaleEnum.he, displayName: \"עברית\" }, // Hebrew\n { localCode: LocaleEnum.zh, displayName: \"中文\" }, // Chinese\n { localCode: LocaleEnum.ja, displayName: \"日本語\" }, // Japanese\n { localCode: LocaleEnum.es, displayName: \"Español\" }, // Spanish\n { localCode: LocaleEnum.ko, displayName: \"한국어\" }, // Korean\n { localCode: LocaleEnum.vi, displayName: \"Tiếng Việt\" }, // Vietnamese\n { localCode: LocaleEnum.de, displayName: \"Deutsch\" }, // German\n { localCode: LocaleEnum.fr, displayName: \"Français\" }, // French\n { localCode: LocaleEnum.ru, displayName: \"Русский\" }, // Russian\n { localCode: LocaleEnum.id, displayName: \"Bahasa Indonesia\" }, // Indonesian\n { localCode: LocaleEnum.tr, displayName: \"Türkçe\" }, // Turkish\n { localCode: LocaleEnum.it, displayName: \"Italiano\" }, // Italian\n { localCode: LocaleEnum.pt, displayName: \"Português\" }, // Portuguese\n { localCode: LocaleEnum.uk, displayName: \"Українська\" }, // Ukrainian\n { localCode: LocaleEnum.pl, displayName: \"Polski\" }, // Polish\n { localCode: LocaleEnum.nl, displayName: \"Nederlands\" }, // Dutch\n { localCode: LocaleEnum.tc, displayName: \"繁體中文\" }, // Traditional Chinese\n];\nexport const defaultLng = LocaleEnum.en;\nexport const defaultNS = \"translation\";\n\nexport const i18nLocalStorageKey = \"orderly_i18nLng\";\n\n// preferred-language\nexport const i18nCookieKey = \"orderly_i18nLng\";\n"]}
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { R as Resources, A as AsyncResources, L as LocaleCode, a as LanguageContextState } from './constant-BVTYiz-c.mjs';
2
- export { b as Language, d as LanguageContext, f as LocaleEnum, e as LocaleMessages, P as PopupMode, c as PopupProps, g as defaultLanguages, h as defaultLng, i as defaultNS, l as en, k as i18nCookieKey, j as i18nLocalStorageKey, u as useLanguageContext } from './constant-BVTYiz-c.mjs';
1
+ import { R as Resources, A as AsyncResources, L as LocaleCode, a as LanguageContextState } from './constant-Co-7H6O3.mjs';
2
+ export { b as Language, d as LanguageContext, f as LocaleEnum, e as LocaleMessages, P as PopupMode, c as PopupProps, g as defaultLanguages, h as defaultLng, i as defaultNS, l as en, k as i18nCookieKey, j as i18nLocalStorageKey, u as useLanguageContext } from './constant-Co-7H6O3.mjs';
3
3
  import * as react_i18next from 'react-i18next';
4
4
  import { FallbackNs, UseTranslationOptions } from 'react-i18next';
5
5
  export * from 'react-i18next';
@@ -8,7 +8,7 @@ import { InitOptions, FlatNamespace, KeyPrefix } from 'i18next';
8
8
  export { createInstance, default as i18next } from 'i18next';
9
9
  import { PropsWithChildren, FC } from 'react';
10
10
  import { $Tuple } from 'react-i18next/helpers';
11
- export { generatePath, getLocalePathFromPathname, parseI18nLang, removeLangPrefix } from './utils.mjs';
11
+ export { generatePath, getLocalePathFromPathname, isRTLDirectionLanguage, parseI18nLang, removeLangPrefix, syncDocumentDirection } from './utils.mjs';
12
12
 
13
13
  declare function createI18nInstance(options?: InitOptions): i18next.i18n;
14
14
  declare const i18n: i18next.i18n;
@@ -96,8 +96,8 @@ declare function useLocaleCode(): LocaleCode;
96
96
  * Registers host-provided i18n resources into the shared i18n instance whenever
97
97
  * the active locale or `resources` reference changes.
98
98
  *
99
- * - When `resources` is a function, it is invoked for the current locale to
100
- * load the bundle (e.g. from another bundle, backend, or runtime loader).
99
+ * - When `resources` is a function, it is registered as a preloader for language
100
+ * switches and also invoked for the current locale after mount.
101
101
  * - When `resources` is a static map, all provided locale bundles are registered.
102
102
  *
103
103
  * Prefer a stable `resources` reference (e.g. `useCallback` for loaders, module
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { R as Resources, A as AsyncResources, L as LocaleCode, a as LanguageContextState } from './constant-BVTYiz-c.js';
2
- export { b as Language, d as LanguageContext, f as LocaleEnum, e as LocaleMessages, P as PopupMode, c as PopupProps, g as defaultLanguages, h as defaultLng, i as defaultNS, l as en, k as i18nCookieKey, j as i18nLocalStorageKey, u as useLanguageContext } from './constant-BVTYiz-c.js';
1
+ import { R as Resources, A as AsyncResources, L as LocaleCode, a as LanguageContextState } from './constant-Co-7H6O3.js';
2
+ export { b as Language, d as LanguageContext, f as LocaleEnum, e as LocaleMessages, P as PopupMode, c as PopupProps, g as defaultLanguages, h as defaultLng, i as defaultNS, l as en, k as i18nCookieKey, j as i18nLocalStorageKey, u as useLanguageContext } from './constant-Co-7H6O3.js';
3
3
  import * as react_i18next from 'react-i18next';
4
4
  import { FallbackNs, UseTranslationOptions } from 'react-i18next';
5
5
  export * from 'react-i18next';
@@ -8,7 +8,7 @@ import { InitOptions, FlatNamespace, KeyPrefix } from 'i18next';
8
8
  export { createInstance, default as i18next } from 'i18next';
9
9
  import { PropsWithChildren, FC } from 'react';
10
10
  import { $Tuple } from 'react-i18next/helpers';
11
- export { generatePath, getLocalePathFromPathname, parseI18nLang, removeLangPrefix } from './utils.js';
11
+ export { generatePath, getLocalePathFromPathname, isRTLDirectionLanguage, parseI18nLang, removeLangPrefix, syncDocumentDirection } from './utils.js';
12
12
 
13
13
  declare function createI18nInstance(options?: InitOptions): i18next.i18n;
14
14
  declare const i18n: i18next.i18n;
@@ -96,8 +96,8 @@ declare function useLocaleCode(): LocaleCode;
96
96
  * Registers host-provided i18n resources into the shared i18n instance whenever
97
97
  * the active locale or `resources` reference changes.
98
98
  *
99
- * - When `resources` is a function, it is invoked for the current locale to
100
- * load the bundle (e.g. from another bundle, backend, or runtime loader).
99
+ * - When `resources` is a function, it is registered as a preloader for language
100
+ * switches and also invoked for the current locale after mount.
101
101
  * - When `resources` is a static map, all provided locale bundles are registered.
102
102
  *
103
103
  * Prefer a stable `resources` reference (e.g. `useCallback` for loaders, module
package/dist/index.js CHANGED
@@ -16,6 +16,9 @@ var LanguageDetector__default = /*#__PURE__*/_interopDefault(LanguageDetector);
16
16
  // src/constant.ts
17
17
  var LocaleEnum = /* @__PURE__ */ ((LocaleEnum2) => {
18
18
  LocaleEnum2["en"] = "en";
19
+ LocaleEnum2["ar"] = "ar";
20
+ LocaleEnum2["fa"] = "fa";
21
+ LocaleEnum2["he"] = "he";
19
22
  LocaleEnum2["zh"] = "zh";
20
23
  LocaleEnum2["ja"] = "ja";
21
24
  LocaleEnum2["es"] = "es";
@@ -37,6 +40,12 @@ var LocaleEnum = /* @__PURE__ */ ((LocaleEnum2) => {
37
40
  var defaultLanguages = [
38
41
  { localCode: "en" /* en */, displayName: "English" },
39
42
  // English
43
+ { localCode: "ar" /* ar */, displayName: "\u0627\u0644\u0639\u0631\u0628\u064A\u0629" },
44
+ // Arabic
45
+ { localCode: "fa" /* fa */, displayName: "\u0641\u0627\u0631\u0633\u06CC" },
46
+ // Persian
47
+ { localCode: "he" /* he */, displayName: "\u05E2\u05D1\u05E8\u05D9\u05EA" },
48
+ // Hebrew
40
49
  { localCode: "zh" /* zh */, displayName: "\u4E2D\u6587" },
41
50
  // Chinese
42
51
  { localCode: "ja" /* ja */, displayName: "\u65E5\u672C\u8A9E" },
@@ -641,7 +650,7 @@ var orderEntry = {
641
650
  "marginMode.crossMargin": "Cross Margin",
642
651
  "marginMode.isolatedMargin": "Isolated Margin",
643
652
  "marginMode.crossMarginDescription": "Margin and PnL are shared across positions. You may lose all positions if liquidation occurs.",
644
- "marginMode.isolatedMarginDescription": "Margin and PnL are independent for each position. You'll only lose the current position if liquidation occurs.",
653
+ "marginMode.isolatedMarginDescription": "Margin and PnL are independent for each position. You'll only lose the current position if liquidation occurs. Only USDC is accepted as collateral. <0>Learn more</0>",
645
654
  "marginMode.current": "Current",
646
655
  "marginMode.marginModeSettings": "Margin mode settings",
647
656
  "marginMode.updatedSuccessfully": "Updated successfully",
@@ -1365,6 +1374,8 @@ var transfer = {
1365
1374
  "transfer.LTV.tooltip": `If your LTV exceeds {{threshold}}% or your USDC balance plus Unsettled PnL falls below {{usdcThreshold}}, your collateral will be automatically converted with a haircut. To avoid this, you can manually convert assets to USDC.`,
1366
1375
  "transfer.LTV.currentLTV": "Current LTV",
1367
1376
  "transfer.LTV.isolatedModeUsdcOnly": "Only USDC can be used as margin in Isolated Mode.",
1377
+ "transfer.LTV.availableCrossMarginHint": "Available balance = USDC balance + Unsettled PnL. All collateral assets contribute to your available margin.",
1378
+ "transfer.LTV.isolatedMarginOrderHint": "In Isolated Margin mode, only USDC is accepted as margin. Convert your assets to USDC to place orders.",
1368
1379
  "transfer.convert": "Convert",
1369
1380
  // "transfer.convert.note": "Please note that convert fees will be charged.",
1370
1381
  "transfer.deposit.globalMaxQty.error": "Your deposit couldn't be processed because the global deposit cap for {{token}} on {{chain}} has been reached. This is typically resolved after rebalancing, which takes around 1 hour. Please try again later, or use a smaller amount or a different chain. <0>Learn more</0>",
@@ -1542,6 +1553,25 @@ var en = {
1542
1553
  ...navigation
1543
1554
  };
1544
1555
 
1556
+ // src/resourceBundles/externalResources.ts
1557
+ var externalResourcePreloaders = /* @__PURE__ */ new Set();
1558
+ function registerExternalResourcePreloader(preloader) {
1559
+ externalResourcePreloaders.add(preloader);
1560
+ return () => {
1561
+ externalResourcePreloaders.delete(preloader);
1562
+ };
1563
+ }
1564
+ async function preloadExternalResources(lang) {
1565
+ await Promise.all(
1566
+ Array.from(externalResourcePreloaders).map(async (preloader) => {
1567
+ try {
1568
+ await preloader(lang);
1569
+ } catch (error) {
1570
+ }
1571
+ })
1572
+ );
1573
+ }
1574
+
1545
1575
  // src/i18n.ts
1546
1576
  var resources = {
1547
1577
  [defaultLng]: { [defaultNS]: en }
@@ -1552,7 +1582,7 @@ var languageDetector = new LanguageDetector__default.default(null, {
1552
1582
  caches: ["localStorage", "cookie"]
1553
1583
  });
1554
1584
  function createI18nInstance(options) {
1555
- const instance = i18next.createInstance({
1585
+ return i18next.createInstance({
1556
1586
  // lng: defaultLng,
1557
1587
  fallbackLng: defaultLng,
1558
1588
  // debug: true,
@@ -1560,15 +1590,33 @@ function createI18nInstance(options) {
1560
1590
  escapeValue: false
1561
1591
  },
1562
1592
  ...options
1563
- });
1564
- if (typeof document !== "undefined") {
1565
- instance.use(languageDetector);
1566
- }
1567
- return instance;
1593
+ }).use(languageDetector);
1568
1594
  }
1569
1595
  var i18n = createI18nInstance({
1570
1596
  resources
1571
1597
  });
1598
+ var parseChangeLanguageTarget = (lang) => {
1599
+ if (!lang) {
1600
+ return void 0;
1601
+ }
1602
+ const localeCodes = Object.values(LocaleEnum);
1603
+ if (localeCodes.includes(lang)) {
1604
+ return lang;
1605
+ }
1606
+ const match = lang.match(/^([a-z]{2})/i);
1607
+ if (match && localeCodes.includes(match[1])) {
1608
+ return match[1];
1609
+ }
1610
+ return lang;
1611
+ };
1612
+ var originalChangeLanguage = i18n.changeLanguage.bind(i18n);
1613
+ i18n.changeLanguage = (async (lang, callback) => {
1614
+ const localeCode = parseChangeLanguageTarget(lang);
1615
+ if (localeCode) {
1616
+ await preloadExternalResources(localeCode);
1617
+ }
1618
+ return originalChangeLanguage(lang, callback);
1619
+ });
1572
1620
  i18n.init();
1573
1621
  var i18n_default = i18n;
1574
1622
  var LanguageContext = react.createContext({
@@ -1671,6 +1719,16 @@ async function importLocaleJsonModule(loader) {
1671
1719
  }
1672
1720
 
1673
1721
  // src/utils.ts
1722
+ var isRTLDirectionLanguage = (lang) => /^(?:ar|fa|he)(?:-|$)/i.test(lang ?? "");
1723
+ var syncDocumentDirection = (lang) => {
1724
+ if (typeof document === "undefined") {
1725
+ return;
1726
+ }
1727
+ document.documentElement.setAttribute(
1728
+ "dir",
1729
+ isRTLDirectionLanguage(lang) ? "rtl" : "ltr"
1730
+ );
1731
+ };
1674
1732
  function parseI18nLang(lang, localeCodes, defaultLang) {
1675
1733
  localeCodes = localeCodes || Object.values(LocaleEnum);
1676
1734
  defaultLang = defaultLang || "en" /* en */;
@@ -1740,6 +1798,16 @@ var LanguageProvider = (props) => {
1740
1798
  };
1741
1799
  initLanguage();
1742
1800
  }, [i18n_default.language]);
1801
+ react.useEffect(() => {
1802
+ syncDocumentDirection(i18n_default.language);
1803
+ const handleLanguageChange = (lang) => {
1804
+ syncDocumentDirection(lang);
1805
+ };
1806
+ i18n_default.on("languageChanged", handleLanguageChange);
1807
+ return () => {
1808
+ i18n_default.off("languageChanged", handleLanguageChange);
1809
+ };
1810
+ }, []);
1743
1811
  const languageBeforeChangedHandle = react.useCallback(
1744
1812
  async (lang) => {
1745
1813
  await onLanguageBeforeChanged?.(lang);
@@ -1778,18 +1846,63 @@ function useLocaleCode() {
1778
1846
  }, [i18n_default]);
1779
1847
  return localeCode;
1780
1848
  }
1849
+
1850
+ // src/hooks/useRegisterExternalResources.ts
1851
+ var asyncResourceLoadCache = /* @__PURE__ */ new WeakMap();
1852
+ function getAsyncResourceLoadState(resources2) {
1853
+ let state = asyncResourceLoadCache.get(resources2);
1854
+ if (!state) {
1855
+ state = {
1856
+ loadedLocales: /* @__PURE__ */ new Set(),
1857
+ pendingLoads: /* @__PURE__ */ new Map()
1858
+ };
1859
+ asyncResourceLoadCache.set(resources2, state);
1860
+ }
1861
+ return state;
1862
+ }
1863
+ function loadAsyncResources(resources2, localeCode) {
1864
+ const state = getAsyncResourceLoadState(resources2);
1865
+ if (state.loadedLocales.has(localeCode)) {
1866
+ return Promise.resolve();
1867
+ }
1868
+ const pendingLoad = state.pendingLoads.get(localeCode);
1869
+ if (pendingLoad) {
1870
+ return pendingLoad;
1871
+ }
1872
+ const loadPromise = registerResources(resources2, localeCode).then(() => {
1873
+ state.loadedLocales.add(localeCode);
1874
+ }).finally(() => {
1875
+ state.pendingLoads.delete(localeCode);
1876
+ });
1877
+ state.pendingLoads.set(localeCode, loadPromise);
1878
+ return loadPromise;
1879
+ }
1880
+ function useRegisterExternalResources(resources2) {
1881
+ const localeCode = useLocaleCode();
1882
+ react.useEffect(() => {
1883
+ if (typeof resources2 === "function") {
1884
+ return registerExternalResourcePreloader(
1885
+ (lang) => loadAsyncResources(resources2, lang)
1886
+ );
1887
+ }
1888
+ }, [resources2]);
1889
+ react.useEffect(() => {
1890
+ if (typeof resources2 === "function") {
1891
+ loadAsyncResources(resources2, localeCode).catch((error) => {
1892
+ });
1893
+ } else {
1894
+ registerResources(resources2, localeCode);
1895
+ }
1896
+ }, [localeCode, resources2]);
1897
+ }
1781
1898
  var LocaleProvider = (props) => {
1782
1899
  const { children, locale, resource, resources: resources2, ...languageProviderProps } = props;
1783
- const localeCodeFromI18n = useLocaleCode();
1900
+ useRegisterExternalResources(resources2);
1784
1901
  react.useEffect(() => {
1785
- if (resources2) {
1786
- registerResources(resources2, locale ?? localeCodeFromI18n);
1787
- return;
1788
- }
1789
- if (resource && locale) {
1902
+ if (!resources2 && resource && locale) {
1790
1903
  i18n_default.addResourceBundle(locale, defaultNS, resource, true, true);
1791
1904
  }
1792
- }, [locale, localeCodeFromI18n, resource, resources2]);
1905
+ }, [locale, resource, resources2]);
1793
1906
  react.useEffect(() => {
1794
1907
  if (locale && locale !== i18n_default.language) {
1795
1908
  i18n_default.changeLanguage(locale);
@@ -1797,12 +1910,6 @@ var LocaleProvider = (props) => {
1797
1910
  }, [locale]);
1798
1911
  return /* @__PURE__ */ jsxRuntime.jsx(LanguageProvider, { ...languageProviderProps, children: /* @__PURE__ */ jsxRuntime.jsx(reactI18next.I18nextProvider, { i18n: i18n_default, defaultNS, children }) });
1799
1912
  };
1800
- function useRegisterExternalResources(resources2) {
1801
- const localeCode = useLocaleCode();
1802
- react.useEffect(() => {
1803
- registerResources(resources2, localeCode);
1804
- }, [localeCode, resources2]);
1805
- }
1806
1913
  var ExternalLocaleProvider = (props) => {
1807
1914
  useRegisterExternalResources(props.resources);
1808
1915
  return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: props.children });
@@ -1849,11 +1956,13 @@ exports.i18n = i18n_default;
1849
1956
  exports.i18nCookieKey = i18nCookieKey;
1850
1957
  exports.i18nLocalStorageKey = i18nLocalStorageKey;
1851
1958
  exports.importLocaleJsonModule = importLocaleJsonModule;
1959
+ exports.isRTLDirectionLanguage = isRTLDirectionLanguage;
1852
1960
  exports.parseI18nLang = parseI18nLang;
1853
1961
  exports.preloadDefaultResource = preloadDefaultResource;
1854
1962
  exports.registerDefaultResource = registerDefaultResource;
1855
1963
  exports.registerResources = registerResources;
1856
1964
  exports.removeLangPrefix = removeLangPrefix;
1965
+ exports.syncDocumentDirection = syncDocumentDirection;
1857
1966
  exports.useLanguageContext = useLanguageContext;
1858
1967
  exports.useLocaleCode = useLocaleCode;
1859
1968
  exports.useRegisterExternalResources = useRegisterExternalResources;