diff options
author | Jaakko Keränen <jaakko.keranen@iki.fi> | 2021-11-14 07:01:48 +0200 |
---|---|---|
committer | Jaakko Keränen <jaakko.keranen@iki.fi> | 2021-11-14 07:01:48 +0200 |
commit | 7ad1d4686e0a454570bc6ad9e8b7bde49fcf04d6 (patch) | |
tree | 2643b7e0272b626a4b18c18bfc65ac77094e7505 | |
parent | 8e85ed281348f286a332c23cae7470cde8f6b9ec (diff) | |
parent | 78de5577096bd81d6da152d9f819851c2f8ef260 (diff) |
Merge branch 'dev' into work/v1.9
# Conflicts:
# CMakeLists.txt
# Depends.cmake
# src/lang.c
-rw-r--r-- | AUTHORS.md | 38 | ||||
-rw-r--r-- | CMakeLists.txt | 1 | ||||
-rw-r--r-- | Depends.cmake | 69 | ||||
-rwxr-xr-x | po/compile.py | 17 | ||||
-rw-r--r-- | po/cs.po | 991 | ||||
-rw-r--r-- | po/en.po | 36 | ||||
-rw-r--r-- | po/es.po | 40 | ||||
-rw-r--r-- | po/fi.po | 40 | ||||
-rw-r--r-- | po/gl.po | 44 | ||||
-rw-r--r-- | po/hu.po | 58 | ||||
-rw-r--r-- | po/ie.po | 225 | ||||
-rw-r--r-- | po/ru.po | 56 | ||||
-rw-r--r-- | po/sr.po | 56 | ||||
-rw-r--r-- | po/tok.po | 54 | ||||
-rw-r--r-- | po/uk.po | 58 | ||||
-rw-r--r-- | res/about/version.gmi | 10 | ||||
-rw-r--r-- | res/fi.skyjake.Lagrange.appdata.xml | 50 | ||||
-rw-r--r-- | res/lang/cs.bin | bin | 0 -> 30703 bytes | |||
-rw-r--r-- | res/lang/de.bin | bin | 28684 -> 28698 bytes | |||
-rw-r--r-- | res/lang/en.bin | bin | 26144 -> 26142 bytes | |||
-rw-r--r-- | res/lang/eo.bin | bin | 24921 -> 24935 bytes | |||
-rw-r--r-- | res/lang/es.bin | bin | 29538 -> 29535 bytes | |||
-rw-r--r-- | res/lang/es_MX.bin | bin | 27009 -> 27023 bytes | |||
-rw-r--r-- | res/lang/fi.bin | bin | 29373 -> 29370 bytes | |||
-rw-r--r-- | res/lang/fr.bin | bin | 29890 -> 29904 bytes | |||
-rw-r--r-- | res/lang/gl.bin | bin | 28728 -> 28724 bytes | |||
-rw-r--r-- | res/lang/hu.bin | bin | 30570 -> 30547 bytes | |||
-rw-r--r-- | res/lang/ia.bin | bin | 28009 -> 28023 bytes | |||
-rw-r--r-- | res/lang/ie.bin | bin | 28214 -> 28462 bytes | |||
-rw-r--r-- | res/lang/isv.bin | bin | 24848 -> 24862 bytes | |||
-rw-r--r-- | res/lang/pl.bin | bin | 29285 -> 29299 bytes | |||
-rw-r--r-- | res/lang/ru.bin | bin | 43838 -> 43848 bytes | |||
-rw-r--r-- | res/lang/sk.bin | bin | 25181 -> 25195 bytes | |||
-rw-r--r-- | res/lang/sr.bin | bin | 43296 -> 43298 bytes | |||
-rw-r--r-- | res/lang/tok.bin | bin | 26566 -> 26584 bytes | |||
-rw-r--r-- | res/lang/uk.bin | bin | 43172 -> 43179 bytes | |||
-rw-r--r-- | res/lang/zh_Hans.bin | bin | 24961 -> 24975 bytes | |||
-rw-r--r-- | res/lang/zh_Hant.bin | bin | 25102 -> 25116 bytes | |||
-rw-r--r-- | src/app.c | 6 | ||||
-rw-r--r-- | src/fontpack.c | 21 | ||||
-rw-r--r-- | src/gmcerts.c | 8 | ||||
-rw-r--r-- | src/gmutil.c | 4 | ||||
-rw-r--r-- | src/lang.c | 3 | ||||
-rw-r--r-- | src/ui/documentwidget.c | 37 | ||||
-rw-r--r-- | src/ui/lookupwidget.c | 3 | ||||
-rw-r--r-- | src/ui/root.c | 33 | ||||
-rw-r--r-- | src/ui/root.h | 2 | ||||
-rw-r--r-- | src/ui/text.c | 2 | ||||
-rw-r--r-- | src/ui/util.c | 7 | ||||
-rw-r--r-- | src/ui/widget.c | 32 | ||||
-rw-r--r-- | src/ui/window.c | 6 |
51 files changed, 1672 insertions, 335 deletions
@@ -5,43 +5,43 @@ 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 2596 Jaakko Keränen <jaakko.keranen@iki.fi> | 8 | C 2609 Jaakko Keränen <jaakko.keranen@iki.fi> |
9 | CT 39 Nikolay Korotkiy <sikmir@gmail.com> | 9 | CT 39 Nikolay Korotkiy <sikmir@gmail.com> |
10 | T 34 Olga Smirnova <mistresssilvara@hotmail.com> | 10 | T 38 Olga Smirnova <mistresssilvara@hotmail.com> |
11 | T 25 Alyssa Liddell <e-liss@tuta.io> | 11 | T 27 jan Anja <cyber@sysrq.in> |
12 | T 26 Alyssa Liddell <e-liss@tuta.io> | ||
12 | T 25 Shibo Lyu <github@of.sb> | 13 | T 25 Shibo Lyu <github@of.sb> |
13 | T 24 jan Anja <cyber@sysrq.in> | 14 | T 21 Страхиња Радић <contact@strahinja.org> |
14 | T 20 Страхиња Радић <contact@strahinja.org> | ||
15 | T 17 MCMic <come@chilliet.eu> | 15 | T 17 MCMic <come@chilliet.eu> |
16 | T 14 Wally Hackenslacker <mastor89@protonmail.com> | 16 | T 14 Wally Hackenslacker <mastor89@protonmail.com> |
17 | T 9 Xosé M <correoxm@disroot.org> | ||
18 | T 9 Aaron Fischer <mail@aaron-fischer.net> | 17 | T 9 Aaron Fischer <mail@aaron-fischer.net> |
18 | T 9 Xosé M <correoxm@disroot.org> | ||
19 | T 8 El Mau <public@correolibre.net> | 19 | T 8 El Mau <public@correolibre.net> |
20 | T 8 Tadeáš Erban <tadysekerbosek@gmail.com> | ||
20 | T 7 Waterrail <maksymiliankrol03@gmail.com> | 21 | T 7 Waterrail <maksymiliankrol03@gmail.com> |
21 | T 6 Tadeáš Erban <tadysekerbosek@gmail.com> | ||
22 | T 5 roy niang <roy@royniang.com> | 22 | T 5 roy niang <roy@royniang.com> |
23 | T 2 Arns Udovič <zordsdavini@arns.lt> | ||
24 | C 2 Manos Pitsidianakis <el13635@mail.ntua.gr> | ||
25 | T 2 tbodt <tblodt@icloud.com> | ||
26 | T 2 Alex Schroeder <alex@alexschroeder.ch> | 23 | T 2 Alex Schroeder <alex@alexschroeder.ch> |
27 | T 2 methbkts <methbkts@gmail.com> | ||
28 | C 2 Alyssa Rosenzweig <alyssa@rosenzweig.io> | 24 | C 2 Alyssa Rosenzweig <alyssa@rosenzweig.io> |
29 | T 2 Gabriel de Oliveira Ferreira Machado <goliv04053@tutanota.com> | 25 | T 2 Arns Udovič <zordsdavini@arns.lt> |
26 | T 2 Botond Balázs <balazsbotond@gmail.com> | ||
30 | C 2 Br0000k <77938600+Br0000k@users.noreply.github.com> | 27 | C 2 Br0000k <77938600+Br0000k@users.noreply.github.com> |
28 | T 2 Gabriel de Oliveira Ferreira Machado <goliv04053@tutanota.com> | ||
29 | C 2 Manos Pitsidianakis <el13635@mail.ntua.gr> | ||
30 | T 2 methbkts <methbkts@gmail.com> | ||
31 | T 2 tbodt <tblodt@icloud.com> | ||
32 | C 1 Adam Mizerski <adam@mizerski.pl> | ||
31 | C 1 Charles <charles@cdaniels.net> | 33 | C 1 Charles <charles@cdaniels.net> |
32 | C 1 Thomas Adam <thomas.adam@smoothwall.net> | ||
33 | C 1 Dario Vladovic <d.vladimyr@gmail.com> | 34 | C 1 Dario Vladovic <d.vladimyr@gmail.com> |
34 | C 1 SolidHal <hal@halemmerich.com> | ||
35 | C 1 David Gillies <dave.gillies@gmail.com> | 35 | C 1 David Gillies <dave.gillies@gmail.com> |
36 | C 1 Raph M <raph@raphm.com> | ||
37 | T 1 Eric <spice2wolf@gmail.com> | 36 | T 1 Eric <spice2wolf@gmail.com> |
38 | C 1 Adam Mizerski <adam@mizerski.pl> | ||
39 | T 1 Marek Ľach <mareklachbc@tutanota.com> | 37 | T 1 Marek Ľach <mareklachbc@tutanota.com> |
40 | C 1 zocker <zocker@10zen.eu> | 38 | C 1 Raph M <raph@raphm.com> |
41 | C 1 Zach DeCook <zachdecook@librem.one> | 39 | C 1 SolidHal <hal@halemmerich.com> |
42 | T 1 Botond Balázs <balazsbotond@gmail.com> | 40 | C 1 Thomas Adam <thomas.adam@smoothwall.net> |
43 | C 1 Waweic <waweic@protonmail.com> | 41 | C 1 Waweic <waweic@protonmail.com> |
44 | C 1 Waweic <waweic@activ.ism.rocks> | 42 | C 1 Waweic <waweic@activ.ism.rocks> |
43 | C 1 Zach DeCook <zachdecook@librem.one> | ||
44 | C 1 zocker <zocker@10zen.eu> | ||
45 | ``` | 45 | ``` |
46 | 46 | ||
47 | This table of contributors has been extracted from Git history and is sorted by commit count. \ No newline at end of file | 47 | This table of contributors has been extracted from Git history and is sorted by commit count. \ No newline at end of file |
diff --git a/CMakeLists.txt b/CMakeLists.txt index 21cf1c7d..b0a8ba04 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
@@ -71,6 +71,7 @@ set (RESOURCES | |||
71 | res/about/license.gmi | 71 | res/about/license.gmi |
72 | res/about/version.gmi | 72 | res/about/version.gmi |
73 | res/arg-help.txt | 73 | res/arg-help.txt |
74 | res/lang/cs.bin | ||
74 | res/lang/de.bin | 75 | res/lang/de.bin |
75 | res/lang/en.bin | 76 | res/lang/en.bin |
76 | res/lang/eo.bin | 77 | res/lang/eo.bin |
diff --git a/Depends.cmake b/Depends.cmake index c6e4495f..d7031035 100644 --- a/Depends.cmake +++ b/Depends.cmake | |||
@@ -7,9 +7,42 @@ find_package (PkgConfig) | |||
7 | find_program (MESON_EXECUTABLE meson DOC "Meson build system") | 7 | find_program (MESON_EXECUTABLE meson DOC "Meson build system") |
8 | find_program (NINJA_EXECUTABLE ninja DOC "Ninja build tool") | 8 | find_program (NINJA_EXECUTABLE ninja DOC "Ninja build tool") |
9 | include (ExternalProject) | 9 | include (ExternalProject) |
10 | |||
11 | set (_dependsToBuild) | 10 | set (_dependsToBuild) |
12 | 11 | ||
12 | if (NOT EXISTS ${CMAKE_SOURCE_DIR}/lib/the_Foundation/CMakeLists.txt) | ||
13 | set (INSTALL_THE_FOUNDATION YES) | ||
14 | find_package (the_Foundation 1.0.1 REQUIRED) | ||
15 | else () | ||
16 | if (EXISTS ${CMAKE_SOURCE_DIR}/lib/the_Foundation/.git) | ||
17 | # the_Foundation is checked out as a submodule, make sure it's up to date. | ||
18 | find_package (Git) | ||
19 | if (GIT_FOUND) | ||
20 | execute_process ( | ||
21 | COMMAND ${GIT_EXECUTABLE} submodule update | ||
22 | WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} | ||
23 | OUTPUT_VARIABLE subout | ||
24 | OUTPUT_STRIP_TRAILING_WHITESPACE | ||
25 | ) | ||
26 | if (subout) | ||
27 | message (FATAL_ERROR "'lib/the_Foundation' Git submodule has been updated, please re-run CMake.\n") | ||
28 | endif () | ||
29 | endif () | ||
30 | endif () | ||
31 | set (INSTALL_THE_FOUNDATION OFF) | ||
32 | set (TFDN_STATIC_LIBRARY ON CACHE BOOL "") | ||
33 | set (TFDN_ENABLE_INSTALL OFF CACHE BOOL "") | ||
34 | set (TFDN_ENABLE_TESTS OFF CACHE BOOL "") | ||
35 | set (TFDN_ENABLE_WEBREQUEST OFF CACHE BOOL "") | ||
36 | add_subdirectory (lib/the_Foundation) | ||
37 | add_library (the_Foundation::the_Foundation ALIAS the_Foundation) | ||
38 | if (NOT OPENSSL_FOUND) | ||
39 | message (FATAL_ERROR "Lagrange requires OpenSSL for TLS. Please check if pkg-config can find 'openssl'.") | ||
40 | endif () | ||
41 | if (NOT ZLIB_FOUND) | ||
42 | message (FATAL_ERROR "Lagrange requires zlib for reading compressed archives. Please check if pkg-config can find 'zlib'.") | ||
43 | endif () | ||
44 | endif () | ||
45 | |||
13 | if (ENABLE_HARFBUZZ AND EXISTS ${CMAKE_SOURCE_DIR}/lib/harfbuzz/CMakeLists.txt) | 46 | if (ENABLE_HARFBUZZ AND EXISTS ${CMAKE_SOURCE_DIR}/lib/harfbuzz/CMakeLists.txt) |
14 | # Find HarfBuzz with pkg-config. | 47 | # Find HarfBuzz with pkg-config. |
15 | if (NOT ENABLE_HARFBUZZ_MINIMAL AND PKG_CONFIG_FOUND) | 48 | if (NOT ENABLE_HARFBUZZ_MINIMAL AND PKG_CONFIG_FOUND) |
@@ -112,40 +145,6 @@ endif () | |||
112 | 145 | ||
113 | add_custom_target (ext-deps DEPENDS ${_dependsToBuild}) | 146 | add_custom_target (ext-deps DEPENDS ${_dependsToBuild}) |
114 | 147 | ||
115 | if (NOT EXISTS ${CMAKE_SOURCE_DIR}/lib/the_Foundation/CMakeLists.txt) | ||
116 | set (INSTALL_THE_FOUNDATION YES) | ||
117 | find_package (the_Foundation 1.0.0 REQUIRED) | ||
118 | else () | ||
119 | if (EXISTS ${CMAKE_SOURCE_DIR}/lib/the_Foundation/.git) | ||
120 | # the_Foundation is checked out as a submodule, make sure it's up to date. | ||
121 | find_package (Git) | ||
122 | if (GIT_FOUND) | ||
123 | execute_process ( | ||
124 | COMMAND ${GIT_EXECUTABLE} submodule update | ||
125 | WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} | ||
126 | OUTPUT_VARIABLE subout | ||
127 | OUTPUT_STRIP_TRAILING_WHITESPACE | ||
128 | ) | ||
129 | if (subout) | ||
130 | message (FATAL_ERROR "'lib/the_Foundation' Git submodule has been updated, please re-run CMake.\n") | ||
131 | endif () | ||
132 | endif () | ||
133 | endif () | ||
134 | set (INSTALL_THE_FOUNDATION OFF) | ||
135 | set (TFDN_STATIC_LIBRARY ON CACHE BOOL "") | ||
136 | set (TFDN_ENABLE_INSTALL OFF CACHE BOOL "") | ||
137 | set (TFDN_ENABLE_TESTS OFF CACHE BOOL "") | ||
138 | set (TFDN_ENABLE_WEBREQUEST OFF CACHE BOOL "") | ||
139 | add_subdirectory (lib/the_Foundation) | ||
140 | add_library (the_Foundation::the_Foundation ALIAS the_Foundation) | ||
141 | if (NOT OPENSSL_FOUND) | ||
142 | message (FATAL_ERROR "Lagrange requires OpenSSL for TLS. Please check if pkg-config can find 'openssl'.") | ||
143 | endif () | ||
144 | if (NOT ZLIB_FOUND) | ||
145 | message (FATAL_ERROR "Lagrange requires zlib for reading compressed archives. Please check if pkg-config can find 'zlib'.") | ||
146 | endif () | ||
147 | endif () | ||
148 | |||
149 | if (ENABLE_SPARKLE) | 148 | if (ENABLE_SPARKLE) |
150 | # macOS only. | 149 | # macOS only. |
151 | add_library (sparkle INTERFACE) | 150 | add_library (sparkle INTERFACE) |
diff --git a/po/compile.py b/po/compile.py index f046ca96..adf5a403 100755 --- a/po/compile.py +++ b/po/compile.py | |||
@@ -4,8 +4,8 @@ | |||
4 | 4 | ||
5 | import os, sys | 5 | import os, sys |
6 | 6 | ||
7 | BUILD_LANGS = [ | 7 | BUILD_LANGS = [ 'en', # base strings |
8 | 'en', # base strings | 8 | 'cs', |
9 | 'de', | 9 | 'de', |
10 | 'eo', | 10 | 'eo', |
11 | 'es', | 11 | 'es', |
@@ -35,6 +35,9 @@ ESCAPES = { | |||
35 | 't': '\t', | 35 | 't': '\t', |
36 | 'v': '\v', | 36 | 'v': '\v', |
37 | } | 37 | } |
38 | missing_count = {} | ||
39 | for lang in BUILD_LANGS: | ||
40 | missing_count[lang] = 0 | ||
38 | 41 | ||
39 | if '--new' in sys.argv: | 42 | if '--new' in sys.argv: |
40 | MODE = 'new' | 43 | MODE = 'new' |
@@ -122,6 +125,7 @@ if MODE == 'compile': | |||
122 | for src in os.listdir('.'): | 125 | for src in os.listdir('.'): |
123 | if src.endswith('.po') and src.split('.')[0] in BUILD_LANGS: | 126 | if src.endswith('.po') and src.split('.')[0] in BUILD_LANGS: |
124 | # Make a binary blob with strings sorted by ID. | 127 | # Make a binary blob with strings sorted by ID. |
128 | lang_id = src[:-3] | ||
125 | have_ids = set() | 129 | have_ids = set() |
126 | compiled = bytes() | 130 | compiled = bytes() |
127 | lang = parse_po(src) | 131 | lang = parse_po(src) |
@@ -130,11 +134,16 @@ if MODE == 'compile': | |||
130 | # Take missing strings from the base language. | 134 | # Take missing strings from the base language. |
131 | for msg_id in BASE_STRINGS: | 135 | for msg_id in BASE_STRINGS: |
132 | if msg_id not in have_ids and not msg_id[:-2] in PLURALS: | 136 | if msg_id not in have_ids and not msg_id[:-2] in PLURALS: |
133 | print('%10s' % src, 'missing:', msg_id) | 137 | #print('%10s' % src, 'missing:', msg_id) |
138 | missing_count[lang_id] += 1 | ||
134 | lang.append((msg_id, BASE_STRINGS[msg_id])) | 139 | lang.append((msg_id, BASE_STRINGS[msg_id])) |
135 | for msg_id, msg_str in sorted(lang): | 140 | for msg_id, msg_str in sorted(lang): |
136 | compiled += compile_string(msg_id, msg_str) | 141 | compiled += compile_string(msg_id, msg_str) |
137 | open(f'../res/lang/{src[:-3]}.bin', 'wb').write(compiled) | 142 | open(f'../res/lang/{lang_id}.bin', 'wb').write(compiled) |
143 | # Show statistics. | ||
144 | for lang_id in missing_count: | ||
145 | if missing_count[lang_id] > 0: | ||
146 | print('%7s: %4d missing' % (lang_id, missing_count[lang_id])) | ||
138 | 147 | ||
139 | elif MODE == 'new': | 148 | elif MODE == 'new': |
140 | messages = parse_po('en.po') | 149 | messages = parse_po('en.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-11-02 23:51+0000\n" | 4 | "PO-Revision-Date: 2021-11-11 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" |
@@ -297,16 +297,16 @@ msgstr "Hz" | |||
297 | #, c-format | 297 | #, c-format |
298 | msgid "feeds.list.counts" | 298 | msgid "feeds.list.counts" |
299 | msgid_plural "feeds.list.counts.n" | 299 | msgid_plural "feeds.list.counts.n" |
300 | msgstr[0] "Odebíráte %z kanál, který obsahuje %%.\n" | 300 | msgstr[0] "Odebíráte %u kanál, který obsahuje %%s.\n" |
301 | msgstr[1] "Odebíráte %z kanály, které obsahují %%.\n" | 301 | msgstr[1] "Odebíráte %u kanály, které obsahují %%s.\n" |
302 | msgstr[2] "Odebíráte %z kanálů, které obsahují %%.\n" | 302 | msgstr[2] "Odebíráte %u kanálů, které obsahují %%s.\n" |
303 | 303 | ||
304 | #, c-format | 304 | #, c-format |
305 | msgid "feeds.list.entrycount" | 305 | msgid "feeds.list.entrycount" |
306 | msgid_plural "feeds.list.entrycount.n" | 306 | msgid_plural "feeds.list.entrycount.n" |
307 | msgstr[0] "celkem %zu položka" | 307 | msgstr[0] "celkem %u položka" |
308 | msgstr[1] "celkem %zu položky" | 308 | msgstr[1] "celkem %u položky" |
309 | msgstr[2] "celkem %zu položek" | 309 | msgstr[2] "celkem %u položek" |
310 | 310 | ||
311 | #, c-format | 311 | #, c-format |
312 | msgid "minutes.ago" | 312 | msgid "minutes.ago" |
@@ -382,7 +382,7 @@ msgstr "Ukázat kanály" | |||
382 | 382 | ||
383 | # Used in the View menu on macOS. Shows sidebar and switches sidebar tab. | 383 | # Used in the View menu on macOS. Shows sidebar and switches sidebar tab. |
384 | msgid "menu.show.outline" | 384 | msgid "menu.show.outline" |
385 | msgstr "Ukázat obrys stránky" | 385 | msgstr "Ukázat rozložení stránky" |
386 | 386 | ||
387 | msgid "menu.back" | 387 | msgid "menu.back" |
388 | msgstr "Jít zpět" | 388 | msgstr "Jít zpět" |
@@ -456,8 +456,8 @@ msgstr "KB" | |||
456 | msgid "num.bytes" | 456 | msgid "num.bytes" |
457 | msgid_plural "num.bytes.n" | 457 | msgid_plural "num.bytes.n" |
458 | msgstr[0] "Jeden bajt" | 458 | msgstr[0] "Jeden bajt" |
459 | msgstr[1] "%zu bajty" | 459 | msgstr[1] "%u bajty" |
460 | msgstr[2] "%zu bajtů" | 460 | msgstr[2] "%u bajtů" |
461 | 461 | ||
462 | # strftime() formatted | 462 | # strftime() formatted |
463 | #, c-format | 463 | #, c-format |
@@ -510,14 +510,14 @@ msgid "dlg.history.clear" | |||
510 | msgstr "Vymazat historii" | 510 | msgstr "Vymazat historii" |
511 | 511 | ||
512 | msgid "heading.confirm.bookmarks.delete" | 512 | msgid "heading.confirm.bookmarks.delete" |
513 | msgstr "VYMAZAT ZÁLOŽKY" | 513 | msgstr "ODSTRANIT ZÁLOŽKY" |
514 | 514 | ||
515 | #, c-format | 515 | #, c-format |
516 | msgid "dlg.bookmarks.delete" | 516 | msgid "dlg.bookmarks.delete" |
517 | msgid_plural "dlg.bookmarks.delete.n" | 517 | msgid_plural "dlg.bookmarks.delete.n" |
518 | msgstr[0] "Vymazat záložku" | 518 | msgstr[0] "Odstranit záložku" |
519 | msgstr[1] "Vymazat %u záložek" | 519 | msgstr[1] "Odstranit %u záložek" |
520 | msgstr[2] "Vymazat %u záložky" | 520 | msgstr[2] "Odstranit %u záložky" |
521 | 521 | ||
522 | msgid "bookmark.tag.home" | 522 | msgid "bookmark.tag.home" |
523 | msgstr "Nastavit jako domovskou stránku" | 523 | msgstr "Nastavit jako domovskou stránku" |
@@ -575,9 +575,9 @@ msgstr "Opravdu chcete vymazat historii všech navštívených stránek?" | |||
575 | #, c-format | 575 | #, c-format |
576 | msgid "dlg.confirm.bookmarks.delete" | 576 | msgid "dlg.confirm.bookmarks.delete" |
577 | msgid_plural "dlg.confirm.bookmarks.delete.n" | 577 | msgid_plural "dlg.confirm.bookmarks.delete.n" |
578 | msgstr[0] "Opravdu chcete smazat tu záložku v této složce?" | 578 | msgstr[0] "Opravdu chcete odstranit tu záložku v této složce?" |
579 | msgstr[1] "Opravdu chcete smazat všech %u záložek v této složce?" | 579 | msgstr[1] "Opravdu chcete odstranit všech %u záložek v této složce?" |
580 | msgstr[2] "Opravdu chcete smazat všechny %u záložky v této složce?" | 580 | msgstr[2] "Opravdu chcete odstranit všechny %u záložky v této složce?" |
581 | 581 | ||
582 | msgid "bookmark.tag.remote" | 582 | msgid "bookmark.tag.remote" |
583 | msgstr "Použít jako zdroj záložek" | 583 | msgstr "Použít jako zdroj záložek" |
@@ -610,8 +610,8 @@ msgstr "Používá se na této stránce" | |||
610 | msgid "ident.usedonurls" | 610 | msgid "ident.usedonurls" |
611 | msgid_plural "ident.usedonurls.n" | 611 | msgid_plural "ident.usedonurls.n" |
612 | msgstr[0] "Používá se na jedné adrese URL" | 612 | msgstr[0] "Používá se na jedné adrese URL" |
613 | msgstr[1] "Používá se na %zu adresách URL" | 613 | msgstr[1] "Používá se na %u adresách URL" |
614 | msgstr[2] "Používá se na %zu adresách URL" | 614 | msgstr[2] "Používá se na %u adresách URL" |
615 | 615 | ||
616 | msgid "ident.temporary" | 616 | msgid "ident.temporary" |
617 | msgstr "Dočasná" | 617 | msgstr "Dočasná" |
@@ -803,18 +803,18 @@ msgstr "Stránka projektu…" | |||
803 | 803 | ||
804 | msgid "num.fonts" | 804 | msgid "num.fonts" |
805 | msgid_plural "num.fonts.n" | 805 | msgid_plural "num.fonts.n" |
806 | msgstr[0] "%zu písmo" | 806 | msgstr[0] "%u písmo" |
807 | msgstr[1] "%zu písma" | 807 | msgstr[1] "%u písma" |
808 | msgstr[2] "%zu písem" | 808 | msgstr[2] "%u písem" |
809 | 809 | ||
810 | msgid "menu.fonts" | 810 | msgid "menu.fonts" |
811 | msgstr "Spravovat písma…" | 811 | msgstr "Spravovat písma…" |
812 | 812 | ||
813 | msgid "num.files" | 813 | msgid "num.files" |
814 | msgid_plural "num.files.n" | 814 | msgid_plural "num.files.n" |
815 | msgstr[0] "%zu soubor" | 815 | msgstr[0] "%u soubor" |
816 | msgstr[1] "%zu soubory" | 816 | msgstr[1] "%u soubory" |
817 | msgstr[2] "%zu souborů" | 817 | msgstr[2] "%u souborů" |
818 | 818 | ||
819 | msgid "ident.use" | 819 | msgid "ident.use" |
820 | msgstr "Používat na této stránce" | 820 | msgstr "Používat na této stránce" |
@@ -1191,3 +1191,944 @@ msgstr "Slovenština" | |||
1191 | 1191 | ||
1192 | msgid "keys.upload" | 1192 | msgid "keys.upload" |
1193 | msgstr "Nahrát stránku pomocí Titanu" | 1193 | msgstr "Nahrát stránku pomocí Titanu" |
1194 | |||
1195 | msgid "error.proxy.msg" | ||
1196 | msgstr "" | ||
1197 | "Požadavek pomocí proxy selhal, protože server nebyl schopen utvořit spojení " | ||
1198 | "s vzdáleným hostitelem. Je možné, že existují problémy s konektivitou." | ||
1199 | |||
1200 | msgid "error.proxyrefusal.msg" | ||
1201 | msgstr "" | ||
1202 | "Váš požadavek byl pro zdroj na doméně, která není obsluhována tímto serverem " | ||
1203 | "a ten server nepřijímá proxy požadavky." | ||
1204 | |||
1205 | msgid "heading.bookmark.add" | ||
1206 | msgstr "PŘIDAT ZÁLOŽKU" | ||
1207 | |||
1208 | msgid "heading.bookmark.edit" | ||
1209 | msgstr "UPRAVIT ZÁLOŽKU" | ||
1210 | |||
1211 | msgid "dlg.bookmark.save" | ||
1212 | msgstr "Uložit záložku" | ||
1213 | |||
1214 | msgid "dlg.bookmark.title" | ||
1215 | msgstr "Název:" | ||
1216 | |||
1217 | msgid "dlg.bookmark.tags" | ||
1218 | msgstr "Značení:" | ||
1219 | |||
1220 | msgid "dlg.newident.notsaved" | ||
1221 | msgstr "není uložena na disk" | ||
1222 | |||
1223 | msgid "dlg.addfolder.defaulttitle" | ||
1224 | msgstr "Nová složka" | ||
1225 | |||
1226 | msgid "dlg.addfolder.prompt" | ||
1227 | msgstr "Zadejte jméno nové složky:" | ||
1228 | |||
1229 | msgid "heading.addfolder" | ||
1230 | msgstr "PŘIDAT SLOŽKU" | ||
1231 | |||
1232 | msgid "dlg.bookmark.url" | ||
1233 | msgstr "URL:" | ||
1234 | |||
1235 | msgid "heading.prefs.certs" | ||
1236 | msgstr "CERTIFIKÁTY" | ||
1237 | |||
1238 | # used on mobile | ||
1239 | msgid "heading.settings" | ||
1240 | msgstr "NASTAVENÍ" | ||
1241 | |||
1242 | msgid "heading.prefs.uitheme" | ||
1243 | msgstr "BARVY ROZHRANÍ" | ||
1244 | |||
1245 | msgid "prefs.searchurl" | ||
1246 | msgstr "URL vyhledávání:" | ||
1247 | |||
1248 | msgid "prefs.hoverlink" | ||
1249 | msgstr "Ukázat URL po najetí kurzorem:" | ||
1250 | |||
1251 | msgid "prefs.centershort" | ||
1252 | msgstr "Svislé vystředění:" | ||
1253 | |||
1254 | msgid "prefs.retainwindow" | ||
1255 | msgstr "Zachovat umístění:" | ||
1256 | |||
1257 | msgid "prefs.pinsplit.none" | ||
1258 | msgstr "Žádné" | ||
1259 | |||
1260 | # Font to use for headings and body when Monospace body is enabled. | ||
1261 | msgid "prefs.font.monodoc" | ||
1262 | msgstr "Neproporcionální písmo:" | ||
1263 | |||
1264 | msgid "prefs.biglede" | ||
1265 | msgstr "Velký první odstavec:" | ||
1266 | |||
1267 | msgid "prefs.linewidth.normal" | ||
1268 | msgstr "Normální" | ||
1269 | |||
1270 | msgid "prefs.linewidth" | ||
1271 | msgstr "Šířka textu:" | ||
1272 | |||
1273 | msgid "keys.tab.new" | ||
1274 | msgstr "Nová karta" | ||
1275 | |||
1276 | msgid "keys.split.item" | ||
1277 | msgstr "Nabídka rozpůleného pohledu:" | ||
1278 | |||
1279 | msgid "error.tls.msg" | ||
1280 | msgstr "Nepodařilo se komunikovat se serverem." | ||
1281 | |||
1282 | msgid "error.tls" | ||
1283 | msgstr "Selhání sítě/TLS" | ||
1284 | |||
1285 | msgid "error.unavail" | ||
1286 | msgstr "Server nedostupný" | ||
1287 | |||
1288 | msgid "error.cgi" | ||
1289 | msgstr "CGI chyba" | ||
1290 | |||
1291 | msgid "error.proxy" | ||
1292 | msgstr "Chyba proxy" | ||
1293 | |||
1294 | msgid "error.permanent" | ||
1295 | msgstr "Trvalé selhání" | ||
1296 | |||
1297 | msgid "error.permanent.msg" | ||
1298 | msgstr "Váš požadavek selhal a selže i v budoucnosti pokud jej zopakujete." | ||
1299 | |||
1300 | msgid "error.notfound" | ||
1301 | msgstr "Nenalezen" | ||
1302 | |||
1303 | msgid "error.gone" | ||
1304 | msgstr "Fuč" | ||
1305 | |||
1306 | msgid "error.badrequest" | ||
1307 | msgstr "Špatný požadavek" | ||
1308 | |||
1309 | #, c-format | ||
1310 | msgid "archive.summary" | ||
1311 | msgid_plural "archive.summary.n" | ||
1312 | msgstr[0] "" | ||
1313 | "Tento archiv obsahuje %u soubor a jeho zkomprimovaná velikost je %.1f MB." | ||
1314 | msgstr[1] "" | ||
1315 | "Tento archiv obsahuje %u soubory a jeho zkomprimovaná velikost je %.1f MB." | ||
1316 | msgstr[2] "" | ||
1317 | "Tento archiv obsahuje %u souborů a jeho zkomprimovaná velikost je %.1f MB." | ||
1318 | |||
1319 | msgid "keys.link.modkey" | ||
1320 | msgstr "Otevřít odkaz pomocí modifikační klávesy" | ||
1321 | |||
1322 | msgid "keys.link.homerow.newtab" | ||
1323 | msgstr "Otevírat odkazy v nové kartě pomocí kláves na kterých spočívají prsty" | ||
1324 | |||
1325 | msgid "keys.link.homerow.hover" | ||
1326 | msgstr "Najet na odkaz pomocí kláves na kterých spočívají prsty" | ||
1327 | |||
1328 | msgid "lang.isv" | ||
1329 | msgstr "Interslavic" | ||
1330 | |||
1331 | msgid "lang.tok" | ||
1332 | msgstr "Toki Pona" | ||
1333 | |||
1334 | msgid "dlg.newident.rsa.selfsign" | ||
1335 | msgstr "Vytváří se vlastně podepsaný 2048-bitový RSA certifikát." | ||
1336 | |||
1337 | msgid "hint.newident.date" | ||
1338 | msgstr "RRRR nebo RRRR-MM-DD" | ||
1339 | |||
1340 | msgid "hint.newident.optional" | ||
1341 | msgstr "volitelný" | ||
1342 | |||
1343 | msgid "dlg.newident.until" | ||
1344 | msgstr "Platná do:" | ||
1345 | |||
1346 | msgid "keys.fullscreen" | ||
1347 | msgstr "Zapnout/vypnout zobrazení na celou obrazovky" | ||
1348 | |||
1349 | msgid "dlg.newident.commonname" | ||
1350 | msgstr "Obecné jméno:" | ||
1351 | |||
1352 | msgid "dlg.newident.temp" | ||
1353 | msgstr "Dočasná:" | ||
1354 | |||
1355 | msgid "dlg.newident.scope" | ||
1356 | msgstr "Použita na:" | ||
1357 | |||
1358 | msgid "dlg.newident.scope.domain" | ||
1359 | msgstr "Aktuální doméně" | ||
1360 | |||
1361 | msgid "dlg.newident.scope.page" | ||
1362 | msgstr "Aktuální stránce" | ||
1363 | |||
1364 | msgid "dlg.newident.scope.none" | ||
1365 | msgstr "Nepoužívána" | ||
1366 | |||
1367 | msgid "dlg.newident.email" | ||
1368 | msgstr "Email:" | ||
1369 | |||
1370 | msgid "dlg.newident.userid" | ||
1371 | msgstr "ID uživatele:" | ||
1372 | |||
1373 | msgid "dlg.newident.domain" | ||
1374 | msgstr "Doména:" | ||
1375 | |||
1376 | msgid "dlg.newident.org" | ||
1377 | msgstr "Organizace:" | ||
1378 | |||
1379 | msgid "keys.tab.close" | ||
1380 | msgstr "Zavřít kartu" | ||
1381 | |||
1382 | msgid "dlg.newident.country" | ||
1383 | msgstr "Stát:" | ||
1384 | |||
1385 | msgid "dlg.newident.more" | ||
1386 | msgstr "Více…" | ||
1387 | |||
1388 | msgid "heading.newident.missing" | ||
1389 | msgstr "CHYBĚJÍCÍ INFORMACE" | ||
1390 | |||
1391 | msgid "dlg.newindent.missing.commonname" | ||
1392 | msgstr "\"Obecné jméno\" musí být specifikováno." | ||
1393 | |||
1394 | msgid "heading.newident.date.bad" | ||
1395 | msgstr "NEPLATNÉ DATUM" | ||
1396 | |||
1397 | msgid "dlg.newident.date.past" | ||
1398 | msgstr "Datum vypršení platnosti musí být v budoucnosti." | ||
1399 | |||
1400 | msgid "dlg.newident.date.example" | ||
1401 | msgstr "" | ||
1402 | "Zkontrolujte prosím datum konce platnosti. Příklady:\n" | ||
1403 | "• 2030\n" | ||
1404 | "• 2025-06-30\n" | ||
1405 | "• 2021-12-31 23:59:59" | ||
1406 | |||
1407 | msgid "keys.split.menu" | ||
1408 | msgstr "Nastavit režim rozpůleného okna" | ||
1409 | |||
1410 | msgid "heading.feedcfg" | ||
1411 | msgstr "NASTAVENÍ KANÁLU" | ||
1412 | |||
1413 | msgid "heading.subscribe" | ||
1414 | msgstr "ODEBÍRAT STRÁNKU" | ||
1415 | |||
1416 | msgid "dlg.feed.title" | ||
1417 | msgstr "Název:" | ||
1418 | |||
1419 | msgid "dlg.feed.entrytype" | ||
1420 | msgstr "Typ zápisu:" | ||
1421 | |||
1422 | msgid "dlg.feed.type.gemini" | ||
1423 | msgstr "YYYY-MM-DD odkazy" | ||
1424 | |||
1425 | msgid "keys.split.next" | ||
1426 | msgstr "Přepnout zaměření na následující polovinu" | ||
1427 | |||
1428 | # tab button | ||
1429 | msgid "heading.prefs.interface" | ||
1430 | msgstr "Rozhraní" | ||
1431 | |||
1432 | # tab button | ||
1433 | msgid "heading.prefs.keys" | ||
1434 | msgstr "Klávesy" | ||
1435 | |||
1436 | # tab button | ||
1437 | msgid "heading.prefs.network" | ||
1438 | msgstr "Síť" | ||
1439 | |||
1440 | msgid "heading.prefs.paragraph" | ||
1441 | msgstr "ODSTAVEC" | ||
1442 | |||
1443 | msgid "heading.prefs.pagecontent" | ||
1444 | msgstr "BARVY STRÁNKY" | ||
1445 | |||
1446 | msgid "heading.prefs.proxies" | ||
1447 | msgstr "PROXY" | ||
1448 | |||
1449 | msgid "heading.prefs.scrolling" | ||
1450 | msgstr "POSOUVÁNÍ STRÁNKY" | ||
1451 | |||
1452 | msgid "heading.prefs.sizing" | ||
1453 | msgstr "DIMENZOVÁNÍ" | ||
1454 | |||
1455 | msgid "heading.prefs.widelayout" | ||
1456 | msgstr "ŠIROKÉ ROZLOŽENÍ" | ||
1457 | |||
1458 | # tab button | ||
1459 | msgid "heading.prefs.style" | ||
1460 | msgstr "Styl" | ||
1461 | |||
1462 | # tab button | ||
1463 | msgid "heading.prefs.userinterface" | ||
1464 | msgstr "Rozhraní" | ||
1465 | |||
1466 | msgid "prefs.downloads" | ||
1467 | msgstr "Složka stažených souborů:" | ||
1468 | |||
1469 | msgid "prefs.collapsepreonload" | ||
1470 | msgstr "Smrštit předformátovaný text:" | ||
1471 | |||
1472 | msgid "prefs.bookmarks.addbottom" | ||
1473 | msgstr "Přidat záložky ke spodku:" | ||
1474 | |||
1475 | # User preference that controls whether index.gmi pages get automatically opened when browsing the contents of a directory inside a compressed archive. | ||
1476 | msgid "prefs.archive.openindex" | ||
1477 | msgstr "Otevírat archivní indexy:" | ||
1478 | |||
1479 | msgid "prefs.pinsplit.left" | ||
1480 | msgstr "Levé karty" | ||
1481 | |||
1482 | msgid "prefs.pinsplit.right" | ||
1483 | msgstr "Pravé karty" | ||
1484 | |||
1485 | msgid "prefs.pinsplit" | ||
1486 | msgstr "Přišpendlení v rozpůleném pohledu:" | ||
1487 | |||
1488 | msgid "prefs.smoothscroll" | ||
1489 | msgstr "Plynulé posouvání:" | ||
1490 | |||
1491 | msgid "prefs.scrollspeed.keyboard" | ||
1492 | msgstr "Rychlost posouvání klávesnicí:" | ||
1493 | |||
1494 | msgid "prefs.scrollspeed.mouse" | ||
1495 | msgstr "Rychlost posouvání myší:" | ||
1496 | |||
1497 | msgid "prefs.imageloadscroll" | ||
1498 | msgstr "Načítat obrázky při posuvu:" | ||
1499 | |||
1500 | msgid "prefs.hidetoolbarscroll" | ||
1501 | msgstr "Skrýt nástrojovou lištu při posuvu:" | ||
1502 | |||
1503 | msgid "prefs.ostheme" | ||
1504 | msgstr "Použít systémové téma:" | ||
1505 | |||
1506 | msgid "prefs.theme.black" | ||
1507 | msgstr "Černé" | ||
1508 | |||
1509 | msgid "prefs.theme.dark" | ||
1510 | msgstr "Tmavé" | ||
1511 | |||
1512 | msgid "prefs.theme.light" | ||
1513 | msgstr "Světlé" | ||
1514 | |||
1515 | msgid "prefs.theme.white" | ||
1516 | msgstr "Bílé" | ||
1517 | |||
1518 | msgid "prefs.accent" | ||
1519 | msgstr "Doplňková barva:" | ||
1520 | |||
1521 | msgid "prefs.accent.teal" | ||
1522 | msgstr "Špinavě modrá" | ||
1523 | |||
1524 | msgid "prefs.accent.orange" | ||
1525 | msgstr "Oranžová" | ||
1526 | |||
1527 | msgid "prefs.uilang" | ||
1528 | msgstr "Jazyk:" | ||
1529 | |||
1530 | msgid "prefs.doctheme.name.sepia" | ||
1531 | msgstr "Sépiové" | ||
1532 | |||
1533 | msgid "prefs.imagestyle" | ||
1534 | msgstr "Zbarvit obrázky:" | ||
1535 | |||
1536 | msgid "prefs.imagestyle.original" | ||
1537 | msgstr "Nijak" | ||
1538 | |||
1539 | msgid "prefs.imagestyle.grayscale" | ||
1540 | msgstr "Černobíle" | ||
1541 | |||
1542 | # Abbrevation: background-to-foreground | ||
1543 | msgid "prefs.imagestyle.bgfg" | ||
1544 | msgstr "Pozadí do popředí" | ||
1545 | |||
1546 | msgid "prefs.imagestyle.text" | ||
1547 | msgstr "Do barvy textu" | ||
1548 | |||
1549 | msgid "prefs.imagestyle.preformat" | ||
1550 | msgstr "Do barvy předformátovaného textu" | ||
1551 | |||
1552 | msgid "prefs.font.ui" | ||
1553 | msgstr "Rozhraní:" | ||
1554 | |||
1555 | msgid "prefs.font.heading" | ||
1556 | msgstr "Nadpisy:" | ||
1557 | |||
1558 | msgid "prefs.font.body" | ||
1559 | msgstr "Tělo:" | ||
1560 | |||
1561 | msgid "prefs.font.mono" | ||
1562 | msgstr "Předformátovaný text:" | ||
1563 | |||
1564 | msgid "prefs.font" | ||
1565 | msgstr "Písmo těla:" | ||
1566 | |||
1567 | msgid "prefs.mono" | ||
1568 | msgstr "Používat neproporcionální písmo pro tělo:" | ||
1569 | |||
1570 | msgid "prefs.mono.gemini" | ||
1571 | msgstr "Gemini" | ||
1572 | |||
1573 | msgid "prefs.linewidth.fill" | ||
1574 | msgstr "Vyplnit" | ||
1575 | |||
1576 | msgid "prefs.quoteicon.icon" | ||
1577 | msgstr "Ikona \"" | ||
1578 | |||
1579 | msgid "prefs.linespacing" | ||
1580 | msgstr "Rozestup mezi řádky:" | ||
1581 | |||
1582 | msgid "prefs.quoteicon" | ||
1583 | msgstr "Ukazatel citátu:" | ||
1584 | |||
1585 | msgid "prefs.decodeurls" | ||
1586 | msgstr "Dekódovat URL adresy:" | ||
1587 | |||
1588 | msgid "prefs.memorysize" | ||
1589 | msgstr "Velikost paměti:" | ||
1590 | |||
1591 | msgid "prefs.cachesize" | ||
1592 | msgstr "Velikost mezipaměti:" | ||
1593 | |||
1594 | msgid "prefs.ca.file" | ||
1595 | msgstr "Soubor CA:" | ||
1596 | |||
1597 | msgid "prefs.ca.path" | ||
1598 | msgstr "Cesta k CA:" | ||
1599 | |||
1600 | msgid "prefs.proxy.gemini" | ||
1601 | msgstr "Proxy pro Gemini:" | ||
1602 | |||
1603 | msgid "prefs.proxy.gopher" | ||
1604 | msgstr "Proxy pro Gopher:" | ||
1605 | |||
1606 | msgid "prefs.proxy.http" | ||
1607 | msgstr "Proxy pro HTTP:" | ||
1608 | |||
1609 | msgid "menu.binding.reset" | ||
1610 | msgstr "Obnovit výchozí" | ||
1611 | |||
1612 | msgid "menu.binding.clear" | ||
1613 | msgstr "Odstranit" | ||
1614 | |||
1615 | msgid "archive.exit" | ||
1616 | msgstr "Odejít z archivu" | ||
1617 | |||
1618 | msgid "dir.empty" | ||
1619 | msgstr "Tato složka je prázdná." | ||
1620 | |||
1621 | #, c-format | ||
1622 | msgid "dir.summary" | ||
1623 | msgid_plural "dir.summary.n" | ||
1624 | msgstr[0] "Tato složka obsahuje %u položku." | ||
1625 | msgstr[1] "Tato složka obsahuje %u položky." | ||
1626 | msgstr[2] "Tato složka obsahuje %u položek." | ||
1627 | |||
1628 | msgid "keys.top" | ||
1629 | msgstr "Přeskočit na začátek" | ||
1630 | |||
1631 | msgid "keys.bottom" | ||
1632 | msgstr "Přeskočit na konec" | ||
1633 | |||
1634 | msgid "keys.scroll.up" | ||
1635 | msgstr "Posunout nahoru" | ||
1636 | |||
1637 | msgid "keys.scroll.down" | ||
1638 | msgstr "Posunout dolů" | ||
1639 | |||
1640 | msgid "keys.scroll.halfpage.up" | ||
1641 | msgstr "Posunout nahoru o půl stránky" | ||
1642 | |||
1643 | msgid "keys.scroll.halfpage.down" | ||
1644 | msgstr "Posunout dolů o půl stránky" | ||
1645 | |||
1646 | msgid "keys.scroll.page.down" | ||
1647 | msgstr "Posunout stránku nahoru" | ||
1648 | |||
1649 | msgid "keys.scroll.page.up" | ||
1650 | msgstr "Posunout stránku dolů" | ||
1651 | |||
1652 | msgid "keys.back" | ||
1653 | msgstr "Jít zpět" | ||
1654 | |||
1655 | msgid "keys.forward" | ||
1656 | msgstr "Jít vpřed" | ||
1657 | |||
1658 | msgid "keys.parent" | ||
1659 | msgstr "Přejít na rodičovský adresář" | ||
1660 | |||
1661 | msgid "keys.root" | ||
1662 | msgstr "Přejít na kořen kapsule" | ||
1663 | |||
1664 | msgid "keys.reload" | ||
1665 | msgstr "Obnovit stránku" | ||
1666 | |||
1667 | msgid "error.badstatus.msg" | ||
1668 | msgstr "" | ||
1669 | "Server odpověděl se stavovým kódem, který není ve specifikaci protokolu " | ||
1670 | "Gemini. Možná je z budoucnosti? Nebo prostě nefunguje." | ||
1671 | |||
1672 | msgid "keys.link.homerow" | ||
1673 | msgstr "Otevřít odkaz pomocí kláves na kterých spočívají prsty" | ||
1674 | |||
1675 | msgid "keys.link.homerow.next" | ||
1676 | msgstr "Následující sada kláves na kterých spočívají prsty" | ||
1677 | |||
1678 | msgid "keys.bookmark.add" | ||
1679 | msgstr "Přidat záložku" | ||
1680 | |||
1681 | msgid "keys.bookmark.addfolder" | ||
1682 | msgstr "Přidat složku záložek" | ||
1683 | |||
1684 | msgid "keys.subscribe" | ||
1685 | msgstr "Odebírat stránku" | ||
1686 | |||
1687 | msgid "keys.findtext" | ||
1688 | msgstr "Najít text na stránce" | ||
1689 | |||
1690 | msgid "error.certexpired.msg" | ||
1691 | msgstr "" | ||
1692 | "Připojení k serveru bylo přerušeno, neboť platnost jeho TLS certifikátu " | ||
1693 | "vypršela." | ||
1694 | |||
1695 | msgid "error.certverify" | ||
1696 | msgstr "Nedůvěryhodný server" | ||
1697 | |||
1698 | msgid "error.unsupported.protocol.msg" | ||
1699 | msgstr "Požadovaný protokol není podporovaný touto aplikací." | ||
1700 | |||
1701 | msgid "error.temporary.msg" | ||
1702 | msgstr "" | ||
1703 | "Váš požadavek selhal, ale může uspět pokud to zkusíte znovu v budoucnosti." | ||
1704 | |||
1705 | msgid "error.cgi.msg" | ||
1706 | msgstr "" | ||
1707 | "Chyba při dynamickém generování obsahu na serveru. Může to být způsobeno " | ||
1708 | "nefunkčním softwarem na straně serveru." | ||
1709 | |||
1710 | msgid "error.slowdown" | ||
1711 | msgstr "Zpomalte" | ||
1712 | |||
1713 | msgid "error.slowdown.msg" | ||
1714 | msgstr "Server omezuje množství požadavků, které zpracuje. Počkejte prosím…" | ||
1715 | |||
1716 | msgid "error.notfound.msg" | ||
1717 | msgstr "Požadovaný zdroj v této chvíli nebylo možné nalézt." | ||
1718 | |||
1719 | msgid "error.gone.msg" | ||
1720 | msgstr "Požadovaný zdroj již není dostupný." | ||
1721 | |||
1722 | msgid "error.proxyrefusal" | ||
1723 | msgstr "Proxy požadavek byl odmítnut" | ||
1724 | |||
1725 | msgid "error.badheader.msg" | ||
1726 | msgstr "" | ||
1727 | "Přijatá hlavička neodpovídá specifikaci protokolu Gemini. Možná server " | ||
1728 | "nefunguje, nebo jste se pokusili kontaktovat ne-Gemini server." | ||
1729 | |||
1730 | msgid "error.schemeredirect.msg" | ||
1731 | msgstr "" | ||
1732 | "Server se pokusil přesměrovat vás na URL, jehož schéma je jiné než schéma " | ||
1733 | "počáteční URL. Zde je ten odkaz, aby jste jej mohli otevřít ručně je li to " | ||
1734 | "vhodné." | ||
1735 | |||
1736 | msgid "error.manyredirects.msg" | ||
1737 | msgstr "" | ||
1738 | "Je možné, že jste se ocitli v cyklu přesměrování. Následující URL je níže, " | ||
1739 | "chcete-li pokračovat ručně." | ||
1740 | |||
1741 | msgid "error.certverify.msg" | ||
1742 | msgstr "" | ||
1743 | "Připojení k serveru bylo zrušeno, protože jeho TLS certifikát se neshoduje s " | ||
1744 | "tím, jemuž důvěřujeme. Zkontrolujte, zdali server neoznámil změnu " | ||
1745 | "certifikátu. Pokud ne, je možné že zlomyslná třetí strana se vydává se " | ||
1746 | "server k němuž se pokoušíte připojit.\n" | ||
1747 | "\n" | ||
1748 | "Tento certifikát můžete označit jako důvěryhodný v informacích o stránce." | ||
1749 | |||
1750 | msgid "error.temporary" | ||
1751 | msgstr "Dočasné selhání" | ||
1752 | |||
1753 | msgid "error.unavail.msg" | ||
1754 | msgstr "Server není dostupný kvůli přetížení nebo údržbě. Přijďte později." | ||
1755 | |||
1756 | msgid "dlg.feed.type.headings" | ||
1757 | msgstr "Nové nadpisy" | ||
1758 | |||
1759 | msgid "dlg.feed.ignoreweb" | ||
1760 | msgstr "Ignorovat HTTP(S) odkazy:" | ||
1761 | |||
1762 | msgid "dlg.feed.save" | ||
1763 | msgstr "Uložit nastavení" | ||
1764 | |||
1765 | msgid "dlg.feed.sub" | ||
1766 | msgstr "Odebírat" | ||
1767 | |||
1768 | msgid "dlg.bookmark.icon" | ||
1769 | msgstr "Ikona:" | ||
1770 | |||
1771 | msgid "heading.bookmark.tags" | ||
1772 | msgstr "SPECIÁLNÍ ZNAČENÍ" | ||
1773 | |||
1774 | msgid "dlg.addfolder" | ||
1775 | msgstr "Přidat složku" | ||
1776 | |||
1777 | msgid "heading.prefs" | ||
1778 | msgstr "PŘEDVOLBY" | ||
1779 | |||
1780 | # tab button | ||
1781 | msgid "heading.prefs.colors" | ||
1782 | msgstr "Barvy" | ||
1783 | |||
1784 | msgid "heading.prefs.fonts" | ||
1785 | msgstr "Písma" | ||
1786 | |||
1787 | # tab button | ||
1788 | msgid "heading.prefs.general" | ||
1789 | msgstr "Obecné" | ||
1790 | |||
1791 | msgid "prefs.theme" | ||
1792 | msgstr "Téma:" | ||
1793 | |||
1794 | msgid "prefs.uiscale" | ||
1795 | msgstr "Faktor velikosti rozhraní:" | ||
1796 | |||
1797 | msgid "prefs.customframe" | ||
1798 | msgstr "Vlastní rámeček okna:" | ||
1799 | |||
1800 | msgid "prefs.returnkey" | ||
1801 | msgstr "Chování klávesy Enter:" | ||
1802 | |||
1803 | msgid "prefs.returnkey.linebreak" | ||
1804 | msgstr "Zalomení stránky" | ||
1805 | |||
1806 | msgid "prefs.returnkey.accept" | ||
1807 | msgstr "Přijmout" | ||
1808 | |||
1809 | msgid "prefs.animate" | ||
1810 | msgstr "Animace:" | ||
1811 | |||
1812 | msgid "prefs.sideicon" | ||
1813 | msgstr "Ikona kapsule:" | ||
1814 | |||
1815 | msgid "prefs.doctheme.dark" | ||
1816 | msgstr "Temné téma:" | ||
1817 | |||
1818 | msgid "prefs.doctheme.light" | ||
1819 | msgstr "Světlé téma:" | ||
1820 | |||
1821 | msgid "prefs.doctheme.name.colorfuldark" | ||
1822 | msgstr "Barevná temné" | ||
1823 | |||
1824 | msgid "prefs.doctheme.name.colorfullight" | ||
1825 | msgstr "Barevné světlé" | ||
1826 | |||
1827 | msgid "prefs.doctheme.name.black" | ||
1828 | msgstr "Černé" | ||
1829 | |||
1830 | msgid "prefs.doctheme.name.gray" | ||
1831 | msgstr "Šedé" | ||
1832 | |||
1833 | msgid "prefs.doctheme.name.white" | ||
1834 | msgstr "Bílé" | ||
1835 | |||
1836 | msgid "prefs.doctheme.name.highcontrast" | ||
1837 | msgstr "Vysoký kontrast" | ||
1838 | |||
1839 | msgid "prefs.saturation" | ||
1840 | msgstr "Sytost:" | ||
1841 | |||
1842 | msgid "prefs.mono.gopher" | ||
1843 | msgstr "Gopher" | ||
1844 | |||
1845 | msgid "prefs.boldlink" | ||
1846 | msgstr "Tlusté odkazy:" | ||
1847 | |||
1848 | msgid "prefs.boldlink.visited" | ||
1849 | msgstr "Navštívené" | ||
1850 | |||
1851 | # Interpretation: (Bold links) on dark (background). | ||
1852 | msgid "prefs.boldlink.dark" | ||
1853 | msgstr "V temném tématu" | ||
1854 | |||
1855 | # Interpretation: (Bold links) on light (background). | ||
1856 | msgid "prefs.boldlink.light" | ||
1857 | msgstr "Ve světlém tématu" | ||
1858 | |||
1859 | msgid "prefs.gemtext.ansi" | ||
1860 | msgstr "Únikové znaky ANSI:" | ||
1861 | |||
1862 | msgid "prefs.gemtext.ansi.fg" | ||
1863 | msgstr "Barva popředí" | ||
1864 | |||
1865 | msgid "prefs.gemtext.ansi.fontstyle" | ||
1866 | msgstr "Styl písma" | ||
1867 | |||
1868 | msgid "prefs.font.warnmissing" | ||
1869 | msgstr "Varovat při chybějících znacích:" | ||
1870 | |||
1871 | msgid "prefs.font.smooth" | ||
1872 | msgstr "Vyhlazování:" | ||
1873 | |||
1874 | msgid "prefs.quoteicon.line" | ||
1875 | msgstr "Čára" | ||
1876 | |||
1877 | msgid "prefs.plaintext.wrap" | ||
1878 | msgstr "Zalamovat prostý text:" | ||
1879 | |||
1880 | msgid "keys.zoom.in" | ||
1881 | msgstr "Přiblížit" | ||
1882 | |||
1883 | msgid "keys.zoom.out" | ||
1884 | msgstr "Oddálit" | ||
1885 | |||
1886 | msgid "keys.zoom.reset" | ||
1887 | msgstr "Obnovit přiblížení" | ||
1888 | |||
1889 | msgid "keys.tab.close.other" | ||
1890 | msgstr "Zavřít ostatní karty" | ||
1891 | |||
1892 | msgid "keys.tab.prev" | ||
1893 | msgstr "Předchozí karta" | ||
1894 | |||
1895 | msgid "keys.tab.next" | ||
1896 | msgstr "Následující karta" | ||
1897 | |||
1898 | msgid "keys.hoverurl" | ||
1899 | msgstr "Zobrazit/skrýt URL při přejetí kurzorem" | ||
1900 | |||
1901 | msgid "error.badstatus" | ||
1902 | msgstr "Neznámý stavový kód" | ||
1903 | |||
1904 | msgid "error.openfile" | ||
1905 | msgstr "Nepodařilo se otevřít soubor" | ||
1906 | |||
1907 | msgid "error.openfile.msg" | ||
1908 | msgstr "" | ||
1909 | "Požadovaný soubor neexistuje nebo je nedostupný. Prosím zkontrolujte adresu " | ||
1910 | "souboru." | ||
1911 | |||
1912 | msgid "error.badresource" | ||
1913 | msgstr "Neplatný zdroj" | ||
1914 | |||
1915 | msgid "error.badresource.msg" | ||
1916 | msgstr "Požadovaný zdroj neexistuje." | ||
1917 | |||
1918 | msgid "error.unsupported.media" | ||
1919 | msgstr "Nepodporovaný typ obsahu" | ||
1920 | |||
1921 | msgid "error.unsupported.media.msg" | ||
1922 | msgstr "Přijatý obsah nelze zobrazit pomocí této aplikace." | ||
1923 | |||
1924 | msgid "error.unsupported.protocol" | ||
1925 | msgstr "Nepodporovaný protokol" | ||
1926 | |||
1927 | msgid "error.badheader" | ||
1928 | msgstr "Neplatná hlavička" | ||
1929 | |||
1930 | msgid "error.badredirect" | ||
1931 | msgstr "Neplatné přesměrování" | ||
1932 | |||
1933 | msgid "error.badredirect.msg" | ||
1934 | msgstr "" | ||
1935 | "Server odpověděl s přesměrováním, ale neposkytl platnou konečnou URL. Možná " | ||
1936 | "server nefunguje." | ||
1937 | |||
1938 | msgid "error.schemeredirect" | ||
1939 | msgstr "Schéma-měnící přesměrování" | ||
1940 | |||
1941 | msgid "error.manyredirects" | ||
1942 | msgstr "Příliš mnoho přesměrování" | ||
1943 | |||
1944 | msgid "error.certexpired" | ||
1945 | msgstr "Certifikát s vypršenou platností" | ||
1946 | |||
1947 | msgid "lang.cs" | ||
1948 | msgstr "Čeština" | ||
1949 | |||
1950 | msgid "error.glyphs" | ||
1951 | msgstr "Chybějící znaky" | ||
1952 | |||
1953 | msgid "error.glyphs.msg" | ||
1954 | msgstr "" | ||
1955 | "Tato stránka nebude plně vykreslena, jelikož některé znaky chybí. Můžete " | ||
1956 | "instalovat dodatečné písma aby jste to vyřešili." | ||
1957 | |||
1958 | msgid "gempub.cover.viewlocal" | ||
1959 | msgstr "Tuto Gempub knihu lze zobrazit pouze po tom co byla uložena lokálně." | ||
1960 | |||
1961 | msgid "gempub.cover.untitled" | ||
1962 | msgstr "Kniha beze jména" | ||
1963 | |||
1964 | msgid "gempub.meta.revdate" | ||
1965 | msgstr "Datum revize" | ||
1966 | |||
1967 | msgid "gempub.meta.pub" | ||
1968 | msgstr "Publikována" | ||
1969 | |||
1970 | msgid "gempub.meta.pubdate" | ||
1971 | msgstr "Datum publikace" | ||
1972 | |||
1973 | msgid "gempub.meta.lang" | ||
1974 | msgstr "Jazyk" | ||
1975 | |||
1976 | msgid "gempub.meta.license" | ||
1977 | msgstr "Licence" | ||
1978 | |||
1979 | msgid "heading.fontpack.meta" | ||
1980 | msgstr "Písma" | ||
1981 | |||
1982 | msgid "fontpack.meta.notinstalled" | ||
1983 | msgstr "Nenainstalován" | ||
1984 | |||
1985 | msgid "fontpack.meta.disabled" | ||
1986 | msgstr ", zakázán" | ||
1987 | |||
1988 | #, c-format | ||
1989 | msgid "fontpack.enable" | ||
1990 | msgstr "Povolit \"%s\"" | ||
1991 | |||
1992 | #, c-format | ||
1993 | msgid "fontpack.disable" | ||
1994 | msgstr "Zakázat \"%s\"" | ||
1995 | |||
1996 | msgid "fontpack.export" | ||
1997 | msgstr "Zobrazit šablonu fontpack.ini" | ||
1998 | |||
1999 | #, c-format | ||
2000 | msgid "fontpack.install" | ||
2001 | msgstr "Instalovat \"%s\"" | ||
2002 | |||
2003 | #, c-format | ||
2004 | msgid "fontpack.upgrade" | ||
2005 | msgstr "Aktualizovat \"%s\" na verzi %d" | ||
2006 | |||
2007 | #, c-format | ||
2008 | msgid "fontpack.delete" | ||
2009 | msgstr "Trvale odstranit \"%s\"" | ||
2010 | |||
2011 | msgid "heading.fontpack.delete" | ||
2012 | msgstr "ODSTRANIT PÍSMOVÝ BALÍČEK" | ||
2013 | |||
2014 | #, c-format | ||
2015 | msgid "dlg.fontpack.delete.confirm" | ||
2016 | msgstr "Chcete opravdu trvale odstranit písmový balíček \"%s\"?" | ||
2017 | |||
2018 | msgid "dlg.fontpack.delete" | ||
2019 | msgstr "Odstranit písmový balíček" | ||
2020 | |||
2021 | msgid "fontpack.install.ttf" | ||
2022 | msgstr "Instalovat TrueType písmo" | ||
2023 | |||
2024 | msgid "fontpack.open.fontsdir" | ||
2025 | msgstr "Otevřít složku uživatelských písem" | ||
2026 | |||
2027 | msgid "truetype.help" | ||
2028 | msgstr "" | ||
2029 | "Lagrange se pokouší načíst všechny jednotlivé TrueType soubory, které jsou " | ||
2030 | "zkopírovány do složky uživatelských písem." | ||
2031 | |||
2032 | msgid "heading.dismiss.warning" | ||
2033 | msgstr "PŘESTAT UKAZOVAT VAROVÁNÍ?" | ||
2034 | |||
2035 | #, c-format | ||
2036 | msgid "dlg.dismiss.ansi" | ||
2037 | msgstr "Trvale přestat zobrazovat varování o emulaci terminálu na %s?" | ||
2038 | |||
2039 | msgid "dlg.dismiss.warning" | ||
2040 | msgstr "Přestat ukazovat varování" | ||
2041 | |||
2042 | msgid "heading.fontpack.classic" | ||
2043 | msgstr "STÁHNOUT PÍSMOVÝ BALÍČEK" | ||
2044 | |||
2045 | msgid "dlg.fontpack.classic.msg" | ||
2046 | msgstr "" | ||
2047 | "Písma, které byly dříve přibaleny s aplikací jsou nyní dostupné odděleně. " | ||
2048 | "Chtěli byste nyní stáhnout písmový balíček \"Klasická sada\"?" | ||
2049 | |||
2050 | msgid "dlg.fontpack.classic" | ||
2051 | msgstr "Stáhnout písmový balíček (25MB)" | ||
2052 | |||
2053 | msgid "error.badrequest.msg" | ||
2054 | msgstr "Server nepochopil váš požadavek." | ||
2055 | |||
2056 | msgid "error.cert.needed" | ||
2057 | msgstr "Certifikát vyžadován" | ||
2058 | |||
2059 | msgid "error.cert.auth" | ||
2060 | msgstr "Certifikát není autorizován" | ||
2061 | |||
2062 | msgid "error.cert.auth.msg" | ||
2063 | msgstr "" | ||
2064 | "Předkládaný klientský certifikát je platný, ale není autorizován pro " | ||
2065 | "přistupování k danému zdroji." | ||
2066 | |||
2067 | msgid "error.cert.invalid" | ||
2068 | msgstr "Neplatný certifikát" | ||
2069 | |||
2070 | msgid "gempub.meta.version" | ||
2071 | msgstr "Verze" | ||
2072 | |||
2073 | msgid "error.ansi" | ||
2074 | msgstr "Emulace terminálu" | ||
2075 | |||
2076 | msgid "gempub.cover.image" | ||
2077 | msgstr "Titulní obrázek" | ||
2078 | |||
2079 | msgid "gempub.meta.author" | ||
2080 | msgstr "Autor" | ||
2081 | |||
2082 | msgid "heading.fontpack.meta.enabled" | ||
2083 | msgstr "Povolené písmové balíčky" | ||
2084 | |||
2085 | msgid "heading.fontpack.meta.disabled" | ||
2086 | msgstr "Zakázané písmové balíčky" | ||
2087 | |||
2088 | # Action label | ||
2089 | msgid "fontpack.meta.viewfile" | ||
2090 | msgstr "Zobrazit soubor" | ||
2091 | |||
2092 | #, c-format | ||
2093 | msgid "fontpack.meta.version" | ||
2094 | msgstr "Verze %d" | ||
2095 | |||
2096 | msgid "fontpack.meta.installed" | ||
2097 | msgstr "Instalován" | ||
2098 | |||
2099 | msgid "error.cert.needed.msg" | ||
2100 | msgstr "" | ||
2101 | "Přístup k vyžádanému zdroji vyžaduje, aby jste prokázali totožnost pomocí " | ||
2102 | "klientského certifikátu." | ||
2103 | |||
2104 | msgid "error.cert.invalid.msg" | ||
2105 | msgstr "" | ||
2106 | "Předkládanému klientskému certifikátu vypršela platnost nebo je neplatný." | ||
2107 | |||
2108 | msgid "error.ansi.msg" | ||
2109 | msgstr "" | ||
2110 | "Tato stránka nemusí být správně vykreslena, používá totiž únikové znaky ANSI " | ||
2111 | "ke stylování textu, což je jen částečně podporováno. Můžete se ji pokusit " | ||
2112 | "zobrazit pomocí terminálového emulátoru." | ||
2113 | |||
2114 | msgid "gempub.cover.view" | ||
2115 | msgstr "Zobrazit Gempub obsah" | ||
2116 | |||
2117 | msgid "fontpack.help" | ||
2118 | msgstr "" | ||
2119 | "Písmové balíčky v Lagrange jsou archivy ZIP, které obsahují sadu písmových " | ||
2120 | "souborů a jejich příslušných konfiguračních parametrů. Po instalaci můžete " | ||
2121 | "písma použít pro obsah dokumentu a v rozhraní. Aktivní písma se vybírají v " | ||
2122 | "Předvolby > Písma." | ||
2123 | |||
2124 | msgid "fontpack.open.aboutfonts" | ||
2125 | msgstr "Zobrazit instalovaná písma" | ||
2126 | |||
2127 | msgid "truetype.help.installed" | ||
2128 | msgstr "Toto písmo je nainstalováno ve složce uživatelských písem." | ||
2129 | |||
2130 | msgid "lang.hu" | ||
2131 | msgstr "Maďarština" | ||
2132 | |||
2133 | msgid "gempub.cover.aboutbook" | ||
2134 | msgstr "O této knize" | ||
@@ -61,17 +61,18 @@ msgstr "Hz" | |||
61 | msgid "feeds.list.title" | 61 | msgid "feeds.list.title" |
62 | msgstr "Feed entries" | 62 | msgstr "Feed entries" |
63 | 63 | ||
64 | # 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. | ||
64 | #, c-format | 65 | #, c-format |
65 | msgid "feeds.list.counts" | 66 | msgid "feeds.list.counts" |
66 | msgid_plural "feeds.list.counts.n" | 67 | msgid_plural "feeds.list.counts.n" |
67 | msgstr[0] "You are subscribed to %zu feed that contains %%s.\n" | 68 | msgstr[0] "You are subscribed to %u feed that contains %%s.\n" |
68 | msgstr[1] "You are subscribed to %zu feeds that contain %%s.\n" | 69 | msgstr[1] "You are subscribed to %u feeds that contain %%s.\n" |
69 | 70 | ||
70 | #, c-format | 71 | #, c-format |
71 | msgid "feeds.list.entrycount" | 72 | msgid "feeds.list.entrycount" |
72 | msgid_plural "feeds.list.entrycount.n" | 73 | msgid_plural "feeds.list.entrycount.n" |
73 | msgstr[0] "a total of %zu entry" | 74 | msgstr[0] "a total of %u entry" |
74 | msgstr[1] "a total of %zu entries" | 75 | msgstr[1] "a total of %u entries" |
75 | 76 | ||
76 | msgid "feeds.list.refreshtime.now" | 77 | msgid "feeds.list.refreshtime.now" |
77 | msgstr "The latest refresh occurred just a moment ago." | 78 | msgstr "The latest refresh occurred just a moment ago." |
@@ -451,18 +452,18 @@ msgstr "KB" | |||
451 | 452 | ||
452 | msgid "num.bytes" | 453 | msgid "num.bytes" |
453 | msgid_plural "num.bytes.n" | 454 | msgid_plural "num.bytes.n" |
454 | msgstr[0] "%zu byte" | 455 | msgstr[0] "%u byte" |
455 | msgstr[1] "%zu bytes" | 456 | msgstr[1] "%u bytes" |
456 | 457 | ||
457 | msgid "num.files" | 458 | msgid "num.files" |
458 | msgid_plural "num.files.n" | 459 | msgid_plural "num.files.n" |
459 | msgstr[0] "%zu file" | 460 | msgstr[0] "%u file" |
460 | msgstr[1] "%zu files" | 461 | msgstr[1] "%u files" |
461 | 462 | ||
462 | msgid "num.fonts" | 463 | msgid "num.fonts" |
463 | msgid_plural "num.fonts.n" | 464 | msgid_plural "num.fonts.n" |
464 | msgstr[0] "%zu font" | 465 | msgstr[0] "%u font" |
465 | msgstr[1] "%zu fonts" | 466 | msgstr[1] "%u fonts" |
466 | 467 | ||
467 | # strftime() formatted, split on two lines | 468 | # strftime() formatted, split on two lines |
468 | #, c-format | 469 | #, c-format |
@@ -599,8 +600,8 @@ msgstr "Not used" | |||
599 | #, c-format | 600 | #, c-format |
600 | msgid "ident.usedonurls" | 601 | msgid "ident.usedonurls" |
601 | msgid_plural "ident.usedonurls.n" | 602 | msgid_plural "ident.usedonurls.n" |
602 | msgstr[0] "Used on %zu URL" | 603 | msgstr[0] "Used on %u URL" |
603 | msgstr[1] "Used on %zu URLs" | 604 | msgstr[1] "Used on %u URLs" |
604 | 605 | ||
605 | msgid "ident.temporary" | 606 | msgid "ident.temporary" |
606 | msgstr "Temporary" | 607 | msgstr "Temporary" |
@@ -1115,6 +1116,9 @@ msgstr "Spanish" | |||
1115 | msgid "lang.es.mx" | 1116 | msgid "lang.es.mx" |
1116 | msgstr "Spanish (Mexico)" | 1117 | msgstr "Spanish (Mexico)" |
1117 | 1118 | ||
1119 | msgid "lang.cs" | ||
1120 | msgstr "Czech" | ||
1121 | |||
1118 | msgid "lang.sk" | 1122 | msgid "lang.sk" |
1119 | msgstr "Slovak" | 1123 | msgstr "Slovak" |
1120 | 1124 | ||
@@ -1596,8 +1600,8 @@ msgstr "Exit the archive" | |||
1596 | #, c-format | 1600 | #, c-format |
1597 | msgid "archive.summary" | 1601 | msgid "archive.summary" |
1598 | msgid_plural "archive.summary.n" | 1602 | msgid_plural "archive.summary.n" |
1599 | msgstr[0] "This archive contains %zu item and its compressed size is %.1f MB." | 1603 | msgstr[0] "This archive contains %u item and its compressed size is %.1f MB." |
1600 | msgstr[1] "This archive contains %zu items and its compressed size is %.1f MB." | 1604 | msgstr[1] "This archive contains %u items and its compressed size is %.1f MB." |
1601 | 1605 | ||
1602 | msgid "dir.empty" | 1606 | msgid "dir.empty" |
1603 | msgstr "This directory is empty." | 1607 | msgstr "This directory is empty." |
@@ -1605,8 +1609,8 @@ msgstr "This directory is empty." | |||
1605 | #, c-format | 1609 | #, c-format |
1606 | msgid "dir.summary" | 1610 | msgid "dir.summary" |
1607 | msgid_plural "dir.summary.n" | 1611 | msgid_plural "dir.summary.n" |
1608 | msgstr[0] "This directory contains %zu item." | 1612 | msgstr[0] "This directory contains %u item." |
1609 | msgstr[1] "This directory contains %zu items." | 1613 | msgstr[1] "This directory contains %u items." |
1610 | 1614 | ||
1611 | msgid "keys.top" | 1615 | msgid "keys.top" |
1612 | msgstr "Jump to top" | 1616 | msgstr "Jump to top" |
@@ -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-02 23:51+0000\n" | 4 | "PO-Revision-Date: 2021-11-10 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" |
@@ -779,14 +779,14 @@ msgstr "Nueva pestaña" | |||
779 | 779 | ||
780 | msgid "num.bytes" | 780 | msgid "num.bytes" |
781 | msgid_plural "num.bytes.n" | 781 | msgid_plural "num.bytes.n" |
782 | msgstr[0] "%zu byte" | 782 | msgstr[0] "%u byte" |
783 | msgstr[1] "%zu bytes" | 783 | msgstr[1] "%u bytes" |
784 | 784 | ||
785 | #, c-format | 785 | #, c-format |
786 | msgid "ident.usedonurls" | 786 | msgid "ident.usedonurls" |
787 | msgid_plural "ident.usedonurls.n" | 787 | msgid_plural "ident.usedonurls.n" |
788 | msgstr[0] "Usado en %zu URL" | 788 | msgstr[0] "Usado en %u URL" |
789 | msgstr[1] "Usado en %zu URLs" | 789 | msgstr[1] "Usado en %u URLs" |
790 | 790 | ||
791 | #, c-format | 791 | #, c-format |
792 | msgid "dlg.import.found" | 792 | msgid "dlg.import.found" |
@@ -1406,14 +1406,14 @@ msgstr "Entradas de las suscripciones" | |||
1406 | #, c-format | 1406 | #, c-format |
1407 | msgid "feeds.list.counts" | 1407 | msgid "feeds.list.counts" |
1408 | msgid_plural "feeds.list.counts.n" | 1408 | msgid_plural "feeds.list.counts.n" |
1409 | msgstr[0] "Está suscrito a %zu suscripción que contiene %%s.\n" | 1409 | msgstr[0] "Está suscrito a %u suscripción que contiene %%s.\n" |
1410 | msgstr[1] "Está suscrito a %zu suscripciones que contienen %%s.\n" | 1410 | msgstr[1] "Está suscrito a %u suscripciones que contienen %%s.\n" |
1411 | 1411 | ||
1412 | #, c-format | 1412 | #, c-format |
1413 | msgid "feeds.list.entrycount" | 1413 | msgid "feeds.list.entrycount" |
1414 | msgid_plural "feeds.list.entrycount.n" | 1414 | msgid_plural "feeds.list.entrycount.n" |
1415 | msgstr[0] "un total de %zu entrada" | 1415 | msgstr[0] "un total de %u entrada" |
1416 | msgstr[1] "un total de %zu entradas" | 1416 | msgstr[1] "un total de %u entradas" |
1417 | 1417 | ||
1418 | msgid "feeds.list.refreshtime.now" | 1418 | msgid "feeds.list.refreshtime.now" |
1419 | msgstr "La última actualización ocurrió hace un momento." | 1419 | msgstr "La última actualización ocurrió hace un momento." |
@@ -1580,14 +1580,14 @@ msgstr "Salir del archivo" | |||
1580 | #, c-format | 1580 | #, c-format |
1581 | msgid "archive.summary" | 1581 | msgid "archive.summary" |
1582 | msgid_plural "archive.summary.n" | 1582 | msgid_plural "archive.summary.n" |
1583 | msgstr[0] "Este archivo contiene %zu item y su tamaño comprimido es de %.1f MB." | 1583 | msgstr[0] "Este archivo contiene %u item y su tamaño comprimido es de %.1f MB." |
1584 | msgstr[1] "Este archivo contiene %zu items y su tamaño comprimido es de %.1f MB." | 1584 | msgstr[1] "Este archivo contiene %u items y su tamaño comprimido es de %.1f MB." |
1585 | 1585 | ||
1586 | #, c-format | 1586 | #, c-format |
1587 | msgid "dir.summary" | 1587 | msgid "dir.summary" |
1588 | msgid_plural "dir.summary.n" | 1588 | msgid_plural "dir.summary.n" |
1589 | msgstr[0] "Este directorio contiene %zu item." | 1589 | msgstr[0] "Este directorio contiene %u item." |
1590 | msgstr[1] "Este directorio contiene %zu items." | 1590 | msgstr[1] "Este directorio contiene %u items." |
1591 | 1591 | ||
1592 | msgid "keys.tab.close.other" | 1592 | msgid "keys.tab.close.other" |
1593 | msgstr "Cerrar otras pestañas" | 1593 | msgstr "Cerrar otras pestañas" |
@@ -2059,13 +2059,13 @@ msgstr "Administrar Fuentes…" | |||
2059 | 2059 | ||
2060 | msgid "num.files" | 2060 | msgid "num.files" |
2061 | msgid_plural "num.files.n" | 2061 | msgid_plural "num.files.n" |
2062 | msgstr[0] "%zu archivo" | 2062 | msgstr[0] "%u archivo" |
2063 | msgstr[1] "%zu archivos" | 2063 | msgstr[1] "%u archivos" |
2064 | 2064 | ||
2065 | msgid "num.fonts" | 2065 | msgid "num.fonts" |
2066 | msgid_plural "num.fonts.n" | 2066 | msgid_plural "num.fonts.n" |
2067 | msgstr[0] "%zu fuente" | 2067 | msgstr[0] "%u fuente" |
2068 | msgstr[1] "%zu fuentes" | 2068 | msgstr[1] "%u fuentes" |
2069 | 2069 | ||
2070 | msgid "dlg.certwarn.title" | 2070 | msgid "dlg.certwarn.title" |
2071 | msgstr "Incidencia de Seguridad" | 2071 | msgstr "Incidencia de Seguridad" |
@@ -2129,3 +2129,9 @@ msgstr "BORRAR PAQUETE DE FUENTES" | |||
2129 | 2129 | ||
2130 | msgid "lang.uk" | 2130 | msgid "lang.uk" |
2131 | msgstr "Ucraniano" | 2131 | msgstr "Ucraniano" |
2132 | |||
2133 | msgid "lang.cs" | ||
2134 | msgstr "Checo" | ||
2135 | |||
2136 | msgid "lang.hu" | ||
2137 | msgstr "Húngaro" | ||
@@ -3,7 +3,7 @@ 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-02 23:51+0000\n" | 6 | "PO-Revision-Date: 2021-11-06 04:44+0000\n" |
7 | "Last-Translator: Weblate Admin <jaakko.keranen@iki.fi>\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" |
@@ -388,8 +388,8 @@ msgstr "Ei käytössä" | |||
388 | 388 | ||
389 | msgid "ident.usedonurls" | 389 | msgid "ident.usedonurls" |
390 | msgid_plural "ident.usedonurls.n" | 390 | msgid_plural "ident.usedonurls.n" |
391 | msgstr[0] "Käytössä %zu URL:ssa" | 391 | msgstr[0] "Käytössä %u URL:ssa" |
392 | msgstr[1] "Käytössä %zu URL:ssa" | 392 | msgstr[1] "Käytössä %u URL:ssa" |
393 | 393 | ||
394 | msgid "ident.temporary" | 394 | msgid "ident.temporary" |
395 | msgstr "Tilapäinen" | 395 | msgstr "Tilapäinen" |
@@ -1281,8 +1281,8 @@ msgstr "MUUT" | |||
1281 | 1281 | ||
1282 | msgid "num.bytes" | 1282 | msgid "num.bytes" |
1283 | msgid_plural "num.bytes.n" | 1283 | msgid_plural "num.bytes.n" |
1284 | msgstr[0] "%zu tavu" | 1284 | msgstr[0] "%u tavu" |
1285 | msgstr[1] "%zu tavua" | 1285 | msgstr[1] "%u tavua" |
1286 | 1286 | ||
1287 | msgid "reload.never" | 1287 | msgid "reload.never" |
1288 | msgstr "Ei koskaan" | 1288 | msgstr "Ei koskaan" |
@@ -1324,8 +1324,8 @@ msgstr "Syötteiden artikkelit" | |||
1324 | #, c-format | 1324 | #, c-format |
1325 | msgid "feeds.list.counts" | 1325 | msgid "feeds.list.counts" |
1326 | msgid_plural "feeds.list.counts.n" | 1326 | msgid_plural "feeds.list.counts.n" |
1327 | msgstr[0] "Olet tilannut %zu syötteen, joka sisältää %%s.\n" | 1327 | msgstr[0] "Olet tilannut %u syötteen, joka sisältää %%s.\n" |
1328 | msgstr[1] "Olet tilannut %zu syötettä, jotka sisältävät %%s.\n" | 1328 | msgstr[1] "Olet tilannut %u syötettä, jotka sisältävät %%s.\n" |
1329 | 1329 | ||
1330 | # Link download progress message. | 1330 | # Link download progress message. |
1331 | msgid "doc.fetching" | 1331 | msgid "doc.fetching" |
@@ -1373,8 +1373,8 @@ msgstr "Hz" | |||
1373 | #, c-format | 1373 | #, c-format |
1374 | msgid "feeds.list.entrycount" | 1374 | msgid "feeds.list.entrycount" |
1375 | msgid_plural "feeds.list.entrycount.n" | 1375 | msgid_plural "feeds.list.entrycount.n" |
1376 | msgstr[0] "yhteensä %zu artikkelin" | 1376 | msgstr[0] "yhteensä %u artikkelin" |
1377 | msgstr[1] "yhteensä %zu artikkelia" | 1377 | msgstr[1] "yhteensä %u artikkelia" |
1378 | 1378 | ||
1379 | msgid "feeds.list.refreshtime.now" | 1379 | msgid "feeds.list.refreshtime.now" |
1380 | msgstr "Viimeinen päivitys tehtiin hetki sitten." | 1380 | msgstr "Viimeinen päivitys tehtiin hetki sitten." |
@@ -1538,8 +1538,8 @@ msgstr "Poistu arkistosta" | |||
1538 | 1538 | ||
1539 | msgid "archive.summary" | 1539 | msgid "archive.summary" |
1540 | msgid_plural "archive.summary.n" | 1540 | msgid_plural "archive.summary.n" |
1541 | msgstr[0] "Tämä arkisto sisältää %zu tiedoston ja sen pakattu koko on %.1f Mt." | 1541 | msgstr[0] "Tämä arkisto sisältää %u tiedoston ja sen pakattu koko on %.1f Mt." |
1542 | msgstr[1] "Tämä arkisto sisältää %zu tiedostoa ja sen pakattu koko on %.1f Mt." | 1542 | msgstr[1] "Tämä arkisto sisältää %u tiedostoa ja sen pakattu koko on %.1f Mt." |
1543 | 1543 | ||
1544 | msgid "dir.empty" | 1544 | msgid "dir.empty" |
1545 | msgstr "Tämä hakemisto on tyhjä." | 1545 | msgstr "Tämä hakemisto on tyhjä." |
@@ -1551,8 +1551,8 @@ msgstr "Avaa arkistojen index-sivut:" | |||
1551 | #, c-format | 1551 | #, c-format |
1552 | msgid "dir.summary" | 1552 | msgid "dir.summary" |
1553 | msgid_plural "dir.summary.n" | 1553 | msgid_plural "dir.summary.n" |
1554 | msgstr[0] "Tämä hakemisto sisältää %zu nimikkeen." | 1554 | msgstr[0] "Tämä hakemisto sisältää %u nimikkeen." |
1555 | msgstr[1] "Tämä hakemisto sisältää %zu nimikettä." | 1555 | msgstr[1] "Tämä hakemisto sisältää %u nimikettä." |
1556 | 1556 | ||
1557 | msgid "keys.tab.close.other" | 1557 | msgid "keys.tab.close.other" |
1558 | msgstr "Sulje muut välilehdet" | 1558 | msgstr "Sulje muut välilehdet" |
@@ -1978,13 +1978,13 @@ msgstr "Hallinnoi fontteja…" | |||
1978 | 1978 | ||
1979 | msgid "num.files" | 1979 | msgid "num.files" |
1980 | msgid_plural "num.files.n" | 1980 | msgid_plural "num.files.n" |
1981 | msgstr[0] "%zu tiedosto" | 1981 | msgstr[0] "%u tiedosto" |
1982 | msgstr[1] "%zu tiedostoa" | 1982 | msgstr[1] "%u tiedostoa" |
1983 | 1983 | ||
1984 | msgid "num.fonts" | 1984 | msgid "num.fonts" |
1985 | msgid_plural "num.fonts.n" | 1985 | msgid_plural "num.fonts.n" |
1986 | msgstr[0] "%zu fontti" | 1986 | msgstr[0] "%u fontti" |
1987 | msgstr[1] "%zu fonttia" | 1987 | msgstr[1] "%u fonttia" |
1988 | 1988 | ||
1989 | msgid "bookmark.export.taginfo" | 1989 | msgid "bookmark.export.taginfo" |
1990 | msgstr "" | 1990 | msgstr "" |
@@ -2116,3 +2116,9 @@ msgstr "" | |||
2116 | 2116 | ||
2117 | msgid "lang.uk" | 2117 | msgid "lang.uk" |
2118 | msgstr "Ukraina" | 2118 | msgstr "Ukraina" |
2119 | |||
2120 | msgid "lang.hu" | ||
2121 | msgstr "Unkari" | ||
2122 | |||
2123 | msgid "lang.cs" | ||
2124 | msgstr "Tšekki" | ||
@@ -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-02 23:51+0000\n" | 4 | "PO-Revision-Date: 2021-11-10 04: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" |
@@ -203,13 +203,13 @@ msgstr "Hz" | |||
203 | 203 | ||
204 | # Used in about:feeds. | 204 | # Used in about:feeds. |
205 | msgid "feeds.list.title" | 205 | msgid "feeds.list.title" |
206 | msgstr "Entradas da fonte" | 206 | msgstr "Artigos das Fontes" |
207 | 207 | ||
208 | #, c-format | 208 | #, c-format |
209 | msgid "feeds.list.entrycount" | 209 | msgid "feeds.list.entrycount" |
210 | msgid_plural "feeds.list.entrycount.n" | 210 | msgid_plural "feeds.list.entrycount.n" |
211 | msgstr[0] "un total de %zu entrada" | 211 | msgstr[0] "un total de %u entrada" |
212 | msgstr[1] "un total de %zu entradas" | 212 | msgstr[1] "un total de %u entradas" |
213 | 213 | ||
214 | msgid "feeds.list.refreshtime.now" | 214 | msgid "feeds.list.refreshtime.now" |
215 | msgstr "A última actualización fíxose hai xusto un intre." | 215 | msgstr "A última actualización fíxose hai xusto un intre." |
@@ -355,7 +355,7 @@ msgid "macos.menu.bookmarks.bytime" | |||
355 | msgstr "Lista por Data de creación" | 355 | msgstr "Lista por Data de creación" |
356 | 356 | ||
357 | msgid "menu.feeds.entrylist" | 357 | msgid "menu.feeds.entrylist" |
358 | msgstr "Mostrar entrada da Fonte" | 358 | msgstr "Ver Artigos das Fontes" |
359 | 359 | ||
360 | msgid "menu.preferences" | 360 | msgid "menu.preferences" |
361 | msgstr "Preferencias…" | 361 | msgstr "Preferencias…" |
@@ -501,8 +501,8 @@ msgstr "KB" | |||
501 | 501 | ||
502 | msgid "num.bytes" | 502 | msgid "num.bytes" |
503 | msgid_plural "num.bytes.n" | 503 | msgid_plural "num.bytes.n" |
504 | msgstr[0] "%zu byte" | 504 | msgstr[0] "%u byte" |
505 | msgstr[1] "%zu bytes" | 505 | msgstr[1] "%u bytes" |
506 | 506 | ||
507 | # strftime() formatted | 507 | # strftime() formatted |
508 | #, c-format | 508 | #, c-format |
@@ -610,8 +610,8 @@ msgstr "Non utilizado" | |||
610 | #, c-format | 610 | #, c-format |
611 | msgid "ident.usedonurls" | 611 | msgid "ident.usedonurls" |
612 | msgid_plural "ident.usedonurls.n" | 612 | msgid_plural "ident.usedonurls.n" |
613 | msgstr[0] "Utilizado en %zu URL" | 613 | msgstr[0] "Utilizado en %u URL" |
614 | msgstr[1] "Utilizado en %zu URLs" | 614 | msgstr[1] "Utilizado en %u URLs" |
615 | 615 | ||
616 | msgid "ident.temporary" | 616 | msgid "ident.temporary" |
617 | msgstr "Temporalmente" | 617 | msgstr "Temporalmente" |
@@ -1389,8 +1389,8 @@ msgstr "Xénero" | |||
1389 | #, c-format | 1389 | #, c-format |
1390 | msgid "feeds.list.counts" | 1390 | msgid "feeds.list.counts" |
1391 | msgid_plural "feeds.list.counts.n" | 1391 | msgid_plural "feeds.list.counts.n" |
1392 | msgstr[0] "Estás subscrita a %zu fonte que contén %%s.\n" | 1392 | msgstr[0] "Estás subscrita a %u fonte que contén %%s.\n" |
1393 | msgstr[1] "Estás subscrita a %zu fontes que conteñen %%s.\n" | 1393 | msgstr[1] "Estás subscrita a %u fontes que conteñen %%s.\n" |
1394 | 1394 | ||
1395 | #, c-format | 1395 | #, c-format |
1396 | msgid "hours.ago" | 1396 | msgid "hours.ago" |
@@ -1532,8 +1532,8 @@ msgstr "Reter situación:" | |||
1532 | #, c-format | 1532 | #, c-format |
1533 | msgid "archive.summary" | 1533 | msgid "archive.summary" |
1534 | msgid_plural "archive.summary.n" | 1534 | msgid_plural "archive.summary.n" |
1535 | msgstr[0] "Este arquivo contén %zu elemento e o seu tamaño comprimido é %.1f MB." | 1535 | msgstr[0] "Este arquivo contén %u elemento e o seu tamaño comprimido é %.1f MB." |
1536 | msgstr[1] "Este arquivo contén %zu elementos e o seu tamaño comprimido é %.1f MB." | 1536 | msgstr[1] "Este arquivo contén %u elementos e o seu tamaño comprimido é %.1f MB." |
1537 | 1537 | ||
1538 | msgid "dir.empty" | 1538 | msgid "dir.empty" |
1539 | msgstr "O directorio está baleiro." | 1539 | msgstr "O directorio está baleiro." |
@@ -1541,8 +1541,8 @@ msgstr "O directorio está baleiro." | |||
1541 | #, c-format | 1541 | #, c-format |
1542 | msgid "dir.summary" | 1542 | msgid "dir.summary" |
1543 | msgid_plural "dir.summary.n" | 1543 | msgid_plural "dir.summary.n" |
1544 | msgstr[0] "O directorio contén %zu elemento." | 1544 | msgstr[0] "O directorio contén %u elemento." |
1545 | msgstr[1] "O directorio contén %zu elementos." | 1545 | msgstr[1] "O directorio contén %u elementos." |
1546 | 1546 | ||
1547 | msgid "keys.top" | 1547 | msgid "keys.top" |
1548 | msgstr "Ir arriba" | 1548 | msgstr "Ir arriba" |
@@ -1937,13 +1937,13 @@ msgstr "Esperanto" | |||
1937 | 1937 | ||
1938 | msgid "num.files" | 1938 | msgid "num.files" |
1939 | msgid_plural "num.files.n" | 1939 | msgid_plural "num.files.n" |
1940 | msgstr[0] "%zu ficheiro" | 1940 | msgstr[0] "%u ficheiro" |
1941 | msgstr[1] "%zu ficheiros" | 1941 | msgstr[1] "%u ficheiros" |
1942 | 1942 | ||
1943 | msgid "num.fonts" | 1943 | msgid "num.fonts" |
1944 | msgid_plural "num.fonts.n" | 1944 | msgid_plural "num.fonts.n" |
1945 | msgstr[0] "%zu tipografía" | 1945 | msgstr[0] "%u tipografía" |
1946 | msgstr[1] "%zu tipografías" | 1946 | msgstr[1] "%u tipografías" |
1947 | 1947 | ||
1948 | msgid "heading.fontpack.classic" | 1948 | msgid "heading.fontpack.classic" |
1949 | msgstr "DESCARGAR PAQUETE TIPOGRAFÍA" | 1949 | msgstr "DESCARGAR PAQUETE TIPOGRAFÍA" |
@@ -2119,3 +2119,9 @@ msgstr "Desbotar aviso" | |||
2119 | 2119 | ||
2120 | msgid "lang.uk" | 2120 | msgid "lang.uk" |
2121 | msgstr "Ucraniano" | 2121 | msgstr "Ucraniano" |
2122 | |||
2123 | msgid "lang.cs" | ||
2124 | msgstr "Checo" | ||
2125 | |||
2126 | msgid "lang.hu" | ||
2127 | msgstr "Húngaro" | ||
@@ -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-04 13:12+0000\n" | 4 | "PO-Revision-Date: 2021-11-11 16:50+0000\n" |
5 | "Last-Translator: Botond Balázs <balazsbotond@gmail.com>\n" | 5 | "Last-Translator: Botond Balázs <balazsbotond@gmail.com>\n" |
6 | "Language-Team: Hungarian <http://weblate.skyjake.fi/projects/lagrange/ui/hu/>" | 6 | "Language-Team: Hungarian <http://weblate.skyjake.fi/projects/lagrange/ui/hu/>" |
7 | "\n" | 7 | "\n" |
@@ -119,8 +119,8 @@ msgstr "Hírfolyam bejegyzései" | |||
119 | #, c-format | 119 | #, c-format |
120 | msgid "feeds.list.entrycount" | 120 | msgid "feeds.list.entrycount" |
121 | msgid_plural "feeds.list.entrycount.n" | 121 | msgid_plural "feeds.list.entrycount.n" |
122 | msgstr[0] "összesen %zu bejegyzés" | 122 | msgstr[0] "összesen %u bejegyzés" |
123 | msgstr[1] "összesen %zu bejegyzés" | 123 | msgstr[1] "összesen %u bejegyzés" |
124 | 124 | ||
125 | msgid "feeds.list.refreshtime.now" | 125 | msgid "feeds.list.refreshtime.now" |
126 | msgstr "Az utolsó frissítés pillanatokkal ezelőtt történt." | 126 | msgstr "Az utolsó frissítés pillanatokkal ezelőtt történt." |
@@ -262,7 +262,7 @@ msgid "macos.menu.bookmarks.bytime" | |||
262 | msgstr "Listázás a létrehozás időrendjében" | 262 | msgstr "Listázás a létrehozás időrendjében" |
263 | 263 | ||
264 | msgid "menu.feeds.entrylist" | 264 | msgid "menu.feeds.entrylist" |
265 | msgstr "Hírfolyam bejegyzéseinek megtekintse" | 265 | msgstr "Hírfolyambejegyzések listja" |
266 | 266 | ||
267 | msgid "menu.preferences" | 267 | msgid "menu.preferences" |
268 | msgstr "Beállítások…" | 268 | msgstr "Beállítások…" |
@@ -420,18 +420,18 @@ msgstr "KB" | |||
420 | 420 | ||
421 | msgid "num.bytes" | 421 | msgid "num.bytes" |
422 | msgid_plural "num.bytes.n" | 422 | msgid_plural "num.bytes.n" |
423 | msgstr[0] "%zu bájt" | 423 | msgstr[0] "%u bájt" |
424 | msgstr[1] "%zu bájt" | 424 | msgstr[1] "%u bájt" |
425 | 425 | ||
426 | msgid "num.files" | 426 | msgid "num.files" |
427 | msgid_plural "num.files.n" | 427 | msgid_plural "num.files.n" |
428 | msgstr[0] "%zu fájl" | 428 | msgstr[0] "%u fájl" |
429 | msgstr[1] "%zu fájl" | 429 | msgstr[1] "%u fájl" |
430 | 430 | ||
431 | msgid "num.fonts" | 431 | msgid "num.fonts" |
432 | msgid_plural "num.fonts.n" | 432 | msgid_plural "num.fonts.n" |
433 | msgstr[0] "%zu betűtípus" | 433 | msgstr[0] "%u betűtípus" |
434 | msgstr[1] "%zu betűtípus" | 434 | msgstr[1] "%u betűtípus" |
435 | 435 | ||
436 | # strftime() formatted | 436 | # strftime() formatted |
437 | #, c-format | 437 | #, c-format |
@@ -459,7 +459,7 @@ msgid "feeds.entry.bookmark" | |||
459 | msgstr "Könyvjelző hozzáadása…" | 459 | msgstr "Könyvjelző hozzáadása…" |
460 | 460 | ||
461 | msgid "feeds.entry.openfeed" | 461 | msgid "feeds.entry.openfeed" |
462 | msgstr "Hírfolyamok megnyitása" | 462 | msgstr "Forrásoldal megnyitása" |
463 | 463 | ||
464 | msgid "feeds.edit" | 464 | msgid "feeds.edit" |
465 | msgstr "Hírfolyam szerkesztése…" | 465 | msgstr "Hírfolyam szerkesztése…" |
@@ -524,8 +524,8 @@ msgstr "Nincs használatban" | |||
524 | #, c-format | 524 | #, c-format |
525 | msgid "ident.usedonurls" | 525 | msgid "ident.usedonurls" |
526 | msgid_plural "ident.usedonurls.n" | 526 | msgid_plural "ident.usedonurls.n" |
527 | msgstr[0] "%zu URL-en használva" | 527 | msgstr[0] "%u URL-en használva" |
528 | msgstr[1] "%zu URL-en használva" | 528 | msgstr[1] "%u URL-en használva" |
529 | 529 | ||
530 | msgid "ident.temporary" | 530 | msgid "ident.temporary" |
531 | msgstr "Ideiglenes" | 531 | msgstr "Ideiglenes" |
@@ -654,7 +654,7 @@ msgstr "Naponta" | |||
654 | #, c-format | 654 | #, c-format |
655 | msgid "num.minutes" | 655 | msgid "num.minutes" |
656 | msgid_plural "num.minutes.n" | 656 | msgid_plural "num.minutes.n" |
657 | msgstr[0] "%d percenként" | 657 | msgstr[0] "Percenként" |
658 | msgstr[1] "%d percenként" | 658 | msgstr[1] "%d percenként" |
659 | 659 | ||
660 | msgid "link.newtab.background" | 660 | msgid "link.newtab.background" |
@@ -664,7 +664,7 @@ msgid "link.side" | |||
664 | msgstr "Hivatkozás megnyitása oldalt" | 664 | msgstr "Hivatkozás megnyitása oldalt" |
665 | 665 | ||
666 | msgid "link.side.newtab" | 666 | msgid "link.side.newtab" |
667 | msgstr "Hivatkozás megnyitása új lapon, oldalt" | 667 | msgstr "Hivatkozás megnyitása oldalt, új lapon" |
668 | 668 | ||
669 | msgid "link.noproxy" | 669 | msgid "link.noproxy" |
670 | msgstr "Megnyitás proxy nélkül" | 670 | msgstr "Megnyitás proxy nélkül" |
@@ -739,8 +739,8 @@ msgstr "Könyvjelzőcímkék" | |||
739 | 739 | ||
740 | msgid "bookmark.export.format.sub" | 740 | msgid "bookmark.export.format.sub" |
741 | msgstr "" | 741 | msgstr "" |
742 | "Az oldal formátuma megfelel a \"Feliratkozás Gemini oldalakra\" " | 742 | "Az oldal formátuma megfelel a \"Feliratkozás Gemini oldalakra\" kiegészítő " |
743 | "társspecifikáció előírásainak." | 743 | "specifikáció előírásainak." |
744 | 744 | ||
745 | msgid "bookmark.export.format.folders" | 745 | msgid "bookmark.export.format.folders" |
746 | msgstr "A mappaszerkezetet a 2. és 3. szintű fejezetcímek határozzák meg." | 746 | msgstr "A mappaszerkezetet a 2. és 3. szintű fejezetcímek határozzák meg." |
@@ -927,7 +927,7 @@ msgid "dlg.newident.country" | |||
927 | msgstr "Ország:" | 927 | msgstr "Ország:" |
928 | 928 | ||
929 | msgid "dlg.newident.more" | 929 | msgid "dlg.newident.more" |
930 | msgstr "Egyb…" | 930 | msgstr "Tovbbiak…" |
931 | 931 | ||
932 | msgid "heading.newident.date.bad" | 932 | msgid "heading.newident.date.bad" |
933 | msgstr "ÉRVÉNYTELEN DÁTUM" | 933 | msgstr "ÉRVÉNYTELEN DÁTUM" |
@@ -1005,7 +1005,7 @@ msgstr "Általános" | |||
1005 | 1005 | ||
1006 | # tab button | 1006 | # tab button |
1007 | msgid "heading.prefs.interface" | 1007 | msgid "heading.prefs.interface" |
1008 | msgstr "Felhasznlói fellet" | 1008 | msgstr "Felület" |
1009 | 1009 | ||
1010 | # tab button | 1010 | # tab button |
1011 | msgid "heading.prefs.keys" | 1011 | msgid "heading.prefs.keys" |
@@ -1211,7 +1211,7 @@ msgid "prefs.linewidth" | |||
1211 | msgstr "Sorszélesség:" | 1211 | msgstr "Sorszélesség:" |
1212 | 1212 | ||
1213 | msgid "prefs.linewidth.fill" | 1213 | msgid "prefs.linewidth.fill" |
1214 | msgstr "Kitöltés" | 1214 | msgstr "Teljes" |
1215 | 1215 | ||
1216 | msgid "prefs.linespacing" | 1216 | msgid "prefs.linespacing" |
1217 | msgstr "Sorköz:" | 1217 | msgstr "Sorköz:" |
@@ -1259,7 +1259,7 @@ msgstr "Ez a mappa üres." | |||
1259 | msgid "dir.summary" | 1259 | msgid "dir.summary" |
1260 | msgid_plural "dir.summary.n" | 1260 | msgid_plural "dir.summary.n" |
1261 | msgstr[0] "Ez a könyvtár egy elemet tartalmaz." | 1261 | msgstr[0] "Ez a könyvtár egy elemet tartalmaz." |
1262 | msgstr[1] "Ez a könyvtár %zu elemet tartalmaz." | 1262 | msgstr[1] "Ez a könyvtár %u elemet tartalmaz." |
1263 | 1263 | ||
1264 | msgid "keys.top" | 1264 | msgid "keys.top" |
1265 | msgstr "Ugrás az oldal tetejére" | 1265 | msgstr "Ugrás az oldal tetejére" |
@@ -1556,8 +1556,8 @@ msgstr "lebegőpontos szám" | |||
1556 | #, c-format | 1556 | #, c-format |
1557 | msgid "feeds.list.counts" | 1557 | msgid "feeds.list.counts" |
1558 | msgid_plural "feeds.list.counts.n" | 1558 | msgid_plural "feeds.list.counts.n" |
1559 | msgstr[0] "%zu hírfolyamra iratkoztál fel, amely %%s-t tartalmaz.\n" | 1559 | msgstr[0] "%u hírfolyamra iratkozott fel, amely %%st tartalmaz.\n" |
1560 | msgstr[1] "%zu hírfolyamra iratkoztál fel, amelyek %%s-t tartalmaznak.\n" | 1560 | msgstr[1] "%u hírfolyamra iratkozott fel, amelyek %%st tartalmaznak.\n" |
1561 | 1561 | ||
1562 | #, c-format | 1562 | #, c-format |
1563 | msgid "hours.ago" | 1563 | msgid "hours.ago" |
@@ -1742,7 +1742,7 @@ msgstr "Az oldal összes hivatkozása szerepel már a könyvjelzők között." | |||
1742 | #, c-format | 1742 | #, c-format |
1743 | msgid "num.hours" | 1743 | msgid "num.hours" |
1744 | msgid_plural "num.hours.n" | 1744 | msgid_plural "num.hours.n" |
1745 | msgstr[0] "%d ránként" | 1745 | msgstr[0] "ránként" |
1746 | msgstr[1] "%d óránként" | 1746 | msgstr[1] "%d óránként" |
1747 | 1747 | ||
1748 | msgid "link.newtab" | 1748 | msgid "link.newtab" |
@@ -1987,7 +1987,7 @@ msgstr "Alapértékek visszaállítása" | |||
1987 | msgid "archive.summary" | 1987 | msgid "archive.summary" |
1988 | msgid_plural "archive.summary.n" | 1988 | msgid_plural "archive.summary.n" |
1989 | msgstr[0] "Ez az archívum egy elemet tartalmaz, és %.1f MB méretű." | 1989 | msgstr[0] "Ez az archívum egy elemet tartalmaz, és %.1f MB méretű." |
1990 | msgstr[1] "Ez az archívum %zu elemet tartalmaz, és %.1f méretű." | 1990 | msgstr[1] "Ez az archívum %u elemet tartalmaz, és %.1f méretű." |
1991 | 1991 | ||
1992 | msgid "keys.scroll.halfpage.up" | 1992 | msgid "keys.scroll.halfpage.up" |
1993 | msgstr "Görgetés fél oldallal feljebb" | 1993 | msgstr "Görgetés fél oldallal feljebb" |
@@ -2091,7 +2091,7 @@ msgstr "A kapott ügyféltanúsítvány lejárt vagy érvénytelen." | |||
2091 | 2091 | ||
2092 | msgid "error.ansi.msg" | 2092 | msgid "error.ansi.msg" |
2093 | msgstr "" | 2093 | msgstr "" |
2094 | "Elképzelhető, hogy az oldal helytelenül jelenik meg. ANSI escape " | 2094 | "Elképzelhető, hogy az oldal helytelenül jelenik meg, mivel ANSI escape " |
2095 | "szekvenciákat használ a szöveg formázására, és ez jelenleg csak részben " | 2095 | "szekvenciákat használ a szöveg formázására, és ez jelenleg csak részben " |
2096 | "támogatott. Próbálja terminálemulátorban megnyitni." | 2096 | "támogatott. Próbálja terminálemulátorban megnyitni." |
2097 | 2097 | ||
@@ -2109,3 +2109,9 @@ msgstr "Gempub tartalom megtekintése" | |||
2109 | 2109 | ||
2110 | msgid "gempub.meta.author" | 2110 | msgid "gempub.meta.author" |
2111 | msgstr "Szerző" | 2111 | msgstr "Szerző" |
2112 | |||
2113 | msgid "lang.hu" | ||
2114 | msgstr "Magyar" | ||
2115 | |||
2116 | msgid "lang.cs" | ||
2117 | msgstr "Cseh" | ||
@@ -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-10-07 16:50+0000\n" | 4 | "PO-Revision-Date: 2021-11-10 04: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" |
@@ -259,14 +259,14 @@ msgstr "" | |||
259 | 259 | ||
260 | msgid "num.bytes" | 260 | msgid "num.bytes" |
261 | msgid_plural "num.bytes.n" | 261 | msgid_plural "num.bytes.n" |
262 | msgstr[0] "%zu octete" | 262 | msgstr[0] "%u octete" |
263 | msgstr[1] "%zu octetes" | 263 | msgstr[1] "%u octetes" |
264 | 264 | ||
265 | #, c-format | 265 | #, c-format |
266 | msgid "ident.usedonurls" | 266 | msgid "ident.usedonurls" |
267 | msgid_plural "ident.usedonurls.n" | 267 | msgid_plural "ident.usedonurls.n" |
268 | msgstr[0] "Usat por %zu URL" | 268 | msgstr[0] "Usat por %u URL" |
269 | msgstr[1] "Usat por %zu URLs" | 269 | msgstr[1] "Usat por %u URLs" |
270 | 270 | ||
271 | msgid "error.cert.invalid.msg" | 271 | msgid "error.cert.invalid.msg" |
272 | msgstr "Li providet certificate de cliente es expirat o ínvalid." | 272 | msgstr "Li providet certificate de cliente es expirat o ínvalid." |
@@ -503,9 +503,7 @@ msgstr "DESABONNAR" | |||
503 | 503 | ||
504 | #, c-format | 504 | #, c-format |
505 | msgid "dlg.confirm.unsub" | 505 | msgid "dlg.confirm.unsub" |
506 | msgstr "" | 506 | msgstr "Esque desabonnar li feed «%s»?" |
507 | "Esque desabonnar li feed\n" | ||
508 | "«%s»?" | ||
509 | 507 | ||
510 | msgid "dlg.unsub" | 508 | msgid "dlg.unsub" |
511 | msgstr "Desabonnar" | 509 | msgstr "Desabonnar" |
@@ -1027,9 +1025,7 @@ msgstr "REMOVER LI IDENTITÁ" | |||
1027 | #, c-format | 1025 | #, c-format |
1028 | msgid "dlg.confirm.ident.delete" | 1026 | msgid "dlg.confirm.ident.delete" |
1029 | msgstr "" | 1027 | msgstr "" |
1030 | "Esque vu vole remover li identitá\n" | 1028 | "Esque vu vole remover li identitá %s«%s»%s con su certificate e clave privat?" |
1031 | "%s%s%s\n" | ||
1032 | "con su certificate e clave privat?" | ||
1033 | 1029 | ||
1034 | msgid "dlg.ident.delete" | 1030 | msgid "dlg.ident.delete" |
1035 | msgstr "Remover li identitá e files" | 1031 | msgstr "Remover li identitá e files" |
@@ -1186,7 +1182,7 @@ msgid "error.tls" | |||
1186 | msgstr "Dessuccesse del rete o TLS" | 1182 | msgstr "Dessuccesse del rete o TLS" |
1187 | 1183 | ||
1188 | msgid "error.tls.msg" | 1184 | msgid "error.tls.msg" |
1189 | msgstr "Ne successat communicar con li servitor. Vi li textu de errore:" | 1185 | msgstr "Ne successat communicar con li servitor." |
1190 | 1186 | ||
1191 | msgid "error.temporary" | 1187 | msgid "error.temporary" |
1192 | msgstr "Temporari dessuccesse" | 1188 | msgstr "Temporari dessuccesse" |
@@ -1345,14 +1341,14 @@ msgstr "Serbian" | |||
1345 | #, c-format | 1341 | #, c-format |
1346 | msgid "feeds.list.counts" | 1342 | msgid "feeds.list.counts" |
1347 | msgid_plural "feeds.list.counts.n" | 1343 | msgid_plural "feeds.list.counts.n" |
1348 | msgstr[0] "Vu abonat %zu feed quel contene %%s.\n" | 1344 | msgstr[0] "Vu abonat %u feed quel contene %%s.\n" |
1349 | msgstr[1] "Vu abonat %zu feedes quel contene %%s.\n" | 1345 | msgstr[1] "Vu abonat %u feedes quel contene %%s.\n" |
1350 | 1346 | ||
1351 | #, c-format | 1347 | #, c-format |
1352 | msgid "feeds.list.entrycount" | 1348 | msgid "feeds.list.entrycount" |
1353 | msgid_plural "feeds.list.entrycount.n" | 1349 | msgid_plural "feeds.list.entrycount.n" |
1354 | msgstr[0] "%zu element in tot" | 1350 | msgstr[0] "%u element in tot" |
1355 | msgstr[1] "%zu elementes in tot" | 1351 | msgstr[1] "%u elementes in tot" |
1356 | 1352 | ||
1357 | #, c-format | 1353 | #, c-format |
1358 | msgid "minutes.ago" | 1354 | msgid "minutes.ago" |
@@ -1544,14 +1540,14 @@ msgstr "On posse leer ti libre Gempub pos que it ha esset gardat localmen." | |||
1544 | #, c-format | 1540 | #, c-format |
1545 | msgid "dir.summary" | 1541 | msgid "dir.summary" |
1546 | msgid_plural "dir.summary.n" | 1542 | msgid_plural "dir.summary.n" |
1547 | msgstr[0] "Ti fólder contene %zu element." | 1543 | msgstr[0] "Ti fólder contene %u element." |
1548 | msgstr[1] "Ti fólder contene %zu elementes." | 1544 | msgstr[1] "Ti fólder contene %u elementes." |
1549 | 1545 | ||
1550 | #, c-format | 1546 | #, c-format |
1551 | msgid "archive.summary" | 1547 | msgid "archive.summary" |
1552 | msgid_plural "archive.summary.n" | 1548 | msgid_plural "archive.summary.n" |
1553 | msgstr[0] "Ti archive contene %zu element e su compresset grandore es %.1f Mo." | 1549 | msgstr[0] "Ti archive contene %u element e su compresset grandore es %.1f Mo." |
1554 | msgstr[1] "Ti archive contene %zu elementes e su compresset grandore es %.1f Mo." | 1550 | msgstr[1] "Ti archive contene %u elementes e su compresset grandore es %.1f Mo." |
1555 | 1551 | ||
1556 | msgid "link.side" | 1552 | msgid "link.side" |
1557 | msgstr "Aperter li ligament láteralmen" | 1553 | msgstr "Aperter li ligament láteralmen" |
@@ -1712,8 +1708,8 @@ msgstr "Assignar li portu" | |||
1712 | 1708 | ||
1713 | msgid "dlg.uploadport.msg" | 1709 | msgid "dlg.uploadport.msg" |
1714 | msgstr "" | 1710 | msgstr "" |
1715 | "Assignar li portu de Titan por ti-ci adresse.\n" | 1711 | "Assignar li portu de Titan por ti-ci adresse. Li portu es gardat in li " |
1716 | "Li portu es gardat in li preferenties del site." | 1712 | "preferenties del site." |
1717 | 1713 | ||
1718 | msgid "prefs.returnkey" | 1714 | msgid "prefs.returnkey" |
1719 | msgstr "Coduida del taste Enter:" | 1715 | msgstr "Coduida del taste Enter:" |
@@ -1918,3 +1914,188 @@ msgstr "Sel. omni" | |||
1918 | # keep this short (3x1 horiz layout) | 1914 | # keep this short (3x1 horiz layout) |
1919 | msgid "menu.delete" | 1915 | msgid "menu.delete" |
1920 | msgstr "Remov." | 1916 | msgstr "Remov." |
1917 | |||
1918 | msgid "dlg.feed.ignoreweb" | ||
1919 | msgstr "Ignorar ligamentes HTTP(s):" | ||
1920 | |||
1921 | msgid "truetype.help.installed" | ||
1922 | msgstr "Ti-ci fonde es installat in li fólder de personal fondes." | ||
1923 | |||
1924 | msgid "dlg.fontpack.classic.msg" | ||
1925 | msgstr "" | ||
1926 | "Li fondes quel esser includet in li app es nu disponibil quam un separat " | ||
1927 | "discarga. Esque vu vole descargar li «classic» collection ho-témpor?" | ||
1928 | |||
1929 | msgid "lang.hu" | ||
1930 | msgstr "Hungarian" | ||
1931 | |||
1932 | msgid "prefs.bookmarks.addbottom" | ||
1933 | msgstr "Adjunter marca-págines a bass:" | ||
1934 | |||
1935 | msgid "prefs.font.ui" | ||
1936 | msgstr "IdU:" | ||
1937 | |||
1938 | msgid "prefs.font.heading" | ||
1939 | msgstr "Rubricas:" | ||
1940 | |||
1941 | msgid "prefs.font.body" | ||
1942 | msgstr "Córpore:" | ||
1943 | |||
1944 | msgid "prefs.font.mono" | ||
1945 | msgstr "Formatat:" | ||
1946 | |||
1947 | msgid "prefs.boldlink.visited" | ||
1948 | msgstr "Visitat" | ||
1949 | |||
1950 | msgid "prefs.gemtext.ansi" | ||
1951 | msgstr "Codes escape de ANSI:" | ||
1952 | |||
1953 | msgid "prefs.gemtext.ansi.fg" | ||
1954 | msgstr "Avanplan" | ||
1955 | |||
1956 | msgid "prefs.gemtext.ansi.fontstyle" | ||
1957 | msgstr "Stil de fonde" | ||
1958 | |||
1959 | msgid "prefs.font.warnmissing" | ||
1960 | msgstr "Avise de glifes:" | ||
1961 | |||
1962 | msgid "num.files" | ||
1963 | msgid_plural "num.files.n" | ||
1964 | msgstr[0] "%u file" | ||
1965 | msgstr[1] "%u files" | ||
1966 | |||
1967 | msgid "num.fonts" | ||
1968 | msgid_plural "num.fonts.n" | ||
1969 | msgstr[0] "%u fonde" | ||
1970 | msgstr[1] "%u fondes" | ||
1971 | |||
1972 | msgid "heading.fontpack.classic" | ||
1973 | msgstr "DESCARGAR UN FONDPAC" | ||
1974 | |||
1975 | msgid "error.ansi" | ||
1976 | msgstr "Emulation del terminal" | ||
1977 | |||
1978 | msgid "error.glyphs" | ||
1979 | msgstr "Glifes mancant" | ||
1980 | |||
1981 | msgid "heading.fontpack.meta" | ||
1982 | msgstr "Fondes" | ||
1983 | |||
1984 | # Action label | ||
1985 | msgid "fontpack.meta.viewfile" | ||
1986 | msgstr "Monstrar li file" | ||
1987 | |||
1988 | msgid "heading.fontpack.meta.enabled" | ||
1989 | msgstr "Activ fondpacs" | ||
1990 | |||
1991 | msgid "heading.fontpack.meta.disabled" | ||
1992 | msgstr "Ínactiv fondpacs" | ||
1993 | |||
1994 | #, c-format | ||
1995 | msgid "fontpack.meta.version" | ||
1996 | msgstr "Version %d" | ||
1997 | |||
1998 | msgid "fontpack.meta.installed" | ||
1999 | msgstr "Installat" | ||
2000 | |||
2001 | msgid "fontpack.meta.notinstalled" | ||
2002 | msgstr "Ne installat" | ||
2003 | |||
2004 | msgid "fontpack.meta.disabled" | ||
2005 | msgstr ", ínactiv" | ||
2006 | |||
2007 | #, c-format | ||
2008 | msgid "fontpack.disable" | ||
2009 | msgstr "Desactivar «%s»" | ||
2010 | |||
2011 | msgid "fontpack.export" | ||
2012 | msgstr "Monstrar li modelle fontpack.ini" | ||
2013 | |||
2014 | #, c-format | ||
2015 | msgid "fontpack.install" | ||
2016 | msgstr "Installar «%s»" | ||
2017 | |||
2018 | #, c-format | ||
2019 | msgid "fontpack.upgrade" | ||
2020 | msgstr "Actualisar «%s» al version %d" | ||
2021 | |||
2022 | #, c-format | ||
2023 | msgid "fontpack.delete" | ||
2024 | msgstr "Remover «%s» permanentmen" | ||
2025 | |||
2026 | msgid "dlg.fontpack.delete" | ||
2027 | msgstr "Remover li fondpac" | ||
2028 | |||
2029 | msgid "fontpack.install.ttf" | ||
2030 | msgstr "Installar un fonde TrueType" | ||
2031 | |||
2032 | msgid "fontpack.open.fontsdir" | ||
2033 | msgstr "Aperter li fólder de personal fondes" | ||
2034 | |||
2035 | msgid "fontpack.open.aboutfonts" | ||
2036 | msgstr "Monstrar installat fondes" | ||
2037 | |||
2038 | msgid "dlg.fontpack.classic" | ||
2039 | msgstr "Descargar li fondpac (25 Mo)" | ||
2040 | |||
2041 | msgid "lang.uk" | ||
2042 | msgstr "Ukrainan" | ||
2043 | |||
2044 | msgid "heading.fontpack.delete" | ||
2045 | msgstr "REMOVER LI FONDPAC" | ||
2046 | |||
2047 | #, c-format | ||
2048 | msgid "dlg.fontpack.delete.confirm" | ||
2049 | msgstr "Esque vu vole remover li fondpac «%s» permanentmen?" | ||
2050 | |||
2051 | msgid "menu.fonts" | ||
2052 | msgstr "Gerentie de fondes…" | ||
2053 | |||
2054 | msgid "dlg.certwarn.title" | ||
2055 | msgstr "Problema de securitá" | ||
2056 | |||
2057 | msgid "menu.website" | ||
2058 | msgstr "Website del projecte…" | ||
2059 | |||
2060 | #, c-format | ||
2061 | msgid "fontpack.enable" | ||
2062 | msgstr "Activar «%s»" | ||
2063 | |||
2064 | msgid "lang.cs" | ||
2065 | msgstr "Tchec" | ||
2066 | |||
2067 | msgid "prefs.font.smooth" | ||
2068 | msgstr "Glattar:" | ||
2069 | |||
2070 | msgid "bookmark.export.taginfo" | ||
2071 | msgstr "" | ||
2072 | "In ti-ci liste chascun rubrica representa un etiquette de marca-págines. " | ||
2073 | "Solmen marca-págines con un etiquette es monstrat. Marca-págines con " | ||
2074 | "multiplic etiquettes es duplicat sub chascun etiquette." | ||
2075 | |||
2076 | msgid "error.glyphs.msg" | ||
2077 | msgstr "" | ||
2078 | "Ti-ci págine ne es monstrat completmen pro que alcun caracteres es mancant. " | ||
2079 | "On posse installar suplementari fondes por correcter to." | ||
2080 | |||
2081 | msgid "truetype.help" | ||
2082 | msgstr "" | ||
2083 | "Lagrange pena cargar omni files de fondes TrueType quel esset copiat al " | ||
2084 | "fólder de personal fondes." | ||
2085 | |||
2086 | msgid "fontpack.help" | ||
2087 | msgstr "" | ||
2088 | "Fondpacs de Lagrange es archives ZIP quel contene files de fondes e li " | ||
2089 | "associat configuration. Pos li installation, on posse usar ti fondes por " | ||
2090 | "contenete de documentes e li interfacie. On posse selecter li activ fondes " | ||
2091 | "in Preferenties > Fondes." | ||
2092 | |||
2093 | msgid "bookmark.export.format.sub" | ||
2094 | msgstr "" | ||
2095 | "Ti-ci págine es formatat secun li specification suplementari «Subscribing to " | ||
2096 | "Gemini pages»." | ||
2097 | |||
2098 | msgid "feeds.atom.translated" | ||
2099 | msgstr "" | ||
2100 | "Ti document Atom XML esset convertet in un feed de Gemini por que on vell " | ||
2101 | "posse abonnar it." | ||
@@ -3,7 +3,7 @@ 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-02 23:51+0000\n" | 6 | "PO-Revision-Date: 2021-11-06 09:34+0000\n" |
7 | "Last-Translator: jan Anja <cyber@sysrq.in>\n" | 7 | "Last-Translator: jan Anja <cyber@sysrq.in>\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" |
@@ -390,9 +390,9 @@ msgstr "Не используется" | |||
390 | 390 | ||
391 | msgid "ident.usedonurls" | 391 | msgid "ident.usedonurls" |
392 | msgid_plural "ident.usedonurls.n" | 392 | msgid_plural "ident.usedonurls.n" |
393 | msgstr[0] "Используется на %zu URL" | 393 | msgstr[0] "Используется на %u URL" |
394 | msgstr[1] "Используется на %zu URL" | 394 | msgstr[1] "Используется на %u URL" |
395 | msgstr[2] "Используется на %zu URL" | 395 | msgstr[2] "Используется на %u URL" |
396 | 396 | ||
397 | msgid "ident.temporary" | 397 | msgid "ident.temporary" |
398 | msgstr "Временный" | 398 | msgstr "Временный" |
@@ -1293,9 +1293,9 @@ msgstr "ДРУГИЕ" | |||
1293 | 1293 | ||
1294 | msgid "num.bytes" | 1294 | msgid "num.bytes" |
1295 | msgid_plural "num.bytes.n" | 1295 | msgid_plural "num.bytes.n" |
1296 | msgstr[0] "%zu байт" | 1296 | msgstr[0] "%u байт" |
1297 | msgstr[1] "%zu байта" | 1297 | msgstr[1] "%u байта" |
1298 | msgstr[2] "%zu байтов" | 1298 | msgstr[2] "%u байтов" |
1299 | 1299 | ||
1300 | msgid "reload.never" | 1300 | msgid "reload.never" |
1301 | msgstr "Никогда" | 1301 | msgstr "Никогда" |
@@ -1359,16 +1359,16 @@ msgstr "МБ/с" | |||
1359 | #, c-format | 1359 | #, c-format |
1360 | msgid "feeds.list.entrycount" | 1360 | msgid "feeds.list.entrycount" |
1361 | msgid_plural "feeds.list.entrycount.n" | 1361 | msgid_plural "feeds.list.entrycount.n" |
1362 | msgstr[0] "всего %zu статья" | 1362 | msgstr[0] "всего %u статья" |
1363 | msgstr[1] "всего %zu статьи" | 1363 | msgstr[1] "всего %u статьи" |
1364 | msgstr[2] "всего %zu статей" | 1364 | msgstr[2] "всего %u статей" |
1365 | 1365 | ||
1366 | #, c-format | 1366 | #, c-format |
1367 | msgid "feeds.list.counts" | 1367 | msgid "feeds.list.counts" |
1368 | msgid_plural "feeds.list.counts.n" | 1368 | msgid_plural "feeds.list.counts.n" |
1369 | msgstr[0] "Вы подписаны на %zu ленту, содержащую %%s.\n" | 1369 | msgstr[0] "Вы подписаны на %u ленту, содержащую %%s.\n" |
1370 | msgstr[1] "Вы подписаны на %zu ленты, содержащие %%s.\n" | 1370 | msgstr[1] "Вы подписаны на %u ленты, содержащие %%s.\n" |
1371 | msgstr[2] "Вы подписаны на %zu лент, содержащих %%s.\n" | 1371 | msgstr[2] "Вы подписаны на %u лент, содержащих %%s.\n" |
1372 | 1372 | ||
1373 | # Interpretation: (Bold links) on dark (background). | 1373 | # Interpretation: (Bold links) on dark (background). |
1374 | msgid "prefs.boldlink.dark" | 1374 | msgid "prefs.boldlink.dark" |
@@ -1576,9 +1576,9 @@ msgstr "Выйти из архива" | |||
1576 | #, c-format | 1576 | #, c-format |
1577 | msgid "archive.summary" | 1577 | msgid "archive.summary" |
1578 | msgid_plural "archive.summary.n" | 1578 | msgid_plural "archive.summary.n" |
1579 | msgstr[0] "Архив содержит %zu элемент и занимает %.1f МБ в сжатом виде." | 1579 | msgstr[0] "Архив содержит %u элемент и занимает %.1f МБ в сжатом виде." |
1580 | msgstr[1] "Архив содержит %zu элемента и занимает %.1f МБ в сжатом виде." | 1580 | msgstr[1] "Архив содержит %u элемента и занимает %.1f МБ в сжатом виде." |
1581 | msgstr[2] "Архив содержит %zu элементов и занимает %.1f МБ в сжатом виде." | 1581 | msgstr[2] "Архив содержит %u элементов и занимает %.1f МБ в сжатом виде." |
1582 | 1582 | ||
1583 | msgid "dir.empty" | 1583 | msgid "dir.empty" |
1584 | msgstr "Каталог пуст." | 1584 | msgstr "Каталог пуст." |
@@ -1586,9 +1586,9 @@ msgstr "Каталог пуст." | |||
1586 | #, c-format | 1586 | #, c-format |
1587 | msgid "dir.summary" | 1587 | msgid "dir.summary" |
1588 | msgid_plural "dir.summary.n" | 1588 | msgid_plural "dir.summary.n" |
1589 | msgstr[0] "Каталог содержит %zu элемент." | 1589 | msgstr[0] "Каталог содержит %u элемент." |
1590 | msgstr[1] "Каталог содержит %zu элемента." | 1590 | msgstr[1] "Каталог содержит %u элемента." |
1591 | msgstr[2] "Каталог содержит %zu элементов." | 1591 | msgstr[2] "Каталог содержит %u элементов." |
1592 | 1592 | ||
1593 | msgid "keys.tab.close.other" | 1593 | msgid "keys.tab.close.other" |
1594 | msgstr "Закрыть другие владки" | 1594 | msgstr "Закрыть другие владки" |
@@ -1930,15 +1930,15 @@ msgstr "Загрузить пакет шрифтов (25 МБ)" | |||
1930 | 1930 | ||
1931 | msgid "num.files" | 1931 | msgid "num.files" |
1932 | msgid_plural "num.files.n" | 1932 | msgid_plural "num.files.n" |
1933 | msgstr[0] "%zu файл" | 1933 | msgstr[0] "%u файл" |
1934 | msgstr[1] "%zu файла" | 1934 | msgstr[1] "%u файла" |
1935 | msgstr[2] "%zu файлов" | 1935 | msgstr[2] "%u файлов" |
1936 | 1936 | ||
1937 | msgid "num.fonts" | 1937 | msgid "num.fonts" |
1938 | msgid_plural "num.fonts.n" | 1938 | msgid_plural "num.fonts.n" |
1939 | msgstr[0] "%zu шрифт" | 1939 | msgstr[0] "%u шрифт" |
1940 | msgstr[1] "%zu шрифта" | 1940 | msgstr[1] "%u шрифта" |
1941 | msgstr[2] "%zu шрифтов" | 1941 | msgstr[2] "%u шрифтов" |
1942 | 1942 | ||
1943 | msgid "heading.fontpack.classic" | 1943 | msgid "heading.fontpack.classic" |
1944 | msgstr "ЗАГРУЗИТЬ ПАКЕТ ШРИФТОВ" | 1944 | msgstr "ЗАГРУЗИТЬ ПАКЕТ ШРИФТОВ" |
@@ -2116,3 +2116,9 @@ msgstr "Навсегда скрыть предупреждение об эмул | |||
2116 | 2116 | ||
2117 | msgid "lang.uk" | 2117 | msgid "lang.uk" |
2118 | msgstr "Украинский" | 2118 | msgstr "Украинский" |
2119 | |||
2120 | msgid "lang.hu" | ||
2121 | msgstr "Венгерский" | ||
2122 | |||
2123 | msgid "lang.cs" | ||
2124 | 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-02 23:51+0000\n" | 4 | "PO-Revision-Date: 2021-11-10 04: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" |
@@ -193,9 +193,9 @@ msgstr "КБ" | |||
193 | 193 | ||
194 | msgid "num.bytes" | 194 | msgid "num.bytes" |
195 | msgid_plural "num.bytes.n" | 195 | msgid_plural "num.bytes.n" |
196 | msgstr[0] "%zu бајт" | 196 | msgstr[0] "%u бајт" |
197 | msgstr[1] "%zu бајта" | 197 | msgstr[1] "%u бајта" |
198 | msgstr[2] "%zu бајтова" | 198 | msgstr[2] "%u бајтова" |
199 | 199 | ||
200 | # strftime() formatted | 200 | # strftime() formatted |
201 | #, c-format | 201 | #, c-format |
@@ -1191,9 +1191,9 @@ msgstr "Икона за \"" | |||
1191 | #, c-format | 1191 | #, c-format |
1192 | msgid "ident.usedonurls" | 1192 | msgid "ident.usedonurls" |
1193 | msgid_plural "ident.usedonurls.n" | 1193 | msgid_plural "ident.usedonurls.n" |
1194 | msgstr[0] "Користи се на %zu УРЛ-у" | 1194 | msgstr[0] "Користи се на %u УРЛ-у" |
1195 | msgstr[1] "Користи се на %zu УРЛ-а" | 1195 | msgstr[1] "Користи се на %u УРЛ-а" |
1196 | msgstr[2] "Користи се на %zu УРЛ-ова" | 1196 | msgstr[2] "Користи се на %u УРЛ-ова" |
1197 | 1197 | ||
1198 | msgid "prefs.plaintext.wrap" | 1198 | msgid "prefs.plaintext.wrap" |
1199 | msgstr "Прелом чистог текста:" | 1199 | msgstr "Прелом чистог текста:" |
@@ -1356,16 +1356,16 @@ msgstr "Интерлингве" | |||
1356 | #, c-format | 1356 | #, c-format |
1357 | msgid "feeds.list.counts" | 1357 | msgid "feeds.list.counts" |
1358 | msgid_plural "feeds.list.counts.n" | 1358 | msgid_plural "feeds.list.counts.n" |
1359 | msgstr[0] "Претплаћени сте на %zu фид који садржи %%s.\n" | 1359 | msgstr[0] "Претплаћени сте на %u фид који садржи %%s.\n" |
1360 | msgstr[1] "Претплаћени сте на %zu фида који садрже %%s.\n" | 1360 | msgstr[1] "Претплаћени сте на %u фида који садрже %%s.\n" |
1361 | msgstr[2] "Претплаћени сте на %zu фидова који садрже %%s.\n" | 1361 | msgstr[2] "Претплаћени сте на %u фидова који садрже %%s.\n" |
1362 | 1362 | ||
1363 | #, c-format | 1363 | #, c-format |
1364 | msgid "feeds.list.entrycount" | 1364 | msgid "feeds.list.entrycount" |
1365 | msgid_plural "feeds.list.entrycount.n" | 1365 | msgid_plural "feeds.list.entrycount.n" |
1366 | msgstr[0] "укупно %zu ставку" | 1366 | msgstr[0] "укупно %u ставку" |
1367 | msgstr[1] "укупно %zu ставке" | 1367 | msgstr[1] "укупно %u ставке" |
1368 | msgstr[2] "укупно %zu ставки" | 1368 | msgstr[2] "укупно %u ставки" |
1369 | 1369 | ||
1370 | #, c-format | 1370 | #, c-format |
1371 | msgid "minutes.ago" | 1371 | msgid "minutes.ago" |
@@ -1594,9 +1594,9 @@ msgstr "У десној картици" | |||
1594 | #, c-format | 1594 | #, c-format |
1595 | msgid "archive.summary" | 1595 | msgid "archive.summary" |
1596 | msgid_plural "archive.summary.n" | 1596 | msgid_plural "archive.summary.n" |
1597 | msgstr[0] "Ова архива садржи %zu ставку, а њена компресована величина је %.1f МБ." | 1597 | msgstr[0] "Ова архива садржи %u ставку, а њена компресована величина је %.1f МБ." |
1598 | msgstr[1] "Ова архива садржи %zu ставке, а њена компресована величина је %.1f МБ." | 1598 | msgstr[1] "Ова архива садржи %u ставке, а њена компресована величина је %.1f МБ." |
1599 | msgstr[2] "Ова архива садржи %zu ставки, а њена компресована величина је %.1f МБ." | 1599 | msgstr[2] "Ова архива садржи %u ставки, а њена компресована величина је %.1f МБ." |
1600 | 1600 | ||
1601 | msgid "archive.exit" | 1601 | msgid "archive.exit" |
1602 | msgstr "Изађи из архиве" | 1602 | msgstr "Изађи из архиве" |
@@ -1607,9 +1607,9 @@ msgstr "Овај директоријум је празан." | |||
1607 | #, c-format | 1607 | #, c-format |
1608 | msgid "dir.summary" | 1608 | msgid "dir.summary" |
1609 | msgid_plural "dir.summary.n" | 1609 | msgid_plural "dir.summary.n" |
1610 | msgstr[0] "Овај директоријум садржи %zu ставку." | 1610 | msgstr[0] "Овај директоријум садржи %u ставку." |
1611 | msgstr[1] "Овај директоријум садржи %zu ставке." | 1611 | msgstr[1] "Овај директоријум садржи %u ставке." |
1612 | msgstr[2] "Овај директоријум садржи %zu ставки." | 1612 | msgstr[2] "Овај директоријум садржи %u ставки." |
1613 | 1613 | ||
1614 | msgid "keys.tab.close.other" | 1614 | msgid "keys.tab.close.other" |
1615 | msgstr "Затварање осталих картица" | 1615 | msgstr "Затварање осталих картица" |
@@ -1996,15 +1996,15 @@ msgstr "Управљај фонтовима…" | |||
1996 | 1996 | ||
1997 | msgid "num.fonts" | 1997 | msgid "num.fonts" |
1998 | msgid_plural "num.fonts.n" | 1998 | msgid_plural "num.fonts.n" |
1999 | msgstr[0] "%zu фонт" | 1999 | msgstr[0] "%u фонт" |
2000 | msgstr[1] "%zu фонта" | 2000 | msgstr[1] "%u фонта" |
2001 | msgstr[2] "%zu фонтова" | 2001 | msgstr[2] "%u фонтова" |
2002 | 2002 | ||
2003 | msgid "num.files" | 2003 | msgid "num.files" |
2004 | msgid_plural "num.files.n" | 2004 | msgid_plural "num.files.n" |
2005 | msgstr[0] "%zu датотека" | 2005 | msgstr[0] "%u датотека" |
2006 | msgstr[1] "%zu датотеке" | 2006 | msgstr[1] "%u датотеке" |
2007 | msgstr[2] "%zu датотека" | 2007 | msgstr[2] "%u датотека" |
2008 | 2008 | ||
2009 | msgid "dlg.certwarn.title" | 2009 | msgid "dlg.certwarn.title" |
2010 | msgstr "Безбедносни проблем" | 2010 | msgstr "Безбедносни проблем" |
@@ -2163,3 +2163,9 @@ msgstr "Трајно отклонити упозорење о емулацији | |||
2163 | 2163 | ||
2164 | msgid "lang.uk" | 2164 | msgid "lang.uk" |
2165 | msgstr "Украјински" | 2165 | msgstr "Украјински" |
2166 | |||
2167 | msgid "lang.cs" | ||
2168 | msgstr "Чешки" | ||
2169 | |||
2170 | msgid "lang.hu" | ||
2171 | 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-02 23:51+0000\n" | 4 | "PO-Revision-Date: 2021-11-06 09:34+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" |
@@ -54,7 +54,7 @@ msgstr "Hz" | |||
54 | #, c-format | 54 | #, c-format |
55 | msgid "feeds.list.entrycount" | 55 | msgid "feeds.list.entrycount" |
56 | msgid_plural "feeds.list.entrycount.n" | 56 | msgid_plural "feeds.list.entrycount.n" |
57 | msgstr[0] "lipu %zu" | 57 | msgstr[0] "lipu %u" |
58 | 58 | ||
59 | msgid "feeds.list.refreshtime.now" | 59 | msgid "feeds.list.refreshtime.now" |
60 | msgstr "tenpo pini lili la lipu lukin li sin." | 60 | msgstr "tenpo pini lili la lipu lukin li sin." |
@@ -294,7 +294,7 @@ msgstr "MB/s" | |||
294 | 294 | ||
295 | msgid "num.bytes" | 295 | msgid "num.bytes" |
296 | msgid_plural "num.bytes.n" | 296 | msgid_plural "num.bytes.n" |
297 | msgstr[0] "tu suli %zu" | 297 | msgstr[0] "tu suli %u" |
298 | 298 | ||
299 | # megabytes, used as the unit after a number | 299 | # megabytes, used as the unit after a number |
300 | msgid "mb" | 300 | msgid "mb" |
@@ -400,7 +400,7 @@ msgstr "lipu ala li kepeken e ona" | |||
400 | #, c-format | 400 | #, c-format |
401 | msgid "ident.usedonurls" | 401 | msgid "ident.usedonurls" |
402 | msgid_plural "ident.usedonurls.n" | 402 | msgid_plural "ident.usedonurls.n" |
403 | msgstr[0] "lipu %zu li kepeken" | 403 | msgstr[0] "lipu %u li kepeken" |
404 | 404 | ||
405 | msgid "ident.temporary" | 405 | msgid "ident.temporary" |
406 | msgstr "nimi tawa tenpo lili" | 406 | msgstr "nimi tawa tenpo lili" |
@@ -496,7 +496,7 @@ msgid "pageinfo.domain.mismatch" | |||
496 | msgstr "nimi li sama ala" | 496 | msgstr "nimi li sama ala" |
497 | 497 | ||
498 | msgid "dlg.cert.trust" | 498 | msgid "dlg.cert.trust" |
499 | msgstr "o pona" | 499 | msgstr "o kepeken" |
500 | 500 | ||
501 | msgid "heading.save" | 501 | msgid "heading.save" |
502 | msgstr "IJO LI AWEN" | 502 | msgstr "IJO LI AWEN" |
@@ -1231,7 +1231,7 @@ msgstr[0] "nimi tawa sin %d li lon lipu ni." | |||
1231 | #, c-format | 1231 | #, c-format |
1232 | msgid "feeds.list.counts" | 1232 | msgid "feeds.list.counts" |
1233 | msgid_plural "feeds.list.counts.n" | 1233 | msgid_plural "feeds.list.counts.n" |
1234 | msgstr[0] "lipu lukin %zu li lon. ona ale li jo e %%s.\n" | 1234 | msgstr[0] "lipu lukin %u li lon. ona ale li jo e %%s.\n" |
1235 | 1235 | ||
1236 | msgid "macos.menu.bookmarks.list" | 1236 | msgid "macos.menu.bookmarks.list" |
1237 | msgstr "lipu awen ali" | 1237 | msgstr "lipu awen ali" |
@@ -1305,8 +1305,7 @@ msgstr[0] "" | |||
1305 | "%d la sitelen len pona li wile tawa weka." | 1305 | "%d la sitelen len pona li wile tawa weka." |
1306 | 1306 | ||
1307 | msgid "dlg.certwarn.different" | 1307 | msgid "dlg.certwarn.different" |
1308 | msgstr "" | 1308 | msgstr "sitelen len ni li pakala ala. taso ona li sama ala sitelen len pini." |
1309 | "sitelen len ni li pakala ala. taso ona li sama ala sitelen len pi pona lukin." | ||
1310 | 1309 | ||
1311 | msgid "dlg.certwarn.domain" | 1310 | msgid "dlg.certwarn.domain" |
1312 | msgstr "nimi pi sitelen len li ante. ken la jan lawa mun ni li pakala." | 1311 | msgstr "nimi pi sitelen len li ante. ken la jan lawa mun ni li pakala." |
@@ -1550,7 +1549,7 @@ msgstr "poki nanpa tu" | |||
1550 | #, c-format | 1549 | #, c-format |
1551 | msgid "archive.summary" | 1550 | msgid "archive.summary" |
1552 | msgid_plural "archive.summary.n" | 1551 | msgid_plural "archive.summary.n" |
1553 | msgstr[0] "ijo %zu li lon ijo ni (tu suli Meka %.1f)." | 1552 | msgstr[0] "ijo %u li lon ijo ni (tu suli Meka %.1f)." |
1554 | 1553 | ||
1555 | msgid "archive.exit" | 1554 | msgid "archive.exit" |
1556 | msgstr "o pini e ijo" | 1555 | msgstr "o pini e ijo" |
@@ -1564,7 +1563,7 @@ msgstr "poki sama" | |||
1564 | #, c-format | 1563 | #, c-format |
1565 | msgid "dir.summary" | 1564 | msgid "dir.summary" |
1566 | msgid_plural "dir.summary.n" | 1565 | msgid_plural "dir.summary.n" |
1567 | msgstr[0] "ijo %zu li lon poki ni." | 1566 | msgstr[0] "ijo %u li lon poki ni." |
1568 | 1567 | ||
1569 | msgid "keys.tab.close.other" | 1568 | msgid "keys.tab.close.other" |
1570 | msgstr "o pini e poki ante" | 1569 | msgstr "o pini e poki ante" |
@@ -1885,11 +1884,11 @@ msgstr "o ante e sitelen…" | |||
1885 | 1884 | ||
1886 | msgid "num.files" | 1885 | msgid "num.files" |
1887 | msgid_plural "num.files.n" | 1886 | msgid_plural "num.files.n" |
1888 | msgstr[0] "ijo %zu" | 1887 | msgstr[0] "ijo %u" |
1889 | 1888 | ||
1890 | msgid "num.fonts" | 1889 | msgid "num.fonts" |
1891 | msgid_plural "num.fonts.n" | 1890 | msgid_plural "num.fonts.n" |
1892 | msgstr[0] "sitelen %zu" | 1891 | msgstr[0] "sitelen %u" |
1893 | 1892 | ||
1894 | msgid "dlg.certwarn.title" | 1893 | msgid "dlg.certwarn.title" |
1895 | msgstr "pakala len suli" | 1894 | msgstr "pakala len suli" |
@@ -2018,3 +2017,34 @@ msgstr "o pali kepeken nasin nimi" | |||
2018 | 2017 | ||
2019 | msgid "bookmark.export.saving" | 2018 | msgid "bookmark.export.saving" |
2020 | msgstr "" | 2019 | msgstr "" |
2020 | "sina wile pana e lipu awen la o awen e lipu ni. sina ken kama sona e nimi " | ||
2021 | "tawa lon lipu ni kin." | ||
2022 | |||
2023 | msgid "bookmark.export.format.folders" | ||
2024 | msgstr "sitelen suli pi nanpa 2/3 li sama poki." | ||
2025 | |||
2026 | msgid "bookmark.export.format.tags" | ||
2027 | msgstr "sitelen suli pi nanpa 2 li sama nimi lili." | ||
2028 | |||
2029 | msgid "lang.cs" | ||
2030 | msgstr "toki Seki" | ||
2031 | |||
2032 | msgid "lang.uk" | ||
2033 | msgstr "toki Ukawina" | ||
2034 | |||
2035 | msgid "bookmark.export.format.otherlines" | ||
2036 | msgstr "" | ||
2037 | "linja kulupu en linja toki li jo e sona namako pi lipu awen sewi. ilo " | ||
2038 | "Lakelan li lukin ala e linja sitelen en sitelen namako tan ni: ona li jo e " | ||
2039 | "toki lili." | ||
2040 | |||
2041 | msgid "error.certverify.msg" | ||
2042 | msgstr "" | ||
2043 | "mi pakala toki tawa ilo pana tan ni: sitelen len ona li sama ala sitelen len " | ||
2044 | "pini. o kama sona e ni: jan lawa mun li toki ala toki e ante pi sitelen len? " | ||
2045 | "ante la jan ike li ken lukin sama ilo pana.\n" | ||
2046 | "\n" | ||
2047 | "sina wile lukin e lipu kepeken len ni la o open e ijo \"sona lipu\"." | ||
2048 | |||
2049 | msgid "lang.hu" | ||
2050 | msgstr "toki Mosijo" | ||
@@ -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-02 23:51+0000\n" | 4 | "PO-Revision-Date: 2021-11-10 04:50+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" |
@@ -59,9 +59,9 @@ msgstr "Гц" | |||
59 | #, c-format | 59 | #, c-format |
60 | msgid "feeds.list.entrycount" | 60 | msgid "feeds.list.entrycount" |
61 | msgid_plural "feeds.list.entrycount.n" | 61 | msgid_plural "feeds.list.entrycount.n" |
62 | msgstr[0] "загалом %zu допис" | 62 | msgstr[0] "загалом %u допис" |
63 | msgstr[1] "загалом %zu дописи" | 63 | msgstr[1] "загалом %u дописи" |
64 | msgstr[2] "загалом %zu дописів" | 64 | msgstr[2] "загалом %u дописів" |
65 | 65 | ||
66 | #, c-format | 66 | #, c-format |
67 | msgid "feeds.list.refreshtime" | 67 | msgid "feeds.list.refreshtime" |
@@ -310,9 +310,9 @@ msgstr "МБ/с" | |||
310 | 310 | ||
311 | msgid "num.bytes" | 311 | msgid "num.bytes" |
312 | msgid_plural "num.bytes.n" | 312 | msgid_plural "num.bytes.n" |
313 | msgstr[0] "%zu байт" | 313 | msgstr[0] "%u байт" |
314 | msgstr[1] "%zu байти" | 314 | msgstr[1] "%u байти" |
315 | msgstr[2] "%zu байтів" | 315 | msgstr[2] "%u байтів" |
316 | 316 | ||
317 | # strftime() formatted | 317 | # strftime() formatted |
318 | #, c-format | 318 | #, c-format |
@@ -368,9 +368,9 @@ msgstr "Записи стрічки новин" | |||
368 | #, c-format | 368 | #, c-format |
369 | msgid "feeds.list.counts" | 369 | msgid "feeds.list.counts" |
370 | msgid_plural "feeds.list.counts.n" | 370 | msgid_plural "feeds.list.counts.n" |
371 | msgstr[0] "Ви підписані на %zu стрічку, що містить %%s.\n" | 371 | msgstr[0] "Ви підписані на %u стрічку, що містить %%s.\n" |
372 | msgstr[1] "Ви підписані на %zu стрічки, що містять %%s.\n" | 372 | msgstr[1] "Ви підписані на %u стрічки, що містять %%s.\n" |
373 | msgstr[2] "Ви підписані на %zu стрічок, що містять %%s.\n" | 373 | msgstr[2] "Ви підписані на %u стрічок, що містять %%s.\n" |
374 | 374 | ||
375 | msgid "feeds.list.refreshtime.now" | 375 | msgid "feeds.list.refreshtime.now" |
376 | msgstr "Востаннє оновлено мить тому." | 376 | msgstr "Востаннє оновлено мить тому." |
@@ -542,7 +542,7 @@ msgstr[2] "На сторінці знайдено %d нових посилань | |||
542 | #, c-format | 542 | #, c-format |
543 | msgid "dlg.import.add" | 543 | msgid "dlg.import.add" |
544 | msgid_plural "dlg.import.add.n" | 544 | msgid_plural "dlg.import.add.n" |
545 | msgstr[0] "%sДодати закладку" | 545 | msgstr[0] "%sДодати %d закладку" |
546 | msgstr[1] "%sДодати %d закладки" | 546 | msgstr[1] "%sДодати %d закладки" |
547 | msgstr[2] "%sДодати %d закладок" | 547 | msgstr[2] "%sДодати %d закладок" |
548 | 548 | ||
@@ -912,9 +912,9 @@ msgstr "Використовується на цій сторінці" | |||
912 | #, c-format | 912 | #, c-format |
913 | msgid "ident.usedonurls" | 913 | msgid "ident.usedonurls" |
914 | msgid_plural "ident.usedonurls.n" | 914 | msgid_plural "ident.usedonurls.n" |
915 | msgstr[0] "Використовується на %zu URL" | 915 | msgstr[0] "Використовується на %u URL" |
916 | msgstr[1] "Використовується на %zu URL" | 916 | msgstr[1] "Використовується на %u URL" |
917 | msgstr[2] "Використовується на %zu URL" | 917 | msgstr[2] "Використовується на %u URL" |
918 | 918 | ||
919 | msgid "ident.stopuse" | 919 | msgid "ident.stopuse" |
920 | msgstr "Припинити використання на цій сторінці" | 920 | msgstr "Припинити використання на цій сторінці" |
@@ -1580,9 +1580,9 @@ msgstr "Gemini-проксі:" | |||
1580 | #, c-format | 1580 | #, c-format |
1581 | msgid "archive.summary" | 1581 | msgid "archive.summary" |
1582 | msgid_plural "archive.summary.n" | 1582 | msgid_plural "archive.summary.n" |
1583 | msgstr[0] "Архів містить %zu елемент, а його стиснутий розмір %.1f МБ." | 1583 | msgstr[0] "Архів містить %u елемент, а його стиснутий розмір %.1f МБ." |
1584 | msgstr[1] "Архів містить %zu елементи, а його стиснутий розмір %.1f МБ." | 1584 | msgstr[1] "Архів містить %u елементи, а його стиснутий розмір %.1f МБ." |
1585 | msgstr[2] "Архів містить %zu елементів, а його стиснутий розмір %.1f МБ." | 1585 | msgstr[2] "Архів містить %u елементів, а його стиснутий розмір %.1f МБ." |
1586 | 1586 | ||
1587 | msgid "keys.scroll.down" | 1587 | msgid "keys.scroll.down" |
1588 | msgstr "Прокрутити донизу" | 1588 | msgstr "Прокрутити донизу" |
@@ -1724,9 +1724,9 @@ msgstr "Цей каталог порожній." | |||
1724 | #, c-format | 1724 | #, c-format |
1725 | msgid "dir.summary" | 1725 | msgid "dir.summary" |
1726 | msgid_plural "dir.summary.n" | 1726 | msgid_plural "dir.summary.n" |
1727 | msgstr[0] "Каталог містить %zu об'єкт." | 1727 | msgstr[0] "Каталог містить %u об'єкт." |
1728 | msgstr[1] "Каталог містить %zu об'єкти." | 1728 | msgstr[1] "Каталог містить %u об'єкти." |
1729 | msgstr[2] "Каталог містить %zu об'єктів." | 1729 | msgstr[2] "Каталог містить %u об'єктів." |
1730 | 1730 | ||
1731 | msgid "keys.top" | 1731 | msgid "keys.top" |
1732 | msgstr "На початок" | 1732 | msgstr "На початок" |
@@ -1996,15 +1996,15 @@ msgstr "Керування шрифтами…" | |||
1996 | 1996 | ||
1997 | msgid "num.files" | 1997 | msgid "num.files" |
1998 | msgid_plural "num.files.n" | 1998 | msgid_plural "num.files.n" |
1999 | msgstr[0] "%zu файл" | 1999 | msgstr[0] "%u файл" |
2000 | msgstr[1] "%zu файли" | 2000 | msgstr[1] "%u файли" |
2001 | msgstr[2] "%zu файлів" | 2001 | msgstr[2] "%u файлів" |
2002 | 2002 | ||
2003 | msgid "num.fonts" | 2003 | msgid "num.fonts" |
2004 | msgid_plural "num.fonts.n" | 2004 | msgid_plural "num.fonts.n" |
2005 | msgstr[0] "%zu шрифт" | 2005 | msgstr[0] "%u шрифт" |
2006 | msgstr[1] "%zu шрифти" | 2006 | msgstr[1] "%u шрифти" |
2007 | msgstr[2] "%zu шрифтів" | 2007 | msgstr[2] "%u шрифтів" |
2008 | 2008 | ||
2009 | msgid "dlg.certwarn.title" | 2009 | msgid "dlg.certwarn.title" |
2010 | msgstr "Проблема з сертифікатом безпеки" | 2010 | msgstr "Проблема з сертифікатом безпеки" |
@@ -2144,3 +2144,9 @@ msgstr "" | |||
2144 | 2144 | ||
2145 | msgid "lang.uk" | 2145 | msgid "lang.uk" |
2146 | msgstr "Українська" | 2146 | msgstr "Українська" |
2147 | |||
2148 | msgid "lang.cs" | ||
2149 | msgstr "Чеська" | ||
2150 | |||
2151 | msgid "lang.hu" | ||
2152 | msgstr "Угорська" | ||
diff --git a/res/about/version.gmi b/res/about/version.gmi index d179c821..fb66b793 100644 --- a/res/about/version.gmi +++ b/res/about/version.gmi | |||
@@ -6,9 +6,19 @@ | |||
6 | ``` | 6 | ``` |
7 | # Release notes | 7 | # Release notes |
8 | 8 | ||
9 | ## 1.8.2 | ||
10 | * Fixed encoding of `+` characters in URLs as per RFC 3986. | ||
11 | * Fixed crash when fontpack.ini specifies a file that cannot be found. | ||
12 | * Fixed incorrect title of some error messages (was showing response meta info). | ||
13 | * Fixed ambiguous font dropdown menu items if some fonts have the same name. Now the unique font ID will be included in these cases. | ||
14 | * Made it possible to manually trust a certificate whose subject doesn't match domain name. | ||
15 | * Updated UI translations. | ||
16 | |||
9 | ## 1.8.1 | 17 | ## 1.8.1 |
18 | * Added UI translations: Hungarian, Czech. | ||
10 | * Added the `zip` utility as a build requirement. It is used for making fontpacks. | 19 | * Added the `zip` utility as a build requirement. It is used for making fontpacks. |
11 | * Fixed build failure with the simple text renderer, i.e., when HarfBuzz is disabled. | 20 | * Fixed build failure with the simple text renderer, i.e., when HarfBuzz is disabled. |
21 | * Fixed issues scrolling tall popup menus (e.g., UI language selection). | ||
12 | * Fixed a line spacing artifact in long headings. With some fonts, the lines were clipping each other so the spacing was restored to normal. | 22 | * Fixed a line spacing artifact in long headings. With some fonts, the lines were clipping each other so the spacing was restored to normal. |
13 | * Fixed a socket I/O issue that caused received data to be ignored when the peer closed the connection prematurely. | 23 | * Fixed a socket I/O issue that caused received data to be ignored when the peer closed the connection prematurely. |
14 | * macOS: Tab close buttons are on the left side (platform UI convention). | 24 | * macOS: Tab close buttons are on the left side (platform UI convention). |
diff --git a/res/fi.skyjake.Lagrange.appdata.xml b/res/fi.skyjake.Lagrange.appdata.xml index 02c2ec02..7cb12f2e 100644 --- a/res/fi.skyjake.Lagrange.appdata.xml +++ b/res/fi.skyjake.Lagrange.appdata.xml | |||
@@ -45,6 +45,56 @@ | |||
45 | <update_contact>jaakko.keranen@iki.fi</update_contact> | 45 | <update_contact>jaakko.keranen@iki.fi</update_contact> |
46 | 46 | ||
47 | <releases> | 47 | <releases> |
48 | <release version="1.8.2" date="2021-11-13"> | ||
49 | <description> | ||
50 | <p>Version 1.8 adds a customizable font library and improves warning | ||
51 | and errors messages. The bundled hardcoded fonts have been | ||
52 | removed, and font configuration is now more flexible. Tabs have | ||
53 | close buttons that appear on mouse hover.</p> | ||
54 | <p>Changes in v1.8.2:</p> | ||
55 | <ul> | ||
56 | <li>Fixed encoding of `+` characters in URLs as per | ||
57 | RFC 3986.</li> | ||
58 | <li>Fixed crash when fontpack.ini specifies a file that cannot | ||
59 | be found.</li> | ||
60 | <li>Fixed incorrect title of some error messages (was showing | ||
61 | response meta info).</li> | ||
62 | <li>Fixed ambiguous font dropdown menu items if some fonts have | ||
63 | the same name. Now the unique font ID will be included in | ||
64 | these cases.</li> | ||
65 | <li>Made it possible to manually trust a certificate whose | ||
66 | subject doesn't match domain name.</li> | ||
67 | <li>Updated UI translations.</li> | ||
68 | </ul> | ||
69 | <p>The full release notes can be viewed inside the app by opening | ||
70 | the "about:version" page.</p> | ||
71 | </description> | ||
72 | <url>https://github.com/skyjake/lagrange/releases/tag/v1.8.2</url> | ||
73 | </release> | ||
74 | <release version="1.8.1" date="2021-11-06"> | ||
75 | <description> | ||
76 | <p>Version 1.8 adds a customizable font library and improves warning | ||
77 | and errors messages. The bundled hardcoded fonts have been | ||
78 | removed, and font configuration is now more flexible. Tabs have | ||
79 | close buttons that appear on mouse hover.</p> | ||
80 | <p>Changes in v1.8.1:</p> | ||
81 | <ul> | ||
82 | <li>Added UI translations: Hungarian, Czech.</li> | ||
83 | <li>Fixed issues scrolling tall popup menus (e.g., UI language | ||
84 | selection).</li> | ||
85 | <li>Fixed a line spacing artifact in long headings. With some | ||
86 | fonts, the lines were clipping each other so the spacing was | ||
87 | restored to normal.</li> | ||
88 | <li>Fixed a socket I/O issue that caused received data to be | ||
89 | ignored when the peer closed the connection prematurely.</li> | ||
90 | <li>Gopher: Recognize both LF and CRLF line endings in page | ||
91 | content.</li> | ||
92 | </ul> | ||
93 | <p>The full release notes can be viewed inside the app by opening | ||
94 | the "about:version" page.</p> | ||
95 | </description> | ||
96 | <url>https://github.com/skyjake/lagrange/releases/tag/v1.8.1</url> | ||
97 | </release> | ||
48 | <release version="1.8" date="2021-10-30"> | 98 | <release version="1.8" date="2021-10-30"> |
49 | <description> | 99 | <description> |
50 | <p>Version 1.8 adds a customizable font library and improves warning | 100 | <p>Version 1.8 adds a customizable font library and improves warning |
diff --git a/res/lang/cs.bin b/res/lang/cs.bin new file mode 100644 index 00000000..d0dcabcd --- /dev/null +++ b/res/lang/cs.bin | |||
Binary files differ | |||
diff --git a/res/lang/de.bin b/res/lang/de.bin index ab8b61e9..e3ea2835 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 f50c59e4..63a9d6c7 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 8f7415e1..a69a9f3f 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 fa58e37f..edd37672 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 7b7be4b6..ffb53cba 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 ea724c52..fc83470b 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 163488b7..bda6f4f6 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 fbd94fb4..23d9e952 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 104a1134..1470aea2 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 94d6264a..9c4ba6b5 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 ccf39a78..19687852 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 5cb76e7e..b501166c 100644 --- a/res/lang/isv.bin +++ b/res/lang/isv.bin | |||
Binary files differ | |||
diff --git a/res/lang/pl.bin b/res/lang/pl.bin index b2ac897c..f44d90fc 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 290c101f..4febb613 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 1f8f2817..402ab526 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 dac8a99f..12cc399f 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 b66ff147..9e36f8b0 100644 --- a/res/lang/tok.bin +++ b/res/lang/tok.bin | |||
Binary files differ | |||
diff --git a/res/lang/uk.bin b/res/lang/uk.bin index dc68bb4a..9e19b644 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 bd503eef..7a59c620 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 c4dc5896..76ac592a 100644 --- a/res/lang/zh_Hant.bin +++ b/res/lang/zh_Hant.bin | |||
Binary files differ | |||
@@ -2625,7 +2625,11 @@ iBool handleCommand_App(const char *cmd) { | |||
2625 | return iTrue; | 2625 | return iTrue; |
2626 | } | 2626 | } |
2627 | else if (equal_Command(cmd, "open")) { | 2627 | else if (equal_Command(cmd, "open")) { |
2628 | iString *url = collectNewCStr_String(suffixPtr_Command(cmd, "url")); | 2628 | const char *urlArg = suffixPtr_Command(cmd, "url"); |
2629 | if (!urlArg) { | ||
2630 | return iTrue; /* invalid command */ | ||
2631 | } | ||
2632 | iString *url = collectNewCStr_String(urlArg); | ||
2629 | const iBool noProxy = argLabel_Command(cmd, "noproxy") != 0; | 2633 | const iBool noProxy = argLabel_Command(cmd, "noproxy") != 0; |
2630 | const iBool fromSidebar = argLabel_Command(cmd, "fromsidebar") != 0; | 2634 | const iBool fromSidebar = argLabel_Command(cmd, "fromsidebar") != 0; |
2631 | iUrl parts; | 2635 | iUrl parts; |
diff --git a/src/fontpack.c b/src/fontpack.c index 215469b3..79f35526 100644 --- a/src/fontpack.c +++ b/src/fontpack.c | |||
@@ -559,6 +559,21 @@ static void sortSpecs_Fonts_(iFonts *d) { | |||
559 | sort_Array(&d->specOrder, cmpPriority_FontSpecPtr_); | 559 | sort_Array(&d->specOrder, cmpPriority_FontSpecPtr_); |
560 | } | 560 | } |
561 | 561 | ||
562 | static void disambiguateSpecs_Fonts_(iFonts *d) { | ||
563 | /* Names of specs with the same human-readable label are augmented with the font ID. */ | ||
564 | const size_t numSpecs = size_PtrArray(&d->specOrder); | ||
565 | for (size_t i = 0; i < numSpecs; i++) { | ||
566 | iFontSpec *spec1 = at_PtrArray(&d->specOrder, i); | ||
567 | for (size_t j = i + 1; j < numSpecs; j++) { | ||
568 | iFontSpec *spec2 = at_PtrArray(&d->specOrder, j); | ||
569 | if (equalCase_String(&spec1->name, &spec2->name)) { | ||
570 | appendFormat_String(&spec1->name, " [%s]", cstr_String(&spec1->id)); | ||
571 | appendFormat_String(&spec2->name, " [%s]", cstr_String(&spec2->id)); | ||
572 | } | ||
573 | } | ||
574 | } | ||
575 | } | ||
576 | |||
562 | static const iString *userFontsDirectory_Fonts_(const iFonts *d) { | 577 | static const iString *userFontsDirectory_Fonts_(const iFonts *d) { |
563 | return collect_String(concatCStr_Path(&d->userDir, "fonts")); | 578 | return collect_String(concatCStr_Path(&d->userDir, "fonts")); |
564 | } | 579 | } |
@@ -683,8 +698,12 @@ void init_Fonts(const char *userDir) { | |||
683 | pushBack_PtrArray(&d->packs, pack); | 698 | pushBack_PtrArray(&d->packs, pack); |
684 | } | 699 | } |
685 | } | 700 | } |
686 | } | 701 | } |
687 | sortSpecs_Fonts_(d); | 702 | sortSpecs_Fonts_(d); |
703 | disambiguateSpecs_Fonts_(d); | ||
704 | #if !defined (NDEBUG) | ||
705 | printf("[FontPack] %zu fonts available\n", size_Array(&d->specOrder)); | ||
706 | #endif | ||
688 | } | 707 | } |
689 | 708 | ||
690 | void deinit_Fonts(void) { | 709 | void deinit_Fonts(void) { |
diff --git a/src/gmcerts.c b/src/gmcerts.c index 9073f2e7..36fd7d55 100644 --- a/src/gmcerts.c +++ b/src/gmcerts.c | |||
@@ -457,10 +457,8 @@ iBool checkTrust_GmCerts(iGmCerts *d, iRangecc domain, uint16_t port, const iTls | |||
457 | return iFalse; | 457 | return iFalse; |
458 | } | 458 | } |
459 | /* We trust CA verification implicitly. */ | 459 | /* We trust CA verification implicitly. */ |
460 | const iBool isCATrusted = (verify_TlsCertificate(cert) == authority_TlsCertificateVerifyStatus); | 460 | const iBool isCATrusted = (verify_TlsCertificate(cert) == authority_TlsCertificateVerifyStatus); |
461 | if (!verifyDomain_GmCerts(cert, domain)) { | 461 | const iBool isDomainValid = verifyDomain_GmCerts(cert, domain); |
462 | return iFalse; | ||
463 | } | ||
464 | /* TODO: Could call setTrusted_GmCerts() instead of duplicating the trust-setting. */ | 462 | /* TODO: Could call setTrusted_GmCerts() instead of duplicating the trust-setting. */ |
465 | /* Good certificate. If not already trusted, add it now. */ | 463 | /* Good certificate. If not already trusted, add it now. */ |
466 | iDate until; | 464 | iDate until; |
@@ -470,7 +468,7 @@ iBool checkTrust_GmCerts(iGmCerts *d, iRangecc domain, uint16_t port, const iTls | |||
470 | init_String(&key); | 468 | init_String(&key); |
471 | makeTrustKey_(domain, port, &key); | 469 | makeTrustKey_(domain, port, &key); |
472 | lock_Mutex(d->mtx); | 470 | lock_Mutex(d->mtx); |
473 | iBool ok = !isExpired_TlsCertificate(cert); | 471 | iBool ok = isDomainValid && !isExpired_TlsCertificate(cert); |
474 | iTrustEntry *trust = value_StringHash(d->trusted, &key); | 472 | iTrustEntry *trust = value_StringHash(d->trusted, &key); |
475 | if (trust) { | 473 | if (trust) { |
476 | /* We already have it, check if it matches the one we trust for this domain (if it's | 474 | /* We already have it, check if it matches the one we trust for this domain (if it's |
diff --git a/src/gmutil.c b/src/gmutil.c index bc42690c..70a3608e 100644 --- a/src/gmutil.c +++ b/src/gmutil.c | |||
@@ -662,14 +662,14 @@ const iString *canonicalUrl_String(const iString *d) { | |||
662 | /* This is done separately to avoid the copy if %3A is not present; it's rare. */ | 662 | /* This is done separately to avoid the copy if %3A is not present; it's rare. */ |
663 | canon = copy_String(d); | 663 | canon = copy_String(d); |
664 | urlDecodePath_String(canon); | 664 | urlDecodePath_String(canon); |
665 | iString *dec = maybeUrlDecodeExclude_String(canon, "%/?:;#&= "); /* decode everything else in all parts */ | 665 | iString *dec = maybeUrlDecodeExclude_String(canon, "%/?:;#&+= "); /* decode everything else in all parts */ |
666 | if (dec) { | 666 | if (dec) { |
667 | set_String(canon, dec); | 667 | set_String(canon, dec); |
668 | delete_String(dec); | 668 | delete_String(dec); |
669 | } | 669 | } |
670 | } | 670 | } |
671 | else { | 671 | else { |
672 | canon = maybeUrlDecodeExclude_String(d, "%/?:;#&= "); | 672 | canon = maybeUrlDecodeExclude_String(d, "%/?:;#&+= "); |
673 | } | 673 | } |
674 | /* `canon` may now be NULL if nothing was decoded. */ | 674 | /* `canon` may now be NULL if nothing was decoded. */ |
675 | if (indexOfCStr_String(canon ? canon : d, " ") != iInvalidPos || | 675 | if (indexOfCStr_String(canon ? canon : d, " ") != iInvalidPos || |
@@ -88,6 +88,7 @@ static void load_Lang_(iLang *d, const char *id) { | |||
88 | iUnused(id); | 88 | iUnused(id); |
89 | const iBlock *data = equal_CStr(id, "fi") ? &blobFi_Resources | 89 | const iBlock *data = equal_CStr(id, "fi") ? &blobFi_Resources |
90 | : equal_CStr(id, "fr") ? &blobFr_Resources | 90 | : equal_CStr(id, "fr") ? &blobFr_Resources |
91 | : equal_CStr(id, "cs") ? &blobCs_Resources | ||
91 | : equal_CStr(id, "ru") ? &blobRu_Resources | 92 | : equal_CStr(id, "ru") ? &blobRu_Resources |
92 | : equal_CStr(id, "eo") ? &blobEo_Resources | 93 | : equal_CStr(id, "eo") ? &blobEo_Resources |
93 | : equal_CStr(id, "es") ? &blobEs_Resources | 94 | : equal_CStr(id, "es") ? &blobEs_Resources |
@@ -112,7 +113,7 @@ static void load_Lang_(iLang *d, const char *id) { | |||
112 | else if (data == &blobIsv_Resources) { | 113 | else if (data == &blobIsv_Resources) { |
113 | d->pluralType = oneTwoMany_PluralType; | 114 | d->pluralType = oneTwoMany_PluralType; |
114 | } | 115 | } |
115 | else if (data == &blobSk_Resources) { | 116 | else if (data == &blobCs_Resources || data == &blobSk_Resources) { |
116 | d->pluralType = oneFewMany_PluralType; | 117 | d->pluralType = oneFewMany_PluralType; |
117 | } | 118 | } |
118 | else if (data == &blobPl_Resources) { | 119 | else if (data == &blobPl_Resources) { |
diff --git a/src/ui/documentwidget.c b/src/ui/documentwidget.c index 8c24d4a9..f2553632 100644 --- a/src/ui/documentwidget.c +++ b/src/ui/documentwidget.c | |||
@@ -1107,12 +1107,11 @@ static void documentWasChanged_DocumentWidget_(iDocumentWidget *d) { | |||
1107 | 1107 | ||
1108 | void setSource_DocumentWidget(iDocumentWidget *d, const iString *source) { | 1108 | void setSource_DocumentWidget(iDocumentWidget *d, const iString *source) { |
1109 | setUrl_GmDocument(d->doc, d->mod.url); | 1109 | setUrl_GmDocument(d->doc, d->mod.url); |
1110 | const int docWidth = documentWidth_DocumentWidget_(d); | 1110 | const int docWidth = documentWidth_DocumentWidget_(d); |
1111 | const int outsideMargin = (width_Widget(d) - docWidth) / 2; | ||
1112 | setSource_GmDocument(d->doc, | 1111 | setSource_GmDocument(d->doc, |
1113 | source, | 1112 | source, |
1114 | docWidth, | 1113 | docWidth, |
1115 | outsideMargin, | 1114 | width_Widget(d), |
1116 | isFinished_GmRequest(d->request) ? final_GmDocumentUpdate | 1115 | isFinished_GmRequest(d->request) ? final_GmDocumentUpdate |
1117 | : partial_GmDocumentUpdate); | 1116 | : partial_GmDocumentUpdate); |
1118 | setWidth_Banner(d->banner, docWidth); | 1117 | setWidth_Banner(d->banner, docWidth); |
@@ -1196,6 +1195,7 @@ static void showErrorPage_DocumentWidget_(iDocumentWidget *d, enum iGmStatusCode | |||
1196 | // iBool useBanner = iTrue; | 1195 | // iBool useBanner = iTrue; |
1197 | destroy_Widget(d->footerButtons); | 1196 | destroy_Widget(d->footerButtons); |
1198 | d->footerButtons = NULL; | 1197 | d->footerButtons = NULL; |
1198 | const iString *serverErrorMsg = NULL; | ||
1199 | if (meta) { | 1199 | if (meta) { |
1200 | switch (code) { | 1200 | switch (code) { |
1201 | case schemeChangeRedirect_GmStatusCode: | 1201 | case schemeChangeRedirect_GmStatusCode: |
@@ -1254,12 +1254,13 @@ static void showErrorPage_DocumentWidget_(iDocumentWidget *d, enum iGmStatusCode | |||
1254 | "document.save" }); | 1254 | "document.save" }); |
1255 | makeFooterButtons_DocumentWidget_(d, data_Array(&items), size_Array(&items)); | 1255 | makeFooterButtons_DocumentWidget_(d, data_Array(&items), size_Array(&items)); |
1256 | deinit_Array(&items); | 1256 | deinit_Array(&items); |
1257 | serverErrorMsg = collectNewFormat_String("%s (%s)", msg->title, cstr_String(meta)); | ||
1257 | break; | 1258 | break; |
1258 | } | 1259 | } |
1259 | default: | 1260 | default: |
1260 | // if (!isEmpty_String(meta)) { | 1261 | if (!isEmpty_String(meta)) { |
1261 | // appendFormat_String(src, "\n\n${error.server.msg}\n> %s", cstr_String(meta)); | 1262 | serverErrorMsg = meta; |
1262 | // } | 1263 | } |
1263 | break; | 1264 | break; |
1264 | } | 1265 | } |
1265 | } | 1266 | } |
@@ -1277,7 +1278,7 @@ static void showErrorPage_DocumentWidget_(iDocumentWidget *d, enum iGmStatusCode | |||
1277 | replaceDocument_DocumentWidget_(d, errorDoc); | 1278 | replaceDocument_DocumentWidget_(d, errorDoc); |
1278 | iRelease(errorDoc); | 1279 | iRelease(errorDoc); |
1279 | clear_Banner(d->banner); | 1280 | clear_Banner(d->banner); |
1280 | add_Banner(d->banner, error_BannerType, code, meta, NULL); | 1281 | add_Banner(d->banner, error_BannerType, code, serverErrorMsg, NULL); |
1281 | d->state = ready_RequestState; | 1282 | d->state = ready_RequestState; |
1282 | setSource_DocumentWidget(d, src); | 1283 | setSource_DocumentWidget(d, src); |
1283 | updateTheme_DocumentWidget_(d); | 1284 | updateTheme_DocumentWidget_(d); |
@@ -2081,6 +2082,13 @@ static void inputQueryValidator_(iInputWidget *input, void *context) { | |||
2081 | arrange_Widget(findChild_Widget(dlg, "dialogbuttons")); | 2082 | arrange_Widget(findChild_Widget(dlg, "dialogbuttons")); |
2082 | } | 2083 | } |
2083 | 2084 | ||
2085 | static const char *humanReadableStatusCode_(enum iGmStatusCode code) { | ||
2086 | if (code <= 0) { | ||
2087 | return ""; | ||
2088 | } | ||
2089 | return format_CStr("%d ", code); | ||
2090 | } | ||
2091 | |||
2084 | static void checkResponse_DocumentWidget_(iDocumentWidget *d) { | 2092 | static void checkResponse_DocumentWidget_(iDocumentWidget *d) { |
2085 | if (!d->request) { | 2093 | if (!d->request) { |
2086 | return; | 2094 | return; |
@@ -2105,8 +2113,8 @@ static void checkResponse_DocumentWidget_(iDocumentWidget *d) { | |||
2105 | init_Anim(&d->sideOpacity, 0); | 2113 | init_Anim(&d->sideOpacity, 0); |
2106 | init_Anim(&d->altTextOpacity, 0); | 2114 | init_Anim(&d->altTextOpacity, 0); |
2107 | format_String(&d->sourceHeader, | 2115 | format_String(&d->sourceHeader, |
2108 | "%d %s", | 2116 | "%s%s", |
2109 | statusCode, | 2117 | humanReadableStatusCode_(statusCode), |
2110 | isEmpty_String(&resp->meta) && !isSuccess_GmStatusCode(statusCode) | 2118 | isEmpty_String(&resp->meta) && !isSuccess_GmStatusCode(statusCode) |
2111 | ? get_GmError(statusCode)->title | 2119 | ? get_GmError(statusCode)->title |
2112 | : cstr_String(&resp->meta)); | 2120 | : cstr_String(&resp->meta)); |
@@ -2835,9 +2843,10 @@ static iBool handleCommand_DocumentWidget_(iDocumentWidget *d, const char *cmd) | |||
2835 | const char *unchecked = red_ColorEscape "\u2610"; | 2843 | const char *unchecked = red_ColorEscape "\u2610"; |
2836 | const char *checked = green_ColorEscape "\u2611"; | 2844 | const char *checked = green_ColorEscape "\u2611"; |
2837 | const iBool haveFingerprint = (d->certFlags & haveFingerprint_GmCertFlag) != 0; | 2845 | const iBool haveFingerprint = (d->certFlags & haveFingerprint_GmCertFlag) != 0; |
2838 | const iBool canTrust = | 2846 | const int requiredForTrust = (available_GmCertFlag | haveFingerprint_GmCertFlag | |
2839 | (d->certFlags == (available_GmCertFlag | haveFingerprint_GmCertFlag | | 2847 | timeVerified_GmCertFlag); |
2840 | timeVerified_GmCertFlag | domainVerified_GmCertFlag)); | 2848 | const iBool canTrust = ~d->certFlags & trusted_GmCertFlag && |
2849 | ((d->certFlags & requiredForTrust) == requiredForTrust); | ||
2841 | const iRecentUrl *recent = findUrl_History(d->mod.history, d->mod.url); | 2850 | const iRecentUrl *recent = findUrl_History(d->mod.history, d->mod.url); |
2842 | const iString *meta = &d->sourceMime; | 2851 | const iString *meta = &d->sourceMime; |
2843 | if (recent && recent->cachedResponse) { | 2852 | if (recent && recent->cachedResponse) { |
@@ -3030,8 +3039,8 @@ static iBool handleCommand_DocumentWidget_(iDocumentWidget *d, const char *cmd) | |||
3030 | if (!isSuccess_GmStatusCode(status_GmRequest(d->request))) { | 3039 | if (!isSuccess_GmStatusCode(status_GmRequest(d->request))) { |
3031 | /* TODO: Why is this here? Can it be removed? */ | 3040 | /* TODO: Why is this here? Can it be removed? */ |
3032 | format_String(&d->sourceHeader, | 3041 | format_String(&d->sourceHeader, |
3033 | "%d %s", | 3042 | "%s%s", |
3034 | status_GmRequest(d->request), | 3043 | humanReadableStatusCode_(status_GmRequest(d->request)), |
3035 | cstr_String(meta_GmRequest(d->request))); | 3044 | cstr_String(meta_GmRequest(d->request))); |
3036 | } | 3045 | } |
3037 | updateFetchProgress_DocumentWidget_(d); | 3046 | updateFetchProgress_DocumentWidget_(d); |
diff --git a/src/ui/lookupwidget.c b/src/ui/lookupwidget.c index e57a5fdc..da0113ce 100644 --- a/src/ui/lookupwidget.c +++ b/src/ui/lookupwidget.c | |||
@@ -665,8 +665,9 @@ static iBool processEvent_LookupWidget_(iLookupWidget *d, const SDL_Event *ev) { | |||
665 | (bottom_Rect(rect_Root(root)) - bottom_Rect(navBarBounds)) / 2)); | 665 | (bottom_Rect(rect_Root(root)) - bottom_Rect(navBarBounds)) / 2)); |
666 | setPos_Widget(w, windowToLocal_Widget(w, bottomLeft_Rect(bounds_Widget(url)))); | 666 | setPos_Widget(w, windowToLocal_Widget(w, bottomLeft_Rect(bounds_Widget(url)))); |
667 | #if defined (iPlatformAppleMobile) | 667 | #if defined (iPlatformAppleMobile) |
668 | /* TODO: Check this again. */ | ||
668 | /* Adjust height based on keyboard size. */ { | 669 | /* Adjust height based on keyboard size. */ { |
669 | w->rect.size.y = visibleSize_Root(root).y - top_Rect(bounds_Widget(w)); | 670 | w->rect.size.y = bottom_Rect(visibleRect_Root(root)) - top_Rect(bounds_Widget(w)); |
670 | if (deviceType_App() == phone_AppDeviceType) { | 671 | if (deviceType_App() == phone_AppDeviceType) { |
671 | float l, r; | 672 | float l, r; |
672 | safeAreaInsets_iOS(&l, NULL, &r, NULL); | 673 | safeAreaInsets_iOS(&l, NULL, &r, NULL); |
diff --git a/src/ui/root.c b/src/ui/root.c index 114ab040..4849d0c7 100644 --- a/src/ui/root.c +++ b/src/ui/root.c | |||
@@ -1532,6 +1532,35 @@ iRect safeRect_Root(const iRoot *d) { | |||
1532 | return rect; | 1532 | return rect; |
1533 | } | 1533 | } |
1534 | 1534 | ||
1535 | iInt2 visibleSize_Root(const iRoot *d) { | 1535 | iRect visibleRect_Root(const iRoot *d) { |
1536 | return addY_I2(size_Root(d), -get_MainWindow()->keyboardHeight); | 1536 | iRect visRect = rect_Root(d); |
1537 | #if defined (iPlatformAppleMobile) | ||
1538 | /* TODO: Check this on device... Maybe DisplayUsableBounds would be good here, too? */ | ||
1539 | float left, top, right, bottom; | ||
1540 | safeAreaInsets_iOS(&left, &top, &right, &bottom); | ||
1541 | visRect.pos.x = (int) left; | ||
1542 | visRect.size.x -= (int) (left + right); | ||
1543 | visRect.pos.y = (int) top; | ||
1544 | visRect.size.y -= (int) (top + bottom); | ||
1545 | #endif | ||
1546 | #if defined (iPlatformDesktop) | ||
1547 | /* Apply the usable bounds of the display. */ | ||
1548 | SDL_Rect usable; { | ||
1549 | const float ratio = d->window->pixelRatio; | ||
1550 | SDL_GetDisplayUsableBounds(SDL_GetWindowDisplayIndex(d->window->win), &usable); | ||
1551 | iInt2 winPos; | ||
1552 | SDL_GetWindowPosition(d->window->win, &winPos.x, &winPos.y); | ||
1553 | mulfv_I2(&winPos, ratio); | ||
1554 | usable.x *= ratio; | ||
1555 | usable.y *= ratio; | ||
1556 | usable.w *= ratio; | ||
1557 | usable.h *= ratio; | ||
1558 | /* Make it relative to the window. */ | ||
1559 | usable.x -= winPos.x; | ||
1560 | usable.y -= winPos.y; | ||
1561 | visRect = intersect_Rect(visRect, init_Rect(usable.x, usable.y, usable.w, usable.h)); | ||
1562 | } | ||
1563 | #endif | ||
1564 | adjustEdges_Rect(&visRect, 0, 0, -get_MainWindow()->keyboardHeight, 0); | ||
1565 | return visRect; | ||
1537 | } | 1566 | } |
diff --git a/src/ui/root.h b/src/ui/root.h index 04dd5e16..851d927d 100644 --- a/src/ui/root.h +++ b/src/ui/root.h | |||
@@ -40,6 +40,6 @@ void updateToolbarColors_Root (iRoot *); | |||
40 | iInt2 size_Root (const iRoot *); | 40 | iInt2 size_Root (const iRoot *); |
41 | iRect rect_Root (const iRoot *); | 41 | iRect rect_Root (const iRoot *); |
42 | iRect safeRect_Root (const iRoot *); | 42 | iRect safeRect_Root (const iRoot *); |
43 | iInt2 visibleSize_Root (const iRoot *); /* may be obstructed by software keyboard */ | 43 | iRect visibleRect_Root (const iRoot *); /* may be obstructed by software keyboard */ |
44 | iBool isNarrow_Root (const iRoot *); | 44 | iBool isNarrow_Root (const iRoot *); |
45 | int appIconSize_Root (void); | 45 | int appIconSize_Root (void); |
diff --git a/src/ui/text.c b/src/ui/text.c index 3805c666..91633f27 100644 --- a/src/ui/text.c +++ b/src/ui/text.c | |||
@@ -338,7 +338,7 @@ static void initFonts_Text_(iText *d) { | |||
338 | } | 338 | } |
339 | } | 339 | } |
340 | #if !defined (NDEBUG) | 340 | #if !defined (NDEBUG) |
341 | printf("[Text] %zu fonts ready\n", size_Array(&d->fonts)); | 341 | printf("[Text] %zu font variants ready\n", size_Array(&d->fonts)); |
342 | #endif | 342 | #endif |
343 | gap_Text = iRound(gap_UI * d->contentFontSize); | 343 | gap_Text = iRound(gap_UI * d->contentFontSize); |
344 | } | 344 | } |
diff --git a/src/ui/util.c b/src/ui/util.c index 5a58551b..88348ff8 100644 --- a/src/ui/util.c +++ b/src/ui/util.c | |||
@@ -1038,7 +1038,7 @@ void openMenuFlags_Widget(iWidget *d, iInt2 windowCoord, int menuOpenFlags) { | |||
1038 | iRect displayRect = zero_Rect(); | 1038 | iRect displayRect = zero_Rect(); |
1039 | for (int i = 0; i < SDL_GetNumVideoDisplays(); i++) { | 1039 | for (int i = 0; i < SDL_GetNumVideoDisplays(); i++) { |
1040 | SDL_Rect dispBounds; | 1040 | SDL_Rect dispBounds; |
1041 | SDL_GetDisplayBounds(i, &dispBounds); | 1041 | SDL_GetDisplayUsableBounds(i, &dispBounds); |
1042 | displayRect = union_Rect( | 1042 | displayRect = union_Rect( |
1043 | displayRect, init_Rect(dispBounds.x, dispBounds.y, dispBounds.w, dispBounds.h)); | 1043 | displayRect, init_Rect(dispBounds.x, dispBounds.y, dispBounds.w, dispBounds.h)); |
1044 | } | 1044 | } |
@@ -1070,7 +1070,7 @@ void openMenuFlags_Widget(iWidget *d, iInt2 windowCoord, int menuOpenFlags) { | |||
1070 | iInt2 menuPos = add_I2(winPos, | 1070 | iInt2 menuPos = add_I2(winPos, |
1071 | divf_I2(sub_I2(windowCoord, divi_I2(gap2_UI, 2)), pixelRatio)); | 1071 | divf_I2(sub_I2(windowCoord, divi_I2(gap2_UI, 2)), pixelRatio)); |
1072 | /* Check display bounds. */ { | 1072 | /* Check display bounds. */ { |
1073 | const iInt2 menuSize = divf_I2(d->rect.size, pixelRatio); | 1073 | iInt2 menuSize = divf_I2(d->rect.size, pixelRatio); |
1074 | if (menuOpenFlags & center_MenuOpenFlags) { | 1074 | if (menuOpenFlags & center_MenuOpenFlags) { |
1075 | iInt2 winSize; | 1075 | iInt2 winSize; |
1076 | SDL_GetWindowSize(sdlWin, &winSize.x, &winSize.y); | 1076 | SDL_GetWindowSize(sdlWin, &winSize.x, &winSize.y); |
@@ -2199,7 +2199,8 @@ iWidget *makeDialog_Widget(const char *id, | |||
2199 | 2199 | ||
2200 | iWidget *makePreferences_Widget(void) { | 2200 | iWidget *makePreferences_Widget(void) { |
2201 | /* Common items. */ | 2201 | /* Common items. */ |
2202 | const iMenuItem langItems[] = { { "${lang.de} - de", 0, 0, "uilang id:de" }, | 2202 | const iMenuItem langItems[] = { { "${lang.cs} - cs", 0, 0, "uilang id:cs" }, |
2203 | { "${lang.de} - de", 0, 0, "uilang id:de" }, | ||
2203 | { "${lang.en} - en", 0, 0, "uilang id:en" }, | 2204 | { "${lang.en} - en", 0, 0, "uilang id:en" }, |
2204 | { "${lang.es} - es", 0, 0, "uilang id:es" }, | 2205 | { "${lang.es} - es", 0, 0, "uilang id:es" }, |
2205 | { "${lang.es.mx} - es", 0, 0, "uilang id:es_MX" }, | 2206 | { "${lang.es.mx} - es", 0, 0, "uilang id:es_MX" }, |
diff --git a/src/ui/widget.c b/src/ui/widget.c index b509cbe2..1ab16b4f 100644 --- a/src/ui/widget.c +++ b/src/ui/widget.c | |||
@@ -1142,11 +1142,9 @@ static iBool isOverflowScrollPossible_Widget_(const iWidget *d, int delta) { | |||
1142 | return iFalse; | 1142 | return iFalse; |
1143 | } | 1143 | } |
1144 | iRect bounds = boundsWithoutVisualOffset_Widget(d); | 1144 | iRect bounds = boundsWithoutVisualOffset_Widget(d); |
1145 | const iRect winRect = adjusted_Rect(safeRect_Root(d->root), | 1145 | const iRect winRect = visibleRect_Root(d->root); |
1146 | zero_I2(), | 1146 | const int yTop = top_Rect(winRect); |
1147 | init_I2(0, -get_MainWindow()->keyboardHeight)); | 1147 | const int yBottom = bottom_Rect(winRect); |
1148 | const int yTop = top_Rect(winRect); | ||
1149 | const int yBottom = bottom_Rect(winRect); | ||
1150 | if (delta == 0) { | 1148 | if (delta == 0) { |
1151 | if (top_Rect(bounds) >= yTop && bottom_Rect(bounds) <= yBottom) { | 1149 | if (top_Rect(bounds) >= yTop && bottom_Rect(bounds) <= yBottom) { |
1152 | return iFalse; /* fits inside just fine */ | 1150 | return iFalse; /* fits inside just fine */ |
@@ -1162,11 +1160,9 @@ iBool scrollOverflow_Widget(iWidget *d, int delta) { | |||
1162 | if (!isOverflowScrollPossible_Widget_(d, delta)) { | 1160 | if (!isOverflowScrollPossible_Widget_(d, delta)) { |
1163 | return iFalse; | 1161 | return iFalse; |
1164 | } | 1162 | } |
1165 | iRect bounds = boundsWithoutVisualOffset_Widget(d); | 1163 | iRect bounds = boundsWithoutVisualOffset_Widget(d); |
1166 | const iRect winRect = adjusted_Rect(safeRect_Root(d->root), | 1164 | const iRect winRect = visibleRect_Root(d->root); |
1167 | zero_I2(), | 1165 | iRangei validPosRange = { bottom_Rect(winRect) - height_Rect(bounds), top_Rect(winRect) }; |
1168 | init_I2(0, -get_MainWindow()->keyboardHeight)); | ||
1169 | iRangei validPosRange = { bottom_Rect(winRect) - height_Rect(bounds), top_Rect(winRect) }; | ||
1170 | if (validPosRange.start > validPosRange.end) { | 1166 | if (validPosRange.start > validPosRange.end) { |
1171 | validPosRange.start = validPosRange.end; /* no room to scroll */ | 1167 | validPosRange.start = validPosRange.end; /* no room to scroll */ |
1172 | } | 1168 | } |
@@ -1244,18 +1240,26 @@ iBool processEvent_Widget(iWidget *d, const SDL_Event *ev) { | |||
1244 | /* TODO: Motion events occur frequently. Maybe it would help if these were handled | 1240 | /* TODO: Motion events occur frequently. Maybe it would help if these were handled |
1245 | via audiences that specifically register to listen for motion, to minimize the | 1241 | via audiences that specifically register to listen for motion, to minimize the |
1246 | number of widgets that need to process them. */ | 1242 | number of widgets that need to process them. */ |
1247 | const int hoverScrollLimit = 2 * lineHeight_Text(default_FontId); | 1243 | const int hoverScrollLimit = 1.5f * lineHeight_Text(default_FontId); |
1248 | float speed = 0.0f; | 1244 | float speed = 0.0f; |
1249 | if (ev->motion.y < hoverScrollLimit) { | 1245 | if (ev->motion.y < hoverScrollLimit) { |
1250 | speed = (hoverScrollLimit - ev->motion.y) / (float) hoverScrollLimit; | 1246 | speed = (hoverScrollLimit - ev->motion.y) / (float) hoverScrollLimit; |
1251 | } | 1247 | } |
1252 | else { | 1248 | else { |
1253 | const int bottomLimit = bottom_Rect(rect_Root(d->root)) - hoverScrollLimit; | 1249 | const iWindow *win = window_Widget(d); |
1254 | if (ev->motion.y > bottomLimit ) { | 1250 | SDL_Rect usable; |
1251 | SDL_GetDisplayUsableBounds(SDL_GetWindowDisplayIndex(win->win), | ||
1252 | &usable); | ||
1253 | const int bottomLimit = | ||
1254 | iMin(bottom_Rect(rect_Root(d->root)), usable.h * win->pixelRatio) - | ||
1255 | hoverScrollLimit; | ||
1256 | if (ev->motion.y > bottomLimit) { | ||
1255 | speed = -(ev->motion.y - bottomLimit) / (float) hoverScrollLimit; | 1257 | speed = -(ev->motion.y - bottomLimit) / (float) hoverScrollLimit; |
1256 | } | 1258 | } |
1257 | } | 1259 | } |
1258 | if (speed != 0.0f && isOverflowScrollPossible_Widget_(d, speed > 0 ? 1 : -1)) { | 1260 | const int dir = speed > 0 ? 1 : -1; |
1261 | if (speed != 0.0f && isOverflowScrollPossible_Widget_(d, dir)) { | ||
1262 | // speed = dir * powf(speed, 1.5f); | ||
1259 | const uint32_t nowTime = SDL_GetTicks(); | 1263 | const uint32_t nowTime = SDL_GetTicks(); |
1260 | uint32_t elapsed = nowTime - lastHoverOverflowMotionTime_; | 1264 | uint32_t elapsed = nowTime - lastHoverOverflowMotionTime_; |
1261 | if (elapsed > 100) { | 1265 | if (elapsed > 100) { |
diff --git a/src/ui/window.c b/src/ui/window.c index 8016e8ef..2f6fe430 100644 --- a/src/ui/window.c +++ b/src/ui/window.c | |||
@@ -1676,9 +1676,13 @@ iWindow *newPopup_Window(iInt2 screenPos, iWidget *rootWidget) { | |||
1676 | #if !defined (iPlatformApple) | 1676 | #if !defined (iPlatformApple) |
1677 | setForceSoftwareRender_App(iTrue); | 1677 | setForceSoftwareRender_App(iTrue); |
1678 | #endif | 1678 | #endif |
1679 | SDL_Rect usableRect; | ||
1680 | SDL_GetDisplayUsableBounds(SDL_GetWindowDisplayIndex(get_MainWindow()->base.win), | ||
1681 | &usableRect); | ||
1679 | iWindow *win = | 1682 | iWindow *win = |
1680 | new_Window(popup_WindowType, | 1683 | new_Window(popup_WindowType, |
1681 | (iRect){ screenPos, divf_I2(rootWidget->rect.size, get_Window()->pixelRatio) }, | 1684 | (iRect){ screenPos, min_I2(divf_I2(rootWidget->rect.size, get_Window()->pixelRatio), |
1685 | init_I2(usableRect.w, usableRect.h)) }, | ||
1682 | SDL_WINDOW_ALWAYS_ON_TOP | | 1686 | SDL_WINDOW_ALWAYS_ON_TOP | |
1683 | #if !defined (iPlatformAppleDesktop) | 1687 | #if !defined (iPlatformAppleDesktop) |
1684 | SDL_WINDOW_BORDERLESS | | 1688 | SDL_WINDOW_BORDERLESS | |