Skip to content

Commit

Permalink
fix(i18n): 修复无法覆盖默认国际化配置的bug
Browse files Browse the repository at this point in the history
  • Loading branch information
greper committed Aug 14, 2023
1 parent 606d745 commit 97f5870
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 2 deletions.
30 changes: 30 additions & 0 deletions docs/zh/guide/start/i18n.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,33 @@ export default createI18n({
```js
app.use(FastCrud, { i18n } )
```

## 覆盖默认i18n文本
有时候官方翻译的文本不符合你的需求,你可以通过覆盖默认文本来实现自定义文本

```js
const messages = {
en: {
label: "English",
fs:{
//你要覆盖的配置
//配置结构请参考,https://github.com/fast-crud/fast-crud/blob/main/packages/fast-crud/src/locale/lang/en.ts
}
},
"zh-cn": {
label: "简体中文",
fs:{
//你要覆盖的配置
//配置结构请参考,https://github.com/fast-crud/fast-crud/blob/main/packages/fast-crud/src/locale/lang/zh-cn.ts
}
}
};

export default createI18n({
legacy: false,
locale: "zh-cn",
fallbackLocale: "zh-cn",
messages
});

```
9 changes: 7 additions & 2 deletions packages/fast-crud/src/locale/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import zhCN from "./lang/zh-cn";
import en from "./lang/en";
import { useMerge } from "../use";
import _ from "lodash-es";
import logger from "../utils/util.log";
function t(key: string, args: any) {
let value = _.get(zhCN, key);
if (value == null) {
Expand Down Expand Up @@ -29,16 +30,20 @@ class I18n {
}
const { merge } = useMerge();
const locales: string[] = instance.availableLocales;
debugger;
for (const item of locales) {
if (item.startsWith("zh")) {
const message = instance.getLocaleMessage(item);
const fsClone = _.cloneDeep(message.fs);
instance.mergeLocaleMessage(item, { fs: zhCN.fs });
instance.mergeLocaleMessage(item, { fs: message.fs });
instance.mergeLocaleMessage(item, { fs: fsClone });
} else if (item.startsWith("en")) {
const message = instance.getLocaleMessage(item);
const fsClone = _.cloneDeep(message.fs);
instance.mergeLocaleMessage(item, { fs: en.fs });
instance.mergeLocaleMessage(item, { fs: message.fs });
instance.mergeLocaleMessage(item, { fs: fsClone });
}
logger.debug("i18n", instance.getLocaleMessage(item));
}
this.vueI18nInstance = instance;
}
Expand Down

0 comments on commit 97f5870

Please sign in to comment.