@liberfi.io/i18n 0.1.0 → 0.1.2

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.
@@ -0,0 +1,41 @@
1
+ {
2
+ "common.cancel": "取消",
3
+ "common.confirm": "确定",
4
+ "common.ok": "确定",
5
+ "common.yes": "是",
6
+ "common.no": "否",
7
+ "common.all": "全部",
8
+ "common.buy": "购买",
9
+ "common.sell": "出售",
10
+ "common.long": "长",
11
+ "common.short": "短",
12
+ "common.edit": "编辑",
13
+ "common.save": "保存",
14
+ "common.add": "添加",
15
+ "common.delete": "删除",
16
+ "common.tips": "提示",
17
+ "common.max": "最大",
18
+ "common.download": "下载",
19
+ "common.copy": "复制",
20
+ "common.copy.failed": "复制失败",
21
+ "common.copy.copied": "复制成功",
22
+ "common.share": "分享",
23
+ "common.export": "导出",
24
+ "mediaTrack.title": "Media Track",
25
+ "mediaTrack.description": "Media Track",
26
+ "tokens.copied.address": "地址复制成功",
27
+ "tokens.listHeader.token": "代币",
28
+ "tokens.listHeader.priceHistories": "价格走势",
29
+ "tokens.listHeader.price": "价格",
30
+ "tokens.listHeader.marketCap": "市值",
31
+ "tokens.listHeader.liquidity": "流动性",
32
+ "tokens.listHeader.volumes": "成交量",
33
+ "tokens.listHeader.txs": "交易数",
34
+ "tokens.listHeader.traders": "交易人数",
35
+ "tokens.listHeader.tokenInfo": "代币信息",
36
+ "tokens.listHeader.actions": "操作",
37
+ "tokens.tokenInfo.holders": "持有者",
38
+ "tokens.tokenInfo.top10HoldingsRatio": "前10持有者",
39
+ "tokens.tokenInfo.top100HoldingsRatio": "前100持有者",
40
+ "tokens.tokenInfo.devHoldingsRatio": "开发者持有"
41
+ }
@@ -0,0 +1,141 @@
1
+ export { createInstance, default as i18next } from 'i18next';
2
+
3
+ declare const en: {
4
+ "tokens.copied.address": string;
5
+ "tokens.listHeader.token": string;
6
+ "tokens.listHeader.priceHistories": string;
7
+ "tokens.listHeader.price": string;
8
+ "tokens.listHeader.marketCap": string;
9
+ "tokens.listHeader.liquidity": string;
10
+ "tokens.listHeader.volumes": string;
11
+ "tokens.listHeader.txs": string;
12
+ "tokens.listHeader.traders": string;
13
+ "tokens.listHeader.tokenInfo": string;
14
+ "tokens.listHeader.actions": string;
15
+ "tokens.tokenInfo.holders": string;
16
+ "tokens.tokenInfo.top10HoldingsRatio": string;
17
+ "tokens.tokenInfo.top100HoldingsRatio": string;
18
+ "tokens.tokenInfo.devHoldingsRatio": string;
19
+ "mediaTrack.title": string;
20
+ "mediaTrack.description": string;
21
+ "common.cancel": string;
22
+ "common.confirm": string;
23
+ "common.ok": string;
24
+ "common.yes": string;
25
+ "common.no": string;
26
+ "common.all": string;
27
+ "common.buy": string;
28
+ "common.sell": string;
29
+ "common.long": string;
30
+ "common.short": string;
31
+ "common.edit": string;
32
+ "common.save": string;
33
+ "common.add": string;
34
+ "common.delete": string;
35
+ "common.tips": string;
36
+ "common.max": string;
37
+ "common.download": string;
38
+ "common.copy": string;
39
+ "common.copy.failed": string;
40
+ "common.copy.copied": string;
41
+ "common.share": string;
42
+ "common.export": string;
43
+ };
44
+
45
+ declare enum LocaleEnum {
46
+ /** English */
47
+ en = "en",
48
+ /** Chinese */
49
+ zh = "zh",
50
+ /** Japanese */
51
+ ja = "ja",
52
+ /** Spanish */
53
+ es = "es",
54
+ /** Korean */
55
+ ko = "ko",
56
+ /** Vietnamese */
57
+ vi = "vi",
58
+ /** German */
59
+ de = "de",
60
+ /** French */
61
+ fr = "fr",
62
+ /** Russian */
63
+ ru = "ru",
64
+ /** Indonesian */
65
+ id = "id",
66
+ /** Turkish */
67
+ tr = "tr",
68
+ /** Italian */
69
+ it = "it",
70
+ /** Portuguese */
71
+ pt = "pt",
72
+ /** Ukrainian */
73
+ uk = "uk",
74
+ /** Polish */
75
+ pl = "pl",
76
+ /** Dutch */
77
+ nl = "nl"
78
+ }
79
+ type LocaleCode = keyof typeof LocaleEnum | (string & {});
80
+ type Language = {
81
+ localCode: LocaleCode;
82
+ displayName: string;
83
+ };
84
+ type ExtendLocaleMessages = Record<`extend.${string}`, string>;
85
+ type LocaleMessages = typeof en & ExtendLocaleMessages;
86
+ type Resources<T extends {} = {}> = {
87
+ [key in LocaleCode]?: Partial<LocaleMessages & T>;
88
+ };
89
+ declare module "i18next" {
90
+ interface CustomTypeOptions {
91
+ defaultNS: "translation";
92
+ resources: {
93
+ translation: LocaleMessages;
94
+ };
95
+ }
96
+ }
97
+
98
+ declare const defaultLanguages: Language[];
99
+ declare const defaultLng = LocaleEnum.en;
100
+ declare const defaultNS = "translation";
101
+ declare const i18nLocalStorageKey = "liberfi_i18nLng";
102
+ declare const i18nCookieKey = "liberfi_i18nLng";
103
+
104
+ /**
105
+ * get locale path from pathname
106
+ * @param pathname - pathname to get locale path
107
+ * @param localeCodes - locale codes to check
108
+ * @example
109
+ * getLocalePathFromPathname('/en/perp/PERP_ETH_USDC') => 'en'
110
+ * getLocalePathFromPathname('/perp/PERP_ETH_USDC') => null
111
+ * getLocalePathFromPathname('/en/markets') => 'en'
112
+ * getLocalePathFromPathname('/markets') => null
113
+ */
114
+ declare function getLocalePathFromPathname(pathname: string, localeCodes?: string[]): string | null;
115
+
116
+ /**
117
+ * transform browser language to i18n locale codes
118
+ * @param lang - browser language
119
+ * @param localeCodes - locale codes to check
120
+ * @param defaultLang - default locale code
121
+ * @example
122
+ * parseI18nLang('en-US') => 'en'
123
+ * parseI18nLang('zh-CN') => 'zh'
124
+ * parseI18nLang('zh-TW') => 'zh'
125
+ * parseI18nLang('ja') => 'ja'
126
+ * */
127
+ declare function parseI18nLang(lang: string, localeCodes?: LocaleCode[], defaultLang?: LocaleCode): string;
128
+
129
+ /**
130
+ * remove lang prefix from pathname
131
+ * @param pathname - pathname to remove lang prefix
132
+ * @param localeCodes - locale codes to check
133
+ * @example
134
+ * removeLangPrefix('/en/perp/PERP_ETH_USDC') => '/perp/PERP_ETH_USDC'
135
+ * removeLangPrefix('/en/markets') => '/markets'
136
+ * removeLangPrefix('/perp/PERP_ETH_USDC') => '/perp/PERP_ETH_USDC'
137
+ * removeLangPrefix('/markets') => '/markets'
138
+ */
139
+ declare function removeLangPrefix(pathname: string, localeCodes?: string[]): string;
140
+
141
+ export { type ExtendLocaleMessages, type Language, type LocaleCode, LocaleEnum, type LocaleMessages, type Resources, defaultLanguages, defaultLng, defaultNS, en, getLocalePathFromPathname, i18nCookieKey, i18nLocalStorageKey, parseI18nLang, removeLangPrefix };
@@ -0,0 +1,141 @@
1
+ export { createInstance, default as i18next } from 'i18next';
2
+
3
+ declare const en: {
4
+ "tokens.copied.address": string;
5
+ "tokens.listHeader.token": string;
6
+ "tokens.listHeader.priceHistories": string;
7
+ "tokens.listHeader.price": string;
8
+ "tokens.listHeader.marketCap": string;
9
+ "tokens.listHeader.liquidity": string;
10
+ "tokens.listHeader.volumes": string;
11
+ "tokens.listHeader.txs": string;
12
+ "tokens.listHeader.traders": string;
13
+ "tokens.listHeader.tokenInfo": string;
14
+ "tokens.listHeader.actions": string;
15
+ "tokens.tokenInfo.holders": string;
16
+ "tokens.tokenInfo.top10HoldingsRatio": string;
17
+ "tokens.tokenInfo.top100HoldingsRatio": string;
18
+ "tokens.tokenInfo.devHoldingsRatio": string;
19
+ "mediaTrack.title": string;
20
+ "mediaTrack.description": string;
21
+ "common.cancel": string;
22
+ "common.confirm": string;
23
+ "common.ok": string;
24
+ "common.yes": string;
25
+ "common.no": string;
26
+ "common.all": string;
27
+ "common.buy": string;
28
+ "common.sell": string;
29
+ "common.long": string;
30
+ "common.short": string;
31
+ "common.edit": string;
32
+ "common.save": string;
33
+ "common.add": string;
34
+ "common.delete": string;
35
+ "common.tips": string;
36
+ "common.max": string;
37
+ "common.download": string;
38
+ "common.copy": string;
39
+ "common.copy.failed": string;
40
+ "common.copy.copied": string;
41
+ "common.share": string;
42
+ "common.export": string;
43
+ };
44
+
45
+ declare enum LocaleEnum {
46
+ /** English */
47
+ en = "en",
48
+ /** Chinese */
49
+ zh = "zh",
50
+ /** Japanese */
51
+ ja = "ja",
52
+ /** Spanish */
53
+ es = "es",
54
+ /** Korean */
55
+ ko = "ko",
56
+ /** Vietnamese */
57
+ vi = "vi",
58
+ /** German */
59
+ de = "de",
60
+ /** French */
61
+ fr = "fr",
62
+ /** Russian */
63
+ ru = "ru",
64
+ /** Indonesian */
65
+ id = "id",
66
+ /** Turkish */
67
+ tr = "tr",
68
+ /** Italian */
69
+ it = "it",
70
+ /** Portuguese */
71
+ pt = "pt",
72
+ /** Ukrainian */
73
+ uk = "uk",
74
+ /** Polish */
75
+ pl = "pl",
76
+ /** Dutch */
77
+ nl = "nl"
78
+ }
79
+ type LocaleCode = keyof typeof LocaleEnum | (string & {});
80
+ type Language = {
81
+ localCode: LocaleCode;
82
+ displayName: string;
83
+ };
84
+ type ExtendLocaleMessages = Record<`extend.${string}`, string>;
85
+ type LocaleMessages = typeof en & ExtendLocaleMessages;
86
+ type Resources<T extends {} = {}> = {
87
+ [key in LocaleCode]?: Partial<LocaleMessages & T>;
88
+ };
89
+ declare module "i18next" {
90
+ interface CustomTypeOptions {
91
+ defaultNS: "translation";
92
+ resources: {
93
+ translation: LocaleMessages;
94
+ };
95
+ }
96
+ }
97
+
98
+ declare const defaultLanguages: Language[];
99
+ declare const defaultLng = LocaleEnum.en;
100
+ declare const defaultNS = "translation";
101
+ declare const i18nLocalStorageKey = "liberfi_i18nLng";
102
+ declare const i18nCookieKey = "liberfi_i18nLng";
103
+
104
+ /**
105
+ * get locale path from pathname
106
+ * @param pathname - pathname to get locale path
107
+ * @param localeCodes - locale codes to check
108
+ * @example
109
+ * getLocalePathFromPathname('/en/perp/PERP_ETH_USDC') => 'en'
110
+ * getLocalePathFromPathname('/perp/PERP_ETH_USDC') => null
111
+ * getLocalePathFromPathname('/en/markets') => 'en'
112
+ * getLocalePathFromPathname('/markets') => null
113
+ */
114
+ declare function getLocalePathFromPathname(pathname: string, localeCodes?: string[]): string | null;
115
+
116
+ /**
117
+ * transform browser language to i18n locale codes
118
+ * @param lang - browser language
119
+ * @param localeCodes - locale codes to check
120
+ * @param defaultLang - default locale code
121
+ * @example
122
+ * parseI18nLang('en-US') => 'en'
123
+ * parseI18nLang('zh-CN') => 'zh'
124
+ * parseI18nLang('zh-TW') => 'zh'
125
+ * parseI18nLang('ja') => 'ja'
126
+ * */
127
+ declare function parseI18nLang(lang: string, localeCodes?: LocaleCode[], defaultLang?: LocaleCode): string;
128
+
129
+ /**
130
+ * remove lang prefix from pathname
131
+ * @param pathname - pathname to remove lang prefix
132
+ * @param localeCodes - locale codes to check
133
+ * @example
134
+ * removeLangPrefix('/en/perp/PERP_ETH_USDC') => '/perp/PERP_ETH_USDC'
135
+ * removeLangPrefix('/en/markets') => '/markets'
136
+ * removeLangPrefix('/perp/PERP_ETH_USDC') => '/perp/PERP_ETH_USDC'
137
+ * removeLangPrefix('/markets') => '/markets'
138
+ */
139
+ declare function removeLangPrefix(pathname: string, localeCodes?: string[]): string;
140
+
141
+ export { type ExtendLocaleMessages, type Language, type LocaleCode, LocaleEnum, type LocaleMessages, type Resources, defaultLanguages, defaultLng, defaultNS, en, getLocalePathFromPathname, i18nCookieKey, i18nLocalStorageKey, parseI18nLang, removeLangPrefix };
package/dist/server.js ADDED
@@ -0,0 +1,2 @@
1
+ 'use strict';var i18next=require('i18next');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var i18next__default=/*#__PURE__*/_interopDefault(i18next);var r=(e=>(e.en="en",e.zh="zh",e.ja="ja",e.es="es",e.ko="ko",e.vi="vi",e.de="de",e.fr="fr",e.ru="ru",e.id="id",e.tr="tr",e.it="it",e.pt="pt",e.uk="uk",e.pl="pl",e.nl="nl",e))(r||{});var x=[{localCode:"en",displayName:"English"},{localCode:"zh",displayName:"\u4E2D\u6587"},{localCode:"ja",displayName:"\u65E5\u672C\u8A9E"},{localCode:"es",displayName:"Espa\xF1ol"},{localCode:"ko",displayName:"\uD55C\uAD6D\uC5B4"},{localCode:"vi",displayName:"Ti\u1EBFng Vi\u1EC7t"},{localCode:"de",displayName:"Deutsch"},{localCode:"fr",displayName:"Fran\xE7ais"},{localCode:"ru",displayName:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"},{localCode:"id",displayName:"Bahasa Indonesia"},{localCode:"tr",displayName:"T\xFCrk\xE7e"},{localCode:"it",displayName:"Italiano"},{localCode:"pt",displayName:"Portugu\xEAs"},{localCode:"uk",displayName:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430"},{localCode:"pl",displayName:"Polski"},{localCode:"nl",displayName:"Nederlands"}],g="en",u="translation",C="liberfi_i18nLng",N="liberfi_i18nLng";var i={"common.cancel":"Cancel","common.confirm":"Confirm","common.ok":"OK","common.yes":"Yes","common.no":"No","common.all":"All","common.buy":"Buy","common.sell":"Sell","common.long":"Long","common.short":"Short","common.edit":"Edit","common.save":"Save","common.add":"Add","common.delete":"Delete","common.tips":"Tips","common.max":"Max","common.download":"Download","common.copy":"Copy","common.copy.failed":"Copy failed","common.copy.copied":"Copied to clipboard","common.share":"Share","common.export":"Export"};var l={"mediaTrack.title":"Media Track","mediaTrack.description":"Media Track"};var d={"tokens.copied.address":"Token address copied to clipboard","tokens.listHeader.token":"Token","tokens.listHeader.priceHistories":"Price Histories","tokens.listHeader.price":"Price","tokens.listHeader.marketCap":"Market Cap","tokens.listHeader.liquidity":"Liquidity","tokens.listHeader.volumes":"Volumes","tokens.listHeader.txs":"TXNS","tokens.listHeader.traders":"Traders","tokens.listHeader.tokenInfo":"Token Info","tokens.listHeader.actions":"Actions","tokens.tokenInfo.holders":"Holders","tokens.tokenInfo.top10HoldingsRatio":"Top 10 Holders","tokens.tokenInfo.top100HoldingsRatio":"Top 100 Holders","tokens.tokenInfo.devHoldingsRatio":"Dev Holders"};var M={...i,...l,...d};function c(a,o){let t=a.split("/")[1];return o=o||Object.values(r),o.includes(t)?t:null}function z(a,o,t){o=o||Object.values(r),t=t||"en";let m=/^([a-z]{2})/i,n=a?.match(m);if(!n)return t;let s=n[1];return o.includes(a)?a:o.includes(s)?s:t}function w(a,o){let t=c(a,o);return t?a.replace(new RegExp(`^/${t}(?=/)`),""):a}Object.defineProperty(exports,"createInstance",{enumerable:true,get:function(){return i18next.createInstance}});Object.defineProperty(exports,"i18next",{enumerable:true,get:function(){return i18next__default.default}});exports.LocaleEnum=r;exports.defaultLanguages=x;exports.defaultLng=g;exports.defaultNS=u;exports.en=M;exports.getLocalePathFromPathname=c;exports.i18nCookieKey=N;exports.i18nLocalStorageKey=C;exports.parseI18nLang=z;exports.removeLangPrefix=w;//# sourceMappingURL=server.js.map
2
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types.ts","../src/constant.ts","../src/locale/module/common.ts","../src/locale/module/mediaTrack.ts","../src/locale/module/tokens.ts","../src/locale/en.ts","../src/utils/getLocalePathFromPathname.ts","../src/utils/parseI18nLang.ts","../src/utils/removeLangPrefix.ts"],"names":["LocaleEnum","defaultLanguages","defaultLng","defaultNS","i18nLocalStorageKey","i18nCookieKey","common","mediaTrack","tokens","en","getLocalePathFromPathname","pathname","localeCodes","locale","parseI18nLang","lang","defaultLang","regex","match","matchLang","removeLangPrefix","localePath"],"mappings":"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","file":"server.js","sourcesContent":["// import the original type declarations\nimport \"i18next\";\n// import all namespaces (for the default language, only)\nimport { en } from \"./locale/en\";\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}\n\nexport type LocaleCode = keyof typeof LocaleEnum | (string & {});\n\nexport type Language = {\n localCode: LocaleCode;\n displayName: string;\n};\n\nexport type ExtendLocaleMessages = Record<`extend.${string}`, string>;\n\nexport type LocaleMessages = typeof en & ExtendLocaleMessages;\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport type Resources<T extends {} = {}> = {\n [key in LocaleCode]?: Partial<LocaleMessages & T>;\n};\n\n// https://www.i18next.com/overview/typescript#create-a-declaration-file\n// Enhance the input parameter intelliSense for the t function.\ndeclare module \"i18next\" {\n // Extend CustomTypeOptions\n interface CustomTypeOptions {\n // custom namespace type, if you changed it\n defaultNS: \"translation\";\n // custom resources type\n resources: {\n translation: LocaleMessages;\n };\n }\n}\n","import { Language, LocaleEnum } from \"./types\";\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];\n\nexport const defaultLng = LocaleEnum.en;\n\nexport const defaultNS = \"translation\";\n\nexport const i18nLocalStorageKey = \"liberfi_i18nLng\";\n\nexport const i18nCookieKey = \"liberfi_i18nLng\";\n","export const common = {\n \"common.cancel\": \"Cancel\",\n \"common.confirm\": \"Confirm\",\n \"common.ok\": \"OK\",\n \"common.yes\": \"Yes\",\n \"common.no\": \"No\",\n \"common.all\": \"All\",\n \"common.buy\": \"Buy\",\n \"common.sell\": \"Sell\",\n \"common.long\": \"Long\",\n \"common.short\": \"Short\",\n \"common.edit\": \"Edit\",\n \"common.save\": \"Save\",\n \"common.add\": \"Add\",\n \"common.delete\": \"Delete\",\n \"common.tips\": \"Tips\",\n \"common.max\": \"Max\",\n \"common.download\": \"Download\",\n \"common.copy\": \"Copy\",\n \"common.copy.failed\": \"Copy failed\",\n \"common.copy.copied\": \"Copied to clipboard\",\n \"common.share\": \"Share\",\n \"common.export\": \"Export\",\n};\n","export const mediaTrack = {\n \"mediaTrack.title\": \"Media Track\",\n \"mediaTrack.description\": \"Media Track\",\n};\n","export const tokens = {\n \"tokens.copied.address\": \"Token address copied to clipboard\",\n \"tokens.listHeader.token\": \"Token\",\n \"tokens.listHeader.priceHistories\": \"Price Histories\",\n \"tokens.listHeader.price\": \"Price\",\n \"tokens.listHeader.marketCap\": \"Market Cap\",\n \"tokens.listHeader.liquidity\": \"Liquidity\",\n \"tokens.listHeader.volumes\": \"Volumes\",\n \"tokens.listHeader.txs\": \"TXNS\",\n \"tokens.listHeader.traders\": \"Traders\",\n \"tokens.listHeader.tokenInfo\": \"Token Info\",\n \"tokens.listHeader.actions\": \"Actions\",\n \"tokens.tokenInfo.holders\": \"Holders\",\n \"tokens.tokenInfo.top10HoldingsRatio\": \"Top 10 Holders\",\n \"tokens.tokenInfo.top100HoldingsRatio\": \"Top 100 Holders\",\n \"tokens.tokenInfo.devHoldingsRatio\": \"Dev Holders\",\n};\n","import { common } from \"./module/common\";\nimport { mediaTrack } from \"./module/mediaTrack\";\nimport { tokens } from \"./module/tokens\";\n\nexport const en = {\n ...common,\n ...mediaTrack,\n ...tokens,\n};\n","import { LocaleEnum } from \"../types\";\n\n/**\n * get locale path from pathname\n * @param pathname - pathname to get locale path\n * @param localeCodes - locale codes to check\n * @example\n * getLocalePathFromPathname('/en/perp/PERP_ETH_USDC') => 'en'\n * getLocalePathFromPathname('/perp/PERP_ETH_USDC') => null\n * getLocalePathFromPathname('/en/markets') => 'en'\n * getLocalePathFromPathname('/markets') => null\n */\nexport function getLocalePathFromPathname(\n pathname: string,\n localeCodes?: string[],\n) {\n const locale = pathname.split(\"/\")[1];\n localeCodes = localeCodes || Object.values(LocaleEnum);\n return localeCodes.includes(locale as LocaleEnum) ? locale : null;\n}\n","import { type LocaleCode, LocaleEnum } from \"../types\";\n\n/**\n * transform browser language to i18n locale codes\n * @param lang - browser language\n * @param localeCodes - locale codes to check\n * @param defaultLang - default locale code\n * @example\n * parseI18nLang('en-US') => 'en'\n * parseI18nLang('zh-CN') => 'zh'\n * parseI18nLang('zh-TW') => 'zh'\n * parseI18nLang('ja') => 'ja'\n * */\nexport function parseI18nLang(\n lang: string,\n localeCodes?: LocaleCode[],\n defaultLang?: LocaleCode,\n) {\n localeCodes = localeCodes || Object.values(LocaleEnum);\n defaultLang = defaultLang || LocaleEnum.en;\n\n const regex = /^([a-z]{2})/i;\n const match = lang?.match(regex);\n\n if (!match) {\n return defaultLang;\n }\n\n const matchLang = match[1];\n\n if (localeCodes.includes(lang)) {\n return lang;\n }\n\n if (localeCodes.includes(matchLang)) {\n return matchLang;\n }\n\n return defaultLang;\n}\n","import { getLocalePathFromPathname } from \"./getLocalePathFromPathname\";\n\n/**\n * remove lang prefix from pathname\n * @param pathname - pathname to remove lang prefix\n * @param localeCodes - locale codes to check\n * @example\n * removeLangPrefix('/en/perp/PERP_ETH_USDC') => '/perp/PERP_ETH_USDC'\n * removeLangPrefix('/en/markets') => '/markets'\n * removeLangPrefix('/perp/PERP_ETH_USDC') => '/perp/PERP_ETH_USDC'\n * removeLangPrefix('/markets') => '/markets'\n */\nexport function removeLangPrefix(pathname: string, localeCodes?: string[]) {\n const localePath = getLocalePathFromPathname(pathname, localeCodes);\n\n return localePath\n ? pathname.replace(new RegExp(`^/${localePath}(?=/)`), \"\")\n : pathname;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export{createInstance,default as i18next}from'i18next';var r=(e=>(e.en="en",e.zh="zh",e.ja="ja",e.es="es",e.ko="ko",e.vi="vi",e.de="de",e.fr="fr",e.ru="ru",e.id="id",e.tr="tr",e.it="it",e.pt="pt",e.uk="uk",e.pl="pl",e.nl="nl",e))(r||{});var x=[{localCode:"en",displayName:"English"},{localCode:"zh",displayName:"\u4E2D\u6587"},{localCode:"ja",displayName:"\u65E5\u672C\u8A9E"},{localCode:"es",displayName:"Espa\xF1ol"},{localCode:"ko",displayName:"\uD55C\uAD6D\uC5B4"},{localCode:"vi",displayName:"Ti\u1EBFng Vi\u1EC7t"},{localCode:"de",displayName:"Deutsch"},{localCode:"fr",displayName:"Fran\xE7ais"},{localCode:"ru",displayName:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"},{localCode:"id",displayName:"Bahasa Indonesia"},{localCode:"tr",displayName:"T\xFCrk\xE7e"},{localCode:"it",displayName:"Italiano"},{localCode:"pt",displayName:"Portugu\xEAs"},{localCode:"uk",displayName:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430"},{localCode:"pl",displayName:"Polski"},{localCode:"nl",displayName:"Nederlands"}],g="en",u="translation",C="liberfi_i18nLng",N="liberfi_i18nLng";var i={"common.cancel":"Cancel","common.confirm":"Confirm","common.ok":"OK","common.yes":"Yes","common.no":"No","common.all":"All","common.buy":"Buy","common.sell":"Sell","common.long":"Long","common.short":"Short","common.edit":"Edit","common.save":"Save","common.add":"Add","common.delete":"Delete","common.tips":"Tips","common.max":"Max","common.download":"Download","common.copy":"Copy","common.copy.failed":"Copy failed","common.copy.copied":"Copied to clipboard","common.share":"Share","common.export":"Export"};var l={"mediaTrack.title":"Media Track","mediaTrack.description":"Media Track"};var d={"tokens.copied.address":"Token address copied to clipboard","tokens.listHeader.token":"Token","tokens.listHeader.priceHistories":"Price Histories","tokens.listHeader.price":"Price","tokens.listHeader.marketCap":"Market Cap","tokens.listHeader.liquidity":"Liquidity","tokens.listHeader.volumes":"Volumes","tokens.listHeader.txs":"TXNS","tokens.listHeader.traders":"Traders","tokens.listHeader.tokenInfo":"Token Info","tokens.listHeader.actions":"Actions","tokens.tokenInfo.holders":"Holders","tokens.tokenInfo.top10HoldingsRatio":"Top 10 Holders","tokens.tokenInfo.top100HoldingsRatio":"Top 100 Holders","tokens.tokenInfo.devHoldingsRatio":"Dev Holders"};var M={...i,...l,...d};function c(a,o){let t=a.split("/")[1];return o=o||Object.values(r),o.includes(t)?t:null}function z(a,o,t){o=o||Object.values(r),t=t||"en";let m=/^([a-z]{2})/i,n=a?.match(m);if(!n)return t;let s=n[1];return o.includes(a)?a:o.includes(s)?s:t}function w(a,o){let t=c(a,o);return t?a.replace(new RegExp(`^/${t}(?=/)`),""):a}export{r as LocaleEnum,x as defaultLanguages,g as defaultLng,u as defaultNS,M as en,c as getLocalePathFromPathname,N as i18nCookieKey,C as i18nLocalStorageKey,z as parseI18nLang,w as removeLangPrefix};//# sourceMappingURL=server.mjs.map
2
+ //# sourceMappingURL=server.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types.ts","../src/constant.ts","../src/locale/module/common.ts","../src/locale/module/mediaTrack.ts","../src/locale/module/tokens.ts","../src/locale/en.ts","../src/utils/getLocalePathFromPathname.ts","../src/utils/parseI18nLang.ts","../src/utils/removeLangPrefix.ts"],"names":["LocaleEnum","defaultLanguages","defaultLng","defaultNS","i18nLocalStorageKey","i18nCookieKey","common","mediaTrack","tokens","en","getLocalePathFromPathname","pathname","localeCodes","locale","parseI18nLang","lang","defaultLang","regex","match","matchLang","removeLangPrefix","localePath"],"mappings":"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","file":"server.mjs","sourcesContent":["// import the original type declarations\nimport \"i18next\";\n// import all namespaces (for the default language, only)\nimport { en } from \"./locale/en\";\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}\n\nexport type LocaleCode = keyof typeof LocaleEnum | (string & {});\n\nexport type Language = {\n localCode: LocaleCode;\n displayName: string;\n};\n\nexport type ExtendLocaleMessages = Record<`extend.${string}`, string>;\n\nexport type LocaleMessages = typeof en & ExtendLocaleMessages;\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport type Resources<T extends {} = {}> = {\n [key in LocaleCode]?: Partial<LocaleMessages & T>;\n};\n\n// https://www.i18next.com/overview/typescript#create-a-declaration-file\n// Enhance the input parameter intelliSense for the t function.\ndeclare module \"i18next\" {\n // Extend CustomTypeOptions\n interface CustomTypeOptions {\n // custom namespace type, if you changed it\n defaultNS: \"translation\";\n // custom resources type\n resources: {\n translation: LocaleMessages;\n };\n }\n}\n","import { Language, LocaleEnum } from \"./types\";\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];\n\nexport const defaultLng = LocaleEnum.en;\n\nexport const defaultNS = \"translation\";\n\nexport const i18nLocalStorageKey = \"liberfi_i18nLng\";\n\nexport const i18nCookieKey = \"liberfi_i18nLng\";\n","export const common = {\n \"common.cancel\": \"Cancel\",\n \"common.confirm\": \"Confirm\",\n \"common.ok\": \"OK\",\n \"common.yes\": \"Yes\",\n \"common.no\": \"No\",\n \"common.all\": \"All\",\n \"common.buy\": \"Buy\",\n \"common.sell\": \"Sell\",\n \"common.long\": \"Long\",\n \"common.short\": \"Short\",\n \"common.edit\": \"Edit\",\n \"common.save\": \"Save\",\n \"common.add\": \"Add\",\n \"common.delete\": \"Delete\",\n \"common.tips\": \"Tips\",\n \"common.max\": \"Max\",\n \"common.download\": \"Download\",\n \"common.copy\": \"Copy\",\n \"common.copy.failed\": \"Copy failed\",\n \"common.copy.copied\": \"Copied to clipboard\",\n \"common.share\": \"Share\",\n \"common.export\": \"Export\",\n};\n","export const mediaTrack = {\n \"mediaTrack.title\": \"Media Track\",\n \"mediaTrack.description\": \"Media Track\",\n};\n","export const tokens = {\n \"tokens.copied.address\": \"Token address copied to clipboard\",\n \"tokens.listHeader.token\": \"Token\",\n \"tokens.listHeader.priceHistories\": \"Price Histories\",\n \"tokens.listHeader.price\": \"Price\",\n \"tokens.listHeader.marketCap\": \"Market Cap\",\n \"tokens.listHeader.liquidity\": \"Liquidity\",\n \"tokens.listHeader.volumes\": \"Volumes\",\n \"tokens.listHeader.txs\": \"TXNS\",\n \"tokens.listHeader.traders\": \"Traders\",\n \"tokens.listHeader.tokenInfo\": \"Token Info\",\n \"tokens.listHeader.actions\": \"Actions\",\n \"tokens.tokenInfo.holders\": \"Holders\",\n \"tokens.tokenInfo.top10HoldingsRatio\": \"Top 10 Holders\",\n \"tokens.tokenInfo.top100HoldingsRatio\": \"Top 100 Holders\",\n \"tokens.tokenInfo.devHoldingsRatio\": \"Dev Holders\",\n};\n","import { common } from \"./module/common\";\nimport { mediaTrack } from \"./module/mediaTrack\";\nimport { tokens } from \"./module/tokens\";\n\nexport const en = {\n ...common,\n ...mediaTrack,\n ...tokens,\n};\n","import { LocaleEnum } from \"../types\";\n\n/**\n * get locale path from pathname\n * @param pathname - pathname to get locale path\n * @param localeCodes - locale codes to check\n * @example\n * getLocalePathFromPathname('/en/perp/PERP_ETH_USDC') => 'en'\n * getLocalePathFromPathname('/perp/PERP_ETH_USDC') => null\n * getLocalePathFromPathname('/en/markets') => 'en'\n * getLocalePathFromPathname('/markets') => null\n */\nexport function getLocalePathFromPathname(\n pathname: string,\n localeCodes?: string[],\n) {\n const locale = pathname.split(\"/\")[1];\n localeCodes = localeCodes || Object.values(LocaleEnum);\n return localeCodes.includes(locale as LocaleEnum) ? locale : null;\n}\n","import { type LocaleCode, LocaleEnum } from \"../types\";\n\n/**\n * transform browser language to i18n locale codes\n * @param lang - browser language\n * @param localeCodes - locale codes to check\n * @param defaultLang - default locale code\n * @example\n * parseI18nLang('en-US') => 'en'\n * parseI18nLang('zh-CN') => 'zh'\n * parseI18nLang('zh-TW') => 'zh'\n * parseI18nLang('ja') => 'ja'\n * */\nexport function parseI18nLang(\n lang: string,\n localeCodes?: LocaleCode[],\n defaultLang?: LocaleCode,\n) {\n localeCodes = localeCodes || Object.values(LocaleEnum);\n defaultLang = defaultLang || LocaleEnum.en;\n\n const regex = /^([a-z]{2})/i;\n const match = lang?.match(regex);\n\n if (!match) {\n return defaultLang;\n }\n\n const matchLang = match[1];\n\n if (localeCodes.includes(lang)) {\n return lang;\n }\n\n if (localeCodes.includes(matchLang)) {\n return matchLang;\n }\n\n return defaultLang;\n}\n","import { getLocalePathFromPathname } from \"./getLocalePathFromPathname\";\n\n/**\n * remove lang prefix from pathname\n * @param pathname - pathname to remove lang prefix\n * @param localeCodes - locale codes to check\n * @example\n * removeLangPrefix('/en/perp/PERP_ETH_USDC') => '/perp/PERP_ETH_USDC'\n * removeLangPrefix('/en/markets') => '/markets'\n * removeLangPrefix('/perp/PERP_ETH_USDC') => '/perp/PERP_ETH_USDC'\n * removeLangPrefix('/markets') => '/markets'\n */\nexport function removeLangPrefix(pathname: string, localeCodes?: string[]) {\n const localePath = getLocalePathFromPathname(pathname, localeCodes);\n\n return localePath\n ? pathname.replace(new RegExp(`^/${localePath}(?=/)`), \"\")\n : pathname;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@liberfi.io/i18n",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Internationalization for Liberfi React SDK",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -11,17 +11,12 @@
11
11
  "require": "./dist/index.js",
12
12
  "import": "./dist/index.mjs"
13
13
  },
14
- "./locales/*": "./dist/locales/*",
15
- "./constant": {
16
- "types": "./dist/constant.d.ts",
17
- "require": "./dist/constant.js",
18
- "import": "./dist/constant.mjs"
14
+ "./server": {
15
+ "types": "./dist/server.d.ts",
16
+ "require": "./dist/server.js",
17
+ "import": "./dist/server.mjs"
19
18
  },
20
- "./utils": {
21
- "types": "./dist/utils.d.ts",
22
- "require": "./dist/utils.js",
23
- "import": "./dist/utils.mjs"
24
- }
19
+ "./locales/*": "./dist/locales/*"
25
20
  },
26
21
  "bin": {
27
22
  "i18n": "bin/cli.js"
@@ -1,9 +0,0 @@
1
- import { a as Language } from './types-DY-Gbo__.mjs';
2
-
3
- declare const defaultLanguages: Language[];
4
- declare const defaultLng = LocaleEnum.en;
5
- declare const defaultNS = "translation";
6
- declare const i18nLocalStorageKey = "liberfi_i18nLng";
7
- declare const i18nCookieKey = "liberfi_i18nLng";
8
-
9
- export { defaultLanguages, defaultLng, defaultNS, i18nCookieKey, i18nLocalStorageKey };
@@ -1,9 +0,0 @@
1
- import { a as Language } from './types-DY-Gbo__.js';
2
-
3
- declare const defaultLanguages: Language[];
4
- declare const defaultLng = LocaleEnum.en;
5
- declare const defaultNS = "translation";
6
- declare const i18nLocalStorageKey = "liberfi_i18nLng";
7
- declare const i18nCookieKey = "liberfi_i18nLng";
8
-
9
- export { defaultLanguages, defaultLng, defaultNS, i18nCookieKey, i18nLocalStorageKey };
package/dist/constant.js DELETED
@@ -1,2 +0,0 @@
1
- 'use strict';require('i18next');var t=[{localCode:"en",displayName:"English"},{localCode:"zh",displayName:"\u4E2D\u6587"},{localCode:"ja",displayName:"\u65E5\u672C\u8A9E"},{localCode:"es",displayName:"Espa\xF1ol"},{localCode:"ko",displayName:"\uD55C\uAD6D\uC5B4"},{localCode:"vi",displayName:"Ti\u1EBFng Vi\u1EC7t"},{localCode:"de",displayName:"Deutsch"},{localCode:"fr",displayName:"Fran\xE7ais"},{localCode:"ru",displayName:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"},{localCode:"id",displayName:"Bahasa Indonesia"},{localCode:"tr",displayName:"T\xFCrk\xE7e"},{localCode:"it",displayName:"Italiano"},{localCode:"pt",displayName:"Portugu\xEAs"},{localCode:"uk",displayName:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430"},{localCode:"pl",displayName:"Polski"},{localCode:"nl",displayName:"Nederlands"}],d="en",i="translation",p="liberfi_i18nLng",r="liberfi_i18nLng";exports.defaultLanguages=t;exports.defaultLng=d;exports.defaultNS=i;exports.i18nCookieKey=r;exports.i18nLocalStorageKey=p;//# sourceMappingURL=constant.js.map
2
- //# sourceMappingURL=constant.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/constant.ts"],"names":["defaultLanguages","defaultLng","defaultNS","i18nLocalStorageKey","i18nCookieKey"],"mappings":"gCAEO,IAAMA,CAAAA,CAA+B,CAC1C,CAAE,SAAA,CAAA,IAAA,CAA0B,YAAa,SAAU,CAAA,CACnD,CAAE,SAAA,CAAA,IAAA,CAA0B,WAAA,CAAa,cAAK,CAAA,CAC9C,CAAE,eAA0B,WAAA,CAAa,oBAAM,EAC/C,CAAE,SAAA,CAAA,IAAA,CAA0B,YAAa,YAAU,CAAA,CACnD,CAAE,SAAA,CAAA,IAAA,CAA0B,WAAA,CAAa,oBAAM,CAAA,CAC/C,CAAE,eAA0B,WAAA,CAAa,sBAAa,EACtD,CAAE,SAAA,CAAA,IAAA,CAA0B,YAAa,SAAU,CAAA,CACnD,CAAE,SAAA,CAAA,IAAA,CAA0B,WAAA,CAAa,aAAW,CAAA,CACpD,CAAE,SAAA,CAAA,IAAA,CAA0B,WAAA,CAAa,4CAAU,CAAA,CACnD,CAAE,eAA0B,WAAA,CAAa,kBAAmB,EAC5D,CAAE,SAAA,CAAA,IAAA,CAA0B,YAAa,cAAS,CAAA,CAClD,CAAE,SAAA,CAAA,IAAA,CAA0B,WAAA,CAAa,UAAW,CAAA,CACpD,CAAE,eAA0B,WAAA,CAAa,cAAY,EACrD,CAAE,SAAA,CAAA,IAAA,CAA0B,YAAa,8DAAa,CAAA,CACtD,CAAE,SAAA,CAAA,IAAA,CAA0B,WAAA,CAAa,QAAS,CAAA,CAClD,CAAE,eAA0B,WAAA,CAAa,YAAa,CACxD,CAAA,CAEaC,CAAAA,CAAAA,IAAAA,CAEAC,EAAY,aAAA,CAEZC,CAAAA,CAAsB,kBAEtBC,CAAAA,CAAgB","file":"constant.js","sourcesContent":["import { Language, LocaleEnum } from \"./types\";\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];\n\nexport const defaultLng = LocaleEnum.en;\n\nexport const defaultNS = \"translation\";\n\nexport const i18nLocalStorageKey = \"liberfi_i18nLng\";\n\nexport const i18nCookieKey = \"liberfi_i18nLng\";\n"]}
package/dist/constant.mjs DELETED
@@ -1,2 +0,0 @@
1
- import'i18next';var t=[{localCode:"en",displayName:"English"},{localCode:"zh",displayName:"\u4E2D\u6587"},{localCode:"ja",displayName:"\u65E5\u672C\u8A9E"},{localCode:"es",displayName:"Espa\xF1ol"},{localCode:"ko",displayName:"\uD55C\uAD6D\uC5B4"},{localCode:"vi",displayName:"Ti\u1EBFng Vi\u1EC7t"},{localCode:"de",displayName:"Deutsch"},{localCode:"fr",displayName:"Fran\xE7ais"},{localCode:"ru",displayName:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"},{localCode:"id",displayName:"Bahasa Indonesia"},{localCode:"tr",displayName:"T\xFCrk\xE7e"},{localCode:"it",displayName:"Italiano"},{localCode:"pt",displayName:"Portugu\xEAs"},{localCode:"uk",displayName:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430"},{localCode:"pl",displayName:"Polski"},{localCode:"nl",displayName:"Nederlands"}],d="en",i="translation",p="liberfi_i18nLng",r="liberfi_i18nLng";export{t as defaultLanguages,d as defaultLng,i as defaultNS,r as i18nCookieKey,p as i18nLocalStorageKey};//# sourceMappingURL=constant.mjs.map
2
- //# sourceMappingURL=constant.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/constant.ts"],"names":["defaultLanguages","defaultLng","defaultNS","i18nLocalStorageKey","i18nCookieKey"],"mappings":"gBAEO,IAAMA,CAAAA,CAA+B,CAC1C,CAAE,SAAA,CAAA,IAAA,CAA0B,YAAa,SAAU,CAAA,CACnD,CAAE,SAAA,CAAA,IAAA,CAA0B,WAAA,CAAa,cAAK,CAAA,CAC9C,CAAE,eAA0B,WAAA,CAAa,oBAAM,EAC/C,CAAE,SAAA,CAAA,IAAA,CAA0B,YAAa,YAAU,CAAA,CACnD,CAAE,SAAA,CAAA,IAAA,CAA0B,WAAA,CAAa,oBAAM,CAAA,CAC/C,CAAE,eAA0B,WAAA,CAAa,sBAAa,EACtD,CAAE,SAAA,CAAA,IAAA,CAA0B,YAAa,SAAU,CAAA,CACnD,CAAE,SAAA,CAAA,IAAA,CAA0B,WAAA,CAAa,aAAW,CAAA,CACpD,CAAE,SAAA,CAAA,IAAA,CAA0B,WAAA,CAAa,4CAAU,CAAA,CACnD,CAAE,eAA0B,WAAA,CAAa,kBAAmB,EAC5D,CAAE,SAAA,CAAA,IAAA,CAA0B,YAAa,cAAS,CAAA,CAClD,CAAE,SAAA,CAAA,IAAA,CAA0B,WAAA,CAAa,UAAW,CAAA,CACpD,CAAE,eAA0B,WAAA,CAAa,cAAY,EACrD,CAAE,SAAA,CAAA,IAAA,CAA0B,YAAa,8DAAa,CAAA,CACtD,CAAE,SAAA,CAAA,IAAA,CAA0B,WAAA,CAAa,QAAS,CAAA,CAClD,CAAE,eAA0B,WAAA,CAAa,YAAa,CACxD,CAAA,CAEaC,CAAAA,CAAAA,IAAAA,CAEAC,EAAY,aAAA,CAEZC,CAAAA,CAAsB,kBAEtBC,CAAAA,CAAgB","file":"constant.mjs","sourcesContent":["import { Language, LocaleEnum } from \"./types\";\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];\n\nexport const defaultLng = LocaleEnum.en;\n\nexport const defaultNS = \"translation\";\n\nexport const i18nLocalStorageKey = \"liberfi_i18nLng\";\n\nexport const i18nCookieKey = \"liberfi_i18nLng\";\n"]}
@@ -1,81 +0,0 @@
1
- declare const en: {
2
- "mediaTrack.title": string;
3
- "mediaTrack.description": string;
4
- "common.cancel": string;
5
- "common.confirm": string;
6
- "common.ok": string;
7
- "common.yes": string;
8
- "common.no": string;
9
- "common.all": string;
10
- "common.buy": string;
11
- "common.sell": string;
12
- "common.long": string;
13
- "common.short": string;
14
- "common.edit": string;
15
- "common.save": string;
16
- "common.add": string;
17
- "common.delete": string;
18
- "common.tips": string;
19
- "common.max": string;
20
- "common.download": string;
21
- "common.copy": string;
22
- "common.copy.failed": string;
23
- "common.copy.copied": string;
24
- "common.share": string;
25
- "common.export": string;
26
- };
27
-
28
- declare enum LocaleEnum {
29
- /** English */
30
- en = "en",
31
- /** Chinese */
32
- zh = "zh",
33
- /** Japanese */
34
- ja = "ja",
35
- /** Spanish */
36
- es = "es",
37
- /** Korean */
38
- ko = "ko",
39
- /** Vietnamese */
40
- vi = "vi",
41
- /** German */
42
- de = "de",
43
- /** French */
44
- fr = "fr",
45
- /** Russian */
46
- ru = "ru",
47
- /** Indonesian */
48
- id = "id",
49
- /** Turkish */
50
- tr = "tr",
51
- /** Italian */
52
- it = "it",
53
- /** Portuguese */
54
- pt = "pt",
55
- /** Ukrainian */
56
- uk = "uk",
57
- /** Polish */
58
- pl = "pl",
59
- /** Dutch */
60
- nl = "nl"
61
- }
62
- type LocaleCode = keyof typeof LocaleEnum | (string & {});
63
- type Language = {
64
- localCode: LocaleCode;
65
- displayName: string;
66
- };
67
- type ExtendLocaleMessages = Record<`extend.${string}`, string>;
68
- type LocaleMessages = typeof en & ExtendLocaleMessages;
69
- type Resources<T extends {} = {}> = {
70
- [key in LocaleCode]?: Partial<LocaleMessages & T>;
71
- };
72
- declare module "i18next" {
73
- interface CustomTypeOptions {
74
- defaultNS: "translation";
75
- resources: {
76
- translation: LocaleMessages;
77
- };
78
- }
79
- }
80
-
81
- export { type ExtendLocaleMessages as E, type LocaleCode as L, type Resources as R, type Language as a, LocaleEnum as b, type LocaleMessages as c, en as e };