From b1c9c41849b20153384604140c08c966d2b51ece Mon Sep 17 00:00:00 2001 From: David Montero Crespo Date: Fri, 7 Aug 2026 07:13:05 +0200 Subject: [PATCH] =?UTF-8?q?ux(datasheet):=20soften=20the=20purchase=20link?= =?UTF-8?q?=20=E2=80=94=20"Buy"=20becomes=20a=20localized=20"Product=20pag?= =?UTF-8?q?e"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The word "Buy" on a solid button read as an ad inside a work dialog. The link is really a pointer to the part's product page, so it now says that — localized in all nine languages — with an external-link icon instead of a shopping cart. Same URL, same placement, in both the part inspector and the picker hover card. --- frontend/src/components/ComponentInfoPanel.tsx | 10 ++++++---- .../src/components/simulator/PartInspectorDialog.tsx | 8 ++++---- frontend/src/i18n/locales/de/common2.json | 3 ++- frontend/src/i18n/locales/en/common2.json | 3 ++- frontend/src/i18n/locales/es/common2.json | 3 ++- frontend/src/i18n/locales/fr/common2.json | 3 ++- frontend/src/i18n/locales/it/common2.json | 3 ++- frontend/src/i18n/locales/ja/common2.json | 3 ++- frontend/src/i18n/locales/pt-br/common2.json | 3 ++- frontend/src/i18n/locales/ru/common2.json | 3 ++- frontend/src/i18n/locales/zh-cn/common2.json | 3 ++- 11 files changed, 28 insertions(+), 17 deletions(-) diff --git a/frontend/src/components/ComponentInfoPanel.tsx b/frontend/src/components/ComponentInfoPanel.tsx index 7f2a35b7..7ab7cb19 100644 --- a/frontend/src/components/ComponentInfoPanel.tsx +++ b/frontend/src/components/ComponentInfoPanel.tsx @@ -20,6 +20,7 @@ import React from 'react'; import { createPortal } from 'react-dom'; +import { useTranslation } from 'react-i18next'; import ReactMarkdown from 'react-markdown'; import remarkGfm from 'remark-gfm'; import type { PropertyDescriptor } from '../types/component-metadata'; @@ -114,6 +115,7 @@ export const ComponentInfoBody: React.FC<{ /** false = doc/description + tags + Buy only (the dialog has its own props UI). */ showProps?: boolean; }> = ({ data, showProps = true }) => { + const { t: translate } = useTranslation(); const doc = useComponentDoc(data.id); const visibleProps = data.properties.filter((p) => !HIDDEN_PROPS.has(p.name)); @@ -178,11 +180,11 @@ export const ComponentInfoBody: React.FC<{ strokeLinejoin="round" aria-hidden="true" > - - - + + + - Buy + {translate('editor.inspector.productPage')} )} diff --git a/frontend/src/components/simulator/PartInspectorDialog.tsx b/frontend/src/components/simulator/PartInspectorDialog.tsx index 02519a7d..ac2871ca 100644 --- a/frontend/src/components/simulator/PartInspectorDialog.tsx +++ b/frontend/src/components/simulator/PartInspectorDialog.tsx @@ -788,11 +788,11 @@ export const PartInspectorDialog: React.FC = ({ strokeLinejoin="round" aria-hidden="true" > - - - + + + - Buy + {t('editor.inspector.productPage')} )} diff --git a/frontend/src/i18n/locales/de/common2.json b/frontend/src/i18n/locales/de/common2.json index 250c04ea..677ebd76 100644 --- a/frontend/src/i18n/locales/de/common2.json +++ b/frontend/src/i18n/locales/de/common2.json @@ -392,7 +392,8 @@ "inspector": { "propertiesTab": "Eigenschaften", "datasheetTab": "Datenblatt", - "examplesTitle": "Beispielprojekte" + "examplesTitle": "Beispielprojekte", + "productPage": "Produktseite" } }, "about": { diff --git a/frontend/src/i18n/locales/en/common2.json b/frontend/src/i18n/locales/en/common2.json index 2f88ccfa..fab60a19 100644 --- a/frontend/src/i18n/locales/en/common2.json +++ b/frontend/src/i18n/locales/en/common2.json @@ -394,7 +394,8 @@ "inspector": { "propertiesTab": "Properties", "datasheetTab": "Datasheet", - "examplesTitle": "Example projects" + "examplesTitle": "Example projects", + "productPage": "Product page" } }, "about": { diff --git a/frontend/src/i18n/locales/es/common2.json b/frontend/src/i18n/locales/es/common2.json index e748d443..5acb66f2 100644 --- a/frontend/src/i18n/locales/es/common2.json +++ b/frontend/src/i18n/locales/es/common2.json @@ -394,7 +394,8 @@ "inspector": { "propertiesTab": "Propiedades", "datasheetTab": "Ficha técnica", - "examplesTitle": "Proyectos de ejemplo" + "examplesTitle": "Proyectos de ejemplo", + "productPage": "Ver producto" } }, "about": { diff --git a/frontend/src/i18n/locales/fr/common2.json b/frontend/src/i18n/locales/fr/common2.json index 8beb5dbd..c23977b3 100644 --- a/frontend/src/i18n/locales/fr/common2.json +++ b/frontend/src/i18n/locales/fr/common2.json @@ -392,7 +392,8 @@ "inspector": { "propertiesTab": "Propriétés", "datasheetTab": "Fiche technique", - "examplesTitle": "Projets d’exemple" + "examplesTitle": "Projets d’exemple", + "productPage": "Page produit" } }, "about": { diff --git a/frontend/src/i18n/locales/it/common2.json b/frontend/src/i18n/locales/it/common2.json index 2b1d2382..38d92d5e 100644 --- a/frontend/src/i18n/locales/it/common2.json +++ b/frontend/src/i18n/locales/it/common2.json @@ -392,7 +392,8 @@ "inspector": { "propertiesTab": "Proprietà", "datasheetTab": "Scheda tecnica", - "examplesTitle": "Progetti di esempio" + "examplesTitle": "Progetti di esempio", + "productPage": "Pagina prodotto" } }, "about": { diff --git a/frontend/src/i18n/locales/ja/common2.json b/frontend/src/i18n/locales/ja/common2.json index 285c0a14..52f48e47 100644 --- a/frontend/src/i18n/locales/ja/common2.json +++ b/frontend/src/i18n/locales/ja/common2.json @@ -392,7 +392,8 @@ "inspector": { "propertiesTab": "プロパティ", "datasheetTab": "データシート", - "examplesTitle": "サンプルプロジェクト" + "examplesTitle": "サンプルプロジェクト", + "productPage": "製品ページ" } }, "about": { diff --git a/frontend/src/i18n/locales/pt-br/common2.json b/frontend/src/i18n/locales/pt-br/common2.json index 523cbc6f..6dcd391a 100644 --- a/frontend/src/i18n/locales/pt-br/common2.json +++ b/frontend/src/i18n/locales/pt-br/common2.json @@ -392,7 +392,8 @@ "inspector": { "propertiesTab": "Propriedades", "datasheetTab": "Ficha técnica", - "examplesTitle": "Projetos de exemplo" + "examplesTitle": "Projetos de exemplo", + "productPage": "Página do produto" } }, "about": { diff --git a/frontend/src/i18n/locales/ru/common2.json b/frontend/src/i18n/locales/ru/common2.json index 75d31b25..8c06b784 100644 --- a/frontend/src/i18n/locales/ru/common2.json +++ b/frontend/src/i18n/locales/ru/common2.json @@ -392,7 +392,8 @@ "inspector": { "propertiesTab": "Свойства", "datasheetTab": "Спецификация", - "examplesTitle": "Примеры проектов" + "examplesTitle": "Примеры проектов", + "productPage": "Страница товара" } }, "about": { diff --git a/frontend/src/i18n/locales/zh-cn/common2.json b/frontend/src/i18n/locales/zh-cn/common2.json index 38d0ecdc..c39ac577 100644 --- a/frontend/src/i18n/locales/zh-cn/common2.json +++ b/frontend/src/i18n/locales/zh-cn/common2.json @@ -392,7 +392,8 @@ "inspector": { "propertiesTab": "属性", "datasheetTab": "数据手册", - "examplesTitle": "示例项目" + "examplesTitle": "示例项目", + "productPage": "产品页面" } }, "about": {