Summary
Add first-class support for offering a "simple language" variant of the same
base language alongside the standard variant — primarily German Leichte
Sprache / Einfache Sprache, but the same shape applies to any
accessibility-driven simplified register.
Background
German public-sector and many private sites are required or strongly
encouraged to provide content in Leichte Sprache (Easy Language) and/or
Einfache Sprache (Plain Language) for accessibility reasons (BITV 2.0,
BFSG / EU Accessibility Act). In a WordPress multisite this is naturally
modelled as an extra blog whose content mirrors the standard German blog at
a simpler reading level.
The blocker today: both blogs use the WordPress locale de_DE. MSLS keys
blogs and translation links by locale string, so two blogs sharing de_DE
cannot both participate in the same translation group — only the first match
wins.
Relation to #112
This is the same underlying limitation reported in #112 (multiple Canadian
provinces all using en_CA). #623 is the German accessibility instance of
that pattern. Whatever mechanism resolves #112 — e.g. a per-blog
language-variant suffix, a blog-id-based key, or a configurable
"discriminator" alongside the locale — should also unblock this case.
Listing them as separate tickets so the accessibility use case stays
discoverable, but they should be solved together.
Desired behaviour
- Two (or more) blogs in the same multisite can declare locale
de_DE
while being distinguishable to MSLS — e.g. via an additional
"variant"/"flavour" setting per blog (standard, leichte-sprache,
einfache-sprache, …).
- Translation links connect a post on the standard-German blog to its
counterpart on the Leichte-Sprache blog (and vice versa) without
collisions.
- The language switcher /
hreflang output represents the variant
sensibly. There is no IETF BCP 47 tag for Leichte Sprache; reasonable
options are a private-use subtag (de-DE-x-easy) or a documented
non-standard label — to be decided as part of the implementation.
Notes for implementation
Relevant entry points (no change proposed here, just orientation):
MslsBlogCollection::get_blog_language() and get_blog() /
get_blog_id() in includes/MslsBlogCollection.php — currently assume
one blog per locale.
- Translation link storage as
locale => post_id in
includes/MslsLanguageArray.php; admin field naming
(msls_input_<LOCALE>) parsed in includes/MslsMain.php.
- Existing filters that may help:
msls_blog_collection_get_blog,
msls_blog_collection_get_blog_id, msls_input_select_name.
Out of scope
- Generating or auto-translating simple-language content.
- Editorial workflow for keeping the simple-language version in sync.
Summary
Add first-class support for offering a "simple language" variant of the same
base language alongside the standard variant — primarily German Leichte
Sprache / Einfache Sprache, but the same shape applies to any
accessibility-driven simplified register.
Background
German public-sector and many private sites are required or strongly
encouraged to provide content in Leichte Sprache (Easy Language) and/or
Einfache Sprache (Plain Language) for accessibility reasons (BITV 2.0,
BFSG / EU Accessibility Act). In a WordPress multisite this is naturally
modelled as an extra blog whose content mirrors the standard German blog at
a simpler reading level.
The blocker today: both blogs use the WordPress locale
de_DE. MSLS keysblogs and translation links by locale string, so two blogs sharing
de_DEcannot both participate in the same translation group — only the first match
wins.
Relation to #112
This is the same underlying limitation reported in #112 (multiple Canadian
provinces all using
en_CA). #623 is the German accessibility instance ofthat pattern. Whatever mechanism resolves #112 — e.g. a per-blog
language-variant suffix, a blog-id-based key, or a configurable
"discriminator" alongside the locale — should also unblock this case.
Listing them as separate tickets so the accessibility use case stays
discoverable, but they should be solved together.
Desired behaviour
de_DEwhile being distinguishable to MSLS — e.g. via an additional
"variant"/"flavour" setting per blog (
standard,leichte-sprache,einfache-sprache, …).counterpart on the Leichte-Sprache blog (and vice versa) without
collisions.
hreflangoutput represents the variantsensibly. There is no IETF BCP 47 tag for Leichte Sprache; reasonable
options are a private-use subtag (
de-DE-x-easy) or a documentednon-standard label — to be decided as part of the implementation.
Notes for implementation
Relevant entry points (no change proposed here, just orientation):
MslsBlogCollection::get_blog_language()andget_blog()/get_blog_id()inincludes/MslsBlogCollection.php— currently assumeone blog per locale.
locale => post_idinincludes/MslsLanguageArray.php; admin field naming(
msls_input_<LOCALE>) parsed inincludes/MslsMain.php.msls_blog_collection_get_blog,msls_blog_collection_get_blog_id,msls_input_select_name.Out of scope