fix: correct format specifiers in fa and el PO translations

Fixed three Python brace-format string errors in Sphinx fa and el locale .po files that cause msgfmt compilation failures. Each msgstr now uses the correct format field names matching its msgid.

CLOSEDsphinx-doc/sphinxPR #144522026-05-27
  • Issue #14347 reported that msgfmt compilation fails for fa and el locale .po files with format specifier errors.
  • fa/LC_MESSAGES/sphinx.po line 599: msgstr uses {permitted} instead of {default.__name__}
  • el/LC_MESSAGES/sphinx.po line 591: msgstr has unterminated format specifiers ({name]) and wrong bracket type ([current__name__})
  • el/LC_MESSAGES/sphinx.po line 598: msgstr uses {current__name__} and {default__name__} (underscore) instead of {current.__name__} and {default.__name__} (dot notation)
  • No overlapping PR found for #14347.
  • sphinx/locale/fa/LC_MESSAGES/sphinx.po: changed {permitted} to {default.__name__} in msgstr
  • sphinx/locale/el/LC_MESSAGES/sphinx.po: fixed unterminated {name] to {name} and [current__name__} to {current.__name__}
  • sphinx/locale/el/LC_MESSAGES/sphinx.po: fixed {current__name__} to {current.__name__} and {default__name__} to {default.__name__}
  • Verified each fixed msgstr parses to the same set of Python format fields as its msgid using string.Formatter
  • msgfmt not available on build machine - verified correctness through field name matching
  • sphinx/locale/el/LC_MESSAGES/sphinx.po
  • sphinx/locale/fa/LC_MESSAGES/sphinx.po
  • Maintainer question from m-aciek — m-aciek asked: 'shouldn't it be also fixed upstream, on the Transifex translations platform, where translations are sourced from?' — signals maintainer attention and a reasonable upstream-first question. Open
  • Response to m-aciek — Engaged with maintainer's upstream-first question, agreeing Transifex fix would be ideal while noting both approaches are complementary. Open
  • Approved by maintainer timhoffm — timhoffm approved the PR, indicating the fix is correct and ready to merge. Open
  • Triaged by maintainer jdillard — jdillard labeled PR #14452 with 'i18n', confirming the fix is categorized for the internationalization pipeline and actively being tracked by the maintainers. Open
  • timhoffm APPROVED PR — timhoffm approved the format specifier fixes on May 30. Open
  • PR closed as duplicate — jdillard closed the PR as a duplicate of #14289 (already fixed upstream on Transifex). Open
  • 2026-05-27T22:10:24Z — Read the Docs build completed successfully for PR #14452. Combined CI status is now all green (success). Open
  • 2026-05-29T14:27:17Z — Maintainer m-aciek left a comment on PR #14452 asking if the fix should also be applied upstream on Transifex (where translations are sourced). Open
  • 2026-05-30T03:35:37Z — Responded to m-aciek's question: agreed that fixing upstream on Transifex would be ideal, but suggested doing both — this PR corrects the files already in the repo while the upstream fix prevents the errors from being re-exported. Open
  • 2026-05-30T04:26:22Z — Maintainer timhoffm approved PR #14452. PR is ready for merge — all CI green and one maintainer approval received. Open
  • 2026-06-01T20:05:14Z — Maintainer jdillard labeled PR #14452 with 'i18n', signaling active triage and categorization after approval. Open
  • 2026-06-08
  • 2026-06-08 — Closed as duplicate of #14289 by jdillard. The PR had an APPROVED review from timhoffm but was deemed a duplicate of existing work.
  • Translation .po files with python-brace-format must have identical format field names in msgstr as msgid
  • The format specifier dots (current.__name__) are significant in Python brace format strings
  • Sphinx locale files are maintained in the main sphinx repo under sphinx/locale/
  • Translation errors in .po files block django-admin compilemessages for the entire Sphinx package
  • Closed — the underlying translations are maintained upstream on Transifex. No further action needed.

More entries