summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaakko Keränen <jaakko.keranen@iki.fi>2021-05-03 06:25:52 +0300
committerJaakko Keränen <jaakko.keranen@iki.fi>2021-05-03 06:25:52 +0300
commit0336bc677685ad3c7765f6bb46d1b7e3d66935de (patch)
tree0527b057cf868ac68b7073d73cfe567a8ee9d107
parent7584277f59646fb38c80242a2503176e073be367 (diff)
Lang: Added new and missing strings
IssueID #192
-rw-r--r--po/en.po66
-rw-r--r--res/lang/de.binbin18855 -> 19776 bytes
-rw-r--r--res/lang/en.binbin17343 -> 18264 bytes
-rw-r--r--res/lang/es.binbin19434 -> 20355 bytes
-rw-r--r--res/lang/fi.binbin19137 -> 20058 bytes
-rw-r--r--res/lang/fr.binbin19888 -> 20809 bytes
-rw-r--r--res/lang/ia.binbin19326 -> 20247 bytes
-rw-r--r--res/lang/ie.binbin18558 -> 19479 bytes
-rw-r--r--res/lang/ru.binbin29046 -> 29967 bytes
-rw-r--r--res/lang/sr.binbin27541 -> 28462 bytes
-rw-r--r--res/lang/zh_Hans.binbin16733 -> 17654 bytes
-rw-r--r--res/lang/zh_Hant.binbin16807 -> 17728 bytes
-rw-r--r--src/app.c15
-rw-r--r--src/gempub.c26
-rw-r--r--src/ui/documentwidget.c2
-rw-r--r--src/ui/root.c16
16 files changed, 94 insertions, 31 deletions
diff --git a/po/en.po b/po/en.po
index 6644d591..c2d9f413 100644
--- a/po/en.po
+++ b/po/en.po
@@ -152,6 +152,18 @@ msgstr "Close Tabs To Right"
152msgid "menu.duptab" 152msgid "menu.duptab"
153msgstr "Duplicate Tab" 153msgstr "Duplicate Tab"
154 154
155msgid "menu.split.merge"
156msgstr "Merge Tabs"
157
158msgid "menu.split.swap"
159msgstr "Swap Sides"
160
161msgid "menu.split.horizontal"
162msgstr "Horizontal"
163
164msgid "menu.split.vertical"
165msgstr "Vertical"
166
155msgid "menu.openlocation" 167msgid "menu.openlocation"
156msgstr "Open Location…" 168msgstr "Open Location…"
157 169
@@ -630,6 +642,9 @@ msgstr "The page contents are still being downloaded."
630msgid "dlg.save.size" 642msgid "dlg.save.size"
631msgstr "Size:" 643msgstr "Size:"
632 644
645msgid "dlg.save.opendownload"
646msgstr "Open Downloaded File"
647
633msgid "heading.save.error" 648msgid "heading.save.error"
634msgstr "ERROR SAVING FILE" 649msgstr "ERROR SAVING FILE"
635 650
@@ -911,6 +926,21 @@ msgstr "Country:"
911msgid "dlg.newident.create" 926msgid "dlg.newident.create"
912msgstr "Create Identity" 927msgstr "Create Identity"
913 928
929msgid "heading.newident.missing"
930msgstr "MISSING INFO"
931
932msgid "dlg.newindent.missing.commonname"
933msgstr "A \"Common name\" must be specified."
934
935msgid "heading.newident.date.bad"
936msgstr "INVALID DATE"
937
938msgid "dlg.newident.date.past"
939msgstr "Expiration date must be in the future."
940
941msgid "dlg.newident.date.example"
942msgstr "Please check the \"Valid until\" date. Examples:\n• 2030\n• 2025-06-30\n• 2021-12-31 23:59:59"
943
914msgid "heading.feedcfg" 944msgid "heading.feedcfg"
915msgstr "FEED SETTINGS" 945msgstr "FEED SETTINGS"
916 946
@@ -1415,3 +1445,39 @@ msgstr "Invalid Certificate"
1415 1445
1416msgid "error.cert.invalid.msg" 1446msgid "error.cert.invalid.msg"
1417msgstr "The provided client certificate is expired or invalid." 1447msgstr "The provided client certificate is expired or invalid."
1448
1449msgid "gempub.cover.viewlocal"
1450msgstr "This Gempub book can be viewed after it has been saved locally."
1451
1452msgid "gempub.cover.untitled"
1453msgstr "Untitled Book"
1454
1455msgid "gempub.cover.aboutbook"
1456msgstr "About this book"
1457
1458msgid "gempub.cover.view"
1459msgstr "View Gempub contents"
1460
1461msgid "gempub.cover.image"
1462msgstr "Cover image"
1463
1464msgid "gempub.meta.author"
1465msgstr "Author"
1466
1467msgid "gempub.meta.version"
1468msgstr "Version"
1469
1470msgid "gempub.meta.revdate"
1471msgstr "Revision date"
1472
1473msgid "gempub.meta.pub"
1474msgstr "Published"
1475
1476msgid "gempub.meta.pubdate"
1477msgstr "Publish date"
1478
1479msgid "gempub.meta.lang"
1480msgstr "Language"
1481
1482msgid "gempub.meta.license"
1483msgstr "License" \ No newline at end of file
diff --git a/res/lang/de.bin b/res/lang/de.bin
index 84482e24..ff0018b7 100644
--- a/res/lang/de.bin
+++ b/res/lang/de.bin
Binary files differ
diff --git a/res/lang/en.bin b/res/lang/en.bin
index e9a2b78d..83164f2e 100644
--- a/res/lang/en.bin
+++ b/res/lang/en.bin
Binary files differ
diff --git a/res/lang/es.bin b/res/lang/es.bin
index 90fd5c56..0b0a96c3 100644
--- a/res/lang/es.bin
+++ b/res/lang/es.bin
Binary files differ
diff --git a/res/lang/fi.bin b/res/lang/fi.bin
index b9d36a25..cd40873b 100644
--- a/res/lang/fi.bin
+++ b/res/lang/fi.bin
Binary files differ
diff --git a/res/lang/fr.bin b/res/lang/fr.bin
index d356cb9a..04a72088 100644
--- a/res/lang/fr.bin
+++ b/res/lang/fr.bin
Binary files differ
diff --git a/res/lang/ia.bin b/res/lang/ia.bin
index b79f60c7..4ec00896 100644
--- a/res/lang/ia.bin
+++ b/res/lang/ia.bin
Binary files differ
diff --git a/res/lang/ie.bin b/res/lang/ie.bin
index 32f58e81..dcef1187 100644
--- a/res/lang/ie.bin
+++ b/res/lang/ie.bin
Binary files differ
diff --git a/res/lang/ru.bin b/res/lang/ru.bin
index 5b7740e2..572b7d1f 100644
--- a/res/lang/ru.bin
+++ b/res/lang/ru.bin
Binary files differ
diff --git a/res/lang/sr.bin b/res/lang/sr.bin
index 3049e072..e73caafb 100644
--- a/res/lang/sr.bin
+++ b/res/lang/sr.bin
Binary files differ
diff --git a/res/lang/zh_Hans.bin b/res/lang/zh_Hans.bin
index c01c8d4b..d445954f 100644
--- a/res/lang/zh_Hans.bin
+++ b/res/lang/zh_Hans.bin
Binary files differ
diff --git a/res/lang/zh_Hant.bin b/res/lang/zh_Hant.bin
index 57529199..812f97da 100644
--- a/res/lang/zh_Hant.bin
+++ b/res/lang/zh_Hant.bin
Binary files differ
diff --git a/src/app.c b/src/app.c
index 52b004e2..3c1dd025 100644
--- a/src/app.c
+++ b/src/app.c
@@ -1591,8 +1591,8 @@ static iBool handleIdentityCreationCommands_(iWidget *dlg, const char *cmd) {
1591 const iString *country = text_InputWidget (findChild_Widget(dlg, "ident.country")); 1591 const iString *country = text_InputWidget (findChild_Widget(dlg, "ident.country"));
1592 const iBool isTemp = isSelected_Widget(findChild_Widget(dlg, "ident.temp")); 1592 const iBool isTemp = isSelected_Widget(findChild_Widget(dlg, "ident.temp"));
1593 if (isEmpty_String(commonName)) { 1593 if (isEmpty_String(commonName)) {
1594 makeSimpleMessage_Widget(orange_ColorEscape "MISSING INFO", 1594 makeSimpleMessage_Widget(orange_ColorEscape "${heading.newident.missing}",
1595 "A \"Common name\" must be specified."); 1595 "${dlg.newindent.missing.commonname}");
1596 return iTrue; 1596 return iTrue;
1597 } 1597 }
1598 iDate until; 1598 iDate until;
@@ -1606,11 +1606,8 @@ static iBool handleIdentityCreationCommands_(iWidget *dlg, const char *cmd) {
1606 "%04u-%u-%u %u:%u:%u", 1606 "%04u-%u-%u %u:%u:%u",
1607 &val[0], &val[1], &val[2], &val[3], &val[4], &val[5]); 1607 &val[0], &val[1], &val[2], &val[3], &val[4], &val[5]);
1608 if (n <= 0) { 1608 if (n <= 0) {
1609 makeSimpleMessage_Widget(orange_ColorEscape "INVALID DATE", 1609 makeSimpleMessage_Widget(orange_ColorEscape "${heading.newident.date.bad}",
1610 "Please check the \"Valid until\" date. Examples:\n" 1610 "${dlg.newident.date.example}");
1611 "\u2022 2030\n"
1612 "\u2022 2025-06-30\n"
1613 "\u2022 2021-12-31 23:59:59");
1614 return iTrue; 1611 return iTrue;
1615 } 1612 }
1616 until.year = val[0]; 1613 until.year = val[0];
@@ -1625,8 +1622,8 @@ static iBool handleIdentityCreationCommands_(iWidget *dlg, const char *cmd) {
1625 initCurrent_Time(&now); 1622 initCurrent_Time(&now);
1626 init_Time(&t, &until); 1623 init_Time(&t, &until);
1627 if (cmp_Time(&t, &now) <= 0) { 1624 if (cmp_Time(&t, &now) <= 0) {
1628 makeSimpleMessage_Widget(orange_ColorEscape "INVALID DATE", 1625 makeSimpleMessage_Widget(orange_ColorEscape "${heading.newident.date.bad}",
1629 "Expiration date must be in the future."); 1626 "${dlg.newident.date.past}");
1630 return iTrue; 1627 return iTrue;
1631 } 1628 }
1632 } 1629 }
diff --git a/src/gempub.c b/src/gempub.c
index 448349c8..c9b1c242 100644
--- a/src/gempub.c
+++ b/src/gempub.c
@@ -79,7 +79,7 @@ static iBool parseMetadata_Gempub_(iGempub *d) {
79 "cover:", 79 "cover:",
80 }; 80 };
81 /* Default values. */ 81 /* Default values. */
82 setCStr_String(&d->props[title_GempubProperty], "Untitled Book"); 82 setCStr_String(&d->props[title_GempubProperty], "${gempub.cover.untitled}");
83 setCStr_String(&d->props[cover_GempubProperty], 83 setCStr_String(&d->props[cover_GempubProperty],
84 entryCStr_Archive(d->arch, "cover.jpg") ? "cover.jpg" : 84 entryCStr_Archive(d->arch, "cover.jpg") ? "cover.jpg" :
85 entryCStr_Archive(d->arch, "cover.png") ? "cover.png" : ""); 85 entryCStr_Archive(d->arch, "cover.png") ? "cover.png" : "");
@@ -173,38 +173,38 @@ iString *coverPageSource_Gempub(const iGempub *d) {
173 appendFormat_String(out, "%s\n", cstr_String(&d->props[description_GempubProperty])); 173 appendFormat_String(out, "%s\n", cstr_String(&d->props[description_GempubProperty]));
174 } 174 }
175 appendCStr_String(out, "\n"); 175 appendCStr_String(out, "\n");
176 appendProperty_Gempub_(d, "Author:", author_GempubProperty, out); 176 appendProperty_Gempub_(d, "${gempub.meta.author}:", author_GempubProperty, out);
177 if (!isRemote_Gempub_(d)) { 177 if (!isRemote_Gempub_(d)) {
178 appendFormat_String(out, "\n=> %s " book_Icon " View Gempub contents\n", 178 appendFormat_String(out, "\n=> %s " book_Icon " ${gempub.cover.view}\n",
179 cstrCollect_String(concat_Path(baseUrl, &d->props[index_GempubProperty]))); 179 cstrCollect_String(concat_Path(baseUrl, &d->props[index_GempubProperty])));
180 if (hasProperty_Gempub_(d, cover_GempubProperty)) { 180 if (hasProperty_Gempub_(d, cover_GempubProperty)) {
181 appendFormat_String(out, "\n=> %s Cover image\n", 181 appendFormat_String(out, "\n=> %s ${gempub.cover.image}\n",
182 cstrCollect_String(concat_Path(baseUrl, &d->props[cover_GempubProperty]))); 182 cstrCollect_String(concat_Path(baseUrl, &d->props[cover_GempubProperty])));
183 } 183 }
184 } 184 }
185 else { 185 else {
186 iString *key = collectNew_String(); /* TODO: add a helper for this */ 186 iString *key = collectNew_String(); /* TODO: add a helper for this */
187 toString_Sym(SDLK_s, KMOD_PRIMARY, key); 187 toString_Sym(SDLK_s, KMOD_PRIMARY, key);
188 appendCStr_String(out, "\nThis Gempub book can be viewed after it has been saved locally. "); 188 appendCStr_String(out, "\n${gempub.cover.viewlocal} ");
189 appendFormat_String(out, 189 appendFormat_String(out,
190 cstr_Lang("error.unsupported.suggestsave"), 190 cstr_Lang("error.unsupported.suggestsave"),
191 cstr_String(key), 191 cstr_String(key),
192 saveToDownloads_Label); 192 saveToDownloads_Label);
193 translate_Lang(out);
194 appendCStr_String(out, "\n"); 193 appendCStr_String(out, "\n");
195 } 194 }
196 appendCStr_String(out, "\n## About this book\n"); 195 appendCStr_String(out, "\n## ${gempub.cover.aboutbook}\n");
197 appendProperty_Gempub_(d, "Version:", version_GempubProperty, out); 196 appendProperty_Gempub_(d, "${gempub.meta.version}:", version_GempubProperty, out);
198 appendProperty_Gempub_(d, "Revision date:", revisionDate_GempubProperty, out); 197 appendProperty_Gempub_(d, "${gempub.meta.revdate}:", revisionDate_GempubProperty, out);
199 if (hasProperty_Gempub_(d, publishDate_GempubProperty)) { 198 if (hasProperty_Gempub_(d, publishDate_GempubProperty)) {
200 appendProperty_Gempub_(d, "Publish date:", publishDate_GempubProperty, out); 199 appendProperty_Gempub_(d, "${gempub.meta.pubdate}:", publishDate_GempubProperty, out);
201 } 200 }
202 else { 201 else {
203 appendProperty_Gempub_(d, "Published:", published_GempubProperty, out); 202 appendProperty_Gempub_(d, "${gempub.meta.pub}:", published_GempubProperty, out);
204 } 203 }
205 appendProperty_Gempub_(d, "Language:", language_GempubProperty, out); 204 appendProperty_Gempub_(d, "${gempub.meta.lang}:", language_GempubProperty, out);
206 appendProperty_Gempub_(d, "License:", license_GempubProperty, out); 205 appendProperty_Gempub_(d, "${gempub.meta.license}:", license_GempubProperty, out);
207 appendProperty_Gempub_(d, "\u00a9", copyright_GempubProperty, out); 206 appendProperty_Gempub_(d, "\u00a9", copyright_GempubProperty, out);
207 translate_Lang(out);
208 return out; 208 return out;
209} 209}
210 210
diff --git a/src/ui/documentwidget.c b/src/ui/documentwidget.c
index 290bf95e..4158b719 100644
--- a/src/ui/documentwidget.c
+++ b/src/ui/documentwidget.c
@@ -1762,7 +1762,7 @@ static void saveToDownloads_(const iString *url, const iString *mime, const iBlo
1762 exportDownloadedFile_iOS(savePath); 1762 exportDownloadedFile_iOS(savePath);
1763#else 1763#else
1764 const iMenuItem items[2] = { 1764 const iMenuItem items[2] = {
1765 { "Open Downloaded File", 0, 0, 1765 { "${dlg.save.opendownload}", 0, 0,
1766 format_CStr("!open url:%s", cstrCollect_String(makeFileUrl_String(savePath))) }, 1766 format_CStr("!open url:%s", cstrCollect_String(makeFileUrl_String(savePath))) },
1767 { "${dlg.message.ok}", 0, 0, "message.ok" }, 1767 { "${dlg.message.ok}", 0, 0, "message.ok" },
1768 }; 1768 };
diff --git a/src/ui/root.c b/src/ui/root.c
index d660c468..17682125 100644
--- a/src/ui/root.c
+++ b/src/ui/root.c
@@ -1252,16 +1252,16 @@ void createUserInterface_Root(iRoot *d) {
1252 }, 1252 },
1253 4); 1253 4);
1254 iWidget *splitMenu = makeMenu_Widget(root, (iMenuItem[]){ 1254 iWidget *splitMenu = makeMenu_Widget(root, (iMenuItem[]){
1255 { "Merge Tabs", '1', 0, "ui.split arg:0" }, 1255 { "${menu.split.merge}", '1', 0, "ui.split arg:0" },
1256 { "Swap Sides", SDLK_x, 0, "ui.split swap:1" }, 1256 { "${menu.split.swap}", SDLK_x, 0, "ui.split swap:1" },
1257 { "---", 0, 0, NULL }, 1257 { "---", 0, 0, NULL },
1258 { "Horizontal", '2', 0, "ui.split arg:3 axis:0" }, 1258 { "${menu.split.horizontal}", '2', 0, "ui.split arg:3 axis:0" },
1259 { "Horizontal 1:2", SDLK_d, 0, "ui.split arg:1 axis:0" }, 1259 { "${menu.split.horizontal} 1:2", SDLK_d, 0, "ui.split arg:1 axis:0" },
1260 { "Horizontal 2:1", SDLK_e, 0, "ui.split arg:2 axis:0" }, 1260 { "${menu.split.horizontal} 2:1", SDLK_e, 0, "ui.split arg:2 axis:0" },
1261 { "---", 0, 0, NULL }, 1261 { "---", 0, 0, NULL },
1262 { "Vertical", '3', 0, "ui.split arg:3 axis:1" }, 1262 { "${menu.split.vertical}", '3', 0, "ui.split arg:3 axis:1" },
1263 { "Vertical 1:2", SDLK_f, 0, "ui.split arg:1 axis:1" }, 1263 { "${menu.split.vertical} 1:2", SDLK_f, 0, "ui.split arg:1 axis:1" },
1264 { "Vertical 2:1", SDLK_r, 0, "ui.split arg:2 axis:1" }, 1264 { "${menu.split.vertical} 2:1", SDLK_r, 0, "ui.split arg:2 axis:1" },
1265 }, 10); 1265 }, 10);
1266 setFlags_Widget(splitMenu, disabledWhenHidden_WidgetFlag, iTrue); /* enabled when open */ 1266 setFlags_Widget(splitMenu, disabledWhenHidden_WidgetFlag, iTrue); /* enabled when open */
1267 setId_Widget(tabsMenu, "doctabs.menu"); 1267 setId_Widget(tabsMenu, "doctabs.menu");