[RFC] Internationalization system rework

I kind of like using the given name from the taxonomies so we don’t mix languages. We error if the taxonomy is not found in config.toml anyway so someone putting auteure when the definition has auteurice will fail.

I’ve started a new branch based on the ideas of @BertalanD at [WIP] i18n rework by Keats · Pull Request #1391 · getzola/zola · GitHub

For now it includes the language-aware config variables in the templates and per language configuration of a few things.

It differs from the original PR in a couple of ways:

  • mixing extra and translations feels a bit weird to me: some extra usage would be shared across all languages such as setting some info for a menu or whatever
  • translations: do we want to share that as well or should it be a per-language dict? I’m leaning towards per language but want to double check with people.
  • validation of language code: I’m currently doing it but I’m not sure we actually need it. We can let people use whatever and if/when we use fluent add an escape hatch like language_code in the language options of whatever if we really need it

Any very common issues that people are facing with the current system?

1 Like

I came back to review this project seeing that #1391 had gotten merged. As commented here on #1148 I’m disappointed to see it doesn’t include any of the Fluent contributions, doesn’t have localized template functions as in #1040, and while there is significant progress on this front multilingual features still seem a bit second class.

Are you interested in i18n/l10n concerns to be tackled head on? Is making the translations Fluenet based something you’re willing to see or is that going to keep getting blocked?

As mentioned in the header of i18n rework start by Keats · Pull Request #1391 · getzola/zola · GitHub it is just the start.
I am trying to avoid having a huge several thousand lines of changes PR sitting in another branch conflicting with potentially a lot of other PRs.

The next step is looking at the Tera functions and Fluent.

For tracking, I’ve opened a tracking issue for requesting Fluent functions in Tera.