From 61023019aaa539bf2045a8547b9b0e4bf8c40133 Mon Sep 17 00:00:00 2001 From: mhoennig Date: Tue, 21 Jul 2026 12:47:19 +0200 Subject: [PATCH] =?UTF-8?q?frontend:=20=C3=9Cbersetzungen=20f=C3=BCr=20Man?= =?UTF-8?q?darin=20(=E4=B8=AD)=20und=20Japanisch=20(=E6=97=A5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Zwei weitere aufklappbare Sprachen hinter dem "…"-Umschalter mit vollständigen UI-Übersetzungen (inkl. Diagramm-Tooltips). Reihenfolge: de en es fr pl ru hi zh ja …. LANG_EXTRA und CLAUDE.md-Konvention ergänzt. Co-Authored-By: Claude Opus 4.8 --- CLAUDE.md | 2 +- frontend/index.html | 62 ++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 62 insertions(+), 2 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index b121654..4df3d29 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -20,7 +20,7 @@ Integrations-Backend. ## Querschnitts-Konventionen - Doku auf Deutsch. Die Editor-UI ist mehrsprachig (DE/EN/ES/FR direkt, - PL/RU/HI hinter dem „…“-Aufklapper des Umschalters oben rechts); + PL/RU/HI/ZH/JA hinter dem „…“-Aufklapper des Umschalters oben rechts); **Deutsch ist die Quellsprache** — neue UI-Texte zuerst auf Deutsch im `I18N`-Objekt (frontend/index.html) anlegen, dann in alle Sprachen übersetzen. diff --git a/frontend/index.html b/frontend/index.html index 00f4a30..ab64737 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -494,6 +494,8 @@ + + @@ -1232,6 +1234,64 @@ const I18N = { hint_break:"(M) से आगे: और विभाजित करें — विभाजन न होने पर आरेख में प्लेसहोल्डर दिखता है।", hint_comment:"%% से टिप्पणियाँ — पूरी पंक्ति या पंक्ति के अंत में।", hint_people:"@नाम से व्यक्ति — नोड के नीचे-दाएँ दिखते हैं।" + }, + zh: { + subtitle:"Werkbaum – 基于文本的图表编辑器:WBS / 工作分解结构 / 功能树。", + brandTooltip:"「Werkbaum」大致意为‘工作之树’——即工作分解结构(WBS)之树。", + fullscreenTooltip:"全屏——面板占据整个窗口宽度", + discardedTooltip:"显示/隐藏已放弃的节点及其子树", + ghostTooltip:"从 M 号起,元素应进一步细分。", + editorTitle:"结构(文本)", diagramTitle:"图表", + copy:"复制", copyDone:"已复制 ✓", copyTooltip:"将文本复制到剪贴板", + copyDiagramTooltip:"将图表作为 PNG 图片复制到剪贴板", + minimize:"最小化", normal:"正常", maximize:"最大化", + agenda:"图例", discarded:"已放弃", + modeHorizontal:"横向——组织结构图,图表在编辑器上方", + modeKompakt:"紧凑——全部向下,节省空间", + modeVertikal:"纵向——树向右展开,图表在编辑器旁边", + zoomOut:"缩小", zoomReset:"重置", zoomIn:"放大", + zoomAria:"缩放(Ctrl/Cmd + 鼠标滚轮)", langMore:"更多语言", + empty:"还没有结构——直接开始输入吧。", ghost:"缺少细分", + mixedWarn:"第 {line} 行:在「{label}」下 - 与 | 混用——按第一个子项渲染。", + st_idee:"想法", st_geplant:"已计划", st_arbeit:"进行中", st_durchstich:"可运行骨架", + st_fertig:"已完成", st_prod:"已上线", st_verworfen:"已放弃", + hint_indent:"缩进(2 个空格或制表符)定义层级。", + hint_all:"子任务,全部必需", hint_any:"备选项,择其一", + hint_root:"无标记的行 = 根节点。同级应使用相同的标记。", + hint_status:"在标记后用方框表示状态,例如", + hint_size:"用括号中的 T 恤尺码表示工作量;链接直接作为 URL 附加:", + hint_break:"从 (M) 起:继续细分——若缺少细分,图表中会出现占位符。", + hint_comment:"用 %% 注释——整行或行尾。", + hint_people:"用 @姓名 表示人员——显示在节点右下角。" + }, + ja: { + subtitle:"Werkbaum – テキストベースの図エディター:WBS / 作業分解構成図 / フィーチャーツリー。", + brandTooltip:"「Werkbaum」はおおよそ『作業の木』の意味 — 作業分解構成図(WBS)のツリーです。", + fullscreenTooltip:"全画面 — パネルがウィンドウ幅いっぱいを使用", + discardedTooltip:"破棄したノードとその下位ツリーを表示/非表示", + ghostTooltip:"サイズ M 以上の要素はさらに分解すべきです。", + editorTitle:"構造(テキスト)", diagramTitle:"ダイアグラム", + copy:"コピー", copyDone:"コピーしました ✓", copyTooltip:"テキストをクリップボードにコピー", + copyDiagramTooltip:"ダイアグラムを PNG 画像としてクリップボードにコピー", + minimize:"最小化", normal:"標準", maximize:"最大化", + agenda:"凡例", discarded:"破棄", + modeHorizontal:"横 — 組織図、ダイアグラムはエディターの上", + modeKompakt:"コンパクト — すべて下方向、省スペース", + modeVertikal:"縦 — ツリーを右へ、ダイアグラムはエディターの横", + zoomOut:"縮小", zoomReset:"リセット", zoomIn:"拡大", + zoomAria:"ズーム(Ctrl/Cmd + マウスホイール)", langMore:"その他の言語", + empty:"まだ構造がありません — 入力を始めてください。", ghost:"分解がありません", + mixedWarn:"{line} 行目:「{label}」の下で - と | が混在 — 最初の子に従って表示。", + st_idee:"アイデア", st_geplant:"計画済み", st_arbeit:"作業中", st_durchstich:"ウォーキングスケルトン", + st_fertig:"完了", st_prod:"本番稼働", st_verworfen:"破棄", + hint_indent:"インデント(スペース2つまたはタブ)で階層を定義します。", + hint_all:"サブタスク、すべて必須", hint_any:"選択肢、1つを選ぶ", + hint_root:"マーカーのない行 = ルートノード。兄弟は同じマーカーを使うべきです。", + hint_status:"マーカーの後にチェックボックスで状態、例:", + hint_size:"工数は括弧内の T シャツサイズで;リンクは URL としてそのまま追加:", + hint_break:"(M) 以上:さらに分解 — 分解がないと図にプレースホルダーが表示されます。", + hint_comment:"%% でコメント — 行全体または行末。", + hint_people:"@名前 で担当者 — ノードの右下に表示されます。" } }; let lang = 'de'; @@ -1280,7 +1340,7 @@ function applyLang(l){ } const langsel = document.querySelector('.langsel'); const langMore = document.getElementById('langMore'); -const LANG_EXTRA = ['pl','ru','hi']; +const LANG_EXTRA = ['pl','ru','hi','zh','ja']; langMore.addEventListener('click', () => { const exp = langsel.classList.toggle('expanded'); langMore.setAttribute('aria-expanded', String(exp));