From f5d32f6032ea172d0f1076b1fa04c96c9205285b Mon Sep 17 00:00:00 2001 From: Jieiku Date: Tue, 26 Sep 2023 18:46:53 -0700 Subject: i18n translation system refactor --- templates/404.html | 5 ++++- templates/base.html | 26 +++++++++++++++++--------- templates/categories/list.html | 2 +- templates/index.html | 2 +- templates/macros/macros.html | 41 ++++++++++++++++++++++++++--------------- templates/page.html | 20 ++++++++++---------- templates/tags/list.html | 2 +- 7 files changed, 60 insertions(+), 38 deletions(-) (limited to 'templates') diff --git a/templates/404.html b/templates/404.html index 07f32b3..fee5607 100644 --- a/templates/404.html +++ b/templates/404.html @@ -26,7 +26,10 @@ {# Iterate through each language and display the localised 404 message #} {%- for lcode, language in config.languages -%} {%- if lcode != config.default_language -%} -

{{ trans(key="404_not_found", lang=lcode) }}. {% if config.build_search_index %}{{ trans(key="404_try_search", lang=lcode) }}{% endif %} {{ trans(key="404_go_home", lang=lcode) }}.

+ {%- set i18n_404 = load_data(path="i18n/" ~ lcode ~ '.toml', required=false) -%} + {%- if not i18n_404 -%}{%- set i18n_404 = load_data(path="themes/abridge/i18n/" ~ lcode ~ ".toml", required=false) -%}{%- endif %} + +

{{ macros::translate(key="404_not_found", default="404_not_found", i18n=i18n_404) }}{{ macros::translate(key="full_stop", default=".", i18n=i18n_404) }} {% if config.build_search_index %}{{ macros::translate(key="404_try_search", default="Try searching or", i18n=i18n_404) }}{% endif %} {{ macros::translate(key="404_go_home", default="go to homepage", i18n=i18n_404) }}{{ macros::translate(key="full_stop", default=".", i18n=i18n_404) }}

{%- endif -%} {%- endfor -%} diff --git a/templates/base.html b/templates/base.html index b1172a9..72a5204 100644 --- a/templates/base.html +++ b/templates/base.html @@ -1,5 +1,9 @@ {%- import 'macros/seo.html' as macros_seo %} {%- import "macros/macros.html" as macros %} +{# Load current language i18n data from .toml files in user's '/i18n' folder, use theme as fallback. #} +{%- set i18n = load_data(path="i18n/" ~ lang ~ '.toml', required=false) -%} +{%- if not i18n -%}{%- set i18n = load_data(path="themes/abridge/i18n/" ~ lang ~ ".toml", required=false) -%}{%- endif %} + {%- set uglyurls = config.extra.uglyurls | default(value=false) -%} {%- if config.extra.offline %}{% set uglyurls = true %}{% endif %} @@ -52,7 +56,7 @@ {%- if config.extra.menu %} {%- for i in config.extra.menu -%}
  • - {%- if lang != config.default_language %} {{ trans(key=i.name | safe, lang=lang) }} {% else %} {{ i.name | safe }} {% endif -%} + {%- if lang != config.default_language %} {{ macros::translate(key=i.name|safe, default=i.name|safe, i18n=i18n) }} {% else %} {{ i.name | safe }} {% endif -%}
  • {%- endfor -%} {%- endif -%} @@ -61,13 +65,17 @@
  • {{ inner.title }}
  • + {% else %} +
  • {{ inner.title }}
  • + {%- endif %} +{%- endmacro %} + {%- macro title_post(page, config) %} {%- set uglyurls = config.extra.uglyurls | default(value=false) -%} @@ -17,6 +30,10 @@ {%- macro meta_post(page, config) %} +{# Load current language i18n data from .toml files in user's '/i18n' folder, use theme as fallback. #} +{%- set i18n = load_data(path="i18n/" ~ lang ~ '.toml', required=false) -%} +{%- if not i18n -%}{%- set i18n = load_data(path="themes/abridge/i18n/" ~ lang ~ ".toml", required=false) -%}{%- endif %} + {%- set uglyurls = config.extra.uglyurls | default(value=false) -%} {%- if config.extra.offline %}{% set uglyurls = true %}{% endif %} @@ -55,7 +72,7 @@ {%- if config.extra.meta_post.date %} {%- if config.extra.icon_date %} {% endif %} {%- if config.extra.date_locale %} {%- if lang != config.default_language -%} - {%- set lang_locale = trans(key="date_locale" | safe, lang=lang) -%} + {%- set lang_locale = macros::translate(key='date_locale', default='en_US', i18n=i18n) -%} {%- else -%} {%- set lang_locale = config.extra.date_locale -%} {%- endif -%} @@ -67,10 +84,10 @@ {#- Updated #} {%- if config.extra.meta_post.updated and page.updated %} {%- if config.extra.icon_date %} {% endif -%} - {%- if lang != config.default_language %} {{ trans(key="Updated" | safe, lang=lang) }}{% else %} Updated{% endif %}: + {{ macros::translate(key="Updated", default="Updated", i18n=i18n) }}: {%- if config.extra.date_locale %} {%- if lang != config.default_language -%} - {%- set lang_locale = trans(key="date_locale" | safe, lang=lang) -%} + {%- set lang_locale = macros::translate(key='date_locale', default='en_US', i18n=i18n) -%} {%- else -%} {%- set lang_locale = config.extra.date_locale -%} {%- endif %} {{ page.updated | date(format="%B %d, %Y", locale=lang_locale) }} @@ -97,6 +114,9 @@ {%- macro meta_index(page, config) %} +{# Load current language i18n data from .toml files in user's '/i18n' folder, use theme as fallback. #} +{%- set i18n = load_data(path="i18n/" ~ lang ~ '.toml', required=false) -%} +{%- if not i18n -%}{%- set i18n = load_data(path="themes/abridge/i18n/" ~ lang ~ ".toml", required=false) -%}{%- endif %} {%- set uglyurls = config.extra.uglyurls | default(value=false) -%} {%- if config.extra.offline %}{% set uglyurls = true %}{% endif %} @@ -135,7 +155,7 @@ {%- if config.extra.meta_index.date %} {%- if config.extra.icon_date %} {% endif %} {%- if config.extra.date_locale %} {%- if lang != config.default_language -%} - {%- set lang_locale = trans(key="date_locale" | safe, lang=lang) -%} + {%- set lang_locale = macros::translate(key='date_locale', default='en_US', i18n=i18n) -%} {%- else -%} {%- set lang_locale = config.extra.date_locale -%} {%- endif -%} @@ -147,10 +167,10 @@ {#- Updated #} {%- if config.extra.meta_index.updated and page.updated %} {%- if config.extra.icon_date %} {% endif -%} - {%- if lang != config.default_language %} {{ trans(key="Updated" | safe, lang=lang) }}{% else %} Updated{% endif %}: + {{ macros::translate(key="Updated", default="Updated", i18n=i18n) }}: {%- if config.extra.date_locale %} {%- if lang != config.default_language -%} - {%- set lang_locale = trans(key="date_locale" | safe, lang=lang) -%} + {%- set lang_locale = macros::translate(key='date_locale', default='en_US', i18n=i18n) -%} {%- else -%} {%- set lang_locale = config.extra.date_locale -%} {%- endif %} {{ page.updated | date(format="%B %d, %Y", locale=lang_locale) }} @@ -297,12 +317,3 @@ {%- endif %} {%- endmacro %} - -{%- macro series_link(inner, page) %} - {%- set uglyurls = config.extra.uglyurls | default(value=false) -%} - {%- if inner.content == page.content %} -
  • {{ inner.title }}
  • - {% else %} -
  • {{ inner.title }}
  • - {%- endif %} -{%- endmacro %} \ No newline at end of file diff --git a/templates/page.html b/templates/page.html index d7abe0b..f5ca311 100644 --- a/templates/page.html +++ b/templates/page.html @@ -47,13 +47,13 @@ {# In Page Series Navigation #} {%- if config.extra.series | default(value=true) %} - {%- if page.extra.section %} + {%- if page.extra.series %} - {%- set tag = get_taxonomy_term(kind="tags", term=page.extra.section, lang=lang) %} + {%- set tag = get_taxonomy_term(kind="tags", term=page.extra.series, lang=lang) %} {%- set page_num = tag.page_count | as_str %} {%- if lang != config.default_language %} - {%- set parts_string = trans(key="Series_parts", lang=lang) | replace(from="$NUMBER_OF_PARTS", to=page_num) %} + {%- set parts_string = macros::translate(key='Series_parts', default='Series', i18n=i18n) | replace(from="$NUMBER_OF_PARTS", to=page_num) %} {% else %} {%- set parts_string = config.extra.Series_parts | default(value="Series") | replace(from="$NUMBER_OF_PARTS", to=page_num) %} {% endif -%} @@ -102,15 +102,15 @@ {%- if toc %}
    - {%- if page.extra.section %} - {%- set num_extra_pages = config.extra.section_items | default(value=5) %} + {%- if page.extra.series %} + {%- set num_extra_pages = config.extra.series_items | default(value=9) %}
    {{ parts_string }}
      {%- if tag.page_count > num_extra_pages and num_extra_pages > 0 %} - {%- set sorted_array = tag.pages | sort(attribute="date") %} + {%- set sorted_array = tag.pages | sort(attribute="date") %} {%- set num_pages = tag.page_count %} - + {# Shows the first page #} {{ macros::series_link(inner=sorted_array.0, page=page) }} @@ -132,7 +132,7 @@ {%- else %} {%- set num = 1 %} {%- endif %} - + {# Shows two pages before current page #} {%- for inner in sorted_array | slice(start=num, end=current_section_index) %}
    1. {{ inner.title }}
    2. @@ -164,7 +164,7 @@ {%- endfor %}
    {%- endif %} - + {%- set last = num_pages - 1%} {{ macros::series_link(inner=sorted_array[last], page=page) }} @@ -179,7 +179,7 @@ {%- endif %}
    - {%- if lang != config.default_language %}{{ trans(key="Index" | safe, lang=lang) }}{% else %}Index{% endif %} + {{ macros::translate(key="Index", default="Index", i18n=i18n) }} {%- for h in toc %}
    {{ h.title }} diff --git a/templates/tags/list.html b/templates/tags/list.html index 4f53a58..8ed7b5c 100644 --- a/templates/tags/list.html +++ b/templates/tags/list.html @@ -20,7 +20,7 @@ {%- block content %}
    -

    {{ terms | length }} {%- if lang != config.default_language %} {{ trans(key="Tags" | safe, lang=lang) }} {% else %} Tags {% endif %}

    +

    {{ terms | length }} {{ macros::translate(key="Tags", default="Tags", i18n=i18n) }}

    {% for term in terms %} #{{ term.name }}{{ term.pages | length }} {% endfor %}

    {%- for term in terms %} -- cgit v1.3.1