Skip to content

chore(i18n): update translations from Weblate#2822

Merged
fallenbagel merged 1 commit intodevelopfrom
weblate/translations-frontend
Apr 4, 2026
Merged

chore(i18n): update translations from Weblate#2822
fallenbagel merged 1 commit intodevelopfrom
weblate/translations-frontend

Conversation

@seerr-automation-bot
Copy link
Copy Markdown
Contributor

@seerr-automation-bot seerr-automation-bot commented Apr 3, 2026

Description

Automated translation update from Weblate for the Seerr frontend.
No AI used in this automated PR.

Source: https://translate.seerr.dev/projects/seerr/jellyseerr-frontend/

How Has This Been Tested?

No functional changes were introduced.
This PR only updates translation files, so no additional testing is required.

Screenshots / Logs (if applicable)

Weblate translation status

Checklist:

  • I have read and followed the contribution guidelines.
  • Disclosed any use of AI (see our policy)
  • I have updated the documentation accordingly.
  • All new and existing tests passed.
  • Successful build pnpm build
  • Translation keys pnpm i18n:extract
  • Database migration (if required)

Summary by CodeRabbit

  • New Features

    • Redesigned user list sorting UI: new sort-by fields, ascending/descending labels, and sort-direction toggles.
    • Added login validation tips for trailing whitespace in email and username.
    • Added/expanded locale coverage (new and updated translations across many languages).
  • Improvements

    • Standardized and clarified sorting and blocklist wording across locales for consistency and usability.
  • Chores

    • Minor localization cleanups and JSON formatting fixes.

@seerr-automation-bot seerr-automation-bot force-pushed the weblate/translations-frontend branch from 50e1b57 to 64e1d74 Compare April 3, 2026 22:16
@seerr-automation-bot seerr-automation-bot requested a review from a team as a code owner April 3, 2026 22:16
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 3, 2026

📝 Walkthrough

Walkthrough

Removed legacy components.UserList sort label keys (sortCreated, sortDisplayName, sortRequests) across many locale files; several locales add new consolidated sorting keys (components.UserList.sortBy*, ascending/descending, toggleSortDirection*), login trailing-whitespace tips, i18n.error, partial-blocklist keys; added a new src/i18n/locale/kab.json.

Changes

Cohort / File(s) Summary
Simple key removals
src/i18n/locale/\{ar,bg,el,he,hi,hr,ko,lt,nb_NO,pt_BR,pt_PT,ro,sl,sq,sr,tr,uk,zh_Hans,zh_Hant\}.json
Deleted components.UserList.sortCreated, components.UserList.sortDisplayName, components.UserList.sortRequests only.
Sort UI additions
src/i18n/locale/\{cs,ja,ru,sv\}.json
Removed legacy sort keys and added consolidated sort UI keys: components.UserList.ascending/descending, components.UserList.sortBy*, components.UserList.toggleSortDirection*; also added components.Login.tip* and i18n.error.
Extended sort UI + misc tweaks
src/i18n/locale/\{da,de,eu,fr,hu,nl,sv\}.json
Replaced removed sort keys with new sort-by/direction keys, added login whitespace tips, i18n.error and partial-blocklist keys; some files include punctuation/wording adjustments (webhook/customHeaders, tips).
Locale-specific/contentful updates
src/i18n/locale/\{es,es_MX,et,fi,pl,ca,it\}.json
Removed legacy sort keys; several locales (notably es, et, fi) contain large content additions/rewrites; others have targeted wording or tooltip updates.
Heterogeneous adds (varied locales)
src/i18n/locale/\{fr,ru,sv,hu,et,nl,cs,ja,pt_PT,...\}.json
Many locales add components.Login.tipEmailHasTrailingWhitespace, components.Login.tipUsernameHasTrailingWhitespace, i18n.error, and components.CollectionDetails.removefromblocklistpartialcount / i18n.partiallyblocklisted alongside sort UI keys.
New locale file
src/i18n/locale/kab.json
Added new Kabyle locale with ~76 lines of translation entries covering core UI (blocklist, discover, issues, layout, user/profile, notifications).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • M0NsTeRRR
  • fallenbagel

Poem

🐰 Hopped through JSON, nibbling old keys away,

Sorts refreshed, new labels greet the day,
Kabyle arrived with a bright new tune,
Translations trimmed, then stitched by moon,
A rabbit cheers — locales bloom in May.

🚥 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 pull request title 'chore(i18n): update translations from Weblate' accurately summarizes the main change: an automated update to translation files from Weblate.

✏️ 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.

@fallenbagel fallenbagel enabled auto-merge (rebase) April 3, 2026 22:23
fallenbagel
fallenbagel previously approved these changes Apr 3, 2026
@seerr-automation-bot seerr-automation-bot added this to the v3.2.0 milestone Apr 3, 2026
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: 11

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/i18n/locale/es.json (1)

1348-1379: ⚠️ Potential issue | 🟡 Minor

Complete the remaining override-rule strings in Weblate.

This block localizes part of the feature, but Lines 1363-1379 are still empty for core labels and descriptions. Spanish admins will see blank text across the override-rule modal/tile UI.

Based on learnings, translation/i18n issues found in automated Weblate sync PRs for seerr-team/seerr should be fixed in Weblate rather than directly in this PR.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/i18n/locale/es.json` around lines 1348 - 1379, Several override-rule
localization keys in es.json (e.g.,
"components.Settings.OverrideRuleModal.selectService",
"components.Settings.OverrideRuleModal.selecttags",
"components.Settings.OverrideRuleModal.service",
"components.Settings.OverrideRuleModal.serviceDescription",
"components.Settings.OverrideRuleModal.settings",
"components.Settings.OverrideRuleModal.settingsDescription",
"components.Settings.OverrideRuleModal.tags",
"components.Settings.OverrideRuleModal.users", and the corresponding
"components.Settings.OverrideRuleTile.*" keys) are empty; update these
translations via Weblate (not directly in the PR) by providing Spanish strings
for each missing key so the Override Rule modal/tile displays correctly for
admins, ensuring phrasing matches existing keys like "create"/"ruleCreated" and
includes UI context (labels vs. descriptions).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/i18n/locale/de.json`:
- Around line 1624-1626: Add the missing German translations for the UserList
sorting keys by adding entries for the keys prefixed with "components.UserList"
such as "components.UserList.sortByName", "components.UserList.sortByEmail",
"components.UserList.sortByCreatedAt" (and any other sortBy* variants used in
the code), plus the direction keys "components.UserList.ascending",
"components.UserList.descending" and the toggle tooltip key (e.g.
"components.UserList.toggleSortDirection") in the de.json locale; submit these
new strings through Weblate (https://translate.seerr.dev) rather than committing
the fixes directly in the PR so the translations are managed in the translation
platform.

In `@src/i18n/locale/es.json`:
- Around line 1318-1327: The Spanish locale is missing translations for the Ntfy
auth labels: fill the empty keys
"components.Settings.Notifications.NotificationsNtfy.token" and
"components.Settings.Notifications.NotificationsNtfy.tokenAuth" with appropriate
Spanish strings (e.g., "Token" and "Autenticación por token" or similar), and
make this change via Weblate (not by editing the PR directly) so the i18n sync
remains consistent.
- Line 692: The translation for the key
"components.Layout.VersionStatus.streamdevelop" currently reads "Seer
(Desarrollo)" and is missing an 'r'; update the entry in Weblate (not directly
in this PR) to "Seerr (Desarrollo)" so the develop-channel label shows the
correct product name, and ensure the change is saved/committed through Weblate's
UI so it will sync back into the repository.
- Around line 1293-1297: components.MovieDetails.watchlistSuccess is empty, so
Spanish users see a blank toast; open Weblate and add a proper Spanish success
message for components.MovieDetails.watchlistSuccess (e.g.,
"¡<strong>{title}</strong> añadido a la lista de seguimiento con éxito!" or
equivalent), save the translation in Weblate rather than editing this PR so the
automated i18n sync remains consistent and the localized toast displays
correctly.

In `@src/i18n/locale/et.json`:
- Around line 376-377: The Estonian translation for
components.NotificationTypeSelector.mediadeclinedDescription contains a typo
("taotlkused"); open the string for
components.NotificationTypeSelector.mediadeclinedDescription in Weblate and
correct "taotlkused" to "taotlused" so the description reads correctly, then
commit the fix via Weblate instead of editing the PR directly.
- Line 1167: The Estonian translation for the key
components.Settings.jellyfinsettingsDescription is truncated ("et näha...");
update the full Jellyfin settings description in Weblate (not directly in this
PR) so the string matches the complete source text meaning and grammar—edit the
components.Settings.jellyfinsettingsDescription entry in the Weblate project for
this repository to provide the full, non-truncated Estonian sentence for the
Jellyfin settings help copy.

In `@src/i18n/locale/fi.json`:
- Line 826: The translation for the key
"components.Settings.SettingsJobsCache.download-sync-reset" is truncated; update
this key in Weblate (do not edit this PR) and replace the value with a complete
Finnish phrase (for example: "Latausten synkronoinnin nollaus" or another
grammatically correct equivalent) so the UI label renders correctly.
- Line 529: The Finnish translation for the key
"components.QuotaSelector.movieRequests" uses localized placeholder names
({elokuvaa}, {päivää}, {kautta}) which must be the English variable names the
app injects; update the value to use the original placeholders ({movies},
{days}, {seasons}) instead of the Finnish words and also fix the other affected
occurrence noted (around the second instance at 1427) so all placeholders match
the app's variables.

In `@src/i18n/locale/kab.json`:
- Around line 1-76: The kab locale file is never loaded because loadLocaleData
(in src/pages/_app.tsx) lacks a case for 'kab'; update the loadLocaleData switch
to include a case 'kab' that imports or returns the kab JSON (same pattern used
for other locales), e.g., add "case 'kab': await import(...kab.json) / return
kabData" or map it to the appropriate loader function so the "kab" catalog from
the new src/i18n/locale/kab.json is reachable at runtime.

In `@src/i18n/locale/pl.json`:
- Around line 1561-1563: Add the missing Polish translation keys used by
components/PermissionEdit (blocklistedItems, blocklistedItemsDescription,
viewblocklistedItems, viewblocklistedItemsDescription) to the locale file
alongside the existing manageblocklist entries so the permissions UI no longer
falls back to English; provide appropriate Polish strings for each key and, per
project workflow, submit these translation additions through the Weblate
instance (https://translate.seerr.dev) rather than committing direct edits to
the PR.

In `@src/i18n/locale/ru.json`:
- Line 1634: The translation for the key components.UserList.sortByUser contains
a typo ("Соритровать..."); update the Russian string to "Сортировать по имени
пользователя" in the upstream Weblate project (do not edit this sync PR
directly), then trigger a new sync so the corrected ru.json value replaces the
incorrect string in the repository.

---

Outside diff comments:
In `@src/i18n/locale/es.json`:
- Around line 1348-1379: Several override-rule localization keys in es.json
(e.g., "components.Settings.OverrideRuleModal.selectService",
"components.Settings.OverrideRuleModal.selecttags",
"components.Settings.OverrideRuleModal.service",
"components.Settings.OverrideRuleModal.serviceDescription",
"components.Settings.OverrideRuleModal.settings",
"components.Settings.OverrideRuleModal.settingsDescription",
"components.Settings.OverrideRuleModal.tags",
"components.Settings.OverrideRuleModal.users", and the corresponding
"components.Settings.OverrideRuleTile.*" keys) are empty; update these
translations via Weblate (not directly in the PR) by providing Spanish strings
for each missing key so the Override Rule modal/tile displays correctly for
admins, ensuring phrasing matches existing keys like "create"/"ruleCreated" and
includes UI context (labels vs. descriptions).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 78169d17-9cb9-403c-b547-60c270f1db24

📥 Commits

Reviewing files that changed from the base of the PR and between 6f9b743 and 64e1d74.

📒 Files selected for processing (37)
  • src/i18n/locale/ar.json
  • src/i18n/locale/bg.json
  • src/i18n/locale/ca.json
  • src/i18n/locale/cs.json
  • src/i18n/locale/da.json
  • src/i18n/locale/de.json
  • src/i18n/locale/el.json
  • src/i18n/locale/es.json
  • src/i18n/locale/es_MX.json
  • src/i18n/locale/et.json
  • src/i18n/locale/eu.json
  • src/i18n/locale/fi.json
  • src/i18n/locale/fr.json
  • src/i18n/locale/he.json
  • src/i18n/locale/hi.json
  • src/i18n/locale/hr.json
  • src/i18n/locale/hu.json
  • src/i18n/locale/it.json
  • src/i18n/locale/ja.json
  • src/i18n/locale/kab.json
  • src/i18n/locale/ko.json
  • src/i18n/locale/lt.json
  • src/i18n/locale/nb_NO.json
  • src/i18n/locale/nl.json
  • src/i18n/locale/pl.json
  • src/i18n/locale/pt_BR.json
  • src/i18n/locale/pt_PT.json
  • src/i18n/locale/ro.json
  • src/i18n/locale/ru.json
  • src/i18n/locale/sl.json
  • src/i18n/locale/sq.json
  • src/i18n/locale/sr.json
  • src/i18n/locale/sv.json
  • src/i18n/locale/tr.json
  • src/i18n/locale/uk.json
  • src/i18n/locale/zh_Hans.json
  • src/i18n/locale/zh_Hant.json
💤 Files with no reviewable changes (21)
  • src/i18n/locale/hi.json
  • src/i18n/locale/ar.json
  • src/i18n/locale/zh_Hans.json
  • src/i18n/locale/el.json
  • src/i18n/locale/lt.json
  • src/i18n/locale/zh_Hant.json
  • src/i18n/locale/he.json
  • src/i18n/locale/es_MX.json
  • src/i18n/locale/tr.json
  • src/i18n/locale/nb_NO.json
  • src/i18n/locale/pt_PT.json
  • src/i18n/locale/ko.json
  • src/i18n/locale/hr.json
  • src/i18n/locale/ca.json
  • src/i18n/locale/uk.json
  • src/i18n/locale/pt_BR.json
  • src/i18n/locale/sq.json
  • src/i18n/locale/ro.json
  • src/i18n/locale/sl.json
  • src/i18n/locale/sr.json
  • src/i18n/locale/bg.json

Comment thread src/i18n/locale/de.json
Comment thread src/i18n/locale/es.json Outdated
Comment thread src/i18n/locale/es.json
Comment thread src/i18n/locale/es.json
Comment thread src/i18n/locale/et.json
Comment thread src/i18n/locale/fi.json
Comment thread src/i18n/locale/fi.json
Comment thread src/i18n/locale/kab.json
Comment thread src/i18n/locale/pl.json
Comment thread src/i18n/locale/ru.json
@seerr-automation-bot seerr-automation-bot force-pushed the weblate/translations-frontend branch from 64e1d74 to 2ecba1a Compare April 4, 2026 09:53
Co-authored-by: Bas Trebus <bas.trebus@maastrichtuniversity.nl>
Co-authored-by: Eloy Romarís <sagatxxx@gmail.com>
Co-authored-by: Gallyam <gallyamb@gmail.com>
Co-authored-by: Jamal R. <jamal2362@googlemail.com>
Co-authored-by: Marek <mara.pavelka@gmail.com>
Co-authored-by: Mateusz Lesiak <mateusz.lesiak01@gmail.com>
Co-authored-by: Miguel Pacheco <runway-venus-kung@duck.com>
Co-authored-by: Nils Karlsson Pyssling <nisse@users.noreply.translate.seerr.dev>
Co-authored-by: Roberto Saleri <roberto.saleri@gmail.com>
Co-authored-by: SulliL <susu.leduc@gmail.com>
Co-authored-by: Thadah D. Denyse <thadahdenyse@protonmail.com>
Co-authored-by: Ulrik J <ulrikj@users.noreply.translate.seerr.dev>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: butterflyoffire <butterflyoffire+seerr@protonmail.com>
Co-authored-by: butterflyoffire <butterflyoffire@users.noreply.translate.seerr.dev>
Co-authored-by: fallenbagel <98979876+fallenbagel@users.noreply.github.com>
Co-authored-by: lauantaimakkara <a.lj.unma.va.l@googlemail.com>
Co-authored-by: markspoiss007-web <markspoiss007@gmail.com>
Co-authored-by: rkilks <148218930+rkilks@users.noreply.github.com>
Co-authored-by: tkymmm <lempicka@sluice.xyz>
Co-authored-by: ugyes <ferenc.bodi@live.com>
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

♻️ Duplicate comments (3)
src/i18n/locale/fi.json (2)

529-529: ⚠️ Potential issue | 🟠 Major

Keep the quota placeholders unchanged from the source message.

{elokuvaa}, {kautta}, and {päivää} are being parsed as variables, but the app only supplies the original placeholder names. These two quota strings will not format correctly at runtime until the placeholders are reverted upstream.

Based on learnings, translation/i18n issues in automated Weblate sync PRs for seerr-team/seerr should be fixed in Weblate instead of directly in this PR.

Also applies to: 1427-1427

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/i18n/locale/fi.json` at line 529, The translation for the key
"components.QuotaSelector.movieRequests" has replaced source placeholders with
localized words inside braces; revert those to the original placeholder names
(restore the source placeholders such as {quotaUnits} and {quotaDays} instead of
{elokuvaa}, {kautta}, {päivää}) so the runtime formatting matches the app, and
make this change in Weblate (upstream) rather than editing the PR file directly.

826-826: ⚠️ Potential issue | 🟡 Minor

download-sync-reset still looks truncated.

"Latauksien synkronoin" reads incomplete, so the scheduled-job label will render broken text in Finnish.

Based on learnings, translation/i18n issues in automated Weblate sync PRs for seerr-team/seerr should be fixed in Weblate instead of directly in this PR.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/i18n/locale/fi.json` at line 826, The Finnish translation for the key
"components.Settings.SettingsJobsCache.download-sync-reset" is truncated
("Latauksien synkronoin"); open the project’s Weblate entry for that key and
replace the incomplete string with the correct full Finnish phrase (update the
translation in Weblate rather than committing a direct change to
src/i18n/locale/fi.json), ensuring the translated label reads fully and
contextually fits the scheduled-job UI.
src/i18n/locale/es.json (1)

692-692: ⚠️ Potential issue | 🟡 Minor

Correct the develop-channel product name.

"Seer (Desarrollo)" is missing the second r, so the badge still shows the wrong brand name.

Based on learnings, translation/i18n issues in automated Weblate sync PRs for seerr-team/seerr should be fixed in Weblate instead of directly in this PR.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/i18n/locale/es.json` at line 692, Fix the typo in the translation value
for the key "components.Layout.VersionStatus.streamdevelop": change "Seer
(Desarrollo)" to "Seerr (Desarrollo)"; do this update in the Weblate translation
platform (not by editing the repo file directly) so the corrected string is
propagated through the i18n sync workflow.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/i18n/locale/es.json`:
- Around line 1578-1585: The translation key
components.Settings.Notifications.NotificationsWebhook.customHeaders contains a
typo ("Cabezeras personalizadas"); update its value to the correct Spanish
"Cabeceras personalizadas" and ensure consistency with surrounding keys like
customHeadersValue/customHeadersAdd; perform this correction in Weblate (not
directly in the PR) so the upstream i18n sync is updated properly.

In `@src/i18n/locale/fi.json`:
- Line 1208: The locale key components.TvDetails.showtype is translated as
"Sarjan tyylilaji" (meaning genre) but should be translated as "type" — update
the translation for components.TvDetails.showtype to the correct Finnish term
(e.g., "Sarjan tyyppi") using Weblate rather than editing this PR directly, so
the change is applied through the i18n sync workflow.
- Line 1435: The translation string for
"components.RequestModal.QuotaDisplay.allowedRequests" hardcodes singular
"päivä"; update the value to use ICU pluralization for the {days} placeholder
(for example replace "päivä" with "{days, plural, one {päivä} other {päivää}}")
so numbers >1 render correctly, and make this edit via Weblate rather than
committing the change directly in this PR.
- Around line 886-887: The Finnish translations for the keys
"components.Settings.SettingsMain.applicationTitle" and
"components.Settings.SettingsMain.applicationurl" incorrectly refer to "server"
instead of the application; update these two entries in the i18n source (or, per
project process, correct them in Weblate rather than committing changes here) so
the values refer to Seerr/application (e.g., "Sovelluksen nimi" and "Sovelluksen
URL" or equivalent), ensuring the keys applicationTitle and applicationurl are
restored to application-centric wording.
- Line 1156: The translation for the key components.Setup.signinWithJellyfin
should be an authentication/sign-in action, not a server-entry prompt; replace
the current string "Syötä Jellyfin tiedot" with a sign-in phrasing (e.g.,
"Kirjaudu Jellyfiniin" or other correct Finnish sign-in wording) and instead of
editing this repo file directly, make the correction in Weblate so the change is
preserved in future automated syncs.

---

Duplicate comments:
In `@src/i18n/locale/es.json`:
- Line 692: Fix the typo in the translation value for the key
"components.Layout.VersionStatus.streamdevelop": change "Seer (Desarrollo)" to
"Seerr (Desarrollo)"; do this update in the Weblate translation platform (not by
editing the repo file directly) so the corrected string is propagated through
the i18n sync workflow.

In `@src/i18n/locale/fi.json`:
- Line 529: The translation for the key "components.QuotaSelector.movieRequests"
has replaced source placeholders with localized words inside braces; revert
those to the original placeholder names (restore the source placeholders such as
{quotaUnits} and {quotaDays} instead of {elokuvaa}, {kautta}, {päivää}) so the
runtime formatting matches the app, and make this change in Weblate (upstream)
rather than editing the PR file directly.
- Line 826: The Finnish translation for the key
"components.Settings.SettingsJobsCache.download-sync-reset" is truncated
("Latauksien synkronoin"); open the project’s Weblate entry for that key and
replace the incomplete string with the correct full Finnish phrase (update the
translation in Weblate rather than committing a direct change to
src/i18n/locale/fi.json), ensuring the translated label reads fully and
contextually fits the scheduled-job UI.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 5fc17156-b51b-4835-9147-c89bda025f5d

📥 Commits

Reviewing files that changed from the base of the PR and between 64e1d74 and 2ecba1a.

📒 Files selected for processing (37)
  • src/i18n/locale/ar.json
  • src/i18n/locale/bg.json
  • src/i18n/locale/ca.json
  • src/i18n/locale/cs.json
  • src/i18n/locale/da.json
  • src/i18n/locale/de.json
  • src/i18n/locale/el.json
  • src/i18n/locale/es.json
  • src/i18n/locale/es_MX.json
  • src/i18n/locale/et.json
  • src/i18n/locale/eu.json
  • src/i18n/locale/fi.json
  • src/i18n/locale/fr.json
  • src/i18n/locale/he.json
  • src/i18n/locale/hi.json
  • src/i18n/locale/hr.json
  • src/i18n/locale/hu.json
  • src/i18n/locale/it.json
  • src/i18n/locale/ja.json
  • src/i18n/locale/kab.json
  • src/i18n/locale/ko.json
  • src/i18n/locale/lt.json
  • src/i18n/locale/nb_NO.json
  • src/i18n/locale/nl.json
  • src/i18n/locale/pl.json
  • src/i18n/locale/pt_BR.json
  • src/i18n/locale/pt_PT.json
  • src/i18n/locale/ro.json
  • src/i18n/locale/ru.json
  • src/i18n/locale/sl.json
  • src/i18n/locale/sq.json
  • src/i18n/locale/sr.json
  • src/i18n/locale/sv.json
  • src/i18n/locale/tr.json
  • src/i18n/locale/uk.json
  • src/i18n/locale/zh_Hans.json
  • src/i18n/locale/zh_Hant.json
💤 Files with no reviewable changes (21)
  • src/i18n/locale/ca.json
  • src/i18n/locale/hi.json
  • src/i18n/locale/lt.json
  • src/i18n/locale/hr.json
  • src/i18n/locale/es_MX.json
  • src/i18n/locale/zh_Hant.json
  • src/i18n/locale/ro.json
  • src/i18n/locale/he.json
  • src/i18n/locale/sl.json
  • src/i18n/locale/zh_Hans.json
  • src/i18n/locale/tr.json
  • src/i18n/locale/nb_NO.json
  • src/i18n/locale/pt_PT.json
  • src/i18n/locale/ko.json
  • src/i18n/locale/bg.json
  • src/i18n/locale/ar.json
  • src/i18n/locale/sq.json
  • src/i18n/locale/uk.json
  • src/i18n/locale/el.json
  • src/i18n/locale/sr.json
  • src/i18n/locale/pt_BR.json
✅ Files skipped from review due to trivial changes (4)
  • src/i18n/locale/kab.json
  • src/i18n/locale/nl.json
  • src/i18n/locale/it.json
  • src/i18n/locale/fr.json
🚧 Files skipped from review as they are similar to previous changes (6)
  • src/i18n/locale/pl.json
  • src/i18n/locale/cs.json
  • src/i18n/locale/ru.json
  • src/i18n/locale/sv.json
  • src/i18n/locale/et.json
  • src/i18n/locale/ja.json

Comment thread src/i18n/locale/es.json
Comment thread src/i18n/locale/fi.json
Comment thread src/i18n/locale/fi.json
Comment thread src/i18n/locale/fi.json
Comment thread src/i18n/locale/fi.json
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: 2

♻️ Duplicate comments (8)
src/i18n/locale/fi.json (6)

1208-1208: ⚠️ Potential issue | 🟡 Minor

Translate showtype as “type”, not “genre”.

Line 1208 (“Sarjan tyylilaji”) maps to genre semantics, but this key represents show type.

Based on learnings, translation/i18n issues in automated Weblate sync PRs should be corrected in Weblate (https://translate.seerr.dev), not directly in this PR.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/i18n/locale/fi.json` at line 1208, The current Finnish translation for
the key components.TvDetails.showtype ("Sarjan tyylilaji") incorrectly conveys
"genre" — update the translation to the correct word for "type" in Finnish
(replace the value for components.TvDetails.showtype) and make this change
through the Weblate translation interface (https://translate.seerr.dev) instead
of editing the JSON in this PR so the sync remains consistent.

886-887: ⚠️ Potential issue | 🟠 Major

Don’t relabel Seerr app settings as server settings.

Line 886-Line 887 translate applicationTitle / applicationurl as server fields, which is misleading in Settings > Main and can prompt wrong admin input.

Based on learnings, translation/i18n issues in automated Weblate sync PRs should be corrected in Weblate (https://translate.seerr.dev), not directly in this PR.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/i18n/locale/fi.json` around lines 886 - 887, The translation for keys
components.Settings.SettingsMain.applicationTitle and
components.Settings.SettingsMain.applicationurl was incorrectly changed to
server-oriented labels; revert these to their original Seerr app wording and
make the correction in the Weblate project (https://translate.seerr.dev) rather
than editing the repository directly—locate the two keys
(components.Settings.SettingsMain.applicationTitle and
components.Settings.SettingsMain.applicationurl) in Weblate, update the Finnish
translations to reflect the application name/URL context (not “server”), and
submit the change through Weblate so it syncs properly.

1435-1435: ⚠️ Potential issue | 🟡 Minor

Use pluralization for {days} in quota text.

Line 1435 hardcodes singular “päivä”, which renders incorrectly for values > 1.

Based on learnings, translation/i18n issues in automated Weblate sync PRs should be corrected in Weblate (https://translate.seerr.dev), not directly in this PR.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/i18n/locale/fi.json` at line 1435, The translation for
components.RequestModal.QuotaDisplay.allowedRequests currently hardcodes the
singular Finnish word "päivä"; change the string to use proper pluralization for
the {days} variable (e.g., use ICU plural syntax or your project’s i18n plural
format so it yields "päivä" for 1 and "päivää"/"päivät" as appropriate) and make
this change in Weblate (https://translate.seerr.dev) rather than editing the PR
directly so the centralized translation system remains authoritative.

529-529: ⚠️ Potential issue | 🟠 Major

Keep ICU variable names in English placeholders to avoid runtime interpolation breaks.

Line 529 and Line 1427 use localized variable names ({elokuvaa}, {kautta}, {päivää}), but the app injects {movies}, {seasons}, {days}. Keep placeholder identifiers unchanged.

Based on learnings, translation/i18n issues in automated Weblate sync PRs should be corrected in Weblate (https://translate.seerr.dev), not directly in this PR.

Also applies to: 1427-1427

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/i18n/locale/fi.json` at line 529, Replace the localized ICU placeholder
identifiers with the expected English names in the QuotaSelector translations:
update the "components.QuotaSelector.movieRequests" entry so it uses
{quotaLimit} <quotaUnits>{movies} per {days}</quotaUnits> (and similarly fix the
duplicate at the other QuotaSelector key around line 1427 to use
{seasons}/{movies} and {days} as applicable); make this change in Weblate
(https://translate.seerr.dev) rather than committing the JSON directly.

1156-1156: ⚠️ Potential issue | 🟡 Minor

Keep signinWithJellyfin phrased as a sign-in action.

Line 1156 (“Syötä Jellyfin tiedot”) reads like manual data entry rather than authentication CTA.

Based on learnings, translation/i18n issues in automated Weblate sync PRs should be corrected in Weblate (https://translate.seerr.dev), not directly in this PR.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/i18n/locale/fi.json` at line 1156, The key
components.Setup.signinWithJellyfin currently reads as a data-entry prompt
("Syötä Jellyfin tiedot"); update its translation to an authentication CTA (an
action phrasing like "Sign in to Jellyfin") by editing the
components.Setup.signinWithJellyfin entry in Weblate
(https://translate.seerr.dev) rather than changing src/i18n/locale/fi.json
directly in this PR so the corrected string is synced properly.

826-826: ⚠️ Potential issue | 🟡 Minor

download-sync-reset translation appears truncated.

Line 826 ("Latauksien synkronoin") looks incomplete and will render broken UI copy.

Based on learnings, translation/i18n issues in automated Weblate sync PRs should be corrected in Weblate (https://translate.seerr.dev), not directly in this PR.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/i18n/locale/fi.json` at line 826, The translation for key
"components.Settings.SettingsJobsCache.download-sync-reset" is truncated
("Latauksien synkronoin"); please correct this in Weblate (do not edit the PR)
by updating the Finnish string to a complete translation such as "Latausten
synkronoinnin nollaus" (or another approved variant) so the UI copy is not
broken, and ensure the change is pushed via the Weblate project rather than
committing directly here.
src/i18n/locale/et.json (2)

1167-1167: ⚠️ Potential issue | 🟡 Minor

Restore the full Jellyfin help text in Weblate.

This string still ends with et näha..., so the settings description is visibly truncated. Based on learnings, translation/i18n issues found in automated Weblate sync PRs for seerr-team/seerr should NOT be fixed directly in the PR; fixes must be submitted on Weblate so they flow through the automated sync process.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/i18n/locale/et.json` at line 1167, The translation key
"components.Settings.jellyfinsettingsDescription" contains a truncated Estonian
string ending with "et näha...", so do not edit the JSON here; instead open the
project's Weblate entry for the components.Settings.jellyfinsettingsDescription
string and supply the full, correct Estonian text there so the automated Weblate
sync can propagate the fix into the repository; confirm the updated translation
matches the original English intent and then wait for the automated sync PR to
include the corrected string.

377-377: ⚠️ Potential issue | 🟡 Minor

Fix this typo in Weblate.

taotlkused is misspelled, so the declined-request description reads broken. Based on learnings, translation/i18n issues found in automated Weblate sync PRs for seerr-team/seerr should NOT be fixed directly in the PR; fixes must be submitted on Weblate so they flow through the automated sync process.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/i18n/locale/et.json` at line 377, The translation key
components.NotificationTypeSelector.mediadeclinedDescription contains a typo
("taotlkused") that must be corrected via Weblate rather than editing the PR
directly; open the et locale entry for
components.NotificationTypeSelector.mediadeclinedDescription in Weblate, correct
"taotlkused" to the proper Estonian word (e.g., "taotlused"), save and submit
the change so it flows through the automated sync pipeline back into the repo.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/i18n/locale/cs.json`:
- Line 1624: The Czech translation for the key "i18n.removefromBlocklist"
contains a typo ("Odebrat se seznamu zablokovaných") — change "se" to "ze" so it
reads "Odebrat ze seznamu zablokovaných"; do not edit the JSON here directly,
instead update the translation through the Weblate project
(https://translate.seerr.dev) so the corrected string for
i18n.removefromBlocklist is propagated properly.

In `@src/i18n/locale/et.json`:
- Line 409: The translation key components.PermissionEdit.autorequest has an
inconsistent value "Automaatne-Taotlus"; instead of editing the JSON directly,
submit the corrected string via Weblate so it flows through the automated sync
(e.g., change to "Automaatne taotlus" to match adjacent entries) and let the
sync PR update src/i18n/locale/et.json rather than modifying the file in this
repo.

---

Duplicate comments:
In `@src/i18n/locale/et.json`:
- Line 1167: The translation key
"components.Settings.jellyfinsettingsDescription" contains a truncated Estonian
string ending with "et näha...", so do not edit the JSON here; instead open the
project's Weblate entry for the components.Settings.jellyfinsettingsDescription
string and supply the full, correct Estonian text there so the automated Weblate
sync can propagate the fix into the repository; confirm the updated translation
matches the original English intent and then wait for the automated sync PR to
include the corrected string.
- Line 377: The translation key
components.NotificationTypeSelector.mediadeclinedDescription contains a typo
("taotlkused") that must be corrected via Weblate rather than editing the PR
directly; open the et locale entry for
components.NotificationTypeSelector.mediadeclinedDescription in Weblate, correct
"taotlkused" to the proper Estonian word (e.g., "taotlused"), save and submit
the change so it flows through the automated sync pipeline back into the repo.

In `@src/i18n/locale/fi.json`:
- Line 1208: The current Finnish translation for the key
components.TvDetails.showtype ("Sarjan tyylilaji") incorrectly conveys "genre" —
update the translation to the correct word for "type" in Finnish (replace the
value for components.TvDetails.showtype) and make this change through the
Weblate translation interface (https://translate.seerr.dev) instead of editing
the JSON in this PR so the sync remains consistent.
- Around line 886-887: The translation for keys
components.Settings.SettingsMain.applicationTitle and
components.Settings.SettingsMain.applicationurl was incorrectly changed to
server-oriented labels; revert these to their original Seerr app wording and
make the correction in the Weblate project (https://translate.seerr.dev) rather
than editing the repository directly—locate the two keys
(components.Settings.SettingsMain.applicationTitle and
components.Settings.SettingsMain.applicationurl) in Weblate, update the Finnish
translations to reflect the application name/URL context (not “server”), and
submit the change through Weblate so it syncs properly.
- Line 1435: The translation for
components.RequestModal.QuotaDisplay.allowedRequests currently hardcodes the
singular Finnish word "päivä"; change the string to use proper pluralization for
the {days} variable (e.g., use ICU plural syntax or your project’s i18n plural
format so it yields "päivä" for 1 and "päivää"/"päivät" as appropriate) and make
this change in Weblate (https://translate.seerr.dev) rather than editing the PR
directly so the centralized translation system remains authoritative.
- Line 529: Replace the localized ICU placeholder identifiers with the expected
English names in the QuotaSelector translations: update the
"components.QuotaSelector.movieRequests" entry so it uses {quotaLimit}
<quotaUnits>{movies} per {days}</quotaUnits> (and similarly fix the duplicate at
the other QuotaSelector key around line 1427 to use {seasons}/{movies} and
{days} as applicable); make this change in Weblate (https://translate.seerr.dev)
rather than committing the JSON directly.
- Line 1156: The key components.Setup.signinWithJellyfin currently reads as a
data-entry prompt ("Syötä Jellyfin tiedot"); update its translation to an
authentication CTA (an action phrasing like "Sign in to Jellyfin") by editing
the components.Setup.signinWithJellyfin entry in Weblate
(https://translate.seerr.dev) rather than changing src/i18n/locale/fi.json
directly in this PR so the corrected string is synced properly.
- Line 826: The translation for key
"components.Settings.SettingsJobsCache.download-sync-reset" is truncated
("Latauksien synkronoin"); please correct this in Weblate (do not edit the PR)
by updating the Finnish string to a complete translation such as "Latausten
synkronoinnin nollaus" (or another approved variant) so the UI copy is not
broken, and ensure the change is pushed via the Weblate project rather than
committing directly here.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c05d10b3-6919-460a-bbfc-237a65518fdc

📥 Commits

Reviewing files that changed from the base of the PR and between 2ecba1a and 668dbbd.

📒 Files selected for processing (37)
  • src/i18n/locale/ar.json
  • src/i18n/locale/bg.json
  • src/i18n/locale/ca.json
  • src/i18n/locale/cs.json
  • src/i18n/locale/da.json
  • src/i18n/locale/de.json
  • src/i18n/locale/el.json
  • src/i18n/locale/es.json
  • src/i18n/locale/es_MX.json
  • src/i18n/locale/et.json
  • src/i18n/locale/eu.json
  • src/i18n/locale/fi.json
  • src/i18n/locale/fr.json
  • src/i18n/locale/he.json
  • src/i18n/locale/hi.json
  • src/i18n/locale/hr.json
  • src/i18n/locale/hu.json
  • src/i18n/locale/it.json
  • src/i18n/locale/ja.json
  • src/i18n/locale/kab.json
  • src/i18n/locale/ko.json
  • src/i18n/locale/lt.json
  • src/i18n/locale/nb_NO.json
  • src/i18n/locale/nl.json
  • src/i18n/locale/pl.json
  • src/i18n/locale/pt_BR.json
  • src/i18n/locale/pt_PT.json
  • src/i18n/locale/ro.json
  • src/i18n/locale/ru.json
  • src/i18n/locale/sl.json
  • src/i18n/locale/sq.json
  • src/i18n/locale/sr.json
  • src/i18n/locale/sv.json
  • src/i18n/locale/tr.json
  • src/i18n/locale/uk.json
  • src/i18n/locale/zh_Hans.json
  • src/i18n/locale/zh_Hant.json
💤 Files with no reviewable changes (21)
  • src/i18n/locale/ar.json
  • src/i18n/locale/tr.json
  • src/i18n/locale/hi.json
  • src/i18n/locale/zh_Hant.json
  • src/i18n/locale/lt.json
  • src/i18n/locale/pt_BR.json
  • src/i18n/locale/zh_Hans.json
  • src/i18n/locale/nb_NO.json
  • src/i18n/locale/pt_PT.json
  • src/i18n/locale/el.json
  • src/i18n/locale/sl.json
  • src/i18n/locale/hr.json
  • src/i18n/locale/ko.json
  • src/i18n/locale/uk.json
  • src/i18n/locale/he.json
  • src/i18n/locale/ca.json
  • src/i18n/locale/ro.json
  • src/i18n/locale/es_MX.json
  • src/i18n/locale/sq.json
  • src/i18n/locale/bg.json
  • src/i18n/locale/sr.json
✅ Files skipped from review due to trivial changes (5)
  • src/i18n/locale/kab.json
  • src/i18n/locale/it.json
  • src/i18n/locale/eu.json
  • src/i18n/locale/hu.json
  • src/i18n/locale/fr.json
🚧 Files skipped from review as they are similar to previous changes (7)
  • src/i18n/locale/nl.json
  • src/i18n/locale/de.json
  • src/i18n/locale/ru.json
  • src/i18n/locale/pl.json
  • src/i18n/locale/sv.json
  • src/i18n/locale/es.json
  • src/i18n/locale/ja.json

Comment thread src/i18n/locale/cs.json
Comment thread src/i18n/locale/et.json
@fallenbagel fallenbagel merged commit e85216a into develop Apr 4, 2026
17 checks passed
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.

4 participants