| | |
| | | import { i18n } from '/@/locales/setupI18n'; |
| | | /* |
| | | * @Description: file content |
| | | * @Author: Ben Lin |
| | | * @version: |
| | | * @Date: 2024-06-18 15:09:47 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-18 16:12:57 |
| | | */ |
| | | import { i18n } from '@/locales/setupI18n'; |
| | | import { isObject, isString } from '/@/utils/is'; |
| | | |
| | | type I18nGlobalTranslation = { |
| | |
| | | (key: string, locale: string, named: Record<string, unknown>): string; |
| | | (key: string, list: unknown[]): string; |
| | | (key: string, named: Record<string, unknown>): string; |
| | | (locale: TigerLocale): string; |
| | | }; |
| | | |
| | | type TigerLocale = { Key: string; Args: unknown[] }; |
| | | |
| | | type I18nTranslationRestParameters = [string, any]; |
| | | |
| | | function getKey(namespace: string | undefined, key: string) { |
| | |
| | | const { t, ...methods } = i18n.global; |
| | | |
| | | const tFn: I18nGlobalTranslation = (key: string | TigerLocale, ...arg: any[]) => { |
| | | if (isString(key)) { |
| | | if (isString(key)){ |
| | | if (!key) return ''; |
| | | if (!key.includes('.') && !namespace) return key; |
| | | return t(getKey(namespace, key), ...(arg as I18nTranslationRestParameters)); |
| | | } else if (isObject(key)) { |
| | | if (!key) return ''; |
| | | if (!key.Key) return ''; |
| | | return t(getKey(namespace, key.Key), key.Args); |
| | | } |
| | | |
| | | return (t as (arg0: string, ...arg: I18nTranslationRestParameters) => string)( |
| | | getKey(namespace, key), |
| | | ...(arg as I18nTranslationRestParameters), |
| | | );}else if (isObject(key)) { |
| | | if (!key) return ''; |
| | | if (!key.Key) return ''; |
| | | return t(getKey(namespace, key.Key), key.Args); |
| | | } |
| | | }; |
| | | return { |
| | | ...methods, |