@liberfi.io/i18n 0.1.7 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/dist/locale.csv +20 -6
- package/dist/locales/en.json +16 -2
- package/dist/locales/zh.json +20 -6
- package/dist/server.d.mts +15 -1
- package/dist/server.d.ts +15 -1
- package/dist/server.js +2 -2
- package/dist/server.js.map +1 -1
- package/dist/server.mjs +2 -2
- package/dist/server.mjs.map +1 -1
- package/package.json +1 -1
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.ts","../src/constant.ts","../src/locale/module/channels.ts","../src/locale/module/common.ts","../src/locale/module/mediaTrack.ts","../src/locale/module/scaffold.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","channels","common","mediaTrack","scaffold","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 channels = {\n \"channels.forms.base.title\": \"Base Info\",\n \"channels.forms.base.name.label\": \"Name\",\n \"channels.forms.base.name.placeholder\": \"Please enter the channel name\",\n \"channels.forms.base.name.required\": \"Name is required\",\n \"channels.forms.base.name.min\": \"Name must be at least 1 character\",\n \"channels.forms.base.name.max\": \"Name must be less than 24 characters\",\n \"channels.forms.base.description.label\": \"Description\",\n \"channels.forms.base.description.placeholder\":\n \"Please enter the channel description\",\n \"channels.forms.base.icon.label\": \"Icon\",\n \"channels.forms.base.icon.placeholder\": \"Please upload the channel icon\",\n \"channels.forms.base.icon.hint\":\n \"A square image of at least 128x128 is suggested. File size cannot exceed 10mb.\",\n \"channels.forms.base.icon.required\": \"Icon is required\",\n \"channels.forms.base.icon.maxSize\": \"Icon size cannot exceed 10MB\",\n \"channels.forms.base.submit\": \"Create Channel\",\n \"channels.forms.base.update.submit\": \"Update Channel\",\n \"channels.forms.wallets.title\": \"Wallet Management\",\n \"channels.forms.wallets.label\": \"Add Wallets\",\n \"channels.forms.wallets.placeholder\":\n \"Text Format:\\n8zFZHuSRuDpuAR7J6FzwyF3vKNx4CVW3DFHJerQhc7Zd,pow\\n0x4DB5a66E937A9F4473fA95b1cAF1d1E1D62E29EA,Smart Money\",\n \"channels.forms.wallets.required\": \"Wallets are required\",\n \"channels.forms.wallets.invalid\": \"Invalid wallets format\",\n \"channels.forms.wallets.chain.required\": \"Chain is required\",\n \"channels.forms.wallets.address.required\": \"Wallet address is required\",\n \"channels.forms.wallets.address.duplicated\":\n \"There are {{count}} duplicated wallet addresses in the input\",\n \"channels.forms.wallets.address.invalid\":\n \"There are {{count}} invalid wallet addresses\",\n \"channels.forms.wallets.address.alreadyAdded\":\n \"There are {{count}} wallet addresses already added\",\n \"channels.forms.wallets.maxCount\": \"Wallet count cannot exceed 500\",\n \"channels.forms.wallets.submit\": \"Add Wallets\",\n \"channels.forms.wallets.supportedFormats\": \"Supported Formats\",\n \"channels.forms.wallets.supportedFormats.text\": \"Text\",\n \"channels.forms.wallets.supportedFormats.text.hint\":\n \"Text Format:\\n\\n8zFZHuSRuDpuAR7J6FzwyF3vKNx4CVW3DFHJerQhc7Zd,pow\\n0x4DB5a66E937A9F4473fA95b1cAF1d1E1D62E29EA,Smart Money\",\n \"channels.forms.wallets.addedCount\": \"added wallets\",\n \"channels.forms.wallets.list.title\": \"Added Wallets\",\n \"channels.forms.wallets.list.header.address\": \"Alias/Address\",\n \"channels.forms.wallets.list.header.balance\": \"Balance\",\n \"channels.forms.wallets.list.header.importedAt\": \"Imported At\",\n \"channels.forms.wallets.list.header.lastActiveAt\": \"Last Active At\",\n \"channels.forms.wallets.list.header.7dBuys\": \"7 Days Buys\",\n \"channels.forms.wallets.list.header.7dSells\": \"7 Days Sells\",\n \"channels.forms.wallets.list.header.actions\": \"Actions\",\n \"channels.forms.wallets.list.empty\": \"No wallets added yet\",\n \"channels.forms.wallets.list.search.placeholder\":\n \"Search by address or alias\",\n \"channels.forms.wallets.update.success\": \"Update wallets successfully\",\n \"channels.forms.wallets.update.error\": \"Update wallets error\",\n \"channels.forms.socials.title\": \"Social Medias\",\n \"channels.forms.socials.telegram.guide\":\n \"⚡️ Quick Start\\n1. Search for @BotFather on Telegram\\n2. Send /newbot to create a bot and get Token\\n3. Enter the Bot Token here and save\\n4. Add the bot to your group/channel\",\n \"channels.forms.socials.telegram.placeholder\":\n \"Enter your Telegram Bot Token\",\n \"channels.list.title\": \"Channel List\",\n \"channels.trending.title\": \"Trending Channels\",\n \"channels.my.title\": \"My Channels\",\n \"channels.subscribe.submit\": \"Subscribe\",\n \"channels.subscribe.error\": \"Subscribe channel error\",\n \"channels.subscribe.success\": \"Subscribe channel successfully\",\n \"channels.unsubscribe.submit\": \"Subscribed\",\n \"channels.unsubscribe.error\": \"Unsubscribe channel error\",\n \"channels.unsubscribe.success\": \"Unsubscribe channel successfully\",\n \"channels.subscribed.title\": \"Subscribed Channels\",\n \"channels.create.title\": \"Create Channel\",\n \"channels.create.success\": \"Channel created successfully\",\n \"channels.create.error\": \"Create channel error\",\n \"channels.update.title\": \"Update Channel\",\n \"channels.update.success\": \"Channel updated successfully\",\n \"channels.update.error\": \"Update channel error\",\n \"channels.info.walletCount\": \"Wallet Count\",\n \"channels.info.subscribeCount\": \"Subscribe Count\",\n \"channels.info.createdAt\": \"created at\",\n \"channels.info.updatedAt\": \"last updated at\",\n \"channels.stats.7dTxs.title\": \"7D TXs\",\n \"channels.stats.7dTxs.hint\": \"7 Days Transactions\",\n \"channels.stats.7dPnl.title\": \"7D PnL\",\n \"channels.stats.7dPnl.hint\": \"7 Days Profit and Loss\",\n \"channels.stats.7dWr.title\": \"7D WR\",\n \"channels.stats.7dWr.hint\": \"7 Days Winning Rate\",\n \"channels.detail.title\": \"Channel Detail\",\n \"channels.detail.events.title\": \"Channel Events\",\n \"channels.detail.notfound\": \"Channel not found\",\n};\n","export const common = {\n \"common.cancel\": \"Cancel\",\n \"common.confirm\": \"Confirm\",\n \"common.reset\": \"Reset\",\n \"common.apply\": \"Apply\",\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 \"common.empty\": \"No data\",\n \"common.unauthenticated\": \"Please sign in to continue\",\n \"common.signIn\": \"Sign In\",\n \"common.signOut\": \"Sign Out\",\n \"common.resolution.1s\": \"1s\",\n \"common.resolution.15s\": \"15s\",\n \"common.resolution.30s\": \"30s\",\n \"common.resolution.1m\": \"1m\",\n \"common.resolution.5m\": \"5m\",\n \"common.resolution.15m\": \"15m\",\n \"common.resolution.30m\": \"30m\",\n \"common.resolution.1h\": \"1h\",\n \"common.resolution.4h\": \"4h\",\n \"common.resolution.12h\": \"12h\",\n \"common.resolution.24h\": \"24h\",\n \"common.upload.submit\": \"Upload\",\n \"common.upload.resubmit\": \"Reupload\",\n \"common.upload.error\": \"Upload error\",\n};\n","export const mediaTrack = {\n \"mediaTrack.tweets.translate.show\": \"Show Translation\",\n \"mediaTrack.tweets.translate.hide\": \"Hide Translation\",\n \"mediaTrack.tweets.expand\": \"Expand\",\n \"mediaTrack.tweets.collapse\": \"Collapse\",\n};\n","export const scaffold = {\n \"scaffold.draggableModal.snapToEdge\": \"Drag to edge to show side panel\",\n \"scaffold.draggablePanel.snapToModal\": \"Drag away to show floating modal\",\n \"scaffold.home\": \"Home\",\n};\n","export const tokens = {\n \"tokens.search.placeholder\": \"Search by token or CA...\",\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.priceChange\": \"{{resolution}}%\",\n \"tokens.listHeader.marketCap\": \"Market Cap\",\n \"tokens.listHeader.liquidity\": \"Liquidity\",\n \"tokens.listHeader.volumes\": \"{{resolution}} Volumes\",\n \"tokens.listHeader.txs\": \"{{resolution}} TXNS\",\n \"tokens.listHeader.traders\": \"{{resolution}} Traders\",\n \"tokens.listHeader.tokenInfo\": \"Token Info\",\n \"tokens.listHeader.actions\": \"Actions\",\n \"tokens.listHeader.filter\": \"Filter\",\n \"tokens.listType.trending\": \"Trending\",\n \"tokens.listType.new\": \"New\",\n \"tokens.listType.stocks\": \"Stocks\",\n \"tokens.filters.protocols.title\": \"Protocols\",\n \"tokens.filters.protocols.selectAll\": \"Select All\",\n \"tokens.filters.protocols.unselectAll\": \"Unselect All\",\n \"tokens.filters.keywords.title\": \"Search Keywords\",\n \"tokens.filters.keywords.exclude.title\": \"Exclude Keywords\",\n \"tokens.filters.keywords.placeholder\": \"keyword1, keyword2...\",\n \"tokens.filters.stats.min\": \"Min\",\n \"tokens.filters.stats.max\": \"Max\",\n \"tokens.filters.stats.audits\": \"Audits\",\n \"tokens.filters.stats.audits.holders\": \"Holders Count\",\n \"tokens.filters.stats.audits.top10HoldingsRatio\": \"Top 10 Holders %\",\n \"tokens.filters.stats.audits.top100HoldingsRatio\": \"Top 100 Holders %\",\n \"tokens.filters.stats.audits.devHoldingsRatio\": \"Dev Holdings %\",\n \"tokens.filters.stats.metrics\": \"Metrics\",\n \"tokens.filters.stats.metrics.volumes\": \"{{resolution}} Volumes ($)\",\n \"tokens.filters.stats.metrics.txns\": \"{{resolution}} Transactions\",\n \"tokens.filters.stats.metrics.liquidity\": \"Liquidity ($)\",\n \"tokens.filters.stats.metrics.marketCap\": \"Market Cap ($)\",\n \"tokens.filters.modal.title\": \"Filters\",\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 { channels } from \"./module/channels\";\nimport { common } from \"./module/common\";\nimport { mediaTrack } from \"./module/mediaTrack\";\nimport { scaffold } from \"./module/scaffold\";\nimport { tokens } from \"./module/tokens\";\n\nexport const en = {\n ...common,\n ...mediaTrack,\n ...scaffold,\n ...tokens,\n ...channels,\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"]}
|
|
1
|
+
{"version":3,"sources":["../src/types.ts","../src/constant.ts","../src/locale/module/channels.ts","../src/locale/module/common.ts","../src/locale/module/mediaTrack.ts","../src/locale/module/scaffold.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","channels","common","mediaTrack","scaffold","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 channels = {\n \"channels.forms.base.title\": \"Base Info\",\n \"channels.forms.base.name.label\": \"Name\",\n \"channels.forms.base.name.placeholder\": \"Please enter the channel name\",\n \"channels.forms.base.name.required\": \"Name is required\",\n \"channels.forms.base.name.min\": \"Name must be at least 1 character\",\n \"channels.forms.base.name.max\": \"Name must be less than 24 characters\",\n \"channels.forms.base.description.label\": \"Description\",\n \"channels.forms.base.description.placeholder\":\n \"Please enter the channel description\",\n \"channels.forms.base.icon.label\": \"Icon\",\n \"channels.forms.base.icon.placeholder\": \"Please upload the channel icon\",\n \"channels.forms.base.icon.hint\":\n \"A square image of at least 128x128 is suggested. File size cannot exceed 10mb.\",\n \"channels.forms.base.icon.required\": \"Icon is required\",\n \"channels.forms.base.icon.maxSize\": \"Icon size cannot exceed 10MB\",\n \"channels.forms.base.submit\": \"Create Channel\",\n \"channels.forms.base.update.submit\": \"Update Channel\",\n \"channels.forms.wallets.title\": \"Wallet Management\",\n \"channels.forms.wallets.label\": \"Add Wallets\",\n \"channels.forms.wallets.placeholder\":\n \"Text Format:\\n8zFZHuSRuDpuAR7J6FzwyF3vKNx4CVW3DFHJerQhc7Zd,pow\\n0x4DB5a66E937A9F4473fA95b1cAF1d1E1D62E29EA,Smart Money\",\n \"channels.forms.wallets.required\": \"Wallets are required\",\n \"channels.forms.wallets.invalid\": \"Invalid wallets format\",\n \"channels.forms.wallets.chain.required\": \"Chain is required\",\n \"channels.forms.wallets.address.required\": \"Wallet address is required\",\n \"channels.forms.wallets.address.duplicated\":\n \"There are {{count}} duplicated wallet addresses in the input\",\n \"channels.forms.wallets.address.invalid\":\n \"There are {{count}} invalid wallet addresses\",\n \"channels.forms.wallets.address.alreadyAdded\":\n \"There are {{count}} wallet addresses already added\",\n \"channels.forms.wallets.maxCount\": \"Wallet count cannot exceed 500\",\n \"channels.forms.wallets.submit\": \"Add Wallets\",\n \"channels.forms.wallets.supportedFormats\": \"Supported Formats\",\n \"channels.forms.wallets.supportedFormats.text\": \"Text\",\n \"channels.forms.wallets.supportedFormats.text.hint\":\n \"Text Format:\\n\\n8zFZHuSRuDpuAR7J6FzwyF3vKNx4CVW3DFHJerQhc7Zd,pow\\n0x4DB5a66E937A9F4473fA95b1cAF1d1E1D62E29EA,Smart Money\",\n \"channels.forms.wallets.addedCount\": \"added wallets\",\n \"channels.forms.wallets.list.title\": \"Added Wallets\",\n \"channels.forms.wallets.list.header.address\": \"Alias/Address\",\n \"channels.forms.wallets.list.header.balance\": \"Balance\",\n \"channels.forms.wallets.list.header.importedAt\": \"Imported At\",\n \"channels.forms.wallets.list.header.lastActiveAt\": \"Last Active At\",\n \"channels.forms.wallets.list.header.7dBuys\": \"7 Days Buys\",\n \"channels.forms.wallets.list.header.7dSells\": \"7 Days Sells\",\n \"channels.forms.wallets.list.header.actions\": \"Actions\",\n \"channels.forms.wallets.list.empty\": \"No wallets added yet\",\n \"channels.forms.wallets.list.search.placeholder\":\n \"Search by address or alias\",\n \"channels.forms.wallets.update.success\": \"Update wallets successfully\",\n \"channels.forms.wallets.update.error\": \"Update wallets error\",\n \"channels.forms.socials.title\": \"Social Medias\",\n \"channels.forms.socials.telegram.guide\":\n \"⚡️ Quick Start\\n1. Search for @BotFather on Telegram\\n2. Send /newbot to create a bot and get Token\\n3. Enter the Bot Token here and save\\n4. Add the bot to your group/channel\",\n \"channels.forms.socials.telegram.placeholder\":\n \"Enter your Telegram Bot Token\",\n \"channels.list.title\": \"Channel List\",\n \"channels.trending.title\": \"Trending Channels\",\n \"channels.my.title\": \"My Channels\",\n \"channels.subscribe.submit\": \"Subscribe\",\n \"channels.subscribe.error\": \"Subscribe channel error\",\n \"channels.subscribe.success\": \"Subscribe channel successfully\",\n \"channels.unsubscribe.submit\": \"Subscribed\",\n \"channels.unsubscribe.error\": \"Unsubscribe channel error\",\n \"channels.unsubscribe.success\": \"Unsubscribe channel successfully\",\n \"channels.subscribed.title\": \"Subscribed Channels\",\n \"channels.create.title\": \"Create Channel\",\n \"channels.create.success\": \"Channel created successfully\",\n \"channels.create.error\": \"Create channel error\",\n \"channels.update.title\": \"Update Channel\",\n \"channels.update.success\": \"Channel updated successfully\",\n \"channels.update.error\": \"Update channel error\",\n \"channels.info.walletCount\": \"Wallet Count\",\n \"channels.info.subscribeCount\": \"Subscribe Count\",\n \"channels.info.createdAt\": \"created at\",\n \"channels.info.updatedAt\": \"last updated at\",\n \"channels.stats.7dTxs.title\": \"7D TXs\",\n \"channels.stats.7dTxs.hint\": \"7 Days Transactions\",\n \"channels.stats.7dPnl.title\": \"7D PnL\",\n \"channels.stats.7dPnl.hint\": \"7 Days Profit and Loss\",\n \"channels.stats.7dWr.title\": \"7D WR\",\n \"channels.stats.7dWr.hint\": \"7 Days Winning Rate\",\n \"channels.detail.title\": \"Channel Detail\",\n \"channels.detail.notfound\": \"Channel not found\",\n \"channels.events.title\": \"Channel Events\",\n \"channels.events.empty\": \"No events yet\",\n \"channels.events.walletTrade.buy\": \"bought\",\n \"channels.events.walletTrade.sell\": \"sold\",\n \"channels.events.walletTrade.got\": \"got\",\n \"channels.events.walletTrade.cost\": \"cost\",\n \"channels.events.walletTrade.price\": \"price\",\n};\n","export const common = {\n \"common.cancel\": \"Cancel\",\n \"common.confirm\": \"Confirm\",\n \"common.reset\": \"Reset\",\n \"common.apply\": \"Apply\",\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 \"common.empty\": \"No data\",\n \"common.unauthenticated\": \"Please sign in to continue\",\n \"common.signIn\": \"Sign In\",\n \"common.signOut\": \"Sign Out\",\n \"common.resolution.1s\": \"1s\",\n \"common.resolution.15s\": \"15s\",\n \"common.resolution.30s\": \"30s\",\n \"common.resolution.1m\": \"1m\",\n \"common.resolution.5m\": \"5m\",\n \"common.resolution.15m\": \"15m\",\n \"common.resolution.30m\": \"30m\",\n \"common.resolution.1h\": \"1h\",\n \"common.resolution.4h\": \"4h\",\n \"common.resolution.12h\": \"12h\",\n \"common.resolution.24h\": \"24h\",\n \"common.upload.submit\": \"Upload\",\n \"common.upload.resubmit\": \"Reupload\",\n \"common.upload.error\": \"Upload error\",\n \"common.loadingMore\": \"Loading more...\",\n};\n","export const mediaTrack = {\n \"mediaTrack.tweets.translate.show\": \"Show Translation\",\n \"mediaTrack.tweets.translate.hide\": \"Hide Translation\",\n \"mediaTrack.tweets.expand\": \"Expand\",\n \"mediaTrack.tweets.collapse\": \"Collapse\",\n};\n","export const scaffold = {\n \"scaffold.draggableModal.snapToEdge\": \"Drag to edge to show side panel\",\n \"scaffold.draggablePanel.snapToModal\": \"Drag away to show floating modal\",\n \"scaffold.home\": \"Home\",\n};\n","export const tokens = {\n \"tokens.search.placeholder\": \"Search by token or CA...\",\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.priceChange\": \"{{resolution}}%\",\n \"tokens.listHeader.marketCap\": \"Market Cap\",\n \"tokens.listHeader.liquidity\": \"Liquidity\",\n \"tokens.listHeader.volumes\": \"{{resolution}} Volumes\",\n \"tokens.listHeader.txs\": \"{{resolution}} TXNS\",\n \"tokens.listHeader.traders\": \"{{resolution}} Traders\",\n \"tokens.listHeader.bluechip\": \"BlueChip\",\n \"tokens.listHeader.tokenInfo\": \"Token Info\",\n \"tokens.listHeader.actions\": \"Actions\",\n \"tokens.listHeader.filter\": \"Filter\",\n \"tokens.listType.trending\": \"Trending\",\n \"tokens.listType.new\": \"New\",\n \"tokens.listType.stocks\": \"Stocks\",\n \"tokens.filters.protocols.title\": \"Protocols\",\n \"tokens.filters.protocols.selectAll\": \"Select All\",\n \"tokens.filters.protocols.unselectAll\": \"Unselect All\",\n \"tokens.filters.keywords.title\": \"Search Keywords\",\n \"tokens.filters.keywords.exclude.title\": \"Exclude Keywords\",\n \"tokens.filters.keywords.placeholder\": \"keyword1, keyword2...\",\n \"tokens.filters.stats.min\": \"Min\",\n \"tokens.filters.stats.max\": \"Max\",\n \"tokens.filters.stats.audits\": \"Audits\",\n \"tokens.filters.stats.audits.holders\": \"Holders Count\",\n \"tokens.filters.stats.audits.top10HoldingsRatio\": \"Top 10 Holders %\",\n \"tokens.filters.stats.audits.top100HoldingsRatio\": \"Top 100 Holders %\",\n \"tokens.filters.stats.audits.devHoldingsRatio\": \"Dev Holdings %\",\n \"tokens.filters.stats.metrics\": \"Metrics\",\n \"tokens.filters.stats.metrics.volumes\": \"{{resolution}} Volumes ($)\",\n \"tokens.filters.stats.metrics.txns\": \"{{resolution}} Transactions\",\n \"tokens.filters.stats.metrics.liquidity\": \"Liquidity ($)\",\n \"tokens.filters.stats.metrics.marketCap\": \"Market Cap ($)\",\n \"tokens.filters.modal.title\": \"Filters\",\n \"tokens.tokenInfo.holders\": \"Holders\",\n \"tokens.tokenInfo.proHolders\": \"Pro Holders\",\n \"tokens.tokenInfo.kolHolders\": \"KOL Holders\",\n \"tokens.tokenInfo.top10HoldingsRatio\": \"Top 10 Holders\",\n \"tokens.tokenInfo.top100HoldingsRatio\": \"Top 100 Holders\",\n \"tokens.tokenInfo.devHoldingsRatio\": \"Dev Holders\",\n \"tokens.tokenInfo.sniperHoldingsRatio\": \"Snipers\",\n \"tokens.tokenInfo.insiderHoldingsRatio\": \"Insiders\",\n \"tokens.tokenInfo.bundleHoldingsRatio\": \"Bundlers\",\n \"tokens.bluechip.explained\":\n \"BlueChip index is the ratio of holders who also own BlueChip tokens\",\n};\n","import { channels } from \"./module/channels\";\nimport { common } from \"./module/common\";\nimport { mediaTrack } from \"./module/mediaTrack\";\nimport { scaffold } from \"./module/scaffold\";\nimport { tokens } from \"./module/tokens\";\n\nexport const en = {\n ...common,\n ...mediaTrack,\n ...scaffold,\n ...tokens,\n ...channels,\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/dist/server.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export{createInstance,default as i18next}from'i18next';var
|
|
1
|
+
export{createInstance,default as i18next}from'i18next';var n=(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))(n||{});var b=[{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",w="translation",x="liberfi_i18nLng",C="liberfi_i18nLng";var r={"channels.forms.base.title":"Base Info","channels.forms.base.name.label":"Name","channels.forms.base.name.placeholder":"Please enter the channel name","channels.forms.base.name.required":"Name is required","channels.forms.base.name.min":"Name must be at least 1 character","channels.forms.base.name.max":"Name must be less than 24 characters","channels.forms.base.description.label":"Description","channels.forms.base.description.placeholder":"Please enter the channel description","channels.forms.base.icon.label":"Icon","channels.forms.base.icon.placeholder":"Please upload the channel icon","channels.forms.base.icon.hint":"A square image of at least 128x128 is suggested. File size cannot exceed 10mb.","channels.forms.base.icon.required":"Icon is required","channels.forms.base.icon.maxSize":"Icon size cannot exceed 10MB","channels.forms.base.submit":"Create Channel","channels.forms.base.update.submit":"Update Channel","channels.forms.wallets.title":"Wallet Management","channels.forms.wallets.label":"Add Wallets","channels.forms.wallets.placeholder":`Text Format:
|
|
2
2
|
8zFZHuSRuDpuAR7J6FzwyF3vKNx4CVW3DFHJerQhc7Zd,pow
|
|
3
3
|
0x4DB5a66E937A9F4473fA95b1cAF1d1E1D62E29EA,Smart Money`,"channels.forms.wallets.required":"Wallets are required","channels.forms.wallets.invalid":"Invalid wallets format","channels.forms.wallets.chain.required":"Chain is required","channels.forms.wallets.address.required":"Wallet address is required","channels.forms.wallets.address.duplicated":"There are {{count}} duplicated wallet addresses in the input","channels.forms.wallets.address.invalid":"There are {{count}} invalid wallet addresses","channels.forms.wallets.address.alreadyAdded":"There are {{count}} wallet addresses already added","channels.forms.wallets.maxCount":"Wallet count cannot exceed 500","channels.forms.wallets.submit":"Add Wallets","channels.forms.wallets.supportedFormats":"Supported Formats","channels.forms.wallets.supportedFormats.text":"Text","channels.forms.wallets.supportedFormats.text.hint":`Text Format:
|
|
4
4
|
|
|
@@ -7,5 +7,5 @@ export{createInstance,default as i18next}from'i18next';var a=(e=>(e.en="en",e.zh
|
|
|
7
7
|
1. Search for @BotFather on Telegram
|
|
8
8
|
2. Send /newbot to create a bot and get Token
|
|
9
9
|
3. Enter the Bot Token here and save
|
|
10
|
-
4. Add the bot to your group/channel`,"channels.forms.socials.telegram.placeholder":"Enter your Telegram Bot Token","channels.list.title":"Channel List","channels.trending.title":"Trending Channels","channels.my.title":"My Channels","channels.subscribe.submit":"Subscribe","channels.subscribe.error":"Subscribe channel error","channels.subscribe.success":"Subscribe channel successfully","channels.unsubscribe.submit":"Subscribed","channels.unsubscribe.error":"Unsubscribe channel error","channels.unsubscribe.success":"Unsubscribe channel successfully","channels.subscribed.title":"Subscribed Channels","channels.create.title":"Create Channel","channels.create.success":"Channel created successfully","channels.create.error":"Create channel error","channels.update.title":"Update Channel","channels.update.success":"Channel updated successfully","channels.update.error":"Update channel error","channels.info.walletCount":"Wallet Count","channels.info.subscribeCount":"Subscribe Count","channels.info.createdAt":"created at","channels.info.updatedAt":"last updated at","channels.stats.7dTxs.title":"7D TXs","channels.stats.7dTxs.hint":"7 Days Transactions","channels.stats.7dPnl.title":"7D PnL","channels.stats.7dPnl.hint":"7 Days Profit and Loss","channels.stats.7dWr.title":"7D WR","channels.stats.7dWr.hint":"7 Days Winning Rate","channels.detail.title":"Channel Detail","channels.detail.events.title":"Channel Events","channels.
|
|
10
|
+
4. Add the bot to your group/channel`,"channels.forms.socials.telegram.placeholder":"Enter your Telegram Bot Token","channels.list.title":"Channel List","channels.trending.title":"Trending Channels","channels.my.title":"My Channels","channels.subscribe.submit":"Subscribe","channels.subscribe.error":"Subscribe channel error","channels.subscribe.success":"Subscribe channel successfully","channels.unsubscribe.submit":"Subscribed","channels.unsubscribe.error":"Unsubscribe channel error","channels.unsubscribe.success":"Unsubscribe channel successfully","channels.subscribed.title":"Subscribed Channels","channels.create.title":"Create Channel","channels.create.success":"Channel created successfully","channels.create.error":"Create channel error","channels.update.title":"Update Channel","channels.update.success":"Channel updated successfully","channels.update.error":"Update channel error","channels.info.walletCount":"Wallet Count","channels.info.subscribeCount":"Subscribe Count","channels.info.createdAt":"created at","channels.info.updatedAt":"last updated at","channels.stats.7dTxs.title":"7D TXs","channels.stats.7dTxs.hint":"7 Days Transactions","channels.stats.7dPnl.title":"7D PnL","channels.stats.7dPnl.hint":"7 Days Profit and Loss","channels.stats.7dWr.title":"7D WR","channels.stats.7dWr.hint":"7 Days Winning Rate","channels.detail.title":"Channel Detail","channels.detail.notfound":"Channel not found","channels.events.title":"Channel Events","channels.events.empty":"No events yet","channels.events.walletTrade.buy":"bought","channels.events.walletTrade.sell":"sold","channels.events.walletTrade.got":"got","channels.events.walletTrade.cost":"cost","channels.events.walletTrade.price":"price"};var i={"common.cancel":"Cancel","common.confirm":"Confirm","common.reset":"Reset","common.apply":"Apply","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","common.empty":"No data","common.unauthenticated":"Please sign in to continue","common.signIn":"Sign In","common.signOut":"Sign Out","common.resolution.1s":"1s","common.resolution.15s":"15s","common.resolution.30s":"30s","common.resolution.1m":"1m","common.resolution.5m":"5m","common.resolution.15m":"15m","common.resolution.30m":"30m","common.resolution.1h":"1h","common.resolution.4h":"4h","common.resolution.12h":"12h","common.resolution.24h":"24h","common.upload.submit":"Upload","common.upload.resubmit":"Reupload","common.upload.error":"Upload error","common.loadingMore":"Loading more..."};var c={"mediaTrack.tweets.translate.show":"Show Translation","mediaTrack.tweets.translate.hide":"Hide Translation","mediaTrack.tweets.expand":"Expand","mediaTrack.tweets.collapse":"Collapse"};var d={"scaffold.draggableModal.snapToEdge":"Drag to edge to show side panel","scaffold.draggablePanel.snapToModal":"Drag away to show floating modal","scaffold.home":"Home"};var m={"tokens.search.placeholder":"Search by token or CA...","tokens.copied.address":"Token address copied to clipboard","tokens.listHeader.token":"Token","tokens.listHeader.priceHistories":"Price Histories","tokens.listHeader.price":"Price","tokens.listHeader.priceChange":"{{resolution}}%","tokens.listHeader.marketCap":"Market Cap","tokens.listHeader.liquidity":"Liquidity","tokens.listHeader.volumes":"{{resolution}} Volumes","tokens.listHeader.txs":"{{resolution}} TXNS","tokens.listHeader.traders":"{{resolution}} Traders","tokens.listHeader.bluechip":"BlueChip","tokens.listHeader.tokenInfo":"Token Info","tokens.listHeader.actions":"Actions","tokens.listHeader.filter":"Filter","tokens.listType.trending":"Trending","tokens.listType.new":"New","tokens.listType.stocks":"Stocks","tokens.filters.protocols.title":"Protocols","tokens.filters.protocols.selectAll":"Select All","tokens.filters.protocols.unselectAll":"Unselect All","tokens.filters.keywords.title":"Search Keywords","tokens.filters.keywords.exclude.title":"Exclude Keywords","tokens.filters.keywords.placeholder":"keyword1, keyword2...","tokens.filters.stats.min":"Min","tokens.filters.stats.max":"Max","tokens.filters.stats.audits":"Audits","tokens.filters.stats.audits.holders":"Holders Count","tokens.filters.stats.audits.top10HoldingsRatio":"Top 10 Holders %","tokens.filters.stats.audits.top100HoldingsRatio":"Top 100 Holders %","tokens.filters.stats.audits.devHoldingsRatio":"Dev Holdings %","tokens.filters.stats.metrics":"Metrics","tokens.filters.stats.metrics.volumes":"{{resolution}} Volumes ($)","tokens.filters.stats.metrics.txns":"{{resolution}} Transactions","tokens.filters.stats.metrics.liquidity":"Liquidity ($)","tokens.filters.stats.metrics.marketCap":"Market Cap ($)","tokens.filters.modal.title":"Filters","tokens.tokenInfo.holders":"Holders","tokens.tokenInfo.proHolders":"Pro Holders","tokens.tokenInfo.kolHolders":"KOL Holders","tokens.tokenInfo.top10HoldingsRatio":"Top 10 Holders","tokens.tokenInfo.top100HoldingsRatio":"Top 100 Holders","tokens.tokenInfo.devHoldingsRatio":"Dev Holders","tokens.tokenInfo.sniperHoldingsRatio":"Snipers","tokens.tokenInfo.insiderHoldingsRatio":"Insiders","tokens.tokenInfo.bundleHoldingsRatio":"Bundlers","tokens.bluechip.explained":"BlueChip index is the ratio of holders who also own BlueChip tokens"};var R={...i,...c,...d,...m,...r};function h(t,s){let o=t.split("/")[1];return s=s||Object.values(n),s.includes(o)?o:null}function z(t,s,o){s=s||Object.values(n),o=o||"en";let p=/^([a-z]{2})/i,a=t?.match(p);if(!a)return o;let l=a[1];return s.includes(t)?t:s.includes(l)?l:o}function K(t,s){let o=h(t,s);return o?t.replace(new RegExp(`^/${o}(?=/)`),""):t}export{n as LocaleEnum,b as defaultLanguages,g as defaultLng,w as defaultNS,R as en,h as getLocalePathFromPathname,C as i18nCookieKey,x as i18nLocalStorageKey,z as parseI18nLang,K as removeLangPrefix};//# sourceMappingURL=server.mjs.map
|
|
11
11
|
//# sourceMappingURL=server.mjs.map
|
package/dist/server.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.ts","../src/constant.ts","../src/locale/module/channels.ts","../src/locale/module/common.ts","../src/locale/module/mediaTrack.ts","../src/locale/module/scaffold.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","channels","common","mediaTrack","scaffold","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 channels = {\n \"channels.forms.base.title\": \"Base Info\",\n \"channels.forms.base.name.label\": \"Name\",\n \"channels.forms.base.name.placeholder\": \"Please enter the channel name\",\n \"channels.forms.base.name.required\": \"Name is required\",\n \"channels.forms.base.name.min\": \"Name must be at least 1 character\",\n \"channels.forms.base.name.max\": \"Name must be less than 24 characters\",\n \"channels.forms.base.description.label\": \"Description\",\n \"channels.forms.base.description.placeholder\":\n \"Please enter the channel description\",\n \"channels.forms.base.icon.label\": \"Icon\",\n \"channels.forms.base.icon.placeholder\": \"Please upload the channel icon\",\n \"channels.forms.base.icon.hint\":\n \"A square image of at least 128x128 is suggested. File size cannot exceed 10mb.\",\n \"channels.forms.base.icon.required\": \"Icon is required\",\n \"channels.forms.base.icon.maxSize\": \"Icon size cannot exceed 10MB\",\n \"channels.forms.base.submit\": \"Create Channel\",\n \"channels.forms.base.update.submit\": \"Update Channel\",\n \"channels.forms.wallets.title\": \"Wallet Management\",\n \"channels.forms.wallets.label\": \"Add Wallets\",\n \"channels.forms.wallets.placeholder\":\n \"Text Format:\\n8zFZHuSRuDpuAR7J6FzwyF3vKNx4CVW3DFHJerQhc7Zd,pow\\n0x4DB5a66E937A9F4473fA95b1cAF1d1E1D62E29EA,Smart Money\",\n \"channels.forms.wallets.required\": \"Wallets are required\",\n \"channels.forms.wallets.invalid\": \"Invalid wallets format\",\n \"channels.forms.wallets.chain.required\": \"Chain is required\",\n \"channels.forms.wallets.address.required\": \"Wallet address is required\",\n \"channels.forms.wallets.address.duplicated\":\n \"There are {{count}} duplicated wallet addresses in the input\",\n \"channels.forms.wallets.address.invalid\":\n \"There are {{count}} invalid wallet addresses\",\n \"channels.forms.wallets.address.alreadyAdded\":\n \"There are {{count}} wallet addresses already added\",\n \"channels.forms.wallets.maxCount\": \"Wallet count cannot exceed 500\",\n \"channels.forms.wallets.submit\": \"Add Wallets\",\n \"channels.forms.wallets.supportedFormats\": \"Supported Formats\",\n \"channels.forms.wallets.supportedFormats.text\": \"Text\",\n \"channels.forms.wallets.supportedFormats.text.hint\":\n \"Text Format:\\n\\n8zFZHuSRuDpuAR7J6FzwyF3vKNx4CVW3DFHJerQhc7Zd,pow\\n0x4DB5a66E937A9F4473fA95b1cAF1d1E1D62E29EA,Smart Money\",\n \"channels.forms.wallets.addedCount\": \"added wallets\",\n \"channels.forms.wallets.list.title\": \"Added Wallets\",\n \"channels.forms.wallets.list.header.address\": \"Alias/Address\",\n \"channels.forms.wallets.list.header.balance\": \"Balance\",\n \"channels.forms.wallets.list.header.importedAt\": \"Imported At\",\n \"channels.forms.wallets.list.header.lastActiveAt\": \"Last Active At\",\n \"channels.forms.wallets.list.header.7dBuys\": \"7 Days Buys\",\n \"channels.forms.wallets.list.header.7dSells\": \"7 Days Sells\",\n \"channels.forms.wallets.list.header.actions\": \"Actions\",\n \"channels.forms.wallets.list.empty\": \"No wallets added yet\",\n \"channels.forms.wallets.list.search.placeholder\":\n \"Search by address or alias\",\n \"channels.forms.wallets.update.success\": \"Update wallets successfully\",\n \"channels.forms.wallets.update.error\": \"Update wallets error\",\n \"channels.forms.socials.title\": \"Social Medias\",\n \"channels.forms.socials.telegram.guide\":\n \"⚡️ Quick Start\\n1. Search for @BotFather on Telegram\\n2. Send /newbot to create a bot and get Token\\n3. Enter the Bot Token here and save\\n4. Add the bot to your group/channel\",\n \"channels.forms.socials.telegram.placeholder\":\n \"Enter your Telegram Bot Token\",\n \"channels.list.title\": \"Channel List\",\n \"channels.trending.title\": \"Trending Channels\",\n \"channels.my.title\": \"My Channels\",\n \"channels.subscribe.submit\": \"Subscribe\",\n \"channels.subscribe.error\": \"Subscribe channel error\",\n \"channels.subscribe.success\": \"Subscribe channel successfully\",\n \"channels.unsubscribe.submit\": \"Subscribed\",\n \"channels.unsubscribe.error\": \"Unsubscribe channel error\",\n \"channels.unsubscribe.success\": \"Unsubscribe channel successfully\",\n \"channels.subscribed.title\": \"Subscribed Channels\",\n \"channels.create.title\": \"Create Channel\",\n \"channels.create.success\": \"Channel created successfully\",\n \"channels.create.error\": \"Create channel error\",\n \"channels.update.title\": \"Update Channel\",\n \"channels.update.success\": \"Channel updated successfully\",\n \"channels.update.error\": \"Update channel error\",\n \"channels.info.walletCount\": \"Wallet Count\",\n \"channels.info.subscribeCount\": \"Subscribe Count\",\n \"channels.info.createdAt\": \"created at\",\n \"channels.info.updatedAt\": \"last updated at\",\n \"channels.stats.7dTxs.title\": \"7D TXs\",\n \"channels.stats.7dTxs.hint\": \"7 Days Transactions\",\n \"channels.stats.7dPnl.title\": \"7D PnL\",\n \"channels.stats.7dPnl.hint\": \"7 Days Profit and Loss\",\n \"channels.stats.7dWr.title\": \"7D WR\",\n \"channels.stats.7dWr.hint\": \"7 Days Winning Rate\",\n \"channels.detail.title\": \"Channel Detail\",\n \"channels.detail.events.title\": \"Channel Events\",\n \"channels.detail.notfound\": \"Channel not found\",\n};\n","export const common = {\n \"common.cancel\": \"Cancel\",\n \"common.confirm\": \"Confirm\",\n \"common.reset\": \"Reset\",\n \"common.apply\": \"Apply\",\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 \"common.empty\": \"No data\",\n \"common.unauthenticated\": \"Please sign in to continue\",\n \"common.signIn\": \"Sign In\",\n \"common.signOut\": \"Sign Out\",\n \"common.resolution.1s\": \"1s\",\n \"common.resolution.15s\": \"15s\",\n \"common.resolution.30s\": \"30s\",\n \"common.resolution.1m\": \"1m\",\n \"common.resolution.5m\": \"5m\",\n \"common.resolution.15m\": \"15m\",\n \"common.resolution.30m\": \"30m\",\n \"common.resolution.1h\": \"1h\",\n \"common.resolution.4h\": \"4h\",\n \"common.resolution.12h\": \"12h\",\n \"common.resolution.24h\": \"24h\",\n \"common.upload.submit\": \"Upload\",\n \"common.upload.resubmit\": \"Reupload\",\n \"common.upload.error\": \"Upload error\",\n};\n","export const mediaTrack = {\n \"mediaTrack.tweets.translate.show\": \"Show Translation\",\n \"mediaTrack.tweets.translate.hide\": \"Hide Translation\",\n \"mediaTrack.tweets.expand\": \"Expand\",\n \"mediaTrack.tweets.collapse\": \"Collapse\",\n};\n","export const scaffold = {\n \"scaffold.draggableModal.snapToEdge\": \"Drag to edge to show side panel\",\n \"scaffold.draggablePanel.snapToModal\": \"Drag away to show floating modal\",\n \"scaffold.home\": \"Home\",\n};\n","export const tokens = {\n \"tokens.search.placeholder\": \"Search by token or CA...\",\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.priceChange\": \"{{resolution}}%\",\n \"tokens.listHeader.marketCap\": \"Market Cap\",\n \"tokens.listHeader.liquidity\": \"Liquidity\",\n \"tokens.listHeader.volumes\": \"{{resolution}} Volumes\",\n \"tokens.listHeader.txs\": \"{{resolution}} TXNS\",\n \"tokens.listHeader.traders\": \"{{resolution}} Traders\",\n \"tokens.listHeader.tokenInfo\": \"Token Info\",\n \"tokens.listHeader.actions\": \"Actions\",\n \"tokens.listHeader.filter\": \"Filter\",\n \"tokens.listType.trending\": \"Trending\",\n \"tokens.listType.new\": \"New\",\n \"tokens.listType.stocks\": \"Stocks\",\n \"tokens.filters.protocols.title\": \"Protocols\",\n \"tokens.filters.protocols.selectAll\": \"Select All\",\n \"tokens.filters.protocols.unselectAll\": \"Unselect All\",\n \"tokens.filters.keywords.title\": \"Search Keywords\",\n \"tokens.filters.keywords.exclude.title\": \"Exclude Keywords\",\n \"tokens.filters.keywords.placeholder\": \"keyword1, keyword2...\",\n \"tokens.filters.stats.min\": \"Min\",\n \"tokens.filters.stats.max\": \"Max\",\n \"tokens.filters.stats.audits\": \"Audits\",\n \"tokens.filters.stats.audits.holders\": \"Holders Count\",\n \"tokens.filters.stats.audits.top10HoldingsRatio\": \"Top 10 Holders %\",\n \"tokens.filters.stats.audits.top100HoldingsRatio\": \"Top 100 Holders %\",\n \"tokens.filters.stats.audits.devHoldingsRatio\": \"Dev Holdings %\",\n \"tokens.filters.stats.metrics\": \"Metrics\",\n \"tokens.filters.stats.metrics.volumes\": \"{{resolution}} Volumes ($)\",\n \"tokens.filters.stats.metrics.txns\": \"{{resolution}} Transactions\",\n \"tokens.filters.stats.metrics.liquidity\": \"Liquidity ($)\",\n \"tokens.filters.stats.metrics.marketCap\": \"Market Cap ($)\",\n \"tokens.filters.modal.title\": \"Filters\",\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 { channels } from \"./module/channels\";\nimport { common } from \"./module/common\";\nimport { mediaTrack } from \"./module/mediaTrack\";\nimport { scaffold } from \"./module/scaffold\";\nimport { tokens } from \"./module/tokens\";\n\nexport const en = {\n ...common,\n ...mediaTrack,\n ...scaffold,\n ...tokens,\n ...channels,\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"]}
|
|
1
|
+
{"version":3,"sources":["../src/types.ts","../src/constant.ts","../src/locale/module/channels.ts","../src/locale/module/common.ts","../src/locale/module/mediaTrack.ts","../src/locale/module/scaffold.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","channels","common","mediaTrack","scaffold","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 channels = {\n \"channels.forms.base.title\": \"Base Info\",\n \"channels.forms.base.name.label\": \"Name\",\n \"channels.forms.base.name.placeholder\": \"Please enter the channel name\",\n \"channels.forms.base.name.required\": \"Name is required\",\n \"channels.forms.base.name.min\": \"Name must be at least 1 character\",\n \"channels.forms.base.name.max\": \"Name must be less than 24 characters\",\n \"channels.forms.base.description.label\": \"Description\",\n \"channels.forms.base.description.placeholder\":\n \"Please enter the channel description\",\n \"channels.forms.base.icon.label\": \"Icon\",\n \"channels.forms.base.icon.placeholder\": \"Please upload the channel icon\",\n \"channels.forms.base.icon.hint\":\n \"A square image of at least 128x128 is suggested. File size cannot exceed 10mb.\",\n \"channels.forms.base.icon.required\": \"Icon is required\",\n \"channels.forms.base.icon.maxSize\": \"Icon size cannot exceed 10MB\",\n \"channels.forms.base.submit\": \"Create Channel\",\n \"channels.forms.base.update.submit\": \"Update Channel\",\n \"channels.forms.wallets.title\": \"Wallet Management\",\n \"channels.forms.wallets.label\": \"Add Wallets\",\n \"channels.forms.wallets.placeholder\":\n \"Text Format:\\n8zFZHuSRuDpuAR7J6FzwyF3vKNx4CVW3DFHJerQhc7Zd,pow\\n0x4DB5a66E937A9F4473fA95b1cAF1d1E1D62E29EA,Smart Money\",\n \"channels.forms.wallets.required\": \"Wallets are required\",\n \"channels.forms.wallets.invalid\": \"Invalid wallets format\",\n \"channels.forms.wallets.chain.required\": \"Chain is required\",\n \"channels.forms.wallets.address.required\": \"Wallet address is required\",\n \"channels.forms.wallets.address.duplicated\":\n \"There are {{count}} duplicated wallet addresses in the input\",\n \"channels.forms.wallets.address.invalid\":\n \"There are {{count}} invalid wallet addresses\",\n \"channels.forms.wallets.address.alreadyAdded\":\n \"There are {{count}} wallet addresses already added\",\n \"channels.forms.wallets.maxCount\": \"Wallet count cannot exceed 500\",\n \"channels.forms.wallets.submit\": \"Add Wallets\",\n \"channels.forms.wallets.supportedFormats\": \"Supported Formats\",\n \"channels.forms.wallets.supportedFormats.text\": \"Text\",\n \"channels.forms.wallets.supportedFormats.text.hint\":\n \"Text Format:\\n\\n8zFZHuSRuDpuAR7J6FzwyF3vKNx4CVW3DFHJerQhc7Zd,pow\\n0x4DB5a66E937A9F4473fA95b1cAF1d1E1D62E29EA,Smart Money\",\n \"channels.forms.wallets.addedCount\": \"added wallets\",\n \"channels.forms.wallets.list.title\": \"Added Wallets\",\n \"channels.forms.wallets.list.header.address\": \"Alias/Address\",\n \"channels.forms.wallets.list.header.balance\": \"Balance\",\n \"channels.forms.wallets.list.header.importedAt\": \"Imported At\",\n \"channels.forms.wallets.list.header.lastActiveAt\": \"Last Active At\",\n \"channels.forms.wallets.list.header.7dBuys\": \"7 Days Buys\",\n \"channels.forms.wallets.list.header.7dSells\": \"7 Days Sells\",\n \"channels.forms.wallets.list.header.actions\": \"Actions\",\n \"channels.forms.wallets.list.empty\": \"No wallets added yet\",\n \"channels.forms.wallets.list.search.placeholder\":\n \"Search by address or alias\",\n \"channels.forms.wallets.update.success\": \"Update wallets successfully\",\n \"channels.forms.wallets.update.error\": \"Update wallets error\",\n \"channels.forms.socials.title\": \"Social Medias\",\n \"channels.forms.socials.telegram.guide\":\n \"⚡️ Quick Start\\n1. Search for @BotFather on Telegram\\n2. Send /newbot to create a bot and get Token\\n3. Enter the Bot Token here and save\\n4. Add the bot to your group/channel\",\n \"channels.forms.socials.telegram.placeholder\":\n \"Enter your Telegram Bot Token\",\n \"channels.list.title\": \"Channel List\",\n \"channels.trending.title\": \"Trending Channels\",\n \"channels.my.title\": \"My Channels\",\n \"channels.subscribe.submit\": \"Subscribe\",\n \"channels.subscribe.error\": \"Subscribe channel error\",\n \"channels.subscribe.success\": \"Subscribe channel successfully\",\n \"channels.unsubscribe.submit\": \"Subscribed\",\n \"channels.unsubscribe.error\": \"Unsubscribe channel error\",\n \"channels.unsubscribe.success\": \"Unsubscribe channel successfully\",\n \"channels.subscribed.title\": \"Subscribed Channels\",\n \"channels.create.title\": \"Create Channel\",\n \"channels.create.success\": \"Channel created successfully\",\n \"channels.create.error\": \"Create channel error\",\n \"channels.update.title\": \"Update Channel\",\n \"channels.update.success\": \"Channel updated successfully\",\n \"channels.update.error\": \"Update channel error\",\n \"channels.info.walletCount\": \"Wallet Count\",\n \"channels.info.subscribeCount\": \"Subscribe Count\",\n \"channels.info.createdAt\": \"created at\",\n \"channels.info.updatedAt\": \"last updated at\",\n \"channels.stats.7dTxs.title\": \"7D TXs\",\n \"channels.stats.7dTxs.hint\": \"7 Days Transactions\",\n \"channels.stats.7dPnl.title\": \"7D PnL\",\n \"channels.stats.7dPnl.hint\": \"7 Days Profit and Loss\",\n \"channels.stats.7dWr.title\": \"7D WR\",\n \"channels.stats.7dWr.hint\": \"7 Days Winning Rate\",\n \"channels.detail.title\": \"Channel Detail\",\n \"channels.detail.notfound\": \"Channel not found\",\n \"channels.events.title\": \"Channel Events\",\n \"channels.events.empty\": \"No events yet\",\n \"channels.events.walletTrade.buy\": \"bought\",\n \"channels.events.walletTrade.sell\": \"sold\",\n \"channels.events.walletTrade.got\": \"got\",\n \"channels.events.walletTrade.cost\": \"cost\",\n \"channels.events.walletTrade.price\": \"price\",\n};\n","export const common = {\n \"common.cancel\": \"Cancel\",\n \"common.confirm\": \"Confirm\",\n \"common.reset\": \"Reset\",\n \"common.apply\": \"Apply\",\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 \"common.empty\": \"No data\",\n \"common.unauthenticated\": \"Please sign in to continue\",\n \"common.signIn\": \"Sign In\",\n \"common.signOut\": \"Sign Out\",\n \"common.resolution.1s\": \"1s\",\n \"common.resolution.15s\": \"15s\",\n \"common.resolution.30s\": \"30s\",\n \"common.resolution.1m\": \"1m\",\n \"common.resolution.5m\": \"5m\",\n \"common.resolution.15m\": \"15m\",\n \"common.resolution.30m\": \"30m\",\n \"common.resolution.1h\": \"1h\",\n \"common.resolution.4h\": \"4h\",\n \"common.resolution.12h\": \"12h\",\n \"common.resolution.24h\": \"24h\",\n \"common.upload.submit\": \"Upload\",\n \"common.upload.resubmit\": \"Reupload\",\n \"common.upload.error\": \"Upload error\",\n \"common.loadingMore\": \"Loading more...\",\n};\n","export const mediaTrack = {\n \"mediaTrack.tweets.translate.show\": \"Show Translation\",\n \"mediaTrack.tweets.translate.hide\": \"Hide Translation\",\n \"mediaTrack.tweets.expand\": \"Expand\",\n \"mediaTrack.tweets.collapse\": \"Collapse\",\n};\n","export const scaffold = {\n \"scaffold.draggableModal.snapToEdge\": \"Drag to edge to show side panel\",\n \"scaffold.draggablePanel.snapToModal\": \"Drag away to show floating modal\",\n \"scaffold.home\": \"Home\",\n};\n","export const tokens = {\n \"tokens.search.placeholder\": \"Search by token or CA...\",\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.priceChange\": \"{{resolution}}%\",\n \"tokens.listHeader.marketCap\": \"Market Cap\",\n \"tokens.listHeader.liquidity\": \"Liquidity\",\n \"tokens.listHeader.volumes\": \"{{resolution}} Volumes\",\n \"tokens.listHeader.txs\": \"{{resolution}} TXNS\",\n \"tokens.listHeader.traders\": \"{{resolution}} Traders\",\n \"tokens.listHeader.bluechip\": \"BlueChip\",\n \"tokens.listHeader.tokenInfo\": \"Token Info\",\n \"tokens.listHeader.actions\": \"Actions\",\n \"tokens.listHeader.filter\": \"Filter\",\n \"tokens.listType.trending\": \"Trending\",\n \"tokens.listType.new\": \"New\",\n \"tokens.listType.stocks\": \"Stocks\",\n \"tokens.filters.protocols.title\": \"Protocols\",\n \"tokens.filters.protocols.selectAll\": \"Select All\",\n \"tokens.filters.protocols.unselectAll\": \"Unselect All\",\n \"tokens.filters.keywords.title\": \"Search Keywords\",\n \"tokens.filters.keywords.exclude.title\": \"Exclude Keywords\",\n \"tokens.filters.keywords.placeholder\": \"keyword1, keyword2...\",\n \"tokens.filters.stats.min\": \"Min\",\n \"tokens.filters.stats.max\": \"Max\",\n \"tokens.filters.stats.audits\": \"Audits\",\n \"tokens.filters.stats.audits.holders\": \"Holders Count\",\n \"tokens.filters.stats.audits.top10HoldingsRatio\": \"Top 10 Holders %\",\n \"tokens.filters.stats.audits.top100HoldingsRatio\": \"Top 100 Holders %\",\n \"tokens.filters.stats.audits.devHoldingsRatio\": \"Dev Holdings %\",\n \"tokens.filters.stats.metrics\": \"Metrics\",\n \"tokens.filters.stats.metrics.volumes\": \"{{resolution}} Volumes ($)\",\n \"tokens.filters.stats.metrics.txns\": \"{{resolution}} Transactions\",\n \"tokens.filters.stats.metrics.liquidity\": \"Liquidity ($)\",\n \"tokens.filters.stats.metrics.marketCap\": \"Market Cap ($)\",\n \"tokens.filters.modal.title\": \"Filters\",\n \"tokens.tokenInfo.holders\": \"Holders\",\n \"tokens.tokenInfo.proHolders\": \"Pro Holders\",\n \"tokens.tokenInfo.kolHolders\": \"KOL Holders\",\n \"tokens.tokenInfo.top10HoldingsRatio\": \"Top 10 Holders\",\n \"tokens.tokenInfo.top100HoldingsRatio\": \"Top 100 Holders\",\n \"tokens.tokenInfo.devHoldingsRatio\": \"Dev Holders\",\n \"tokens.tokenInfo.sniperHoldingsRatio\": \"Snipers\",\n \"tokens.tokenInfo.insiderHoldingsRatio\": \"Insiders\",\n \"tokens.tokenInfo.bundleHoldingsRatio\": \"Bundlers\",\n \"tokens.bluechip.explained\":\n \"BlueChip index is the ratio of holders who also own BlueChip tokens\",\n};\n","import { channels } from \"./module/channels\";\nimport { common } from \"./module/common\";\nimport { mediaTrack } from \"./module/mediaTrack\";\nimport { scaffold } from \"./module/scaffold\";\nimport { tokens } from \"./module/tokens\";\n\nexport const en = {\n ...common,\n ...mediaTrack,\n ...scaffold,\n ...tokens,\n ...channels,\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"]}
|