PLIP Submitted: Plone UI Text Style Guide — Feedback Welcome

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/.po structure

  • 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.

3 Likes