From 7dc58b8f8e0ea1f8b52c532f560bea9df413a29c Mon Sep 17 00:00:00 2001 From: kmwallio Date: Fri, 5 Mar 2021 22:30:53 -0800 Subject: [PATCH 01/50] Add feedback link, update flatpak to latest pandoc, add link to wordpres in readme --- README.md | 2 +- flatpak/com.github.kmwallio.thiefmd.json | 7 +++---- src/Widgets/About.vala | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 2d2d198..7118648 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ yay -S thiefmd * Sheet Management * Shortcut key bindings * Themes - * Export (DocX, ePUB, PDF, HTML, Markdown, [WriteFreely](https://thiefmd.com/tips/blogging-with-writefreely), [Ghost](https://thiefmd.com/tips/blogging-with-ghost), Wordpress, and more...) + * Export (DocX, ePUB, PDF, HTML, Markdown, [WriteFreely](https://thiefmd.com/tips/blogging-with-writefreely), [Ghost](https://thiefmd.com/tips/blogging-with-ghost), [Wordpress](https://wordpress.org), and more...) * Import (DocX, ePUB, HTML, rst, textile, and more...) * Search `Ctrl+F` for the current file, and `Ctrl+Shift+F` for the *entire* library * Writing Statistics diff --git a/flatpak/com.github.kmwallio.thiefmd.json b/flatpak/com.github.kmwallio.thiefmd.json index a64678e..666f243 100644 --- a/flatpak/com.github.kmwallio.thiefmd.json +++ b/flatpak/com.github.kmwallio.thiefmd.json @@ -76,13 +76,12 @@ ], "buildsystem": "simple", "build-commands": [ - "mv -v bin/pandoc /app/bin/pandoc", - "mv -v bin/pandoc-citeproc /app/bin/pandoc-citeproc" + "mv -v bin/pandoc /app/bin/pandoc" ], "sources": [{ "type": "archive", - "url": "https://github.com/jgm/pandoc/releases/download/2.10.1/pandoc-2.10.1-linux-amd64.tar.gz", - "sha256": "a3ab481ad53f5568d7ec5263fbdd3478fb320d13b5d61a92fb5cee410186bd86" + "url": "https://github.com/jgm/pandoc/releases/download/2.11.4/pandoc-2.11.4-linux-amd64.tar.gz", + "sha256": "b15ce6009ab833fb51fc472bf8bb9683cd2bd7f8ac948f3ddeb6b8f9a366d69a" }] }, "shared-modules/libsecret/libsecret.json", diff --git a/src/Widgets/About.vala b/src/Widgets/About.vala index d21eeca..aa70fb7 100644 --- a/src/Widgets/About.vala +++ b/src/Widgets/About.vala @@ -91,7 +91,7 @@ namespace ThiefMD.Widgets { version_label.hexpand = true; grid.attach (version_label, 1, 3); // website = ThiefProperties.URL; - var website_label = new Gtk.Label ("" + ThiefProperties.URL + ""); + var website_label = new Gtk.Label ("" + ThiefProperties.URL + " - Feedback"); website_label.hexpand = true; website_label.use_markup = true; grid.attach (website_label, 1, 5); From 2b9b4ca87da8be293438a9319b8c1b39d2bd4363 Mon Sep 17 00:00:00 2001 From: kmwallio Date: Fri, 5 Mar 2021 22:41:27 -0800 Subject: [PATCH 02/50] Update language files --- po/com.github.kmwallio.thiefmd.pot | 184 +++++++++++++++------------- po/en_GB.po | 185 ++++++++++++++++------------- po/es.po | 185 ++++++++++++++++------------- po/fr.po | 185 ++++++++++++++++------------- po/sk.po | 184 +++++++++++++++------------- 5 files changed, 503 insertions(+), 420 deletions(-) diff --git a/po/com.github.kmwallio.thiefmd.pot b/po/com.github.kmwallio.thiefmd.pot index e35fc9b..6d4b81e 100644 --- a/po/com.github.kmwallio.thiefmd.pot +++ b/po/com.github.kmwallio.thiefmd.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: com.github.kmwallio.thiefmd\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-02-06 14:06-0800\n" +"POT-Creation-Date: 2021-03-05 22:38-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,46 +17,47 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: src/ThiefApp.vala:170 src/Controllers/UI.vala:450 +#: src/ThiefApp.vala:168 src/Controllers/UI.vala:497 #: src/Widgets/Library.vala:69 msgid "Library" msgstr "" -#: src/ThiefApp.vala:171 src/Controllers/UI.vala:408 -#: src/Controllers/UI.vala:427 +#: src/ThiefApp.vala:169 src/Controllers/UI.vala:455 +#: src/Controllers/UI.vala:474 msgid "Editor" msgstr "" -#: src/ThiefApp.vala:172 src/Controllers/UI.vala:416 +#: src/ThiefApp.vala:170 src/Controllers/UI.vala:463 msgid "Search" msgstr "" -#: src/ThiefApp.vala:265 +#: src/ThiefApp.vala:263 msgid "HTML" msgstr "" -#: src/ThiefApp.vala:266 +#: src/ThiefApp.vala:264 msgid "PDF" msgstr "" -#: src/ThiefApp.vala:267 +#: src/ThiefApp.vala:265 msgid "MHTML" msgstr "" -#: src/ThiefApp.vala:268 +#: src/ThiefApp.vala:266 msgid "Markdown" msgstr "" -#: src/ThiefApp.vala:269 +#: src/ThiefApp.vala:267 msgid "LaTeX" msgstr "" -#: src/ThiefApp.vala:270 +#: src/ThiefApp.vala:268 msgid "DocX" msgstr "" +#. Visual Settings #. Arbitrary strings -#: src/Constants/AppSettings.vala:94 +#: src/Constants/AppSettings.vala:97 #, c-format msgid "" "# Click on a sheet to get started\n" @@ -79,7 +80,7 @@ msgstr "" #: src/Controllers/Dialogs.vala:27 src/Controllers/Dialogs.vala:55 #: src/Connections/WriteFreelyConnection.vala:129 -#: src/Connections/GhostConnection.vala:112 +#: src/Connections/GhostConnection.vala:111 msgid "_Cancel" msgstr "" @@ -152,40 +153,48 @@ msgstr "" msgid "No file opened" msgstr "" +#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 +#: src/Widgets/PublisherPreviewWindow.vala:251 +#: src/Widgets/ProjectStatistics.vala:71 +msgid "Close" +msgstr "" + #: src/Connections/WriteFreelyConnection.vala:100 msgid "Username" msgstr "" #: src/Connections/WriteFreelyConnection.vala:104 -#: src/Connections/GhostConnection.vala:87 +#: src/Connections/GhostConnection.vala:86 msgid "Password" msgstr "" #: src/Connections/WriteFreelyConnection.vala:109 -#: src/Connections/GhostConnection.vala:92 +#: src/Connections/GhostConnection.vala:91 msgid "Endpoint" msgstr "" #: src/Connections/WriteFreelyConnection.vala:127 -#: src/Connections/GhostConnection.vala:110 +#: src/Connections/GhostConnection.vala:109 msgid "_Add Account" msgstr "" -#: src/Connections/WriteFreelyConnection.vala:279 -#: src/Connections/GhostConnection.vala:301 +#: src/Connections/WriteFreelyConnection.vala:278 +#: src/Connections/GhostConnection.vala:297 src/Widgets/Preferences.vala:83 +#: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 msgid " Published" msgstr "" -#: src/Connections/WriteFreelyConnection.vala:279 -#: src/Connections/GhostConnection.vala:301 +#: src/Connections/WriteFreelyConnection.vala:278 +#: src/Connections/GhostConnection.vala:297 src/Widgets/Preferences.vala:83 +#: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 msgid "Post Published" msgstr "" -#: src/Connections/GhostConnection.vala:83 +#: src/Connections/GhostConnection.vala:82 msgid "E-mail" msgstr "" -#: src/Connections/GhostConnection.vala:218 +#: src/Connections/GhostConnection.vala:214 msgid "Uploading images" msgstr "" @@ -243,24 +252,19 @@ msgstr "" msgid "Credits" msgstr "" -#: src/Widgets/About.vala:59 src/Widgets/PublisherPreviewWindow.vala:251 -#: src/Widgets/ProjectStatistics.vala:71 -msgid "Close" -msgstr "" - -#: src/Widgets/HeaderBar.vala:83 +#: src/Widgets/HeaderBar.vala:86 msgid "New Sheet" msgstr "" -#: src/Widgets/HeaderBar.vala:95 +#: src/Widgets/HeaderBar.vala:98 msgid "Change View" msgstr "" -#: src/Widgets/HeaderBar.vala:103 +#: src/Widgets/HeaderBar.vala:106 msgid "Add Folder to Library" msgstr "" -#: src/Widgets/HeaderBar.vala:126 +#: src/Widgets/HeaderBar.vala:129 msgid "Settings" msgstr "" @@ -314,19 +318,19 @@ msgstr "" msgid "Move to Trash" msgstr "" -#: src/Widgets/Editor.vala:218 +#: src/Widgets/Editor.vala:379 msgid "_Load from disk" msgstr "" -#: src/Widgets/Editor.vala:220 +#: src/Widgets/Editor.vala:381 msgid "_Keep what's in editor" msgstr "" -#: src/Widgets/Editor.vala:1072 +#: src/Widgets/Editor.vala:1539 msgid "Insert Datetime" msgstr "" -#: src/Widgets/Editor.vala:1090 +#: src/Widgets/Editor.vala:1557 msgid "Insert YAML Frontmatter" msgstr "" @@ -382,180 +386,192 @@ msgstr "" msgid "Create" msgstr "" -#: src/Widgets/Preferences.vala:54 +#: src/Widgets/Preferences.vala:50 msgid "Current Connections" msgstr "" -#: src/Widgets/Preferences.vala:55 +#: src/Widgets/Preferences.vala:51 msgid "Click on a connection to remove." msgstr "" -#: src/Widgets/Preferences.vala:58 +#: src/Widgets/Preferences.vala:54 msgid "Add Connection" msgstr "" -#: src/Widgets/Preferences.vala:59 +#: src/Widgets/Preferences.vala:55 msgid "Choose your blogging software." msgstr "" -#: src/Widgets/Preferences.vala:61 +#: src/Widgets/Preferences.vala:57 msgid " WriteFreely" msgstr "" -#: src/Widgets/Preferences.vala:84 +#: src/Widgets/Preferences.vala:91 msgid " ghost" msgstr "" -#: src/Widgets/Preferences.vala:146 +#: src/Widgets/Preferences.vala:125 +msgid " wordpress" +msgstr "" + +#: src/Widgets/Preferences.vala:206 msgid "_Remove" msgstr "" -#: src/Widgets/Preferences.vala:148 +#: src/Widgets/Preferences.vala:208 msgid "_Keep" msgstr "" -#: src/Widgets/Preferences.vala:187 +#: src/Widgets/Preferences.vala:247 msgid "Focus" msgstr "" -#: src/Widgets/Preferences.vala:192 +#: src/Widgets/Preferences.vala:252 msgid "None" msgstr "" -#: src/Widgets/Preferences.vala:193 +#: src/Widgets/Preferences.vala:253 msgid "Paragraph" msgstr "" -#: src/Widgets/Preferences.vala:194 +#: src/Widgets/Preferences.vala:254 msgid "Sentence" msgstr "" -#: src/Widgets/Preferences.vala:195 +#: src/Widgets/Preferences.vala:255 msgid "Word" msgstr "" -#: src/Widgets/Preferences.vala:223 +#: src/Widgets/Preferences.vala:283 msgid "Add New Theme" msgstr "" -#: src/Widgets/Preferences.vala:279 +#: src/Widgets/Preferences.vala:339 msgid "First Markdown File includes Author Metadata" msgstr "" -#: src/Widgets/Preferences.vala:281 +#: src/Widgets/Preferences.vala:341 msgid "" "First Markdown file includes Author metadata" msgstr "" -#: src/Widgets/Preferences.vala:297 +#: src/Widgets/Preferences.vala:357 msgid "Resolve full paths to resources" msgstr "" -#: src/Widgets/Preferences.vala:299 +#: src/Widgets/Preferences.vala:359 msgid "Resolve full paths to resources on export" msgstr "" -#: src/Widgets/Preferences.vala:314 +#: src/Widgets/Preferences.vala:374 msgid "Include YAML title as Heading" msgstr "" -#: src/Widgets/Preferences.vala:316 +#: src/Widgets/Preferences.vala:376 msgid "Include YAML title as H1 Heading" msgstr "" -#: src/Widgets/Preferences.vala:335 +#: src/Widgets/Preferences.vala:395 msgid "Page Break between Folders" msgstr "" -#: src/Widgets/Preferences.vala:337 +#: src/Widgets/Preferences.vala:397 msgid "Insert a Page Break after each folder" msgstr "" -#: src/Widgets/Preferences.vala:352 +#: src/Widgets/Preferences.vala:412 msgid "Page Break between Sheets" msgstr "" -#: src/Widgets/Preferences.vala:354 +#: src/Widgets/Preferences.vala:414 msgid "Insert a Page Break after each sheet" msgstr "" -#: src/Widgets/Preferences.vala:394 +#: src/Widgets/Preferences.vala:454 msgid "Side margins in PDF in inches" msgstr "" -#: src/Widgets/Preferences.vala:414 +#: src/Widgets/Preferences.vala:474 msgid "Top & Bottom margins in PDF in inches" msgstr "" -#: src/Widgets/Preferences.vala:440 +#: src/Widgets/Preferences.vala:500 msgid "Add Export Style" msgstr "" -#: src/Widgets/Preferences.vala:476 +#: src/Widgets/Preferences.vala:536 msgid "Enable spellcheck" msgstr "" -#: src/Widgets/Preferences.vala:478 +#: src/Widgets/Preferences.vala:538 msgid "Check document spelling" msgstr "" -#: src/Widgets/Preferences.vala:492 +#: src/Widgets/Preferences.vala:552 msgid "Enable Write-Good" msgstr "" -#: src/Widgets/Preferences.vala:496 +#: src/Widgets/Preferences.vala:556 msgid "Enable Write-Good: recommendations for sentence structure" msgstr "" -#: src/Widgets/Preferences.vala:511 +#: src/Widgets/Preferences.vala:571 msgid "Toggle typewriter scrolling" msgstr "" -#: src/Widgets/Preferences.vala:512 +#: src/Widgets/Preferences.vala:572 msgid "Enable typewriter focus mode" msgstr "" -#: src/Widgets/Preferences.vala:532 +#: src/Widgets/Preferences.vala:592 msgid "Toggle writing statistics" msgstr "" -#: src/Widgets/Preferences.vala:533 +#: src/Widgets/Preferences.vala:593 msgid "Show writing statistics" msgstr "" -#: src/Widgets/Preferences.vala:557 +#: src/Widgets/Preferences.vala:617 msgid "Toggle interface theming" msgstr "" -#: src/Widgets/Preferences.vala:558 +#: src/Widgets/Preferences.vala:618 msgid "Apply theme to interface" msgstr "" -#: src/Widgets/Preferences.vala:577 +#: src/Widgets/Preferences.vala:637 msgid "Toggle auto-hide headerbar" msgstr "" -#: src/Widgets/Preferences.vala:579 +#: src/Widgets/Preferences.vala:639 msgid "Automatically hide headerbar" msgstr "" -#: src/Widgets/Preferences.vala:593 +#: src/Widgets/Preferences.vala:653 msgid "Hide title" msgstr "" -#: src/Widgets/Preferences.vala:595 +#: src/Widgets/Preferences.vala:655 msgid "Remove ThiefMD branding" msgstr "" -#: src/Widgets/Preferences.vala:609 +#: src/Widgets/Preferences.vala:669 msgid "Toggle library order" msgstr "" -#: src/Widgets/Preferences.vala:611 +#: src/Widgets/Preferences.vala:671 msgid "Keep library order" msgstr "" +#: src/Widgets/Preferences.vala:685 +msgid "Toggle experimental features" +msgstr "" + +#: src/Widgets/Preferences.vala:687 +msgid "Enable experimental features" +msgstr "" + #: src/Widgets/PublisherPreviewWindow.vala:60 #: src/Widgets/PublisherPreviewWindow.vala:190 #: src/Widgets/QuickPreferences.vala:81 src/Widgets/QuickPreferences.vala:163 @@ -678,7 +694,7 @@ msgstr "" msgid "Font Selector" msgstr "" -#: src/Widgets/ThemeSelector.vala:321 +#: src/Widgets/ThemeSelector.vala:320 msgid "" "Download more themes.\n" "Stored in Author metadata" @@ -451,114 +460,122 @@ msgstr "" "First Markdown file includes Author metadata" -#: src/Widgets/Preferences.vala:297 +#: src/Widgets/Preferences.vala:357 msgid "Resolve full paths to resources" msgstr "Resolve full paths to local resources" -#: src/Widgets/Preferences.vala:299 +#: src/Widgets/Preferences.vala:359 msgid "Resolve full paths to resources on export" msgstr "Resolve full paths to local resources on export" -#: src/Widgets/Preferences.vala:314 +#: src/Widgets/Preferences.vala:374 msgid "Include YAML title as Heading" msgstr "Include YAML title as Heading" -#: src/Widgets/Preferences.vala:316 +#: src/Widgets/Preferences.vala:376 msgid "Include YAML title as H1 Heading" msgstr "Include YAML title as H1 Heading" -#: src/Widgets/Preferences.vala:335 +#: src/Widgets/Preferences.vala:395 msgid "Page Break between Folders" msgstr "Page Break between Folders" -#: src/Widgets/Preferences.vala:337 +#: src/Widgets/Preferences.vala:397 msgid "Insert a Page Break after each folder" msgstr "Insert a Page Break after each folder" -#: src/Widgets/Preferences.vala:352 +#: src/Widgets/Preferences.vala:412 msgid "Page Break between Sheets" msgstr "Page Break between Sheets" -#: src/Widgets/Preferences.vala:354 +#: src/Widgets/Preferences.vala:414 msgid "Insert a Page Break after each sheet" msgstr "Insert a Page Break after each sheet" -#: src/Widgets/Preferences.vala:394 +#: src/Widgets/Preferences.vala:454 msgid "Side margins in PDF in inches" msgstr "Side margins in PDF in inches" -#: src/Widgets/Preferences.vala:414 +#: src/Widgets/Preferences.vala:474 msgid "Top & Bottom margins in PDF in inches" msgstr "Top and Bottom margins in PDF in inches" -#: src/Widgets/Preferences.vala:440 +#: src/Widgets/Preferences.vala:500 msgid "Add Export Style" msgstr "Add Export Style" -#: src/Widgets/Preferences.vala:476 +#: src/Widgets/Preferences.vala:536 msgid "Enable spellcheck" msgstr "Enable Spellcheck" -#: src/Widgets/Preferences.vala:478 +#: src/Widgets/Preferences.vala:538 msgid "Check document spelling" msgstr "Check document spelling" -#: src/Widgets/Preferences.vala:492 +#: src/Widgets/Preferences.vala:552 msgid "Enable Write-Good" msgstr "Enable Write-Good" -#: src/Widgets/Preferences.vala:496 +#: src/Widgets/Preferences.vala:556 msgid "Enable Write-Good: recommendations for sentence structure" msgstr "Enable Write-Good: recommendations for sentence structure" -#: src/Widgets/Preferences.vala:511 +#: src/Widgets/Preferences.vala:571 msgid "Toggle typewriter scrolling" msgstr "Toggle typewriter scrolling" -#: src/Widgets/Preferences.vala:512 +#: src/Widgets/Preferences.vala:572 msgid "Enable typewriter focus mode" msgstr "Enable typewriter focus mode" -#: src/Widgets/Preferences.vala:532 +#: src/Widgets/Preferences.vala:592 msgid "Toggle writing statistics" msgstr "Toggle writing statistics" -#: src/Widgets/Preferences.vala:533 +#: src/Widgets/Preferences.vala:593 msgid "Show writing statistics" msgstr "Show writing statistics" -#: src/Widgets/Preferences.vala:557 +#: src/Widgets/Preferences.vala:617 msgid "Toggle interface theming" msgstr "Toggle interface theming" -#: src/Widgets/Preferences.vala:558 +#: src/Widgets/Preferences.vala:618 msgid "Apply theme to interface" msgstr "Apply theme to interface" -#: src/Widgets/Preferences.vala:577 +#: src/Widgets/Preferences.vala:637 msgid "Toggle auto-hide headerbar" msgstr "Toggle auto-hide headerbar" -#: src/Widgets/Preferences.vala:579 +#: src/Widgets/Preferences.vala:639 msgid "Automatically hide headerbar" msgstr "Automatically hide headerbar" -#: src/Widgets/Preferences.vala:593 +#: src/Widgets/Preferences.vala:653 msgid "Hide title" msgstr "Hide title" -#: src/Widgets/Preferences.vala:595 +#: src/Widgets/Preferences.vala:655 msgid "Remove ThiefMD branding" msgstr "Remove ThiefMD branding" -#: src/Widgets/Preferences.vala:609 +#: src/Widgets/Preferences.vala:669 msgid "Toggle library order" msgstr "Toggle library order" -#: src/Widgets/Preferences.vala:611 +#: src/Widgets/Preferences.vala:671 msgid "Keep library order" msgstr "Keep library order" +#: src/Widgets/Preferences.vala:685 +msgid "Toggle experimental features" +msgstr "" + +#: src/Widgets/Preferences.vala:687 +msgid "Enable experimental features" +msgstr "" + #: src/Widgets/PublisherPreviewWindow.vala:60 #: src/Widgets/PublisherPreviewWindow.vala:190 #: src/Widgets/QuickPreferences.vala:81 src/Widgets/QuickPreferences.vala:163 @@ -687,7 +704,7 @@ msgstr "" msgid "Font Selector" msgstr "Font Selector" -#: src/Widgets/ThemeSelector.vala:321 +#: src/Widgets/ThemeSelector.vala:320 msgid "" "Download more themes.\n" "Stored in Author metadata" @@ -443,114 +452,122 @@ msgstr "" "El primer archivo de Markdown incluye metadatos del autor " -#: src/Widgets/Preferences.vala:297 +#: src/Widgets/Preferences.vala:357 msgid "Resolve full paths to resources" msgstr "Resolver caminos completos hacia los recursos" -#: src/Widgets/Preferences.vala:299 +#: src/Widgets/Preferences.vala:359 msgid "Resolve full paths to resources on export" msgstr "Resuelva rutas completas a los recursos en la exportación" -#: src/Widgets/Preferences.vala:314 +#: src/Widgets/Preferences.vala:374 msgid "Include YAML title as Heading" msgstr "Incluir título YAML como título" -#: src/Widgets/Preferences.vala:316 +#: src/Widgets/Preferences.vala:376 msgid "Include YAML title as H1 Heading" msgstr "Incluya el título YAML como título H1" -#: src/Widgets/Preferences.vala:335 +#: src/Widgets/Preferences.vala:395 msgid "Page Break between Folders" msgstr "Salto de página entre carpetas" -#: src/Widgets/Preferences.vala:337 +#: src/Widgets/Preferences.vala:397 msgid "Insert a Page Break after each folder" msgstr "Insertar un salto de página después de cada carpeta" -#: src/Widgets/Preferences.vala:352 +#: src/Widgets/Preferences.vala:412 msgid "Page Break between Sheets" msgstr "Salto de página entre hojas" -#: src/Widgets/Preferences.vala:354 +#: src/Widgets/Preferences.vala:414 msgid "Insert a Page Break after each sheet" msgstr "Insertar un salto de página después de cada hoja" -#: src/Widgets/Preferences.vala:394 +#: src/Widgets/Preferences.vala:454 msgid "Side margins in PDF in inches" msgstr "Márgenes laterales en PDF en pulgadas" -#: src/Widgets/Preferences.vala:414 +#: src/Widgets/Preferences.vala:474 msgid "Top & Bottom margins in PDF in inches" msgstr "Márgenes superior e inferior en PDF en pulgadas" -#: src/Widgets/Preferences.vala:440 +#: src/Widgets/Preferences.vala:500 msgid "Add Export Style" msgstr "Agregar estilo de exportación" -#: src/Widgets/Preferences.vala:476 +#: src/Widgets/Preferences.vala:536 msgid "Enable spellcheck" msgstr "Habilitar el corrector ortográfico" -#: src/Widgets/Preferences.vala:478 +#: src/Widgets/Preferences.vala:538 msgid "Check document spelling" msgstr "Revisar la ortografía del documento" -#: src/Widgets/Preferences.vala:492 +#: src/Widgets/Preferences.vala:552 msgid "Enable Write-Good" msgstr "Habilitar escritura buena" -#: src/Widgets/Preferences.vala:496 +#: src/Widgets/Preferences.vala:556 msgid "Enable Write-Good: recommendations for sentence structure" msgstr "Habilitar Write-Good: recomendaciones para la estructura de la oración" -#: src/Widgets/Preferences.vala:511 +#: src/Widgets/Preferences.vala:571 msgid "Toggle typewriter scrolling" msgstr "Alternar el desplazamiento de la máquina de escribir" -#: src/Widgets/Preferences.vala:512 +#: src/Widgets/Preferences.vala:572 msgid "Enable typewriter focus mode" msgstr "Habilitar el modo de enfoque de máquina de escribir" -#: src/Widgets/Preferences.vala:532 +#: src/Widgets/Preferences.vala:592 msgid "Toggle writing statistics" msgstr "Alternar escritura de estadísticas" -#: src/Widgets/Preferences.vala:533 +#: src/Widgets/Preferences.vala:593 msgid "Show writing statistics" msgstr "Mostrar estadísticas de escritura" -#: src/Widgets/Preferences.vala:557 +#: src/Widgets/Preferences.vala:617 msgid "Toggle interface theming" msgstr "Alternar el tema de la interfaz" -#: src/Widgets/Preferences.vala:558 +#: src/Widgets/Preferences.vala:618 msgid "Apply theme to interface" msgstr "Aplicar tema a la interfaz" -#: src/Widgets/Preferences.vala:577 +#: src/Widgets/Preferences.vala:637 msgid "Toggle auto-hide headerbar" msgstr "Alternar ocultar automáticamente la barra de encabezado" -#: src/Widgets/Preferences.vala:579 +#: src/Widgets/Preferences.vala:639 msgid "Automatically hide headerbar" msgstr "Ocultar automáticamente la barra de encabezado" -#: src/Widgets/Preferences.vala:593 +#: src/Widgets/Preferences.vala:653 msgid "Hide title" msgstr "Ocultar título" -#: src/Widgets/Preferences.vala:595 +#: src/Widgets/Preferences.vala:655 msgid "Remove ThiefMD branding" msgstr "Eliminar la marca ThiefMD" -#: src/Widgets/Preferences.vala:609 +#: src/Widgets/Preferences.vala:669 msgid "Toggle library order" msgstr "Alternar orden de biblioteca" -#: src/Widgets/Preferences.vala:611 +#: src/Widgets/Preferences.vala:671 msgid "Keep library order" msgstr "Mantener el orden de la biblioteca" +#: src/Widgets/Preferences.vala:685 +msgid "Toggle experimental features" +msgstr "" + +#: src/Widgets/Preferences.vala:687 +msgid "Enable experimental features" +msgstr "" + #: src/Widgets/PublisherPreviewWindow.vala:60 #: src/Widgets/PublisherPreviewWindow.vala:190 #: src/Widgets/QuickPreferences.vala:81 src/Widgets/QuickPreferences.vala:163 @@ -679,7 +696,7 @@ msgstr "" msgid "Font Selector" msgstr "Selector de fuentes" -#: src/Widgets/ThemeSelector.vala:321 +#: src/Widgets/ThemeSelector.vala:320 msgid "" "Download more themes.\n" "Stored in Author metadata" @@ -453,118 +462,126 @@ msgstr "" "Le 1er fichier Markdown inclut les métadonnées d'auteur" -#: src/Widgets/Preferences.vala:297 +#: src/Widgets/Preferences.vala:357 msgid "Resolve full paths to resources" msgstr "" -#: src/Widgets/Preferences.vala:299 +#: src/Widgets/Preferences.vala:359 msgid "Resolve full paths to resources on export" msgstr "" -#: src/Widgets/Preferences.vala:314 +#: src/Widgets/Preferences.vala:374 msgid "Include YAML title as Heading" msgstr "Inlcure les titres YAML en tant que Titre" -#: src/Widgets/Preferences.vala:316 +#: src/Widgets/Preferences.vala:376 msgid "Include YAML title as H1 Heading" msgstr "Inlcure les titres YAML en tant que Titre de niveau 1" -#: src/Widgets/Preferences.vala:335 +#: src/Widgets/Preferences.vala:395 msgid "Page Break between Folders" msgstr "Saut de page entre les dossiers" -#: src/Widgets/Preferences.vala:337 +#: src/Widgets/Preferences.vala:397 msgid "Insert a Page Break after each folder" msgstr "Insérer un saut de page après chaque dossier" -#: src/Widgets/Preferences.vala:352 +#: src/Widgets/Preferences.vala:412 msgid "Page Break between Sheets" msgstr "Saut de page entre les Feuilles" -#: src/Widgets/Preferences.vala:354 +#: src/Widgets/Preferences.vala:414 msgid "Insert a Page Break after each sheet" msgstr "Insérer un saut de page entre les Feuilles" -#: src/Widgets/Preferences.vala:394 +#: src/Widgets/Preferences.vala:454 msgid "Side margins in PDF in inches" msgstr "Marges des côtés du PDF (inches)" -#: src/Widgets/Preferences.vala:414 +#: src/Widgets/Preferences.vala:474 msgid "Top & Bottom margins in PDF in inches" msgstr "Marges du haut et du bas du PDF (inches)" -#: src/Widgets/Preferences.vala:440 +#: src/Widgets/Preferences.vala:500 msgid "Add Export Style" msgstr "Ajouter un Style d'exportation" -#: src/Widgets/Preferences.vala:476 +#: src/Widgets/Preferences.vala:536 msgid "Enable spellcheck" msgstr "Activer le vérificateur orthographique" -#: src/Widgets/Preferences.vala:478 +#: src/Widgets/Preferences.vala:538 msgid "Check document spelling" msgstr "Vérifier l'orthographe" -#: src/Widgets/Preferences.vala:492 +#: src/Widgets/Preferences.vala:552 #, fuzzy msgid "Enable Write-Good" msgstr "Activer Write-Good" -#: src/Widgets/Preferences.vala:496 +#: src/Widgets/Preferences.vala:556 #, fuzzy msgid "Enable Write-Good: recommendations for sentence structure" msgstr "Activer Write-Good: recommandations quant à la structure des phrases" -#: src/Widgets/Preferences.vala:511 +#: src/Widgets/Preferences.vala:571 msgid "Toggle typewriter scrolling" msgstr "(Dés)activer le défilement machine à écrire" -#: src/Widgets/Preferences.vala:512 +#: src/Widgets/Preferences.vala:572 msgid "Enable typewriter focus mode" msgstr "Activer le mode focus" -#: src/Widgets/Preferences.vala:532 +#: src/Widgets/Preferences.vala:592 msgid "Toggle writing statistics" msgstr "(Dés)activer les statistiques d'écriture" -#: src/Widgets/Preferences.vala:533 +#: src/Widgets/Preferences.vala:593 msgid "Show writing statistics" msgstr "Afficher les statistiques d'écriture" -#: src/Widgets/Preferences.vala:557 +#: src/Widgets/Preferences.vala:617 msgid "Toggle interface theming" msgstr "(Dés)activer le thème de l'interface" -#: src/Widgets/Preferences.vala:558 +#: src/Widgets/Preferences.vala:618 msgid "Apply theme to interface" msgstr "Appliquer le thème à l'interface" -#: src/Widgets/Preferences.vala:577 +#: src/Widgets/Preferences.vala:637 msgid "Toggle auto-hide headerbar" msgstr "(Dés)activer le masquage auto de la barre de titre" -#: src/Widgets/Preferences.vala:579 +#: src/Widgets/Preferences.vala:639 msgid "Automatically hide headerbar" msgstr "Masquer automatiquement la barre de titre" -#: src/Widgets/Preferences.vala:593 +#: src/Widgets/Preferences.vala:653 msgid "Hide title" msgstr "Masquer le titre" -#: src/Widgets/Preferences.vala:595 +#: src/Widgets/Preferences.vala:655 #, fuzzy msgid "Remove ThiefMD branding" msgstr "Enlever le branding ThiefMD" -#: src/Widgets/Preferences.vala:609 +#: src/Widgets/Preferences.vala:669 #, fuzzy msgid "Toggle library order" msgstr "Basculer l'ordre de la bibliothèque" -#: src/Widgets/Preferences.vala:611 +#: src/Widgets/Preferences.vala:671 msgid "Keep library order" msgstr "Conserver l'ordre de la bibliothèque" +#: src/Widgets/Preferences.vala:685 +msgid "Toggle experimental features" +msgstr "" + +#: src/Widgets/Preferences.vala:687 +msgid "Enable experimental features" +msgstr "" + #: src/Widgets/PublisherPreviewWindow.vala:60 #: src/Widgets/PublisherPreviewWindow.vala:190 #: src/Widgets/QuickPreferences.vala:81 src/Widgets/QuickPreferences.vala:163 @@ -693,7 +710,7 @@ msgstr "" msgid "Font Selector" msgstr "Sélecteur de police" -#: src/Widgets/ThemeSelector.vala:321 +#: src/Widgets/ThemeSelector.vala:320 msgid "" "Download more themes.\n" "Stored in Author metadata" msgstr "" -#: src/Widgets/Preferences.vala:297 +#: src/Widgets/Preferences.vala:357 msgid "Resolve full paths to resources" msgstr "" -#: src/Widgets/Preferences.vala:299 +#: src/Widgets/Preferences.vala:359 msgid "Resolve full paths to resources on export" msgstr "" -#: src/Widgets/Preferences.vala:314 +#: src/Widgets/Preferences.vala:374 msgid "Include YAML title as Heading" msgstr "" -#: src/Widgets/Preferences.vala:316 +#: src/Widgets/Preferences.vala:376 msgid "Include YAML title as H1 Heading" msgstr "" -#: src/Widgets/Preferences.vala:335 +#: src/Widgets/Preferences.vala:395 msgid "Page Break between Folders" msgstr "" -#: src/Widgets/Preferences.vala:337 +#: src/Widgets/Preferences.vala:397 msgid "Insert a Page Break after each folder" msgstr "" -#: src/Widgets/Preferences.vala:352 +#: src/Widgets/Preferences.vala:412 msgid "Page Break between Sheets" msgstr "" -#: src/Widgets/Preferences.vala:354 +#: src/Widgets/Preferences.vala:414 msgid "Insert a Page Break after each sheet" msgstr "" -#: src/Widgets/Preferences.vala:394 +#: src/Widgets/Preferences.vala:454 msgid "Side margins in PDF in inches" msgstr "" -#: src/Widgets/Preferences.vala:414 +#: src/Widgets/Preferences.vala:474 msgid "Top & Bottom margins in PDF in inches" msgstr "" -#: src/Widgets/Preferences.vala:440 +#: src/Widgets/Preferences.vala:500 msgid "Add Export Style" msgstr "" -#: src/Widgets/Preferences.vala:476 +#: src/Widgets/Preferences.vala:536 msgid "Enable spellcheck" msgstr "Povoliť kontrolu pravopisu" -#: src/Widgets/Preferences.vala:478 +#: src/Widgets/Preferences.vala:538 msgid "Check document spelling" msgstr "Kontrolovať pravopis dokumentu" -#: src/Widgets/Preferences.vala:492 +#: src/Widgets/Preferences.vala:552 msgid "Enable Write-Good" msgstr "" -#: src/Widgets/Preferences.vala:496 +#: src/Widgets/Preferences.vala:556 msgid "Enable Write-Good: recommendations for sentence structure" msgstr "" -#: src/Widgets/Preferences.vala:511 +#: src/Widgets/Preferences.vala:571 msgid "Toggle typewriter scrolling" msgstr "" -#: src/Widgets/Preferences.vala:512 +#: src/Widgets/Preferences.vala:572 msgid "Enable typewriter focus mode" msgstr "" -#: src/Widgets/Preferences.vala:532 +#: src/Widgets/Preferences.vala:592 msgid "Toggle writing statistics" msgstr "" -#: src/Widgets/Preferences.vala:533 +#: src/Widgets/Preferences.vala:593 msgid "Show writing statistics" msgstr "" -#: src/Widgets/Preferences.vala:557 +#: src/Widgets/Preferences.vala:617 msgid "Toggle interface theming" msgstr "" -#: src/Widgets/Preferences.vala:558 +#: src/Widgets/Preferences.vala:618 msgid "Apply theme to interface" msgstr "" -#: src/Widgets/Preferences.vala:577 +#: src/Widgets/Preferences.vala:637 msgid "Toggle auto-hide headerbar" msgstr "" -#: src/Widgets/Preferences.vala:579 +#: src/Widgets/Preferences.vala:639 msgid "Automatically hide headerbar" msgstr "" -#: src/Widgets/Preferences.vala:593 +#: src/Widgets/Preferences.vala:653 msgid "Hide title" msgstr "" -#: src/Widgets/Preferences.vala:595 +#: src/Widgets/Preferences.vala:655 msgid "Remove ThiefMD branding" msgstr "" -#: src/Widgets/Preferences.vala:609 +#: src/Widgets/Preferences.vala:669 msgid "Toggle library order" msgstr "" -#: src/Widgets/Preferences.vala:611 +#: src/Widgets/Preferences.vala:671 msgid "Keep library order" msgstr "" +#: src/Widgets/Preferences.vala:685 +msgid "Toggle experimental features" +msgstr "" + +#: src/Widgets/Preferences.vala:687 +msgid "Enable experimental features" +msgstr "" + #: src/Widgets/PublisherPreviewWindow.vala:60 #: src/Widgets/PublisherPreviewWindow.vala:190 #: src/Widgets/QuickPreferences.vala:81 src/Widgets/QuickPreferences.vala:163 @@ -670,7 +686,7 @@ msgstr "" msgid "Font Selector" msgstr "Výber písma" -#: src/Widgets/ThemeSelector.vala:321 +#: src/Widgets/ThemeSelector.vala:320 msgid "" "Download more themes.\n" "Stored in "; + public const string SUPPORTED_IMPORT_FILES = "*.docx;*.odt;*.html;*.tex;*.epub;*.textile;*.html;*.fb2;*.dbk;*.xml;*.opml;*.rst;"; public const string VERSION = Build.VERSION; public const Gtk.License LICENSE_TYPE = Gtk.License.GPL_3_0; public const string[] GIANTS = { diff --git a/src/Controllers/Dialogs.vala b/src/Controllers/Dialogs.vala index a3795fa..96b16c5 100644 --- a/src/Controllers/Dialogs.vala +++ b/src/Controllers/Dialogs.vala @@ -154,6 +154,21 @@ namespace ThiefMD.Controllers.Dialogs { filter1.add_pattern ("*.md"); filter1.add_pattern ("*.markdown"); chooser.add_filter (filter1); + } else { + if (ext.index_of (";") > 0) { + string[] extensions = ext.split (";"); + var filter1 = new Gtk.FileFilter (); + filter1.set_filter_name (_("Supported files")); + foreach (unowned string extension in extensions) { + filter1.add_pattern (extension); + } + chooser.add_filter (filter1); + } else { + var filter1 = new Gtk.FileFilter (); + filter1.set_filter_name (_("%s files").printf (ext)); + filter1.add_pattern (ext); + chooser.add_filter (filter1); + } } var filter = new Gtk.FileFilter (); diff --git a/src/Controllers/FileManager.vala b/src/Controllers/FileManager.vala index 2ea1c54..9f7ed98 100644 --- a/src/Controllers/FileManager.vala +++ b/src/Controllers/FileManager.vala @@ -26,22 +26,16 @@ namespace ThiefMD.Controllers.FileManager { public void import_file (string file_path, Sheets parent) { File import_f = File.new_for_path (file_path); string ext = file_path.substring (file_path.last_index_of (".") + 1).down (); - debug ("Importing (%s): %s", ext, import_f.get_path ()); + warning ("Importing (%s): %s", ext, import_f.get_path ()); + + if (ext.length >= 3) { + ext = "*." + ext + ";"; + warning (ext); + warning ("%d", ThiefProperties.SUPPORTED_IMPORT_FILES.index_of (ext)); + } // Supported import file extensions - if (ext == "docx" || - ext == "odt" || - ext == "html" || - ext == "tex" || - ext == "epub" || - ext == "textile" || - ext == "html" || - ext == "fb2" || - ext == "dbk" || - ext == "xml" || - ext == "opml" || - ext == "rst") - { + if (ThiefProperties.SUPPORTED_IMPORT_FILES.index_of (ext) >= 0) { Thinking worker = new Thinking (_("Importing File"), () => { string dest_name = import_f.get_basename (); dest_name = dest_name.substring (0, dest_name.last_index_of (".")); diff --git a/src/Controllers/SheetManager.vala b/src/Controllers/SheetManager.vala index 1d2c331..bf85ffa 100644 --- a/src/Controllers/SheetManager.vala +++ b/src/Controllers/SheetManager.vala @@ -273,9 +273,16 @@ namespace ThiefMD.Controllers.SheetManager { Mutex loading_sheets; public void set_sheets (Sheets? sheets) { _current_sheets = sheets; + _current_sheets.update_sheet_indicators (); UI.set_sheets (sheets); } + public void redraw_sheets () { + if (_current_sheets != null) { + _current_sheets.update_sheet_indicators (); + } + } + private bool preload_sheets () { warning ("Thread start"); if (_current_sheets == null) { diff --git a/src/Controllers/UI.vala b/src/Controllers/UI.vala index 4b27121..c2707a3 100644 --- a/src/Controllers/UI.vala +++ b/src/Controllers/UI.vala @@ -315,6 +315,8 @@ namespace ThiefMD.Controllers.UI { ThiefApp.get_instance ().stats_bar.show_statistics (); } + SheetManager.redraw_sheets (); + // Attempt to wait for app instance to be ready. if (!set_scheme) { Timeout.add (50, () => { diff --git a/src/Widgets/NewSheet.vala b/src/Widgets/NewSheet.vala index 23a4169..9a816b1 100644 --- a/src/Widgets/NewSheet.vala +++ b/src/Widgets/NewSheet.vala @@ -25,6 +25,7 @@ namespace ThiefMD.Widgets { public Gtk.Label _label; public Gtk.Entry _file_name; public Gtk.Button _create; + public Gtk.Button _import; public NewSheet () { _file_name = new Gtk.Entry (); @@ -32,6 +33,7 @@ namespace ThiefMD.Widgets { _file_name.activate.connect (new_file); _create = new Gtk.Button.with_label (_("Create")); + _import = new Gtk.Button.with_label (_("Import")); var menu_grid = new Gtk.Grid (); menu_grid.margin = 6; @@ -40,6 +42,7 @@ namespace ThiefMD.Widgets { menu_grid.orientation = Gtk.Orientation.VERTICAL; menu_grid.attach (_file_name, 0, 0, 2, 1); + menu_grid.attach (_import, 0, 1, 1, 1); menu_grid.attach (_create, 1, 1, 1, 1); menu_grid.show_all (); @@ -47,6 +50,13 @@ namespace ThiefMD.Widgets { add (menu_grid); _create.clicked.connect (new_file); + _import.clicked.connect (() => { + File import_file = Dialogs.display_open_dialog (ThiefProperties.SUPPORTED_IMPORT_FILES); + if (import_file != null && import_file.query_exists () && SheetManager.get_sheets () != null) { + this.hide (); + FileManager.import_file (import_file.get_path (), SheetManager.get_sheets ()); + } + }); } public void new_file () { diff --git a/src/Widgets/Preferences.vala b/src/Widgets/Preferences.vala index 29b2f20..9ffd731 100644 --- a/src/Widgets/Preferences.vala +++ b/src/Widgets/Preferences.vala @@ -288,7 +288,7 @@ namespace ThiefMD.Widgets { display_options.add (theme_selector); add_theme_button.clicked.connect (() => { - File new_theme = Dialogs.display_open_dialog (".ultheme"); + File new_theme = Dialogs.display_open_dialog ("*.ultheme"); if (new_theme != null && new_theme.query_exists ()) { try { File destination = File.new_for_path (Path.build_filename (UserData.style_path, new_theme.get_basename ())); @@ -502,7 +502,7 @@ namespace ThiefMD.Widgets { epub_setup.add (add_css_button); add_css_button.clicked.connect (() => { - File new_css_pkg = Dialogs.display_open_dialog (".*"); + File new_css_pkg = Dialogs.display_open_dialog (); if (new_css_pkg != null && new_css_pkg.query_exists ()) { FileManager.load_css_pkg (new_css_pkg); print_css_selector.refresh (); diff --git a/src/Widgets/Sheet.vala b/src/Widgets/Sheet.vala index f386150..9c12a83 100644 --- a/src/Widgets/Sheet.vala +++ b/src/Widgets/Sheet.vala @@ -30,6 +30,8 @@ namespace ThiefMD.Widgets { */ public class Sheet : Gtk.ToggleButton { private string _sheet_path; + private Gtk.Grid _button_grid; + private Gtk.Separator _button_separator; private Gtk.Label _label; private string _label_buffer; private Sheets _parent; @@ -46,6 +48,7 @@ namespace ThiefMD.Widgets { } else { header_context.remove_class ("thief-list-sheet-active"); } + redraw (); active = value; } @@ -56,6 +59,7 @@ namespace ThiefMD.Widgets { } public Sheet (string sheet_path, Sheets parent) { + var settings = AppSettings.get_default (); _sheet_path = sheet_path; _parent = parent; _sheet_title = ""; @@ -67,7 +71,17 @@ namespace ThiefMD.Widgets { _label.use_markup = true; _label.set_ellipsize (Pango.EllipsizeMode.END); _label.xalign = 0; - add(_label); + _button_grid = new Gtk.Grid (); + _button_grid.orientation = Gtk.Orientation.VERTICAL; + _button_grid.hexpand = true; + _button_grid.attach (_label, 0, 0); + _button_separator = new Gtk.Separator (Gtk.Orientation.HORIZONTAL); + _button_separator.hexpand = true; + if (!settings.ui_editor_theme) { + _button_grid.attach (_button_separator, 0, 1); + } + _button_grid.show_all (); + add (_button_grid); var header_context = this.get_style_context (); header_context.add_class (Gtk.STYLE_CLASS_FLAT); @@ -134,6 +148,13 @@ namespace ThiefMD.Widgets { _label_buffer = "" + _sheet_path.substring(_sheet_path.last_index_of (Path.DIR_SEPARATOR_S) + 1) + ""; } _label.set_label (_label_buffer); + + if (!settings.ui_editor_theme && !active && _button_separator.parent == null) { + _button_grid.attach (_button_separator, 0, 1); + } else if (active || settings.ui_editor_theme && _button_separator.parent != null) { + _button_grid.remove (_button_separator); + } + settings.writing_changed (); } diff --git a/src/Widgets/Sheets.vala b/src/Widgets/Sheets.vala index 8afee2d..3990d48 100644 --- a/src/Widgets/Sheets.vala +++ b/src/Widgets/Sheets.vala @@ -492,9 +492,17 @@ namespace ThiefMD.Widgets { save_metadata_file (true); } + public void update_sheet_indicators () { + foreach (var s in metadata.sheet_order) { + Sheet show = _sheets.get (s); + show.redraw (); + } + } + public void redraw_sheets () { foreach (var s in metadata.sheet_order) { Sheet show = _sheets.get (s); + show.redraw (); _view.remove (show); _view.add (show); } From 9a574a31f86a2d0d4fb9ff9fc4ad198412bf0280 Mon Sep 17 00:00:00 2001 From: kmwallio Date: Sat, 6 Mar 2021 13:14:38 -0800 Subject: [PATCH 04/50] Add menu item for open in file manager --- src/Widgets/Library.vala | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Widgets/Library.vala b/src/Widgets/Library.vala index 26c09f3..cf67002 100644 --- a/src/Widgets/Library.vala +++ b/src/Widgets/Library.vala @@ -509,6 +509,14 @@ namespace ThiefMD.Widgets { menu.add (new Gtk.SeparatorMenuItem ()); } + Gtk.MenuItem menu_open_item = new Gtk.MenuItem.with_label (_("Open in File Manager")); + menu_open_item.activate.connect (() => { + if (_selected != null && _all_sheets.find (_selected) != null) { + AppInfo.launch_default_for_uri ("file://%s".printf (_selected._path), null); + } + }); + menu.add (menu_open_item); + Gtk.MenuItem menu_add_item = new Gtk.MenuItem.with_label (_("Create Sub-Folder")); menu_add_item.activate.connect (() => { if (_selected != null && _all_sheets.find (_selected) != null) { From 54c69261a8807c6210d79a1d6a135cb2a87689b0 Mon Sep 17 00:00:00 2001 From: kmwallio Date: Sat, 6 Mar 2021 16:03:08 -0800 Subject: [PATCH 05/50] =?UTF-8?q?Add=20donate=20button=20=F0=9F=98=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/com.github.kmwallio.thiefmd.appdata.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/data/com.github.kmwallio.thiefmd.appdata.xml b/data/com.github.kmwallio.thiefmd.appdata.xml index 63372ec..e860ab0 100644 --- a/data/com.github.kmwallio.thiefmd.appdata.xml +++ b/data/com.github.kmwallio.thiefmd.appdata.xml @@ -16,6 +16,7 @@ https://thiefmd.com https://github.com/kmwallio/thiefmd/issues https://thiefmd.com/deets + https://github.com/sponsors/kmwallio mild From 5dbdffed6acebe94189b89cd5f2c9a7ee1265525 Mon Sep 17 00:00:00 2001 From: kmwallio Date: Sat, 6 Mar 2021 17:30:59 -0800 Subject: [PATCH 06/50] Update readme with future goals --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7118648..003ae75 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,8 @@ yay -S thiefmd ## Planning * Better library organization - * Dedicated Markdown Editor + * Enhanced Export Tooling + * Screenwriting Support ## Resources From b0232ef73d92c169c6f14ffbb1de1ef857e040d2 Mon Sep 17 00:00:00 2001 From: kmwallio Date: Sat, 6 Mar 2021 17:31:25 -0800 Subject: [PATCH 07/50] Add project notes to goals --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 003ae75..ee634a9 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,7 @@ yay -S thiefmd * Better library organization * Enhanced Export Tooling * Screenwriting Support + * Project Notes ## Resources From 4da212b9023ecf4984d680645b0b3328c8a31e1f Mon Sep 17 00:00:00 2001 From: kmwallio Date: Sat, 6 Mar 2021 17:31:56 -0800 Subject: [PATCH 08/50] Speed up performance when URL's are hidden --- src/Widgets/Editor.vala | 48 +++++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/src/Widgets/Editor.vala b/src/Widgets/Editor.vala index a0875c5..c4bed1f 100644 --- a/src/Widgets/Editor.vala +++ b/src/Widgets/Editor.vala @@ -1078,7 +1078,7 @@ namespace ThiefMD.Widgets { left_margin = m; right_margin = m; - update_heading_margins (); + update_heading_margins (UI.moving ()); typewriter_scrolling (); @@ -1087,8 +1087,35 @@ namespace ThiefMD.Widgets { move_typewriter_scolling (); } + private bool cursor_at_interesting_location = false; + private void cursor_update_heading_margins () { + var settings = AppSettings.get_default (); + + if (settings.experimental) { + var cursor = buffer.get_insert (); + Gtk.TextIter cursor_location; + buffer.get_iter_at_mark (out cursor_location, cursor); + if (cursor_location.has_tag (markdown_link) || cursor_location.has_tag (markdown_url)) { + update_heading_margins (); + cursor_at_interesting_location = true; + } else if (cursor_at_interesting_location) { + update_heading_margins (); + Gtk.TextIter before, after; + buffer.get_iter_at_mark (out before, cursor); + buffer.get_iter_at_mark (out after, cursor); + before.backward_line(); + after.forward_line (); + string sample_text = buffer.get_text (before, after, true); + // Keep interesting location if we're potentially in something we can remove a link to. + if (!is_markdown_url.match (sample_text, RegexMatchFlags.BSR_ANYCRLF | RegexMatchFlags.NEWLINE_ANYCRLF)) { + cursor_at_interesting_location = false; + } + } + } + } + bool header_redraw_scheduled = false; - private void update_heading_margins () { + private void update_heading_margins (bool skip_links = false) { bool try_later = false; // Update heading margins if (UI.moving ()) { @@ -1134,8 +1161,10 @@ namespace ThiefMD.Widgets { buffer.remove_tag (heading_text[h], start, end); } buffer.remove_tag (code_block, start, end); - buffer.remove_tag (markdown_link, start, end); - buffer.remove_tag (markdown_url, start, end); + if (!skip_links) { + buffer.remove_tag (markdown_link, start, end); + buffer.remove_tag (markdown_url, start, end); + } int f_w = (int)(settings.get_css_font_size () * ((settings.fullscreen ? 1.4 : 1))); int hashtag_w = f_w; @@ -1227,6 +1256,13 @@ namespace ThiefMD.Widgets { } while (match_info.next ()); } + // + // Skip high CPU stuff when skippable + // + if (skip_links) { + return; + } + if (settings.experimental) { if (is_markdown_url.match_full (checking_copy, checking_copy.length, 0, RegexMatchFlags.BSR_ANYCRLF | RegexMatchFlags.NEWLINE_ANYCRLF, out match_info)) { Gtk.TextIter cursor_location; @@ -1403,9 +1439,9 @@ namespace ThiefMD.Widgets { } if (settings.experimental) { - buffer.notify["cursor-position"].connect (update_heading_margins); + buffer.notify["cursor-position"].connect (cursor_update_heading_margins); } else { - buffer.notify["cursor-position"].connect (update_heading_margins); + buffer.notify["cursor-position"].connect (cursor_update_heading_margins); } if (!header_redraw_scheduled) { From 931ce89dad7f058fa064ae80968a931601f78f37 Mon Sep 17 00:00:00 2001 From: kmwallio Date: Sat, 6 Mar 2021 17:43:25 -0800 Subject: [PATCH 09/50] Update welcome screen being non-adaptive --- src/Controllers/SheetManager.vala | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Controllers/SheetManager.vala b/src/Controllers/SheetManager.vala index bf85ffa..ef2121a 100644 --- a/src/Controllers/SheetManager.vala +++ b/src/Controllers/SheetManager.vala @@ -223,12 +223,14 @@ namespace ThiefMD.Controllers.SheetManager { // Clear the view _view.hide (); if (show_welcome) { + _welcome_screen.am_active = false; _view.remove (_welcome_screen); } // Load the view if (_active_editors.size == 0) { show_welcome = true; + _welcome_screen.am_active = true; _view.add (_welcome_screen); } else { foreach (var editor in _active_editors) { From d71bfade807fb1554574aa1259188db4c22c2ffe Mon Sep 17 00:00:00 2001 From: kmwallio Date: Sat, 6 Mar 2021 18:55:23 -0800 Subject: [PATCH 10/50] Fix image importing when converting epub/docx --- src/Controllers/FileManager.vala | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Controllers/FileManager.vala b/src/Controllers/FileManager.vala index 9f7ed98..8a15284 100644 --- a/src/Controllers/FileManager.vala +++ b/src/Controllers/FileManager.vala @@ -26,16 +26,15 @@ namespace ThiefMD.Controllers.FileManager { public void import_file (string file_path, Sheets parent) { File import_f = File.new_for_path (file_path); string ext = file_path.substring (file_path.last_index_of (".") + 1).down (); + string match_ext = ext; warning ("Importing (%s): %s", ext, import_f.get_path ()); - if (ext.length >= 3) { - ext = "*." + ext + ";"; - warning (ext); - warning ("%d", ThiefProperties.SUPPORTED_IMPORT_FILES.index_of (ext)); + if (match_ext.length >= 3) { + match_ext = "*." + match_ext + ";"; } // Supported import file extensions - if (ThiefProperties.SUPPORTED_IMPORT_FILES.index_of (ext) >= 0) { + if (ThiefProperties.SUPPORTED_IMPORT_FILES.index_of (match_ext) >= 0) { Thinking worker = new Thinking (_("Importing File"), () => { string dest_name = import_f.get_basename (); dest_name = dest_name.substring (0, dest_name.last_index_of (".")); From 8a098bec08b270fbea33431054ed2f62a4d366b2 Mon Sep 17 00:00:00 2001 From: kmwallio Date: Sat, 6 Mar 2021 21:15:46 -0800 Subject: [PATCH 11/50] More advanced link regex, fix crash on selection --- src/Widgets/Editor.vala | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/src/Widgets/Editor.vala b/src/Widgets/Editor.vala index c4bed1f..174599c 100644 --- a/src/Widgets/Editor.vala +++ b/src/Widgets/Editor.vala @@ -92,7 +92,7 @@ namespace ThiefMD.Widgets { numerical_list = new Regex ("^(\\s*)([0-9]+)((\\.|\\))\\s+)$", RegexCompileFlags.CASELESS, 0); is_url = new Regex ("^(http|ftp|ssh|mailto|tor|torrent|vscode|atom|rss|file)?s?(:\\/\\/)?(www\\.)?([a-zA-Z0-9\\.\\-]+)\\.([a-z]+)([^\\s]+)$", RegexCompileFlags.CASELESS, 0); is_codeblock = new Regex ("(```[a-zA-Z]*[\\n\\R]((.*?)[\\n\\R])*?```[\\n\\R])", RegexCompileFlags.MULTILINE | RegexCompileFlags.CASELESS, 0); - is_markdown_url = new Regex ("\\[([^\\[]+?)\\](\\([^\\)\\n]+?\\))", RegexCompileFlags.CASELESS, 0); + is_markdown_url = new Regex ("(?\\[(?>[^\\[\\]]+|(?&text_group))*\\])(?:\\((?\\S*?)(?:[ ]\"(?(?:[^\"]|(?<=\\\\)\")*?)\")?\\))", RegexCompileFlags.CASELESS, 0); } catch (Error e) { warning ("Could not initialize regexes: %s", e.message); } @@ -1095,7 +1095,7 @@ namespace ThiefMD.Widgets { var cursor = buffer.get_insert (); Gtk.TextIter cursor_location; buffer.get_iter_at_mark (out cursor_location, cursor); - if (cursor_location.has_tag (markdown_link) || cursor_location.has_tag (markdown_url)) { + if (cursor_location.has_tag (markdown_link) || cursor_location.has_tag (markdown_url) || buffer.has_selection) { update_heading_margins (); cursor_at_interesting_location = true; } else if (cursor_at_interesting_location) { @@ -1264,6 +1264,11 @@ namespace ThiefMD.Widgets { } if (settings.experimental) { + bool check_selection = buffer.get_has_selection (); + Gtk.TextIter? select_start = null, select_end = null; + if (check_selection) { + buffer.get_selection_bounds (out select_start, out select_end); + } if (is_markdown_url.match_full (checking_copy, checking_copy.length, 0, RegexMatchFlags.BSR_ANYCRLF | RegexMatchFlags.NEWLINE_ANYCRLF, out match_info)) { Gtk.TextIter cursor_location; var cursor = buffer.get_insert (); @@ -1272,7 +1277,7 @@ namespace ThiefMD.Widgets { int start_link_pos, end_link_pos; int start_url_pos, end_url_pos; int start_full_pos, end_full_pos; - // warning ("Link Found, Text: %s, URL: %s", link, url); + warning ("Link Found, Text: %s, URL: %s", match_info.fetch (1), match_info.fetch (2)); bool linkify = match_info.fetch_pos (1, out start_link_pos, out end_link_pos); bool urlify = match_info.fetch_pos (2, out start_url_pos, out end_url_pos); bool full_found = match_info.fetch_pos (0, out start_full_pos, out end_full_pos); @@ -1289,6 +1294,25 @@ namespace ThiefMD.Widgets { continue; } + if (check_selection) { + if (start.in_range (select_start, select_end) || end.in_range (select_start, select_end)) { + continue; + } + } + + start.backward_line (); + buffer.get_iter_at_offset (out end, start_full_pos); + string sanity_check = buffer.get_text (start, end, true); + if (sanity_check.index_of_char ('`') >= 0) { + buffer.get_iter_at_offset (out end, end_full_pos); + end.forward_line (); + buffer.get_iter_at_offset (out start, end_full_pos); + sanity_check = buffer.get_text (start, end, true); + if (sanity_check.index_of_char ('`') >= 0) { + continue; + } + } + // // Link Text [Text] // @@ -1307,7 +1331,8 @@ namespace ThiefMD.Widgets { // buffer.get_iter_at_offset (out start, start_link_pos); buffer.get_iter_at_offset (out end, start_link_pos); - start.backward_chars (2); + start.backward_chars (1); + end.forward_char (); if (start.get_char () != '!') { start.forward_char (); buffer.apply_tag (markdown_url, start, end); @@ -1316,7 +1341,7 @@ namespace ThiefMD.Widgets { // buffer.get_iter_at_offset (out start, end_link_pos); buffer.get_iter_at_offset (out end, end_link_pos); - end.forward_char (); + start.backward_char (); buffer.apply_tag (markdown_url, start, end); } } @@ -1325,9 +1350,9 @@ namespace ThiefMD.Widgets { // Link URL (https://thiefmd.com) // start_url_pos = checking_copy.char_count ((ssize_t) start_url_pos); - end_url_pos = checking_copy.char_count ((ssize_t) end_url_pos); buffer.get_iter_at_offset (out start, start_url_pos); - buffer.get_iter_at_offset (out end, end_url_pos); + start.backward_char (); + buffer.get_iter_at_offset (out end, end_full_pos); if (start.has_tag (code_block) || end.has_tag (code_block)) { continue; } From 6cadaffb0ebce001dbcdf683262d345d10839733 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Sat, 6 Mar 2021 22:09:34 -0800 Subject: [PATCH 12/50] Comment out printf debugging --- src/Widgets/Editor.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Widgets/Editor.vala b/src/Widgets/Editor.vala index 174599c..c52fff2 100644 --- a/src/Widgets/Editor.vala +++ b/src/Widgets/Editor.vala @@ -1277,7 +1277,7 @@ namespace ThiefMD.Widgets { int start_link_pos, end_link_pos; int start_url_pos, end_url_pos; int start_full_pos, end_full_pos; - warning ("Link Found, Text: %s, URL: %s", match_info.fetch (1), match_info.fetch (2)); + // warning ("Link Found, Text: %s, URL: %s", match_info.fetch (1), match_info.fetch (2)); bool linkify = match_info.fetch_pos (1, out start_link_pos, out end_link_pos); bool urlify = match_info.fetch_pos (2, out start_url_pos, out end_url_pos); bool full_found = match_info.fetch_pos (0, out start_full_pos, out end_full_pos); From 8d3b57162f5d79679948577d3fa231de678d0bd8 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Sun, 7 Mar 2021 11:22:09 -0800 Subject: [PATCH 13/50] Always use fresh editor for new files --- src/Controllers/SheetManager.vala | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Controllers/SheetManager.vala b/src/Controllers/SheetManager.vala index ef2121a..5590440 100644 --- a/src/Controllers/SheetManager.vala +++ b/src/Controllers/SheetManager.vala @@ -587,15 +587,15 @@ namespace ThiefMD.Controllers.SheetManager { clean.editor.am_active = false; clean.sheet = null; if (_editor_pool.size < Constants.EDITOR_POOL_SIZE) { - clean.editor.open_file (""); - _editor_pool.add (clean.editor); - } else { - clean.editor.clean (); - clean.editor = null; - clean.sheet.active_sheet = false; - clean.sheet = null; - clean = null; + Widgets.Editor new_editor = new Widgets.Editor (""); + new_editor.am_active = false; + _editor_pool.add (new_editor); } + clean.editor.clean (); + clean.editor = null; + clean.sheet.active_sheet = false; + clean.sheet = null; + clean = null; } } From 121fdd621b9e51f9ab5a0fe0f8e25a0778085a6c Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Sun, 7 Mar 2021 11:22:27 -0800 Subject: [PATCH 14/50] Don't attach spellcheck until editor in use --- src/Widgets/Editor.vala | 115 ++++++++++++++++++++++++---------------- 1 file changed, 69 insertions(+), 46 deletions(-) diff --git a/src/Widgets/Editor.vala b/src/Widgets/Editor.vala index c52fff2..c7c99bf 100644 --- a/src/Widgets/Editor.vala +++ b/src/Widgets/Editor.vala @@ -51,7 +51,7 @@ namespace ThiefMD.Widgets { public Gtk.TextTag highlight_tag; private int last_width = 0; private int last_height = 0; - private bool spellcheck_active; + private bool spellcheck_active = false; private bool writecheck_active; private bool typewriter_active; @@ -92,7 +92,7 @@ namespace ThiefMD.Widgets { numerical_list = new Regex ("^(\\s*)([0-9]+)((\\.|\\))\\s+)$", RegexCompileFlags.CASELESS, 0); is_url = new Regex ("^(http|ftp|ssh|mailto|tor|torrent|vscode|atom|rss|file)?s?(:\\/\\/)?(www\\.)?([a-zA-Z0-9\\.\\-]+)\\.([a-z]+)([^\\s]+)$", RegexCompileFlags.CASELESS, 0); is_codeblock = new Regex ("(```[a-zA-Z]*[\\n\\R]((.*?)[\\n\\R])*?```[\\n\\R])", RegexCompileFlags.MULTILINE | RegexCompileFlags.CASELESS, 0); - is_markdown_url = new Regex ("(?<text_group>\\[(?>[^\\[\\]]+|(?&text_group))*\\])(?:\\((?<url>\\S*?)(?:[ ]\"(?<title>(?:[^\"]|(?<=\\\\)\")*?)\")?\\))", RegexCompileFlags.CASELESS, 0); + is_markdown_url = new Regex ("(?<text_group>\\[(?>[^\\[\\]]+|(?&text_group))+\\])(?:\\((?<url>\\S+?)(?:[ ]\"(?<title>(?:[^\"]|(?<=\\\\)\")*?)\")?\\))", RegexCompileFlags.CASELESS, 0); } catch (Error e) { warning ("Could not initialize regexes: %s", e.message); } @@ -158,28 +158,11 @@ namespace ThiefMD.Widgets { set_scheme (settings.get_valid_theme_id ()); return false; }); - dynamic_margins (); + spell = new GtkSpell.Checker (); writegood = new WriteGood.Checker (); writegood.show_tooltip = true; - if (settings.spellcheck) { - debug ("Spellcheck active"); - spell.attach (this); - spellcheck_active = true; - } else { - debug ("Spellcheck inactive"); - spellcheck_active = false; - } - - if (settings.writegood) { - writegood.attach (this); - writecheck_active = true; - } else { - writegood.detach (); - writecheck_active = false; - } - focus_text = buffer.create_tag ("focus-text"); outoffocus_text = buffer.create_tag ("outoffocus-text"); @@ -597,6 +580,11 @@ namespace ThiefMD.Widgets { write_good_recheck (); } + if (settings.spellcheck) { + spell.attach (this); + spellcheck_active = true; + } + key_press_event.connect (on_keypress); // @@ -616,9 +604,6 @@ namespace ThiefMD.Widgets { if (active != value) { cursor_location = buffer.cursor_position; debug ("Cursor saved at: %d", cursor_location); - if (settings.spellcheck) { - spell.detach (); - } preview_markdown = ""; try { @@ -627,14 +612,20 @@ namespace ThiefMD.Widgets { warning ("Unable to save file " + file.get_basename () + ": " + e.message); SheetManager.show_error ("Unable to save file " + file.get_basename () + ": " + e.message); } + buffer.changed.disconnect (on_change_notification); size_allocate.disconnect (dynamic_margins); settings.changed.disconnect (update_settings); key_press_event.disconnect (on_keypress); + if (settings.writegood) { writecheck_active = false; writegood.detach (); } + + if (settings.spellcheck) { + spell.detach (); + } } editable = false; active = false; @@ -1101,10 +1092,16 @@ namespace ThiefMD.Widgets { } else if (cursor_at_interesting_location) { update_heading_margins (); Gtk.TextIter before, after; + Gtk.TextIter bound_start, bound_end; + buffer.get_bounds (out bound_start, out bound_end); buffer.get_iter_at_mark (out before, cursor); buffer.get_iter_at_mark (out after, cursor); - before.backward_line(); - after.forward_line (); + if (!before.backward_line()) { + before = bound_start; + } + if (!after.forward_line ()) { + after = bound_end; + } string sample_text = buffer.get_text (before, after, true); // Keep interesting location if we're potentially in something we can remove a link to. if (!is_markdown_url.match (sample_text, RegexMatchFlags.BSR_ANYCRLF | RegexMatchFlags.NEWLINE_ANYCRLF)) { @@ -1264,6 +1261,8 @@ namespace ThiefMD.Widgets { } if (settings.experimental) { + Gtk.TextIter bound_start, bound_end; + buffer.get_bounds (out bound_start, out bound_end); bool check_selection = buffer.get_has_selection (); Gtk.TextIter? select_start = null, select_end = null; if (check_selection) { @@ -1274,6 +1273,7 @@ namespace ThiefMD.Widgets { var cursor = buffer.get_insert (); buffer.get_iter_at_mark (out cursor_location, cursor); do { + buffer.get_bounds (out bound_start, out bound_end); int start_link_pos, end_link_pos; int start_url_pos, end_url_pos; int start_full_pos, end_full_pos; @@ -1300,15 +1300,23 @@ namespace ThiefMD.Widgets { } } - start.backward_line (); - buffer.get_iter_at_offset (out end, start_full_pos); - string sanity_check = buffer.get_text (start, end, true); - if (sanity_check.index_of_char ('`') >= 0) { - buffer.get_iter_at_offset (out end, end_full_pos); - end.forward_line (); - buffer.get_iter_at_offset (out start, end_full_pos); - sanity_check = buffer.get_text (start, end, true); - if (sanity_check.index_of_char ('`') >= 0) { + // Check if we're in inline code + if (start.backward_line ()) { + buffer.get_iter_at_offset (out end, start_full_pos); + if (start.in_range (bound_start, bound_end) && end.in_range (bound_start, bound_end)) { + string sanity_check = buffer.get_text (start, end, true); + if (sanity_check.index_of_char ('`') >= 0) { + buffer.get_iter_at_offset (out end, end_full_pos); + if (end.forward_line ()) { + buffer.get_iter_at_offset (out start, end_full_pos); + sanity_check = buffer.get_text (start, end, true); + if (sanity_check.index_of_char ('`') >= 0) { + continue; + } + } + } + } else { + // Bail, our calculations are now out of range continue; } } @@ -1323,7 +1331,12 @@ namespace ThiefMD.Widgets { if (start.has_tag (code_block) || end.has_tag (code_block)) { continue; } - buffer.apply_tag (markdown_link, start, end); + if (start.in_range (bound_start, bound_end) && end.in_range (bound_start, bound_end)) { + buffer.apply_tag (markdown_link, start, end); + } else { + // Bail, our calculations are now out of range + continue; + } if (!UI.show_link_brackets () && !settings.focus_mode) { // @@ -1333,16 +1346,21 @@ namespace ThiefMD.Widgets { buffer.get_iter_at_offset (out end, start_link_pos); start.backward_chars (1); end.forward_char (); - if (start.get_char () != '!') { - start.forward_char (); - buffer.apply_tag (markdown_url, start, end); - // - // Closing ] - // - buffer.get_iter_at_offset (out start, end_link_pos); - buffer.get_iter_at_offset (out end, end_link_pos); - start.backward_char (); - buffer.apply_tag (markdown_url, start, end); + if (start.in_range (bound_start, bound_end) && end.in_range (bound_start, bound_end)) { + if (start.get_char () != '!') { + start.forward_char (); + buffer.apply_tag (markdown_url, start, end); + // + // Closing ] + // + buffer.get_iter_at_offset (out start, end_link_pos); + buffer.get_iter_at_offset (out end, end_link_pos); + start.backward_char (); + buffer.apply_tag (markdown_url, start, end); + } + } else { + // Bail, our calculations are now out of range + continue; } } @@ -1356,7 +1374,12 @@ namespace ThiefMD.Widgets { if (start.has_tag (code_block) || end.has_tag (code_block)) { continue; } - buffer.apply_tag (markdown_url, start, end); + if (start.in_range (bound_start, bound_end) && end.in_range (bound_start, bound_end)) { + buffer.apply_tag (markdown_url, start, end); + } else { + // Bail, our calculations are now out of range + continue; + } } } while (match_info.next ()); } From 529a736b7348d89891e5a35ce28a21fce725c53e Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Sun, 7 Mar 2021 11:34:00 -0800 Subject: [PATCH 15/50] Update language specs --- data/language-specs | 2 +- src/Controllers/UI.vala | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/language-specs b/data/language-specs index d09ae4b..48040cf 160000 --- a/data/language-specs +++ b/data/language-specs @@ -1 +1 @@ -Subproject commit d09ae4bcef088f1feb9d8ffc0bf5df32cd83783d +Subproject commit 48040cf178a9f924b2f8cd1199b0c1c3a77b97fb diff --git a/src/Controllers/UI.vala b/src/Controllers/UI.vala index c2707a3..8628225 100644 --- a/src/Controllers/UI.vala +++ b/src/Controllers/UI.vala @@ -303,7 +303,7 @@ namespace ThiefMD.Controllers.UI { set_css_scheme (palette); set_scheme = true; } catch (Error e) { - warning ("Could not load previous style (%s): %s", settings.custom_theme, e.message); + debug ("Could not load previous style (%s): %s", settings.custom_theme, e.message); } } } else { From a28759e7ac824c6d497a620ce909c354a254e385 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Sun, 7 Mar 2021 12:07:18 -0800 Subject: [PATCH 16/50] Update language preview file --- docs/lang-check.md | 58 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 6 deletions(-) diff --git a/docs/lang-check.md b/docs/lang-check.md index 31c2a0e..e68ed25 100644 --- a/docs/lang-check.md +++ b/docs/lang-check.md @@ -9,6 +9,21 @@ for i, name in enumerate(friends): print ("iteration {iteration} is {name}".format(iteration=i, name=name)) ``` +# Nim + +```nim +# Thanks to Nim's 'iterator' and 'yield' constructs, +# iterators are as easy to write as ordinary +# functions. They are compiled to inline loops. +iterator oddNumbers[Idx, T](a: array[Idx, T]): T = + for x in a: + if x mod 2 == 1: + yield x + +for odd in oddNumbers([3, 6, 9, 12, 15, 18]): + echo odd +``` + # JavaScript ```js @@ -19,6 +34,13 @@ $(document).ready(function(){ }); ``` +# TypeScript + +```ts +let message: string = 'Hello World'; +console.log(message); +``` + # Rust ```rust @@ -60,6 +82,16 @@ public class MyClass { } ``` +# Scala + +```scala +object Hello { + def main(args: Array[String]) = { + println("Hello, world") + } +} +``` + # Vala ```vala @@ -82,6 +114,19 @@ public class MyClass { } ``` +# C# + +```csharp +private void singToMe () { + string songLyrics = "You say goodbye, and I say hello"; + Console.WriteLine(songLyrics.StartsWith("You")); + Console.WriteLine(songLyrics.StartsWith("goodbye")); + + Console.WriteLine(songLyrics.EndsWith("hello")); + Console.WriteLine(songLyrics.EndsWith("goodbye")); +} +``` + # R ```r @@ -160,15 +205,16 @@ puts "sample() method form : #{c.sample(3)}\n\n" ```perl #!/usr/bin/perl -# -# The traditional first program. - -# Strict and warnings are recommended. use strict; use warnings; # Print a message. -print "Hello, World!\n"; +sub Hello { + print "Hello, World!\n"; +} + +# Function call +Hello(); ``` # PHP @@ -211,4 +257,4 @@ int main() { } ``` -# End of file \ No newline at end of file +# End of file From c7d91f46f37dbd6e06443aad376831e04d161def Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Sun, 7 Mar 2021 12:12:34 -0800 Subject: [PATCH 17/50] Update language specs --- data/language-specs | 2 +- docs/lang-check.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/language-specs b/data/language-specs index 48040cf..19421f6 160000 --- a/data/language-specs +++ b/data/language-specs @@ -1 +1 @@ -Subproject commit 48040cf178a9f924b2f8cd1199b0c1c3a77b97fb +Subproject commit 19421f63e4ae44741be8e939e00950a013a00cb4 diff --git a/docs/lang-check.md b/docs/lang-check.md index e68ed25..a410cda 100644 --- a/docs/lang-check.md +++ b/docs/lang-check.md @@ -257,4 +257,4 @@ int main() { } ``` -# End of file +# End of file \ No newline at end of file From 7e3f3450a034469769fdb518b0ac68d8b3f88342 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Sun, 7 Mar 2021 13:24:15 -0800 Subject: [PATCH 18/50] Move cursor outside of markup on arrow key after Ctrl shortcuts Fixes #120 --- src/Widgets/Editor.vala | 25 ++++++++++++++++++++----- src/Widgets/KeyBindings.vala | 4 ++++ 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/Widgets/Editor.vala b/src/Widgets/Editor.vala index c7c99bf..981760f 100644 --- a/src/Widgets/Editor.vala +++ b/src/Widgets/Editor.vala @@ -80,6 +80,7 @@ namespace ThiefMD.Widgets { public bool is_modified { get; set; default = false; } private bool should_scroll { get; set; default = false; } private bool should_save { get; set; default = false; } + private bool markup_inserted_around_selection = false; public Editor (string file_path) { var settings = AppSettings.get_default (); @@ -211,21 +212,33 @@ namespace ThiefMD.Widgets { private bool on_keypress (Gdk.EventKey key) { uint keycode = key.hardware_keycode; + bool skip_request = false; if (is_list == null || is_partial_list == null || numerical_list == null) { return false; } - if (match_keycode (Gdk.Key.Return, keycode) || match_keycode (Gdk.Key.Tab, keycode)) { - debug ("Got enter or tab key"); + // Move outside of selection if we just inserted formatting and get a right -> key from the user + if (match_keycode (Gdk.Key.Right, keycode) && markup_inserted_around_selection && buffer.has_selection) { + skip_request = true; + } + + markup_inserted_around_selection = false; + + if (match_keycode (Gdk.Key.Return, keycode) || match_keycode (Gdk.Key.Tab, keycode) || skip_request) { + debug ("Got enter or tab key or skip request"); var cursor = buffer.get_insert (); Gtk.TextIter start, end; - buffer.get_iter_at_mark (out start, cursor); - buffer.get_iter_at_mark (out end, cursor); + if (!skip_request) { + buffer.get_iter_at_mark (out start, cursor); + buffer.get_iter_at_mark (out end, cursor); + } else { + buffer.get_selection_bounds (out start, out end); + } unichar end_char = end.get_char (); // Tab to next item in link, or outside of current markup - if (match_keycode (Gdk.Key.Tab, keycode) && + if ((skip_request || match_keycode (Gdk.Key.Tab, keycode)) && (end_char == '*' || end_char == ']' || end_char == ')' || @@ -695,6 +708,8 @@ namespace ThiefMD.Widgets { buffer.get_selection_bounds (out iter_start, out iter_end); iter_end.backward_chars (markup.length); buffer.select_range (iter_start, iter_end); + markup_inserted_around_selection = true; + warning ("Setting markup bool"); } } } diff --git a/src/Widgets/KeyBindings.vala b/src/Widgets/KeyBindings.vala index d8d7b0b..2995c8f 100644 --- a/src/Widgets/KeyBindings.vala +++ b/src/Widgets/KeyBindings.vala @@ -127,6 +127,7 @@ namespace ThiefMD.Widgets { if ((e.state & Gdk.ModifierType.CONTROL_MASK) != 0 && (e.state & Gdk.ModifierType.SHIFT_MASK) == 0 && is_main) { if (match_keycode (Gdk.Key.b, keycode)) { SheetManager.bold (); + return true; } } @@ -134,6 +135,7 @@ namespace ThiefMD.Widgets { if ((e.state & Gdk.ModifierType.CONTROL_MASK) != 0 && (e.state & Gdk.ModifierType.SHIFT_MASK) == 0 && is_main) { if (match_keycode (Gdk.Key.i, keycode)) { SheetManager.italic (); + return true; } } @@ -141,6 +143,7 @@ namespace ThiefMD.Widgets { if ((e.state & Gdk.ModifierType.CONTROL_MASK) != 0 && (e.state & Gdk.ModifierType.SHIFT_MASK) == 0 && is_main) { if (match_keycode (Gdk.Key.d, keycode)) { SheetManager.strikethrough (); + return true; } } @@ -148,6 +151,7 @@ namespace ThiefMD.Widgets { if ((e.state & Gdk.ModifierType.CONTROL_MASK) != 0 && (e.state & Gdk.ModifierType.SHIFT_MASK) == 0 && is_main) { if (match_keycode (Gdk.Key.k, keycode)) { SheetManager.link (); + return true; } } From b3024ea620d9b039b2537c8438f34db2be8876ba Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Sun, 7 Mar 2021 13:24:47 -0800 Subject: [PATCH 19/50] Remove warning --- src/Widgets/Editor.vala | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Widgets/Editor.vala b/src/Widgets/Editor.vala index 981760f..03629db 100644 --- a/src/Widgets/Editor.vala +++ b/src/Widgets/Editor.vala @@ -709,7 +709,6 @@ namespace ThiefMD.Widgets { iter_end.backward_chars (markup.length); buffer.select_range (iter_start, iter_end); markup_inserted_around_selection = true; - warning ("Setting markup bool"); } } } From 12741275c7b84f8ee1a42dfdcea45cb3cc5e463b Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Sun, 7 Mar 2021 18:28:55 -0800 Subject: [PATCH 20/50] Start work on supporting advanced export pane --- src/Widgets/Editor.vala | 16 ++++++++-------- src/Widgets/Library.vala | 2 +- src/Widgets/ProjectStatistics.vala | 2 +- src/Widgets/PublisherPreviewWindow.vala | 21 ++++++++++++++++++++- src/Widgets/QuickPreferences.vala | 8 ++++---- src/Widgets/Sheet.vala | 2 +- 6 files changed, 35 insertions(+), 16 deletions(-) diff --git a/src/Widgets/Editor.vala b/src/Widgets/Editor.vala index 03629db..f446331 100644 --- a/src/Widgets/Editor.vala +++ b/src/Widgets/Editor.vala @@ -196,6 +196,7 @@ namespace ThiefMD.Widgets { markdown_link = buffer.create_tag ("markdown-link"); markdown_url = buffer.create_tag ("markdown-url"); markdown_url.invisible = true; + markdown_url.invisible_set = true; last_width = settings.window_width; last_height = settings.window_height; @@ -1180,7 +1181,7 @@ namespace ThiefMD.Widgets { int f_w = (int)(settings.get_css_font_size () * ((settings.fullscreen ? 1.4 : 1))); int hashtag_w = f_w; int space_w = f_w; - int avg_w; + int avg_w = f_w; if (get_realized ()) { var font_desc = new Pango.FontDescription (); @@ -1267,14 +1268,13 @@ namespace ThiefMD.Widgets { } while (match_info.next ()); } - // - // Skip high CPU stuff when skippable - // - if (skip_links) { - return; - } - if (settings.experimental) { + // + // Skip high CPU stuff when skippable + // + if (skip_links) { + return; + } Gtk.TextIter bound_start, bound_end; buffer.get_bounds (out bound_start, out bound_end); bool check_selection = buffer.get_has_selection (); diff --git a/src/Widgets/Library.vala b/src/Widgets/Library.vala index cf67002..eee453c 100644 --- a/src/Widgets/Library.vala +++ b/src/Widgets/Library.vala @@ -479,7 +479,7 @@ namespace ThiefMD.Widgets { if (_selected != null && _all_sheets.find (_selected) != null) { string preview_markdown = build_novel (_selected, settings.export_include_metadata_file); PublisherPreviewWindow ppw = new PublisherPreviewWindow (preview_markdown); - ppw.show_all (); + ppw.show (); } }); menu.add (menu_preview_item); diff --git a/src/Widgets/ProjectStatistics.vala b/src/Widgets/ProjectStatistics.vala index d5990a1..7732ef1 100644 --- a/src/Widgets/ProjectStatistics.vala +++ b/src/Widgets/ProjectStatistics.vala @@ -65,7 +65,7 @@ namespace ThiefMD.Widgets { export_button.clicked.connect (() => { string novel = ThiefApp.get_instance ().library.get_novel (monitor_path); PublisherPreviewWindow ppw = new PublisherPreviewWindow (novel); - ppw.show_all (); + ppw.show (); }); Gtk.Button close_button = new Gtk.Button.with_label (_("Close")); diff --git a/src/Widgets/PublisherPreviewWindow.vala b/src/Widgets/PublisherPreviewWindow.vala index a342237..00b1302 100644 --- a/src/Widgets/PublisherPreviewWindow.vala +++ b/src/Widgets/PublisherPreviewWindow.vala @@ -26,6 +26,8 @@ namespace ThiefMD.Widgets { public class PublisherPreviewWindow : Hdy.Window { public Hdy.HeaderBar headerbar; public Preview preview; + private Gtk.Box advanced_options; + public Gtk.Paned options_pane; private string _markdown; private string e_markdown; private ExportBase exporter; @@ -53,6 +55,9 @@ namespace ThiefMD.Widgets { protected void build_ui () { Gtk.Box vbox = new Gtk.Box (Gtk.Orientation.VERTICAL, 0); + advanced_options = new Gtk.Box (Gtk.Orientation.VERTICAL, 0); + options_pane = new Gtk.Paned (Gtk.Orientation.HORIZONTAL); + var settings = AppSettings.get_default (); int w, h; @@ -197,10 +202,24 @@ namespace ThiefMD.Widgets { set_default_size(w, h - 150); - vbox.add (preview); + options_pane.add1 (advanced_options); + options_pane.add2 (preview); + options_pane.set_position (0); + options_pane.get_child1 ().hide (); + options_pane.get_child2 ().show (); + options_pane.show (); + vbox.add (options_pane); delete_event.connect (this.on_delete_event); add (vbox); + preview.show_all (); + headerbar.show_all (); + vbox.show (); + } + + public void show_advanced_options () { + options_pane.get_child1 ().show (); + options_pane.set_position (250); } public bool on_delete_event () { diff --git a/src/Widgets/QuickPreferences.vala b/src/Widgets/QuickPreferences.vala index e770a5b..c1ab421 100644 --- a/src/Widgets/QuickPreferences.vala +++ b/src/Widgets/QuickPreferences.vala @@ -74,7 +74,7 @@ namespace ThiefMD.Widgets { preview_button.tooltip_text = _("Launch Preview"); preview_button.clicked.connect (() => { PreviewWindow pvw = PreviewWindow.get_instance (); - pvw.show_all (); + pvw.show (); }); var export_button = new Gtk.ModelButton (); @@ -83,7 +83,7 @@ namespace ThiefMD.Widgets { export_button.tooltip_text = _("Open Export Window"); export_button.clicked.connect (() => { PublisherPreviewWindow ppw = new PublisherPreviewWindow (SheetManager.get_markdown ()); - ppw.show_all (); + ppw.show (); }); var search_button = new Gtk.ModelButton (); @@ -165,7 +165,7 @@ namespace ThiefMD.Widgets { export_button.tooltip_text = _("Open Export Window"); export_button.clicked.connect (() => { PublisherPreviewWindow ppw = new PublisherPreviewWindow (SheetManager.get_markdown ()); - ppw.show_all (); + ppw.show (); }); var search_button = new Gtk.ModelButton (); @@ -238,7 +238,7 @@ namespace ThiefMD.Widgets { export_button.tooltip_text = _("Open Export Window"); export_button.clicked.connect (() => { PublisherPreviewWindow ppw = new PublisherPreviewWindow (SheetManager.get_markdown ()); - ppw.show_all (); + ppw.show (); }); var search_button = new Gtk.ModelButton (); diff --git a/src/Widgets/Sheet.vala b/src/Widgets/Sheet.vala index 9c12a83..5d7df3c 100644 --- a/src/Widgets/Sheet.vala +++ b/src/Widgets/Sheet.vala @@ -240,7 +240,7 @@ namespace ThiefMD.Widgets { menu_export_sheet.activate.connect (() => { string preview_markdown = FileManager.get_file_contents (_sheet_path); PublisherPreviewWindow ppw = new PublisherPreviewWindow (preview_markdown); - ppw.show_all (); + ppw.show (); }); menu.add (new Gtk.SeparatorMenuItem ()); From e89bddc51f25d9f4d1aa47c9655a0a3f5a1c9731 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Sun, 7 Mar 2021 18:49:45 -0800 Subject: [PATCH 21/50] Use link tags to improve Focus Mode (if tags are available) --- src/Widgets/Editor.vala | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/Widgets/Editor.vala b/src/Widgets/Editor.vala index f446331..5d186ff 100644 --- a/src/Widgets/Editor.vala +++ b/src/Widgets/Editor.vala @@ -1305,11 +1305,13 @@ namespace ThiefMD.Widgets { buffer.get_iter_at_offset (out end, end_full_pos); if (cursor_location.in_range (start, end)) { + buffer.apply_tag (markdown_link, start, end); continue; } if (check_selection) { if (start.in_range (select_start, select_end) || end.in_range (select_start, select_end)) { + buffer.apply_tag (markdown_link, start, end); continue; } } @@ -1558,17 +1560,28 @@ namespace ThiefMD.Widgets { } } else if (settings.focus_type == FocusType.SENTENCE) { if (!start.starts_sentence ()) { - start.backward_sentence_start (); + do { + start.backward_sentence_start (); + if (start.get_char () == '[') { + start.backward_char (); + } + } while (!start.starts_line () && (start.has_tag (markdown_link) || start.has_tag (markdown_url))); } - if (!end.ends_sentence ()) { - end.forward_sentence_end (); + if (!end.ends_sentence () || end.has_tag (markdown_url) || end.has_tag (markdown_link)) { + do { + end.forward_sentence_end (); + } while (end.has_tag (markdown_link) || end.has_tag (markdown_url)); } } else if (settings.focus_type == FocusType.PARAGRAPH) { - if (!start.starts_line ()) { - start.backward_line (); + if (!start.starts_line () || start.has_tag (code_block)) { + do { + start.backward_line (); + } while (start.has_tag (code_block)); } - if (!end.ends_line ()) { - end.forward_to_line_end (); + if (!end.ends_line () || end.has_tag (code_block)) { + do { + end.forward_to_line_end (); + } while (end.has_tag (code_block)); } } From 346164b285874ef070417363767043641deb5108 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Mon, 8 Mar 2021 10:54:49 -0800 Subject: [PATCH 22/50] Add footnote highlighting, fix references globbing links in same line --- data/language-specs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/language-specs b/data/language-specs index 19421f6..2246d29 160000 --- a/data/language-specs +++ b/data/language-specs @@ -1 +1 @@ -Subproject commit 19421f63e4ae44741be8e939e00950a013a00cb4 +Subproject commit 2246d2970e9009e3f3c7581d2341e6f4c6e8eda1 From 01dfe69e356d7c1520b5afa7169fe2b76ac3b496 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Mon, 8 Mar 2021 16:17:11 -0800 Subject: [PATCH 23/50] Handle possible GLib.Error when opening file manager --- src/Widgets/Library.vala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Widgets/Library.vala b/src/Widgets/Library.vala index eee453c..22aa65c 100644 --- a/src/Widgets/Library.vala +++ b/src/Widgets/Library.vala @@ -512,7 +512,11 @@ namespace ThiefMD.Widgets { Gtk.MenuItem menu_open_item = new Gtk.MenuItem.with_label (_("Open in File Manager")); menu_open_item.activate.connect (() => { if (_selected != null && _all_sheets.find (_selected) != null) { - AppInfo.launch_default_for_uri ("file://%s".printf (_selected._path), null); + try { + AppInfo.launch_default_for_uri ("file://%s".printf (_selected._path), null); + } catch (Error e) { + warning ("Could not open folder: %s", e.message); + } } }); menu.add (menu_open_item); From 37e8a0d39c6b68e792e299406236a7ef39311c36 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Mon, 8 Mar 2021 19:26:56 -0800 Subject: [PATCH 24/50] Also continue blockquotes? --- data/language-specs | 2 +- src/Widgets/Editor.vala | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data/language-specs b/data/language-specs index 2246d29..5c8336d 160000 --- a/data/language-specs +++ b/data/language-specs @@ -1 +1 @@ -Subproject commit 2246d2970e9009e3f3c7581d2341e6f4c6e8eda1 +Subproject commit 5c8336d46e057de3cc1f6b6c3e206b44a6d23763 diff --git a/src/Widgets/Editor.vala b/src/Widgets/Editor.vala index 5d186ff..3ff846b 100644 --- a/src/Widgets/Editor.vala +++ b/src/Widgets/Editor.vala @@ -88,8 +88,8 @@ namespace ThiefMD.Widgets { try { is_heading = new Regex ("(#+\\s[^\\n\\r]+?)[\\n\\R]", RegexCompileFlags.BSR_ANYCRLF | RegexCompileFlags.NEWLINE_ANYCRLF | RegexCompileFlags.CASELESS, 0); - is_list = new Regex ("^(\\s*([\\*\\-\\+]|[0-9]+(\\.|\\)))\\s)\\s*(.+)", RegexCompileFlags.CASELESS, 0); - is_partial_list = new Regex ("^(\\s*([\\*\\-\\+]|[0-9]+\\.))\\s+$", RegexCompileFlags.CASELESS, 0); + is_list = new Regex ("^(\\s*([\\*\\-\\+\\>]|[0-9]+(\\.|\\)))\\s)\\s*(.+)", RegexCompileFlags.CASELESS, 0); + is_partial_list = new Regex ("^(\\s*([\\*\\-\\+\\>]|[0-9]+\\.))\\s+$", RegexCompileFlags.CASELESS, 0); numerical_list = new Regex ("^(\\s*)([0-9]+)((\\.|\\))\\s+)$", RegexCompileFlags.CASELESS, 0); is_url = new Regex ("^(http|ftp|ssh|mailto|tor|torrent|vscode|atom|rss|file)?s?(:\\/\\/)?(www\\.)?([a-zA-Z0-9\\.\\-]+)\\.([a-z]+)([^\\s]+)$", RegexCompileFlags.CASELESS, 0); is_codeblock = new Regex ("(```[a-zA-Z]*[\\n\\R]((.*?)[\\n\\R])*?```[\\n\\R])", RegexCompileFlags.MULTILINE | RegexCompileFlags.CASELESS, 0); From 188e21cd0f42f53ac94ae466fb3618d2583fa729 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Tue, 9 Mar 2021 19:32:05 -0800 Subject: [PATCH 25/50] Attempt to reduce crashes when text is hidden --- src/Widgets/Editor.vala | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/Widgets/Editor.vala b/src/Widgets/Editor.vala index 3ff846b..2e2c09e 100644 --- a/src/Widgets/Editor.vala +++ b/src/Widgets/Editor.vala @@ -402,6 +402,28 @@ namespace ThiefMD.Widgets { return have_match; } + private bool no_hiding = false; + public override bool motion_notify_event (EventMotion event ) { + if (((event.state & Gdk.ModifierType.BUTTON1_MASK) != 0) || + ((event.state & Gdk.ModifierType.BUTTON2_MASK) != 0) || + ((event.state & Gdk.ModifierType.BUTTON3_MASK) != 0) || + ((event.state & Gdk.ModifierType.BUTTON4_MASK) != 0) || + ((event.state & Gdk.ModifierType.BUTTON5_MASK) != 0)) + { + no_hiding = true; + } else if (no_hiding) { + update_heading_margins (true); + Timeout.add (300, () => { + no_hiding = false; + update_heading_margins (); + return false; + }); + } + + base.motion_notify_event (event); + return false; + } + private void on_drag_data_received ( Gtk.Widget widget, DragContext context, @@ -1136,7 +1158,7 @@ namespace ThiefMD.Widgets { try_later = true; } - if (try_later) { + if (try_later && !no_hiding && !buffer.has_selection) { if (!header_redraw_scheduled) { header_redraw_scheduled = true; Timeout.add (350, () => { From 11da1cadcef99f187d2c63ab03ea04b3513c17e4 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Wed, 10 Mar 2021 17:47:22 -0800 Subject: [PATCH 26/50] Add image upload support for Write.as blog posts --- src/Connections/WriteFreelyConnection.vala | 30 ++++++++++++++++++++++ src/writeas | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/Connections/WriteFreelyConnection.vala b/src/Connections/WriteFreelyConnection.vala index 3c83ad5..55fcbef 100644 --- a/src/Connections/WriteFreelyConnection.vala +++ b/src/Connections/WriteFreelyConnection.vala @@ -223,6 +223,36 @@ namespace ThiefMD.Connections { false, // Override as theme will probably display? false); + Gee.Map<string, string> images_to_upload = Pandoc.file_image_map (publisher_instance.get_export_markdown ()); + Gee.HashMap<string, string> replacements = new Gee.HashMap<string, string> (); + + if (images_to_upload.keys.size > 0 && connection.endpoint.has_prefix ("https://write.as/")) { + Thinking worker = new Thinking (_("Uploading images"), () => { + foreach (var images in images_to_upload) { + File img_file = File.new_for_path (images.value); + if (img_file.query_exists () && !FileUtils.test (images.value, FileTest.IS_DIR)) { + string upload_url; + if (connection.upload_image_simple ( + out upload_url, + img_file.get_path ())) + { + replacements.set (images.key, upload_url); + } else { + warning ("Could not upload image"); + } + } + } + }); + worker.run (); + } + + foreach (var replacement in replacements) { + body = body.replace ("(" + replacement.key, "(" + replacement.value); + body = body.replace ("\"" + replacement.key, "\"" + replacement.value); + body = body.replace ("'" + replacement.key, "'" + replacement.value); + warning ("Replaced %s with %s", replacement.key, replacement.value); + } + // Authenticated post if (collections.length () > 0 && connection.get_authenticated_user (out temp)) { int option = collection_selector.get_active (); diff --git a/src/writeas b/src/writeas index 71cb0bd..efcd906 160000 --- a/src/writeas +++ b/src/writeas @@ -1 +1 @@ -Subproject commit 71cb0bd2992db8cbe3ae096fad78897dc0f47e24 +Subproject commit efcd9062bdfb5c49f557b9cc118b98c65b4021aa From f46bbc61c1e42babfd627a7ac87318d695015c9f Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Wed, 10 Mar 2021 18:01:01 -0800 Subject: [PATCH 27/50] Update docs for next release to mention image upload support --- docs/_tips/blogging-with-writefreely.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_tips/blogging-with-writefreely.md b/docs/_tips/blogging-with-writefreely.md index 4e1ddc7..1e3c676 100644 --- a/docs/_tips/blogging-with-writefreely.md +++ b/docs/_tips/blogging-with-writefreely.md @@ -6,7 +6,7 @@ thieftags: #blogging Already have a [WriteFreely](https://writefreely.org) or [Write.as](https://write.as) blog? ThiefMD can publish to them! -Please note, automated image upload is not supported. Check out [Snap.as](https://snap.as) as a convenient way to upload and share your photos. +Please note [Snap.as](https://snap.as) image uploading will only work for [Write.as Pro Users](https://write.as/pro). ## Adding a Connection ❤ From 5cf616dc75a6a03849d2fcaf0e18313207b56c9f Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Thu, 11 Mar 2021 08:20:29 -0800 Subject: [PATCH 28/50] Fix sentence in about page --- docs/about/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/about/index.md b/docs/about/index.md index 8d4df0a..a05a0ce 100644 --- a/docs/about/index.md +++ b/docs/about/index.md @@ -11,7 +11,7 @@ title: About It is my primary way of attempting to learn [Vala](https://wiki.gnome.org/Projects/Vala) and filling in the gap of applications I miss from [macOS](https://apple.com). -ThiefMD aims to make large [Markdown](https://daringfireball.net/projects/markdown/syntax) projects manageable. I've always wanted to write a novel, and thehopefully ThiefMD will help me get there. +ThiefMD aims to make large [Markdown](https://daringfireball.net/projects/markdown/syntax) projects manageable. I've always wanted to write a novel, and hopefully ThiefMD will help me get there. # Features From 980865a7c7525af99fccae9aa8e9561a05b70637 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Thu, 11 Mar 2021 10:29:15 -0800 Subject: [PATCH 29/50] WordPress has a capital P --- README.md | 2 +- data/com.github.kmwallio.thiefmd.appdata.xml | 6 +++--- docs/_deets/list.md | 2 +- docs/_help/wordpress.md | 13 +++++++++++-- docs/help/index.md | 2 +- docs/index.md | 2 +- docs/opensource/index.md | 4 ++-- 7 files changed, 20 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index ee634a9..46e30c7 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ yay -S thiefmd * Sheet Management * Shortcut key bindings * Themes - * Export (DocX, ePUB, PDF, HTML, Markdown, [WriteFreely](https://thiefmd.com/tips/blogging-with-writefreely), [Ghost](https://thiefmd.com/tips/blogging-with-ghost), [Wordpress](https://wordpress.org), and more...) + * Export (DocX, ePUB, PDF, HTML, Markdown, [WriteFreely](https://thiefmd.com/tips/blogging-with-writefreely), [Ghost](https://thiefmd.com/tips/blogging-with-ghost), [WordPress](https://wordpress.org), and more...) * Import (DocX, ePUB, HTML, rst, textile, and more...) * Search `Ctrl+F` for the current file, and `Ctrl+Shift+F` for the *entire* library * Writing Statistics diff --git a/data/com.github.kmwallio.thiefmd.appdata.xml b/data/com.github.kmwallio.thiefmd.appdata.xml index e860ab0..6d9e77b 100644 --- a/data/com.github.kmwallio.thiefmd.appdata.xml +++ b/data/com.github.kmwallio.thiefmd.appdata.xml @@ -9,7 +9,7 @@ <summary>The markdown editor worth stealing.</summary> <description> <p>Keep your Markdown managed. Write epic tales, a novel, keep a journal, or finally write that book report.</p> - <p>ThiefMD is a Markdown Editor providing an easy way to organize, format, and compile your markdown documents. When you're ready to Publish, go to ePub, PDF, Office, Ghost, Wordpress, Write-Freely, or more.</p> + <p>ThiefMD is a Markdown Editor providing an easy way to organize, format, and compile your markdown documents. When you're ready to Publish, go to ePub, PDF, Office, Ghost, WordPress, Write-Freely, or more.</p> <p>Import from and Export to Office, ePUB, HTML, and more. ThiefMD is your one stop shop for making and managing markdown mischief.</p> </description> <developer_name>kmwallio</developer_name> @@ -56,9 +56,9 @@ <releases> <release version="0.1.6" date="2021-03-05" urgency="low"> <description> - <p>Finess and Wordpress</p> + <p>Finess and WordPress</p> <ul> - <li>Wordpress Export is now available, just add a Connection</li> + <li>WordPress Export is now available, just add a Connection</li> <li>Recessed headers don't just look great, they help you visually identify important parts of your document</li> <li>Small tweaks and improvements have been made to speed up the UI</li> <li>New Experimental Mode for hiding links in the markdown editor</li> diff --git a/docs/_deets/list.md b/docs/_deets/list.md index 42e7de4..82f6f42 100644 --- a/docs/_deets/list.md +++ b/docs/_deets/list.md @@ -37,7 +37,7 @@ title: Details * LaTeX * [WriteFreely](https://writefreely.org) * [Ghost](https://ghost.org) - * [Wordpress](https://wordpress.org) + * [WordPress](https://wordpress.org) * Import (Drag File onto Folder in Library) * [Office Open XML](https://en.wikipedia.org/wiki/Office_Open_XML) - file.docx * [OpenDocument](https://en.wikipedia.org/wiki/OpenDocument) - file.odt diff --git a/docs/_help/wordpress.md b/docs/_help/wordpress.md index 5d90def..21b1961 100644 --- a/docs/_help/wordpress.md +++ b/docs/_help/wordpress.md @@ -1,6 +1,6 @@ --- layout: page -title: Help with Wordpress +title: Help with WordPress --- ## Unable to Connect @@ -9,7 +9,7 @@ Double check your username, password, and provided endpoint. If you didn't provi ### Check for /xmlrpc.php -ThiefMD communicates with Wordpress through [XML-RPC](https://codex.wordpress.org/XML-RPC_Support). +ThiefMD communicates with WordPress through [XML-RPC](https://codex.wordpress.org/XML-RPC_Support). Certain plug-ins may disable XML-RPC, and some automated installations remove the file. @@ -27,6 +27,15 @@ Disabling mod\_security can open up your site to DDoS attacks, SQL Injections, B Disabling mod\_security may improve XML-RPC reliability. mod\_security limits the amount of data being sent though XML-RPC. Disabling it can allow for larger photo uploads. +### Disable block-xmlrpc on Digital Ocean + +The [WordPress Marketplace Installer](https://marketplace.digitalocean.com/apps/wordpress) disabled XML-RPC by default. To enable XML-RPC in your Droplet: + +```bash +a2disconf block-xmlrpc +systemctl reload apache2 +``` + ### Other issue? Please check your error and access logs. diff --git a/docs/help/index.md b/docs/help/index.md index 9c84e2c..547db6c 100644 --- a/docs/help/index.md +++ b/docs/help/index.md @@ -13,7 +13,7 @@ Feel free to reach out through [GitHub Issues](https://github.com/kmwallio/Thief * [Ghost](/help/ghost) * [Write Freely](/help/write-freely) -* [Wordpress](/help/wordpress) +* [WordPress](/help/wordpress) ### Exporting diff --git a/docs/index.md b/docs/index.md index f1e559b..1b9a531 100644 --- a/docs/index.md +++ b/docs/index.md @@ -31,7 +31,7 @@ Manage your <span class="pun">**\*\*mark\*\***</span> without any <span class="n ✅ Typewriter Scrolling ✅ Full Screen Editing ✅ Focus Mode -✅ Multiple Export Formats: PDF, ePub, docx, [WriteFreely](https://writefreely.org), [Ghost](https://ghost.org), [Wordpress](https://wordpress.org), and more +✅ Multiple Export Formats: PDF, ePub, docx, [WriteFreely](https://writefreely.org), [Ghost](https://ghost.org), [WordPress](https://wordpress.org), and more ✅ Multiple Import Formats: ePub, docx, HTML, and more If anything goes wrong, it's probably because we implemented it wrong. We're not liable for lost files or damage to your machine! diff --git a/docs/opensource/index.md b/docs/opensource/index.md index 52faef0..c0736db 100644 --- a/docs/opensource/index.md +++ b/docs/opensource/index.md @@ -57,9 +57,9 @@ buffer.changed.connect (() => { [Ghost-vala](https://github.com/ThiefMD/ghost-vala) is a simple library for publishing posts to [ghost](https://ghost.org) blogs. -## Wordpress-vala +## WordPress-vala -[Wordpress-vala](https://github.com/ThiefMD/wordpress-vala) is a simple library for publishing posts to [Wordpress](https://wordpress.org) blogs. It contains some workarounds and retries for some common issues. +[WordPress-vala](https://github.com/ThiefMD/wordpress-vala) is a simple library for publishing posts to [WordPress](https://wordpress.org) blogs. It contains some workarounds and retries for some common issues. ## Theme Generator From d4cd6dca96b4090a62c4a909aed7240e711870e4 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Thu, 11 Mar 2021 10:29:34 -0800 Subject: [PATCH 30/50] Add support for Featured Image in WordPress --- src/Connections/GhostConnection.vala | 2 ++ src/Connections/WordpressConnection.vala | 4 ++-- src/Connections/WriteFreelyConnection.vala | 2 +- src/Widgets/Preferences.vala | 2 +- src/wordpress | 2 +- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Connections/GhostConnection.vala b/src/Connections/GhostConnection.vala index 1371532..37a1d69 100644 --- a/src/Connections/GhostConnection.vala +++ b/src/Connections/GhostConnection.vala @@ -221,6 +221,8 @@ namespace ThiefMD.Connections { img_file.get_path ())) { replacements.set (images.key, upload_url); + } else { + warning ("Could not upload image %s", img_file.get_basename ()); } } } diff --git a/src/Connections/WordpressConnection.vala b/src/Connections/WordpressConnection.vala index a918861..1546850 100644 --- a/src/Connections/WordpressConnection.vala +++ b/src/Connections/WordpressConnection.vala @@ -224,7 +224,7 @@ namespace ThiefMD.Connections { { replacements.set (images.key, upload_url); } else { - warning ("Could not upload image"); + warning ("Could not upload image %s", img_file.get_basename ()); } } } @@ -271,7 +271,7 @@ namespace ThiefMD.Connections { if (featured_image == replacement.key) { featured_image = replacement.value; } - warning ("Replaced %s with %s", replacement.key, replacement.value); + debug ("Replaced %s with %s", replacement.key, replacement.value); } int published_state = publish_state.get_active (); diff --git a/src/Connections/WriteFreelyConnection.vala b/src/Connections/WriteFreelyConnection.vala index 55fcbef..2b92db1 100644 --- a/src/Connections/WriteFreelyConnection.vala +++ b/src/Connections/WriteFreelyConnection.vala @@ -238,7 +238,7 @@ namespace ThiefMD.Connections { { replacements.set (images.key, upload_url); } else { - warning ("Could not upload image"); + warning ("Could not upload image %s", img_file.get_basename ()); } } } diff --git a/src/Widgets/Preferences.vala b/src/Widgets/Preferences.vala index 9ffd731..0285175 100644 --- a/src/Widgets/Preferences.vala +++ b/src/Widgets/Preferences.vala @@ -122,7 +122,7 @@ namespace ThiefMD.Widgets { }); connection_options.add (ghost_connection); - var wordpress_connection = new Gtk.Button.with_label (_(" wordpress")); + var wordpress_connection = new Gtk.Button.with_label (_(" WordPress")); wordpress_connection.set_image (new Gtk.Image.from_resource ("/com/github/kmwallio/thiefmd/icons/wordpress.png")); wordpress_connection.hexpand = true; wordpress_connection.always_show_image = true; diff --git a/src/wordpress b/src/wordpress index 6bcba4c..f5432e9 160000 --- a/src/wordpress +++ b/src/wordpress @@ -1 +1 @@ -Subproject commit 6bcba4cb470171277ea8285d533036b1562afa04 +Subproject commit f5432e909de21adf5bfadd50e14aa2f16c760d06 From 7d9e23f2bf7465a6b9744a41720e5621d6f39e8d Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Thu, 11 Mar 2021 10:32:24 -0800 Subject: [PATCH 31/50] De-bold text during selection Lower chance of crashing when experimental mode enabled. When GTK locates the cursor in a TextView, if it locates in text hidden text formatted differently than main text, there's a chance of crash. --- src/Widgets/Editor.vala | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Widgets/Editor.vala b/src/Widgets/Editor.vala index 2e2c09e..a2d86cb 100644 --- a/src/Widgets/Editor.vala +++ b/src/Widgets/Editor.vala @@ -1187,6 +1187,18 @@ namespace ThiefMD.Widgets { code_block.background_full_height_set = true; } + if (settings.experimental) { + if (no_hiding) { + markdown_link.weight = Pango.Weight.NORMAL; + markdown_link.weight_set = true; + markdown_url.weight = Pango.Weight.NORMAL; + markdown_url.weight_set = true; + } else { + markdown_link.weight_set = false; + markdown_url.weight_set = false; + } + } + int m = left_margin; try { Gtk.TextIter start, end; @@ -1629,7 +1641,7 @@ namespace ThiefMD.Widgets { } public bool move_typewriter_scolling () { - if (!active) { + if (!active || buffer.has_selection) { return false; } From 24b809116a4a513b8fb79b2d05bd28c0d8d55c72 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Thu, 11 Mar 2021 19:57:46 -0800 Subject: [PATCH 32/50] Prep for next release --- com.github.kmwallio.thiefmd.spec | 4 ++++ data/com.github.kmwallio.thiefmd.appdata.xml | 11 +++++++++++ meson.build | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/com.github.kmwallio.thiefmd.spec b/com.github.kmwallio.thiefmd.spec index 0d96713..3a0bcfc 100644 --- a/com.github.kmwallio.thiefmd.spec +++ b/com.github.kmwallio.thiefmd.spec @@ -323,6 +323,10 @@ rm -vf %{buildroot}%{_libdir}/libultheme.a %postun -p /sbin/ldconfig %changelog +* Sun Mar 14 2021 kmwallio <mwallio@gmail.com> - 0.1.7 +- Snap.as image upload support +- WordPress featured image support +- Performance improvements for experimental mode * Fri Mar 05 2021 kmwallio <mwallio@gmail.com> - 0.1.6 - Wordpress Export is now available, just add a Connection - Recessed headers diff --git a/data/com.github.kmwallio.thiefmd.appdata.xml b/data/com.github.kmwallio.thiefmd.appdata.xml index 6d9e77b..0c67af8 100644 --- a/data/com.github.kmwallio.thiefmd.appdata.xml +++ b/data/com.github.kmwallio.thiefmd.appdata.xml @@ -54,6 +54,17 @@ </screenshot> </screenshots> <releases> + <release version="0.1.7" date="2021-03-14" urgency="low"> + <description> + <p>Finess and WordPress</p> + <ul> + <li>Snap.as image upload support</li> + <li>WordPress featured image support</li> + <li>Performance improvements for experimental mode</li> + </ul> + </description> + <url>https://github.com/kmwallio/ThiefMD/releases/tag/v0.1.6-finess</url> + </release> <release version="0.1.6" date="2021-03-05" urgency="low"> <description> <p>Finess and WordPress</p> diff --git a/meson.build b/meson.build index a1a6484..d0d89c2 100644 --- a/meson.build +++ b/meson.build @@ -1,6 +1,6 @@ # Name our project project('com.github.kmwallio.thiefmd', ['vala', 'c'], - version: '0.1.6' + version: '0.1.7' ) # Application ID From 4154170325e127a6832850f2af25b3d9cd97e9ad Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Thu, 11 Mar 2021 19:58:18 -0800 Subject: [PATCH 33/50] Work on accessibility in sheets display --- src/Constants/ThiefProperties.vala | 23 +++++++++++++++++++++++ src/Controllers/UI.vala | 23 ++++++++++++++++++++++- src/Widgets/Sheet.vala | 13 +------------ 3 files changed, 46 insertions(+), 13 deletions(-) diff --git a/src/Constants/ThiefProperties.vala b/src/Constants/ThiefProperties.vala index f41debd..d186598 100644 --- a/src/Constants/ThiefProperties.vala +++ b/src/Constants/ThiefProperties.vala @@ -113,6 +113,29 @@ The `markdown` editor worth stealing. *Focus* more on **writing**. font-size: %dpt; }"""; + public const string BUTTON_CSS = """@define-color borderColor %s; + .thief-drop-above { + margin-bottom: 1.5rem; + } + + .thief-drop-below { + margin-top: 1.5rem; + } + + .thief-list-sheet { + border-bottom: 1px solid alpha(@borderColor, 0.22); + border-radius: 0; + } + + .thief-list-sheet-active, + .thief-search-input, + .thief-search-results *:hover, + .thief-search-results *:active, + .thief-search-results *:hover:active { + border-bottom: 1px solid alpha(lighter(@borderColor), 0.22); + } + """; + public const string DYNAMIC_CSS = """@define-color colorPrimary %s; @define-color colorPrimaryActive %s; @define-color textColorPrimary %s; diff --git a/src/Controllers/UI.vala b/src/Controllers/UI.vala index 8628225..f107ddc 100644 --- a/src/Controllers/UI.vala +++ b/src/Controllers/UI.vala @@ -25,6 +25,7 @@ namespace ThiefMD.Controllers.UI { private bool _show_filename = false; private Gtk.CssProvider active_provider = null; private Gtk.CssProvider font_provider = null; + private Gtk.CssProvider border_provider; private Ultheme.HexColorPalette current_palette = null; // @@ -76,6 +77,24 @@ namespace ThiefMD.Controllers.UI { user_themes.append (user_theme); } + private void remove_border_color () { + if (border_provider != null) { + Gtk.StyleContext.remove_provider_for_screen (Gdk.Screen.get_default(), border_provider); + border_provider = null; + } + } + + private void insert_border_color () { + remove_border_color (); + var style_context = ThiefApp.get_instance ().toolbar.get_style_context (); + border_provider = new Gtk.CssProvider (); + var font_color = style_context.get_color (0); + warning ("Found %s", font_color.to_string ()); + string border_css = ThiefProperties.BUTTON_CSS.printf (font_color.to_string ()); + border_provider.load_from_data (border_css); + Gtk.StyleContext.add_provider_for_screen (Gdk.Screen.get_default(), border_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); + } + public void load_user_themes_and_connections () { if (user_themes != null) { return; @@ -331,8 +350,9 @@ namespace ThiefMD.Controllers.UI { Gtk.StyleContext.remove_provider_for_screen (Gdk.Screen.get_default (), active_provider); active_provider = null; } - set_dark_mode_based_on_colors (); + remove_border_color (); + insert_border_color (); } public void reset_css () { @@ -382,6 +402,7 @@ namespace ThiefMD.Controllers.UI { provider.load_from_data (new_css); Gtk.StyleContext.add_provider_for_screen (Gdk.Screen.get_default (), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); active_provider = provider; + remove_border_color (); } catch (Error e) { warning ("Could not set dynamic css: %s", e.message); } diff --git a/src/Widgets/Sheet.vala b/src/Widgets/Sheet.vala index 5d7df3c..92e7f9e 100644 --- a/src/Widgets/Sheet.vala +++ b/src/Widgets/Sheet.vala @@ -31,7 +31,6 @@ namespace ThiefMD.Widgets { public class Sheet : Gtk.ToggleButton { private string _sheet_path; private Gtk.Grid _button_grid; - private Gtk.Separator _button_separator; private Gtk.Label _label; private string _label_buffer; private Sheets _parent; @@ -75,11 +74,6 @@ namespace ThiefMD.Widgets { _button_grid.orientation = Gtk.Orientation.VERTICAL; _button_grid.hexpand = true; _button_grid.attach (_label, 0, 0); - _button_separator = new Gtk.Separator (Gtk.Orientation.HORIZONTAL); - _button_separator.hexpand = true; - if (!settings.ui_editor_theme) { - _button_grid.attach (_button_separator, 0, 1); - } _button_grid.show_all (); add (_button_grid); @@ -147,13 +141,8 @@ namespace ThiefMD.Widgets { } else { _label_buffer = "<b>" + _sheet_path.substring(_sheet_path.last_index_of (Path.DIR_SEPARATOR_S) + 1) + "</b>"; } - _label.set_label (_label_buffer); - if (!settings.ui_editor_theme && !active && _button_separator.parent == null) { - _button_grid.attach (_button_separator, 0, 1); - } else if (active || settings.ui_editor_theme && _button_separator.parent != null) { - _button_grid.remove (_button_separator); - } + _label.set_label (_label_buffer); settings.writing_changed (); } From 98e12419fa02801735bf9e727e55f9e4a883db26 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Thu, 11 Mar 2021 20:12:21 -0800 Subject: [PATCH 34/50] Remove color warning --- src/Controllers/UI.vala | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Controllers/UI.vala b/src/Controllers/UI.vala index f107ddc..9308478 100644 --- a/src/Controllers/UI.vala +++ b/src/Controllers/UI.vala @@ -89,7 +89,6 @@ namespace ThiefMD.Controllers.UI { var style_context = ThiefApp.get_instance ().toolbar.get_style_context (); border_provider = new Gtk.CssProvider (); var font_color = style_context.get_color (0); - warning ("Found %s", font_color.to_string ()); string border_css = ThiefProperties.BUTTON_CSS.printf (font_color.to_string ()); border_provider.load_from_data (border_css); Gtk.StyleContext.add_provider_for_screen (Gdk.Screen.get_default(), border_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); From 569efb217c6b5f96eb9d7bdf868d43cf459ed148 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Thu, 11 Mar 2021 20:19:57 -0800 Subject: [PATCH 35/50] Update and add Swedish Translation --- po/LINGUAS | 4 +- po/com.github.kmwallio.thiefmd.pot | 119 +++-- po/en_GB.po | 276 +++++------ po/es.po | 262 +++++----- po/fr.po | 285 ++++++----- po/sk.po | 288 +++++------ po/sv.po | 764 +++++++++++++++++++++++++++++ 7 files changed, 1390 insertions(+), 608 deletions(-) create mode 100644 po/sv.po diff --git a/po/LINGUAS b/po/LINGUAS index d42fe32..7edd07e 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1,4 +1,6 @@ en_GB es fr -sk \ No newline at end of file +sk +sv + diff --git a/po/com.github.kmwallio.thiefmd.pot b/po/com.github.kmwallio.thiefmd.pot index 6d4b81e..b03a27c 100644 --- a/po/com.github.kmwallio.thiefmd.pot +++ b/po/com.github.kmwallio.thiefmd.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: com.github.kmwallio.thiefmd\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-05 22:38-0800\n" +"POT-Creation-Date: 2021-03-11 20:12-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -17,17 +17,17 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: src/ThiefApp.vala:168 src/Controllers/UI.vala:497 +#: src/ThiefApp.vala:168 src/Controllers/UI.vala:519 #: src/Widgets/Library.vala:69 msgid "Library" msgstr "" -#: src/ThiefApp.vala:169 src/Controllers/UI.vala:455 -#: src/Controllers/UI.vala:474 +#: src/ThiefApp.vala:169 src/Controllers/UI.vala:477 +#: src/Controllers/UI.vala:496 msgid "Editor" msgstr "" -#: src/ThiefApp.vala:170 src/Controllers/UI.vala:463 +#: src/ThiefApp.vala:170 src/Controllers/UI.vala:485 msgid "Search" msgstr "" @@ -70,7 +70,8 @@ msgid "" "%s" msgstr "" -#: src/Controllers/FileManager.vala:45 +#. Supported import file extensions +#: src/Controllers/FileManager.vala:38 msgid "Importing File" msgstr "" @@ -121,31 +122,40 @@ msgstr "" msgid "LaTeX file" msgstr "" -#: src/Controllers/Dialogs.vala:160 +#: src/Controllers/Dialogs.vala:161 +msgid "Supported files" +msgstr "" + +#: src/Controllers/Dialogs.vala:168 +#, c-format +msgid "%s files" +msgstr "" + +#: src/Controllers/Dialogs.vala:175 msgid "All files" msgstr "" -#: src/Controllers/Dialogs.vala:169 +#: src/Controllers/Dialogs.vala:184 msgid "Add to Library" msgstr "" -#: src/Controllers/Dialogs.vala:179 +#: src/Controllers/Dialogs.vala:194 msgid "Open file" msgstr "" -#: src/Controllers/Dialogs.vala:191 +#: src/Controllers/Dialogs.vala:206 msgid "Save file" msgstr "" -#: src/Controllers/Dialogs.vala:205 +#: src/Controllers/Dialogs.vala:220 msgid "There are unsaved changes to the file. Do you want to save?" msgstr "" -#: src/Controllers/Dialogs.vala:206 +#: src/Controllers/Dialogs.vala:221 msgid "If you don't save, changes will be lost forever." msgstr "" -#: src/Controllers/Dialogs.vala:211 +#: src/Controllers/Dialogs.vala:226 msgid "Close without saving" msgstr "" @@ -154,7 +164,7 @@ msgid "No file opened" msgstr "" #: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 -#: src/Widgets/PublisherPreviewWindow.vala:251 +#: src/Widgets/PublisherPreviewWindow.vala:270 #: src/Widgets/ProjectStatistics.vala:71 msgid "Close" msgstr "" @@ -178,14 +188,19 @@ msgstr "" msgid "_Add Account" msgstr "" -#: src/Connections/WriteFreelyConnection.vala:278 -#: src/Connections/GhostConnection.vala:297 src/Widgets/Preferences.vala:83 +#: src/Connections/WriteFreelyConnection.vala:230 +#: src/Connections/GhostConnection.vala:214 +msgid "Uploading images" +msgstr "" + +#: src/Connections/WriteFreelyConnection.vala:308 +#: src/Connections/GhostConnection.vala:299 src/Widgets/Preferences.vala:83 #: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 msgid " Published" msgstr "" -#: src/Connections/WriteFreelyConnection.vala:278 -#: src/Connections/GhostConnection.vala:297 src/Widgets/Preferences.vala:83 +#: src/Connections/WriteFreelyConnection.vala:308 +#: src/Connections/GhostConnection.vala:299 src/Widgets/Preferences.vala:83 #: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 msgid "Post Published" msgstr "" @@ -194,10 +209,6 @@ msgstr "" msgid "E-mail" msgstr "" -#: src/Connections/GhostConnection.vala:214 -msgid "Uploading images" -msgstr "" - #: src/Exporters/ExportDocx.vala:60 msgid "Export DocX" msgstr "" @@ -268,40 +279,40 @@ msgstr "" msgid "Settings" msgstr "" -#: src/Widgets/Sheet.vala:163 +#: src/Widgets/Sheet.vala:173 msgid "Sort by" msgstr "" -#: src/Widgets/Sheet.vala:166 +#: src/Widgets/Sheet.vala:176 msgid "Sort by Filename Ascending" msgstr "" -#: src/Widgets/Sheet.vala:172 +#: src/Widgets/Sheet.vala:182 msgid "Sort by Filename Descending" msgstr "" -#: src/Widgets/Sheet.vala:179 +#: src/Widgets/Sheet.vala:189 msgid "Sort by Title Ascending" msgstr "" -#: src/Widgets/Sheet.vala:185 +#: src/Widgets/Sheet.vala:195 msgid "Sort by Title Descending" msgstr "" -#: src/Widgets/Sheet.vala:192 +#: src/Widgets/Sheet.vala:202 msgid "Sort by Date Ascending" msgstr "" -#: src/Widgets/Sheet.vala:198 +#: src/Widgets/Sheet.vala:208 msgid "Sort by Date Descending" msgstr "" -#: src/Widgets/Sheet.vala:209 src/Widgets/QuickPreferences.vala:72 +#: src/Widgets/Sheet.vala:219 src/Widgets/QuickPreferences.vala:72 #: src/Widgets/QuickPreferences.vala:154 src/Widgets/QuickPreferences.vala:227 msgid "Preview" msgstr "" -#: src/Widgets/Sheet.vala:217 src/Widgets/PublisherPreviewWindow.vala:136 +#: src/Widgets/Sheet.vala:227 src/Widgets/PublisherPreviewWindow.vala:141 #: src/Widgets/ProjectStatistics.vala:64 msgid "Export" msgstr "" @@ -310,27 +321,27 @@ msgstr "" #. menu_rename.activate.connect (() => { #. }); #. menu.add (menu_rename); -#: src/Widgets/Sheet.vala:233 +#: src/Widgets/Sheet.vala:243 msgid "Danger Zone" msgstr "" -#: src/Widgets/Sheet.vala:239 +#: src/Widgets/Sheet.vala:249 msgid "Move to Trash" msgstr "" -#: src/Widgets/Editor.vala:379 +#: src/Widgets/Editor.vala:376 msgid "_Load from disk" msgstr "" -#: src/Widgets/Editor.vala:381 +#: src/Widgets/Editor.vala:378 msgid "_Keep what's in editor" msgstr "" -#: src/Widgets/Editor.vala:1539 +#: src/Widgets/Editor.vala:1684 msgid "Insert Datetime" msgstr "" -#: src/Widgets/Editor.vala:1557 +#: src/Widgets/Editor.vala:1702 msgid "Insert YAML Frontmatter" msgstr "" @@ -347,26 +358,30 @@ msgid "Search " msgstr "" #: src/Widgets/Library.vala:512 +msgid "Open in File Manager" +msgstr "" + +#: src/Widgets/Library.vala:524 msgid "Create Sub-Folder" msgstr "" -#: src/Widgets/Library.vala:529 +#: src/Widgets/Library.vala:541 msgid "Hide from Library" msgstr "" -#: src/Widgets/Library.vala:553 +#: src/Widgets/Library.vala:565 msgid "Show Hidden Items" msgstr "" -#: src/Widgets/Library.vala:566 +#: src/Widgets/Library.vala:578 msgid "Remove from Library" msgstr "" -#: src/Widgets/Library.vala:801 +#: src/Widgets/Library.vala:813 msgid "Copy" msgstr "" -#: src/Widgets/Library.vala:803 +#: src/Widgets/Library.vala:815 msgid "Move" msgstr "" @@ -378,14 +393,18 @@ msgstr "" msgid "mkdir" msgstr "" -#: src/Widgets/NewSheet.vala:31 +#: src/Widgets/NewSheet.vala:32 msgid "Sheet name" msgstr "" -#: src/Widgets/NewSheet.vala:34 +#: src/Widgets/NewSheet.vala:35 msgid "Create" msgstr "" +#: src/Widgets/NewSheet.vala:36 +msgid "Import" +msgstr "" + #: src/Widgets/Preferences.vala:50 msgid "Current Connections" msgstr "" @@ -411,7 +430,7 @@ msgid " ghost" msgstr "" #: src/Widgets/Preferences.vala:125 -msgid " wordpress" +msgid " WordPress" msgstr "" #: src/Widgets/Preferences.vala:206 @@ -572,22 +591,22 @@ msgstr "" msgid "Enable experimental features" msgstr "" -#: src/Widgets/PublisherPreviewWindow.vala:60 -#: src/Widgets/PublisherPreviewWindow.vala:190 +#: src/Widgets/PublisherPreviewWindow.vala:65 +#: src/Widgets/PublisherPreviewWindow.vala:195 #: src/Widgets/QuickPreferences.vala:81 src/Widgets/QuickPreferences.vala:163 #: src/Widgets/QuickPreferences.vala:236 msgid "Publishing Preview" msgstr "" -#: src/Widgets/PublisherPreviewWindow.vala:138 +#: src/Widgets/PublisherPreviewWindow.vala:143 msgid "Export Item" msgstr "" -#: src/Widgets/PublisherPreviewWindow.vala:175 +#: src/Widgets/PublisherPreviewWindow.vala:180 msgid "File not Exported" msgstr "" -#: src/Widgets/PublisherPreviewWindow.vala:176 +#: src/Widgets/PublisherPreviewWindow.vala:181 msgid "ThiefMD could not export the file, please try again." msgstr "" diff --git a/po/en_GB.po b/po/en_GB.po index e80d16e..fa654e5 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -1,28 +1,11 @@ msgid "" msgstr "" -"Project-Id-Version: ThiefMD\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-05 22:38-0800\n" -"Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" - -#: src/ThiefApp.vala:168 src/Controllers/UI.vala:497 -#: src/Widgets/Library.vala:69 -msgid "Library" -msgstr "Library" - -#: src/ThiefApp.vala:169 src/Controllers/UI.vala:455 -#: src/Controllers/UI.vala:474 -msgid "Editor" -msgstr "" - -#: src/ThiefApp.vala:170 src/Controllers/UI.vala:463 -#, fuzzy -msgid "Search" -msgstr "Search" +"Project-Id-Version: ThiefMD\n" +"Language: en\n" #: src/ThiefApp.vala:263 msgid "HTML" @@ -48,30 +31,8 @@ msgstr "LaTeX" msgid "DocX" msgstr "DocX" -#. Visual Settings -#. Arbitrary strings -#: src/Constants/AppSettings.vala:97 -#, c-format -msgid "" -"# Click on a sheet to get started\n" -"\n" -"First time here? Drag a folder into the library, or click on the Folder " -"icon to select a folder to add.\n" -"\n" -"## Thief Tip:\n" -"\n" -"%s" -msgstr "" -"# Click on a sheet to get started\n" -"\n" -"First time here? Drag a folder into the library, or click on the Folder " -"icon to select a folder to add.\n" -"\n" -"## Thief Tip:\n" -"\n" -"%s" - -#: src/Controllers/FileManager.vala:45 +#. Supported import file extensions +#: src/Controllers/FileManager.vala:38 msgid "Importing File" msgstr "Importing File" @@ -122,31 +83,31 @@ msgstr "MHTML files" msgid "LaTeX file" msgstr "LaTeX file" -#: src/Controllers/Dialogs.vala:160 +#: src/Controllers/Dialogs.vala:175 msgid "All files" msgstr "All files" -#: src/Controllers/Dialogs.vala:169 +#: src/Controllers/Dialogs.vala:184 msgid "Add to Library" msgstr "Add to Library" -#: src/Controllers/Dialogs.vala:179 +#: src/Controllers/Dialogs.vala:194 msgid "Open file" msgstr "Open file" -#: src/Controllers/Dialogs.vala:191 +#: src/Controllers/Dialogs.vala:206 msgid "Save file" msgstr "Save file" -#: src/Controllers/Dialogs.vala:205 +#: src/Controllers/Dialogs.vala:220 msgid "There are unsaved changes to the file. Do you want to save?" msgstr "There are unsaved changes to the file. Do you want to save?" -#: src/Controllers/Dialogs.vala:206 +#: src/Controllers/Dialogs.vala:221 msgid "If you don't save, changes will be lost forever." msgstr "If you don't save, changes will be lost forever." -#: src/Controllers/Dialogs.vala:211 +#: src/Controllers/Dialogs.vala:226 msgid "Close without saving" msgstr "Close without saving" @@ -154,12 +115,6 @@ msgstr "Close without saving" msgid "No file opened" msgstr "No file opened" -#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 -#: src/Widgets/PublisherPreviewWindow.vala:251 -#: src/Widgets/ProjectStatistics.vala:71 -msgid "Close" -msgstr "Close" - #: src/Connections/WriteFreelyConnection.vala:100 msgid "Username" msgstr "Username" @@ -179,14 +134,14 @@ msgstr "Endpoint" msgid "_Add Account" msgstr "Add Account" -#: src/Connections/WriteFreelyConnection.vala:278 -#: src/Connections/GhostConnection.vala:297 src/Widgets/Preferences.vala:83 +#: src/Connections/WriteFreelyConnection.vala:308 +#: src/Connections/GhostConnection.vala:299 src/Widgets/Preferences.vala:83 #: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 msgid " Published" msgstr " Published" -#: src/Connections/WriteFreelyConnection.vala:278 -#: src/Connections/GhostConnection.vala:297 src/Widgets/Preferences.vala:83 +#: src/Connections/WriteFreelyConnection.vala:308 +#: src/Connections/GhostConnection.vala:299 src/Widgets/Preferences.vala:83 #: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 msgid "Post Published" msgstr "Post Published" @@ -195,6 +150,7 @@ msgstr "Post Published" msgid "E-mail" msgstr "E-mail" +#: src/Connections/WriteFreelyConnection.vala:230 #: src/Connections/GhostConnection.vala:214 msgid "Uploading images" msgstr "Uploading Images" @@ -253,6 +209,12 @@ msgstr "About" msgid "Credits" msgstr "Credits" +#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 +#: src/Widgets/PublisherPreviewWindow.vala:270 +#: src/Widgets/ProjectStatistics.vala:71 +msgid "Close" +msgstr "Close" + #: src/Widgets/HeaderBar.vala:86 msgid "New Sheet" msgstr "New Sheet" @@ -269,40 +231,40 @@ msgstr "Add Folder to Library" msgid "Settings" msgstr "Settings" -#: src/Widgets/Sheet.vala:163 +#: src/Widgets/Sheet.vala:173 msgid "Sort by" msgstr "Sort by" -#: src/Widgets/Sheet.vala:166 +#: src/Widgets/Sheet.vala:176 msgid "Sort by Filename Ascending" msgstr "Sort by Filename Ascending" -#: src/Widgets/Sheet.vala:172 +#: src/Widgets/Sheet.vala:182 msgid "Sort by Filename Descending" msgstr "Sort by Filename Descending" -#: src/Widgets/Sheet.vala:179 +#: src/Widgets/Sheet.vala:189 msgid "Sort by Title Ascending" msgstr "Sort by Title Ascending" -#: src/Widgets/Sheet.vala:185 +#: src/Widgets/Sheet.vala:195 msgid "Sort by Title Descending" msgstr "Sort by Title Descending" -#: src/Widgets/Sheet.vala:192 +#: src/Widgets/Sheet.vala:202 msgid "Sort by Date Ascending" msgstr "Sort by Date Ascending" -#: src/Widgets/Sheet.vala:198 +#: src/Widgets/Sheet.vala:208 msgid "Sort by Date Descending" msgstr "Sort by Date Descending" -#: src/Widgets/Sheet.vala:209 src/Widgets/QuickPreferences.vala:72 +#: src/Widgets/Sheet.vala:219 src/Widgets/QuickPreferences.vala:72 #: src/Widgets/QuickPreferences.vala:154 src/Widgets/QuickPreferences.vala:227 msgid "Preview" msgstr "Preview" -#: src/Widgets/Sheet.vala:217 src/Widgets/PublisherPreviewWindow.vala:136 +#: src/Widgets/Sheet.vala:227 src/Widgets/PublisherPreviewWindow.vala:141 #: src/Widgets/ProjectStatistics.vala:64 msgid "Export" msgstr "Export" @@ -311,27 +273,27 @@ msgstr "Export" #. menu_rename.activate.connect (() => { #. }); #. menu.add (menu_rename); -#: src/Widgets/Sheet.vala:233 +#: src/Widgets/Sheet.vala:243 msgid "Danger Zone" msgstr "Danger Zone" -#: src/Widgets/Sheet.vala:239 +#: src/Widgets/Sheet.vala:249 msgid "Move to Trash" msgstr "Move to Trash" -#: src/Widgets/Editor.vala:379 +#: src/Widgets/Editor.vala:376 msgid "_Load from disk" msgstr "Load from Disk" -#: src/Widgets/Editor.vala:381 +#: src/Widgets/Editor.vala:378 msgid "_Keep what's in editor" msgstr "Keep what's in Editor" -#: src/Widgets/Editor.vala:1539 +#: src/Widgets/Editor.vala:1684 msgid "Insert Datetime" msgstr "Insert Datetime" -#: src/Widgets/Editor.vala:1557 +#: src/Widgets/Editor.vala:1702 msgid "Insert YAML Frontmatter" msgstr "Insert YAML Frontmatter" @@ -347,27 +309,27 @@ msgstr "Writing Statistics" msgid "Search " msgstr "Search" -#: src/Widgets/Library.vala:512 +#: src/Widgets/Library.vala:524 msgid "Create Sub-Folder" msgstr "Create Sub-Folder" -#: src/Widgets/Library.vala:529 +#: src/Widgets/Library.vala:541 msgid "Hide from Library" msgstr "Hide from Library" -#: src/Widgets/Library.vala:553 +#: src/Widgets/Library.vala:565 msgid "Show Hidden Items" msgstr "Show Hidden Items" -#: src/Widgets/Library.vala:566 +#: src/Widgets/Library.vala:578 msgid "Remove from Library" msgstr "Remove from Library" -#: src/Widgets/Library.vala:801 +#: src/Widgets/Library.vala:813 msgid "Copy" msgstr "Copy" -#: src/Widgets/Library.vala:803 +#: src/Widgets/Library.vala:815 msgid "Move" msgstr "Move" @@ -379,11 +341,11 @@ msgstr "Folder Name" msgid "mkdir" msgstr "mkdir" -#: src/Widgets/NewSheet.vala:31 +#: src/Widgets/NewSheet.vala:32 msgid "Sheet name" msgstr "Sheet Name" -#: src/Widgets/NewSheet.vala:34 +#: src/Widgets/NewSheet.vala:35 msgid "Create" msgstr "Create" @@ -411,11 +373,6 @@ msgstr "WriteFreely" msgid " ghost" msgstr "Ghost" -#: src/Widgets/Preferences.vala:125 -#, fuzzy -msgid " wordpress" -msgstr "words" - #: src/Widgets/Preferences.vala:206 msgid "_Remove" msgstr "Remove" @@ -453,12 +410,8 @@ msgid "First Markdown File includes Author Metadata" msgstr "First Markdown file includes Author Metadata" #: src/Widgets/Preferences.vala:341 -msgid "" -"First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-" -"metadata'>Author metadata</a>" -msgstr "" -"First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-" -"metadata'>Author metadata</a>" +msgid "First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-metadata'>Author metadata</a>" +msgstr "First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-metadata'>Author metadata</a>" #: src/Widgets/Preferences.vala:357 msgid "Resolve full paths to resources" @@ -568,30 +521,22 @@ msgstr "Toggle library order" msgid "Keep library order" msgstr "Keep library order" -#: src/Widgets/Preferences.vala:685 -msgid "Toggle experimental features" -msgstr "" - -#: src/Widgets/Preferences.vala:687 -msgid "Enable experimental features" -msgstr "" - -#: src/Widgets/PublisherPreviewWindow.vala:60 -#: src/Widgets/PublisherPreviewWindow.vala:190 +#: src/Widgets/PublisherPreviewWindow.vala:65 +#: src/Widgets/PublisherPreviewWindow.vala:195 #: src/Widgets/QuickPreferences.vala:81 src/Widgets/QuickPreferences.vala:163 #: src/Widgets/QuickPreferences.vala:236 msgid "Publishing Preview" msgstr "Publishing Preview" -#: src/Widgets/PublisherPreviewWindow.vala:138 +#: src/Widgets/PublisherPreviewWindow.vala:143 msgid "Export Item" msgstr "Export Item" -#: src/Widgets/PublisherPreviewWindow.vala:175 +#: src/Widgets/PublisherPreviewWindow.vala:180 msgid "File not Exported" msgstr "File not Exported" -#: src/Widgets/PublisherPreviewWindow.vala:176 +#: src/Widgets/PublisherPreviewWindow.vala:181 msgid "ThiefMD could not export the file, please try again." msgstr "ThiefMD could not export the file, please try again." @@ -604,14 +549,11 @@ msgid "words" msgstr "words" #: src/Widgets/ProjectStatistics.vala:126 -#, c-format -msgid "" -"<b>Reading Time:</b>\n" +msgid "<b>Reading Time:</b>\n" "%d %s\n" "%d %s\n" "%d %s" -msgstr "" -"<b>Reading Time:</b>\n" +msgstr "<b>Reading Time:</b>\n" "%d %s\n" "%d %s\n" "%d %s" @@ -665,23 +607,6 @@ msgstr "Toggle Write Good" msgid "Launch Preview" msgstr "Launch Preview" -#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 -#: src/Widgets/QuickPreferences.vala:238 -#, fuzzy -msgid "Open Export Window" -msgstr "Export Markdown" - -#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 -#: src/Widgets/QuickPreferences.vala:245 -#, fuzzy -msgid "Search Library" -msgstr "Search" - -#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 -#: src/Widgets/QuickPreferences.vala:247 -msgid "Open Search Window" -msgstr "" - #: src/Widgets/QuickPreferences.vala:98 src/Widgets/QuickPreferences.vala:180 #: src/Widgets/QuickPreferences.vala:253 msgid "Preferences" @@ -696,29 +621,21 @@ msgstr "Edit Preferences" msgid "Font" msgstr "Font" -#: src/Widgets/ThemeSelector.vala:56 -msgid "Spacing" -msgstr "" - #: src/Widgets/ThemeSelector.vala:137 msgid "Font Selector" msgstr "Font Selector" #: src/Widgets/ThemeSelector.vala:320 -msgid "" -"Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" +msgid "Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" "<small>Stored in <a href='file://" -msgstr "" -"Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" +msgstr "Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" "<small>Stored in <a href='file://" #: src/Widgets/SearchBar.vala:110 -#, c-format msgid "(%d occurences)" msgstr "(%d occurences)" #: src/Widgets/StatisticsBar.vala:98 -#, c-format msgid "%d %s %d %s and %d %s reading time." msgstr "%d %s %d %s and %d %s reading time." @@ -743,7 +660,6 @@ msgid "seconds" msgstr "seconds" #: src/Widgets/StatisticsBar.vala:104 -#, c-format msgid "%s : %d words." msgstr "%s : %d words." @@ -766,3 +682,83 @@ msgstr "<b>Stealing file contents...</b>" #: src/Widgets/MarkdownCheatSheet.vala:52 msgid "Heading" msgstr "Heading" + +#. Font settings +#. Arbitrary strings +#: src/Constants/AppSettings.vala:97 +msgid "# Click on a sheet to get started\n" +"\n" +"First time here? Drag a folder into the library, or click on the Folder icon to select a folder to add.\n" +"\n" +"## Thief Tip:\n" +"\n" +"%s" +msgstr "# Click on a sheet to get started\n" +"\n" +"First time here? Drag a folder into the library, or click on the Folder icon to select a folder to add.\n" +"\n" +"## Thief Tip:\n" +"\n" +"%s" + +#: src/ThiefApp.vala:168 src/Controllers/UI.vala:519 +#: src/Widgets/Library.vala:69 +msgid "Library" +msgstr "Library" + +#: src/ThiefApp.vala:169 src/Controllers/UI.vala:477 +#: src/Controllers/UI.vala:496 +msgid "Editor" +msgstr "" + +#: src/ThiefApp.vala:170 src/Controllers/UI.vala:485 +msgid "Search" +msgstr "" + +#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 +#: src/Widgets/QuickPreferences.vala:238 +msgid "Open Export Window" +msgstr "" + +#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 +#: src/Widgets/QuickPreferences.vala:245 +msgid "Search Library" +msgstr "" + +#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 +#: src/Widgets/QuickPreferences.vala:247 +msgid "Open Search Window" +msgstr "" + +#: src/Widgets/ThemeSelector.vala:56 +msgid "Spacing" +msgstr "" + +#: src/Widgets/Preferences.vala:685 +msgid "Toggle experimental features" +msgstr "" + +#: src/Widgets/Preferences.vala:687 +msgid "Enable experimental features" +msgstr "" + +#: src/Controllers/Dialogs.vala:161 +msgid "Supported files" +msgstr "" + +#: src/Controllers/Dialogs.vala:168 +msgid "%s files" +msgstr "" + +#: src/Widgets/Library.vala:512 +msgid "Open in File Manager" +msgstr "" + +#: src/Widgets/NewSheet.vala:36 +msgid "Import" +msgstr "" + +#: src/Widgets/Preferences.vala:125 +msgid " WordPress" +msgstr "" + diff --git a/po/es.po b/po/es.po index 884f57b..3b3ac6d 100644 --- a/po/es.po +++ b/po/es.po @@ -1,28 +1,11 @@ msgid "" msgstr "" -"Project-Id-Version: ThiefMD\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-05 22:38-0800\n" -"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" - -#: src/ThiefApp.vala:168 src/Controllers/UI.vala:497 -#: src/Widgets/Library.vala:69 -msgid "Library" -msgstr "" - -#: src/ThiefApp.vala:169 src/Controllers/UI.vala:455 -#: src/Controllers/UI.vala:474 -msgid "Editor" -msgstr "" - -#: src/ThiefApp.vala:170 src/Controllers/UI.vala:463 -#, fuzzy -msgid "Search" -msgstr "Buscar " +"Project-Id-Version: ThiefMD\n" +"Language: es\n" #: src/ThiefApp.vala:263 msgid "HTML" @@ -48,22 +31,8 @@ msgstr "Látex" msgid "DocX" msgstr "DocX" -#. Visual Settings -#. Arbitrary strings -#: src/Constants/AppSettings.vala:97 -#, c-format -msgid "" -"# Click on a sheet to get started\n" -"\n" -"First time here? Drag a folder into the library, or click on the Folder " -"icon to select a folder to add.\n" -"\n" -"## Thief Tip:\n" -"\n" -"%s" -msgstr "" - -#: src/Controllers/FileManager.vala:45 +#. Supported import file extensions +#: src/Controllers/FileManager.vala:38 msgid "Importing File" msgstr "Importando archivo" @@ -114,31 +83,31 @@ msgstr "Archivos MHTML" msgid "LaTeX file" msgstr "Archivo LaTeX" -#: src/Controllers/Dialogs.vala:160 +#: src/Controllers/Dialogs.vala:175 msgid "All files" msgstr "Todos los archivos" -#: src/Controllers/Dialogs.vala:169 +#: src/Controllers/Dialogs.vala:184 msgid "Add to Library" msgstr "Agregar a la biblioteca" -#: src/Controllers/Dialogs.vala:179 +#: src/Controllers/Dialogs.vala:194 msgid "Open file" msgstr "Abrir documento" -#: src/Controllers/Dialogs.vala:191 +#: src/Controllers/Dialogs.vala:206 msgid "Save file" msgstr "Guardar el archivo" -#: src/Controllers/Dialogs.vala:205 +#: src/Controllers/Dialogs.vala:220 msgid "There are unsaved changes to the file. Do you want to save?" msgstr "Hay cambios no guardados en el archivo. ¿Quieres guardar?" -#: src/Controllers/Dialogs.vala:206 +#: src/Controllers/Dialogs.vala:221 msgid "If you don't save, changes will be lost forever." msgstr "Si no guarda, los cambios se perderán para siempre." -#: src/Controllers/Dialogs.vala:211 +#: src/Controllers/Dialogs.vala:226 msgid "Close without saving" msgstr "Cerrar sin guardar" @@ -146,12 +115,6 @@ msgstr "Cerrar sin guardar" msgid "No file opened" msgstr "Ningún archivo abierto" -#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 -#: src/Widgets/PublisherPreviewWindow.vala:251 -#: src/Widgets/ProjectStatistics.vala:71 -msgid "Close" -msgstr "Cerrar" - #: src/Connections/WriteFreelyConnection.vala:100 msgid "Username" msgstr "Nombre de usuario" @@ -171,14 +134,14 @@ msgstr "Punto final" msgid "_Add Account" msgstr "_Añadir cuenta" -#: src/Connections/WriteFreelyConnection.vala:278 -#: src/Connections/GhostConnection.vala:297 src/Widgets/Preferences.vala:83 +#: src/Connections/WriteFreelyConnection.vala:308 +#: src/Connections/GhostConnection.vala:299 src/Widgets/Preferences.vala:83 #: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 msgid " Published" msgstr " Publicado" -#: src/Connections/WriteFreelyConnection.vala:278 -#: src/Connections/GhostConnection.vala:297 src/Widgets/Preferences.vala:83 +#: src/Connections/WriteFreelyConnection.vala:308 +#: src/Connections/GhostConnection.vala:299 src/Widgets/Preferences.vala:83 #: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 msgid "Post Published" msgstr "Publicación publicada" @@ -187,6 +150,7 @@ msgstr "Publicación publicada" msgid "E-mail" msgstr "Correo electrónico" +#: src/Connections/WriteFreelyConnection.vala:230 #: src/Connections/GhostConnection.vala:214 msgid "Uploading images" msgstr "Subiendo imágenes" @@ -245,6 +209,12 @@ msgstr "Acerca de" msgid "Credits" msgstr "Créditos" +#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 +#: src/Widgets/PublisherPreviewWindow.vala:270 +#: src/Widgets/ProjectStatistics.vala:71 +msgid "Close" +msgstr "Cerrar" + #: src/Widgets/HeaderBar.vala:86 msgid "New Sheet" msgstr "Hoja nueva" @@ -261,40 +231,40 @@ msgstr "Agregar carpeta a la biblioteca" msgid "Settings" msgstr "Configuraciones" -#: src/Widgets/Sheet.vala:163 +#: src/Widgets/Sheet.vala:173 msgid "Sort by" msgstr "Ordenar por" -#: src/Widgets/Sheet.vala:166 +#: src/Widgets/Sheet.vala:176 msgid "Sort by Filename Ascending" msgstr "Ordenar por nombre de archivo ascendente" -#: src/Widgets/Sheet.vala:172 +#: src/Widgets/Sheet.vala:182 msgid "Sort by Filename Descending" msgstr "Ordenar por nombre de archivo descendente" -#: src/Widgets/Sheet.vala:179 +#: src/Widgets/Sheet.vala:189 msgid "Sort by Title Ascending" msgstr "Ordenar por título ascendente" -#: src/Widgets/Sheet.vala:185 +#: src/Widgets/Sheet.vala:195 msgid "Sort by Title Descending" msgstr "Ordenar por título descendente" -#: src/Widgets/Sheet.vala:192 +#: src/Widgets/Sheet.vala:202 msgid "Sort by Date Ascending" msgstr "Ordenar por fecha ascendente" -#: src/Widgets/Sheet.vala:198 +#: src/Widgets/Sheet.vala:208 msgid "Sort by Date Descending" msgstr "Ordenar por fecha descendente" -#: src/Widgets/Sheet.vala:209 src/Widgets/QuickPreferences.vala:72 +#: src/Widgets/Sheet.vala:219 src/Widgets/QuickPreferences.vala:72 #: src/Widgets/QuickPreferences.vala:154 src/Widgets/QuickPreferences.vala:227 msgid "Preview" msgstr "Avance" -#: src/Widgets/Sheet.vala:217 src/Widgets/PublisherPreviewWindow.vala:136 +#: src/Widgets/Sheet.vala:227 src/Widgets/PublisherPreviewWindow.vala:141 #: src/Widgets/ProjectStatistics.vala:64 msgid "Export" msgstr "Exportar" @@ -303,27 +273,27 @@ msgstr "Exportar" #. menu_rename.activate.connect (() => { #. }); #. menu.add (menu_rename); -#: src/Widgets/Sheet.vala:233 +#: src/Widgets/Sheet.vala:243 msgid "Danger Zone" msgstr "Zona peligrosa" -#: src/Widgets/Sheet.vala:239 +#: src/Widgets/Sheet.vala:249 msgid "Move to Trash" msgstr "Mover a la papelera" -#: src/Widgets/Editor.vala:379 +#: src/Widgets/Editor.vala:376 msgid "_Load from disk" msgstr "_Cargar desde disco" -#: src/Widgets/Editor.vala:381 +#: src/Widgets/Editor.vala:378 msgid "_Keep what's in editor" msgstr "_Mantener lo que hay en el editor" -#: src/Widgets/Editor.vala:1539 +#: src/Widgets/Editor.vala:1684 msgid "Insert Datetime" msgstr "Insertar fecha y hora" -#: src/Widgets/Editor.vala:1557 +#: src/Widgets/Editor.vala:1702 msgid "Insert YAML Frontmatter" msgstr "Insertar Frontmatter YAML" @@ -339,27 +309,27 @@ msgstr "Escribir estadísticas" msgid "Search " msgstr "Buscar " -#: src/Widgets/Library.vala:512 +#: src/Widgets/Library.vala:524 msgid "Create Sub-Folder" msgstr "Crear sub-carpeta" -#: src/Widgets/Library.vala:529 +#: src/Widgets/Library.vala:541 msgid "Hide from Library" msgstr "Ocultar de la biblioteca" -#: src/Widgets/Library.vala:553 +#: src/Widgets/Library.vala:565 msgid "Show Hidden Items" msgstr "Mostrar elementos ocultos" -#: src/Widgets/Library.vala:566 +#: src/Widgets/Library.vala:578 msgid "Remove from Library" msgstr "Quitar de la biblioteca" -#: src/Widgets/Library.vala:801 +#: src/Widgets/Library.vala:813 msgid "Copy" msgstr "Copiar" -#: src/Widgets/Library.vala:803 +#: src/Widgets/Library.vala:815 msgid "Move" msgstr "Moverse" @@ -371,11 +341,11 @@ msgstr "Nombre de la carpeta" msgid "mkdir" msgstr "mkdir" -#: src/Widgets/NewSheet.vala:31 +#: src/Widgets/NewSheet.vala:32 msgid "Sheet name" msgstr "Nombre de la hoja" -#: src/Widgets/NewSheet.vala:34 +#: src/Widgets/NewSheet.vala:35 msgid "Create" msgstr "Crear" @@ -403,11 +373,6 @@ msgstr " Escribe libremente" msgid " ghost" msgstr " fantasma" -#: src/Widgets/Preferences.vala:125 -#, fuzzy -msgid " wordpress" -msgstr "palabras" - #: src/Widgets/Preferences.vala:206 msgid "_Remove" msgstr "_Eliminar" @@ -445,12 +410,8 @@ msgid "First Markdown File includes Author Metadata" msgstr "El primer archivo de Markdown incluye metadatos del autor" #: src/Widgets/Preferences.vala:341 -msgid "" -"First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-" -"metadata'>Author metadata</a>" -msgstr "" -"El primer archivo de Markdown incluye <a href='https://pandoc.org/MANUAL." -"html#epub-metadata'> metadatos del autor </a>" +msgid "First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-metadata'>Author metadata</a>" +msgstr "El primer archivo de Markdown incluye <a href='https://pandoc.org/MANUAL.html#epub-metadata'> metadatos del autor </a>" #: src/Widgets/Preferences.vala:357 msgid "Resolve full paths to resources" @@ -560,30 +521,22 @@ msgstr "Alternar orden de biblioteca" msgid "Keep library order" msgstr "Mantener el orden de la biblioteca" -#: src/Widgets/Preferences.vala:685 -msgid "Toggle experimental features" -msgstr "" - -#: src/Widgets/Preferences.vala:687 -msgid "Enable experimental features" -msgstr "" - -#: src/Widgets/PublisherPreviewWindow.vala:60 -#: src/Widgets/PublisherPreviewWindow.vala:190 +#: src/Widgets/PublisherPreviewWindow.vala:65 +#: src/Widgets/PublisherPreviewWindow.vala:195 #: src/Widgets/QuickPreferences.vala:81 src/Widgets/QuickPreferences.vala:163 #: src/Widgets/QuickPreferences.vala:236 msgid "Publishing Preview" msgstr "Vista previa de publicación" -#: src/Widgets/PublisherPreviewWindow.vala:138 +#: src/Widgets/PublisherPreviewWindow.vala:143 msgid "Export Item" msgstr "Exportar artículo" -#: src/Widgets/PublisherPreviewWindow.vala:175 +#: src/Widgets/PublisherPreviewWindow.vala:180 msgid "File not Exported" msgstr "Archivo no exportado" -#: src/Widgets/PublisherPreviewWindow.vala:176 +#: src/Widgets/PublisherPreviewWindow.vala:181 msgid "ThiefMD could not export the file, please try again." msgstr "ThiefMD no pudo exportar el archivo, inténtelo de nuevo." @@ -596,14 +549,11 @@ msgid "words" msgstr "palabras" #: src/Widgets/ProjectStatistics.vala:126 -#, c-format -msgid "" -"<b>Reading Time:</b>\n" +msgid "<b>Reading Time:</b>\n" "%d %s\n" "%d %s\n" "%d %s" -msgstr "" -"<b> Tiempo de lectura: </b>\n" +msgstr "<b> Tiempo de lectura: </b>\n" "% d% s\n" "% d% s\n" "% d% s" @@ -657,23 +607,6 @@ msgstr "Toggle Escribir bien" msgid "Launch Preview" msgstr "Vista previa de lanzamiento" -#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 -#: src/Widgets/QuickPreferences.vala:238 -#, fuzzy -msgid "Open Export Window" -msgstr "Exportar Markdown" - -#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 -#: src/Widgets/QuickPreferences.vala:245 -#, fuzzy -msgid "Search Library" -msgstr "Buscar " - -#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 -#: src/Widgets/QuickPreferences.vala:247 -msgid "Open Search Window" -msgstr "" - #: src/Widgets/QuickPreferences.vala:98 src/Widgets/QuickPreferences.vala:180 #: src/Widgets/QuickPreferences.vala:253 msgid "Preferences" @@ -688,29 +621,21 @@ msgstr "Editar preferencias" msgid "Font" msgstr "Fuente" -#: src/Widgets/ThemeSelector.vala:56 -msgid "Spacing" -msgstr "" - #: src/Widgets/ThemeSelector.vala:137 msgid "Font Selector" msgstr "Selector de fuentes" #: src/Widgets/ThemeSelector.vala:320 -msgid "" -"Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" +msgid "Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" "<small>Stored in <a href='file://" -msgstr "" -"Descarga <a href='https://themes.thiefmd.com/themes/'> más temas </a>.\n" +msgstr "Descarga <a href='https://themes.thiefmd.com/themes/'> más temas </a>.\n" "<pequeño> Almacenado en <a href = 'archivo: //" #: src/Widgets/SearchBar.vala:110 -#, c-format msgid "(%d occurences)" msgstr "(% d ocurrencias)" #: src/Widgets/StatisticsBar.vala:98 -#, c-format msgid "%d %s %d %s and %d %s reading time." msgstr "% d% s% d% sy% d% s tiempo de lectura." @@ -735,7 +660,6 @@ msgid "seconds" msgstr "segundos" #: src/Widgets/StatisticsBar.vala:104 -#, c-format msgid "%s : %d words." msgstr "% s:% d palabras." @@ -758,3 +682,77 @@ msgstr "<b> Robando el contenido del archivo ... </b>" #: src/Widgets/MarkdownCheatSheet.vala:52 msgid "Heading" msgstr "Bóveda" + +#. Font settings +#. Arbitrary strings +#: src/Constants/AppSettings.vala:97 +msgid "# Click on a sheet to get started\n" +"\n" +"First time here? Drag a folder into the library, or click on the Folder icon to select a folder to add.\n" +"\n" +"## Thief Tip:\n" +"\n" +"%s" +msgstr "" + +#: src/ThiefApp.vala:168 src/Controllers/UI.vala:519 +#: src/Widgets/Library.vala:69 +msgid "Library" +msgstr "" + +#: src/ThiefApp.vala:169 src/Controllers/UI.vala:477 +#: src/Controllers/UI.vala:496 +msgid "Editor" +msgstr "" + +#: src/ThiefApp.vala:170 src/Controllers/UI.vala:485 +msgid "Search" +msgstr "" + +#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 +#: src/Widgets/QuickPreferences.vala:238 +msgid "Open Export Window" +msgstr "" + +#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 +#: src/Widgets/QuickPreferences.vala:245 +msgid "Search Library" +msgstr "" + +#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 +#: src/Widgets/QuickPreferences.vala:247 +msgid "Open Search Window" +msgstr "" + +#: src/Widgets/ThemeSelector.vala:56 +msgid "Spacing" +msgstr "" + +#: src/Widgets/Preferences.vala:685 +msgid "Toggle experimental features" +msgstr "" + +#: src/Widgets/Preferences.vala:687 +msgid "Enable experimental features" +msgstr "" + +#: src/Controllers/Dialogs.vala:161 +msgid "Supported files" +msgstr "" + +#: src/Controllers/Dialogs.vala:168 +msgid "%s files" +msgstr "" + +#: src/Widgets/Library.vala:512 +msgid "Open in File Manager" +msgstr "" + +#: src/Widgets/NewSheet.vala:36 +msgid "Import" +msgstr "" + +#: src/Widgets/Preferences.vala:125 +msgid " WordPress" +msgstr "" + diff --git a/po/fr.po b/po/fr.po index 9a51f08..46d5f40 100644 --- a/po/fr.po +++ b/po/fr.po @@ -1,27 +1,11 @@ msgid "" msgstr "" -"Project-Id-Version: ThiefMD\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-05 22:38-0800\n" -"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" - -#: src/ThiefApp.vala:168 src/Controllers/UI.vala:497 -#: src/Widgets/Library.vala:69 -msgid "Library" -msgstr "Bibliothèque" - -#: src/ThiefApp.vala:169 src/Controllers/UI.vala:455 -#: src/Controllers/UI.vala:474 -msgid "Editor" -msgstr "" - -#: src/ThiefApp.vala:170 src/Controllers/UI.vala:463 -msgid "Search" -msgstr "" +"Project-Id-Version: ThiefMD\n" +"Language: fr\n" #: src/ThiefApp.vala:263 msgid "HTML" @@ -47,30 +31,8 @@ msgstr "LaTeX" msgid "DocX" msgstr "Docx" -#. Visual Settings -#. Arbitrary strings -#: src/Constants/AppSettings.vala:97 -#, c-format -msgid "" -"# Click on a sheet to get started\n" -"\n" -"First time here? Drag a folder into the library, or click on the Folder " -"icon to select a folder to add.\n" -"\n" -"## Thief Tip:\n" -"\n" -"%s" -msgstr "" -"# Cliquez sur une Feuille pour commencer\n" -"\n" -"Première fois ici ? Glissez un dossier sur la bibliothèque, ou cliquez sur " -"l'icône de dossier pour sélectionner un dossier à ajouter.\n" -"\n" -"## Astuce Thief:\n" -"\n" -"%s" - -#: src/Controllers/FileManager.vala:45 +#. Supported import file extensions +#: src/Controllers/FileManager.vala:38 msgid "Importing File" msgstr "Importer un fichier" @@ -88,6 +50,7 @@ msgstr "_Annuler" msgid "_Open" msgstr "_Ouvrir" +#. Where necessary, I modified the default shortcut to fit the French menus. #: src/Controllers/Dialogs.vala:61 msgid "_Add to Library" msgstr "Ajouter à la _bibliothèque" @@ -121,34 +84,31 @@ msgstr "fichiers LaTeX" msgid "LaTeX file" msgstr "fichier LaTeX" -#: src/Controllers/Dialogs.vala:160 +#: src/Controllers/Dialogs.vala:175 msgid "All files" msgstr "Tous les fichiers" -#: src/Controllers/Dialogs.vala:169 +#: src/Controllers/Dialogs.vala:184 msgid "Add to Library" msgstr "Ajouter à la Bibliothèque" -#: src/Controllers/Dialogs.vala:179 +#: src/Controllers/Dialogs.vala:194 msgid "Open file" msgstr "Ouvrir fichier" -#: src/Controllers/Dialogs.vala:191 +#: src/Controllers/Dialogs.vala:206 msgid "Save file" msgstr "Enregistrer fichier" -#: src/Controllers/Dialogs.vala:205 +#: src/Controllers/Dialogs.vala:220 msgid "There are unsaved changes to the file. Do you want to save?" -msgstr "" -"Il y a des changements non-sauvegardés dans le fichier. Voulez-vous " -"enregistrer?" +msgstr "Il y a des changements non-sauvegardés dans le fichier. Voulez-vous enregistrer?" -#: src/Controllers/Dialogs.vala:206 +#: src/Controllers/Dialogs.vala:221 msgid "If you don't save, changes will be lost forever." -msgstr "" -"Si vous n'enregistrez pas, les changements seront définitivement perdues." +msgstr "Si vous n'enregistrez pas, les changements seront définitivement perdues." -#: src/Controllers/Dialogs.vala:211 +#: src/Controllers/Dialogs.vala:226 msgid "Close without saving" msgstr "Fermer sans enregistrer" @@ -156,12 +116,6 @@ msgstr "Fermer sans enregistrer" msgid "No file opened" msgstr "Aucun fichier ouvert" -#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 -#: src/Widgets/PublisherPreviewWindow.vala:251 -#: src/Widgets/ProjectStatistics.vala:71 -msgid "Close" -msgstr "Fermer" - #: src/Connections/WriteFreelyConnection.vala:100 msgid "Username" msgstr "Nom d'utilisateur" @@ -174,21 +128,21 @@ msgstr "Mot de passe" #: src/Connections/WriteFreelyConnection.vala:109 #: src/Connections/GhostConnection.vala:91 msgid "Endpoint" -msgstr "" +msgstr "URL" #: src/Connections/WriteFreelyConnection.vala:127 #: src/Connections/GhostConnection.vala:109 msgid "_Add Account" msgstr "A_jouter un compte" -#: src/Connections/WriteFreelyConnection.vala:278 -#: src/Connections/GhostConnection.vala:297 src/Widgets/Preferences.vala:83 +#: src/Connections/WriteFreelyConnection.vala:308 +#: src/Connections/GhostConnection.vala:299 src/Widgets/Preferences.vala:83 #: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 msgid " Published" msgstr " Publié" -#: src/Connections/WriteFreelyConnection.vala:278 -#: src/Connections/GhostConnection.vala:297 src/Widgets/Preferences.vala:83 +#: src/Connections/WriteFreelyConnection.vala:308 +#: src/Connections/GhostConnection.vala:299 src/Widgets/Preferences.vala:83 #: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 msgid "Post Published" msgstr "Article Publié" @@ -197,6 +151,7 @@ msgstr "Article Publié" msgid "E-mail" msgstr "E-mail" +#: src/Connections/WriteFreelyConnection.vala:230 #: src/Connections/GhostConnection.vala:214 msgid "Uploading images" msgstr "Chargement des images" @@ -255,6 +210,12 @@ msgstr "À propos" msgid "Credits" msgstr "Crédits" +#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 +#: src/Widgets/PublisherPreviewWindow.vala:270 +#: src/Widgets/ProjectStatistics.vala:71 +msgid "Close" +msgstr "Fermer" + #: src/Widgets/HeaderBar.vala:86 msgid "New Sheet" msgstr "Nouvelle Feuille" @@ -271,40 +232,40 @@ msgstr "Ajouter le dossier à la Bibliothèque" msgid "Settings" msgstr "Préférences" -#: src/Widgets/Sheet.vala:163 +#: src/Widgets/Sheet.vala:173 msgid "Sort by" msgstr "Trier par" -#: src/Widgets/Sheet.vala:166 +#: src/Widgets/Sheet.vala:176 msgid "Sort by Filename Ascending" msgstr "Trier par Nom de fichier (montant)" -#: src/Widgets/Sheet.vala:172 +#: src/Widgets/Sheet.vala:182 msgid "Sort by Filename Descending" msgstr "Trier par Nom de fichier (descendant)" -#: src/Widgets/Sheet.vala:179 +#: src/Widgets/Sheet.vala:189 msgid "Sort by Title Ascending" msgstr "Trier par Titre (montant)" -#: src/Widgets/Sheet.vala:185 +#: src/Widgets/Sheet.vala:195 msgid "Sort by Title Descending" msgstr "Trier parTitre (Descendant)" -#: src/Widgets/Sheet.vala:192 +#: src/Widgets/Sheet.vala:202 msgid "Sort by Date Ascending" msgstr "Trier par date (descendant)" -#: src/Widgets/Sheet.vala:198 +#: src/Widgets/Sheet.vala:208 msgid "Sort by Date Descending" msgstr "Trier par date (montant)" -#: src/Widgets/Sheet.vala:209 src/Widgets/QuickPreferences.vala:72 +#: src/Widgets/Sheet.vala:219 src/Widgets/QuickPreferences.vala:72 #: src/Widgets/QuickPreferences.vala:154 src/Widgets/QuickPreferences.vala:227 msgid "Preview" msgstr "Aperçu" -#: src/Widgets/Sheet.vala:217 src/Widgets/PublisherPreviewWindow.vala:136 +#: src/Widgets/Sheet.vala:227 src/Widgets/PublisherPreviewWindow.vala:141 #: src/Widgets/ProjectStatistics.vala:64 msgid "Export" msgstr "Exporter" @@ -313,27 +274,27 @@ msgstr "Exporter" #. menu_rename.activate.connect (() => { #. }); #. menu.add (menu_rename); -#: src/Widgets/Sheet.vala:233 +#: src/Widgets/Sheet.vala:243 msgid "Danger Zone" msgstr "Danger Zone" -#: src/Widgets/Sheet.vala:239 +#: src/Widgets/Sheet.vala:249 msgid "Move to Trash" msgstr "Déplacer vers la corbeille" -#: src/Widgets/Editor.vala:379 +#: src/Widgets/Editor.vala:376 msgid "_Load from disk" msgstr "C_harger depuis le disque" -#: src/Widgets/Editor.vala:381 +#: src/Widgets/Editor.vala:378 msgid "_Keep what's in editor" msgstr "_Garder ce qui est dans l'éditeur" -#: src/Widgets/Editor.vala:1539 +#: src/Widgets/Editor.vala:1684 msgid "Insert Datetime" msgstr "Insérer Datetime" -#: src/Widgets/Editor.vala:1557 +#: src/Widgets/Editor.vala:1702 msgid "Insert YAML Frontmatter" msgstr "Insérer le Frontmatter YAML" @@ -349,27 +310,27 @@ msgstr "Écrire les statistiques" msgid "Search " msgstr "Chercher " -#: src/Widgets/Library.vala:512 +#: src/Widgets/Library.vala:524 msgid "Create Sub-Folder" msgstr "Créer un sous-dossier" -#: src/Widgets/Library.vala:529 +#: src/Widgets/Library.vala:541 msgid "Hide from Library" msgstr "Masquer dans la Bibliothèque" -#: src/Widgets/Library.vala:553 +#: src/Widgets/Library.vala:565 msgid "Show Hidden Items" msgstr "Afficher les éléments masqués" -#: src/Widgets/Library.vala:566 +#: src/Widgets/Library.vala:578 msgid "Remove from Library" msgstr "Supprimer de la Bibliothèque" -#: src/Widgets/Library.vala:801 +#: src/Widgets/Library.vala:813 msgid "Copy" msgstr "Copier" -#: src/Widgets/Library.vala:803 +#: src/Widgets/Library.vala:815 msgid "Move" msgstr "Déplacer" @@ -381,11 +342,11 @@ msgstr "Nom de dossier" msgid "mkdir" msgstr "mkdir" -#: src/Widgets/NewSheet.vala:31 +#: src/Widgets/NewSheet.vala:32 msgid "Sheet name" msgstr "Nom de la Feuille" -#: src/Widgets/NewSheet.vala:34 +#: src/Widgets/NewSheet.vala:35 msgid "Create" msgstr "Créer" @@ -413,11 +374,6 @@ msgstr " Mode sans distraction" msgid " ghost" msgstr " ghost" -#: src/Widgets/Preferences.vala:125 -#, fuzzy -msgid " wordpress" -msgstr "mots" - #: src/Widgets/Preferences.vala:206 msgid "_Remove" msgstr "Supp_rimer" @@ -455,12 +411,8 @@ msgid "First Markdown File includes Author Metadata" msgstr "Le 1er fichier Markdown comporte les métadonnées d'auteur" #: src/Widgets/Preferences.vala:341 -msgid "" -"First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-" -"metadata'>Author metadata</a>" -msgstr "" -"Le 1er fichier Markdown inclut les <a href='https://pandoc.org/MANUAL." -"html#epub-metadata'>métadonnées d'auteur</a>" +msgid "First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-metadata'>Author metadata</a>" +msgstr "Le 1er fichier Markdown inclut les <a href='https://pandoc.org/MANUAL.html#epub-metadata'>métadonnées d'auteur</a>" #: src/Widgets/Preferences.vala:357 msgid "Resolve full paths to resources" @@ -574,31 +526,23 @@ msgstr "Basculer l'ordre de la bibliothèque" msgid "Keep library order" msgstr "Conserver l'ordre de la bibliothèque" -#: src/Widgets/Preferences.vala:685 -msgid "Toggle experimental features" -msgstr "" - -#: src/Widgets/Preferences.vala:687 -msgid "Enable experimental features" -msgstr "" - -#: src/Widgets/PublisherPreviewWindow.vala:60 -#: src/Widgets/PublisherPreviewWindow.vala:190 +#: src/Widgets/PublisherPreviewWindow.vala:65 +#: src/Widgets/PublisherPreviewWindow.vala:195 #: src/Widgets/QuickPreferences.vala:81 src/Widgets/QuickPreferences.vala:163 #: src/Widgets/QuickPreferences.vala:236 msgid "Publishing Preview" msgstr "Aperçu de la publication" -#: src/Widgets/PublisherPreviewWindow.vala:138 +#: src/Widgets/PublisherPreviewWindow.vala:143 #, fuzzy msgid "Export Item" msgstr "Exporter l'objet" -#: src/Widgets/PublisherPreviewWindow.vala:175 +#: src/Widgets/PublisherPreviewWindow.vala:180 msgid "File not Exported" msgstr "Fichier non-exporté" -#: src/Widgets/PublisherPreviewWindow.vala:176 +#: src/Widgets/PublisherPreviewWindow.vala:181 msgid "ThiefMD could not export the file, please try again." msgstr "ThiefMD n'a pas pu exporter le fichier. Essayez à nouveau, merci." @@ -611,14 +555,11 @@ msgid "words" msgstr "mots" #: src/Widgets/ProjectStatistics.vala:126 -#, c-format -msgid "" -"<b>Reading Time:</b>\n" +msgid "<b>Reading Time:</b>\n" "%d %s\n" "%d %s\n" "%d %s" -msgstr "" -"<b>Temps de lecture:</b>\n" +msgstr "<b>Temps de lecture:</b>\n" "%d %s\n" "%d %s\n" "%d %s" @@ -659,6 +600,7 @@ msgstr "Vérifier l'orthographe" msgid "Toggle Spellcheck" msgstr "(Dés)activer la vérification orthographique" +#. Not sure this should be translated since it is a tool/feature, not a sentence. If it is to be translated we should decide the expresion we should use in French. Write Good means 'Bien Écrire" which will be obvious to any user but sounds quite lame in French ;) #: src/Widgets/QuickPreferences.vala:59 #, fuzzy msgid "Write Good" @@ -673,21 +615,6 @@ msgstr "(Dés)activer Write Good" msgid "Launch Preview" msgstr "Démarrer l'aperçu" -#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 -#: src/Widgets/QuickPreferences.vala:238 -msgid "Open Export Window" -msgstr "" - -#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 -#: src/Widgets/QuickPreferences.vala:245 -msgid "Search Library" -msgstr "" - -#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 -#: src/Widgets/QuickPreferences.vala:247 -msgid "Open Search Window" -msgstr "" - #: src/Widgets/QuickPreferences.vala:98 src/Widgets/QuickPreferences.vala:180 #: src/Widgets/QuickPreferences.vala:253 msgid "Preferences" @@ -702,30 +629,21 @@ msgstr "Modifier les préférences" msgid "Font" msgstr "Police" -#: src/Widgets/ThemeSelector.vala:56 -msgid "Spacing" -msgstr "" - #: src/Widgets/ThemeSelector.vala:137 msgid "Font Selector" msgstr "Sélecteur de police" #: src/Widgets/ThemeSelector.vala:320 -msgid "" -"Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" +msgid "Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" "<small>Stored in <a href='file://" -msgstr "" -"Téléchargez <a href='https://themes.thiefmd.com/themes/'>plus de thèmes</" -"a>.\n" +msgstr "Téléchargez <a href='https://themes.thiefmd.com/themes/'>plus de thèmes</a>.\n" "<small>Enregistrés dans <a href='file://" #: src/Widgets/SearchBar.vala:110 -#, c-format msgid "(%d occurences)" msgstr "(%d occurences)" #: src/Widgets/StatisticsBar.vala:98 -#, c-format msgid "%d %s %d %s and %d %s reading time." msgstr "%d %s %d %s et %d %s temps de lecture." @@ -750,7 +668,6 @@ msgid "seconds" msgstr "secondes" #: src/Widgets/StatisticsBar.vala:104 -#, c-format msgid "%s : %d words." msgstr "%s : %d mots." @@ -773,3 +690,83 @@ msgstr "<b>Dérobe le contenu du fichier...</b>" #: src/Widgets/MarkdownCheatSheet.vala:52 msgid "Heading" msgstr "Titre" + +#. Font settings +#. Arbitrary strings +#: src/Constants/AppSettings.vala:97 +msgid "# Click on a sheet to get started\n" +"\n" +"First time here? Drag a folder into the library, or click on the Folder icon to select a folder to add.\n" +"\n" +"## Thief Tip:\n" +"\n" +"%s" +msgstr "# Cliquez sur une Feuille pour commencer\n" +"\n" +"Première fois ici ? Glissez un dossier sur la bibliothèque, ou cliquez sur l'icône de dossier pour sélectionner un dossier à ajouter.\n" +"\n" +"## Astuce Thief:\n" +"\n" +"%s" + +#: src/ThiefApp.vala:168 src/Controllers/UI.vala:519 +#: src/Widgets/Library.vala:69 +msgid "Library" +msgstr "Bibliothèque" + +#: src/ThiefApp.vala:169 src/Controllers/UI.vala:477 +#: src/Controllers/UI.vala:496 +msgid "Editor" +msgstr "" + +#: src/ThiefApp.vala:170 src/Controllers/UI.vala:485 +msgid "Search" +msgstr "" + +#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 +#: src/Widgets/QuickPreferences.vala:238 +msgid "Open Export Window" +msgstr "" + +#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 +#: src/Widgets/QuickPreferences.vala:245 +msgid "Search Library" +msgstr "" + +#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 +#: src/Widgets/QuickPreferences.vala:247 +msgid "Open Search Window" +msgstr "" + +#: src/Widgets/ThemeSelector.vala:56 +msgid "Spacing" +msgstr "" + +#: src/Widgets/Preferences.vala:685 +msgid "Toggle experimental features" +msgstr "" + +#: src/Widgets/Preferences.vala:687 +msgid "Enable experimental features" +msgstr "" + +#: src/Controllers/Dialogs.vala:161 +msgid "Supported files" +msgstr "" + +#: src/Controllers/Dialogs.vala:168 +msgid "%s files" +msgstr "" + +#: src/Widgets/Library.vala:512 +msgid "Open in File Manager" +msgstr "" + +#: src/Widgets/NewSheet.vala:36 +msgid "Import" +msgstr "" + +#: src/Widgets/Preferences.vala:125 +msgid " WordPress" +msgstr "" + diff --git a/po/sk.po b/po/sk.po index 42b6515..309094b 100644 --- a/po/sk.po +++ b/po/sk.po @@ -1,27 +1,11 @@ msgid "" msgstr "" -"Project-Id-Version: ThiefMD\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-05 22:38-0800\n" -"Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" - -#: src/ThiefApp.vala:168 src/Controllers/UI.vala:497 -#: src/Widgets/Library.vala:69 -msgid "Library" -msgstr "Knižnica" - -#: src/ThiefApp.vala:169 src/Controllers/UI.vala:455 -#: src/Controllers/UI.vala:474 -msgid "Editor" -msgstr "" - -#: src/ThiefApp.vala:170 src/Controllers/UI.vala:463 -msgid "Search" -msgstr "" +"Project-Id-Version: ThiefMD\n" +"Language: sk\n" #: src/ThiefApp.vala:263 msgid "HTML" @@ -47,22 +31,8 @@ msgstr "" msgid "DocX" msgstr "" -#. Visual Settings -#. Arbitrary strings -#: src/Constants/AppSettings.vala:97 -#, c-format -msgid "" -"# Click on a sheet to get started\n" -"\n" -"First time here? Drag a folder into the library, or click on the Folder " -"icon to select a folder to add.\n" -"\n" -"## Thief Tip:\n" -"\n" -"%s" -msgstr "" - -#: src/Controllers/FileManager.vala:45 +#. Supported import file extensions +#: src/Controllers/FileManager.vala:38 msgid "Importing File" msgstr "" @@ -113,31 +83,31 @@ msgstr "MHTML súbory" msgid "LaTeX file" msgstr "Súbor LaTeX" -#: src/Controllers/Dialogs.vala:160 +#: src/Controllers/Dialogs.vala:175 msgid "All files" msgstr "Všetky súbory" -#: src/Controllers/Dialogs.vala:169 +#: src/Controllers/Dialogs.vala:184 msgid "Add to Library" msgstr "Pridať do knižnice" -#: src/Controllers/Dialogs.vala:179 +#: src/Controllers/Dialogs.vala:194 msgid "Open file" msgstr "Otvoriť súbor" -#: src/Controllers/Dialogs.vala:191 +#: src/Controllers/Dialogs.vala:206 msgid "Save file" msgstr "Uložiť súbor" -#: src/Controllers/Dialogs.vala:205 +#: src/Controllers/Dialogs.vala:220 msgid "There are unsaved changes to the file. Do you want to save?" msgstr "Súbor obsahuje neuložené zmeny. Chcete ich uložiť?" -#: src/Controllers/Dialogs.vala:206 +#: src/Controllers/Dialogs.vala:221 msgid "If you don't save, changes will be lost forever." msgstr "Ak ich neuložíte, zmeny budú navždy stratené." -#: src/Controllers/Dialogs.vala:211 +#: src/Controllers/Dialogs.vala:226 msgid "Close without saving" msgstr "Zavrieť bez uloženia" @@ -145,12 +115,6 @@ msgstr "Zavrieť bez uloženia" msgid "No file opened" msgstr "Žiadný súbor nieje otvorený" -#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 -#: src/Widgets/PublisherPreviewWindow.vala:251 -#: src/Widgets/ProjectStatistics.vala:71 -msgid "Close" -msgstr "Zavrieť" - #: src/Connections/WriteFreelyConnection.vala:100 msgid "Username" msgstr "Užívateľské meno" @@ -170,14 +134,14 @@ msgstr "" msgid "_Add Account" msgstr "_Pridať účet" -#: src/Connections/WriteFreelyConnection.vala:278 -#: src/Connections/GhostConnection.vala:297 src/Widgets/Preferences.vala:83 +#: src/Connections/WriteFreelyConnection.vala:308 +#: src/Connections/GhostConnection.vala:299 src/Widgets/Preferences.vala:83 #: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 msgid " Published" msgstr " Zverejnené" -#: src/Connections/WriteFreelyConnection.vala:278 -#: src/Connections/GhostConnection.vala:297 src/Widgets/Preferences.vala:83 +#: src/Connections/WriteFreelyConnection.vala:308 +#: src/Connections/GhostConnection.vala:299 src/Widgets/Preferences.vala:83 #: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 msgid "Post Published" msgstr "Príspevok zverejnený" @@ -186,6 +150,7 @@ msgstr "Príspevok zverejnený" msgid "E-mail" msgstr "" +#: src/Connections/WriteFreelyConnection.vala:230 #: src/Connections/GhostConnection.vala:214 msgid "Uploading images" msgstr "Nahrávanie obrázkov" @@ -244,6 +209,12 @@ msgstr "O" msgid "Credits" msgstr "Autori" +#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 +#: src/Widgets/PublisherPreviewWindow.vala:270 +#: src/Widgets/ProjectStatistics.vala:71 +msgid "Close" +msgstr "Zavrieť" + #: src/Widgets/HeaderBar.vala:86 msgid "New Sheet" msgstr "Nový list" @@ -260,40 +231,40 @@ msgstr "Pridať zložku do knižnice" msgid "Settings" msgstr "Nastavenia" -#: src/Widgets/Sheet.vala:163 +#: src/Widgets/Sheet.vala:173 msgid "Sort by" msgstr "Zoradiť podľa" -#: src/Widgets/Sheet.vala:166 +#: src/Widgets/Sheet.vala:176 msgid "Sort by Filename Ascending" msgstr "Zoradiť vzostupne podľa názvu súboru" -#: src/Widgets/Sheet.vala:172 +#: src/Widgets/Sheet.vala:182 msgid "Sort by Filename Descending" msgstr "" -#: src/Widgets/Sheet.vala:179 +#: src/Widgets/Sheet.vala:189 msgid "Sort by Title Ascending" msgstr "Zoradiť vzostupne podľa nadpisu" -#: src/Widgets/Sheet.vala:185 +#: src/Widgets/Sheet.vala:195 msgid "Sort by Title Descending" msgstr "" -#: src/Widgets/Sheet.vala:192 +#: src/Widgets/Sheet.vala:202 msgid "Sort by Date Ascending" msgstr "Zoradiť vzostupne podľa dátumu" -#: src/Widgets/Sheet.vala:198 +#: src/Widgets/Sheet.vala:208 msgid "Sort by Date Descending" msgstr "" -#: src/Widgets/Sheet.vala:209 src/Widgets/QuickPreferences.vala:72 +#: src/Widgets/Sheet.vala:219 src/Widgets/QuickPreferences.vala:72 #: src/Widgets/QuickPreferences.vala:154 src/Widgets/QuickPreferences.vala:227 msgid "Preview" msgstr "Náhľad" -#: src/Widgets/Sheet.vala:217 src/Widgets/PublisherPreviewWindow.vala:136 +#: src/Widgets/Sheet.vala:227 src/Widgets/PublisherPreviewWindow.vala:141 #: src/Widgets/ProjectStatistics.vala:64 msgid "Export" msgstr "" @@ -302,27 +273,27 @@ msgstr "" #. menu_rename.activate.connect (() => { #. }); #. menu.add (menu_rename); -#: src/Widgets/Sheet.vala:233 +#: src/Widgets/Sheet.vala:243 msgid "Danger Zone" msgstr "" -#: src/Widgets/Sheet.vala:239 +#: src/Widgets/Sheet.vala:249 msgid "Move to Trash" msgstr "Presunúť do koša" -#: src/Widgets/Editor.vala:379 +#: src/Widgets/Editor.vala:376 msgid "_Load from disk" msgstr "_Načítať z disku" -#: src/Widgets/Editor.vala:381 +#: src/Widgets/Editor.vala:378 msgid "_Keep what's in editor" msgstr "" -#: src/Widgets/Editor.vala:1539 +#: src/Widgets/Editor.vala:1684 msgid "Insert Datetime" msgstr "" -#: src/Widgets/Editor.vala:1557 +#: src/Widgets/Editor.vala:1702 msgid "Insert YAML Frontmatter" msgstr "" @@ -338,27 +309,27 @@ msgstr "" msgid "Search " msgstr "Hľadať " -#: src/Widgets/Library.vala:512 +#: src/Widgets/Library.vala:524 msgid "Create Sub-Folder" msgstr "Vytvoriť podzložku" -#: src/Widgets/Library.vala:529 +#: src/Widgets/Library.vala:541 msgid "Hide from Library" msgstr "Skryť z knižnice" -#: src/Widgets/Library.vala:553 +#: src/Widgets/Library.vala:565 msgid "Show Hidden Items" msgstr "Ukázať skryté súbory" -#: src/Widgets/Library.vala:566 +#: src/Widgets/Library.vala:578 msgid "Remove from Library" msgstr "Odstrániť z knižnice" -#: src/Widgets/Library.vala:801 +#: src/Widgets/Library.vala:813 msgid "Copy" msgstr "Kopírovať" -#: src/Widgets/Library.vala:803 +#: src/Widgets/Library.vala:815 msgid "Move" msgstr "Presunúť" @@ -370,11 +341,11 @@ msgstr "Názov zložky" msgid "mkdir" msgstr "" -#: src/Widgets/NewSheet.vala:31 +#: src/Widgets/NewSheet.vala:32 msgid "Sheet name" msgstr "Názov listu" -#: src/Widgets/NewSheet.vala:34 +#: src/Widgets/NewSheet.vala:35 msgid "Create" msgstr "Vytvoriť" @@ -402,10 +373,6 @@ msgstr "" msgid " ghost" msgstr "" -#: src/Widgets/Preferences.vala:125 -msgid " wordpress" -msgstr "" - #: src/Widgets/Preferences.vala:206 msgid "_Remove" msgstr "_Odstrániť" @@ -436,16 +403,14 @@ msgstr "Slovo" #: src/Widgets/Preferences.vala:283 msgid "Add New Theme" -msgstr "" +msgstr "Pridať novú tému" #: src/Widgets/Preferences.vala:339 msgid "First Markdown File includes Author Metadata" msgstr "" #: src/Widgets/Preferences.vala:341 -msgid "" -"First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-" -"metadata'>Author metadata</a>" +msgid "First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-metadata'>Author metadata</a>" msgstr "" #: src/Widgets/Preferences.vala:357 @@ -522,7 +487,7 @@ msgstr "" #: src/Widgets/Preferences.vala:593 msgid "Show writing statistics" -msgstr "" +msgstr "Ukázať štatistiky písania" #: src/Widgets/Preferences.vala:617 msgid "Toggle interface theming" @@ -530,7 +495,7 @@ msgstr "" #: src/Widgets/Preferences.vala:618 msgid "Apply theme to interface" -msgstr "" +msgstr "Použiť tému pre prostredie" #: src/Widgets/Preferences.vala:637 msgid "Toggle auto-hide headerbar" @@ -542,7 +507,7 @@ msgstr "" #: src/Widgets/Preferences.vala:653 msgid "Hide title" -msgstr "" +msgstr "Skryť názov" #: src/Widgets/Preferences.vala:655 msgid "Remove ThiefMD branding" @@ -554,47 +519,37 @@ msgstr "" #: src/Widgets/Preferences.vala:671 msgid "Keep library order" -msgstr "" - -#: src/Widgets/Preferences.vala:685 -msgid "Toggle experimental features" -msgstr "" - -#: src/Widgets/Preferences.vala:687 -msgid "Enable experimental features" -msgstr "" +msgstr "Ponechať zoradenie knižnice" -#: src/Widgets/PublisherPreviewWindow.vala:60 -#: src/Widgets/PublisherPreviewWindow.vala:190 +#: src/Widgets/PublisherPreviewWindow.vala:65 +#: src/Widgets/PublisherPreviewWindow.vala:195 #: src/Widgets/QuickPreferences.vala:81 src/Widgets/QuickPreferences.vala:163 #: src/Widgets/QuickPreferences.vala:236 msgid "Publishing Preview" -msgstr "" +msgstr "Náhľad publikácie" -#: src/Widgets/PublisherPreviewWindow.vala:138 +#: src/Widgets/PublisherPreviewWindow.vala:143 msgid "Export Item" -msgstr "" +msgstr "Exportovať položku" -#: src/Widgets/PublisherPreviewWindow.vala:175 +#: src/Widgets/PublisherPreviewWindow.vala:180 msgid "File not Exported" -msgstr "" +msgstr "Súbor nevyexportovaný" -#: src/Widgets/PublisherPreviewWindow.vala:176 +#: src/Widgets/PublisherPreviewWindow.vala:181 msgid "ThiefMD could not export the file, please try again." -msgstr "" +msgstr "ThiefMD nemohol exportovať súbor, prosím skúste to znova" #: src/Widgets/ProjectStatistics.vala:83 msgid "Refresh Statistics" -msgstr "" +msgstr "Obnoviť štatistiky" #: src/Widgets/ProjectStatistics.vala:125 msgid "words" -msgstr "" +msgstr "slová" #: src/Widgets/ProjectStatistics.vala:126 -#, c-format -msgid "" -"<b>Reading Time:</b>\n" +msgid "<b>Reading Time:</b>\n" "%d %s\n" "%d %s\n" "%d %s" @@ -602,23 +557,23 @@ msgstr "" #: src/Widgets/ProjectStatistics.vala:127 msgid "Hour" -msgstr "" +msgstr "Hodina" #: src/Widgets/ProjectStatistics.vala:127 msgid "Hours" -msgstr "" +msgstr "Hodiny" #: src/Widgets/ProjectStatistics.vala:128 msgid "Minute" -msgstr "" +msgstr "Minúta" #: src/Widgets/ProjectStatistics.vala:128 msgid "Minutes" -msgstr "" +msgstr "Minúty" #: src/Widgets/ProjectStatistics.vala:129 msgid "Seconds" -msgstr "" +msgstr "Sekundy" #: src/Widgets/QuickPreferences.vala:39 msgid "Typewriter Scrolling" @@ -630,11 +585,11 @@ msgstr "" #: src/Widgets/QuickPreferences.vala:49 msgid "Check Spelling" -msgstr "" +msgstr "Kontrolovať pravopis" #: src/Widgets/QuickPreferences.vala:52 msgid "Toggle Spellcheck" -msgstr "" +msgstr "Zapnúť kontrolu pravopisu" #: src/Widgets/QuickPreferences.vala:59 msgid "Write Good" @@ -649,21 +604,6 @@ msgstr "" msgid "Launch Preview" msgstr "Pozrieť náhľad" -#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 -#: src/Widgets/QuickPreferences.vala:238 -msgid "Open Export Window" -msgstr "" - -#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 -#: src/Widgets/QuickPreferences.vala:245 -msgid "Search Library" -msgstr "" - -#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 -#: src/Widgets/QuickPreferences.vala:247 -msgid "Open Search Window" -msgstr "" - #: src/Widgets/QuickPreferences.vala:98 src/Widgets/QuickPreferences.vala:180 #: src/Widgets/QuickPreferences.vala:253 msgid "Preferences" @@ -672,33 +612,26 @@ msgstr "Voľby" #: src/Widgets/QuickPreferences.vala:100 src/Widgets/QuickPreferences.vala:182 #: src/Widgets/QuickPreferences.vala:255 msgid "Edit Preferences" -msgstr "" +msgstr "Upraviť predvoľby" #: src/Widgets/ThemeSelector.vala:51 msgid "Font" msgstr "Písmo" -#: src/Widgets/ThemeSelector.vala:56 -msgid "Spacing" -msgstr "" - #: src/Widgets/ThemeSelector.vala:137 msgid "Font Selector" msgstr "Výber písma" #: src/Widgets/ThemeSelector.vala:320 -msgid "" -"Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" +msgid "Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" "<small>Stored in <a href='file://" msgstr "" #: src/Widgets/SearchBar.vala:110 -#, c-format msgid "(%d occurences)" msgstr "" #: src/Widgets/StatisticsBar.vala:98 -#, c-format msgid "%d %s %d %s and %d %s reading time." msgstr "" @@ -723,7 +656,6 @@ msgid "seconds" msgstr "sekundy" #: src/Widgets/StatisticsBar.vala:104 -#, c-format msgid "%s : %d words." msgstr "%s : %d slov." @@ -737,7 +669,7 @@ msgstr " Hľadanie" #: src/Widgets/SearchWindow.vala:449 msgid "Monitor for Library changes" -msgstr "" +msgstr "Sledovať pozmenenia knižnice" #: src/Widgets/Thinking.vala:81 msgid "<b>Stealing file contents...</b>" @@ -745,4 +677,78 @@ msgstr "" #: src/Widgets/MarkdownCheatSheet.vala:52 msgid "Heading" +msgstr "Nadpis" + +#. Font settings +#. Arbitrary strings +#: src/Constants/AppSettings.vala:97 +msgid "# Click on a sheet to get started\n" +"\n" +"First time here? Drag a folder into the library, or click on the Folder icon to select a folder to add.\n" +"\n" +"## Thief Tip:\n" +"\n" +"%s" +msgstr "" + +#: src/ThiefApp.vala:168 src/Controllers/UI.vala:519 +#: src/Widgets/Library.vala:69 +msgid "Library" +msgstr "Knižnica" + +#: src/ThiefApp.vala:169 src/Controllers/UI.vala:477 +#: src/Controllers/UI.vala:496 +msgid "Editor" msgstr "" + +#: src/ThiefApp.vala:170 src/Controllers/UI.vala:485 +msgid "Search" +msgstr "Hľadať" + +#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 +#: src/Widgets/QuickPreferences.vala:238 +msgid "Open Export Window" +msgstr "Otvoriť okno pre export" + +#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 +#: src/Widgets/QuickPreferences.vala:245 +msgid "Search Library" +msgstr "Prehľadávanie knižnice" + +#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 +#: src/Widgets/QuickPreferences.vala:247 +msgid "Open Search Window" +msgstr "Otvoriť vyhľadávacie okno" + +#: src/Widgets/ThemeSelector.vala:56 +msgid "Spacing" +msgstr "Rozloženie" + +#: src/Widgets/Preferences.vala:685 +msgid "Toggle experimental features" +msgstr "" + +#: src/Widgets/Preferences.vala:687 +msgid "Enable experimental features" +msgstr "" + +#: src/Controllers/Dialogs.vala:161 +msgid "Supported files" +msgstr "" + +#: src/Controllers/Dialogs.vala:168 +msgid "%s files" +msgstr "" + +#: src/Widgets/Library.vala:512 +msgid "Open in File Manager" +msgstr "" + +#: src/Widgets/NewSheet.vala:36 +msgid "Import" +msgstr "" + +#: src/Widgets/Preferences.vala:125 +msgid " WordPress" +msgstr "" + diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 0000000..b6ff35d --- /dev/null +++ b/po/sv.po @@ -0,0 +1,764 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: POEditor.com\n" +"Project-Id-Version: ThiefMD\n" +"Language: sv\n" + +#: src/ThiefApp.vala:263 +msgid "HTML" +msgstr "HTML" + +#: src/ThiefApp.vala:264 +msgid "PDF" +msgstr "PDF" + +#: src/ThiefApp.vala:265 +msgid "MHTML" +msgstr "MHTML" + +#: src/ThiefApp.vala:266 +msgid "Markdown" +msgstr "Markdown" + +#: src/ThiefApp.vala:267 +msgid "LaTeX" +msgstr "LaTeX" + +#: src/ThiefApp.vala:268 +msgid "DocX" +msgstr "DocX" + +#. Supported import file extensions +#: src/Controllers/FileManager.vala:38 +msgid "Importing File" +msgstr "Importerar fil" + +#: src/Controllers/Dialogs.vala:26 src/Controllers/Dialogs.vala:59 +msgid "_Save" +msgstr "_Spara" + +#: src/Controllers/Dialogs.vala:27 src/Controllers/Dialogs.vala:55 +#: src/Connections/WriteFreelyConnection.vala:129 +#: src/Connections/GhostConnection.vala:111 +msgid "_Cancel" +msgstr "_Avbryt" + +#: src/Controllers/Dialogs.vala:57 +msgid "_Open" +msgstr "_Öppna" + +#: src/Controllers/Dialogs.vala:61 +msgid "_Add to Library" +msgstr "_Lägg till i bibliotek" + +#: src/Controllers/Dialogs.vala:70 src/Exporters/ExportPdf.vala:81 +msgid "PDF file" +msgstr "PDF-fil" + +#: src/Controllers/Dialogs.vala:76 src/Exporters/ExportEpub.vala:55 +msgid "ePUB file" +msgstr "ePUB-fil" + +#: src/Controllers/Dialogs.vala:82 src/Exporters/ExportDocx.vala:55 +msgid "docx file" +msgstr "DOCX-fil" + +#: src/Controllers/Dialogs.vala:88 src/Controllers/Dialogs.vala:153 +#: src/Exporters/ExportMarkdown.vala:55 +msgid "Markdown files" +msgstr "Markdown-filer" + +#: src/Controllers/Dialogs.vala:95 src/Exporters/ExportHtml.vala:55 +msgid "HTML files" +msgstr "HTML-filer" + +#: src/Controllers/Dialogs.vala:102 src/Exporters/ExportMhtml.vala:55 +msgid "MHTML files" +msgstr "MHTML-filer" + +#: src/Controllers/Dialogs.vala:109 src/Exporters/ExportLatex.vala:55 +msgid "LaTeX file" +msgstr "LaTeX-fil" + +#: src/Controllers/Dialogs.vala:175 +msgid "All files" +msgstr "Alla filer" + +#: src/Controllers/Dialogs.vala:184 +msgid "Add to Library" +msgstr "Lägg till i biblioteket" + +#: src/Controllers/Dialogs.vala:194 +msgid "Open file" +msgstr "Öppna fil" + +#: src/Controllers/Dialogs.vala:206 +msgid "Save file" +msgstr "Spara fil" + +#: src/Controllers/Dialogs.vala:220 +msgid "There are unsaved changes to the file. Do you want to save?" +msgstr "Det finns osparade ändringar i filen. Vill du spara?" + +#: src/Controllers/Dialogs.vala:221 +msgid "If you don't save, changes will be lost forever." +msgstr "Om du inte sparar kommer ändringarna att förloras för alltid." + +#: src/Controllers/Dialogs.vala:226 +msgid "Close without saving" +msgstr "Stäng utan att spara" + +#: src/Controllers/SheetManager.vala:157 src/Widgets/StatisticsBar.vala:91 +msgid "No file opened" +msgstr "Ingen fil öppnad" + +#: src/Connections/WriteFreelyConnection.vala:100 +msgid "Username" +msgstr "Användarnamn" + +#: src/Connections/WriteFreelyConnection.vala:104 +#: src/Connections/GhostConnection.vala:86 +msgid "Password" +msgstr "Lösenord" + +#: src/Connections/WriteFreelyConnection.vala:109 +#: src/Connections/GhostConnection.vala:91 +msgid "Endpoint" +msgstr "Slutpunkt" + +#: src/Connections/WriteFreelyConnection.vala:127 +#: src/Connections/GhostConnection.vala:109 +msgid "_Add Account" +msgstr "_Lägg till konto" + +#: src/Connections/WriteFreelyConnection.vala:308 +#: src/Connections/GhostConnection.vala:299 src/Widgets/Preferences.vala:83 +#: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 +msgid " Published" +msgstr " Publicerat" + +#: src/Connections/WriteFreelyConnection.vala:308 +#: src/Connections/GhostConnection.vala:299 src/Widgets/Preferences.vala:83 +#: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 +msgid "Post Published" +msgstr "Efter publicering" + +#: src/Connections/GhostConnection.vala:82 +msgid "E-mail" +msgstr "E-post" + +#: src/Connections/WriteFreelyConnection.vala:230 +#: src/Connections/GhostConnection.vala:214 +msgid "Uploading images" +msgstr "Laddar upp bilder" + +#: src/Exporters/ExportDocx.vala:60 +msgid "Export DocX" +msgstr "Exportera DOCX" + +#: src/Exporters/ExportEpub.vala:60 +msgid "Export ePUB" +msgstr "Exportera ePUB" + +#: src/Exporters/ExportHtml.vala:61 +msgid "Export HTML" +msgstr "Exportera HTML" + +#: src/Exporters/ExportLatex.vala:60 +msgid "Export LaTeX" +msgstr "Exportera LaTeX" + +#: src/Exporters/ExportMarkdown.vala:61 +msgid "Export Markdown" +msgstr "Exportera Markdown" + +#: src/Exporters/ExportMhtml.vala:61 +msgid "Export MHTML" +msgstr "Exportera MHTML" + +#: src/Exporters/ExportPdf.vala:86 +msgid "Export PDF" +msgstr "Exportera PDF" + +#: src/Exporters/ExportPdf.vala:96 +msgid "Working PDF Magic" +msgstr "Fungerande PDF-magi" + +#: src/Exporters/ExportPdf.vala:97 +msgid "Making sure your hard work looks purrfect..." +msgstr "Tillser att ditt arbete ser perfekt ut..." + +#: src/Exporters/ExportPdf.vala:101 +msgid "Print to File" +msgstr "Skriv ut som fil" + +#: src/Widgets/About.vala:44 src/Widgets/QuickPreferences.vala:109 +#: src/Widgets/QuickPreferences.vala:191 src/Widgets/QuickPreferences.vala:264 +msgid "About ThiefMD" +msgstr "Om ThiefMD" + +#: src/Widgets/About.vala:44 src/Widgets/QuickPreferences.vala:107 +#: src/Widgets/QuickPreferences.vala:189 src/Widgets/QuickPreferences.vala:262 +msgid "About" +msgstr "Om" + +#: src/Widgets/About.vala:45 +msgid "Credits" +msgstr "Erkännanden" + +#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 +#: src/Widgets/PublisherPreviewWindow.vala:270 +#: src/Widgets/ProjectStatistics.vala:71 +msgid "Close" +msgstr "Stäng" + +#: src/Widgets/HeaderBar.vala:86 +msgid "New Sheet" +msgstr "Nytt blad" + +#: src/Widgets/HeaderBar.vala:98 +msgid "Change View" +msgstr "Ändra vyläge" + +#: src/Widgets/HeaderBar.vala:106 +msgid "Add Folder to Library" +msgstr "Lägg till mapp i biblioteket" + +#: src/Widgets/HeaderBar.vala:129 +msgid "Settings" +msgstr "Inställningar" + +#: src/Widgets/Sheet.vala:173 +msgid "Sort by" +msgstr "Sortera efter" + +#: src/Widgets/Sheet.vala:176 +msgid "Sort by Filename Ascending" +msgstr "Sortera efter filnamn stigande" + +#: src/Widgets/Sheet.vala:182 +msgid "Sort by Filename Descending" +msgstr "Sortera efter filnamn fallande" + +#: src/Widgets/Sheet.vala:189 +msgid "Sort by Title Ascending" +msgstr "Sortera efter titel stigande" + +#: src/Widgets/Sheet.vala:195 +msgid "Sort by Title Descending" +msgstr "Sortera efter titel fallande" + +#: src/Widgets/Sheet.vala:202 +msgid "Sort by Date Ascending" +msgstr "Sortera efter datum stigande" + +#: src/Widgets/Sheet.vala:208 +msgid "Sort by Date Descending" +msgstr "Sortera efter datum fallande" + +#: src/Widgets/Sheet.vala:219 src/Widgets/QuickPreferences.vala:72 +#: src/Widgets/QuickPreferences.vala:154 src/Widgets/QuickPreferences.vala:227 +msgid "Preview" +msgstr "Förhandsgranska" + +#: src/Widgets/Sheet.vala:227 src/Widgets/PublisherPreviewWindow.vala:141 +#: src/Widgets/ProjectStatistics.vala:64 +msgid "Export" +msgstr "Exportera" + +#. Gtk.MenuItem menu_rename = new Gtk.MenuItem.with_label (_("Rename File")); +#. menu_rename.activate.connect (() => { +#. }); +#. menu.add (menu_rename); +#: src/Widgets/Sheet.vala:243 +msgid "Danger Zone" +msgstr "Riskzon" + +#: src/Widgets/Sheet.vala:249 +msgid "Move to Trash" +msgstr "Flytta till papperskorgen" + +#: src/Widgets/Editor.vala:376 +msgid "_Load from disk" +msgstr "_Läs in från disk" + +#: src/Widgets/Editor.vala:378 +msgid "_Keep what's in editor" +msgstr "_Behåll vad som finns i redigeraren" + +#: src/Widgets/Editor.vala:1684 +msgid "Insert Datetime" +msgstr "Infoga datumtid" + +#: src/Widgets/Editor.vala:1702 +msgid "Insert YAML Frontmatter" +msgstr "Infoga YAML Frontmatter" + +#: src/Widgets/Library.vala:477 +msgid "Export Preview" +msgstr "Exportförhandsvisning" + +#: src/Widgets/Library.vala:487 +msgid "Writing Statistics" +msgstr "Skrivstatistik" + +#: src/Widgets/Library.vala:500 +msgid "Search " +msgstr "Sök " + +#: src/Widgets/Library.vala:524 +msgid "Create Sub-Folder" +msgstr "Skapa undermapp" + +#: src/Widgets/Library.vala:541 +msgid "Hide from Library" +msgstr "Dölj från biblioteket" + +#: src/Widgets/Library.vala:565 +msgid "Show Hidden Items" +msgstr "Visa dolda objekt" + +#: src/Widgets/Library.vala:578 +msgid "Remove from Library" +msgstr "Ta bort från biblioteket" + +#: src/Widgets/Library.vala:813 +msgid "Copy" +msgstr "Kopiera" + +#: src/Widgets/Library.vala:815 +msgid "Move" +msgstr "Flytta" + +#: src/Widgets/NewFolder.vala:31 +msgid "Folder name" +msgstr "Mappnamn" + +#: src/Widgets/NewFolder.vala:34 +msgid "mkdir" +msgstr "mkdir" + +#: src/Widgets/NewSheet.vala:32 +msgid "Sheet name" +msgstr "Bladnamn" + +#: src/Widgets/NewSheet.vala:35 +msgid "Create" +msgstr "Skapa" + +#: src/Widgets/Preferences.vala:50 +msgid "Current Connections" +msgstr "Aktuella anslutningar" + +#: src/Widgets/Preferences.vala:51 +msgid "Click on a connection to remove." +msgstr "Klicka på en anslutning för att ta bort." + +#: src/Widgets/Preferences.vala:54 +msgid "Add Connection" +msgstr "Lägg till anslutning" + +#: src/Widgets/Preferences.vala:55 +msgid "Choose your blogging software." +msgstr "Välj din bloggmjukvara." + +#: src/Widgets/Preferences.vala:57 +msgid " WriteFreely" +msgstr " WriteFreely" + +#: src/Widgets/Preferences.vala:91 +msgid " ghost" +msgstr " ghost" + +#: src/Widgets/Preferences.vala:206 +msgid "_Remove" +msgstr "_Ta bort" + +#: src/Widgets/Preferences.vala:208 +msgid "_Keep" +msgstr "_Behåll" + +#: src/Widgets/Preferences.vala:247 +msgid "Focus" +msgstr "Fokus" + +#: src/Widgets/Preferences.vala:252 +msgid "None" +msgstr "Inget" + +#: src/Widgets/Preferences.vala:253 +msgid "Paragraph" +msgstr "Stycke" + +#: src/Widgets/Preferences.vala:254 +msgid "Sentence" +msgstr "Mening" + +#: src/Widgets/Preferences.vala:255 +msgid "Word" +msgstr "Ord" + +#: src/Widgets/Preferences.vala:283 +msgid "Add New Theme" +msgstr "Lägg till nytt tema" + +#: src/Widgets/Preferences.vala:339 +msgid "First Markdown File includes Author Metadata" +msgstr "Första Markdown-filen inkluderar författares metadata" + +#: src/Widgets/Preferences.vala:341 +msgid "First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-metadata'>Author metadata</a>" +msgstr "Första Markdown-filen inkluderar <a href='https://pandoc.org/MANUAL.html#epub-metadata'>författares metadata</a>" + +#: src/Widgets/Preferences.vala:357 +msgid "Resolve full paths to resources" +msgstr "Läs in fullständiga sökvägar till resurser" + +#: src/Widgets/Preferences.vala:359 +msgid "Resolve full paths to resources on export" +msgstr "Läs in fullständiga sökvägar till resurser vid export" + +#: src/Widgets/Preferences.vala:374 +msgid "Include YAML title as Heading" +msgstr "Inkludera YAML-titel som rubrik" + +#: src/Widgets/Preferences.vala:376 +msgid "Include YAML title as H1 Heading" +msgstr "Inkludera YAML-titel som H1-rubrik" + +#: src/Widgets/Preferences.vala:395 +msgid "Page Break between Folders" +msgstr "Sidbrytning mellan mappar" + +#: src/Widgets/Preferences.vala:397 +msgid "Insert a Page Break after each folder" +msgstr "Infoga en sidbrytning mellan varje mapp" + +#: src/Widgets/Preferences.vala:412 +msgid "Page Break between Sheets" +msgstr "Sidbrytning mellan blad" + +#: src/Widgets/Preferences.vala:414 +msgid "Insert a Page Break after each sheet" +msgstr "Infoga en sidbrytning mellan varje blad" + +#: src/Widgets/Preferences.vala:454 +msgid "Side margins in PDF in inches" +msgstr "Sidmarginaler i PDF (i tum)" + +#: src/Widgets/Preferences.vala:474 +msgid "Top & Bottom margins in PDF in inches" +msgstr "Över- och underkantsmarginaler i PDF (i tum)" + +#: src/Widgets/Preferences.vala:500 +msgid "Add Export Style" +msgstr "Lägg till exportstil" + +#: src/Widgets/Preferences.vala:536 +msgid "Enable spellcheck" +msgstr "Aktivera stavningskontroll" + +#: src/Widgets/Preferences.vala:538 +msgid "Check document spelling" +msgstr "Kontrollera dokumentens stavning" + +#: src/Widgets/Preferences.vala:552 +msgid "Enable Write-Good" +msgstr "Aktivera Skriv-bra" + +#: src/Widgets/Preferences.vala:556 +msgid "Enable Write-Good: recommendations for sentence structure" +msgstr "Aktivera Skriv-bra: Rekommendationer för meningsuppbyggnad" + +#: src/Widgets/Preferences.vala:571 +msgid "Toggle typewriter scrolling" +msgstr "Skrivmaskinsrullning på/av" + +#: src/Widgets/Preferences.vala:572 +msgid "Enable typewriter focus mode" +msgstr "Aktivera fokusläge" + +#: src/Widgets/Preferences.vala:592 +msgid "Toggle writing statistics" +msgstr "Skrivstatistik på/av" + +#: src/Widgets/Preferences.vala:593 +msgid "Show writing statistics" +msgstr "Visa textstatistik" + +#: src/Widgets/Preferences.vala:617 +msgid "Toggle interface theming" +msgstr "Växla gränssnittstema" + +#: src/Widgets/Preferences.vala:618 +msgid "Apply theme to interface" +msgstr "Tillämpa tema på användargränssnittet" + +#: src/Widgets/Preferences.vala:637 +msgid "Toggle auto-hide headerbar" +msgstr "Dölj rubrikfältet automatiskt" + +#: src/Widgets/Preferences.vala:639 +msgid "Automatically hide headerbar" +msgstr "Dölj rubrikfältet automatiskt" + +#: src/Widgets/Preferences.vala:653 +msgid "Hide title" +msgstr "Dölj titel" + +#: src/Widgets/Preferences.vala:655 +msgid "Remove ThiefMD branding" +msgstr "Ta bort ThiefMD-märket" + +#: src/Widgets/Preferences.vala:669 +msgid "Toggle library order" +msgstr "Biblioteksordning på/av" + +#: src/Widgets/Preferences.vala:671 +msgid "Keep library order" +msgstr "Bevara biblioteksordning" + +#: src/Widgets/PublisherPreviewWindow.vala:65 +#: src/Widgets/PublisherPreviewWindow.vala:195 +#: src/Widgets/QuickPreferences.vala:81 src/Widgets/QuickPreferences.vala:163 +#: src/Widgets/QuickPreferences.vala:236 +msgid "Publishing Preview" +msgstr "Förhandsgranska publicering" + +#: src/Widgets/PublisherPreviewWindow.vala:143 +msgid "Export Item" +msgstr "Exportera objekt" + +#: src/Widgets/PublisherPreviewWindow.vala:180 +msgid "File not Exported" +msgstr "Filen inte exporterad" + +#: src/Widgets/PublisherPreviewWindow.vala:181 +msgid "ThiefMD could not export the file, please try again." +msgstr "ThiefMD kunde inte exportera filen, försök igen." + +#: src/Widgets/ProjectStatistics.vala:83 +msgid "Refresh Statistics" +msgstr "Uppdatera statistiken" + +#: src/Widgets/ProjectStatistics.vala:125 +msgid "words" +msgstr "ord" + +#: src/Widgets/ProjectStatistics.vala:126 +msgid "<b>Reading Time:</b>\n" +"%d %s\n" +"%d %s\n" +"%d %s" +msgstr "<b>Lästid:</b>\n" +"%d %s\n" +"%d %s\n" +"%d %s" + +#: src/Widgets/ProjectStatistics.vala:127 +msgid "Hour" +msgstr "Timma" + +#: src/Widgets/ProjectStatistics.vala:127 +msgid "Hours" +msgstr "Timmar" + +#: src/Widgets/ProjectStatistics.vala:128 +msgid "Minute" +msgstr "Minut" + +#: src/Widgets/ProjectStatistics.vala:128 +msgid "Minutes" +msgstr "Minuter" + +#: src/Widgets/ProjectStatistics.vala:129 +msgid "Seconds" +msgstr "Sekunder" + +#: src/Widgets/QuickPreferences.vala:39 +msgid "Typewriter Scrolling" +msgstr "Skrivmaskinsrullning" + +#: src/Widgets/QuickPreferences.vala:42 +msgid "Toggle Typewriter Scrolling" +msgstr "Skrivmaskinsrullning på/av" + +#: src/Widgets/QuickPreferences.vala:49 +msgid "Check Spelling" +msgstr "Kontrollera stavning" + +#: src/Widgets/QuickPreferences.vala:52 +msgid "Toggle Spellcheck" +msgstr "Stavningskontroll på/av" + +#: src/Widgets/QuickPreferences.vala:59 +msgid "Write Good" +msgstr "Skriv-bra" + +#: src/Widgets/QuickPreferences.vala:62 +msgid "Toggle Write Good" +msgstr "Skriv-bra på/av" + +#: src/Widgets/QuickPreferences.vala:74 src/Widgets/QuickPreferences.vala:156 +#: src/Widgets/QuickPreferences.vala:229 +msgid "Launch Preview" +msgstr "Starta förhandsgranskning" + +#: src/Widgets/QuickPreferences.vala:98 src/Widgets/QuickPreferences.vala:180 +#: src/Widgets/QuickPreferences.vala:253 +msgid "Preferences" +msgstr "Inställningar" + +#: src/Widgets/QuickPreferences.vala:100 src/Widgets/QuickPreferences.vala:182 +#: src/Widgets/QuickPreferences.vala:255 +msgid "Edit Preferences" +msgstr "Redigera inställningar" + +#: src/Widgets/ThemeSelector.vala:51 +msgid "Font" +msgstr "Teckensnitt" + +#: src/Widgets/ThemeSelector.vala:137 +msgid "Font Selector" +msgstr "Teckensnittsväljare" + +#: src/Widgets/ThemeSelector.vala:320 +msgid "Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" +"<small>Stored in <a href='file://" +msgstr "Ladda ner <a href='https://themes.thiefmd.com/themes/'>fler teman</a>.\n" +"<small>Lagrade i <a href='file://" + +#: src/Widgets/SearchBar.vala:110 +msgid "(%d occurences)" +msgstr "(%d förekomster)" + +#: src/Widgets/StatisticsBar.vala:98 +msgid "%d %s %d %s and %d %s reading time." +msgstr "%d %s %d %s och %d %s lästid." + +#: src/Widgets/StatisticsBar.vala:99 +msgid "hour" +msgstr "timma" + +#: src/Widgets/StatisticsBar.vala:99 +msgid "hours" +msgstr "timmar" + +#: src/Widgets/StatisticsBar.vala:100 +msgid "minute" +msgstr "minut" + +#: src/Widgets/StatisticsBar.vala:100 +msgid "minutes" +msgstr "minuter" + +#: src/Widgets/StatisticsBar.vala:101 +msgid "seconds" +msgstr "sekunder" + +#: src/Widgets/StatisticsBar.vala:104 +msgid "%s : %d words." +msgstr "%s : %d ord." + +#: src/Widgets/SearchWindow.vala:423 +msgid "Library Search" +msgstr "Bibliotekssök" + +#: src/Widgets/SearchWindow.vala:425 +msgid " Search" +msgstr "Sök" + +#: src/Widgets/SearchWindow.vala:449 +msgid "Monitor for Library changes" +msgstr "Bevaka biblioteksändringar." + +#: src/Widgets/Thinking.vala:81 +msgid "<b>Stealing file contents...</b>" +msgstr "<b>Stjäl filinnehåll...</b>" + +#: src/Widgets/MarkdownCheatSheet.vala:52 +msgid "Heading" +msgstr "Rubrik" + +#. Font settings +#. Arbitrary strings +#: src/Constants/AppSettings.vala:97 +msgid "# Click on a sheet to get started\n" +"\n" +"First time here? Drag a folder into the library, or click on the Folder icon to select a folder to add.\n" +"\n" +"## Thief Tip:\n" +"\n" +"%s" +msgstr "Klicka på bladet för att komma igång\n" +"\n" +"Första gången här? Dra en mapp in till biblioteket, eller klicka på mappikonen för att välja en mapp att lägga till.\n" +"\n" +"## Thief-tips:\n" +"\n" +"%s" + +#: src/ThiefApp.vala:168 src/Controllers/UI.vala:519 +#: src/Widgets/Library.vala:69 +msgid "Library" +msgstr "Bibliotek" + +#: src/ThiefApp.vala:169 src/Controllers/UI.vala:477 +#: src/Controllers/UI.vala:496 +msgid "Editor" +msgstr "Redigerare" + +#: src/ThiefApp.vala:170 src/Controllers/UI.vala:485 +msgid "Search" +msgstr "Sök" + +#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 +#: src/Widgets/QuickPreferences.vala:238 +msgid "Open Export Window" +msgstr "Öppna exportfönster" + +#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 +#: src/Widgets/QuickPreferences.vala:245 +msgid "Search Library" +msgstr "Sök i biblioteket" + +#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 +#: src/Widgets/QuickPreferences.vala:247 +msgid "Open Search Window" +msgstr "Öppna sökfönster" + +#: src/Widgets/ThemeSelector.vala:56 +msgid "Spacing" +msgstr "Mellanslag" + +#: src/Widgets/Preferences.vala:685 +msgid "Toggle experimental features" +msgstr "Experimentella funktioner på/av" + +#: src/Widgets/Preferences.vala:687 +msgid "Enable experimental features" +msgstr "Aktivera experimentella funktioner" + +#: src/Controllers/Dialogs.vala:161 +msgid "Supported files" +msgstr "" + +#: src/Controllers/Dialogs.vala:168 +msgid "%s files" +msgstr "" + +#: src/Widgets/Library.vala:512 +msgid "Open in File Manager" +msgstr "" + +#: src/Widgets/NewSheet.vala:36 +msgid "Import" +msgstr "" + +#: src/Widgets/Preferences.vala:125 +msgid " WordPress" +msgstr "" + From c1b8ce570900c4049fecb9e8f93711c05cc5cb76 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Thu, 11 Mar 2021 20:22:54 -0800 Subject: [PATCH 36/50] Add Swedish Translation Credits --- README.md | 1 + src/Constants/ThiefProperties.vala | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 46e30c7..e5d19d8 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,7 @@ yay -S thiefmd * French Translation by [David Bosman](https://github.com/davidbosman) * Slovak Translation by [Marek L'ach](https://github.com/marek-lach) + * Swedish Translation by [Åke Engelbrektson](https://github.com/eson57) ## Planning diff --git a/src/Constants/ThiefProperties.vala b/src/Constants/ThiefProperties.vala index d186598..20743ac 100644 --- a/src/Constants/ThiefProperties.vala +++ b/src/Constants/ThiefProperties.vala @@ -30,6 +30,9 @@ namespace ThiefMD { public const Gtk.License LICENSE_TYPE = Gtk.License.GPL_3_0; public const string[] GIANTS = { "<a href='https://github.com/kmwallio/ThiefMD/graphs/contributors'>Contributors who help make ThiefMD awesome</a>\n", + "French Translation Contributors:\n<a href='https://github.com/davidbosman'>David Bosman</a>\n", + "Slovak Translation Contributors:\n<a href='https://github.com/marek-lach'>Marek L'ach</a>\n", + "Swedish Translation Contributors:\n<a href='https://github.com/eson57'>Åke Engelbrektson</a>\n", "Original Code:\nBased on <a href='https://github.com/lainsce/quilter'>Quilter</a>\nCopyright © 2017 Lains.\n<a href='https://github.com/lainsce/quilter/blob/master/LICENSE'>GNU General Public License v3.0</a>\n", "Font:\n<a href='https://github.com/iaolo/iA-Fonts'>iA Writer Duospace</a>\nCopyright © 2018 Information Architects Inc.\nwith Reserved Font Name \"iA Writer\"\n<a href='https://github.com/iaolo/iA-Fonts/blob/master/iA%20Writer%20Duospace/LICENSE.md'>SIL OPEN FONT LICENSE Version 1.1</a>\n", "Font:\n<a href='https://quoteunquoteapps.com/courierprime'>Courier Prime</a>\nCopyright © 2013 Quote-Unquote Apps\n<a href='https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL'>SIL OPEN FONT LICENSE Version 1.1</a>\n", @@ -40,8 +43,6 @@ namespace ThiefMD { "XML Parsing:\n<a href='http://xmlsoft.org/'>libxml2</a>\nCopyright © 1998-2012 Daniel Veillard.\n<a href='https://gitlab.gnome.org/GNOME/libxml2/-/blob/master/Copyright'>MIT License</a>\n", "Pandoc Export:\n<a href='https://pandoc.org/'>Pandoc</a>\nCopyright © 2006-2020 John MacFarlane and others\n<a href='https://github.com/jgm/pandoc/blob/master/COPYRIGHT'>GNU General Public License v2.0</a>\n", "libwritegood-vala based on:\n<a href='https://github.com/btford/write-good'>write-good: Naive linter for English prose</a>\nCopyright © 2014-2019 Brian Ford\n<a href='https://github.com/btford/write-good/blob/master/LICENSE'>The MIT License (MIT)</a>\n", - "French Translation Contributors:\n<a href='https://github.com/davidbosman'>David Bosman</a>\n", - "Slovak Translation Contributors:\n<a href='https://github.com/marek-lach'>Marek L'ach</a>\n", }; public const string[] PAPER_SIZES_FRIENDLY_NAME = { From f46cd34b2d216b10a6d4653d63117cb6279517ef Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Thu, 11 Mar 2021 20:35:35 -0800 Subject: [PATCH 37/50] Fix file dialog when no extension provided --- src/Controllers/Dialogs.vala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Controllers/Dialogs.vala b/src/Controllers/Dialogs.vala index 96b16c5..bc151df 100644 --- a/src/Controllers/Dialogs.vala +++ b/src/Controllers/Dialogs.vala @@ -148,13 +148,13 @@ namespace ThiefMD.Controllers.Dialogs { }); } else if (action != Gtk.FileChooserAction.SELECT_FOLDER) { - if (ext == "") { + if (ext == "md" || ext == "*.md") { var filter1 = new Gtk.FileFilter (); filter1.set_filter_name (_("Markdown files")); filter1.add_pattern ("*.md"); filter1.add_pattern ("*.markdown"); chooser.add_filter (filter1); - } else { + } else if (ext != "") { if (ext.index_of (";") > 0) { string[] extensions = ext.split (";"); var filter1 = new Gtk.FileFilter (); From 2726e8e7bf529f8388a096a78a0513d87fd3d738 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Thu, 11 Mar 2021 20:41:51 -0800 Subject: [PATCH 38/50] Don't add empty extensions --- src/Controllers/Dialogs.vala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Controllers/Dialogs.vala b/src/Controllers/Dialogs.vala index bc151df..cf0a13c 100644 --- a/src/Controllers/Dialogs.vala +++ b/src/Controllers/Dialogs.vala @@ -160,7 +160,9 @@ namespace ThiefMD.Controllers.Dialogs { var filter1 = new Gtk.FileFilter (); filter1.set_filter_name (_("Supported files")); foreach (unowned string extension in extensions) { - filter1.add_pattern (extension); + if (extension != "") { + filter1.add_pattern (extension); + } } chooser.add_filter (filter1); } else { From 1be73cea80d5a133e3fa9826012ab78d81840021 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Fri, 12 Mar 2021 08:54:30 -0800 Subject: [PATCH 39/50] Still show connection in preferences if we were unable to login/validate --- src/Controllers/ConnectionManager.vala | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Controllers/ConnectionManager.vala b/src/Controllers/ConnectionManager.vala index bc5c49f..ae5e5d3 100644 --- a/src/Controllers/ConnectionManager.vala +++ b/src/Controllers/ConnectionManager.vala @@ -124,20 +124,20 @@ namespace ThiefMD.Controllers { WriteFreelyConnection writeas_connection = new WriteFreelyConnection (attributes["alias"], the_secret, attributes["endpoint"]); if (writeas_connection.connection_valid ()) { ThiefApp.get_instance ().exporters.register (writeas_connection.export_name, writeas_connection.exporter); - ThiefApp.get_instance ().connections.add (writeas_connection); } + ThiefApp.get_instance ().connections.add (writeas_connection); } else if (attributes["connectiontype"] == GhostConnection.CONNECTION_TYPE) { GhostConnection ghost_connection = new GhostConnection (attributes["alias"], the_secret, attributes["endpoint"]); if (ghost_connection.connection_valid ()) { ThiefApp.get_instance ().exporters.register (ghost_connection.export_name, ghost_connection.exporter); - ThiefApp.get_instance ().connections.add (ghost_connection); } + ThiefApp.get_instance ().connections.add (ghost_connection); } else if (attributes["connectiontype"] == WordpressConnection.CONNECTION_TYPE) { WordpressConnection wordpress_connection = new WordpressConnection (attributes["alias"], the_secret, attributes["endpoint"]); if (wordpress_connection.connection_valid ()) { ThiefApp.get_instance ().exporters.register (wordpress_connection.export_name, wordpress_connection.exporter); - ThiefApp.get_instance ().connections.add (wordpress_connection); } + ThiefApp.get_instance ().connections.add (wordpress_connection); } if (!have_secret (attributes["connectiontype"], attributes["alias"], attributes["endpoint"])) { From 6fa3f0ebcbac163b052530eeea3477312186be78 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Fri, 12 Mar 2021 09:52:43 -0800 Subject: [PATCH 40/50] Fix hiding link brackets on first line of file --- src/Widgets/Editor.vala | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Widgets/Editor.vala b/src/Widgets/Editor.vala index a2d86cb..93daab5 100644 --- a/src/Widgets/Editor.vala +++ b/src/Widgets/Editor.vala @@ -1394,11 +1394,13 @@ namespace ThiefMD.Widgets { // buffer.get_iter_at_offset (out start, start_link_pos); buffer.get_iter_at_offset (out end, start_link_pos); - start.backward_chars (1); + bool not_at_start = start.backward_chars (1); end.forward_char (); if (start.in_range (bound_start, bound_end) && end.in_range (bound_start, bound_end)) { if (start.get_char () != '!') { - start.forward_char (); + if (not_at_start) { + start.forward_char (); + } buffer.apply_tag (markdown_url, start, end); // // Closing ] @@ -1408,7 +1410,7 @@ namespace ThiefMD.Widgets { start.backward_char (); buffer.apply_tag (markdown_url, start, end); } - } else { + } else { // Bail, our calculations are now out of range continue; } From 17cc41c43233812672bb63f5f5256753463da3e3 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Fri, 12 Mar 2021 17:18:40 -0800 Subject: [PATCH 41/50] Fix typo in using ePub/Preview css for Print/PDF css --- src/Widgets/Preview.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Widgets/Preview.vala b/src/Widgets/Preview.vala index 9b5c7fa..23b8f09 100644 --- a/src/Widgets/Preview.vala +++ b/src/Widgets/Preview.vala @@ -119,7 +119,7 @@ namespace ThiefMD.Widgets { if (print_css == "modest-splendor") { style += ThiefProperties.PRINT_CSS.printf ("""content: " (" attr(href) ")";"""); } else if (print_css != "") { - File css_file = File.new_for_path (Path.build_filename(UserData.css_path, preview_css,"print.css")); + File css_file = File.new_for_path (Path.build_filename(UserData.css_path, print_css,"print.css")); if (css_file.query_exists ()) { if (print_only) { style += "\n" + FileManager.get_file_contents (css_file.get_path ()) + "\n"; From b19d64bc9eba3648ee467a7bc26e94f181864df9 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Fri, 12 Mar 2021 18:40:59 -0800 Subject: [PATCH 42/50] Fix some graphical issues when removing items from library --- src/Controllers/SheetManager.vala | 4 +++- src/Controllers/UI.vala | 2 +- src/Widgets/Sheet.vala | 6 +++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Controllers/SheetManager.vala b/src/Controllers/SheetManager.vala index 5590440..d4035a4 100644 --- a/src/Controllers/SheetManager.vala +++ b/src/Controllers/SheetManager.vala @@ -275,7 +275,9 @@ namespace ThiefMD.Controllers.SheetManager { Mutex loading_sheets; public void set_sheets (Sheets? sheets) { _current_sheets = sheets; - _current_sheets.update_sheet_indicators (); + if (_current_sheets != null) { + _current_sheets.update_sheet_indicators (); + } UI.set_sheets (sheets); } diff --git a/src/Controllers/UI.vala b/src/Controllers/UI.vala index 9308478..5fbb7fe 100644 --- a/src/Controllers/UI.vala +++ b/src/Controllers/UI.vala @@ -46,7 +46,7 @@ namespace ThiefMD.Controllers.UI { // Switches Sheets shown in the Library view with the // provided sheet - public Sheets set_sheets (Sheets sheet) { + public Sheets set_sheets (Sheets? sheet) { if (sheet == null) { return sheet; } diff --git a/src/Widgets/Sheet.vala b/src/Widgets/Sheet.vala index 92e7f9e..f5c18f5 100644 --- a/src/Widgets/Sheet.vala +++ b/src/Widgets/Sheet.vala @@ -412,7 +412,11 @@ namespace ThiefMD.Widgets { return; } - public static bool areEqual (Sheet a, Sheet b) { + public static bool areEqual (Sheet a, Sheet b) { + if ((b == null && a != null) || (a == null && b != null)) { + return false; + } + return (a._parent.get_sheets_path () == b._parent.get_sheets_path ()) && (a._sheet_path == b._sheet_path) && (a._label_buffer == b._label_buffer); From 22b4f2c3e9e2efa4716b3f458cb6f8ffd7a89d3b Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Fri, 12 Mar 2021 19:03:47 -0800 Subject: [PATCH 43/50] Update po files --- po/com.github.kmwallio.thiefmd.pot | 22 +-- po/en_GB.po | 235 ++++++++++++++------------- po/es.po | 221 ++++++++++++++------------ po/fr.po | 245 ++++++++++++++++------------- po/sk.po | 211 +++++++++++++------------ po/sv.po | 235 ++++++++++++++------------- 6 files changed, 629 insertions(+), 540 deletions(-) diff --git a/po/com.github.kmwallio.thiefmd.pot b/po/com.github.kmwallio.thiefmd.pot index b03a27c..898d483 100644 --- a/po/com.github.kmwallio.thiefmd.pot +++ b/po/com.github.kmwallio.thiefmd.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: com.github.kmwallio.thiefmd\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-11 20:12-0800\n" +"POT-Creation-Date: 2021-03-12 19:03-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -126,36 +126,36 @@ msgstr "" msgid "Supported files" msgstr "" -#: src/Controllers/Dialogs.vala:168 +#: src/Controllers/Dialogs.vala:170 #, c-format msgid "%s files" msgstr "" -#: src/Controllers/Dialogs.vala:175 +#: src/Controllers/Dialogs.vala:177 msgid "All files" msgstr "" -#: src/Controllers/Dialogs.vala:184 +#: src/Controllers/Dialogs.vala:186 msgid "Add to Library" msgstr "" -#: src/Controllers/Dialogs.vala:194 +#: src/Controllers/Dialogs.vala:196 msgid "Open file" msgstr "" -#: src/Controllers/Dialogs.vala:206 +#: src/Controllers/Dialogs.vala:208 msgid "Save file" msgstr "" -#: src/Controllers/Dialogs.vala:220 +#: src/Controllers/Dialogs.vala:222 msgid "There are unsaved changes to the file. Do you want to save?" msgstr "" -#: src/Controllers/Dialogs.vala:221 +#: src/Controllers/Dialogs.vala:223 msgid "If you don't save, changes will be lost forever." msgstr "" -#: src/Controllers/Dialogs.vala:226 +#: src/Controllers/Dialogs.vala:228 msgid "Close without saving" msgstr "" @@ -337,11 +337,11 @@ msgstr "" msgid "_Keep what's in editor" msgstr "" -#: src/Widgets/Editor.vala:1684 +#: src/Widgets/Editor.vala:1686 msgid "Insert Datetime" msgstr "" -#: src/Widgets/Editor.vala:1702 +#: src/Widgets/Editor.vala:1704 msgid "Insert YAML Frontmatter" msgstr "" diff --git a/po/en_GB.po b/po/en_GB.po index fa654e5..43857fe 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -1,11 +1,27 @@ msgid "" msgstr "" +"Project-Id-Version: ThiefMD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-03-12 19:03-0800\n" +"Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" -"Project-Id-Version: ThiefMD\n" -"Language: en\n" + +#: src/ThiefApp.vala:168 src/Controllers/UI.vala:519 +#: src/Widgets/Library.vala:69 +msgid "Library" +msgstr "Library" + +#: src/ThiefApp.vala:169 src/Controllers/UI.vala:477 +#: src/Controllers/UI.vala:496 +msgid "Editor" +msgstr "" + +#: src/ThiefApp.vala:170 src/Controllers/UI.vala:485 +msgid "Search" +msgstr "" #: src/ThiefApp.vala:263 msgid "HTML" @@ -31,6 +47,29 @@ msgstr "LaTeX" msgid "DocX" msgstr "DocX" +#. Visual Settings +#. Arbitrary strings +#: src/Constants/AppSettings.vala:97 +#, c-format +msgid "" +"# Click on a sheet to get started\n" +"\n" +"First time here? Drag a folder into the library, or click on the Folder " +"icon to select a folder to add.\n" +"\n" +"## Thief Tip:\n" +"\n" +"%s" +msgstr "" +"# Click on a sheet to get started\n" +"\n" +"First time here? Drag a folder into the library, or click on the Folder " +"icon to select a folder to add.\n" +"\n" +"## Thief Tip:\n" +"\n" +"%s" + #. Supported import file extensions #: src/Controllers/FileManager.vala:38 msgid "Importing File" @@ -83,31 +122,40 @@ msgstr "MHTML files" msgid "LaTeX file" msgstr "LaTeX file" -#: src/Controllers/Dialogs.vala:175 +#: src/Controllers/Dialogs.vala:161 +msgid "Supported files" +msgstr "" + +#: src/Controllers/Dialogs.vala:170 +#, c-format +msgid "%s files" +msgstr "" + +#: src/Controllers/Dialogs.vala:177 msgid "All files" msgstr "All files" -#: src/Controllers/Dialogs.vala:184 +#: src/Controllers/Dialogs.vala:186 msgid "Add to Library" msgstr "Add to Library" -#: src/Controllers/Dialogs.vala:194 +#: src/Controllers/Dialogs.vala:196 msgid "Open file" msgstr "Open file" -#: src/Controllers/Dialogs.vala:206 +#: src/Controllers/Dialogs.vala:208 msgid "Save file" msgstr "Save file" -#: src/Controllers/Dialogs.vala:220 +#: src/Controllers/Dialogs.vala:222 msgid "There are unsaved changes to the file. Do you want to save?" msgstr "There are unsaved changes to the file. Do you want to save?" -#: src/Controllers/Dialogs.vala:221 +#: src/Controllers/Dialogs.vala:223 msgid "If you don't save, changes will be lost forever." msgstr "If you don't save, changes will be lost forever." -#: src/Controllers/Dialogs.vala:226 +#: src/Controllers/Dialogs.vala:228 msgid "Close without saving" msgstr "Close without saving" @@ -115,6 +163,12 @@ msgstr "Close without saving" msgid "No file opened" msgstr "No file opened" +#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 +#: src/Widgets/PublisherPreviewWindow.vala:270 +#: src/Widgets/ProjectStatistics.vala:71 +msgid "Close" +msgstr "Close" + #: src/Connections/WriteFreelyConnection.vala:100 msgid "Username" msgstr "Username" @@ -134,6 +188,11 @@ msgstr "Endpoint" msgid "_Add Account" msgstr "Add Account" +#: src/Connections/WriteFreelyConnection.vala:230 +#: src/Connections/GhostConnection.vala:214 +msgid "Uploading images" +msgstr "Uploading Images" + #: src/Connections/WriteFreelyConnection.vala:308 #: src/Connections/GhostConnection.vala:299 src/Widgets/Preferences.vala:83 #: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 @@ -150,11 +209,6 @@ msgstr "Post Published" msgid "E-mail" msgstr "E-mail" -#: src/Connections/WriteFreelyConnection.vala:230 -#: src/Connections/GhostConnection.vala:214 -msgid "Uploading images" -msgstr "Uploading Images" - #: src/Exporters/ExportDocx.vala:60 msgid "Export DocX" msgstr "Export DocX" @@ -209,12 +263,6 @@ msgstr "About" msgid "Credits" msgstr "Credits" -#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 -#: src/Widgets/PublisherPreviewWindow.vala:270 -#: src/Widgets/ProjectStatistics.vala:71 -msgid "Close" -msgstr "Close" - #: src/Widgets/HeaderBar.vala:86 msgid "New Sheet" msgstr "New Sheet" @@ -289,11 +337,11 @@ msgstr "Load from Disk" msgid "_Keep what's in editor" msgstr "Keep what's in Editor" -#: src/Widgets/Editor.vala:1684 +#: src/Widgets/Editor.vala:1686 msgid "Insert Datetime" msgstr "Insert Datetime" -#: src/Widgets/Editor.vala:1702 +#: src/Widgets/Editor.vala:1704 msgid "Insert YAML Frontmatter" msgstr "Insert YAML Frontmatter" @@ -309,6 +357,10 @@ msgstr "Writing Statistics" msgid "Search " msgstr "Search" +#: src/Widgets/Library.vala:512 +msgid "Open in File Manager" +msgstr "" + #: src/Widgets/Library.vala:524 msgid "Create Sub-Folder" msgstr "Create Sub-Folder" @@ -349,6 +401,10 @@ msgstr "Sheet Name" msgid "Create" msgstr "Create" +#: src/Widgets/NewSheet.vala:36 +msgid "Import" +msgstr "" + #: src/Widgets/Preferences.vala:50 msgid "Current Connections" msgstr "Current Conenctions" @@ -373,6 +429,10 @@ msgstr "WriteFreely" msgid " ghost" msgstr "Ghost" +#: src/Widgets/Preferences.vala:125 +msgid " WordPress" +msgstr "" + #: src/Widgets/Preferences.vala:206 msgid "_Remove" msgstr "Remove" @@ -410,8 +470,12 @@ msgid "First Markdown File includes Author Metadata" msgstr "First Markdown file includes Author Metadata" #: src/Widgets/Preferences.vala:341 -msgid "First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-metadata'>Author metadata</a>" -msgstr "First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-metadata'>Author metadata</a>" +msgid "" +"First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-" +"metadata'>Author metadata</a>" +msgstr "" +"First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-" +"metadata'>Author metadata</a>" #: src/Widgets/Preferences.vala:357 msgid "Resolve full paths to resources" @@ -521,6 +585,14 @@ msgstr "Toggle library order" msgid "Keep library order" msgstr "Keep library order" +#: src/Widgets/Preferences.vala:685 +msgid "Toggle experimental features" +msgstr "" + +#: src/Widgets/Preferences.vala:687 +msgid "Enable experimental features" +msgstr "" + #: src/Widgets/PublisherPreviewWindow.vala:65 #: src/Widgets/PublisherPreviewWindow.vala:195 #: src/Widgets/QuickPreferences.vala:81 src/Widgets/QuickPreferences.vala:163 @@ -549,11 +621,14 @@ msgid "words" msgstr "words" #: src/Widgets/ProjectStatistics.vala:126 -msgid "<b>Reading Time:</b>\n" +#, c-format +msgid "" +"<b>Reading Time:</b>\n" "%d %s\n" "%d %s\n" "%d %s" -msgstr "<b>Reading Time:</b>\n" +msgstr "" +"<b>Reading Time:</b>\n" "%d %s\n" "%d %s\n" "%d %s" @@ -607,6 +682,21 @@ msgstr "Toggle Write Good" msgid "Launch Preview" msgstr "Launch Preview" +#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 +#: src/Widgets/QuickPreferences.vala:238 +msgid "Open Export Window" +msgstr "" + +#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 +#: src/Widgets/QuickPreferences.vala:245 +msgid "Search Library" +msgstr "" + +#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 +#: src/Widgets/QuickPreferences.vala:247 +msgid "Open Search Window" +msgstr "" + #: src/Widgets/QuickPreferences.vala:98 src/Widgets/QuickPreferences.vala:180 #: src/Widgets/QuickPreferences.vala:253 msgid "Preferences" @@ -621,21 +711,29 @@ msgstr "Edit Preferences" msgid "Font" msgstr "Font" +#: src/Widgets/ThemeSelector.vala:56 +msgid "Spacing" +msgstr "" + #: src/Widgets/ThemeSelector.vala:137 msgid "Font Selector" msgstr "Font Selector" #: src/Widgets/ThemeSelector.vala:320 -msgid "Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" +msgid "" +"Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" "<small>Stored in <a href='file://" -msgstr "Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" +msgstr "" +"Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" "<small>Stored in <a href='file://" #: src/Widgets/SearchBar.vala:110 +#, c-format msgid "(%d occurences)" msgstr "(%d occurences)" #: src/Widgets/StatisticsBar.vala:98 +#, c-format msgid "%d %s %d %s and %d %s reading time." msgstr "%d %s %d %s and %d %s reading time." @@ -660,6 +758,7 @@ msgid "seconds" msgstr "seconds" #: src/Widgets/StatisticsBar.vala:104 +#, c-format msgid "%s : %d words." msgstr "%s : %d words." @@ -682,83 +781,3 @@ msgstr "<b>Stealing file contents...</b>" #: src/Widgets/MarkdownCheatSheet.vala:52 msgid "Heading" msgstr "Heading" - -#. Font settings -#. Arbitrary strings -#: src/Constants/AppSettings.vala:97 -msgid "# Click on a sheet to get started\n" -"\n" -"First time here? Drag a folder into the library, or click on the Folder icon to select a folder to add.\n" -"\n" -"## Thief Tip:\n" -"\n" -"%s" -msgstr "# Click on a sheet to get started\n" -"\n" -"First time here? Drag a folder into the library, or click on the Folder icon to select a folder to add.\n" -"\n" -"## Thief Tip:\n" -"\n" -"%s" - -#: src/ThiefApp.vala:168 src/Controllers/UI.vala:519 -#: src/Widgets/Library.vala:69 -msgid "Library" -msgstr "Library" - -#: src/ThiefApp.vala:169 src/Controllers/UI.vala:477 -#: src/Controllers/UI.vala:496 -msgid "Editor" -msgstr "" - -#: src/ThiefApp.vala:170 src/Controllers/UI.vala:485 -msgid "Search" -msgstr "" - -#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 -#: src/Widgets/QuickPreferences.vala:238 -msgid "Open Export Window" -msgstr "" - -#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 -#: src/Widgets/QuickPreferences.vala:245 -msgid "Search Library" -msgstr "" - -#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 -#: src/Widgets/QuickPreferences.vala:247 -msgid "Open Search Window" -msgstr "" - -#: src/Widgets/ThemeSelector.vala:56 -msgid "Spacing" -msgstr "" - -#: src/Widgets/Preferences.vala:685 -msgid "Toggle experimental features" -msgstr "" - -#: src/Widgets/Preferences.vala:687 -msgid "Enable experimental features" -msgstr "" - -#: src/Controllers/Dialogs.vala:161 -msgid "Supported files" -msgstr "" - -#: src/Controllers/Dialogs.vala:168 -msgid "%s files" -msgstr "" - -#: src/Widgets/Library.vala:512 -msgid "Open in File Manager" -msgstr "" - -#: src/Widgets/NewSheet.vala:36 -msgid "Import" -msgstr "" - -#: src/Widgets/Preferences.vala:125 -msgid " WordPress" -msgstr "" - diff --git a/po/es.po b/po/es.po index 3b3ac6d..ded4143 100644 --- a/po/es.po +++ b/po/es.po @@ -1,11 +1,27 @@ msgid "" msgstr "" +"Project-Id-Version: ThiefMD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-03-12 19:03-0800\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" -"Project-Id-Version: ThiefMD\n" -"Language: es\n" + +#: src/ThiefApp.vala:168 src/Controllers/UI.vala:519 +#: src/Widgets/Library.vala:69 +msgid "Library" +msgstr "" + +#: src/ThiefApp.vala:169 src/Controllers/UI.vala:477 +#: src/Controllers/UI.vala:496 +msgid "Editor" +msgstr "" + +#: src/ThiefApp.vala:170 src/Controllers/UI.vala:485 +msgid "Search" +msgstr "" #: src/ThiefApp.vala:263 msgid "HTML" @@ -31,6 +47,21 @@ msgstr "Látex" msgid "DocX" msgstr "DocX" +#. Visual Settings +#. Arbitrary strings +#: src/Constants/AppSettings.vala:97 +#, c-format +msgid "" +"# Click on a sheet to get started\n" +"\n" +"First time here? Drag a folder into the library, or click on the Folder " +"icon to select a folder to add.\n" +"\n" +"## Thief Tip:\n" +"\n" +"%s" +msgstr "" + #. Supported import file extensions #: src/Controllers/FileManager.vala:38 msgid "Importing File" @@ -83,31 +114,40 @@ msgstr "Archivos MHTML" msgid "LaTeX file" msgstr "Archivo LaTeX" -#: src/Controllers/Dialogs.vala:175 +#: src/Controllers/Dialogs.vala:161 +msgid "Supported files" +msgstr "" + +#: src/Controllers/Dialogs.vala:170 +#, c-format +msgid "%s files" +msgstr "" + +#: src/Controllers/Dialogs.vala:177 msgid "All files" msgstr "Todos los archivos" -#: src/Controllers/Dialogs.vala:184 +#: src/Controllers/Dialogs.vala:186 msgid "Add to Library" msgstr "Agregar a la biblioteca" -#: src/Controllers/Dialogs.vala:194 +#: src/Controllers/Dialogs.vala:196 msgid "Open file" msgstr "Abrir documento" -#: src/Controllers/Dialogs.vala:206 +#: src/Controllers/Dialogs.vala:208 msgid "Save file" msgstr "Guardar el archivo" -#: src/Controllers/Dialogs.vala:220 +#: src/Controllers/Dialogs.vala:222 msgid "There are unsaved changes to the file. Do you want to save?" msgstr "Hay cambios no guardados en el archivo. ¿Quieres guardar?" -#: src/Controllers/Dialogs.vala:221 +#: src/Controllers/Dialogs.vala:223 msgid "If you don't save, changes will be lost forever." msgstr "Si no guarda, los cambios se perderán para siempre." -#: src/Controllers/Dialogs.vala:226 +#: src/Controllers/Dialogs.vala:228 msgid "Close without saving" msgstr "Cerrar sin guardar" @@ -115,6 +155,12 @@ msgstr "Cerrar sin guardar" msgid "No file opened" msgstr "Ningún archivo abierto" +#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 +#: src/Widgets/PublisherPreviewWindow.vala:270 +#: src/Widgets/ProjectStatistics.vala:71 +msgid "Close" +msgstr "Cerrar" + #: src/Connections/WriteFreelyConnection.vala:100 msgid "Username" msgstr "Nombre de usuario" @@ -134,6 +180,11 @@ msgstr "Punto final" msgid "_Add Account" msgstr "_Añadir cuenta" +#: src/Connections/WriteFreelyConnection.vala:230 +#: src/Connections/GhostConnection.vala:214 +msgid "Uploading images" +msgstr "Subiendo imágenes" + #: src/Connections/WriteFreelyConnection.vala:308 #: src/Connections/GhostConnection.vala:299 src/Widgets/Preferences.vala:83 #: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 @@ -150,11 +201,6 @@ msgstr "Publicación publicada" msgid "E-mail" msgstr "Correo electrónico" -#: src/Connections/WriteFreelyConnection.vala:230 -#: src/Connections/GhostConnection.vala:214 -msgid "Uploading images" -msgstr "Subiendo imágenes" - #: src/Exporters/ExportDocx.vala:60 msgid "Export DocX" msgstr "Exportar DocX" @@ -209,12 +255,6 @@ msgstr "Acerca de" msgid "Credits" msgstr "Créditos" -#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 -#: src/Widgets/PublisherPreviewWindow.vala:270 -#: src/Widgets/ProjectStatistics.vala:71 -msgid "Close" -msgstr "Cerrar" - #: src/Widgets/HeaderBar.vala:86 msgid "New Sheet" msgstr "Hoja nueva" @@ -289,11 +329,11 @@ msgstr "_Cargar desde disco" msgid "_Keep what's in editor" msgstr "_Mantener lo que hay en el editor" -#: src/Widgets/Editor.vala:1684 +#: src/Widgets/Editor.vala:1686 msgid "Insert Datetime" msgstr "Insertar fecha y hora" -#: src/Widgets/Editor.vala:1702 +#: src/Widgets/Editor.vala:1704 msgid "Insert YAML Frontmatter" msgstr "Insertar Frontmatter YAML" @@ -309,6 +349,10 @@ msgstr "Escribir estadísticas" msgid "Search " msgstr "Buscar " +#: src/Widgets/Library.vala:512 +msgid "Open in File Manager" +msgstr "" + #: src/Widgets/Library.vala:524 msgid "Create Sub-Folder" msgstr "Crear sub-carpeta" @@ -349,6 +393,10 @@ msgstr "Nombre de la hoja" msgid "Create" msgstr "Crear" +#: src/Widgets/NewSheet.vala:36 +msgid "Import" +msgstr "" + #: src/Widgets/Preferences.vala:50 msgid "Current Connections" msgstr "Conexiones actuales" @@ -373,6 +421,10 @@ msgstr " Escribe libremente" msgid " ghost" msgstr " fantasma" +#: src/Widgets/Preferences.vala:125 +msgid " WordPress" +msgstr "" + #: src/Widgets/Preferences.vala:206 msgid "_Remove" msgstr "_Eliminar" @@ -410,8 +462,12 @@ msgid "First Markdown File includes Author Metadata" msgstr "El primer archivo de Markdown incluye metadatos del autor" #: src/Widgets/Preferences.vala:341 -msgid "First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-metadata'>Author metadata</a>" -msgstr "El primer archivo de Markdown incluye <a href='https://pandoc.org/MANUAL.html#epub-metadata'> metadatos del autor </a>" +msgid "" +"First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-" +"metadata'>Author metadata</a>" +msgstr "" +"El primer archivo de Markdown incluye <a href='https://pandoc.org/MANUAL." +"html#epub-metadata'> metadatos del autor </a>" #: src/Widgets/Preferences.vala:357 msgid "Resolve full paths to resources" @@ -521,6 +577,14 @@ msgstr "Alternar orden de biblioteca" msgid "Keep library order" msgstr "Mantener el orden de la biblioteca" +#: src/Widgets/Preferences.vala:685 +msgid "Toggle experimental features" +msgstr "" + +#: src/Widgets/Preferences.vala:687 +msgid "Enable experimental features" +msgstr "" + #: src/Widgets/PublisherPreviewWindow.vala:65 #: src/Widgets/PublisherPreviewWindow.vala:195 #: src/Widgets/QuickPreferences.vala:81 src/Widgets/QuickPreferences.vala:163 @@ -549,11 +613,14 @@ msgid "words" msgstr "palabras" #: src/Widgets/ProjectStatistics.vala:126 -msgid "<b>Reading Time:</b>\n" +#, c-format +msgid "" +"<b>Reading Time:</b>\n" "%d %s\n" "%d %s\n" "%d %s" -msgstr "<b> Tiempo de lectura: </b>\n" +msgstr "" +"<b> Tiempo de lectura: </b>\n" "% d% s\n" "% d% s\n" "% d% s" @@ -607,6 +674,21 @@ msgstr "Toggle Escribir bien" msgid "Launch Preview" msgstr "Vista previa de lanzamiento" +#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 +#: src/Widgets/QuickPreferences.vala:238 +msgid "Open Export Window" +msgstr "" + +#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 +#: src/Widgets/QuickPreferences.vala:245 +msgid "Search Library" +msgstr "" + +#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 +#: src/Widgets/QuickPreferences.vala:247 +msgid "Open Search Window" +msgstr "" + #: src/Widgets/QuickPreferences.vala:98 src/Widgets/QuickPreferences.vala:180 #: src/Widgets/QuickPreferences.vala:253 msgid "Preferences" @@ -621,21 +703,29 @@ msgstr "Editar preferencias" msgid "Font" msgstr "Fuente" +#: src/Widgets/ThemeSelector.vala:56 +msgid "Spacing" +msgstr "" + #: src/Widgets/ThemeSelector.vala:137 msgid "Font Selector" msgstr "Selector de fuentes" #: src/Widgets/ThemeSelector.vala:320 -msgid "Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" +msgid "" +"Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" "<small>Stored in <a href='file://" -msgstr "Descarga <a href='https://themes.thiefmd.com/themes/'> más temas </a>.\n" +msgstr "" +"Descarga <a href='https://themes.thiefmd.com/themes/'> más temas </a>.\n" "<pequeño> Almacenado en <a href = 'archivo: //" #: src/Widgets/SearchBar.vala:110 +#, c-format msgid "(%d occurences)" msgstr "(% d ocurrencias)" #: src/Widgets/StatisticsBar.vala:98 +#, c-format msgid "%d %s %d %s and %d %s reading time." msgstr "% d% s% d% sy% d% s tiempo de lectura." @@ -660,6 +750,7 @@ msgid "seconds" msgstr "segundos" #: src/Widgets/StatisticsBar.vala:104 +#, c-format msgid "%s : %d words." msgstr "% s:% d palabras." @@ -682,77 +773,3 @@ msgstr "<b> Robando el contenido del archivo ... </b>" #: src/Widgets/MarkdownCheatSheet.vala:52 msgid "Heading" msgstr "Bóveda" - -#. Font settings -#. Arbitrary strings -#: src/Constants/AppSettings.vala:97 -msgid "# Click on a sheet to get started\n" -"\n" -"First time here? Drag a folder into the library, or click on the Folder icon to select a folder to add.\n" -"\n" -"## Thief Tip:\n" -"\n" -"%s" -msgstr "" - -#: src/ThiefApp.vala:168 src/Controllers/UI.vala:519 -#: src/Widgets/Library.vala:69 -msgid "Library" -msgstr "" - -#: src/ThiefApp.vala:169 src/Controllers/UI.vala:477 -#: src/Controllers/UI.vala:496 -msgid "Editor" -msgstr "" - -#: src/ThiefApp.vala:170 src/Controllers/UI.vala:485 -msgid "Search" -msgstr "" - -#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 -#: src/Widgets/QuickPreferences.vala:238 -msgid "Open Export Window" -msgstr "" - -#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 -#: src/Widgets/QuickPreferences.vala:245 -msgid "Search Library" -msgstr "" - -#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 -#: src/Widgets/QuickPreferences.vala:247 -msgid "Open Search Window" -msgstr "" - -#: src/Widgets/ThemeSelector.vala:56 -msgid "Spacing" -msgstr "" - -#: src/Widgets/Preferences.vala:685 -msgid "Toggle experimental features" -msgstr "" - -#: src/Widgets/Preferences.vala:687 -msgid "Enable experimental features" -msgstr "" - -#: src/Controllers/Dialogs.vala:161 -msgid "Supported files" -msgstr "" - -#: src/Controllers/Dialogs.vala:168 -msgid "%s files" -msgstr "" - -#: src/Widgets/Library.vala:512 -msgid "Open in File Manager" -msgstr "" - -#: src/Widgets/NewSheet.vala:36 -msgid "Import" -msgstr "" - -#: src/Widgets/Preferences.vala:125 -msgid " WordPress" -msgstr "" - diff --git a/po/fr.po b/po/fr.po index 46d5f40..138e197 100644 --- a/po/fr.po +++ b/po/fr.po @@ -1,11 +1,27 @@ msgid "" msgstr "" +"Project-Id-Version: ThiefMD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-03-12 19:03-0800\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" -"Project-Id-Version: ThiefMD\n" -"Language: fr\n" + +#: src/ThiefApp.vala:168 src/Controllers/UI.vala:519 +#: src/Widgets/Library.vala:69 +msgid "Library" +msgstr "Bibliothèque" + +#: src/ThiefApp.vala:169 src/Controllers/UI.vala:477 +#: src/Controllers/UI.vala:496 +msgid "Editor" +msgstr "" + +#: src/ThiefApp.vala:170 src/Controllers/UI.vala:485 +msgid "Search" +msgstr "" #: src/ThiefApp.vala:263 msgid "HTML" @@ -31,6 +47,29 @@ msgstr "LaTeX" msgid "DocX" msgstr "Docx" +#. Visual Settings +#. Arbitrary strings +#: src/Constants/AppSettings.vala:97 +#, c-format +msgid "" +"# Click on a sheet to get started\n" +"\n" +"First time here? Drag a folder into the library, or click on the Folder " +"icon to select a folder to add.\n" +"\n" +"## Thief Tip:\n" +"\n" +"%s" +msgstr "" +"# Cliquez sur une Feuille pour commencer\n" +"\n" +"Première fois ici ? Glissez un dossier sur la bibliothèque, ou cliquez sur " +"l'icône de dossier pour sélectionner un dossier à ajouter.\n" +"\n" +"## Astuce Thief:\n" +"\n" +"%s" + #. Supported import file extensions #: src/Controllers/FileManager.vala:38 msgid "Importing File" @@ -50,7 +89,6 @@ msgstr "_Annuler" msgid "_Open" msgstr "_Ouvrir" -#. Where necessary, I modified the default shortcut to fit the French menus. #: src/Controllers/Dialogs.vala:61 msgid "_Add to Library" msgstr "Ajouter à la _bibliothèque" @@ -84,31 +122,43 @@ msgstr "fichiers LaTeX" msgid "LaTeX file" msgstr "fichier LaTeX" -#: src/Controllers/Dialogs.vala:175 +#: src/Controllers/Dialogs.vala:161 +msgid "Supported files" +msgstr "" + +#: src/Controllers/Dialogs.vala:170 +#, c-format +msgid "%s files" +msgstr "" + +#: src/Controllers/Dialogs.vala:177 msgid "All files" msgstr "Tous les fichiers" -#: src/Controllers/Dialogs.vala:184 +#: src/Controllers/Dialogs.vala:186 msgid "Add to Library" msgstr "Ajouter à la Bibliothèque" -#: src/Controllers/Dialogs.vala:194 +#: src/Controllers/Dialogs.vala:196 msgid "Open file" msgstr "Ouvrir fichier" -#: src/Controllers/Dialogs.vala:206 +#: src/Controllers/Dialogs.vala:208 msgid "Save file" msgstr "Enregistrer fichier" -#: src/Controllers/Dialogs.vala:220 +#: src/Controllers/Dialogs.vala:222 msgid "There are unsaved changes to the file. Do you want to save?" -msgstr "Il y a des changements non-sauvegardés dans le fichier. Voulez-vous enregistrer?" +msgstr "" +"Il y a des changements non-sauvegardés dans le fichier. Voulez-vous " +"enregistrer?" -#: src/Controllers/Dialogs.vala:221 +#: src/Controllers/Dialogs.vala:223 msgid "If you don't save, changes will be lost forever." -msgstr "Si vous n'enregistrez pas, les changements seront définitivement perdues." +msgstr "" +"Si vous n'enregistrez pas, les changements seront définitivement perdues." -#: src/Controllers/Dialogs.vala:226 +#: src/Controllers/Dialogs.vala:228 msgid "Close without saving" msgstr "Fermer sans enregistrer" @@ -116,6 +166,12 @@ msgstr "Fermer sans enregistrer" msgid "No file opened" msgstr "Aucun fichier ouvert" +#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 +#: src/Widgets/PublisherPreviewWindow.vala:270 +#: src/Widgets/ProjectStatistics.vala:71 +msgid "Close" +msgstr "Fermer" + #: src/Connections/WriteFreelyConnection.vala:100 msgid "Username" msgstr "Nom d'utilisateur" @@ -135,6 +191,11 @@ msgstr "URL" msgid "_Add Account" msgstr "A_jouter un compte" +#: src/Connections/WriteFreelyConnection.vala:230 +#: src/Connections/GhostConnection.vala:214 +msgid "Uploading images" +msgstr "Chargement des images" + #: src/Connections/WriteFreelyConnection.vala:308 #: src/Connections/GhostConnection.vala:299 src/Widgets/Preferences.vala:83 #: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 @@ -151,11 +212,6 @@ msgstr "Article Publié" msgid "E-mail" msgstr "E-mail" -#: src/Connections/WriteFreelyConnection.vala:230 -#: src/Connections/GhostConnection.vala:214 -msgid "Uploading images" -msgstr "Chargement des images" - #: src/Exporters/ExportDocx.vala:60 msgid "Export DocX" msgstr "Exporter DocX" @@ -210,12 +266,6 @@ msgstr "À propos" msgid "Credits" msgstr "Crédits" -#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 -#: src/Widgets/PublisherPreviewWindow.vala:270 -#: src/Widgets/ProjectStatistics.vala:71 -msgid "Close" -msgstr "Fermer" - #: src/Widgets/HeaderBar.vala:86 msgid "New Sheet" msgstr "Nouvelle Feuille" @@ -290,11 +340,11 @@ msgstr "C_harger depuis le disque" msgid "_Keep what's in editor" msgstr "_Garder ce qui est dans l'éditeur" -#: src/Widgets/Editor.vala:1684 +#: src/Widgets/Editor.vala:1686 msgid "Insert Datetime" msgstr "Insérer Datetime" -#: src/Widgets/Editor.vala:1702 +#: src/Widgets/Editor.vala:1704 msgid "Insert YAML Frontmatter" msgstr "Insérer le Frontmatter YAML" @@ -310,6 +360,10 @@ msgstr "Écrire les statistiques" msgid "Search " msgstr "Chercher " +#: src/Widgets/Library.vala:512 +msgid "Open in File Manager" +msgstr "" + #: src/Widgets/Library.vala:524 msgid "Create Sub-Folder" msgstr "Créer un sous-dossier" @@ -350,6 +404,10 @@ msgstr "Nom de la Feuille" msgid "Create" msgstr "Créer" +#: src/Widgets/NewSheet.vala:36 +msgid "Import" +msgstr "" + #: src/Widgets/Preferences.vala:50 msgid "Current Connections" msgstr "Connexions en cours" @@ -374,6 +432,10 @@ msgstr " Mode sans distraction" msgid " ghost" msgstr " ghost" +#: src/Widgets/Preferences.vala:125 +msgid " WordPress" +msgstr "" + #: src/Widgets/Preferences.vala:206 msgid "_Remove" msgstr "Supp_rimer" @@ -411,8 +473,12 @@ msgid "First Markdown File includes Author Metadata" msgstr "Le 1er fichier Markdown comporte les métadonnées d'auteur" #: src/Widgets/Preferences.vala:341 -msgid "First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-metadata'>Author metadata</a>" -msgstr "Le 1er fichier Markdown inclut les <a href='https://pandoc.org/MANUAL.html#epub-metadata'>métadonnées d'auteur</a>" +msgid "" +"First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-" +"metadata'>Author metadata</a>" +msgstr "" +"Le 1er fichier Markdown inclut les <a href='https://pandoc.org/MANUAL." +"html#epub-metadata'>métadonnées d'auteur</a>" #: src/Widgets/Preferences.vala:357 msgid "Resolve full paths to resources" @@ -526,6 +592,14 @@ msgstr "Basculer l'ordre de la bibliothèque" msgid "Keep library order" msgstr "Conserver l'ordre de la bibliothèque" +#: src/Widgets/Preferences.vala:685 +msgid "Toggle experimental features" +msgstr "" + +#: src/Widgets/Preferences.vala:687 +msgid "Enable experimental features" +msgstr "" + #: src/Widgets/PublisherPreviewWindow.vala:65 #: src/Widgets/PublisherPreviewWindow.vala:195 #: src/Widgets/QuickPreferences.vala:81 src/Widgets/QuickPreferences.vala:163 @@ -555,11 +629,14 @@ msgid "words" msgstr "mots" #: src/Widgets/ProjectStatistics.vala:126 -msgid "<b>Reading Time:</b>\n" +#, c-format +msgid "" +"<b>Reading Time:</b>\n" "%d %s\n" "%d %s\n" "%d %s" -msgstr "<b>Temps de lecture:</b>\n" +msgstr "" +"<b>Temps de lecture:</b>\n" "%d %s\n" "%d %s\n" "%d %s" @@ -600,7 +677,6 @@ msgstr "Vérifier l'orthographe" msgid "Toggle Spellcheck" msgstr "(Dés)activer la vérification orthographique" -#. Not sure this should be translated since it is a tool/feature, not a sentence. If it is to be translated we should decide the expresion we should use in French. Write Good means 'Bien Écrire" which will be obvious to any user but sounds quite lame in French ;) #: src/Widgets/QuickPreferences.vala:59 #, fuzzy msgid "Write Good" @@ -615,6 +691,21 @@ msgstr "(Dés)activer Write Good" msgid "Launch Preview" msgstr "Démarrer l'aperçu" +#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 +#: src/Widgets/QuickPreferences.vala:238 +msgid "Open Export Window" +msgstr "" + +#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 +#: src/Widgets/QuickPreferences.vala:245 +msgid "Search Library" +msgstr "" + +#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 +#: src/Widgets/QuickPreferences.vala:247 +msgid "Open Search Window" +msgstr "" + #: src/Widgets/QuickPreferences.vala:98 src/Widgets/QuickPreferences.vala:180 #: src/Widgets/QuickPreferences.vala:253 msgid "Preferences" @@ -629,21 +720,30 @@ msgstr "Modifier les préférences" msgid "Font" msgstr "Police" +#: src/Widgets/ThemeSelector.vala:56 +msgid "Spacing" +msgstr "" + #: src/Widgets/ThemeSelector.vala:137 msgid "Font Selector" msgstr "Sélecteur de police" #: src/Widgets/ThemeSelector.vala:320 -msgid "Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" +msgid "" +"Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" "<small>Stored in <a href='file://" -msgstr "Téléchargez <a href='https://themes.thiefmd.com/themes/'>plus de thèmes</a>.\n" +msgstr "" +"Téléchargez <a href='https://themes.thiefmd.com/themes/'>plus de thèmes</" +"a>.\n" "<small>Enregistrés dans <a href='file://" #: src/Widgets/SearchBar.vala:110 +#, c-format msgid "(%d occurences)" msgstr "(%d occurences)" #: src/Widgets/StatisticsBar.vala:98 +#, c-format msgid "%d %s %d %s and %d %s reading time." msgstr "%d %s %d %s et %d %s temps de lecture." @@ -668,6 +768,7 @@ msgid "seconds" msgstr "secondes" #: src/Widgets/StatisticsBar.vala:104 +#, c-format msgid "%s : %d words." msgstr "%s : %d mots." @@ -690,83 +791,3 @@ msgstr "<b>Dérobe le contenu du fichier...</b>" #: src/Widgets/MarkdownCheatSheet.vala:52 msgid "Heading" msgstr "Titre" - -#. Font settings -#. Arbitrary strings -#: src/Constants/AppSettings.vala:97 -msgid "# Click on a sheet to get started\n" -"\n" -"First time here? Drag a folder into the library, or click on the Folder icon to select a folder to add.\n" -"\n" -"## Thief Tip:\n" -"\n" -"%s" -msgstr "# Cliquez sur une Feuille pour commencer\n" -"\n" -"Première fois ici ? Glissez un dossier sur la bibliothèque, ou cliquez sur l'icône de dossier pour sélectionner un dossier à ajouter.\n" -"\n" -"## Astuce Thief:\n" -"\n" -"%s" - -#: src/ThiefApp.vala:168 src/Controllers/UI.vala:519 -#: src/Widgets/Library.vala:69 -msgid "Library" -msgstr "Bibliothèque" - -#: src/ThiefApp.vala:169 src/Controllers/UI.vala:477 -#: src/Controllers/UI.vala:496 -msgid "Editor" -msgstr "" - -#: src/ThiefApp.vala:170 src/Controllers/UI.vala:485 -msgid "Search" -msgstr "" - -#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 -#: src/Widgets/QuickPreferences.vala:238 -msgid "Open Export Window" -msgstr "" - -#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 -#: src/Widgets/QuickPreferences.vala:245 -msgid "Search Library" -msgstr "" - -#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 -#: src/Widgets/QuickPreferences.vala:247 -msgid "Open Search Window" -msgstr "" - -#: src/Widgets/ThemeSelector.vala:56 -msgid "Spacing" -msgstr "" - -#: src/Widgets/Preferences.vala:685 -msgid "Toggle experimental features" -msgstr "" - -#: src/Widgets/Preferences.vala:687 -msgid "Enable experimental features" -msgstr "" - -#: src/Controllers/Dialogs.vala:161 -msgid "Supported files" -msgstr "" - -#: src/Controllers/Dialogs.vala:168 -msgid "%s files" -msgstr "" - -#: src/Widgets/Library.vala:512 -msgid "Open in File Manager" -msgstr "" - -#: src/Widgets/NewSheet.vala:36 -msgid "Import" -msgstr "" - -#: src/Widgets/Preferences.vala:125 -msgid " WordPress" -msgstr "" - diff --git a/po/sk.po b/po/sk.po index 309094b..a07bb5c 100644 --- a/po/sk.po +++ b/po/sk.po @@ -1,11 +1,27 @@ msgid "" msgstr "" +"Project-Id-Version: ThiefMD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-03-12 19:03-0800\n" +"Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" -"Project-Id-Version: ThiefMD\n" -"Language: sk\n" + +#: src/ThiefApp.vala:168 src/Controllers/UI.vala:519 +#: src/Widgets/Library.vala:69 +msgid "Library" +msgstr "Knižnica" + +#: src/ThiefApp.vala:169 src/Controllers/UI.vala:477 +#: src/Controllers/UI.vala:496 +msgid "Editor" +msgstr "" + +#: src/ThiefApp.vala:170 src/Controllers/UI.vala:485 +msgid "Search" +msgstr "Hľadať" #: src/ThiefApp.vala:263 msgid "HTML" @@ -31,6 +47,21 @@ msgstr "" msgid "DocX" msgstr "" +#. Visual Settings +#. Arbitrary strings +#: src/Constants/AppSettings.vala:97 +#, c-format +msgid "" +"# Click on a sheet to get started\n" +"\n" +"First time here? Drag a folder into the library, or click on the Folder " +"icon to select a folder to add.\n" +"\n" +"## Thief Tip:\n" +"\n" +"%s" +msgstr "" + #. Supported import file extensions #: src/Controllers/FileManager.vala:38 msgid "Importing File" @@ -83,31 +114,40 @@ msgstr "MHTML súbory" msgid "LaTeX file" msgstr "Súbor LaTeX" -#: src/Controllers/Dialogs.vala:175 +#: src/Controllers/Dialogs.vala:161 +msgid "Supported files" +msgstr "" + +#: src/Controllers/Dialogs.vala:170 +#, c-format +msgid "%s files" +msgstr "" + +#: src/Controllers/Dialogs.vala:177 msgid "All files" msgstr "Všetky súbory" -#: src/Controllers/Dialogs.vala:184 +#: src/Controllers/Dialogs.vala:186 msgid "Add to Library" msgstr "Pridať do knižnice" -#: src/Controllers/Dialogs.vala:194 +#: src/Controllers/Dialogs.vala:196 msgid "Open file" msgstr "Otvoriť súbor" -#: src/Controllers/Dialogs.vala:206 +#: src/Controllers/Dialogs.vala:208 msgid "Save file" msgstr "Uložiť súbor" -#: src/Controllers/Dialogs.vala:220 +#: src/Controllers/Dialogs.vala:222 msgid "There are unsaved changes to the file. Do you want to save?" msgstr "Súbor obsahuje neuložené zmeny. Chcete ich uložiť?" -#: src/Controllers/Dialogs.vala:221 +#: src/Controllers/Dialogs.vala:223 msgid "If you don't save, changes will be lost forever." msgstr "Ak ich neuložíte, zmeny budú navždy stratené." -#: src/Controllers/Dialogs.vala:226 +#: src/Controllers/Dialogs.vala:228 msgid "Close without saving" msgstr "Zavrieť bez uloženia" @@ -115,6 +155,12 @@ msgstr "Zavrieť bez uloženia" msgid "No file opened" msgstr "Žiadný súbor nieje otvorený" +#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 +#: src/Widgets/PublisherPreviewWindow.vala:270 +#: src/Widgets/ProjectStatistics.vala:71 +msgid "Close" +msgstr "Zavrieť" + #: src/Connections/WriteFreelyConnection.vala:100 msgid "Username" msgstr "Užívateľské meno" @@ -134,6 +180,11 @@ msgstr "" msgid "_Add Account" msgstr "_Pridať účet" +#: src/Connections/WriteFreelyConnection.vala:230 +#: src/Connections/GhostConnection.vala:214 +msgid "Uploading images" +msgstr "Nahrávanie obrázkov" + #: src/Connections/WriteFreelyConnection.vala:308 #: src/Connections/GhostConnection.vala:299 src/Widgets/Preferences.vala:83 #: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 @@ -150,11 +201,6 @@ msgstr "Príspevok zverejnený" msgid "E-mail" msgstr "" -#: src/Connections/WriteFreelyConnection.vala:230 -#: src/Connections/GhostConnection.vala:214 -msgid "Uploading images" -msgstr "Nahrávanie obrázkov" - #: src/Exporters/ExportDocx.vala:60 msgid "Export DocX" msgstr "Exportovať DocX" @@ -209,12 +255,6 @@ msgstr "O" msgid "Credits" msgstr "Autori" -#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 -#: src/Widgets/PublisherPreviewWindow.vala:270 -#: src/Widgets/ProjectStatistics.vala:71 -msgid "Close" -msgstr "Zavrieť" - #: src/Widgets/HeaderBar.vala:86 msgid "New Sheet" msgstr "Nový list" @@ -289,11 +329,11 @@ msgstr "_Načítať z disku" msgid "_Keep what's in editor" msgstr "" -#: src/Widgets/Editor.vala:1684 +#: src/Widgets/Editor.vala:1686 msgid "Insert Datetime" msgstr "" -#: src/Widgets/Editor.vala:1702 +#: src/Widgets/Editor.vala:1704 msgid "Insert YAML Frontmatter" msgstr "" @@ -309,6 +349,10 @@ msgstr "" msgid "Search " msgstr "Hľadať " +#: src/Widgets/Library.vala:512 +msgid "Open in File Manager" +msgstr "" + #: src/Widgets/Library.vala:524 msgid "Create Sub-Folder" msgstr "Vytvoriť podzložku" @@ -349,6 +393,10 @@ msgstr "Názov listu" msgid "Create" msgstr "Vytvoriť" +#: src/Widgets/NewSheet.vala:36 +msgid "Import" +msgstr "" + #: src/Widgets/Preferences.vala:50 msgid "Current Connections" msgstr "" @@ -373,6 +421,10 @@ msgstr "" msgid " ghost" msgstr "" +#: src/Widgets/Preferences.vala:125 +msgid " WordPress" +msgstr "" + #: src/Widgets/Preferences.vala:206 msgid "_Remove" msgstr "_Odstrániť" @@ -410,7 +462,9 @@ msgid "First Markdown File includes Author Metadata" msgstr "" #: src/Widgets/Preferences.vala:341 -msgid "First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-metadata'>Author metadata</a>" +msgid "" +"First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-" +"metadata'>Author metadata</a>" msgstr "" #: src/Widgets/Preferences.vala:357 @@ -521,6 +575,14 @@ msgstr "" msgid "Keep library order" msgstr "Ponechať zoradenie knižnice" +#: src/Widgets/Preferences.vala:685 +msgid "Toggle experimental features" +msgstr "" + +#: src/Widgets/Preferences.vala:687 +msgid "Enable experimental features" +msgstr "" + #: src/Widgets/PublisherPreviewWindow.vala:65 #: src/Widgets/PublisherPreviewWindow.vala:195 #: src/Widgets/QuickPreferences.vala:81 src/Widgets/QuickPreferences.vala:163 @@ -549,7 +611,9 @@ msgid "words" msgstr "slová" #: src/Widgets/ProjectStatistics.vala:126 -msgid "<b>Reading Time:</b>\n" +#, c-format +msgid "" +"<b>Reading Time:</b>\n" "%d %s\n" "%d %s\n" "%d %s" @@ -604,6 +668,21 @@ msgstr "" msgid "Launch Preview" msgstr "Pozrieť náhľad" +#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 +#: src/Widgets/QuickPreferences.vala:238 +msgid "Open Export Window" +msgstr "Otvoriť okno pre export" + +#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 +#: src/Widgets/QuickPreferences.vala:245 +msgid "Search Library" +msgstr "Prehľadávanie knižnice" + +#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 +#: src/Widgets/QuickPreferences.vala:247 +msgid "Open Search Window" +msgstr "Otvoriť vyhľadávacie okno" + #: src/Widgets/QuickPreferences.vala:98 src/Widgets/QuickPreferences.vala:180 #: src/Widgets/QuickPreferences.vala:253 msgid "Preferences" @@ -618,20 +697,27 @@ msgstr "Upraviť predvoľby" msgid "Font" msgstr "Písmo" +#: src/Widgets/ThemeSelector.vala:56 +msgid "Spacing" +msgstr "Rozloženie" + #: src/Widgets/ThemeSelector.vala:137 msgid "Font Selector" msgstr "Výber písma" #: src/Widgets/ThemeSelector.vala:320 -msgid "Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" +msgid "" +"Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" "<small>Stored in <a href='file://" msgstr "" #: src/Widgets/SearchBar.vala:110 +#, c-format msgid "(%d occurences)" msgstr "" #: src/Widgets/StatisticsBar.vala:98 +#, c-format msgid "%d %s %d %s and %d %s reading time." msgstr "" @@ -656,6 +742,7 @@ msgid "seconds" msgstr "sekundy" #: src/Widgets/StatisticsBar.vala:104 +#, c-format msgid "%s : %d words." msgstr "%s : %d slov." @@ -678,77 +765,3 @@ msgstr "" #: src/Widgets/MarkdownCheatSheet.vala:52 msgid "Heading" msgstr "Nadpis" - -#. Font settings -#. Arbitrary strings -#: src/Constants/AppSettings.vala:97 -msgid "# Click on a sheet to get started\n" -"\n" -"First time here? Drag a folder into the library, or click on the Folder icon to select a folder to add.\n" -"\n" -"## Thief Tip:\n" -"\n" -"%s" -msgstr "" - -#: src/ThiefApp.vala:168 src/Controllers/UI.vala:519 -#: src/Widgets/Library.vala:69 -msgid "Library" -msgstr "Knižnica" - -#: src/ThiefApp.vala:169 src/Controllers/UI.vala:477 -#: src/Controllers/UI.vala:496 -msgid "Editor" -msgstr "" - -#: src/ThiefApp.vala:170 src/Controllers/UI.vala:485 -msgid "Search" -msgstr "Hľadať" - -#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 -#: src/Widgets/QuickPreferences.vala:238 -msgid "Open Export Window" -msgstr "Otvoriť okno pre export" - -#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 -#: src/Widgets/QuickPreferences.vala:245 -msgid "Search Library" -msgstr "Prehľadávanie knižnice" - -#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 -#: src/Widgets/QuickPreferences.vala:247 -msgid "Open Search Window" -msgstr "Otvoriť vyhľadávacie okno" - -#: src/Widgets/ThemeSelector.vala:56 -msgid "Spacing" -msgstr "Rozloženie" - -#: src/Widgets/Preferences.vala:685 -msgid "Toggle experimental features" -msgstr "" - -#: src/Widgets/Preferences.vala:687 -msgid "Enable experimental features" -msgstr "" - -#: src/Controllers/Dialogs.vala:161 -msgid "Supported files" -msgstr "" - -#: src/Controllers/Dialogs.vala:168 -msgid "%s files" -msgstr "" - -#: src/Widgets/Library.vala:512 -msgid "Open in File Manager" -msgstr "" - -#: src/Widgets/NewSheet.vala:36 -msgid "Import" -msgstr "" - -#: src/Widgets/Preferences.vala:125 -msgid " WordPress" -msgstr "" - diff --git a/po/sv.po b/po/sv.po index b6ff35d..88a4600 100644 --- a/po/sv.po +++ b/po/sv.po @@ -1,11 +1,27 @@ msgid "" msgstr "" +"Project-Id-Version: ThiefMD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-03-12 19:03-0800\n" +"Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: POEditor.com\n" -"Project-Id-Version: ThiefMD\n" -"Language: sv\n" + +#: src/ThiefApp.vala:168 src/Controllers/UI.vala:519 +#: src/Widgets/Library.vala:69 +msgid "Library" +msgstr "Bibliotek" + +#: src/ThiefApp.vala:169 src/Controllers/UI.vala:477 +#: src/Controllers/UI.vala:496 +msgid "Editor" +msgstr "Redigerare" + +#: src/ThiefApp.vala:170 src/Controllers/UI.vala:485 +msgid "Search" +msgstr "Sök" #: src/ThiefApp.vala:263 msgid "HTML" @@ -31,6 +47,29 @@ msgstr "LaTeX" msgid "DocX" msgstr "DocX" +#. Visual Settings +#. Arbitrary strings +#: src/Constants/AppSettings.vala:97 +#, c-format +msgid "" +"# Click on a sheet to get started\n" +"\n" +"First time here? Drag a folder into the library, or click on the Folder " +"icon to select a folder to add.\n" +"\n" +"## Thief Tip:\n" +"\n" +"%s" +msgstr "" +"Klicka på bladet för att komma igång\n" +"\n" +"Första gången här? Dra en mapp in till biblioteket, eller klicka på " +"mappikonen för att välja en mapp att lägga till.\n" +"\n" +"## Thief-tips:\n" +"\n" +"%s" + #. Supported import file extensions #: src/Controllers/FileManager.vala:38 msgid "Importing File" @@ -83,31 +122,40 @@ msgstr "MHTML-filer" msgid "LaTeX file" msgstr "LaTeX-fil" -#: src/Controllers/Dialogs.vala:175 +#: src/Controllers/Dialogs.vala:161 +msgid "Supported files" +msgstr "" + +#: src/Controllers/Dialogs.vala:170 +#, c-format +msgid "%s files" +msgstr "" + +#: src/Controllers/Dialogs.vala:177 msgid "All files" msgstr "Alla filer" -#: src/Controllers/Dialogs.vala:184 +#: src/Controllers/Dialogs.vala:186 msgid "Add to Library" msgstr "Lägg till i biblioteket" -#: src/Controllers/Dialogs.vala:194 +#: src/Controllers/Dialogs.vala:196 msgid "Open file" msgstr "Öppna fil" -#: src/Controllers/Dialogs.vala:206 +#: src/Controllers/Dialogs.vala:208 msgid "Save file" msgstr "Spara fil" -#: src/Controllers/Dialogs.vala:220 +#: src/Controllers/Dialogs.vala:222 msgid "There are unsaved changes to the file. Do you want to save?" msgstr "Det finns osparade ändringar i filen. Vill du spara?" -#: src/Controllers/Dialogs.vala:221 +#: src/Controllers/Dialogs.vala:223 msgid "If you don't save, changes will be lost forever." msgstr "Om du inte sparar kommer ändringarna att förloras för alltid." -#: src/Controllers/Dialogs.vala:226 +#: src/Controllers/Dialogs.vala:228 msgid "Close without saving" msgstr "Stäng utan att spara" @@ -115,6 +163,12 @@ msgstr "Stäng utan att spara" msgid "No file opened" msgstr "Ingen fil öppnad" +#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 +#: src/Widgets/PublisherPreviewWindow.vala:270 +#: src/Widgets/ProjectStatistics.vala:71 +msgid "Close" +msgstr "Stäng" + #: src/Connections/WriteFreelyConnection.vala:100 msgid "Username" msgstr "Användarnamn" @@ -134,6 +188,11 @@ msgstr "Slutpunkt" msgid "_Add Account" msgstr "_Lägg till konto" +#: src/Connections/WriteFreelyConnection.vala:230 +#: src/Connections/GhostConnection.vala:214 +msgid "Uploading images" +msgstr "Laddar upp bilder" + #: src/Connections/WriteFreelyConnection.vala:308 #: src/Connections/GhostConnection.vala:299 src/Widgets/Preferences.vala:83 #: src/Widgets/Preferences.vala:117 src/Widgets/Preferences.vala:151 @@ -150,11 +209,6 @@ msgstr "Efter publicering" msgid "E-mail" msgstr "E-post" -#: src/Connections/WriteFreelyConnection.vala:230 -#: src/Connections/GhostConnection.vala:214 -msgid "Uploading images" -msgstr "Laddar upp bilder" - #: src/Exporters/ExportDocx.vala:60 msgid "Export DocX" msgstr "Exportera DOCX" @@ -209,12 +263,6 @@ msgstr "Om" msgid "Credits" msgstr "Erkännanden" -#: src/Connections/ConnectionBase.vala:85 src/Widgets/About.vala:59 -#: src/Widgets/PublisherPreviewWindow.vala:270 -#: src/Widgets/ProjectStatistics.vala:71 -msgid "Close" -msgstr "Stäng" - #: src/Widgets/HeaderBar.vala:86 msgid "New Sheet" msgstr "Nytt blad" @@ -289,11 +337,11 @@ msgstr "_Läs in från disk" msgid "_Keep what's in editor" msgstr "_Behåll vad som finns i redigeraren" -#: src/Widgets/Editor.vala:1684 +#: src/Widgets/Editor.vala:1686 msgid "Insert Datetime" msgstr "Infoga datumtid" -#: src/Widgets/Editor.vala:1702 +#: src/Widgets/Editor.vala:1704 msgid "Insert YAML Frontmatter" msgstr "Infoga YAML Frontmatter" @@ -309,6 +357,10 @@ msgstr "Skrivstatistik" msgid "Search " msgstr "Sök " +#: src/Widgets/Library.vala:512 +msgid "Open in File Manager" +msgstr "" + #: src/Widgets/Library.vala:524 msgid "Create Sub-Folder" msgstr "Skapa undermapp" @@ -349,6 +401,10 @@ msgstr "Bladnamn" msgid "Create" msgstr "Skapa" +#: src/Widgets/NewSheet.vala:36 +msgid "Import" +msgstr "" + #: src/Widgets/Preferences.vala:50 msgid "Current Connections" msgstr "Aktuella anslutningar" @@ -373,6 +429,10 @@ msgstr " WriteFreely" msgid " ghost" msgstr " ghost" +#: src/Widgets/Preferences.vala:125 +msgid " WordPress" +msgstr "" + #: src/Widgets/Preferences.vala:206 msgid "_Remove" msgstr "_Ta bort" @@ -410,8 +470,12 @@ msgid "First Markdown File includes Author Metadata" msgstr "Första Markdown-filen inkluderar författares metadata" #: src/Widgets/Preferences.vala:341 -msgid "First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-metadata'>Author metadata</a>" -msgstr "Första Markdown-filen inkluderar <a href='https://pandoc.org/MANUAL.html#epub-metadata'>författares metadata</a>" +msgid "" +"First Markdown file includes <a href='https://pandoc.org/MANUAL.html#epub-" +"metadata'>Author metadata</a>" +msgstr "" +"Första Markdown-filen inkluderar <a href='https://pandoc.org/MANUAL." +"html#epub-metadata'>författares metadata</a>" #: src/Widgets/Preferences.vala:357 msgid "Resolve full paths to resources" @@ -521,6 +585,14 @@ msgstr "Biblioteksordning på/av" msgid "Keep library order" msgstr "Bevara biblioteksordning" +#: src/Widgets/Preferences.vala:685 +msgid "Toggle experimental features" +msgstr "Experimentella funktioner på/av" + +#: src/Widgets/Preferences.vala:687 +msgid "Enable experimental features" +msgstr "Aktivera experimentella funktioner" + #: src/Widgets/PublisherPreviewWindow.vala:65 #: src/Widgets/PublisherPreviewWindow.vala:195 #: src/Widgets/QuickPreferences.vala:81 src/Widgets/QuickPreferences.vala:163 @@ -549,11 +621,14 @@ msgid "words" msgstr "ord" #: src/Widgets/ProjectStatistics.vala:126 -msgid "<b>Reading Time:</b>\n" +#, c-format +msgid "" +"<b>Reading Time:</b>\n" "%d %s\n" "%d %s\n" "%d %s" -msgstr "<b>Lästid:</b>\n" +msgstr "" +"<b>Lästid:</b>\n" "%d %s\n" "%d %s\n" "%d %s" @@ -607,6 +682,21 @@ msgstr "Skriv-bra på/av" msgid "Launch Preview" msgstr "Starta förhandsgranskning" +#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 +#: src/Widgets/QuickPreferences.vala:238 +msgid "Open Export Window" +msgstr "Öppna exportfönster" + +#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 +#: src/Widgets/QuickPreferences.vala:245 +msgid "Search Library" +msgstr "Sök i biblioteket" + +#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 +#: src/Widgets/QuickPreferences.vala:247 +msgid "Open Search Window" +msgstr "Öppna sökfönster" + #: src/Widgets/QuickPreferences.vala:98 src/Widgets/QuickPreferences.vala:180 #: src/Widgets/QuickPreferences.vala:253 msgid "Preferences" @@ -621,21 +711,29 @@ msgstr "Redigera inställningar" msgid "Font" msgstr "Teckensnitt" +#: src/Widgets/ThemeSelector.vala:56 +msgid "Spacing" +msgstr "Mellanslag" + #: src/Widgets/ThemeSelector.vala:137 msgid "Font Selector" msgstr "Teckensnittsväljare" #: src/Widgets/ThemeSelector.vala:320 -msgid "Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" +msgid "" +"Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" "<small>Stored in <a href='file://" -msgstr "Ladda ner <a href='https://themes.thiefmd.com/themes/'>fler teman</a>.\n" +msgstr "" +"Ladda ner <a href='https://themes.thiefmd.com/themes/'>fler teman</a>.\n" "<small>Lagrade i <a href='file://" #: src/Widgets/SearchBar.vala:110 +#, c-format msgid "(%d occurences)" msgstr "(%d förekomster)" #: src/Widgets/StatisticsBar.vala:98 +#, c-format msgid "%d %s %d %s and %d %s reading time." msgstr "%d %s %d %s och %d %s lästid." @@ -660,6 +758,7 @@ msgid "seconds" msgstr "sekunder" #: src/Widgets/StatisticsBar.vala:104 +#, c-format msgid "%s : %d words." msgstr "%s : %d ord." @@ -682,83 +781,3 @@ msgstr "<b>Stjäl filinnehåll...</b>" #: src/Widgets/MarkdownCheatSheet.vala:52 msgid "Heading" msgstr "Rubrik" - -#. Font settings -#. Arbitrary strings -#: src/Constants/AppSettings.vala:97 -msgid "# Click on a sheet to get started\n" -"\n" -"First time here? Drag a folder into the library, or click on the Folder icon to select a folder to add.\n" -"\n" -"## Thief Tip:\n" -"\n" -"%s" -msgstr "Klicka på bladet för att komma igång\n" -"\n" -"Första gången här? Dra en mapp in till biblioteket, eller klicka på mappikonen för att välja en mapp att lägga till.\n" -"\n" -"## Thief-tips:\n" -"\n" -"%s" - -#: src/ThiefApp.vala:168 src/Controllers/UI.vala:519 -#: src/Widgets/Library.vala:69 -msgid "Library" -msgstr "Bibliotek" - -#: src/ThiefApp.vala:169 src/Controllers/UI.vala:477 -#: src/Controllers/UI.vala:496 -msgid "Editor" -msgstr "Redigerare" - -#: src/ThiefApp.vala:170 src/Controllers/UI.vala:485 -msgid "Search" -msgstr "Sök" - -#: src/Widgets/QuickPreferences.vala:83 src/Widgets/QuickPreferences.vala:165 -#: src/Widgets/QuickPreferences.vala:238 -msgid "Open Export Window" -msgstr "Öppna exportfönster" - -#: src/Widgets/QuickPreferences.vala:90 src/Widgets/QuickPreferences.vala:172 -#: src/Widgets/QuickPreferences.vala:245 -msgid "Search Library" -msgstr "Sök i biblioteket" - -#: src/Widgets/QuickPreferences.vala:92 src/Widgets/QuickPreferences.vala:174 -#: src/Widgets/QuickPreferences.vala:247 -msgid "Open Search Window" -msgstr "Öppna sökfönster" - -#: src/Widgets/ThemeSelector.vala:56 -msgid "Spacing" -msgstr "Mellanslag" - -#: src/Widgets/Preferences.vala:685 -msgid "Toggle experimental features" -msgstr "Experimentella funktioner på/av" - -#: src/Widgets/Preferences.vala:687 -msgid "Enable experimental features" -msgstr "Aktivera experimentella funktioner" - -#: src/Controllers/Dialogs.vala:161 -msgid "Supported files" -msgstr "" - -#: src/Controllers/Dialogs.vala:168 -msgid "%s files" -msgstr "" - -#: src/Widgets/Library.vala:512 -msgid "Open in File Manager" -msgstr "" - -#: src/Widgets/NewSheet.vala:36 -msgid "Import" -msgstr "" - -#: src/Widgets/Preferences.vala:125 -msgid " WordPress" -msgstr "" - From 90bc2aa0b4bf7115e2e5c47a1f2fc57889632ffd Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Sat, 13 Mar 2021 12:47:39 -0800 Subject: [PATCH 44/50] Fix heading margin calculation, allow more fonts to be selected --- src/Constants/AppSettings.vala | 6 +++-- src/Widgets/Editor.vala | 44 ++++++++++++++++++++-------------- src/Widgets/ThemeSelector.vala | 20 +++++++++------- 3 files changed, 41 insertions(+), 29 deletions(-) diff --git a/src/Constants/AppSettings.vala b/src/Constants/AppSettings.vala index 5ab7481..d1f76b2 100644 --- a/src/Constants/AppSettings.vala +++ b/src/Constants/AppSettings.vala @@ -200,10 +200,12 @@ First time here? Drag a folder into the library, or click on the Folder icon to } public string get_css_font_family () { - if (font_family == null || font_family.chug ().chomp () == "") { + var set_font_desc = Pango.FontDescription.from_string (font_family); + string? set_font_fam = set_font_desc.get_family (); + if (font_family == null || set_font_fam == null || font_family.chug ().chomp () == "") { return "font-family: 'iA Writer Duospace'"; } else { - return "font-family: '%s'".printf (font_family.chomp ().chug ()); + return "font-family: '%s'".printf (set_font_fam.chomp ().chug ()); } } diff --git a/src/Widgets/Editor.vala b/src/Widgets/Editor.vala index 93daab5..9e78f45 100644 --- a/src/Widgets/Editor.vala +++ b/src/Widgets/Editor.vala @@ -1218,22 +1218,30 @@ namespace ThiefMD.Widgets { int avg_w = f_w; if (get_realized ()) { - var font_desc = new Pango.FontDescription (); - font_desc.set_family (settings.get_css_font_family ()); + var font_desc = Pango.FontDescription.from_string (settings.font_family); font_desc.set_size ((int)(f_w * Pango.SCALE * Pango.Scale.LARGE)); var font_context = get_pango_context (); var font_layout = new Pango.Layout (font_context); font_layout.set_font_description (font_desc); font_layout.set_text ("#", 1); - font_layout.get_pixel_size (out hashtag_w, out avg_w); + Pango.Rectangle ink, logical; + font_layout.get_pixel_extents (out ink, out logical); + debug ("# Ink: %d, Logical: %d", ink.width, logical.width); + hashtag_w = int.max (ink.width, logical.width); font_layout.set_text (" ", 1); - font_layout.get_pixel_size (out space_w, out avg_w); + font_layout.get_pixel_extents (out ink, out logical); + debug (" Ink: %d, Logical: %d", ink.width, logical.width); + space_w = int.max (ink.width, logical.width); if (space_w + hashtag_w <= 0) { hashtag_w = f_w; space_w = f_w; } - avg_w = (int)((hashtag_w + space_w) / 2.0); - debug ("Hashtag: %d, Space: %d, AvgChar: %d", hashtag_w, space_w, avg_w); + if (space_w < (hashtag_w / 2)) { + avg_w = (int)((hashtag_w + hashtag_w + space_w) / 3.0); + } else { + avg_w = (int)((hashtag_w + space_w) / 2.0); + } + debug ("%s Hashtag: %d, Space: %d, AvgChar: %d", font_desc.get_family (), hashtag_w, space_w, avg_w); if (m - ((hashtag_w * 6) + space_w) <= 0) { heading_text[0].left_margin = m; heading_text[1].left_margin = m; @@ -1242,18 +1250,18 @@ namespace ThiefMD.Widgets { heading_text[4].left_margin = m; heading_text[5].left_margin = m; } else { - // heading_text[0].left_margin = m - ((hashtag_w * 1) + space_w); - // heading_text[1].left_margin = m - ((hashtag_w * 2) + space_w); - // heading_text[2].left_margin = m - ((hashtag_w * 3) + space_w); - // heading_text[3].left_margin = m - ((hashtag_w * 4) + space_w); - // heading_text[4].left_margin = m - ((hashtag_w * 5) + space_w); - // heading_text[5].left_margin = m - ((hashtag_w * 6) + space_w); - heading_text[0].left_margin = m - (avg_w * 2); - heading_text[1].left_margin = m - (avg_w * 3); - heading_text[2].left_margin = m - (avg_w * 4); - heading_text[3].left_margin = m - (avg_w * 5); - heading_text[4].left_margin = m - (avg_w * 6); - heading_text[5].left_margin = m - (avg_w * 7); + heading_text[0].left_margin = m - ((hashtag_w * 1) + space_w); + heading_text[1].left_margin = m - ((hashtag_w * 2) + space_w); + heading_text[2].left_margin = m - ((hashtag_w * 3) + space_w); + heading_text[3].left_margin = m - ((hashtag_w * 4) + space_w); + heading_text[4].left_margin = m - ((hashtag_w * 5) + space_w); + heading_text[5].left_margin = m - ((hashtag_w * 6) + space_w); + // heading_text[0].left_margin = m - (avg_w * 2); + // heading_text[1].left_margin = m - (avg_w * 3); + // heading_text[2].left_margin = m - (avg_w * 4); + // heading_text[3].left_margin = m - (avg_w * 5); + // heading_text[4].left_margin = m - (avg_w * 6); + // heading_text[5].left_margin = m - (avg_w * 7); } } diff --git a/src/Widgets/ThemeSelector.vala b/src/Widgets/ThemeSelector.vala index 7badee7..a3c68bf 100644 --- a/src/Widgets/ThemeSelector.vala +++ b/src/Widgets/ThemeSelector.vala @@ -29,8 +29,7 @@ namespace ThiefMD.Widgets { } public bool filter_fonts (Pango.FontFamily fam, Pango.FontFace face) { - return (face.describe ().get_style () == Pango.Style.NORMAL) && - (!face.get_face_name ().down ().contains ("bold") && + return (!face.get_face_name ().down ().contains ("bold") && !face.get_face_name ().down ().contains ("italic") && !face.get_face_name ().down ().contains ("oblique")); } @@ -61,14 +60,16 @@ namespace ThiefMD.Widgets { font_selector.append_text ("Courier Prime"); fonts.add ("Courier Prime"); - if (settings.font_family != null && settings.font_family.chug ().chomp () != "" && !fonts.contains (settings.font_family)) { - font_selector.append_text (settings.font_family); - fonts.add (settings.font_family); - font_selector.set_active (fonts.index_of (settings.font_family)); + var set_font_desc = Pango.FontDescription.from_string (settings.font_family); + string? set_font_fam = set_font_desc.get_family (); + if (settings.font_family != null && set_font_fam != null && settings.font_family.chug ().chomp () != "" && !fonts.contains (set_font_fam)) { + font_selector.append_text (set_font_fam); + fonts.add (set_font_fam); + font_selector.set_active (fonts.index_of (set_font_fam)); other = 3; items = 3; - } else if (fonts.contains (settings.font_family)) { - font_selector.set_active (fonts.index_of (settings.font_family)); + } else if (set_font_fam != null && fonts.contains (set_font_fam)) { + font_selector.set_active (fonts.index_of (set_font_fam)); } else { font_selector.set_active (0); items = 2; @@ -147,13 +148,14 @@ namespace ThiefMD.Widgets { int res = font_chooser.run (); if (res != Gtk.ResponseType.CANCEL) { string new_font = font_chooser.get_font_family ().get_name (); + string font_desc = font_chooser.get_font_desc ().to_string (); int new_font_size = font_chooser.get_font_size (); if (new_font_size > Pango.SCALE) { new_font_size /= Pango.SCALE; } debug ("Selected font size: %d", new_font_size); debug ("Setting font: %s", new_font); - settings.font_family = new_font; + settings.font_family = font_desc; if (!fonts.contains (new_font)) { font_selector.append_text (new_font); fonts.add (new_font); From 501594b635d7dca726da00456a68b0e2ba6ad89a Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Sat, 13 Mar 2021 13:26:05 -0800 Subject: [PATCH 45/50] Update changeblog --- docs/_posts/.thiefsheets | 3 +- .../2021-03-13-stability-and-improvements.md | 44 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 docs/_posts/2021-03-13-stability-and-improvements.md diff --git a/docs/_posts/.thiefsheets b/docs/_posts/.thiefsheets index a0c2541..39e85a5 100644 --- a/docs/_posts/.thiefsheets +++ b/docs/_posts/.thiefsheets @@ -1,5 +1,6 @@ { "sheet-order" : [ + "2021-03-13-stability-and-improvements.md", "2020-10-31-blogging-the-next-generation.md", "2020-10-17-improved-search-and-fixes.md", "2020-10-15-export-enhanced.md", @@ -10,8 +11,8 @@ "2020-09-17-share-your-great-work.md", "2020-09-13-library-organization-and-export-take-2.md", "2020-09-08-all-the-themes.md", - "2020-09-02-september-release.md", "2020-09-02-preview-polish.md", + "2020-09-02-september-release.md", "2020-08-30-hello-thiefmd.md" ], "hidden-folders" : [], diff --git a/docs/_posts/2021-03-13-stability-and-improvements.md b/docs/_posts/2021-03-13-stability-and-improvements.md new file mode 100644 index 0000000..f8fb9b3 --- /dev/null +++ b/docs/_posts/2021-03-13-stability-and-improvements.md @@ -0,0 +1,44 @@ +--- +layout: post +title: Stability And Improvements +date: 2021-03-13 13:03:35 +--- +[WordPress](https://wordpress.org) got a huge update with [Featured Image](https://wordpress.com/support/featured-images/). +In the YAML, just add `cover-image` or `featured-image` to the frontmatter. + +```yaml +--- +title: My Fancy Blogpost +featured-image: /images/my-featured-image.jpeg +--- +``` + +Publishing to [Write.as](https://write.as) and have a Pro Account? [Snap.as](https://snap.as) image uploading is now supported. + +## New Translations + +Did you know [Poeditor](https://poeditor.com/join/project?hash=iQkE5oTIOV) can be used to help translate ThiefMD? People have been submitting translations: + + * French Translation by [David Bosman](https://github.com/davidbosman) + * Slovak Translation by [Marek L'ach](https://github.com/marek-lach) + * Swedish Translation by [Åke Engelbrektson](https://github.com/eson57) + +Thanks to everyone contributing! + +## UI Accessibility + +We've added borders to sheets in the sidebar when using the OS Theme. + +## Stability Improvements + +We've improved how heading margins are calculated, which means... we've relaxed font selection. You're still only limited to the family, but more should appear in the selector. + +We've lowered the chances of crashing in experimental mode. When selecting text with experimental mode, bold links will become normal font as [invisible text can cause a crash if formatted differently from surrounding text](https://stackoverflow.com/a/59314509). + +## Bug Fixes + +Fixed and issue where PDF export tried using non-PDF themes. + +## More to come... + +We're still working on Tagging and Categories for WordPress and Ghost. Checkout the [ThiefMD Project Board](https://github.com/kmwallio/ThiefMD/projects) to see what we have planned, and let us know how we can empower you to do more! \ No newline at end of file From fe16694ebf793278963a09c69edc26a79ae0e803 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Sat, 13 Mar 2021 13:28:20 -0800 Subject: [PATCH 46/50] Remove some old stuff --- docs/images/thief_styles.png | Bin 126098 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/images/thief_styles.png diff --git a/docs/images/thief_styles.png b/docs/images/thief_styles.png deleted file mode 100644 index 272c482e5b40e1d36785edb0b6e2a0928d091236..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126098 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ℑol5krVcb|B<-e%N z@uZ;>rNh1q6MJ-ilINGt0gwo36sZ4NO2Cm<s#Y3>R;X%^un_%7Z-Y08n~1H8IYGtS zivT%xV=T`+!}tnQ?$plkunQ=zyT6pRDNIdpy@lz{t*_Z)QO4xc4^k!q0^HTX3Ny>S z%iYQ9f&j5e?QI-6qI`zq(=ORGz=GTu`Nd(S>zV=QEF_1iz!TO*p&s@vNPI8o@@KU7 z%9&V_sH6@OlR0D_b+R(!hil&dUVo0jBC{hWZ1FXv`?mMC1g|<f$AQ*J*Uzz6n}EG! zQhr~aX&|b!)D-EW$ul?ZAY>bFX6Z`#1N*0U=a4hV#YDFN1K+YJSnz>YtK4C25Lb9D zqV#59-{=t(Rd@z159oOE44st&pw%2v#jFPC3-Q`xgZghwIV$v*lNDz&SQym6K2Hxs z2XgMG`B6sa_a7JU&NQ^1Mh^}vIH7PPBp3*9!oKqyBQR!Is8@tBBX6_JBO7Y*9)GVr zaD*IcJWmLAg#vB3Bpqdft?!41Yu2e~jq5XI&{s_i;~OPckKV>nct_iCEifJ_0fVnn z=tT;nx>Gr@?G5muW>VlrgbN`N`To(%ytAb^<wQib77~^S6ys9fAs0l#L0gzv=-Mk` z%J^tCu4KqV!Z3%AvWKIRaf0kpN@1gH;x{HQ4Xwr<A_Pj=uhD`6m4K+2?47CN$#5dx z7IzR@O|4*Pu*3PFEZaNsHwc(TJUzU;NUC*ie7U2Nk$uNeFlr`N9GHaYJOk7;IwNPC zt{>c3oi&pH1cfw+zvy}2qP#Uh#5Ca^0ppBM)PP@EX|_c{Gk(Khi<1Bc6!Bo`?JtJp zB_vJg_+=;#^q3k`3G(A>$HM#B98!)~%;Z}p^s_#75F`t-Bp5UXJY5JZGlF6S?Md|& z$=HaOdLU2d<db3>aNF<LOpea7+ULcc-l*LZrztH^L$)#ao;9k=38NWn`?FhF_=0&g zI0IFV3GsLv^2NdgiI9aT(KMSQfk^!m329a^x9M~C_8R)PmuFqbtnX)zsoDBQ>%N6f z-yLi6>#EMhIRzqX66^$}-WH(}-fm^>o6B4|)Rvv6U46L^y}e|eUWx>tMJiMSdDDuO z>}+6%5$5{0yn`HMewq~YRey`Jqhi5&f;Uo(*61GFmL)cswzHALGPfcW%iLfCSdvIA zV~<%b^zEf>vpD}^=16ypRpm=N188pr>}oEqgZiK2LqQB{NeZ-_;ArBlGR2YuqqFSN zsQox!KM3rCy;K`I4J+ni@eKjU9%4w6EO-2f<9g978lKKw*5R4%1OowVbc#?RFPpqU z3Hb2t>m9Vsz@NUO-Wp(L%b{kV<$*=`a~>`S2TO8Gr(^-o(1={9*}H~=ZnN;3u>1;V z`HH)s&ugBIc6l@AiC?4~)yV5ZU!-suV`DeZK*xaPJGrHS3e9ZUD7ajDdKf+dj~|vU zr*8K!_-M7Y4tOMK{ISl<k~_Dmqw#!7pC9U&mdVlKB90Cg=36xA!aIv$y_J5n-<32u zDv;H))3d1uQSo>9=3tm6r<3ux;eUzbZ>!1owa0)?9WF+S>MhN94!l+3${!PUPp*MM zn%6%+J!4LRKiwkl&rG!hGY0E;PYlK;c3i+ZOvmCCKEjOrqiNIC=TG84L<yKYq?5VP zuBxx7knuio!$)=X_=Xr93W!@$mUG9(oxz!_0SZ|>Tr|D#g|T;>lN2vk9pB9sC@8mv zX=kyA$f9gWI`<RVI@K^}R{4DplEtZ*=|q4PN-h>XxXFo&J-v~eFfkQJdPXZ+p5Y)3 zjj6(6B`gTsF(9vxX=PeaJTX4@?TTfiBY%YZl!X_6q2IIyp^;5Ndu46p^D^~Fx{eOd z@%nf{T_PQxEc6K8JEOy$qd*v$loV;ku|A&al+dDA5>{=Z$*EO76B<Je=W^9fUyuP> zT#|m4Yp7qCmWb0o<&`?_`RW33o}}@;DLM;`Qk7T+Y!;LQ-aP|3C<?u|DDFRziZh9B zX_}s~509+zorbg9Y`N2}ArG{6dEx^q<JAj_nDj;L*Yn@A-^WO>CgabK4o4lYx{zaU zbDbwUKhck*XZG*{8TdG;=R+7hQ80Jtw*wEM+s-6EenzoKBH+a6!GN|9G~{)%`!&(k zps!$o(zAxp0E_^<=a6^HaYX#Rp4MGLz{-8K4UDh5SVjDHq;EV-M5nFtxi@igDkgk( z%IiHOQxe~u&9PE^{|pccYXp~EEf?O$4Xg5OBWhK=9?;ni66hTPyISBk-us}EiDA&W zCOkOOSMPuP(R;X18xK24$!zD2+5L$Ibo_t<`_*4((zPV=XmuVS#XW<|+u_h`gGowQ z{R;Z-0z1?7xaZ86jj$hF2d7y6wtRTw{?5muKb$D!s6Lz0M>#LuIm;D!c9iopTdr`G zRfsKvcc}H%5h6q|76;rPc&&$ADYkKOGarO9ejwWbWHNi!=TE?GrfDLuVmKwydRG9+ z8A~7>u%ONWCq^8mu+~^r4HAhV_|EY4U`-jA8b9J~glIKgm^gV4k+Y|Wd&FN<4h5;W zm>8eHZ{dxf$X+Hr@?W5~4!jxlFH)PD``Q{}aW4%|{(lfs5ra>tgP%(B@{}vn|AF`h z-sB@u|L>o^;9xKRig}g);!zN%G6*)aKrtgjc^weIT8H5#?(-k`F&L!?f+=7@Q2PYT zfBM7AQU34`kV{GmE%{%cQavXve;doscYnckh(H=X4|nJ$WRPpK|0U9M3QbKtO-uQo zABemlNH3|O2wePsfBN5w{wsa+YgpL-Ut}%h@Cio1?RWWFaU=HCh^Kmtf2^~@I}+q1 zmlQjar|Lb*&swksw%$pI5ZrjU74Iyo<lPXR8PS%~bwVQ!n(%5}x+Z*jSl>`qbCda7 zc07IdwQm8svRjF~ox`!p@ID()15pi`y7QLhKJrcXSvPC_jfh~q=6TkRUYu?0i=X$C zIpD6w>-n+w#MT_90`M4=7Zjo_OJUy~A6WW%P{q}IQ}HUR?v~m`?%aUQMj#*c&aqf! z%-oGyM0eoIT>FjoMr9Jc*#i*GcKxC9Y`}-+?T&?30pl$my7ZWZW`RmS0i)oEdi})Q z0lOdY_?9C~kr0PiPhErzb!sND>gp6^!9Yv)Q&aufL;|z_HK}GAlv$U4!>IS882J@9 zC<*|V{;kdE?V2JhZmFimVaL3f_2K>Qw6rgCTfc&%I(xi?oW_9-NAI)2L*!}l<iShm zz_FNG-}QHxeoQKc<299QLYs#0PLn!~mSM_@o~liHS6E{$Y4^QP5~{xbBht+wDwC8k z$Dv;|z7i4lHtlZo91K&8&NA;4d^TDjr`W30J)7`e?_73EurC>d#9atl_+QC4q$J7W zpJIxMYl#0TdcTDgmwFg)i|Gf`bUoGu$0WkciO%c<D~^gd-ryIFBwi%UumXE^E@cvJ zfc~UQ2U;tCLv=MNeS1lCO|QDkS%mg)7DuFt?IQ~seo1cwRx~+$0qFPAH)~=pYa&-> zgCkSGCfh$JH`8mWXrEKU?o-TD)>&Gv`1}C#+P2|8j()}QrAUy0PE)Kzr5};9ifA{C zdC@T^7#LohQd2%4K3D@Q^8zuC;D?H=iYLssevulPu9AY1jw_;0d^!Gp%tD5a(S#?* zP&+Z*xB2@6ogkOJ{G}Nbd%eR{879JA!{~SU+fyelw^Q$zc14i_`kYyAcXM$fm<?|e zZ8t93teoxZ)H%-nq;*<piw+e<fqs`~)x9>W{tp*GCkNO&mjh2NaO!+`0bCe-G2XoA z;?O3IO>`VL8oW->aIsm<U@8|ej*j}4GP}moZK^z#_|QOWlk3=#^suy_JQn4!woz~9 zY!N~~JUv5bB7cwPO{NsiTl%d&oQ~lJqteO7mGFtis<u_p0>hmc3pi5?t}Y+4@tVEe z&#CLgiF|vy9W5@$0h|`BADxzl4+)5k-4@#*z$?1_;ijw|fc`x-h~aCvd*DijNqB%A znq8rHatbjfkY?w%DWwuf^lJBAnas4@>C|zbhvlOKVdjm7ActQ@ka>ODOBGza5E3f~ zelU$7mZ^cz7o#U`8#e3=b)dfL;~CR)y5i-k!%sSm=pT8?*>b)qzvUKm_2iF$ZYki1 znQC=08KvoObk-gINO`~$3Xt3I*1B~@gIy4!hAyNHW7E$0L=!RQ-j&a4x$JxscVHCz zj#F02Xy2uOr`%{FUi)0IQgCo^?$g&m)`U9$4ZV~mKAiqw-!ORgC~sL*Kvo`|B||9- zONx>Q>w(;(4~QfA*tIO38y249@qDGW*oj^V<km7uH<s=ZwBJ05r{6L-o`Dk7XkG}x z$RTzw3klaTuiRTrdBc`qIkH>grecN{rRB`u8@foGyS@r`;Y)^N`q|zoEh_sRcFim@ zi)zh+D}dP*GyrP0F<u_^tmQm^YDoMArx_)$`S{M7jTcCg#=R|T6eXThI+0vc_{5&o zR1r<yOR+B~VmgmD<{vvq)Ee7!$oA)4V6-qX9+b<ul8uKj-PRY#Z&+u^&FYEBxfum$ z8~M3?cDVb2<9J~t2WwaY-;r@x>?y{W7TQ3rJ!@WqqCuq}*t(KudcOc6%aj)Tf;hsv ze<dZtQ#}`vFk;qnf9k+NZsbV2^WOzhk+MKpv<3>_d42h1?rYA29GVnuDZ;I!Bs;|% zqfkttqwwvFPQ7IRRTVz^Tiny^U=)OtwE!GqBVm~Xoi(FBk^)}iD=a|cSaw}*{T14^ zCRiQY+X1q+-;dwn<8aDXTOe<L^|A-4*ki|9%!v@poDJi64|ODde`+D>G#=ddHnjAD z+lv$EUtdypE$5KjU38ntXstpS|D}=G|GM}X-OOsz=8$=rL2G1mzL}0ntvj$bfsT=` zKj4efyuJk==6iDwM$R-Wa)bF*CMJHog|)v<CbccEvA4cX+HOZG9HH48^U$gLFa~hV zJv1oW9b9n>Y@fQH!vhNu3SQIBoOq;P@{;V-lLaAYMW|RV4*Ikp)2q{~xMq9%7R z8#se3973AxzRJg2y!HYgd-y-l+xqdV7S4aYr9kDt-6l7R9PQg3-Z3OHoE$@CTYy`x zCNUblk75=a{S`@U&^y*>x?dVd$Z&M>5}E#dgpid6ehd(LvQAEF;{IUWabrR4;`ssz zQO;oh8P>yjueN#4nmJ2dF*)1S0pk6Np1}nRU{6QU5(0fUwuK_o>8is;14;I0w;7RG z)F0$V<u0KljOdt=Fo<7X`;&g|$%{6CN;b%k>dEspArWZYj*9}#q+l&_(_{s(f?kEC zl10@ta|mTUi0TH^_x|<bq!%x4o8FXpcukU-Xs6I8cYp_e?|yzg!%0RK=X=m0^hzga z1_aV~FA778G}Zx7Dz`JJvz#`?Z4g`OBwH<7aauX=e+2Q2c2u&}lq*@dK4B#;IpL(h z&8=y+HJJ1I&}vrg^%yn?u+q-`)YN*(l^8(u3Xot}jUQ=0bIw$8gyKHSmnJ{AqNZ** zTk8xEtgff{v)2~0E&TnV3j1+r<=kz{Odx(|ZNx{ry8UcOojFdl@oT#-h6P`F#>>_! z(vk<s3gJHa|A`>kEG6h>3TxWw71VVN{rvNo{8E$w#JYq#2NUTTWZhYPRuWFY&SbHF zFpS6&N8TGmX7i(+a$IxjW}FGYT4=+P0Kc3^vncm~b!67i`ShC8VC!6RP~bMlPjh?j zOE`zR_QCmn@50uz!5Ms?@6<M)JD^rd`y>JvyM_m#%0d+3R<{o=(kE<&P@*zQ`TObx zZsnWIXyN^^SM|)!{G>sBvw^O7>K936n%9jUTbY%tjH46Q2N--HcQ4SwQ&r*CkTB!7 z+oMJPRs>3&Am`fJwy(S`FFCS<src9DS{aM+m_@rAsc>|PfDa*Nm3mPLZ&*x2YK#$N z?Z&25E~RklAN8YIkNw^m)xnBU%#-Qqi{Nofr+G0R%bTz22SnEF{ASn}N^{NKeDeil zv?|#dHonLoumosOz_N?ux8tq_MD~S67;;R$F<HV7bcVApd>8w6xPnl1L$8yfX@JO^ zlXh~U<v}%_|B}?*ycOeM-Z8zX;$W#3Ji5^jE0AgdpSd|GO~6U(wB3zhjK<epVI=ie z2b6E3=!K64=-a6I4DO^XKVv6B66{c==_R)anHZP@EU!vq_iul{apzz-FYri2mj!FM zC8Yoy?H|(*76cI0GIP&Q8TJnm3c(&xE5`Rf(B<&LXk97n!;G~qQgq>^TwHs{xe1YL zrC0dA(qAi=NiFsrMWsEe_SZiV6|kN1+?n-0+z#ry7_(HG7zL@*<I{R|=bj|J`D68x zKCs|wILH=vH`qZoYXc~5+!$``-iB%+%3`a)!{QB_IgYQJ<SG#{US_lX4VG$82g@EA z%f>)N>yv(bjq6^XQE;PxT;HI(D!V?cQVmGlQSDlNh|BAoog<-bV6DK$x50gC$S`x< zu)$~Ph9me17|JHEu07Nt?7bQR-CF$3_T>bFVhyeE!SKqiy<+q1p(cAomgE1X&RoGV zcb6Y=_8&K@cS_DTpf<>u4l+0$FHUbTxSwg~EK~rr`{fc1>meupcoVizNCA)(<GAU7 z>~`lrr=TNgOgd!AD+^T=7$5n?cW|Vi*qluJWSo3MV3L*$uO{0(J4fq){~XPNFSNSD z_lT@n;B+MOC{?~gvnQ$u?blG+T3Eh*-ZUZGi<W0v!<vv>tqA{b3kG_Wec1qIW9^v; zhOdBQgN}+s_Mh2Z(I|PLVPSQRSL<1#joZo;|6$gEte4AI3VBQA_m6NDIhHDQYIy6W z&%oD)A8)~eKeOX$@+#WBU!Og_c?lj6{H(JxMEm;f@>kTY;Iwr>sGW`Nd&g#^;^ROC z>?HK;T^pbZYCZ%ZCur?>P4$m>rIj!2n*RAZII-<7+PkeJ;*OW2E8<nsyUVM)PL#v@ zvw5F=rlMz--b<P${8d}L)04Lm$ojLPgo+X;O9Gt%hTn2p+VX>nv5)e%4YB!*#YB_C z;s)?r`pQzXVz2y9X1mA7H~|V-uDh=UZYSWyCC^PK|8_N?;y7&ST>ZF(6S$$|?HOGz z=PDyJiUR_HX6-*Dn;{Rb(`LU7P<+5wPPsK^xtIgzCn%uv*>v{&BR@t6Cj%|*!Cyv= zrKKjq+8>`;UY1+)zQ4R49*Zk-psYqhQhIusx6wbx(?1Gm<+{p1orALt_3pmx$sYlV zCDHhbZ-W%@e{1|Rmo2|J8dN-}U_(lC!+pMgfK?P0%~_TBA104RVq943z9S!jj>l}f zNciLT4|o?0-|(JGpnn_B*6yiuJo1P5r9Q(>g@CCy6V-2N1i}>)UQngSXmlI!oK}PN z@=&i^uQn_FRZ=k~}11<P5?z1a$Ph(JhyV#Jnx2>LU?e$Gw8KSbN<;(sNKw|IKf zEIr(IaV5lS6QA@5Qs9`4+HMehVB-w8b+n%EHghU-kDPTT+R>;D;54Uc6u6K`+}eL5 z4++c3wousRKE5*MZ>F92y$FjdN^)=O%*@1zBOsUbQ44#gq#ir!cqCsz)_GucW2ar) zBWUFa*@-8}{8p{wO#ap|$zVETRsIXvE84E?bEsiJQ_ESLVKCW&S6`g<H+?*-*x2?r zHnHi)KMjG5H{cV=5T1V9yKkKX`%OQFBGXp`NS+9+Rn#{ZuW|0PS}F9@jOQ<gpSBao z>aTk_aM2b!lxxIxSUtgtR^ORI9163OAgf_;YDO^9R{M!YAUPBr@3#CP(~Fp3v*j?- zm~u`9GH(XaOiYAm>0>j!^uW-!^%f|TKD`$F%l64j1pM91W*?kaHjL#w8IX+&9V)#9 z+(Kj9cY<SorNfhK>)S678!IR%MOpe0arYI>f~z-k`>sc3Hbw)lw2co^5IEpacMgJ~ ztVr2rIe)*cVb-*2lSQ~WDB@F;+M3{RYt&~)_uT$Uam$A9|4jec%BvR|3fH8-{{=x) z_pg}q-if2CI$4ZYC5Sykc#>M%-uvz&@b85NH@pFr%huhR_X-_%l=chgJ%<C!a|vz@ z{O8UVi2k<uQQ0<q@Xf}m0$ROYk%`qeeW-0DLqGOvo7`iO%iPecTw;<qPjYi6dXm^P zRXLaYGLX+tap4+{3j3`6mU_kj9fM<lu95FOI~`t}F}HAKbG9P-gK2Hf9no0aXu)64 z$NK$X^s(k*`g!o_(+<Hq1}xxh#<To1QGIwbu7;zJnQpo`J44H>gO`)nrRcIV-TBW3 zG4=JsG)J<lI@9!5>gkhL$~joEpG!-R-84s^aUbCm{S{JNxXRfsZFgVG@rTr%D|nt1 z?twKNud$~xVE3S?-xM2qw!N6k&ehXs+zF@6M2HJ2yaXQi=H@07DKAzMMnN?*RB~Qk zzK)1&&CSt<2-K5LqwAFejGP$_F?89sXeuxFh>c5aa?3s0VxtL60nygtaYp<X2WiOg zEaLS6@<ji|pZO*tsE0c5H#76JhvE+TU>1Qj&M@nN;5hU5uY#xB595$DO?wY9ht*i) z963kjPN34Nm~<a^JhjpzGfkAYc<CHL(8G<yz4185Y7Et&j)bFt^+ex$T1^F3Cu`?> zZ9v4}+(+7~m3y)vr#6|rQB^kU1>v}u(HgAD`Nm@+v(z+o=wexPe$7oe;;4g+T9~vk zdj=iWk6-j9o~=R1(l3<~DR*7C=oOwI62wvzJZELBhZE_iW@aGl8OYl(*o<0bql}(L zpzYDA>1ju|r_I5*6ami`j`&~{MkAgLfT13tKtyM83RO~Kofxg04UL5^kW%%kH%Jxd z>2v`!rK*9D$G{zaI(cYKl+5Qk<zY1L79<Qrt2%?Fe9V27zVWTrz%5?i8%Bu!8ngV< z{rb8Wk<z=5q%2(J>WvlOqFNuoz{)XBEnxr26((8`P|z5qw`<F84RphVB7AhUj^H;Y zTqJ@#g{v46|B`zhn%~pswoc1|v5rXpA<pd5k*Bd3B0+A-P8JTb=an)ct?o|b`uFN0 zAtT>C$Y_fgFxheum4Bn7Jp;5Y@w|>-8#0`!NeO3SY!geBz#KFoz#?7yTtVX9^_mPX zYaDQq55jAHP#J1yM-PlTNE|a3`9sWyJLd%D-39l}*c^X#z=x%WBiWRD)8$f&9#VCs zc!#uRZPhi|7I4vpmcBL#C8Cjwc)LCMMkAP!8?_O*WPQZR##vq65bJzUN_{m8%`}!Y zwjQpLXc$gG&z-Lgv^KTq(X2^|e+XhK8E^3NiW>UBW)FAy1(rM?T=Fm+0O4BRwF@TF z<OQO%hPhXG2sUe+F9Ai`IeCyfA_=*D4OK^ynT1<>ne5ItB}iisYK=yF*w_y<f)Re` zD--9A5TyrmV2-Bu?&s^D;=`@=gV<VG2ALunMrgWygrU5lx*~=xR|#8#`{Fpx7Gt19 z`w0`@73%meHib91(u=oW?2;|Iq<WsT4Uja<>fy<rZ;z3!6ho4J1Ev<W1X+G8q<~XS z<yh4_<n-*&uw#38xmC2xuALPj%L~?Mj)HOFY<VgXLr>Hv4?RvwXjB|;63dD;aeGt( zbDHZv*Q((X<NHbA2jlVB+aMfUWfg6Yonj=9LK>T-!~DHW-uIM+g-4A6@|FpT4o!z; zq$NjS0YT`j*To-xbvT5BXa#>das`X#3L6m+@;Zg<10pr;T3ax+fRL9&LPSVM(m3S^ zghgPO#6}FK7oA-kfZUQ<H<TUC42V$}{UkOlC)w8LF+F4G@<;N~pQhk?Lx8Bbco0}I z+^=6k(TGvM2G~`lS^h=ADfoxr;{^6r<$Zi*Wg~)EZaIJ=&@X(?`7~yF!)7=CISun( zsXyc7BuB|z=k~)gn0fG310>lt*W8s+23P{w*f>8z{*!S!3#yHCzrM|LHE3nIt9wZ7 zFZiXaeD8ccsglPBdK-aW)|W7y3+8p2_xlB%jE)OQ3$C&bu(lL{4VJk-fBwLt{c3Z% z+Wn!E9j=5o`=YZ!+nVR=RtCTOR{}ASyoeZ~Gf(d^VY0^ob0C_$!lduYMKp&S9o`rM zhvvN=KEj(ib#!RWu^D~H<&#EGp)Kq{LvO&a=_e*}CKG4|Mb<wO0_wt2R6=tO>k?z+ z#)sraW12%X-1-t6Dnt;!{f-*IoOkafn7K`_8K_{H-i^dZfAaRUqGtzmsd`6XPTPu- zyO0ji(aG{-qnoGaLPx8Cb&{?!0bq}2G5-#cuBn6a$Qi=;s+FWhH50hkFuE@im?Ij? z<R88P?cfP|@ddCV|A!63P5n6Md~*hPOGw0nd^30DEpo4^Z+%B2*h2rfmNe!EIV7hE zNOsF)u&1mt|46A1XMD6#ofRt^6B2lQAUQh&tBY1$Ollh!Yl%ZB#FR1O{&ihotML<L zi$aFFvhmm1kebTOZHd)*XMRU2K`j76SCY7E(WYCUcm7c@{{=#Zsg*A|>bQPi67?sj zA~Moou7)nGriO)vh9(&jaWE;Qe|JsTO*`CQetDJmoNS6e5t^gVoD`1PI5zG$`^#!O z6wG#*boQ*w9o@*?5ZtzT0_N?PGFSNQ8ww$_z+YKfdvuxhw_t+0(HMJO;r6WqG@i;H z1`Ur^<^ALZG2#?%dy15l6u;Y1rDx^^qzy1RCxlT~xG@J!Y+wpF9wsIgNt%5s7BVYp z?U6P+oU0Be<c{@&M_1I+8iQP?9T*)o><`By|M=1LZs><8GA<U^3$y!TyxK_))xa=8 z7Z(z+Y~bab%pZ$r8|8#Q^fC>A^6l!H-8V3IT$S$H9!$m%(y<bjQdfrdrhgpw8y?rf z+jT0xXBTn!8e*)y_87YxQCw0IT5CMcV!JLvA(t86YwI|klKYnna}M9@Lc|d`Ssnr5 zIBD87YruFSw-AZnw1aF~mmu7!*zk!Zv^?y>sC^K)Hvks$w=b*lMcsplUy`;JU2%m~ zs~%DwdA14LPz;$^QCV5u&!3+NME)Vc2$QFd#4!qXQznfCVqn%mE+tjuJkz(vcXB^8 zy~*-M9@CjMUI=qJN1&i59X&Xj1Sc7W8|llyQr=%`j-{PQ8M_)0FAG?8b`<@*ly)y{ zCD!2Q;YqTw{cN4}^b?Ou%_n|2IuHdG3$p(we<?Tcsy)Wzdvrqqk`C?|ozD>>h3#NC zx`l|uxnA6?#JmMJ3ih-4mbKfuy6flz88Y47dCC0Xzt`Uiyskd`u%2Y87q@B8D!`eR z({s?3G~?ybe7qzaesQ8ZIOLAlM`WF8ZFlyEwsWo9u+}y_b)o#33W6sdsJkj9o6B*F z$8z8`VM>K{wyBVIh8L^!=dNv7L(L9J8(%OiD`Roelq%swYDa3rI41MYl_oe=QOTrb z2Td{4wRlpV2BKAg`|*2j_VU6bf(#8gw(%bhD@yO#N2oU;gX|GBpiY=zl6+@D7M0HH z;2ufLaA$I|(Ao9{216C#ZI6AdWvT%&^8L2YUhHV;F1Q)dl_mIXcMM}R_6u#e1C5t9 zD=_g*D>~uUW+~&j&$M|kx$$c>p=>Ba<A)J$dlbOHV0C_~#fmpnCDun=lLAZsf#Grp z5Vq^S@(G8fX~{~QK)8H^)<vyh9oYha!Gro~iXX1inV~!H3wdGQh6DFq{sZ%#>itpP zjYUbhj+7^R;XNu;xRj)^!h(3B@pepR?1J@CT%7Qv*z7vZe3bFZs}WY?S5=}B<lmVx zY;0c*7Mr$PcJgLV{lNPlW)rb&P*alN>*IV#E@WnI-pYUSX?KtZ^`b>$WoTgFXGKK? z5EL4W0&CTXJh{<-V9RQ|;7B-sLvCMA)jjv16-6+)Bjpm_baHLG9WJpR&zvF*04v3_ z#teKJcGA1$yY?WqQmgr4yc}L-eex9vyX=DnF9Iw9UP=ZaQ}`p@K#Is5Q<1r?ZHFEF z{GKa}@Q2uq#Mzscy3p?uZP(kwA_wMGq#x{RJq#jKyVq)RMW9io2{VRrU^(A9)jQ!8 z6(QE@-x>L$8so+!Ml#}0p+Ve>|DMnhQVhU2t;k`hL*WH`&N87ua6(fp>(0!zu_LFr zEj!!N+2M%!4F=N{UZ|s17FI}1&V)oe&zt)Qw4{&<U<Th<#|U404pQ;w0pc#(BOFF8 zzTM0x9SzDo5~)PG3DGw(=3n1i*tFz?lP4h$vvs$O+<#y!ls(kjYoq2OjH6zvNjUJ6 z5#ggo+~JIP6Gt(+I&iF5(U{|pN|`MWZ66lq;<VE`Qd;R7&U`4~mEN2?$z>W&@uuW( z!ai68#cW^pEM$xGjW}^%8ZTH^<<MZXMx_pSugrUgo+9DsgZcjJ*Sd_>ZMBhDn12RU z?RX0ha?`y|u#ONQRFy7yf|@=i6b}KC4hAnag*(q#4V=a+bDr!^X1}ZN95|l6i7Rny z^9E7^sSUCr_w7Zfws^F-ude<{H{55R=Hy#V@Z)U0YBR7EQO_o?CD0)^uq-ByX_T#j z$F7KKMQ$ekCZi!~^K61J1d1aOHpT|CSb~Ye`&Cfnq3&T>NIZ#q5<wC}-nv2jr}u9f zD>5pF`*O%BKdwpJF<bR0<D(r@lJO%~uDv&(GT0}GiiVBPu%=iN7#>OCoZPfwUQQYj zoy>nBvYh^h$Z|*TDgVNA_#-CG+9NZIqhlbmwN-vn?SYcFjZ;rDm}2CgW;EUvj!JmU zhAM<R*Wi~+8KoG_`?hn~FAOSIRBq?@;8nBk5MNJ5-7KNWhxt7i6pOA<nA4{AkyO6G z*_AnQu1l^-Mf!AAeH#@O472b$5?iMR2F<gkMVKB1!s^Z?2F?kcI!8@kFP1h2(gI;# zU&t<`k@!+`j}eI9ywsuKRdsk!<gmJ>M-QicpZ<qqCR@fX7M=B`M_iWU_d5qAB}e~u zQGd^b@z-yv=~By$$^z}9Jxm+<hn?*2uRn*{i(xPk!Mt8&q9bJBRL!L7z^J9BcMapk z#>VLB+H=4_3S!<+ldWUWWY+8cMoO*4xaGqXX@Z*$xtjlcE}Z<4u8aPcKyVS(CLMRt z279;&;;6-0nHS)4eUIC7dI#JAH4ze)l~Dqgx`=26f>-7jM(NFNT&#NCXk>}V-EaND zfCYLleD$6~ZWk2mjn7Eil^-C`J_h0U<O0mzU`0Mld@LvK6#W9suKq2Dw+Il4BAGGE zr8K*Gk2S5U+{P?yK04ps$P&i%IL&@{I$Zpfmx62(>APVEZTt+dd}4+JB0cjinwrF0 zV<8iWVyCb@O10W|$(!ujfKn4yMTf&^wG4e2GOAx~AxgYeKR7}nh{j5vk=L}*ZyRT1 zyE+B;Rj$#NN6FPz3bCM_AZvW|dSd?Fk^|*Lo&%I`3<3o<ml||ABAJFXt}TIOu4oDx zJpBZM(cvL=$m~ZP_e06COkOdz-!S~RuZOk}Y(Req<{LIN!EN_6Xmp~5O-ze}__q++ zun2=Ll+j_$hC#oKY!^nW!>i+_L8b3}cT1U^mXv&H=}TVvhhD&btJb9kYWn#v<Zrw8 z4pkG40PHhP{EsYNHFTw(p`y7Wxe9c{q;ErP0GcFwJ4xgdP9dH2UafOSK*PI+#yZZI zB1rJSPn&<hxw;Q<AyZRR0iWI=^vUSHe=VY)^mWmIGFjYa-n>BT<+AQGo`@&@ztcPZ zi<|;sa8E(-PDx40%OS|jzcdtul9y84a~J>p>Fv~QlJ;*=To}4x{JI0k?c%@C8l;Q= zC#B?N4X>Xd6yq}$4d=%vZTm{MllGsH(J(>|7Si<*-5ke}>g#W<^(YT4hK?!HPP{l< zZ!C#B?_&=Ontp}ESsXe>M07`JS-4?-dHX)vpPc-|8=>|UUeKMekT@F|-r(D|tSErz zkA+3nEPJEv%<*)43MKac;k`(j`u|I|q5YWmAAu`AySm<xHCRag507S`O7Z!U)!!DF z@b+J_O_`{nkQw>7&%5X8fV7z5NrZp7HedhkLc<S|?uuE=$NxKdy7~Y6_y*r2hWw|* zGofEN;SjGRO)A9ruOa{Kq8V;$Yb$E5hWcMxP_HE7|2qCa6@CI@aSR{)vsu1020604 zzkfk+x$pmWVTTHN6_Ahxz3%QmT!3mrrT>@u|H=}h%T9x-Nal+6lD|KjibiIb(0fuA zUsaiVH^5gdOAgyhskMkf3G(^yS5|ppqhH)_8aFN--26{1W?YER@lq$f?Ui7kT$_T& zQ+Z4{>FLUj!y;yJwK4?~L!cS{J|mzJ_B`U=aLJCby7Q@3T8P{)k*|g>AUips0W!8Q zm5tmpcDPjKYAX7bK4`JA)m@3-9s+)+bAukq`;t<|@S_>n#}rMddPyS{W?EDN-L{m! zzjh;URWEWfyqhg0;uS-Ea&~4QX;j5I%nu8LhP<wpR(i!O*qO>ehtezRc8=PHe_|i< zp%rcBoyE2o<pOgxlSPMz<2g#lhVcoaC6VA#P23f5)INq4MdQ%Q{|1JIlP9K-^!}7H z9^skB6>}h`r6qt#5l#~GGO2m!lM}yu3Y=19{Ft2OG)5@EoOP3jY^U~DzwDz!P$wrO z?2W~&6}LfnE?nbMhjW^zc)x%^6y8kF$FU_VW2!%_M2;#J7L8B@3c6<_=R8SzEQ`K~ zCpVp2hdIr)eifOO_E8B{WE5d|U}UK+i}KaJP&oVyejqcC=@HJmxPnaoCD;7yiuw?; zLYnXR+?h{!Bw{t15-%nc6C(t%r5FLiQJHvk9UaPU0J2&MHEVa*`!RrVG^Gr*b=DiJ zP=}MGXcpkX+}GJaOlXo$dAl~v+XtE8O5O$mYU;GG;nlZ#3>fz-hYns!^Phs;5#%Uf z&;|!rCZ@jxO>2UyCpNB4Hxt^!YLB=WRq~nmXFzQtDT8A*dT6|rhYywv0@4U)y|Yy& zrq+2sI|7`B^R|Dz>exCOhA;lyR2uRU`oa;O-Rxpw@sG40Ebeli8*taebUhvxH#5(} z$1$m=xBvXE>T$)qa=ACJ1xXrZJ%{y1*!Lu0a;7XW^9i?UUK8$y9Em``NAc#QDhAJf z*siMZ0vA4KGUc~%1a)nDC=QKUQ;)|xrzr8qk9UV0bh268J+n?Yc2l~FT2B6kXG*TW zHPMr>p8X#W5fTt+7#XudFl$xZN$nC+-m!D8!JxEq7Hh$Mq)cn=Y`BTue%PX5UDU9c zN~d1K`LcCrb`0}P?vL<>3kP!|A*Xuh!}WC+&*SA(045Bo`umj(?f^0V!=&);vjr9{ zhEfA}eOj5s2q;Ext6<5^w29CDmlC)c#Y0;SeucX{yrIK~T9iXQ21?8Lc1X7x77R5- z%{~!RzjcOWXMay<^bZ%tx_szqH;#{&cswHoJE-CY;;4R()&{!u(c1WY7MG_Hlq=hQ zB)d%3WcP3>iG$bYpBi}~CWt~sKu9GAY10FYjn*3xiN{~6iN=mELQ5MN2RSHRWy+JG zj8LC$_9P#*yXcuR47txlP(VWS;0Bh=MU}qlTH(M2V38?LZ=}-Y{nf=8oei%#ahQ`B z#3ykg=~*l^cgnk`zQG@$9c{Me8=IVfcpWY22}}9A;Z;oAlH-PyXOFLJd0I_cc3Zw< zYetSOv*-ML%Gve|5Fw9Sa!YMg=b85?OOLHGh_!$-nx)pFvHpeV5=3#<<V^kaeHiMk zA{3mdE`|tkd0|ftRat4!974V8^OD72e1e#H^H@rqgJu&|14NtZx^pZ0ar-m6xP~!V zs6`^#bZn-w8>+B4%2K97;yiy?3~OhbJTM!8SB57QLN1*Uw;DjmcgLb2pw<oH+tmd> zT280fad7f5v_AYf_w?wb#M@fm25g?nzttop<k#%WEMUMlM|Q2~3PPt8!7#&hxfMO{ z!aZ50c8p9kOPsFL(IY!&2}`{)oO|s;K^?p0s^Tz3vVm^ge+qhoBS{l_Q`XzV<ncWg zSJ*{nZ<WDLYgq(OURSlQk)yQv*(C-XKho0L|4Nj3QOwmw$phbth$1mJbIY)>s1}9P z!^4I(jr-3`hAR?6<W9vWPL!@=yx^6j(=Lu);sMTr@zvJH3Meihjf<HSgE}w$SUS&V zD>o|6IVhBVK={UDucnLuZIO{w?#3Uo@btnP#|a5FdYjA8Eu6_()y;`Gc^0MX$xNC1 zoC3cVOtI^%UkHyA<B@Wo2n7+j8bcCGoCJzYy9s~iY{Mxi6!X~}!c?-?SMPs^9lyCd zwKJvH#JvtEJh%9Xyv6Ppo-&$$h3IGWtuXav2N*!ep4R-bd28gt#3>L#l3xJw6Bo2_ z5Y%Oy01%Ys7hfT|r!eo`OPTQqO3LhH>G_?q2MUrIULomroHUb1EwRS7`e`yj8H>^8 zqnZB(TJb9N6`&zQ^Kwh<EpAWjoa=zLWBjSwP^-!)1j<dj+e*HXdUvD{`Zd0?EDXDu zUn48CsI8j6cOmBvtt!PbpHy~#Aza~oV1sOt75dnQg~O_|dU~&jPz#GrTzj-aqdu$a zv$A9BH2wbLkS>@o&t$PY5{340nd2Ujx|eCJHB9Ht>bCD^9Bf&hk#0bCNpZ+mWV-aj z0d*O-4pf|0qHnFJoM}Xyy%Vh!Q^hl139r|ju&(IINfQ9~v^Sof$mWraP;lJ}rhI$u zSSM+?E%0Q|83T)A_<wSU+>kF`UtS4T?(cIZjBc+Brxt#;Rl%gtQO!7{A2epvu@9kO zp^3l7sDbZSQ5z_kn3z5>pJdr{NOs`)xz(1;9jKQVv(_6oXxr9Y81IH`!SI<cfiSRB zm+5!@$Q{nCgxGi%K}Chx`SY-(Wd5R%Se)*y2YHxz-lpd25EEPhtpz?F_R(#MjpNG{ zV_;<&oMyEVXCQveruN`3iq)RxL5Pyrz^G&t$QhhikgSK*Sv}q=?}yX_p4GV3MDhvN z=(M04)B3e;(N(fV!fB!F+8U4+#mFp5YhBM(4OJOT$RQWry(9IV)64}|#NB;k2#<%3 zQnv9uwwTK$iMt`k*-SML%ZA>d15pkat`=YH+woGFQNA?XMbNJ<#-5z}3u>CO;}`>p zSFir6VW&AbJZ#+Ke@0fvNkK}QOf>q=+3EkV_SRu-bxYfLTPT!Lpm-rjaVSo3Z7Hq= zTBNuJ3GQATiWT=zq(F<i6Wpb^I|SDN!THkXob#UNeDZ$R?{|Isk6a<i-m}*1#jKgR z@0l&8!aml6t^oo{dqT>Hch>`Yc+w(vVT5FDv>GUwasFfC>Im&`{qJo0eC{jl*m109 zyY^UzshC4t4Y;6#Bt0S&`nRVOb052-!>#Ne1&f4s86H}0|C!}Kwe~0~G4C*jJ2(TC zlD#PL7ldJdHWYqBVagyMp2HxoISNKTzH4r#QYwCO7<P&`=jqaGcVa9Heq~>R>jjDs z6N;W1pHv-2@bYm1xgrRN8G7~#XFtq~GprcZ<H4pfSh$3SkIhV3t3|B1oq2f973`}R z1wIYhYLCz-yufSkwhK8Tlo+)GdHi0%lQsiku~Rs_43xBzrkS@I{;;+0^Kd*vaCrV( z1lj2UX*B=x4RF8L{75mw<nWR?;WW24U#oihN-x)KUV3&ZnXEv#6Fx~y(q~d#(R}%O z-m|5uu?HwhAHfecVNitWr`EzN@rRt8C*T$qBAFLgYK>N}qm^Iv_(PaHhoeaKn1mI6 zIIrF$sZ+qNAf+$B3ijcfF8aj54(TbCl@Kh`^DXb`R(3ZQs1jClaK6r8dDsZi94@Ma zq@<C~u-RWCxb<=hUsD^U5i>eoul5W-d>p;2HiT16-UyOt86*G8_tScxv#$l6;_q94 zvt}_UC`2PLBUksr!Uo}_<b48-iwTc1-`aeYTRU184=ZOT`HSem75mDml*UwN!*mbs z@OWS3q2Y;*x85O%)~pcP{S?uZBxJ+-+^2GDD>2CV;wDkjXG!$paFK5%Fn)4tX!ss_ z1ohU>v$$wUS7K1g#~<gm=O<%nS!aH)Lq{AgzkGBa89oU}T5J^kWcANDEk^GKL1}<o zikH{dN+^O~hDA%+S|9U!-t*iv6@@p|^+E&kp7Q+5k1u(rrIqskK6E)fJ^g<lx|o`p zM*Y7JT?Pgy|9^)oe@xduj=u+d8>I0G2?9m~dH<(q?cbpjb%*6g`dq0~G9*g!kE31~ z=`;QFeaznizFr<ic6Q%??9l)Gn&fZM;@{;<1Wy(y$V6@keEZ8*AYUBZN&mM2UyRiU zb#+)MYueufR2_mRxb={Of<>NPgyHAocq<oQ^a@*Q>W1L35=v_7oRGiI`u{_W_+N@P zDN82=yFJw2?nWZ`f15B-yzdik>({^g_5iZLRZ1s-J^=4`l9&q|^t2W-Oex`&zPA`h z<U6F~iiMV}(AzEjieLTqqnX-K#$J~Ll<*E;&meM;LUr`J?vwtxp@&V|5cDaV;3A(v z!Heb_?fZiev6Y+U8;a$dCB)@Dv`NZm`ZvT^YW~ELHFH2}*LkSuDn9Aql)4bzy~z3D z4qjAbr<2A>xpU4&eM&c~hV1KtcK5h4GB^>tp@Gz5x9ZV*&X~ecnhiG_w)`B17<@zM zWhsAZLE+x_!pf*?7yLziQa7@pYwM=7O4CcxTeX(d0~hCIkI>y7m6jl77w&Hr8yNIY z5#aGd<p^(rNx2SO_2zqefO2rfN{qDTw_V@aZKqE~tFBOOS;?e~a>PS&KIn2!L1?bT zs`$ozJ;T{;#3zalBPV~){;CEvs?(4$X;tf3woi*?t+Y>Z9~g;jF8P!XXdF>G_cOGY z@B`A#*l-lA&d^1(DIwnBs?RICJnTuC+Emp1g7?J1Su;xYV!seHxBwOh6CaJeqR<k) z3^?Md9gi-s)9ptG^ki{;JU6c99`^^dVOZo!N4I#mPHmplCh3DRIsHO18#DJ;MrP6B z1ZhhT@xjRw?E?c71t9??RvHr*4RRVMH%U`=b9_Nel|=aDD{`RsbWep`PM74nCVb&S zEOK^go_M%dWI3mDz}T&~Uwf-NMnAU0cuFgZ%3|cPez~4w({Z(8Hn!7g$Zo}mkeSPy zj9s=4EEw|H;Y85$E@)WWez32y<K`LTHK{ZW{^cWebVgB_lRoL|9;f3d9PPE<Hli$L zsM=^Pu&3NrxgB+KX<pY?RzEk*Bdra8Nn!PV6+Q=vJ8iE2sExtmb8%FMNYqlu6wFAo zX-Tpb_7pNMirYA3?fIEUOMP1Jr2R=^!+#_di-3HlwE;!4%7ejiT%y#Ge69wi>FVN5 z|8>!g0ZvN{L*gLqMiWl4**TgIbdAvhPQ2!ALN4@Xc*PFuwV*vIJl|x+-9f0(<?u&Q z3s#y2s&OSThZrl_wCMcyFJ^;|ivu#j$uHwP-!7}P2BS+h4hWypE?m1V;PKRr*UhSS z4~xwA6&B>Rboea}MVEz|&_`q{nH7LW?ga&EuA-a98K|~m+|czE1&8Kz(HU*c+x&0@ zFmDn&-dXqY@>1~2xO?L(HL@FWY7M4xA$<pJ+x)p5yOk=o#rK>qgxJ^ucCfXoG!9@n zrh7B`K4>AHulmMqO#5c!onw{DZHE}Zy&`hXYQ!ZitF&8##-l^CfsL8Vm^&LAEj(UL zqDgCUkxuoOxCy+GL9T-!u)#xx;9hiv{pM#EN>L^2aFj;SqnNN1g-o#|rt+kee#2^e z^O1K&RdgoT7Z0qJ7U;g0J3?gkXBM8LwWoK!bwSTOAC{d7Sl2=9TfloOoV7+P5&%wS z_JBxW;C}r=y&K+=DZmX8FhnLY`*nyt7=v$lKzBUHeh<GV&sbZt+>-gJDNmK4?n$@| zJ!r|urtffB>an2GK5}|ivl=eEFwA-@FbO-fD!eM+cd+?qiFd&J)x61~d7p1z8(j89 z4QUnAJBl$Y!p_RDEXc@1mR1=`!THt7<AomQA^V=^I@EoRYtxsAo^Hg=7ZU-cO4nHj z^?jxvORKUHb1x3-K#!SxYTiwbB=oekwP-v<PG3}?%S#qtO^TJnz+ocvr=3tSxx7OA zPrKf)dqy6q;*l*MQvj5LI3DH^G0snEYzG^3mh?Z#4HhpOs=noHgqmYKU)~hc6KIdO z6;*7H!O<+w2~Bk&ezIPvRc3;#mMuK;NpZI4_V$XLR^*hnJczRVzSW*ou{3<@=F9xU zr1H6n=ZfNe({e~-ivt5w$yV%}PeKp<4-}`csT)cI|LOW=TgFR(@4{Ax2o4+dsHwp; z&zE7~6?mp4po3>|`bS+AAcfLf4_>0#1usM(<RvDH9@w$ZugIfw8!vAJe%|5hn~{gq z*sfG&%cZ6t26if#97gPPdXjY5-PMiNfL36K!G?(L=|bNxFWB|H_Ic+-7I;jRB_#gj zj{KZccL!W6TzZtg&fm&py0JTQ;crhP?34{Inmo<R8}NA(u9#<>>z#dyUF2|JF{#4Q z=#IkXBIV&cjq0a1Y8b1DI816stMt)IZ*Y)(wWc=fE=Ah>dm$8(^SGi~_5R|(^uZzl z2~Pm`^uFo&V|0D<Sq%^&K!eS+lw>46T|4a5rEAnB^)wcx=zfEr)m6Ct?6r^qgRnOh zqFb=sd}SpHi>!Egq`UpYS|u#*;LzW&?&WWxv9^uDtj(sDVmxSW-ync8Q2vGqn|z_m zlUdt+W%y}l{bLxC+;NX4w9DR1?DFta*aewdUM_nIJZQ7!7zRE8@Mhb1#DnrK@f`G| zm%%eV+P-cfUcl5o$0J(K*6%G|Lh{qj4)1tUc))ji;Z6F7JsY#NK=#47npE)`-)lkk zkJYCL<ssTC*Bko$nwEaJd^9e<J+JE^X3vj$|GPBa)2*a5_iG{7xHXG2T6Vds%T0}$ zT?Nw%Rs=rrc5u!Pt)ypd`B{(=Y32<tW;WZ>JDxPm8Ru7A6iPktro)IK=E!*p-&idX z>r$t6Z7>+>H7`_QO1$ovcpRzSY|ggSJBG8onlRVVxgy<7u3YguKcHfWvh21Qx<-2I zeW+xAbZC&|H5krr+x5y5rFMZb9NL`l)jRWKXODdx{6K+Ya&?wC3|<(S_jOA{iDIN5 zsgLV?8*qJE+*I4L*Pg76wePtnxx~NSe>q!wVpl||TO9<}ec)w}=Q%F69i$pF-Ci>f zuaA+=9Bjo%j=b_ZTcYp+i487vI?k70^+5QzI%OyGaDL**np}|M+e6+UqxMg?n>>8? zt7(-Odlob(zcQJl0x~+?qfa+-4}(U@H`Cm#bg|YC>%!B&LGa^-qWNzoe<B`}i=phS z@EwAN^6*g=?gSl;7s?bE@(g=?eo{0}4&FzLX3?5Zj0`>Nn)>LKFnppLZ>uR){qV|+ zt-t*jyWvRULDQWBuw>acV&8}1hAql^HUhDc=I&J^W~NBNoLJKGeF=Ty9^H<u(E-hG z)c$gd=!4!K?dHCR#T3cc!d(t>toV=BoK&-wuFyAy%4>Kr?~aN_9_vgOO?7xRS<*=l zJ>%*bp_&``es$(EwSTnhs#_7XVb|ktl1`*)Ej?RS{V21jO95-ovB+IIo$ph}hRJ<C z_jM14sioj>Ftr1Yjo}U&aZ8Q)^LO39^~6e=4rW6koY4^?M-{NU;>*DS+WwJ*l5V-v z>EgUzPhrGJ#39sHqj^bEqC`hsJ@1bfNh3%&`LVs`09hN+l+c<BaC1AQHEL#eAYO*a ze@wTvm7Wwd>nVWV*1R8w0h!x!Zo<E(rF`;^!0As*@pvGQI7-2MDQL{b@Md|_?!+D@ zMQ_xzvC(!w;1cN2aiG5%{0)M0Vlg{GcpE9E;pI2HnnE4L+Yn<vkg+f^Pa|stw&cZE z=D~mIRN}fvC>*?D(E2OOqxA6w=b$b}Mr*it@F9ztnhg`h4&wB81gDd$eGeC#XgXHC z^U9-z2C?L=L7#6XJ*E&**qZbQ=y4<NtGKrYBN~u4ds>}3&_^3B>35#on3<l5PgO+L zMe~L>1{1|j!`pqDu|LDrD^Cm1`9$C>uJjiZII|nH?(k*y5)<cp35p#Ob%PpMrNbs} zlbLW=B_emt@Kr0S16R(K-6z)I^@TO4+2*_FN}e1$KYQw|_h-u)NEDK}0!TI^10{4V zs{$q8>#@;MqzEVM`o!p|KRQ`QK7BkNrYEGsMinHvQPrrKya?o`KGh>4qJ*9MOTlgj zauhK4vF$cQTtDbtN?&Xx+JWQ*U0Ow41YJcF`;zTX+%Afs@hOBM=lW2?@sbXfzSIb5 z<-x+55}Hyv|Fp~-qT25C$g3BYqBkf|!3C%Ux%BjDn-2h(c~2y-IvgdezyNGZTfR4A zWp;3MGqOaqx4p-ePO~L224*)zFQt-Bk)ZjMulM%W4Sr@<C%!0`zr0>JhG4@8#+vjt zG?-n=5gU;U9xhHRk9N2E*9}&P<CLTZXFs+-21}t(_3fDGIAHy3o4R=$mFZVz&R>>B zld(FeXa$Q)^64I4`z-jv)xSr<U@BX3A$euqwtPGBedh7#J6khfWEAWYP<W9pUPyj3 z(|C0qNhNZ`mtc`%*mOBhShT3xcR6n~LWj!|{;f}5Q@A)EjJqnl;F6wsS8UsiQ*@_) zRSz}*`<--p?&oGVU^8cXE*IsgM)9D&B%f<PS>JS`&v%Xv1Qs%hZPHQ;VIv;vPb(-< zEVPXd+nFui6Pl$rlf)z{cC@)(shMVSr${q~*=H?gfrUGGJ6aiNQ{vr{1}Lq{;dNrn z1^GT)vQEC?Vn=;jzf)uvUV;Jbdp)gl5LS+m9ta#32W=Ua7xOIzq2~B0w|h}M42!FJ zS-;mqR@F^EK|+rk4b$o^iPOCMIU=v)1j0cv<cHqpL^D9)<BR=ydlx$XR!Z$4z7`7a z3c(8lac^q^ZoW|rx6ecI83kQL4m4VA-VaNyV%%hu>t`$B8!$hijC4`=uNMW3!-O3f zzc~;C`rKXt$Bms>x;=eHazb}~N>M+K)L$HN!-lf;U);XWK7q~=T1=|x=mg-_CimfP zb+HIO*U$N7Yr!<ko-1PV27mqLsM6DmHzg}=M(cyWu{b^37x>J(sH&%&#+IteT)*<w z@V*VjqK`0#grFZfebD_ZYt{d%X?W=|pK#b$M3cgm)of!U!NY!<tX=bS*C8xrue<Bc zHai9u>Sx+n?DyV8lAJp2p)YD;wDpzKELM$ytvrEegWuqu2B<dx{?BO^JgmZCG)*i5 zN|7*JSAg0LT__l}yK4pX5pe~H8@qeT9i(VzY4mWSUlOza3Q&>AiXOg`o;tqhBc(tl zf+Pv-Ix3an#>UIM*5-HY4lMAqvHN2Gs>Fj2&EfWi1j7%>P5x$a#(OZOF+B^+3RBoz zOt-THD^2qv<c(m<oi&j}<HbhASFL(4b_!soncm<hJ%YJoIzhperetMm1{*@k#Q5I^ z-7no-9(#3Q`T9nSLakN^2^Al8ZS8u$J@9=tOD!8}m;e2mpEYnLK+<uOQ|ac1!}84M zrFmTiNe$Al5`!s?52LseX1R#h!{tNq8kucGg5iU&lYFc@`M6)$=D;wgqJ^mZeC~`W zUXesn-V|7IQqAx>O-Dbj5vg2#NqKvvco93CU21|0*p>p_*`M-ycU$@HZe%eW(Jm_E z2;t(Y{D~b;Dc|jw3o8cfD1Y8{8|!EaxwODRs|go587Oo1U3PF;j;T(y00TLnG@o#> z&2$no`}q=80>d?1j+}j5e`o&w{?Z@C9|J3lhKI`U^>kZT`H%7#CE;TSK2d~ghzZuq z%CKO1e3~)95!@J@j;NlLI7q>M!A{x49$L!R0{N|{As=UfYaWmXJa<|Ni=N&>U#8%V z?5f0cvp#^|nmE41Rap%T3Bo5y6Nd$UY!_x*YENglh|wnL?7T4w0cSZh-WeTP_t@~Y zIza$f2G#an)1Rko#AMtRQLM?a6<WD6UY&RwFUfevh2gHwXY}q8pTdoo`gg{Q`3t9x z2YhuLPjKj#6suB+4tb3wdT=%PbU5v?%_i3#cN@<9<+Fc@8ju>E5GoT~OgV0yuH&rB zS63bDRlwTV)NdI90dO40X|(D_Wq0N__l>xe7t_D&{Z98ExtYVXWe32*&`4Q5q|0=K zPmFt(YM0Q*?n5ruy%auj@AE5t+LBOR6l4_9i_{;)lIXd{ulL66$|t9lnzJY=`Q9d! zc-clPKdhJJ-*iltw+Pf}h~^m}Tife-I|rHUzu&a2tfmXk_qC(^+3f19+SmJay;=V* zhA*iLJ`!!F@5T}q+Pkg%k313A+$+>vRs)p*58gw!05OWbmF^ur-9;5unkWVgHHx*A z@=x*VpBySmq8fsqUl1N4_s}P`OD@Fgcj!<=<_*V>wxY*e;yR-N*)MFzY#ut94_W`k z1>hBf=yk_r8-G-vwrhaBn!oVr|N3dY?jfa=ljrPqI5uv*zCJw)BB2y`C%-(9T3mWE zc9YPFOx_2$cE4QN@qZ`ee$>*t%g*oHPvMQPEX;A0O>^)9@#xk=x*+0$U+)LM4hl;v zMS_xt!2|rOh&ju8HkeH4lVS!iZe@4G&DRk>1u;TD2hORk-Xazf<Y46xnzyiW?C4rV z;d4H_$(+ntd**nUTQntWDI?IuV-wN$yyI|HUiH}Hf?O<&ghZ|@OwCO~i5^^~w-UU4 zy;{(8TC-*O$u76<DI&g{)+0SB^i1Zpbp-l6Cgx9$O4;$($S`JL><_79`XyJM$Xkb9 zLtfkY-iGLh&ih;vmbwW+)sD8~wvqAR$tCgdr}y1&E2%SY(CTia;u47z=Vpg$$W3;} z2*F}HlCY}e$MhR7n(l7xa{OzeMwnK<Pd%!C!mEGlZLMj|T9r)n*juP*Ygv)c3j^Ds zM{r3Z{OP+pj}cbx>d$VSXzTNpSj*oZEinD~G3md;93BGdeMKJ_Vc0(F^KqTxev8<) z(#DD;E|K;E&}=LqH(OZ>;dHFTxT+AEQ>O{K3E%lzpK?Q_cu-m92{5&hdT@>b`=DOV zm3>Y#=VJB0j$dqe4bwwK_Y^00la#_=H`1B6Z`xqPqQ~wq_!G+30=AF*C(ZRtL@4mb zQ9HVxYII~*R;2F^OTE#1AgL#wpE}Ki`-&bLoZ^eEt`4>-ZZ#Tc6sdpytO)kGPfCyS z+VKXwy`kJS+a#CvY6TH!OpopGciYn>&cD}fJ*ML1jaLqjvKQ>>J0T5E{;3iG5OKR` zm>88yd)lHeHBKJ;XFFYbzeAsAVVE);t`k)Z$xP9(Jpkh3{-N%acpv&1r$8BFPP*nb z8y)d&o06nGE_7ffv@3iI0jw`5*JuJb;n=ah^l1Q(>6i+0e&<*i`|s(UqQ#M^{zrLc zU5GSn^E!`J3xHS40G)6cr_ECWB65(&cCzE%vJ*LIz1tgAp&@erHE}Q)>m|*X+>H-K z%8s+TB6kbfgPPnQ)kjUvp|^CVxoa(@UlzumcG72P#}za?v0vpc%4#S7p0}uEh@hDS zCZPz0r%=YtHAcnHst+Ptv(jAFpeN&QqG?u9E)O@*v@LM+{ou=bYEb97Zi>E#tauf! z2tlz9TM!ksLlu6rFeS3syOVnq!CknHnvkEdGR_CPr~MIVT)f;-f)A|cnJeZS{h*=u z&KRm&4WtK>AL-uA#)>6ff*+Q=ou`hrilK+phb^UC%pPuQ<_2D}<rFex!SHn8w{_54 zkh&^YtevjMm%GWzYcO$x64}bz1le9iS=1S@rm^k%5hTUgaHxi2Bj8~%;;vg-D}6Ow zKXBlw?3e3y<=Jog(r;m8X8BL`gtKgTR6c1%C%ha3z)SEwds+D~(&7Ri-o_=PSU$Yh z^?gSxaapz}!6ZH3Pqmu|$=@bH?V^2|tSzBZ-*qy~K`-s*<+rE$((In<`EEtZ5>i)^ zYC}IE`DePj=8d0&*RBm$M8DL4W~jrW?Lo>XqNji!VEM?IbY=M$@2-Qou5SFFqbk%~ z;v1WrK*M&oKMO=kluta)4E{j}?P>kqY;t3K^uGR9Rs=*TXLc~`7wKnKOpc#6&PL9V ztTi_bEHnc*d|Yy$)dq<GndgDgX;Ql}II~Tsio4^$(2HPLD&DU-1!1&i@3^T3Iqa<x zsv}L(^*H=zh?CasqMX}pisym>DKTz`Dht-<$kr$Vt(M<Q#@oRnvVHbRkW9cOS~S%@ zSbcysOiRGn&3YcaX*8yzbH+eN(27a0Dv9R6e&LXJLaX^u+CF;zo}StFfjS=q<DhT- zzItic4`>(;Pw|_+)Yht7f0}r=Df!uK$N*f2evtosw#5RcxX;zzF;Bymp&ype*B<oq z)@G-$={Ik9%6hw<wNPJMv39SOEQ|`7=d4Ur>zS#wWD<hYbFeZ*ZX2*iOp$(dv8AsS ziEtO#Dz-NHuVkK{O|M@i<TQuDgK|i3bh~r6U{!OKYWD>SxJ4pg!uRB-UNDY@R#+X| zeCNEpNOA&&fAcwNhzsF31>ToWDI>d^E_tj?eyGX-72sA}^}4SX{D!z7L*VCDIU<CA z$waSgI70fGbphfYSi9^2nW_NvMZvqYG~^Bw$;p5fy{F{C{E$UOTd`Z6tnxLEkcE-r zSH_5ND!Mt>74q%J6C-cee%m)h81q<be#yzk9pBBp(4-0>ZHyML{qBa>(Oe=P;)}Fl zt%5f`0+?E5a60v-vnLFojc){NO48Pxp0x)#Zw#JCj~tT3>=4UVEK3f5KF>elc%jqL z{VjdpceN#zVdi3$0sPCsfZ3km+_M(f8aksRgOeVzyp`~azq|X&kSD&}b&n#d5p=pe zSny6^oI(?6>)`ql3M_2W7nMKCBa{2=>&{`M_%g?{O7}}HsZT0Gg&tBKX?W>Y;wFkF zY_vyTfxFVuWhtfOYv0K$Vk8t}vsHV2UtJA|Ui@BP6KIs=sEd=P!Efx}OoCyIdVpf- zd9U!9KO}>_bZuz4Nn&)uF+6qaXhzW<L{Q6;KH(dm6&lKj1d1HGJn~L{<dSC<44p5a z!=mtbOLQeuDv!J;0*Z7T%eK_4-?)l+5F3|v&rSj(yD-V!Z03hoQ2<O%n6zvM^ft1{ zl=W9ZwAzOH$S)g`!no<Z!*@4K!ex-fgA7f!CDaf)pzkV{!V3{?H-^cp%wrqF_4>wc z#d)`*&iW1A?ps^Oo>xgr*62UjS8)-=VBv2g!DD7*!F*XNS}ZBPG!~-oA66HLIATKX zhucC1rptXhr1ufe=-lV57eszWh!H>#sEpc-e8TrH^sGb;J1(MU<|l#*^--DBC|6^& zD=_w^v#N1<;e}oUj#!kX%UvPpq}vWBbky#G(LM)6^r$l)zU*#e@4eU^$N+rc_10ih zuc?KwO_;p-Eq|idI+0m-L&h{Qi@~&EuNy!4$iT$U+0VTUzCIx|Q7zW&NzmpoU|T0$ zT<QH5zKQQ@<0%>ypK#|o`M{OQz?-Fo)m9qw7jZU?(TzC+ZgAy+ndYI_E{9mOZvI2I zPjEyRgQicb_vbHh-9<Q|AO{k5%90(ZwA7<G$~z*_%wog4D6A&vkEi1zp)+UNZXTmx z)w^KPsAkEN{teiC_sLxUw3}%_CFo6(-&SYo$x(D9<uQ8h<H-@ip0>5YCDU6ANq6X| zWxf2v1hBYQs&^lBxkV?dVfy&5+}3p!NmqKQSorcTp;v<^&rMo--BmE2m?6f<0#^WP zCi{$e<l8koaeFcM;4hrzclrDXv2uJq1RGwISL;_o$%(3YjEKx`6jxSy&u_{SfDgzO zjdN~zBH{QY=io#k{B+;7L_X@maJmi6zo!S+&L<1aP8ZlTR_~n^hc#d8xZNs+jnGN5 zQ7YNU=x+!o9%M}c(9@L*Bi`TFJm|<@$TWmQGvoSu^$rf!7S@T6BW=+uUCzz0!B>Ig ztk^nD{-Fw~T{N|WAftG6B<e|*DcCjzKe}Sq&P>8IIJ%l9v_pdMBfb4goX52_Yz?$+ z^#TYHvDyaoP3^>|e_`)r*ywC*C^rQ&u51sp4~V<kqXF)rrKItl&K)PCRC?@?fG$@r z)6l{VBm143<`(;MkM#=A>3qu}>VUEwm+1oL%1Q?w_M(#4Tf>J8>WY{UhoQrxw-?q< z6$SIx()Up3cf#i#p0X~@E{6p|*bk8pm*bpf_Z<k$R|nbr{Ymo_nE%S{->GHNUT@nz z<eZS^?S+K)9?wA^9wB+4J=4>!q`x0KUAQ|x#%`U3m(FgP>TYyN-ji3U2>gplI9VaF zk*cg-#m%#}yEjr_{yHN*A#wZ=_k9FZmx}cKlg_}>;*U$vvO;@-VzwstB&3a%@fo5r zx}kQCsh>G}h#{tvqjAk`$bM{YMj`}0miZp55xvC+qH_cKiTnE=$?lV4Qk=!dCHc9S zp6Dg|xh3lQw*q~q^qSSthJq=Dr`()OvOt1cMw_&6?R}@H19L#KoBn>mL0#IpkUJcj zr~(j6u}C>Vt#h`kutV3rsEPF$NjD@Zc4F<c|Co`M{-fw}=xA1Tt7+qC=85gbEajqN z_CR&UYch-jeI)s~O4U_L!X%KZsmFeAU!9kd(O`P`t}2D?616i{WQ*5E=7soT`sfHn z^%u%pueO3EbnRB!L+{*_1b|EBNykBzz#lZo?79QTUS5fxx9en1h;NoU<!WU;;-F!W zy&g@MSeXRym#7Vgf3vVj%J)$_mDVq2ES?8N7_gy6r;X68!<Y%CF+0M0CtgrXt1&A! zMn7Bz%|VfjI+<($-@ov8uA;xlURKldYHnu}RJgbq<9}4>kGx_36Bj&Q<e%U^?%&aU zoq&H3Dyo8!UEZc$CJt3!{uZRA&W6_xhahEi$kQPGm46(6CuaX&*#(kAk`gUW^q(5< zk@!zRoA3>5N3?9M$k0&Cg&|u%hWb6ib|&N4*~dxw$&aIl^rUcxQ=Da8nfS%J&gF@6 z+a0SWXk$7|2_KU~_+L1d<c>6S<LZ2J>tcwgHFEh97m-`1r{OHjVqXW=eKoD~k+p|Y z^!l6`Y$3ODcqH6c^_{tK1jcfcoGAwVCjy5O?Tc7GdcFD6ck{lyL@)?z^UAc$I>$!H zSIZ}~N(kDG^{(Lo+1q=%w5VthSDW{bvxb)AEQTyh!akZEDW_cxhsar@<}VF4<7S8m z1fdkosEJsLuQD#TGYFB&Xq}?Q`FjfbxcD0FKSEnoJ6ivl8+90U8)n_qoV_-%hcj)v z{v(sM1F@QUIti{d^x9et>)6~gqU~I@JhH=gb|!ano>E!1aX>y-FM4X`f5qw@*}9DX z8(5xwTD@UxLt>O_H(;EExWMF3%Mh7A%>LeID~FWtV||r1`m0|MODT)@TUz8j<@3iM zlZkFQu2>^Ul=0A1zHhC5sqv<ygOoRz4m(qW7^zZ`3b$kQWmB7cN|n{=6KT@FWASX4 z_8L2Hd>+O~m2UDlOs9;pQFL~|1-S-2N=u$Uldo-kLL@P4rj>-#KW$K2(F$6TJ@)3Z zHq&58ECje9my`+ZZ)+N4vtqj{o^dlK?8PD#H6>}absjz2DQ6;d6hy1JQHOV_YOEo5 zcXzJKyu(!HSI{W=`boV(LEQfxS9ixEf2zyyoPP}WefKM<PfjN(rq~9%Rn3Qm?cWy2 z9#<x)uM%qUrT_3_NHPW!xm*rsmGmTe&dIU&ZF~YHX@Q2fPF(LrI3Iz!-az!5k!`7} z&F*~d3r1XoV-MGkwsMX5luvdlre`V3zCqKHqNE=V@ubDPgEsSlm%EF6xV*{QC}zMP zPqk;%H5Hs4(OpIijPMy8jW77cbw`|A)3MQ&_Qsm6I?C49xPF&31$dX<14<99_LA;3 z;f20NL$e1ye$L@VQEL0za14M$wCW<#(Xi$36M$<vIr6R^N<lZ?jhC|)X;vrrSCD?r zD7loRjRV?p)|!Mk^1g_Ae{>wDQ8PZ5U-qf={+o9xMBdU(>6Y~2e&+I?Sh6tE|HlaY zI!f?Kp6FmD!eqr5&>f~Y?D3qh*lh74;NwKKF#?0eVvWp3_nTsFh;^$oXU(=P&1-D> z{3&QF`!xFTq_21U;L<fW)7^2BFtjW4=6=&6?`GCx?{Y9N>FSEqm*Qc%^xL7O0q?;I zj+i&ne{mEtif&0bdgx%4&?&=?k@TFj5&c{fb+-w!s|$${K2T4L5Gj?!sfg5!8sFEg zNhkD_`|0Y27sDGMbg1?A>#`*FE|sOSnJ(K==^HxO)DZ{M_vA%lip{$EM#Gurlk?pN zpWq~RQ5V1g#bI+8Kzg<Dwuf0d`E)2>mjCoIvkQUB_@TIg7cXWai;-MB$ToYgGdSsL zv4_V*^g@>+)sF3IT<;VYdUdDXWaFI(+Uj`$56#8?8ckp<H9|LA=}XqszIMzy)7~hL zDFfk%zFLpN_-*&6IN^_xXyG1y!&{=$uLp!M3Dn|k9(>I?;NGM|*Szbq|9t2cxbw~h zOeL^T{+cBJsrtMMFPOEJ!HQF@W0=(v43FBT@UX<B0}7;Pcw#bI$}?2j_7vm<-mV`6 zMvlC8;^<>64C=^iZVTBgi5O~#>7o+lPm`Oi^`)~-w}h?E=egKU3-^HrmJOuuen_Lt z+~uFnh&T>=cMuI$p+npFN1lOaLK}8eASr9|GSH}&e?gI(_5TS)l2=^e@+C(>v^u7s zExk9JJ_-<TA$Ys6MIn>PO@1j{{1Y<xn@|w<>>pD(<z#PZA~fE|T5#}XxxY|<bK%{c zUkX*Iyz><Pwi)nv#>i%4lmTe>#LQTfvbh$0c@_uASFYTA)uT6KQM1b^rjG1v(e^Wz zi?ry4S8$=?=l>fD+x6;$ZbStC%rhlfdh<<+uW!gq=+B#K-D5kXEjb%^`Mq)@E#jIz zV*%vxL>eox96^DQjl6$h%j&MGx&Hu{B^)jP_XzmdWbMa*uaR-T6e(3HV|(|7=+}fl zwZeu9F9)n_Zaeru_%1#UV8*$){~3xMO_m->mhOhQYQgW-y<nzzn_F@k#&lPE>S`Mz zkQ<OxCZ9=5_$k&v!3AZ<prn@OIo<wjMMkZ@P51dtbj$$=WnW^rB{L|*cL4neI#L&S zc%*$mS9Cj1Pl``;(wV+}&)Jv_A0VF4lhC819g!70l6q7Zq`2DVsmAYNfU*ZqJju^S z%~MS4Ijei?{TfNt{F7QYxl93l<)7P@>SlFyP&;Z6l8sOtGF$s;_Qb!T@ni5m(4)K7 zZXg)=!b?0>HViuRbK*54Q$TX_ULU(PEzRA+wqN2{0GXo{2Lq@12TTmtjG69hRe(UP zXy<KjrEZCYDvhxFdBA~}I(L+(ns+Oa!tg%2tV?oI{qxJwhsPgnP`hbg&cG8uc4QdD zvwYBGCoZF57hN0!An7w%C5Cm(Vr`Sr)Y{YpX_2~}6i_|zWWU8UE^cGU7g`rPd4=z8 z;!phOuzb88Uars`5#Cb?%9S-!C!6xU3s!8zuB5f%qWChz_qCivWsxcH->BeaI*%h5 zS3$q&+f<X_6E4t83(A&JmH)sPn>^-Z1yeAVZZG((v|`da@YU`((Nu|PXt8Sw2x7f? z9f~%%%~WZ5TZ=@*4HY?zjR1_IPVvKivvnwmaDGWsB_m?m6(1Lri$`lcPtUwoTNkWC z!s&Ar-qaT5d>2U#8W9=rFM!;o^Tq+S?|a#w-^5#Rl$SS@MeDXtZv`W09rM1y&Z(iF z%fp))Y&WJDlc;QziC9BKS91cE2Jfd>sQ1y51jnrX1cWcr`7&?Mo%OD-JVkPLUU=cb z;FqpMv1^`sW($@*q8BzTKE^W2^J)E6gB*Id2hXQ$ewy4`mp6wY02Fl@9Z;VnQ+Y(} z@#G6j_2!-_n8_g$wIrtBEZM$2?J^p3+ke@!7+cT2i|4$B_f~Frkv1=}!gveKrRa|G zxlw+Z!JJd<?OC}dGNCDgtU^>s=J1h7RJ20&+;kqXgSTcVDP;;vdO~Nd4+Ddr0%t-R z082kjB<oe(&t5x&YOQ$e3kt}zKhhg}qm5HJtE#9<6h3HnOP@g>Y;k0$+eY49ovb^F zm5vZTd^0zqF=D@aegfKHG2Q>p5B+xWO@Y3<5pfgt7s{7GKotL5XldXN2*=snR{(+V zwcVpdO__ZjVsCi)Ewc5@ec`6Hd61HrJAzn&;l~Z8`SY~a35gLOS^4Q+`v@%i4^Cxu z`B5QTIqj1X0fx~uJfi_|U3A=O>aKXJGE|dUS}YAzPeG$pa)OO}!$qP}T2_oqeLg74 zOP|jPh^GxYH#r2dk5s@bl;lB2#6##L6cQ2_ks*=aawVSp+!`ct>|HmnCa!e2(i1jY z8fr=&pzJd1pc1`=@9jI}Rc<pYpALaq`r>d{shh3POYe42uz4UFdL2pI+h5>wOSBGa z;Pf|4Sy?0HrZ|xPJ9#cncoMwURNmcH9+={~*i*H_ZpfBC*_xFt=Y<bscdOXA+7~rW z7C0*O@?K@3PD7k7-S`?hyBD&B{&Cr5YW<NIF6a`(DO4G{d84=GihhTI^_+_Tb@K0T z{HpkP&q%>i&y`hG<20f7FGF_o9NvG!Dm>wM%Ht9X%U$6qu&z;?o`_l>RKGvlDkc^y zZ{!=d@k`_UXeER72~-g_2PA)`C+e1&$->ceavpfm@Htf>{B7D}bwH16vFX7@K>RfK z@2S;RRF?5DT(Pf!+{yodyaX?7vL~zTD2I89OGq{F#=8wz*t4q~>DL#v1sn>}zf5Sq ziX)P^9h)S3<M<7-Cca*dXNeLkgH0j<;7Kz#=i;PpJ`ojD>VDZZG>N65kp8|!+>POf zRZ?YmpRluI`(_+Wo%tpSIy9BY0=aMV&h<z~J^_ZSV$JPH!*^rI^yC(vGkdr0)W*3T zRGWkamq3XmYR*Y-eQh@;vf#Zv-P9sL{E*&L=V|mvUuvLg7f0>GUQZo>x`bmD)Wc^f zJPuT{HyWU_Bo!)0b2mep+Zew;6{)DoczME|K;uHj;$Isky5!DSg!{}(LwO6RHq8fY z-8VQk!U3L6Xcl@Q{2z6OBEHKg5mT<kdvaCgh_t*d9cZWEPH6<0u6V{!0!msImFGwY zNmX-#C5NV_-FEKej6m#bZ9>M+j-A@RXEeF$n^X&2YyS|rriZv0aQP7L%mNM{Uq<$u zd~|)%!ORp?P;yQ{?)r^TZ7_=qM|DeLeQi(KW6+_7;#aFe*oLMG9Yt7WSPei>@qD%5 zHUh!N7vuf_&K~0ZJc7Nyv)x+Nx)07T9>OAa#nCB#9z{^Q0^v%Oh=vpKApQ<V0rtyS z3p2X&lvr5i0DBgdb=&n8<|*lnf)d_#g6mJLHJq?5gmhc;4$@|P=cvsV#EEjf1;V)h z6rTQJkt556f%Zl<mdX+(mJG9te5qAc=3~Py8gtkcPCL(QC`+gvKM$_t&D3>%OL*1m z7yIN5!z(h@pIu`16y*UF&YSPPWTJoc)A+!@n#4Tued^maS7B??%4^r6b;T;pmlLH& zGvaE6LDFE37G9JhwC4!oaY9ERf;Dxn@wY&g3d~H$NHJ@4jG*}$_C=uJ@z)6Y?#;P9 z>iH+JG8i|Z{;_dRPUNs;k+9Ov#xJYNpFL<Pj|3E)L*mvPWSVGv>?qa2EtfZQWpkg+ zIa!}v(;u@~5lD~x2MBeOuqn3n;I-1W!Qj*WPq0X-C>&gP1A;x>Q`UV+U6_!lj-QtK z;4Z7mz#w`DD16gicLkBTVAJms%A|)6Hf^tZH$W=C-Wo?rfFfyD9I;6X?@&EmOF{5a zOP%>=m5Z>!T`qu4@m=BLwG5n7g_%uSap41FZM!R`}WMWx)&phBOn`N;=TUQDdK( zFLcpF{$h{czAfs#5rBAsF;4>nRpvEq))L)>XObCY3lZ`h@7eEXwDQO989?b8H*UwR zntB8fv9#5;+1a2q(DVJJ_%qHflc4yQYmn*b<acrjnBi*yuiQ19y39k0vAZD+Z`N<= zbwh03UL4Nun3yCNY}*+s)h$~qOq>lqf8JH|I;pBc@-mqJMgIG}e&dlW7OzB+-Y2d! z??EyGBj2NQ%VuLV^#|#jokSiRYS=2ysCoDmp;=|~hP;4fU`wjBg3UG#8H;OEf1v^S z8oX1u4jll=MYS8`TjuIOHv2*?!c9TREtwsRsPMLX9kf0zt7md{6iSu#bOAU^BGN0y z%Vt3joyrdt+>~=8;H@M|T`6b%K4vk`(3N?t*qx@(7mhGZdnzsRpaMe#&XS~Z8;u}o z^qrPYOOeXl!N_SDMhX2#ooAQ`2_eYvRVtkZ4v%zB_3rb7xr|<b{KC)cTm$mvprjV) z+I7p%Judy*D}w7yWyc4wbh_6IMnQdlGp#svr<kG|0a`&_?@!gNY2lJ0nom(zg}69B z3u*lN{99Z&7@iFkj68E7ES)sukA8M|u0amk@{_yeyZ?qYu<*=^adilV(t-9A9h}VL z%rJ4T0g77|3ZHD_6R=e{$fe$*4Pi4G|Bf(j>j%j^hl`7=h(Dw1oaVVE77z7ImD6w} ztlvTJV+k`-a(lLf&CBRL6i=KRv$!=p_Iq!HMg>e}_nX;?n@G*1ZZ2VWzX`*omXe1` zRmUg{&fhUQ$Z`f@4kb61RkgLEORz@i`B*qqoXm}1d`?G@f>u)PaK_MTYA|QQ!yLx* z?#I5s35AGrn1rX`cbAX$R}S<Ea;Pyi-Lk{L$faN|x!uOmM{1^kUsKY?vJ?W=0Xxo^ z)D!dAPa_W-@Z<oV=uh5EDxO*0aVKrX7?VC@)oMh?Uo#E&_g_p`1S{Q<_aAX!{)-Ec z*$gMmU{1t4uzs(sO94{K8zsEQ;_bv*vRATy{YI2v9mFtOKM+jFNwMAdt4}~fB02=~ z^Cu#7(dkMzIF~rM6jp0=6c~p)_r|fWyd_oHBVSA6QYZ@2`)e}&-hrK=H2F87HvZK( zYi+snV64}pwB$(Pmq{bTIC?({!2%e5QORlYvdT(7B*GY$MmhW{42-V6$PFcY{&;rD zt|PHRu2ud6q;B#`{U;My(Gl%g%kgT*`MIcyL_Gy;!O!M%Gcm5qfu9kKs2}s!&cvg^ zk2NWy9(zoE16f)sZ?{5y1I3gC$?xT-@jPMPE!Q1Z+_Xb9Gm=@=)JdmPK46<;UX}rX zd_$^`M&_APOQ2BX2_7rf4C8aDQiJx6kS8g_gUd~+m8C~pcgy#Xc1dJ*^z-Pn>O1va z_pjHtGj;Cw+k_@xv0w|z?t5~tNBxw{i%oT8WOLdDqw?c!gKyp!Lu20y;i&G_LZEu9 z0eULWmTzAToIbQ>WuS+7ZHoFA<r@X*vrAq{7TjAst8KOifQM!~(6>l2LTB3@;YKIi z{R~LM5!$Hl<&}<_8~D=5V{8@AhjOGb#DSM4ph;eue|bE_tgL5|Io&xeDP~(hO2dM1 zxZ=vt3vy3KX{w`}V~l@+<x?l<aQ2+BD{Ln8t<q$|DkbNX3tmF^ZGe}<PoIgJly=8P zMlyw*n{<Y&;r6z$?`ysLlgdVE3F4Ob0@#~QS)@A07|4exxraZ4oB`c=QrWz^FT6K% z)ERyp&571|%Y^j&I)Wo`g0iG@F7|uCVyeL1X4510wEZ@#=Be8+nbue&$-;ZWS{Dn5 za-q7U9FU7+Rx@Qz91d<cWbJ1p28|6(=}P&&w(#_gfM*;6?(+)+P-_6Qb&m+S8*uZz z0i}x-zbrE&p`xKL_^L|=sOhX&FC=ero)E5Mm2Kla(YoJE5y%lEAk=vBUbwu(x}A>y z5oq(`bTHfNgO29$8IB#l{WqGQ(pTK|_>*&yUy>u6+?L-^hiKGmsuJN3q8DfE?(%XQ zKMN<iTqyr!)V=b|KcUjZRkDoUp>q+{`My&^(0=VBKE$g1q>kP^$7Qn|ae&ju7pX%T zKP+vFWuph|JUP%8QTE4nVhi)yqr=zt@kx%zY3wUIq4hc;qJZdk1KiJz(Q{e)kfv_* z+Jt29`+3vtSD_H>^flE}JyjvaSNjXcSlVrBfa#cR*Mm3QG=5es?_}<Y_vbZayrU_m zzjq1WN8ZT3D)ID=-+%a)b1n+L9+mS#LrM6m_$;lqnEC<Hb7|*GAm+j0b*l0DoFG=~ z>1ts|-HC_b(;RIw98m(L_`(FQGYqQ0m*ZcaY@_+=-TaPpd-dpUMVZEcXU$MVNR-N% zIsjfCW%oPSSK#s}HJJCzQ;~)lPEE|FQ+4@*$+|Nf>kiSINkjST7q-}-8PKef<kKh4 z6om!od6;bGwr(anjV~XUe$}d%fbU`5gc%k6>*|vQf~K!hYA~gx7V{zRc?$X|v+K<c zBSerYN#{)Ubo{`uKA3@d1LOW=)_r=pTxsExf;%NVy!KS<G9a^@$IZjnR^Yd<Rn?|f zyLM8#+kSZ@>XKhTVXhc~_%nMxl~05jN+CHp>qg&+w*e>H=n7xlkMjlBvLa6mA~Nyw z;?{7*L;E13d=B*mq<gKif%7shp(MPa7QeFcdi?6;&Ez@c6guv!6Vlt?kiB0|{*kng z+@`6_VoB;vZ3U0~2*g9FysZ=B`4HJIu$alUxBIa#O>#n$EeLw}TTUDZ4%-~gDwBPx z5_Kv78KJr`n&pb;NCg8U(y8bIU&a9yv#Ylm8^;RURun$m(#Lvjpz3nMx4|OMu;aX5 zj>oMv1QJ8EsY#Hhh!4KS`-X=cYzqBq%H<0&`S^6?XW#t{CyZ~`reksb>_m&yKwx;i z<CeleRo|}JpOc>b^}_k%A8rM`s~Vp8vmI#AA6Mi2&u9Pq0aakKDv;}SLP`o99mBs* zd*An*>F-yeeT^LSKTokI{u&*fR$~$O<v*_SXN><4iab$G?uqKZ|1y#r>isg|w1mR+ zUl*aWQBs%rv*P~ot57Do$Nv@>+W5iDY^q8z?T=mi*JV26WB)sWmQrZBd2kAu|GMNe zd&dfKx&IoGxB?T#-vllMt*x);S<n4_VpMtY|E)lzo_I14Z~xrJe~vmWj_^OGDf{-{ z0@v8$Q&M=W$Laqzv1gn={#${mF^_-lG@+~hd(;c*MgM2Lx@KKo)>)+S{(WNqsmcFE z;6%g=8O1G;Z~xM2;LA1G|Fj(bek1EJP0h>{=d1ocF{CB~O#J?+KuT4p;>xQ><rg=5 zEW|6qoh{MV*R(`_Ga!0ov?#FRs*5!c5bw!GImDCiZmU6Ref@#gduwShAZ^qG^J-Ta zosri)_N-W1wn<i`a$_zfjcSpA{2`sDKBI1MvGct=$k3T#Zj%+_+CSe_d>w3&xRf%b zei+=~s$Atth5GuBUdzC*b!$R=eR&c>k8XkU*^%p%dns}=cVf0N3l!}gzIRW;7Y~20 z$XUbIO31xDTGFFL39&wa@!aqAA@sxiKze9gBA>pm=_>reEn)o}RtQx~*St6#ap!g@ zJ2Yp_^}ZF&w;KAciCb~ObQoT~H5aSa=r9Z4>WDwL_zpMO!JkhSOSv+!T$hu@=t}J- zbIyJ`FKaE!nedgIeC~|xjoMPr?OJ5K%Fcv)(MCe1h{Q3!zf4|txYs2tscQI!XjzXk zxY_2|)+4Qeku7huJF?}3cPA^1^1jFiMzu!f<hn6uF>|^zETHIMgWLQV7wq`)@OL#Z zX)a?Zrg^K6^Cu(WR41F;*IAmI6O5VxZPBB6;=7@nV2h+BlF7exWsB5R=NA%^Z~cRV z)SR5}<dmP;H{zmvg<kTMk{7PS)|tumtbAHWYJwNKBWg2XFum)WREr&zdNrXu#m&Bb zMQggXtgVzI(aUrXkl9X%RKPje_40CA?Ly#^ExGUAI_n^*vHxNm0t4y;Ofj2$dsdSP zUsDCe@6qo*|GE?!Fwc@rRALO@HD5UF{2DFWpSJT(xwkvX%_-`x_2G@j{^A);_u?J5 zMuMu&5)Na0no{L!2lA!sn5$o^uGg;_;Bp)mUs{s3@0t1;y1v-^(>(3!CuKJ4mJlay z@}s=9#)Gx>*=xYqmJ|R-frZH;NBh~l_gXDbDguBc36Q<0XORMp!H1DH^>C$n+$L&K zcIryFf%7FVJFarG1E?gUjeyxzSl4-D%IcL!v)$xkii^PERz?NF9o}Nt@WWNAI-xP^ zaFOOf_ZjEgKNjoIP*8Zw2F5vJ6Wo&f$!dJYu>x7(hf~%HGT+EG*xT}ZqTrMjVuU}! z_i({bwBy)5ax?7Q{27Fvp}9(dCmHcD1kvcw$!PaGqlM^iaCyA>J{4CX7MTc;+$6B_ zPg)!i*BANqGdwsOGuP*ww`+2FEg>Jzespokz`o+tELDNC+~uNudc>V9iv&wel8fOq zv7B}4V%OI5R3K4D^ku{~X)p$|^jo2<qTMohkj80h*zHCTC+WRs{Sg0qi)MoTyU@xS ztIN^6@&J`bn%X1DP04R8<>|LDJzL+zUSZhq4cW?<WQ;ZkQ3ay=-bS+&>~**GpeF&8 zI$5of)_s?l9Ku@+=YF`N{X;R#e-txOh}?oi<l8tI{pj9l_!{>Y8a@0J^fDqUpYUgO zUw^Jpca3k?v)pl+O%Qw>xnP^wf7sE(sOT2@ZFTmG6zGB~N@J#SW0m$z3qNPK{@zKH z-r(3w+pT7K>{ZCpimUzs>^NJKBC;YS&mCB~n_XSZb0=b*OD-}nx1CV8hbI0V3lwc% z{z(#K74k`$SY$eKX`V@5c~eJ;35(n;B8mdFhs{jZ|6#J&xFDW#u`Ox#K*K7+h!#9~ zH~34DuDKv8$_JQgv!amnJ4>G6uE4gV8uCWz@H%#o9{AOm7U@FKOemp$W+1f4m+5<x zU#}dk{ehY}uBdE`Ne6oSAt#?V1PEgL@NrxUy7ahog`bFFsB77V@fkR8e;eBc<Z48G z^Jt_5i&O_EZ`9eH{fL59lCs8+m{%Gb$3%fH<Z6A1?0SKy?BJxUZZeaEAKLdOwi>X& zC^!85mtxlxO<*A5Kp3K?{va%>o-N_dLJ(<X1(x`<SPL|@b0*A=C&QfjKMzj-X#40A z=<2GUr;Sov8pLddRj_v1SZe>yx0)QS#66J}8+19&U%Dtbk6nHH>c}TWvi3b04)`Sd zcthapt|zD94PLX`)A0AYC0bUX?0Sxji3s6eq=K9zVEc1y(+mHno!2u_F(A@|pq?3T zmS~qWgT!U1pQgrLab7yNjzUhAeh06Os6BSSweI|~s@!#o<Aw&$cur*p4F{x4e(kst zni{o=EKW4{uDkQtT}tanI-<yG7j6)<ONC=W^mfExg1skI0|pK~cTHyDd%c&ZUa#%f z_W%<m1Bsg*b=S>d-g!$6z7<7cSbU7%oz+r&{5J-(ypnrP-S8Pih2D24j?6Zy+(CtQ zmk!Rc#6wSzPRd^%%7P-d8Va%KO}e+mkE&$wN!aK9Dd{Qv)m#9lp3-KdzK_g(=nqzp z2gTc=XudVzRBa%P=v0Yf<v3;FBQN5+>oGNpJx|&c!-`c70K%eoJO0oS6~34wu7dsm z2a%DHUPRgl#~V4BE(LGq-i;Vyr|S;O51^}i8J55{+Fo3DP#9QO_5Tmf-a0C-?@RLz zfk1!&A-IR&uE8z1ySux)li*HpcXugVgS)%C7w(1BRKCCN>F$}HnRmT^)LOM_-Ku+P zoqg}!XFs23AH7cO$u{<#E<-ve+0OAoL=hhB?|4!|Zb=7GErmag^aysmZ9hb1lHWGc zKL!uf8n5GG!g9zm*5pj<#*KBpQW+=D&zi99?4eDxH#`8Cy76`s7AOh$BGh)>-`;7E zQE=+kr-*&Cp7M;~aHtFA1Ev5xQ7hr171^!{ZdDy#GTE1Prh>UL5<QId#P^*S*xpW# zKQtr3Hn!r9P}1AtF#VcQ(z?Ob$>de@GiyGO#tLw7&&hF3cG}B41JVEm976R^dud<; z6l}CtAUZUknwtxTnk`#u5R?0H3;EZ=8Sg8jx62>YcRp%*l;CR-*<$Uj*yL=3(k9fY z?eiQ34aLA=ZSmO?0Ul=r{UX*Io*<D*%JEL+ikPo`Iq#@lf>QS|RP--uk<~gJ?_S7P zG1K(yib~Bc@2;JO#3xN}9&}BGw$5ObRH!G56wy-p0B=p$vUmG8Pp8jRmTH5tLTb=t z{r%2S;S3K`@~YCkp~UI)FTPV6_H;Qe?DCr0(#h$mle*;v?c+S^8!g6#h4D>i)sOdv zlid=A3?k3EX3x2bo}zqyuCS$pD5#Am@L8P<xW%z(z75eVdcOTF;l4S)xt{Iw2$2tq zh^ZQqZf_B!m*Shh-XA~(rt6kZXElYeZ}Lj+55bt}e%&`F)zb5hPJ9bUC!;9jTl?i{ zX<OV{5V)ft_0^^M$z}8LG}xhDs=?=F(n^D%_Uk0wF&^zu$kl^aQq%F(ogC(Uu_m_$ z(Q6ie;X>p@$eKPrwNz=xGN%`N1=vk&y{)qI$43XX-+z-~^|7(Uc)gh&)RD5vu$0p} zP8Uo53t-L8;HFm4qP~EL8CHMNp{{-q+a-J9Am5hyWRxLErS{9#_l-7d<B2jl9-J*< zKO;gaG1u$1I#u7xYfEn=gd7Uzv)Oh=KYda=YW`ukkkhbr5YmCiC)i47S(s=hyt!vu zlh-w4SA1USH~+z~x?hbEaGWY<eR&sjeIjnIYn(ai<KKqV<UCc#q7Ig7p{?1|2Q+@O zr<Eq~R(FYnbH=IQHK86^29<Us^&l26-?e>P@x4VjeWgVqy2HHKZdg>3&r7a#(0Vrk zqNira+IrN}EfxYR5yrTs%v8P)7vjNF-TVEl!g&}|0ARC**90-mq$z)T8`a=n43<NV z%!+I>0Uiqc;7+ULM^vMuSXd06r~}}0B}pj_*do(K9$sPN2@F=4Z0-fAqnXPT_`Q9= z!X0<E;G<oN6ON2Q6D7#u(B<{}Bw*K9@^eL{=k3hSsieS4f9LAjsp6U_rTt;={BZWh zC8ef^+m=%Tz&qWL7@OpsHDl{CCoW{eH5x*cS=hPxQ*6vpbsXhSRdw_j+Td`>@WIVP z4C;07-Qy7ku!rPo(M(BEOV)(Qed*l^27(mV4}~es2r6qvv>l^&mB}M@T+037Q$t@r z{h3O>(Nx0=Zqa%=PcvVe!<F>|p%#yfa@Mg&1u>Axc#oE9%G~dhzmGQ*gEJpEVX_P_ zy_YlI1=(xYbJ62-ix`Z~vvQ1UPRufl4SXuG(Ez@YCVKXV6xe8m)^@eJEOk#3b{M=Y zMstN#lxDzo3A0ro4yr6lcBd+7mspbBjIL{k`XoI?bIlz%cXDaUqBO$LFaIf9-cY~$ zuH?&^xQCdSU|OJ1#}nQ{Pm-lEoxjM^Ubw73wOO~GLOs(WzaBH;!FOX<+jDKYSaz2D zc-vv5e1GB)p*yfbhT2?)WK75{Z0W(L_qPA;2fxS99MtY7ZY?6)t}JFzJ@<kmOtGz) ze4P{W%l6$e63o38GN0bZSu2SyGlO_SH?XmW-%7gQPaQKWMuQ+TAahc`SFRNu8Ql}l zzUf&JpcZct+*W=rQ(*U5Q2g)G>|92ZA9NJ*c#eC~Z5N64#pD4O+;V}BWtj{ZwyUw4 zZ~KgX%FH?@*pU;02czSOh<qgy99@9r_eTigQ$=gV-Vp>oZEg}8>VbG5$y=nq|7-=e z=_KxBn=gH?lIGRN7=wE{RSQZkEmJ#fsV%>=1A!6h9<_T%pgddal1&9tt)NAtF`;Qh zWhG%{Q6d|XH|@9(;<adHtF&tX(oNURC#}2?TWsF+7R2Pb`gSCguCPjzI%M^pfXO~o ze7wN3EmBr`zRzb}zN5oVEj;L5KT8RaPcOAP!#vCyovOAtC?a^|V-BbDIRM5t2;O%V zi!#BPSbY67t;W>t@#^@DDJ#p}DN^7lxro-13Uk4zE1?ko06lcTE9`qJjAuAY+aZwM zO`qlD>BR~AEdneFD2o}{dUGPT?);RTa7xTqlia4vUuI5K*OMMzE%QCCX=n9F^#-TZ zVW?T947ZR$Q?Ty>m#(`(ul-ji+XOTn@D<ZjVrfBA<w34I3D+UxH}6|?y%s@_hOofT zB$h_-WKp=jObX6>n2O4C6P`qB^5v9WGbq7~-+HR3zWZQX5o$<O1R!5-|C0Hj?S9Id zxgV5}9%rAr^}077jWCi1yt=^?+fpRzDZ<J!4k|~UO4*$o={j!~xX{Nv-~gfWuG)Qd zSJ9g^_#h9wipm%Vp4z(E4mXfkMlgj}GVl(68|>Dl=|=H=r9VFN&~9GqZts^Zp^K_7 zp$=zCNJOdnHf_3<IWDU`me=Qe;(dtfbY?|KNV|GZ2U5H~s)0AXO3Tr*9%fSTe)|?x zhWyZS1K)PMt;yb|ntv>aph18e{PWKHFbFB&hgT>9p!gN+l?_~RD!{ZRrCjiwIq9`o zoUH}*Xt{JXStp};Z)h!`iXmQW*XG#Okai^9dSN!0M}Ug29*TX8v$}-K%k&94gOaoK z!rFWpiM+>NPS$UnWojzdWL)gpeF9c=q;zdD)>j(z;ygYR;{D98DET7zUQx;5pHkHt zG&-KQ_qymOR~PrdpdCqO85!zF4N#z|BukyegXU1))U;VWwvSQRJ%{l1{x=ZjI375& z)s~gvUc1jHBL1oO3OZxPlVcV*x?)GMQ=lYIHxB!u{*90P^+1=6O?_5M#sWhJwR;Jv zazN4g3b8Kp@dlSSH0-9?)b%*L4d7o|9zd_sYZ?yM#I;JvRu!=~L(x(Id}MJhTN17? z@u@#sf)eV-y*M&InMJvo4)a`T1u>SAuUNt@z@>to?Nt5MH8u_JE3FQ9CioqS+7V?A zyRXf%2zamL@mdsDBZ85$LoXG|r6QxFm#DQfoh^A2k{5FFwlHzoP9`KEao5vvx0l?c zsJr2hc@ma)L;7tkF(5HYS+zblsCimNQ@Y_`pbi7kf@++iDJO8lqzXHoy40FI{|1F( zOt;0h#E3Q8n+_|(dCK6Vs9en`uQ<wT91<ms!b>r`7Z_T=vxIH$ru*9gm0u^T(g7wU zd|vq0VtWBTFtLEh0=@I%qB3L*3g`0;cU%|N`~AyfuuuG2jmD$9*X}NN#Lv(VeQR5c zMpm0JZ2VlEZA4bQ9|}y^@=tgq)IU4VR{F4aHO5@;NRHuRuhu=joH<rhL}EvYRz$wm zAHS<ir%_9jH}avV=3A@vv>dkD$kUP4B&a3y%MxRG>+If{+*&<;uvK5CJ<T3i%`S^l zp1=LHC!~D)N44dL>cqqn)f(ehm(fN?_W2Hndn8RKa<7fmQH-1K!;TU=Ueiz<8>eo@ z=#W5ylvHDwH4TLOt+R$GD<Xn}>BrQNuhYA@-2*%Xxpm5d?`+`2D?VzpWu??VJQ*@H z)4w6pcvIXf<XGfjSCYR52wya$Jgb=icBjf;vXyKfA3b)@_M_|sU>uxCuIf^^J}RFU z?W_?aXSPUt_|U9(kShx)jZ^;6Qxj3N*QpOHEJol^orUtWTd>s#Tt#{xT(mOV{`#!5 zhm`%qY#HjiTB?vvA3MXEpeJLTHDREmzB5l}sfn__4o$^^ZL5OTdIX%AdY3=V=qXr? z&3FRE+RD{B_3i^N6so}zLG_`e2H7izf~I=#Fk4*B7Nh3-NaF-_`HgIG0h136Wymo# z_B^&NKF)pjm8+>dcMr2M$m_y&8q-Y9LVOUuwEp%Jda9`1!=Gh(&tear7j<~Q7t+ME z6YUALL*&EM4PQ(tLf<sIu^VCjEA4#l2cG3KT+mOCv4?577tP9$30X8;Tpzl`y{1S` zucGQEzqr$0<N4WD^W=CHG1?&~85XT6c6C!n5U<p8@fBQa@bz}<VaM6uN#m6Q!4e1l zQ?*=sI?e@4X8CzT$r?qTqFW_%vn@|?lGR!4Q(Z?d*ZB&~^{MJu@H)GtE8u4iN?&9~ zO)sI{{h@jBmcV%mB2%89o0Zq=IYt~@ZsJd}+4M^i$x1@j{eGh4dig9@{!!h9Xw%ys zlfDra-E-*W@jG&fo*u9KC#Z^Lj$|k9nd$NMzLTGLHWEORhfCk<73Et(_%-mBV-GKo zi4yw4z%KSlwg9&6cLPsrP7nj1L_XQB5?}bIy(cn4=vlsgj^-6%p?TZynN0(p_IF`r zy6N52rZ!u5qE*a{Fk+t#GbLSBI2(NE(Gy(_KYbz@GLO+pL6Q8y^a1je7@<BM{8b~) zUvz@#*l*q!8eTRrM<|9T+txk8!J)9Q%L#Vy#cfNv?h%xvwkokJDK4rA3_n0nbbb5K zq)}ZnVCCN{RvBM$<Kb-d)mnF_M1?X*&nhS}(cd3A`DxYNbza@=LXnXR34g#Qt1lx1 z<mnmV%4y+Z{Nhoic0zlEN6Vz~nzjEr%fTI9{-iHq#x&9BxH#A0(5ct4>G^iQcxv*8 zGBAjl1(3q+7X8muMSkxD^scXCrgcv&W@`iwM_(RYYWWgr5!h%Pan%wREU5j^XuxSZ z(g-*-koF`uI7J=Pj?q6rmO)*adEBjbbL1$Dd_oD*Y_t@zB4Nl6ebc~m2X=~(z;>-C zXi%~9Oj?Fh!yr4c)o|sZ^%gbbZJLOm=H%w$A$^z(oUaH)#83HbPJq5%%2n`SGH;YF zetX>8n&<DPc-s8ZFDo0=-Y02CLTT&Xf+uh3WznoCL`2vNC0p6$ck3$Kk4&Uz=KKMv zUUhM*6c#1>A@^=Ue%&0l-*wJay`MaCNB~-+A0r`oRbd9kS4yyU_P7=qu|E|J{V>^3 zZ`t3JKuUOOZXHj-!DUcmQOK;AjRl0$knMXD8k^mcM&n{C5Yo1|WvpmJ@*qv<8g>I8 zrY9)=BCm09GYx(wH`6Sqs%Gx}4n<Yj6gK1UxMJfShH%rPiPQF0N|&0!0E8+RKcHw{ zcWxM>t5&JFx^og6F3s&IMfBqLTMJP;Z-{@JmX#DF(m$mwUma<@YHy;dE^e~?=Q101 z8u#z)&U>Hg-sLu1mmvUV?Tqdru#5TST~b|9gf+PhfN$vJ15s##FX~#&BsRYWHn$DQ zY7qxMuKWW=baDplRWvGSeIBF3dD(BWbEqr3i0;fY#OuB$1CTf06=l;DM?03z#y<8j zlC#6)Oe;C0@rK-3s5Mv}<liqH|45$_#UlvM`?<_xxgWToC8HAXbXxs|i$Rs=!6wOL zW6z7EADMyz8Ua@(NCTbSZFY8E_$rlwQ-PIn{J4^av^*zRS4K!lCIuvO`;Z=@Mr&@0 z_WJso0)l&!!6V@)I)c@u@jPXVYmb^z8tZ&OQChD4WhiB=jjb9k>IE`u_q%0QxkH*m zFRnGy<ElJ4@+4#xu6vIAcNTyjN{;t-pJ*$fmvgS(c}i7ns5GXNG+#*M5Pz^e6cq}l zKkHK5&-s8xn=er;>OfY!ga#q!0g<FnHJ|!{v}NA3!vEXHhP0k<jwvEJT5$981a8i& znR&DMIX{aG*wTYX2j=W>wF{YQtr|A8k^NlLUTE%Em9c(bPY)K%rOSVM>l<j!G1oEn zyY||6+k<|)Jn_OGugEFQ580?PrDiaZU&-~~`3Z<WZ+-V;#j9(7z6sn%<Oklg=2vhF zxH(eBr7u!gsW!ml%;pG556&NOs6+<$c|79$QTF`J@8=m^H^8=nJ1P#|(czQmkRAyk zas;`q+_-P9+RQ5<0W3;v(io8%WL$(-S<90eM&bD`=uSh)JZu#<^?!KM0UrkRl9KM^ zcF*N7@bY$gYgJjfnE4K0dzY0L7L|0Ivl#A+W{WmVwOVLSvdDY_KJVC)(EOF`>r%8R z8A^(rE*Az9ZA|MoJSDFk%~jE-ICqG)W8!7I$xTU6`t|`g0T5G&maJe7$-#l*OuQ16 z!cLeQ>nD_3PrMPzQX-C<e&yxhvb$;ZI5FAPKf==^bfNNgZQPGY`Kc>w%Cb!-3NkvZ z=z4qBrr%wiI{RD2PbDVsq9$6u(4TMiFORj*W?=<&wGl|F@dh2r#cu5OuXsQu!7ZS} z<?RSD`MSnswppvA?*8g5Ps?x;xpi;OQ897Ya^j6(XCUdjKYcnMFn1~sFsuyI;38@Q z8skc#T&*ymAc;`fUtRYVRYf0+@dC|(yA=G(0;^SiyW_KT`Ti6hZNB~dKwMl@;kvVI zJ;P%p*`WF5V24fiMa7pDs50v4%kEBl-$#9p2}HKq6K7O7nzZKIeJyQ}qy9{uo9loA zoDB&a0bt>BXhge_sQjzhrq&)1Pk|H`1(UZuRou!%d8(V_8@^j%LVJZFYui)c6H-E> zA%?Jf4#sf{CwdME<+o2Er96SUhf>;+G*lX#^$a?mgN<|46TV}PGYSjZV`g0-I6gck z<A{xWCtd9mp0&n7r!#xU_4Okua3FtyB?-iQU#KO1Jr`go=04+?chmW`jVqI3Q{r&c ziahULp<Du?)AXpML2;3BiYWI^No_SU_yOAqs5vuB!)PG4<G+Mg{Q}t1?ASygT>jmQ zr-z}G^a9l-Lx@pJ?hdhTc&-g-u<rWUH7Ur=-vip8M*ngJ(O=n$+q?M-KP8zyvOgAI zRQ?(EceSYB@*o({5~Ce+k^%)^9rijRf;z?@j|cUVb}zEW_I#M%-sUVe$QLr`cgpKb znIEhvoF)bMj_~noW}_UM+sJH8f){zQG7Yz%F(3<NOWdLVsTDC*mg;x_eV$i-Kqj{% zk#7ll@ZWfb|2sZGX3nbf7<u+QB322M*lftW&Fwz^7YX7p7!5P;NyXa`p@@#&f$GK1 zZ^+I&nKWM;&~%kG);_(>2iAI-V^1;?lXE&gGRrtR5&}5(u}~(3=x&HB{t-^<r*x-% z#+<zKo!HoWZO^vs8K6sf(jwe705flFzTq6o(ZEz_h=!gyR~jHRDxh3n16;j5w(vj9 zSKexIqJ3@(4!KAdIrrk`(4KP?o1Cac)*NJK$GmRq5K+#4`OVPd*Jo4<SbAK?s$B<! z>;VzdypWndP}KRhKo`5>V}Cyut|i|2b#WE`0Ck@^mQzp^<r~18)eX>Sbzm74%&0;v zIPoU==)@(c6A>;W&(SS}p;b#lI)<Vn%Ve6#y&Ze5)IKgG_h(1M9V~}HrG{DOv5=`j zQ-UqH{P@Uq!pHT)!HMA@J)_HLxWRL=-`mOxPVY>ju(=j4Af915g8k-CtGG366TQYW z!){9#(&0=gT1H2Tn1~S`uPJmiq@gTDm2q!b^Xa7Pv<His1G>et<8eK_;qgoDMYKto z_@ST+KiA>YSWK%&jmyiTCTjaO+1tu9Oo(hztY2Yll`qMJ?>1@GQXj~pb8R87#i6sQ zx-Bbuo}LIkMIee$jG&fu5+mS)Pp|QV*Dlp4{H@$>y3G^doSVU*!;HPSZUpYefbbOa zgroh2R0p=Vq+WgIuMBB+42i5Y9dyXP$W%r=&Lo7e0{oA&AJwDW)gc=Ph-d!!6jD1N zlU5Y<=4PYM5?o}FV_|HfyVnyGfeBYokIKMyyGh~~?OjsF^}?7wo-%H#tkQ4H>;PV% zAa4;L7)g%p!b@dXvG2^_chj~6d=`|ZIAG=j$MDOyfrvyaEm3DPMW0j8UQR;cHlLS; zU^ao;xRoJmG2nFmMTUJbhUy+E{#VK6ga@WBcaos<KhICkL{<H}RvJF~-@x&Hhf#Z` zYid5(+3T$Okov*Sc`1n-dqZ2MYyfn$=)NVt(|yd#>V!0iSM?@8+lEZOdM)5iZ>8<C z5;4i{7pKFC?&)a<rYXeRDEC`va@cdQ!TUK>6i5#mqn8XuPN9F00mE<Tc;ATJGd^UB zx!d_M@vgA)ZM9d&bXHS&Xv#rZq>h(x$$i0uS$FQS__qOkSE4K4ctz@ZTNfieRGFSz zk#^Z|;N!7R<&z1~a;EhS=mvUKzDapu8Cv!Y4nj2iVVu9LLf_uF@X+&K^2<6!0JxkZ z_I8K=S{zcpGv!KD+@N?l)ha&5uEoV^!q^3AW!hk)@PHY)H$7wAKFM9Lf#j`=w-L}P zs~@Zo*vy>|i(=QSa#2zSy@_54T2<G0UH0fN^iCXGl$RyM7IFAIUdKZH6d2uUx4Q3g z1JLUJHJpD{;sR6fJ^2^B4~uE>J!F&e1~+72*Jq>X-FY{`$1@6UMM|HL-LVI-)S2B$ zujlwlWpDI_P&)KRX=s+nc*eWPd3-{uG2G+`T1F|fe9PURC^j;9oHOb(m`@<Q6h04p zxJDmnd=wt9Gq$fo6<pYXNWAx{bUWKI_&<=9bMmsXyxC*O=iDa$6iNOkbiqy$l7{#n zkjMWIGzE6}{XgG#Xp*$yp-BCD4j-|OB}op!hZ1mF1TFv9(`nuRJ5d6epZ|in^yyIY z@!75v$xQqufGi}>h7N8B#7bw{#XYZ?4qDXT2>c<MAPOI!7~spu0anvzTX|BWpwAB# zZ;ggCPU-L&{6u;kdm#{5<I3e9eCEGn8m6LF5=XQ6iHa)Zpff3?vX=(Dn<TW&E&mhM za8Vh*5@$$_!Oc~Ftc#q9e(sn2z`W*u**_?5pUy|5a8Sql@?3rx>Unj@gKN>wcU<(v z6+Ed$+7xnmsn_+#u*u5|>RMo<;LBB}pQ%>;6`@SE<nj6D<w-1VaC+H9&^`m0Bt{tf z0>oucaSAS2EY6~4X3)#&;fxc@$8RYXx;>DL_N|S$we@4O_6g*S4li&ERyd8hIXJf# zWb5b?<xgFJCpINqu7fa4n*8G`h3HsVO4<p7SJ1_!ELMv$9H+8Gd&auce_Y5CSs%)k z;`#ov1iR7@mY_V9d0!C-zj@0eH=uemyy``DK5Z&Xz}zsqwkGAL#zM!-UWH{jYT^3; z=sJ|cdNv&}Hp4A&Gu=z|f5;nroQPn!-hsS&pdFSrrJVM0l)+KDQp@PO!Wsu2mSYc| ztoi8+6S^R;Rr8ByT+nLOr;X=bzblV03)2EM$aE91lL#HpdY}}1HY}QDR3UZxW{0zC zXjA>xNRe$cyr0sU#8d+n;NTC?qM@lUo#|7rC41?l&`<*TEw@mFXY=6(-ARi#%J6Ky ztY+5~O~UirJtcuQ^7T(KBqJC9fKwwquuI$BHeMskz_9NRDvf?vkw<0XcFI0nQsWuH zJn+BZM?9ZhIZjJ>Lf9~Gr0fyMJtCMQaiMYH_Mtx3^_JEuUu~yK>0MMXV6b_qEDzAo zTUH#AWd&BYDW>I3bmA;zbxvX8^8Ae7mO=*qwsaay&O^N~=5}e~%H8Wg*Dt<Q_MEDc zF6pU2K=5kHy8g#QE>|d-5~M&=Q2+l`Ww&3?`w*42f<KYbBA_6H_v#7P?!T*^!HVVA zmiwzSwJx7~DRVtc2MEp6#%6A>Q7O8(-_h<>kM6SstGk5H`C?#5%{fN&a4>b)_|qna zVW9Hu)5V!&{`h~dv-`d#ZKPwMkUN~;y=G|OOi;_cj+Jm%y}_*A;vy+|;jQCxOoZMu z63lSVUIPiwxy=+`*<ouejeerz>DNE>Jy?0#D7nF{<1S79zJ;)2%{TubU%k$cw7OBd zPteAR8GG*2hJ;}?KThd(`i8%OYK$gMMCu7SB$tOQRP8VZH$CFlKiHJ?#uo9^F%&p* zS>gHJ-M(Lgh1SwRGC{{`iu@>kTw3W7RW*@S-o>Krv=QIUv8GYJzK`!=#{G=IEsy_g z33M6Wt*?xi?AkeyJvpzV)1R0wV`}h8*Ru*<yp&b%C57Mnx8!T64a!q8gCp1e`<V8Z zPf{IGKat(wqDJDrNgoKNslx5#D!pSVOg*HcwG^?qFEsRlA%^`RUrIAZT3zzqE5@by z1mnmiFRwX8^k0gtg*l$CFEY;Yvh~}>sP)JC7T+1vl)k#3#)=cFbvti4tDAbZw!{~E zP{`RW(k4zQo^T93U(^5=KJPo(S{33CvS<#MUzZJ-N75NJyihyc(NIM6zzLRK)OIh| zLf2xn>9fyvJ9fV9s6?;xjOkQ|LT{5=W=FURMQU%iDB3Tx^TX{nJAju_7N_7*jnm5A zo$d~N8HSu92vD5QzJ0UcxET!7UKx_LDt#{2wKF~|boUn#w(#YtPLp%X&MoOgi$4&b z88yoGa_N=Wftf+fNyTlxTs{O!(G>O@N65`7HuBYFeJq}STKzxC@-{`?Uv{Oc$y^5g z!`%PEUzOgNz84~b*IoL0mc)0wu-XA%)WK6ew6}l`a`+GU&nKS`ooLK~thr4t-R!K< zWTy)?jQZaWzn0DsJP~wp?({T)pDcDNs$s{ax?Yf~$+>Tq_&bK;w%e!7xt_SdzEi1( zZ%^=sks}2Qei0*PGkIh(d)ge`sd<jLt<Ov=o}aNhQ&ixmn^7p{q=!q{pBSrcn!%0m z>myCQxE#*sU-m0AQ|$FO4$2RoZ`sY9ZpUyOPc)hEbl}4^ySc#BuIFv{_+O){(jqdN z?PL8x<gF^u$W>5d5C@G3@p=BW<raRf^m{e_aJhY^i3HWz+?6d(n%M7B$)Anc^MalA zc3v}|sqkv)bS^qG4v8dtcGJQO7V!5`ye4OhqH0;yab7zI(siBoeRX+%|9A*3uHe6h z2y5<^={0tjz4Nh0bkY}(qvJh1fC{tJ3`b~CS{;WcdEy%AS1THJLx#&6vm=_|nx?5K zCM3;@{VRz}yZyfuV#<8jY#W?sPWh>5)6>ZwmC>-fhFk!UHY9p~CZRT62yxegX8?AJ z$!eM1gLnZ(6YV(LuRBPTMJEjfv5^#YcQ;T0jxu@-w}n#tze>bku_3$yL?ZrpaQlCh zh?VWC*)sQgV<r?g?f#IMa+V*!=`X5@9fa)~&l%r5Jr90-+V=FmMR47YeLMwFmC_a0 zq3~G0yF&;f%gmuPuk1%>OM$;)`ne!wqCrq*C}M8>8CL%&6tl7%sduf?+f9bm))J|h z|20%;e;<E2eV`{f&VE{l<xwpoEDBNoA=SE!9d4((E6V1(CJh$9d(;CxUMj#6Q4W@4 zdNW0ABsTM<sv?o7y&ZS6yA7qR66<Lz3T0UFRiozMhoBC+=E!8tsXfu_Vlcy5-qQ6N zV#O3JdC|Yn0&If`jZqI!&~ge?16{;=cENV@iNr#nF4C9d4CpDn%);N-=T_dD=Y9Sv zC^ZYCN#`J*34AbOSKCZKN>_Yfu`UjP&t$%+hI>9abRH#sPd~^XRgHgCHAN$1qdV;B z|H3&u{Xeh)fmC~3+Hm=3nvSG7g3&uA-&+>Ti~xyN2Exk1l=?jupmzuK?k0~=kN%bj zOJd#OU6VMISe@lA+k2f##)d^j_iffTUp3*?7+r&o?7|SgQ~Q{YgJ<Qe2sAQ%K}c^M zno_pDB$j?GEl=yTx{S_FA-a+g)J%c2q{jBomj&~FQX^({CF2D|pr1lW$bJ2lhGBs3 z9hGF-V;j9*QR_SnOsMQ11Y+FAObL+~^QTAl=kn3(jqPbC<8vNeNY(M=(V^*uVt=1| z-}^Si@XV(-Kh8g{(m2oQZT%rbTg=Lv)ARE0@^(Qb`})gdG-*5MG`I1Q=P=qwy!c$> z9I>vA?TgU<KC3lJ(zSgCw5Ao*pj>gyX~{3M3oVWm-9KD`Dpo|fPBm*~b@vWcVAzJf z?^(|aa5MbWg!57=_o#}e`1W=48X3BogFKB@D1#Nh7IgkhCs^a}T$sf!hJy4jobIGP zBF=EXIRY3bX)WgCm2EZE=)La!M1GwJtz|&QO6AOIY|ofa6#r=*0>G#IErIW(g{5s? z%ZzaYGMzpQa%$}T^5lsj>`x_2SKBI=Yhw!xy6Gu)7fF^5a{Cei4XgG%hCHARvh&uQ z6EP7%vy3F-LdSo}OF4rpnO6o9VLOIYfZ60K?%Ut0e1)p@8S^fvcK<;3<)A+8q{sf? zvsY{~Q$)QaY_nf@7-v6E^~dnwx$Na66W|=}zOYiyg6?W{WLCKwgvIu$+B5}kUwF~a zTiVxzy40lHgK{o(f-~|X5pTa*mAtOaH{!m~6?H+0{9rw4bb^*3bc_bT#vsNV^+@$? z0C8k!jg>0zaj*K#kfb4j^G_5MYwE2Y$dZbdp<pc`Fk;>%_eX}ePmNVYPM%aRnC-l1 zPRl-&f!Ud~;}M!LyasRV@PA_rBvq~r>bzc-U-G*QJ2v(6Fe#=JUdX#9+780*=wbR> zKgm(gA$nq437#K`-CB43vT*g`4Z-+O{8Qa@vJscYQ&jB$s*}3LVE+Le4kr|H&GgH| z;Qr;oO3&ddO>FVON;meM1dHg+AAl7cv?`i46lS3t<?`!MJ`rT=j&?YTIK;3zuPE@E zTQp+B=rU__cn_C8JPIG0n7#Gq#(*C~&5r{0U=SU}<o>n%%X@3`G}s9Lgk7nN$I}Vn znW+FikU?kLn$hJ2RxQUw#NwM9QAk{Q3V`e#L5`{pd0Thz)22r--L%k!ADa^vy@`bf z9-%K<8(QWBgTH-<Q35)9PVf_QyQ&eN$K5#$T)kp~lE9`vOa;`q_78*9)Sq|6YLm|C z2_QR-C+VcDI&@i8ty=q0w2CVnNi$Y}&zZZK9rLgWlQj~ddAjR)cVHW|ChvDF^eH%i z>FXEm>T-1IhUCfLi>JeNa9R4PgZeEZWK$WhsCIfzdnwaC^j3?)J4Ab<@(iDG_9E_| zkY^Ai)v;K;Zl65Ug01>+RmG5Pe>&aiTj?QHQ<%lhvSyo{x8}a@W|(r|xGYXQQqZ*h zjk-Vx1Lqm(i9+|GZCMY|Kmw&^NX5*-69Z395SkY*Zf&8@LZrK!BqQ`|ZxmO7L-Asq zBY<*}mXUM6NYRTk(Vx#wmFE&hD&&2J0(`yhTgsWr-)G*~UTQML{WVRHZ-b7vC}LRo z{de8&WJal4Exg_+$b7YyA}jp+#`N@30{%gM*Gue~U1#^H-AfQlgQ-C8+@@c=no><& zXFsXd;zWO@-;TToR@y|S$s`Z=H|!53QQD<vB0?c@!jC2MqM~AA)``>cTh}wV%IMmH zy`mrJohJ+ey-t7F6t;WY<E2c*huW(-TOuZ6*qEC;Ct@m9wxG5c66dl}V|*aHeQ&8m zmUw3B+_@d7;}*dLExJ3j=-4d*msXlywNWb<t_CEiQPMKEY{_iHNuwGcDq6Rqj}R0~ z&YosZGDkrRN{%>!p3<bGE)#>#7<^B(dz6#kMWo~u;(#Wi;c@HU7mLjb;&407f!X1C z9vY?Z+-BbqRh#@(8K)#u+da5w)0ZO{BBoARRX;Vyn)eb(*w^;~1uh?!-lczCqkC@t zM{=1={;j6G8+ih(*vqR<mB+@@7~-6Qnzr<*yzbJHz6`_nLKWwz_UB^52)*CzXh_pk zAc1c}HYIe_MMCrMq8eX#EO~ZY>@;8wdhj8D!)@7jvIG~8FR16N-yeYZc0OqZZ0ZWC zlG#cywYvFEi$^#z1x`eT`-$w<0kC5113VNur#Tg^sF`B4SLchj3|Si-+KVQwpV_{Z zF#Sf7ZC*NNdT@4Fml4MxL3Yi5{-ou`fNxRUax<}~VQ0gfokib6?@EIr+!B=~te&=U zEN>ehYZk9ys|mONUFL|#DAb81vJB$6)O}bW;0^lhmI<jpP(!>zeSI)gyu^LR<H7%% zx}Gj;P(fT)de3SH_QmqBF|8tU+Vox1vuPEUoSiBt3LBf{tU#3NvoKezzMER-{mmS( zt-9`sm8pY^tIvunDo2k2Ez0{-R80&EHz$YU>$gvByLZ}D<po3(l8B>>%c5T}@kOP6 z#zw}yA9+TDFR92;o!>^qj2@&5_@)Ma4ZcCoL?-aLU7tAXXrRZ%ZDrKs9I|^m-&!IH zygzd;#a+<kt~{d-uYL^;I0}j579sJigc#;^(YZrTDR9DhqZ_AY*Tmb(kgELC2O?Fm z6`0b+I=gJCCkS??Qb!XOn`YLn1V6COM}A=)pRtlyPc_%jRvU0#T0NF8*Rq)XgE8er zckrgN4CJ__1|KHi@%e7JdwJ~Qeg3hwCf;sMzA}gnAB7<L)c$*>lk`B{EjC*zT53<! zKY#7xip$RoW;7;L*cHie3ukzeH6i|vli7m$Zu&HCkbH$rZA+E6buB>g$i^;L3Od4e zs@P>}p)#*|#cBOY*oaS#;rmmu#4t@>YheH(00#p}=6n7Pu3mP@(e07K^tk|!q|M~c zD2dtewa#QbVn9u5;H_*3q+dEudY~g-8Mm!#ewY3i!H<8<Kz%y6am+9^rn}k`XX0Y) zZfNDuw)J#HF>Afg!&XYuUZnQmfKm8|n!%jg-%nRoK)O~m0L6#@UY*~jhp6))@xSW) zR>Q!G<z+kR-3n^c$e;I-)8&nyx={nwi{o@uWNoq$MG7;qp?g0vuk2zT1SrZ&|BxXH zu9E~ge5IYan4s-aQBkg_scU^jZQk%Bo8<4*9}5dLJY)X6#v;{`y@x|`N5%d4TC4(7 z(HdjN$AO5Y1&si0v;UKeSBbZ(m8CQ@mRA9#y=O8xAy!XaP(_9p>5eR;(>}xJ*=YIx z)l7pmms^2)DM(~%(J!zE0qqJ9K12l|c5L8>6*Dt5^^uj7C9@1<APZ7i3ao1F0IUUy z*c3ipW3~GgA$L7uSZe^I;-`NK@_SHS#OKL4ID)7-JdZx_H{N)7?`vzj%<^<7+Ct28 zM*o0>wu~B1DS%(|sF~Po{W@KSrtUAxKZJzXaS^iM%QaB3I6g;Cb5Sy{<qoHBB&)>O ze48#tISohHkf_|f#^UD0xc)-Z5tY-tz5fR3HgLG@plp^0?oz2-=&W8a9bO@mTCg0Y z(Y=h0`c(t>{ueQx1i1lo3rqaw%ek~;JhxMPD);a^czyAo`iv3X?(Diuab(uR5Lt2s zORDkS=d`NTPdtfi6}thGB>mxr=M{Tp|3vAq-KBM6wOCdoR~uM-EC>zl9$lf3i=x}G zRcbg%tA{mrBU8V~K2`Z)m(|<a(+~P?+*BSoutuN16#Rv0HN5>Ax2*iE)EufSh<K?S z)>=@=ep_ioirS&XMyM%_m}iKCETr<mdA7WD>zpg>Hpwt1B!r;ezoVKTiro@z9v+JV zqoXO^R)(l;s?`@@OXk$myAIn?6mLtgHmEGlp2^GA_=}Ll#?>lno{MsV%7{@P>A_B$ z@x*mnx2z)Zw2J?B-W3Y7Z$h|SxQqPg_<UMEQ>RMuC)JV%EZPN*^vfl;rWmH*)0r!B zv07|9nXw>ZdwErEpw|U?*UPup01;(uK@W~01az!#`990>D#Aitsdbhgm+^1!n$4Ag z4lebgb|-~$aLG(fJSgji*1P-R{U`=X!I)5s&#lLurd?`wYeF6-bmWsk6%wiJmJVmW z_?61o?O}Jh4G#B9wsoEXOU+Nn@2#tvraw_$I5(t=6qORv56b$Xba1gB-#ZZZosrVh zyACADEc~tHG60D?H17AB)OSo=dL#7B%xKV^H6?E-?am6Ti-WEsb-Xp%obQ(XN)y^| zkZw=8T1|Uc%?<6Rc$m{A*weA`@%vagZrv7(_|VZ^jsSUV{C^CINNy7W7iYb5$R{~V zsHk}14UiqqA*l=zT~1YPSnxINJ#e(hXKV}&`o}Q5JC1(N-q#C!`hwibh-j%o@B0mU z$5vM5Wc9cnvC8gTj?b9eF_xVI-Ddr)M}%YW4(JktSO3le2tj@F%^j<qEv11_%N-EI zvb|uD@w!E3G~%6e8{8L;Qq;g-TTABnnoi=Qr`SqO2aWg}pjTDdIi%|M1<hY@4}x?v z$B%=%nM^FI+XN2L_X^Mx7&HO~!>3wMmsk(ubvW6CX4O1`+sX019ZqbUu5;Y&?>7MB zgcQ&j(+8zRXP-|?t(Z3pn5C6~(v*GNE%J+Ord<Jd8pdi??jgZDdC23Qz;e#vtX?u_ z-G<I2!`+`9P|mj!cMhnz^sGtAacb(}n7Ax2=)4${C6qkr;gpn=xpj-+6*vs<{VP_T ziWFY%kEatidwM5CH|)?+K?%<4Xy`|F9*(jOq(h6)m8C!1lgdHKQdq~WWjG-d7&btg zogz_s*Nw5#j8|pf&iG!Wd)js<l3H0k9_ti!k78!RqSAF*n}cI>_WszfdT#Xtg4bFy zMux?JtC>r*k3pYz7D!qCE{k9z8}-;e0*E~on9rXqSk(x3`t=BKJAW!W+}-!w&yZ<4 zJzSdJyyJg8#^rK-309MhCJ4m5c>E5o*>$YO?}i4y5McUr2X$FujSPgSD!lFdII)br zoakiqb#}w1r#e;lt&5bi)Z}QgqB(R$(gEUWYuhX48aWRV)x<rYQ|`<geMdiEmE7)B zSnN>EqHT8LMP(aF5%xE8$0n2{>-X3{x*rY%Ar%UvpMLEz)r!|q9`aE3?-6py2w&#* zgbRB5-Yil*=oZ%mzbsm9qGS!fy6KUXRaQtk=GwESDdDO~jv<NfAgf9;c-&=<!GvQ6 z0LwAV)N_RCs|DSseJfjqtJX>GTNAx|0>uu-F1n^nKjW2B(if;G2)Oj{ulbG9>4XQc zOo$$p(B(}Xj7T#FIKA6`lcl6wn$#KujbS|=O)|`MSfeWNHQwq_lkW;+@)|tUkl$a= zZaBB%N|suD|Ft2glpWjxNXir3weOMa=lqKAR~!buzlDUDwLAt6mj6{gn)Rl^Xq~y- zC*C{sEb9EpS&R<)m;i31f-1e94278Z>=|ZhE#T3uZdp#9hxu3QDmw#tqJoCj6v0_} zt0i|BmO-z%ouhENgFKXFPXjguK<4ynIY)e!NR$k13|*)9YPsw~A;JXVQukrYRROuk z&V@nD%&hqF@#N6?jj4*_7U`D+*!SNAYbT@+;|FX7*@B~J<7`tfBnnmyWC?(U>t@{z zDAXxQkJ&iZ0m(J>#&{w89wAvv?g!0Fj8nSZ%P)c;Z?!tsAzS0sjYdm)=QIJkViy6i z(-v`$sCoNmDh>~rT^s&{y_+xzvOHs~>@&ag#-o-;ZUHqTPAt!cauAl6p#KYJR_u7E zvsK*tHO5<Z1>epzJ_@m02!O(j)JH+KYj=$DP7~`63-@^1MIb+SFp_Ud&_;&y3?YYu zadZ<7?t>={GN3#M=ddR65ou0Am4z+U_z*WVJAOWJw0wzc$6Wr%lD^n_4ir+>fznNg zEOe#+!-LME>6l69tZ0Xz<7dqduXpQ(jb@(FrIY-TEp2htU|`f($`?WLzqanqDs<qt zi-R_~CBW$x)x=^Gi}{(LK2Y*}9a~_!k)2a}fvs>9Z5d{LSjbAs!@v&bj$&hfw}!~c zPx_q|_y7lZ4<x4R3SRJ~SqnhZ=$MP0+~DCLCk`@{dMvuQ63Pw$a>ojZ2*CxYBD;T> zG?`wxqfK=>i?3JSv=_{bu`iYBWuuJT8YR*1&*IGWEeYCBQ9<eX##3Z0 g+>zT-o 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 MPgg&ebxsLQ06IS@ng9R* From 281a1d77cc55b2d7903c4ed06edf31e708c854ac Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Sat, 13 Mar 2021 13:28:58 -0800 Subject: [PATCH 47/50] Prepping release --- com.github.kmwallio.thiefmd.spec | 2 +- data/com.github.kmwallio.thiefmd.appdata.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/com.github.kmwallio.thiefmd.spec b/com.github.kmwallio.thiefmd.spec index 3a0bcfc..e1601f5 100644 --- a/com.github.kmwallio.thiefmd.spec +++ b/com.github.kmwallio.thiefmd.spec @@ -323,7 +323,7 @@ rm -vf %{buildroot}%{_libdir}/libultheme.a %postun -p /sbin/ldconfig %changelog -* Sun Mar 14 2021 kmwallio <mwallio@gmail.com> - 0.1.7 +* Sun Mar 13 2021 kmwallio <mwallio@gmail.com> - 0.1.7 - Snap.as image upload support - WordPress featured image support - Performance improvements for experimental mode diff --git a/data/com.github.kmwallio.thiefmd.appdata.xml b/data/com.github.kmwallio.thiefmd.appdata.xml index 0c67af8..a74fbf3 100644 --- a/data/com.github.kmwallio.thiefmd.appdata.xml +++ b/data/com.github.kmwallio.thiefmd.appdata.xml @@ -54,7 +54,7 @@ </screenshot> </screenshots> <releases> - <release version="0.1.7" date="2021-03-14" urgency="low"> + <release version="0.1.7" date="2021-03-13" urgency="low"> <description> <p>Finess and WordPress</p> <ul> From fe5131c5ed3046ccd75d29631e346c49c33f7e60 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Sat, 13 Mar 2021 13:33:28 -0800 Subject: [PATCH 48/50] Add more release notes --- docs/_posts/2021-03-13-stability-and-improvements.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/_posts/2021-03-13-stability-and-improvements.md b/docs/_posts/2021-03-13-stability-and-improvements.md index f8fb9b3..1b45b97 100644 --- a/docs/_posts/2021-03-13-stability-and-improvements.md +++ b/docs/_posts/2021-03-13-stability-and-improvements.md @@ -35,10 +35,14 @@ We've improved how heading margins are calculated, which means... we've relaxed We've lowered the chances of crashing in experimental mode. When selecting text with experimental mode, bold links will become normal font as [invisible text can cause a crash if formatted differently from surrounding text](https://stackoverflow.com/a/59314509). +We made Experimental Mode Faster! We now check your proximity to hidden URLs instead of always scanning the whole document. + ## Bug Fixes Fixed and issue where PDF export tried using non-PDF themes. +More advanced Regex highlighting. Reference Links next to In-line links should look good in most cases. + ## More to come... We're still working on Tagging and Categories for WordPress and Ghost. Checkout the [ThiefMD Project Board](https://github.com/kmwallio/ThiefMD/projects) to see what we have planned, and let us know how we can empower you to do more! \ No newline at end of file From 902768563337e6fa0448ad567bbbdd9a7d46e5a3 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Sat, 13 Mar 2021 13:36:22 -0800 Subject: [PATCH 49/50] Name release based on theme of content being released? --- data/com.github.kmwallio.thiefmd.appdata.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/data/com.github.kmwallio.thiefmd.appdata.xml b/data/com.github.kmwallio.thiefmd.appdata.xml index a74fbf3..fdfe7bf 100644 --- a/data/com.github.kmwallio.thiefmd.appdata.xml +++ b/data/com.github.kmwallio.thiefmd.appdata.xml @@ -56,14 +56,16 @@ <releases> <release version="0.1.7" date="2021-03-13" urgency="low"> <description> - <p>Finess and WordPress</p> + <p>The subtle update.</p> <ul> + <li>New Translations available: French, Slovak, and Swedish</li> <li>Snap.as image upload support</li> <li>WordPress featured image support</li> <li>Performance improvements for experimental mode</li> + <li>Small UI bug fixes and PDF export fixes</li> </ul> </description> - <url>https://github.com/kmwallio/ThiefMD/releases/tag/v0.1.6-finess</url> + <url>https://github.com/kmwallio/ThiefMD/releases/tag/v0.1.7-subtle</url> </release> <release version="0.1.6" date="2021-03-05" urgency="low"> <description> From 6e3afd93fdcc10fe7944eae5ea7eb3deca24b173 Mon Sep 17 00:00:00 2001 From: kmwallio <mwallio@gmail.com> Date: Sat, 13 Mar 2021 13:44:54 -0800 Subject: [PATCH 50/50] Update po files for release and spec version --- com.github.kmwallio.thiefmd.spec | 3 ++- po/LINGUAS | 1 - po/com.github.kmwallio.thiefmd.pot | 14 +++++++------- po/en_GB.po | 14 +++++++------- po/es.po | 14 +++++++------- po/fr.po | 14 +++++++------- po/sk.po | 14 +++++++------- po/sv.po | 14 +++++++------- 8 files changed, 44 insertions(+), 44 deletions(-) diff --git a/com.github.kmwallio.thiefmd.spec b/com.github.kmwallio.thiefmd.spec index e1601f5..ca7cabf 100644 --- a/com.github.kmwallio.thiefmd.spec +++ b/com.github.kmwallio.thiefmd.spec @@ -1,5 +1,5 @@ Name: com.github.kmwallio.thiefmd -Version: 0.1.6 +Version: 0.1.7 Release: 1%{?dist} Summary: The markdown editor worth stealing. License: GPL-3.0+ @@ -318,6 +318,7 @@ rm -vf %{buildroot}%{_libdir}/libultheme.a /usr/share/locale/es/LC_MESSAGES/com.github.kmwallio.thiefmd.mo /usr/share/locale/fr/LC_MESSAGES/com.github.kmwallio.thiefmd.mo /usr/share/locale/sk/LC_MESSAGES/com.github.kmwallio.thiefmd.mo +/usr/share/locale/sv/LC_MESSAGES/com.github.kmwallio.thiefmd.mo %post -p /sbin/ldconfig %postun -p /sbin/ldconfig diff --git a/po/LINGUAS b/po/LINGUAS index 7edd07e..b31299f 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -3,4 +3,3 @@ es fr sk sv - diff --git a/po/com.github.kmwallio.thiefmd.pot b/po/com.github.kmwallio.thiefmd.pot index 898d483..acf50d4 100644 --- a/po/com.github.kmwallio.thiefmd.pot +++ b/po/com.github.kmwallio.thiefmd.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: com.github.kmwallio.thiefmd\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-12 19:03-0800\n" +"POT-Creation-Date: 2021-03-13 13:43-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -337,11 +337,11 @@ msgstr "" msgid "_Keep what's in editor" msgstr "" -#: src/Widgets/Editor.vala:1686 +#: src/Widgets/Editor.vala:1694 msgid "Insert Datetime" msgstr "" -#: src/Widgets/Editor.vala:1704 +#: src/Widgets/Editor.vala:1712 msgid "Insert YAML Frontmatter" msgstr "" @@ -701,19 +701,19 @@ msgstr "" msgid "Edit Preferences" msgstr "" -#: src/Widgets/ThemeSelector.vala:51 +#: src/Widgets/ThemeSelector.vala:50 msgid "Font" msgstr "" -#: src/Widgets/ThemeSelector.vala:56 +#: src/Widgets/ThemeSelector.vala:55 msgid "Spacing" msgstr "" -#: src/Widgets/ThemeSelector.vala:137 +#: src/Widgets/ThemeSelector.vala:138 msgid "Font Selector" msgstr "" -#: src/Widgets/ThemeSelector.vala:320 +#: src/Widgets/ThemeSelector.vala:322 msgid "" "Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" "<small>Stored in <a href='file://" diff --git a/po/en_GB.po b/po/en_GB.po index 43857fe..790fcdb 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: ThiefMD\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-12 19:03-0800\n" +"POT-Creation-Date: 2021-03-13 13:43-0800\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -337,11 +337,11 @@ msgstr "Load from Disk" msgid "_Keep what's in editor" msgstr "Keep what's in Editor" -#: src/Widgets/Editor.vala:1686 +#: src/Widgets/Editor.vala:1694 msgid "Insert Datetime" msgstr "Insert Datetime" -#: src/Widgets/Editor.vala:1704 +#: src/Widgets/Editor.vala:1712 msgid "Insert YAML Frontmatter" msgstr "Insert YAML Frontmatter" @@ -707,19 +707,19 @@ msgstr "Preferences" msgid "Edit Preferences" msgstr "Edit Preferences" -#: src/Widgets/ThemeSelector.vala:51 +#: src/Widgets/ThemeSelector.vala:50 msgid "Font" msgstr "Font" -#: src/Widgets/ThemeSelector.vala:56 +#: src/Widgets/ThemeSelector.vala:55 msgid "Spacing" msgstr "" -#: src/Widgets/ThemeSelector.vala:137 +#: src/Widgets/ThemeSelector.vala:138 msgid "Font Selector" msgstr "Font Selector" -#: src/Widgets/ThemeSelector.vala:320 +#: src/Widgets/ThemeSelector.vala:322 msgid "" "Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" "<small>Stored in <a href='file://" diff --git a/po/es.po b/po/es.po index ded4143..044fe44 100644 --- a/po/es.po +++ b/po/es.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: ThiefMD\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-12 19:03-0800\n" +"POT-Creation-Date: 2021-03-13 13:43-0800\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -329,11 +329,11 @@ msgstr "_Cargar desde disco" msgid "_Keep what's in editor" msgstr "_Mantener lo que hay en el editor" -#: src/Widgets/Editor.vala:1686 +#: src/Widgets/Editor.vala:1694 msgid "Insert Datetime" msgstr "Insertar fecha y hora" -#: src/Widgets/Editor.vala:1704 +#: src/Widgets/Editor.vala:1712 msgid "Insert YAML Frontmatter" msgstr "Insertar Frontmatter YAML" @@ -699,19 +699,19 @@ msgstr "Preferencias" msgid "Edit Preferences" msgstr "Editar preferencias" -#: src/Widgets/ThemeSelector.vala:51 +#: src/Widgets/ThemeSelector.vala:50 msgid "Font" msgstr "Fuente" -#: src/Widgets/ThemeSelector.vala:56 +#: src/Widgets/ThemeSelector.vala:55 msgid "Spacing" msgstr "" -#: src/Widgets/ThemeSelector.vala:137 +#: src/Widgets/ThemeSelector.vala:138 msgid "Font Selector" msgstr "Selector de fuentes" -#: src/Widgets/ThemeSelector.vala:320 +#: src/Widgets/ThemeSelector.vala:322 msgid "" "Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" "<small>Stored in <a href='file://" diff --git a/po/fr.po b/po/fr.po index 138e197..8a3e446 100644 --- a/po/fr.po +++ b/po/fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: ThiefMD\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-12 19:03-0800\n" +"POT-Creation-Date: 2021-03-13 13:43-0800\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -340,11 +340,11 @@ msgstr "C_harger depuis le disque" msgid "_Keep what's in editor" msgstr "_Garder ce qui est dans l'éditeur" -#: src/Widgets/Editor.vala:1686 +#: src/Widgets/Editor.vala:1694 msgid "Insert Datetime" msgstr "Insérer Datetime" -#: src/Widgets/Editor.vala:1704 +#: src/Widgets/Editor.vala:1712 msgid "Insert YAML Frontmatter" msgstr "Insérer le Frontmatter YAML" @@ -716,19 +716,19 @@ msgstr "Préférences" msgid "Edit Preferences" msgstr "Modifier les préférences" -#: src/Widgets/ThemeSelector.vala:51 +#: src/Widgets/ThemeSelector.vala:50 msgid "Font" msgstr "Police" -#: src/Widgets/ThemeSelector.vala:56 +#: src/Widgets/ThemeSelector.vala:55 msgid "Spacing" msgstr "" -#: src/Widgets/ThemeSelector.vala:137 +#: src/Widgets/ThemeSelector.vala:138 msgid "Font Selector" msgstr "Sélecteur de police" -#: src/Widgets/ThemeSelector.vala:320 +#: src/Widgets/ThemeSelector.vala:322 msgid "" "Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" "<small>Stored in <a href='file://" diff --git a/po/sk.po b/po/sk.po index a07bb5c..01ca8e1 100644 --- a/po/sk.po +++ b/po/sk.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: ThiefMD\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-12 19:03-0800\n" +"POT-Creation-Date: 2021-03-13 13:43-0800\n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -329,11 +329,11 @@ msgstr "_Načítať z disku" msgid "_Keep what's in editor" msgstr "" -#: src/Widgets/Editor.vala:1686 +#: src/Widgets/Editor.vala:1694 msgid "Insert Datetime" msgstr "" -#: src/Widgets/Editor.vala:1704 +#: src/Widgets/Editor.vala:1712 msgid "Insert YAML Frontmatter" msgstr "" @@ -693,19 +693,19 @@ msgstr "Voľby" msgid "Edit Preferences" msgstr "Upraviť predvoľby" -#: src/Widgets/ThemeSelector.vala:51 +#: src/Widgets/ThemeSelector.vala:50 msgid "Font" msgstr "Písmo" -#: src/Widgets/ThemeSelector.vala:56 +#: src/Widgets/ThemeSelector.vala:55 msgid "Spacing" msgstr "Rozloženie" -#: src/Widgets/ThemeSelector.vala:137 +#: src/Widgets/ThemeSelector.vala:138 msgid "Font Selector" msgstr "Výber písma" -#: src/Widgets/ThemeSelector.vala:320 +#: src/Widgets/ThemeSelector.vala:322 msgid "" "Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" "<small>Stored in <a href='file://" diff --git a/po/sv.po b/po/sv.po index 88a4600..57fa57d 100644 --- a/po/sv.po +++ b/po/sv.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: ThiefMD\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-12 19:03-0800\n" +"POT-Creation-Date: 2021-03-13 13:43-0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -337,11 +337,11 @@ msgstr "_Läs in från disk" msgid "_Keep what's in editor" msgstr "_Behåll vad som finns i redigeraren" -#: src/Widgets/Editor.vala:1686 +#: src/Widgets/Editor.vala:1694 msgid "Insert Datetime" msgstr "Infoga datumtid" -#: src/Widgets/Editor.vala:1704 +#: src/Widgets/Editor.vala:1712 msgid "Insert YAML Frontmatter" msgstr "Infoga YAML Frontmatter" @@ -707,19 +707,19 @@ msgstr "Inställningar" msgid "Edit Preferences" msgstr "Redigera inställningar" -#: src/Widgets/ThemeSelector.vala:51 +#: src/Widgets/ThemeSelector.vala:50 msgid "Font" msgstr "Teckensnitt" -#: src/Widgets/ThemeSelector.vala:56 +#: src/Widgets/ThemeSelector.vala:55 msgid "Spacing" msgstr "Mellanslag" -#: src/Widgets/ThemeSelector.vala:137 +#: src/Widgets/ThemeSelector.vala:138 msgid "Font Selector" msgstr "Teckensnittsväljare" -#: src/Widgets/ThemeSelector.vala:320 +#: src/Widgets/ThemeSelector.vala:322 msgid "" "Download <a href='https://themes.thiefmd.com/themes/'>more themes</a>.\n" "<small>Stored in <a href='file://"