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.
The `initialize-theme.js` script takes care of the following:
1. If there is a stored theme value in the localStorage, set the theme
based on that value.
2. If there is no stored theme value, check the user's system
preference (dark or light) and set the theme accordingly.
The new `main.js` takes care of the actual theme switching and listening
to system preference changes (if the user has not manually set a theme).
Now the icons are stored in CSS, and are set according to the current
theme. This allows for having different icons that dynamically switch.
Additionally, wraps social and navigation elements in ul/li.
Fixes#76