“Export” and “Schedule” are each one string for a heading and a button, so many languages show a verb in the Settings menu #1107

Open
opened 2026-10-31 02:37:37 +00:00 by tiagoagueda · 0 comments
Owner

Found while filling and reviewing the translations of 2026-10-30. Two strings each serve uses that need different words in many languages, and a translator can give only one.

"Export"

One msgid serves both a place and an action:

  • A place (a noun): the Settings section and its menu label (accounts/settings_views.py:274, core/settings_sections.py:96, templates/settings/export.html), and the section title on jobs/company_places.html.
  • An action (a verb): the buttons in cotton/transfer_group.html (twice) and jobs/company_detail.html (twice).

Because the button is the commoner use, several reviewed catalogues give the verb, so the Settings menu reads like a command: be «Экспартаваць», bs and sr "Izvezi"/«Извези», sq "Eksporto", fi "Vie", lt "Eksportuoti", hy «Արտահանել», az "İxrac et". Strings that quote the path ("Settings → Export") had to follow the verb to match the real label.

"Schedule"

One msgid serves:

  • A button / link (a verb): "Schedule" an interview (applications/application_detail.html:267, applications/interview_form.html:69).
  • A section heading (a noun): the backup schedule (server/backups.html:217).

Bengali gave নির্ধারণ করুন ("set it"), which fits the link but reads oddly as a heading. Most languages have the same split (fr Planifier / Planification, de Planen / Zeitplan).

What to do

  • Give each use its own context, pgettext("settings section", "Export") vs pgettext("button", "Export"), {% translate "Schedule" context "backups section" %} and so on, or reword the noun uses ("Export your data", "Backup schedule").
  • Carry the current translation over to each new entry as a draft (docs/TRANSLATING.md), so no language goes empty. Weblate then shows translators where the noun differs.
  • While at it, look for other bare one-word msgids used as both heading and button. #705 is a related wording question about one word used across the interface.
Found while filling and reviewing the translations of 2026-10-30. Two strings each serve uses that need different words in many languages, and a translator can give only one. ## "Export" One msgid serves both a place and an action: - **A place (a noun):** the Settings section and its menu label (`accounts/settings_views.py:274`, `core/settings_sections.py:96`, `templates/settings/export.html`), and the section title on `jobs/company_places.html`. - **An action (a verb):** the buttons in `cotton/transfer_group.html` (twice) and `jobs/company_detail.html` (twice). Because the button is the commoner use, several reviewed catalogues give the verb, so the Settings menu reads like a command: be «Экспартаваць», bs and sr "Izvezi"/«Извези», sq "Eksporto", fi "Vie", lt "Eksportuoti", hy «Արտահանել», az "İxrac et". Strings that quote the path ("Settings → Export") had to follow the verb to match the real label. ## "Schedule" One msgid serves: - **A button / link (a verb):** "Schedule" an interview (`applications/application_detail.html:267`, `applications/interview_form.html:69`). - **A section heading (a noun):** the backup schedule (`server/backups.html:217`). Bengali gave নির্ধারণ করুন ("set it"), which fits the link but reads oddly as a heading. Most languages have the same split (fr Planifier / Planification, de Planen / Zeitplan). ## What to do - Give each use its own context, `pgettext("settings section", "Export")` vs `pgettext("button", "Export")`, `{% translate "Schedule" context "backups section" %}` and so on, or reword the noun uses ("Export your data", "Backup schedule"). - Carry the current translation over to each new entry as a draft (docs/TRANSLATING.md), so no language goes empty. Weblate then shows translators where the noun differs. - While at it, look for other bare one-word msgids used as both heading and button. #705 is a related wording question about one word used across the interface.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo#1107
No description provided.