Skip to content

Prepare German locale#793

Closed
mariusmarsbar wants to merge 9 commits into
lfnovo:mainfrom
mariusmarsbar:feature/de-DE-locale
Closed

Prepare German locale#793
mariusmarsbar wants to merge 9 commits into
lfnovo:mainfrom
mariusmarsbar:feature/de-DE-locale

Conversation

@mariusmarsbar
Copy link
Copy Markdown
Contributor

Adds initial preparation for a German de-DE locale.

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 4 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 1 file (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="frontend/src/lib/locales/de-DE/index.ts">

<violation number="1" location="frontend/src/lib/locales/de-DE/index.ts:367">
P3: Translation for batchCommonSettings has an unintended leading space character, which will cause visible UI spacing inconsistencies.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

htmlDetected: "HTML-Inhalt erkannt. Er wird nach der Verarbeitung in Markdown umgewandelt.",
titlePlaceholder: "Gib deiner Quelle einen aussagekräftigen Titel",
batchTitlesAuto: "Titel werden für jede Quelle automatisch erzeugt.",
batchCommonSettings: " Dieselben Notebooks und Transformationen werden auf alle Elemente angewendet.",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: Translation for batchCommonSettings has an unintended leading space character, which will cause visible UI spacing inconsistencies.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At frontend/src/lib/locales/de-DE/index.ts, line 367:

<comment>Translation for batchCommonSettings has an unintended leading space character, which will cause visible UI spacing inconsistencies.</comment>

<file context>
@@ -223,201 +222,201 @@ export const deDE = {
+    htmlDetected: "HTML-Inhalt erkannt. Er wird nach der Verarbeitung in Markdown umgewandelt.",
+    titlePlaceholder: "Gib deiner Quelle einen aussagekräftigen Titel",
+    batchTitlesAuto: "Titel werden für jede Quelle automatisch erzeugt.",
+    batchCommonSettings: " Dieselben Notebooks und Transformationen werden auf alle Elemente angewendet.",
     urlsCount: "{count} URL(s)",
-    filesCount: "{count} file(s)",
</file context>
Suggested change
batchCommonSettings: " Dieselben Notebooks und Transformationen werden auf alle Elemente angewendet.",
batchCommonSettings: "Dieselben Notebooks und Transformationen werden auf alle Elemente angewendet.",

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 1 file (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="frontend/src/lib/locales/de-DE/index.ts">

<violation number="1" location="frontend/src/lib/locales/de-DE/index.ts:718">
P2: Removed `podcasts.setupRequiredDesc` even though the podcasts page still looks it up, causing a missing German translation.</violation>
</file>

Tip: Review your code locally with the cubic CLI to iterate faster.

Comment thread frontend/src/lib/locales/de-DE/index.ts
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

4 issues found across 11 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="open_notebook/database/migrations/7.surrealql">

<violation number="1" location="open_notebook/database/migrations/7.surrealql:63">
P2: German seed text is being written into the only globally selected profile record, so non-DE users will also receive German defaults.</violation>
</file>

<file name="prompts/chat/system.jinja">

<violation number="1" location="prompts/chat/system.jinja:21">
P2: Shared chat prompt now defaults all general-chat responses to German without any locale guard or separate locale-specific prompt.</violation>
</file>

<file name="scripts/export_transformers.py">

<violation number="1" location="scripts/export_transformers.py:96">
P2: speaker_profile() can silently export an empty/incorrect block if brace matching fails; it should raise instead of slicing with `end == start`.</violation>

<violation number="2" location="scripts/export_transformers.py:108">
P2: Title prompt export is hardcoded instead of being extracted from the source, so the export can drift or fail when the prompt text changes.</violation>
</file>

Tip: Review your code locally with the cubic CLI to iterate faster.

@@ -50,103 +50,102 @@ DEFINE INDEX IF NOT EXISTS idx_episode_command ON TABLE episode COLUMNS command

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: German seed text is being written into the only globally selected profile record, so non-DE users will also receive German defaults.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At open_notebook/database/migrations/7.surrealql, line 63:

<comment>German seed text is being written into the only globally selected profile record, so non-DE users will also receive German defaults.</comment>

<file context>
@@ -50,103 +50,102 @@ DEFINE INDEX IF NOT EXISTS idx_episode_command ON TABLE episode COLUMNS command
+                transcript_provider: "openai",
                 transcript_model: "gpt-5-mini",
-                default_briefing: "Create an engaging technical discussion about the provided content. Focus on practical insights, real-world applications, and detailed explanations that would interest developers and technical professionals.",
+                default_briefing: "Erstelle eine lebendige technische Diskussion über den bereitgestellten Inhalt. Konzentriere dich auf praktische Erkenntnisse, reale Anwendungsfälle, technische Zusammenhänge und konkrete Erklärungen, die für Entwickler, Administratoren und technisch interessierte Hörer relevant sind.",
                 num_segments: 5
             },
</file context>

Tip: Review your code locally with the cubic CLI to iterate faster.

Comment thread prompts/chat/system.jinja
3. ob eine direkte Antwort möglich ist,
4. ob du Unsicherheiten oder fehlende Informationen offen benennen musst.

Antworte auf Deutsch, sofern der Nutzer keine andere Sprache verwendet oder verlangt. Formuliere klar, praktisch und ohne unnötigen Fachjargon.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Shared chat prompt now defaults all general-chat responses to German without any locale guard or separate locale-specific prompt.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At prompts/chat/system.jinja, line 21:

<comment>Shared chat prompt now defaults all general-chat responses to German without any locale guard or separate locale-specific prompt.</comment>

<file context>
@@ -1,42 +1,52 @@
+3. ob eine direkte Antwort möglich ist,
+4. ob du Unsicherheiten oder fehlende Informationen offen benennen musst.
+
+Antworte auf Deutsch, sofern der Nutzer keine andere Sprache verwendet oder verlangt. Formuliere klar, praktisch und ohne unnötigen Fachjargon.
 
 {% if notebook %}
</file context>



def title_prompt(path: str) -> tuple[str, int, int]:
text = (
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Title prompt export is hardcoded instead of being extracted from the source, so the export can drift or fail when the prompt text changes.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At scripts/export_transformers.py, line 108:

<comment>Title prompt export is hardcoded instead of being extracted from the source, so the export can drift or fail when the prompt text changes.</comment>

<file context>
@@ -0,0 +1,349 @@
+
+
+def title_prompt(path: str) -> tuple[str, int, int]:
+    text = (
+        "Erstelle auf Grundlage der folgenden Notiz einen prägnanten "
+        "deutschen Titel mit maximal 15 Wörtern."
</file context>

end = index + 1
break

text = content[start:end]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: speaker_profile() can silently export an empty/incorrect block if brace matching fails; it should raise instead of slicing with end == start.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At scripts/export_transformers.py, line 96:

<comment>speaker_profile() can silently export an empty/incorrect block if brace matching fails; it should raise instead of slicing with `end == start`.</comment>

<file context>
@@ -0,0 +1,349 @@
+                    end = index + 1
+                    break
+
+        text = content[start:end]
+        line_start, line_end = locate(path, text)
+        return text, line_start, line_end
</file context>

@lfnovo
Copy link
Copy Markdown
Owner

lfnovo commented May 22, 2026

Hey @mariusmarsbar — thanks for the German locale work! I've just merged your cleaner follow-up #794 (the de-DE UI locale only).

This PR is broader than the title suggests: it modifies existing migrations (5.surrealql, 7.surrealql), changes all default prompts (chat, ask, podcast, source_chat), and adds scripts/export_transformers.py. We can't take those changes because:

  • Existing migrations are immutable once released — modifying them would break upgrades for current installations.
  • The prompt changes would alter default behavior for every user.

Could you close this PR? If you'd like to propose individual changes from it (e.g. specific prompt improvements as a separate, scoped PR), happy to discuss those separately.

@lfnovo
Copy link
Copy Markdown
Owner

lfnovo commented May 22, 2026

Closing in favor of #794, which is the cleanly scoped German UI locale (already merged). The migration/prompt changes in this PR can't be taken as-is, but if you'd like to propose any of the prompt improvements as a separate scoped PR, happy to discuss. Thanks for the contribution!

@lfnovo lfnovo closed this May 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants