|
@@ -1,6 +1,21 @@
|
|
|
import { i18n } from '/@/locales/setupI18n';
|
|
|
|
|
|
-export function useI18n(namespace?: string) {
|
|
|
+type I18nGlobalTranslation = {
|
|
|
+ (key: string): string;
|
|
|
+ (key: string, locale: string): string;
|
|
|
+ (key: string, locale: string, list: unknown[]): string;
|
|
|
+ (key: string, locale: string, named: Record<string, unknown>): string;
|
|
|
+ (key: string, list: unknown[]): string;
|
|
|
+ (key: string, named: Record<string, unknown>): string;
|
|
|
+};
|
|
|
+
|
|
|
+type I18nTranslationRestParameters = [string, any];
|
|
|
+
|
|
|
+export function useI18n(
|
|
|
+ namespace?: string
|
|
|
+): {
|
|
|
+ t: I18nGlobalTranslation;
|
|
|
+} {
|
|
|
function getKey(key: string) {
|
|
|
if (!namespace) {
|
|
|
return key;
|
|
@@ -22,9 +37,9 @@ export function useI18n(namespace?: string) {
|
|
|
|
|
|
const { t, ...methods } = i18n.global;
|
|
|
|
|
|
- const tFn: typeof t = (key: string, ...arg: any) => {
|
|
|
+ const tFn: I18nGlobalTranslation = (key: string, ...arg: any[]) => {
|
|
|
if (!key) return '';
|
|
|
- return t(getKey(key), ...(arg as Parameters<typeof t>));
|
|
|
+ return t(getKey(key), ...(arg as I18nTranslationRestParameters));
|
|
|
};
|
|
|
return {
|
|
|
...methods,
|