Skip to content

New Crowdin updates#13996

Open
SORMAS-Robot wants to merge 10000 commits into
developmentfrom
l10n_development
Open

New Crowdin updates#13996
SORMAS-Robot wants to merge 10000 commits into
developmentfrom
l10n_development

Conversation

@SORMAS-Robot

@SORMAS-Robot SORMAS-Robot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • New Features
    • Added “Watery diarrhoea” as a trackable symptom in all supported languages.
    • Added “Direct microscopy” as a pathogen test type option.
    • Added SHIG as a country/residence label for epidemiological data.
  • Localization / UI Text
    • Standardized case laboratory result captions (replacing MIC/zone-specific labels with a single value label).
    • Updated quantitative pathogen test captions by removing the free-text variant and using value/unit-style labels.
    • Refined exposure sub-setting wording to “High-contact environments” and “Sexual contact” across translations.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 16

Caution

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

⚠️ Outside diff range comments (6)
sormas-api/src/main/resources/captions_cs-CZ.properties (1)

3145-3145: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Untranslated caption in Czech locale: Symptoms.wateryDiarrhea should be translated to Czech.

Line 3145 contains English text ("Watery diarrhoea") in the Czech locale file. This caption should be translated to Czech. The pattern in this file shows symptom-related captions are translated (e.g., "Průjem" at line 2914 for diarrhea, "Zvracení" at line 3029 for vomiting).

🔧 Suggested fix: Translate to Czech

Provide a Czech translation:

-Symptoms.wateryDiarrhea=Watery diarrhoea
+Symptoms.wateryDiarrhea=Vodnatý průjem
🤖 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 3145, The
Symptoms.wateryDiarrhea caption in the Czech locale file contains English text
instead of a Czech translation. Replace the English value "Watery diarrhoea"
with the appropriate Czech translation for this symptom, following the pattern
of other symptom translations already present in the file such as "Průjem" for
diarrhea and "Zvracení" for vomiting.
sormas-api/src/main/resources/captions_en-GM.properties (1)

3145-3145: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Spelling inconsistency: Mix of American and British English for "diarrhea" variants in en-GM locale

The Gambia locale (en-GM) file contains inconsistent spelling for diarrhea-related terms:

  • Line 2914: Symptoms.diarrhea=Diarrhea (American spelling, existing)
  • Line 3145: Symptoms.wateryDiarrhea=Watery diarrhoea (British spelling, new)

Since the Gambia locale should follow British English conventions, both terms should use consistent spelling. Either standardize both to diarrhoea (British) or both to diarrhea (American).

📝 Suggested fix to standardize British English spelling

Option 1 (preferred for en-GM): Update line 2914 to use British spelling:

-Symptoms.diarrhea=Diarrhea
+Symptoms.diarrhea=Diarrhoea

Option 2: Update line 3145 to use American spelling (if consistency with existing term is preferred):

-Symptoms.wateryDiarrhea=Watery diarrhoea
+Symptoms.wateryDiarrhea=Watery diarrhea

Verify the correction is applied consistently across all 28 locale files in this PR.

Also applies to: 2914-2914

🤖 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_en-GM.properties` at line 3145, The
en-GM locale file has inconsistent spelling for diarrhea-related terms:
Symptoms.diarrhea uses American spelling "Diarrhea" while
Symptoms.wateryDiarrhea uses British spelling "diarrhoea". Since the Gambia
locale should follow British English conventions, update the Symptoms.diarrhea
property on line 2914 to change "Diarrhea" to "Diarrhoea" to match the British
spelling used in Symptoms.wateryDiarrhea. Ensure this spelling standardization
is applied consistently across all locale files included in this PR.
sormas-api/src/main/resources/captions_fr-TN.properties (1)

3145-3145: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Translation missing: Symptoms.wateryDiarrhea is in English, not French.

The caption value "Watery diarrhoea" is in English, but this is the French (Tunisia) locale file and should be translated. For example, Symptoms.diarrhea (line 2914) is correctly translated as "Diarrhée". This new entry should also be translated to French.

Additionally, note the pre-existing inconsistency at line 3144 (Symptoms.bloodyDiarrhea=Bloody diarrhea) which also has an English value in a French locale file. Consider correcting both during this update.

🤖 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_fr-TN.properties` at line 3145, In the
captions_fr-TN.properties file, translate the English caption values to French
for both the Symptoms.wateryDiarrhea entry (line 3145) and the pre-existing
Symptoms.bloodyDiarrhea entry (line 3144). Replace "Watery diarrhoea" with its
French equivalent and "Bloody diarrhea" with its French equivalent, following
the translation pattern used for similar entries like Symptoms.diarrhea which is
translated as "Diarrhée".
sormas-api/src/main/resources/captions_pl-PL.properties (1)

3145-3145: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Missing Polish translation for Symptoms.wateryDiarrhea caption.

The new key Symptoms.wateryDiarrhea on line 3145 is defined with an English value (Watery diarrhoea), but this is a Polish locale-specific file (captions_pl-PL.properties). It should contain a Polish translation to match the locale.

Please provide the Polish translation for this caption.

🤖 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_pl-PL.properties` at line 3145, The
Symptoms.wateryDiarrhea key in the Polish locale file captions_pl-PL.properties
contains an English translation instead of Polish. Replace the English value
"Watery diarrhoea" with the appropriate Polish translation for this caption to
ensure consistency with the locale-specific file's purpose.
sormas-api/src/main/resources/captions_ur-PK.properties (1)

3145-3145: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Critical: Untranslated caption for new Symptoms.wateryDiarrhea key.

Line 3145 contains English text where Urdu translation is required:

Symptoms.wateryDiarrhea=Watery diarrhoea

This is inconsistent with the related symptom already properly translated:

  • Line 2914: Symptoms.diarrhea=پیچش ✓ (Urdu translation)

The new wateryDiarrhea caption should follow the same pattern. Please provide the Urdu translation for this symptom name.

🤖 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_ur-PK.properties` at line 3145, The
caption property Symptoms.wateryDiarrhea in the Urdu language file contains
English text instead of the required Urdu translation. Replace the English text
"Watery diarrhoea" with the appropriate Urdu translation for the symptom,
following the same pattern as the existing related symptom translation
Symptoms.diarrhea which correctly contains Urdu text.
sormas-api/src/main/resources/enum_de-CH.properties (1)

1240-1248: ⚠️ Potential issue | 🟡 Minor

Provide German translations for untranslated enum values in German locale file.

The PathogenTestType.DIRECT_MICROSCOPY entry (line 1245) remains in English while adjacent PathogenTestType entries in this de-CH locale file are translated to German (e.g., line 1244: Mikroskopie, line 1247: Sonstiges). This inconsistency also appears in the de-DE locale file, indicating the translation may be incomplete.

Additionally, the entire ExposureSubSetting section (lines 3139–3161) lacks German translations and uses English captions exclusively, which contrasts with the translation approach applied to other enums in this file.

Provide German translations for PathogenTestType.DIRECT_MICROSCOPY (e.g., "Direktmikroskopie") and the ExposureSubSetting entries to maintain localization consistency, or document if English fallback is intentional for these specific enums.

🤖 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/enum_de-CH.properties` around lines 1240 -
1248, The German locale file contains incomplete translations for enum values.
Locate the PathogenTestType.DIRECT_MICROSCOPY entry and replace the English text
"Direct microscopy" with a German translation such as "Direktmikroskopie" to
match the translation pattern of adjacent PathogenTestType entries like
MICROSCOPY. Additionally, locate the entire ExposureSubSetting section which
currently uses English captions exclusively, and provide German translations for
all ExposureSubSetting enum entries to maintain consistency with the
localization approach applied to other enums in this file.
🤖 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/captions_cs-CZ.properties`:
- Line 1183: The caption EpiData.country.SHIG in the Czech locale file contains
English text instead of Czech. Replace the English description "Place of
residence of patient at the time of disease onset" with its Czech translation.
Ensure the translation maintains consistency with other medical and
epidemiological terms used in the file, and have it reviewed by a qualified
Czech translator to verify accuracy in the medical context.

In `@sormas-api/src/main/resources/captions_fr-FR.properties`:
- Line 1183: In the French locale properties file captions_fr-FR.properties,
several newly added caption keys contain English values instead of French
translations. Replace the English text for the following keys with their French
equivalents: EpiData.country.SHIG should be changed to "Lieu de résidence du
patient au moment du début de la maladie", PathogenTest.quantitativeValue should
be "Valeur", PathogenTest.quantitativeUnit should be "Unité", and
Symptoms.wateryDiarrhea should be "Diarrhée aqueuse". Ensure all other new
caption entries in the file are similarly updated to provide proper French
translations instead of English text to maintain consistency with the file's
locale purpose and existing French translations elsewhere in the file.

In `@sormas-api/src/main/resources/captions_fr-TN.properties`:
- Line 1183: The property EpiData.country.SHIG in the French (Tunisia) locale
file contains an English value instead of a French translation. Replace the
English text "Place of residence of patient at the time of disease onset" with
its French equivalent translation to maintain consistency with other French
captions in this properties file.

In `@sormas-api/src/main/resources/captions_pl-PL.properties`:
- Line 1183: The caption EpiData.country.SHIG in the Polish locale properties
file contains an English value instead of a Polish translation. Replace the
English text "Place of residence of patient at the time of disease onset" with
its appropriate Polish translation to ensure the caption matches the Polish
locale convention of the captions_pl-PL.properties file.

In `@sormas-api/src/main/resources/captions_ur-PK.properties`:
- Line 1183: The caption for the EpiData.country.SHIG key in the Urdu
localization file contains English text instead of Urdu translation, breaking
localization consistency with other entries in the file. Replace the English
value "Place of residence of patient at the time of disease onset" with its
appropriate Urdu translation while keeping the key EpiData.country.SHIG
unchanged, ensuring the format remains consistent with other properly translated
entries in the captions_ur-PK.properties file.

In `@sormas-api/src/main/resources/enum_cs-CZ.properties`:
- Line 1245: The PathogenTestType.DIRECT_MICROSCOPY property in the Czech locale
file enum_cs-CZ.properties contains English text "Direct microscopy" instead of
a Czech translation. Replace the English value with the appropriate Czech
translation for this pathogen test type, following the same pattern as other
entries in the file such as PathogenTestType.MICROSCOPY which uses
"Mikroskopie".
- Around line 3147-3148: In the Czech locale file enum_cs-CZ.properties, the
entries for ExposureSubSetting.HIGH_TOUCH_ENVIRONMENTS and
ExposureSubSetting.SEXUAL_ACTIVITY contain English text instead of Czech
translations. Replace the English values with appropriate Czech translations
following the same pattern as the surrounding entries like
ExposureSubSetting.CLOSE_PHYSICAL_CONTACT which correctly shows the Czech
translation format, or alternatively remove these two lines entirely to allow
the application to fall back to the base enum.properties file for these keys.

In `@sormas-api/src/main/resources/enum_de-CH.properties`:
- Around line 3147-3148: The ExposureSubSetting enum entries in the de-CH
properties file are completely in English while other enums in the same file are
translated to German (e.g., Disease, PathogenTestType), creating an
inconsistency. Additionally, the English text for
ExposureSubSetting.HIGH_TOUCH_ENVIRONMENTS and
ExposureSubSetting.SEXUAL_ACTIVITY differs from the base enum.properties file.
Review the entire ExposureSubSetting enum section (all entries from line
3139-3158) and determine whether to translate all ExposureSubSetting entries to
German to match other enums in this file, or if English-only captions are
intentional. If translating, ensure consistency with standard German terminology
used elsewhere in the properties file. If keeping English, align the caption
text with the base enum.properties file.

In `@sormas-api/src/main/resources/enum_de-DE.properties`:
- Around line 3147-3148: The German locale properties file contains English text
for ExposureSubSetting enum values instead of German translations. Replace the
English text for ExposureSubSetting.HIGH_TOUCH_ENVIRONMENTS (currently
"High-contact environments (e.g. childcare centers, healthcare facilities)")
with its German translation, and replace the English text for
ExposureSubSetting.SEXUAL_ACTIVITY (currently "Sexual contact") with its German
translation. Ensure both entries provide proper German localization for
German-speaking users.
- Line 1245: The PathogenTestType.DIRECT_MICROSCOPY entry in the German locale
file contains English text instead of a German translation. Replace the value
"Direct microscopy" with the appropriate German translation (such as
"Direktmikroskopie" or similar) to align with the German locale convention,
similar to how the nearby MICROSCOPY entry uses "Mikroskopie".

In `@sormas-api/src/main/resources/enum_en-KE.properties`:
- Around line 1240-1245: The new enum entry PathogenTestType.DIRECT_MICROSCOPY
has been added to enum_en-KE.properties but is missing from 26 out of 55 locale
files, including critical base fallback files like enum_en.properties and
enum_ar.properties. Add the entry PathogenTestType.DIRECT_MICROSCOPY with an
appropriate translation for each language/locale to all remaining
enum_*.properties files that are currently missing it. Prioritize adding it to
the base fallback files first (enum_en.properties, enum_ar.properties, etc.) to
ensure all locales have access to this new enum value at runtime.

In `@sormas-api/src/main/resources/enum_fr-TN.properties`:
- Line 1245: The `PathogenTestType.DIRECT_MICROSCOPY` entry in the French
(Tunisia) locale file is currently in English ("Direct microscopy") and must be
translated to French to maintain consistency with all other PathogenTestType
enum entries in this file. Replace the English value "Direct microscopy" with an
appropriate French translation such as "Microscopie directe" to align with the
pattern of other translated entries in the properties file.
- Line 1242: The French translation for PathogenTestType.IGA_SERUM_ANTIBODY
incorrectly uses "IgG" in the translation string when it should use "IgA" to
match the enum constant name. Replace "IgG" with "IgA" in the translation for
PathogenTestType.IGA_SERUM_ANTIBODY to read "Anticorps du sérum d'IgA" instead
of "Anticorps du sérum d'IgG", ensuring consistency with the pattern used for
the IGG and IGM translations on the adjacent lines.
- Around line 3147-3148: The ExposureSubSetting enum entries in all French
locale property files (enum_fr-TN.properties, enum_fr-FR.properties, and
enum_fr-CH.properties) are missing French translations and currently display
English text. Translate all ExposureSubSetting key-value pairs (including
HIGH_TOUCH_ENVIRONMENTS and SEXUAL_ACTIVITY entries across lines 3139-3161) from
English to appropriate French text in each of the three French locale files,
ensuring consistent terminology across all French variants.

In `@sormas-api/src/main/resources/enum_ps-AF.properties`:
- Around line 3147-3148: The enum_ps-AF.properties file contains only English
translations with zero Pashto script content across all 2,734 entries, providing
no actual localization value. Either remove this file entirely if Pashto
localization is not currently supported, or populate it with proper Pashto
translations for all entries including
ExposureSubSetting.HIGH_TOUCH_ENVIRONMENTS and
ExposureSubSetting.SEXUAL_ACTIVITY. If proceeding with translation, ensure
actual Pashto script characters are used (not English text) to match the
translation coverage of similar locale files like ur-PK (66%) and ar-SA (78%).

In `@sormas-api/src/main/resources/enum_pt-BR.properties`:
- Around line 3147-3148: The enum_pt-BR.properties file contains English text
for ExposureSubSetting.HIGH_TOUCH_ENVIRONMENTS and
ExposureSubSetting.SEXUAL_ACTIVITY instead of Portuguese (Brazil) translations.
Replace the English values with proper Portuguese (Brazil) translations for both
keys. Additionally, verify that the same keys in other affected locale files
(de-DE, fr-FR) also contain appropriate language-specific translations rather
than English fallback text, and ensure consistency with the complete values used
across all locale files (particularly that SEXUAL_ACTIVITY includes the full
translated phrase, not just a partial translation).

---

Outside diff comments:
In `@sormas-api/src/main/resources/captions_cs-CZ.properties`:
- Line 3145: The Symptoms.wateryDiarrhea caption in the Czech locale file
contains English text instead of a Czech translation. Replace the English value
"Watery diarrhoea" with the appropriate Czech translation for this symptom,
following the pattern of other symptom translations already present in the file
such as "Průjem" for diarrhea and "Zvracení" for vomiting.

In `@sormas-api/src/main/resources/captions_en-GM.properties`:
- Line 3145: The en-GM locale file has inconsistent spelling for
diarrhea-related terms: Symptoms.diarrhea uses American spelling "Diarrhea"
while Symptoms.wateryDiarrhea uses British spelling "diarrhoea". Since the
Gambia locale should follow British English conventions, update the
Symptoms.diarrhea property on line 2914 to change "Diarrhea" to "Diarrhoea" to
match the British spelling used in Symptoms.wateryDiarrhea. Ensure this spelling
standardization is applied consistently across all locale files included in this
PR.

In `@sormas-api/src/main/resources/captions_fr-TN.properties`:
- Line 3145: In the captions_fr-TN.properties file, translate the English
caption values to French for both the Symptoms.wateryDiarrhea entry (line 3145)
and the pre-existing Symptoms.bloodyDiarrhea entry (line 3144). Replace "Watery
diarrhoea" with its French equivalent and "Bloody diarrhea" with its French
equivalent, following the translation pattern used for similar entries like
Symptoms.diarrhea which is translated as "Diarrhée".

In `@sormas-api/src/main/resources/captions_pl-PL.properties`:
- Line 3145: The Symptoms.wateryDiarrhea key in the Polish locale file
captions_pl-PL.properties contains an English translation instead of Polish.
Replace the English value "Watery diarrhoea" with the appropriate Polish
translation for this caption to ensure consistency with the locale-specific
file's purpose.

In `@sormas-api/src/main/resources/captions_ur-PK.properties`:
- Line 3145: The caption property Symptoms.wateryDiarrhea in the Urdu language
file contains English text instead of the required Urdu translation. Replace the
English text "Watery diarrhoea" with the appropriate Urdu translation for the
symptom, following the same pattern as the existing related symptom translation
Symptoms.diarrhea which correctly contains Urdu text.

In `@sormas-api/src/main/resources/enum_de-CH.properties`:
- Around line 1240-1248: The German locale file contains incomplete translations
for enum values. Locate the PathogenTestType.DIRECT_MICROSCOPY entry and replace
the English text "Direct microscopy" with a German translation such as
"Direktmikroskopie" to match the translation pattern of adjacent
PathogenTestType entries like MICROSCOPY. Additionally, locate the entire
ExposureSubSetting section which currently uses English captions exclusively,
and provide German translations for all ExposureSubSetting enum entries to
maintain consistency with the localization approach applied to other enums in
this file.
🪄 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: b8928ac0-a876-490a-b1b6-361c5d37cdf9

📥 Commits

Reviewing files that changed from the base of the PR and between 93a0505 and 963d2bb.

📒 Files selected for processing (58)
  • sormas-api/src/main/resources/captions_ar-SA.properties
  • sormas-api/src/main/resources/captions_cs-CZ.properties
  • sormas-api/src/main/resources/captions_de-CH.properties
  • sormas-api/src/main/resources/captions_de-DE.properties
  • sormas-api/src/main/resources/captions_en-AF.properties
  • sormas-api/src/main/resources/captions_en-GH.properties
  • sormas-api/src/main/resources/captions_en-GM.properties
  • sormas-api/src/main/resources/captions_en-KE.properties
  • sormas-api/src/main/resources/captions_en-LR.properties
  • sormas-api/src/main/resources/captions_en-NG.properties
  • sormas-api/src/main/resources/captions_es-BO.properties
  • sormas-api/src/main/resources/captions_es-CU.properties
  • sormas-api/src/main/resources/captions_fa-AF.properties
  • sormas-api/src/main/resources/captions_fi-FI.properties
  • sormas-api/src/main/resources/captions_fr-CH.properties
  • sormas-api/src/main/resources/captions_fr-FR.properties
  • sormas-api/src/main/resources/captions_fr-TN.properties
  • sormas-api/src/main/resources/captions_it-CH.properties
  • sormas-api/src/main/resources/captions_it-IT.properties
  • sormas-api/src/main/resources/captions_ka-GE.properties
  • sormas-api/src/main/resources/captions_pl-PL.properties
  • sormas-api/src/main/resources/captions_ps-AF.properties
  • sormas-api/src/main/resources/captions_pt-BR.properties
  • sormas-api/src/main/resources/captions_pt-CV.properties
  • sormas-api/src/main/resources/captions_ru-RU.properties
  • sormas-api/src/main/resources/captions_sr-CS.properties
  • sormas-api/src/main/resources/captions_sw-TZ.properties
  • sormas-api/src/main/resources/captions_ur-PK.properties
  • sormas-api/src/main/resources/captions_zh-CN.properties
  • sormas-api/src/main/resources/enum_ar-SA.properties
  • sormas-api/src/main/resources/enum_cs-CZ.properties
  • sormas-api/src/main/resources/enum_de-CH.properties
  • sormas-api/src/main/resources/enum_de-DE.properties
  • sormas-api/src/main/resources/enum_en-AF.properties
  • sormas-api/src/main/resources/enum_en-GH.properties
  • sormas-api/src/main/resources/enum_en-GM.properties
  • sormas-api/src/main/resources/enum_en-KE.properties
  • sormas-api/src/main/resources/enum_en-LR.properties
  • sormas-api/src/main/resources/enum_en-NG.properties
  • sormas-api/src/main/resources/enum_es-BO.properties
  • sormas-api/src/main/resources/enum_es-CU.properties
  • sormas-api/src/main/resources/enum_fa-AF.properties
  • sormas-api/src/main/resources/enum_fi-FI.properties
  • sormas-api/src/main/resources/enum_fr-CH.properties
  • sormas-api/src/main/resources/enum_fr-FR.properties
  • sormas-api/src/main/resources/enum_fr-TN.properties
  • sormas-api/src/main/resources/enum_it-CH.properties
  • sormas-api/src/main/resources/enum_it-IT.properties
  • sormas-api/src/main/resources/enum_ka-GE.properties
  • sormas-api/src/main/resources/enum_pl-PL.properties
  • sormas-api/src/main/resources/enum_ps-AF.properties
  • sormas-api/src/main/resources/enum_pt-BR.properties
  • sormas-api/src/main/resources/enum_pt-CV.properties
  • sormas-api/src/main/resources/enum_ru-RU.properties
  • sormas-api/src/main/resources/enum_sr-CS.properties
  • sormas-api/src/main/resources/enum_sw-TZ.properties
  • sormas-api/src/main/resources/enum_ur-PK.properties
  • sormas-api/src/main/resources/enum_zh-CN.properties
✅ Files skipped from review due to trivial changes (5)
  • sormas-api/src/main/resources/enum_pl-PL.properties
  • sormas-api/src/main/resources/enum_fr-FR.properties
  • sormas-api/src/main/resources/enum_en-GM.properties
  • sormas-api/src/main/resources/captions_de-DE.properties
  • sormas-api/src/main/resources/enum_es-BO.properties
🚧 Files skipped from review as they are similar to previous changes (8)
  • sormas-api/src/main/resources/captions_es-CU.properties
  • sormas-api/src/main/resources/captions_it-IT.properties
  • sormas-api/src/main/resources/captions_sw-TZ.properties
  • sormas-api/src/main/resources/captions_ru-RU.properties
  • sormas-api/src/main/resources/captions_en-KE.properties
  • sormas-api/src/main/resources/captions_pt-CV.properties
  • sormas-api/src/main/resources/captions_de-CH.properties
  • sormas-api/src/main/resources/captions_sr-CS.properties

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

🛑 Comments failed to post (16)
sormas-api/src/main/resources/captions_cs-CZ.properties (1)

1183-1183: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Untranslated caption in Czech locale: EpiData.country.SHIG should be translated to Czech.

Line 1183 contains English text ("Place of residence of patient at the time of disease onset") in the Czech locale file. This caption should be translated to Czech for consistency with the rest of the file and to ensure proper user experience for Czech-speaking users. Compare with the pattern of other captions in this file (e.g., "Horečka" for fever, "Průjem" for diarrhea).

🔧 Suggested fix: Translate to Czech

Provide a Czech translation. Example (you may adjust to match your terminology):

-EpiData.country.SHIG= Place of residence of patient at the time of disease onset
+EpiData.country.SHIG=Bydliště pacienta v době nástupu onemocnění

(Note: A qualified Czech translator should review the exact terminology to ensure accuracy with medical/epidemiological context.)

🤖 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 1183, The
caption EpiData.country.SHIG in the Czech locale file contains English text
instead of Czech. Replace the English description "Place of residence of patient
at the time of disease onset" with its Czech translation. Ensure the translation
maintains consistency with other medical and epidemiological terms used in the
file, and have it reviewed by a qualified Czech translator to verify accuracy in
the medical context.
sormas-api/src/main/resources/captions_fr-FR.properties (1)

1183-1183: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

French translations missing for new caption keys – all new entries contain English text instead of French.

Line 1183 (EpiData.country.SHIG) and related new keys (e.g., PathogenTest.quantitativeValue, PathogenTest.quantitativeUnit, Symptoms.wateryDiarrhea) have been added with English values only. This contradicts the file's purpose as a French locale file (captions_fr-FR.properties). The file demonstrates proper French translations elsewhere (e.g., line 18: all=Tous, line 23: postcode=Code postal), confirming that all values should be in French.

Expected format:

  • Line 1183: EpiData.country.SHIG=Lieu de résidence du patient au moment du début de la maladie
  • Line 2012: PathogenTest.quantitativeValue=Valeur
  • Line 2013: PathogenTest.quantitativeUnit=Unité
  • Line 3145: Symptoms.wateryDiarrhea=Diarrhée aqueuse

Action required: Provide French translations for all newly added caption keys in this file before merge.

🤖 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_fr-FR.properties` at line 1183, In the
French locale properties file captions_fr-FR.properties, several newly added
caption keys contain English values instead of French translations. Replace the
English text for the following keys with their French equivalents:
EpiData.country.SHIG should be changed to "Lieu de résidence du patient au
moment du début de la maladie", PathogenTest.quantitativeValue should be
"Valeur", PathogenTest.quantitativeUnit should be "Unité", and
Symptoms.wateryDiarrhea should be "Diarrhée aqueuse". Ensure all other new
caption entries in the file are similarly updated to provide proper French
translations instead of English text to maintain consistency with the file's
locale purpose and existing French translations elsewhere in the file.
sormas-api/src/main/resources/captions_fr-TN.properties (1)

1183-1183: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Translation missing: EpiData.country.SHIG is in English, not French.

This is the French (Tunisia) locale file, but the value is in English: "Place of residence of patient at the time of disease onset". It should be translated to French. For consistency with other entries in this file (e.g., line 1165–1188), the caption should be in French.

🤖 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_fr-TN.properties` at line 1183, The
property EpiData.country.SHIG in the French (Tunisia) locale file contains an
English value instead of a French translation. Replace the English text "Place
of residence of patient at the time of disease onset" with its French equivalent
translation to maintain consistency with other French captions in this
properties file.
sormas-api/src/main/resources/captions_pl-PL.properties (1)

1183-1183: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Missing Polish translation for EpiData.country.SHIG caption.

The new key EpiData.country.SHIG on line 1183 is defined with an English value (Place of residence of patient at the time of disease onset), but this is a Polish locale-specific file (captions_pl-PL.properties). It should contain a Polish translation to match the locale.

Please provide the Polish translation for this caption.

🤖 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_pl-PL.properties` at line 1183, The
caption EpiData.country.SHIG in the Polish locale properties file contains an
English value instead of a Polish translation. Replace the English text "Place
of residence of patient at the time of disease onset" with its appropriate
Polish translation to ensure the caption matches the Polish locale convention of
the captions_pl-PL.properties file.
sormas-api/src/main/resources/captions_ur-PK.properties (1)

1183-1183: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Critical: Untranslated caption for new EpiData.country.SHIG key.

Line 1183 contains English text where Urdu translation is required:

EpiData.country.SHIG= Place of residence of patient at the time of disease onset

This breaks the localization consistency pattern. Compare to nearby properly translated entries:

  • Line 1165: EpiData.areaInfectedAnimals=کسی ایسے خطے میں رہنا، کام کرنا یا سفر کرنا جہاں متاثرہ جانوروں کی تصدیق ہوئی ہو ✓ (Urdu)

Please provide the Urdu translation for this caption.

🤖 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_ur-PK.properties` at line 1183, The
caption for the EpiData.country.SHIG key in the Urdu localization file contains
English text instead of Urdu translation, breaking localization consistency with
other entries in the file. Replace the English value "Place of residence of
patient at the time of disease onset" with its appropriate Urdu translation
while keeping the key EpiData.country.SHIG unchanged, ensuring the format
remains consistent with other properly translated entries in the
captions_ur-PK.properties file.
sormas-api/src/main/resources/enum_cs-CZ.properties (2)

1245-1245: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Critical: English text in Czech locale file instead of Czech translation.

Line 1245 contains an English caption for PathogenTestType.DIRECT_MICROSCOPY. The Czech locale file should provide a Czech translation, not English. Compare with surrounding entries (e.g., line 1244: PathogenTestType.MICROSCOPY = Mikroskopie).

The value should be a Czech translation, or the line should be removed to fall back to the base enum.properties file.

🤖 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/enum_cs-CZ.properties` at line 1245, The
PathogenTestType.DIRECT_MICROSCOPY property in the Czech locale file
enum_cs-CZ.properties contains English text "Direct microscopy" instead of a
Czech translation. Replace the English value with the appropriate Czech
translation for this pathogen test type, following the same pattern as other
entries in the file such as PathogenTestType.MICROSCOPY which uses
"Mikroskopie".

3147-3148: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Critical: English text in Czech locale file instead of Czech translations.

Lines 3147–3148 contain English captions for ExposureSubSetting.HIGH_TOUCH_ENVIRONMENTS and ExposureSubSetting.SEXUAL_ACTIVITY. The Czech locale file should provide Czech translations. Compare with surrounding entries (e.g., line 3146: ExposureSubSetting.CLOSE_PHYSICAL_CONTACT=Zavřít fyzický kontakt).

Both values should be Czech translations, or the lines should be removed to fall back to the base enum.properties file.

🤖 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/enum_cs-CZ.properties` around lines 3147 -
3148, In the Czech locale file enum_cs-CZ.properties, the entries for
ExposureSubSetting.HIGH_TOUCH_ENVIRONMENTS and
ExposureSubSetting.SEXUAL_ACTIVITY contain English text instead of Czech
translations. Replace the English values with appropriate Czech translations
following the same pattern as the surrounding entries like
ExposureSubSetting.CLOSE_PHYSICAL_CONTACT which correctly shows the Czech
translation format, or alternatively remove these two lines entirely to allow
the application to fall back to the base enum.properties file for these keys.
sormas-api/src/main/resources/enum_de-CH.properties (1)

3147-3148: ⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Search for DIRECT_MICROSCOPY and ExposureSubSetting entries in the base enum file
grep -n "PathogenTestType.DIRECT_MICROSCOPY\|ExposureSubSetting.HIGH_TOUCH_ENVIRONMENTS\|ExposureSubSetting.SEXUAL_ACTIVITY" sormas-api/src/main/resources/enum.properties

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 303


🏁 Script executed:

# Check if other German locale files have ExposureSubSetting entries
find sormas-api/src/main/resources -name "enum_de*.properties" -type f

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 180


🏁 Script executed:

# Check ExposureSubSetting entries in all locale files
grep -n "^ExposureSubSetting\." sormas-api/src/main/resources/enum_de-CH.properties | head -20

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 1625


🏁 Script executed:

# Check if there's a German-only enum file and its ExposureSubSetting entries
grep -n "^ExposureSubSetting\." sormas-api/src/main/resources/enum_de.properties 2>/dev/null | head -20

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 58


🏁 Script executed:

# Check the pattern for other enums like Disease or PathogenTestType in de-CH
grep -n "^Disease\.\|^PathogenTestType\." sormas-api/src/main/resources/enum_de-CH.properties | head -10

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 414


Resolve the English-only localization for ExposureSubSetting in de-CH file and verify text consistency with base enum.properties.

The ExposureSubSetting enum section (lines 3139–3158) in enum_de-CH.properties is entirely in English, which is inconsistent with other enums (e.g., Disease, PathogenTestType) that are translated to German in the same file. Additionally, the English captions in de-CH differ from the base enum.properties file:

  • Line 3147: de-CH has "High-contact environments" vs base has "High-touch environments"
  • Line 3148: de-CH has "Sexual contact" vs base has "Sexual"

Determine whether ExposureSubSetting should receive German translations like other enums, or whether English-only with customized captions is intentional.

🤖 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/enum_de-CH.properties` around lines 3147 -
3148, The ExposureSubSetting enum entries in the de-CH properties file are
completely in English while other enums in the same file are translated to
German (e.g., Disease, PathogenTestType), creating an inconsistency.
Additionally, the English text for ExposureSubSetting.HIGH_TOUCH_ENVIRONMENTS
and ExposureSubSetting.SEXUAL_ACTIVITY differs from the base enum.properties
file. Review the entire ExposureSubSetting enum section (all entries from line
3139-3158) and determine whether to translate all ExposureSubSetting entries to
German to match other enums in this file, or if English-only captions are
intentional. If translating, ensure consistency with standard German terminology
used elsewhere in the properties file. If keeping English, align the caption
text with the base enum.properties file.
sormas-api/src/main/resources/enum_de-DE.properties (2)

1245-1245: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

German locale enum file contains English text instead of German translation.

Line 1245 adds PathogenTestType.DIRECT_MICROSCOPY = Direct microscopy, but this is the German locale file (enum_de-DE.properties). The value should be a German translation (e.g., "Direktmikroskopie"), not English. Nearby entries like MICROSCOPY = Mikroskopie confirm the file should contain German translations.

🤖 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/enum_de-DE.properties` at line 1245, The
PathogenTestType.DIRECT_MICROSCOPY entry in the German locale file contains
English text instead of a German translation. Replace the value "Direct
microscopy" with the appropriate German translation (such as "Direktmikroskopie"
or similar) to align with the German locale convention, similar to how the
nearby MICROSCOPY entry uses "Mikroskopie".

3147-3148: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

German locale enum file contains English text for ExposureSubSetting enum values.

Lines 3147–3148 update ExposureSubSetting entries with English text:

  • Line 3147: HIGH_TOUCH_ENVIRONMENTS=High-contact environments (e.g. childcare centers, healthcare facilities) (English)
  • Line 3148: SEXUAL_ACTIVITY=Sexual contact (English)

These are in the German locale file (enum_de-DE.properties) and must be German translations, not English. This breaks the localization contract for German-speaking users.

🤖 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/enum_de-DE.properties` around lines 3147 -
3148, The German locale properties file contains English text for
ExposureSubSetting enum values instead of German translations. Replace the
English text for ExposureSubSetting.HIGH_TOUCH_ENVIRONMENTS (currently
"High-contact environments (e.g. childcare centers, healthcare facilities)")
with its German translation, and replace the English text for
ExposureSubSetting.SEXUAL_ACTIVITY (currently "Sexual contact") with its German
translation. Ensure both entries provide proper German localization for
German-speaking users.
sormas-api/src/main/resources/enum_en-KE.properties (1)

1240-1245: ⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify DIRECT_MICROSCOPY is present and consistent in all enum_*.properties locale files

echo "=== Checking for PathogenTestType.DIRECT_MICROSCOPY in all enum files ==="
rg -n "PathogenTestType\.DIRECT_MICROSCOPY" sormas-api/src/main/resources/enum_*.properties

echo -e "\n=== Counting enum files that contain the entry ==="
rg -l "PathogenTestType\.DIRECT_MICROSCOPY" sormas-api/src/main/resources/enum_*.properties | wc -l

echo -e "\n=== Listing all enum_*.properties files (to compare count) ==="
fd "enum_.*\.properties$" sormas-api/src/main/resources/ | wc -l

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 3520


🏁 Script executed:

# Identify which enum files are MISSING the DIRECT_MICROSCOPY entry
echo "=== Enum files MISSING PathogenTestType.DIRECT_MICROSCOPY ==="
fd "enum_.*\.properties$" sormas-api/src/main/resources/ | while read file; do
  if ! rg -q "PathogenTestType\.DIRECT_MICROSCOPY" "$file"; then
    echo "$file"
  fi
done

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 1486


Enum entry incomplete: PathogenTestType.DIRECT_MICROSCOPY is missing from 26 of 55 locale files.

The entry is correctly added to enum_en-KE.properties at line 1245 with the caption "Direct microscopy", but verification shows this addition is inconsistent across the localization suite. The entry is present in only 29 files and missing from 26 files, including critical base fallback files (enum_en.properties, enum_ar.properties). This incomplete rollout means locales without an explicit translation file will not have access to the new enum value, potentially causing runtime issues. All 55 enum_*.properties files should include this entry.

🤖 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/enum_en-KE.properties` around lines 1240 -
1245, The new enum entry PathogenTestType.DIRECT_MICROSCOPY has been added to
enum_en-KE.properties but is missing from 26 out of 55 locale files, including
critical base fallback files like enum_en.properties and enum_ar.properties. Add
the entry PathogenTestType.DIRECT_MICROSCOPY with an appropriate translation for
each language/locale to all remaining enum_*.properties files that are currently
missing it. Prioritize adding it to the base fallback files first
(enum_en.properties, enum_ar.properties, etc.) to ensure all locales have access
to this new enum value at runtime.
sormas-api/src/main/resources/enum_fr-TN.properties (3)

1242-1242: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Potential translation error in PathogenTestType.IGA_SERUM_ANTIBODY.

Line 1242 translates IGA_SERUM_ANTIBODY as "Anticorps du sérum d'IgG" (IgG serum antibodies), but it should be "Anticorps du sérum d'IgA" (IgA serum antibodies) to match the enum constant. Compare with line 1240 (IGG) and line 1241 (IGM), which correctly use "IgG" and "IgM" respectively in their translations.

🤖 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/enum_fr-TN.properties` at line 1242, The French
translation for PathogenTestType.IGA_SERUM_ANTIBODY incorrectly uses "IgG" in
the translation string when it should use "IgA" to match the enum constant name.
Replace "IgG" with "IgA" in the translation for
PathogenTestType.IGA_SERUM_ANTIBODY to read "Anticorps du sérum d'IgA" instead
of "Anticorps du sérum d'IgG", ensuring consistency with the pattern used for
the IGG and IGM translations on the adjacent lines.

1245-1245: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Missing French translation for PathogenTestType.DIRECT_MICROSCOPY.

This new enum entry is in English ("Direct microscopy") but all other PathogenTestType entries in this French (Tunisia) locale file are translated to French (e.g., line 1234: "Test de détection antigène", line 1244: "Microscopie"). The French translation for "Direct microscopy" should be added (e.g., "Microscopie directe" or similar).

🤖 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/enum_fr-TN.properties` at line 1245, The
`PathogenTestType.DIRECT_MICROSCOPY` entry in the French (Tunisia) locale file
is currently in English ("Direct microscopy") and must be translated to French
to maintain consistency with all other PathogenTestType enum entries in this
file. Replace the English value "Direct microscopy" with an appropriate French
translation such as "Microscopie directe" to align with the pattern of other
translated entries in the properties file.

3147-3148: ⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# First, let's examine the file to understand the pattern of ExposureSubSetting entries
cat -n sormas-api/src/main/resources/enum_fr-TN.properties | grep -A 5 -B 5 "ExposureSubSetting" | head -50

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 2287


🏁 Script executed:

# Check how many ExposureSubSetting entries exist and their patterns
rg "ExposureSubSetting\." sormas-api/src/main/resources/enum_fr-TN.properties | head -20

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 1525


🏁 Script executed:

# Look for the English equivalent locale file to compare
fd -t f "enum_en" sormas-api/src/main/resources/

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 437


🏁 Script executed:

# Check what other locale files exist for enums
fd -t f "enum_" sormas-api/src/main/resources/ | sort

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 2932


🏁 Script executed:

# Check if there are any French translations in the file or if it's all English
cat sormas-api/src/main/resources/enum_fr-TN.properties | head -100

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 4139


🏁 Script executed:

# Search for patterns that would indicate French text (common French words)
rg "^[^=]*=[^=]*(le|la|les|un|une|des|est|sont|pour|avec|dans)" sormas-api/src/main/resources/enum_fr-TN.properties | head -20

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 1581


🏁 Script executed:

# Compare the ExposureSubSetting section between English and French locale
echo "=== ENGLISH ===" && rg "ExposureSubSetting\." sormas-api/src/main/resources/enum_en.properties && echo -e "\n=== FRENCH (TN) ===" && rg "ExposureSubSetting\." sormas-api/src/main/resources/enum_fr-TN.properties

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 92


🏁 Script executed:

# Check if ExposureSubSetting exists in the English locale file
rg "ExposureSubSetting" sormas-api/src/main/resources/enum_en.properties | head -5

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 58


🏁 Script executed:

# Let's check if ExposureSubSetting is a new addition by checking when it first appears
rg "ExposureSubSetting" sormas-api/src/main/resources/enum_*.properties | head -20

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 2535


🏁 Script executed:

# Check how many French locale files have translations vs English for comparison
wc -l sormas-api/src/main/resources/enum_fr-TN.properties sormas-api/src/main/resources/enum_en.properties

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 204


🏁 Script executed:

# Check the actual English properties file - it seems very small
cat sormas-api/src/main/resources/enum_en.properties

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 1039


🏁 Script executed:

# Look for a base/default properties file
fd -t f "enum\.properties" sormas-api/src/main/resources/

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 122


🏁 Script executed:

# Get a better understanding of file structure
ls -lh sormas-api/src/main/resources/enum*.properties | head -10

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 1077


🏁 Script executed:

# Check if the French files have translations or are in English too
rg "ExposureSubSetting" sormas-api/src/main/resources/enum_fr-*.properties

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 8593


🏁 Script executed:

# Check if ExposureSubSetting appears in the base enum.properties file
rg "ExposureSubSetting" sormas-api/src/main/resources/enum.properties

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 1657


🏁 Script executed:

# Verify if ALL ExposureSubSetting entries in French files are in English or just the two mentioned
rg "ExposureSubSetting\..*=" sormas-api/src/main/resources/enum_fr-TN.properties | cut -d'=' -f2 | sort -u

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 734


🏁 Script executed:

# Check a German locale file to see if German translations exist for ExposureSubSetting
rg "ExposureSubSetting" sormas-api/src/main/resources/enum_de-DE.properties | head -10

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 771


🏁 Script executed:

# Check other non-English locales
rg "ExposureSubSetting" sormas-api/src/main/resources/enum_es-ES.properties | head -3

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 58


ExposureSubSetting entries remain untranslated in French locale file.

All ExposureSubSetting entries (lines 3139–3161) in the French locale file, including lines 3147–3148, contain English text. This appears to be a new enum section added to the codebase that lacks French translations across all French locale variants (enum_fr-TN.properties, enum_fr-FR.properties, enum_fr-CH.properties). Either provide French translations for the entire ExposureSubSetting section or document why English fallbacks are acceptable.

🤖 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/enum_fr-TN.properties` around lines 3147 -
3148, The ExposureSubSetting enum entries in all French locale property files
(enum_fr-TN.properties, enum_fr-FR.properties, and enum_fr-CH.properties) are
missing French translations and currently display English text. Translate all
ExposureSubSetting key-value pairs (including HIGH_TOUCH_ENVIRONMENTS and
SEXUAL_ACTIVITY entries across lines 3139-3161) from English to appropriate
French text in each of the three French locale files, ensuring consistent
terminology across all French variants.
sormas-api/src/main/resources/enum_ps-AF.properties (1)

3147-3148: ⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Compare size/content of this Pashto file vs others to understand the pattern
wc -l sormas-api/src/main/resources/enum_*.properties | sort -n | tail -10
# Check if Pashto file is intentionally English or should be empty
ls -lh sormas-api/src/main/resources/enum_ps-AF.properties sormas-api/src/main/resources/enum_en-AF.properties 2>/dev/null | awk '{print $9, $5}'

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 744


🏁 Script executed:

#!/bin/bash
# Check if base enum.properties exists and its size
ls -lh sormas-api/src/main/resources/enum.properties 2>/dev/null | awk '{print $9, $5}' || echo "Base enum.properties not found"

# Sample a few lines from Pashto file to see if it contains English or actual Pashto text
echo "=== Pashto file sample (first 5 property lines) ==="
grep -v '^#' sormas-api/src/main/resources/enum_ps-AF.properties | grep '=' | head -5

# Sample from another locale file (e.g., Polish) to see if pattern is consistent
echo "=== Polish file sample (first 5 property lines) ==="
grep -v '^#' sormas-api/src/main/resources/enum_pl-PL.properties | grep '=' | head -5

# Sample from Russian file
echo "=== Russian file sample (first 5 property lines) ==="
grep -v '^#' sormas-api/src/main/resources/enum_ru-RU.properties | grep '=' | head -5

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 1331


🏁 Script executed:

#!/bin/bash
# Check if there are translation tables in database schema or other translation mechanisms
find sormas-api/src/main -name "*.sql" -o -name "*.properties" | xargs grep -l "translation\|locale\|language" 2>/dev/null | head -10

# Check for localization documentation
find . -name "README*" -o -name "LOCALIZATION*" -o -name "*i18n*" | grep -E "(README|LOCALIZATION|i18n)" | head -5

# Check if there's a messages properties file or translation bundle
ls -lh sormas-api/src/main/resources/*.properties | grep -E "(message|translation|bundle)" || echo "No specific translation bundles found"

# Compare base enum.properties with one locale file to see actual differences (if any)
echo "=== Checking if base and locale files have actual differences ==="
diff -q sormas-api/src/main/resources/enum.properties sormas-api/src/main/resources/enum_ps-AF.properties || echo "Files differ"

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 1014


🏁 Script executed:

#!/bin/bash
# Check actual differences between base and Pashto enum files
echo "=== First 20 lines of diff output ==="
diff sormas-api/src/main/resources/enum.properties sormas-api/src/main/resources/enum_ps-AF.properties | head -20

# Check if Pashto has any actual translated content (non-English words)
echo ""
echo "=== Checking for any non-English content in Pashto enum file ==="
grep -v '^[A-Za-z0-9_\.=\s\(\)\-\,]' sormas-api/src/main/resources/enum_ps-AF.properties | head -5 || echo "No non-ASCII content found"

# Look at the i18n package to understand localization strategy
echo ""
echo "=== I18n related files ==="
find sormas-api/src/main/java/de/symeda/sormas/api/i18n -type f -name "*.java" | head -10

# Check for any documentation in the i18n package
cat sormas-api/src/main/java/de/symeda/sormas/api/i18n/README* 2>/dev/null || echo "No README in i18n package"
</parameter>

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 1945


🏁 Script executed:

#!/bin/bash
# Compare Pashto with English Afghanistan variant
echo "=== Pashto file sample (lines 160-165 for CaseClassification.SUSPECT) ==="
sed -n '160,165p' sormas-api/src/main/resources/enum_ps-AF.properties

echo ""
echo "=== English Afghanistan file sample (lines 160-165) ==="
sed -n '160,165p' sormas-api/src/main/resources/enum_en-AF.properties

# Check git history to see when ps-AF was added and if it was meant to contain translations
echo ""
echo "=== Git log for enum_ps-AF.properties (last 3 commits) ==="
git log --oneline -3 -- sormas-api/src/main/resources/enum_ps-AF.properties 2>/dev/null || echo "Git log not available"

# Check if there's any documentation about supported languages/locales
echo ""
echo "=== Searching for locale/language configuration ==="
find sormas-api/src -name "*.properties" -o -name "*.xml" -o -name "*.yml" -o -name "*.json" | xargs grep -l "ps-AF\|pashto\|dari" 2>/dev/null | head -5

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 1332


🏁 Script executed:

#!/bin/bash
# Let me search more specifically for the SUSPECT line that showed differences
echo "=== Looking for CaseClassification.SUSPECT in both files ==="
grep "CaseClassification.SUSPECT" sormas-api/src/main/resources/enum.properties
grep "CaseClassification.SUSPECT" sormas-api/src/main/resources/enum_ps-AF.properties

# Check which locales are actually configured/supported in the application
echo ""
echo "=== Checking for locale/language configuration in code ==="
find sormas-api/src/main -name "*.java" | xargs grep -h "ps-AF\|ps_AF\|pashto" 2>/dev/null | head -5 || echo "No references to ps-AF in Java code"

# Check if there's a list of supported languages
echo ""
echo "=== Looking for supported languages list ==="
find . -name "*.java" -o -name "*.properties" | xargs grep -l "SUPPORTED.*LANGUAGE\|LANGUAGES.*=" 2>/dev/null | head -3

# Check if files are auto-generated by a translation tool (Crowdin, etc.)
echo ""
echo "=== Checking for translation tool indicators ==="
head -20 sormas-api/src/main/resources/enum_ps-AF.properties | grep -i "crowdin\|transifex\|auto\|generated" || echo "No auto-generation indicators found"

# List ALL enum_*.properties files to see the full pattern
echo ""
echo "=== All enum locale files present ==="
ls -1 sormas-api/src/main/resources/enum_*.properties | sed 's/.*enum_//' | sed 's/.properties//' | sort

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 779


🏁 Script executed:

#!/bin/bash
# Let's check if other non-English locales actually have real translated content
echo "=== Sample from German (de-DE) enum file ==="
grep "^[A-Z]" sormas-api/src/main/resources/enum_de-DE.properties | head -5

echo ""
echo "=== Sample from Russian (ru-RU) enum file ==="
grep "^[A-Z]" sormas-api/src/main/resources/enum_ru-RU.properties | head -5

echo ""
echo "=== Sample from Urdu (ur-PK) enum file ==="
grep "^[A-Z]" sormas-api/src/main/resources/enum_ur-PK.properties | head -5

# Check if Pashto and Urdu (both Afghanistan/Pakistan) have different content
echo ""
echo "=== Comparing ps-AF and ur-PK first property entries ==="
diff <(head -50 sormas-api/src/main/resources/enum_ps-AF.properties | grep "^[A-Z]") <(head -50 sormas-api/src/main/resources/enum_ur-PK.properties | grep "^[A-Z]") | head -10 || echo "Files identical in first 50 lines"

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 1396


🏁 Script executed:

#!/bin/bash
# The pattern is becoming clear - let's see how many locale files contain English vs actual translations
echo "=== Checking for actual non-English content in locale files ==="
for file in sormas-api/src/main/resources/enum_{fa-AF,ur-PK,ar-SA,ru-RU,ps-AF,ks-PK}.properties; do
  if [ -f "$file" ]; then
    # Count lines with non-ASCII characters (actual translations)
    non_ascii=$(grep -v '^#' "$file" | grep -v '^$' | grep -P '[^\x00-\x7F]' | wc -l)
    total=$(grep -v '^#' "$file" | grep -v '^$' | wc -l)
    locale=$(basename "$file" .properties | sed 's/enum_//')
    echo "$locale: $non_ascii translated lines out of $total total"
  fi
done

# Specifically check if ps-AF has ANY non-ASCII content
echo ""
echo "=== Non-ASCII content in ps-AF (should be Pashto if translated) ==="
grep -P '[^\x00-\x7F]' sormas-api/src/main/resources/enum_ps-AF.properties | head -3 || echo "No Pashto script found - file contains only English"

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 848


🏁 Script executed:

#!/bin/bash
# Check what those 24 "translated" lines in ps-AF actually are
echo "=== The 24 'non-ASCII' lines in ps-AF ==="
grep -P '[^\x00-\x7F]' sormas-api/src/main/resources/enum_ps-AF.properties | sed 's/.*=//' | sort -u

# Also check fa-AF (Farsi) which also has 24 - are they identical?
echo ""
echo "=== The 24 'non-ASCII' lines in fa-AF ==="
grep -P '[^\x00-\x7F]' sormas-api/src/main/resources/enum_fa-AF.properties | sed 's/.*=//' | sort -u

# Confirm what the actual translation status is by checking a translated locale vs English-only
echo ""
echo "=== Lines with actual language content (not symbols) in ur-PK (translated) ==="
grep -P '[^\x00-\x7F]' sormas-api/src/main/resources/enum_ur-PK.properties | grep -v '®' | grep -v '' | head -3

# Final check: are ps-AF and fa-AF files content-wise identical except for comments?
echo ""
echo "=== Comparing ps-AF and fa-AF (filtering out comments) ==="
diff <(grep "^[A-Z]" sormas-api/src/main/resources/enum_ps-AF.properties | head -20) <(grep "^[A-Z]" sormas-api/src/main/resources/enum_fa-AF.properties | head -20) | head -5 || echo "Files are identical"

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 2492


🏁 Script executed:

#!/bin/bash
# Let's verify the actual translation percentage for clarity
echo "=== Translation completeness summary ==="
for file in sormas-api/src/main/resources/enum_{de-DE,ur-PK,ar-SA,ps-AF,fa-AF,ru-RU}.properties; do
  if [ -f "$file" ]; then
    # Count actual translated lines (with non-ASCII script characters, excluding symbols)
    actual_translated=$(grep -P '[^\x00-\x7F]' "$file" | grep -v "^#" | grep -v '®\|§\|→\|–\|≥\|©' | wc -l)
    total=$(grep -v '^#' "$file" | grep -v '^$' | wc -l)
    locale=$(basename "$file" .properties | sed 's/enum_//')
    pct=$((actual_translated * 100 / total))
    echo "$locale: $actual_translated actual translations out of $total ($pct%)"
  fi
done

# Confirm ps-AF has zero actual Pashto script characters
echo ""
echo "=== Pashto (ps) script check ==="
grep -P 'ا|پ|ش|د|د|ج|ک|ل|م|ن|و|ه|ی' sormas-api/src/main/resources/enum_ps-AF.properties | wc -l
echo "Pashto script character lines found (should be > 0 for translated file)"

# Check the git commit that added/modified ps-AF
echo ""
echo "=== Full git history for enum_ps-AF.properties ==="
git log --oneline -- sormas-api/src/main/resources/enum_ps-AF.properties 2>/dev/null | head -5

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 627


Remove or provide Pashto translations for enum_ps-AF.properties.

This file contains 0% actual Pashto content (0 Pashto script characters found across 2,734 entries)—it is 100% English identical to the base file, providing no localization value. Comparison with functional locale files shows:

  • ur-PK (Urdu): 66% translated
  • ar-SA (Arabic): 78% translated
  • ps-AF (Pashto): 0% translated (English only)

The file should either be removed (if Pashto localization is not supported) or populated with actual Pashto translations. Similarly, fa-AF (Farsi) and ru-RU (Russian) also lack translations and may need review.

🤖 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/enum_ps-AF.properties` around lines 3147 -
3148, The enum_ps-AF.properties file contains only English translations with
zero Pashto script content across all 2,734 entries, providing no actual
localization value. Either remove this file entirely if Pashto localization is
not currently supported, or populate it with proper Pashto translations for all
entries including ExposureSubSetting.HIGH_TOUCH_ENVIRONMENTS and
ExposureSubSetting.SEXUAL_ACTIVITY. If proceeding with translation, ensure
actual Pashto script characters are used (not English text) to match the
translation coverage of similar locale files like ur-PK (66%) and ar-SA (78%).

Source: Learnings

sormas-api/src/main/resources/enum_pt-BR.properties (1)

3147-3148: ⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check if enum_pt-BR.properties has translated content or acts as an English fallback
echo "=== Checking enum_pt-BR.properties line counts and sampling ==="
wc -l sormas-api/src/main/resources/enum_pt-BR.properties
echo ""
echo "=== Sampling lines around ExposureSubSetting ==="
sed -n '3140,3162p' sormas-api/src/main/resources/enum_pt-BR.properties
echo ""
echo "=== Checking if a base enum.properties exists ==="
ls -la sormas-api/src/main/resources/enum.properties 2>/dev/null || echo "Base enum.properties not found"

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 1889


🏁 Script executed:

#!/bin/bash
# Understanding the localization architecture

echo "=== Checking base enum.properties for the same ExposureSubSetting entries ==="
sed -n '3140,3162p' sormas-api/src/main/resources/enum.properties | head -20
echo ""

echo "=== Checking other locale files exist and their structure ==="
ls -la sormas-api/src/main/resources/enum_*.properties | head -10
echo ""

echo "=== Comparing line counts: do all locale files have similar sizes? ==="
wc -l sormas-api/src/main/resources/enum*.properties | tail -1
echo ""

echo "=== Checking sample from another complete locale (en-GB) ==="
sed -n '3147,3148p' sormas-api/src/main/resources/enum_en-GB.properties 2>/dev/null || echo "enum_en-GB.properties not found"
echo ""

echo "=== Checking sample from German locale (de-DE) ==="
sed -n '3147,3148p' sormas-api/src/main/resources/enum_de-DE.properties 2>/dev/null || echo "enum_de-DE.properties not found"
echo ""

echo "=== Checking sample from French locale (fr-FR) ==="
sed -n '3147,3148p' sormas-api/src/main/resources/enum_fr-FR.properties 2>/dev/null || echo "enum_fr-FR.properties not found"

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 2569


🏁 Script executed:

#!/bin/bash
# Need to investigate if these keys are recent additions or systematically untranslated

echo "=== Finding lines for HIGH_TOUCH_ENVIRONMENTS and SEXUAL_ACTIVITY in base enum.properties ==="
grep -n "ExposureSubSetting.HIGH_TOUCH_ENVIRONMENTS\|ExposureSubSetting.SEXUAL_ACTIVITY" sormas-api/src/main/resources/enum.properties
echo ""

echo "=== Check a broader sample of ExposureSubSetting in de-DE to see translation pattern ==="
grep -n "ExposureSubSetting\." sormas-api/src/main/resources/enum_de-DE.properties | head -30
echo ""

echo "=== Check if French has actual translations for other ExposureSubSetting entries ==="
grep "ExposureSubSetting.CLOSE_PHYSICAL_CONTACT\|ExposureSubSetting.HEALTHCARE_SETTINGS" sormas-api/src/main/resources/enum_fr-FR.properties
echo ""

echo "=== Compare: do base enum.properties and pt-BR have exact same content for all keys? ==="
diff <(grep "ExposureSubSetting" sormas-api/src/main/resources/enum.properties | head -15) \
     <(grep "ExposureSubSetting" sormas-api/src/main/resources/enum_pt-BR.properties | head -15)

Repository: SORMAS-Foundation/SORMAS-Project

Length of output: 2518


Update Portuguese (Brazil) and other locale files with translated captions for ExposureSubSetting keys.

Lines 3147–3148 in enum_pt-BR.properties contain English text. However, this is part of a broader localization issue: the same keys (HIGH_TOUCH_ENVIRONMENTS, SEXUAL_ACTIVITY) appear untranslated across multiple locale files (de-DE, fr-FR) with English fallback values instead of language-specific translations.

Additionally, the values in these locale files differ from the base enum.properties:

  • Base file line 3167: ExposureSubSetting.SEXUAL_ACTIVITY=Sexual (incomplete)
  • Locale files: ExposureSubSetting.SEXUAL_ACTIVITY=Sexual contact (complete)

This pattern suggests an incomplete Crowdin translation update where English fallback content was not replaced with actual Portuguese, German, or French translations. Ensure that the Brazilian Portuguese translations are in place for this enum section, along with translations for other affected locales.

🤖 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/enum_pt-BR.properties` around lines 3147 -
3148, The enum_pt-BR.properties file contains English text for
ExposureSubSetting.HIGH_TOUCH_ENVIRONMENTS and
ExposureSubSetting.SEXUAL_ACTIVITY instead of Portuguese (Brazil) translations.
Replace the English values with proper Portuguese (Brazil) translations for both
keys. Additionally, verify that the same keys in other affected locale files
(de-DE, fr-FR) also contain appropriate language-specific translations rather
than English fallback text, and ensure consistency with the complete values used
across all locale files (particularly that SEXUAL_ACTIVITY includes the full
translated phrase, not just a partial translation).

Source: Learnings

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants