summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2015-04-01 22:17:12 +0200
committerSamy Pessé <samypesse@gmail.com>2015-04-01 22:17:12 +0200
commit4b206855621b71263d5521851b5b7fbfa7d28ac7 (patch)
treea0a724426c31f163c5ab5e4f7977f84528f1c016
parentfff7c5cc3ac9191765e0957fecf994e813923225 (diff)
downloadgitbook-4b206855621b71263d5521851b5b7fbfa7d28ac7.zip
gitbook-4b206855621b71263d5521851b5b7fbfa7d28ac7.tar.gz
gitbook-4b206855621b71263d5521851b5b7fbfa7d28ac7.tar.bz2
Use i18n node module for template translation
-rw-r--r--lib/book.js12
-rw-r--r--lib/configuration.js3
-rw-r--r--lib/generators/website.js11
-rw-r--r--lib/utils/i18n.js67
-rw-r--r--package.json2
-rw-r--r--theme/i18n/ar.json2
-rw-r--r--theme/i18n/bn.json2
-rw-r--r--theme/i18n/de.json2
-rw-r--r--theme/i18n/en.json2
-rw-r--r--theme/i18n/es.json2
-rw-r--r--theme/i18n/fa.json2
-rw-r--r--theme/i18n/fr.json2
-rw-r--r--theme/i18n/it.json2
-rw-r--r--theme/i18n/no.json2
-rw-r--r--theme/i18n/pl.json2
-rw-r--r--theme/i18n/pt.json2
-rw-r--r--theme/i18n/ru.json2
-rw-r--r--theme/i18n/zh-cn.json2
-rw-r--r--theme/i18n/zh-tw.json2
-rw-r--r--theme/templates/ebook/glossary.html6
-rw-r--r--theme/templates/ebook/summary.html8
-rw-r--r--theme/templates/website/glossary.html2
-rw-r--r--theme/templates/website/includes/font-settings.html10
-rw-r--r--theme/templates/website/includes/header.html30
-rw-r--r--theme/templates/website/includes/summary.html8
-rwxr-xr-xtheme/templates/website/langs.html4
-rw-r--r--theme/templates/website/page.html2
27 files changed, 106 insertions, 87 deletions
diff --git a/lib/book.js b/lib/book.js
index 42e2c23..e357ad8 100644
--- a/lib/book.js
+++ b/lib/book.js
@@ -2,9 +2,9 @@ var Q = require("q");
var _ = require("lodash");
var path = require("path");
var util = require("util");
-var lunr = require('lunr');
+var lunr = require("lunr");
var parsers = require("gitbook-parsers");
-var color = require('bash-color');
+var color = require("bash-color");
var fs = require("./utils/fs");
var parseNavigation = require("./utils/navigation");
@@ -12,6 +12,7 @@ var parseProgress = require("./utils/progress");
var pageUtil = require("./utils/page");
var batch = require("./utils/batch");
var links = require("./utils/links");
+var i18n = require("./utils/i18n");
var logger = require("./utils/logger");
var Configuration = require("./configuration");
@@ -425,7 +426,7 @@ Book.prototype.parseSummary = function() {
.then(function(content) {
return summary.parser.summary(content, {
entryPoint: that.readmeFile,
- entryPointTitle: "",
+ entryPointTitle: that.i18n('SUMMARY_INTRODUCTION'),
files: that.files
});
});
@@ -727,6 +728,11 @@ Book.prototype.setOutput = function(p) {
});
};
+// Translate a strign according to the book language
+Book.prototype.i18n = function(phrase) {
+ var args = Array.prototype.slice.call(arguments);
+ return i18n.__.apply({}, [this.config.normalizeLanguage()].concat(args));
+};
// Init and return a book
Book.init = function(root) {
diff --git a/lib/configuration.js b/lib/configuration.js
index 70b2eb5..3f8c822 100644
--- a/lib/configuration.js
+++ b/lib/configuration.js
@@ -60,7 +60,6 @@ function normalizePluginsNames(plugins) {
return _.pluck(normalizePluginsList(plugins), "name");
};
-
var Configuration = function(book, options) {
var that = this;
@@ -125,7 +124,7 @@ Configuration.prototype.load = function() {
// Default value for text direction (from language)
if (!that.options.direction) {
- var lang = i18n.getByLanguage(that.options.language);
+ var lang = i18n.getCatalog(that.options.language);
if (lang) that.options.direction = lang.direction;
}
diff --git a/lib/generators/website.js b/lib/generators/website.js
index 9405a1c..fbf0a8d 100644
--- a/lib/generators/website.js
+++ b/lib/generators/website.js
@@ -6,7 +6,6 @@ var _ = require("lodash");
var nunjucks = require("nunjucks");
var AutoEscapeExtension = require("nunjucks-autoescape");
var FilterExtension = require("nunjucks-filter");
-var I18nExtension = require("nunjucks-i18n");
var fs = require("../utils/fs");
var BaseGenerator = require("../generator");
@@ -79,8 +78,8 @@ Generator.prototype.prepareTemplateEngine = function() {
.then(function() {
var language = that.book.config.normalizeLanguage();
- if (!i18n.getByLanguage(language) && language != "en") {
- that.book.log.warn.ln("Language '"+language+"' is not available as a layout locales (en, "+i18n.getLanguages().join(", ")+")");
+ if (!i18n.hasLocale(language)) {
+ that.book.log.warn.ln("Language '"+language+"' is not available as a layout locales (en, "+i18n.getLocales().join(", ")+")");
}
var folders = _.chain(that.templates)
@@ -101,15 +100,11 @@ Generator.prototype.prepareTemplateEngine = function() {
that.env.addFilter('lvl', function(lvl) {
return lvl.split(".").length;
});
+ that.env.addGlobal('__', that.book.i18n.bind(that.book));
// Add extension
that.env.addExtension('AutoEscapeExtension', new AutoEscapeExtension(that.env));
that.env.addExtension('FilterExtension', new FilterExtension(that.env));
- that.env.addExtension('I18nExtension', new I18nExtension({
- env: that.env,
- translations: i18n.getLocales(),
- locale: "language"
- }));
});
};
diff --git a/lib/utils/i18n.js b/lib/utils/i18n.js
index 449fccb..d504e9a 100644
--- a/lib/utils/i18n.js
+++ b/lib/utils/i18n.js
@@ -2,32 +2,19 @@ var _ = require("lodash");
var path = require("path");
var fs = require("fs");
-var I18N_PATH = path.resolve(__dirname, "../../theme/i18n/")
+var i18n = require("i18n");
-var getLocales = _.memoize(function() {
- var locales = fs.readdirSync(I18N_PATH);
- return _.chain(locales)
- .map(function(local) {
- local = path.basename(local, ".json");
- return [local, _.extend({
- direction: "ltr"
- }, require(path.join(I18N_PATH, local)), {
- id: local
- })];
- })
- .object()
- .value();
+var I18N_PATH = path.resolve(__dirname, "../../theme/i18n/")
+var DEFAULT_LANGUAGE = "en";
+var LOCALES = _.map(fs.readdirSync(I18N_PATH), function(lang) {
+ return path.basename(lang, ".json");
});
-var getLanguages = function() {
- return _.keys(getLocales());
-};
-
-var getByLanguage = function(lang) {
- lang = normalizeLanguage(lang);
- var locales = getLocales();
- return locales[lang];
-};
+i18n.configure({
+ locales: LOCALES,
+ directory: I18N_PATH,
+ defaultLocale: DEFAULT_LANGUAGE
+});
var compareLocales = function(lang, locale) {
var langMain = _.first(lang.split("-"));
@@ -43,12 +30,9 @@ var compareLocales = function(lang, locale) {
};
var normalizeLanguage = _.memoize(function(lang) {
- var locales = getLocales();
- var language = _.chain(locales)
+ var language = _.chain(LOCALES)
.values()
.map(function(locale) {
- locale = locale.id;
-
return {
locale: locale,
score: compareLocales(lang, locale)
@@ -64,9 +48,32 @@ var normalizeLanguage = _.memoize(function(lang) {
return language || lang;
});
+var translate = function(locale, phrase) {
+ var args = Array.prototype.slice.call(arguments, 2);
+
+ return i18n.__.apply({}, [{
+ locale: locale,
+ phrase: phrase
+ }].concat(args));
+};
+
+var getCatalog = function(locale) {
+ locale = normalizeLanguage(locale);
+ return i18n.getCatalog(locale);
+};
+
+var getLocales = function() {
+ return LOCALES;
+};
+
+var hasLocale = function(locale) {
+ return _.contains(LOCALES, locale);
+}
+
module.exports = {
+ __: translate,
+ normalizeLanguage: normalizeLanguage,
+ getCatalog: getCatalog,
getLocales: getLocales,
- getLanguages: getLanguages,
- getByLanguage: getByLanguage,
- normalizeLanguage: normalizeLanguage
+ hasLocale: hasLocale
};
diff --git a/package.json b/package.json
index 633700e..44221a9 100644
--- a/package.json
+++ b/package.json
@@ -16,7 +16,7 @@
"nunjucks": "git+https://github.com/mozilla/nunjucks.git#0f8b21b8df7e8e852b2e1889388653b7075f0d09",
"nunjucks-autoescape": "0.1.1",
"nunjucks-filter": "0.1.0",
- "nunjucks-i18n": "1.0.0",
+ "i18n": "0.5.0",
"semver": "2.2.1",
"npmi": "0.1.1",
"cheerio": "0.19.0",
diff --git a/theme/i18n/ar.json b/theme/i18n/ar.json
index a0d7f30..a0e7e56 100644
--- a/theme/i18n/ar.json
+++ b/theme/i18n/ar.json
@@ -12,7 +12,7 @@
"SEARCH_PLACEHOLDER": "اكتب للبحث",
"FONTSETTINGS_TOGGLE": "إعدادات الخط",
"SHARE_TOGGLE": "حصة",
- "SHARE_ON": "على __platform__ حصة",
+ "SHARE_ON": "على {{platform}} حصة",
"FONTSETTINGS_WHITE": "أبيض",
"FONTSETTINGS_SEPIA": "بني داكن",
"FONTSETTINGS_NIGHT": "ليل",
diff --git a/theme/i18n/bn.json b/theme/i18n/bn.json
index 4c672ed..24baec3 100644
--- a/theme/i18n/bn.json
+++ b/theme/i18n/bn.json
@@ -11,7 +11,7 @@
"SEARCH_PLACEHOLDER": "অনুসন্ধান",
"FONTSETTINGS_TOGGLE": "ফন্ট সেটিংস",
"SHARE_TOGGLE": "শেয়ার",
- "SHARE_ON": "__platform__-এ শেয়ার",
+ "SHARE_ON": "{{platform}}-এ শেয়ার",
"FONTSETTINGS_WHITE": "সাদা",
"FONTSETTINGS_SEPIA": "সেপিয়া",
"FONTSETTINGS_NIGHT": "রাত",
diff --git a/theme/i18n/de.json b/theme/i18n/de.json
index 73a998e..b51732e 100644
--- a/theme/i18n/de.json
+++ b/theme/i18n/de.json
@@ -11,7 +11,7 @@
"SEARCH_PLACEHOLDER": "Suchbegriff eingeben",
"FONTSETTINGS_TOGGLE": "Schrifteinstellungen",
"SHARE_TOGGLE": "Teilen",
- "SHARE_ON": "Auf __platform__ teilen",
+ "SHARE_ON": "Auf {{platform}} teilen",
"FONTSETTINGS_WHITE": "Hell",
"FONTSETTINGS_SEPIA": "Sepia",
"FONTSETTINGS_NIGHT": "Nacht",
diff --git a/theme/i18n/en.json b/theme/i18n/en.json
index 1596558..fb4485e 100644
--- a/theme/i18n/en.json
+++ b/theme/i18n/en.json
@@ -11,7 +11,7 @@
"SEARCH_PLACEHOLDER": "Type to search",
"FONTSETTINGS_TOGGLE": "Font Settings",
"SHARE_TOGGLE": "Share",
- "SHARE_ON": "Share on __platform__",
+ "SHARE_ON": "Share on {{platform}}",
"FONTSETTINGS_WHITE": "White",
"FONTSETTINGS_SEPIA": "Sepia",
"FONTSETTINGS_NIGHT": "Night",
diff --git a/theme/i18n/es.json b/theme/i18n/es.json
index a00595f..132cb77 100644
--- a/theme/i18n/es.json
+++ b/theme/i18n/es.json
@@ -11,7 +11,7 @@
"SEARCH_PLACEHOLDER": "Escribe para buscar",
"FONTSETTINGS_TOGGLE": "Configuración de fuente",
"SHARE_TOGGLE": "Comparte",
- "SHARE_ON": "Comparte en __platform__",
+ "SHARE_ON": "Comparte en {{platform}}",
"FONTSETTINGS_WHITE": "Claro",
"FONTSETTINGS_SEPIA": "Sépia",
"FONTSETTINGS_NIGHT": "Noche",
diff --git a/theme/i18n/fa.json b/theme/i18n/fa.json
index 258c612..44445c1 100644
--- a/theme/i18n/fa.json
+++ b/theme/i18n/fa.json
@@ -12,7 +12,7 @@
"SEARCH_PLACEHOLDER": "چیزی برای جستجو بنویسید",
"FONTSETTINGS_TOGGLE": "تنظیمات فونت",
"SHARE_TOGGLE": "اشتراک",
- "SHARE_ON": "در __platform__ به اشتراک بگذارید",
+ "SHARE_ON": "در {{platform}} به اشتراک بگذارید",
"FONTSETTINGS_WHITE": "سفید",
"FONTSETTINGS_SEPIA": "سپیا",
"FONTSETTINGS_NIGHT": "شب",
diff --git a/theme/i18n/fr.json b/theme/i18n/fr.json
index 9262c2e..8cc10e2 100644
--- a/theme/i18n/fr.json
+++ b/theme/i18n/fr.json
@@ -11,7 +11,7 @@
"SEARCH_PLACEHOLDER": "Tapez pour rechercher",
"FONTSETTINGS_TOGGLE": "Paramètres de Police",
"SHARE_TOGGLE": "Partage",
- "SHARE_ON": "Partager sur __platform__",
+ "SHARE_ON": "Partager sur {{platform}}",
"FONTSETTINGS_WHITE": "Clair",
"FONTSETTINGS_SEPIA": "Sépia",
"FONTSETTINGS_NIGHT": "Nuit",
diff --git a/theme/i18n/it.json b/theme/i18n/it.json
index e856d7e..3f5e95d 100644
--- a/theme/i18n/it.json
+++ b/theme/i18n/it.json
@@ -11,7 +11,7 @@
"SEARCH_PLACEHOLDER": "Scrivi per cercare",
"FONTSETTINGS_TOGGLE": "Impostazioni dei caratteri",
"SHARE_TOGGLE": "Condividi",
- "SHARE_ON": "Condividi su __platform__",
+ "SHARE_ON": "Condividi su {{platform}}",
"FONTSETTINGS_WHITE": "Bianco",
"FONTSETTINGS_SEPIA": "Seppia",
"FONTSETTINGS_NIGHT": "Notte",
diff --git a/theme/i18n/no.json b/theme/i18n/no.json
index 70f9b33..1ed6236 100644
--- a/theme/i18n/no.json
+++ b/theme/i18n/no.json
@@ -11,7 +11,7 @@
"SEARCH_PLACEHOLDER": "Skriv inn søkeord",
"FONTSETTINGS_TOGGLE": "Tekstinnstillinger",
"SHARE_TOGGLE": "Del",
- "SHARE_ON": "Del på __platform__",
+ "SHARE_ON": "Del på {{platform}}",
"FONTSETTINGS_WHITE": "Lys",
"FONTSETTINGS_SEPIA": "Sepia",
"FONTSETTINGS_NIGHT": "Mørk",
diff --git a/theme/i18n/pl.json b/theme/i18n/pl.json
index 7c0cdf4..4f009fc 100644
--- a/theme/i18n/pl.json
+++ b/theme/i18n/pl.json
@@ -11,7 +11,7 @@
"SEARCH_PLACEHOLDER": "Wpisz szukaną frazę",
"FONTSETTINGS_TOGGLE": "Ustawienia czcionki",
"SHARE_TOGGLE": "Udostępnij",
- "SHARE_ON": "Udostępnij na __platform__",
+ "SHARE_ON": "Udostępnij na {{platform}}",
"FONTSETTINGS_WHITE": "Jasny",
"FONTSETTINGS_SEPIA": "Sepia",
"FONTSETTINGS_NIGHT": "Noc",
diff --git a/theme/i18n/pt.json b/theme/i18n/pt.json
index 5413a48..9d6bde0 100644
--- a/theme/i18n/pt.json
+++ b/theme/i18n/pt.json
@@ -11,7 +11,7 @@
"SEARCH_PLACEHOLDER": "Escreva para pesquisar",
"FONTSETTINGS_TOGGLE": "Configurações de fonte",
"SHARE_TOGGLE": "Compartilhar",
- "SHARE_ON": "Compartilhar no __platform__",
+ "SHARE_ON": "Compartilhar no {{platform}}",
"FONTSETTINGS_WHITE": "Claro",
"FONTSETTINGS_SEPIA": "Sépia",
"FONTSETTINGS_NIGHT": "Noite",
diff --git a/theme/i18n/ru.json b/theme/i18n/ru.json
index 1a70f07..9e6b9dd 100644
--- a/theme/i18n/ru.json
+++ b/theme/i18n/ru.json
@@ -11,7 +11,7 @@
"SEARCH_PLACEHOLDER": "Введите условия поиска",
"FONTSETTINGS_TOGGLE": "Шрифт",
"SHARE_TOGGLE": "Поделиться",
- "SHARE_ON": "Поделиться в __platform__",
+ "SHARE_ON": "Поделиться в {{platform}}",
"FONTSETTINGS_WHITE": "Светлый",
"FONTSETTINGS_SEPIA": "Сепия",
"FONTSETTINGS_NIGHT": "Тёмный",
diff --git a/theme/i18n/zh-cn.json b/theme/i18n/zh-cn.json
index dfeb2b8..8aa372c 100644
--- a/theme/i18n/zh-cn.json
+++ b/theme/i18n/zh-cn.json
@@ -11,7 +11,7 @@
"SEARCH_PLACEHOLDER": "输入并搜索",
"FONTSETTINGS_TOGGLE": "字体设置",
"SHARE_TOGGLE": "分享",
- "SHARE_ON": "分享到 __platform__",
+ "SHARE_ON": "分享到 {{platform}}",
"FONTSETTINGS_WHITE": "白色",
"FONTSETTINGS_SEPIA": "棕褐色",
"FONTSETTINGS_NIGHT": "夜间",
diff --git a/theme/i18n/zh-tw.json b/theme/i18n/zh-tw.json
index 6ae26aa..d5ff1ad 100644
--- a/theme/i18n/zh-tw.json
+++ b/theme/i18n/zh-tw.json
@@ -11,7 +11,7 @@
"SEARCH_PLACEHOLDER": "輸入並搜尋",
"FONTSETTINGS_TOGGLE": "字型設定",
"SHARE_TOGGLE": "分享",
- "SHARE_ON": "分享到 __platform__",
+ "SHARE_ON": "分享到 {{platform}}",
"FONTSETTINGS_WHITE": "白色",
"FONTSETTINGS_SEPIA": "棕褐色",
"FONTSETTINGS_NIGHT": "夜間",
diff --git a/theme/templates/ebook/glossary.html b/theme/templates/ebook/glossary.html
index d4d46f2..1266f27 100644
--- a/theme/templates/ebook/glossary.html
+++ b/theme/templates/ebook/glossary.html
@@ -1,11 +1,11 @@
{% extends "./page.html" %}
-{% block title %}{% i18n "GLOSSARY" %}Glossary{% endi18n %} | {{ title }}{% endblock %}
+{% block title %}{{ __("GLOSSARY") }} | {{ title }}{% endblock %}
{% block content %}
<div class="page page-toc">
- <h1 class="book-chapter book-chapter-1">{% i18n "GLOSSARY" %}Glossary{% endi18n %}</h1>
- <h1>{% i18n "GLOSSARY" %}Glossary{% endi18n %}</h1>
+ <h1 class="book-chapter book-chapter-1">{{ __("GLOSSARY") }}</h1>
+ <h1>{{ __("GLOSSARY") }}</h1>
{% for item in glossary %}
<section class="normal glossary" id="{{ item.id }}">
<h2><a href="#{{ item.id }}">{{ item.name }}</a></h2>
diff --git a/theme/templates/ebook/summary.html b/theme/templates/ebook/summary.html
index c0d6d1e..fa79a98 100644
--- a/theme/templates/ebook/summary.html
+++ b/theme/templates/ebook/summary.html
@@ -1,13 +1,13 @@
{% extends "./page.html" %}
-{% block title %}{% i18n "SUMMARY" %}Table of Contents{% endi18n %} | {{ title }}{% endblock %}
+{% block title %}{{ __("SUMMARY") }} | {{ title }}{% endblock %}
{% macro articles(_articles) %}
{% for item in _articles %}
<li>
{% if item.path and item.exists %}
{% if not item.external %}
- <a href="{{ basePath }}/{{ item.path|contentLink }}">{% if item.introduction %}{% i18n "SUMMARY_INTRODUCTION" %}Introduction{% endi18n %}{% else %}{{ item.title }}{% endif %}</a>
+ <a href="{{ basePath }}/{{ item.path|contentLink }}">{{ item.title }}</a>
{% else %}
<a target="_blank" href="{{ item.path }}">{{ item.title }}</a>
{% endif %}
@@ -25,12 +25,12 @@
{% block content %}
<div class="page page-toc">
- <h1>{% i18n "SUMMARY" %}Table of Contents{% endi18n %}</h1>
+ <h1>{{ __("SUMMARY") }}</h1>
<ol>
{{ articles(summary.chapters) }}
{% if glossary.length > 0 %}
- <li><a href="{{ basePath }}/GLOSSARY.html">{% i18n "GLOSSARY" %}Glossary{% endi18n %}</a></li>
+ <li><a href="{{ basePath }}/GLOSSARY.html">{{ __("GLOSSARY") }}</a></li>
{% endif %}
</ol>
</div>
diff --git a/theme/templates/website/glossary.html b/theme/templates/website/glossary.html
index 1a78c76..dd3f719 100644
--- a/theme/templates/website/glossary.html
+++ b/theme/templates/website/glossary.html
@@ -1,6 +1,6 @@
{% extends "page.html" %}
-{% block title %}{% i18n "GLOSSARY" %}Glossary{% endi18n %} | {{ title }}{% endblock %}
+{% block title %}{{ __("GLOSSARY") }} | {{ title }}{% endblock %}
{% block page_inner %}
{% for item in glossary %}
diff --git a/theme/templates/website/includes/font-settings.html b/theme/templates/website/includes/font-settings.html
index 6a54334..2d5024b 100644
--- a/theme/templates/website/includes/font-settings.html
+++ b/theme/templates/website/includes/font-settings.html
@@ -10,13 +10,13 @@
</div>
<div class="buttons font-family-list">
- <button type="button" data-font="0" class="button">{% i18n "FONTSETTINGS_SERIF" %}Serif{% endi18n %}</button>
- <button type="button" data-font="1" class="button">{% i18n "FONTSETTINGS_SANS" %}Sans{% endi18n %}</button>
+ <button type="button" data-font="0" class="button">{{ __("FONTSETTINGS_SERIF") }}</button>
+ <button type="button" data-font="1" class="button">{{ __("FONTSETTINGS_SANS") }}</button>
</div>
<div class="buttons color-theme-list">
- <button type="button" id="color-theme-preview-0" class="button size-3" data-theme="0">{% i18n "FONTSETTINGS_WHITE" %}White{% endi18n %}</button>
- <button type="button" id="color-theme-preview-1" class="button size-3" data-theme="1">{% i18n "FONTSETTINGS_SEPIA" %}Sepia{% endi18n %}</button>
- <button type="button" id="color-theme-preview-2" class="button size-3" data-theme="2">{% i18n "FONTSETTINGS_NIGHT" %}Night{% endi18n %}</button>
+ <button type="button" id="color-theme-preview-0" class="button size-3" data-theme="0">{{ __("FONTSETTINGS_WHITE") }}</button>
+ <button type="button" id="color-theme-preview-1" class="button size-3" data-theme="1">{{ __("FONTSETTINGS_SEPIA") }}</button>
+ <button type="button" id="color-theme-preview-2" class="button size-3" data-theme="2">{{ __("FONTSETTINGS_NIGHT") }}</button>
</div>
</div>
diff --git a/theme/templates/website/includes/header.html b/theme/templates/website/includes/header.html
index 119dd62..7a987b0 100644
--- a/theme/templates/website/includes/header.html
+++ b/theme/templates/website/includes/header.html
@@ -1,12 +1,12 @@
<div class="book-header">
<!-- Actions Left -->
- <a href="#" class="btn pull-left toggle-summary" aria-label="{% i18n "SUMMARY_TOGGLE" %}Table of Contents{% endi18n %}"><i class="fa fa-align-justify"></i></a>
- <a href="#" class="btn pull-left toggle-search" aria-label="{% i18n "SEARCH_TOGGLE" %}Search{% endi18n %}"><i class="fa fa-search"></i></a>
+ <a href="#" class="btn pull-left toggle-summary" aria-label="{{ __("SUMMARY_TOGGLE") }}"><i class="fa fa-align-justify"></i></a>
+ <a href="#" class="btn pull-left toggle-search" aria-label="{{ __("SEARCH_TOGGLE") }}"><i class="fa fa-search"></i></a>
{% if glossary.length > 0 %}
- <a href="{{ basePath }}/GLOSSARY.html" class="btn pull-left" aria-label="{% i18n "GLOSSARY_OPEN" %}Glossary{% endi18n %}"><i class="fa fa-sort-alpha-asc"></i></a>
+ <a href="{{ basePath }}/GLOSSARY.html" class="btn pull-left" aria-label="{{ __("GLOSSARY_OPEN") }}"><i class="fa fa-sort-alpha-asc"></i></a>
{% endif %}
<div id="font-settings-wrapper" class="dropdown pull-left">
- <a href="#" class="btn toggle-dropdown" aria-label="{% i18n "FONTSETTINGS_TOGGLE" %}Font Settings{% endi18n %}"><i class="fa fa-font"></i>
+ <a href="#" class="btn toggle-dropdown" aria-label="{{ __("FONTSETTINGS_TOGGLE") }}"><i class="fa fa-font"></i>
</a>
{% include "./font-settings.html" %}
</div>
@@ -14,7 +14,7 @@
<!-- Actions Right -->
{% if options.links.sharing.all != false %}
<div class="dropdown pull-right">
- <a href="#" class="btn toggle-dropdown" aria-label="{% i18n "SHARE_TOGGLE" %}Share{% endi18n %}"><i class="fa fa-share-alt"></i>
+ <a href="#" class="btn toggle-dropdown" aria-label="{{ __("SHARE_TOGGLE") }}"><i class="fa fa-share-alt"></i>
</a>
<div class="dropdown-menu font-settings dropdown-left">
<div class="dropdown-caret">
@@ -22,11 +22,21 @@
<span class="caret-inner"></span>
</div>
<div class="buttons">
- <button type="button" data-sharing="twitter" class="button">{% i18n "SHARE_ON", __platform__="Twitter" %}Share on __platform__{% endi18n %}</button>
- <button type="button" data-sharing="google-plus" class="button">{% i18n "SHARE_ON", __platform__="Google" %}Share on __platform__{% endi18n %}</button>
- <button type="button" data-sharing="facebook" class="button">{% i18n "SHARE_ON", __platform__="Facebook" %}Share on __platform__{% endi18n %}</button>
- <button type="button" data-sharing="weibo" class="button">{% i18n "SHARE_ON", __platform__="Weibo" %}Share on __platform__{% endi18n %}</button>
- <button type="button" data-sharing="instapaper" class="button">{% i18n "SHARE_ON", __platform__="Instapaper" %}Share on __platform__{% endi18n %}</button>
+ <button type="button" data-sharing="twitter" class="button">
+ {{ __("SHARE_ON", platform="Twitter") }}
+ </button>
+ <button type="button" data-sharing="google-plus" class="button">
+ {{ __("SHARE_ON", platform="Google") }}
+ </button>
+ <button type="button" data-sharing="facebook" class="button">
+ {{ __("SHARE_ON", platform="Facebook") }}
+ </button>
+ <button type="button" data-sharing="weibo" class="button">
+ {{ __("SHARE_ON", platform="Weibo") }}
+ </button>
+ <button type="button" data-sharing="instapaper" class="button">
+ {{ __("SHARE_ON", platform="Instapaper") }}
+ </button>
</div>
</div>
</div>
diff --git a/theme/templates/website/includes/summary.html b/theme/templates/website/includes/summary.html
index e016024..312fc2d 100644
--- a/theme/templates/website/includes/summary.html
+++ b/theme/templates/website/includes/summary.html
@@ -8,7 +8,7 @@
{% if item.level != "0" %}
<b>{{ item.level }}.</b>
{% endif %}
- {% if item.introduction and not item.title %}{% i18n "SUMMARY_INTRODUCTION" %}Introduction{% endi18n %}{% else %}{{ item.title }}{% endif %}
+ {{ item.title }}
</a>
{% else %}
<a target="_blank" href="{{ item.path }}">
@@ -33,7 +33,7 @@
<div class="book-summary">
<div class="book-search">
- <input type="text" placeholder="{% i18n "SEARCH_PLACEHOLDER" %}Type to search{% endi18n %}" class="form-control" />
+ <input type="text" placeholder="{{ __("SEARCH_PLACEHOLDER") }}" class="form-control" />
</div>
<ul class="summary">
{% set _divider = false %}
@@ -55,7 +55,9 @@
{% if options.links.gitbook != false %}
<li class="divider"></li>
<li>
- <a href="https://www.gitbook.com" target="blank" class="gitbook-link">{% i18n "GITBOOK_LINK" %}Published using GitBook{% endi18n %}</a>
+ <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
+ {{ __("GITBOOK_LINK") }}
+ </a>
</li>
{% endif %}
</ul>
diff --git a/theme/templates/website/langs.html b/theme/templates/website/langs.html
index 89a075e..6005cbb 100755
--- a/theme/templates/website/langs.html
+++ b/theme/templates/website/langs.html
@@ -9,7 +9,7 @@
{% block content %}
<div class="book-langs-index">
<div class="inner">
- <h3>{% i18n "LANGS_CHOOSE" %}Choose a language{% endi18n %}</h3>
+ <h3>{{ __("LANGS_CHOOSE") }}</h3>
<ul class="languages">
{% for lang in langs %}
@@ -22,4 +22,4 @@
</div>
{% endblock %}
-{% block javascript %}{% endblock %} \ No newline at end of file
+{% block javascript %}{% endblock %}
diff --git a/theme/templates/website/page.html b/theme/templates/website/page.html
index d4b5e0b..37fc9dd 100644
--- a/theme/templates/website/page.html
+++ b/theme/templates/website/page.html
@@ -10,7 +10,7 @@
{% endif %}
{% endblock %}
-{% block title %}{% if progress.current.introduction and not progress.current.title %}{% i18n "SUMMARY_INTRODUCTION" %}Introduction{% endi18n %}{% else %}{{ progress.current.title }}{% endif %} | {{ title }}{% endblock %}
+{% block title %}{{ progress.current.title }} | {{ title }}{% endblock %}
{% block description %}{% if progress.current.level == "0" %}{{ description }}{% endif %}{% endblock %}
{% block content %}