Skip to content

Commit 163a444

Browse files
💄 style: Update i18n log
1 parent 55542ef commit 163a444

File tree

6 files changed

+56
-47
lines changed

6 files changed

+56
-47
lines changed

.husky/pre-commit

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#!/usr/bin/env sh
2-
. "$(dirname -- "$0")/_/husky.sh"
32

43
git add .
54
npx --no-install lint-staged

package.json

+14-14
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"link:i18n": "npm run link --prefix=packages/lobe-i18n",
2727
"lint": "eslint \"{src,packages}/**/*.{js,jsx,ts,tsx}\" --fix",
2828
"lint:md": "remark . --quiet --output",
29-
"prepare": "husky install",
29+
"prepare": "husky",
3030
"prettier": "prettier -c --write \"**/**\"",
3131
"release": "multi-semantic-release",
3232
"start": "npm run dev",
@@ -51,33 +51,33 @@
5151
]
5252
},
5353
"devDependencies": {
54-
"@commitlint/cli": "^19.3.0",
55-
"@lobehub/cli-shebang": "^1.0.1",
56-
"@lobehub/lint": "^1.24.3",
54+
"@commitlint/cli": "^19.6.0",
55+
"@lobehub/cli-shebang": "^1.0.2",
56+
"@lobehub/lint": "^1.24.4",
5757
"@sindresorhus/tsconfig": "^5.1.1",
5858
"@types/lodash-es": "^4.17.12",
59-
"@types/node": "^20.14.14",
59+
"@types/node": "^20.17.7",
6060
"@types/pangu": "^4.0.2",
61-
"@types/react": "^18.3.3",
61+
"@types/react": "^18.3.12",
6262
"@types/update-notifier": "^6.0.8",
63-
"@umijs/lint": "^4.3.11",
63+
"@umijs/lint": "^4.3.35",
6464
"@vitest/coverage-v8": "~1.2.2",
6565
"clean-pkg-json": "^1.2.0",
66-
"commitlint": "^19.3.0",
67-
"eslint": "^8.57.0",
68-
"husky": "^9.1.4",
66+
"commitlint": "^19.6.0",
67+
"eslint": "^8.57.1",
68+
"husky": "^9.1.7",
6969
"ink-testing-library": "^3.0.0",
70-
"lerna": "^8.1.8",
71-
"lint-staged": "^15.2.8",
70+
"lerna": "^8.1.9",
71+
"lint-staged": "^15.2.10",
7272
"multi-semantic-release": "^3.0.2",
73-
"pkgroll": "^2.4.2",
73+
"pkgroll": "^2.5.1",
7474
"prettier": "^3.3.3",
7575
"remark": "^14.0.3",
7676
"remark-cli": "^11.0.0",
7777
"semantic-release": "^21.1.2",
7878
"stylelint": "^15.11.0",
7979
"ts-node": "^10.9.2",
80-
"typescript": "^5.5.4",
80+
"typescript": "^5.7.2",
8181
"vitest": "~1.2.2"
8282
},
8383
"engines": {

packages/lobe-i18n/package.json

+4-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,10 @@
8888
"zustand": "^4.5.4"
8989
},
9090
"devDependencies": {
91-
"@types/json-stable-stringify": "^1.0.36"
91+
"@types/json-stable-stringify": "^1.0.36",
92+
"@types/lodash-es": "^4.17.12",
93+
"@types/node": "^20.16.13",
94+
"@types/unist": "^3.0.3"
9295
},
9396
"peerDependencies": {
9497
"ink": ">=4",

packages/lobe-i18n/src/commands/TranslateLocale/index.tsx

+11-2
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,15 @@ class TranslateLocale {
9494
)} files.`,
9595
);
9696
checkLocaleFolders(config, files);
97+
9798
for (const locale of config.outputLocales) {
98-
for (const filename of files) {
99-
consola.info(`${chalk.cyan(locale)}${chalk.gray(' - ')}${chalk.yellow(filename)}`);
99+
for (const [index, filename] of files.entries()) {
100+
process.stdout.clearLine(0);
101+
process.stdout.cursorTo(0);
102+
103+
process.stdout.write(
104+
`${chalk.cyan(locale)}${chalk.gray(`[${index + 1}/${files.length}] - `)}${chalk.yellow(filename)}`,
105+
);
100106
const targetFilename = resolve(config.output, locale, filename);
101107
const entryObj = entry[filename] as LocaleObj;
102108
const targetObj = diff(entryObj, getLocaleObj(targetFilename)).target;
@@ -111,6 +117,9 @@ class TranslateLocale {
111117
});
112118
}
113119
}
120+
121+
process.stdout.clearLine(0);
122+
process.stdout.cursorTo(0);
114123
}
115124

116125
genFlatQuery() {

packages/lobe-i18n/src/utils/convertMarkdown.ts

+26-28
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,33 @@ import remarkGfm from 'remark-gfm';
33
import remarkParse from 'remark-parse';
44
import remarkStringify from 'remark-stringify';
55
import { unified } from 'unified';
6+
import type { Node } from 'unist';
67
import { visit } from 'unist-util-visit';
78

89
import { LocaleObj } from '@/types';
910
import { checkMdString } from '@/utils/checkMdString';
1011

11-
// @ts-ignore
12-
export const convertMarkdownToMdast = async (md: string) => {
13-
// @ts-ignore
14-
return unified().use(remarkParse).use(remarkGfm).use(remarkFrontmatter).parse(md.trim());
12+
export const convertMarkdownToMdast = async (md: string): Promise<Node> => {
13+
return unified()
14+
.use(remarkParse as any)
15+
.use(remarkGfm as any)
16+
.use(remarkFrontmatter as any)
17+
.parse(md.trim());
1518
};
1619

17-
export const convertMdastToMdastObj = (mdast: any, check?: string[]) => {
20+
export const convertMdastToMdastObj = (mdast: Node, check?: string[]): LocaleObj => {
1821
const obj: LocaleObj = {};
1922
let index = 0;
2023

21-
visit(mdast, check || 'text', (node) => {
24+
visit(mdast, check || 'text', (node: any) => {
2225
obj[index] = node.value;
2326
index++;
2427
});
2528

2629
return obj;
2730
};
2831

29-
export const pickMdastObj = (entry: LocaleObj) => {
32+
export const pickMdastObj = (entry: LocaleObj): LocaleObj => {
3033
const obj: LocaleObj = {};
3134
for (const [key, value] of Object.entries(entry)) {
3235
if (checkMdString(value as string)) continue;
@@ -36,14 +39,14 @@ export const pickMdastObj = (entry: LocaleObj) => {
3639
};
3740

3841
export const mergeMdastObj = (
39-
{ mdast, entry, target }: { entry: LocaleObj; mdast: any; target: LocaleObj },
42+
{ mdast, entry, target }: { entry: LocaleObj; mdast: Node; target: LocaleObj },
4043
check?: string[],
4144
) => {
4245
const merged = { ...entry, ...target };
4346

4447
let index = 0;
4548

46-
visit(mdast, check || 'text', (node) => {
49+
visit(mdast, check || 'text', (node: any) => {
4750
node.value = merged[index];
4851
index++;
4952
});
@@ -52,23 +55,18 @@ export const mergeMdastObj = (
5255
};
5356

5457
export const convertMdastToMarkdown = async (json: any): Promise<string> => {
55-
// @ts-ignore
56-
return (
57-
unified()
58-
// @ts-ignore
59-
.use(remarkStringify, {
60-
bullet: '-',
61-
emphasis: '*',
62-
fences: true,
63-
listItemIndent: 1,
64-
rule: '-',
65-
strong: '*',
66-
tightDefinitions: true,
67-
})
68-
// @ts-ignore
69-
.use(remarkFrontmatter)
70-
// @ts-ignore
71-
.use(remarkGfm)
72-
.stringify(json)
73-
);
58+
return unified()
59+
.use(remarkStringify as any, {
60+
bullet: '-',
61+
emphasis: '*',
62+
fences: true,
63+
listItemIndent: 1,
64+
rule: '-',
65+
strong: '*',
66+
tightDefinitions: true,
67+
})
68+
.use(remarkFrontmatter as any)
69+
.use(remarkGfm as any)
70+
.stringify(json)
71+
.toString();
7472
};

packages/lobe-i18n/src/utils/fs.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export const readJSON = (filePath: string) => {
88

99
export const writeJSON = (filePath: string, data: any) => {
1010
const jsonStr = stringify(data, { space: ' ' });
11-
writeFileSync(filePath, jsonStr, 'utf8');
11+
writeFileSync(filePath, jsonStr + '\r\n', 'utf8');
1212
};
1313

1414
export const readMarkdown = (filePath: string): string => {

0 commit comments

Comments
 (0)