- Objectives: Draft ideas for potential "locations" of localized content under Stumptown
- Participants: Will / Julien
The current structure of content on Stumptown is:
stumptown-experiment
(root)content
css
html
scripts
recipes
packaged
html
css
I'll use fr
as an example for the following structures but it is only for illustration purpose. Any locale (TRL / vertical / etc.) could be substituted.
The hypotheses are sorted by "probability"/"usefulness".
TL;DR: Most probably locales should be stored under content
with folders for en-US
, fr
,… (Hypothesis 1) Or locales as git submodule (Hypothesis 2).
Have a directory for each locale under content
.
stumptown-experiment
(root)content
en-US
css
html
fr
css
html
scripts
recipes
packaged
en-US
css
html
fr
css
html
- Quite easy to build a "health report"/to do stats for a given locale
- Clear structure, easy to understand
- Easy to build "localization doc status" pages for maintenance (answering the question "What has changed in English that needs update in French)
- Less friction for migrating existing content with links (since the structure approx. matches Kuma structure)
- Possible to have mass edits across docs for all locales
- Easy to adapt the build process to create the JSON files under
packaged
- Duplication of some files depending on the content of the YAML file. This could be mitigated by some linting step.
- Governance: giving access to a trusted "peer" for a locale gives access to the whole repo. Technically, any person which could merge/commit under
content/fr
could also merge/commit underscripts
.
The "logic" part of content is isolated under a main git module and each locale (incl. en-US) is stored under another repo which is a git submodule.
stumptown
- Git repostumptown-content-en-US
- Git submodulestumptown-content-fr
- Git submodule
-
stumptown-experiment
scripts
recipes
- submodule imported for en-US
- submodule imported for fr
-
Root of Git submodule for
en-US
css
html
-
Root of Git submodule for
fr
css
html
- Governance issue of first hypothesis is solved. Each locale community is responsible for its own submodule.
- Each locale has the same "level", English is not a "privileged" locale. Making it easier for the maintenance/editing tooling to chose another locale than en-US for reference content (though not really useful today)
- Quite easy to build a "health report"/to do stats for a given locale
- Less friction for migrating existing content with links (since the structure approx. matches Kuma structure)
- The build process will be locale-agnostic
- One can add specific CI tooling (ex. locale specific spellchecking) for each locale.
- Maintenance tooling ("l10n doc status pages") needs to rely on two repos. One needs to gather commit info somewhere.
- Makes it harder for mass edits across all of the locales. One "en-US" peer must be aware some changes must be applied globally.
- Linting tooling/CI may be more complex
Have a directory for each locale under each section.
stumptown-experiment
(root)content
css
en-US
fr
html
en-US
fr
scripts
recipes
packaged
css
en-US
fr
html
en-US
fr
- Easier to reduce the scope of maintenance to a given section.
- More difficult to get the state of a whole locale
Each locale is managed under a different git branch, en-US content being on the master branch.
master
git branchstumptown-experiment
content
(English content)css
html
scripts
recipes
packaged
(English built content)css
html
fr
git branchstumptown-experiment
content
(French content)css
html
scripts
recipes
packaged
(French built content)css
html
- Sounds "interesting" when drawing histories of revisions in a graphical way
- How to distinguish "locale" branches and development branches
- How to mass edit across locales.
- Apart from using a git concept, does it help with anything or just add more complexity?