diff --git a/static/i18n_resources_list.txt b/static/i18n_resources_list.txt
index 1c20f6a4e..7fdc4644f 100644
--- a/static/i18n_resources_list.txt
+++ b/static/i18n_resources_list.txt
@@ -34,6 +34,7 @@ skin/i18n/skr-arab.json
skin/i18n/sl.json
skin/i18n/sq.json
skin/i18n/sv.json
+skin/i18n/sw.json
skin/i18n/te.json
skin/i18n/test.json
skin/i18n/tr.json
diff --git a/static/skin/i18n/dag.json b/static/skin/i18n/dag.json
index 68f26fcec..cf4883118 100644
--- a/static/skin/i18n/dag.json
+++ b/static/skin/i18n/dag.json
@@ -42,14 +42,14 @@
"book-filtering-all-categories": "Pubu zaa",
"book-filtering-all-languages": "Bala zaa",
"count-of-matching-books": "{{COUNT}} Buku(nima)",
- "download": "Yihibu",
+ "download": "Deebu",
"direct-download-link-text": "Tibi",
"direct-download-alt-text": "Tibi deebu",
"hash-download-link-text": "Sha256 hash",
"hash-download-alt-text": "Deebu daliŋ",
"welcome-to-kiwix-server": "Maraba Kiwix tum tumda",
"download-links-heading": "Deemi soli zaŋ n-ti {{BOOK_TITLE}}",
- "download-links-title": "Yaa mi buku",
- "preview-book": "Labi lihi",
+ "download-links-title": "Deemi buku",
+ "preview-book": "Daŋyuli",
"unknown-error": "Chiriŋ din bi tooi baŋ"
}
diff --git a/static/skin/i18n/fi.json b/static/skin/i18n/fi.json
index bd1736eee..4dc01a49e 100644
--- a/static/skin/i18n/fi.json
+++ b/static/skin/i18n/fi.json
@@ -26,5 +26,6 @@
"torrent-download-link-text": "Torrent-tiedosto",
"filter-by-tag": "Suodata tunnisteen ”{{TAG}}” mukaan",
"download-links-title": "Lataa kirja",
- "preview-book": "Esikatsele"
+ "preview-book": "Esikatsele",
+ "unknown-error": "Tuntematon virhe"
}
diff --git a/static/skin/i18n/sw.json b/static/skin/i18n/sw.json
new file mode 100644
index 000000000..ca24b3365
--- /dev/null
+++ b/static/skin/i18n/sw.json
@@ -0,0 +1,64 @@
+{
+ "@metadata": {
+ "authors": [
+ "Peggy",
+ "Wangombe"
+ ]
+ },
+ "name": "Kiswahili",
+ "suggest-full-text-search": "ina '{{{SEARCH_TERMS}}}}'...",
+ "no-such-book": "Hakuna kitabu kama hiki: {{BOOK_NAME}}",
+ "too-many-books": "Vitabu vingi mno vimeombwa ({{NB_BOOKS}}) ambapo kikomo ni {{LIMIT}}",
+ "no-book-found": "Hakuna kitabu kinacholingana na vigezo vya uteuzi",
+ "url-not-found": "URL iliyoombwa \"{{url}}\" haikupatikana kwenye seva hii.",
+ "suggest-search": "Tafuta maandishi kamili ya {{PATTERN}}",
+ "random-article-failure": "Lo! Imeshindwa kuchagua makala nasibu :(",
+ "invalid-raw-data-type": "{{DATATYPE}} si ombi halali la maudhui ghafi.",
+ "invalid-request": "URL iliyoombwa \"{{{url}}}\" si ombi halali.",
+ "no-value-for-arg": "Hakuna thamani iliyotolewa kwa hoja {{ARGUMENT}}",
+ "no-query": "Hakuna swali lililotolewa.",
+ "raw-entry-not-found": "Haiwezi kupata ingizo la {{DATATYPE}} {{ENTRY}}",
+ "400-page-title": "Ombi batili",
+ "400-page-heading": "Ombi batili",
+ "404-page-title": "Maudhui hayajapatikana",
+ "404-page-heading": "Haijapatikana",
+ "500-page-title": "Hitilafu ya Ndani ya Seva",
+ "500-page-heading": "Hitilafu ya Ndani ya Seva",
+ "500-page-text": "Hitilafu ya ndani ya seva imetokea. Tunasikitika kwa hilo:/",
+ "fulltext-search-unavailable": "Utafutaji wa maandishi kamili haupatikani",
+ "no-search-results": "Injini ya utafutaji ya maandishi kamili haipatikani kwa maudhui haya.",
+ "search-results-page-title": "Tafuta: {{SEARCH_PATTERN}}",
+ "search-results-page-header": "Matokeo {{START}}-{{END}} ya {{COUNT}} ya \"{{{SEARCH_PATTERN}}}}\"",
+ "empty-search-results-page-header": "Hakuna matokeo yaliyopatikana ya \"{{{SEARCH_PATTERN}}}}\"",
+ "search-result-book-info": "kutoka kwa {{BOOK_TITLE}}",
+ "word-count": "Maneno {{COUNT}}",
+ "library-button-text": "Nenda katika wiki ya mwanzo",
+ "home-button-text": "Nenda kwenye ukurasa mkuu wa '{{BOOK_TITLE}}'",
+ "random-page-button-text": "Nenda kwa ukurasa uliochaguliwa kwa nasibu",
+ "searchbox-tooltip": "Tafuta '{{BOOK_TITLE}}'",
+ "confusion-of-tongues": "Vitabu viwili au zaidi katika lugha tofauti vitashiriki katika utafutaji, jambo ambalo linaweza kusababisha matokeo ya kutatanisha.",
+ "welcome-page-overzealous-filter": "Hakuna matokeo. Je, ungependa kuweka upya kichujio ?",
+ "powered-by-kiwix-html": "Inaendeshwa na Kiwix",
+ "search": "Tafuta",
+ "book-filtering-all-categories": "Kategoria Zote",
+ "book-filtering-all-languages": "Lugha zote",
+ "count-of-matching-books": "Vitabu {{COUNT}}",
+ "download": "Pakua",
+ "direct-download-link-text": "Moja kwa moja",
+ "direct-download-alt-text": "kupakua moja kwa moja",
+ "hash-download-link-text": "Sha256 heshi",
+ "hash-download-alt-text": "pakua heshi",
+ "magnet-link-text": "Kiungo cha sumaku",
+ "magnet-alt-text": "sumaku ya kupakua",
+ "torrent-download-link-text": "Faili ya Torrent",
+ "torrent-download-alt-text": "pakua torrent",
+ "library-opds-feed-all-entries": "Mlisho wa OPDS wa Maktaba - Maingizo yote",
+ "filter-by-tag": "Chuja kwa lebo \"{{TAG}}\"",
+ "stop-filtering-by-tag": "Acha kuchuja kwa lebo \"{{TAG}}\"",
+ "library-opds-feed-parameterised": "Mlisho wa OPDS wa Maktaba - maingizo yanayolingana {{#LANG}}\nLugha: {{LANG}} {{/LANG}}{{#CATEGORY}}\nKitengo: {{CATEGORY}} {{/CATEGORY}} {{#TAG}}\nTag: {{TAG}} {{/TAG}}{{#Q}}\nSwali: {{Q}} {{/Q}}",
+ "welcome-to-kiwix-server": "Karibu kwenye Seva ya Kiwix",
+ "download-links-heading": "Pakua viungo vya {{BOOK_TITLE}}",
+ "download-links-title": "Pakua vitabu",
+ "preview-book": "Hakiki",
+ "unknown-error": "Hitilafu isiyojulikana"
+}
diff --git a/static/skin/languages.js b/static/skin/languages.js
index 18742b5b4..80f6aa01d 100644
--- a/static/skin/languages.js
+++ b/static/skin/languages.js
@@ -22,7 +22,7 @@ const uiLanguages = [
{
"iso_code": "dag",
"self_name": "Silimiinsili",
- "translation_count": 24
+ "translation_count": 48
},
{
"iso_code": "de",
@@ -42,7 +42,7 @@ const uiLanguages = [
{
"iso_code": "fi",
"self_name": "suomi",
- "translation_count": 22
+ "translation_count": 23
},
{
"iso_code": "fr",
@@ -169,6 +169,11 @@ const uiLanguages = [
"self_name": "Svenska",
"translation_count": 57
},
+ {
+ "iso_code": "sw",
+ "self_name": "Kiswahili",
+ "translation_count": 57
+ },
{
"iso_code": "te",
"self_name": "ఇంగ్లీషు",
diff --git a/test/server.cpp b/test/server.cpp
index 8e22d852a..6c5b019e3 100644
--- a/test/server.cpp
+++ b/test/server.cpp
@@ -84,7 +84,7 @@ const ResourceCollection resources200Compressible{
// TODO: implement cache management of i18n resources
//{ STATIC_CONTENT, "/ROOT%23%3F/skin/i18n/test.json?cacheid=unknown" },
{ DYNAMIC_CONTENT, "/ROOT%23%3F/skin/languages.js" },
- { STATIC_CONTENT, "/ROOT%23%3F/skin/languages.js?cacheid=5be77f5c" },
+ { STATIC_CONTENT, "/ROOT%23%3F/skin/languages.js?cacheid=355e4885" },
{ DYNAMIC_CONTENT, "/ROOT%23%3F/catalog/search" },
@@ -289,7 +289,7 @@ R"EXPECTEDRESULT( href="/ROOT%23%3F/skin/kiwix.css?cacheid=2158fad9"
-
+
@@ -323,7 +323,7 @@ R"EXPECTEDRESULT(
-
+
const blankPageUrl = root + "/skin/blank.html?cacheid=6b1fa032";
@@ -1152,7 +1152,7 @@ R"EXPECTEDRESPONSE(const uiLanguages = [
{
"iso_code": "dag",
"self_name": "Silimiinsili",
- "translation_count": 24
+ "translation_count": 48
},
{
"iso_code": "de",
@@ -1172,7 +1172,7 @@ R"EXPECTEDRESPONSE(const uiLanguages = [
{
"iso_code": "fi",
"self_name": "suomi",
- "translation_count": 22
+ "translation_count": 23
},
{
"iso_code": "fr",
@@ -1299,6 +1299,11 @@ R"EXPECTEDRESPONSE(const uiLanguages = [
"self_name": "Svenska",
"translation_count": 57
},
+ {
+ "iso_code": "sw",
+ "self_name": "Kiswahili",
+ "translation_count": 57
+ },
{
"iso_code": "te",
"self_name": "ఇంగ్లీషు",