Skip to content

Commit f00adbd

Browse files
committed
feat(): update translate script
1 parent 78bf2b7 commit f00adbd

File tree

21 files changed

+1497
-4200
lines changed

21 files changed

+1497
-4200
lines changed

plugins/docusaurus-plugin-ionic-component-api/index.js

Lines changed: 17 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,29 @@ module.exports = function (context, options) {
1919
*/
2020
const generateMarkdownForVersion = async (version, npmTag, isCurrentVersion) => {
2121
let COMPONENT_LINK_REGEXP;
22-
const response = isCurrentVersion
23-
? await fetch(`https://unpkg.com/@ionic/docs@${npmTag}/core.json`)
24-
: await fetch(`https://unpkg.com/@ionic/docs@${npmTag}/core.json`);
25-
const { components } = await response.json();
26-
22+
const components = await (async () => {
23+
if (isCurrentVersion) {
24+
const { components } = require(process.cwd() + `/scripts/data/translated-api.json`);
25+
return components;
26+
} else {
27+
const response = isCurrentVersion
28+
? await fetch(`https://raw.githubusercontent.com/ionic-jp/ionic-docs/main/scripts/data/translated-api.json`)
29+
: await fetch(`https://unpkg.com/@ionic/docs@${npmTag}/core.json`);
30+
const { components } = await response.json();
31+
return components;
32+
}
33+
})();
34+
// const response = isCurrentVersion
35+
// ? await fetch(`https://raw.githubusercontent.com/ionic-jp/ionic-docs/main/scripts/data/translated-api.json`)
36+
// : await fetch(`https://unpkg.com/@ionic/docs@${npmTag}/core.json`);
37+
// const { components } = await response.json();
2738
const names = components.map((component) => component.tag.slice(4));
2839
// matches all relative markdown links to a component, e.g. (../button)
2940
COMPONENT_LINK_REGEXP = new RegExp(`\\(../(${names.join('|')})/?(#[^)]+)?\\)`, 'g');
30-
3141
components.forEach((comp) => {
3242
const compTag = comp.tag.slice(4);
3343
const outDir = getDirectoryPath(compTag, version, isCurrentVersion);
34-
comp = translateDocs(comp);
44+
3545
data.push({
3646
outDir,
3747
componentTag: compTag,
@@ -327,45 +337,3 @@ ${slots.map((slot) => `| \`${slot.name}\` | ${formatMultiline(slot.docs)} |`).jo
327337
328338
`;
329339
}
330-
331-
function translateDocs(comp) {
332-
const { props, events, methods, parts, styles, slots } = comp;
333-
return {
334-
...comp,
335-
props: props.map((prop) => ({
336-
...prop,
337-
docs: translate(prop.docs),
338-
})),
339-
events: events.map((event) => ({
340-
...event,
341-
docs: translate(event.docs),
342-
})),
343-
methods: methods.map((method) => ({
344-
...method,
345-
docs: translate(method.docs),
346-
})),
347-
parts: parts.map((part) => ({
348-
...part,
349-
docs: translate(part.docs),
350-
})),
351-
styles: styles.map((styles) => ({
352-
...styles,
353-
docs: translate(styles.docs),
354-
})),
355-
slots: slots.map((slot) => ({
356-
...slot,
357-
docs: translate(slot.docs),
358-
})),
359-
};
360-
}
361-
362-
function translate(docs) {
363-
const TranslatedFile = require(process.cwd() + '/scripts/data/translated-cache.json');
364-
const translated = TranslatedFile.cache;
365-
366-
if (translated.hasOwnProperty(docs)) {
367-
return translated[docs];
368-
}
369-
370-
return docs;
371-
}

scripts/build-translate/deepl.config.json

Lines changed: 0 additions & 5 deletions
This file was deleted.

scripts/build-translate/index.ts

Lines changed: 11 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from 'fs';
22
import { getTranslateType } from './translate-type';
3-
const translate = require('deepl');
4-
import DeeplConfig from './deepl.config.json';
5-
import TranslatedCache from '../data/translated-cache.json';
63

74
const apply = async () => {
85
const translateTypes = await getTranslateType();
96

10-
const cacheTranslated = TranslatedCache.cache as { [key: string]: string };
11-
const translatedNow = {} as { [key: string]: string };
12-
137
for (const translateType of translateTypes) {
8+
const cachePath = process.cwd() + '/scripts/data/translated-cache-' + translateType.type + '.json';
9+
const cache = JSON.parse(readFileSync(cachePath, { encoding: 'utf8' }));
10+
11+
const translatedNow = {} as { [key: string]: string };
1412
const directory = process.cwd() + '/src/translate/' + translateType.type;
1513
if (!existsSync(directory)) {
1614
continue;
@@ -40,32 +38,13 @@ const apply = async () => {
4038
const translateText = ob[translateType.translateTargetKey].replace(/\n/g, ' ');
4139

4240
// キャッシュデータにあるか確認
43-
if (cacheTranslated.hasOwnProperty(translateText)) {
44-
ob[translateType.translateTargetKey] = cacheTranslated[translateText];
41+
if (cache.hasOwnProperty(translateText)) {
42+
ob[translateType.translateTargetKey] = cache[translateText];
43+
translatedNow[translateText] = cache[translateText];
4544
return;
46-
}
47-
48-
// 今回翻訳データにあるか確認
49-
// if (translatedNow.hasOwnProperty(ob[translateType.translateTargetKey])) {
50-
// ob[translateType.translateTargetKey] = ob[translateType.translateTargetKey] + `\n\n自動翻訳: ${translatedNow[translateText]}`;
51-
// return;
52-
// }
53-
54-
try {
55-
const response = await translate({
56-
free_api: true,
57-
text: translateText,
58-
source_lang: DeeplConfig.fromLanguage,
59-
target_lang: DeeplConfig.toLanguage,
60-
auth_key: process.env.DEEPLAUTHKEY,
61-
});
62-
const translated = response.data.translations[0].text;
63-
translatedNow[translateText] = translated;
64-
} catch (e) {
45+
} else {
6546
translatedNow[translateText] = translateText;
6647
}
67-
68-
// ob[translateType.translateTargetKey] = ob[translateType.translateTargetKey] + `\n\n自動翻訳: ${translated}`;
6948
}
7049
})
7150
);
@@ -87,15 +66,10 @@ const apply = async () => {
8766
JSON.stringify(resource, null, 2),
8867
{ encoding: 'utf8' }
8968
);
69+
writeFileSync(cachePath, JSON.stringify(translatedNow, null, 2), {
70+
encoding: 'utf8',
71+
});
9072
}
91-
92-
// 翻訳データの結合
93-
const writeTranslateCache = {
94-
cache: Object.assign(cacheTranslated, translatedNow),
95-
};
96-
writeFileSync(process.cwd() + '/scripts/data/translated-cache.json', JSON.stringify(writeTranslateCache, null, 2), {
97-
encoding: 'utf8',
98-
});
9973
};
10074

10175
const create = async () => {

0 commit comments

Comments
 (0)