From 3b72bb43db800edffcf8f8b0adda4fffcbd50fa4 Mon Sep 17 00:00:00 2001 From: jkboxomine <28672313+jkboxomine@users.noreply.github.com> Date: Fri, 31 Jan 2025 20:50:13 +0900 Subject: [PATCH] fix(docs): versioning CLI should copy localized translation file `current.json` to `version-.json` (#10875) Co-authored-by: Sungchang Ha --- .../current.json | 3 +++ .../src/__tests__/cli.test.ts | Bin 14619 -> 14956 bytes .../docusaurus-plugin-content-docs/src/cli.ts | 18 ++++++++++++++++++ .../src/versions/files.ts | 15 +++++++++++++++ 4 files changed, 36 insertions(+) create mode 100644 packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/simple-site/i18n/zh-Hans/docusaurus-plugin-content-docs/current.json diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/simple-site/i18n/zh-Hans/docusaurus-plugin-content-docs/current.json b/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/simple-site/i18n/zh-Hans/docusaurus-plugin-content-docs/current.json new file mode 100644 index 0000000000..4f3fcbcf07 --- /dev/null +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/__fixtures__/simple-site/i18n/zh-Hans/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,3 @@ +{ + "some.key": "some translation" +} diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/cli.test.ts b/packages/docusaurus-plugin-content-docs/src/__tests__/cli.test.ts index baa34816943d2cd70c264557f7393bb9343e655f..c8c28dfca3adea1f1df04e3e2fcc71c6b5ce9e4a 100644 GIT binary patch delta 57 zcmbPT^rmFPH7WLx%-qys4dcm<%66OINKIgz{9oB}@?2?eR=up^{JhD2W~!5UWdb3* J&2ch&WdNTs6`lY9 delta 25 hcmaD;GP`KQHL1ycmOPsUrDrit*4N9~Y$<0f0|1p938Mf2 diff --git a/packages/docusaurus-plugin-content-docs/src/cli.ts b/packages/docusaurus-plugin-content-docs/src/cli.ts index ed5b46e29a..e66e910ebc 100644 --- a/packages/docusaurus-plugin-content-docs/src/cli.ts +++ b/packages/docusaurus-plugin-content-docs/src/cli.ts @@ -14,6 +14,7 @@ import { getVersionDocsDirPath, getVersionSidebarsPath, getDocsDirPathLocalized, + getPluginDirPathLocalized, readVersionsFile, } from './versions/files'; import {validateVersionName} from './versions/validation'; @@ -123,6 +124,23 @@ async function cliDocsVersionCommand( versionName: version, }); await fs.copy(docsDir, newVersionDir); + + // Copy version JSON translation file for this locale + // i18n//docusaurus-plugin-content-docs/current.json => version-v1.json + // See https://docusaurus.io/docs/next/api/plugins/@docusaurus/plugin-content-docs#translation-files-location + if (locale !== i18n.defaultLocale) { + const dir = getPluginDirPathLocalized({ + localizationDir, + pluginId, + }); + const sourceFile = path.join(dir, 'current.json'); + const dest = path.join(dir, `version-${version}.json`); + if (await fs.pathExists(sourceFile)) { + await fs.copy(sourceFile, dest); + } else { + logger.warn`${pluginIdLogPrefix}: i18n translation file does not exist in path=${sourceFile}. Skipping.`; + } + } }), ); diff --git a/packages/docusaurus-plugin-content-docs/src/versions/files.ts b/packages/docusaurus-plugin-content-docs/src/versions/files.ts index 2f045717c2..00b3f08270 100644 --- a/packages/docusaurus-plugin-content-docs/src/versions/files.ts +++ b/packages/docusaurus-plugin-content-docs/src/versions/files.ts @@ -75,6 +75,21 @@ export function getDocsDirPathLocalized({ }); } +export function getPluginDirPathLocalized({ + localizationDir, + pluginId, +}: { + localizationDir: string; + pluginId: string; +}): string { + return getPluginI18nPath({ + localizationDir, + pluginName: 'docusaurus-plugin-content-docs', + pluginId, + subPaths: [], + }); +} + /** `community` => `[siteDir]/community_versions.json` */ export function getVersionsFilePath(siteDir: string, pluginId: string): string { return path.join(siteDir, addPluginIdPrefix(VERSIONS_JSON_FILE, pluginId));