diff options
-rw-r--r-- | AUTHORS.md | 24 | ||||
-rw-r--r-- | CMakeLists.txt | 7 | ||||
-rw-r--r-- | Depends-Android.cmake | 2 | ||||
m--------- | lib/the_Foundation | 0 | ||||
-rwxr-xr-x | po/compile.py | 1 | ||||
-rw-r--r-- | po/cs.po | 14 | ||||
-rw-r--r-- | po/eo.po | 20 | ||||
-rw-r--r-- | po/es.po | 9 | ||||
-rw-r--r-- | po/fi.po | 15 | ||||
-rw-r--r-- | po/gl.po | 16 | ||||
-rw-r--r-- | po/ia.po | 394 | ||||
-rw-r--r-- | po/ie.po | 22 | ||||
-rw-r--r-- | po/nl.po | 2107 | ||||
-rw-r--r-- | po/ru.po | 11 | ||||
-rw-r--r-- | po/sr.po | 9 | ||||
-rw-r--r-- | po/tok.po | 22 | ||||
-rw-r--r-- | po/tr.po | 25 | ||||
-rw-r--r-- | po/uk.po | 11 | ||||
-rw-r--r-- | po/zh_Hant.po | 198 | ||||
-rw-r--r-- | res/about/help.gmi | 2 | ||||
-rw-r--r-- | res/about/version.gmi | 21 | ||||
-rw-r--r-- | res/lang/cs.bin | bin | 31806 -> 30937 bytes | |||
-rw-r--r-- | res/lang/de.bin | bin | 30813 -> 29906 bytes | |||
-rw-r--r-- | res/lang/en.bin | bin | 26889 -> 26003 bytes | |||
-rw-r--r-- | res/lang/eo.bin | bin | 25853 -> 24963 bytes | |||
-rw-r--r-- | res/lang/es.bin | bin | 30637 -> 29735 bytes | |||
-rw-r--r-- | res/lang/es_MX.bin | bin | 27959 -> 27062 bytes | |||
-rw-r--r-- | res/lang/fi.bin | bin | 30470 -> 29573 bytes | |||
-rw-r--r-- | res/lang/fr.bin | bin | 31617 -> 30710 bytes | |||
-rw-r--r-- | res/lang/gl.bin | bin | 29822 -> 28913 bytes | |||
-rw-r--r-- | res/lang/hu.bin | bin | 31642 -> 30735 bytes | |||
-rw-r--r-- | res/lang/ia.bin | bin | 28959 -> 28765 bytes | |||
-rw-r--r-- | res/lang/ie.bin | bin | 29557 -> 28672 bytes | |||
-rw-r--r-- | res/lang/isv.bin | bin | 25610 -> 24723 bytes | |||
-rw-r--r-- | res/lang/nl.bin | bin | 0 -> 28092 bytes | |||
-rw-r--r-- | res/lang/pl.bin | bin | 30245 -> 29338 bytes | |||
-rw-r--r-- | res/lang/ru.bin | bin | 45005 -> 44148 bytes | |||
-rw-r--r-- | res/lang/sk.bin | bin | 25946 -> 25059 bytes | |||
-rw-r--r-- | res/lang/sr.bin | bin | 44431 -> 43555 bytes | |||
-rw-r--r-- | res/lang/tok.bin | bin | 27679 -> 26777 bytes | |||
-rw-r--r-- | res/lang/tr.bin | bin | 29863 -> 28911 bytes | |||
-rw-r--r-- | res/lang/uk.bin | bin | 44350 -> 43480 bytes | |||
-rw-r--r-- | res/lang/zh_Hans.bin | bin | 25854 -> 24957 bytes | |||
-rw-r--r-- | res/lang/zh_Hant.bin | bin | 26062 -> 25345 bytes | |||
-rw-r--r-- | src/app.c | 49 | ||||
-rw-r--r-- | src/lang.c | 1 | ||||
-rw-r--r-- | src/macos.h | 2 | ||||
-rw-r--r-- | src/macos.m | 49 | ||||
-rw-r--r-- | src/resources.c | 2 | ||||
-rw-r--r-- | src/resources.h | 1 | ||||
-rw-r--r-- | src/ui/bindingswidget.c | 6 | ||||
-rw-r--r-- | src/ui/documentwidget.c | 24 | ||||
-rw-r--r-- | src/ui/labelwidget.c | 25 | ||||
-rw-r--r-- | src/ui/sidebarwidget.c | 148 | ||||
-rw-r--r-- | src/ui/util.c | 124 | ||||
-rw-r--r-- | src/ui/util.h | 1 | ||||
-rw-r--r-- | src/ui/widget.c | 10 | ||||
-rw-r--r-- | src/ui/widget.h | 3 |
58 files changed, 3117 insertions, 258 deletions
@@ -5,29 +5,30 @@ Lagrange was created by Jaakko Keränen (<jaakko.keranen@iki.fi>) in July 2020. | |||
5 | Legend: `C` code, `T` translation | 5 | Legend: `C` code, `T` translation |
6 | 6 | ||
7 | ``` | 7 | ``` |
8 | C 2847 Jaakko Keränen <jaakko.keranen@iki.fi> | 8 | C 2757 Jaakko Keränen <jaakko.keranen@iki.fi> |
9 | CT 41 Nikolay Korotkiy <sikmir@gmail.com> | 9 | CT 43 Nikolay Korotkiy <sikmir@gmail.com> |
10 | T 39 Olga Smirnova <mistresssilvara@hotmail.com> | 10 | T 41 Olga Smirnova <mistresssilvara@hotmail.com> |
11 | T 35 Alyssa Liddell <e-liss@tuta.io> | 11 | T 39 Alyssa Liddell <e-liss@tuta.io> |
12 | T 28 Anna “CyberTailor” <cyber@sysrq.in> | 12 | T 29 Anna “CyberTailor” <cyber@sysrq.in> |
13 | T 25 Shibo Lyu <github@of.sb> | 13 | T 26 Shibo Lyu <github@of.sb> |
14 | T 23 Страхиња Радић <contact@strahinja.org> | 14 | T 25 Страхиња Радић <contact@strahinja.org> |
15 | T 18 MCMic <come@chilliet.eu> | 15 | T 18 MCMic <come@chilliet.eu> |
16 | T 17 Wally Hackenslacker <mastor89@protonmail.com> | 16 | T 18 Wally Hackenslacker <mastor89@protonmail.com> |
17 | T 11 Tadeš Erban <tadysekerbosek@gmail.com> | 17 | T 13 Xos M <correoxm@disroot.org> |
18 | T 11 Xos M <correoxm@disroot.org> | 18 | T 12 Tadeš Erban <tadysekerbosek@gmail.com> |
19 | T 9 Aaron Fischer <mail@aaron-fischer.net> | 19 | T 9 Aaron Fischer <mail@aaron-fischer.net> |
20 | T 8 El Mau <public@correolibre.net> | 20 | T 8 El Mau <public@correolibre.net> |
21 | T 7 Waterrail <maksymiliankrol03@gmail.com> | 21 | T 7 Waterrail <maksymiliankrol03@gmail.com> |
22 | T 5 Emir <emir_sari@msn.com> | ||
22 | T 5 roy niang <roy@royniang.com> | 23 | T 5 roy niang <roy@royniang.com> |
23 | T 3 Alex Schroeder <alex@alexschroeder.ch> | 24 | T 3 Alex Schroeder <alex@alexschroeder.ch> |
24 | T 3 Botond Balázs <balazsbotond@gmail.com> | 25 | T 3 Botond Balázs <balazsbotond@gmail.com> |
25 | T 3 Emir <emir_sari@msn.com> | ||
26 | C 2 Alyssa Rosenzweig <alyssa@rosenzweig.io> | 26 | C 2 Alyssa Rosenzweig <alyssa@rosenzweig.io> |
27 | T 2 Andrij Mizyk <andmizyk@gmail.com> | 27 | T 2 Andrij Mizyk <andmizyk@gmail.com> |
28 | T 2 Arns Udovič <zordsdavini@arns.lt> | 28 | T 2 Arns Udovič <zordsdavini@arns.lt> |
29 | C 2 Br0000k <77938600+Br0000k@users.noreply.github.com> | 29 | C 2 Br0000k <77938600+Br0000k@users.noreply.github.com> |
30 | T 2 Gabriel de Oliveira Ferreira Machado <goliv04053@tutanota.com> | 30 | T 2 Gabriel de Oliveira Ferreira Machado <goliv04053@tutanota.com> |
31 | T 2 Jop Vernooy <jop@jopv.net> | ||
31 | C 2 Manos Pitsidianakis <el13635@mail.ntua.gr> | 32 | C 2 Manos Pitsidianakis <el13635@mail.ntua.gr> |
32 | T 2 methbkts <methbkts@gmail.com> | 33 | T 2 methbkts <methbkts@gmail.com> |
33 | T 2 tbodt <tblodt@icloud.com> | 34 | T 2 tbodt <tblodt@icloud.com> |
@@ -44,6 +45,7 @@ C 1 Thomas Adam <thomas.adam@smoothwall.net> | |||
44 | C 1 Waweic <waweic@activ.ism.rocks> | 45 | C 1 Waweic <waweic@activ.ism.rocks> |
45 | C 1 Waweic <waweic@protonmail.com> | 46 | C 1 Waweic <waweic@protonmail.com> |
46 | C 1 Zach DeCook <zachdecook@librem.one> | 47 | C 1 Zach DeCook <zachdecook@librem.one> |
48 | C 1 jcromero <jcromero+github@disconfor.me> | ||
47 | C 1 zocker <zocker@10zen.eu> | 49 | C 1 zocker <zocker@10zen.eu> |
48 | ``` | 50 | ``` |
49 | 51 | ||
diff --git a/CMakeLists.txt b/CMakeLists.txt index 211da6db..1bb50791 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
@@ -90,6 +90,7 @@ set (RESOURCES | |||
90 | res/lang/ia.bin | 90 | res/lang/ia.bin |
91 | res/lang/ie.bin | 91 | res/lang/ie.bin |
92 | res/lang/isv.bin | 92 | res/lang/isv.bin |
93 | res/lang/nl.bin | ||
93 | res/lang/pl.bin | 94 | res/lang/pl.bin |
94 | res/lang/ru.bin | 95 | res/lang/ru.bin |
95 | res/lang/sk.bin | 96 | res/lang/sk.bin |
@@ -231,7 +232,7 @@ set (SOURCES | |||
231 | src/ui/scrollwidget.c | 232 | src/ui/scrollwidget.c |
232 | src/ui/scrollwidget.h | 233 | src/ui/scrollwidget.h |
233 | src/ui/sidebarwidget.c | 234 | src/ui/sidebarwidget.c |
234 | src/ui/sidebarwidget.h | 235 | src/ui/sidebarwidget.h |
235 | src/ui/text.c | 236 | src/ui/text.c |
236 | src/ui/text.h | 237 | src/ui/text.h |
237 | src/ui/touch.c | 238 | src/ui/touch.c |
@@ -434,7 +435,7 @@ if (APPLE) | |||
434 | XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "fi.skyjake.lagrange" | 435 | XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "fi.skyjake.lagrange" |
435 | ) | 436 | ) |
436 | if (IOS) | 437 | if (IOS) |
437 | target_compile_definitions (app PUBLIC | 438 | target_compile_definitions (app PUBLIC |
438 | LAGRANGE_IOS_VERSION="${IOS_BUNDLE_VERSION}" | 439 | LAGRANGE_IOS_VERSION="${IOS_BUNDLE_VERSION}" |
439 | LAGRANGE_IOS_BUILD_DATE="${IOS_BUILD_DATE}" | 440 | LAGRANGE_IOS_BUILD_DATE="${IOS_BUILD_DATE}" |
440 | ) | 441 | ) |
@@ -463,7 +464,7 @@ endif () | |||
463 | if (MSYS) | 464 | if (MSYS) |
464 | target_link_libraries (app PUBLIC d2d1 uuid dwmapi) # querying DPI | 465 | target_link_libraries (app PUBLIC d2d1 uuid dwmapi) # querying DPI |
465 | if (ENABLE_WINSPARKLE) | 466 | if (ENABLE_WINSPARKLE) |
466 | target_link_libraries (app PUBLIC winsparkle) | 467 | target_link_libraries (app PUBLIC winsparkle) |
467 | endif () | 468 | endif () |
468 | endif () | 469 | endif () |
469 | if (UNIX) | 470 | if (UNIX) |
diff --git a/Depends-Android.cmake b/Depends-Android.cmake index 3bc57f32..cffcf139 100644 --- a/Depends-Android.cmake +++ b/Depends-Android.cmake | |||
@@ -22,7 +22,7 @@ set (TFDN_ENABLE_INSTALL OFF CACHE BOOL "") | |||
22 | set (TFDN_ENABLE_TESTS OFF CACHE BOOL "") | 22 | set (TFDN_ENABLE_TESTS OFF CACHE BOOL "") |
23 | set (TFDN_ENABLE_WEBREQUEST OFF CACHE BOOL "") | 23 | set (TFDN_ENABLE_WEBREQUEST OFF CACHE BOOL "") |
24 | set (TFDN_ENABLE_SSE41 OFF CACHE BOOL "") | 24 | set (TFDN_ENABLE_SSE41 OFF CACHE BOOL "") |
25 | add_subdirectory (lib/the_Foundation) | 25 | add_subdirectory (lib/the_Foundation) |
26 | add_library (the_Foundation::the_Foundation ALIAS the_Foundation) | 26 | add_library (the_Foundation::the_Foundation ALIAS the_Foundation) |
27 | if (NOT OPENSSL_FOUND) | 27 | if (NOT OPENSSL_FOUND) |
28 | message (FATAL_ERROR "Lagrange requires OpenSSL for TLS. Please check if pkg-config can find 'openssl'.") | 28 | message (FATAL_ERROR "Lagrange requires OpenSSL for TLS. Please check if pkg-config can find 'openssl'.") |
diff --git a/lib/the_Foundation b/lib/the_Foundation | |||
Subproject b780063a686a5ef207a9ef940a0200c8a420c5d | Subproject cd0a22f5f003b723ecc038f287a320fb9b7c1d8 | ||
diff --git a/po/compile.py b/po/compile.py index d29cbb8b..9daa39f1 100755 --- a/po/compile.py +++ b/po/compile.py | |||
@@ -17,6 +17,7 @@ BUILD_LANGS = [ 'en', # base strings | |||
17 | 'ia', | 17 | 'ia', |
18 | 'ie', | 18 | 'ie', |
19 | 'isv', | 19 | 'isv', |
20 | 'nl', | ||
20 | 'pl', | 21 | 'pl', |
21 | 'ru', | 22 | 'ru', |
22 | 'sk', | 23 | 'sk', |
@@ -1,7 +1,7 @@ | |||
1 | msgid "" | 1 | msgid "" |
2 | msgstr "" | 2 | msgstr "" |
3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" | 3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" |
4 | "PO-Revision-Date: 2021-11-25 14:43+0000\n" | 4 | "PO-Revision-Date: 2021-12-01 16:50+0000\n" |
5 | "Last-Translator: Tadeáš Erban <tadysekerbosek@gmail.com>\n" | 5 | "Last-Translator: Tadeáš Erban <tadysekerbosek@gmail.com>\n" |
6 | "Language-Team: Czech <http://weblate.skyjake.fi/projects/lagrange/ui/cs/>\n" | 6 | "Language-Team: Czech <http://weblate.skyjake.fi/projects/lagrange/ui/cs/>\n" |
7 | "Language: cs\n" | 7 | "Language: cs\n" |
@@ -336,7 +336,7 @@ msgid "menu.closetab.left" | |||
336 | msgstr "Zavřít karty vlevo" | 336 | msgstr "Zavřít karty vlevo" |
337 | 337 | ||
338 | msgid "menu.split.merge" | 338 | msgid "menu.split.merge" |
339 | msgstr "Sloučit karty" | 339 | msgstr "Sloučit" |
340 | 340 | ||
341 | msgid "menu.split.vertical" | 341 | msgid "menu.split.vertical" |
342 | msgstr "Svislé" | 342 | msgstr "Svislé" |
@@ -2142,3 +2142,13 @@ msgstr "Ukázat:" | |||
2142 | # Color of text background. | 2142 | # Color of text background. |
2143 | msgid "prefs.gemtext.ansi.bg" | 2143 | msgid "prefs.gemtext.ansi.bg" |
2144 | msgstr "Barva pozadí" | 2144 | msgstr "Barva pozadí" |
2145 | |||
2146 | msgid "prefs.time.24h" | ||
2147 | msgstr "24-hodinový čas" | ||
2148 | |||
2149 | msgid "menu.update" | ||
2150 | msgstr "Zkontrolovat dostupné aktualizace…" | ||
2151 | |||
2152 | # This label should be fairly short so it fits in a button in the sidebar. | ||
2153 | msgid "sidebar.action.feeds.markallread" | ||
2154 | msgstr "Označit vše jako přečtené" | ||
@@ -1,7 +1,7 @@ | |||
1 | msgid "" | 1 | msgid "" |
2 | msgstr "" | 2 | msgstr "" |
3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" | 3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" |
4 | "PO-Revision-Date: 2021-11-28 23:50+0000\n" | 4 | "PO-Revision-Date: 2021-12-08 14:50+0000\n" |
5 | "Last-Translator: Nikolay Korotkiy <sikmir@gmail.com>\n" | 5 | "Last-Translator: Nikolay Korotkiy <sikmir@gmail.com>\n" |
6 | "Language-Team: Esperanto <http://weblate.skyjake.fi/projects/lagrange/ui/eo/>" | 6 | "Language-Team: Esperanto <http://weblate.skyjake.fi/projects/lagrange/ui/eo/>" |
7 | "\n" | 7 | "\n" |
@@ -728,3 +728,21 @@ msgstr "La ŝarĝado finita." | |||
728 | 728 | ||
729 | msgid "menu.update" | 729 | msgid "menu.update" |
730 | msgstr "Kontroli ĝisdatigojn…" | 730 | msgstr "Kontroli ĝisdatigojn…" |
731 | |||
732 | #, c-format | ||
733 | msgid "fontpack.meta.version" | ||
734 | msgstr "Versio %d" | ||
735 | |||
736 | #, c-format | ||
737 | msgid "fontpack.disable" | ||
738 | msgstr "Malebligi \"%s\":n" | ||
739 | |||
740 | #, c-format | ||
741 | msgid "fontpack.enable" | ||
742 | msgstr "Ebligi \"%s\":n" | ||
743 | |||
744 | msgid "heading.fontpack.meta" | ||
745 | msgstr "Tiparoj" | ||
746 | |||
747 | msgid "dlg.dismiss.warning" | ||
748 | msgstr "Ignori averton" | ||
@@ -1,7 +1,7 @@ | |||
1 | msgid "" | 1 | msgid "" |
2 | msgstr "" | 2 | msgstr "" |
3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" | 3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" |
4 | "PO-Revision-Date: 2021-11-28 23:50+0000\n" | 4 | "PO-Revision-Date: 2021-12-07 04:50+0000\n" |
5 | "Last-Translator: Wally Hackenslacker <mastor89@protonmail.com>\n" | 5 | "Last-Translator: Wally Hackenslacker <mastor89@protonmail.com>\n" |
6 | "Language-Team: Spanish <http://weblate.skyjake.fi/projects/lagrange/ui/es/>\n" | 6 | "Language-Team: Spanish <http://weblate.skyjake.fi/projects/lagrange/ui/es/>\n" |
7 | "Language: es\n" | 7 | "Language: es\n" |
@@ -2148,3 +2148,10 @@ msgstr "Color de Fondo" | |||
2148 | 2148 | ||
2149 | msgid "menu.update" | 2149 | msgid "menu.update" |
2150 | msgstr "Buscar Actualizaciones…" | 2150 | msgstr "Buscar Actualizaciones…" |
2151 | |||
2152 | msgid "prefs.time.24h" | ||
2153 | msgstr "Hora de 24 Horas" | ||
2154 | |||
2155 | # This label should be fairly short so it fits in a button in the sidebar. | ||
2156 | msgid "sidebar.action.feeds.markallread" | ||
2157 | msgstr "Leer Todo" | ||
@@ -3,8 +3,8 @@ msgstr "" | |||
3 | "Project-Id-Version: PACKAGE VERSION\n" | 3 | "Project-Id-Version: PACKAGE VERSION\n" |
4 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" | 4 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" |
5 | "POT-Creation-Date: 2021-03-23 09:09+0000\n" | 5 | "POT-Creation-Date: 2021-03-23 09:09+0000\n" |
6 | "PO-Revision-Date: 2021-11-28 23:50+0000\n" | 6 | "PO-Revision-Date: 2021-11-30 05:35+0000\n" |
7 | "Last-Translator: Nikolay Korotkiy <sikmir@gmail.com>\n" | 7 | "Last-Translator: Weblate Admin <jaakko.keranen@iki.fi>\n" |
8 | "Language-Team: Finnish <http://weblate.skyjake.fi/projects/lagrange/ui/fi/>\n" | 8 | "Language-Team: Finnish <http://weblate.skyjake.fi/projects/lagrange/ui/fi/>\n" |
9 | "Language: fi\n" | 9 | "Language: fi\n" |
10 | "MIME-Version: 1.0\n" | 10 | "MIME-Version: 1.0\n" |
@@ -419,9 +419,7 @@ msgid "heading.ident.notes" | |||
419 | msgstr "IDENTITEETIN MUISTIINPANOT" | 419 | msgstr "IDENTITEETIN MUISTIINPANOT" |
420 | 420 | ||
421 | msgid "dlg.ident.notes" | 421 | msgid "dlg.ident.notes" |
422 | msgstr "" | 422 | msgstr "Muistiinpanot liittyen identiteettiin %s:" |
423 | "Muistiinpanot liittyen identiteettiin\n" | ||
424 | "%s:" | ||
425 | 423 | ||
426 | msgid "ident.fingerprint" | 424 | msgid "ident.fingerprint" |
427 | msgstr "Kopioi sormenjälki" | 425 | msgstr "Kopioi sormenjälki" |
@@ -2135,3 +2133,10 @@ msgstr "Taustan väri" | |||
2135 | 2133 | ||
2136 | msgid "menu.update" | 2134 | msgid "menu.update" |
2137 | msgstr "Tarkista päivitykset…" | 2135 | msgstr "Tarkista päivitykset…" |
2136 | |||
2137 | msgid "prefs.time.24h" | ||
2138 | msgstr "24 tunnin kellonajat" | ||
2139 | |||
2140 | # This label should be fairly short so it fits in a button in the sidebar. | ||
2141 | msgid "sidebar.action.feeds.markallread" | ||
2142 | msgstr "Lue kaikki" | ||
@@ -1,7 +1,7 @@ | |||
1 | msgid "" | 1 | msgid "" |
2 | msgstr "" | 2 | msgstr "" |
3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" | 3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" |
4 | "PO-Revision-Date: 2021-11-25 14:43+0000\n" | 4 | "PO-Revision-Date: 2021-12-19 06:50+0000\n" |
5 | "Last-Translator: Xosé M. <correoxm@disroot.org>\n" | 5 | "Last-Translator: Xosé M. <correoxm@disroot.org>\n" |
6 | "Language-Team: Galician <http://weblate.skyjake.fi/projects/lagrange/ui/gl/>" | 6 | "Language-Team: Galician <http://weblate.skyjake.fi/projects/lagrange/ui/gl/>" |
7 | "\n" | 7 | "\n" |
@@ -288,7 +288,7 @@ msgid "menu.duptab" | |||
288 | msgstr "Duplicar lapela" | 288 | msgstr "Duplicar lapela" |
289 | 289 | ||
290 | msgid "menu.split.merge" | 290 | msgid "menu.split.merge" |
291 | msgstr "Fusionar lapelas" | 291 | msgstr "Fusionar" |
292 | 292 | ||
293 | msgid "menu.split.swap" | 293 | msgid "menu.split.swap" |
294 | msgstr "Cambiar os lados" | 294 | msgstr "Cambiar os lados" |
@@ -542,7 +542,7 @@ msgid "feeds.unsubscribe" | |||
542 | msgstr "Dar de baixa…" | 542 | msgstr "Dar de baixa…" |
543 | 543 | ||
544 | msgid "feeds.markallread" | 544 | msgid "feeds.markallread" |
545 | msgstr "Marcar todo como lido" | 545 | msgstr "Marcar todo lido" |
546 | 546 | ||
547 | msgid "feeds.refresh" | 547 | msgid "feeds.refresh" |
548 | msgstr "Actualizar fontes" | 548 | msgstr "Actualizar fontes" |
@@ -2135,3 +2135,13 @@ msgstr "Cartafol:" | |||
2135 | # Color of text background. | 2135 | # Color of text background. |
2136 | msgid "prefs.gemtext.ansi.bg" | 2136 | msgid "prefs.gemtext.ansi.bg" |
2137 | msgstr "Cor BG" | 2137 | msgstr "Cor BG" |
2138 | |||
2139 | msgid "prefs.time.24h" | ||
2140 | msgstr "Formato 24-Horas" | ||
2141 | |||
2142 | # This label should be fairly short so it fits in a button in the sidebar. | ||
2143 | msgid "sidebar.action.feeds.markallread" | ||
2144 | msgstr "Ler todo" | ||
2145 | |||
2146 | msgid "menu.update" | ||
2147 | msgstr "Comprobar actualización…" | ||
@@ -1,7 +1,7 @@ | |||
1 | msgid "" | 1 | msgid "" |
2 | msgstr "" | 2 | msgstr "" |
3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" | 3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" |
4 | "PO-Revision-Date: 2021-07-19 19:06+0000\n" | 4 | "PO-Revision-Date: 2022-01-02 15:50+0000\n" |
5 | "Last-Translator: Olga Smirnova <mistresssilvara@hotmail.com>\n" | 5 | "Last-Translator: Olga Smirnova <mistresssilvara@hotmail.com>\n" |
6 | "Language-Team: Interlingua <http://weblate.skyjake.fi/projects/lagrange/ui/" | 6 | "Language-Team: Interlingua <http://weblate.skyjake.fi/projects/lagrange/ui/" |
7 | "ia/>\n" | 7 | "ia/>\n" |
@@ -133,7 +133,7 @@ msgid "toolbar.outline" | |||
133 | msgstr "Structura del pagina" | 133 | msgstr "Structura del pagina" |
134 | 134 | ||
135 | msgid "hint.findtext" | 135 | msgid "hint.findtext" |
136 | msgstr "Trovar texto in le pagina" | 136 | msgstr "trovar texto in le pagina" |
137 | 137 | ||
138 | msgid "status.feeds" | 138 | msgid "status.feeds" |
139 | msgstr "Actualisation del syndicationes" | 139 | msgstr "Actualisation del syndicationes" |
@@ -760,8 +760,8 @@ msgstr "Certificato non valide" | |||
760 | #, c-format | 760 | #, c-format |
761 | msgid "ident.usedonurls" | 761 | msgid "ident.usedonurls" |
762 | msgid_plural "ident.usedonurls.n" | 762 | msgid_plural "ident.usedonurls.n" |
763 | msgstr[0] "Usate por %zu URL" | 763 | msgstr[0] "Usate por %u URL" |
764 | msgstr[1] "Usate por %zu URLs" | 764 | msgstr[1] "Usate por %u URLs" |
765 | 765 | ||
766 | #, c-format | 766 | #, c-format |
767 | msgid "dlg.import.add" | 767 | msgid "dlg.import.add" |
@@ -926,9 +926,7 @@ msgstr "Vide %sAdjuta%s por plus de information re certificatos de cliente TLS." | |||
926 | 926 | ||
927 | #, c-format | 927 | #, c-format |
928 | msgid "dlg.confirm.unsub" | 928 | msgid "dlg.confirm.unsub" |
929 | msgstr "" | 929 | msgstr "Disabonar le syndication «%s»?" |
930 | "Disabonar le syndication\n" | ||
931 | "«%s»?" | ||
932 | 930 | ||
933 | msgid "heading.pageinfo" | 931 | msgid "heading.pageinfo" |
934 | msgstr "INFORMATION RE LE PAGINA" | 932 | msgstr "INFORMATION RE LE PAGINA" |
@@ -1001,7 +999,7 @@ msgid "error.tls" | |||
1001 | msgstr "Fallimento del rete o TLS" | 999 | msgstr "Fallimento del rete o TLS" |
1002 | 1000 | ||
1003 | msgid "error.tls.msg" | 1001 | msgid "error.tls.msg" |
1004 | msgstr "Fallite a communicar con le servitor. Ecce le message de error:" | 1002 | msgstr "Fallite a communicar con le servitor." |
1005 | 1003 | ||
1006 | msgid "error.slowdown" | 1004 | msgid "error.slowdown" |
1007 | msgstr "Relentamento" | 1005 | msgstr "Relentamento" |
@@ -1020,8 +1018,8 @@ msgstr "Monstrar tote" | |||
1020 | 1018 | ||
1021 | msgid "num.bytes" | 1019 | msgid "num.bytes" |
1022 | msgid_plural "num.bytes.n" | 1020 | msgid_plural "num.bytes.n" |
1023 | msgstr[0] "%zu byte" | 1021 | msgstr[0] "%u byte" |
1024 | msgstr[1] "%zu bytes" | 1022 | msgstr[1] "%u bytes" |
1025 | 1023 | ||
1026 | msgid "prefs.doctheme.name.colorfuldark" | 1024 | msgid "prefs.doctheme.name.colorfuldark" |
1027 | msgstr "Colorate obscur" | 1025 | msgstr "Colorate obscur" |
@@ -1211,9 +1209,8 @@ msgstr "Actualisar marcapaginas remote" | |||
1211 | #, c-format | 1209 | #, c-format |
1212 | msgid "dlg.confirm.ident.delete" | 1210 | msgid "dlg.confirm.ident.delete" |
1213 | msgstr "" | 1211 | msgstr "" |
1214 | "Vole tu vermente deler le identitate\n" | 1212 | "Vole tu vermente deler le identitate %s«%s»%s con su certificato e clave " |
1215 | "%s%s%s\n" | 1213 | "private?" |
1216 | "con su certificato e clave private?" | ||
1217 | 1214 | ||
1218 | msgid "lang.ie" | 1215 | msgid "lang.ie" |
1219 | msgstr "Interlingue" | 1216 | msgstr "Interlingue" |
@@ -1241,14 +1238,14 @@ msgstr "Le contento del pagina se carga ancora." | |||
1241 | #, c-format | 1238 | #, c-format |
1242 | msgid "feeds.list.counts" | 1239 | msgid "feeds.list.counts" |
1243 | msgid_plural "feeds.list.counts.n" | 1240 | msgid_plural "feeds.list.counts.n" |
1244 | msgstr[0] "%zu abonate syndication que contine %%s.\n" | 1241 | msgstr[0] "%u abonate syndication que contine %%s.\n" |
1245 | msgstr[1] "%zu abonate syndicationes que contine %%s.\n" | 1242 | msgstr[1] "%u abonate syndicationes que contine %%s.\n" |
1246 | 1243 | ||
1247 | #, c-format | 1244 | #, c-format |
1248 | msgid "feeds.list.entrycount" | 1245 | msgid "feeds.list.entrycount" |
1249 | msgid_plural "feeds.list.entrycount.n" | 1246 | msgid_plural "feeds.list.entrycount.n" |
1250 | msgstr[0] "%zu elemento in toto" | 1247 | msgstr[0] "%u elemento in toto" |
1251 | msgstr[1] "%zu elementos in toto" | 1248 | msgstr[1] "%u elementos in toto" |
1252 | 1249 | ||
1253 | msgid "dlg.autoreload" | 1250 | msgid "dlg.autoreload" |
1254 | msgstr "Interstitio de recarga automatic por iste scheda." | 1251 | msgstr "Interstitio de recarga automatic por iste scheda." |
@@ -1458,7 +1455,7 @@ msgid "menu.split.vertical" | |||
1458 | msgstr "Vertical" | 1455 | msgstr "Vertical" |
1459 | 1456 | ||
1460 | msgid "menu.view.split" | 1457 | msgid "menu.view.split" |
1461 | msgstr "Finder le vista..." | 1458 | msgstr "Finder le vista…" |
1462 | 1459 | ||
1463 | msgid "bookmark.tag.linksplit" | 1460 | msgid "bookmark.tag.linksplit" |
1464 | msgstr "Ligamines que aperi al latere" | 1461 | msgstr "Ligamines que aperi al latere" |
@@ -1507,9 +1504,8 @@ msgstr "Sortir le archivo" | |||
1507 | #, c-format | 1504 | #, c-format |
1508 | msgid "archive.summary" | 1505 | msgid "archive.summary" |
1509 | msgid_plural "archive.summary.n" | 1506 | msgid_plural "archive.summary.n" |
1510 | msgstr[0] "Iste archivo contine %zu elemento e su dimension comprimite es %.1f MB." | 1507 | msgstr[0] "Iste archivo contine %u elemento e su dimension comprimite es %.1f MB." |
1511 | msgstr[1] "" | 1508 | msgstr[1] "Iste archivo contine %u elementos e su dimension comprimite es %.1f MB." |
1512 | "Iste archivo contine %zu elementos e su dimension comprimite es %.1f MB." | ||
1513 | 1509 | ||
1514 | msgid "dir.empty" | 1510 | msgid "dir.empty" |
1515 | msgstr "Iste directorio es vacue." | 1511 | msgstr "Iste directorio es vacue." |
@@ -1517,8 +1513,8 @@ msgstr "Iste directorio es vacue." | |||
1517 | #, c-format | 1513 | #, c-format |
1518 | msgid "dir.summary" | 1514 | msgid "dir.summary" |
1519 | msgid_plural "dir.summary.n" | 1515 | msgid_plural "dir.summary.n" |
1520 | msgstr[0] "Iste directorio contine %zu elemento." | 1516 | msgstr[0] "Iste directorio contine %u elemento." |
1521 | msgstr[1] "Iste directorio contine %zu elementos." | 1517 | msgstr[1] "Iste directorio contine %u elementos." |
1522 | 1518 | ||
1523 | msgid "keys.tab.close.other" | 1519 | msgid "keys.tab.close.other" |
1524 | msgstr "Clauder le altere schedas" | 1520 | msgstr "Clauder le altere schedas" |
@@ -1579,3 +1575,355 @@ msgstr "DELER LE FILE" | |||
1579 | 1575 | ||
1580 | msgid "dlg.file.delete" | 1576 | msgid "dlg.file.delete" |
1581 | msgstr "Deler" | 1577 | msgstr "Deler" |
1578 | |||
1579 | msgid "upload.file.name" | ||
1580 | msgstr "Nomine de file:" | ||
1581 | |||
1582 | msgid "upload.file.drophere" | ||
1583 | msgstr "(trahe e depone un file al fenestra)" | ||
1584 | |||
1585 | msgid "upload.mime" | ||
1586 | msgstr "Typo MIME:" | ||
1587 | |||
1588 | msgid "upload.token" | ||
1589 | msgstr "Token:" | ||
1590 | |||
1591 | msgid "prefs.scrollspeed.mouse" | ||
1592 | msgstr "Velocitate del mus:" | ||
1593 | |||
1594 | msgid "dlg.newident.more" | ||
1595 | msgstr "Plus…" | ||
1596 | |||
1597 | msgid "dlg.fontpack.classic" | ||
1598 | msgstr "Discargar le fontpack (25 MB)" | ||
1599 | |||
1600 | msgid "prefs.returnkey.linebreak" | ||
1601 | msgstr "Ruptura de linea" | ||
1602 | |||
1603 | msgid "error.certverify" | ||
1604 | msgstr "Servitor non fidabile" | ||
1605 | |||
1606 | msgid "prefs.imagestyle" | ||
1607 | msgstr "Colorisar imagines:" | ||
1608 | |||
1609 | msgid "prefs.font.mono" | ||
1610 | msgstr "Preformattate:" | ||
1611 | |||
1612 | # Font to use for headings and body when Monospace body is enabled. | ||
1613 | msgid "prefs.font.monodoc" | ||
1614 | msgstr "Typo de characteres mono-spatio:" | ||
1615 | |||
1616 | msgid "upload.port" | ||
1617 | msgstr "Porta…" | ||
1618 | |||
1619 | msgid "heading.uploadport" | ||
1620 | msgstr "PORTA DE INCARGAMENTO DE TITAN" | ||
1621 | |||
1622 | msgid "prefs.returnkey.accept" | ||
1623 | msgstr "Acceptar" | ||
1624 | |||
1625 | msgid "prefs.returnkey" | ||
1626 | msgstr "Comportamento del clave Enter:" | ||
1627 | |||
1628 | msgid "prefs.time.24h" | ||
1629 | msgstr "Tempore a 24-horas" | ||
1630 | |||
1631 | msgid "prefs.imagestyle.original" | ||
1632 | msgstr "Nulle" | ||
1633 | |||
1634 | msgid "prefs.imagestyle.text" | ||
1635 | msgstr "Color del texto" | ||
1636 | |||
1637 | msgid "prefs.gemtext.ansi" | ||
1638 | msgstr "Escappamentos ANSI:" | ||
1639 | |||
1640 | # Color of text background. | ||
1641 | msgid "prefs.gemtext.ansi.bg" | ||
1642 | msgstr "Color de fundo" | ||
1643 | |||
1644 | msgid "prefs.gemtext.ansi.fontstyle" | ||
1645 | msgstr "Stilo del characteres" | ||
1646 | |||
1647 | msgid "prefs.memorysize" | ||
1648 | msgstr "Dimension de memoria:" | ||
1649 | |||
1650 | msgid "keys.upload" | ||
1651 | msgstr "Incargar un pagina via Titan" | ||
1652 | |||
1653 | msgid "error.server.msg" | ||
1654 | msgstr "Le servitor ha respondite:" | ||
1655 | |||
1656 | # Action label | ||
1657 | msgid "fontpack.meta.viewfile" | ||
1658 | msgstr "Vider le file" | ||
1659 | |||
1660 | msgid "dlg.newident.scope" | ||
1661 | msgstr "Usar pro:" | ||
1662 | |||
1663 | msgid "menu.pageinfo" | ||
1664 | msgstr "Monstrar information re le pagina" | ||
1665 | |||
1666 | msgid "menu.save.downloads.open" | ||
1667 | msgstr "Salvar a Discargas e aperir le file" | ||
1668 | |||
1669 | msgid "prefs.scrollspeed.keyboard" | ||
1670 | msgstr "Velocitate de claviero:" | ||
1671 | |||
1672 | msgid "num.files" | ||
1673 | msgid_plural "num.files.n" | ||
1674 | msgstr[0] "%u dossier" | ||
1675 | msgstr[1] "%u dossiers" | ||
1676 | |||
1677 | msgid "prefs.font.ui" | ||
1678 | msgstr "IdU:" | ||
1679 | |||
1680 | msgid "fontpack.meta.disabled" | ||
1681 | msgstr ", inactive" | ||
1682 | |||
1683 | #, c-format | ||
1684 | msgid "fontpack.enable" | ||
1685 | msgstr "Activar «%s»" | ||
1686 | |||
1687 | #, c-format | ||
1688 | msgid "fontpack.disable" | ||
1689 | msgstr "Disactivar «%s»" | ||
1690 | |||
1691 | msgid "fontpack.export" | ||
1692 | msgstr "Vider un patrono de fontpack.ini" | ||
1693 | |||
1694 | #, c-format | ||
1695 | msgid "fontpack.install" | ||
1696 | msgstr "Installar «%s»" | ||
1697 | |||
1698 | #, c-format | ||
1699 | msgid "fontpack.upgrade" | ||
1700 | msgstr "Promover «%s» al version %d" | ||
1701 | |||
1702 | msgid "media.untitled.image" | ||
1703 | msgstr "Imagine" | ||
1704 | |||
1705 | msgid "media.untitled.audio" | ||
1706 | msgstr "Audio" | ||
1707 | |||
1708 | msgid "dlg.fontpack.delete" | ||
1709 | msgstr "Deler le fontpack" | ||
1710 | |||
1711 | msgid "prefs.font.body" | ||
1712 | msgstr "Corpore:" | ||
1713 | |||
1714 | msgid "heading.fontpack.meta.enabled" | ||
1715 | msgstr "Fontpacks active" | ||
1716 | |||
1717 | msgid "heading.fontpack.meta.disabled" | ||
1718 | msgstr "Fontpacks inactive" | ||
1719 | |||
1720 | msgid "menu.newfolder" | ||
1721 | msgstr "Nove dossier…" | ||
1722 | |||
1723 | # used for Preferences on mobile | ||
1724 | msgid "menu.settings" | ||
1725 | msgstr "Parametros" | ||
1726 | |||
1727 | # keep this short (3x1 horiz layout) | ||
1728 | msgid "menu.selectall" | ||
1729 | msgstr "Seliger toto" | ||
1730 | |||
1731 | # keep this short (3x1 horiz layout) | ||
1732 | msgid "menu.delete" | ||
1733 | msgstr "Deler" | ||
1734 | |||
1735 | #, c-format | ||
1736 | msgid "dlg.bookmarks.delete" | ||
1737 | msgid_plural "dlg.bookmarks.delete.n" | ||
1738 | msgstr[0] "Deler le marcapagina" | ||
1739 | msgstr[1] "Deler %u marcapaginas" | ||
1740 | |||
1741 | msgid "bookmark.export.count" | ||
1742 | msgid_plural "bookmark.export.count.n" | ||
1743 | msgstr[0] "Vos have %d marcapagina." | ||
1744 | msgstr[1] "Vos have %d marcapaginas." | ||
1745 | |||
1746 | msgid "sidebar.action.show" | ||
1747 | msgstr "Monstrar:" | ||
1748 | |||
1749 | msgid "heading.confirm.bookmarks.delete" | ||
1750 | msgstr "DELER MARCAPAGINAS" | ||
1751 | |||
1752 | msgid "menu.website" | ||
1753 | msgstr "Sito web del projecto…" | ||
1754 | |||
1755 | # keep this short (3x1 horiz layout) | ||
1756 | msgid "menu.undo" | ||
1757 | msgstr "Disfacer" | ||
1758 | |||
1759 | msgid "fontpack.open.fontsdir" | ||
1760 | msgstr "Aperir le directorio del typos del usator" | ||
1761 | |||
1762 | msgid "fontpack.open.aboutfonts" | ||
1763 | msgstr "Monstrar le typos de character installate" | ||
1764 | |||
1765 | msgid "menu.fonts" | ||
1766 | msgstr "Gerer typos de litteras…" | ||
1767 | |||
1768 | # This label should be fairly short so it fits in a button in the sidebar. | ||
1769 | msgid "sidebar.action.feeds.markallread" | ||
1770 | msgstr "Toto legite" | ||
1771 | |||
1772 | msgid "num.fonts" | ||
1773 | msgid_plural "num.fonts.n" | ||
1774 | msgstr[0] "%u typo" | ||
1775 | msgstr[1] "%u typos" | ||
1776 | |||
1777 | msgid "dlg.file.delete.confirm" | ||
1778 | msgstr "Desira tu vermente deler iste file?" | ||
1779 | |||
1780 | msgid "bookmark.export.format.linklines" | ||
1781 | msgstr "Cata ligamine representa un marcapagina." | ||
1782 | |||
1783 | msgid "menu.page.upload" | ||
1784 | msgstr "Incargar un pagina via Titan…" | ||
1785 | |||
1786 | msgid "heading.upload" | ||
1787 | msgstr "INCARGAR VIA TITAN" | ||
1788 | |||
1789 | msgid "upload.id" | ||
1790 | msgstr "Identitate:" | ||
1791 | |||
1792 | msgid "dlg.upload.id.none" | ||
1793 | msgstr "Nulle" | ||
1794 | |||
1795 | msgid "heading.upload.file" | ||
1796 | msgstr "File" | ||
1797 | |||
1798 | msgid "upload.file.size" | ||
1799 | msgstr "Dimension de file:" | ||
1800 | |||
1801 | msgid "dlg.upload.send" | ||
1802 | msgstr "Incargar" | ||
1803 | |||
1804 | # used on mobile | ||
1805 | msgid "dlg.upload.text" | ||
1806 | msgstr "Incargar un texto simple" | ||
1807 | |||
1808 | # used on mobile | ||
1809 | msgid "dlg.upload.file" | ||
1810 | msgstr "Incargar un file" | ||
1811 | |||
1812 | # used on mobile | ||
1813 | msgid "dlg.upload.pickfile" | ||
1814 | msgstr "Seliger un file" | ||
1815 | |||
1816 | msgid "dlg.newident.scope.domain" | ||
1817 | msgstr "Dominio actual" | ||
1818 | |||
1819 | msgid "dlg.newident.scope.page" | ||
1820 | msgstr "Pagina actual" | ||
1821 | |||
1822 | msgid "dlg.newident.scope.none" | ||
1823 | msgstr "Non usate" | ||
1824 | |||
1825 | msgid "dlg.feed.ignoreweb" | ||
1826 | msgstr "Ignorar ligamines HTTP(S):" | ||
1827 | |||
1828 | msgid "dlg.bookmark.folder" | ||
1829 | msgstr "Dossier:" | ||
1830 | |||
1831 | msgid "heading.bookmark.tags" | ||
1832 | msgstr "ETIQUETTAS SPECIAL" | ||
1833 | |||
1834 | msgid "heading.addfolder" | ||
1835 | msgstr "ADDER UN DOSSIER" | ||
1836 | |||
1837 | msgid "dlg.addfolder.defaulttitle" | ||
1838 | msgstr "Nove dossier" | ||
1839 | |||
1840 | msgid "menu.update" | ||
1841 | msgstr "Controlar pro le actualisationes…" | ||
1842 | |||
1843 | msgid "status.query.tight" | ||
1844 | msgstr "Requesta" | ||
1845 | |||
1846 | msgid "dlg.addfolder" | ||
1847 | msgstr "Adder un dossier" | ||
1848 | |||
1849 | # used on mobile | ||
1850 | msgid "heading.settings" | ||
1851 | msgstr "PARAMETROS" | ||
1852 | |||
1853 | msgid "prefs.font.heading" | ||
1854 | msgstr "Capites:" | ||
1855 | |||
1856 | msgid "prefs.boldlink.visited" | ||
1857 | msgstr "Visitate" | ||
1858 | |||
1859 | msgid "prefs.font.warnmissing" | ||
1860 | msgstr "Advertimentos de glyphos:" | ||
1861 | |||
1862 | msgid "prefs.linespacing" | ||
1863 | msgstr "Spatiamento inter lineas:" | ||
1864 | |||
1865 | msgid "error.certexpired" | ||
1866 | msgstr "Certificato perimite" | ||
1867 | |||
1868 | msgid "error.glyphs" | ||
1869 | msgstr "Glyphos mancante" | ||
1870 | |||
1871 | msgid "heading.fontpack.meta" | ||
1872 | msgstr "Typos de character" | ||
1873 | |||
1874 | #, c-format | ||
1875 | msgid "fontpack.meta.version" | ||
1876 | msgstr "Version %d" | ||
1877 | |||
1878 | msgid "fontpack.meta.installed" | ||
1879 | msgstr "Installate" | ||
1880 | |||
1881 | msgid "fontpack.meta.notinstalled" | ||
1882 | msgstr "Non installate" | ||
1883 | |||
1884 | msgid "heading.fontpack.delete" | ||
1885 | msgstr "DELER UN FONTPACK" | ||
1886 | |||
1887 | msgid "fontpack.install.ttf" | ||
1888 | msgstr "Installar un typo de litteras TrueType" | ||
1889 | |||
1890 | msgid "dlg.dismiss.warning" | ||
1891 | msgstr "Dimitter le advertimento" | ||
1892 | |||
1893 | msgid "heading.fontpack.classic" | ||
1894 | msgstr "DISCARGAR UN FONTPACK" | ||
1895 | |||
1896 | msgid "prefs.imagestyle.preformat" | ||
1897 | msgstr "Color de preformattate" | ||
1898 | |||
1899 | #, c-format | ||
1900 | msgid "fontpack.delete" | ||
1901 | msgstr "Deler permanentemente «%s»" | ||
1902 | |||
1903 | msgid "dlg.certwarn.title" | ||
1904 | msgstr "Problema de securitate" | ||
1905 | |||
1906 | # button in the mobile New Identity dialog | ||
1907 | msgid "dlg.certimport.pickfile" | ||
1908 | msgstr "Importar un certificato o un file clave" | ||
1909 | |||
1910 | msgid "bookmark.export.title.folder" | ||
1911 | msgstr "Marcapaginas" | ||
1912 | |||
1913 | msgid "bookmark.export.title.tag" | ||
1914 | msgstr "Etiquettas de marcapaginas" | ||
1915 | |||
1916 | msgid "prefs.imagestyle.grayscale" | ||
1917 | msgstr "Scala de gris" | ||
1918 | |||
1919 | msgid "error.ansi" | ||
1920 | msgstr "Emulation de terminal" | ||
1921 | |||
1922 | msgid "dlg.upload.id.default" | ||
1923 | msgstr "Predefinite" | ||
1924 | |||
1925 | msgid "heading.upload.text" | ||
1926 | msgstr "Texto" | ||
1927 | |||
1928 | msgid "hint.upload.text" | ||
1929 | msgstr "Insere texto a incargar" | ||
@@ -1,7 +1,7 @@ | |||
1 | msgid "" | 1 | msgid "" |
2 | msgstr "" | 2 | msgstr "" |
3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" | 3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" |
4 | "PO-Revision-Date: 2021-11-10 04:50+0000\n" | 4 | "PO-Revision-Date: 2021-12-04 10:50+0000\n" |
5 | "Last-Translator: Olga Smirnova <mistresssilvara@hotmail.com>\n" | 5 | "Last-Translator: Olga Smirnova <mistresssilvara@hotmail.com>\n" |
6 | "Language-Team: Occidental <http://weblate.skyjake.fi/projects/lagrange/ui/ie/" | 6 | "Language-Team: Occidental <http://weblate.skyjake.fi/projects/lagrange/ui/ie/" |
7 | ">\n" | 7 | ">\n" |
@@ -2099,3 +2099,23 @@ msgid "feeds.atom.translated" | |||
2099 | msgstr "" | 2099 | msgstr "" |
2100 | "Ti document Atom XML esset convertet in un feed de Gemini por que on vell " | 2100 | "Ti document Atom XML esset convertet in un feed de Gemini por que on vell " |
2101 | "posse abonnar it." | 2101 | "posse abonnar it." |
2102 | |||
2103 | # This label should be fairly short so it fits in a button in the sidebar. | ||
2104 | msgid "sidebar.action.feeds.markallread" | ||
2105 | msgstr "Leer omni" | ||
2106 | |||
2107 | # Color of text background. | ||
2108 | msgid "prefs.gemtext.ansi.bg" | ||
2109 | msgstr "Color del funde" | ||
2110 | |||
2111 | msgid "dlg.bookmark.folder" | ||
2112 | msgstr "Fólder:" | ||
2113 | |||
2114 | msgid "prefs.time.24h" | ||
2115 | msgstr "Usar 24 hores" | ||
2116 | |||
2117 | msgid "menu.update" | ||
2118 | msgstr "Controlar actualisamentes…" | ||
2119 | |||
2120 | msgid "sidebar.action.show" | ||
2121 | msgstr "Monstrar:" | ||
diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 00000000..7cfd3eac --- /dev/null +++ b/po/nl.po | |||
@@ -0,0 +1,2107 @@ | |||
1 | msgid "" | ||
2 | msgstr "" | ||
3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" | ||
4 | "PO-Revision-Date: 2021-12-23 11:10+0000\n" | ||
5 | "Last-Translator: Jop Vernooy <jop@jopv.net>\n" | ||
6 | "Language-Team: Dutch <http://weblate.skyjake.fi/projects/lagrange/ui/nl/>\n" | ||
7 | "Language: nl\n" | ||
8 | "MIME-Version: 1.0\n" | ||
9 | "Content-Type: text/plain; charset=UTF-8\n" | ||
10 | "Content-Transfer-Encoding: 8bit\n" | ||
11 | "Plural-Forms: nplurals=2; plural=n != 1;\n" | ||
12 | "X-Generator: Weblate 4.5.1\n" | ||
13 | |||
14 | # Link download progress message. | ||
15 | msgid "doc.fetching" | ||
16 | msgstr "Ophalen" | ||
17 | |||
18 | #, c-format | ||
19 | msgid "doc.archive" | ||
20 | msgstr "%s is een gecomprimeerd archief." | ||
21 | |||
22 | msgid "doc.archive.view" | ||
23 | msgstr "Bekijk archiefinhoud" | ||
24 | |||
25 | msgid "media.untitled.image" | ||
26 | msgstr "Afbeelding" | ||
27 | |||
28 | msgid "media.untitled.audio" | ||
29 | msgstr "Audio" | ||
30 | |||
31 | # Used in inline audio player metadata popup. | ||
32 | msgid "audio.meta.title" | ||
33 | msgstr "Titel" | ||
34 | |||
35 | # Used in inline audio player metadata popup. | ||
36 | msgid "audio.meta.artist" | ||
37 | msgstr "Artiest" | ||
38 | |||
39 | # Used in inline audio player metadata popup. | ||
40 | msgid "audio.meta.genre" | ||
41 | msgstr "Genre" | ||
42 | |||
43 | # Used in inline audio player metadata popup. | ||
44 | msgid "audio.meta.date" | ||
45 | msgstr "Datum" | ||
46 | |||
47 | # used as adjective, n is 8, 16, 24, 32, or 64 | ||
48 | #, c-format | ||
49 | msgid "n.bit" | ||
50 | msgstr "%d-bit" | ||
51 | |||
52 | msgid "numbertype.integer" | ||
53 | msgstr "integer" | ||
54 | |||
55 | # Hertz, unit for frequency values | ||
56 | msgid "hz" | ||
57 | msgstr "Hz" | ||
58 | |||
59 | #, c-format | ||
60 | msgid "feeds.list.entrycount" | ||
61 | msgid_plural "feeds.list.entrycount.n" | ||
62 | msgstr[0] "in totaal %u artikel" | ||
63 | msgstr[1] "in totaal %u artikelen" | ||
64 | |||
65 | msgid "feeds.list.refreshtime.now" | ||
66 | msgstr "Net ververst." | ||
67 | |||
68 | #, c-format | ||
69 | msgid "minutes.ago" | ||
70 | msgid_plural "minutes.ago.n" | ||
71 | msgstr[0] "%d minuut geleden" | ||
72 | msgstr[1] "%d minuten geleden" | ||
73 | |||
74 | #, c-format | ||
75 | msgid "days.ago" | ||
76 | msgid_plural "days.ago.n" | ||
77 | msgstr[0] "%d dag geleden" | ||
78 | msgstr[1] "%d dagen geleden" | ||
79 | |||
80 | msgid "about.tagline" | ||
81 | msgstr "Een prachtige Gemini-client" | ||
82 | |||
83 | msgid "about.version" | ||
84 | msgstr "Versie" | ||
85 | |||
86 | msgid "close" | ||
87 | msgstr "Sluiten" | ||
88 | |||
89 | msgid "dlg.default" | ||
90 | msgstr " Oké " | ||
91 | |||
92 | msgid "toggle.yes" | ||
93 | msgstr "JA" | ||
94 | |||
95 | msgid "toggle.no" | ||
96 | msgstr "NEE" | ||
97 | |||
98 | msgid "menu.title.edit" | ||
99 | msgstr "Bewerken" | ||
100 | |||
101 | msgid "menu.title.view" | ||
102 | msgstr "Weergave" | ||
103 | |||
104 | msgid "menu.title.bookmarks" | ||
105 | msgstr "Bladwijzers" | ||
106 | |||
107 | msgid "menu.title.identity" | ||
108 | msgstr "Identiteit" | ||
109 | |||
110 | msgid "menu.title.help" | ||
111 | msgstr "Help" | ||
112 | |||
113 | msgid "menu.closetab" | ||
114 | msgstr "Sluit tabblad" | ||
115 | |||
116 | msgid "menu.closetab.other" | ||
117 | msgstr "Sluit andere tabbladen" | ||
118 | |||
119 | msgid "menu.closetab.left" | ||
120 | msgstr "Sluit tabbladen links" | ||
121 | |||
122 | msgid "menu.closetab.right" | ||
123 | msgstr "Sluit tabbladen rechts" | ||
124 | |||
125 | msgid "menu.duptab" | ||
126 | msgstr "Dupliceer tabblad" | ||
127 | |||
128 | msgid "menu.split.swap" | ||
129 | msgstr "Kanten verwisselen" | ||
130 | |||
131 | msgid "menu.split.horizontal" | ||
132 | msgstr "Horizontaal" | ||
133 | |||
134 | msgid "menu.split.vertical" | ||
135 | msgstr "Verticaal" | ||
136 | |||
137 | msgid "menu.openlocation" | ||
138 | msgstr "Open locatie…" | ||
139 | |||
140 | msgid "menu.downloads" | ||
141 | msgstr "Toon Downloads" | ||
142 | |||
143 | msgid "menu.unexpire" | ||
144 | msgstr "Negeer verloopdatum en ga door met laden" | ||
145 | |||
146 | msgid "menu.find" | ||
147 | msgstr "Zoek in pagina" | ||
148 | |||
149 | msgid "macos.menu.find" | ||
150 | msgstr "Zoeken" | ||
151 | |||
152 | # Used on desktop operating systems. "Downloads" refers to the user's configured downloads directory. | ||
153 | msgid "menu.save.downloads" | ||
154 | msgstr "Opslaan naar Downloads" | ||
155 | |||
156 | msgid "menu.sidebar" | ||
157 | msgstr "Zijbalk aan/uit" | ||
158 | |||
159 | msgid "menu.sidebar.right" | ||
160 | msgstr "Rechter-zijbalk aan/uit" | ||
161 | |||
162 | msgid "menu.zoom.in" | ||
163 | msgstr "Inzoomen" | ||
164 | |||
165 | msgid "menu.zoom.reset" | ||
166 | msgstr "Zoom resetten" | ||
167 | |||
168 | msgid "menu.view.split" | ||
169 | msgstr "Gesplitste weergave…" | ||
170 | |||
171 | msgid "menu.bookmarks.list" | ||
172 | msgstr "Toon alle bladwijzers" | ||
173 | |||
174 | msgid "macos.menu.bookmarks.list" | ||
175 | msgstr "Toon alle" | ||
176 | |||
177 | msgid "menu.bookmarks.bytag" | ||
178 | msgstr "Toon bladwijzers op tag" | ||
179 | |||
180 | msgid "macos.menu.bookmarks.bytag" | ||
181 | msgstr "Toon op tag" | ||
182 | |||
183 | msgid "menu.feeds.entrylist" | ||
184 | msgstr "Toon feed-artiekelen" | ||
185 | |||
186 | msgid "menu.preferences" | ||
187 | msgstr "Voorkeuren…" | ||
188 | |||
189 | msgid "menu.update" | ||
190 | msgstr "Controleer op updates…" | ||
191 | |||
192 | # used for Preferences on mobile | ||
193 | msgid "menu.settings" | ||
194 | msgstr "Instellingen" | ||
195 | |||
196 | msgid "menu.help" | ||
197 | msgstr "Help" | ||
198 | |||
199 | msgid "menu.releasenotes" | ||
200 | msgstr "Uitgavenotities" | ||
201 | |||
202 | msgid "menu.quit" | ||
203 | msgstr "Lagrange afsluiten" | ||
204 | |||
205 | msgid "menu.cut" | ||
206 | msgstr "Knippen" | ||
207 | |||
208 | msgid "menu.copy" | ||
209 | msgstr "Kopiëren" | ||
210 | |||
211 | # keep this short (3x1 horiz layout) | ||
212 | msgid "menu.delete" | ||
213 | msgstr "Verwijder" | ||
214 | |||
215 | # keep this short (3x1 horiz layout) | ||
216 | msgid "menu.undo" | ||
217 | msgstr "Ongedaan" | ||
218 | |||
219 | msgid "menu.select.clear" | ||
220 | msgstr "Ontselecteren" | ||
221 | |||
222 | # Used in the View menu on macOS. Shows sidebar and switches sidebar tab. | ||
223 | msgid "menu.show.identities" | ||
224 | msgstr "Toon identiteiten" | ||
225 | |||
226 | # Used in the View menu on macOS. Shows sidebar and switches sidebar tab. | ||
227 | msgid "menu.show.outline" | ||
228 | msgstr "Toon inhoudsopgave" | ||
229 | |||
230 | msgid "menu.parent" | ||
231 | msgstr "Ga naar bovenliggende" | ||
232 | |||
233 | msgid "menu.root" | ||
234 | msgstr "Ga naar hoofd" | ||
235 | |||
236 | msgid "menu.reload" | ||
237 | msgstr "Herlaad pagina" | ||
238 | |||
239 | msgid "menu.autoreload" | ||
240 | msgstr "Automatisch herladen…" | ||
241 | |||
242 | msgid "menu.aboutpages" | ||
243 | msgstr "About-pagina's" | ||
244 | |||
245 | msgid "menu.about" | ||
246 | msgstr "Over" | ||
247 | |||
248 | msgid "menu.fonts" | ||
249 | msgstr "Beheer lettertypes…" | ||
250 | |||
251 | msgid "menu.debug" | ||
252 | msgstr "Debug-informatie" | ||
253 | |||
254 | msgid "menu.page.import" | ||
255 | msgstr "Importeer links als bladwijzers…" | ||
256 | |||
257 | msgid "menu.page.copyurl" | ||
258 | msgstr "Kopieer pagina-URL" | ||
259 | |||
260 | msgid "menu.page.copysource" | ||
261 | msgstr "Kopieer paginabron" | ||
262 | |||
263 | msgid "menu.feeds.refresh" | ||
264 | msgstr "Ververs feeds" | ||
265 | |||
266 | msgid "menu.identity.new" | ||
267 | msgstr "Nieuwe identiteit…" | ||
268 | |||
269 | msgid "menu.identity.import" | ||
270 | msgstr "Importeren…" | ||
271 | |||
272 | msgid "sidebar.bookmarks" | ||
273 | msgstr "Bladwijzers" | ||
274 | |||
275 | msgid "sidebar.feeds" | ||
276 | msgstr "Feeds" | ||
277 | |||
278 | msgid "sidebar.identities" | ||
279 | msgstr "Identiteiten" | ||
280 | |||
281 | msgid "sidebar.outline" | ||
282 | msgstr "Opgave" | ||
283 | |||
284 | # This label should be fairly short so it fits in a button in the sidebar. | ||
285 | msgid "sidebar.action.feeds.markallread" | ||
286 | msgstr "Alles gelezen" | ||
287 | |||
288 | msgid "sidebar.action.show" | ||
289 | msgstr "Toon:" | ||
290 | |||
291 | msgid "sidebar.action.feeds.showunread" | ||
292 | msgstr "Ongelezen" | ||
293 | |||
294 | msgid "sidebar.action.ident.new" | ||
295 | msgstr "Nieuwe…" | ||
296 | |||
297 | msgid "sidebar.action.ident.import" | ||
298 | msgstr "Importeren…" | ||
299 | |||
300 | msgid "hint.findtext" | ||
301 | msgstr "zoek tekst in pagina" | ||
302 | |||
303 | msgid "status.query" | ||
304 | msgstr "Zoekopdracht" | ||
305 | |||
306 | msgid "status.query.tight" | ||
307 | msgstr "Opdracht" | ||
308 | |||
309 | msgid "mb.per.sec" | ||
310 | msgstr "MB/s" | ||
311 | |||
312 | msgid "num.bytes" | ||
313 | msgid_plural "num.bytes.n" | ||
314 | msgstr[0] "%u byte" | ||
315 | msgstr[1] "%u bytes" | ||
316 | |||
317 | msgid "num.files" | ||
318 | msgid_plural "num.files.n" | ||
319 | msgstr[0] "%u bestand" | ||
320 | msgstr[1] "%u bestanden" | ||
321 | |||
322 | # strftime() formatted | ||
323 | msgid "sidebar.date.thisyear" | ||
324 | msgstr "%d %b" | ||
325 | |||
326 | # strftime() formatted | ||
327 | msgid "sidebar.date.otheryear" | ||
328 | msgstr "%d %b %Y" | ||
329 | |||
330 | msgid "feeds.today" | ||
331 | msgstr "Vandaag" | ||
332 | |||
333 | msgid "feeds.entry.newtab" | ||
334 | msgstr "Open artikel in nieuw tabblad" | ||
335 | |||
336 | msgid "feeds.entry.markread" | ||
337 | msgstr "Markeer als gelezen" | ||
338 | |||
339 | msgid "feeds.entry.markunread" | ||
340 | msgstr "Markeer als ongelezen" | ||
341 | |||
342 | msgid "sidebar.entry.bookmark" | ||
343 | msgstr "Bladwijzer toevoegen…" | ||
344 | |||
345 | msgid "feeds.entry.openfeed" | ||
346 | msgstr "Open feedpagina" | ||
347 | |||
348 | msgid "feeds.edit" | ||
349 | msgstr "Feed bewerken…" | ||
350 | |||
351 | msgid "feeds.unsubscribe" | ||
352 | msgstr "De-abonneren…" | ||
353 | |||
354 | msgid "feeds.markallread" | ||
355 | msgstr "Markeer alles als gelezen" | ||
356 | |||
357 | msgid "menu.opentab" | ||
358 | msgstr "Open in nieuw tabblad" | ||
359 | |||
360 | msgid "menu.opentab.background" | ||
361 | msgstr "Open in achtergrondtabblad" | ||
362 | |||
363 | msgid "menu.edit" | ||
364 | msgstr "Bewerken…" | ||
365 | |||
366 | msgid "menu.dup" | ||
367 | msgstr "Dupliceren…" | ||
368 | |||
369 | msgid "menu.copyurl" | ||
370 | msgstr "Kopieer URL" | ||
371 | |||
372 | msgid "menu.forgeturl" | ||
373 | msgstr "Vergeet URL" | ||
374 | |||
375 | msgid "history.clear" | ||
376 | msgstr "Geschiedenis wissen…" | ||
377 | |||
378 | msgid "dlg.history.clear" | ||
379 | msgstr "Wis geschiedenis" | ||
380 | |||
381 | msgid "heading.confirm.bookmarks.delete" | ||
382 | msgstr "WIS BLADWIJZERS" | ||
383 | |||
384 | #, c-format | ||
385 | msgid "dlg.bookmarks.delete" | ||
386 | msgid_plural "dlg.bookmarks.delete.n" | ||
387 | msgstr[0] "Verwijder bladwijzer" | ||
388 | msgstr[1] "Verwijder %u bladwijzers" | ||
389 | |||
390 | msgid "bookmark.tag.sub" | ||
391 | msgstr "Abonneer op feed" | ||
392 | |||
393 | msgid "bookmark.tag.remote" | ||
394 | msgstr "Gebruik als bladwijzerbron" | ||
395 | |||
396 | msgid "bookmark.tag.linksplit" | ||
397 | msgstr "Links openen aan zijkant" | ||
398 | |||
399 | msgid "bookmark.untag.sub" | ||
400 | msgstr "Deabonneer van feed" | ||
401 | |||
402 | msgid "bookmark.delete" | ||
403 | msgstr "Verwijder bladwijzer" | ||
404 | |||
405 | msgid "bookmarks.reload" | ||
406 | msgstr "Externe bronnen verversen" | ||
407 | |||
408 | msgid "ident.using" | ||
409 | msgstr "Op deze pagina gebruikt" | ||
410 | |||
411 | msgid "ident.notused" | ||
412 | msgstr "Niet gebruikt" | ||
413 | |||
414 | msgid "ident.temporary" | ||
415 | msgstr "Tijdelijk" | ||
416 | |||
417 | msgid "ident.use" | ||
418 | msgstr "Gebruik op deze pagina" | ||
419 | |||
420 | msgid "ident.stopuse" | ||
421 | msgstr "Stop te gebruiken op deze pagina" | ||
422 | |||
423 | msgid "ident.stopuse.all" | ||
424 | msgstr "Stop te gebruiken overal" | ||
425 | |||
426 | msgid "ident.export" | ||
427 | msgstr "Exporteer" | ||
428 | |||
429 | msgid "heading.ident.use" | ||
430 | msgstr "IDENTITEITSGEBRUIK" | ||
431 | |||
432 | msgid "heading.ident.notes" | ||
433 | msgstr "IDENTITEITSNOTITIES" | ||
434 | |||
435 | msgid "ident.fingerprint" | ||
436 | msgstr "Kopieer vingerafdruk" | ||
437 | |||
438 | msgid "ident.delete" | ||
439 | msgstr "Verwijder identiteit…" | ||
440 | |||
441 | msgid "heading.ident.delete" | ||
442 | msgstr "VERWIJDER IDENTITEIT" | ||
443 | |||
444 | msgid "sidebar.empty.idents" | ||
445 | msgstr "Geen identiteiten" | ||
446 | |||
447 | msgid "heading.unsub" | ||
448 | msgstr "DEABONNEREN" | ||
449 | |||
450 | #, c-format | ||
451 | msgid "dlg.confirm.unsub" | ||
452 | msgstr "Weet je zeker dat je van feed \"%s\" wilt deabonneren?" | ||
453 | |||
454 | msgid "dlg.unsub" | ||
455 | msgstr "Deabonneren" | ||
456 | |||
457 | msgid "error.server.msg" | ||
458 | msgstr "Server reageerde met bericht:" | ||
459 | |||
460 | msgid "heading.pageinfo" | ||
461 | msgstr "PAGINA-INFORMATIE" | ||
462 | |||
463 | msgid "pageinfo.header.cached" | ||
464 | msgstr "(inhoud uit cache)" | ||
465 | |||
466 | msgid "pageinfo.cert.status" | ||
467 | msgstr "Status certificaat:" | ||
468 | |||
469 | msgid "pageinfo.cert.ca.verified" | ||
470 | msgstr "Geverifieerd door CA" | ||
471 | |||
472 | msgid "pageinfo.cert.notexpired" | ||
473 | msgstr "Niet verlopen" | ||
474 | |||
475 | msgid "pageinfo.cert.expired" | ||
476 | msgstr "Verlopen" | ||
477 | |||
478 | msgid "pageinfo.cert.untrusted" | ||
479 | msgstr "Niet vertrouwd" | ||
480 | |||
481 | msgid "dlg.cert.trust" | ||
482 | msgstr "Vertrouw" | ||
483 | |||
484 | msgid "dlg.cert.fingerprint" | ||
485 | msgstr "Kopieer vingerafdruk" | ||
486 | |||
487 | #, c-format | ||
488 | msgid "dlg.input.prompt" | ||
489 | msgstr "Geef invoer voor %s:" | ||
490 | |||
491 | msgid "dlg.input.linebreak" | ||
492 | msgstr "Regeleinde" | ||
493 | |||
494 | msgid "dlg.input.send" | ||
495 | msgstr "Verstuur" | ||
496 | |||
497 | msgid "heading.save.incomplete" | ||
498 | msgstr "PAGINA ONVOLLEDIG" | ||
499 | |||
500 | msgid "dlg.save.size" | ||
501 | msgstr "Grootte:" | ||
502 | |||
503 | msgid "dlg.save.opendownload" | ||
504 | msgstr "Open gedownload bestand" | ||
505 | |||
506 | msgid "heading.save.error" | ||
507 | msgstr "FOUT BIJ OPSLAAN BESTAND" | ||
508 | |||
509 | msgid "heading.import.bookmarks" | ||
510 | msgstr "IMPORTEER BLADWIJZERS" | ||
511 | |||
512 | #, c-format | ||
513 | msgid "dlg.import.add" | ||
514 | msgid_plural "dlg.import.add.n" | ||
515 | msgstr[0] "%sVoeg bladwijzer toe" | ||
516 | msgstr[1] "%sVoeg %d bladwijzers toe" | ||
517 | |||
518 | msgid "dlg.import.notnew" | ||
519 | msgstr "Je hebt al bladwijzers voor alle links op deze pagina." | ||
520 | |||
521 | msgid "heading.autoreload" | ||
522 | msgstr "AUTO-HERLADEN" | ||
523 | |||
524 | msgid "dlg.autoreload" | ||
525 | msgstr "Kies het auto-herlaad-interval voor dit tabblad." | ||
526 | |||
527 | msgid "reload.never" | ||
528 | msgstr "Nooit" | ||
529 | |||
530 | msgid "reload.onceperday" | ||
531 | msgstr "Eens per dag" | ||
532 | |||
533 | #, c-format | ||
534 | msgid "num.minutes" | ||
535 | msgid_plural "num.minutes.n" | ||
536 | msgstr[0] "%d minuut" | ||
537 | msgstr[1] "%d minuten" | ||
538 | |||
539 | msgid "link.newtab" | ||
540 | msgstr "Open link in nieuw tabblad" | ||
541 | |||
542 | msgid "link.newtab.background" | ||
543 | msgstr "Open link in achtergrondtabblad" | ||
544 | |||
545 | msgid "link.side" | ||
546 | msgstr "Open link aan de zijkant" | ||
547 | |||
548 | msgid "link.copy" | ||
549 | msgstr "Kopieer link" | ||
550 | |||
551 | msgid "link.bookmark" | ||
552 | msgstr "Maak bladwijzer voor link…" | ||
553 | |||
554 | msgid "link.download" | ||
555 | msgstr "Download gelinkt bestand" | ||
556 | |||
557 | msgid "link.file.delete" | ||
558 | msgstr "Verwijder bestand" | ||
559 | |||
560 | msgid "heading.file.delete" | ||
561 | msgstr "VERWIJDER BESTAND" | ||
562 | |||
563 | msgid "dlg.file.delete" | ||
564 | msgstr "Verwijder" | ||
565 | |||
566 | msgid "heading.openlink" | ||
567 | msgstr "OPEN LINK" | ||
568 | |||
569 | msgid "dlg.openlink" | ||
570 | msgstr "Open link" | ||
571 | |||
572 | msgid "dlg.certwarn.title" | ||
573 | msgstr "Beveiligingsprobleem" | ||
574 | |||
575 | msgid "dlg.certwarn.different" | ||
576 | msgstr "" | ||
577 | "Het ontvangen certificaat is geldig, maar anders dan degene die we " | ||
578 | "vertrouwen." | ||
579 | |||
580 | msgid "dlg.certwarn.domain.expired" | ||
581 | msgstr "" | ||
582 | "Het ontvangen certificaat is verlopen en ook nog voor het verkeerde domein." | ||
583 | |||
584 | msgid "heading.certimport" | ||
585 | msgstr "IMPORTEER IDENTITEIT" | ||
586 | |||
587 | msgid "dlg.certimport.help" | ||
588 | msgstr "" | ||
589 | "Plak een certificaat en/of privésleutel in PEM-formaat,\n" | ||
590 | "of sleep een .crt/.key-bestand naar het venster." | ||
591 | |||
592 | msgid "dlg.certimport.notfound" | ||
593 | msgstr "Geen certificaat of privésleutel gevonden." | ||
594 | |||
595 | msgid "heading.certimport.dropped" | ||
596 | msgstr "GEDROPT BESTAND" | ||
597 | |||
598 | msgid "dlg.certimport.import" | ||
599 | msgstr "Importeer" | ||
600 | |||
601 | msgid "dlg.certimport.notes" | ||
602 | msgstr "Notities:" | ||
603 | |||
604 | msgid "hint.certimport.description" | ||
605 | msgstr "omschrijving" | ||
606 | |||
607 | msgid "dlg.certimport.nocert" | ||
608 | msgstr "Geen certificaat" | ||
609 | |||
610 | msgid "link.hint.audio" | ||
611 | msgstr "Speel audio" | ||
612 | |||
613 | msgid "link.hint.image" | ||
614 | msgstr "Toon afbeelding" | ||
615 | |||
616 | msgid "bookmark.title.blank" | ||
617 | msgstr "Blanco pagina" | ||
618 | |||
619 | msgid "bookmark.export.title.folder" | ||
620 | msgstr "Bladwijzers" | ||
621 | |||
622 | msgid "bookmark.export.title.time" | ||
623 | msgstr "Aangemaakte bladwijzers" | ||
624 | |||
625 | msgid "bookmark.export.saving" | ||
626 | msgstr "" | ||
627 | "Bewaar deze pagina om ze te exporteren, of kopieer ze naar het klembord." | ||
628 | |||
629 | msgid "bookmark.export.title.tag" | ||
630 | msgstr "Bladwijzer-tags" | ||
631 | |||
632 | msgid "bookmark.export.format.sub" | ||
633 | msgstr "" | ||
634 | "Deze pagina is ingedeeld volgens de \"Subscribing to Gemini pages\"" | ||
635 | "-specificatie." | ||
636 | |||
637 | msgid "bookmark.export.format.linklines" | ||
638 | msgstr "Elke link staat voor een bladwijzer." | ||
639 | |||
640 | msgid "bookmark.export.format.tags" | ||
641 | msgstr "Tags worden bepaald door koppen van niveau 2." | ||
642 | |||
643 | msgid "bookmark.export.format.folders" | ||
644 | msgstr "Mapstructuur wordt bepaald door koppen van niveau 2 en 3." | ||
645 | |||
646 | # Interpret as "Results from bookmarks..." | ||
647 | msgid "heading.lookup.bookmarks" | ||
648 | msgstr "BLADWIJZERS" | ||
649 | |||
650 | # Interpret as "Results from feeds..." | ||
651 | msgid "heading.lookup.feeds" | ||
652 | msgstr "FEEDS" | ||
653 | |||
654 | # Interpret as "Results from page content..." | ||
655 | msgid "heading.lookup.pagecontent" | ||
656 | msgstr "PAGINA-INHOUD" | ||
657 | |||
658 | # Interpret as "Results from identitites..." | ||
659 | msgid "heading.lookup.identities" | ||
660 | msgstr "IDENTITEITEN" | ||
661 | |||
662 | # Interpret as "Other results..." | ||
663 | msgid "heading.lookup.other" | ||
664 | msgstr "OVERIGE" | ||
665 | |||
666 | msgid "menu.page.upload" | ||
667 | msgstr "Upload pagina via Titan…" | ||
668 | |||
669 | msgid "heading.upload" | ||
670 | msgstr "UPLOAD VIA TITAN" | ||
671 | |||
672 | msgid "dlg.upload.id.none" | ||
673 | msgstr "Geen" | ||
674 | |||
675 | msgid "dlg.upload.id.default" | ||
676 | msgstr "Standaard" | ||
677 | |||
678 | msgid "heading.upload.text" | ||
679 | msgstr "Tekst" | ||
680 | |||
681 | msgid "heading.upload.file" | ||
682 | msgstr "Bestand" | ||
683 | |||
684 | msgid "upload.file.name" | ||
685 | msgstr "Bestandsnaam:" | ||
686 | |||
687 | msgid "upload.file.size" | ||
688 | msgstr "Bestandsgrootte:" | ||
689 | |||
690 | msgid "doc.pre.nocaption" | ||
691 | msgstr "Vooringedeelde tekst zonder bijschrift" | ||
692 | |||
693 | # Inline download status message. | ||
694 | msgid "media.download.warnclose" | ||
695 | msgstr "Download wordt geannuleerd als deze tab wordt gesloten." | ||
696 | |||
697 | # Inline download status message. | ||
698 | msgid "media.download.complete" | ||
699 | msgstr "Download voltooid." | ||
700 | |||
701 | msgid "numbertype.float" | ||
702 | msgstr "float" | ||
703 | |||
704 | # Used in about:feeds. | ||
705 | msgid "feeds.list.title" | ||
706 | msgstr "Feed-artiekelen" | ||
707 | |||
708 | # The "%%s" in the end of this string is an escaped string c-format (%s) that will be replaced with the translated output of "feeds.list.entrycount". The translation should have "%%s" at the position where that part can be inserted. | ||
709 | #, c-format | ||
710 | msgid "feeds.list.counts" | ||
711 | msgid_plural "feeds.list.counts.n" | ||
712 | msgstr[0] "Je bent geabbonneerd op %u feed die %%s bevat.\n" | ||
713 | msgstr[1] "Je bent geabbonneerd op %u feeds die %%s bevatten.\n" | ||
714 | |||
715 | #, c-format | ||
716 | msgid "feeds.list.refreshtime" | ||
717 | msgstr "%s ververst." | ||
718 | |||
719 | #, c-format | ||
720 | msgid "hours.ago" | ||
721 | msgid_plural "hours.ago.n" | ||
722 | msgstr[0] "%d uur geleden" | ||
723 | msgstr[1] "%d uren geleden" | ||
724 | |||
725 | # Alt-text of the preformatted logo. | ||
726 | msgid "about.logo" | ||
727 | msgstr "ASCII-kunst: het woord \"Lagrange\" in grote letters" | ||
728 | |||
729 | msgid "about.powered" | ||
730 | msgstr "Mede mogelijk gemaakt door SDL 2, OpenSSL, en ☕️" | ||
731 | |||
732 | msgid "cancel" | ||
733 | msgstr "Annuleren" | ||
734 | |||
735 | msgid "dlg.message.ok" | ||
736 | msgstr "Doorgaan" | ||
737 | |||
738 | msgid "menu.title.file" | ||
739 | msgstr "Bestand" | ||
740 | |||
741 | msgid "menu.newtab" | ||
742 | msgstr "Nieuw tabblad" | ||
743 | |||
744 | msgid "menu.split.merge" | ||
745 | msgstr "Ontsplitsen" | ||
746 | |||
747 | msgid "menu.pageinfo" | ||
748 | msgstr "Toon pagina-informatie" | ||
749 | |||
750 | # Used on iOS. "Files" refers to Apple's iOS app where you can pick an iCloud folder. | ||
751 | msgid "menu.save.files" | ||
752 | msgstr "Opslaan naar Bestanden" | ||
753 | |||
754 | msgid "menu.save.downloads.open" | ||
755 | msgstr "Sla op naar Downloads en open bestand" | ||
756 | |||
757 | msgid "menu.sidebar.left" | ||
758 | msgstr "Linker-zijbalk aan/uit" | ||
759 | |||
760 | msgid "menu.zoom.out" | ||
761 | msgstr "Uitzoomen" | ||
762 | |||
763 | msgid "menu.newfolder" | ||
764 | msgstr "Nieuwe map…" | ||
765 | |||
766 | msgid "menu.sort.alpha" | ||
767 | msgstr "Sorteer alfabetisch" | ||
768 | |||
769 | msgid "menu.bookmarks.bytime" | ||
770 | msgstr "Toon bladwijzers op aanmaakdatum" | ||
771 | |||
772 | msgid "macos.menu.bookmarks.bytime" | ||
773 | msgstr "Toon op aanmaakdatum" | ||
774 | |||
775 | msgid "menu.website" | ||
776 | msgstr "Projectwebsite…" | ||
777 | |||
778 | msgid "menu.paste" | ||
779 | msgstr "Plakken" | ||
780 | |||
781 | # keep this short (3x1 horiz layout) | ||
782 | msgid "menu.selectall" | ||
783 | msgstr "Selecteer alles" | ||
784 | |||
785 | # Used in the View menu on macOS. Shows sidebar and switches sidebar tab. | ||
786 | msgid "menu.show.bookmarks" | ||
787 | msgstr "Toon bladwijzers" | ||
788 | |||
789 | # Used in the View menu on macOS. Shows sidebar and switches sidebar tab. | ||
790 | msgid "menu.show.feeds" | ||
791 | msgstr "Toon feeds" | ||
792 | |||
793 | # Used in the View menu on macOS. Shows sidebar and switches sidebar tab. | ||
794 | msgid "menu.show.history" | ||
795 | msgstr "Toon geschiedenis" | ||
796 | |||
797 | msgid "menu.back" | ||
798 | msgstr "Ga terug" | ||
799 | |||
800 | msgid "menu.forward" | ||
801 | msgstr "Ga vooruit" | ||
802 | |||
803 | msgid "menu.page.bookmark" | ||
804 | msgstr "Maak bladwijzer…" | ||
805 | |||
806 | msgid "menu.page.subscribe" | ||
807 | msgstr "Abonneer op pagina…" | ||
808 | |||
809 | msgid "panel.back" | ||
810 | msgstr "Terug" | ||
811 | |||
812 | msgid "menu.import.links" | ||
813 | msgstr "Importeer alle links op pagina…" | ||
814 | |||
815 | msgid "menu.page.translate" | ||
816 | msgstr "Vertaal…" | ||
817 | |||
818 | # Used in the Edit menu on macOS. Note: could be replaced with menu.page.copyurl. | ||
819 | msgid "menu.copy.pagelink" | ||
820 | msgstr "Kopieer link naar pagina" | ||
821 | |||
822 | msgid "menu.bookmarks.refresh" | ||
823 | msgstr "Ververs externe bladwijzers" | ||
824 | |||
825 | msgid "menu.identity.notactive" | ||
826 | msgstr "Geen actieve identiteit" | ||
827 | |||
828 | msgid "sidebar.history" | ||
829 | msgstr "Geschiedenis" | ||
830 | |||
831 | msgid "sidebar.action.feeds.showall" | ||
832 | msgstr "Alle" | ||
833 | |||
834 | # Usage: "(count) Unread" in the sidebar tab title, referring to feed entries. | ||
835 | msgid "sidebar.unread" | ||
836 | msgid_plural "sidebar.unread.n" | ||
837 | msgstr[0] "ongelezen" | ||
838 | msgstr[1] "ongelezen" | ||
839 | |||
840 | msgid "toolbar.outline" | ||
841 | msgstr "Inhoudsopgave" | ||
842 | |||
843 | msgid "status.feeds" | ||
844 | msgstr "Feeds bijwerken" | ||
845 | |||
846 | # megabytes, used as the unit after a number | ||
847 | msgid "mb" | ||
848 | msgstr "MB" | ||
849 | |||
850 | # kilobytes, used as the unit after a number | ||
851 | msgid "kb" | ||
852 | msgstr "KB" | ||
853 | |||
854 | msgid "num.fonts" | ||
855 | msgid_plural "num.fonts.n" | ||
856 | msgstr[0] "%u lettertype" | ||
857 | msgstr[1] "%u lettertypes" | ||
858 | |||
859 | # strftime() formatted. Should be split evenly on two lines with a newline character. | ||
860 | msgid "page.timestamp" | ||
861 | msgstr "" | ||
862 | "Ontvangen om %H:%M\n" | ||
863 | "op %d %b %Y" | ||
864 | |||
865 | msgid "feeds.entry.bookmark" | ||
866 | msgstr "Bladwijzer toevoegen…" | ||
867 | |||
868 | msgid "feeds.refresh" | ||
869 | msgstr "Feeds verversen" | ||
870 | |||
871 | msgid "feeds.atom.translated" | ||
872 | msgstr "" | ||
873 | "Dit Atom XML-document is automatisch omgezet naar een Gemini-feed zodat je " | ||
874 | "je er op kunt abonneren." | ||
875 | |||
876 | msgid "menu.openfile" | ||
877 | msgstr "Open bestand…" | ||
878 | |||
879 | msgid "heading.history.clear" | ||
880 | msgstr "GESCHIEDENIS WISSEN" | ||
881 | |||
882 | msgid "dlg.confirm.history.clear" | ||
883 | msgstr "" | ||
884 | "Weet je zeker dat je de hele geschiedenis van bezochte pagina's wil wissen?" | ||
885 | |||
886 | #, c-format | ||
887 | msgid "dlg.confirm.bookmarks.delete" | ||
888 | msgid_plural "dlg.confirm.bookmarks.delete.n" | ||
889 | msgstr[0] "Wil je echt de bladwijzer in deze map verwijderen?" | ||
890 | msgstr[1] "Wil je echt alle %u bladwijzers in deze map verwijderen?" | ||
891 | |||
892 | msgid "bookmark.tag.home" | ||
893 | msgstr "Gebruik als startpagina" | ||
894 | |||
895 | msgid "bookmark.untag.home" | ||
896 | msgstr "Wis startpagina" | ||
897 | |||
898 | msgid "bookmark.untag.remote" | ||
899 | msgstr "Verwijder bladwijzerbron" | ||
900 | |||
901 | #, c-format | ||
902 | msgid "ident.usedonurls" | ||
903 | msgid_plural "ident.usedonurls.n" | ||
904 | msgstr[0] "Gebruikt op %u URL" | ||
905 | msgstr[1] "Gebruikt op %u URL's" | ||
906 | |||
907 | # strftime() formatted | ||
908 | msgid "ident.expiry" | ||
909 | msgstr "Verloopt op %d %b %Y" | ||
910 | |||
911 | msgid "menu.edit.notes" | ||
912 | msgstr "Bewerk notities…" | ||
913 | |||
914 | # %s refers to name of an identity. | ||
915 | #, c-format | ||
916 | msgid "dlg.ident.notes" | ||
917 | msgstr "Notities over %s:" | ||
918 | |||
919 | #, c-format | ||
920 | msgid "dlg.confirm.ident.delete" | ||
921 | msgstr "" | ||
922 | "Weet je zeker dat je de identiteit %s\"%s\"%s wilt verwijderen, inclusief " | ||
923 | "zijn certificaat- en privésleutel-bestanden?" | ||
924 | |||
925 | msgid "dlg.ident.delete" | ||
926 | msgstr "Verwijder identiteit en bestanden" | ||
927 | |||
928 | # The %s format characters are used to highlight the word "Help" and must be used in the translation in same way as here. | ||
929 | #, c-format | ||
930 | msgid "ident.gotohelp" | ||
931 | msgstr "Zie %sHelp%s voor meer informatie over TLS-clientcertificaten." | ||
932 | |||
933 | #, c-format | ||
934 | msgid "error.unsupported.suggestsave" | ||
935 | msgstr "" | ||
936 | "Je kan hem opslaan als bestand naar je Downloads-map: druk op %s of " | ||
937 | "selecteer \"%s\" in het menu." | ||
938 | |||
939 | msgid "pageinfo.cert.ca.unverified" | ||
940 | msgstr "Niet geverifieerd door CA" | ||
941 | |||
942 | msgid "pageinfo.cert.trusted" | ||
943 | msgstr "Vertrouwd" | ||
944 | |||
945 | msgid "pageinfo.domain.match" | ||
946 | msgstr "Domeinnaam komt overeen" | ||
947 | |||
948 | msgid "pageinfo.domain.mismatch" | ||
949 | msgstr "Domeinnaam komt niet overeen" | ||
950 | |||
951 | msgid "heading.save" | ||
952 | msgstr "BESTAND OPGESLAGEN" | ||
953 | |||
954 | msgid "dlg.save.incomplete" | ||
955 | msgstr "De pagina-inhoud wordt nog steeds gedownload." | ||
956 | |||
957 | #, c-format | ||
958 | msgid "dlg.import.found" | ||
959 | msgid_plural "dlg.import.found.n" | ||
960 | msgstr[0] "Er is één nieuwe link gevonden op de pagina." | ||
961 | msgstr[1] "Er zijn %d nieuwe links gevonden op de pagina." | ||
962 | |||
963 | #, c-format | ||
964 | msgid "num.hours" | ||
965 | msgid_plural "num.hours.n" | ||
966 | msgstr[0] "%d uur" | ||
967 | msgstr[1] "%d uren" | ||
968 | |||
969 | msgid "link.side.newtab" | ||
970 | msgstr "Open link in nieuw tabblad aan de zijkant" | ||
971 | |||
972 | msgid "link.browser" | ||
973 | msgstr "Open link in standaard browser" | ||
974 | |||
975 | msgid "link.noproxy" | ||
976 | msgstr "Open zonder proxy" | ||
977 | |||
978 | msgid "dlg.file.delete.confirm" | ||
979 | msgstr "Weet je zeker dat je dit bestand wilt verwijderen?" | ||
980 | |||
981 | #, c-format | ||
982 | msgid "dlg.openlink.confirm" | ||
983 | msgstr "" | ||
984 | "Open deze link in de standaard browser?\n" | ||
985 | "%s%s" | ||
986 | |||
987 | #, c-format | ||
988 | msgid "dlg.certwarn.mayberenewed" | ||
989 | msgid_plural "dlg.certwarn.mayberenewed.n" | ||
990 | msgstr[0] "" | ||
991 | "Het ontvangen certificaat is misschien recent vernieuwd — het is voor het " | ||
992 | "correcte domein en niet verlopen. Het huidig vertrouwde certificaat verloopt " | ||
993 | "op %s, over één dag." | ||
994 | msgstr[1] "" | ||
995 | "Het ontvangen certificaat is misschien recent vernieuwd — het is voor het " | ||
996 | "correcte domein en niet verlopen. Het huidig vertrouwde certificaat verloopt " | ||
997 | "op %s, over %d dagen." | ||
998 | |||
999 | #, c-format | ||
1000 | msgid "dlg.certwarn.expired" | ||
1001 | msgstr "Het ontvangen certificaat is verlopen op %s." | ||
1002 | |||
1003 | msgid "dlg.certwarn.domain" | ||
1004 | msgstr "" | ||
1005 | "Het ontvangen certificaat is voor het verkeerde domein (%s). Dit kan een " | ||
1006 | "serverconfiguratieprobleem zijn." | ||
1007 | |||
1008 | msgid "dlg.certimport.notfound.page" | ||
1009 | msgstr "Geen certificaat/sleutel gevonden op deze pagina." | ||
1010 | |||
1011 | msgid "heading.certimport.pasted" | ||
1012 | msgstr "GEPLAKT UIT KLEMBORD" | ||
1013 | |||
1014 | # button in the mobile New Identity dialog | ||
1015 | msgid "dlg.certimport.pickfile" | ||
1016 | msgstr "Importeer certificaat- of sleutel-bestand" | ||
1017 | |||
1018 | msgid "dlg.certimport.nokey" | ||
1019 | msgstr "Geen privésleutel" | ||
1020 | |||
1021 | msgid "bookmark.export.count" | ||
1022 | msgid_plural "bookmark.export.count.n" | ||
1023 | msgstr[0] "Je hebt %d bladwijzer." | ||
1024 | msgstr[1] "Je hebt %d bladwijzers." | ||
1025 | |||
1026 | msgid "bookmark.export.taginfo" | ||
1027 | msgstr "" | ||
1028 | "In deze lijst staat elke kop voor een bladwijzer-tag. Alleen bladwijzers met " | ||
1029 | "tags worden getoond. Bladwijzers met meerdere tags worden onder elke tag " | ||
1030 | "herhaald." | ||
1031 | |||
1032 | msgid "bookmark.export.format.otherlines" | ||
1033 | msgstr "" | ||
1034 | "Opsommingslijsten en citaten zijn gereserveerd voor extra informatie over de " | ||
1035 | "voorgaande bladwijzer. Tekstregels en vooringedeelde tekst worden als " | ||
1036 | "opmerkingen beschouwd en moeten genegeerd worden." | ||
1037 | |||
1038 | # Interpret as "Results from history..." | ||
1039 | msgid "heading.lookup.history" | ||
1040 | msgstr "GESCHIEDENIS" | ||
1041 | |||
1042 | msgid "upload.id" | ||
1043 | msgstr "Identiteit:" | ||
1044 | |||
1045 | msgid "hint.upload.text" | ||
1046 | msgstr "voer tekst in om te uploaden" | ||
1047 | |||
1048 | msgid "upload.file.drophere" | ||
1049 | msgstr "(sleep een bestand naar het venster)" | ||
1050 | |||
1051 | msgid "upload.mime" | ||
1052 | msgstr "MIME-type:" | ||
1053 | |||
1054 | msgid "upload.token" | ||
1055 | msgstr "Token:" | ||
1056 | |||
1057 | msgid "hint.upload.token" | ||
1058 | msgstr "zie instructies van server" | ||
1059 | |||
1060 | msgid "dlg.upload.send" | ||
1061 | msgstr "Upload" | ||
1062 | |||
1063 | msgid "upload.port" | ||
1064 | msgstr "Poort…" | ||
1065 | |||
1066 | msgid "heading.uploadport" | ||
1067 | msgstr "TITAN UPLOADPOORT" | ||
1068 | |||
1069 | msgid "dlg.uploadport.set" | ||
1070 | msgstr "Stel poort in" | ||
1071 | |||
1072 | # used on mobile | ||
1073 | msgid "dlg.upload.text" | ||
1074 | msgstr "Upload platte tekst" | ||
1075 | |||
1076 | # used on mobile | ||
1077 | msgid "dlg.upload.file" | ||
1078 | msgstr "Upload een bestand" | ||
1079 | |||
1080 | # used on mobile | ||
1081 | msgid "dlg.upload.pickfile" | ||
1082 | msgstr "Kies bestand" | ||
1083 | |||
1084 | msgid "heading.translate" | ||
1085 | msgstr "VERTAAL PAGINA" | ||
1086 | |||
1087 | msgid "dlg.translate.unavail" | ||
1088 | msgstr "Dienst niet beschikbaar" | ||
1089 | |||
1090 | msgid "dlg.translate.fail" | ||
1091 | msgstr "Verzoek mislukt" | ||
1092 | |||
1093 | msgid "dlg.translate" | ||
1094 | msgstr "Vertaal" | ||
1095 | |||
1096 | msgid "dlg.translate.to" | ||
1097 | msgstr "Naar:" | ||
1098 | |||
1099 | msgid "dlg.translate.from" | ||
1100 | msgstr "Uit:" | ||
1101 | |||
1102 | # A language choice in the Translation dialog. | ||
1103 | msgid "lang.ar" | ||
1104 | msgstr "Arabisch" | ||
1105 | |||
1106 | # A language choice in the Translation dialog. | ||
1107 | msgid "lang.zh" | ||
1108 | msgstr "Chinees" | ||
1109 | |||
1110 | # A language choice in the Translation dialog. | ||
1111 | msgid "lang.de" | ||
1112 | msgstr "Duits" | ||
1113 | |||
1114 | # A language choice in the Translation dialog. | ||
1115 | msgid "lang.en" | ||
1116 | msgstr "Engels" | ||
1117 | |||
1118 | # A language choice in the Translation dialog. | ||
1119 | msgid "lang.fr" | ||
1120 | msgstr "Frans" | ||
1121 | |||
1122 | # A language choice in the Translation dialog. | ||
1123 | msgid "lang.hi" | ||
1124 | msgstr "Hindi" | ||
1125 | |||
1126 | # A language choice in the Translation dialog. | ||
1127 | msgid "lang.ja" | ||
1128 | msgstr "Japans" | ||
1129 | |||
1130 | # A language choice in the Translation dialog. | ||
1131 | msgid "lang.pt" | ||
1132 | msgstr "Portugees" | ||
1133 | |||
1134 | # A language choice in the Translation dialog. | ||
1135 | msgid "lang.ru" | ||
1136 | msgstr "Russisch" | ||
1137 | |||
1138 | msgid "heading.newident" | ||
1139 | msgstr "NIEUWE IDENTITEIT" | ||
1140 | |||
1141 | msgid "dlg.newident.rsa.selfsign" | ||
1142 | msgstr "Er wordt een zelfondertekend 2048-bit RSA-certificaat gemaakt." | ||
1143 | |||
1144 | msgid "dlg.newident.until" | ||
1145 | msgstr "Geldig tot:" | ||
1146 | |||
1147 | msgid "hint.newident.optional" | ||
1148 | msgstr "optioneel" | ||
1149 | |||
1150 | msgid "dlg.newident.commonname" | ||
1151 | msgstr "Gewone naam:" | ||
1152 | |||
1153 | msgid "dlg.newident.temp" | ||
1154 | msgstr "Tijdelijk:" | ||
1155 | |||
1156 | msgid "dlg.newident.notsaved" | ||
1157 | msgstr "niet opgeslagen" | ||
1158 | |||
1159 | msgid "dlg.newident.scope" | ||
1160 | msgstr "Gebruik op:" | ||
1161 | |||
1162 | msgid "dlg.newident.scope.domain" | ||
1163 | msgstr "Huidig domein" | ||
1164 | |||
1165 | msgid "dlg.newident.scope.none" | ||
1166 | msgstr "Niet gebruikt" | ||
1167 | |||
1168 | msgid "dlg.newident.email" | ||
1169 | msgstr "Email:" | ||
1170 | |||
1171 | msgid "dlg.newident.domain" | ||
1172 | msgstr "Domein:" | ||
1173 | |||
1174 | msgid "dlg.newident.country" | ||
1175 | msgstr "Land:" | ||
1176 | |||
1177 | msgid "dlg.newident.create" | ||
1178 | msgstr "Creëer identieit" | ||
1179 | |||
1180 | msgid "heading.newident.date.bad" | ||
1181 | msgstr "ONGELDIGE DATUM" | ||
1182 | |||
1183 | msgid "dlg.newident.date.past" | ||
1184 | msgstr "De verloopdatum moet in de toekomst zijn." | ||
1185 | |||
1186 | msgid "heading.feedcfg" | ||
1187 | msgstr "FEED-INSTELLINGEN" | ||
1188 | |||
1189 | msgid "heading.subscribe" | ||
1190 | msgstr "ABONNEER OP PAGINA" | ||
1191 | |||
1192 | msgid "dlg.feed.title" | ||
1193 | msgstr "Titel:" | ||
1194 | |||
1195 | msgid "dlg.feed.entrytype" | ||
1196 | msgstr "Artikelen gegeven als:" | ||
1197 | |||
1198 | msgid "dlg.feed.type.headings" | ||
1199 | msgstr "Nieuwe koppen" | ||
1200 | |||
1201 | msgid "dlg.feed.ignoreweb" | ||
1202 | msgstr "Negeer HTTP(S)-links:" | ||
1203 | |||
1204 | msgid "dlg.feed.save" | ||
1205 | msgstr "Instellingen opslaan" | ||
1206 | |||
1207 | msgid "heading.bookmark.edit" | ||
1208 | msgstr "BLADWIJZER BEWERKEN" | ||
1209 | |||
1210 | msgid "dlg.bookmark.title" | ||
1211 | msgstr "Titel:" | ||
1212 | |||
1213 | msgid "dlg.bookmark.url" | ||
1214 | msgstr "URL:" | ||
1215 | |||
1216 | msgid "dlg.bookmark.folder" | ||
1217 | msgstr "Map:" | ||
1218 | |||
1219 | msgid "dlg.bookmark.tags" | ||
1220 | msgstr "Tags:" | ||
1221 | |||
1222 | msgid "dlg.bookmark.icon" | ||
1223 | msgstr "Icoon:" | ||
1224 | |||
1225 | msgid "heading.addfolder" | ||
1226 | msgstr "MAP TOEVOEGEN" | ||
1227 | |||
1228 | msgid "dlg.addfolder.defaulttitle" | ||
1229 | msgstr "Nieuwe map" | ||
1230 | |||
1231 | msgid "dlg.addfolder" | ||
1232 | msgstr "Map toevoegen" | ||
1233 | |||
1234 | msgid "heading.prefs" | ||
1235 | msgstr "VOORKEUREN" | ||
1236 | |||
1237 | msgid "heading.prefs.certs" | ||
1238 | msgstr "CERTIFICATEN" | ||
1239 | |||
1240 | # tab button | ||
1241 | msgid "heading.prefs.colors" | ||
1242 | msgstr "Kleuren" | ||
1243 | |||
1244 | # tab button | ||
1245 | msgid "heading.prefs.interface" | ||
1246 | msgstr "Interface" | ||
1247 | |||
1248 | # tab button | ||
1249 | msgid "heading.prefs.keys" | ||
1250 | msgstr "Toetsen" | ||
1251 | |||
1252 | msgid "heading.prefs.fonts" | ||
1253 | msgstr "Lettertypes" | ||
1254 | |||
1255 | # used on mobile | ||
1256 | msgid "heading.settings" | ||
1257 | msgstr "INSTELLINGEN" | ||
1258 | |||
1259 | msgid "heading.prefs.paragraph" | ||
1260 | msgstr "PARAGRAAF" | ||
1261 | |||
1262 | msgid "heading.prefs.uitheme" | ||
1263 | msgstr "INTERFACE-KLEUREN" | ||
1264 | |||
1265 | msgid "heading.prefs.pagecontent" | ||
1266 | msgstr "PAGINA-KLEUREN" | ||
1267 | |||
1268 | msgid "heading.prefs.scrolling" | ||
1269 | msgstr "SCROLLEN" | ||
1270 | |||
1271 | msgid "heading.prefs.sizing" | ||
1272 | msgstr "GROOTTE" | ||
1273 | |||
1274 | msgid "heading.prefs.widelayout" | ||
1275 | msgstr "BREDE LAYOUT" | ||
1276 | |||
1277 | # tab button | ||
1278 | msgid "heading.prefs.userinterface" | ||
1279 | msgstr "Gebruikersinterface" | ||
1280 | |||
1281 | msgid "prefs.downloads" | ||
1282 | msgstr "Downloads-map:" | ||
1283 | |||
1284 | msgid "prefs.searchurl" | ||
1285 | msgstr "Zoek-URL:" | ||
1286 | |||
1287 | msgid "prefs.centershort" | ||
1288 | msgstr "Verticaal centreren:" | ||
1289 | |||
1290 | msgid "prefs.collapsepreonload" | ||
1291 | msgstr "Klap vooringedeelde tekst in:" | ||
1292 | |||
1293 | msgid "prefs.pinsplit" | ||
1294 | msgstr "Gesplitst tabblad pinnen:" | ||
1295 | |||
1296 | msgid "prefs.pinsplit.none" | ||
1297 | msgstr "Geen" | ||
1298 | |||
1299 | msgid "prefs.pinsplit.left" | ||
1300 | msgstr "Linkertabblad" | ||
1301 | |||
1302 | msgid "prefs.pinsplit.right" | ||
1303 | msgstr "Rechtertabblad" | ||
1304 | |||
1305 | msgid "prefs.smoothscroll" | ||
1306 | msgstr "Vloeiend scrollen:" | ||
1307 | |||
1308 | msgid "prefs.scrollspeed.keyboard" | ||
1309 | msgstr "Snelheid toetsenbord:" | ||
1310 | |||
1311 | msgid "prefs.scrollspeed.mouse" | ||
1312 | msgstr "Snelheid muis:" | ||
1313 | |||
1314 | msgid "prefs.hidetoolbarscroll" | ||
1315 | msgstr "Verberg werkbalk bij scrollen:" | ||
1316 | |||
1317 | msgid "prefs.theme" | ||
1318 | msgstr "Thema:" | ||
1319 | |||
1320 | msgid "prefs.theme.black" | ||
1321 | msgstr "Zwart" | ||
1322 | |||
1323 | msgid "prefs.theme.dark" | ||
1324 | msgstr "Donker" | ||
1325 | |||
1326 | msgid "prefs.theme.light" | ||
1327 | msgstr "Licht" | ||
1328 | |||
1329 | msgid "prefs.accent" | ||
1330 | msgstr "Accentkleur:" | ||
1331 | |||
1332 | msgid "prefs.accent.teal" | ||
1333 | msgstr "Turkoois" | ||
1334 | |||
1335 | msgid "prefs.accent.orange" | ||
1336 | msgstr "Oranje" | ||
1337 | |||
1338 | msgid "prefs.time.24h" | ||
1339 | msgstr "24-uurs klok" | ||
1340 | |||
1341 | msgid "prefs.uiscale" | ||
1342 | msgstr "Interface-schaalfactor:" | ||
1343 | |||
1344 | msgid "prefs.returnkey" | ||
1345 | msgstr "Gedrag Enter-toets:" | ||
1346 | |||
1347 | msgid "prefs.returnkey.linebreak" | ||
1348 | msgstr "Regeleinde" | ||
1349 | |||
1350 | msgid "prefs.returnkey.accept" | ||
1351 | msgstr "Accepteren" | ||
1352 | |||
1353 | msgid "prefs.animate" | ||
1354 | msgstr "Animaties:" | ||
1355 | |||
1356 | msgid "prefs.sideicon" | ||
1357 | msgstr "Capsule-icoon:" | ||
1358 | |||
1359 | msgid "prefs.doctheme.light" | ||
1360 | msgstr "Licht thema:" | ||
1361 | |||
1362 | msgid "prefs.doctheme.name.colorfullight" | ||
1363 | msgstr "Kleurrijk licht" | ||
1364 | |||
1365 | msgid "prefs.doctheme.name.black" | ||
1366 | msgstr "Zwart" | ||
1367 | |||
1368 | msgid "prefs.doctheme.name.gray" | ||
1369 | msgstr "Grijs" | ||
1370 | |||
1371 | msgid "prefs.doctheme.name.white" | ||
1372 | msgstr "Wit" | ||
1373 | |||
1374 | msgid "prefs.doctheme.name.sepia" | ||
1375 | msgstr "Sepia" | ||
1376 | |||
1377 | msgid "prefs.saturation" | ||
1378 | msgstr "Verzadiging:" | ||
1379 | |||
1380 | msgid "prefs.imagestyle" | ||
1381 | msgstr "Verkleur afbeeldingen:" | ||
1382 | |||
1383 | msgid "prefs.imagestyle.original" | ||
1384 | msgstr "Niet" | ||
1385 | |||
1386 | msgid "prefs.imagestyle.grayscale" | ||
1387 | msgstr "Grijstinten" | ||
1388 | |||
1389 | msgid "prefs.imagestyle.preformat" | ||
1390 | msgstr "Kleur vooringedeelde tekst" | ||
1391 | |||
1392 | msgid "prefs.font.ui" | ||
1393 | msgstr "Interface:" | ||
1394 | |||
1395 | msgid "prefs.imagestyle.text" | ||
1396 | msgstr "Kleur hoofdtekst" | ||
1397 | |||
1398 | msgid "prefs.font.body" | ||
1399 | msgstr "Hoofdtekst:" | ||
1400 | |||
1401 | msgid "prefs.font.mono" | ||
1402 | msgstr "Vooringedeeld:" | ||
1403 | |||
1404 | msgid "prefs.mono" | ||
1405 | msgstr "Tekst in vaste breedte:" | ||
1406 | |||
1407 | msgid "prefs.mono.gopher" | ||
1408 | msgstr "Gopher" | ||
1409 | |||
1410 | msgid "prefs.boldlink" | ||
1411 | msgstr "Vetgedrukte links:" | ||
1412 | |||
1413 | msgid "prefs.boldlink.visited" | ||
1414 | msgstr "Bezocht" | ||
1415 | |||
1416 | msgid "prefs.gemtext.ansi" | ||
1417 | msgstr "ANSI-escapes:" | ||
1418 | |||
1419 | # Color of the text foreground, i.e., the characters. | ||
1420 | msgid "prefs.gemtext.ansi.fg" | ||
1421 | msgstr "Voorgrondkleur" | ||
1422 | |||
1423 | msgid "prefs.font.warnmissing" | ||
1424 | msgstr "Schriftwaarschuwingen:" | ||
1425 | |||
1426 | msgid "prefs.font.smooth" | ||
1427 | msgstr "Mooi maken:" | ||
1428 | |||
1429 | msgid "prefs.linewidth.normal" | ||
1430 | msgstr "Normaal" | ||
1431 | |||
1432 | msgid "prefs.gemtext.ansi.fontstyle" | ||
1433 | msgstr "Letterstijl" | ||
1434 | |||
1435 | msgid "prefs.linespacing" | ||
1436 | msgstr "Regelafstand:" | ||
1437 | |||
1438 | msgid "prefs.quoteicon" | ||
1439 | msgstr "Citaat-indicator:" | ||
1440 | |||
1441 | msgid "prefs.quoteicon.line" | ||
1442 | msgstr "Lijn" | ||
1443 | |||
1444 | msgid "prefs.biglede" | ||
1445 | msgstr "Grote 1e paragraaf:" | ||
1446 | |||
1447 | msgid "prefs.plaintext.wrap" | ||
1448 | msgstr "Platte tekst omslaan:" | ||
1449 | |||
1450 | msgid "prefs.decodeurls" | ||
1451 | msgstr "Decodeer URL's:" | ||
1452 | |||
1453 | msgid "prefs.quoteicon.icon" | ||
1454 | msgstr "\" icoon" | ||
1455 | |||
1456 | msgid "prefs.memorysize" | ||
1457 | msgstr "Geheugengrootte:" | ||
1458 | |||
1459 | msgid "prefs.ca.file" | ||
1460 | msgstr "CA-bestand:" | ||
1461 | |||
1462 | msgid "prefs.ca.path" | ||
1463 | msgstr "CA-pad:" | ||
1464 | |||
1465 | msgid "prefs.proxy.http" | ||
1466 | msgstr "HTTP-proxy:" | ||
1467 | |||
1468 | msgid "menu.binding.clear" | ||
1469 | msgstr "Verwijder" | ||
1470 | |||
1471 | msgid "archive.exit" | ||
1472 | msgstr "Verlaat archief" | ||
1473 | |||
1474 | msgid "keys.top" | ||
1475 | msgstr "Spring naar boven" | ||
1476 | |||
1477 | msgid "keys.bottom" | ||
1478 | msgstr "Spring naar onder" | ||
1479 | |||
1480 | msgid "keys.scroll.up" | ||
1481 | msgstr "Scrol omhoog" | ||
1482 | |||
1483 | msgid "keys.scroll.halfpage.up" | ||
1484 | msgstr "Scrol een halve pagina omhoog" | ||
1485 | |||
1486 | msgid "keys.scroll.page.up" | ||
1487 | msgstr "Scrol een pagina omhoog" | ||
1488 | |||
1489 | msgid "keys.scroll.page.down" | ||
1490 | msgstr "Scrol een pagina omlaag" | ||
1491 | |||
1492 | msgid "keys.forward" | ||
1493 | msgstr "Ga vooruit" | ||
1494 | |||
1495 | msgid "keys.root" | ||
1496 | msgstr "Ga naar beginpagina van capsule" | ||
1497 | |||
1498 | msgid "keys.reload" | ||
1499 | msgstr "Herlaad pagina" | ||
1500 | |||
1501 | msgid "keys.link.modkey" | ||
1502 | msgstr "Open link via modificatietoets" | ||
1503 | |||
1504 | msgid "keys.link.homerow.newtab" | ||
1505 | msgstr "Open link in nieuw tabblad via middenrij-toetsen" | ||
1506 | |||
1507 | msgid "keys.link.homerow.next" | ||
1508 | msgstr "Volgende set middenrij-toets-links" | ||
1509 | |||
1510 | msgid "keys.bookmark.add" | ||
1511 | msgstr "Voeg bladwijzer toe" | ||
1512 | |||
1513 | msgid "keys.subscribe" | ||
1514 | msgstr "Abonneer op pagina" | ||
1515 | |||
1516 | msgid "keys.findtext" | ||
1517 | msgstr "Zoek tekst op pagina" | ||
1518 | |||
1519 | msgid "keys.zoom.in" | ||
1520 | msgstr "Inzoomen" | ||
1521 | |||
1522 | msgid "keys.zoom.reset" | ||
1523 | msgstr "Zoom resetten" | ||
1524 | |||
1525 | msgid "keys.tab.close" | ||
1526 | msgstr "Sluit tabblad" | ||
1527 | |||
1528 | msgid "keys.tab.next" | ||
1529 | msgstr "Volgend tabblad" | ||
1530 | |||
1531 | msgid "keys.split.menu" | ||
1532 | msgstr "Stel gesplitste weergavemodus in" | ||
1533 | |||
1534 | msgid "keys.split.item" | ||
1535 | msgstr "Menu gesplitste weergave:" | ||
1536 | |||
1537 | msgid "keys.upload" | ||
1538 | msgstr "Upload pagina via Titan" | ||
1539 | |||
1540 | msgid "error.badstatus" | ||
1541 | msgstr "Onbekende statuscode" | ||
1542 | |||
1543 | msgid "error.badresource" | ||
1544 | msgstr "Ongeldige bron" | ||
1545 | |||
1546 | msgid "error.unsupported.media" | ||
1547 | msgstr "Inhoudstype niet ondersteund" | ||
1548 | |||
1549 | msgid "error.unsupported.media.msg" | ||
1550 | msgstr "De ontvangen inhoud kan niet worden weergegeven met deze applicatie." | ||
1551 | |||
1552 | msgid "error.unsupported.protocol" | ||
1553 | msgstr "Niet ondersteund protocol" | ||
1554 | |||
1555 | msgid "error.badheader" | ||
1556 | msgstr "Ongeldige header" | ||
1557 | |||
1558 | msgid "error.badredirect" | ||
1559 | msgstr "Ongeldige doorverwijzing" | ||
1560 | |||
1561 | msgid "error.manyredirects" | ||
1562 | msgstr "Teveel doorverwijzingen" | ||
1563 | |||
1564 | msgid "error.tls" | ||
1565 | msgstr "Netwerk/TLS-fout" | ||
1566 | |||
1567 | msgid "error.tls.msg" | ||
1568 | msgstr "Communiceren met de server mislukt." | ||
1569 | |||
1570 | msgid "error.certexpired.msg" | ||
1571 | msgstr "" | ||
1572 | "De verbinding met de server werd geannuleerd omdat zijn TLS-certificaat " | ||
1573 | "verlopen is." | ||
1574 | |||
1575 | msgid "error.certverify" | ||
1576 | msgstr "Niet vertrouwde server" | ||
1577 | |||
1578 | msgid "error.temporary" | ||
1579 | msgstr "Tijdelijke fout" | ||
1580 | |||
1581 | msgid "error.unavail" | ||
1582 | msgstr "Server niet beschikbaar" | ||
1583 | |||
1584 | msgid "error.cgi" | ||
1585 | msgstr "CGI-fout" | ||
1586 | |||
1587 | msgid "error.cgi.msg" | ||
1588 | msgstr "" | ||
1589 | "Fout opgetreden bij dynamische inhoudsgeneratie op de server. De software op " | ||
1590 | "de server werkt mogelijk niet zoals het hoort." | ||
1591 | |||
1592 | msgid "error.proxy" | ||
1593 | msgstr "Proxy-fout" | ||
1594 | |||
1595 | msgid "error.slowdown" | ||
1596 | msgstr "Niet zo snel" | ||
1597 | |||
1598 | msgid "error.permanent" | ||
1599 | msgstr "Permanente fout" | ||
1600 | |||
1601 | msgid "error.notfound" | ||
1602 | msgstr "Niet gevonden" | ||
1603 | |||
1604 | msgid "error.gone" | ||
1605 | msgstr "Verdwenen" | ||
1606 | |||
1607 | msgid "error.proxyrefusal" | ||
1608 | msgstr "Proxy-verzoek geweigerd" | ||
1609 | |||
1610 | msgid "error.badrequest" | ||
1611 | msgstr "Verkeerd verzoek" | ||
1612 | |||
1613 | msgid "error.cert.needed" | ||
1614 | msgstr "Certificaat vereist" | ||
1615 | |||
1616 | msgid "error.cert.auth" | ||
1617 | msgstr "Certificaat niet goedgekeurd" | ||
1618 | |||
1619 | msgid "error.ansi" | ||
1620 | msgstr "Terminal-emulatie" | ||
1621 | |||
1622 | msgid "gempub.cover.untitled" | ||
1623 | msgstr "Naamloos boek" | ||
1624 | |||
1625 | msgid "gempub.cover.view" | ||
1626 | msgstr "Toon Gempub-inhoud" | ||
1627 | |||
1628 | msgid "gempub.cover.image" | ||
1629 | msgstr "Kaft-afbeelding" | ||
1630 | |||
1631 | msgid "gempub.meta.author" | ||
1632 | msgstr "Auteur" | ||
1633 | |||
1634 | msgid "gempub.meta.revdate" | ||
1635 | msgstr "Herzieningsdatum" | ||
1636 | |||
1637 | msgid "gempub.meta.lang" | ||
1638 | msgstr "Taal" | ||
1639 | |||
1640 | msgid "gempub.meta.license" | ||
1641 | msgstr "Licentie" | ||
1642 | |||
1643 | msgid "heading.fontpack.meta" | ||
1644 | msgstr "Lettertypes" | ||
1645 | |||
1646 | msgid "heading.fontpack.meta.disabled" | ||
1647 | msgstr "Inactieve lettertypepakketten" | ||
1648 | |||
1649 | msgid "fontpack.meta.installed" | ||
1650 | msgstr "Geïnstalleerd" | ||
1651 | |||
1652 | msgid "fontpack.meta.notinstalled" | ||
1653 | msgstr "Niet geïnstalleerd" | ||
1654 | |||
1655 | msgid "fontpack.meta.disabled" | ||
1656 | msgstr ", inactief" | ||
1657 | |||
1658 | #, c-format | ||
1659 | msgid "fontpack.enable" | ||
1660 | msgstr "Activeer \"%s\"" | ||
1661 | |||
1662 | #, c-format | ||
1663 | msgid "fontpack.disable" | ||
1664 | msgstr "Deactiveer \"%s\"" | ||
1665 | |||
1666 | #, c-format | ||
1667 | msgid "fontpack.upgrade" | ||
1668 | msgstr "Upgrade \"%s\" naar versie %d" | ||
1669 | |||
1670 | #, c-format | ||
1671 | msgid "fontpack.delete" | ||
1672 | msgstr "\"%s\" permanent verwijderen" | ||
1673 | |||
1674 | #, c-format | ||
1675 | msgid "dlg.fontpack.delete.confirm" | ||
1676 | msgstr "" | ||
1677 | "Weet je zeker dat je het lettertypepakket \"%s\" permanent wilt verwijderen?" | ||
1678 | |||
1679 | msgid "dlg.fontpack.delete" | ||
1680 | msgstr "Verwijder lettertypepakket" | ||
1681 | |||
1682 | msgid "fontpack.install.ttf" | ||
1683 | msgstr "Installeer TrueType-lettertype" | ||
1684 | |||
1685 | msgid "fontpack.open.fontsdir" | ||
1686 | msgstr "Open gebruikerslettertypemap" | ||
1687 | |||
1688 | msgid "heading.dismiss.warning" | ||
1689 | msgstr "NEGEER WAARSCHUWING?" | ||
1690 | |||
1691 | msgid "dlg.dismiss.warning" | ||
1692 | msgstr "Negeer waarschuwing" | ||
1693 | |||
1694 | msgid "heading.fontpack.classic" | ||
1695 | msgstr "DOWNLOAD LETTERTYPEPAKKET" | ||
1696 | |||
1697 | msgid "dlg.fontpack.classic" | ||
1698 | msgstr "Download lettertypepakket (25 MB)" | ||
1699 | |||
1700 | msgid "dlg.uploadport.msg" | ||
1701 | msgstr "" | ||
1702 | "Stel de Titan-serverpoort in om te gebruiken voor deze URL. De poort wordt " | ||
1703 | "opgeslagen in de site-specifieke configuratie." | ||
1704 | |||
1705 | # A language choice in the Translation dialog. | ||
1706 | msgid "lang.it" | ||
1707 | msgstr "Italiaans" | ||
1708 | |||
1709 | # A language choice in the Translation dialog. | ||
1710 | msgid "lang.es" | ||
1711 | msgstr "Spaans" | ||
1712 | |||
1713 | msgid "hint.newident.date" | ||
1714 | msgstr "JJJJ of JJJJ-MM-DD" | ||
1715 | |||
1716 | msgid "dlg.newident.scope.page" | ||
1717 | msgstr "Huidige pagina" | ||
1718 | |||
1719 | msgid "dlg.newident.userid" | ||
1720 | msgstr "Gebruikers-ID:" | ||
1721 | |||
1722 | msgid "dlg.newident.org" | ||
1723 | msgstr "Organisatie:" | ||
1724 | |||
1725 | msgid "dlg.newident.more" | ||
1726 | msgstr "Meer…" | ||
1727 | |||
1728 | msgid "heading.newident.missing" | ||
1729 | msgstr "INFO ONTBREEKT" | ||
1730 | |||
1731 | msgid "dlg.newindent.missing.commonname" | ||
1732 | msgstr "Een \"Gewone naam\" moet zijn ingesteld." | ||
1733 | |||
1734 | msgid "dlg.newident.date.example" | ||
1735 | msgstr "" | ||
1736 | "Controleer de \"Geldig tot\"-datum. Voorbeelden:\n" | ||
1737 | "• 2030\n" | ||
1738 | "• 2025-06-30\n" | ||
1739 | "• 2021-12-31 23:59:59" | ||
1740 | |||
1741 | msgid "dlg.feed.type.gemini" | ||
1742 | msgstr "JJJJ-MM-DD links" | ||
1743 | |||
1744 | msgid "dlg.feed.sub" | ||
1745 | msgstr "Abonneren" | ||
1746 | |||
1747 | msgid "heading.bookmark.add" | ||
1748 | msgstr "BLADWIJZER TOEVOEGEN" | ||
1749 | |||
1750 | msgid "dlg.bookmark.save" | ||
1751 | msgstr "Bladwijzer opslaan" | ||
1752 | |||
1753 | msgid "heading.bookmark.tags" | ||
1754 | msgstr "SPECIALE TAGS" | ||
1755 | |||
1756 | msgid "dlg.addfolder.prompt" | ||
1757 | msgstr "Voer de naam van de nieuwe map in:" | ||
1758 | |||
1759 | # tab button | ||
1760 | msgid "heading.prefs.general" | ||
1761 | msgstr "Algemeen" | ||
1762 | |||
1763 | # tab button | ||
1764 | msgid "heading.prefs.network" | ||
1765 | msgstr "Netwerk" | ||
1766 | |||
1767 | msgid "heading.prefs.proxies" | ||
1768 | msgstr "PROXIES" | ||
1769 | |||
1770 | # tab button | ||
1771 | msgid "heading.prefs.style" | ||
1772 | msgstr "Stijl" | ||
1773 | |||
1774 | msgid "prefs.hoverlink" | ||
1775 | msgstr "Toon URL bij aanwijzen:" | ||
1776 | |||
1777 | msgid "prefs.bookmarks.addbottom" | ||
1778 | msgstr "Voeg bladwijzers onder toe:" | ||
1779 | |||
1780 | # User preference that controls whether index.gmi pages get automatically opened when browsing the contents of a directory inside a compressed archive. | ||
1781 | msgid "prefs.archive.openindex" | ||
1782 | msgstr "Open archief-indexen:" | ||
1783 | |||
1784 | msgid "prefs.imageloadscroll" | ||
1785 | msgstr "Laad afbeelding bij scrollen:" | ||
1786 | |||
1787 | msgid "prefs.ostheme" | ||
1788 | msgstr "Gebruik systeemthema:" | ||
1789 | |||
1790 | msgid "prefs.theme.white" | ||
1791 | msgstr "Wit" | ||
1792 | |||
1793 | msgid "prefs.uilang" | ||
1794 | msgstr "Taal:" | ||
1795 | |||
1796 | msgid "prefs.customframe" | ||
1797 | msgstr "Aangepast vensterframe:" | ||
1798 | |||
1799 | msgid "prefs.retainwindow" | ||
1800 | msgstr "Behoud plek:" | ||
1801 | |||
1802 | msgid "prefs.doctheme.dark" | ||
1803 | msgstr "Donker thema:" | ||
1804 | |||
1805 | msgid "prefs.doctheme.name.colorfuldark" | ||
1806 | msgstr "Kleurrijk donker" | ||
1807 | |||
1808 | msgid "prefs.doctheme.name.highcontrast" | ||
1809 | msgstr "Hoog contrast" | ||
1810 | |||
1811 | # Abbrevation: background-to-foreground | ||
1812 | msgid "prefs.imagestyle.bgfg" | ||
1813 | msgstr "Achter-naar-voorgrondkleur" | ||
1814 | |||
1815 | msgid "prefs.font.heading" | ||
1816 | msgstr "Koppen:" | ||
1817 | |||
1818 | msgid "prefs.font" | ||
1819 | msgstr "Hoofdtekst-lettertype:" | ||
1820 | |||
1821 | # Font to use for headings and body when Monospace body is enabled. | ||
1822 | msgid "prefs.font.monodoc" | ||
1823 | msgstr "Vaste-breedte-lettertype:" | ||
1824 | |||
1825 | msgid "prefs.mono.gemini" | ||
1826 | msgstr "Gemini" | ||
1827 | |||
1828 | # Interpretation: (Bold links) on dark (background). | ||
1829 | msgid "prefs.boldlink.dark" | ||
1830 | msgstr "Op donker" | ||
1831 | |||
1832 | # Interpretation: (Bold links) on light (background). | ||
1833 | msgid "prefs.boldlink.light" | ||
1834 | msgstr "Op licht" | ||
1835 | |||
1836 | # Color of text background. | ||
1837 | msgid "prefs.gemtext.ansi.bg" | ||
1838 | msgstr "Achtergrondkleur" | ||
1839 | |||
1840 | msgid "prefs.linewidth" | ||
1841 | msgstr "Regelbreedte:" | ||
1842 | |||
1843 | msgid "prefs.linewidth.fill" | ||
1844 | msgstr "Vullen" | ||
1845 | |||
1846 | msgid "prefs.cachesize" | ||
1847 | msgstr "Cache-grootte:" | ||
1848 | |||
1849 | msgid "prefs.proxy.gemini" | ||
1850 | msgstr "Gemini-proxy:" | ||
1851 | |||
1852 | msgid "prefs.proxy.gopher" | ||
1853 | msgstr "Gopher-proxy:" | ||
1854 | |||
1855 | msgid "menu.binding.reset" | ||
1856 | msgstr "Herstel standaard" | ||
1857 | |||
1858 | #, c-format | ||
1859 | msgid "archive.summary" | ||
1860 | msgid_plural "archive.summary.n" | ||
1861 | msgstr[0] "Dit archief bevat %u item en de gecomprimeerde grootte is %.1f MB." | ||
1862 | msgstr[1] "Dit archief bevat %u items en de gecomprimeerde grootte is %.1f MB." | ||
1863 | |||
1864 | msgid "dir.empty" | ||
1865 | msgstr "Deze map is leeg." | ||
1866 | |||
1867 | #, c-format | ||
1868 | msgid "dir.summary" | ||
1869 | msgid_plural "dir.summary.n" | ||
1870 | msgstr[0] "Deze map bevat %u item." | ||
1871 | msgstr[1] "Deze map bevat %u items." | ||
1872 | |||
1873 | msgid "keys.scroll.down" | ||
1874 | msgstr "Scrol omlaag" | ||
1875 | |||
1876 | msgid "keys.scroll.halfpage.down" | ||
1877 | msgstr "Scrol een halve pagina omlaag" | ||
1878 | |||
1879 | msgid "keys.back" | ||
1880 | msgstr "Ga terug" | ||
1881 | |||
1882 | msgid "keys.parent" | ||
1883 | msgstr "Ga naar bovenliggende map" | ||
1884 | |||
1885 | msgid "keys.link.homerow" | ||
1886 | msgstr "Open link via middenrij-toetsen" | ||
1887 | |||
1888 | msgid "keys.link.homerow.hover" | ||
1889 | msgstr "Hang boven link via middenrij-toetsen" | ||
1890 | |||
1891 | msgid "keys.bookmark.addfolder" | ||
1892 | msgstr "Voeg bladwijzermap toe" | ||
1893 | |||
1894 | msgid "keys.zoom.out" | ||
1895 | msgstr "Uitzoomen" | ||
1896 | |||
1897 | msgid "keys.fullscreen" | ||
1898 | msgstr "Volledig scherm aan/uit" | ||
1899 | |||
1900 | msgid "keys.tab.new" | ||
1901 | msgstr "Nieuw tabblad" | ||
1902 | |||
1903 | msgid "keys.tab.close.other" | ||
1904 | msgstr "Sluit andere tabbladen" | ||
1905 | |||
1906 | msgid "keys.tab.prev" | ||
1907 | msgstr "Vorig tabblad" | ||
1908 | |||
1909 | msgid "keys.split.next" | ||
1910 | msgstr "Wissel focus naar volgende splitsing" | ||
1911 | |||
1912 | msgid "keys.hoverurl" | ||
1913 | msgstr "URL bij muisaanwijzer tonen aan/uit" | ||
1914 | |||
1915 | msgid "error.badstatus.msg" | ||
1916 | msgstr "" | ||
1917 | "De server reageerde met een statuscode die niet in de Gemini-specificatie " | ||
1918 | "staat. Misschien is de server uit de toekomst? Of hij werkt gewoon niet " | ||
1919 | "zoals hij hoort." | ||
1920 | |||
1921 | msgid "error.openfile" | ||
1922 | msgstr "Bestand openen mislukt" | ||
1923 | |||
1924 | msgid "error.unsupported.protocol.msg" | ||
1925 | msgstr "Het gevraagde protocol wordt niet ondersteund door deze applicatie." | ||
1926 | |||
1927 | msgid "error.openfile.msg" | ||
1928 | msgstr "" | ||
1929 | "Het gevraagde bestand bestaat niet of is ontoegankelijk. Controleer het " | ||
1930 | "bestandspad." | ||
1931 | |||
1932 | msgid "error.badresource.msg" | ||
1933 | msgstr "De gevraagde bron bestaat niet." | ||
1934 | |||
1935 | msgid "error.badheader.msg" | ||
1936 | msgstr "" | ||
1937 | "De ontvangen header voldoet niet aan de specificatie van het Gemini-" | ||
1938 | "protocol. Misschien werkt de server niet zoals hij hoort, of probeerde je " | ||
1939 | "iets anders dan een Gemini-server te bereiken." | ||
1940 | |||
1941 | msgid "error.badredirect.msg" | ||
1942 | msgstr "" | ||
1943 | "De server reageerde met een doorverwijzing, maar gaf geen geldige doel-URL. " | ||
1944 | "Misschien werkt de server niet zoals hij hoort." | ||
1945 | |||
1946 | msgid "error.schemeredirect" | ||
1947 | msgstr "Doorverwijzing met ander schema" | ||
1948 | |||
1949 | msgid "error.schemeredirect.msg" | ||
1950 | msgstr "" | ||
1951 | "De server probeerde ons door te verwijzen naar een URL met een ander schema " | ||
1952 | "dan de oorspronkelijke URL. Hier is de link zodat je hem handmatig kan " | ||
1953 | "openen als dat de bedoeling is." | ||
1954 | |||
1955 | msgid "error.manyredirects.msg" | ||
1956 | msgstr "" | ||
1957 | "Het lijkt erop dat je in een doorverwijzingslus zit. De volgende URL waar je " | ||
1958 | "naar doorverwezen bent staat hieronder, voor als je handmatig door wilt gaan." | ||
1959 | |||
1960 | msgid "error.certexpired" | ||
1961 | msgstr "Verlopen certificaat" | ||
1962 | |||
1963 | msgid "error.certverify.msg" | ||
1964 | msgstr "" | ||
1965 | "De verbinding met de server werd geannuleerd omdat zijn TLS-certificaat niet " | ||
1966 | "overeen komt met degene die we vertrouwen. Controleer of de server een " | ||
1967 | "certificaatvervanging heeft aangekondigd. Zo niet, dan kan het zijn dat een " | ||
1968 | "kwaadaardige derde partij zich voordoet als de server die je probeerde te " | ||
1969 | "bereiken.\n" | ||
1970 | "\n" | ||
1971 | "Je kan het certificaat als vertrouwd markeren in Pagina-informatie." | ||
1972 | |||
1973 | msgid "error.temporary.msg" | ||
1974 | msgstr "" | ||
1975 | "Het verzoek is mislukt, probeer het later opnieuw en misschien lukt het dan " | ||
1976 | "wel." | ||
1977 | |||
1978 | msgid "error.unavail.msg" | ||
1979 | msgstr "" | ||
1980 | "De server is niet beschikbaar vanwege overbelasting of onderhoud. Kijk later " | ||
1981 | "nog eens." | ||
1982 | |||
1983 | msgid "error.proxy.msg" | ||
1984 | msgstr "" | ||
1985 | "Een proxy-verzoek mislukte omdat de server geen succesvolle transactie met " | ||
1986 | "het doelsysteem kon voltooien. Misschien zijn er problemen met de " | ||
1987 | "netwerkverbinding." | ||
1988 | |||
1989 | msgid "error.slowdown.msg" | ||
1990 | msgstr "" | ||
1991 | "De server stelt een limiet op het aantal verzoeken achter elkaar. Even " | ||
1992 | "wachten…" | ||
1993 | |||
1994 | msgid "error.permanent.msg" | ||
1995 | msgstr "" | ||
1996 | "Je verzoek is mislukt en zal blijven mislukken als je het opnieuw probeert." | ||
1997 | |||
1998 | msgid "error.notfound.msg" | ||
1999 | msgstr "De gevraagde bron kon niet gevonden worden." | ||
2000 | |||
2001 | msgid "error.gone.msg" | ||
2002 | msgstr "De gevraagde bron is niet meer beschikbaar." | ||
2003 | |||
2004 | msgid "error.proxyrefusal.msg" | ||
2005 | msgstr "" | ||
2006 | "Het verzoek was voor een bron op een domein dat niet door deze server " | ||
2007 | "verzorgd wordt, en de server accepteert geen proxyverzoeken." | ||
2008 | |||
2009 | msgid "error.badrequest.msg" | ||
2010 | msgstr "De server snapte je verzoek niet." | ||
2011 | |||
2012 | msgid "error.cert.needed.msg" | ||
2013 | msgstr "" | ||
2014 | "Toegang tot de gevraagde bron vereist identificatie met een " | ||
2015 | "clientcertificaat." | ||
2016 | |||
2017 | msgid "error.cert.auth.msg" | ||
2018 | msgstr "" | ||
2019 | "Het gegeven clientcertificaat is geldig, maar heeft geen toestemming voor " | ||
2020 | "toegang tot de gevraagde bron." | ||
2021 | |||
2022 | msgid "error.cert.invalid" | ||
2023 | msgstr "Ongeldig certificaat" | ||
2024 | |||
2025 | msgid "error.cert.invalid.msg" | ||
2026 | msgstr "Het gegeven clientcertificaat is verlopen of ongeldig." | ||
2027 | |||
2028 | msgid "error.ansi.msg" | ||
2029 | msgstr "" | ||
2030 | "Deze pagina wordt misschien niet goed weergegeven. Er worden ANSI-escape-" | ||
2031 | "sequences gebruikt om tekst op te maken, wat slechts gedeeltelijk " | ||
2032 | "ondersteund wordt. Je kan een terminal-emulator gebruiken om de pagina als " | ||
2033 | "bedoeld te zien." | ||
2034 | |||
2035 | msgid "error.glyphs" | ||
2036 | msgstr "Tekens ontbreken" | ||
2037 | |||
2038 | msgid "error.glyphs.msg" | ||
2039 | msgstr "" | ||
2040 | "Sommige tekens op deze pagina kunnen niet worden weergegeven. Je kan " | ||
2041 | "lettertypes met extra schriften installeren om dit op te lossen." | ||
2042 | |||
2043 | msgid "gempub.cover.viewlocal" | ||
2044 | msgstr "" | ||
2045 | "Dit Gempub-boek kan worden weergegeven nadat je het lokaal hebt opgeslagen." | ||
2046 | |||
2047 | msgid "gempub.cover.aboutbook" | ||
2048 | msgstr "Over dit boek" | ||
2049 | |||
2050 | msgid "gempub.meta.version" | ||
2051 | msgstr "Versie" | ||
2052 | |||
2053 | msgid "gempub.meta.pub" | ||
2054 | msgstr "Gepubliceerd" | ||
2055 | |||
2056 | msgid "gempub.meta.pubdate" | ||
2057 | msgstr "Publicatiedatum" | ||
2058 | |||
2059 | msgid "heading.fontpack.meta.enabled" | ||
2060 | msgstr "Actieve lettertypepakketten" | ||
2061 | |||
2062 | # Action label | ||
2063 | msgid "fontpack.meta.viewfile" | ||
2064 | msgstr "Toon bestand" | ||
2065 | |||
2066 | #, c-format | ||
2067 | msgid "fontpack.meta.version" | ||
2068 | msgstr "Versie %d" | ||
2069 | |||
2070 | msgid "fontpack.export" | ||
2071 | msgstr "Toon sjabloon voor fontpack.ini" | ||
2072 | |||
2073 | #, c-format | ||
2074 | msgid "fontpack.install" | ||
2075 | msgstr "Installeer \"%s\"" | ||
2076 | |||
2077 | msgid "heading.fontpack.delete" | ||
2078 | msgstr "VERWIJDER LETTERTYPEPAKKET" | ||
2079 | |||
2080 | msgid "fontpack.help" | ||
2081 | msgstr "" | ||
2082 | "Lagrange lettertypepakketten zijn ZIP-archieven die een set " | ||
2083 | "lettertypebestanden en bijbehorende configuratieparameters bevatten. Eenmaal " | ||
2084 | "geïnstalleerd kunnen de lettertypes zowel voor documentinhoud als de " | ||
2085 | "gebruikersinterface worden gebruikt. Je kunt de actieve lettertypes " | ||
2086 | "selecteren in Voorkeuren > Lettertypes." | ||
2087 | |||
2088 | msgid "fontpack.open.aboutfonts" | ||
2089 | msgstr "Toon geïnstalleerde lettertypes" | ||
2090 | |||
2091 | msgid "truetype.help" | ||
2092 | msgstr "" | ||
2093 | "Lagrange probeert alle individuele TrueType-lettertypes te importeren die " | ||
2094 | "naar de gebruikerslettertypemap worden gekopieerd." | ||
2095 | |||
2096 | msgid "truetype.help.installed" | ||
2097 | msgstr "Dit lettertype is geïnstalleerd in de gebruikerslettertypemap." | ||
2098 | |||
2099 | #, c-format | ||
2100 | msgid "dlg.dismiss.ansi" | ||
2101 | msgstr "Wil je permanent de waarschuwing over terminal-emulatie negeren op %s?" | ||
2102 | |||
2103 | msgid "dlg.fontpack.classic.msg" | ||
2104 | msgstr "" | ||
2105 | "De lettertypes die vroeger bij de app inbegrepen waren, zijn nu als aparte " | ||
2106 | "download beschikbaar. Wil je nu het \"Classic set\"-lettertypepakket " | ||
2107 | "downloaden?" | ||
@@ -3,8 +3,8 @@ msgstr "" | |||
3 | "Project-Id-Version: PACKAGE VERSION\n" | 3 | "Project-Id-Version: PACKAGE VERSION\n" |
4 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" | 4 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" |
5 | "POT-Creation-Date: 2021-03-23 19:02+0000\n" | 5 | "POT-Creation-Date: 2021-03-23 19:02+0000\n" |
6 | "PO-Revision-Date: 2021-11-27 04:58+0000\n" | 6 | "PO-Revision-Date: 2021-12-08 14:50+0000\n" |
7 | "Last-Translator: Alyssa Liddell <e-liss@tuta.io>\n" | 7 | "Last-Translator: Nikolay Korotkiy <sikmir@gmail.com>\n" |
8 | "Language-Team: Russian <http://weblate.skyjake.fi/projects/lagrange/ui/ru/>\n" | 8 | "Language-Team: Russian <http://weblate.skyjake.fi/projects/lagrange/ui/ru/>\n" |
9 | "Language: ru\n" | 9 | "Language: ru\n" |
10 | "MIME-Version: 1.0\n" | 10 | "MIME-Version: 1.0\n" |
@@ -2135,3 +2135,10 @@ msgstr "Показать:" | |||
2135 | # Color of text background. | 2135 | # Color of text background. |
2136 | msgid "prefs.gemtext.ansi.bg" | 2136 | msgid "prefs.gemtext.ansi.bg" |
2137 | msgstr "Цвет фона" | 2137 | msgstr "Цвет фона" |
2138 | |||
2139 | msgid "prefs.time.24h" | ||
2140 | msgstr "24-часовой формат времени" | ||
2141 | |||
2142 | # This label should be fairly short so it fits in a button in the sidebar. | ||
2143 | msgid "sidebar.action.feeds.markallread" | ||
2144 | msgstr "Прочитать все" | ||
@@ -1,7 +1,7 @@ | |||
1 | msgid "" | 1 | msgid "" |
2 | msgstr "" | 2 | msgstr "" |
3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" | 3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" |
4 | "PO-Revision-Date: 2021-11-28 23:50+0000\n" | 4 | "PO-Revision-Date: 2021-12-01 16:50+0000\n" |
5 | "Last-Translator: Страхиња Радић <contact@strahinja.org>\n" | 5 | "Last-Translator: Страхиња Радић <contact@strahinja.org>\n" |
6 | "Language-Team: Serbian <http://weblate.skyjake.fi/projects/lagrange/ui/sr/>\n" | 6 | "Language-Team: Serbian <http://weblate.skyjake.fi/projects/lagrange/ui/sr/>\n" |
7 | "Language: sr\n" | 7 | "Language: sr\n" |
@@ -2182,3 +2182,10 @@ msgstr "Прикажи:" | |||
2182 | # Color of text background. | 2182 | # Color of text background. |
2183 | msgid "prefs.gemtext.ansi.bg" | 2183 | msgid "prefs.gemtext.ansi.bg" |
2184 | msgstr "Боја позадине" | 2184 | msgstr "Боја позадине" |
2185 | |||
2186 | msgid "prefs.time.24h" | ||
2187 | msgstr "24-часовно време" | ||
2188 | |||
2189 | # This label should be fairly short so it fits in a button in the sidebar. | ||
2190 | msgid "sidebar.action.feeds.markallread" | ||
2191 | msgstr "Прочитај све" | ||
@@ -1,7 +1,7 @@ | |||
1 | msgid "" | 1 | msgid "" |
2 | msgstr "" | 2 | msgstr "" |
3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" | 3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" |
4 | "PO-Revision-Date: 2021-11-06 09:34+0000\n" | 4 | "PO-Revision-Date: 2021-12-08 14:50+0000\n" |
5 | "Last-Translator: jan Anja <cyber@sysrq.in>\n" | 5 | "Last-Translator: jan Anja <cyber@sysrq.in>\n" |
6 | "Language-Team: Toki Pona <http://weblate.skyjake.fi/projects/lagrange/ui/tok/" | 6 | "Language-Team: Toki Pona <http://weblate.skyjake.fi/projects/lagrange/ui/tok/" |
7 | ">\n" | 7 | ">\n" |
@@ -2048,3 +2048,23 @@ msgstr "" | |||
2048 | 2048 | ||
2049 | msgid "lang.hu" | 2049 | msgid "lang.hu" |
2050 | msgstr "toki Mosijo" | 2050 | msgstr "toki Mosijo" |
2051 | |||
2052 | msgid "prefs.time.24h" | ||
2053 | msgstr "tenpo 24" | ||
2054 | |||
2055 | # This label should be fairly short so it fits in a button in the sidebar. | ||
2056 | msgid "sidebar.action.feeds.markallread" | ||
2057 | msgstr "o lukin ala" | ||
2058 | |||
2059 | # Color of text background. | ||
2060 | msgid "prefs.gemtext.ansi.bg" | ||
2061 | msgstr "lipu kule" | ||
2062 | |||
2063 | msgid "menu.update" | ||
2064 | msgstr "o sin e ilo Lakelan…" | ||
2065 | |||
2066 | msgid "dlg.bookmark.folder" | ||
2067 | msgstr "poki:" | ||
2068 | |||
2069 | msgid "sidebar.action.show" | ||
2070 | msgstr "o len ala:" | ||
@@ -1,7 +1,7 @@ | |||
1 | msgid "" | 1 | msgid "" |
2 | msgstr "" | 2 | msgstr "" |
3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" | 3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" |
4 | "PO-Revision-Date: 2021-11-28 23:50+0000\n" | 4 | "PO-Revision-Date: 2021-12-27 13:50+0000\n" |
5 | "Last-Translator: Emir <emir_sari@msn.com>\n" | 5 | "Last-Translator: Emir <emir_sari@msn.com>\n" |
6 | "Language-Team: Turkish <http://weblate.skyjake.fi/projects/lagrange/ui/tr/>\n" | 6 | "Language-Team: Turkish <http://weblate.skyjake.fi/projects/lagrange/ui/tr/>\n" |
7 | "Language: tr\n" | 7 | "Language: tr\n" |
@@ -365,7 +365,7 @@ msgid "feeds.edit" | |||
365 | msgstr "Beslemeyi düzenle…" | 365 | msgstr "Beslemeyi düzenle…" |
366 | 366 | ||
367 | msgid "feeds.markallread" | 367 | msgid "feeds.markallread" |
368 | msgstr "Tümünü okundu olarak imle" | 368 | msgstr "Tümü okundu" |
369 | 369 | ||
370 | msgid "feeds.refresh" | 370 | msgid "feeds.refresh" |
371 | msgstr "Beslemeleri yenile" | 371 | msgstr "Beslemeleri yenile" |
@@ -1562,7 +1562,7 @@ msgid "menu.show.identities" | |||
1562 | msgstr "Kimlikleri göster" | 1562 | msgstr "Kimlikleri göster" |
1563 | 1563 | ||
1564 | msgid "menu.autoreload" | 1564 | msgid "menu.autoreload" |
1565 | msgstr "Kendiliğinden yeniden yüklemeyi ayarla…" | 1565 | msgstr "Kendiliğinden yeniden yükle…" |
1566 | 1566 | ||
1567 | msgid "menu.fonts" | 1567 | msgid "menu.fonts" |
1568 | msgstr "Yazıtiplerini yönet…" | 1568 | msgstr "Yazıtiplerini yönet…" |
@@ -1596,8 +1596,8 @@ msgstr "KB" | |||
1596 | #, c-format | 1596 | #, c-format |
1597 | msgid "page.timestamp" | 1597 | msgid "page.timestamp" |
1598 | msgstr "" | 1598 | msgstr "" |
1599 | "Alınma zamanı ve tarihi: %I:%M %p,\n" | 1599 | "Alındı: %d %b %Y,\n" |
1600 | " %b %d, %Y" | 1600 | "%I.%M %p" |
1601 | 1601 | ||
1602 | msgid "feeds.entry.markread" | 1602 | msgid "feeds.entry.markread" |
1603 | msgstr "Okundu olarak imle" | 1603 | msgstr "Okundu olarak imle" |
@@ -1653,8 +1653,8 @@ msgstr "" | |||
1653 | #, c-format | 1653 | #, c-format |
1654 | msgid "error.unsupported.suggestsave" | 1654 | msgid "error.unsupported.suggestsave" |
1655 | msgstr "" | 1655 | msgstr "" |
1656 | "İndirilenler klasörünüze bir dosya olarak kaydedebilirsiniz: %s düğmelerine " | 1656 | "İndirilenler klasörünüze bir dosya olarak kaydedin: %s düğmelerine basın " |
1657 | "basın veya menüden \"%s\" ögesini seçin." | 1657 | "veya menüden \"%s\" ögesini seçin." |
1658 | 1658 | ||
1659 | msgid "error.server.msg" | 1659 | msgid "error.server.msg" |
1660 | msgstr "Sunucu şu iletiyle yanıtladı:" | 1660 | msgstr "Sunucu şu iletiyle yanıtladı:" |
@@ -2061,8 +2061,8 @@ msgstr "\"%s\" yazıtipi paketini kalıcı olarak silmek istiyor musunuz?" | |||
2061 | 2061 | ||
2062 | msgid "fontpack.help" | 2062 | msgid "fontpack.help" |
2063 | msgstr "" | 2063 | msgstr "" |
2064 | "Lagrange yazıtipi paketleri bir yazıtipi paketini ve ilişkin yapılandırma " | 2064 | "Lagrange yazıtipi paketleri, bir yazıtipi paketini ve ilişkin yapılandırma " |
2065 | "parametrelerini içeren ZIP arşivleridir. Yüklendikten sonra, yazıtipleri " | 2065 | "parametrelerini içeren ZIP arşivleridir. Yüklendikten sonra yazıtipleri, " |
2066 | "belge içeriği ve kullanıcı arabirimi için kullanılabilir. Etkin " | 2066 | "belge içeriği ve kullanıcı arabirimi için kullanılabilir. Etkin " |
2067 | "yazıtiplerini Tercihler > Yazıtipleri bölümünden seçebilirsiniz." | 2067 | "yazıtiplerini Tercihler > Yazıtipleri bölümünden seçebilirsiniz." |
2068 | 2068 | ||
@@ -2087,3 +2087,10 @@ msgstr "Arka plan rengi" | |||
2087 | 2087 | ||
2088 | msgid "sidebar.action.show" | 2088 | msgid "sidebar.action.show" |
2089 | msgstr "Göster:" | 2089 | msgstr "Göster:" |
2090 | |||
2091 | msgid "prefs.time.24h" | ||
2092 | msgstr "24 saat biçimi" | ||
2093 | |||
2094 | # This label should be fairly short so it fits in a button in the sidebar. | ||
2095 | msgid "sidebar.action.feeds.markallread" | ||
2096 | msgstr "Tümünü oku" | ||
@@ -1,7 +1,7 @@ | |||
1 | msgid "" | 1 | msgid "" |
2 | msgstr "" | 2 | msgstr "" |
3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" | 3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" |
4 | "PO-Revision-Date: 2021-11-28 23:50+0000\n" | 4 | "PO-Revision-Date: 2021-12-23 11:10+0000\n" |
5 | "Last-Translator: Alyssa Liddell <e-liss@tuta.io>\n" | 5 | "Last-Translator: Alyssa Liddell <e-liss@tuta.io>\n" |
6 | "Language-Team: Ukrainian <http://weblate.skyjake.fi/projects/lagrange/ui/uk/>" | 6 | "Language-Team: Ukrainian <http://weblate.skyjake.fi/projects/lagrange/ui/uk/>" |
7 | "\n" | 7 | "\n" |
@@ -1139,7 +1139,7 @@ msgid "lang.pt" | |||
1139 | msgstr "Португальська" | 1139 | msgstr "Португальська" |
1140 | 1140 | ||
1141 | msgid "lang.ru" | 1141 | msgid "lang.ru" |
1142 | msgstr "осіська" | 1142 | msgstr "осовиька" |
1143 | 1143 | ||
1144 | msgid "lang.eo" | 1144 | msgid "lang.eo" |
1145 | msgstr "Есперанто" | 1145 | msgstr "Есперанто" |
@@ -2163,3 +2163,10 @@ msgstr "Колір фону" | |||
2163 | 2163 | ||
2164 | msgid "menu.update" | 2164 | msgid "menu.update" |
2165 | msgstr "Перевірити наявність оновлень…" | 2165 | msgstr "Перевірити наявність оновлень…" |
2166 | |||
2167 | msgid "prefs.time.24h" | ||
2168 | msgstr "24-годинний час" | ||
2169 | |||
2170 | # This label should be fairly short so it fits in a button in the sidebar. | ||
2171 | msgid "sidebar.action.feeds.markallread" | ||
2172 | msgstr "Прочитати всі" | ||
diff --git a/po/zh_Hant.po b/po/zh_Hant.po index 129abfda..820c40e2 100644 --- a/po/zh_Hant.po +++ b/po/zh_Hant.po | |||
@@ -1,7 +1,7 @@ | |||
1 | msgid "" | 1 | msgid "" |
2 | msgstr "" | 2 | msgstr "" |
3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" | 3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" |
4 | "PO-Revision-Date: 2021-09-06 10:49+0000\n" | 4 | "PO-Revision-Date: 2021-12-23 11:10+0000\n" |
5 | "Last-Translator: Shibo Lyu <github@of.sb>\n" | 5 | "Last-Translator: Shibo Lyu <github@of.sb>\n" |
6 | "Language-Team: Chinese (Traditional) <http://weblate.skyjake.fi/projects/" | 6 | "Language-Team: Chinese (Traditional) <http://weblate.skyjake.fi/projects/" |
7 | "lagrange/ui/zh_Hant/>\n" | 7 | "lagrange/ui/zh_Hant/>\n" |
@@ -68,7 +68,7 @@ msgstr "通用名稱(CN):" | |||
68 | msgid "dlg.confirm.ident.delete" | 68 | msgid "dlg.confirm.ident.delete" |
69 | msgstr "" | 69 | msgstr "" |
70 | "確定要刪除這個身分嗎?\n" | 70 | "確定要刪除這個身分嗎?\n" |
71 | "%s%s%s\n" | 71 | "%s\"%s\"%s\n" |
72 | "此操作亦將刪除它對應的憑證和私鑰檔案。" | 72 | "此操作亦將刪除它對應的憑證和私鑰檔案。" |
73 | 73 | ||
74 | # The %s format characters are used to highlight the word "Help" and must be used in the translation in same way as here. | 74 | # The %s format characters are used to highlight the word "Help" and must be used in the translation in same way as here. |
@@ -555,7 +555,7 @@ msgstr "未使用" | |||
555 | #, c-format | 555 | #, c-format |
556 | msgid "ident.usedonurls" | 556 | msgid "ident.usedonurls" |
557 | msgid_plural "ident.usedonurls.n" | 557 | msgid_plural "ident.usedonurls.n" |
558 | msgstr[0] "在 %zu 個地址上使用" | 558 | msgstr[0] "在 %u 個地址上使用" |
559 | 559 | ||
560 | # strftime() formatted | 560 | # strftime() formatted |
561 | #, c-format | 561 | #, c-format |
@@ -611,13 +611,11 @@ msgstr "退訂" | |||
611 | 611 | ||
612 | #, c-format | 612 | #, c-format |
613 | msgid "dlg.confirm.unsub" | 613 | msgid "dlg.confirm.unsub" |
614 | msgstr "" | 614 | msgstr "確定要退訂「%s」嗎?" |
615 | "確定要退訂\n" | ||
616 | "「%s」嗎?" | ||
617 | 615 | ||
618 | msgid "num.bytes" | 616 | msgid "num.bytes" |
619 | msgid_plural "num.bytes.n" | 617 | msgid_plural "num.bytes.n" |
620 | msgstr[0] "%zu 位元組" | 618 | msgstr[0] "%u 位元組" |
621 | 619 | ||
622 | msgid "dlg.unsub" | 620 | msgid "dlg.unsub" |
623 | msgstr "退訂" | 621 | msgstr "退訂" |
@@ -1304,12 +1302,12 @@ msgstr "塞爾維亞語" | |||
1304 | #, c-format | 1302 | #, c-format |
1305 | msgid "feeds.list.counts" | 1303 | msgid "feeds.list.counts" |
1306 | msgid_plural "feeds.list.counts.n" | 1304 | msgid_plural "feeds.list.counts.n" |
1307 | msgstr[0] "您訂閱了 %zu 個源,%%s。\n" | 1305 | msgstr[0] "您訂閱了 %u 個源,%%s。\n" |
1308 | 1306 | ||
1309 | #, c-format | 1307 | #, c-format |
1310 | msgid "feeds.list.entrycount" | 1308 | msgid "feeds.list.entrycount" |
1311 | msgid_plural "feeds.list.entrycount.n" | 1309 | msgid_plural "feeds.list.entrycount.n" |
1312 | msgstr[0] "共 %zu 項" | 1310 | msgstr[0] "共 %u 項" |
1313 | 1311 | ||
1314 | msgid "prefs.boldlink" | 1312 | msgid "prefs.boldlink" |
1315 | msgstr "加粗展示連結:" | 1313 | msgstr "加粗展示連結:" |
@@ -1477,7 +1475,7 @@ msgstr "" | |||
1477 | "• 2021-12-31 23:59:59" | 1475 | "• 2021-12-31 23:59:59" |
1478 | 1476 | ||
1479 | msgid "menu.split.merge" | 1477 | msgid "menu.split.merge" |
1480 | msgstr "併籤頁" | 1478 | msgstr "分" |
1481 | 1479 | ||
1482 | msgid "menu.split.swap" | 1480 | msgid "menu.split.swap" |
1483 | msgstr "交換位置" | 1481 | msgstr "交換位置" |
@@ -1489,7 +1487,7 @@ msgid "menu.split.vertical" | |||
1489 | msgstr "縱向" | 1487 | msgstr "縱向" |
1490 | 1488 | ||
1491 | msgid "menu.view.split" | 1489 | msgid "menu.view.split" |
1492 | msgstr "分屏…" | 1490 | msgstr "分欄…" |
1493 | 1491 | ||
1494 | msgid "gempub.cover.untitled" | 1492 | msgid "gempub.cover.untitled" |
1495 | msgstr "未名書" | 1493 | msgstr "未名書" |
@@ -1628,9 +1626,7 @@ msgid "heading.uploadport" | |||
1628 | msgstr "TITAN 上載埠號" | 1626 | msgstr "TITAN 上載埠號" |
1629 | 1627 | ||
1630 | msgid "dlg.uploadport.msg" | 1628 | msgid "dlg.uploadport.msg" |
1631 | msgstr "" | 1629 | msgstr "為此 URL 設定 Titan 伺服器埠號。埠號設定分站點儲存。" |
1632 | "為此 URL 設定 Titan 伺服器埠號。\n" | ||
1633 | "埠號設定分站點儲存。" | ||
1634 | 1630 | ||
1635 | msgid "dlg.uploadport.set" | 1631 | msgid "dlg.uploadport.set" |
1636 | msgstr "設定埠號" | 1632 | msgstr "設定埠號" |
@@ -1694,7 +1690,7 @@ msgid "bookmark.export.format.tags" | |||
1694 | msgstr "標籤以二級標題呈現。" | 1690 | msgstr "標籤以二級標題呈現。" |
1695 | 1691 | ||
1696 | msgid "menu.page.upload" | 1692 | msgid "menu.page.upload" |
1697 | msgstr "透過 Titan 上載頁面" | 1693 | msgstr "透過 Titan 上載頁面…" |
1698 | 1694 | ||
1699 | msgid "heading.upload" | 1695 | msgid "heading.upload" |
1700 | msgstr "透過 TITAN 上載" | 1696 | msgstr "透過 TITAN 上載" |
@@ -1721,7 +1717,7 @@ msgid "upload.mime" | |||
1721 | msgstr "MIME 類型:" | 1717 | msgstr "MIME 類型:" |
1722 | 1718 | ||
1723 | msgid "upload.token" | 1719 | msgid "upload.token" |
1724 | msgstr "載牌:" | 1720 | msgstr "令牌:" |
1725 | 1721 | ||
1726 | msgid "hint.upload.token" | 1722 | msgid "hint.upload.token" |
1727 | msgstr "參見伺服器的指引" | 1723 | msgstr "參見伺服器的指引" |
@@ -1752,3 +1748,173 @@ msgstr "行距:" | |||
1752 | 1748 | ||
1753 | msgid "prefs.memorysize" | 1749 | msgid "prefs.memorysize" |
1754 | msgstr "記憶體大小:" | 1750 | msgstr "記憶體大小:" |
1751 | |||
1752 | msgid "prefs.imagestyle.text" | ||
1753 | msgstr "文字顏色" | ||
1754 | |||
1755 | msgid "prefs.imagestyle.preformat" | ||
1756 | msgstr "預格式顏色" | ||
1757 | |||
1758 | msgid "prefs.boldlink.visited" | ||
1759 | msgstr "訪問過" | ||
1760 | |||
1761 | msgid "menu.newfolder" | ||
1762 | msgstr "創建檔案夾…" | ||
1763 | |||
1764 | msgid "menu.sort.alpha" | ||
1765 | msgstr "依字母序排序" | ||
1766 | |||
1767 | # used for Preferences on mobile | ||
1768 | msgid "menu.settings" | ||
1769 | msgstr "設定" | ||
1770 | |||
1771 | # keep this short (3x1 horiz layout) | ||
1772 | msgid "menu.selectall" | ||
1773 | msgstr "全選" | ||
1774 | |||
1775 | # keep this short (3x1 horiz layout) | ||
1776 | msgid "menu.delete" | ||
1777 | msgstr "刪去" | ||
1778 | |||
1779 | # keep this short (3x1 horiz layout) | ||
1780 | msgid "menu.undo" | ||
1781 | msgstr "還原" | ||
1782 | |||
1783 | #, c-format | ||
1784 | msgid "dlg.confirm.bookmarks.delete" | ||
1785 | msgid_plural "dlg.confirm.bookmarks.delete.n" | ||
1786 | msgstr[0] "確實要移除此檔案夾中全部 %u 個書籤嗎?" | ||
1787 | |||
1788 | #, c-format | ||
1789 | msgid "dlg.bookmarks.delete" | ||
1790 | msgid_plural "dlg.bookmarks.delete.n" | ||
1791 | msgstr[0] "移除 %u 個書籤" | ||
1792 | |||
1793 | # button in the mobile New Identity dialog | ||
1794 | msgid "dlg.certimport.pickfile" | ||
1795 | msgstr "匯入憑證或金鑰檔案" | ||
1796 | |||
1797 | msgid "upload.id" | ||
1798 | msgstr "身份:" | ||
1799 | |||
1800 | # used on mobile | ||
1801 | msgid "dlg.upload.file" | ||
1802 | msgstr "上載一個檔案" | ||
1803 | |||
1804 | # used on mobile | ||
1805 | msgid "dlg.upload.pickfile" | ||
1806 | msgstr "選取檔案" | ||
1807 | |||
1808 | msgid "dlg.feed.ignoreweb" | ||
1809 | msgstr "忽略 HTTP(S) 連結:" | ||
1810 | |||
1811 | msgid "dlg.bookmark.folder" | ||
1812 | msgstr "檔案夾:" | ||
1813 | |||
1814 | msgid "prefs.bookmarks.addbottom" | ||
1815 | msgstr "在底部添加書籤:" | ||
1816 | |||
1817 | msgid "prefs.time.24h" | ||
1818 | msgstr "24小時制" | ||
1819 | |||
1820 | msgid "prefs.imagestyle" | ||
1821 | msgstr "影像著色:" | ||
1822 | |||
1823 | msgid "prefs.imagestyle.original" | ||
1824 | msgstr "無" | ||
1825 | |||
1826 | msgid "prefs.imagestyle.grayscale" | ||
1827 | msgstr "灰度" | ||
1828 | |||
1829 | # Abbrevation: background-to-foreground | ||
1830 | msgid "prefs.imagestyle.bgfg" | ||
1831 | msgstr "背景至前景" | ||
1832 | |||
1833 | msgid "prefs.font.ui" | ||
1834 | msgstr "UI:" | ||
1835 | |||
1836 | msgid "prefs.font.heading" | ||
1837 | msgstr "標題:" | ||
1838 | |||
1839 | msgid "prefs.font.body" | ||
1840 | msgstr "內文:" | ||
1841 | |||
1842 | msgid "prefs.font.mono" | ||
1843 | msgstr "預格式文本:" | ||
1844 | |||
1845 | # Color of text background. | ||
1846 | msgid "prefs.gemtext.ansi.bg" | ||
1847 | msgstr "背景色" | ||
1848 | |||
1849 | msgid "prefs.gemtext.ansi.fontstyle" | ||
1850 | msgstr "字體樣式" | ||
1851 | |||
1852 | msgid "menu.website" | ||
1853 | msgstr "專案網站…" | ||
1854 | |||
1855 | msgid "menu.fonts" | ||
1856 | msgstr "管理字體…" | ||
1857 | |||
1858 | msgid "num.files" | ||
1859 | msgid_plural "num.files.n" | ||
1860 | msgstr[0] "%u 檔案" | ||
1861 | |||
1862 | msgid "num.fonts" | ||
1863 | msgid_plural "num.fonts.n" | ||
1864 | msgstr[0] "%u 字體" | ||
1865 | |||
1866 | msgid "dlg.certwarn.title" | ||
1867 | msgstr "安全問題" | ||
1868 | |||
1869 | # This label should be fairly short so it fits in a button in the sidebar. | ||
1870 | msgid "sidebar.action.feeds.markallread" | ||
1871 | msgstr "全部已讀" | ||
1872 | |||
1873 | msgid "sidebar.action.show" | ||
1874 | msgstr "顯示:" | ||
1875 | |||
1876 | msgid "dlg.upload.id.default" | ||
1877 | msgstr "預設" | ||
1878 | |||
1879 | # used on mobile | ||
1880 | msgid "dlg.upload.text" | ||
1881 | msgstr "上載純文本" | ||
1882 | |||
1883 | msgid "prefs.gemtext.ansi" | ||
1884 | msgstr "ANSI 跳脫:" | ||
1885 | |||
1886 | # Color of the text foreground, i.e., the characters. | ||
1887 | msgid "prefs.gemtext.ansi.fg" | ||
1888 | msgstr "前景色" | ||
1889 | |||
1890 | msgid "dlg.upload.id.none" | ||
1891 | msgstr "無" | ||
1892 | |||
1893 | msgid "dlg.addfolder.defaulttitle" | ||
1894 | msgstr "新檔案夾" | ||
1895 | |||
1896 | msgid "dlg.addfolder.prompt" | ||
1897 | msgstr "填寫新檔案夾名稱:" | ||
1898 | |||
1899 | # Font to use for headings and body when Monospace body is enabled. | ||
1900 | msgid "prefs.font.monodoc" | ||
1901 | msgstr "等寬字體:" | ||
1902 | |||
1903 | msgid "menu.update" | ||
1904 | msgstr "檢查更新…" | ||
1905 | |||
1906 | msgid "heading.confirm.bookmarks.delete" | ||
1907 | msgstr "移除書籤" | ||
1908 | |||
1909 | msgid "heading.bookmark.tags" | ||
1910 | msgstr "特殊標籤" | ||
1911 | |||
1912 | msgid "heading.addfolder" | ||
1913 | msgstr "新增檔案夾" | ||
1914 | |||
1915 | msgid "dlg.addfolder" | ||
1916 | msgstr "創建檔案夾" | ||
1917 | |||
1918 | # used on mobile | ||
1919 | msgid "heading.settings" | ||
1920 | msgstr "設定" | ||
diff --git a/res/about/help.gmi b/res/about/help.gmi index b753cb39..7949b775 100644 --- a/res/about/help.gmi +++ b/res/about/help.gmi | |||
@@ -529,7 +529,7 @@ On macOS and Windows, Lagrange registers itself as a "gemini:" URL scheme handle | |||
529 | 529 | ||
530 | Likewise (on macOS), .gmi/.gemini file extensions are registered as file formats that Lagrange can view so Finder will know how to open those automatically using Lagrange. | 530 | Likewise (on macOS), .gmi/.gemini file extensions are registered as file formats that Lagrange can view so Finder will know how to open those automatically using Lagrange. |
531 | 531 | ||
532 | ## 3.3 Drop and drop | 532 | ## 3.3 Drag and drop |
533 | 533 | ||
534 | You can drag and drop .gmi files on the Lagrange window to open them in the current tab. Dropping multiple files opens them in separate tabs. This is the recommended way to view local files, because there is no "Open File" menu item. You may also type "file://" URLs in the URL field. | 534 | You can drag and drop .gmi files on the Lagrange window to open them in the current tab. Dropping multiple files opens them in separate tabs. This is the recommended way to view local files, because there is no "Open File" menu item. You may also type "file://" URLs in the URL field. |
535 | 535 | ||
diff --git a/res/about/version.gmi b/res/about/version.gmi index d363d195..ff954fc6 100644 --- a/res/about/version.gmi +++ b/res/about/version.gmi | |||
@@ -30,9 +30,30 @@ Fixes: | |||
30 | * Fixed initial scroll position in multiline input fields. | 30 | * Fixed initial scroll position in multiline input fields. |
31 | * Fixed lookup results list becoming too narrow. | 31 | * Fixed lookup results list becoming too narrow. |
32 | 32 | ||
33 | ## 1.9.5 | ||
34 | * Fixed misshapen button borders (SDL 2.0.16 line drawing workaround). | ||
35 | * Fixed actions being triggered when navigating via home row keys. | ||
36 | * macOS: Fixed native menu items being triggered when navigating via home row keys. | ||
37 | * macOS: Fixed native menu items triggering when changing key bindings. | ||
38 | |||
39 | ## 1.9.4 | ||
40 | * Fixed crash when a link is missing both URL and label (just a `=>`). | ||
41 | * Fixed handling of foreground color escapes in the simple text renderer. | ||
42 | * Updated UI translations. | ||
43 | * Upgraded SDL to 2.0.18. | ||
44 | |||
45 | ## 1.9.3 | ||
46 | * Added UI language for Dutch. | ||
47 | * Updated UI translations. | ||
48 | * Fixed the simple text renderer (build error, hanging). | ||
49 | * Fixed time zone of the "valid from" time in created client certificates. | ||
50 | * macOS: Fixed selecting scope for a newly created identity. | ||
51 | |||
33 | ## 1.9.2 | 52 | ## 1.9.2 |
34 | * Windows: Use the correct version number for update checks. | 53 | * Windows: Use the correct version number for update checks. |
54 | * Fixed possible crash when switching Feeds sidebar filter mode via the popup menu. | ||
35 | * Shorter label for "Mark All as Read" in Feeds sidebar actions. | 55 | * Shorter label for "Mark All as Read" in Feeds sidebar actions. |
56 | * In popup menus, differentiate between selected item and hover item. | ||
36 | * Updated UI translations. | 57 | * Updated UI translations. |
37 | 58 | ||
38 | ## 1.9.1 | 59 | ## 1.9.1 |
diff --git a/res/lang/cs.bin b/res/lang/cs.bin index 9069f4b0..22043934 100644 --- a/res/lang/cs.bin +++ b/res/lang/cs.bin | |||
Binary files differ | |||
diff --git a/res/lang/de.bin b/res/lang/de.bin index 62893c64..b2bb35a0 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 1b26e61e..fbf4c73c 100644 --- a/res/lang/en.bin +++ b/res/lang/en.bin | |||
Binary files differ | |||
diff --git a/res/lang/eo.bin b/res/lang/eo.bin index 3b734982..d7f9cebf 100644 --- a/res/lang/eo.bin +++ b/res/lang/eo.bin | |||
Binary files differ | |||
diff --git a/res/lang/es.bin b/res/lang/es.bin index feb0b8ea..749645bf 100644 --- a/res/lang/es.bin +++ b/res/lang/es.bin | |||
Binary files differ | |||
diff --git a/res/lang/es_MX.bin b/res/lang/es_MX.bin index 3de1f106..078de89d 100644 --- a/res/lang/es_MX.bin +++ b/res/lang/es_MX.bin | |||
Binary files differ | |||
diff --git a/res/lang/fi.bin b/res/lang/fi.bin index 86efb862..dee3561f 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 e6977fd9..96c1148e 100644 --- a/res/lang/fr.bin +++ b/res/lang/fr.bin | |||
Binary files differ | |||
diff --git a/res/lang/gl.bin b/res/lang/gl.bin index f282366d..02482f3a 100644 --- a/res/lang/gl.bin +++ b/res/lang/gl.bin | |||
Binary files differ | |||
diff --git a/res/lang/hu.bin b/res/lang/hu.bin index 3ca7ee30..7b7edb50 100644 --- a/res/lang/hu.bin +++ b/res/lang/hu.bin | |||
Binary files differ | |||
diff --git a/res/lang/ia.bin b/res/lang/ia.bin index 7772f7d0..c8e00d5e 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 648fb372..14f16e5d 100644 --- a/res/lang/ie.bin +++ b/res/lang/ie.bin | |||
Binary files differ | |||
diff --git a/res/lang/isv.bin b/res/lang/isv.bin index adeeb8cd..80754fc5 100644 --- a/res/lang/isv.bin +++ b/res/lang/isv.bin | |||
Binary files differ | |||
diff --git a/res/lang/nl.bin b/res/lang/nl.bin new file mode 100644 index 00000000..6ae01202 --- /dev/null +++ b/res/lang/nl.bin | |||
Binary files differ | |||
diff --git a/res/lang/pl.bin b/res/lang/pl.bin index fab560a5..c0affedf 100644 --- a/res/lang/pl.bin +++ b/res/lang/pl.bin | |||
Binary files differ | |||
diff --git a/res/lang/ru.bin b/res/lang/ru.bin index 1166b064..f0762eea 100644 --- a/res/lang/ru.bin +++ b/res/lang/ru.bin | |||
Binary files differ | |||
diff --git a/res/lang/sk.bin b/res/lang/sk.bin index ec171de2..deda3b69 100644 --- a/res/lang/sk.bin +++ b/res/lang/sk.bin | |||
Binary files differ | |||
diff --git a/res/lang/sr.bin b/res/lang/sr.bin index eec114aa..dc13d2e1 100644 --- a/res/lang/sr.bin +++ b/res/lang/sr.bin | |||
Binary files differ | |||
diff --git a/res/lang/tok.bin b/res/lang/tok.bin index 95532b2a..6a93803c 100644 --- a/res/lang/tok.bin +++ b/res/lang/tok.bin | |||
Binary files differ | |||
diff --git a/res/lang/tr.bin b/res/lang/tr.bin index 95bdffdc..1dd9733b 100644 --- a/res/lang/tr.bin +++ b/res/lang/tr.bin | |||
Binary files differ | |||
diff --git a/res/lang/uk.bin b/res/lang/uk.bin index e222a609..4154c354 100644 --- a/res/lang/uk.bin +++ b/res/lang/uk.bin | |||
Binary files differ | |||
diff --git a/res/lang/zh_Hans.bin b/res/lang/zh_Hans.bin index 0a12f0dd..3a83dd40 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 ba1ff8c9..ffad7072 100644 --- a/res/lang/zh_Hant.bin +++ b/res/lang/zh_Hant.bin | |||
Binary files differ | |||
@@ -124,7 +124,7 @@ struct Impl_App { | |||
124 | iMimeHooks * mimehooks; | 124 | iMimeHooks * mimehooks; |
125 | iGmCerts * certs; | 125 | iGmCerts * certs; |
126 | iVisited * visited; | 126 | iVisited * visited; |
127 | iBookmarks * bookmarks; | 127 | iBookmarks * bookmarks; |
128 | iMainWindow *window; | 128 | iMainWindow *window; |
129 | iPtrArray popupWindows; | 129 | iPtrArray popupWindows; |
130 | iSortedArray tickers; /* per-frame callbacks, used for animations */ | 130 | iSortedArray tickers; /* per-frame callbacks, used for animations */ |
@@ -752,7 +752,7 @@ static void init_App_(iApp *d, int argc, char **argv) { | |||
752 | d->isSuspended = iFalse; | 752 | d->isSuspended = iFalse; |
753 | d->tempFilesPendingDeletion = new_StringSet(); | 753 | d->tempFilesPendingDeletion = new_StringSet(); |
754 | init_CommandLine(&d->args, argc, argv); | 754 | init_CommandLine(&d->args, argc, argv); |
755 | /* Where was the app started from? We ask SDL first because the command line alone | 755 | /* Where was the app started from? We ask SDL first because the command line alone |
756 | cannot be relied on (behavior differs depending on OS). */ { | 756 | cannot be relied on (behavior differs depending on OS). */ { |
757 | char *exec = SDL_GetBasePath(); | 757 | char *exec = SDL_GetBasePath(); |
758 | if (exec) { | 758 | if (exec) { |
@@ -1021,12 +1021,12 @@ static void deinit_App(iApp *d) { | |||
1021 | #endif | 1021 | #endif |
1022 | deinit_SortedArray(&d->tickers); | 1022 | deinit_SortedArray(&d->tickers); |
1023 | deinit_Periodic(&d->periodic); | 1023 | deinit_Periodic(&d->periodic); |
1024 | deinit_Lang(); | 1024 | deinit_Lang(); |
1025 | iRecycle(); | 1025 | iRecycle(); |
1026 | /* Delete all temporary files created while running. */ | 1026 | /* Delete all temporary files created while running. */ |
1027 | iConstForEach(StringSet, tmp, d->tempFilesPendingDeletion) { | 1027 | iConstForEach(StringSet, tmp, d->tempFilesPendingDeletion) { |
1028 | remove(cstr_String(tmp.value)); | 1028 | remove(cstr_String(tmp.value)); |
1029 | } | 1029 | } |
1030 | iRelease(d->tempFilesPendingDeletion); | 1030 | iRelease(d->tempFilesPendingDeletion); |
1031 | } | 1031 | } |
1032 | 1032 | ||
@@ -1305,7 +1305,7 @@ void processEvents_App(enum iAppEventMode eventMode) { | |||
1305 | #if defined (LAGRANGE_ENABLE_IDLE_SLEEP) | 1305 | #if defined (LAGRANGE_ENABLE_IDLE_SLEEP) |
1306 | d->isIdling = iFalse; | 1306 | d->isIdling = iFalse; |
1307 | d->lastEventTime = SDL_GetTicks(); | 1307 | d->lastEventTime = SDL_GetTicks(); |
1308 | #endif | 1308 | #endif |
1309 | postRefresh_App(); | 1309 | postRefresh_App(); |
1310 | break; | 1310 | break; |
1311 | case SDL_APP_WILLENTERBACKGROUND: | 1311 | case SDL_APP_WILLENTERBACKGROUND: |
@@ -1511,7 +1511,7 @@ backToMainLoop:; | |||
1511 | static void runTickers_App_(iApp *d) { | 1511 | static void runTickers_App_(iApp *d) { |
1512 | const uint32_t now = SDL_GetTicks(); | 1512 | const uint32_t now = SDL_GetTicks(); |
1513 | d->elapsedSinceLastTicker = (d->lastTickerTime ? now - d->lastTickerTime : 0); | 1513 | d->elapsedSinceLastTicker = (d->lastTickerTime ? now - d->lastTickerTime : 0); |
1514 | d->lastTickerTime = now; | 1514 | d->lastTickerTime = now; |
1515 | if (isEmpty_SortedArray(&d->tickers)) { | 1515 | if (isEmpty_SortedArray(&d->tickers)) { |
1516 | d->lastTickerTime = 0; | 1516 | d->lastTickerTime = 0; |
1517 | return; | 1517 | return; |
@@ -2105,9 +2105,8 @@ static iBool handleIdentityCreationCommands_(iWidget *dlg, const char *cmd) { | |||
2105 | } | 2105 | } |
2106 | if (equal_Command(cmd, "ident.scope")) { | 2106 | if (equal_Command(cmd, "ident.scope")) { |
2107 | iLabelWidget *scope = findChild_Widget(dlg, "ident.scope"); | 2107 | iLabelWidget *scope = findChild_Widget(dlg, "ident.scope"); |
2108 | setText_LabelWidget(scope, | 2108 | updateDropdownSelection_LabelWidget(scope, format_CStr(" arg:%d", arg_Command(cmd))); |
2109 | text_LabelWidget(child_Widget( | 2109 | updateSize_LabelWidget(scope); |
2110 | findChild_Widget(as_Widget(scope), "menu"), arg_Command(cmd)))); | ||
2111 | arrange_Widget(findWidget_App("ident")); | 2110 | arrange_Widget(findWidget_App("ident")); |
2112 | return iTrue; | 2111 | return iTrue; |
2113 | } | 2112 | } |
@@ -2174,19 +2173,11 @@ static iBool handleIdentityCreationCommands_(iWidget *dlg, const char *cmd) { | |||
2174 | organization, | 2173 | organization, |
2175 | country); | 2174 | country); |
2176 | /* Use in the chosen scope. */ { | 2175 | /* Use in the chosen scope. */ { |
2177 | const iLabelWidget *scope = findChild_Widget(dlg, "ident.scope"); | 2176 | int selScope = 2; |
2178 | const iString * selLabel = text_LabelWidget(scope); | 2177 | const char *scopeCmd = |
2179 | int selScope = 0; | 2178 | selectedDropdownCommand_LabelWidget(findChild_Widget(dlg, "ident.scope")); |
2180 | iConstForEach(ObjectList, | 2179 | if (startsWith_CStr(scopeCmd, "ident.scope arg:")) { |
2181 | i, | 2180 | selScope = arg_Command(scopeCmd); |
2182 | children_Widget(findChild_Widget(constAs_Widget(scope), "menu"))) { | ||
2183 | if (isInstance_Object(i.object, &Class_LabelWidget)) { | ||
2184 | const iLabelWidget *item = i.object; | ||
2185 | if (equal_String(text_LabelWidget(item), selLabel)) { | ||
2186 | break; | ||
2187 | } | ||
2188 | selScope++; | ||
2189 | } | ||
2190 | } | 2181 | } |
2191 | const iString *docUrl = url_DocumentWidget(document_Root(dlg->root)); | 2182 | const iString *docUrl = url_DocumentWidget(document_Root(dlg->root)); |
2192 | iString *useUrl = NULL; | 2183 | iString *useUrl = NULL; |
@@ -3107,7 +3098,7 @@ iBool handleCommand_App(const char *cmd) { | |||
3107 | iWidget *idPanel = panel_Mobile(dlg, 2); | 3098 | iWidget *idPanel = panel_Mobile(dlg, 2); |
3108 | iWidget *button = findUserData_Widget(findChild_Widget(dlg, "panel.top"), idPanel); | 3099 | iWidget *button = findUserData_Widget(findChild_Widget(dlg, "panel.top"), idPanel); |
3109 | postCommand_Widget(button, "panel.open"); | 3100 | postCommand_Widget(button, "panel.open"); |
3110 | } | 3101 | } |
3111 | } | 3102 | } |
3112 | else if (equal_Command(cmd, "navigate.home")) { | 3103 | else if (equal_Command(cmd, "navigate.home")) { |
3113 | /* Look for bookmarks tagged "homepage". */ | 3104 | /* Look for bookmarks tagged "homepage". */ |
@@ -3413,8 +3404,8 @@ void openInDefaultBrowser_App(const iString *url) { | |||
3413 | "xdg-open", | 3404 | "xdg-open", |
3414 | cstr_String(url), | 3405 | cstr_String(url), |
3415 | #elif defined (iPlatformMsys) | 3406 | #elif defined (iPlatformMsys) |
3416 | concatPath_CStr(cstr_String(execPath_App()), "../urlopen.bat"), | 3407 | concatPath_CStr(cstr_String(execPath_App()), "../urlopen.bat"), |
3417 | cstr_String(url), | 3408 | cstr_String(url), |
3418 | /* TODO: The prompt window is shown momentarily... */ | 3409 | /* TODO: The prompt window is shown momentarily... */ |
3419 | #endif | 3410 | #endif |
3420 | NULL)) | 3411 | NULL)) |
@@ -3426,11 +3417,11 @@ void openInDefaultBrowser_App(const iString *url) { | |||
3426 | 3417 | ||
3427 | void revealPath_App(const iString *path) { | 3418 | void revealPath_App(const iString *path) { |
3428 | #if defined (iPlatformAppleDesktop) | 3419 | #if defined (iPlatformAppleDesktop) |
3429 | iProcess *proc = new_Process(); | 3420 | iProcess *proc = new_Process(); |
3430 | setArguments_Process( | 3421 | setArguments_Process( |
3431 | proc, iClob(newStringsCStr_StringList("/usr/bin/open", "-R", cstr_String(path), NULL))); | 3422 | proc, iClob(newStringsCStr_StringList("/usr/bin/open", "-R", cstr_String(path), NULL))); |
3432 | start_Process(proc); | 3423 | start_Process(proc); |
3433 | iRelease(proc); | 3424 | iRelease(proc); |
3434 | #elif defined (iPlatformAppleMobile) | 3425 | #elif defined (iPlatformAppleMobile) |
3435 | /* Use a share sheet. */ | 3426 | /* Use a share sheet. */ |
3436 | openFileActivityView_iOS(path); | 3427 | openFileActivityView_iOS(path); |
@@ -101,6 +101,7 @@ static void load_Lang_(iLang *d, const char *id) { | |||
101 | : equal_CStr(id, "ia") ? &blobIa_Resources | 101 | : equal_CStr(id, "ia") ? &blobIa_Resources |
102 | : equal_CStr(id, "ie") ? &blobIe_Resources | 102 | : equal_CStr(id, "ie") ? &blobIe_Resources |
103 | : equal_CStr(id, "isv") ? &blobIsv_Resources | 103 | : equal_CStr(id, "isv") ? &blobIsv_Resources |
104 | : equal_CStr(id, "nl") ? &blobNl_Resources | ||
104 | : equal_CStr(id, "pl") ? &blobPl_Resources | 105 | : equal_CStr(id, "pl") ? &blobPl_Resources |
105 | : equal_CStr(id, "sk") ? &blobSk_Resources | 106 | : equal_CStr(id, "sk") ? &blobSk_Resources |
106 | : equal_CStr(id, "sr") ? &blobSr_Resources | 107 | : equal_CStr(id, "sr") ? &blobSr_Resources |
diff --git a/src/macos.h b/src/macos.h index 22a6dfff..10cbba81 100644 --- a/src/macos.h +++ b/src/macos.h | |||
@@ -39,8 +39,10 @@ void hideTitleBar_MacOS (iWindow *window); | |||
39 | void insertMenuItems_MacOS (const char *menuLabel, int atIndex, const iMenuItem *items, size_t count); | 39 | void insertMenuItems_MacOS (const char *menuLabel, int atIndex, const iMenuItem *items, size_t count); |
40 | void removeMenu_MacOS (int atIndex); | 40 | void removeMenu_MacOS (int atIndex); |
41 | void enableMenu_MacOS (const char *menuLabel, iBool enable); | 41 | void enableMenu_MacOS (const char *menuLabel, iBool enable); |
42 | void enableMenuIndex_MacOS (int index, iBool enable); | ||
42 | void enableMenuItem_MacOS (const char *menuItemCommand, iBool enable); | 43 | void enableMenuItem_MacOS (const char *menuItemCommand, iBool enable); |
43 | void enableMenuItemsByKey_MacOS (int key, int kmods, iBool enable); | 44 | void enableMenuItemsByKey_MacOS (int key, int kmods, iBool enable); |
45 | void enableMenuItemsOnHomeRow_MacOS(iBool enable); | ||
44 | void handleCommand_MacOS (const char *cmd); | 46 | void handleCommand_MacOS (const char *cmd); |
45 | 47 | ||
46 | void showPopupMenu_MacOS (iWidget *source, iInt2 windowCoord, const iMenuItem *items, size_t n); | 48 | void showPopupMenu_MacOS (iWidget *source, iInt2 windowCoord, const iMenuItem *items, size_t n); |
diff --git a/src/macos.m b/src/macos.m index e05222a0..911f5e3a 100644 --- a/src/macos.m +++ b/src/macos.m | |||
@@ -31,6 +31,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ | |||
31 | 31 | ||
32 | #include <SDL_timer.h> | 32 | #include <SDL_timer.h> |
33 | #include <SDL_syswm.h> | 33 | #include <SDL_syswm.h> |
34 | #include <the_Foundation/stringset.h> | ||
34 | 35 | ||
35 | #import <AppKit/AppKit.h> | 36 | #import <AppKit/AppKit.h> |
36 | 37 | ||
@@ -543,6 +544,13 @@ void enableMenu_MacOS(const char *menuLabel, iBool enable) { | |||
543 | [menuItem setEnabled:enable]; | 544 | [menuItem setEnabled:enable]; |
544 | } | 545 | } |
545 | 546 | ||
547 | void enableMenuIndex_MacOS(int index, iBool enable) { | ||
548 | NSApplication *app = [NSApplication sharedApplication]; | ||
549 | NSMenu *appMenu = [app mainMenu]; | ||
550 | NSMenuItem *menuItem = [appMenu itemAtIndex:index]; | ||
551 | [menuItem setEnabled:enable]; | ||
552 | } | ||
553 | |||
546 | void enableMenuItem_MacOS(const char *menuItemCommand, iBool enable) { | 554 | void enableMenuItem_MacOS(const char *menuItemCommand, iBool enable) { |
547 | NSApplication *app = [NSApplication sharedApplication]; | 555 | NSApplication *app = [NSApplication sharedApplication]; |
548 | NSMenu *appMenu = [app mainMenu]; | 556 | NSMenu *appMenu = [app mainMenu]; |
@@ -617,6 +625,47 @@ void enableMenuItemsByKey_MacOS(int key, int kmods, iBool enable) { | |||
617 | delete_String(keyEquiv); | 625 | delete_String(keyEquiv); |
618 | } | 626 | } |
619 | 627 | ||
628 | void enableMenuItemsOnHomeRow_MacOS(iBool enable) { | ||
629 | iStringSet *homeRowKeys = new_StringSet(); | ||
630 | const char *keys[] = { /* Note: another array in documentwidget.c */ | ||
631 | "f", "d", "s", "a", | ||
632 | "j", "k", "l", | ||
633 | "r", "e", "w", "q", | ||
634 | "u", "i", "o", "p", | ||
635 | "v", "c", "x", "z", | ||
636 | "m", "n", | ||
637 | "g", "h", | ||
638 | "b", | ||
639 | "t", "y" | ||
640 | }; | ||
641 | iForIndices(i, keys) { | ||
642 | iString str; | ||
643 | initCStr_String(&str, keys[i]); | ||
644 | insert_StringSet(homeRowKeys, &str); | ||
645 | deinit_String(&str); | ||
646 | } | ||
647 | NSApplication *app = [NSApplication sharedApplication]; | ||
648 | NSMenu *appMenu = [app mainMenu]; | ||
649 | for (NSMenuItem *mainMenuItem in appMenu.itemArray) { | ||
650 | NSMenu *menu = mainMenuItem.submenu; | ||
651 | if (menu) { | ||
652 | for (NSMenuItem *menuItem in menu.itemArray) { | ||
653 | if (menuItem.keyEquivalentModifierMask == 0) { | ||
654 | iString equiv; | ||
655 | initCStr_String(&equiv, [menuItem.keyEquivalent | ||
656 | cStringUsingEncoding:NSUTF8StringEncoding]); | ||
657 | if (contains_StringSet(homeRowKeys, &equiv)) { | ||
658 | [menuItem setEnabled:enable]; | ||
659 | [menu setAutoenablesItems:NO]; | ||
660 | } | ||
661 | deinit_String(&equiv); | ||
662 | } | ||
663 | } | ||
664 | } | ||
665 | } | ||
666 | iRelease(homeRowKeys); | ||
667 | } | ||
668 | |||
620 | static void setShortcut_NSMenuItem_(NSMenuItem *item, int key, int kmods) { | 669 | static void setShortcut_NSMenuItem_(NSMenuItem *item, int key, int kmods) { |
621 | NSEventModifierFlags modMask; | 670 | NSEventModifierFlags modMask; |
622 | iString *str = composeKeyEquivalent_(key, kmods, &modMask); | 671 | iString *str = composeKeyEquivalent_(key, kmods, &modMask); |
diff --git a/src/resources.c b/src/resources.c index fb234f6a..ae85463a 100644 --- a/src/resources.c +++ b/src/resources.c | |||
@@ -48,6 +48,7 @@ iBlock blobHu_Resources; | |||
48 | iBlock blobIa_Resources; | 48 | iBlock blobIa_Resources; |
49 | iBlock blobIe_Resources; | 49 | iBlock blobIe_Resources; |
50 | iBlock blobIsv_Resources; | 50 | iBlock blobIsv_Resources; |
51 | iBlock blobNl_Resources; | ||
51 | iBlock blobPl_Resources; | 52 | iBlock blobPl_Resources; |
52 | iBlock blobRu_Resources; | 53 | iBlock blobRu_Resources; |
53 | iBlock blobSk_Resources; | 54 | iBlock blobSk_Resources; |
@@ -91,6 +92,7 @@ static struct { | |||
91 | { &blobIa_Resources, "lang/ia.bin" }, | 92 | { &blobIa_Resources, "lang/ia.bin" }, |
92 | { &blobIe_Resources, "lang/ie.bin" }, | 93 | { &blobIe_Resources, "lang/ie.bin" }, |
93 | { &blobIsv_Resources, "lang/isv.bin" }, | 94 | { &blobIsv_Resources, "lang/isv.bin" }, |
95 | { &blobNl_Resources, "lang/nl.bin" }, | ||
94 | { &blobPl_Resources, "lang/pl.bin" }, | 96 | { &blobPl_Resources, "lang/pl.bin" }, |
95 | { &blobRu_Resources, "lang/ru.bin" }, | 97 | { &blobRu_Resources, "lang/ru.bin" }, |
96 | { &blobSk_Resources, "lang/sk.bin" }, | 98 | { &blobSk_Resources, "lang/sk.bin" }, |
diff --git a/src/resources.h b/src/resources.h index b00fde51..3852cc3e 100644 --- a/src/resources.h +++ b/src/resources.h | |||
@@ -50,6 +50,7 @@ extern iBlock blobHu_Resources; | |||
50 | extern iBlock blobIa_Resources; | 50 | extern iBlock blobIa_Resources; |
51 | extern iBlock blobIe_Resources; | 51 | extern iBlock blobIe_Resources; |
52 | extern iBlock blobIsv_Resources; | 52 | extern iBlock blobIsv_Resources; |
53 | extern iBlock blobNl_Resources; | ||
53 | extern iBlock blobPl_Resources; | 54 | extern iBlock blobPl_Resources; |
54 | extern iBlock blobRu_Resources; | 55 | extern iBlock blobRu_Resources; |
55 | extern iBlock blobSk_Resources; | 56 | extern iBlock blobSk_Resources; |
diff --git a/src/ui/bindingswidget.c b/src/ui/bindingswidget.c index 4cf8df8e..13f9434e 100644 --- a/src/ui/bindingswidget.c +++ b/src/ui/bindingswidget.c | |||
@@ -143,12 +143,16 @@ static void setActiveItem_BindingsWidget_(iBindingsWidget *d, size_t pos) { | |||
143 | item->isWaitingForEvent = iTrue; | 143 | item->isWaitingForEvent = iTrue; |
144 | invalidateItem_ListWidget(d->list, d->activePos); | 144 | invalidateItem_ListWidget(d->list, d->activePos); |
145 | } | 145 | } |
146 | #if defined (iPlatformAppleDesktop) | 146 | #if defined (iPlatformAppleDesktop) && defined (iHaveNativeContextMenus) |
147 | /* Native menus must be disabled while grabbing keys so the shortcuts don't trigger. */ | 147 | /* Native menus must be disabled while grabbing keys so the shortcuts don't trigger. */ |
148 | const iBool enableNativeMenus = (d->activePos == iInvalidPos); | 148 | const iBool enableNativeMenus = (d->activePos == iInvalidPos); |
149 | enableMenu_MacOS("${menu.title.file}", enableNativeMenus); | ||
149 | enableMenu_MacOS("${menu.title.edit}", enableNativeMenus); | 150 | enableMenu_MacOS("${menu.title.edit}", enableNativeMenus); |
150 | enableMenu_MacOS("${menu.title.view}", enableNativeMenus); | 151 | enableMenu_MacOS("${menu.title.view}", enableNativeMenus); |
152 | enableMenu_MacOS("${menu.title.bookmarks}", enableNativeMenus); | ||
151 | enableMenu_MacOS("${menu.title.identity}", enableNativeMenus); | 153 | enableMenu_MacOS("${menu.title.identity}", enableNativeMenus); |
154 | enableMenuIndex_MacOS(6, enableNativeMenus); | ||
155 | enableMenuIndex_MacOS(7, enableNativeMenus); | ||
152 | #endif | 156 | #endif |
153 | } | 157 | } |
154 | 158 | ||
diff --git a/src/ui/documentwidget.c b/src/ui/documentwidget.c index 88e016f3..9b531957 100644 --- a/src/ui/documentwidget.c +++ b/src/ui/documentwidget.c | |||
@@ -56,6 +56,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ | |||
56 | #include "visbuf.h" | 56 | #include "visbuf.h" |
57 | #include "visited.h" | 57 | #include "visited.h" |
58 | 58 | ||
59 | #if defined (iPlatformAppleDesktop) | ||
60 | # include "macos.h" | ||
61 | #endif | ||
59 | #if defined (iPlatformAppleMobile) | 62 | #if defined (iPlatformAppleMobile) |
60 | # include "ios.h" | 63 | # include "ios.h" |
61 | #endif | 64 | #endif |
@@ -1934,11 +1937,18 @@ static void enableActions_DocumentWidget_(iDocumentWidget *d, iBool enable) { | |||
1934 | } | 1937 | } |
1935 | 1938 | ||
1936 | static void setLinkNumberMode_DocumentWidget_(iDocumentWidget *d, iBool set) { | 1939 | static void setLinkNumberMode_DocumentWidget_(iDocumentWidget *d, iBool set) { |
1937 | iChangeFlags(d->flags, showLinkNumbers_DocumentWidgetFlag, set); | 1940 | if (((d->flags & showLinkNumbers_DocumentWidgetFlag) != 0) != set) { |
1938 | /* Children have priority when handling events. */ | 1941 | iChangeFlags(d->flags, showLinkNumbers_DocumentWidgetFlag, set); |
1939 | enableActions_DocumentWidget_(d, !set); | 1942 | /* Children have priority when handling events. */ |
1940 | if (d->menu) { | 1943 | enableActions_DocumentWidget_(d, !set); |
1941 | setFlags_Widget(d->menu, disabled_WidgetFlag, set); | 1944 | #if defined (iPlatformAppleDesktop) |
1945 | enableMenuItemsOnHomeRow_MacOS(!set); | ||
1946 | #endif | ||
1947 | /* Ensure all keyboard events come here first. */ | ||
1948 | setKeyboardGrab_Widget(set ? as_Widget(d) : NULL); | ||
1949 | if (d->menu) { | ||
1950 | setFlags_Widget(d->menu, disabled_WidgetFlag, set); | ||
1951 | } | ||
1942 | } | 1952 | } |
1943 | } | 1953 | } |
1944 | 1954 | ||
@@ -2252,10 +2262,6 @@ static void showErrorPage_DocumentWidget_(iDocumentWidget *d, enum iGmStatusCode | |||
2252 | case tooManyRedirects_GmStatusCode: | 2262 | case tooManyRedirects_GmStatusCode: |
2253 | appendFormat_String(src, "=> %s\n", cstr_String(meta)); | 2263 | appendFormat_String(src, "=> %s\n", cstr_String(meta)); |
2254 | break; | 2264 | break; |
2255 | case tlsFailure_GmStatusCode: | ||
2256 | // useBanner = iFalse; /* valid data wasn't received from host */ | ||
2257 | // appendFormat_String(src, ">%s\n", cstr_String(meta)); | ||
2258 | break; | ||
2259 | case tlsServerCertificateExpired_GmStatusCode: | 2265 | case tlsServerCertificateExpired_GmStatusCode: |
2260 | makeFooterButtons_DocumentWidget_( | 2266 | makeFooterButtons_DocumentWidget_( |
2261 | d, | 2267 | d, |
diff --git a/src/ui/labelwidget.c b/src/ui/labelwidget.c index 44ae3eec..89e95c85 100644 --- a/src/ui/labelwidget.c +++ b/src/ui/labelwidget.c | |||
@@ -205,6 +205,7 @@ static void getColors_LabelWidget_(const iLabelWidget *d, int *bg, int *fg, int | |||
205 | const iBool isSel = (flags & selected_WidgetFlag) != 0; | 205 | const iBool isSel = (flags & selected_WidgetFlag) != 0; |
206 | const iBool isFrameless = (flags & frameless_WidgetFlag) != 0; | 206 | const iBool isFrameless = (flags & frameless_WidgetFlag) != 0; |
207 | const iBool isButton = d->click.button != 0; | 207 | const iBool isButton = d->click.button != 0; |
208 | const iBool isMenuItem = !cmp_String(id_Widget(parent_Widget(d)), "menu"); | ||
208 | const iBool isKeyRoot = (w->root == get_Window()->keyRoot); | 209 | const iBool isKeyRoot = (w->root == get_Window()->keyRoot); |
209 | const iBool isDarkTheme = isDark_ColorTheme(colorTheme_App()); | 210 | const iBool isDarkTheme = isDark_ColorTheme(colorTheme_App()); |
210 | /* Default color state. */ | 211 | /* Default color state. */ |
@@ -229,7 +230,7 @@ static void getColors_LabelWidget_(const iLabelWidget *d, int *bg, int *fg, int | |||
229 | *bg = uiBackgroundSelected_ColorId; | 230 | *bg = uiBackgroundSelected_ColorId; |
230 | if (!isKeyRoot) { | 231 | if (!isKeyRoot) { |
231 | *bg = isDark_ColorTheme(colorTheme_App()) ? uiBackgroundUnfocusedSelection_ColorId | 232 | *bg = isDark_ColorTheme(colorTheme_App()) ? uiBackgroundUnfocusedSelection_ColorId |
232 | : uiMarked_ColorId; | 233 | : uiMarked_ColorId; |
233 | } | 234 | } |
234 | } | 235 | } |
235 | *fg = uiTextSelected_ColorId; | 236 | *fg = uiTextSelected_ColorId; |
@@ -294,7 +295,7 @@ static void getColors_LabelWidget_(const iLabelWidget *d, int *bg, int *fg, int | |||
294 | } | 295 | } |
295 | *fg = *icon = *meta = uiTextPressed_ColorId | permanent_ColorId; | 296 | *fg = *icon = *meta = uiTextPressed_ColorId | permanent_ColorId; |
296 | } | 297 | } |
297 | } | 298 | } |
298 | if (((isSel || isHover) && isFrameless) || isPress) { | 299 | if (((isSel || isHover) && isFrameless) || isPress) { |
299 | /* Ensure that the full label text remains readable. */ | 300 | /* Ensure that the full label text remains readable. */ |
300 | *fg |= permanent_ColorId; | 301 | *fg |= permanent_ColorId; |
@@ -429,7 +430,7 @@ static void draw_LabelWidget_(const iLabelWidget *d) { | |||
429 | moved_Rect( | 430 | moved_Rect( |
430 | adjusted_Rect(bounds, | 431 | adjusted_Rect(bounds, |
431 | init_I2(iconPad * (flags & tight_WidgetFlag ? 1.0f : 1.5f), 0), | 432 | init_I2(iconPad * (flags & tight_WidgetFlag ? 1.0f : 1.5f), 0), |
432 | init_I2(-iconPad * (flags & tight_WidgetFlag ? 0.5f : 1.0f), 0)), | 433 | init_I2(-iconPad * (flags & tight_WidgetFlag ? 0.5f : 1.0f), 0)), |
433 | d->labelOffset), | 434 | d->labelOffset), |
434 | d->flags.alignVisual, | 435 | d->flags.alignVisual, |
435 | d->flags.drawAsOutline ? fg : none_ColorId, | 436 | d->flags.drawAsOutline ? fg : none_ColorId, |
@@ -566,20 +567,20 @@ void setTextColor_LabelWidget(iLabelWidget *d, int color) { | |||
566 | 567 | ||
567 | void setText_LabelWidget(iLabelWidget *d, const iString *text) { | 568 | void setText_LabelWidget(iLabelWidget *d, const iString *text) { |
568 | if (d) { | 569 | if (d) { |
569 | updateText_LabelWidget(d, text); | 570 | updateText_LabelWidget(d, text); |
570 | updateSize_LabelWidget(d); | 571 | updateSize_LabelWidget(d); |
571 | if (isWrapped_LabelWidget(d)) { | 572 | if (isWrapped_LabelWidget(d)) { |
572 | sizeChanged_LabelWidget_(d); | 573 | sizeChanged_LabelWidget_(d); |
573 | } | 574 | } |
574 | } | 575 | } |
575 | } | 576 | } |
576 | 577 | ||
577 | void setTextCStr_LabelWidget(iLabelWidget *d, const char *text) { | 578 | void setTextCStr_LabelWidget(iLabelWidget *d, const char *text) { |
578 | if (d) { | 579 | if (d) { |
579 | updateTextCStr_LabelWidget(d, text); | 580 | updateTextCStr_LabelWidget(d, text); |
580 | updateSize_LabelWidget(d); | 581 | updateSize_LabelWidget(d); |
581 | if (isWrapped_LabelWidget(d)) { | 582 | if (isWrapped_LabelWidget(d)) { |
582 | sizeChanged_LabelWidget_(d); | 583 | sizeChanged_LabelWidget_(d); |
583 | } | 584 | } |
584 | } | 585 | } |
585 | } | 586 | } |
diff --git a/src/ui/sidebarwidget.c b/src/ui/sidebarwidget.c index fe8ec939..409d749c 100644 --- a/src/ui/sidebarwidget.c +++ b/src/ui/sidebarwidget.c | |||
@@ -125,7 +125,7 @@ struct Impl_SidebarWidget { | |||
125 | float widthAsGaps; | 125 | float widthAsGaps; |
126 | int buttonFont; | 126 | int buttonFont; |
127 | int itemFonts[2]; | 127 | int itemFonts[2]; |
128 | size_t numUnreadEntries; | 128 | size_t numUnreadEntries; |
129 | iWidget * resizer; | 129 | iWidget * resizer; |
130 | iWidget * menu; /* context menu for an item */ | 130 | iWidget * menu; /* context menu for an item */ |
131 | iWidget * modeMenu; /* context menu for the sidebar mode (no item) */ | 131 | iWidget * modeMenu; /* context menu for the sidebar mode (no item) */ |
@@ -266,7 +266,7 @@ static void updateItemsWithFlags_SidebarWidget_(iSidebarWidget *d, iBool keepAct | |||
266 | clear_ListWidget(d->list); | 266 | clear_ListWidget(d->list); |
267 | releaseChildren_Widget(d->blank); | 267 | releaseChildren_Widget(d->blank); |
268 | if (!keepActions) { | 268 | if (!keepActions) { |
269 | releaseChildren_Widget(d->actions); | 269 | releaseChildren_Widget(d->actions); |
270 | } | 270 | } |
271 | d->actions->rect.size.y = 0; | 271 | d->actions->rect.size.y = 0; |
272 | destroy_Widget(d->menu); | 272 | destroy_Widget(d->menu); |
@@ -350,37 +350,37 @@ static void updateItemsWithFlags_SidebarWidget_(iSidebarWidget *d, iBool keepAct | |||
350 | } | 350 | } |
351 | /* Actions. */ | 351 | /* Actions. */ |
352 | if (!isMobile) { | 352 | if (!isMobile) { |
353 | if (!keepActions) { | 353 | if (!keepActions) { |
354 | addActionButton_SidebarWidget_(d, | 354 | addActionButton_SidebarWidget_(d, |
355 | check_Icon " ${sidebar.action.feeds.markallread}", | 355 | check_Icon " ${sidebar.action.feeds.markallread}", |
356 | "feeds.markallread", | 356 | "feeds.markallread", |
357 | expand_WidgetFlag | tight_WidgetFlag); | 357 | expand_WidgetFlag | tight_WidgetFlag); |
358 | updateSize_LabelWidget(addChildFlags_Widget(d->actions, | 358 | updateSize_LabelWidget(addChildFlags_Widget(d->actions, |
359 | iClob(new_LabelWidget("${sidebar.action.show}", NULL)), | 359 | iClob(new_LabelWidget("${sidebar.action.show}", NULL)), |
360 | frameless_WidgetFlag | tight_WidgetFlag)); | 360 | frameless_WidgetFlag | tight_WidgetFlag)); |
361 | const iMenuItem items[] = { | 361 | const iMenuItem items[] = { |
362 | { page_Icon " ${sidebar.action.feeds.showall}", SDLK_u, KMOD_SHIFT, "feeds.mode arg:0" }, | 362 | { page_Icon " ${sidebar.action.feeds.showall}", SDLK_u, KMOD_SHIFT, "feeds.mode arg:0" }, |
363 | { circle_Icon " ${sidebar.action.feeds.showunread}", SDLK_u, 0, "feeds.mode arg:1" }, | 363 | { circle_Icon " ${sidebar.action.feeds.showunread}", SDLK_u, 0, "feeds.mode arg:1" }, |
364 | }; | 364 | }; |
365 | iWidget *dropButton = addChild_Widget( | 365 | iWidget *dropButton = addChild_Widget( |
366 | d->actions, | 366 | d->actions, |
367 | iClob(makeMenuButton_LabelWidget(items[d->feedsMode].label, items, 2))); | 367 | iClob(makeMenuButton_LabelWidget(items[d->feedsMode].label, items, 2))); |
368 | setId_Widget(dropButton, "feeds.modebutton"); | 368 | setId_Widget(dropButton, "feeds.modebutton"); |
369 | checkIcon_LabelWidget((iLabelWidget *) dropButton); | 369 | checkIcon_LabelWidget((iLabelWidget *) dropButton); |
370 | setFixedSize_Widget( | 370 | setFixedSize_Widget( |
371 | dropButton, | 371 | dropButton, |
372 | init_I2(iMaxi(20 * gap_UI, | 372 | init_I2(iMaxi(20 * gap_UI, |
373 | measure_Text(default_FontId, | 373 | measure_Text(default_FontId, |
374 | translateCStr_Lang( | 374 | translateCStr_Lang( |
375 | items[findWidestLabel_MenuItem(items, 2)].label)) | 375 | items[findWidestLabel_MenuItem(items, 2)].label)) |
376 | .advance.x + | 376 | .advance.x + |
377 | 13 * gap_UI), | 377 | 13 * gap_UI), |
378 | -1)); | 378 | -1)); |
379 | } | 379 | } |
380 | else { | 380 | else { |
381 | updateDropdownSelection_LabelWidget(findChild_Widget(d->actions, "feeds.modebutton"), | 381 | updateDropdownSelection_LabelWidget(findChild_Widget(d->actions, "feeds.modebutton"), |
382 | format_CStr(" arg:%d", d->feedsMode)); | 382 | format_CStr(" arg:%d", d->feedsMode)); |
383 | } | 383 | } |
384 | } | 384 | } |
385 | else { | 385 | else { |
386 | if (!keepActions) { | 386 | if (!keepActions) { |
@@ -605,7 +605,7 @@ static void updateItemsWithFlags_SidebarWidget_(iSidebarWidget *d, iBool keepAct | |||
605 | setPadding_Widget(div, 0, 0, 0, height_Widget(d->actions)); | 605 | setPadding_Widget(div, 0, 0, 0, height_Widget(d->actions)); |
606 | addChildFlags_Widget(div, iClob(new_Widget()), expand_WidgetFlag); /* pad */ | 606 | addChildFlags_Widget(div, iClob(new_Widget()), expand_WidgetFlag); /* pad */ |
607 | if (d->feedsMode == all_FeedsMode) { | 607 | if (d->feedsMode == all_FeedsMode) { |
608 | addChild_Widget(div, iClob(new_LabelWidget("${menu.feeds.refresh}", "feeds.refresh"))); | 608 | addChild_Widget(div, iClob(new_LabelWidget("${menu.feeds.refresh}", "feeds.refresh"))); |
609 | } | 609 | } |
610 | else { | 610 | else { |
611 | iLabelWidget *msg = addChildFlags_Widget(div, iClob(new_LabelWidget("${sidebar.empty.unread}", NULL)), | 611 | iLabelWidget *msg = addChildFlags_Widget(div, iClob(new_LabelWidget("${sidebar.empty.unread}", NULL)), |
@@ -719,8 +719,8 @@ iBool setMode_SidebarWidget(iSidebarWidget *d, enum iSidebarMode mode) { | |||
719 | 719 | ||
720 | void setClosedFolders_SidebarWidget(iSidebarWidget *d, const iIntSet *closedFolders) { | 720 | void setClosedFolders_SidebarWidget(iSidebarWidget *d, const iIntSet *closedFolders) { |
721 | if (d) { | 721 | if (d) { |
722 | delete_IntSet(d->closedFolders); | 722 | delete_IntSet(d->closedFolders); |
723 | d->closedFolders = copy_IntSet(closedFolders); | 723 | d->closedFolders = copy_IntSet(closedFolders); |
724 | } | 724 | } |
725 | } | 725 | } |
726 | 726 | ||
@@ -840,35 +840,35 @@ void init_SidebarWidget(iSidebarWidget *d, enum iSidebarSide side) { | |||
840 | setFont_LabelWidget(closeButton, uiLabelBigBold_FontId); | 840 | setFont_LabelWidget(closeButton, uiLabelBigBold_FontId); |
841 | iConnect(Root, get_Root(), visualOffsetsChanged, d, updateSlidingSheetHeight_SidebarWidget_); | 841 | iConnect(Root, get_Root(), visualOffsetsChanged, d, updateSlidingSheetHeight_SidebarWidget_); |
842 | } | 842 | } |
843 | iWidget *buttons = new_Widget(); | 843 | iWidget *buttons = new_Widget(); |
844 | setId_Widget(buttons, "buttons"); | 844 | setId_Widget(buttons, "buttons"); |
845 | setDrawBufferEnabled_Widget(buttons, iTrue); | 845 | setDrawBufferEnabled_Widget(buttons, iTrue); |
846 | for (int i = 0; i < max_SidebarMode; i++) { | 846 | for (int i = 0; i < max_SidebarMode; i++) { |
847 | if (i == identities_SidebarMode && deviceType_App() != desktop_AppDeviceType) { | 847 | if (i == identities_SidebarMode && deviceType_App() != desktop_AppDeviceType) { |
848 | /* On mobile, identities are managed via Settings. */ | 848 | /* On mobile, identities are managed via Settings. */ |
849 | continue; | 849 | continue; |
850 | } | 850 | } |
851 | d->modeButtons[i] = addChildFlags_Widget( | 851 | d->modeButtons[i] = addChildFlags_Widget( |
852 | buttons, | 852 | buttons, |
853 | iClob(new_LabelWidget( | 853 | iClob(new_LabelWidget( |
854 | tightModeLabels_[i], | 854 | tightModeLabels_[i], |
855 | format_CStr("%s.mode arg:%d", cstr_String(id_Widget(w)), i))), | 855 | format_CStr("%s.mode arg:%d", cstr_String(id_Widget(w)), i))), |
856 | frameless_WidgetFlag | noBackground_WidgetFlag); | 856 | frameless_WidgetFlag | noBackground_WidgetFlag); |
857 | as_Widget(d->modeButtons[i])->flags2 |= slidingSheetDraggable_WidgetFlag2; /* phone */ | 857 | as_Widget(d->modeButtons[i])->flags2 |= slidingSheetDraggable_WidgetFlag2; /* phone */ |
858 | } | 858 | } |
859 | setButtonFont_SidebarWidget(d, isPhone ? uiLabelBig_FontId : uiLabel_FontId); | 859 | setButtonFont_SidebarWidget(d, isPhone ? uiLabelBig_FontId : uiLabel_FontId); |
860 | addChildFlags_Widget(vdiv, | 860 | addChildFlags_Widget(vdiv, |
861 | iClob(buttons), | 861 | iClob(buttons), |
862 | arrangeHorizontal_WidgetFlag | resizeWidthOfChildren_WidgetFlag | | 862 | arrangeHorizontal_WidgetFlag | resizeWidthOfChildren_WidgetFlag | |
863 | arrangeHeight_WidgetFlag | resizeToParentWidth_WidgetFlag); | 863 | arrangeHeight_WidgetFlag | resizeToParentWidth_WidgetFlag); |
864 | setBackgroundColor_Widget(buttons, uiBackgroundSidebar_ColorId); | 864 | setBackgroundColor_Widget(buttons, uiBackgroundSidebar_ColorId); |
865 | iWidget *content = new_Widget(); | 865 | iWidget *content = new_Widget(); |
866 | setFlags_Widget(content, resizeChildren_WidgetFlag, iTrue); | 866 | setFlags_Widget(content, resizeChildren_WidgetFlag, iTrue); |
867 | iWidget *listAndActions = makeVDiv_Widget(); | 867 | iWidget *listAndActions = makeVDiv_Widget(); |
868 | addChild_Widget(content, iClob(listAndActions)); | 868 | addChild_Widget(content, iClob(listAndActions)); |
869 | iWidget *listArea = new_Widget(); | 869 | iWidget *listArea = new_Widget(); |
870 | setFlags_Widget(listArea, resizeChildren_WidgetFlag, iTrue); | 870 | setFlags_Widget(listArea, resizeChildren_WidgetFlag, iTrue); |
871 | d->list = new_ListWidget(); | 871 | d->list = new_ListWidget(); |
872 | setPadding_Widget(as_Widget(d->list), 0, gap_UI, 0, gap_UI); | 872 | setPadding_Widget(as_Widget(d->list), 0, gap_UI, 0, gap_UI); |
873 | addChild_Widget(listArea, iClob(d->list)); | 873 | addChild_Widget(listArea, iClob(d->list)); |
874 | if (!isPhone) { | 874 | if (!isPhone) { |
@@ -892,7 +892,7 @@ void init_SidebarWidget(iSidebarWidget *d, enum iSidebarSide side) { | |||
892 | setBackgroundColor_Widget(d->actions, uiBackground_ColorId); | 892 | setBackgroundColor_Widget(d->actions, uiBackground_ColorId); |
893 | } | 893 | } |
894 | else { | 894 | else { |
895 | setBackgroundColor_Widget(d->actions, uiBackgroundSidebar_ColorId); | 895 | setBackgroundColor_Widget(d->actions, uiBackgroundSidebar_ColorId); |
896 | } | 896 | } |
897 | d->contextItem = NULL; | 897 | d->contextItem = NULL; |
898 | d->contextIndex = iInvalidPos; | 898 | d->contextIndex = iInvalidPos; |
@@ -945,7 +945,7 @@ iBool setButtonFont_SidebarWidget(iSidebarWidget *d, int font) { | |||
945 | static const iGmIdentity *constHoverIdentity_SidebarWidget_(const iSidebarWidget *d) { | 945 | static const iGmIdentity *constHoverIdentity_SidebarWidget_(const iSidebarWidget *d) { |
946 | if (d->mode == identities_SidebarMode) { | 946 | if (d->mode == identities_SidebarMode) { |
947 | return constHoverIdentity_CertListWidget(d->certList); | 947 | return constHoverIdentity_CertListWidget(d->certList); |
948 | } | 948 | } |
949 | return NULL; | 949 | return NULL; |
950 | } | 950 | } |
951 | 951 | ||
@@ -1182,26 +1182,26 @@ static iBool handleSidebarCommand_SidebarWidget_(iSidebarWidget *d, const char * | |||
1182 | const int animFlags = easeOut_AnimFlag | softer_AnimFlag; | 1182 | const int animFlags = easeOut_AnimFlag | softer_AnimFlag; |
1183 | if (!isPortraitPhone_App()) { | 1183 | if (!isPortraitPhone_App()) { |
1184 | if (!isHiding) { | 1184 | if (!isHiding) { |
1185 | setFlags_Widget(w, keepOnTop_WidgetFlag, iFalse); | 1185 | setFlags_Widget(w, keepOnTop_WidgetFlag, iFalse); |
1186 | w->rect.size.x = d->widthAsGaps * gap_UI; | 1186 | w->rect.size.x = d->widthAsGaps * gap_UI; |
1187 | invalidate_ListWidget(d->list); | 1187 | invalidate_ListWidget(d->list); |
1188 | if (isAnimated) { | 1188 | if (isAnimated) { |
1189 | setFlags_Widget(w, horizontalOffset_WidgetFlag, iTrue); | 1189 | setFlags_Widget(w, horizontalOffset_WidgetFlag, iTrue); |
1190 | setVisualOffset_Widget( | 1190 | setVisualOffset_Widget( |
1191 | w, (d->side == left_SidebarSide ? -1 : 1) * (w->rect.size.x + safePad), 0, 0); | 1191 | w, (d->side == left_SidebarSide ? -1 : 1) * (w->rect.size.x + safePad), 0, 0); |
1192 | setVisualOffset_Widget(w, 0, 300, animFlags); | 1192 | setVisualOffset_Widget(w, 0, 300, animFlags); |
1193 | } | ||
1194 | } | 1193 | } |
1195 | else if (isAnimated) { | 1194 | } |
1196 | setFlags_Widget(w, horizontalOffset_WidgetFlag, iTrue); | 1195 | else if (isAnimated) { |
1197 | if (d->side == right_SidebarSide) { | 1196 | setFlags_Widget(w, horizontalOffset_WidgetFlag, iTrue); |
1198 | setVisualOffset_Widget(w, visX, 0, 0); | 1197 | if (d->side == right_SidebarSide) { |
1199 | setVisualOffset_Widget( | 1198 | setVisualOffset_Widget(w, visX, 0, 0); |
1199 | setVisualOffset_Widget( | ||
1200 | w, visX + w->rect.size.x + safePad, 300, animFlags); | 1200 | w, visX + w->rect.size.x + safePad, 300, animFlags); |
1201 | } | 1201 | } |
1202 | else { | 1202 | else { |
1203 | setFlags_Widget(w, keepOnTop_WidgetFlag, iTrue); | 1203 | setFlags_Widget(w, keepOnTop_WidgetFlag, iTrue); |
1204 | setVisualOffset_Widget( | 1204 | setVisualOffset_Widget( |
1205 | w, -w->rect.size.x - safePad, 300, animFlags); | 1205 | w, -w->rect.size.x - safePad, 300, animFlags); |
1206 | } | 1206 | } |
1207 | } | 1207 | } |
@@ -1222,8 +1222,8 @@ static iBool handleSidebarCommand_SidebarWidget_(iSidebarWidget *d, const char * | |||
1222 | setVisualOffset_Widget(w, bottom_Rect(rect_Root(w->root)) - w->rect.pos.y, 300, animFlags); | 1222 | setVisualOffset_Widget(w, bottom_Rect(rect_Root(w->root)) - w->rect.pos.y, 300, animFlags); |
1223 | if (d->isEditing) { | 1223 | if (d->isEditing) { |
1224 | setMobileEditMode_SidebarWidget_(d, iFalse); | 1224 | setMobileEditMode_SidebarWidget_(d, iFalse); |
1225 | } | ||
1226 | } | 1225 | } |
1226 | } | ||
1227 | showToolbar_Root(w->root, isHiding); | 1227 | showToolbar_Root(w->root, isHiding); |
1228 | } | 1228 | } |
1229 | updateToolbarColors_Root(w->root); | 1229 | updateToolbarColors_Root(w->root); |
@@ -1231,7 +1231,7 @@ static iBool handleSidebarCommand_SidebarWidget_(iSidebarWidget *d, const char * | |||
1231 | /* BUG: Rearranging because the arrange above didn't fully resolve the height. */ | 1231 | /* BUG: Rearranging because the arrange above didn't fully resolve the height. */ |
1232 | arrange_Widget(w); | 1232 | arrange_Widget(w); |
1233 | if (!isPortraitPhone_App()) { | 1233 | if (!isPortraitPhone_App()) { |
1234 | updateSize_DocumentWidget(document_App()); | 1234 | updateSize_DocumentWidget(document_App()); |
1235 | } | 1235 | } |
1236 | if (isVisible_Widget(w)) { | 1236 | if (isVisible_Widget(w)) { |
1237 | updateItems_SidebarWidget_(d); | 1237 | updateItems_SidebarWidget_(d); |
@@ -1337,7 +1337,7 @@ static iBool processEvent_SidebarWidget_(iSidebarWidget *d, const SDL_Event *ev) | |||
1337 | /* In sliding sheet mode, sidebar is resized to fit in the safe area. */ | 1337 | /* In sliding sheet mode, sidebar is resized to fit in the safe area. */ |
1338 | setPadding_Widget(d->actions, 0, 0, 0, bottomSafeInset_Mobile()); | 1338 | setPadding_Widget(d->actions, 0, 0, 0, bottomSafeInset_Mobile()); |
1339 | } | 1339 | } |
1340 | return iFalse; | 1340 | return iFalse; |
1341 | } | 1341 | } |
1342 | else if (isMetricsChange_UserEvent(ev)) { | 1342 | else if (isMetricsChange_UserEvent(ev)) { |
1343 | if (isVisible_Widget(w)) { | 1343 | if (isVisible_Widget(w)) { |
@@ -1521,8 +1521,8 @@ static iBool processEvent_SidebarWidget_(iSidebarWidget *d, const SDL_Event *ev) | |||
1521 | iBookmark *bm = get_Bookmarks(bookmarks_App(), item->id); | 1521 | iBookmark *bm = get_Bookmarks(bookmarks_App(), item->id); |
1522 | if (flag == subscribed_BookmarkFlag && (bm->flags & flag)) { | 1522 | if (flag == subscribed_BookmarkFlag && (bm->flags & flag)) { |
1523 | removeEntries_Feeds(item->id); /* get rid of unsubscribed entries */ | 1523 | removeEntries_Feeds(item->id); /* get rid of unsubscribed entries */ |
1524 | } | ||
1525 | bm->flags ^= flag; | 1524 | bm->flags ^= flag; |
1525 | } | ||
1526 | postCommand_App("bookmarks.changed"); | 1526 | postCommand_App("bookmarks.changed"); |
1527 | } | 1527 | } |
1528 | return iTrue; | 1528 | return iTrue; |
@@ -1672,10 +1672,10 @@ static iBool processEvent_SidebarWidget_(iSidebarWidget *d, const SDL_Event *ev) | |||
1672 | 0, | 1672 | 0, |
1673 | format_CStr("!feed.entry.unsubscribe arg:1 ptr:%p", d) } }, | 1673 | format_CStr("!feed.entry.unsubscribe arg:1 ptr:%p", d) } }, |
1674 | 2); | 1674 | 2); |
1675 | } | 1675 | } |
1676 | return iTrue; | 1676 | return iTrue; |
1677 | } | 1677 | } |
1678 | } | 1678 | } |
1679 | } | 1679 | } |
1680 | } | 1680 | } |
1681 | else if (isCommand_Widget(w, ev, "history.delete")) { | 1681 | else if (isCommand_Widget(w, ev, "history.delete")) { |
@@ -1731,7 +1731,7 @@ static iBool processEvent_SidebarWidget_(iSidebarWidget *d, const SDL_Event *ev) | |||
1731 | /* Update cursor. */ | 1731 | /* Update cursor. */ |
1732 | else if (contains_Widget(w, mouse)) { | 1732 | else if (contains_Widget(w, mouse)) { |
1733 | const iSidebarItem *item = constHoverItem_ListWidget(d->list); | 1733 | const iSidebarItem *item = constHoverItem_ListWidget(d->list); |
1734 | setCursor_Window(get_Window(), | 1734 | setCursor_Window(get_Window(), |
1735 | item ? (item->listItem.isSeparator ? SDL_SYSTEM_CURSOR_ARROW | 1735 | item ? (item->listItem.isSeparator ? SDL_SYSTEM_CURSOR_ARROW |
1736 | : SDL_SYSTEM_CURSOR_HAND) | 1736 | : SDL_SYSTEM_CURSOR_HAND) |
1737 | : SDL_SYSTEM_CURSOR_ARROW); | 1737 | : SDL_SYSTEM_CURSOR_ARROW); |
@@ -1791,9 +1791,9 @@ static iBool processEvent_SidebarWidget_(iSidebarWidget *d, const SDL_Event *ev) | |||
1791 | isRead ? circle_Icon " ${feeds.entry.markunread}" | 1791 | isRead ? circle_Icon " ${feeds.entry.markunread}" |
1792 | : circleWhite_Icon " ${feeds.entry.markread}"); | 1792 | : circleWhite_Icon " ${feeds.entry.markread}"); |
1793 | } | 1793 | } |
1794 | } | 1794 | } |
1795 | } | 1795 | } |
1796 | } | 1796 | } |
1797 | if (ev->type == SDL_KEYDOWN) { | 1797 | if (ev->type == SDL_KEYDOWN) { |
1798 | const int key = ev->key.keysym.sym; | 1798 | const int key = ev->key.keysym.sym; |
1799 | const int kmods = keyMods_Sym(ev->key.keysym.mod); | 1799 | const int kmods = keyMods_Sym(ev->key.keysym.mod); |
diff --git a/src/ui/util.c b/src/ui/util.c index e631a092..13bfd92f 100644 --- a/src/ui/util.c +++ b/src/ui/util.c | |||
@@ -775,7 +775,7 @@ void makeMenuItems_Widget(iWidget *menu, const iMenuItem *items, size_t n) { | |||
775 | drawKey_WidgetFlag | itemFlags); | 775 | drawKey_WidgetFlag | itemFlags); |
776 | setWrap_LabelWidget(label, isInfo); | 776 | setWrap_LabelWidget(label, isInfo); |
777 | if (!isInfo) { | 777 | if (!isInfo) { |
778 | haveIcons |= checkIcon_LabelWidget(label); | 778 | haveIcons |= checkIcon_LabelWidget(label); |
779 | } | 779 | } |
780 | setFlags_Widget(as_Widget(label), disabled_WidgetFlag, isDisabled); | 780 | setFlags_Widget(as_Widget(label), disabled_WidgetFlag, isDisabled); |
781 | if (isInfo) { | 781 | if (isInfo) { |
@@ -935,7 +935,7 @@ static void updateMenuItemFonts_Widget_(iWidget *d) { | |||
935 | } | 935 | } |
936 | switch (deviceType_App()) { | 936 | switch (deviceType_App()) { |
937 | case desktop_AppDeviceType: | 937 | case desktop_AppDeviceType: |
938 | setFont_LabelWidget(label, isCaution ? uiLabelBold_FontId : uiLabel_FontId); | 938 | setFont_LabelWidget(label, isCaution ? uiLabelBold_FontId : uiLabel_FontId); |
939 | break; | 939 | break; |
940 | case tablet_AppDeviceType: | 940 | case tablet_AppDeviceType: |
941 | setFont_LabelWidget(label, isCaution ? uiLabelMediumBold_FontId : uiLabelMedium_FontId); | 941 | setFont_LabelWidget(label, isCaution ? uiLabelMediumBold_FontId : uiLabelMedium_FontId); |
@@ -1084,8 +1084,9 @@ void openMenuFlags_Widget(iWidget *d, iInt2 windowCoord, int menuOpenFlags) { | |||
1084 | } | 1084 | } |
1085 | arrange_Widget(d); /* need to know the height */ | 1085 | arrange_Widget(d); /* need to know the height */ |
1086 | iBool allowOverflow = iFalse; | 1086 | iBool allowOverflow = iFalse; |
1087 | /* A vertical offset determined by a possible selected label in the menu. */ | 1087 | /* A vertical offset determined by a possible selected label in the menu. */ |
1088 | if (deviceType_App() == desktop_AppDeviceType) { | 1088 | if (deviceType_App() == desktop_AppDeviceType && |
1089 | windowCoord.y < rootSize.y - lineHeight_Text(uiNormal_FontSize) * 3) { | ||
1089 | iConstForEach(ObjectList, child, children_Widget(d)) { | 1090 | iConstForEach(ObjectList, child, children_Widget(d)) { |
1090 | const iWidget *item = constAs_Widget(child.object); | 1091 | const iWidget *item = constAs_Widget(child.object); |
1091 | if (flags_Widget(item) & selected_WidgetFlag) { | 1092 | if (flags_Widget(item) & selected_WidgetFlag) { |
@@ -1171,7 +1172,7 @@ void openMenuFlags_Widget(iWidget *d, iInt2 windowCoord, int menuOpenFlags) { | |||
1171 | arrange_Widget(d); | 1172 | arrange_Widget(d); |
1172 | if (!isSlidePanel) { | 1173 | if (!isSlidePanel) { |
1173 | /* LAYOUT BUG: Height of wrapped menu items is incorrect with a single arrange! */ | 1174 | /* LAYOUT BUG: Height of wrapped menu items is incorrect with a single arrange! */ |
1174 | arrange_Widget(d); | 1175 | arrange_Widget(d); |
1175 | } | 1176 | } |
1176 | if (deviceType_App() == phone_AppDeviceType) { | 1177 | if (deviceType_App() == phone_AppDeviceType) { |
1177 | if (isSlidePanel) { | 1178 | if (isSlidePanel) { |
@@ -1379,6 +1380,32 @@ void updateDropdownSelection_LabelWidget(iLabelWidget *dropButton, const char *s | |||
1379 | } | 1380 | } |
1380 | } | 1381 | } |
1381 | 1382 | ||
1383 | const char *selectedDropdownCommand_LabelWidget(const iLabelWidget *dropButton) { | ||
1384 | if (!dropButton) { | ||
1385 | return ""; | ||
1386 | } | ||
1387 | iWidget *menu = findChild_Widget(constAs_Widget(dropButton), "menu"); | ||
1388 | if (flags_Widget(menu) & nativeMenu_WidgetFlag) { | ||
1389 | iConstForEach(Array, i, userData_Object(menu)) { | ||
1390 | const iMenuItem *item = i.value; | ||
1391 | if (item->label && startsWithCase_CStr(item->label, "###")) { | ||
1392 | return item->command ? item->command : ""; | ||
1393 | } | ||
1394 | } | ||
1395 | } | ||
1396 | else { | ||
1397 | iForEach(ObjectList, i, children_Widget(menu)) { | ||
1398 | if (isInstance_Object(i.object, &Class_LabelWidget)) { | ||
1399 | iLabelWidget *item = i.object; | ||
1400 | if (flags_Widget(i.object) & selected_WidgetFlag) { | ||
1401 | return cstr_String(command_LabelWidget(item)); | ||
1402 | } | ||
1403 | } | ||
1404 | } | ||
1405 | } | ||
1406 | return ""; | ||
1407 | } | ||
1408 | |||
1382 | /*-----------------------------------------------------------------------------------------------*/ | 1409 | /*-----------------------------------------------------------------------------------------------*/ |
1383 | 1410 | ||
1384 | static iBool isTabPage_Widget_(const iWidget *tabs, const iWidget *page) { | 1411 | static iBool isTabPage_Widget_(const iWidget *tabs, const iWidget *page) { |
@@ -1831,10 +1858,10 @@ iWidget *makeValueInput_Widget(iWidget *parent, const iString *initialValue, con | |||
1831 | addChild_Widget(parent, iClob(dlg)); | 1858 | addChild_Widget(parent, iClob(dlg)); |
1832 | } | 1859 | } |
1833 | if (deviceType_App() == desktop_AppDeviceType) { /* conserve space on mobile */ | 1860 | if (deviceType_App() == desktop_AppDeviceType) { /* conserve space on mobile */ |
1834 | setId_Widget( | 1861 | setId_Widget( |
1835 | addChildFlags_Widget(dlg, iClob(new_LabelWidget(title, NULL)), | 1862 | addChildFlags_Widget(dlg, iClob(new_LabelWidget(title, NULL)), |
1836 | frameless_WidgetFlag), | 1863 | frameless_WidgetFlag), |
1837 | "valueinput.title"); | 1864 | "valueinput.title"); |
1838 | } | 1865 | } |
1839 | iLabelWidget *promptLabel; | 1866 | iLabelWidget *promptLabel; |
1840 | setId_Widget(addChildFlags_Widget( | 1867 | setId_Widget(addChildFlags_Widget( |
@@ -1864,8 +1891,8 @@ iWidget *makeValueInput_Widget(iWidget *parent, const iString *initialValue, con | |||
1864 | } | 1891 | } |
1865 | pushBack_Array(&actions, &(iMenuItem){ | 1892 | pushBack_Array(&actions, &(iMenuItem){ |
1866 | acceptLabel, | 1893 | acceptLabel, |
1867 | SDLK_RETURN, | 1894 | SDLK_RETURN, |
1868 | acceptKeyMod_ReturnKeyBehavior(prefs_App()->returnKey), | 1895 | acceptKeyMod_ReturnKeyBehavior(prefs_App()->returnKey), |
1869 | "valueinput.accept" | 1896 | "valueinput.accept" |
1870 | }); | 1897 | }); |
1871 | addChildPos_Widget(dlg, | 1898 | addChildPos_Widget(dlg, |
@@ -2352,6 +2379,7 @@ iWidget *makePreferences_Widget(void) { | |||
2352 | { u8"Interlingua - ia", 0, 0, "uilang id:ia" }, | 2379 | { u8"Interlingua - ia", 0, 0, "uilang id:ia" }, |
2353 | { u8"Interlingue - ie", 0, 0, "uilang id:ie" }, | 2380 | { u8"Interlingue - ie", 0, 0, "uilang id:ie" }, |
2354 | { u8"Interslavic - isv", 0, 0, "uilang id:isv" }, | 2381 | { u8"Interslavic - isv", 0, 0, "uilang id:isv" }, |
2382 | { u8"Nederlands - nl", 0, 0, "uilang id:nl" }, | ||
2355 | { u8"Polski - pl", 0, 0, "uilang id:pl" }, | 2383 | { u8"Polski - pl", 0, 0, "uilang id:pl" }, |
2356 | { u8"Русский - ru", 0, 0, "uilang id:ru" }, | 2384 | { u8"Русский - ru", 0, 0, "uilang id:ru" }, |
2357 | { u8"Slovak - sk", 0, 0, "uilang id:sk" }, | 2385 | { u8"Slovak - sk", 0, 0, "uilang id:sk" }, |
@@ -2519,8 +2547,8 @@ iWidget *makePreferences_Widget(void) { | |||
2519 | { "buttons id:prefs.mono", 0, 0, (const void *) monoFontItems }, | 2547 | { "buttons id:prefs.mono", 0, 0, (const void *) monoFontItems }, |
2520 | { "padding" }, | 2548 | { "padding" }, |
2521 | { "dropdown id:prefs.font.monodoc", 0, 0, (const void *) constData_Array(makeFontItems_("monodoc")) }, | 2549 | { "dropdown id:prefs.font.monodoc", 0, 0, (const void *) constData_Array(makeFontItems_("monodoc")) }, |
2522 | { "padding" }, | ||
2523 | { "toggle id:prefs.font.warnmissing" }, | 2550 | { "toggle id:prefs.font.warnmissing" }, |
2551 | { "padding" }, | ||
2524 | { "heading id:prefs.gemtext.ansi" }, | 2552 | { "heading id:prefs.gemtext.ansi" }, |
2525 | { "toggle id:prefs.gemtext.ansi.fg" }, | 2553 | { "toggle id:prefs.gemtext.ansi.fg" }, |
2526 | { "toggle id:prefs.gemtext.ansi.bg" }, | 2554 | { "toggle id:prefs.gemtext.ansi.bg" }, |
@@ -2528,8 +2556,8 @@ iWidget *makePreferences_Widget(void) { | |||
2528 | // { "toggle id:prefs.font.smooth" }, | 2556 | // { "toggle id:prefs.font.smooth" }, |
2529 | // { "padding" }, | 2557 | // { "padding" }, |
2530 | // { "dropdown id:prefs.font.ui", 0, 0, (const void *) constData_Array(makeFontItems_("ui")) }, | 2558 | // { "dropdown id:prefs.font.ui", 0, 0, (const void *) constData_Array(makeFontItems_("ui")) }, |
2531 | { "padding" }, | ||
2532 | { "button text:" fontpack_Icon " " uiTextAction_ColorEscape "${menu.fonts}", 0, 0, "!open url:about:fonts" }, | 2559 | { "button text:" fontpack_Icon " " uiTextAction_ColorEscape "${menu.fonts}", 0, 0, "!open url:about:fonts" }, |
2560 | { "padding" }, | ||
2533 | { NULL } | 2561 | { NULL } |
2534 | }; | 2562 | }; |
2535 | const iMenuItem stylePanelItems[] = { | 2563 | const iMenuItem stylePanelItems[] = { |
@@ -2994,47 +3022,47 @@ iWidget *makeBookmarkEditor_Widget(void) { | |||
2994 | } | 3022 | } |
2995 | else { | 3023 | else { |
2996 | dlg = makeSheet_Widget("bmed"); | 3024 | dlg = makeSheet_Widget("bmed"); |
2997 | setId_Widget(addChildFlags_Widget( | 3025 | setId_Widget(addChildFlags_Widget( |
2998 | dlg, | 3026 | dlg, |
2999 | iClob(new_LabelWidget(uiHeading_ColorEscape "${heading.bookmark.edit}", NULL)), | 3027 | iClob(new_LabelWidget(uiHeading_ColorEscape "${heading.bookmark.edit}", NULL)), |
3000 | frameless_WidgetFlag), | 3028 | frameless_WidgetFlag), |
3001 | "bmed.heading"); | 3029 | "bmed.heading"); |
3002 | iWidget *headings, *values; | 3030 | iWidget *headings, *values; |
3003 | addChild_Widget(dlg, iClob(makeTwoColumns_Widget(&headings, &values))); | 3031 | addChild_Widget(dlg, iClob(makeTwoColumns_Widget(&headings, &values))); |
3004 | iInputWidget *inputs[4]; | 3032 | iInputWidget *inputs[4]; |
3005 | /* Folder to add to. */ { | 3033 | /* Folder to add to. */ { |
3006 | addChild_Widget(headings, iClob(makeHeading_Widget("${dlg.bookmark.folder}"))); | 3034 | addChild_Widget(headings, iClob(makeHeading_Widget("${dlg.bookmark.folder}"))); |
3007 | const iArray *folderItems = makeBookmarkFolderItems_(iFalse); | 3035 | const iArray *folderItems = makeBookmarkFolderItems_(iFalse); |
3008 | iLabelWidget *folderButton; | 3036 | iLabelWidget *folderButton; |
3009 | setId_Widget(addChildFlags_Widget(values, | 3037 | setId_Widget(addChildFlags_Widget(values, |
3010 | iClob(folderButton = makeMenuButton_LabelWidget( | 3038 | iClob(folderButton = makeMenuButton_LabelWidget( |
3011 | widestLabel_MenuItemArray(folderItems), | 3039 | widestLabel_MenuItemArray(folderItems), |
3012 | constData_Array(folderItems), | 3040 | constData_Array(folderItems), |
3013 | size_Array(folderItems))), alignLeft_WidgetFlag), | 3041 | size_Array(folderItems))), alignLeft_WidgetFlag), |
3014 | "bmed.folder"); | 3042 | "bmed.folder"); |
3015 | } | 3043 | } |
3016 | addDialogInputWithHeading_(headings, values, "${dlg.bookmark.title}", "bmed.title", iClob(inputs[0] = new_InputWidget(0))); | 3044 | addDialogInputWithHeading_(headings, values, "${dlg.bookmark.title}", "bmed.title", iClob(inputs[0] = new_InputWidget(0))); |
3017 | addDialogInputWithHeading_(headings, values, "${dlg.bookmark.url}", "bmed.url", iClob(inputs[1] = new_InputWidget(0))); | 3045 | addDialogInputWithHeading_(headings, values, "${dlg.bookmark.url}", "bmed.url", iClob(inputs[1] = new_InputWidget(0))); |
3018 | setUrlContent_InputWidget(inputs[1], iTrue); | 3046 | setUrlContent_InputWidget(inputs[1], iTrue); |
3019 | addDialogInputWithHeading_(headings, values, "${dlg.bookmark.tags}", "bmed.tags", iClob(inputs[2] = new_InputWidget(0))); | 3047 | addDialogInputWithHeading_(headings, values, "${dlg.bookmark.tags}", "bmed.tags", iClob(inputs[2] = new_InputWidget(0))); |
3020 | addDialogInputWithHeading_(headings, values, "${dlg.bookmark.icon}", "bmed.icon", iClob(inputs[3] = new_InputWidget(1))); | 3048 | addDialogInputWithHeading_(headings, values, "${dlg.bookmark.icon}", "bmed.icon", iClob(inputs[3] = new_InputWidget(1))); |
3021 | /* Buttons for special tags. */ | 3049 | /* Buttons for special tags. */ |
3022 | addChild_Widget(dlg, iClob(makePadding_Widget(gap_UI))); | 3050 | addChild_Widget(dlg, iClob(makePadding_Widget(gap_UI))); |
3023 | iWidget *special = addChild_Widget(dlg, iClob(makeTwoColumns_Widget(&headings, &values))); | 3051 | iWidget *special = addChild_Widget(dlg, iClob(makeTwoColumns_Widget(&headings, &values))); |
3024 | setFlags_Widget(special, collapse_WidgetFlag, iTrue); | 3052 | setFlags_Widget(special, collapse_WidgetFlag, iTrue); |
3025 | setId_Widget(special, "bmed.special"); | 3053 | setId_Widget(special, "bmed.special"); |
3026 | makeTwoColumnHeading_("${heading.bookmark.tags}", headings, values); | 3054 | makeTwoColumnHeading_("${heading.bookmark.tags}", headings, values); |
3027 | addDialogToggle_(headings, values, "${bookmark.tag.home}", "bmed.tag.home"); | 3055 | addDialogToggle_(headings, values, "${bookmark.tag.home}", "bmed.tag.home"); |
3028 | addDialogToggle_(headings, values, "${bookmark.tag.remote}", "bmed.tag.remote"); | 3056 | addDialogToggle_(headings, values, "${bookmark.tag.remote}", "bmed.tag.remote"); |
3029 | addDialogToggle_(headings, values, "${bookmark.tag.linksplit}", "bmed.tag.linksplit"); | 3057 | addDialogToggle_(headings, values, "${bookmark.tag.linksplit}", "bmed.tag.linksplit"); |
3030 | arrange_Widget(dlg); | 3058 | arrange_Widget(dlg); |
3031 | for (int i = 0; i < 3; ++i) { | 3059 | for (int i = 0; i < 3; ++i) { |
3032 | as_Widget(inputs[i])->rect.size.x = 100 * gap_UI - headings->rect.size.x; | 3060 | as_Widget(inputs[i])->rect.size.x = 100 * gap_UI - headings->rect.size.x; |
3033 | } | 3061 | } |
3034 | addChild_Widget(dlg, iClob(makePadding_Widget(gap_UI))); | 3062 | addChild_Widget(dlg, iClob(makePadding_Widget(gap_UI))); |
3035 | addChild_Widget(dlg, iClob(makeDialogButtons_Widget(actions, iElemCount(actions)))); | 3063 | addChild_Widget(dlg, iClob(makeDialogButtons_Widget(actions, iElemCount(actions)))); |
3036 | addChild_Widget(get_Root()->widget, iClob(dlg)); | 3064 | addChild_Widget(get_Root()->widget, iClob(dlg)); |
3037 | setupSheetTransition_Mobile(dlg, iTrue); | 3065 | setupSheetTransition_Mobile(dlg, iTrue); |
3038 | } | 3066 | } |
3039 | /* Use a recently accessed folder as the default. */ | 3067 | /* Use a recently accessed folder as the default. */ |
3040 | const uint32_t recentFolderId = recentFolder_Bookmarks(bookmarks_App()); | 3068 | const uint32_t recentFolderId = recentFolder_Bookmarks(bookmarks_App()); |
diff --git a/src/ui/util.h b/src/ui/util.h index 4fedd083..618022b9 100644 --- a/src/ui/util.h +++ b/src/ui/util.h | |||
@@ -285,6 +285,7 @@ int checkContextMenu_Widget (iWidget *, const SDL_Event *ev) | |||
285 | 285 | ||
286 | iLabelWidget * makeMenuButton_LabelWidget (const char *label, const iMenuItem *items, size_t n); | 286 | iLabelWidget * makeMenuButton_LabelWidget (const char *label, const iMenuItem *items, size_t n); |
287 | void updateDropdownSelection_LabelWidget (iLabelWidget *dropButton, const char *selectedCommand); | 287 | void updateDropdownSelection_LabelWidget (iLabelWidget *dropButton, const char *selectedCommand); |
288 | const char * selectedDropdownCommand_LabelWidget (const iLabelWidget *dropButton); | ||
288 | 289 | ||
289 | /*-----------------------------------------------------------------------------------------------*/ | 290 | /*-----------------------------------------------------------------------------------------------*/ |
290 | 291 | ||
diff --git a/src/ui/widget.c b/src/ui/widget.c index 1ac4326a..9f67b1c7 100644 --- a/src/ui/widget.c +++ b/src/ui/widget.c | |||
@@ -2023,7 +2023,8 @@ iBool isAffectedByVisualOffset_Widget(const iWidget *d) { | |||
2023 | } | 2023 | } |
2024 | 2024 | ||
2025 | void setFocus_Widget(iWidget *d) { | 2025 | void setFocus_Widget(iWidget *d) { |
2026 | iWindow *win = get_Window(); | 2026 | iWindow *win = d ? window_Widget(d) : get_Window(); |
2027 | iAssert(win); | ||
2027 | if (win->focus != d) { | 2028 | if (win->focus != d) { |
2028 | if (win->focus) { | 2029 | if (win->focus) { |
2029 | iAssert(!contains_PtrSet(win->focus->root->pendingDestruction, win->focus)); | 2030 | iAssert(!contains_PtrSet(win->focus->root->pendingDestruction, win->focus)); |
@@ -2038,6 +2039,13 @@ void setFocus_Widget(iWidget *d) { | |||
2038 | } | 2039 | } |
2039 | } | 2040 | } |
2040 | 2041 | ||
2042 | void setKeyboardGrab_Widget(iWidget *d) { | ||
2043 | iWindow *win = d ? window_Widget(d) : get_Window(); | ||
2044 | iAssert(win); | ||
2045 | win->focus = d; | ||
2046 | /* no notifications sent */ | ||
2047 | } | ||
2048 | |||
2041 | iWidget *focus_Widget(void) { | 2049 | iWidget *focus_Widget(void) { |
2042 | return get_Window()->focus; | 2050 | return get_Window()->focus; |
2043 | } | 2051 | } |
diff --git a/src/ui/widget.h b/src/ui/widget.h index eb3004dc..fb7eb5e2 100644 --- a/src/ui/widget.h +++ b/src/ui/widget.h | |||
@@ -327,7 +327,8 @@ void scrollInfo_Widget (const iWidget *, iWidgetScrollInfo *inf | |||
327 | 327 | ||
328 | int backgroundFadeColor_Widget (void); | 328 | int backgroundFadeColor_Widget (void); |
329 | 329 | ||
330 | void setFocus_Widget (iWidget *); | 330 | void setFocus_Widget (iWidget *); /* widget must be flagged `focusable` */ |
331 | void setKeyboardGrab_Widget (iWidget *); /* sets focus on any widget */ | ||
331 | iWidget * focus_Widget (void); | 332 | iWidget * focus_Widget (void); |
332 | void setHover_Widget (iWidget *); | 333 | void setHover_Widget (iWidget *); |
333 | iWidget * hover_Widget (void); | 334 | iWidget * hover_Widget (void); |