Skip to content

New Crowdin updates - #16577

Merged
koppor merged 9 commits into
mainfrom
l10n_main
Aug 15, 2026
Merged

New Crowdin updates#16577
koppor merged 9 commits into
mainfrom
l10n_main

Conversation

@Siedlerchr

Copy link
Copy Markdown
Member

No description provided.

@koppor
koppor enabled auto-merge August 14, 2026 20:10
@qodo-free-for-open-source-projects

Copy link
Copy Markdown
Contributor

PR Summary by Qodo

Sync Crowdin translations for citation/DOI error messages

✨ Enhancement ⚙️ Configuration changes 🕐 10-20 Minutes

Grey Divider

AI Description

• Sync Crowdin-provided translations across multiple locales.
• Remove outdated parameterized citation-fetch error strings in most languages.
• Add/adjust Italian error-message keys, including DOI lookup failure text.
Diagram

graph TD
  A["Crowdin"] --> B["l10n/*.properties"] --> C(["I18n/ResourceBundle"]) --> D["Citation fetch UI"]
  C --> E["DOI lookup UI"]
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Keep parameterized keys alongside new keys (deprecate later)
  • ➕ Avoids runtime missing-key fallbacks if code still requests the %0 variants
  • ➕ Allows gradual migration of message formatting behavior
  • ➖ Temporarily increases key surface area and maintenance overhead
  • ➖ Crowdin may reintroduce/remap strings if not handled consistently
2. Update code to use non-parameterized messages everywhere
  • ➕ Eliminates placeholder/formatting mismatches across locales
  • ➕ Simplifies translator workload for error strings
  • ➖ Requires code changes and coordination beyond l10n sync
  • ➖ May reduce diagnostic detail if the removed %0 value was useful
3. Standardize both variants: with and without details
  • ➕ Allows UI to show short message plus optional details consistently
  • ➕ Improves UX consistency across locales
  • ➖ Requires defining/maintaining two keys per error case
  • ➖ Needs UI decisions on when to show details

Recommendation: Before merging, verify the application no longer requests the removed parameterized keys (e.g., "Error while fetching cited entries: %0"). If any runtime paths still expect placeholders, prefer keeping the old keys temporarily (deprecated) or updating the code to the new non-parameterized keys to prevent missing translations and formatting errors.

Files changed (8) +3 / -15

Other (8) +3 / -15
JabRef_de.propertiesRemove parameterized citation-fetch error messages (German) +0/-2

Remove parameterized citation-fetch error messages (German)

• Deletes the German translations for cited/citing fetch errors that included the %0 placeholder. This aligns the locale file with the updated key set coming from Crowdin.

jablib/src/main/resources/l10n/JabRef_de.properties

JabRef_es.propertiesRemove parameterized citation-fetch error messages (Spanish) +0/-2

Remove parameterized citation-fetch error messages (Spanish)

• Removes Spanish strings for citation fetch errors that used a %0 parameter. Keeps surrounding citation-related keys intact.

jablib/src/main/resources/l10n/JabRef_es.properties

JabRef_fr.propertiesRemove parameterized citation-fetch error messages (French) +0/-2

Remove parameterized citation-fetch error messages (French)

• Drops French translations for cited/citing fetch error keys with %0 placeholders. Intended to match the current translation set produced by Crowdin.

jablib/src/main/resources/l10n/JabRef_fr.properties

JabRef_it.propertiesReplace parameterized citation errors and add DOI lookup error (Italian) +3/-2

Replace parameterized citation errors and add DOI lookup error (Italian)

• Removes the placeholder-based cited/citing fetch error translations and introduces non-parameterized variants. Adds a new Italian translation for a DOI lookup error key.

jablib/src/main/resources/l10n/JabRef_it.properties

JabRef_pt_BR.propertiesRemove parameterized citation-fetch error messages (pt_BR) +0/-2

Remove parameterized citation-fetch error messages (pt_BR)

• Deletes pt_BR translations for cited/citing fetch errors that included %0 parameters. Other reference-access strings remain unchanged.

jablib/src/main/resources/l10n/JabRef_pt_BR.properties

JabRef_ru.propertiesRemove parameterized citation-fetch error messages (Russian) +0/-2

Remove parameterized citation-fetch error messages (Russian)

• Removes Russian translations for cited/citing fetch error keys using %0 placeholders. Leaves range-related messages intact.

jablib/src/main/resources/l10n/JabRef_ru.properties

JabRef_tr.propertiesRemove parameterized citing-fetch error message (Turkish) +0/-1

Remove parameterized citing-fetch error message (Turkish)

• Deletes the Turkish translation for the citing-entries fetch error key with a %0 placeholder. No other nearby Turkish citation strings are modified.

jablib/src/main/resources/l10n/JabRef_tr.properties

JabRef_zh_CN.propertiesRemove parameterized citation-fetch error messages (zh_CN) +0/-2

Remove parameterized citation-fetch error messages (zh_CN)

• Removes zh_CN translations for cited/citing fetch error keys that included %0 placeholders. Keeps the restricted-access message and other keys in place.

jablib/src/main/resources/l10n/JabRef_zh_CN.properties

@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0) 📜 Skill insights (0)

Grey Divider


Action required

1. Translations diverge from base ✓ Resolved 📘 Rule violation ≡ Correctness
Description
Several translated JabRef_.properties bundles removed or renamed the still-active keys `Error
while fetching cited entries: %0 / Error while fetching citing entries: %0` that remain in
JabRef_en.properties and are still looked up by CitationRelationsTab, breaking key consistency
and likely failing LocalizationConsistencyTest. In Italian, the replacement keys also drop the
%0 placeholder semantics (e.g., via different/period-suffixed keys), so current call sites will
never use the new keys and users may see the raw key text instead of a localized message.
Code

jablib/src/main/resources/l10n/JabRef_it.properties[R1759-1761]

+Error\ while\ fetching\ cited\ entries.=Errore durante il recupero delle voci citate.
+Error\ while\ fetching\ citing\ entries.=Errore durante il recupero delle voci di citazione.
+Error\ while\ looking\ up\ DOI.=Errore durante la ricerca del DOI.
Evidence
PR Compliance ID 21 requires translated localization files to keep the same key set as the base
JabRef_en.properties, which still defines the parameterized keys `Error\ while\ fetching\ cited\
entries\:\ %0 and Error\ while\ fetching\ citing\ entries\:\ %0`, indicating they are
valid/active. The cited locale bundles (e.g., German) no longer include these keys in the
corresponding section, and Italian introduces different Error... key strings without the %0
placeholder, creating an inconsistent key set across languages; meanwhile, CitationRelationsTab
still calls Localization.lang("Error while fetching cited entries: %0", ...) /
Localization.lang("Error while fetching citing entries: %0", ...). Because the localization
implementation returns the key itself when a translation is missing, these missing/renamed
translations will surface at runtime as the raw English key text (with %0 substituted) rather than
a localized message, and any newly introduced Italian keys will not be reached by existing call
sites.

AGENTS.md: Localization: Keep JabRef_en.properties Consistent; Never Hand-Edit Translated Properties: AGENTS.md: Localization: Keep JabRef_en.properties Consistent; Never Hand-Edit Translated Properties: AGENTS.md: Localization: Keep JabRef_en.properties Consistent; Never Hand-Edit Translated Properties: AGENTS.md: Localization: Keep JabRef_en.properties Consistent; Never Hand-Edit Translated Properties
jablib/src/main/resources/l10n/JabRef_en.properties[1763-1764]
jablib/src/main/resources/l10n/JabRef_de.properties[1720-1722]
jablib/src/main/resources/l10n/JabRef_it.properties[1759-1762]
jabgui/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationRelationsTab.java[891-899]
jablib/src/main/resources/l10n/JabRef_en.properties[1761-1765]
jablib/src/main/resources/l10n/JabRef_de.properties[1720-1724]
jablib/src/main/resources/l10n/JabRef_it.properties[1757-1762]
jablib/src/main/java/org/jabref/logic/l10n/Localization.java[130-136]
jablib/src/main/java/org/jabref/logic/l10n/Localization.java[148-152]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Restore localization key consistency for the active, parameterized messages `Error while fetching cited entries: %0` and `Error while fetching citing entries: %0` across all `JabRef_<lang>.properties` bundles so they match `JabRef_en.properties` and the lookups in `CitationRelationsTab`. This should prevent `LocalizationConsistencyTest` failures and avoid runtime fallbacks where missing translations display the raw key text; ensure `%0` placeholder semantics are preserved (notably in Italian).
## Issue Context
- `JabRef_en.properties` is the source of truth for localization keys, and PR Compliance ID 21 requires translated bundles to keep the same keys (including placeholders like `%0`).
- `CitationRelationsTab` still calls `Localization.lang("Error while fetching cited entries: %0", ...)` and `Localization.lang("Error while fetching citing entries: %0", ...)`.
- Some locale bundles removed these exact keys, and Italian introduced different/period-suffixed keys that do not include the `%0` placeholder; missing keys fall back to returning the key string itself, causing English/raw-key text to be shown.
- Either re-add/restore the original keys (recommended/minimal), or if renaming was intended, update *all* call sites and `JabRef_en.properties` accordingly while keeping placeholder handling correct.
## Fix Focus Areas
- jabgui/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationRelationsTab.java[891-899]
- jablib/src/main/resources/l10n/JabRef_en.properties[1761-1765]
- jablib/src/main/resources/l10n/JabRef_de.properties[1720-1724]
- jablib/src/main/resources/l10n/JabRef_es.properties[1588-1592]
- jablib/src/main/resources/l10n/JabRef_fr.properties[1761-1765]
- jablib/src/main/resources/l10n/JabRef_pt_BR.properties[1595-1599]
- jablib/src/main/resources/l10n/JabRef_ru.properties[1642-1646]
- jablib/src/main/resources/l10n/JabRef_tr.properties[1659-1663]
- jablib/src/main/resources/l10n/JabRef_zh_CN.properties[1665-1669]
- jablib/src/main/resources/l10n/JabRef_it.properties[1757-1762]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Tip of the day
💡 Did you know, you can turn on the rule miner and Qodo learns your standards from review history

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Comment thread jablib/src/main/resources/l10n/JabRef_it.properties
@koppor
koppor added this pull request to the merge queue Aug 14, 2026
@github-actions github-actions Bot added the status: to-be-merged PRs which are accepted and should go into the merge-queue. label Aug 14, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Aug 14, 2026
@koppor
koppor enabled auto-merge August 15, 2026 08:58
@koppor
koppor added this pull request to the merge queue Aug 15, 2026
Merged via the queue into main with commit 890b568 Aug 15, 2026
70 checks passed
@koppor
koppor deleted the l10n_main branch August 15, 2026 09:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status: to-be-merged PRs which are accepted and should go into the merge-queue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants