Appearance
BizI18nInput 多语言输入
一个字段多语言录入(国际化系统高频痛点):页签切换语言逐个填写(或 layout="vertical" 语言块堆叠),主语言必填校验、缺译警示点(主语言已填而该语言为空)、字符上限与字数统计、只读回显;translate-request 钩子注入机器翻译实现后,非主语言页签出现「译」按钮一键填充。值结构为 { 'zh-CN': '...', en: '...' },直接对齐后端多语言字段。
适用于:商品名 / 公告 / 文章标题 / 推送文案多语言维护,出海 SaaS 基础信息录入。
基础用法
🇨🇳 简体中文 主
🇬🇧 English
🇯🇵 日本語
{
"zh-CN": "工业边缘网关",
"en": "",
"ja": ""
}多行文本与字数
44 / 200
🇨🇳 简体中文 主
🇬🇧 English
🇯🇵 日本語
主语言必填校验
🇨🇳 简体中文 主
🇬🇧 English
🇯🇵 日本語
缺译标记
🇨🇳 简体中文 主
🇬🇧 English
🇯🇵 日本語
「简体中文」「English」已填,「日本語」为空 → 页签名旁出现黄色警示点;切到该页签补译后即消失。主语言页签带「主」徽标。
一键翻译
🇨🇳 简体中文 主
🇬🇧 English
🇯🇵 日本語
堆叠布局
推送标题(窄屏表单)
🇨🇳 简体中文 主
🇬🇧 English
🇯🇵 日本語
只读回显
商品多语言名称
| 多语言名称 | 🇨🇳 简体中文 主 🇬🇧 English 🇯🇵 日本語 |
商品多语言表单
Props
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| v-model | BizI18nValue | {} | 多语言值:{ 语言码: 文本 } |
| locales | BizI18nLocale[] | [] | 语言列表({ code, label, flag? },至少 1 项) |
| primary | string | 首语言 | 主语言码(必填校验基准 / 翻译源) |
| type | 'input' | 'textarea' | 'input' | 控件类型 |
| placeholder | string | 按语言 | 占位文案(主语言「必填」、其他「选填(语言名)」) |
| rows | number | 3 | textarea 行数 |
| required | boolean | true | 主语言必填(validate 依据) |
| maxlength | number | — | 每语言字符上限(自动开字数统计) |
| show-word-limit | boolean | 有 maxlength 时 true | 字数统计开关 |
| mark-missing | boolean | true | 缺译警示点开关 |
| layout | 'tabs' | 'vertical' | 'tabs' | 页签 / 堆叠布局 |
| disabled | boolean | false | 只读回显 |
| translate-request | (text, from, to) => Promise<string> | — | 机器翻译钩子(注入后非主语言出「译」按钮) |
Events
| 事件名 | 参数 | 说明 |
|---|---|---|
| update:model-value | (value: BizI18nValue) | 任一语言输入即整体更新 |
| change | (locale, text) | 某语言输入完成(控件 change 提交后) |
| translated | (locale, text) | 一键翻译填充完成 |
Expose
| 名称 | 类型 | 说明 |
|---|---|---|
| validate | () => BizI18nValidateResult | 主语言必填校验(错误展示在组件底部);返回 { valid, primaryEmpty, missingLocales } |
| clearValidate | () => void | 清除校验错误展示 |
| getValue | (locale) => string | 单语言取值 |
| getValues | () => BizI18nValue | 整体值快照 |
| setActive | (locale) => void | 切换到某语言页签 |