diff options
author | Jaakko Keränen <jaakko.keranen@iki.fi> | 2021-11-30 12:31:20 +0200 |
---|---|---|
committer | Jaakko Keränen <jaakko.keranen@iki.fi> | 2021-11-30 12:31:20 +0200 |
commit | b9c8ac50d26d5f0e7e9bafbead94b7dde11a6aaf (patch) | |
tree | 2f5e9d3aab3c54a83263d7569dad6dd35d0f826e | |
parent | 63e9a36d64b75c7cbab17ccd861f8017b8a1e136 (diff) | |
parent | 02de94c9d94e70d2c8d5e4813c578111eba0d2b2 (diff) |
Merge branch 'dev' into work/v1.10
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | po/en.po | 10 | ||||
-rw-r--r-- | po/eo.po | 9 | ||||
-rw-r--r-- | po/es.po | 7 | ||||
-rw-r--r-- | po/fi.po | 7 | ||||
-rw-r--r-- | po/fr.po | 245 | ||||
-rw-r--r-- | po/sr.po | 17 | ||||
-rw-r--r-- | po/tr.po | 6 | ||||
-rw-r--r-- | po/uk.po | 10 | ||||
-rw-r--r-- | res/about/version.gmi | 14 | ||||
-rw-r--r-- | res/lang/cs.bin | bin | 30857 -> 30899 bytes | |||
-rw-r--r-- | res/lang/de.bin | bin | 29864 -> 29906 bytes | |||
-rw-r--r-- | res/lang/en.bin | bin | 25961 -> 26003 bytes | |||
-rw-r--r-- | res/lang/eo.bin | bin | 24913 -> 24957 bytes | |||
-rw-r--r-- | res/lang/es.bin | bin | 29691 -> 29730 bytes | |||
-rw-r--r-- | res/lang/es_MX.bin | bin | 27020 -> 27062 bytes | |||
-rw-r--r-- | res/lang/fi.bin | bin | 29517 -> 29563 bytes | |||
-rw-r--r-- | res/lang/fr.bin | bin | 29901 -> 30710 bytes | |||
-rw-r--r-- | res/lang/gl.bin | bin | 28873 -> 28915 bytes | |||
-rw-r--r-- | res/lang/hu.bin | bin | 30693 -> 30735 bytes | |||
-rw-r--r-- | res/lang/ia.bin | bin | 28020 -> 28062 bytes | |||
-rw-r--r-- | res/lang/ie.bin | bin | 28608 -> 28650 bytes | |||
-rw-r--r-- | res/lang/isv.bin | bin | 24681 -> 24723 bytes | |||
-rw-r--r-- | res/lang/pl.bin | bin | 29296 -> 29338 bytes | |||
-rw-r--r-- | res/lang/ru.bin | bin | 44056 -> 44098 bytes | |||
-rw-r--r-- | res/lang/sk.bin | bin | 25017 -> 25059 bytes | |||
-rw-r--r-- | res/lang/sr.bin | bin | 43444 -> 43524 bytes | |||
-rw-r--r-- | res/lang/tok.bin | bin | 26730 -> 26772 bytes | |||
-rw-r--r-- | res/lang/tr.bin | bin | 28933 -> 28956 bytes | |||
-rw-r--r-- | res/lang/uk.bin | bin | 43401 -> 43443 bytes | |||
-rw-r--r-- | res/lang/zh_Hans.bin | bin | 24915 -> 24957 bytes | |||
-rw-r--r-- | res/lang/zh_Hant.bin | bin | 25113 -> 25155 bytes | |||
-rw-r--r-- | src/ui/documentwidget.c | 15 | ||||
-rw-r--r-- | src/ui/root.c | 7 | ||||
-rw-r--r-- | src/ui/sidebarwidget.c | 3 | ||||
-rw-r--r-- | src/ui/text.c | 4 | ||||
-rw-r--r-- | src/ui/util.c | 4 | ||||
-rw-r--r-- | src/ui/widget.c | 16 | ||||
-rw-r--r-- | src/updater.c | 3 |
40 files changed, 322 insertions, 58 deletions
@@ -5,3 +5,4 @@ build-* | |||
5 | /.vsbuild | 5 | /.vsbuild |
6 | /.vscode | 6 | /.vscode |
7 | /app | 7 | /app |
8 | *~ | ||
diff --git a/CMakeLists.txt b/CMakeLists.txt index a7799777..5bf52a22 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
@@ -18,7 +18,7 @@ | |||
18 | cmake_minimum_required (VERSION 3.9) | 18 | cmake_minimum_required (VERSION 3.9) |
19 | 19 | ||
20 | project (Lagrange | 20 | project (Lagrange |
21 | VERSION 1.9.1 | 21 | VERSION 1.9.2 |
22 | DESCRIPTION "A Beautiful Gemini Client" | 22 | DESCRIPTION "A Beautiful Gemini Client" |
23 | LANGUAGES C | 23 | LANGUAGES C |
24 | ) | 24 | ) |
@@ -409,6 +409,10 @@ msgstr "Identities" | |||
409 | msgid "sidebar.outline" | 409 | msgid "sidebar.outline" |
410 | msgstr "Outline" | 410 | msgstr "Outline" |
411 | 411 | ||
412 | # This label should be fairly short so it fits in a button in the sidebar. | ||
413 | msgid "sidebar.action.feeds.markallread" | ||
414 | msgstr "Read All" | ||
415 | |||
412 | msgid "sidebar.action.show" | 416 | msgid "sidebar.action.show" |
413 | msgstr "Show:" | 417 | msgstr "Show:" |
414 | 418 | ||
@@ -471,18 +475,15 @@ msgid_plural "num.fonts.n" | |||
471 | msgstr[0] "%u font" | 475 | msgstr[0] "%u font" |
472 | msgstr[1] "%u fonts" | 476 | msgstr[1] "%u fonts" |
473 | 477 | ||
474 | # strftime() formatted, split on two lines | 478 | # strftime() formatted. Should be split evenly on two lines with a newline character. |
475 | #, c-format | ||
476 | msgid "page.timestamp" | 479 | msgid "page.timestamp" |
477 | msgstr "Received at %I:%M %p\non %b %d, %Y" | 480 | msgstr "Received at %I:%M %p\non %b %d, %Y" |
478 | 481 | ||
479 | # strftime() formatted | 482 | # strftime() formatted |
480 | #, c-format | ||
481 | msgid "sidebar.date.thisyear" | 483 | msgid "sidebar.date.thisyear" |
482 | msgstr "%b. %d" | 484 | msgstr "%b. %d" |
483 | 485 | ||
484 | # strftime() formatted | 486 | # strftime() formatted |
485 | #, c-format | ||
486 | msgid "sidebar.date.otheryear" | 487 | msgid "sidebar.date.otheryear" |
487 | msgstr "%b. %d, %Y" | 488 | msgstr "%b. %d, %Y" |
488 | 489 | ||
@@ -613,7 +614,6 @@ msgid "ident.temporary" | |||
613 | msgstr "Temporary" | 614 | msgstr "Temporary" |
614 | 615 | ||
615 | # strftime() formatted | 616 | # strftime() formatted |
616 | #, c-format | ||
617 | msgid "ident.expiry" | 617 | msgid "ident.expiry" |
618 | msgstr "Expires %b %d, %Y" | 618 | msgstr "Expires %b %d, %Y" |
619 | 619 | ||
@@ -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-12 19:50+0000\n" | 4 | "PO-Revision-Date: 2021-11-28 23:50+0000\n" |
5 | "Last-Translator: Nikolay Korotkiy <sikmir@gmail.com>\n" | 5 | "Last-Translator: Nikolay Korotkiy <sikmir@gmail.com>\n" |
6 | "Language-Team: Esperanto <http://weblate.skyjake.fi/projects/lagrange/ui/eo/>" | 6 | "Language-Team: Esperanto <http://weblate.skyjake.fi/projects/lagrange/ui/eo/>" |
7 | "\n" | 7 | "\n" |
@@ -208,8 +208,8 @@ msgstr "Malplenigi historion" | |||
208 | 208 | ||
209 | msgid "num.bytes" | 209 | msgid "num.bytes" |
210 | msgid_plural "num.bytes.n" | 210 | msgid_plural "num.bytes.n" |
211 | msgstr[0] "%zu bajto" | 211 | msgstr[0] "%u bajto" |
212 | msgstr[1] "%zu bajtoj" | 212 | msgstr[1] "%u bajtoj" |
213 | 213 | ||
214 | msgid "feeds.refresh" | 214 | msgid "feeds.refresh" |
215 | msgstr "Reŝargi abonfluojn" | 215 | msgstr "Reŝargi abonfluojn" |
@@ -725,3 +725,6 @@ msgstr "Donalistaj eniroj" | |||
725 | # Inline download status message. | 725 | # Inline download status message. |
726 | msgid "media.download.complete" | 726 | msgid "media.download.complete" |
727 | msgstr "La ŝarĝado finita." | 727 | msgstr "La ŝarĝado finita." |
728 | |||
729 | msgid "menu.update" | ||
730 | msgstr "Kontroli ĝisdatigojn…" | ||
@@ -1,7 +1,7 @@ | |||
1 | msgid "" | 1 | msgid "" |
2 | msgstr "" | 2 | msgstr "" |
3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" | 3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" |
4 | "PO-Revision-Date: 2021-11-25 14:43+0000\n" | 4 | "PO-Revision-Date: 2021-11-28 23: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" |
@@ -1465,7 +1465,7 @@ msgid "sidebar.action.ident.import" | |||
1465 | msgstr "Importar…" | 1465 | msgstr "Importar…" |
1466 | 1466 | ||
1467 | msgid "menu.split.merge" | 1467 | msgid "menu.split.merge" |
1468 | msgstr "Unir pestañas" | 1468 | msgstr "Reunir" |
1469 | 1469 | ||
1470 | msgid "menu.split.swap" | 1470 | msgid "menu.split.swap" |
1471 | msgstr "Intercambiar Lados" | 1471 | msgstr "Intercambiar Lados" |
@@ -2145,3 +2145,6 @@ msgstr "Carpeta:" | |||
2145 | # Color of text background. | 2145 | # Color of text background. |
2146 | msgid "prefs.gemtext.ansi.bg" | 2146 | msgid "prefs.gemtext.ansi.bg" |
2147 | msgstr "Color de Fondo" | 2147 | msgstr "Color de Fondo" |
2148 | |||
2149 | msgid "menu.update" | ||
2150 | msgstr "Buscar Actualizaciones…" | ||
@@ -3,8 +3,8 @@ msgstr "" | |||
3 | "Project-Id-Version: PACKAGE VERSION\n" | 3 | "Project-Id-Version: PACKAGE VERSION\n" |
4 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" | 4 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" |
5 | "POT-Creation-Date: 2021-03-23 09:09+0000\n" | 5 | "POT-Creation-Date: 2021-03-23 09:09+0000\n" |
6 | "PO-Revision-Date: 2021-11-26 16:50+0000\n" | 6 | "PO-Revision-Date: 2021-11-28 23:50+0000\n" |
7 | "Last-Translator: Weblate Admin <jaakko.keranen@iki.fi>\n" | 7 | "Last-Translator: Nikolay Korotkiy <sikmir@gmail.com>\n" |
8 | "Language-Team: Finnish <http://weblate.skyjake.fi/projects/lagrange/ui/fi/>\n" | 8 | "Language-Team: Finnish <http://weblate.skyjake.fi/projects/lagrange/ui/fi/>\n" |
9 | "Language: fi\n" | 9 | "Language: fi\n" |
10 | "MIME-Version: 1.0\n" | 10 | "MIME-Version: 1.0\n" |
@@ -2132,3 +2132,6 @@ msgstr "Kansio:" | |||
2132 | # Color of text background. | 2132 | # Color of text background. |
2133 | msgid "prefs.gemtext.ansi.bg" | 2133 | msgid "prefs.gemtext.ansi.bg" |
2134 | msgstr "Taustan väri" | 2134 | msgstr "Taustan väri" |
2135 | |||
2136 | msgid "menu.update" | ||
2137 | msgstr "Tarkista päivitykset…" | ||
@@ -1,8 +1,8 @@ | |||
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-03 04:50+0000\n" | 4 | "PO-Revision-Date: 2021-11-28 23:50+0000\n" |
5 | "Last-Translator: MCMic <come@chilliet.eu>\n" | 5 | "Last-Translator: Timothée Goguely <timothee@goguely.com>\n" |
6 | "Language-Team: French <http://weblate.skyjake.fi/projects/lagrange/ui/fr/>\n" | 6 | "Language-Team: French <http://weblate.skyjake.fi/projects/lagrange/ui/fr/>\n" |
7 | "Language: fr\n" | 7 | "Language: fr\n" |
8 | "MIME-Version: 1.0\n" | 8 | "MIME-Version: 1.0\n" |
@@ -75,8 +75,8 @@ msgstr "Coller" | |||
75 | 75 | ||
76 | msgid "num.bytes" | 76 | msgid "num.bytes" |
77 | msgid_plural "num.bytes.n" | 77 | msgid_plural "num.bytes.n" |
78 | msgstr[0] "%zu octet" | 78 | msgstr[0] "%u octet" |
79 | msgstr[1] "%zu octets" | 79 | msgstr[1] "%u octets" |
80 | 80 | ||
81 | msgid "menu.title.view" | 81 | msgid "menu.title.view" |
82 | msgstr "Affichage" | 82 | msgstr "Affichage" |
@@ -312,8 +312,8 @@ msgstr "Copier l’empreinte" | |||
312 | #, c-format | 312 | #, c-format |
313 | msgid "feeds.list.entrycount" | 313 | msgid "feeds.list.entrycount" |
314 | msgid_plural "feeds.list.entrycount.n" | 314 | msgid_plural "feeds.list.entrycount.n" |
315 | msgstr[0] "un total de %zu entrée" | 315 | msgstr[0] "un total de %u entrée" |
316 | msgstr[1] "un total de %zu entrées" | 316 | msgstr[1] "un total de %u entrées" |
317 | 317 | ||
318 | #, c-format | 318 | #, c-format |
319 | msgid "minutes.ago" | 319 | msgid "minutes.ago" |
@@ -496,8 +496,8 @@ msgstr "Entrées de flux" | |||
496 | #, c-format | 496 | #, c-format |
497 | msgid "feeds.list.counts" | 497 | msgid "feeds.list.counts" |
498 | msgid_plural "feeds.list.counts.n" | 498 | msgid_plural "feeds.list.counts.n" |
499 | msgstr[0] "Vous êtes abonné à %zu flux contenant %%s.\n" | 499 | msgstr[0] "Vous êtes abonné à %u flux contenant %%s.\n" |
500 | msgstr[1] "Vous êtes abonné à %zu flux contenant %%s.\n" | 500 | msgstr[1] "Vous êtes abonné à %u flux contenant %%s.\n" |
501 | 501 | ||
502 | # Alt-text of the preformatted logo. | 502 | # Alt-text of the preformatted logo. |
503 | msgid "about.logo" | 503 | msgid "about.logo" |
@@ -637,9 +637,7 @@ msgstr "PARAMÈTRES DE FLUX" | |||
637 | 637 | ||
638 | #, c-format | 638 | #, c-format |
639 | msgid "dlg.confirm.unsub" | 639 | msgid "dlg.confirm.unsub" |
640 | msgstr "" | 640 | msgstr "Vraiment se désabonner du flux « %s » ?" |
641 | "Vraiment se désabonner du flux\n" | ||
642 | "« %s » ?" | ||
643 | 641 | ||
644 | msgid "keys.zoom.reset" | 642 | msgid "keys.zoom.reset" |
645 | msgstr "Réinitialiser le zoom" | 643 | msgstr "Réinitialiser le zoom" |
@@ -869,7 +867,7 @@ msgid "error.tls" | |||
869 | msgstr "Échec réseau/TLS" | 867 | msgstr "Échec réseau/TLS" |
870 | 868 | ||
871 | msgid "error.tls.msg" | 869 | msgid "error.tls.msg" |
872 | msgstr "La communication avec le serveur a échoué. Voici le message d’erreur :" | 870 | msgstr "La communication avec le serveur a échoué." |
873 | 871 | ||
874 | msgid "error.temporary" | 872 | msgid "error.temporary" |
875 | msgstr "Échec temporaire" | 873 | msgstr "Échec temporaire" |
@@ -973,8 +971,8 @@ msgstr "Le certificat client fourni a expiré ou est invalide." | |||
973 | #, c-format | 971 | #, c-format |
974 | msgid "ident.usedonurls" | 972 | msgid "ident.usedonurls" |
975 | msgid_plural "ident.usedonurls.n" | 973 | msgid_plural "ident.usedonurls.n" |
976 | msgstr[0] "Utilisée sur %zu URL" | 974 | msgstr[0] "Utilisée sur %u URL" |
977 | msgstr[1] "Utilisée sur %zu URLs" | 975 | msgstr[1] "Utilisée sur %u URLs" |
978 | 976 | ||
979 | msgid "heading.ident.notes" | 977 | msgid "heading.ident.notes" |
980 | msgstr "NOTES SUR L'IDENTITÉ" | 978 | msgstr "NOTES SUR L'IDENTITÉ" |
@@ -1028,9 +1026,8 @@ msgstr "Utilisée pour cette page" | |||
1028 | #, c-format | 1026 | #, c-format |
1029 | msgid "dlg.confirm.ident.delete" | 1027 | msgid "dlg.confirm.ident.delete" |
1030 | msgstr "" | 1028 | msgstr "" |
1031 | "Voulez-vous vraiment supprimer l'identité\n" | 1029 | "Voulez-vous vraiment supprimer l'identité %s%s%s y compris ses fichiers de " |
1032 | "%s%s%s\n" | 1030 | "certificat et clé privée ?" |
1033 | "y compris ses fichiers de certificat et clé privée ?" | ||
1034 | 1031 | ||
1035 | msgid "heading.unsub" | 1032 | msgid "heading.unsub" |
1036 | msgstr "DÉSABONNEMENT" | 1033 | msgstr "DÉSABONNEMENT" |
@@ -1586,9 +1583,9 @@ msgstr "Sortir de l’archive" | |||
1586 | msgid "archive.summary" | 1583 | msgid "archive.summary" |
1587 | msgid_plural "archive.summary.n" | 1584 | msgid_plural "archive.summary.n" |
1588 | msgstr[0] "" | 1585 | msgstr[0] "" |
1589 | "Cette archive contient %zu élément et sa taille compressée est de %.1f Mo." | 1586 | "Cette archive contient %u élément et sa taille compressée est de %.1f Mo." |
1590 | msgstr[1] "" | 1587 | msgstr[1] "" |
1591 | "Cette archive contient %zu éléments et sa taille compressée est de %.1f Mo." | 1588 | "Cette archive contient %u éléments et sa taille compressée est de %.1f Mo." |
1592 | 1589 | ||
1593 | msgid "dir.empty" | 1590 | msgid "dir.empty" |
1594 | msgstr "Ce répertoire est vide." | 1591 | msgstr "Ce répertoire est vide." |
@@ -1596,8 +1593,8 @@ msgstr "Ce répertoire est vide." | |||
1596 | #, c-format | 1593 | #, c-format |
1597 | msgid "dir.summary" | 1594 | msgid "dir.summary" |
1598 | msgid_plural "dir.summary.n" | 1595 | msgid_plural "dir.summary.n" |
1599 | msgstr[0] "Ce répertoire contient %zu élément." | 1596 | msgstr[0] "Ce répertoire contient %u élément." |
1600 | msgstr[1] "Ce répertoire contient %zu éléments." | 1597 | msgstr[1] "Ce répertoire contient %u éléments." |
1601 | 1598 | ||
1602 | msgid "menu.split.swap" | 1599 | msgid "menu.split.swap" |
1603 | msgstr "Échanger les côtés" | 1600 | msgstr "Échanger les côtés" |
@@ -1665,8 +1662,8 @@ msgstr "PORT DE TÉLÉVERSEMENT TITAN" | |||
1665 | 1662 | ||
1666 | msgid "dlg.uploadport.msg" | 1663 | msgid "dlg.uploadport.msg" |
1667 | msgstr "" | 1664 | msgstr "" |
1668 | "Définit le port du serveur Titan à utiliser pour cette URL.\n" | 1665 | "Définit le port du serveur Titan à utiliser pour cette URL. Le port est " |
1669 | "Le port est enregistré dans la configuration spécifique au site." | 1666 | "enregistré dans la configuration spécifique au site." |
1670 | 1667 | ||
1671 | msgid "dlg.uploadport.set" | 1668 | msgid "dlg.uploadport.set" |
1672 | msgstr "Définir le port" | 1669 | msgstr "Définir le port" |
@@ -1932,3 +1929,205 @@ msgstr "Couleur du préformaté" | |||
1932 | 1929 | ||
1933 | msgid "keys.bookmark.addfolder" | 1930 | msgid "keys.bookmark.addfolder" |
1934 | msgstr "Ajouter un dossier de signets" | 1931 | msgstr "Ajouter un dossier de signets" |
1932 | |||
1933 | msgid "menu.website" | ||
1934 | msgstr "Site Web du projet…" | ||
1935 | |||
1936 | msgid "dlg.bookmark.folder" | ||
1937 | msgstr "Dossier :" | ||
1938 | |||
1939 | msgid "heading.fontpack.meta" | ||
1940 | msgstr "Polices" | ||
1941 | |||
1942 | msgid "fontpack.open.aboutfonts" | ||
1943 | msgstr "Afficher les polices installées" | ||
1944 | |||
1945 | msgid "num.fonts" | ||
1946 | msgid_plural "num.fonts.n" | ||
1947 | msgstr[0] "%u police" | ||
1948 | msgstr[1] "%u polices" | ||
1949 | |||
1950 | msgid "truetype.help" | ||
1951 | msgstr "" | ||
1952 | "Lagrange essaye de charger tous les fichiers TrueType individuels qui sont " | ||
1953 | "copiés dans le répertoire des polices utilisateur." | ||
1954 | |||
1955 | #, c-format | ||
1956 | msgid "dlg.dismiss.ansi" | ||
1957 | msgstr "" | ||
1958 | "Ignorer de manière permanente l’avertissement à propos de l’émulation de " | ||
1959 | "terminal sur %s ?" | ||
1960 | |||
1961 | msgid "error.ansi.msg" | ||
1962 | msgstr "" | ||
1963 | "Cette page peut ne pas être affichée correctement. Elle utilise des " | ||
1964 | "séquences d’échappement ANSI pour appliquer des styles au texte, ce qui n’" | ||
1965 | "est que partiellement supporté. Vous pouvez essayer d'utiliser un émulateur " | ||
1966 | "de terminal pour la visualiser." | ||
1967 | |||
1968 | msgid "dlg.feed.ignoreweb" | ||
1969 | msgstr "Ignorer les liens HTTP(S) :" | ||
1970 | |||
1971 | msgid "prefs.boldlink.visited" | ||
1972 | msgstr "Visité" | ||
1973 | |||
1974 | msgid "prefs.gemtext.ansi" | ||
1975 | msgstr "Échappements ANSI :" | ||
1976 | |||
1977 | # Color of the text foreground, i.e., the characters. | ||
1978 | msgid "prefs.gemtext.ansi.fg" | ||
1979 | msgstr "Couleur avant-plan" | ||
1980 | |||
1981 | msgid "error.ansi" | ||
1982 | msgstr "Émulation de terminal" | ||
1983 | |||
1984 | msgid "error.glyphs" | ||
1985 | msgstr "Glyphes manquants" | ||
1986 | |||
1987 | msgid "heading.fontpack.meta.disabled" | ||
1988 | msgstr "Packs de polices désactivés" | ||
1989 | |||
1990 | #, c-format | ||
1991 | msgid "fontpack.install" | ||
1992 | msgstr "Installer « %s »" | ||
1993 | |||
1994 | #, c-format | ||
1995 | msgid "fontpack.upgrade" | ||
1996 | msgstr "Mettre à jour « %s » vers la version %d" | ||
1997 | |||
1998 | msgid "dlg.fontpack.classic.msg" | ||
1999 | msgstr "" | ||
2000 | "Les polices qui étaient auparavant fournies avec l'application sont à " | ||
2001 | "présent disponibles en tant que téléchargement séparé. Souhaitez-vous " | ||
2002 | "télécharger le pack de polices « Classic set » maintenant ?" | ||
2003 | |||
2004 | msgid "error.glyphs.msg" | ||
2005 | msgstr "" | ||
2006 | "Cette page ne peut pas être affichée en totalité car certains caractères " | ||
2007 | "sont manquants. Vous pouvez installer des polices supplémentaires pour " | ||
2008 | "corriger cela." | ||
2009 | |||
2010 | msgid "sidebar.action.show" | ||
2011 | msgstr "Afficher :" | ||
2012 | |||
2013 | msgid "dlg.certwarn.title" | ||
2014 | msgstr "Problème de sécurité" | ||
2015 | |||
2016 | msgid "prefs.font.ui" | ||
2017 | msgstr "Interface :" | ||
2018 | |||
2019 | msgid "truetype.help.installed" | ||
2020 | msgstr "Cette police est installée dans le répertoire des polices utilisateur." | ||
2021 | |||
2022 | msgid "dlg.dismiss.warning" | ||
2023 | msgstr "Ignorer l’avertissement" | ||
2024 | |||
2025 | msgid "heading.dismiss.warning" | ||
2026 | msgstr "IGNORER L’AVERTISSEMENT ?" | ||
2027 | |||
2028 | msgid "menu.update" | ||
2029 | msgstr "Rechercher des mises à jour…" | ||
2030 | |||
2031 | msgid "menu.fonts" | ||
2032 | msgstr "Gérer les polices…" | ||
2033 | |||
2034 | msgid "prefs.bookmarks.addbottom" | ||
2035 | msgstr "Ajouter les signets en bas :" | ||
2036 | |||
2037 | # Abbrevation: background-to-foreground | ||
2038 | msgid "prefs.imagestyle.bgfg" | ||
2039 | msgstr "Arrière-plan vers avant-plan" | ||
2040 | |||
2041 | msgid "prefs.font.heading" | ||
2042 | msgstr "Titres :" | ||
2043 | |||
2044 | msgid "prefs.font.body" | ||
2045 | msgstr "Corps :" | ||
2046 | |||
2047 | msgid "prefs.font.mono" | ||
2048 | msgstr "Préformaté :" | ||
2049 | |||
2050 | # Font to use for headings and body when Monospace body is enabled. | ||
2051 | msgid "prefs.font.monodoc" | ||
2052 | msgstr "Police à chasse fixe :" | ||
2053 | |||
2054 | # Color of text background. | ||
2055 | msgid "prefs.gemtext.ansi.bg" | ||
2056 | msgstr "Couleur d'arrière-plan" | ||
2057 | |||
2058 | msgid "prefs.gemtext.ansi.fontstyle" | ||
2059 | msgstr "Style de police" | ||
2060 | |||
2061 | msgid "prefs.font.smooth" | ||
2062 | msgstr "Lissage :" | ||
2063 | |||
2064 | msgid "heading.fontpack.meta.enabled" | ||
2065 | msgstr "Packs de polices activés" | ||
2066 | |||
2067 | # Action label | ||
2068 | msgid "fontpack.meta.viewfile" | ||
2069 | msgstr "Afficher le fichier" | ||
2070 | |||
2071 | #, c-format | ||
2072 | msgid "fontpack.meta.version" | ||
2073 | msgstr "Version %d" | ||
2074 | |||
2075 | msgid "fontpack.meta.installed" | ||
2076 | msgstr "Installé" | ||
2077 | |||
2078 | msgid "fontpack.meta.notinstalled" | ||
2079 | msgstr "Non installé" | ||
2080 | |||
2081 | msgid "fontpack.meta.disabled" | ||
2082 | msgstr ", désactivé" | ||
2083 | |||
2084 | #, c-format | ||
2085 | msgid "fontpack.enable" | ||
2086 | msgstr "Activer « %s »" | ||
2087 | |||
2088 | #, c-format | ||
2089 | msgid "fontpack.disable" | ||
2090 | msgstr "Désactiver « %s »" | ||
2091 | |||
2092 | msgid "fontpack.export" | ||
2093 | msgstr "Afficher le modèle fontpack.ini" | ||
2094 | |||
2095 | #, c-format | ||
2096 | msgid "fontpack.delete" | ||
2097 | msgstr "Supprimer définitivement « %s »" | ||
2098 | |||
2099 | #, c-format | ||
2100 | msgid "dlg.fontpack.delete.confirm" | ||
2101 | msgstr "" | ||
2102 | "Voulez-vous vraiment supprimer définitivement le pack de polices « %s » ?" | ||
2103 | |||
2104 | msgid "dlg.fontpack.delete" | ||
2105 | msgstr "Supprimer le pack de polices" | ||
2106 | |||
2107 | msgid "heading.fontpack.delete" | ||
2108 | msgstr "SUPPRIMER LE PACK DE POLICES" | ||
2109 | |||
2110 | msgid "fontpack.help" | ||
2111 | msgstr "" | ||
2112 | "Les packs de polices de Lagrange sont des archives ZIP qui contiennent un " | ||
2113 | "ensemble de fichiers de polices et leurs paramètres de configuration " | ||
2114 | "associés. Une fois installées, les polices peuvent être utilisées pour le " | ||
2115 | "contenu des documents et l'UI. Les polices actives sont choisies dans " | ||
2116 | "Préférences > Polices." | ||
2117 | |||
2118 | msgid "fontpack.install.ttf" | ||
2119 | msgstr "Installer une police TrueType" | ||
2120 | |||
2121 | msgid "fontpack.open.fontsdir" | ||
2122 | msgstr "Ouvrir le répertoire des polices utilisateur" | ||
2123 | |||
2124 | msgid "dlg.fontpack.classic" | ||
2125 | msgstr "Télécharger le pack de polices (25 Mo)" | ||
2126 | |||
2127 | msgid "heading.fontpack.classic" | ||
2128 | msgstr "TÉLÉCHARGER LE PACK DE POLICES" | ||
2129 | |||
2130 | msgid "num.files" | ||
2131 | msgid_plural "num.files.n" | ||
2132 | msgstr[0] "%u fichier" | ||
2133 | msgstr[1] "%u fichiers" | ||
@@ -1,7 +1,7 @@ | |||
1 | msgid "" | 1 | msgid "" |
2 | msgstr "" | 2 | msgstr "" |
3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" | 3 | "Report-Msgid-Bugs-To: jaakko.keranen@iki.fi\n" |
4 | "PO-Revision-Date: 2021-11-10 04:50+0000\n" | 4 | "PO-Revision-Date: 2021-11-28 23: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" |
@@ -1475,7 +1475,7 @@ msgid "menu.downloads" | |||
1475 | msgstr "Прикажи Преузимања" | 1475 | msgstr "Прикажи Преузимања" |
1476 | 1476 | ||
1477 | msgid "menu.split.merge" | 1477 | msgid "menu.split.merge" |
1478 | msgstr "Спој картице" | 1478 | msgstr "Спој" |
1479 | 1479 | ||
1480 | msgid "menu.view.split" | 1480 | msgid "menu.view.split" |
1481 | msgstr "Раздвој поглед…" | 1481 | msgstr "Раздвој поглед…" |
@@ -2169,3 +2169,16 @@ msgstr "Чешки" | |||
2169 | 2169 | ||
2170 | msgid "lang.hu" | 2170 | msgid "lang.hu" |
2171 | msgstr "Мађарски" | 2171 | msgstr "Мађарски" |
2172 | |||
2173 | msgid "menu.update" | ||
2174 | msgstr "Провери ажурирања…" | ||
2175 | |||
2176 | msgid "dlg.bookmark.folder" | ||
2177 | msgstr "Фасцикла:" | ||
2178 | |||
2179 | msgid "sidebar.action.show" | ||
2180 | msgstr "Прикажи:" | ||
2181 | |||
2182 | # Color of text background. | ||
2183 | msgid "prefs.gemtext.ansi.bg" | ||
2184 | 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-27 04:58+0000\n" | 4 | "PO-Revision-Date: 2021-11-28 23:50+0000\n" |
5 | "Last-Translator: Emir <emir_sari@msn.com>\n" | 5 | "Last-Translator: Emir <emir_sari@msn.com>\n" |
6 | "Language-Team: Turkish <http://weblate.skyjake.fi/projects/lagrange/ui/tr/>\n" | 6 | "Language-Team: Turkish <http://weblate.skyjake.fi/projects/lagrange/ui/tr/>\n" |
7 | "Language: tr\n" | 7 | "Language: tr\n" |
@@ -918,7 +918,7 @@ msgstr "Genel" | |||
918 | 918 | ||
919 | # tab button | 919 | # tab button |
920 | msgid "heading.prefs.interface" | 920 | msgid "heading.prefs.interface" |
921 | msgstr "Kullanıcı arabirimi" | 921 | msgstr "Arayüz" |
922 | 922 | ||
923 | # tab button | 923 | # tab button |
924 | msgid "heading.prefs.keys" | 924 | msgid "heading.prefs.keys" |
@@ -1865,7 +1865,7 @@ msgid "prefs.theme.light" | |||
1865 | msgstr "Açık" | 1865 | msgstr "Açık" |
1866 | 1866 | ||
1867 | msgid "prefs.uiscale" | 1867 | msgid "prefs.uiscale" |
1868 | msgstr "UI ölçeklendirme faktörü:" | 1868 | msgstr "Arayüz ölçeklendirme:" |
1869 | 1869 | ||
1870 | msgid "prefs.returnkey.accept" | 1870 | msgid "prefs.returnkey.accept" |
1871 | msgstr "Kabul et" | 1871 | msgstr "Kabul et" |
@@ -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-26 18:17+0000\n" | 4 | "PO-Revision-Date: 2021-11-28 23: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" |
@@ -179,7 +179,7 @@ msgid "menu.sort.alpha" | |||
179 | msgstr "За алфавітом" | 179 | msgstr "За алфавітом" |
180 | 180 | ||
181 | msgid "menu.bookmarks.list" | 181 | msgid "menu.bookmarks.list" |
182 | msgstr "Показати і закладки" | 182 | msgstr "Показати всі закладки" |
183 | 183 | ||
184 | msgid "menu.bookmarks.bytag" | 184 | msgid "menu.bookmarks.bytag" |
185 | msgstr "Закладки за міткою" | 185 | msgstr "Закладки за міткою" |
@@ -405,7 +405,7 @@ msgid "menu.split.horizontal" | |||
405 | msgstr "Горизонтально" | 405 | msgstr "Горизонтально" |
406 | 406 | ||
407 | msgid "menu.downloads" | 407 | msgid "menu.downloads" |
408 | msgstr "Показати і завантаження" | 408 | msgstr "Показати всі завантаження" |
409 | 409 | ||
410 | msgid "menu.unexpire" | 410 | msgid "menu.unexpire" |
411 | msgstr "Ігнорувати недійсність і продовжити завантаження" | 411 | msgstr "Ігнорувати недійсність і продовжити завантаження" |
@@ -421,7 +421,7 @@ msgid "menu.zoom.reset" | |||
421 | msgstr "Звичайний розмір" | 421 | msgstr "Звичайний розмір" |
422 | 422 | ||
423 | msgid "macos.menu.bookmarks.list" | 423 | msgid "macos.menu.bookmarks.list" |
424 | msgstr "Показати і" | 424 | msgstr "Показати всі" |
425 | 425 | ||
426 | msgid "macos.menu.bookmarks.bytag" | 426 | msgid "macos.menu.bookmarks.bytag" |
427 | msgstr "За міткою" | 427 | msgstr "За міткою" |
@@ -467,7 +467,7 @@ msgid "menu.aboutpages" | |||
467 | msgstr "Інформаційні сторінки" | 467 | msgstr "Інформаційні сторінки" |
468 | 468 | ||
469 | msgid "menu.import.links" | 469 | msgid "menu.import.links" |
470 | msgstr "Імпортувати і посилання на сторінці…" | 470 | msgstr "Імпортувати всі посилання на сторінці…" |
471 | 471 | ||
472 | msgid "menu.page.copyurl" | 472 | msgid "menu.page.copyurl" |
473 | msgstr "Копіювати URL сторінки" | 473 | msgstr "Копіювати URL сторінки" |
diff --git a/res/about/version.gmi b/res/about/version.gmi index c510d07a..a9043b2c 100644 --- a/res/about/version.gmi +++ b/res/about/version.gmi | |||
@@ -6,10 +6,20 @@ | |||
6 | ``` | 6 | ``` |
7 | # Release notes | 7 | # Release notes |
8 | 8 | ||
9 | ## 1.9.2 | ||
10 | * Windows: Use the correct version number for update checks. | ||
11 | * Shorter label for "Mark All as Read" in Feeds sidebar actions. | ||
12 | * Updated UI translations. | ||
13 | |||
9 | ## 1.9.1 | 14 | ## 1.9.1 |
10 | * Added "24-Hour Time" preference. | 15 | * Added "24-Hour Time" preference. Currently it only affects the page timestamp in the bottom left corner. |
11 | * Fixed drawing the page timestamp (bottom left corner) that was always hidden. | ||
12 | * Heading level 3 is indented like regular text lines, making the difference to level 2 evident. | 16 | * Heading level 3 is indented like regular text lines, making the difference to level 2 evident. |
17 | * Fixed crash when creating a top-level bookmark. | ||
18 | * Fixed drawing the page timestamp. | ||
19 | * Fixed layout of tab buttons and other resizing widgets so all available space is used. | ||
20 | * Fixed tab close buttons preventing activation of very short tab buttons. The close buttons only appear if there is room for them. | ||
21 | * Fixed very short tab labels not getting truncated. | ||
22 | * Fixed the New Tab button not staying at the right edge of the window, depending on how many tabs are open. | ||
13 | 23 | ||
14 | ## 1.9 | 24 | ## 1.9 |
15 | 25 | ||
diff --git a/res/lang/cs.bin b/res/lang/cs.bin index beb44264..647e1f34 100644 --- a/res/lang/cs.bin +++ b/res/lang/cs.bin | |||
Binary files differ | |||
diff --git a/res/lang/de.bin b/res/lang/de.bin index 2bd48e02..b2bb35a0 100644 --- a/res/lang/de.bin +++ b/res/lang/de.bin | |||
Binary files differ | |||
diff --git a/res/lang/en.bin b/res/lang/en.bin index 2e95dd20..fbf4c73c 100644 --- a/res/lang/en.bin +++ b/res/lang/en.bin | |||
Binary files differ | |||
diff --git a/res/lang/eo.bin b/res/lang/eo.bin index f9dc80e6..7156b7c8 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 29d94600..1acb50d1 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 2d6ea258..078de89d 100644 --- a/res/lang/es_MX.bin +++ b/res/lang/es_MX.bin | |||
Binary files differ | |||
diff --git a/res/lang/fi.bin b/res/lang/fi.bin index 631a6497..ccd3e133 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 8d292ef8..96c1148e 100644 --- a/res/lang/fr.bin +++ b/res/lang/fr.bin | |||
Binary files differ | |||
diff --git a/res/lang/gl.bin b/res/lang/gl.bin index ec7e0502..4269b5ed 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 d4dc0811..7b7edb50 100644 --- a/res/lang/hu.bin +++ b/res/lang/hu.bin | |||
Binary files differ | |||
diff --git a/res/lang/ia.bin b/res/lang/ia.bin index 43b8e871..4750b545 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 79f370d2..e4c90ef9 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 2af9a9d7..80754fc5 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 9e1590a6..c0affedf 100644 --- a/res/lang/pl.bin +++ b/res/lang/pl.bin | |||
Binary files differ | |||
diff --git a/res/lang/ru.bin b/res/lang/ru.bin index 1fbd1097..966deaea 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 b4603c7d..deda3b69 100644 --- a/res/lang/sk.bin +++ b/res/lang/sk.bin | |||
Binary files differ | |||
diff --git a/res/lang/sr.bin b/res/lang/sr.bin index 2e8d131c..8d8591e6 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 582b24de..1b0c0733 100644 --- a/res/lang/tok.bin +++ b/res/lang/tok.bin | |||
Binary files differ | |||
diff --git a/res/lang/tr.bin b/res/lang/tr.bin index d7788667..60ef518d 100644 --- a/res/lang/tr.bin +++ b/res/lang/tr.bin | |||
Binary files differ | |||
diff --git a/res/lang/uk.bin b/res/lang/uk.bin index 62d480a7..2ed16909 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 0b9b3360..3a83dd40 100644 --- a/res/lang/zh_Hans.bin +++ b/res/lang/zh_Hans.bin | |||
Binary files differ | |||
diff --git a/res/lang/zh_Hant.bin b/res/lang/zh_Hant.bin index b6e7b5d0..7da4b273 100644 --- a/res/lang/zh_Hant.bin +++ b/res/lang/zh_Hant.bin | |||
Binary files differ | |||
diff --git a/src/ui/documentwidget.c b/src/ui/documentwidget.c index 39dd3aab..3fb8498b 100644 --- a/src/ui/documentwidget.c +++ b/src/ui/documentwidget.c | |||
@@ -1007,17 +1007,26 @@ static void updateWindowTitle_DocumentWidget_(const iDocumentWidget *d) { | |||
1007 | prependCStr_String(text, escape_Color(uiIcon_ColorId)); | 1007 | prependCStr_String(text, escape_Color(uiIcon_ColorId)); |
1008 | } | 1008 | } |
1009 | const int width = measureRange_Text(font, range_String(text)).advance.x; | 1009 | const int width = measureRange_Text(font, range_String(text)).advance.x; |
1010 | if (width <= avail || | 1010 | const int ellipsisWidth = measure_Text(font, "...").advance.x; |
1011 | isEmpty_StringArray(title)) { | 1011 | setTextColor_LabelWidget(tabButton, none_ColorId); |
1012 | iWidget *tabCloseButton = child_Widget(as_Widget(tabButton), 0); | ||
1013 | setFlags_Widget(tabCloseButton, visibleOnParentHover_WidgetFlag, | ||
1014 | avail > width_Widget(tabCloseButton)); | ||
1015 | if (width <= avail || isEmpty_StringArray(title)) { | ||
1012 | updateText_LabelWidget(tabButton, text); | 1016 | updateText_LabelWidget(tabButton, text); |
1013 | break; | 1017 | break; |
1014 | } | 1018 | } |
1015 | if (size_StringArray(title) == 1) { | 1019 | if (size_StringArray(title) == 1) { |
1016 | /* Just truncate to fit. */ | 1020 | /* Just truncate to fit. */ |
1021 | if (siteIcon && avail <= 4 * ellipsisWidth) { | ||
1022 | updateText_LabelWidget(tabButton, collect_String(newUnicodeN_String(&siteIcon, 1))); | ||
1023 | setTextColor_LabelWidget(tabButton, uiIcon_ColorId); | ||
1024 | break; | ||
1025 | } | ||
1017 | const char *endPos; | 1026 | const char *endPos; |
1018 | tryAdvanceNoWrap_Text(font, | 1027 | tryAdvanceNoWrap_Text(font, |
1019 | range_String(text), | 1028 | range_String(text), |
1020 | avail - measure_Text(font, "...").advance.x, | 1029 | avail - ellipsisWidth, |
1021 | &endPos); | 1030 | &endPos); |
1022 | updateText_LabelWidget( | 1031 | updateText_LabelWidget( |
1023 | tabButton, | 1032 | tabButton, |
diff --git a/src/ui/root.c b/src/ui/root.c index 5b1167d8..cf13169d 100644 --- a/src/ui/root.c +++ b/src/ui/root.c | |||
@@ -76,11 +76,11 @@ static const iMenuItem navMenuItems_[] = { | |||
76 | { "${menu.feeds.entrylist}", 0, 0, "!open url:about:feeds" }, | 76 | { "${menu.feeds.entrylist}", 0, 0, "!open url:about:feeds" }, |
77 | { "---" }, | 77 | { "---" }, |
78 | { gear_Icon " ${menu.preferences}", SDLK_COMMA, KMOD_PRIMARY, "preferences" }, | 78 | { gear_Icon " ${menu.preferences}", SDLK_COMMA, KMOD_PRIMARY, "preferences" }, |
79 | { "${menu.help}", SDLK_F1, 0, "!open url:about:help" }, | ||
80 | { "${menu.releasenotes}", 0, 0, "!open url:about:version" }, | ||
81 | #if defined (LAGRANGE_ENABLE_WINSPARKLE) | 79 | #if defined (LAGRANGE_ENABLE_WINSPARKLE) |
82 | { "${menu.update}", 0, 0, "updater.check" }, | 80 | { "${menu.update}", 0, 0, "updater.check" }, |
83 | #endif | 81 | #endif |
82 | { "${menu.help}", SDLK_F1, 0, "!open url:about:help" }, | ||
83 | { "${menu.releasenotes}", 0, 0, "!open url:about:version" }, | ||
84 | { "---" }, | 84 | { "---" }, |
85 | { "${menu.quit}", 'q', KMOD_PRIMARY, "quit" } | 85 | { "${menu.quit}", 'q', KMOD_PRIMARY, "quit" } |
86 | }; | 86 | }; |
@@ -1317,7 +1317,8 @@ void createUserInterface_Root(iRoot *d) { | |||
1317 | setBackgroundColor_Widget(buttons, uiBackground_ColorId); | 1317 | setBackgroundColor_Widget(buttons, uiBackground_ColorId); |
1318 | } | 1318 | } |
1319 | setId_Widget( | 1319 | setId_Widget( |
1320 | addChild_Widget(buttons, iClob(newIcon_LabelWidget(add_Icon, 0, 0, "tabs.new"))), | 1320 | addChildFlags_Widget(buttons, iClob(newIcon_LabelWidget(add_Icon, 0, 0, "tabs.new")), |
1321 | moveToParentRightEdge_WidgetFlag), | ||
1321 | "newtab"); | 1322 | "newtab"); |
1322 | } | 1323 | } |
1323 | /* Sidebars. */ { | 1324 | /* Sidebars. */ { |
diff --git a/src/ui/sidebarwidget.c b/src/ui/sidebarwidget.c index b6aa06b1..1aeb4163 100644 --- a/src/ui/sidebarwidget.c +++ b/src/ui/sidebarwidget.c | |||
@@ -350,7 +350,7 @@ static void updateItems_SidebarWidget_(iSidebarWidget *d) { | |||
350 | } | 350 | } |
351 | /* Actions. */ { | 351 | /* Actions. */ { |
352 | addActionButton_SidebarWidget_( | 352 | addActionButton_SidebarWidget_( |
353 | d, check_Icon " ${feeds.markallread}", "feeds.markallread", expand_WidgetFlag | | 353 | d, check_Icon " ${sidebar.action.feeds.markallread}", "feeds.markallread", expand_WidgetFlag | |
354 | tight_WidgetFlag); | 354 | tight_WidgetFlag); |
355 | updateSize_LabelWidget(addChildFlags_Widget(d->actions, | 355 | updateSize_LabelWidget(addChildFlags_Widget(d->actions, |
356 | iClob(new_LabelWidget("${sidebar.action.show}", NULL)), | 356 | iClob(new_LabelWidget("${sidebar.action.show}", NULL)), |
@@ -916,6 +916,7 @@ static void itemClicked_SidebarWidget_(iSidebarWidget *d, iSidebarItem *item, si | |||
916 | } | 916 | } |
917 | else { | 917 | else { |
918 | insert_IntSet(d->closedFolders, item->id); | 918 | insert_IntSet(d->closedFolders, item->id); |
919 | setRecentFolder_Bookmarks(bookmarks_App(), 0); | ||
919 | } | 920 | } |
920 | updateItems_SidebarWidget_(d); | 921 | updateItems_SidebarWidget_(d); |
921 | break; | 922 | break; |
diff --git a/src/ui/text.c b/src/ui/text.c index 91ff137a..977cac9c 100644 --- a/src/ui/text.c +++ b/src/ui/text.c | |||
@@ -1871,6 +1871,10 @@ iInt2 tryAdvance_Text(int fontId, iRangecc text, int width, const char **endPos) | |||
1871 | } | 1871 | } |
1872 | 1872 | ||
1873 | iInt2 tryAdvanceNoWrap_Text(int fontId, iRangecc text, int width, const char **endPos) { | 1873 | iInt2 tryAdvanceNoWrap_Text(int fontId, iRangecc text, int width, const char **endPos) { |
1874 | if (width <= 1) { | ||
1875 | *endPos = text.start; | ||
1876 | return zero_I2(); | ||
1877 | } | ||
1874 | /* "NoWrap" means words aren't wrapped; the line is broken at nearest character. */ | 1878 | /* "NoWrap" means words aren't wrapped; the line is broken at nearest character. */ |
1875 | iWrapText wrap = { .mode = anyCharacter_WrapTextMode, | 1879 | iWrapText wrap = { .mode = anyCharacter_WrapTextMode, |
1876 | .text = text, | 1880 | .text = text, |
diff --git a/src/ui/util.c b/src/ui/util.c index 6f5eced3..50294068 100644 --- a/src/ui/util.c +++ b/src/ui/util.c | |||
@@ -2862,8 +2862,10 @@ iWidget *makeBookmarkEditor_Widget(void) { | |||
2862 | constData_Array(folderItems), | 2862 | constData_Array(folderItems), |
2863 | size_Array(folderItems))), alignLeft_WidgetFlag), | 2863 | size_Array(folderItems))), alignLeft_WidgetFlag), |
2864 | "bmed.folder"); | 2864 | "bmed.folder"); |
2865 | const uint32_t recentFolderId = recentFolder_Bookmarks(bookmarks_App()); | ||
2865 | updateDropdownSelection_LabelWidget( | 2866 | updateDropdownSelection_LabelWidget( |
2866 | folderButton, format_CStr(" arg:%u", recentFolder_Bookmarks(bookmarks_App()))); | 2867 | folderButton, format_CStr(" arg:%u", recentFolderId)); |
2868 | setUserData_Object(folderButton, get_Bookmarks(bookmarks_App(), recentFolderId)); | ||
2867 | } | 2869 | } |
2868 | addDialogInputWithHeading_(headings, values, "${dlg.bookmark.tags}", "bmed.tags", iClob(inputs[2] = new_InputWidget(0))); | 2870 | addDialogInputWithHeading_(headings, values, "${dlg.bookmark.tags}", "bmed.tags", iClob(inputs[2] = new_InputWidget(0))); |
2869 | addDialogInputWithHeading_(headings, values, "${dlg.bookmark.icon}", "bmed.icon", iClob(inputs[3] = new_InputWidget(1))); | 2871 | addDialogInputWithHeading_(headings, values, "${dlg.bookmark.icon}", "bmed.icon", iClob(inputs[3] = new_InputWidget(1))); |
diff --git a/src/ui/widget.c b/src/ui/widget.c index 61bbf43a..a171a6cd 100644 --- a/src/ui/widget.c +++ b/src/ui/widget.c | |||
@@ -692,8 +692,16 @@ static void arrange_Widget_(iWidget *d) { | |||
692 | } | 692 | } |
693 | } | 693 | } |
694 | } | 694 | } |
695 | /* Keep track of the fractional pixels so a large number to children will cover | ||
696 | the full area. */ | ||
697 | const iInt2 totalAvail = avail; | ||
695 | avail = divi_I2(max_I2(zero_I2(), avail), expCount); | 698 | avail = divi_I2(max_I2(zero_I2(), avail), expCount); |
699 | float availFract[2] = { | ||
700 | iMax(0, (totalAvail.x - avail.x * expCount) / (float) expCount), | ||
701 | iMax(0, (totalAvail.y - avail.y * expCount) / (float) expCount) | ||
702 | }; | ||
696 | TRACE(d, "available for expansion (per child): %d\n", d->flags & arrangeHorizontal_WidgetFlag ? avail.x : avail.y); | 703 | TRACE(d, "available for expansion (per child): %d\n", d->flags & arrangeHorizontal_WidgetFlag ? avail.x : avail.y); |
704 | float fract[2] = { 0, 0 }; | ||
697 | iForEach(ObjectList, j, d->children) { | 705 | iForEach(ObjectList, j, d->children) { |
698 | iWidget *child = as_Widget(j.object); | 706 | iWidget *child = as_Widget(j.object); |
699 | if (!isArrangedSize_Widget_(child)) { | 707 | if (!isArrangedSize_Widget_(child)) { |
@@ -703,12 +711,16 @@ static void arrange_Widget_(iWidget *d) { | |||
703 | iBool sizeChanged = iFalse; | 711 | iBool sizeChanged = iFalse; |
704 | if (child->flags & expand_WidgetFlag) { | 712 | if (child->flags & expand_WidgetFlag) { |
705 | if (d->flags & arrangeHorizontal_WidgetFlag) { | 713 | if (d->flags & arrangeHorizontal_WidgetFlag) { |
706 | sizeChanged |= setWidth_Widget_(child, avail.x); | 714 | const int fracti = (int) (fract[0] += availFract[0]); |
715 | fract[0] -= fracti; | ||
716 | sizeChanged |= setWidth_Widget_(child, avail.x + fracti); | ||
707 | sizeChanged |= setHeight_Widget_(child, height_Rect(innerRect)); | 717 | sizeChanged |= setHeight_Widget_(child, height_Rect(innerRect)); |
708 | } | 718 | } |
709 | else if (d->flags & arrangeVertical_WidgetFlag) { | 719 | else if (d->flags & arrangeVertical_WidgetFlag) { |
710 | sizeChanged |= setWidth_Widget_(child, width_Rect(innerRect)); | 720 | sizeChanged |= setWidth_Widget_(child, width_Rect(innerRect)); |
711 | sizeChanged |= setHeight_Widget_(child, avail.y); | 721 | const int fracti = (int) (fract[1] += availFract[1]); |
722 | fract[1] -= fracti; | ||
723 | sizeChanged |= setHeight_Widget_(child, avail.y + fracti); | ||
712 | } | 724 | } |
713 | } | 725 | } |
714 | if (sizeChanged) { | 726 | if (sizeChanged) { |
diff --git a/src/updater.c b/src/updater.c index 706de31d..0e813231 100644 --- a/src/updater.c +++ b/src/updater.c | |||
@@ -67,6 +67,9 @@ static const char *signaturePublicKeyPem_ = | |||
67 | void init_Updater(void) { | 67 | void init_Updater(void) { |
68 | win_sparkle_set_appcast_url("https://etc.skyjake.fi/lagrange/appcast-windows.xml"); | 68 | win_sparkle_set_appcast_url("https://etc.skyjake.fi/lagrange/appcast-windows.xml"); |
69 | win_sparkle_set_dsa_pub_pem(signaturePublicKeyPem_); | 69 | win_sparkle_set_dsa_pub_pem(signaturePublicKeyPem_); |
70 | win_sparkle_set_app_details(L"Jaakko Keränen", | ||
71 | L"Lagrange", | ||
72 | L"" LAGRANGE_APP_VERSION); | ||
70 | win_sparkle_init(); | 73 | win_sparkle_init(); |
71 | } | 74 | } |
72 | 75 | ||