I've submitted a PLIP to Products.CMFPlone proposing the adoption of the first formal style guide for UI text authoring in the Plone ecosystem: the Plone UI Text Style Guide.
What is this?
After 20+ years, Plone has never had documented standards for how developers should write user-facing strings. This guide fills that gap by establishing:
-
Canonical source text rules — capitalization, punctuation, terminology, placeholder syntax
-
File format standards — the role of
#. Default:comments,.pot/.postructure -
Architectural documentation — how Plone's gettext conventions actually work
-
Governance — ownership and maintenance
The core principle
All user-facing strings should be translatable. This means UI text quality and translation-readiness are not separate concerns — they are the same concern. The rules that make text clear and consistent are identical to the rules that make text translatable.
This is not a niche "i18n specialist" document. It's a standard for everyone who writes UI text in Plone.
Applies to both Plone and Volto
While the PLIP is submitted to Products.CMFPlone, the style guide covers the entire ecosystem:
-
Plone backend (Python, ZPT)
-
Volto frontend (React)
-
Nick CMS
-
Add-ons for all platforms
Rob Gietema has kindly agreed to second the PLIP.
What this does NOT do
-
No runtime changes
-
No new dependencies
-
No breaking changes
-
No mandatory retrofitting of legacy code
This is documentation and standardization of existing conventions — not architectural change.
Feedback welcome
The draft style guide is comprehensive (~3,300 lines) covering everything from basic capitalization rules to the architectural reasons behind Plone's #. Default: convention.
I'd appreciate feedback on:
-
Are the rules practical and enforceable?
-
Is anything missing or unclear?
-
Does the phased adoption approach make sense?
The full style guide draft is available in the PLIP. Looking forward to your thoughts.