- 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)contentcsshtml
scriptsrecipespackagedhtmlcss
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)contenten-UScsshtml
frcsshtml
scriptsrecipespackageden-UScsshtml
frcsshtml
- 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/frcould 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-experimentscriptsrecipes- submodule imported for en-US
- submodule imported for fr
-
Root of Git submodule for
en-UScsshtml
-
Root of Git submodule for
frcsshtml
- 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)contentcssen-USfr
htmlen-USfr
scriptsrecipespackagedcssen-USfr
htmlen-USfr
- 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.
mastergit branchstumptown-experimentcontent(English content)csshtml
scriptsrecipespackaged(English built content)csshtml
frgit branchstumptown-experimentcontent(French content)csshtml
scriptsrecipespackaged(French built content)csshtml
- 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?