New Crowdin updates - #14204
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThis PR updates localization resources across Swahili captions and geography, language and pathogen-test enum mappings, Crowdin contribution messages, survey-processing text, Czech captions, country names, and invasive pneumococcal serology captions. ChangesLocalization resource updates
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 10
🧹 Nitpick comments (1)
sormas-api/src/main/resources/strings_pl-PL.properties (1)
1188-1188: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick winAdd
rel="noopener noreferrer"to the external link.
UserSettingsFormrenders this value as HTML. Because the link opens a new tab, addrel="noopener noreferrer"to prevent the destination from retainingwindow.opener; apply the same fix to the corresponding entries instrings_ps-AF.propertiesandstrings_pt-BR.properties.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@sormas-api/src/main/resources/strings_pl-PL.properties` at line 1188, Update the HTML anchor in the `infoCrowdinLocalization` entries for the Polish, Pashto, and Brazilian Portuguese localization properties to include `rel="noopener noreferrer"` alongside `target="_blank"`.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@sormas-api/src/main/resources/strings_cs-CZ.properties`:
- Line 1188: Replace the English value of infoCrowdinLocalization in
strings_cs-CZ.properties with the Crowdin-approved Czech translation, preserving
the existing HTML link, escaped attributes, and placeholder structure exactly.
In `@sormas-api/src/main/resources/strings_de-CH.properties`:
- Line 1188: Replace the English value of infoCrowdinLocalization in
strings_de-CH.properties with the Crowdin-approved German translation,
preserving the existing HTML anchor URL, target="_blank" behavior, and property
escaping.
In `@sormas-api/src/main/resources/strings_en-KE.properties`:
- Line 1188: Update the HTML anchor in infoCrowdinLocalization to include
rel="noopener noreferrer" alongside target="_blank", preserving the existing URL
and link text.
In `@sormas-api/src/main/resources/strings_en-LR.properties`:
- Line 1188: Update the HTML anchor in the infoCrowdinLocalization string to
include rel="noopener noreferrer" alongside target="_blank", preserving the
existing URL and link text.
In `@sormas-api/src/main/resources/strings_es-CU.properties`:
- Line 1188: Restore the Spanish translations for the changed entries in
strings_es-CU.properties, including infoCrowdinLocalization and the entry at
line 2106; replace the English values with appropriate Spanish text and preserve
the existing property keys and formatting.
In `@sormas-api/src/main/resources/strings_fr-CH.properties`:
- Line 1188: Translate the value of infoCrowdinLocalization into French for the
fr-CH locale, preserving the existing HTML link markup, URL, target attribute,
and escaping exactly.
In `@sormas-api/src/main/resources/strings_fr-FR.properties`:
- Line 1188: Translate the value of infoCrowdinLocalization into French,
preserving the existing HTML link markup, URL, target attribute, and escaping
exactly; only translate the surrounding English sentence.
In `@sormas-api/src/main/resources/strings_fr-TN.properties`:
- Line 1188: Translate the infoCrowdinLocalization value in the French locale
into French, preserving the existing HTML link markup, URL, target attribute,
and escaping exactly.
In `@sormas-api/src/main/resources/strings_it-CH.properties`:
- Line 1188: Add rel="noopener noreferrer" to the Crowdin anchor in
infoCrowdinLocalization, and apply the same change to every locale copy of this
localization string while preserving the existing target="_blank" behavior.
In `@sormas-api/src/main/resources/strings_sw-TZ.properties`:
- Line 1188: Update the HTML anchor in the shared `infoCrowdinLocalization`
string and all localized overrides that duplicate it to include `rel="noopener
noreferrer"` alongside `target="_blank"`; verify `UserSettingsForm` renders the
updated value consistently.
---
Nitpick comments:
In `@sormas-api/src/main/resources/strings_pl-PL.properties`:
- Line 1188: Update the HTML anchor in the `infoCrowdinLocalization` entries for
the Polish, Pashto, and Brazilian Portuguese localization properties to include
`rel="noopener noreferrer"` alongside `target="_blank"`.
🪄 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: defaults
Review profile: CHILL
Plan: Pro
Run ID: e1ab0c3c-9080-4b9b-ae01-f8e94b8dd66c
📒 Files selected for processing (62)
sormas-api/src/main/resources/captions_sw-TZ.propertiessormas-api/src/main/resources/continents_sw-TZ.propertiessormas-api/src/main/resources/enum_ar-EG.propertiessormas-api/src/main/resources/enum_ar-SA.propertiessormas-api/src/main/resources/enum_cs-CZ.propertiessormas-api/src/main/resources/enum_de-CH.propertiessormas-api/src/main/resources/enum_de-DE.propertiessormas-api/src/main/resources/enum_en-AF.propertiessormas-api/src/main/resources/enum_en-GH.propertiessormas-api/src/main/resources/enum_en-GM.propertiessormas-api/src/main/resources/enum_en-KE.propertiessormas-api/src/main/resources/enum_en-LR.propertiessormas-api/src/main/resources/enum_en-NG.propertiessormas-api/src/main/resources/enum_es-BO.propertiessormas-api/src/main/resources/enum_es-CU.propertiessormas-api/src/main/resources/enum_fa-AF.propertiessormas-api/src/main/resources/enum_fi-FI.propertiessormas-api/src/main/resources/enum_fr-CH.propertiessormas-api/src/main/resources/enum_fr-FR.propertiessormas-api/src/main/resources/enum_fr-TN.propertiessormas-api/src/main/resources/enum_it-CH.propertiessormas-api/src/main/resources/enum_it-IT.propertiessormas-api/src/main/resources/enum_ka-GE.propertiessormas-api/src/main/resources/enum_pl-PL.propertiessormas-api/src/main/resources/enum_ps-AF.propertiessormas-api/src/main/resources/enum_pt-BR.propertiessormas-api/src/main/resources/enum_pt-CV.propertiessormas-api/src/main/resources/enum_ru-RU.propertiessormas-api/src/main/resources/enum_sr-CS.propertiessormas-api/src/main/resources/enum_sw-TZ.propertiessormas-api/src/main/resources/enum_ur-PK.propertiessormas-api/src/main/resources/enum_zh-CN.propertiessormas-api/src/main/resources/strings_ar-EG.propertiessormas-api/src/main/resources/strings_ar-SA.propertiessormas-api/src/main/resources/strings_cs-CZ.propertiessormas-api/src/main/resources/strings_de-CH.propertiessormas-api/src/main/resources/strings_de-DE.propertiessormas-api/src/main/resources/strings_en-AF.propertiessormas-api/src/main/resources/strings_en-GH.propertiessormas-api/src/main/resources/strings_en-GM.propertiessormas-api/src/main/resources/strings_en-KE.propertiessormas-api/src/main/resources/strings_en-LR.propertiessormas-api/src/main/resources/strings_en-NG.propertiessormas-api/src/main/resources/strings_es-BO.propertiessormas-api/src/main/resources/strings_es-CU.propertiessormas-api/src/main/resources/strings_fa-AF.propertiessormas-api/src/main/resources/strings_fi-FI.propertiessormas-api/src/main/resources/strings_fr-CH.propertiessormas-api/src/main/resources/strings_fr-FR.propertiessormas-api/src/main/resources/strings_fr-TN.propertiessormas-api/src/main/resources/strings_it-CH.propertiessormas-api/src/main/resources/strings_it-IT.propertiessormas-api/src/main/resources/strings_ka-GE.propertiessormas-api/src/main/resources/strings_pl-PL.propertiessormas-api/src/main/resources/strings_ps-AF.propertiessormas-api/src/main/resources/strings_pt-BR.propertiessormas-api/src/main/resources/strings_pt-CV.propertiessormas-api/src/main/resources/strings_ru-RU.propertiessormas-api/src/main/resources/strings_sr-CS.propertiessormas-api/src/main/resources/strings_sw-TZ.propertiessormas-api/src/main/resources/strings_ur-PK.propertiessormas-api/src/main/resources/strings_zh-CN.properties
| infoBulkProcessNoEligibleEntries = <b>Hromadný proces byl zrušen, protože pro tuto operaci nejsou žádné způsobilé položky\!</b> | ||
| infoBulkProcessCancelled = <b>Hromadný proces byl zrušen\!</b><br/>Všechny vybrané položky až do zpracování tohoto bodu. Nyní můžete toto okno zavřít. Budou vybrány všechny dosud nezpracované položky. | ||
| infoBulkUnresponsiveWindowHint = <b>Tip\:</b> Pokud se ukazatel průběhu zdá být nereagující a po chvíli není vidět žádný průběh zkuste kliknout na toto vyskakovací okno nebo změnit velikost okna prohlížeče. | ||
| infoCrowdinLocalization = If you would like to contribute to the localization of SORMAS into different languages, you can do so by becoming a member of our Crowdin project at <a href\="https\://crowdin.com/project/sormas" target\="_blank">https\://crowdin.com/project/sormas</a> |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Provide a Czech translation for this locale.
This new user-facing message is entirely English in strings_cs-CZ.properties, so Czech users will see untranslated text. Replace it with the Crowdin-approved Czech translation while preserving the HTML link and placeholder structure.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@sormas-api/src/main/resources/strings_cs-CZ.properties` at line 1188, Replace
the English value of infoCrowdinLocalization in strings_cs-CZ.properties with
the Crowdin-approved Czech translation, preserving the existing HTML link,
escaped attributes, and placeholder structure exactly.
| infoBulkProcessNoEligibleEntries = <b>Bulk process has been cancelled because there are no eligible entries for this operation\!</b> | ||
| infoBulkProcessCancelled = <b>Bulk process has been cancelled\!</b><br/>All selected entries up until this point have been processed. You can now close this window. All not yet processed entries will still be selected. | ||
| infoBulkUnresponsiveWindowHint = <b>Hint\:</b> If the progress bar seems to be unresponsive and no progress is visible after a while, try to click this popup window or resize your browser window. | ||
| infoCrowdinLocalization = If you would like to contribute to the localization of SORMAS into different languages, you can do so by becoming a member of our Crowdin project at <a href\="https\://crowdin.com/project/sormas" target\="_blank">https\://crowdin.com/project/sormas</a> |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Provide a German translation for this locale.
This new user-facing message is entirely English in strings_de-CH.properties, so German-speaking users will see untranslated text. Replace it with the Crowdin-approved German translation while preserving the HTML link and target behavior.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@sormas-api/src/main/resources/strings_de-CH.properties` at line 1188, Replace
the English value of infoCrowdinLocalization in strings_de-CH.properties with
the Crowdin-approved German translation, preserving the existing HTML anchor
URL, target="_blank" behavior, and property escaping.
| infoBulkProcessNoEligibleEntries = <b>Bulk process has been cancelled because there are no eligible entries for this operation\!</b> | ||
| infoBulkProcessCancelled = <b>Bulk process has been cancelled\!</b><br/>All selected entries up until this point have been processed. You can now close this window. All not yet processed entries will still be selected. | ||
| infoBulkUnresponsiveWindowHint = <b>Hint\:</b> If the progress bar seems to be unresponsive and no progress is visible after a while, try to click this popup window or resize your browser window. | ||
| infoCrowdinLocalization = If you would like to contribute to the localization of SORMAS into different languages, you can do so by becoming a member of our Crowdin project at <a href\="https\://crowdin.com/project/sormas" target\="_blank">https\://crowdin.com/project/sormas</a> |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win
Protect the new-tab link from opener access.
Add rel="noopener noreferrer" to this externally hosted link because it is rendered as HTML with target="_blank".
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@sormas-api/src/main/resources/strings_en-LR.properties` at line 1188, Update
the HTML anchor in the infoCrowdinLocalization string to include rel="noopener
noreferrer" alongside target="_blank", preserving the existing URL and link
text.
| infoBulkProcessNoEligibleEntries = <b>Bulk process has been cancelled because there are no eligible entries for this operation\!</b> | ||
| infoBulkProcessCancelled = <b>Bulk process has been cancelled\!</b><br/>All selected entries up until this point have been processed. You can now close this window. All not yet processed entries will still be selected. | ||
| infoBulkUnresponsiveWindowHint = <b>Hint\:</b> If the progress bar seems to be unresponsive and no progress is visible after a while, try to click this popup window or resize your browser window. | ||
| infoCrowdinLocalization = If you would like to contribute to the localization of SORMAS into different languages, you can do so by becoming a member of our Crowdin project at <a href\="https\://crowdin.com/project/sormas" target\="_blank">https\://crowdin.com/project/sormas</a> |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Translate this value for the French locale.
infoCrowdinLocalization is rendered directly by UserSettingsForm as HTML, but this fr-CH value is entirely English. Translate the surrounding sentence while keeping the link markup unchanged.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@sormas-api/src/main/resources/strings_fr-CH.properties` at line 1188,
Translate the value of infoCrowdinLocalization into French for the fr-CH locale,
preserving the existing HTML link markup, URL, target attribute, and escaping
exactly.
| infoBulkProcessNoEligibleEntries = <b>Le processus en lot a été annulé car il n'y a pas d'entrées éligibles pour cette opération \!</b> | ||
| infoBulkProcessCancelled = <b>Bulk process has been cancelled\!</b><br/>All selected entries up until this point have been processed. You can now close this window. All not yet processed entries will still be selected. | ||
| infoBulkUnresponsiveWindowHint = <b>Hint\:</b> If the progress bar seems to be unresponsive and no progress is visible after a while, try to click this popup window or resize your browser window. | ||
| infoCrowdinLocalization = If you would like to contribute to the localization of SORMAS into different languages, you can do so by becoming a member of our Crowdin project at <a href\="https\://crowdin.com/project/sormas" target\="_blank">https\://crowdin.com/project/sormas</a> |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Translate this value for the French locale.
infoCrowdinLocalization is rendered directly by UserSettingsForm as HTML, but this fr-FR value is entirely English. Translate the surrounding sentence while keeping the link markup unchanged.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@sormas-api/src/main/resources/strings_fr-FR.properties` at line 1188,
Translate the value of infoCrowdinLocalization into French, preserving the
existing HTML link markup, URL, target attribute, and escaping exactly; only
translate the surrounding English sentence.
| infoBulkProcessNoEligibleEntries = <b>Bulk process has been cancelled because there are no eligible entries for this operation\!</b> | ||
| infoBulkProcessCancelled = <b>Bulk process has been cancelled\!</b><br/>All selected entries up until this point have been processed. You can now close this window. All not yet processed entries will still be selected. | ||
| infoBulkUnresponsiveWindowHint = <b>Hint\:</b> If the progress bar seems to be unresponsive and no progress is visible after a while, try to click this popup window or resize your browser window. | ||
| infoCrowdinLocalization = If you would like to contribute to the localization of SORMAS into different languages, you can do so by becoming a member of our Crowdin project at <a href\="https\://crowdin.com/project/sormas" target\="_blank">https\://crowdin.com/project/sormas</a> |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Translate this value for the French locale.
infoCrowdinLocalization is rendered directly by UserSettingsForm as HTML, but this fr-TN value is entirely English. Translate the surrounding sentence while keeping the link markup unchanged.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@sormas-api/src/main/resources/strings_fr-TN.properties` at line 1188,
Translate the infoCrowdinLocalization value in the French locale into French,
preserving the existing HTML link markup, URL, target attribute, and escaping
exactly.
| infoBulkProcessNoEligibleEntries = <b>Bulk process has been cancelled because there are no eligible entries for this operation\!</b> | ||
| infoBulkProcessCancelled = <b>Bulk process has been cancelled\!</b><br/>All selected entries up until this point have been processed. You can now close this window. All not yet processed entries will still be selected. | ||
| infoBulkUnresponsiveWindowHint = <b>Hint\:</b> If the progress bar seems to be unresponsive and no progress is visible after a while, try to click this popup window or resize your browser window. | ||
| infoCrowdinLocalization = If you would like to contribute to the localization of SORMAS into different languages, you can do so by becoming a member of our Crowdin project at <a href\="https\://crowdin.com/project/sormas" target\="_blank">https\://crowdin.com/project/sormas</a> |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win
Add rel="noopener noreferrer" to the Crowdin link.
target="_blank" should not leave an opener on this HTML-rendered localization string, and the same hardening should be applied to the other locale copies.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@sormas-api/src/main/resources/strings_it-CH.properties` at line 1188, Add
rel="noopener noreferrer" to the Crowdin anchor in infoCrowdinLocalization, and
apply the same change to every locale copy of this localization string while
preserving the existing target="_blank" behavior.
| infoBulkProcessNoEligibleEntries = <b>Bulk process has been cancelled because there are no eligible entries for this operation\!</b> | ||
| infoBulkProcessCancelled = <b>Bulk process has been cancelled\!</b><br/>All selected entries up until this point have been processed. You can now close this window. All not yet processed entries will still be selected. | ||
| infoBulkUnresponsiveWindowHint = <b>Hint\:</b> If the progress bar seems to be unresponsive and no progress is visible after a while, try to click this popup window or resize your browser window. | ||
| infoCrowdinLocalization = If you would like to contribute to the localization of SORMAS into different languages, you can do so by becoming a member of our Crowdin project at <a href\="https\://crowdin.com/project/sormas" target\="_blank">https\://crowdin.com/project/sormas</a> |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Locate the string and the UI path that renders it.
rg -n "infoCrowdinLocalization|target=\\\\\"_blank\\\\\"|crowdin.com/project/sormas" \
sormas-api/src/main/resources \
sormas-ui/src/main \
sormas-ui/src/test \
--glob '!**/node_modules/**' || true
# Show nearby context in the Swahili bundle.
sed -n '1180,1195p' sormas-api/src/main/resources/strings_sw-TZ.properties
# Check the other locale bundles mentioned in the review comment.
for f in \
sormas-api/src/main/resources/strings_ur-PK.properties \
sormas-api/src/main/resources/strings_zh-CN.properties
do
echo "===== $f ====="
rg -n "infoCrowdinLocalization|target=\\\\\"_blank\\\\\"|crowdin.com/project/sormas" "$f" || true
done
# Find the component that renders this setting as HTML and inspect the relevant lines.
rg -n "infoCrowdinLocalization|dangerouslySetInnerHTML|innerHTML|setText|setHtml|Html" \
sormas-ui/src/main \
--glob '!**/node_modules/**' || trueRepository: SORMAS-Foundation/SORMAS-Project
Length of output: 50390
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Count and list all bundles that still use the Crowdin link without rel.
python3 - <<'PY'
from pathlib import Path
import re
root = Path("sormas-api/src/main/resources")
pattern = re.compile(r'^\s*infoCrowdinLocalization\s*=.*target\\?_blank', re.M)
hits = []
for p in sorted(root.glob("strings*.properties")):
text = p.read_text(encoding="utf-8", errors="replace")
if "infoCrowdinLocalization" in text and 'rel' not in text.split("infoCrowdinLocalization =", 1)[1].splitlines()[0]:
hits.append(p.as_posix())
print("count:", len(hits))
for h in hits:
print(h)
PY
# Show the render path in UserSettingsForm.
sed -n '45,70p' sormas-ui/src/main/java/de/symeda/sormas/ui/user/UserSettingsForm.javaRepository: SORMAS-Foundation/SORMAS-Project
Length of output: 2944
Add rel="noopener noreferrer" to the Crowdin link infoCrowdinLocalization is rendered as HTML in UserSettingsForm, and every locale override of this string uses target="_blank" without a rel policy. Update the shared base string and the localized overrides that duplicate it.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@sormas-api/src/main/resources/strings_sw-TZ.properties` at line 1188, Update
the HTML anchor in the shared `infoCrowdinLocalization` string and all localized
overrides that duplicate it to include `rel="noopener noreferrer"` alongside
`target="_blank"`; verify `UserSettingsForm` renders the updated value
consistently.
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
sormas-api/src/main/resources/captions_cs-CZ.properties (1)
1996-1996: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winRestore the invasive pneumococcal serogrouping caption key.
This deletion removes
PathogenTest.seroGrouping.INVASIVE_PNEUMOCOCCAL_INFECTION, butCaptions.javastill defines it andTestMethodComponent.javastill callsI18nProperties.getCaption(...)with that key. The invasive pneumococcal test-type UI will therefore lose its Czech caption or fall back unexpectedly. Restore the key with its Czech translation.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@sormas-api/src/main/resources/captions_cs-CZ.properties` at line 1996, Restore the missing PathogenTest.seroGrouping.INVASIVE_PNEUMOCOCCAL_INFECTION caption entry in the Czech properties resource, using the appropriate Czech translation so the existing Captions.java definition and TestMethodComponent.java lookup resolve correctly.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@sormas-api/src/main/resources/captions_cs-CZ.properties`:
- Line 1996: Restore the missing
PathogenTest.seroGrouping.INVASIVE_PNEUMOCOCCAL_INFECTION caption entry in the
Czech properties resource, using the appropriate Czech translation so the
existing Captions.java definition and TestMethodComponent.java lookup resolve
correctly.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 06bc3fa7-45b3-4844-8469-ff2df4239424
📒 Files selected for processing (1)
sormas-api/src/main/resources/captions_cs-CZ.properties
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@sormas-api/src/main/resources/countries_sw-TZ.properties`:
- Line 31: Update the country.BHR.name entry to use “Bahareni” as the country
name instead of the demonym “Bahraini”.
🪄 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: defaults
Review profile: CHILL
Plan: Pro
Run ID: 5276c5f6-927b-4833-925e-cbfcdd8a9801
📒 Files selected for processing (1)
sormas-api/src/main/resources/countries_sw-TZ.properties
| country.BHS.name=Bahamas | ||
| country.BHR.name=Bahrain | ||
| country.BHS.name=Bahama | ||
| country.BHR.name=Bahraini |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== File excerpt =="
nl -ba sormas-api/src/main/resources/countries_sw-TZ.properties | sed -n '1,120p'
echo
echo "== Country-name usages =="
rg -n "getCountryName|country\\.[A-Z0-9]{3}\\.name" sormas-api/src/main/java sormas-api/src/main/resources -g '!**/target/**' -g '!**/build/**' || true
echo
echo "== Other localized country bundles =="
fd -a "countries_*.properties" sormas-api/src/main/resources | sed -n '1,120p'Repository: SORMAS-Foundation/SORMAS-Project
Length of output: 229
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== countries_sw-TZ.properties excerpt =="
sed -n '1,120p' sormas-api/src/main/resources/countries_sw-TZ.properties
echo
echo "== country-name lookup implementation =="
rg -n -A4 -B4 "getCountryName|country\\.[A-Z0-9]{3}\\.name" sormas-api/src/main/java sormas-api/src/main/resources -g '!**/target/**' -g '!**/build/**' || true
echo
echo "== available country bundles =="
fd -a "countries_*.properties" sormas-api/src/main/resourcesRepository: SORMAS-Foundation/SORMAS-Project
Length of output: 50389
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== sw-TZ BHR entry =="
sed -n '24,36p' sormas-api/src/main/resources/countries_sw-TZ.properties
echo
echo "== lookup of country-name bundle usage =="
rg -n -A3 -B3 "country\\.BHR\\.name|getCountryName|countries_.*properties" \
sormas-api/src/main/java sormas-api/src/main/resources \
-g '!**/target/**' -g '!**/build/**' \
| sed -n '1,120p'Repository: SORMAS-Foundation/SORMAS-Project
Length of output: 9582
🌐 Web query:
Swahili CLDR Bahrain country name sw-TZ Bahareni country.BHR.name
💡 Result:
In the Unicode Common Locale Data Repository (CLDR), the Swahili (sw) name for the country of Bahrain (territory code BH) is defined as Bahareni [1][2][3]. This is confirmed in the official CLDR XML data files (e.g., sw.xml), where the territory mapping is explicitly recorded as: Bahareni [1] Additionally, in related currency data within the Swahili locale, the currency name for the Bahraini Dinar (BHD) is typically rendered as dinari ya Bahareni [4][5][6].
Citations:
- 1: https://github.com/unicode-org/cldr/blob/main/common/main/sw.xml
- 2: https://github.com/zendframework/zf1/blob/master/library/Zend/Locale/Data/sw.xml
- 3: https://unpkg.com/unicode-countries@0.1.11/common/main/sw.xml
- 4: https://www.unicode.org/cldr/cldr-aux/charts/23.1/summary/sw.html
- 5: https://www.unicode.org/cldr/cldr-aux/charts/22.1/summary/sw.html
- 6: https://www.unicode.org/cldr/cldr-aux/charts/23/summary/sw.html
Use Bahareni for Bahrain. country.BHR.name should be the country name; Bahraini is the demonym.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@sormas-api/src/main/resources/countries_sw-TZ.properties` at line 31, Update
the country.BHR.name entry to use “Bahareni” as the country name instead of the
demonym “Bahraini”.
Source: MCP tools
Summary by CodeRabbit
New Features
Updates
Bug Fixes