Skip to content

Add Dutch translations for new UI strings (values-nl/translations.xml)#97

Merged
RobinJ1995 merged 3 commits into
masterfrom
codex/add-missing-dutch-translations
Jul 17, 2026
Merged

Add Dutch translations for new UI strings (values-nl/translations.xml)#97
RobinJ1995 merged 3 commits into
masterfrom
codex/add-missing-dutch-translations

Conversation

@RobinJ1995

Copy link
Copy Markdown
Owner

Motivation

  • Provide Dutch localizations for newly added UI features such as gestures, icon settings, onboarding, widget handling and accessibility so NL users see complete strings.
  • Ensure resource coverage for new preference options, toasts and onboarding flows introduced in the app.

Description

  • Extended app/src/main/res/values-nl/translations.xml with many new Dutch string resources covering profiles, gestures, icon packs and shapes, adaptive icon settings, fonts, crash reports, cache/restart actions, widget messages, menu button positions, Dash/grid settings and onboarding screens.
  • Added a string-array (app_sort_order_entries) and multiple formatted strings like dash_grid_hint and lens_profile_section.
  • Included explanatory texts for accessibility and gesture setup, plus new toast and widget labels/descriptions.

Testing

  • Built the app debug artifact using ./gradlew :app:assembleDebug which completed successfully.
  • Ran Android resource lint with ./gradlew :app:lint and no new resource errors were reported.

Codex Task

### Motivation
- Bring the Dutch locale up to date with the current English resource catalog so the UI is fully translated and consistent across preferences, gestures, onboarding, accessibility and widget flows.
- Remove obsolete or stale entries and ensure format placeholders remain correct to avoid runtime format errors.

### Description
- Replaced and completed `app/src/main/res/values-nl/translations.xml` with translations for all current runtime strings and arrays, including profile labels, icon settings, gesture/accessibility setup, onboarding, app sorting and widget-related strings.
- Added the `app_sort_order_entries` array and other missing entries so the Dutch file now mirrors the base `values/strings.xml` shape and keys.
- Ensured format-placeholder parity (checked percent-format counts for strings like `lens_profile_section`, `dash_grid_hint`, `hint_app_sort_order`) to avoid formatting mismatches at runtime.
- Removed obsolete/duplicated Dutch entries so the locale file is aligned with the current base resources.

### Testing
- Ran an XML name-matching script to compare `values/strings.xml` against `app/src/main/res/values-nl/translations.xml` and verified all entries are present (160/160) with no missing or extra resource names.
- Verified format-placeholder counts for multi-argument strings and confirmed parity between base and Dutch translations.
- Ran `git diff --check` and file diff inspection to validate the patch shape and that the updated file parses as XML.
- Attempted `./gradlew :app:processDebugResources` to validate resource processing but the run failed due to no Android SDK configured in the environment (missing `ANDROID_HOME` / `local.properties`), so an actual Gradle resource build could not be completed here.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b03c8c59f4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

<string name="theme_elementary_res_panel_bfb_text">Applicaties</string>
<string name="toast_sending_crash_report">Crashrapport wordt verstuurd...</string>

<string name="profile_personal">Persoonlijk</string>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Route locale updates through Transifex

AGENTS.md explicitly says that values-* translations are managed externally on Transifex and must never be hand-edited; .tx/config confirms that this file is part of that sync. These local additions will diverge from the translation source and can be overwritten on the next Transifex pull, so submit the strings through that workflow instead of committing them directly.

Useful? React with 👍 / 👎.

<string name="profile_clone">Kloon</string>
<string name="profile_other">Profiel</string>
<string name="lens_profile_section">%1$s (%2$s)</string>
<string name="shortcut_label_distrohopper_settings">DistroHopper-instellingen</string>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Suggested change
<string name="shortcut_label_distrohopper_settings">DistroHopper-instellingen</string>
<string name="shortcut_label_distrohopper_settings">DistroHopper Instellingen</string>

<string name="menu_button_end">Aan het einde van de Launcher</string>
<string name="widget_picker_title">Widget toevoegen</string>
<string name="widget_no_room">Er is geen ruimte meer op het startscherm voor deze widget.</string>
<string name="option_dashsearch_focus_on_open">Zoeken starten wanneer de Dash wordt geopend</string>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Suggested change
<string name="option_dashsearch_focus_on_open">Zoeken starten wanneer de Dash wordt geopend</string>
<string name="option_dashsearch_focus_on_open">Zoeken bij openen van Dash</string>

<string name="widget_no_room">Er is geen ruimte meer op het startscherm voor deze widget.</string>
<string name="option_dashsearch_focus_on_open">Zoeken starten wanneer de Dash wordt geopend</string>
<string name="hint_dashsearch_focus_on_open">Focus het zoekvak en toon het toetsenbord wanneer de Dash wordt geopend.</string>
<string name="option_icon_pack">Pictogrampakket</string>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Let's just keep this as icon pack, same with the hint translation below

<string name="hint_icon_pack">Kies een pictogrampakket van derden dat op app-pictogrammen wordt toegepast.</string>
<string name="option_icon_pack_none">Geen</string>
<string name="option_icon_shape">Pictogramvorm</string>
<string name="hint_icon_shape">Geef adaptieve pictogrammen een consistente vorm met een masker.</string>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Is "adaptieve pictogrammen" the official android translation?

<string name="option_icon_pack_none">Geen</string>
<string name="option_icon_shape">Pictogramvorm</string>
<string name="hint_icon_shape">Geef adaptieve pictogrammen een consistente vorm met een masker.</string>
<string name="icon_shape_system">Standaardinstelling van het systeem</string>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Too long

just call it Standaard

<string name="gesture_setup_guide_title">De service inschakelen</string>
<string name="gesture_setup_guide_body">Zoek DistroHopper in de lijst met toegankelijkheidsinstellingen, schakel de service in en kom vervolgens hier terug.</string>
<string name="gesture_setup_cancel">Annuleren</string>
<string name="gesture_setup_proceed">Ik begrijp het, doorgaan</string>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Suggested change
<string name="gesture_setup_proceed">Ik begrijp het, doorgaan</string>
<string name="gesture_setup_proceed">Begrepen, doorgaan</string>

<string name="option_app_sort_order_recent">Meest recent gebruikt</string>
<string name="option_app_sort_order_most_used">Meest gebruikt</string>
<string name="option_app_sort_order_custom">Aangepast (sleep om te herschikken)</string>
<string-array name="app_sort_order_entries">

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

this doesnt seem like it belongs here, at all

<item>@string/option_app_sort_order_custom</item>
</string-array>
<string name="folder_full">Map is vol</string>
<string name="option_pin_per_desktop">Vastgemaakte apps per bureaublad</string>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

not accurate

<string name="theme_gnome_res_panel_bfb_text">Activiteiten</string>
<string name="title_activity_onboarding">Welkom</string>
<string name="onboarding_welcome_title">Welkom bij DistroHopper</string>
<string name="onboarding_welcome_body">Uw Android-startscherm, met de uitstraling en bediening van uw favoriete Linux-bureaublad.</string>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Linux-desktopomgeving

<string name="title_activity_onboarding">Welkom</string>
<string name="onboarding_welcome_title">Welkom bij DistroHopper</string>
<string name="onboarding_welcome_body">Uw Android-startscherm, met de uitstraling en bediening van uw favoriete Linux-bureaublad.</string>
<string name="onboarding_theme_title">Kies uw bureaubladomgeving</string>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

desktopomgeving

- Apply maintainer wording suggestions (shortcut label, dashsearch,
  gesture proceed, full restart hint)
- Keep "icon pack" untranslated in icon pack strings
- Shorten over-long values (icon_shape_system/font_system -> "Standaard",
  rounded square -> "Afgeronde hoeken")
- Use "derde partijen" for third parties in crash report hint
- Distinguish werkblad (workspace) from bureaublad; per-desktop pinning
  and side-swipe now use werkblad
- Use "desktopomgeving" for desktop environment in onboarding
- Rename unclear "Meldingsgebaren" -> "Gebaren voor meldingen"
- Drop translated font names (kept as-is from source)
- Remove string-array of @string references (belongs in default arrays.xml)
- Normalise indentation to 2 spaces to match the rest of the file

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01UoWHigDqjrL73msxckA91H

Copy link
Copy Markdown
Owner Author

Took this over and pushed a commit addressing the review comments.

Applied suggestions

  • shortcut_label_distrohopper_settings → "DistroHopper Instellingen"
  • option_dashsearch_focus_on_open → "Zoeken bij openen van Dash"
  • gesture_setup_proceed → "Begrepen, doorgaan"
  • hint_full_restart → "…om alles volledig opnieuw te initialiseren."
  • hint_font → shortened to "Kies het lettertype voor tekst." (the inline suggestion had a duplicated fragment, so I applied the intended clean version)

Other fixes

  • Icon pack strings (option_icon_pack, hint_icon_pack, hint_icons, pref_section_icon_packs) now keep "icon pack"/"icon packs" untranslated.
  • Over-long values shortened: icon_shape_system & font_system → "Standaard"; icon_shape_rounded_square → "Afgeronde hoeken" (was far too long for the picker).
  • "derden" → "derde partijen" in the crash-report hint.
  • Meldingsgebaren was an unclear compound → "Gebaren voor meldingen" (title/subtitle/toast).
  • Swipe up/down made consistent with the "Naar …" phrasing of the sides string.
  • workspace vs desktop: side-swipe hint and per-desktop pinning now use werkblad (workspace); onboarding DE strings use desktopomgeving (desktop environment).
  • Dropped the translated font names (OpenDyslexic/Ubuntu/Oxygen) — no point translating proper names, they fall back to source.
  • Removed the app_sort_order_entries string-array — it only contained @string/... references, so it belongs in the untranslatable default arrays.xml, not in a translation file.
  • Normalised the new block to 2-space indentation to match the rest of the file.

Your questions on Android's official terminology — I kept these as they match Android's Dutch strings:

  • "adaptieve pictogrammen" — adaptive icons ✔
  • "meldingenpaneel" — notification shade/tray ✔
  • "toegankelijkheidsservice" — accessibility service ✔

On the Codex "route through Transifex" P1: per Robin this NL edit is intentional, so leaving it as a direct commit.


Generated by Claude Code

<string name="hint_icon_shape">Geef adaptieve pictogrammen een consistente vorm met een masker.</string>
<string name="icon_shape_system">Standaard</string>
<string name="icon_shape_circle">Cirkel</string>
<string name="icon_shape_squircle">Afgerond vierkant</string>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Just keep it as squircle, this is far too long

<string name="icon_shape_system">Standaard</string>
<string name="icon_shape_circle">Cirkel</string>
<string name="icon_shape_squircle">Afgerond vierkant</string>
<string name="icon_shape_rounded_square">Afgeronde hoeken</string>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Afgerond

<string name="accessibility_service_notification_tray_description">Hiermee kan DistroHopper het meldingenpaneel openen wanneer u op het startscherm omlaag veegt. De service wordt alleen voor die actie gebruikt en leest geen scherminhoud.</string>
<string name="option_gesture_swipe_sides">Naar links of rechts vegen</string>
<string name="hint_gesture_swipe_sides">Wisselt tussen werkbladen.</string>
<string name="option_gesture_swipe_up">Naar boven vegen</string>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

once again; drop the "Naar" for all 3

<string name="title_activity_gesture_setup">Gebaren voor meldingen</string>
<string name="gesture_setup_explain_title">Gebaren voor meldingen instellen</string>
<string name="gesture_setup_explain_body">Android biedt gewone apps geen mogelijkheid om het meldingenpaneel te openen. Voor een startscherm als DistroHopper is een toegankelijkheidsservice het enige beschikbare mechanisme.\n\nDe toegankelijkheidsservice van DistroHopper moet uitsluitend daarom worden ingeschakeld. Deze opent alleen het meldingenpaneel. De service leest niet wat er op uw scherm staat, verzamelt geen gegevens en voert geen andere handelingen uit.</string>
<string name="gesture_setup_guide_title">De service inschakelen</string>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Suggested change
<string name="gesture_setup_guide_title">De service inschakelen</string>
<string name="gesture_setup_guide_title">Service inschakelen</string>

- icon_shape_squircle: keep "Squircle" (was too long)
- icon_shape_rounded_square -> "Afgerond"
- Drop "Naar" from all three swipe-direction labels for consistency
- gesture_setup_guide_title -> "Service inschakelen"

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01UoWHigDqjrL73msxckA91H
@RobinJ1995
RobinJ1995 merged commit 325e5d7 into master Jul 17, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants