Skip to content

feat(email): add German email templates (de)#2624

Closed
8emk10 wants to merge 1 commit intoseerr-team:developfrom
8emk10:pr1-de-templates-only
Closed

feat(email): add German email templates (de)#2624
8emk10 wants to merge 1 commit intoseerr-team:developfrom
8emk10:pr1-de-templates-only

Conversation

@8emk10
Copy link
Copy Markdown

@8emk10 8emk10 commented Mar 3, 2026

Adds German (de) email templates under server/templates/email/de.

Notes:

  • No runtime / routing changes in this PR (templates only).
  • English templates remain the reference.

Summary by CodeRabbit

  • New Features
    • Added comprehensive German language email templates for account management, including password generation and reset notifications.
    • Added German language email templates for media request updates and issue tracking notifications.
    • Implemented localized German subject lines and dynamic content for all user communications.

@8emk10 8emk10 requested a review from a team as a code owner March 3, 2026 15:15
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 3, 2026

📝 Walkthrough

Walkthrough

This PR adds German email templates for password reset, generated password, media request, media issue, and test notifications. It also introduces a shared helpers file with localized string functions and subject/label generators, plus updates the GitHub workflow commit message quoting.

Changes

Cohort / File(s) Summary
Workflow Update
.github/workflows/create-tag.yml
Changed git commit message quoting from double quotes to single quotes around ${TAG_VERSION}.
German Email Template Helpers
server/templates/email/de/_helpers.pug
Introduces localized helper functions: __mkStrFn() for string coercion, __reqSubject() and __issueSubject() for subject line generation, __extraLabel() for label derivation, __obfuscateUser() for user obfuscation, and precomputed gender-aware strings for German grammatical cases (accusative, dative).
Password & Account Templates
server/templates/email/de/generatedpassword/html.pug, server/templates/email/de/generatedpassword/subject.pug, server/templates/email/de/resetpassword/html.pug, server/templates/email/de/resetpassword/subject.pug
Adds styled HTML and subject templates for password reset and generated password notifications with personalized greetings, responsive layout, and call-to-action buttons.
Media Request Templates
server/templates/email/de/media-request/subject.pug, server/templates/email/de/media-request/html.pug, server/templates/email/de/media-request/body.pug
Introduces media request notification templates with dynamic status messages (pending, approved, declined, available, failed), media card display with requester info, and conditional 4K label handling.
Media Issue Templates
server/templates/email/de/media-issue/subject.pug, server/templates/email/de/media-issue/html.pug
Adds media issue notification templates with conditional messaging based on issue type (created, comment, resolved, reopened) and obfuscated user display.
Test Email Template
server/templates/email/de/test-email/subject.pug, server/templates/email/de/test-email/html.pug
Introduces test notification email template with verification message and conditional app link.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • M0NsTeRRR
  • gauthier-th

Poem

🐰 German templates hop and play,
With helpers dressing subject lines just right,
No more du/ihr confusion in the fray,
Grammarians rejoice at accusative and dative plight!
Email magic, sehr schön and bright! 🎉

🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title 'feat(email): add German email templates (de)' directly and accurately describes the main change: introducing a new set of German email templates in the de directory.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

🧹 Nitpick comments (1)
server/templates/email/de/_helpers.pug (1)

79-85: Missing var declarations for consistency.

__obfuscateUser and __helper are assigned without var, unlike other helpers in this file. While Pug's unbuffered code allows this, adding var maintains consistency with the rest of the file (e.g., lines 5-6, 18-20).

♻️ Suggested fix
-- __obfuscateUser = function(str) {
+- var __obfuscateUser = function(str) {
    // Same behavior as EN: keep identity (can be expanded later)
    return `${str || ''}`
  }


-- __helper = (typeof helper !== 'undefined' ? helper : function() { return '' })
+- var __helper = (typeof helper !== 'undefined' ? helper : function() { return '' })
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@server/templates/email/de/_helpers.pug` around lines 79 - 85, The two helper
assignments __obfuscateUser and __helper are missing var declarations; update
the declarations for consistency with other helpers by prefixing both
assignments with var (i.e., declare var __obfuscateUser and var __helper) while
keeping their current initialization logic (__obfuscateUser returning the same
string and __helper using the existing fallback function).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/create-tag.yml:
- Line 81: The git commit invocation using single quotes prevents shell variable
expansion for ${TAG_VERSION}; update the git commit command (the line containing
git commit -m 'chore(release): prepare ${TAG_VERSION}') to use double quotes so
the ${TAG_VERSION} variable is expanded in the commit message (i.e., change the
quoting around the -m argument).

In `@server/templates/email/de/_helpers.pug`:
- Around line 25-34: Move the __prefix4k definition out of the __reqSubject
function and initialize it at module scope (next to __isMovie / __isSeries) so
it is available to templates like body.pug; compute it from the existing is4k
flag (e.g., set module-level __prefix4k = (typeof is4k !== 'undefined' && is4k)
? '4K ' : '') and remove the inner const inside __reqSubject, leaving
__reqSubject to simply use the module-level __prefix4k when returning subject
strings.

In `@server/templates/email/de/media-request/body.pug`:
- Around line 1-18: The template uses __prefix4k at module scope but __prefix4k
is only computed inside __reqSubject() and is4k isn't passed into the locals; to
fix, either (A) pass is4k into the locals when rendering body.pug (so body.pug
can compute __prefix4k) and add a module-scope computation of __prefix4k at the
top of server/templates/email/de/media-request/body.pug using is4k (mirroring
how __followingAcc and __mediaLabelDat are defined), or (B) move the __prefix4k
definition into _helpers.pug at module scope (similar to __followingAcc and
__mediaLabelDat) so it reads is4k from locals and is available to case handling;
update references in body.pug to use the now-defined __prefix4k and ensure is4k
is present in render locals.

In `@server/templates/email/de/media-request/html.pug`:
- Around line 40-42: The table row starting with the lone `tr` (the block that
contains the `div(style='... url(' + imageUrl + ') ...')`) is dedented and
placed at root level, breaking the table structure; move/indent that `tr` so it
is nested with the other table rows (match the indentation of the preceding `tr`
block, i.e., add 4 spaces) so the `tr` is a child of the containing table/tbody
and the `div` remains inside that row.

In `@server/templates/email/de/media-request/subject.pug`:
- Around line 1-4: Add an include for the shared helper so the subject uses the
same media-type logic as the body: remove the local inline definition of
__isMovie and instead include _helpers.pug at the top (so __isMovie is derived
from mediaType === 'movie' with isMovie as fallback), leaving the existing
__kind and __kindReq uses intact; ensure the template still defines or uses __nt
(notificationType) as before but no longer redeclares __isMovie locally.

---

Nitpick comments:
In `@server/templates/email/de/_helpers.pug`:
- Around line 79-85: The two helper assignments __obfuscateUser and __helper are
missing var declarations; update the declarations for consistency with other
helpers by prefixing both assignments with var (i.e., declare var
__obfuscateUser and var __helper) while keeping their current initialization
logic (__obfuscateUser returning the same string and __helper using the existing
fallback function).

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a16d046 and d43b830.

📒 Files selected for processing (13)
  • .github/workflows/create-tag.yml
  • server/templates/email/de/_helpers.pug
  • server/templates/email/de/generatedpassword/html.pug
  • server/templates/email/de/generatedpassword/subject.pug
  • server/templates/email/de/media-issue/html.pug
  • server/templates/email/de/media-issue/subject.pug
  • server/templates/email/de/media-request/body.pug
  • server/templates/email/de/media-request/html.pug
  • server/templates/email/de/media-request/subject.pug
  • server/templates/email/de/resetpassword/html.pug
  • server/templates/email/de/resetpassword/subject.pug
  • server/templates/email/de/test-email/html.pug
  • server/templates/email/de/test-email/subject.pug

Comment thread .github/workflows/create-tag.yml Outdated
Comment thread server/templates/email/de/_helpers.pug
Comment thread server/templates/email/de/media-request/body.pug
Comment thread server/templates/email/de/media-request/html.pug
Comment thread server/templates/email/de/media-request/subject.pug
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 3, 2026

👋 @8emk10, thank you for your contribution!
However, this pull request has been closed because it appears to contain a significant amount of AI-generated code without sufficient human review or supervision.
AI-generated code can often introduce subtle bugs, poor design patterns, or inconsistent styles that make long-term maintenance difficult and reduce overall code quality. For the sake of the project's future stability and readability, we require that all contributions meet our established coding standards and demonstrate clear developer oversight.
This pull request is also too large for effective human review. Please discuss with us on how to break down these changes into smaller, more focused PRs to ensure a thorough and efficient review process. If you'd like to revise and resubmit your changes with careful review and cleanup, we'd be happy to take another look.

@github-actions github-actions Bot closed this Mar 3, 2026
@github-actions github-actions Bot locked as spam and limited conversation to collaborators Mar 3, 2026
@gauthier-th
Copy link
Copy Markdown
Member

@8emk10 this is the 2nd PR you send that is not respecting our code of conduct neither our contributing guide. A 3rd one like this will result in a ban.

@8emk10 8emk10 deleted the pr1-de-templates-only branch March 19, 2026 05:16
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants