🌐 feat(i18n): overhaul translation system & add languages (#145)
Revamp the existing translation system, simplifying management and adding several new languages. The new system reads from TOML files in the `/i18n` directory and improves template structures. It also enhances customisation options and robustness by providing fallbacks and modularity. - Implement a new, streamlined translation macro. - Load translations from `/i18n` TOML files. - Remove redundant configuration requirements. - Refactor templates to align with new i18n system. - Add support for Hindi, Japanese, Russian, Portuguese, Chinese, Italian, German, Ukranian, Korean, and French languages. - Credit Thomas Weitzel (@thomasweitzel) for inspiration.
This commit is contained in:
21
README.md
21
README.md
@@ -14,7 +14,8 @@ tabi has a perfect score on Google's Lighthouse audit:
|
||||
|
||||
## Features
|
||||
|
||||
- [X] Multi-language support.
|
||||
- [X] [Comprehensive multi-language support](https://welpo.github.io/tabi/blog/faq-languages/#how-does-tabi-handle-multilingual-support). Add as many languages as you wish.
|
||||
- [X] [Set any language as default](https://welpo.github.io/tabi/blog/faq-languages/#how-do-i-set-a-default-language-for-my-site). Set your base site to Chinese, Spanish, French, Hindi… or any [other supported language](/i18n). The theme's interface will be translated accordingly.
|
||||
- [X] Dark and light themes. Defaults to the OS setting, with a switcher in the navigation bar.
|
||||
- [X] Support for [comments using giscus, utterances, Hyvor Talk, or Isso](https://welpo.github.io/tabi/blog/comments/).
|
||||
- [X] Perfect Lighthouse score (Performance, Accessibility, Best Practices and SEO).
|
||||
@@ -106,13 +107,13 @@ header = {title = "Hello! I'm tabi~", img = "img/main.webp" }
|
||||
|
||||
The content outside the front matter will be rendered between the header title and the posts listing. In the screenshot above, it's the text that reads "tabi is a fast, lightweight, and modern Zola theme…".
|
||||
|
||||
6. If you want a multilingual site, you will need to set up each language. In `config.toml`:
|
||||
6. If you want a multilingual site, you will need to set up each language. In `config.toml`, set the title and taxonomies for each language, like:
|
||||
|
||||
- set the translations for a few strings;
|
||||
- set the title and taxonomies for each language;
|
||||
- add the `language_name.{code}` in `[extra]`. This is the text shown in the language switcher.
|
||||
|
||||
See [these lines in the provided `config.toml`](https://github.com/welpo/tabi/blob/main/config.toml#L22-L134) for an example.
|
||||
```toml
|
||||
[languages.es]
|
||||
title = "~/tabi"
|
||||
taxonomies = [{name = "tags", feed = true}]
|
||||
```
|
||||
|
||||
You will need an `_index.{language_code}.md` per language for each section (e.g. /blog or /projects) that you want to enable in that language.
|
||||
|
||||
@@ -120,6 +121,8 @@ The same is true for individual posts, which should have the exact same name as
|
||||
|
||||
This configuration allows the language switcher to take the user to the translation of the current URL. If a translation doesn't exist, the 404 page will be displayed, with an explanation in each language set in the config.
|
||||
|
||||
To learn more about multilingual support, see the [Frequently Asked Questions](https://welpo.github.io/tabi/blog/faq-languages/).
|
||||
|
||||
## Inspiration
|
||||
|
||||
This theme was inspired by:
|
||||
@@ -130,7 +133,9 @@ This theme was inspired by:
|
||||
|
||||
## Contributing
|
||||
|
||||
Please do! Take a look at the [Contributing Guidelines](/CONTRIBUTING.md) to learn more.
|
||||
Please do! We appreciate bug reports, improvements to translations or documentation (however minor), feature requests…
|
||||
|
||||
Take a look at the [Contributing Guidelines](/CONTRIBUTING.md) to learn more.
|
||||
|
||||
## License
|
||||
|
||||
|
Reference in New Issue
Block a user