Skip to content

国际化

框架内部集成 vue-i18n,可直接使用国际化的能力。

具体使用 参考

配置

定义国际化文件。

src/locales/zh.ts

js
import { defineLocale } from '@gauss/flux'

export default defineLocale({
    siteTitle: 'Gauss',
})
import { defineLocale } from '@gauss/flux'

export default defineLocale({
    siteTitle: 'Gauss',
})

src/locales/en.ts

js
import { defineLocale } from '@gauss/flux'

export default defineLocale({
    siteTitle: 'Gauss',
})
import { defineLocale } from '@gauss/flux'

export default defineLocale({
    siteTitle: 'Gauss',
})

main.ts

js
import { createFlux } from '@gauss/flux'
import zh from './locales/zh'
import en from './locales/en'

const flux = createFlux({
    ...
    i18nOptions: {
        messages: {
            zh,
            en,
        }
    },
})
import { createFlux } from '@gauss/flux'
import zh from './locales/zh'
import en from './locales/en'

const flux = createFlux({
    ...
    i18nOptions: {
        messages: {
            zh,
            en,
        }
    },
})

使用

vue
<template>
    <div>{{ $t('siteTitle') }}</div>
</template>

<script setup>
import { watch } from 'vue'
import { useI18n } from '@gauss/flux'
const { t, locale } = useI18n()
console.log(t('siteTitle'))

watch(
    () => locale.value,
    () => {
        // TODO,国际化切换时处理
    },
)
</script>
<template>
    <div>{{ $t('siteTitle') }}</div>
</template>

<script setup>
import { watch } from 'vue'
import { useI18n } from '@gauss/flux'
const { t, locale } = useI18n()
console.log(t('siteTitle'))

watch(
    () => locale.value,
    () => {
        // TODO,国际化切换时处理
    },
)
</script>

框架国际化字段

您可以修改定义文件来覆盖框架本身的国际化字段。

zh

ts
export default {
    pageTitle: {
        login: '登录',
        autoLogin: '自动登录',
    },
    login: {
        welcome: '你好,欢迎回来',
        submitTxt: '登录',
        uid: '用户名',
        password: '密码',
        rememberMe: '记住我',
        rules: {
            uid: '请输入用户名',
            password: '请输入密码',
        },
        errorMsg: '服务端出错',
    },
    auth: {
        message: '您暂无权限访问,请重新登录',
    },
    autoLoginFailed: {
        title: '提示',
        message: '授权登录编码失败,请重试!',
        confirmButtonText: '跳转登录页',
        cancelButtonText: '返回',
    },
}
export default {
    pageTitle: {
        login: '登录',
        autoLogin: '自动登录',
    },
    login: {
        welcome: '你好,欢迎回来',
        submitTxt: '登录',
        uid: '用户名',
        password: '密码',
        rememberMe: '记住我',
        rules: {
            uid: '请输入用户名',
            password: '请输入密码',
        },
        errorMsg: '服务端出错',
    },
    auth: {
        message: '您暂无权限访问,请重新登录',
    },
    autoLoginFailed: {
        title: '提示',
        message: '授权登录编码失败,请重试!',
        confirmButtonText: '跳转登录页',
        cancelButtonText: '返回',
    },
}

en

ts
export default {
    pageTitle: {
        login: 'Login',
        autoLogin: 'Auto Login',
    },
    login: {
        welcome: 'Hello, welcome back',
        submitTxt: 'Log in',
        uid: 'Username',
        password: 'Password',
        rememberMe: 'Remember Me',
        rules: {
            uid: 'Please enter your username',
            password: 'Please enter your password',
        },
        errorMsg: 'Server error',
    },
    auth: {
        message: 'You do not have permission to access, please login again',
    },
    autoLoginFailed: {
        title: 'Tips',
        message: 'Authorization login code failed. Please try again!',
        confirmButtonText: 'Jump to Login',
        cancelButtonText: 'Back',
    },
}
export default {
    pageTitle: {
        login: 'Login',
        autoLogin: 'Auto Login',
    },
    login: {
        welcome: 'Hello, welcome back',
        submitTxt: 'Log in',
        uid: 'Username',
        password: 'Password',
        rememberMe: 'Remember Me',
        rules: {
            uid: 'Please enter your username',
            password: 'Please enter your password',
        },
        errorMsg: 'Server error',
    },
    auth: {
        message: 'You do not have permission to access, please login again',
    },
    autoLoginFailed: {
        title: 'Tips',
        message: 'Authorization login code failed. Please try again!',
        confirmButtonText: 'Jump to Login',
        cancelButtonText: 'Back',
    },
}