Óscar 32a2d5094b
🌐 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.
2023-09-12 18:58:58 +02:00

42 lines
1.2 KiB
HTML

{%- macro set_title(language_strings="") -%}
{# Setup. #}
{%- set prefix = config.title | safe -%}
{%- set custom_separator = config.extra.separator | default(value="•") -%}
{%- set separator = " " ~ custom_separator ~ " " -%}
{# Get the base path for the current language. #}
{%- if lang != config.default_language %}
{%- set base_path = "/" ~ lang ~ "/" %}
{%- else -%}
{%- set base_path = "/" %}
{%- endif %}
{%- if current_path and current_path == base_path -%}
{%- set suffix = "" -%}
{%- set separator = "" -%}
{% elif title %}
{%- set suffix = title -%}
{% elif section.title -%}
{%- set suffix = section.title -%}
{% elif page.title %}
{%- set suffix = page.title -%}
{% elif term.name %}
{# Individual tags. #}
{%- set suffix = term.name -%}
{% elif taxonomy.name %}
{# List of tags. #}
{%- set suffix = macros_translate::translate(key=taxonomy.name, language_strings=language_strings) | capitalize -%}
{% else %}
{%- set suffix = "404" %}
{%- endif -%}
{# Return the final concatenated string. #}
{%- if config.extra.invert_title_order -%}
{{- suffix ~ separator ~ prefix -}}
{%- else -%}
{{- prefix ~ separator ~ suffix -}}
{%- endif -%}
{%- endmacro set_title -%}