Kylin i18n Copilot
旨在提供一系列编辑器辅助功能用于提升 kylin 系统的国际化开发效率的同时,优化开发人员的开发体验。
使用方式
VS Code 插件市场搜索 Kylin i18n Copilot 安装
功能
内联提示
悬浮窗和快捷操作
从代码中提取中文文案
缺失文案报告
要求
- vscode 版本不低于 1.77.3
- 项目里面应该提前配置好翻译组件 CommonTranslate、commonTranslate、Translate、translate, 下面是一个参考:
import * as React from 'react';
import { observer } from 'mobx-react';
import { languageStore } from '@/stores/language';
import { PortalService } from '@/services/portal';
interface IProps {
i18n: string;
data?: { [key: string]: any };
component?: 'span' | 'div';
}
export const { translate } = languageStore;
@observer
export class Translate extends React.Component<IProps> {
public render() {
const { i18n, data, component = 'span' } = this.props;
const text = translate(i18n, data);
if (component === 'span') {
return <span data-i18n={i18n}>{text}</span>;
}
if (component === 'div') {
return <div data-i18n={i18n}>{text}</div>;
}
return <React.Fragment>{text}</React.Fragment>;
}
}
interface ICommonTranslateProps {
i18n: string;
data?: { [key: string]: any };
component?: 'span' | 'div';
}
export const CommonTranslate: React.FC<ICommonTranslateProps> = (props) => {
const { Common } = PortalService.LanguageService;
const { i18n, data, component = 'span' } = props;
const text = Common.translate(i18n, data);
if (component === 'span') {
return <span data-i18n={i18n}>{text}</span>;
}
if (component === 'div') {
return <div data-i18n={i18n}>{text}</div>;
}
return <React.Fragment>{text}</React.Fragment>;
};
export const commonTranslate = (i18n: string, data?: any) => {
const { Common } = PortalService.LanguageService;
return Common.translate(i18n, data);
};
设置
如果您的扩展通过contributes.configuration
扩展点添加任何 VS Code 设置,请将其包括在内。
该扩展可提供以下设置:
kylin-i18n-copilot.disabled
: 是否禁用 Kylin i18n Copilot, 默认为 false
.
kylin-i18n-copilot.autoDetection
: 是否启用项目的本地语言自动检测功能, 默认为 false
.
kylin-i18n-copilot.i18nDirName
: 项目检测的本地语言文件夹名称, 默认为 i18n
.
kylin-i18n-copilot.localesPaths
: 翻译文件夹路径 (相对于项目根目录),开启自动检测功能后,无需手动配置.
kylin-i18n-copilot.commonLocalesDirNames
: 项目自身公用翻译文件夹名称, 例如有些项目自身公用翻译文件为 common, 可使用传入 ["common"]
.
kylin-i18n-copilot.commonI18nApiUrl
: 网络公共多语言接口地址, 默认为 http://vl7y8cbe33.kylin.shuyun.com
.
kylin-i18n-copilot.displayLanguage
: 显示语言, 默认为 zh-CN
.
kylin-i18n-copilot.tabStyle
: 文案文件的缩进样式,可选为 tab
和 space
, 默认为 space
.
kylin-i18n-copilot.indent
: 文案文件的缩进大小, 默认为 2
.
kylin-i18n-copilot.annotationMaxLength
: 内联注释显示的最大字符数。超出的部分将显示为省略号 (...), 默认为 40
.
使用文档
准备工作
1、手动设置 kylin-i18n-copilot.localesPaths
, 如 "kylin-i18n-copilot.localesPaths": ["packages/business/i18n"]
2、自动设置 "kylin-i18n-copilot.autoDetection": true
, 启动自动检测后,重新加载项目, 插件会更新 kylin-i18n-copilot.localesPaths
如果项目存在如 business
和 implement
同时使用 common
文件下的多语言时
// 比如开发时代理的本地语言包,同时包含了 启用的端 和 common
devServer.app.use(
`/${pakJson.serverName}/${APP_TYPE}/i18n`,
express.static(path.resolve(__dirname, `packages/${APP_TYPE}/i18n`)),
);
devServer.app.use(
`/${pakJson.serverName}/common/i18n`,
express.static(path.resolve(__dirname, `packages/common/i18n`)),
);
还需要设置 "kylin-i18n-copilot.commonLocalesDirNames": ["common"]
其余配置都有默认值,即可开始体验。
发布日志
0.0.1
Initial release of Kylin i18n Copilot
0.0.2
修复 bug:
0.0.3
功能:
0.0.4
功能:
0.0.5
修复 bug:
0.0.6
修复 bug:
- 提取中文文案为 CommonTranslate 时,新增了本地的多语言
0.0.7
文档:
修复 bug:
0.0.8
文档:
1.0.0
修复 bug:
Enjoy!