From 3031c47c3ba0d12bd620339b91dbbf0933e06e5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Lorber?= Date: Thu, 28 Jan 2021 18:22:36 +0100 Subject: [PATCH] fix(v2): navbar dropdown subitems should be translated properly(#4118) --- .../__snapshots__/translations.test.ts.snap | 10 +++++++++- .../src/__tests__/translations.test.ts | 8 +++++++- .../src/translations.ts | 19 ++++++++++++++----- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/packages/docusaurus-theme-classic/src/__tests__/__snapshots__/translations.test.ts.snap b/packages/docusaurus-theme-classic/src/__tests__/__snapshots__/translations.test.ts.snap index 8e2dc4a88b..a0e76dbce6 100644 --- a/packages/docusaurus-theme-classic/src/__tests__/__snapshots__/translations.test.ts.snap +++ b/packages/docusaurus-theme-classic/src/__tests__/__snapshots__/translations.test.ts.snap @@ -12,6 +12,10 @@ Array [ "description": "Navbar item with label Dropdown item 1", "message": "Dropdown item 1", }, + "item.label.Dropdown item 2": Object { + "description": "Navbar item with label Dropdown item 2", + "message": "Dropdown item 2", + }, "title": Object { "description": "The title in the navbar", "message": "navbar title", @@ -94,7 +98,11 @@ Object { "items": Array [ Object { "items": Array [], - "label": "Dropdown item 1", + "label": "Dropdown item 1 (translated)", + }, + Object { + "items": Array [], + "label": "Dropdown item 2 (translated)", }, ], "label": "Dropdown (translated)", diff --git a/packages/docusaurus-theme-classic/src/__tests__/translations.test.ts b/packages/docusaurus-theme-classic/src/__tests__/translations.test.ts index 5d761c50b1..64ecdf8a2e 100644 --- a/packages/docusaurus-theme-classic/src/__tests__/translations.test.ts +++ b/packages/docusaurus-theme-classic/src/__tests__/translations.test.ts @@ -22,7 +22,13 @@ const ThemeConfigSample: ThemeConfig = { style: 'dark', hideOnScroll: false, items: [ - {label: 'Dropdown', items: [{label: 'Dropdown item 1', items: []}]}, + { + label: 'Dropdown', + items: [ + {label: 'Dropdown item 1', items: []}, + {label: 'Dropdown item 2', items: []}, + ], + }, ], }, footer: { diff --git a/packages/docusaurus-theme-classic/src/translations.ts b/packages/docusaurus-theme-classic/src/translations.ts index dec451cd03..191c3a4297 100644 --- a/packages/docusaurus-theme-classic/src/translations.ts +++ b/packages/docusaurus-theme-classic/src/translations.ts @@ -54,11 +54,20 @@ function translateNavbar( ...navbar, title: navbarTranslations.title?.message ?? navbar.title, // TODO handle properly all the navbar item types here! - items: navbar.items.map((item) => ({ - ...item, - label: - navbarTranslations[`item.label.${item.label}`]?.message ?? item.label, - })), + items: navbar.items.map((item) => { + const subItems = item.items?.map((subItem) => ({ + ...subItem, + label: + navbarTranslations[`item.label.${subItem.label}`]?.message ?? + subItem.label, + })); + return { + ...item, + label: + navbarTranslations[`item.label.${item.label}`]?.message ?? item.label, + ...(subItems ? {items: subItems} : undefined), + }; + }), }; }