aboutsummaryrefslogtreecommitdiff
path: root/templates
diff options
context:
space:
mode:
Diffstat (limited to 'templates')
-rw-r--r--templates/404.html5
-rw-r--r--templates/base.html26
-rw-r--r--templates/categories/list.html2
-rw-r--r--templates/index.html2
-rw-r--r--templates/macros/macros.html41
-rw-r--r--templates/page.html20
-rw-r--r--templates/tags/list.html2
7 files changed, 60 insertions, 38 deletions
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 -%}
- <p>{{ trans(key="404_not_found", lang=lcode) }}. {% if config.build_search_index %}{{ trans(key="404_try_search", lang=lcode) }}{% endif %} <a href="{{ config.base_url }}/{{ lcode }}/{%- if uglyurls %}index.html{%- endif %}">{{ trans(key="404_go_home", lang=lcode) }}</a>.</p>
+ {%- 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 %}
+
+ <p>{{ 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 %} <a href="{{ config.base_url }}/{{ lcode }}/{%- if uglyurls %}index.html{%- endif %}">{{ macros::translate(key="404_go_home", default="go to homepage", i18n=i18n_404) }}</a>{{ macros::translate(key="full_stop", default=".", i18n=i18n_404) }}</p>
{%- endif -%}
{%- endfor -%}
</div>
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 %}
<!DOCTYPE html>
@@ -52,7 +56,7 @@
{%- if config.extra.menu %}
{%- for i in config.extra.menu -%}
<li><a{%- if i.size %} class="{{ i.size }}"{% endif %} href="{%- if i.url is matching("^http[s]?://") %}{{ i.url }}{%- else -%}{{ get_url(path=i.url, lang=lang, trailing_slash=i.slash) }}{%- if i.slash and uglyurls %}index.html{%- endif %}{%- endif %}"{% if i.blank %} target="_blank"{% endif %}>
- {%- 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 -%}
</a></li>
{%- endfor -%}
{%- endif -%}
@@ -61,13 +65,17 @@
<li><div class="dropdown"><i class="svgs world" type="reset"></i>
{%- if current_url %}
<div class="dropdown-content">
- <span>{%- if lang != config.default_language %}{{ trans(key="flag" | safe, lang=lang) }}{% else %}{{ config.extra.flag.en }}{% endif %}</span>
- {%- for lcode,flag in config.extra.flag -%}
+ <span>{{ macros::translate(key="language_name", default="lang_name", i18n=i18n) }}</span>
+ {%- for lcode,language in config.languages -%}
+ {%- set i18n_menu = load_data(path="i18n/" ~ lcode ~ '.toml', required=false) -%}
+ {%- if not i18n_menu -%}{%- set i18n_menu = load_data(path="themes/abridge/i18n/" ~ lcode ~ ".toml", required=false) -%}{%- endif %}
{%- if lang != lcode -%}
{%- if lcode == config.default_language -%}
- <a href="{{ current_url | replace(from=current_path | truncate(length=4, end=""), to="/") | safe }}{%- if uglyurls %}index.html{%- endif %}">{{ flag }}</a>
+ <a href="{{ current_url | replace(from='/' ~ lang ~ '/', to = '/') | safe }}{%- if uglyurls %}index.html{%- endif %}">{{ macros::translate(key="language_name", default="language_name", i18n=i18n_menu) }}</a>
+ {%- elif lang == config.default_language -%}
+ <a href="{{ current_url | replace(from=config.base_url, to=config.base_url ~ "/" ~ lcode) | safe }}{%- if uglyurls %}index.html{%- endif %}">{{ macros::translate(key="language_name", default="language_name", i18n=i18n_menu) }}</a>
{%- else -%}
- <a href="{{ current_url | replace(from=config.base_url, to=config.base_url ~ "/" ~ lcode) | safe }}{%- if uglyurls %}index.html{%- endif %}">{{ flag }}</a>
+ <a href="{{ current_url | replace(from='/' ~ lang ~ '/', to = '/' ~ lcode ~ '/') | safe }}{%- if uglyurls %}index.html{%- endif %}">{{ macros::translate(key="language_name", default="language_name", i18n=i18n_menu) }}</a>
{%- endif -%}
{%- endif -%}
{%- endfor -%}
@@ -90,7 +98,7 @@
<div>
<form autocomplete=off class="js" name="goSearch" id="searchbox">
<div class="searchd">
- <input id="searchinput" type="text" placeholder="{%- if lang != config.default_language %}{{ trans(key="Search" | safe, lang=lang) }}{% else %}Search{% endif %}" title="Search"{% if config.extra.search_library %}{% if config.extra.search_library == "stork" %} data-stork="stork" {% endif %}{% endif %} />
+ <input id="searchinput" type="text" placeholder="{{ macros::translate(key="Search", default="Search", i18n=i18n) }}" title="Search"{% if config.extra.search_library %}{% if config.extra.search_library == "stork" %} data-stork="stork" {% endif %}{% endif %} />
<button type="submit" title="Search" class="{%- if icon_search -%}{{ icon_search }}{%- else -%}si{%- endif -%}">{%- if not icon_search -%}&#8981;{%- endif -%}</button>
</div>
<div class="results"><div id="suggestions"{% if config.extra.search_library %}{% if config.extra.search_library == "stork" %} data-stork="stork-output" {% endif %}{% endif %}></div></div>
@@ -130,7 +138,7 @@
{%- if config.extra.copyright_override -%}
{%- if lang != config.default_language %}
- {%- set copyright_string = trans(key="copyright_override", lang=lang) | replace(from="$CURRENT_YEAR", to=current_year) | replace(from="$SITE_TITLE", to=config.title) %}
+ {%- set copyright_string = macros::translate(key='copyright_override', default='© $CURRENT_YEAR $SITE_TITLE', i18n=i18n) | replace(from="$CURRENT_YEAR", to=current_year) | replace(from="$SITE_TITLE", to=config.title) %}
{% else %}
{%- set copyright_string = config.extra.copyright_override | replace(from="$CURRENT_YEAR", to=current_year) | replace(from="$SITE_TITLE", to=config.title) %}
{% endif -%}
@@ -149,7 +157,7 @@
{%- else %}
{%- set furl=get_url(path=i.url, trailing_slash=i.slash) %}
{%- endif %}
- <a{%- if config.extra.footer_size %} class="{{ config.extra.footer_size }}"{% endif %} href="{{ furl | safe }}{%- if i.slash and uglyurls %}index.html{%- endif %}"{% if i.blank %} target="_blank"{% endif %}>{% if lang != config.default_language %} {{ trans(key=i.name | safe, lang=lang) }} {% else %} {{ i.name | safe }} {% endif %}</a>
+ <a{%- if config.extra.footer_size %} class="{{ config.extra.footer_size }}"{% endif %} href="{{ furl | safe }}{%- if i.slash and uglyurls %}index.html{%- endif %}"{% if i.blank %} target="_blank"{% endif %}>{% if lang != config.default_language %} {{ macros::translate(key=i.name|safe, default=i.name|safe, i18n=i18n) }} {% else %} {{ i.name | safe }} {% endif %}</a>
{%- endfor %}
</nav>
{%- endif %}
@@ -157,7 +165,7 @@
{%- if config.extra.footer_credit_override %}
{{ config.extra.footer_credit_override | safe }}
{%- else %}
- <p{%- if config.extra.footer_size %} class="{{ config.extra.footer_size }}"{% endif %}>{% if lang != config.default_language -%} {{ trans(key="Powered_by" | safe, lang=lang) }} {% else -%} Powered by {% endif %}<a href="https://www.getzola.org/" target="_blank">Zola</a> {%- if lang != config.default_language %} {{ trans(key="and" | safe, lang=lang) }} {% else %} and {% endif -%} <a href="https://github.com/jieiku/abridge/" target="_blank">Abridge</a></p>
+ <p{%- if config.extra.footer_size %} class="{{ config.extra.footer_size }}"{% endif %}>{{ macros::translate(key="Powered_by", default="Powered by", i18n=i18n) }} <a href="https://www.getzola.org/" target="_blank">Zola</a> {{ macros::translate(key="and", default="and", i18n=i18n) }} <a href="https://github.com/jieiku/abridge/" target="_blank">Abridge</a></p>
{%- endif %}
{%- endif %}
</div>
diff --git a/templates/categories/list.html b/templates/categories/list.html
index 641fcc4..506613c 100644
--- a/templates/categories/list.html
+++ b/templates/categories/list.html
@@ -20,7 +20,7 @@
{%- block content %}
<div>
<div class="c">
- <h1>{{ terms | length }} {%- if lang != config.default_language %} {{ trans(key="Categories" | safe, lang=lang) }} {% else %} Categories {% endif %}</h1>
+ <h1>{{ terms | length }} {{ macros::translate(key="Categories", default="Categories", i18n=i18n) }} </h1>
<p>{% for term in terms %} [<a href="#{{ term.name }}">{{ term.name }}</a>]<sup>{{ term.pages | length }}</sup> {% endfor %}</p>
</div>
{%- for term in terms %}
diff --git a/templates/index.html b/templates/index.html
index d7091de..c2ced13 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -82,7 +82,7 @@ This Template can also be used directly for the index eg: example.com/ or as the
{%- endif %}
<div class="sblock">
<div class="blockdiv sticky">
- <span class="b s150">{%- if lang != config.default_language %}{{ trans(key="Recent_Posts" | safe, lang=lang) }}{% else %}Recent Posts{% endif %}</span>
+ <span class="b s150">{{ macros::translate(key="Recent", default="Recent", i18n=i18n) }}</span>
{%- set recent_items=config.extra.recent_items | default(value=9) -%}
{%- for page in section_item.pages | slice(end=recent_items) %}
{{- macros::page_listing(page=page, config=config) }}
diff --git a/templates/macros/macros.html b/templates/macros/macros.html
index d5ea391..d0ce1a0 100644
--- a/templates/macros/macros.html
+++ b/templates/macros/macros.html
@@ -1,3 +1,7 @@
+{%- macro translate(key, i18n="", default="") %}
+{{- i18n[key] | default(value=default) | safe -}}
+{%- endmacro %}
+
{%- macro page_listing(page, config) %}
{%- set uglyurls = config.extra.uglyurls | default(value=false) -%}
{%- if config.extra.offline %}{% set uglyurls = true %}{% endif %}
@@ -7,6 +11,15 @@
{%- endmacro page_listing %}
+{%- macro series_link(inner, page) %}
+ {%- set uglyurls = config.extra.uglyurls | default(value=false) -%}
+ {%- if inner.content == page.content %}
+ <li><a href="{{ inner.permalink | safe }}{%- if uglyurls %}index.html{%- endif %}"><b>{{ inner.title }}</b></a></li>
+ {% else %}
+ <li><a href="{{ inner.permalink | safe }}{%- if uglyurls %}index.html{%- endif %}">{{ inner.title }}</a></li>
+ {%- 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 %}
<span{%- if config.extra.meta_post.size %} class="{{ config.extra.meta_post.size }}"{% endif %}>
@@ -55,7 +72,7 @@
{%- if config.extra.meta_post.date %} {%- if config.extra.icon_date %}<i class="{{ config.extra.icon_date }}"></i> {% 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 %}<i class="{{ config.extra.icon_date }}"></i> {% 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 %}
<span{%- if config.extra.meta_index.size %} class="{{ config.extra.meta_index.size }}"{% endif %}>
@@ -135,7 +155,7 @@
{%- if config.extra.meta_index.date %} {%- if config.extra.icon_date %}<i class="{{ config.extra.icon_date }}"></i> {% 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 %}<i class="{{ config.extra.icon_date }}"></i> {% 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 @@
</nav>
{%- endif %}
{%- endmacro %}
-
-{%- macro series_link(inner, page) %}
- {%- set uglyurls = config.extra.uglyurls | default(value=false) -%}
- {%- if inner.content == page.content %}
- <li><a href="{{ inner.permalink | safe }}{%- if uglyurls %}index.html{%- endif %}"><b>{{ inner.title }}</b></a></li>
- {% else %}
- <li><a href="{{ inner.permalink | safe }}{%- if uglyurls %}index.html{%- endif %}">{{ inner.title }}</a></li>
- {%- 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 %}
<div class="sblock">
- {%- 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) %}
<div class="blockdiv">
<a class="b s150" href="{{ tag.permalink | safe }}{%- if uglyurls %}index.html{%- endif %}">{{ parts_string }}</a>
<ol>
{%- 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) %}
<li><a href="{{ inner.permalink | safe }}{%- if uglyurls %}index.html{%- endif %}">{{ inner.title }}</a></li>
@@ -164,7 +164,7 @@
{%- endfor %}
</div>
{%- endif %}
-
+
{%- set last = num_pages - 1%}
{{ macros::series_link(inner=sorted_array[last], page=page) }}
@@ -179,7 +179,7 @@
{%- endif %}
<div class="blockdiv sticky">
- <a class="b s150" href="#">{%- if lang != config.default_language %}{{ trans(key="Index" | safe, lang=lang) }}{% else %}Index{% endif %}</a>
+ <a class="b s150" href="#">{{ macros::translate(key="Index", default="Index", i18n=i18n) }}</a>
{%- for h in toc %}
<div>
<a href="#{{h.id | safe}}">{{ h.title }}</a>
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 %}
<div>
<div class="c">
- <h1>{{ terms | length }} {%- if lang != config.default_language %} {{ trans(key="Tags" | safe, lang=lang) }} {% else %} Tags {% endif %}</h1>
+ <h1>{{ terms | length }} {{ macros::translate(key="Tags", default="Tags", i18n=i18n) }} </h1>
<p>{% for term in terms %} #<a href="#{{ term.name }}">{{ term.name }}</a><sup>{{ term.pages | length }}</sup> {% endfor %}</p>
</div>
{%- for term in terms %}