
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.
42 lines
1.2 KiB
HTML
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 -%}
|