已完成以下部分的国际化:
src/lang/modules/project/management/zh_CN.tssrc/lang/modules/project/management/en_US.ts在Vue组件中:
import { useI18n } from 'vue-i18n';
import { parseI18nName } from '@/utils/i18n';
const { t } = useI18n();
// 使用国际化函数
t('project.management.search.code')
t('project.management.button.add')
t('project.management.table.name')
// 解析字典的国际化名称
parseI18nName(dict.label)
字典数据存储在数据库中,其label字段应该是JSON格式,包含多语言数据:
{
"zh_CN": "中文名称",
"en_US": "English Name"
}
| 字典值 | 字典标签(JSON格式) |
|---|---|
| 1 | {"zh_CN":"临床试验","en_US":"Clinical Trial"} |
| 2 | {"zh_CN":"真实世界研究","en_US":"Real World Study"} |
| 3 | {"zh_CN":"上市后研究","en_US":"Post-Marketing Study"} |
| 字典值 | 字典标签(JSON格式) |
|---|---|
| zh_CN | {"zh_CN":"中文","en_US":"Chinese"} |
| en_US | {"zh_CN":"英文","en_US":"English"} |
| zh_TW | {"zh_CN":"繁体中文","en_US":"Traditional Chinese"} |
project_type、project_language)编辑字典数据的标签字段,使用JSON格式:
{"zh_CN":"中文标签","en_US":"English Label"}
前端代码已使用parseI18nName(dict.label)函数处理字典显示:
<!-- 下拉选择 -->
<el-option
v-for="dict in project_language"
:key="dict.value"
:label="parseI18nName(dict.label)"
:value="dict.value"
/>
<!-- 表格显示 -->
<dict-tag :options="project_language" :value="scope.row.language"/>
parseI18nName函数会:
zh_CN和en_US作为键名当前存在一个与国际化无关的TypeScript类型错误:
<image-upload v-model="form.icon"/>form.icon的类型定义与image-upload组件预期类型不匹配ManagementForm类型定义或image-upload组件的props类型