Changeset 3480712
- Timestamp:
- 03/11/2026 11:59:26 PM (2 weeks ago)
- Location:
- simple-ebook-viewer
- Files:
-
- 111 added
- 43 deleted
- 11 edited
-
tags/0.4.1/simple-ebook-viewer_v0.4.1.zip (added)
-
tags/1.0.0 (added)
-
tags/1.0.0/LICENSE (added)
-
tags/1.0.0/README.md (added)
-
tags/1.0.0/dist (added)
-
tags/1.0.0/dist/assets (added)
-
tags/1.0.0/dist/assets/Manrope-VariableFont_wght-DFQ-JMC6.woff2 (added)
-
tags/1.0.0/dist/assets/OpenDyslexic-Bold-asFfTek6.woff2 (added)
-
tags/1.0.0/dist/assets/OpenDyslexic-BoldItalic-olh_H-lW.woff2 (added)
-
tags/1.0.0/dist/assets/OpenDyslexic-Italic-7X3nXTrH.woff2 (added)
-
tags/1.0.0/dist/assets/OpenDyslexic-Regular-mq3eNZ-9.woff2 (added)
-
tags/1.0.0/dist/assets/comic-book-lfvJFMj-.js (added)
-
tags/1.0.0/dist/assets/epub-KvD48Q4-.js (added)
-
tags/1.0.0/dist/assets/fb2-ClJpypHw.js (added)
-
tags/1.0.0/dist/assets/fflate-ChZ5a79y.js (added)
-
tags/1.0.0/dist/assets/fixed-layout-jzZkXagm.js (added)
-
tags/1.0.0/dist/assets/latinmodern-math-D8vU1ynp.woff2 (added)
-
tags/1.0.0/dist/assets/lmroman10-bold-Bt2TjdBf.woff2 (added)
-
tags/1.0.0/dist/assets/lmroman10-bolditalic-BTV195Vo.woff2 (added)
-
tags/1.0.0/dist/assets/lmroman10-italic-2lV75sgr.woff2 (added)
-
tags/1.0.0/dist/assets/lmroman10-regular-MgNYzB3C.woff2 (added)
-
tags/1.0.0/dist/assets/mobi-D3_qgME0.js (added)
-
tags/1.0.0/dist/assets/paginator-Q5xludiF.js (added)
-
tags/1.0.0/dist/assets/search-BpcFCD71.js (added)
-
tags/1.0.0/dist/assets/simebv-viewer-DDj33M1Y.css (added)
-
tags/1.0.0/dist/assets/simebv-viewer-DrOW_OfM.js (added)
-
tags/1.0.0/dist/assets/sre-OB9-ZODU.js (added)
-
tags/1.0.0/dist/assets/tts-BWVnA2PP.js (added)
-
tags/1.0.0/dist/assets/zip-CqQxo32y.js (added)
-
tags/1.0.0/dist/manifest.json (added)
-
tags/1.0.0/dist/simebv-viewer-init.js (added)
-
tags/1.0.0/dist/simebv-viewer-lib.js (added)
-
tags/1.0.0/dist/speech-rule-engine (added)
-
tags/1.0.0/dist/speech-rule-engine/lib (added)
-
tags/1.0.0/dist/speech-rule-engine/lib/mathmaps (added)
-
tags/1.0.0/dist/speech-rule-engine/lib/mathmaps/af.json (added)
-
tags/1.0.0/dist/speech-rule-engine/lib/mathmaps/base.json (added)
-
tags/1.0.0/dist/speech-rule-engine/lib/mathmaps/ca.json (added)
-
tags/1.0.0/dist/speech-rule-engine/lib/mathmaps/da.json (added)
-
tags/1.0.0/dist/speech-rule-engine/lib/mathmaps/de.json (added)
-
tags/1.0.0/dist/speech-rule-engine/lib/mathmaps/en.json (added)
-
tags/1.0.0/dist/speech-rule-engine/lib/mathmaps/es.json (added)
-
tags/1.0.0/dist/speech-rule-engine/lib/mathmaps/euro.json (added)
-
tags/1.0.0/dist/speech-rule-engine/lib/mathmaps/fr.json (added)
-
tags/1.0.0/dist/speech-rule-engine/lib/mathmaps/hi.json (added)
-
tags/1.0.0/dist/speech-rule-engine/lib/mathmaps/it.json (added)
-
tags/1.0.0/dist/speech-rule-engine/lib/mathmaps/ko.json (added)
-
tags/1.0.0/dist/speech-rule-engine/lib/mathmaps/nb.json (added)
-
tags/1.0.0/dist/speech-rule-engine/lib/mathmaps/nemeth.json (added)
-
tags/1.0.0/dist/speech-rule-engine/lib/mathmaps/nn.json (added)
-
tags/1.0.0/dist/speech-rule-engine/lib/mathmaps/sv.json (added)
-
tags/1.0.0/includes (added)
-
tags/1.0.0/includes/simebv-admin.php (added)
-
tags/1.0.0/includes/simebv-base.php (added)
-
tags/1.0.0/includes/simebv-viewer.php (added)
-
tags/1.0.0/languages (added)
-
tags/1.0.0/languages/simple-ebook-viewer-it_IT-simebv-viewer-lib.json (added)
-
tags/1.0.0/languages/simple-ebook-viewer-it_IT.mo (added)
-
tags/1.0.0/languages/simple-ebook-viewer-it_IT.po (added)
-
tags/1.0.0/languages/simple-ebook-viewer.pot (added)
-
tags/1.0.0/readme.txt (added)
-
tags/1.0.0/simple-ebook-viewer.php (added)
-
tags/1.0.0/uninstall.php (added)
-
tags/1.0.0/vendor (added)
-
tags/1.0.0/vendor/vite-for-wp (added)
-
tags/1.0.0/vendor/vite-for-wp/LICENSE (added)
-
tags/1.0.0/vendor/vite-for-wp/vite-for-wp.php (added)
-
trunk/README.md (modified) (5 diffs)
-
trunk/dist/assets/OpenDyslexic-Bold-asFfTek6.woff2 (added)
-
trunk/dist/assets/OpenDyslexic-BoldItalic-olh_H-lW.woff2 (added)
-
trunk/dist/assets/OpenDyslexic-Italic-7X3nXTrH.woff2 (added)
-
trunk/dist/assets/OpenDyslexic-Regular-mq3eNZ-9.woff2 (added)
-
trunk/dist/assets/annotation_layer_builder-LCdmLuw8.css (deleted)
-
trunk/dist/assets/comic-book-CNy7_Hja.js (deleted)
-
trunk/dist/assets/comic-book-CNy7_Hja.js.map (deleted)
-
trunk/dist/assets/comic-book-lfvJFMj-.js (added)
-
trunk/dist/assets/empty-CRMO4_-l.js (deleted)
-
trunk/dist/assets/empty-CRMO4_-l.js.map (deleted)
-
trunk/dist/assets/epub-BQqBxsAu.js (deleted)
-
trunk/dist/assets/epub-BQqBxsAu.js.map (deleted)
-
trunk/dist/assets/epub-KvD48Q4-.js (added)
-
trunk/dist/assets/fb2-ClJpypHw.js (added)
-
trunk/dist/assets/fb2-DoA4UCCO.js (deleted)
-
trunk/dist/assets/fb2-DoA4UCCO.js.map (deleted)
-
trunk/dist/assets/fflate-Bye76UFF.js (deleted)
-
trunk/dist/assets/fflate-Bye76UFF.js.map (deleted)
-
trunk/dist/assets/fflate-ChZ5a79y.js (added)
-
trunk/dist/assets/fixed-layout-CEdlqyLS.js (deleted)
-
trunk/dist/assets/fixed-layout-CEdlqyLS.js.map (deleted)
-
trunk/dist/assets/fixed-layout-jzZkXagm.js (added)
-
trunk/dist/assets/index-BE0jtfAT.js (deleted)
-
trunk/dist/assets/index-BE0jtfAT.js.map (deleted)
-
trunk/dist/assets/index-CuYyqOcS.js (deleted)
-
trunk/dist/assets/index-CuYyqOcS.js.map (deleted)
-
trunk/dist/assets/index-D4gP0cnb.js (deleted)
-
trunk/dist/assets/index-D4gP0cnb.js.map (deleted)
-
trunk/dist/assets/latinmodern-math-D8vU1ynp.woff2 (added)
-
trunk/dist/assets/lmroman10-bold-Bt2TjdBf.woff2 (added)
-
trunk/dist/assets/lmroman10-bolditalic-BTV195Vo.woff2 (added)
-
trunk/dist/assets/lmroman10-italic-2lV75sgr.woff2 (added)
-
trunk/dist/assets/lmroman10-regular-MgNYzB3C.woff2 (added)
-
trunk/dist/assets/mobi-CUP3Mkj_.js (deleted)
-
trunk/dist/assets/mobi-CUP3Mkj_.js.map (deleted)
-
trunk/dist/assets/mobi-D3_qgME0.js (added)
-
trunk/dist/assets/paginator-DQoPXZqM.js (deleted)
-
trunk/dist/assets/paginator-DQoPXZqM.js.map (deleted)
-
trunk/dist/assets/paginator-Q5xludiF.js (added)
-
trunk/dist/assets/pdf-Z5ZBySEz.js (deleted)
-
trunk/dist/assets/pdf-Z5ZBySEz.js.map (deleted)
-
trunk/dist/assets/pdf-et8PL5bm.mjs (deleted)
-
trunk/dist/assets/pdf.mjs-Clxyfw0k.map (deleted)
-
trunk/dist/assets/pdf.worker-DHaD_gt7.mjs (deleted)
-
trunk/dist/assets/pdf.worker.mjs-BEagiU_I.map (deleted)
-
trunk/dist/assets/search-BpcFCD71.js (added)
-
trunk/dist/assets/search-CeeluKVp.js (deleted)
-
trunk/dist/assets/search-CeeluKVp.js.map (deleted)
-
trunk/dist/assets/simebv-viewer-DDj33M1Y.css (added)
-
trunk/dist/assets/simebv-viewer-DrOW_OfM.js (added)
-
trunk/dist/assets/simebv-viewer-lib-Di7Vv8I8.css (deleted)
-
trunk/dist/assets/simebv-viewer-lib-DwWpJfpU.js (deleted)
-
trunk/dist/assets/simebv-viewer-lib-DwWpJfpU.js.map (deleted)
-
trunk/dist/assets/sre-OB9-ZODU.js (added)
-
trunk/dist/assets/text_layer_builder-CK6eTUxR.css (deleted)
-
trunk/dist/assets/tts-BWVnA2PP.js (added)
-
trunk/dist/assets/tts-DmfHnK0f.js (deleted)
-
trunk/dist/assets/tts-DmfHnK0f.js.map (deleted)
-
trunk/dist/assets/url-B8ma4Nbk.js (deleted)
-
trunk/dist/assets/url-B8ma4Nbk.js.map (deleted)
-
trunk/dist/assets/url-Wrlwsv9T.js (deleted)
-
trunk/dist/assets/url-Wrlwsv9T.js.map (deleted)
-
trunk/dist/assets/zip-CqQxo32y.js (added)
-
trunk/dist/assets/zip-w4eY6XnM.js (deleted)
-
trunk/dist/assets/zip-w4eY6XnM.js.map (deleted)
-
trunk/dist/manifest.json (modified) (10 diffs)
-
trunk/dist/simebv-viewer-init.js (added)
-
trunk/dist/simebv-viewer-lib.js (added)
-
trunk/dist/speech-rule-engine (added)
-
trunk/dist/speech-rule-engine/lib (added)
-
trunk/dist/speech-rule-engine/lib/mathmaps (added)
-
trunk/dist/speech-rule-engine/lib/mathmaps/af.json (added)
-
trunk/dist/speech-rule-engine/lib/mathmaps/base.json (added)
-
trunk/dist/speech-rule-engine/lib/mathmaps/ca.json (added)
-
trunk/dist/speech-rule-engine/lib/mathmaps/da.json (added)
-
trunk/dist/speech-rule-engine/lib/mathmaps/de.json (added)
-
trunk/dist/speech-rule-engine/lib/mathmaps/en.json (added)
-
trunk/dist/speech-rule-engine/lib/mathmaps/es.json (added)
-
trunk/dist/speech-rule-engine/lib/mathmaps/euro.json (added)
-
trunk/dist/speech-rule-engine/lib/mathmaps/fr.json (added)
-
trunk/dist/speech-rule-engine/lib/mathmaps/hi.json (added)
-
trunk/dist/speech-rule-engine/lib/mathmaps/it.json (added)
-
trunk/dist/speech-rule-engine/lib/mathmaps/ko.json (added)
-
trunk/dist/speech-rule-engine/lib/mathmaps/nb.json (added)
-
trunk/dist/speech-rule-engine/lib/mathmaps/nemeth.json (added)
-
trunk/dist/speech-rule-engine/lib/mathmaps/nn.json (added)
-
trunk/dist/speech-rule-engine/lib/mathmaps/sv.json (added)
-
trunk/includes/simebv-admin.php (modified) (8 diffs)
-
trunk/includes/simebv-base.php (added)
-
trunk/includes/simebv-viewer.php (modified) (7 diffs)
-
trunk/languages/simple-ebook-viewer-it_IT-simebv-viewer-lib.json (modified) (5 diffs)
-
trunk/languages/simple-ebook-viewer-it_IT.mo (modified) (previous)
-
trunk/languages/simple-ebook-viewer-it_IT.po (modified) (7 diffs)
-
trunk/languages/simple-ebook-viewer.pot (modified) (7 diffs)
-
trunk/readme.txt (modified) (6 diffs)
-
trunk/simple-ebook-viewer.php (modified) (3 diffs)
-
trunk/uninstall.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
simple-ebook-viewer/trunk/README.md
r3301587 r3480712 65 65 * **`default-font-size`** 66 66 - accepted values: "**small**", "**medium**", "**large**", "**x-large**" (default: **medium**) 67 * **`font-family`** 68 - accepted_values: "**auto**", "**serif**", "**sans-serif**", "**monospace**", "**opendyslexic**" (default: **auto**) 67 69 * **`page-margins`** 68 70 - accepted values: "**small**", "**medium**", "**large**" (default: **medium**) 71 * **`show-annotations`** 72 - accepted values: "**true**", "**false**" (default: **false**) 73 * **`show-page-delimiters`** 74 - accepted values: "**true**", "**false**" (default: **false**) 69 75 * **`zoom`** 70 76 - accepted values: "**fit-page**", "**fit-width**" or a number in the range **10 - 400** (default: **fit-page**) … … 72 78 - accepted values: "**auto**", "**sepia**", "**light**", "**dark**" (default: **auto**) 73 79 74 Layout, max-pages, default-font-size and page-margins are only available for reflowable ebooks, while zoomis only available for fixed layout ones.80 `Layout`, `max-pages`, `default-font-size` and `page-margins` are only available for reflowable ebooks, while `zoom` is only available for fixed layout ones. 75 81 76 Max-pagesis the maximum number of pages (in the "paginated" layout) that the user will be able to see in a single view (if there is enough screen space).82 `Max-pages` is the maximum number of pages (in the "paginated" layout) that the user will be able to see in a single view (if there is enough screen space). 77 83 78 Color-scheme: "auto" means that the Viewer will adapt to the preferred color-scheme set by the user in their device or browser (light or dark). 84 `Show-annotations` and `show-page-delimiters` let the user see on the pages the Calibre annotations (as highlighted text, if there are Calibre annotations in the ebook) and the page delimiters (as short vertical bars, if the ebook contains a page list). 85 86 `Color-scheme`: "auto" means that the Viewer will adapt to the preferred color-scheme set by the user in their device or browser (light or dark). 79 87 80 88 For most ebooks these preferences should be enough, but sometimes there are ebooks with style rules that don't play well with the styles set by the Viewer, so the users have also the option to apply some filters to the Viewer's colors (with the menu entry "Color filter..."). … … 92 100 - accepted values: a valid CSS hex color code (default: **#FFFFFF**) 93 101 94 Set activate-color-filter to "true" is necessary to enable all the other filters, and set bg-transparent-filter to false is necessary to enable bg-color-filter.102 Set `activate-color-filter` to "true" is necessary to enable all the other filters, and set `bg-transparent-filter` to false is necessary to enable `bg-color-filter`. 95 103 96 Bg-transparent-filter and bg-color-filterare available for reflowable ebooks only.104 `Bg-transparent-filter` and `bg-color-filter` are available for reflowable ebooks only. 97 105 98 Invert-color-filterinverts the lightness of the colors. With a value of 0 it has no effect, with a value of 1, the white will become black and the black will become white.106 `Invert-color-filter` inverts the lightness of the colors. With a value of 0 it has no effect, with a value of 1, the white will become black and the black will become white. 99 107 100 Rotate-color-filter rotates the hues of all the colors in the ebook, like in a [Color Wheel](https://developer.mozilla.org/en-US/docs/Glossary/Color_wheel) (so, no effect on black and white). 108 `Rotate-color-filter` rotates the hues of all the colors in the ebook, like in a [Color Wheel](https://developer.mozilla.org/en-US/docs/Glossary/Color_wheel) (so, no effect on black and white). 109 110 There are some other settings that the users won't be able to change by themselves. These are: 111 * **`always-full-viewport`** 112 - accepted values: "**true**", "**false**" (default: **false**. If **true**, **return-to-url** is also required) 113 * **`return-to-url`** 114 - accepted values: a URL with the same hostname than the page that contains the ebook viewer (default: '') 115 * **`real-fullscreen`** 116 - accepted values: "**true**", "**false**" (default: **false**) 117 * **`allow-js`** 118 - accepted values: "**true**", "**false**" (default: **false**) 119 * **`math-styles`** 120 - accepted values: "**fonts**", "**styles**", "**all**" (default: '') 121 * **`ebook-author`** 122 - accepted values: any string, max 260 characters (default: '') 123 * **`ebook-title`** 124 - accepted values: any string, max 260 characters (default: '') 125 * **`popup-notes`** 126 - accepted values: "**true**", "**false**" (default: **true**) 127 128 With `always-full-viewport` set to "true", the ebook viewer will automatically cover the entire webpage when it is opened, and the "full screen" icon will be replaced by a "close viewer" icon. `always-full-viewport="true"` requires that also `return-to-url` is present, with a valid URL that indicates the destination of the user when they choose to close the viewer. The URL can be relative, like "/" or "/books-gallery", or it can be absolute, but it needs to have the same hostname of the webpage that contains the ebook viewer (e.g. if the ebook viewer is opened in https://www.example.com/ebook-viewer, the URL in `return-to-url` needs to start with https://www.example.com). 129 130 If `real-fullscreen` is set to "true", the ebook viewer will cover the entire screen instead of only the viewport of the webpage when the user clicks on the "full screen" icon. With `real-fullscreen` set to true, `always-full-viewport` is ignored, since the full screen requires an explicit action by the user. 131 132 `Allow-js`: normally, the plugin forbids, as far as possible, script execution from inside the ebooks. If you set `allow-js` to true, this restriction is relaxed, and scripts within the ebook can be executed. 133 **Caveat 1**: you need to be absolutely certain that the code inside the ebook is not malicious, since it can harm your entire webpage. 134 **Caveat 2**: the ebook viewer is not strongly equipped to deal with dynamic content created or removed after the ebook opening, so you might encounter errors or inaccuracies when jumping from one ebook location to another in such a circumstance. 135 136 `Math-styles`: in recent years all the major browser have implemented a good deal of the MathML Core specification, so it is now possible to represent natively many mathematical expression without the use of third party libraries. However, not all browsers and systems load automatically appropriate fonts. With math-styles set to "fonts" or "all", all the contents of MathML expression will use the Latin Modern font. 137 Another shortcoming in the current support of MathML, is that only Gecko based browsers (i.e. Firefox) implement a breaking lines algorithm, so long math expressions within small screens usually don't fit entirely. With math-styles set to "styles" or "all", the plugin will use some html+css tricks to try to allow either line breaks or horizontal scrolling. 138 139 `Ebook-author` and `ebook-title`: you can use these optional values to override the ones that the ebook viewer retrieves from the ebook metadata in order to display them to the users. 140 141 `Popup-notes`: show footnotes and endnotes as popup instead of just links. The notes (and their references) need to be marked with the appropriate epub:type attributes to ensure that they are displayed as popups (the ebook viewer will try to recognize them anyway, but without guarantees). 101 142 102 143 ### Development … … 126 167 This plugin does not track in any way its users. It uses the WordPress REST API to retrieve the url of the ebooks to display, so it uses the technical cookies setup by WordPress to assure the correctness and the security of the communication. 127 168 It also stores in the local storage of the user's browser the last viewed page of the displayed ebook and the preferences about the appearance of the ebooks in the Viewer, as detailed in the previous section, with the only purpose to provide the best experience to the user. 169 If the user activates the Text-To-Speech functionality and the chosen voice is a remote voice, the browser will send to the remote service the text to be synthesized, the voice and language parameters and, as with any network request, the IP address and the browser identifiers. 128 170 129 171 ### Warning … … 137 179 which is distributed under the MIT license. 138 180 139 The foliate-js libraryembeds other three libraries:181 As secondary dependencies of the foliate-js library, the plugin embeds other three libraries: 140 182 * zip.js (https://github.com/gildas-lormeau/zip.js), licensed under the BSD-3-Clause; 141 * fflate (https://github.com/101arrowz/fflate), MIT licensed ;183 * fflate (https://github.com/101arrowz/fflate), MIT licensed. 142 184 * PDF.js (https://github.com/mozilla/pdf.js), licensed under the Apache v2.0 license. 143 185 144 This plugin also embeds vite-for-wp by Dzikri Aziz (https://github.com/kucrut/vite-for-wp), 145 licensed under the GPL v2.0 license. 186 PDF.js is present in the repository's source code, but is not included in the distribution of the current version of the plugin. 187 188 Other libraries embedded by the plugin are: 189 * vite-for-wp by Dzikri Aziz (https://github.com/kucrut/vite-for-wp), 190 licensed under the GPL v2.0 license 191 * Speech Rule Engine (https://github.com/Speech-Rule-Engine/speech-rule-engine), 192 licensed under the Apache v2.0 license 193 194 Embedded fonts: 195 * OpenDyslexic (https://opendyslexic.org/) by Abbie Gonzales, licensed under the SIL Open Font License v1.1; 196 * Manrope (https://github.com/sharanda/manrope) by The Manrope Project Authors, licensed under the SIL Open Font License v1.1; 197 * Latin Modern (https://www.gust.org.pl/projects/e-foundry) by the Polish TeX Users Group, licensed under the GUST Font License. 198 199 OpenDyslexic and Latin Modern fonts have been converted from their original OpenType format to the woff2 format for use on the web, without, at the best of my knowledge, modifying their internal parameters and metadata. -
simple-ebook-viewer/trunk/dist/manifest.json
r3301587 r3480712 1 1 { 2 " C:/Users/franc/gits/embedebooks/wordpress/wp-content/plugins/simple-ebook-viewer/vendor/foliate-js/vendor/pdfjs/annotation_layer_builder.css": {3 "file": "assets/ annotation_layer_builder-LCdmLuw8.css",4 "src": " C:/Users/franc/gits/embedebooks/wordpress/wp-content/plugins/simple-ebook-viewer/vendor/foliate-js/vendor/pdfjs/annotation_layer_builder.css"2 "_simebv-viewer-DDj33M1Y.css": { 3 "file": "assets/simebv-viewer-DDj33M1Y.css", 4 "src": "_simebv-viewer-DDj33M1Y.css" 5 5 }, 6 "C:/Users/franc/gits/embedebooks/wordpress/wp-content/plugins/simple-ebook-viewer/vendor/foliate-js/vendor/pdfjs/text_layer_builder.css": { 7 "file": "assets/text_layer_builder-CK6eTUxR.css", 8 "src": "C:/Users/franc/gits/embedebooks/wordpress/wp-content/plugins/simple-ebook-viewer/vendor/foliate-js/vendor/pdfjs/text_layer_builder.css" 9 }, 10 "_index-BE0jtfAT.js": { 11 "file": "assets/index-BE0jtfAT.js", 12 "name": "index", 13 "imports": [ 14 "_url-Wrlwsv9T.js", 15 "_pdf-Z5ZBySEz.js" 16 ] 17 }, 18 "_index-CuYyqOcS.js": { 19 "file": "assets/index-CuYyqOcS.js", 20 "name": "index", 21 "isDynamicEntry": true, 22 "imports": [ 23 "_url-Wrlwsv9T.js", 24 "_index-BE0jtfAT.js" 25 ] 26 }, 27 "_index-D4gP0cnb.js": { 28 "file": "assets/index-D4gP0cnb.js", 29 "name": "index", 30 "isDynamicEntry": true, 31 "imports": [ 32 "_url-Wrlwsv9T.js", 33 "_index-BE0jtfAT.js" 34 ] 35 }, 36 "_pdf-Z5ZBySEz.js": { 37 "file": "assets/pdf-Z5ZBySEz.js", 38 "name": "pdf", 39 "isDynamicEntry": true, 40 "imports": [ 41 "src/js/simebv-viewer.js" 42 ], 43 "dynamicImports": [ 44 "node_modules/node-stdlib-browser/esm/mock/empty.js", 45 "_index-D4gP0cnb.js", 46 "_index-CuYyqOcS.js", 47 "_url-B8ma4Nbk.js" 48 ], 49 "assets": [ 50 "assets/pdf-et8PL5bm.mjs", 51 "assets/pdf.mjs-Clxyfw0k.map", 52 "assets/pdf.worker-DHaD_gt7.mjs", 53 "assets/pdf.worker.mjs-BEagiU_I.map", 54 "assets/annotation_layer_builder-LCdmLuw8.css", 55 "assets/text_layer_builder-CK6eTUxR.css" 56 ] 57 }, 58 "_url-B8ma4Nbk.js": { 59 "file": "assets/url-B8ma4Nbk.js", 60 "name": "url", 61 "isDynamicEntry": true, 62 "imports": [ 63 "_url-Wrlwsv9T.js" 64 ] 65 }, 66 "_url-Wrlwsv9T.js": { 67 "file": "assets/url-Wrlwsv9T.js", 68 "name": "url" 69 }, 70 "node_modules/node-stdlib-browser/esm/mock/empty.js": { 71 "file": "assets/empty-CRMO4_-l.js", 72 "name": "empty", 73 "src": "node_modules/node-stdlib-browser/esm/mock/empty.js", 74 "isDynamicEntry": true 75 }, 76 "resources/fonts/manrope/Manrope-VariableFont_wght.woff2": { 77 "file": "assets/Manrope-VariableFont_wght-DFQ-JMC6.woff2", 78 "src": "resources/fonts/manrope/Manrope-VariableFont_wght.woff2" 79 }, 80 "src/js/simebv-viewer.js": { 81 "file": "assets/simebv-viewer-lib-DwWpJfpU.js", 82 "name": "simebv-viewer-lib", 83 "src": "src/js/simebv-viewer.js", 84 "isEntry": true, 6 "_simebv-viewer-DrOW_OfM.js": { 7 "file": "assets/simebv-viewer-DrOW_OfM.js", 8 "name": "simebv-viewer", 85 9 "dynamicImports": [ 86 10 "vendor/foliate-js/vendor/zip.js", … … 89 13 "vendor/foliate-js/fb2.js", 90 14 "vendor/foliate-js/epub.js", 91 "_pdf-Z5ZBySEz.js",92 15 "vendor/foliate-js/mobi.js", 93 16 "vendor/foliate-js/vendor/fflate.js", … … 96 19 "vendor/foliate-js/paginator.js", 97 20 "vendor/foliate-js/search.js", 98 "vendor/foliate-js/tts.js" 21 "vendor/foliate-js/tts.js", 22 "_sre-OB9-ZODU.js", 23 "vendor/foliate-js/mobi.js" 99 24 ], 100 25 "css": [ 101 "assets/simebv-viewer- lib-Di7Vv8I8.css"26 "assets/simebv-viewer-DDj33M1Y.css" 102 27 ], 103 28 "assets": [ 29 "assets/latinmodern-math-D8vU1ynp.woff2", 30 "assets/lmroman10-regular-MgNYzB3C.woff2", 31 "assets/lmroman10-bold-Bt2TjdBf.woff2", 32 "assets/lmroman10-italic-2lV75sgr.woff2", 33 "assets/lmroman10-bolditalic-BTV195Vo.woff2", 34 "assets/OpenDyslexic-Regular-mq3eNZ-9.woff2", 35 "assets/OpenDyslexic-Bold-asFfTek6.woff2", 36 "assets/OpenDyslexic-Italic-7X3nXTrH.woff2", 37 "assets/OpenDyslexic-BoldItalic-olh_H-lW.woff2", 104 38 "assets/Manrope-VariableFont_wght-DFQ-JMC6.woff2" 105 39 ] 106 40 }, 41 "_sre-OB9-ZODU.js": { 42 "file": "assets/sre-OB9-ZODU.js", 43 "name": "sre", 44 "isDynamicEntry": true 45 }, 46 "resources/fonts/latinmodern/latinmodern-math.woff2": { 47 "file": "assets/latinmodern-math-D8vU1ynp.woff2", 48 "src": "resources/fonts/latinmodern/latinmodern-math.woff2" 49 }, 50 "resources/fonts/latinmodern/lmroman10-bold.woff2": { 51 "file": "assets/lmroman10-bold-Bt2TjdBf.woff2", 52 "src": "resources/fonts/latinmodern/lmroman10-bold.woff2" 53 }, 54 "resources/fonts/latinmodern/lmroman10-bolditalic.woff2": { 55 "file": "assets/lmroman10-bolditalic-BTV195Vo.woff2", 56 "src": "resources/fonts/latinmodern/lmroman10-bolditalic.woff2" 57 }, 58 "resources/fonts/latinmodern/lmroman10-italic.woff2": { 59 "file": "assets/lmroman10-italic-2lV75sgr.woff2", 60 "src": "resources/fonts/latinmodern/lmroman10-italic.woff2" 61 }, 62 "resources/fonts/latinmodern/lmroman10-regular.woff2": { 63 "file": "assets/lmroman10-regular-MgNYzB3C.woff2", 64 "src": "resources/fonts/latinmodern/lmroman10-regular.woff2" 65 }, 66 "resources/fonts/manrope/Manrope-VariableFont_wght.woff2": { 67 "file": "assets/Manrope-VariableFont_wght-DFQ-JMC6.woff2", 68 "src": "resources/fonts/manrope/Manrope-VariableFont_wght.woff2" 69 }, 70 "resources/fonts/opendyslexic/OpenDyslexic-Bold.woff2": { 71 "file": "assets/OpenDyslexic-Bold-asFfTek6.woff2", 72 "src": "resources/fonts/opendyslexic/OpenDyslexic-Bold.woff2" 73 }, 74 "resources/fonts/opendyslexic/OpenDyslexic-BoldItalic.woff2": { 75 "file": "assets/OpenDyslexic-BoldItalic-olh_H-lW.woff2", 76 "src": "resources/fonts/opendyslexic/OpenDyslexic-BoldItalic.woff2" 77 }, 78 "resources/fonts/opendyslexic/OpenDyslexic-Italic.woff2": { 79 "file": "assets/OpenDyslexic-Italic-7X3nXTrH.woff2", 80 "src": "resources/fonts/opendyslexic/OpenDyslexic-Italic.woff2" 81 }, 82 "resources/fonts/opendyslexic/OpenDyslexic-Regular.woff2": { 83 "file": "assets/OpenDyslexic-Regular-mq3eNZ-9.woff2", 84 "src": "resources/fonts/opendyslexic/OpenDyslexic-Regular.woff2" 85 }, 86 "src/js/simebv-init.js": { 87 "file": "simebv-viewer-init.js", 88 "name": "simebv-viewer-init", 89 "src": "src/js/simebv-init.js", 90 "isEntry": true, 91 "imports": [ 92 "_simebv-viewer-DrOW_OfM.js" 93 ] 94 }, 95 "src/js/simebv-viewer.js": { 96 "file": "simebv-viewer-lib.js", 97 "name": "simebv-viewer-lib", 98 "src": "src/js/simebv-viewer.js", 99 "isEntry": true, 100 "imports": [ 101 "_simebv-viewer-DrOW_OfM.js" 102 ] 103 }, 107 104 "vendor/foliate-js/comic-book.js": { 108 "file": "assets/comic-book- CNy7_Hja.js",105 "file": "assets/comic-book-lfvJFMj-.js", 109 106 "name": "comic-book", 110 107 "src": "vendor/foliate-js/comic-book.js", … … 112 109 }, 113 110 "vendor/foliate-js/epub.js": { 114 "file": "assets/epub- BQqBxsAu.js",111 "file": "assets/epub-KvD48Q4-.js", 115 112 "name": "epub", 116 113 "src": "vendor/foliate-js/epub.js", 117 114 "isDynamicEntry": true, 118 115 "imports": [ 119 " src/js/simebv-viewer.js"116 "_simebv-viewer-DrOW_OfM.js" 120 117 ] 121 118 }, 122 119 "vendor/foliate-js/fb2.js": { 123 "file": "assets/fb2- DoA4UCCO.js",120 "file": "assets/fb2-ClJpypHw.js", 124 121 "name": "fb2", 125 122 "src": "vendor/foliate-js/fb2.js", … … 127 124 }, 128 125 "vendor/foliate-js/fixed-layout.js": { 129 "file": "assets/fixed-layout- CEdlqyLS.js",126 "file": "assets/fixed-layout-jzZkXagm.js", 130 127 "name": "fixed-layout", 131 128 "src": "vendor/foliate-js/fixed-layout.js", … … 133 130 }, 134 131 "vendor/foliate-js/mobi.js": { 135 "file": "assets/mobi- CUP3Mkj_.js",132 "file": "assets/mobi-D3_qgME0.js", 136 133 "name": "mobi", 137 134 "src": "vendor/foliate-js/mobi.js", … … 139 136 }, 140 137 "vendor/foliate-js/paginator.js": { 141 "file": "assets/paginator- DQoPXZqM.js",138 "file": "assets/paginator-Q5xludiF.js", 142 139 "name": "paginator", 143 140 "src": "vendor/foliate-js/paginator.js", … … 145 142 }, 146 143 "vendor/foliate-js/search.js": { 147 "file": "assets/search- CeeluKVp.js",144 "file": "assets/search-BpcFCD71.js", 148 145 "name": "search", 149 146 "src": "vendor/foliate-js/search.js", … … 151 148 }, 152 149 "vendor/foliate-js/tts.js": { 153 "file": "assets/tts- DmfHnK0f.js",150 "file": "assets/tts-BWVnA2PP.js", 154 151 "name": "tts", 155 152 "src": "vendor/foliate-js/tts.js", … … 157 154 }, 158 155 "vendor/foliate-js/vendor/fflate.js": { 159 "file": "assets/fflate- Bye76UFF.js",156 "file": "assets/fflate-ChZ5a79y.js", 160 157 "name": "fflate", 161 158 "src": "vendor/foliate-js/vendor/fflate.js", 162 159 "isDynamicEntry": true 163 160 }, 164 "vendor/foliate-js/vendor/pdfjs/pdf.mjs": {165 "file": "assets/pdf-et8PL5bm.mjs",166 "src": "vendor/foliate-js/vendor/pdfjs/pdf.mjs"167 },168 "vendor/foliate-js/vendor/pdfjs/pdf.mjs.map": {169 "file": "assets/pdf.mjs-Clxyfw0k.map",170 "src": "vendor/foliate-js/vendor/pdfjs/pdf.mjs.map"171 },172 "vendor/foliate-js/vendor/pdfjs/pdf.worker.mjs": {173 "file": "assets/pdf.worker-DHaD_gt7.mjs",174 "src": "vendor/foliate-js/vendor/pdfjs/pdf.worker.mjs"175 },176 "vendor/foliate-js/vendor/pdfjs/pdf.worker.mjs.map": {177 "file": "assets/pdf.worker.mjs-BEagiU_I.map",178 "src": "vendor/foliate-js/vendor/pdfjs/pdf.worker.mjs.map"179 },180 161 "vendor/foliate-js/vendor/zip.js": { 181 "file": "assets/zip- w4eY6XnM.js",162 "file": "assets/zip-CqQxo32y.js", 182 163 "name": "zip", 183 164 "src": "vendor/foliate-js/vendor/zip.js", -
simple-ebook-viewer/trunk/includes/simebv-admin.php
r3301587 r3480712 5 5 6 6 7 class SIMEBV_Admin { 8 9 public static $ebook_mimetypes = [ 10 'epub' => 'application/epub+zip', 11 'cbz' => 'application/vnd.comicbook+zip', 12 'fb2' => 'application/x-fictionbook+xml', 13 'fbz' => 'application/x-zip-compressed-fb2', 14 'mobi' => 'application/x-mobipocket-ebook', 15 'azw' => 'application/vnd.amazon.ebook', 16 'azw3' => 'application/vnd.amazon.ebook', 17 ]; 7 class SIMEBV_Admin extends SIMEBV_Base { 18 8 19 9 public static function init() { 10 do_action('simebv_admin_before_init'); 11 20 12 add_action('admin_init', [self::class, 'suggest_privacy_policy']); 21 13 add_filter('upload_mimes', [self::class, 'allow_ebook_uploads']); … … 24 16 add_filter('attachment_fields_to_save', [self::class, 'save_media_custom_field'], 10, 2); 25 17 add_filter('wp_check_filetype_and_ext', [self::class, 'allow_azw_uploads'], 100, 5); 18 19 do_action('simebv_admin_after_init'); 26 20 } 27 21 … … 32 26 __( 33 27 "<h3>Use of %s plugin</h3> 34 <p>Our website uses a plugin to enhance your experience when reading ebooks directly on our site. This plugin does <strong>not</strong> collect , transmit, or shareany personal data. It does <strong>not</strong> set cookies or track your activity across websites.</p>28 <p>Our website uses a plugin to enhance your experience when reading ebooks directly on our site. This plugin does <strong>not</strong> collect any personal data. It does <strong>not</strong> set cookies or track your activity across websites.</p> 35 29 <p>When you interact with the ebook viewer, the plugin may store certain <strong>preferences locally in your browser</strong> using local storage technology. This information is saved solely to remember your settings and improve your user experience during future visits. These preferences include:</p> 36 30 <ul> 37 31 <li>The last page you viewed</li> 38 <li>Your selected font size</li> 32 <li>Your selected font size and style</li> 33 <li>Show or hide annotations and page delimiters</li> 39 34 <li>Page margin settings</li> 40 35 <li>Maximum pages displayed per view</li> … … 42 37 <li>Chosen color theme and any color filters</li> 43 38 <li>Zoom level</li> 39 <li>Speech synthesis preferences</li> 44 40 </ul> 45 <p>This information is stored <strong>only on your device</strong>, is not accessible by us or any third party, and is used exclusively to personalize your ebook reading experience on this website.</p> 41 <p>This information is stored <strong>only on your device</strong> and is never transmitted to our servers. It is used exclusively to personalize your ebook reading experience on this website.</p> 42 <p>If you use the Text-to-Speech functionality offered by the ebook viewer with a remote voice (the available voices depend on the browser and the operating system: Chrome offers Google remote voices, Edge offers Microsoft remote ones, for example), the text to be synthesized and the voice and language parameters will be transmitted to these remote services. As with any network request, your IP address and browser identifiers are also transmitted. You can avoid this by selecting a local voice, if available in your system.</p> 46 43 <p><strong>Note:</strong> To retrieve and display the ebook content, the plugin interacts with the WordPress REST API. This process may involve the use of <strong>technical cookies</strong> that are set by WordPress itself to ensure secure and correct data transmission. These cookies do not track you and are essential for the proper functioning of the website.</p> 47 44 <p>You can clear your saved preferences at any time by clearing your browser’s local storage or using your browser's privacy settings.</p>", … … 115 112 $html .= '</p>'; 116 113 $html .= '</div>'; 117 $f orm_fields['simebv_ebook_slug'] = array(114 $fields['simebv_ebook_slug'] = array( 118 115 'label' => 'Ebook slug', 119 116 'input' => 'html', … … 123 120 ); 124 121 } 125 return $f orm_fields;122 return $fields; 126 123 } 127 124 … … 146 143 'post_type' => 'attachment', 147 144 'post_status' => 'inherit', 145 'posts_per_page' => -1, 148 146 ); 149 147 $query = new WP_Query($args); … … 157 155 $metadata = get_post_meta($attachment_ID); 158 156 if (!isset($metadata['simebv_ebook_slug'])) { 159 $slug = sanitize_text_field($metadata['post_name']); 157 $post = get_post($attachment_ID); 158 $slug = sanitize_text_field($post->post_name); 160 159 if (!empty($slug)) { 161 160 update_post_meta( -
simple-ebook-viewer/trunk/includes/simebv-viewer.php
r3301587 r3480712 6 6 use Kucrut\Vite; 7 7 8 class SIMEBV_Viewer { 8 class SIMEBV_Viewer extends SIMEBV_Base { 9 9 10 public static function init() { 11 do_action('simebv_viewer_before_init'); 12 10 13 add_shortcode('simebv_viewer', [self::class, 'render_ebook_viewer']); 11 14 add_action('wp_enqueue_scripts', [self::class, 'conditionally_enqueue_assets']); 12 15 add_action('wp_enqueue_scripts', [self::class, 'register_javascript_translations'], 100); 13 16 // add_action('enqueue_block_editor_assets', [self::class, 'enqueue_block_editor_assets']); 17 18 do_action('simebv_viewer_after_init'); 19 } 20 21 private static $js_core_script_handle = 'simebv-viewer-lib'; 22 private static $js_core_script_path = 'src/js/simebv-viewer.js'; 23 24 public static function get_js_core_script_handle() { 25 return self::$js_core_script_handle; 26 } 27 28 private static $js_init_script_handle = 'simebv-viewer-init'; 29 private static $js_init_script_path = 'src/js/simebv-init.js'; 30 31 public static function get_js_init_script_handle() { 32 return self::$js_init_script_handle; 14 33 } 15 34 … … 24 43 public static function register_javascript_translations() { 25 44 wp_set_script_translations( 26 'simebv-viewer-lib', 'simple-ebook-viewer', SIMEBV_PLUGIN_DIR . 'languages/' 27 ); 45 self::$js_core_script_handle, 'simple-ebook-viewer', SIMEBV_PLUGIN_DIR . 'languages/' 46 ); 47 } 48 49 private static function enqueue_assets($handle, $path, $dependencies, $in_footer = true) { 50 return Vite\enqueue_asset( 51 SIMEBV_PLUGIN_DIR . '/dist', 52 $path, 53 [ 54 'handle' => $handle, 55 'dependencies' => $dependencies, 56 'in-footer' => $in_footer, 57 ] 58 ); 59 } 60 61 public static function enqueue_core_js() { 62 self::enqueue_assets( 63 self::$js_core_script_handle, 64 self::$js_core_script_path, 65 ['wp-i18n', 'wp-api'], 66 ); 67 do_action('simebv_enqueued_core_js'); 68 } 69 70 public static function enqueue_init_js() { 71 self::enqueue_assets( 72 self::$js_init_script_handle, 73 self::$js_init_script_path, 74 [self::$js_core_script_handle], 75 ); 76 do_action('simebv_enqueued_init_js'); 28 77 } 29 78 … … 35 84 global $post; 36 85 if (has_shortcode($post->post_content, 'simebv_viewer')) { 37 Vite\enqueue_asset( 38 SIMEBV_PLUGIN_DIR . '/dist', 39 'src/js/simebv-viewer.js', 40 [ 41 'handle' => 'simebv-viewer-lib', 42 'dependencies' => ['wp-i18n', 'wp-api'], 43 'in-footer' => true, 44 ] 45 ); 46 } 47 48 } 49 50 public static function render_ebook_viewer($atts) { 51 // add default value for attributes in the shortcode 52 $atts = shortcode_atts( 53 [ 54 'book' => '', 55 'height' => '', 56 'width' => '', 57 'max-height' => '', 58 'max-width' => '', 59 'border' => '', 60 'style' => '', 61 'class' => '', 62 'max-pages' => '', 63 'color-scheme' => '', 64 'zoom' => '', 65 'layout' => '', 66 'default-font-size' => '', 67 'page-margins' => '', 68 'activate-color-filter' => '', 69 'invert-color-filter' => '', 70 'rotate-color-filter' => '', 71 'bg-transparent-filter' => '', 72 'bg-color-filter' => '', 73 ], 74 $atts, 75 'simebv_viewer' 76 ); 77 86 self::enqueue_core_js(); 87 self::enqueue_init_js(); 88 } 89 90 } 91 92 public static function get_ebook_id($slug) { 78 93 $ebook_id = ''; 79 94 $args = array( … … 84 99 [ 85 100 'key' => 'simebv_ebook_slug', 86 'value' => sanitize_text_field($ atts['book']),101 'value' => sanitize_text_field($slug), 87 102 'compare' => '=', 88 103 ], … … 95 110 wp_reset_postdata(); 96 111 } 97 if (empty($ebook_id)) { 98 return '<p style="color: red;">' . esc_html__("No Web Publication file provided.", 'simple-ebook-viewer') . '</p>'; 99 } 100 101 $styles = self::setup_styles($atts); 102 112 return $ebook_id; 113 } 114 115 public static function create_viewer_markup($ebook_id, $atts, $styles) { 103 116 ob_start(); ?> 104 117 <section … … 106 119 data-ebook-id="<?php echo esc_attr($ebook_id); ?>" 107 120 <?php 108 echo strlen($styles['container']) !== 0 ? 'style="' . esc_attr($styles['container']) . '"' : ''; 109 echo strlen($atts['class']) !== 0 ? 'class="' . esc_attr($atts['class']) . '"' : ''; 110 echo strlen($atts['max-pages']) !== 0 ? 'data-simebv-maxpages="' . esc_attr($atts['max-pages']) . '"' : ''; 111 echo strlen($atts['color-scheme']) !== 0 ? 'data-simebv-colors="' . esc_attr($atts['color-scheme']) . '"' : ''; 112 echo strlen($atts['zoom']) !== 0 ? 'data-simebv-zoom="' . esc_attr($atts['zoom']) . '"' : ''; 113 echo strlen($atts['layout']) !== 0 ? 'data-simebv-layout="' . esc_attr($atts['layout']) . '"' : ''; 114 echo strlen($atts['default-font-size']) !== 0 ? 'data-simebv-fontsize="' . esc_attr($atts['default-font-size']) . '"' : ''; 115 echo strlen($atts['page-margins']) !== 0 ? 'data-simebv-margins="' . esc_attr($atts['page-margins']) . '"' : ''; 116 echo strlen($atts['activate-color-filter']) !== 0 ? 'data-simebv-activatecolorfilter="' . esc_attr($atts['activate-color-filter']) . '"' : ''; 117 echo strlen($atts['invert-color-filter']) !== 0 ? 'data-simebv-invertcolorsfilter="' . esc_attr($atts['invert-color-filter']) . '"' : ''; 118 echo strlen($atts['rotate-color-filter']) !== 0 ? 'data-simebv-rotatecolorsfilter="' . esc_attr($atts['rotate-color-filter']) . '"' : ''; 119 echo strlen($atts['bg-transparent-filter']) !== 0 ? 'data-simebv-bgfiltertransparent="' . esc_attr($atts['bg-transparent-filter']) . '"' : ''; 120 echo strlen($atts['bg-color-filter']) !== 0 ? 'data-simebv-bgcolorsfilter="' . esc_attr($atts['bg-color-filter']) . '"' : ''; 121 echo strlen($styles['container']) !== 0 ? 'style="' . esc_attr($styles['container']) . '" ' : ''; 122 foreach(self::$shortcode_viewer_atts['html_attributes'] as $name => $vals) { 123 echo strlen($atts[$name]) !== 0 ? esc_attr($vals['html_name']) . '="' . esc_attr($atts[$name]) . '" ' : ''; 124 } 121 125 ?> 122 126 tabindex="0" … … 128 132 </section> 129 133 <?php 130 return ob_get_clean(); 134 $viewer_html_code = ob_get_clean(); 135 return $viewer_html_code; 136 } 137 138 public static function render_ebook_viewer($atts) { 139 if (!is_singular() && !apply_filters('simebv_allow_viewer', false)) { 140 return; 141 } 142 // add default value for attributes in the shortcode 143 $atts = shortcode_atts( 144 self::shortcode_viewer_atts_with_defaults(), 145 $atts, 146 'simebv_viewer' 147 ); 148 $ebook_id = self::get_ebook_id($atts['book']); 149 if (empty($ebook_id)) { 150 return '<p style="color: red;">' . esc_html__("No Web Publication file provided.", 'simple-ebook-viewer') . '</p>'; 151 } 152 153 if (!wp_script_is(self::$js_core_script_handle, 'enqueued')) { 154 self::enqueue_core_js(); 155 self::enqueue_init_js(); 156 self::register_javascript_translations(); 157 } 158 159 $styles = self::setup_styles($atts); 160 161 $viewer_html_code = self::create_viewer_markup($ebook_id, $atts, $styles); 162 return apply_filters('simebv_viewer_html_code', $viewer_html_code); 131 163 } 132 164 133 165 public static function setup_styles($attrs) { 134 166 $style_container = ''; 135 if ( 136 strlen($attrs['height']) !== 0 137 || strlen($attrs['width']) !== 0 138 || strlen($attrs['max-height']) !== 0 139 || strlen($attrs['max-width']) !== 0 140 || strlen($attrs['border']) !== 0 141 || strlen($attrs['style']) !== 0 142 ) { 143 if (strlen($attrs['height']) !== 0) { 144 $style_container .= "height:" . $attrs['height'] . ";"; 145 } 146 if (strlen($attrs['width']) !== 0) { 147 $style_container .= "width:" . $attrs['width'] . ";"; 148 } 149 if (strlen($attrs['max-height']) !== 0) { 150 $style_container .= "max-height:" . $attrs['max-height'] . ";"; 151 } 152 if (strlen($attrs['max-width']) !== 0) { 153 $style_container .= "max-width:" . $attrs['max-width'] . ";"; 154 } 155 if (strlen($attrs['border']) !== 0) { 156 $style_container .= "border:" . $attrs['border'] . ";"; 157 } 158 if (strlen($attrs['style']) !== 0) { 159 $style_container .= trim($attrs['style']); 167 foreach (array_keys(self::$shortcode_viewer_atts['style_attributes']) as $name) { 168 if (strlen($attrs[$name]) === 0) { 169 continue; 170 } 171 if ($name === 'style') { 172 $style_container .= trim($attrs[$name]); 160 173 if (!str_ends_with($style_container, ';')) { 161 174 $style_container .= ';'; 162 175 } 163 176 } 164 } 165 if (strlen($attrs['max-height'] === 0 && strlen($attrs['height']) === 0)) { 177 else { 178 $style_container .= $name . ':' . $attrs[$name] . ';'; 179 } 180 } 181 if (strlen($attrs['max-height']) === 0 && strlen($attrs['height']) === 0) { 166 182 $style_container .= "max-height:95vh;"; 167 183 } -
simple-ebook-viewer/trunk/languages/simple-ebook-viewer-it_IT-simebv-viewer-lib.json
r3301587 r3480712 1 1 { 2 "translation-revision-date": "202 5-05-16",2 "translation-revision-date": "2026-03-08", 3 3 "generator": "WP-CLI\/2.12.0", 4 4 "source": "src\/js\/simebv-viewer.js", … … 11 11 "plural-forms": "nplurals=2; plural=(n != 1);" 12 12 }, 13 "Page %1$s": [ 14 "Pagina %1$s" 15 ], 16 "Loading...": [ 17 "Caricamento..." 18 ], 19 "Error: I couldn't retrieve the book to display.": [ 20 "Errore: non ho potuto recuperare il libro da mostrare." 21 ], 22 "Resource not found on the server": [ 23 "Risorsa non trovata nel server" 24 ], 25 "Page list": [ 26 "Indice delle pagine" 27 ], 28 "Start of page ": [ 29 "Inizio della pagina " 30 ], 31 "Front matter": [ 32 "Pagine preliminari" 33 ], 34 "Location %1$s\/%2$s": [ 35 "Posizione %1$s\/%2$s" 36 ], 37 "Page %1$s \/ %2$s": [ 38 "Pagina %1$s \/ %2$s" 39 ], 40 "Ebook contents": [ 41 "Contenuti dell'ebook" 42 ], 43 "Error while opening the book:": [ 44 "Errore durante l'apertura del libro:" 45 ], 46 "Show sidebar": [ 47 "Mostra barra laterale" 48 ], 49 "No title": [ 50 "Senza titolo" 51 ], 52 "Show settings": [ 53 "Mostra impostazioni" 54 ], 55 "Toggle full screen": [ 56 "Attiva\/disattiva schermo intero" 57 ], 58 "Close Reader": [ 59 "Chiudi il lettore" 60 ], 61 "Activate color filters": [ 62 "Attiva i filtri colore" 63 ], 64 "Invert colors:": [ 65 "Inverti colori:" 66 ], 67 "Rotate hues:": [ 68 "Ruota tonalit\u00e0:" 69 ], 70 "Transparent background:": [ 71 "Sfondo trasparente:" 72 ], 73 "Background color:": [ 74 "Colore di sfondo:" 75 ], 76 "OK": [ 77 "OK" 78 ], 79 "Search": [ 80 "Cerca" 81 ], 82 "Previous result": [ 83 "Precedente" 84 ], 85 "Next result": [ 86 "Successivo" 87 ], 88 "Close": [ 89 "Chiudi" 90 ], 91 "Auto": [ 92 "Auto" 93 ], 94 "Serif": [ 95 "Serif" 96 ], 97 "Sans Serif": [ 98 "Sans Serif" 99 ], 100 "Monospace": [ 101 "Monospaziato" 102 ], 103 "OpenDyslexic": [ 104 "OpenDyslexic" 105 ], 106 "Select Font Style": [ 107 "Stile Font" 108 ], 13 109 "Paginated": [ 14 110 "Pagine" … … 35 131 "Cerca..." 36 132 ], 37 "Page %1$s": [38 "Pagina %1$s"39 ],40 "Loc %1$s\/%2$s": [41 "Loc %1$s\/%2$s"42 ],43 "Loading...": [44 "Caricamento..."45 ],46 "Show sidebar": [47 "Mostra barra laterale"48 ],49 "No title": [50 "Senza titolo"51 ],52 "Show settings": [53 "Mostra impostazioni"54 ],55 "Full screen": [56 "Schermo intero"57 ],58 "Go left": [59 "Vai a sinistra"60 ],61 "Go right": [62 "Vai a destra"63 ],64 133 "Font Size\u0004Small": [ 65 134 "Piccola" … … 89 158 "Seppia" 90 159 ], 160 "History": [ 161 "Cronologia" 162 ], 163 "Previous": [ 164 "Precedente" 165 ], 166 "Next": [ 167 "Successivo" 168 ], 169 "Zoom": [ 170 "Zoom" 171 ], 172 "Fit page": [ 173 "Adatta alla pagina" 174 ], 175 "Fit width": [ 176 "Adatta alla larghezza" 177 ], 178 "Custom": [ 179 "Personalizzato" 180 ], 181 "Color filter...": [ 182 "Filtro colore..." 183 ], 91 184 "Theme color\u0004Light": [ 92 185 "Chiaro" … … 95 188 "Scuro" 96 189 ], 97 "History": [ 98 "Cronologia" 99 ], 100 "Previous": [ 101 "Precedente" 102 ], 103 "Next": [ 104 "Successivo" 105 ], 106 "Zoom": [ 107 "Zoom" 108 ], 109 "Fit page": [ 110 "Adatta alla pagina" 111 ], 112 "Fit width": [ 113 "Adatta alla larghezza" 114 ], 115 "Custom": [ 116 "Personalizzato" 117 ], 118 "Error: I couldn't retrieve the book to display.": [ 119 "Errore: non ho potuto recuperare il libro da mostrare." 120 ], 121 "Resource not found on the server": [ 122 "Risorsa non trovata nel server" 123 ], 124 "Color filter...": [ 125 "Filtro colore..." 126 ], 127 "Search": [ 128 "Cerca" 129 ], 130 "Previous result": [ 131 "Precedente" 132 ], 133 "Next result": [ 134 "Successivo" 135 ], 136 "Close": [ 137 "Chiudi" 138 ], 139 "Activate color filters": [ 140 "Attiva i filtri colore" 141 ], 142 "Invert colors:": [ 143 "Inverti colori:" 144 ], 145 "Rotate hues:": [ 146 "Ruota tonalit\u00e0:" 147 ], 148 "Transparent background:": [ 149 "Sfondo trasparente:" 150 ], 151 "Background color:": [ 152 "Colore di sfondo:" 153 ], 154 "OK": [ 155 "OK" 190 "Show position": [ 191 "Mostra posizione" 192 ], 193 "Slider": [ 194 "Slider" 195 ], 196 "Percentage": [ 197 "Percentuale" 198 ], 199 "Pages": [ 200 "Pagine" 201 ], 202 "Theme color\u0004Light (forced)": [ 203 "Chiaro (forzato)" 204 ], 205 "Theme color\u0004Dark (forced)": [ 206 "Scuro (forzato)" 207 ], 208 "Font style...": [ 209 "Stile font..." 210 ], 211 "Show\/hide annotations...": [ 212 "Mostra\/nascondi annotazioni" 213 ], 214 "Read aloud...": [ 215 "Leggi ad alta voce..." 216 ], 217 "Annotation": [ 218 "Annotazione" 219 ], 220 "Title": [ 221 "Titolo" 222 ], 223 "Subtitle": [ 224 "Sottotitolo" 225 ], 226 "Author": [ 227 "Autore" 228 ], 229 "Editor": [ 230 "Editore" 231 ], 232 "Translator": [ 233 "Traduttore" 234 ], 235 "Artist": [ 236 "Artista" 237 ], 238 "Illustrator": [ 239 "Illustratore" 240 ], 241 "Colorist": [ 242 "Colorista" 243 ], 244 "Narrator": [ 245 "Narratore" 246 ], 247 "Language": [ 248 "Lingua" 249 ], 250 "Publisher": [ 251 "Editore" 252 ], 253 "Publication date": [ 254 "Data di pubblicazione" 255 ], 256 "Subject": [ 257 "Soggetto" 258 ], 259 "Description": [ 260 "Descrizione" 261 ], 262 "Source": [ 263 "Sorgente" 264 ], 265 "Rights": [ 266 "Diritti" 267 ], 268 "Source of the page list": [ 269 "Opera da cui deriva la lista delle pagine" 270 ], 271 "Identifier": [ 272 "Identificatore" 273 ], 274 "Other identifiers": [ 275 "Altri identificatori" 276 ], 277 "Ebook metadata": [ 278 "Metadati dell'ebook" 279 ], 280 "Ebook format": [ 281 "Formato dell'ebook" 282 ], 283 "I cannot access the audio output device because it's already in use, maybe by another application.": [ 284 "Non posso accedere al dispotivo di uscita dell'audio perch\u00e9 gi\u00e0 in uso, forse da un'altra applicazione." 285 ], 286 "I cannot identify an audio output channel on this device.": [ 287 "Non posso identificare un canale di uscita audio in questo dispositivo." 288 ], 289 "A required network operation to start the speech synthesis failed.": [ 290 "Un'operazione di rete necessaria per far partire la sintesi vocale non \u00e8 riuscita." 291 ], 292 "No speech synthesis engine available at this moment.": [ 293 "Nessun motore di sintesi vocale disponibile al momento." 294 ], 295 "The speech synthesis engine raised an error.": [ 296 "Il motore di sintesi vocale ha riportato un errore." 297 ], 298 "No appropriate voice available": [ 299 "Non \u00e8 disponibile alcuna voce adeguata." 300 ], 301 "The selected voice is not available.": [ 302 "La voce selezionata non \u00e8 disponibile." 303 ], 304 "The text is too long to synthesize.": [ 305 "Il testo \u00e8 troppo lungo per farne la sintesi vocale." 306 ], 307 "The value of at least one amongst Speed, Pitch and Volume is not valid.": [ 308 "Il valore di almeno uno fra Velocit\u00e0, Tonalit\u00e0 e Volume non \u00e8 valido." 309 ], 310 "The operation's start was not allowed.": [ 311 "Operazione non permessa." 312 ], 313 "No appropriate voice available for the language %1$s": [ 314 "Nessuna voce appropriata per il linguaggio %1$s" 315 ], 316 "Read aloud...": [ 317 "Leggi ad alta voce..." 318 ], 319 "Bibliography": [ 320 "Bibliografia" 321 ], 322 "Definition": [ 323 "Definizione" 324 ], 325 "Note": [ 326 "Nota" 327 ], 328 "Details": [ 329 "Dettagli" 330 ], 331 "Ebook metadata and navigation trees": [ 332 "Metadati dell'ebook e alberi di navigazione" 333 ], 334 "Table of contents": [ 335 "Indice generale" 336 ], 337 "Page list": [ 338 "Indice delle pagine" 339 ], 340 "Turn left page": [ 341 "Gira pagina a sinistra" 342 ], 343 "Turn right page": [ 344 "Gira pagina a destra" 345 ], 346 "Location in ebook": [ 347 "Posizione nell'ebook" 348 ], 349 "Show\/hide annotations": [ 350 "Mostra\/nascondi annotazioni" 351 ], 352 "Show Calibre Bookmarks": [ 353 "Mostra note di Calibre" 354 ], 355 "Show page delimiters": [ 356 "Mostra i punti di separazione delle pagine" 357 ], 358 "(e.g. of the ebook's paper version)": [ 359 "(e.g. della versione cartacea del libro)" 360 ], 361 "Cancel": [ 362 "Cancella" 363 ], 364 "Play": [ 365 "Play" 366 ], 367 "Pause": [ 368 "Pausa" 369 ], 370 "Speech Options": [ 371 "Opzioni" 372 ], 373 "Go to previous section": [ 374 "Vai alla sezione precedente" 375 ], 376 "Go to next section": [ 377 "Vai alla sezione successiva" 378 ], 379 "Text To Speech Options": [ 380 "Opzioni sintesi vocale" 381 ], 382 "Volume: ": [ 383 "Volume: " 384 ], 385 "Pitch: ": [ 386 "Tonalit\u00e0: " 387 ], 388 "Speed: ": [ 389 "Velocit\u00e0: " 390 ], 391 "Voice: ": [ 392 "Voce: " 393 ], 394 "The voice is automatically selected based on the ebook and the system language. If you have more than one voice for the language, you can select your preferred one in the system settings.": [ 395 "La voce \u00e8 selezionata automaticamente a seconda dell'ebook e della lingua di sistema. Se hai installato pi\u00f9 di una voce per lingua, puoi selezionare quella che preferisci fra le impostazioni di sistema del tuo dispositivo." 396 ], 397 "If you select a word in the text, the speech will begin from that word.": [ 398 "Se selezioni una parola nel testo, la lettura comincer\u00e0 da quella parola." 399 ], 400 "Warning: remote voices may restart from the beginning of the paragraph when they are changed. On Android, all voices may do the same when paused also.": [ 401 "Attenzione: le voci remote possono ripartire dall'inizio del paragrafo quando vengono cambiate. Su Android, tutte le voci possono fare lo stesso anche quando messe in pausa." 156 402 ] 157 403 } -
simple-ebook-viewer/trunk/languages/simple-ebook-viewer-it_IT.po
r3301587 r3480712 1 1 msgid "" 2 2 msgstr "" 3 "Project-Id-Version: Simple Ebook Viewer 0. 1.2\n"3 "Project-Id-Version: Simple Ebook Viewer 0.4.1\n" 4 4 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/simple-ebook-viewer\n" 5 5 "Last-Translator: Francesco Martini\n" … … 8 8 "Content-Type: text/plain; charset=UTF-8\n" 9 9 "Content-Transfer-Encoding: 8bit\n" 10 "POT-Creation-Date: 202 5-05-16T12:55:17+00:00\n"11 "PO-Revision-Date: 202 5-05-23\n"10 "POT-Creation-Date: 2026-03-03T23:03:38+00:00\n" 11 "PO-Revision-Date: 2026-03-08\n" 12 12 "Language: it\n" 13 13 "X-Generator: WP-CLI 2.12.0\n" … … 16 16 #. Plugin Name of the plugin 17 17 #: simple-ebook-viewer.php 18 #: simple-ebook-viewer.php: 3718 #: simple-ebook-viewer.php:23 19 19 msgid "Simple Ebook Viewer" 20 msgstr " "20 msgstr "Simple Ebook Viewer" 21 21 22 22 #. Description of the plugin … … 28 28 #: simple-ebook-viewer.php 29 29 msgid "Francesco Martini" 30 msgstr " "31 32 #: includes/simebv-viewer.php:1 2630 msgstr "Francesco Martini" 31 32 #: includes/simebv-viewer.php:130 33 33 msgid "It seems that JavaScript is not enabled in your browser, you need to enable it in order to use the Ebook Viewer." 34 34 msgstr "Sembra che JavaScript non sia abilitato nel tuo browser, è necessario che lo abiliti per poter usare il visualizzatore di Ebook." 35 35 36 #: includes/simebv-viewer.php: 9836 #: includes/simebv-viewer.php:150 37 37 msgid "No Web Publication file provided." 38 38 msgstr "Non è stata fornita alcuna pubblicazione." 39 39 40 #: src/js/simebv- viewer.js:20840 #: src/js/simebv-menu-items.js:46 41 41 msgid "Paginated" 42 42 msgstr "Pagine" 43 43 44 #: src/js/simebv- viewer.js:20944 #: src/js/simebv-menu-items.js:47 45 45 msgid "Scrolled" 46 46 msgstr "Scorrimento" 47 47 48 #: src/js/simebv- viewer.js:22748 #: src/js/simebv-menu-items.js:66 49 49 msgid "Max pages per view" 50 50 msgstr "Max pagine per vista" 51 51 52 #: src/js/simebv- viewer.js:20552 #: src/js/simebv-menu-items.js:43 53 53 msgid "Layout" 54 54 msgstr "Layout" 55 55 56 #: src/js/simebv- viewer.js:24056 #: src/js/simebv-menu-items.js:80 57 57 msgid "Font Size" 58 58 msgstr "Grandezza del testo" 59 59 60 #: src/js/simebv- viewer.js:25960 #: src/js/simebv-menu-items.js:98 61 61 msgid "Page Margins" 62 62 msgstr "Margini" 63 63 64 #: src/js/simebv- viewer.js:27564 #: src/js/simebv-menu-items.js:131 65 65 msgid "Colors" 66 66 msgstr "Colori" 67 67 68 #: src/js/simebv- viewer.js:17268 #: src/js/simebv-menu-items.js:8 69 69 msgid "Search..." 70 70 msgstr "Cerca..." 71 71 72 #. translators: %1s: page number 73 #: src/js/simebv-viewer.js:824 72 #. translators: %1$s: page number 73 #: src/js/simebv-viewer.js:882 74 #: src/js/simebv-viewer.js:886 74 75 #, js-format 75 76 msgid "Page %1$s" 76 77 msgstr "Pagina %1$s" 77 78 78 #. translators: Loc: contraction for 'Location' in the book, followed by a numerical fraction 79 #: src/js/simebv-viewer.js:828 80 #, js-format 81 msgid "Loc %1$s/%2$s" 82 msgstr "Loc %1$s/%2$s" 83 84 #: src/js/simebv-viewer.js:968 79 #: src/js/simebv-viewer.js:1065 85 80 msgid "Loading..." 86 81 msgstr "Caricamento..." 87 82 88 #: src/js/simebv- viewer.js:97083 #: src/js/simebv-header.js:263 89 84 msgid "Show sidebar" 90 85 msgstr "Mostra barra laterale" 91 86 92 #: src/js/simebv- viewer.js:97487 #: src/js/simebv-header.js:262 93 88 msgid "No title" 94 89 msgstr "Senza titolo" 95 90 96 #: src/js/simebv- viewer.js:97691 #: src/js/simebv-header.js:266 97 92 msgid "Show settings" 98 93 msgstr "Mostra impostazioni" 99 94 100 #: src/js/simebv-viewer.js:981 101 msgid "Full screen" 102 msgstr "Schermo intero" 103 104 #: src/js/simebv-viewer.js:986 105 msgid "Go left" 106 msgstr "Vai a sinistra" 107 108 #: src/js/simebv-viewer.js:991 109 msgid "Go right" 110 msgstr "Vai a destra" 111 112 #: src/js/simebv-search-dialog.js:8 113 #: src/js/simebv-search-dialog.js:9 95 #: src/js/simebv-search-dialog.js:26 96 #: src/js/simebv-search-dialog.js:27 114 97 msgid "Search" 115 98 msgstr "Cerca" 116 99 117 #: src/js/simebv-search-dialog.js: 21100 #: src/js/simebv-search-dialog.js:39 118 101 msgid "Previous result" 119 102 msgstr "Precedente" 120 103 121 #: src/js/simebv-search-dialog.js: 32104 #: src/js/simebv-search-dialog.js:50 122 105 msgid "Next result" 123 106 msgstr "Successivo" 124 107 125 #: src/js/simebv-search-dialog.js:43 108 #: src/js/simebv-fonts-dialog.js:96 109 #: src/js/simebv-search-dialog.js:61 110 #: src/js/simebv-speech-dialog.js:75 111 #: src/js/simebv-speech-dialog.js:322 126 112 msgid "Close" 127 113 msgstr "Chiudi" 128 114 129 #: src/js/simebv- viewer.js:243115 #: src/js/simebv-menu-items.js:83 130 116 msgctxt "Font Size" 131 117 msgid "Small" 132 118 msgstr "Piccola" 133 119 134 #: src/js/simebv- viewer.js:244120 #: src/js/simebv-menu-items.js:84 135 121 msgctxt "Font Size" 136 122 msgid "Medium" 137 123 msgstr "Media" 138 124 139 #: src/js/simebv- viewer.js:245125 #: src/js/simebv-menu-items.js:85 140 126 msgctxt "Font Size" 141 127 msgid "Large" 142 128 msgstr "Grande" 143 129 144 #: src/js/simebv- viewer.js:246130 #: src/js/simebv-menu-items.js:86 145 131 msgctxt "Font Size" 146 132 msgid "X-Large" 147 133 msgstr "Molto grande" 148 134 149 #: src/js/simebv- viewer.js:262135 #: src/js/simebv-menu-items.js:101 150 136 msgctxt "Margins" 151 137 msgid "Small" 152 138 msgstr "Stretti" 153 139 154 #: src/js/simebv- viewer.js:263140 #: src/js/simebv-menu-items.js:102 155 141 msgctxt "Margins" 156 142 msgid "Medium" 157 143 msgstr "Medi" 158 144 159 #: src/js/simebv- viewer.js:264145 #: src/js/simebv-menu-items.js:103 160 146 msgctxt "Margins" 161 147 msgid "Large" 162 148 msgstr "Larghi" 163 149 164 #: src/js/simebv- viewer.js:278150 #: src/js/simebv-menu-items.js:134 165 151 msgctxt "Theme color" 166 152 msgid "Auto" 167 153 msgstr "Auto" 168 154 169 #: src/js/simebv- viewer.js:279155 #: src/js/simebv-menu-items.js:135 170 156 msgctxt "Theme color" 171 157 msgid "Sepia" … … 173 159 174 160 #. translators: %s: example of an ebook slug based on the opened ebook 175 #: includes/simebv-admin.php:1 12161 #: includes/simebv-admin.php:109 176 162 #, php-format 177 163 msgid "Use this slug in the shortcode \"simebv_viewer\" to view the ebook in your pages (e.g. [simebv_viewer book=\"%s\"]). If left empty, the value of post_name will be used instead." 178 164 msgstr "Usa questo slug nello shortcode \"simebv_viewer\" per visualizzare l'ebook nelle tue pagine (e.g. [simebv_viewer book=\"%s\"]). Se lasciato vuoto, verrà usato al suo posto il valore di post_name." 179 165 180 #: src/js/simebv- viewer.js:182166 #: src/js/simebv-menu-items.js:19 181 167 msgid "History" 182 168 msgstr "Cronologia" 183 169 184 #: src/js/simebv- viewer.js:187170 #: src/js/simebv-menu-items.js:24 185 171 msgid "Previous" 186 172 msgstr "Precedente" 187 173 188 #: src/js/simebv- viewer.js:195174 #: src/js/simebv-menu-items.js:32 189 175 msgid "Next" 190 176 msgstr "Successivo" 191 177 192 #: src/js/simebv- viewer.js:354178 #: src/js/simebv-menu-items.js:251 193 179 msgid "Zoom" 194 180 msgstr "Zoom" 195 181 196 #: src/js/simebv- viewer.js:357182 #: src/js/simebv-menu-items.js:254 197 183 msgid "Fit page" 198 184 msgstr "Adatta alla pagina" 199 185 200 #: src/js/simebv- viewer.js:358186 #: src/js/simebv-menu-items.js:255 201 187 msgid "Fit width" 202 188 msgstr "Adatta alla larghezza" 203 189 204 #: src/js/simebv- viewer.js:359190 #: src/js/simebv-menu-items.js:256 205 191 msgid "Custom" 206 192 msgstr "Personalizzato" 207 193 208 #: src/js/simebv-viewer.js:11 08194 #: src/js/simebv-viewer.js:1149 209 195 msgid "Error: I couldn't retrieve the book to display." 210 196 msgstr "Errore: non ho potuto recuperare il libro da mostrare." 211 197 212 #: src/js/simebv-viewer.js:11 14198 #: src/js/simebv-viewer.js:1155 213 199 msgid "Resource not found on the server" 214 200 msgstr "Risorsa non trovata nel server" … … 222 208 msgstr "Inverti colori:" 223 209 224 #: src/js/simebv-filters-dialog.js:4 4210 #: src/js/simebv-filters-dialog.js:45 225 211 msgid "Rotate hues:" 226 212 msgstr "Ruota tonalità:" 227 213 228 #: src/js/simebv-filters-dialog.js:5 5214 #: src/js/simebv-filters-dialog.js:57 229 215 msgid "Transparent background:" 230 216 msgstr "Sfondo trasparente:" 231 217 232 #: src/js/simebv-filters-dialog.js:6 6218 #: src/js/simebv-filters-dialog.js:69 233 219 msgid "Background color:" 234 220 msgstr "Colore di sfondo:" 235 221 236 #: src/js/simebv-filters-dialog.js:72 222 #: src/js/simebv-annotations-dialog.js:49 223 #: src/js/simebv-filters-dialog.js:76 224 #: src/js/simebv-fonts-dialog.js:93 225 #: src/js/simebv-footnotes.js:101 226 #: src/js/simebv-metadata-dialog.js:32 227 #: src/js/simebv-show-annotation-dialog.js:13 228 #: src/js/simebv-speech-dialog.js:319 237 229 msgid "OK" 238 230 msgstr "OK" 239 231 240 #: src/js/simebv- viewer.js:345232 #: src/js/simebv-menu-items.js:241 241 233 msgid "Color filter..." 242 234 msgstr "Filtro colore..." 243 235 236 #: src/js/simebv-menu-items.js:136 237 msgctxt "Theme color" 238 msgid "Light" 239 msgstr "Chiaro" 240 241 #: src/js/simebv-menu-items.js:137 242 msgctxt "Theme color" 243 msgid "Dark" 244 msgstr "Scuro" 245 246 #: src/js/simebv-annotations-dialog.js:13 247 msgid "Show/hide annotations" 248 msgstr "Mostra/nascondi annotazioni" 249 250 #: src/js/simebv-annotations-dialog.js:25 251 msgid "Show Calibre Bookmarks" 252 msgstr "Mostra note di Calibre" 253 254 #: src/js/simebv-annotations-dialog.js:40 255 msgid "Show page delimiters" 256 msgstr "Mostra i punti di separazione delle pagine" 257 258 #: src/js/simebv-annotations-dialog.js:39 259 msgid "(e.g. of the ebook's paper version)" 260 msgstr "(e.g. della versione cartacea del libro)" 261 262 #: src/js/simebv-annotations-dialog.js:52 263 msgid "Cancel" 264 msgstr "Cancella" 265 266 #: src/js/simebv-fonts-dialog.js:26 267 msgid "Auto" 268 msgstr "Auto" 269 270 #: src/js/simebv-fonts-dialog.js:38 271 msgid "Serif" 272 msgstr "Serif" 273 274 #: src/js/simebv-fonts-dialog.js:51 275 msgid "Sans Serif" 276 msgstr "Sans Serif" 277 278 #: src/js/simebv-fonts-dialog.js:64 279 msgid "Monospace" 280 msgstr "Monospaziato" 281 282 #: src/js/simebv-fonts-dialog.js:77 283 msgid "OpenDyslexic" 284 msgstr "OpenDyslexic" 285 286 #: src/js/simebv-header.js:269 287 msgid "Toggle full screen" 288 msgstr "Attiva/disattiva schermo intero" 289 290 #: src/js/simebv-header.js:272 291 msgid "Close Reader" 292 msgstr "Chiudi il lettore" 293 294 #: src/js/simebv-menu-items.js:115 295 msgid "Show position" 296 msgstr "Mostra posizione" 297 298 #: src/js/simebv-menu-items.js:118 299 msgid "Slider" 300 msgstr "Slider" 301 302 #: src/js/simebv-menu-items.js:119 303 msgid "Percentage" 304 msgstr "Percentuale" 305 306 #: src/js/simebv-menu-items.js:120 307 msgid "Pages" 308 msgstr "Pagine" 309 310 #: src/js/simebv-menu-items.js:138 311 msgctxt "Theme color" 312 msgid "Light (forced)" 313 msgstr "Chiaro (forzato)" 314 315 #: src/js/simebv-menu-items.js:139 316 msgctxt "Theme color" 317 msgid "Dark (forced)" 318 msgstr "Scuro (forzato)" 319 320 #: src/js/simebv-menu-items.js:211 321 msgid "Font style..." 322 msgstr "Stile font..." 323 324 #: src/js/simebv-menu-items.js:221 325 msgid "Show/hide annotations..." 326 msgstr "Mostra/nascondi annotazioni" 327 328 #: src/js/simebv-footnotes.js:89 329 #: src/js/simebv-menu-items.js:231 330 msgid "Read aloud..." 331 msgstr "Leggi ad alta voce..." 332 333 #: src/js/simebv-metadata-dialog.js:4 334 msgid "Title" 335 msgstr "Titolo" 336 337 #: src/js/simebv-metadata-dialog.js:5 338 msgid "Subtitle" 339 msgstr "Sottotitolo" 340 341 #: src/js/simebv-metadata-dialog.js:6 342 msgid "Author" 343 msgstr "Autore" 344 345 #: src/js/simebv-metadata-dialog.js:7 346 msgid "Editor" 347 msgstr "Editore" 348 349 #: src/js/simebv-metadata-dialog.js:8 350 msgid "Translator" 351 msgstr "Traduttore" 352 353 #: src/js/simebv-metadata-dialog.js:9 354 msgid "Artist" 355 msgstr "Artista" 356 357 #: src/js/simebv-metadata-dialog.js:10 358 msgid "Illustrator" 359 msgstr "Illustratore" 360 361 #: src/js/simebv-metadata-dialog.js:11 362 msgid "Colorist" 363 msgstr "Colorista" 364 365 #: src/js/simebv-metadata-dialog.js:12 366 msgid "Narrator" 367 msgstr "Narratore" 368 369 #: src/js/simebv-metadata-dialog.js:13 370 msgid "Language" 371 msgstr "Lingua" 372 373 #: src/js/simebv-metadata-dialog.js:14 374 msgid "Publisher" 375 msgstr "Editore" 376 377 #: src/js/simebv-metadata-dialog.js:15 378 msgid "Publication date" 379 msgstr "Data di pubblicazione" 380 381 #: src/js/simebv-metadata-dialog.js:16 382 msgid "Subject" 383 msgstr "Soggetto" 384 385 #: src/js/simebv-metadata-dialog.js:17 386 msgid "Description" 387 msgstr "Descrizione" 388 389 #: src/js/simebv-metadata-dialog.js:18 390 msgid "Source" 391 msgstr "Sorgente" 392 393 #: src/js/simebv-metadata-dialog.js:19 394 msgid "Rights" 395 msgstr "Diritti" 396 397 #: src/js/simebv-metadata-dialog.js:20 398 msgid "Source of the page list" 399 msgstr "Opera da cui deriva la lista delle pagine" 400 401 #: src/js/simebv-metadata-dialog.js:21 402 msgid "Identifier" 403 msgstr "Identificatore" 404 405 #: src/js/simebv-metadata-dialog.js:22 406 msgid "Other identifiers" 407 msgstr "Altri identificatori" 408 409 #: src/js/simebv-metadata-dialog.js:28 410 msgid "Ebook metadata" 411 msgstr "Metadati dell'ebook" 412 413 #: src/js/simebv-metadata-dialog.js:55 414 msgid "Ebook format" 415 msgstr "Formato dell'ebook" 416 417 #: src/js/simebv-navbar.js:86 418 msgid "Turn left page" 419 msgstr "Gira pagina a sinistra" 420 421 #: src/js/simebv-navbar.js:89 422 msgid "Turn right page" 423 msgstr "Gira pagina a destra" 424 425 #: src/js/simebv-navbar.js:92 426 msgid "Location in ebook" 427 msgstr "Posizione nell'ebook" 428 429 #: src/js/simebv-show-annotation-dialog.js:20 430 msgid "Annotation" 431 msgstr "Annotazione" 432 433 #: src/js/simebv-sidebar.js:163 434 msgid "Details" 435 msgstr "Dettagli" 436 437 #: src/js/simebv-sidebar.js:180 438 msgid "Ebook metadata and navigation trees" 439 msgstr "Metadati dell'ebook e alberi di navigazione" 440 441 #: src/js/simebv-sidebar.js:268 442 msgid "Table of contents" 443 msgstr "Indice generale" 444 445 #: src/js/simebv-sidebar.js:277 446 #: src/js/simebv-viewer.js:295 447 msgid "Page list" 448 msgstr "Indice delle pagine" 449 450 #: src/js/simebv-speech-dialog.js:16 451 msgid "Play" 452 msgstr "Play" 453 454 #: src/js/simebv-speech-dialog.js:17 455 msgid "Pause" 456 msgstr "Pausa" 457 458 #: src/js/simebv-speech-dialog.js:35 459 msgid "Speech Options" 460 msgstr "Opzioni" 461 462 #: src/js/simebv-speech-dialog.js:48 463 msgid "Go to previous section" 464 msgstr "Vai alla sezione precedente" 465 466 #: src/js/simebv-speech-dialog.js:59 467 msgid "Go to next section" 468 msgstr "Vai alla sezione successiva" 469 470 #: src/js/simebv-speech-dialog.js:200 471 msgid "Text To Speech Options" 472 msgstr "Opzioni sintesi vocale" 473 474 #: src/js/simebv-speech-dialog.js:214 475 msgid "Volume: " 476 msgstr "Volume: " 477 478 #: src/js/simebv-speech-dialog.js:234 479 msgid "Pitch: " 480 msgstr "Tonalità: " 481 482 #: src/js/simebv-speech-dialog.js:254 483 msgid "Speed: " 484 msgstr "Velocità: " 485 486 #: src/js/simebv-speech-dialog.js:289 487 msgid "Voice: " 488 msgstr "Voce: " 489 490 #: src/js/simebv-speech-dialog.js:299 491 msgid "The voice is automatically selected based on the ebook and the system language. If you have more than one voice for the language, you can select your preferred one in the system settings." 492 msgstr "La voce è selezionata automaticamente a seconda dell'ebook e della lingua di sistema. Se hai installato più di una voce per lingua, puoi selezionare quella che preferisci fra le impostazioni di sistema del tuo dispositivo." 493 494 #: src/js/simebv-speech-dialog.js:305 495 msgid "If you select a word in the text, the speech will begin from that word." 496 msgstr "Se selezioni una parola nel testo, la lettura comincerà da quella parola." 497 498 #: src/js/simebv-speech-dialog.js:306 499 msgid "Warning: remote voices may restart from the beginning of the paragraph when they are changed. On Android, all voices may do the same when paused also." 500 msgstr "Attenzione: le voci remote possono ripartire dall'inizio del paragrafo quando vengono cambiate. Su Android, tutte le voci possono fare lo stesso anche quando messe in pausa." 501 502 #: src/js/simebv-speech.js:27 503 msgid "I cannot access the audio output device because it's already in use, maybe by another application." 504 msgstr "Non posso accedere al dispotivo di uscita dell'audio perché già in uso, forse da un'altra applicazione." 505 506 #: src/js/simebv-speech.js:28 507 msgid "I cannot identify an audio output channel on this device." 508 msgstr "Non posso identificare un canale di uscita audio in questo dispositivo." 509 510 #: src/js/simebv-speech.js:29 511 msgid "A required network operation to start the speech synthesis failed." 512 msgstr "Un'operazione di rete necessaria per far partire la sintesi vocale non è riuscita." 513 514 #: src/js/simebv-speech.js:30 515 msgid "No speech synthesis engine available at this moment." 516 msgstr "Nessun motore di sintesi vocale disponibile al momento." 517 518 #: src/js/simebv-speech.js:31 519 msgid "The speech synthesis engine raised an error." 520 msgstr "Il motore di sintesi vocale ha riportato un errore." 521 522 #: src/js/simebv-speech.js:32 523 msgid "No appropriate voice available" 524 msgstr "Non è disponibile alcuna voce adeguata." 525 526 #: src/js/simebv-speech.js:33 527 msgid "The selected voice is not available." 528 msgstr "La voce selezionata non è disponibile." 529 530 #: src/js/simebv-speech.js:34 531 msgid "The text is too long to synthesize." 532 msgstr "Il testo è troppo lungo per farne la sintesi vocale." 533 534 #: src/js/simebv-speech.js:35 535 msgid "The value of at least one amongst Speed, Pitch and Volume is not valid." 536 msgstr "Il valore di almeno uno fra Velocità, Tonalità e Volume non è valido." 537 538 #: src/js/simebv-speech.js:36 539 msgid "The operation's start was not allowed." 540 msgstr "Operazione non permessa." 541 542 #: src/js/simebv-speech.js:174 543 #, js-format 544 msgid "No appropriate voice available for the language %1$s" 545 msgstr "Nessuna voce appropriata per il linguaggio %1$s" 546 547 #: src/js/simebv-viewer.js:294 548 msgid "Start of page " 549 msgstr "Inizio della pagina " 550 551 #: src/js/simebv-viewer.js:890 552 #: src/js/simebv-viewer.js:891 553 msgid "Front matter" 554 msgstr "Pagine preliminari" 555 556 #. translators: Location in the book, followed by a numerical fraction 557 #: src/js/simebv-viewer.js:896 558 #, js-format 559 msgid "Location %1$s/%2$s" 560 msgstr "Posizione %1$s/%2$s" 561 562 #. translators: current page number / total pages number 563 #: src/js/simebv-viewer.js:900 564 #, js-format 565 msgid "Page %1$s / %2$s" 566 msgstr "Pagina %1$s / %2$s" 567 568 #: src/js/simebv-viewer.js:1066 569 msgid "Ebook contents" 570 msgstr "Contenuti dell'ebook" 571 572 #: src/js/simebv-viewer.js:1170 573 msgid "Error while opening the book:" 574 msgstr "Errore durante l'apertura del libro:" 575 576 #: src/js/simebv-footnotes.js:14 577 msgid "Bibliography" 578 msgstr "Bibliografia" 579 580 #: src/js/simebv-footnotes.js:15 581 msgid "Definition" 582 msgstr "Definizione" 583 584 #: src/js/simebv-footnotes.js:16 585 #: src/js/simebv-footnotes.js:17 586 #: src/js/simebv-footnotes.js:65 587 #: src/js/simebv-footnotes.js:77 588 msgid "Note" 589 msgstr "Nota" 590 244 591 #. translators: Suggested privacy policy. %s: name of the plugin 245 #: includes/simebv-admin.php: 32592 #: includes/simebv-admin.php:26 246 593 #, php-format 247 594 msgid "" 248 595 "<h3>Use of %s plugin</h3>\n" 249 "<p>Our website uses a plugin to enhance your experience when reading ebooks directly on our site. This plugin does <strong>not</strong> collect , transmit, or shareany personal data. It does <strong>not</strong> set cookies or track your activity across websites.</p>\n"596 "<p>Our website uses a plugin to enhance your experience when reading ebooks directly on our site. This plugin does <strong>not</strong> collect any personal data. It does <strong>not</strong> set cookies or track your activity across websites.</p>\n" 250 597 "<p>When you interact with the ebook viewer, the plugin may store certain <strong>preferences locally in your browser</strong> using local storage technology. This information is saved solely to remember your settings and improve your user experience during future visits. These preferences include:</p>\n" 251 598 "<ul>\n" 252 599 "<li>The last page you viewed</li>\n" 253 "<li>Your selected font size</li>\n" 600 "<li>Your selected font size and style</li>\n" 601 "<li>Show or hide annotations and page delimiters</li>\n" 254 602 "<li>Page margin settings</li>\n" 255 603 "<li>Maximum pages displayed per view</li>\n" … … 257 605 "<li>Chosen color theme and any color filters</li>\n" 258 606 "<li>Zoom level</li>\n" 607 "<li>Speech synthesis preferences</li>\n" 259 608 "</ul>\n" 260 "<p>This information is stored <strong>only on your device</strong>, is not accessible by us or any third party, and is used exclusively to personalize your ebook reading experience on this website.</p>\n" 609 "<p>This information is stored <strong>only on your device</strong> and is never transmitted to our servers. It is used exclusively to personalize your ebook reading experience on this website.</p>\n" 610 "<p>If you use the Text-to-Speech functionality offered by the ebook viewer with a remote voice (the available voices depend on the browser and the operating system: Chrome offers Google remote voices, Edge offers Microsoft remote ones, for example), the text to be synthesized and the voice and language parameters will be transmitted to these remote services. As with any network request, your IP address and browser identifiers are also transmitted. You can avoid this by selecting a local voice, if available in your system.</p>\n" 261 611 "<p><strong>Note:</strong> To retrieve and display the ebook content, the plugin interacts with the WordPress REST API. This process may involve the use of <strong>technical cookies</strong> that are set by WordPress itself to ensure secure and correct data transmission. These cookies do not track you and are essential for the proper functioning of the website.</p>\n" 262 612 "<p>You can clear your saved preferences at any time by clearing your browser’s local storage or using your browser's privacy settings.</p>" 263 613 msgstr "" 264 614 "<h3>Uso del plugin %s</h3>\n" 265 "<p>Il nostro sito web usa un plugin per migliorare la tua esperienza quando leggi ebook direttamente sul nostro sito. Questo plugin <strong>non</strong> raccoglie , trasmette né condividealcun dato personale. <strong>Non</strong> imposta cookie né traccia la tua attività tra siti web.</p>\n"615 "<p>Il nostro sito web usa un plugin per migliorare la tua esperienza quando leggi ebook direttamente sul nostro sito. Questo plugin <strong>non</strong> raccoglie alcun dato personale. <strong>Non</strong> imposta cookie né traccia la tua attività tra siti web.</p>\n" 266 616 "<p>Quando interagisci con l'ebook viewer, il plugin può salvare certe <strong> preferenze localmente nel tuo browser</strong> usando la tecnologia del local storage. Queste informazioni sono salvate soltanto per ricordarsi le tue impostazioni e migliorare la tua esperienza durante le visite future. Queste preferenze includono:</p>\n" 267 617 "<ul>\n" 268 618 "<li>L'ultima pagina visualizzata</li>\n" 269 "<li>La dimensione del testo selezionata</li>\n" 619 "<li>La dimensione del testo e lo stile del font</li>\n" 620 "<li>Se mostrare o meno le annotazioni e i limiti di pagina</li>\n" 270 621 "<li>I margini di pagina</li>\n" 271 622 "<li>Le preferenze di layout (pagine o scorrimento)</li>\n" 272 623 "<li>Il tema colore scelto e i filtri colore</li>\n" 273 624 "<li>Il livello di zoom</li>\n" 625 "<li>Le preferenze della sintesi vocale</li>\n" 274 626 "</ul>\n" 275 "<p>Queste informazioni sono memorizzate <strong>solo sul tuo dispositivo</strong>, non sono accessibili da noi né da terze parti, e sono usate esclusivamente per personalizzare la tua esperienza nella lettura degli ebook su questo sito web.</p>\n" 627 "<p>Queste informazioni sono memorizzate <strong>solo sul tuo dispositivo</strong> e non vengono mai trasmesse ai nostri server. Sono usate esclusivamente per personalizzare la tua esperienza nella lettura degli ebook su questo sito web.</p>\n" 628 "<p>Se usi la funzionalità di sintesi vocale (Text-to-Speech) offerta dall'ebook viewer con una voce remota (le voci disponibili dipendono dal browser e dal sistema operativo: per esempio, Chrome offre le voci remote di Google, Edge offre quelle della Microsoft), il testo da elaborare e i parametri della voce e della lingua saranno trasmessi a questi servizi remoti. Come per ogni richiesta di rete, verranno trasmessi anche il tuo indirizzo IP e gli identificatori del browser. Puoi evitare questa cosa selezionando una voce locale, se disponibile nel tuo sistema.</p>\n" 276 629 "<p><strong>Nota:</strong> Per recuperare e mostrare il contenuto dell'ebook, il plugin interagisce con la REST API di WordPress. Questo processo può comprtare l'uso di <strong>cookie tecnici</strong> impostati da WordPress per garantire una sicura e corretta trasmissione dei dati. Questi cookie non ti tracciano e sono essenziali per il corretto funzionamento del sito web.</p>\n" 277 630 "<p>Puoi cancellare in ogni momento le tue preferenze salvate svuotando il local storage del tuo browser, o utilizzando le impostazioni di privacy del tuo browser.</p>" 278 631 279 #: src/js/simebv-viewer.js:280 280 msgctxt "Theme color" 281 msgid "Light" 282 msgstr "Chiaro" 283 284 #: src/js/simebv-viewer.js:281 285 msgctxt "Theme color" 286 msgid "Dark" 287 msgstr "Scuro" 632 #: src/js/simebv-fonts-dialog.js:12 633 msgid "Select Font Style" 634 msgstr "Stile Font" -
simple-ebook-viewer/trunk/languages/simple-ebook-viewer.pot
r3301587 r3480712 1 # Copyright (C) 202 5Francesco Martini1 # Copyright (C) 2026 Francesco Martini 2 2 # This file is distributed under the GPL-2.0+. 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Simple Ebook Viewer 0.3.1\n"5 "Project-Id-Version: Simple Ebook Viewer 1.0.0\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/simple-ebook-viewer\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 202 5-05-24T19:20:50+00:00\n"12 "POT-Creation-Date: 2026-03-11T16:59:39+00:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.12.0\n" … … 17 17 #. Plugin Name of the plugin 18 18 #: simple-ebook-viewer.php 19 #: simple-ebook-viewer.php: 3719 #: simple-ebook-viewer.php:23 20 20 msgid "Simple Ebook Viewer" 21 21 msgstr "" … … 32 32 33 33 #. translators: Suggested privacy policy. %s: name of the plugin 34 #: includes/simebv-admin.php: 3234 #: includes/simebv-admin.php:26 35 35 #, php-format 36 36 msgid "" 37 37 "<h3>Use of %s plugin</h3>\n" 38 "<p>Our website uses a plugin to enhance your experience when reading ebooks directly on our site. This plugin does <strong>not</strong> collect , transmit, or shareany personal data. It does <strong>not</strong> set cookies or track your activity across websites.</p>\n"38 "<p>Our website uses a plugin to enhance your experience when reading ebooks directly on our site. This plugin does <strong>not</strong> collect any personal data. It does <strong>not</strong> set cookies or track your activity across websites.</p>\n" 39 39 "<p>When you interact with the ebook viewer, the plugin may store certain <strong>preferences locally in your browser</strong> using local storage technology. This information is saved solely to remember your settings and improve your user experience during future visits. These preferences include:</p>\n" 40 40 "<ul>\n" 41 41 "<li>The last page you viewed</li>\n" 42 "<li>Your selected font size</li>\n" 42 "<li>Your selected font size and style</li>\n" 43 "<li>Show or hide annotations and page delimiters</li>\n" 43 44 "<li>Page margin settings</li>\n" 44 45 "<li>Maximum pages displayed per view</li>\n" … … 46 47 "<li>Chosen color theme and any color filters</li>\n" 47 48 "<li>Zoom level</li>\n" 49 "<li>Speech synthesis preferences</li>\n" 48 50 "</ul>\n" 49 "<p>This information is stored <strong>only on your device</strong>, is not accessible by us or any third party, and is used exclusively to personalize your ebook reading experience on this website.</p>\n" 51 "<p>This information is stored <strong>only on your device</strong> and is never transmitted to our servers. It is used exclusively to personalize your ebook reading experience on this website.</p>\n" 52 "<p>If you use the Text-to-Speech functionality offered by the ebook viewer with a remote voice (the available voices depend on the browser and the operating system: Chrome offers Google remote voices, Edge offers Microsoft remote ones, for example), the text to be synthesized and the voice and language parameters will be transmitted to these remote services. As with any network request, your IP address and browser identifiers are also transmitted. You can avoid this by selecting a local voice, if available in your system.</p>\n" 50 53 "<p><strong>Note:</strong> To retrieve and display the ebook content, the plugin interacts with the WordPress REST API. This process may involve the use of <strong>technical cookies</strong> that are set by WordPress itself to ensure secure and correct data transmission. These cookies do not track you and are essential for the proper functioning of the website.</p>\n" 51 54 "<p>You can clear your saved preferences at any time by clearing your browser’s local storage or using your browser's privacy settings.</p>" … … 53 56 54 57 #. translators: %s: example of an ebook slug based on the opened ebook 55 #: includes/simebv-admin.php:1 1258 #: includes/simebv-admin.php:109 56 59 #, php-format 57 60 msgid "Use this slug in the shortcode \"simebv_viewer\" to view the ebook in your pages (e.g. [simebv_viewer book=\"%s\"]). If left empty, the value of post_name will be used instead." 58 61 msgstr "" 59 62 60 #: includes/simebv-viewer.php:98 63 #: includes/simebv-viewer.php:130 64 msgid "It seems that JavaScript is not enabled in your browser, you need to enable it in order to use the Ebook Viewer." 65 msgstr "" 66 67 #: includes/simebv-viewer.php:150 61 68 msgid "No Web Publication file provided." 62 69 msgstr "" 63 70 64 #: includes/simebv-viewer.php:126 65 msgid "It seems that JavaScript is not enabled in your browser, you need to enable it in order to use the Ebook Viewer." 71 #: src/js/simebv-annotations-dialog.js:13 72 msgid "Show/hide annotations" 73 msgstr "" 74 75 #: src/js/simebv-annotations-dialog.js:25 76 msgid "Show Calibre Bookmarks" 77 msgstr "" 78 79 #: src/js/simebv-annotations-dialog.js:39 80 msgid "(e.g. of the ebook's paper version)" 81 msgstr "" 82 83 #: src/js/simebv-annotations-dialog.js:40 84 msgid "Show page delimiters" 85 msgstr "" 86 87 #: src/js/simebv-annotations-dialog.js:49 88 #: src/js/simebv-filters-dialog.js:76 89 #: src/js/simebv-fonts-dialog.js:93 90 #: src/js/simebv-footnotes.js:101 91 #: src/js/simebv-metadata-dialog.js:32 92 #: src/js/simebv-show-annotation-dialog.js:13 93 #: src/js/simebv-speech-dialog.js:319 94 msgid "OK" 95 msgstr "" 96 97 #: src/js/simebv-annotations-dialog.js:52 98 msgid "Cancel" 66 99 msgstr "" 67 100 … … 74 107 msgstr "" 75 108 76 #: src/js/simebv-filters-dialog.js:4 4109 #: src/js/simebv-filters-dialog.js:45 77 110 msgid "Rotate hues:" 78 111 msgstr "" 79 112 80 #: src/js/simebv-filters-dialog.js:5 5113 #: src/js/simebv-filters-dialog.js:57 81 114 msgid "Transparent background:" 82 115 msgstr "" 83 116 84 #: src/js/simebv-filters-dialog.js:6 6117 #: src/js/simebv-filters-dialog.js:69 85 118 msgid "Background color:" 86 119 msgstr "" 87 120 88 #: src/js/simebv-filters-dialog.js:72 89 msgid "OK" 90 msgstr "" 91 92 #: src/js/simebv-search-dialog.js:8 93 #: src/js/simebv-search-dialog.js:9 94 msgid "Search" 95 msgstr "" 96 97 #: src/js/simebv-search-dialog.js:21 98 msgid "Previous result" 99 msgstr "" 100 101 #: src/js/simebv-search-dialog.js:32 102 msgid "Next result" 103 msgstr "" 104 105 #: src/js/simebv-search-dialog.js:43 121 #: src/js/simebv-fonts-dialog.js:12 122 msgid "Select Font Style" 123 msgstr "" 124 125 #: src/js/simebv-fonts-dialog.js:26 126 msgid "Auto" 127 msgstr "" 128 129 #: src/js/simebv-fonts-dialog.js:38 130 msgid "Serif" 131 msgstr "" 132 133 #: src/js/simebv-fonts-dialog.js:51 134 msgid "Sans Serif" 135 msgstr "" 136 137 #: src/js/simebv-fonts-dialog.js:64 138 msgid "Monospace" 139 msgstr "" 140 141 #: src/js/simebv-fonts-dialog.js:77 142 msgid "OpenDyslexic" 143 msgstr "" 144 145 #: src/js/simebv-fonts-dialog.js:96 146 #: src/js/simebv-search-dialog.js:61 147 #: src/js/simebv-speech-dialog.js:75 148 #: src/js/simebv-speech-dialog.js:322 106 149 msgid "Close" 107 150 msgstr "" 108 151 109 #: src/js/simebv-viewer.js:172 152 #: src/js/simebv-footnotes.js:14 153 msgid "Bibliography" 154 msgstr "" 155 156 #: src/js/simebv-footnotes.js:15 157 msgid "Definition" 158 msgstr "" 159 160 #: src/js/simebv-footnotes.js:16 161 #: src/js/simebv-footnotes.js:17 162 #: src/js/simebv-footnotes.js:65 163 #: src/js/simebv-footnotes.js:77 164 msgid "Note" 165 msgstr "" 166 167 #: src/js/simebv-footnotes.js:89 168 #: src/js/simebv-menu-items.js:231 169 msgid "Read aloud..." 170 msgstr "" 171 172 #: src/js/simebv-header.js:262 173 msgid "No title" 174 msgstr "" 175 176 #: src/js/simebv-header.js:263 177 msgid "Show sidebar" 178 msgstr "" 179 180 #: src/js/simebv-header.js:266 181 msgid "Show settings" 182 msgstr "" 183 184 #: src/js/simebv-header.js:269 185 msgid "Toggle full screen" 186 msgstr "" 187 188 #: src/js/simebv-header.js:272 189 msgid "Close Reader" 190 msgstr "" 191 192 #: src/js/simebv-menu-items.js:8 110 193 msgid "Search..." 111 194 msgstr "" 112 195 113 #: src/js/simebv- viewer.js:182196 #: src/js/simebv-menu-items.js:19 114 197 msgid "History" 115 198 msgstr "" 116 199 117 #: src/js/simebv- viewer.js:187200 #: src/js/simebv-menu-items.js:24 118 201 msgid "Previous" 119 202 msgstr "" 120 203 121 #: src/js/simebv- viewer.js:195204 #: src/js/simebv-menu-items.js:32 122 205 msgid "Next" 123 206 msgstr "" 124 207 125 #: src/js/simebv- viewer.js:205208 #: src/js/simebv-menu-items.js:43 126 209 msgid "Layout" 127 210 msgstr "" 128 211 129 #: src/js/simebv- viewer.js:208212 #: src/js/simebv-menu-items.js:46 130 213 msgid "Paginated" 131 214 msgstr "" 132 215 133 #: src/js/simebv- viewer.js:209216 #: src/js/simebv-menu-items.js:47 134 217 msgid "Scrolled" 135 218 msgstr "" 136 219 137 #: src/js/simebv- viewer.js:227220 #: src/js/simebv-menu-items.js:66 138 221 msgid "Max pages per view" 139 222 msgstr "" 140 223 141 #: src/js/simebv- viewer.js:240224 #: src/js/simebv-menu-items.js:80 142 225 msgid "Font Size" 143 226 msgstr "" 144 227 145 #: src/js/simebv- viewer.js:243228 #: src/js/simebv-menu-items.js:83 146 229 msgctxt "Font Size" 147 230 msgid "Small" 148 231 msgstr "" 149 232 150 #: src/js/simebv- viewer.js:244233 #: src/js/simebv-menu-items.js:84 151 234 msgctxt "Font Size" 152 235 msgid "Medium" 153 236 msgstr "" 154 237 155 #: src/js/simebv- viewer.js:245238 #: src/js/simebv-menu-items.js:85 156 239 msgctxt "Font Size" 157 240 msgid "Large" 158 241 msgstr "" 159 242 160 #: src/js/simebv- viewer.js:246243 #: src/js/simebv-menu-items.js:86 161 244 msgctxt "Font Size" 162 245 msgid "X-Large" 163 246 msgstr "" 164 247 165 #: src/js/simebv- viewer.js:259248 #: src/js/simebv-menu-items.js:98 166 249 msgid "Page Margins" 167 250 msgstr "" 168 251 169 #: src/js/simebv- viewer.js:262252 #: src/js/simebv-menu-items.js:101 170 253 msgctxt "Margins" 171 254 msgid "Small" 172 255 msgstr "" 173 256 174 #: src/js/simebv- viewer.js:263257 #: src/js/simebv-menu-items.js:102 175 258 msgctxt "Margins" 176 259 msgid "Medium" 177 260 msgstr "" 178 261 179 #: src/js/simebv- viewer.js:264262 #: src/js/simebv-menu-items.js:103 180 263 msgctxt "Margins" 181 264 msgid "Large" 182 265 msgstr "" 183 266 184 #: src/js/simebv-viewer.js:275 267 #: src/js/simebv-menu-items.js:115 268 msgid "Show position" 269 msgstr "" 270 271 #: src/js/simebv-menu-items.js:118 272 msgid "Slider" 273 msgstr "" 274 275 #: src/js/simebv-menu-items.js:119 276 msgid "Percentage" 277 msgstr "" 278 279 #: src/js/simebv-menu-items.js:120 280 msgid "Pages" 281 msgstr "" 282 283 #: src/js/simebv-menu-items.js:131 185 284 msgid "Colors" 186 285 msgstr "" 187 286 188 #: src/js/simebv- viewer.js:278287 #: src/js/simebv-menu-items.js:134 189 288 msgctxt "Theme color" 190 289 msgid "Auto" 191 290 msgstr "" 192 291 193 #: src/js/simebv- viewer.js:279292 #: src/js/simebv-menu-items.js:135 194 293 msgctxt "Theme color" 195 294 msgid "Sepia" 196 295 msgstr "" 197 296 198 #: src/js/simebv- viewer.js:280297 #: src/js/simebv-menu-items.js:136 199 298 msgctxt "Theme color" 200 299 msgid "Light" 201 300 msgstr "" 202 301 203 #: src/js/simebv- viewer.js:281302 #: src/js/simebv-menu-items.js:137 204 303 msgctxt "Theme color" 205 304 msgid "Dark" 206 305 msgstr "" 207 306 208 #: src/js/simebv-viewer.js:345 307 #: src/js/simebv-menu-items.js:138 308 msgctxt "Theme color" 309 msgid "Light (forced)" 310 msgstr "" 311 312 #: src/js/simebv-menu-items.js:139 313 msgctxt "Theme color" 314 msgid "Dark (forced)" 315 msgstr "" 316 317 #: src/js/simebv-menu-items.js:211 318 msgid "Font style..." 319 msgstr "" 320 321 #: src/js/simebv-menu-items.js:221 322 msgid "Show/hide annotations..." 323 msgstr "" 324 325 #: src/js/simebv-menu-items.js:241 209 326 msgid "Color filter..." 210 327 msgstr "" 211 328 212 #: src/js/simebv- viewer.js:354329 #: src/js/simebv-menu-items.js:251 213 330 msgid "Zoom" 214 331 msgstr "" 215 332 216 #: src/js/simebv- viewer.js:357333 #: src/js/simebv-menu-items.js:254 217 334 msgid "Fit page" 218 335 msgstr "" 219 336 220 #: src/js/simebv- viewer.js:358337 #: src/js/simebv-menu-items.js:255 221 338 msgid "Fit width" 222 339 msgstr "" 223 340 224 #: src/js/simebv- viewer.js:359341 #: src/js/simebv-menu-items.js:256 225 342 msgid "Custom" 226 343 msgstr "" 227 344 228 #. translators: %1s: page number 229 #: src/js/simebv-viewer.js:824 345 #: src/js/simebv-metadata-dialog.js:4 346 msgid "Title" 347 msgstr "" 348 349 #: src/js/simebv-metadata-dialog.js:5 350 msgid "Subtitle" 351 msgstr "" 352 353 #: src/js/simebv-metadata-dialog.js:6 354 msgid "Author" 355 msgstr "" 356 357 #: src/js/simebv-metadata-dialog.js:7 358 msgid "Editor" 359 msgstr "" 360 361 #: src/js/simebv-metadata-dialog.js:8 362 msgid "Translator" 363 msgstr "" 364 365 #: src/js/simebv-metadata-dialog.js:9 366 msgid "Artist" 367 msgstr "" 368 369 #: src/js/simebv-metadata-dialog.js:10 370 msgid "Illustrator" 371 msgstr "" 372 373 #: src/js/simebv-metadata-dialog.js:11 374 msgid "Colorist" 375 msgstr "" 376 377 #: src/js/simebv-metadata-dialog.js:12 378 msgid "Narrator" 379 msgstr "" 380 381 #: src/js/simebv-metadata-dialog.js:13 382 msgid "Language" 383 msgstr "" 384 385 #: src/js/simebv-metadata-dialog.js:14 386 msgid "Publisher" 387 msgstr "" 388 389 #: src/js/simebv-metadata-dialog.js:15 390 msgid "Publication date" 391 msgstr "" 392 393 #: src/js/simebv-metadata-dialog.js:16 394 msgid "Subject" 395 msgstr "" 396 397 #: src/js/simebv-metadata-dialog.js:17 398 msgid "Description" 399 msgstr "" 400 401 #: src/js/simebv-metadata-dialog.js:18 402 msgid "Source" 403 msgstr "" 404 405 #: src/js/simebv-metadata-dialog.js:19 406 msgid "Rights" 407 msgstr "" 408 409 #: src/js/simebv-metadata-dialog.js:20 410 msgid "Source of the page list" 411 msgstr "" 412 413 #: src/js/simebv-metadata-dialog.js:21 414 msgid "Identifier" 415 msgstr "" 416 417 #: src/js/simebv-metadata-dialog.js:22 418 msgid "Other identifiers" 419 msgstr "" 420 421 #: src/js/simebv-metadata-dialog.js:28 422 msgid "Ebook metadata" 423 msgstr "" 424 425 #: src/js/simebv-metadata-dialog.js:55 426 msgid "Ebook format" 427 msgstr "" 428 429 #: src/js/simebv-navbar.js:86 430 msgid "Turn left page" 431 msgstr "" 432 433 #: src/js/simebv-navbar.js:89 434 msgid "Turn right page" 435 msgstr "" 436 437 #: src/js/simebv-navbar.js:92 438 msgid "Location in ebook" 439 msgstr "" 440 441 #: src/js/simebv-search-dialog.js:26 442 #: src/js/simebv-search-dialog.js:27 443 msgid "Search" 444 msgstr "" 445 446 #: src/js/simebv-search-dialog.js:39 447 msgid "Previous result" 448 msgstr "" 449 450 #: src/js/simebv-search-dialog.js:50 451 msgid "Next result" 452 msgstr "" 453 454 #: src/js/simebv-show-annotation-dialog.js:20 455 msgid "Annotation" 456 msgstr "" 457 458 #: src/js/simebv-sidebar.js:163 459 msgid "Details" 460 msgstr "" 461 462 #: src/js/simebv-sidebar.js:180 463 msgid "Ebook metadata and navigation trees" 464 msgstr "" 465 466 #: src/js/simebv-sidebar.js:268 467 msgid "Table of contents" 468 msgstr "" 469 470 #: src/js/simebv-sidebar.js:277 471 #: src/js/simebv-viewer.js:295 472 msgid "Page list" 473 msgstr "" 474 475 #: src/js/simebv-speech-dialog.js:16 476 msgid "Play" 477 msgstr "" 478 479 #: src/js/simebv-speech-dialog.js:17 480 msgid "Pause" 481 msgstr "" 482 483 #: src/js/simebv-speech-dialog.js:35 484 msgid "Speech Options" 485 msgstr "" 486 487 #: src/js/simebv-speech-dialog.js:48 488 msgid "Go to previous section" 489 msgstr "" 490 491 #: src/js/simebv-speech-dialog.js:59 492 msgid "Go to next section" 493 msgstr "" 494 495 #: src/js/simebv-speech-dialog.js:200 496 msgid "Text To Speech Options" 497 msgstr "" 498 499 #: src/js/simebv-speech-dialog.js:214 500 msgid "Volume: " 501 msgstr "" 502 503 #: src/js/simebv-speech-dialog.js:234 504 msgid "Pitch: " 505 msgstr "" 506 507 #: src/js/simebv-speech-dialog.js:254 508 msgid "Speed: " 509 msgstr "" 510 511 #: src/js/simebv-speech-dialog.js:289 512 msgid "Voice: " 513 msgstr "" 514 515 #: src/js/simebv-speech-dialog.js:299 516 msgid "The voice is automatically selected based on the ebook and the system language. If you have more than one voice for the language, you can select your preferred one in the system settings." 517 msgstr "" 518 519 #: src/js/simebv-speech-dialog.js:305 520 msgid "If you select a word in the text, the speech will begin from that word." 521 msgstr "" 522 523 #: src/js/simebv-speech-dialog.js:306 524 msgid "Warning: remote voices may restart from the beginning of the paragraph when they are changed. On Android, all voices may do the same when paused also." 525 msgstr "" 526 527 #: src/js/simebv-speech.js:27 528 msgid "I cannot access the audio output device because it's already in use, maybe by another application." 529 msgstr "" 530 531 #: src/js/simebv-speech.js:28 532 msgid "I cannot identify an audio output channel on this device." 533 msgstr "" 534 535 #: src/js/simebv-speech.js:29 536 msgid "A required network operation to start the speech synthesis failed." 537 msgstr "" 538 539 #: src/js/simebv-speech.js:30 540 msgid "No speech synthesis engine available at this moment." 541 msgstr "" 542 543 #: src/js/simebv-speech.js:31 544 msgid "The speech synthesis engine raised an error." 545 msgstr "" 546 547 #: src/js/simebv-speech.js:32 548 msgid "No appropriate voice available" 549 msgstr "" 550 551 #: src/js/simebv-speech.js:33 552 msgid "The selected voice is not available." 553 msgstr "" 554 555 #: src/js/simebv-speech.js:34 556 msgid "The text is too long to synthesize." 557 msgstr "" 558 559 #: src/js/simebv-speech.js:35 560 msgid "The value of at least one amongst Speed, Pitch and Volume is not valid." 561 msgstr "" 562 563 #: src/js/simebv-speech.js:36 564 msgid "The operation's start was not allowed." 565 msgstr "" 566 567 #: src/js/simebv-speech.js:174 568 #, js-format 569 msgid "No appropriate voice available for the language %1$s" 570 msgstr "" 571 572 #: src/js/simebv-viewer.js:294 573 msgid "Start of page " 574 msgstr "" 575 576 #. translators: %1$s: page number 577 #: src/js/simebv-viewer.js:882 578 #: src/js/simebv-viewer.js:886 230 579 #, js-format 231 580 msgid "Page %1$s" 232 581 msgstr "" 233 582 234 #. translators: Loc: contraction for 'Location' in the book, followed by a numerical fraction 235 #: src/js/simebv-viewer.js:828 583 #: src/js/simebv-viewer.js:890 584 #: src/js/simebv-viewer.js:891 585 msgid "Front matter" 586 msgstr "" 587 588 #. translators: Location in the book, followed by a numerical fraction 589 #: src/js/simebv-viewer.js:896 236 590 #, js-format 237 msgid "Loc %1$s/%2$s" 238 msgstr "" 239 240 #: src/js/simebv-viewer.js:968 591 msgid "Location %1$s/%2$s" 592 msgstr "" 593 594 #. translators: current page number / total pages number 595 #: src/js/simebv-viewer.js:900 596 #, js-format 597 msgid "Page %1$s / %2$s" 598 msgstr "" 599 600 #: src/js/simebv-viewer.js:1065 241 601 msgid "Loading..." 242 602 msgstr "" 243 603 244 #: src/js/simebv-viewer.js:970 245 msgid "Show sidebar" 246 msgstr "" 247 248 #: src/js/simebv-viewer.js:974 249 msgid "No title" 250 msgstr "" 251 252 #: src/js/simebv-viewer.js:976 253 msgid "Show settings" 254 msgstr "" 255 256 #: src/js/simebv-viewer.js:981 257 msgid "Full screen" 258 msgstr "" 259 260 #: src/js/simebv-viewer.js:986 261 msgid "Go left" 262 msgstr "" 263 264 #: src/js/simebv-viewer.js:991 265 msgid "Go right" 266 msgstr "" 267 268 #: src/js/simebv-viewer.js:1108 604 #: src/js/simebv-viewer.js:1066 605 msgid "Ebook contents" 606 msgstr "" 607 608 #: src/js/simebv-viewer.js:1149 269 609 msgid "Error: I couldn't retrieve the book to display." 270 610 msgstr "" 271 611 272 #: src/js/simebv-viewer.js:11 14612 #: src/js/simebv-viewer.js:1155 273 613 msgid "Resource not found on the server" 274 614 msgstr "" 275 615 276 #: src/js/block/block.json 277 msgctxt "block title" 278 msgid "Ebook Viewer Block" 279 msgstr "" 280 281 #: src/js/block/block.json 282 msgctxt "block description" 283 msgid "Display and navigate the contents of an ebook." 284 msgstr "" 616 #: src/js/simebv-viewer.js:1170 617 msgid "Error while opening the book:" 618 msgstr "" -
simple-ebook-viewer/trunk/readme.txt
r3412994 r3480712 3 3 Tags: ebook, epub, viewer, reader, azw3 4 4 Tested up to: 6.9 5 Stable Tag: 0.4.15 Stable Tag: 1.0.0 6 6 Requires PHP: 7.4 7 7 Requires at least: 6.0 … … 55 55 56 56 **Settings** 57 57 58 The users of your site will be able to set their preferences about the appearance of the ebook in the Viewer by opening the Viewer menu (the cog icon on the top right) and by selecting the appropriate entries. 58 59 59 60 The plugin sets some reasonable defaults for these preferences, but if you're not happy with those defaults, you can change them by adding one or more of the following attributes to the shortcode, with the appropriate values: 60 61 61 * **`layout`** 62 62 - accepted values: "**paginated**" or "**scrolled**" (default: **paginated**) … … 65 65 * **`default-font-size`** 66 66 - accepted values: "**small**", "**medium**", "**large**", "**x-large**" (default: **medium**) 67 * **`font-family`** 68 - accepted_values: "**auto**", "**serif**", "**sans-serif**", "**monospace**", "**opendyslexic**" (default: **auto**) 67 69 * **`page-margins`** 68 70 - accepted values: "**small**", "**medium**", "**large**" (default: **medium**) 71 * **`show-annotations`** 72 - accepted values: "**true**", "**false**" (default: **false**) 73 * **`show-page-delimiters`** 74 - accepted values: "**true**", "**false**" (default: **false**) 69 75 * **`zoom`** 70 76 - accepted values: "**fit-page**", "**fit-width**" or a number in the range **10 - 400** (default: **fit-page**) … … 72 78 - accepted values: "**auto**", "**sepia**", "**light**", "**dark**" (default: **auto**) 73 79 74 Layout, max-pages, default-font-size and page-margins are only available for reflowable ebooks, while zoomis only available for fixed layout ones.80 `Layout`, `max-pages`, `default-font-size` and `page-margins` are only available for reflowable ebooks, while `zoom` is only available for fixed layout ones. 75 81 76 Max-pagesis the maximum number of pages (in the "paginated" layout) that the user will be able to see in a single view (if there is enough screen space).82 `Max-pages` is the maximum number of pages (in the "paginated" layout) that the user will be able to see in a single view (if there is enough screen space). 77 83 78 Color-scheme: "auto" means that the Viewer will adapt to the preferred color-scheme set by the user in their device or browser (light or dark). 84 `Show-annotations` and `show-page-delimiters` let the user see on the pages the Calibre annotations (as highlighted text, if there are Calibre annotations in the ebook) and the page delimiters (as short vertical bars, if the ebook contains a page list). 85 86 `Color-scheme`: "auto" means that the Viewer will adapt to the preferred color-scheme set by the user in their device or browser (light or dark). 79 87 80 88 For most ebooks these preferences should be enough, but sometimes there are ebooks with style rules that don't play well with the styles set by the Viewer, so the users have also the option to apply some filters to the Viewer's colors (with the menu entry "Color filter..."). 81 89 82 90 You can set the default values for these filters with the following shortcode's attributes: 83 84 91 * **`activate-color-filter`** 85 92 - accepted values: "**true**", "**false**" (default: **false**) … … 93 100 - accepted values: a valid CSS hex color code (default: **#FFFFFF**) 94 101 95 Set activate-color-filter to "true" is necessary to enable all the other filters, and set bg-transparent-filter to false is necessary to enable bg-color-filter.102 Set `activate-color-filter` to "true" is necessary to enable all the other filters, and set `bg-transparent-filter` to false is necessary to enable `bg-color-filter`. 96 103 97 Bg-transparent-filter and bg-color-filterare available for reflowable ebooks only.104 `Bg-transparent-filter` and `bg-color-filter` are available for reflowable ebooks only. 98 105 99 Invert-color-filterinverts the lightness of the colors. With a value of 0 it has no effect, with a value of 1, the white will become black and the black will become white.106 `Invert-color-filter` inverts the lightness of the colors. With a value of 0 it has no effect, with a value of 1, the white will become black and the black will become white. 100 107 101 Rotate-color-filter rotates the hues of all the colors in the ebook, like in a [Color Wheel](https://developer.mozilla.org/en-US/docs/Glossary/Color_wheel) (so, no effect on black and white). 108 `Rotate-color-filter` rotates the hues of all the colors in the ebook, like in a [Color Wheel](https://developer.mozilla.org/en-US/docs/Glossary/Color_wheel) (so, no effect on black and white). 109 110 There are some other settings that the users won't be able to change by themselves. These are: 111 * **`always-full-viewport`** 112 - accepted values: "**true**", "**false**" (default: **false**. If **true**, **return-to-url** is also required) 113 * **`return-to-url`** 114 - accepted values: a URL with the same hostname than the page that contains the ebook viewer (default: '') 115 * **`real-fullscreen`** 116 - accepted values: "**true**", "**false**" (default: **false**) 117 * **`allow-js`** 118 - accepted values: "**true**", "**false**" (default: **false**) 119 * **`math-styles`** 120 - accepted values: "**fonts**", "**styles**", "**all**" (default: '') 121 * **`ebook-author`** 122 - accepted values: any string, max 260 characters (default: '') 123 * **`ebook-title`** 124 - accepted values: any string, max 260 characters (default: '') 125 * **`popup-notes`** 126 - accepted values: "**true**", "**false**" (default: **true**) 127 128 With `always-full-viewport` set to "true", the ebook viewer will automatically cover the entire webpage when it is opened, and the "full screen" icon will be replaced by a "close viewer" icon. `always-full-viewport="true"` requires that also `return-to-url` is present, with a valid URL that indicates the destination of the user when they choose to close the viewer. The URL can be relative, like "/" or "/books-gallery", or it can be absolute, but it needs to have the same hostname of the webpage that contains the ebook viewer (e.g. if the ebook viewer is opened in https://www.example.com/ebook-viewer, the URL in `return-to-url` needs to start with https://www.example.com). 129 130 If `real-fullscreen` is set to "true", the ebook viewer will cover the entire screen instead of only the viewport of the webpage when the user clicks on the "full screen" icon. With `real-fullscreen` set to true, `always-full-viewport` is ignored, since the full screen requires an explicit action by the user. 131 132 `Allow-js`: normally, the plugin forbids, as far as possible, script execution from inside the ebooks. If you set `allow-js` to true, this restriction is relaxed, and scripts within the ebook can be executed. 133 **Caveat 1**: you need to be absolutely certain that the code inside the ebook is not malicious, since it can harm your entire webpage. 134 **Caveat 2**: the ebook viewer is not strongly equipped to deal with dynamic content created or removed after the ebook opening, so you might encounter errors or inaccuracies when jumping from one ebook location to another in such a circumstance. 135 136 `Math-styles`: in recent years all the major browser have implemented a good deal of the MathML Core specification, so it is now possible to represent natively many mathematical expression without the use of third party libraries. However, not all browsers and systems load automatically appropriate fonts. With math-styles set to "fonts" or "all", all the contents of MathML expression will use the Latin Modern font. 137 Another shortcoming in the current support of MathML, is that only Gecko based browsers (i.e. Firefox) implement a breaking lines algorithm, so long math expressions within small screens usually don't fit entirely. With math-styles set to "styles" or "all", the plugin will use some html+css tricks to try to allow either line breaks or horizontal scrolling. 138 139 `Ebook-author` and `ebook-title`: you can use these optional values to override the ones that the ebook viewer retrieves from the ebook metadata in order to display them to the users. 140 141 `Popup-notes`: show footnotes and endnotes as popup instead of just links. The notes (and their references) need to be marked with the appropriate epub:type attributes to ensure that they are displayed as popups (the ebook viewer will try to recognize them anyway, but without guarantees). 102 142 103 143 == Warning == … … 105 145 Ebooks can contain scripted content that might be executed on your webpage. The plugin does its best to forbid script execution from inside the loaded content, but it can't guarantee 100% safety. Don't display ebooks from untrusted sources and/or check your ebooks before uploading and displaying them. If you can, provide a strict Content Security Policy for your site. 106 146 147 == Credits == 148 149 This plugin embeds a slightly modified version of the foliate-js library 150 by John Factotum (https://github.com/johnfactotum/foliate-js), 151 which is distributed under the MIT license. 152 153 As secondary dependencies of the foliate-js library, the plugin embeds other three libraries: 154 * zip.js (https://github.com/gildas-lormeau/zip.js), licensed under the BSD-3-Clause; 155 * fflate (https://github.com/101arrowz/fflate), MIT licensed. 156 * PDF.js (https://github.com/mozilla/pdf.js), licensed under the Apache v2.0 license. 157 158 PDF.js is present in the repository's source code, but is not included in the distribution of the current version of the plugin. 159 160 Other libraries embedded by the plugin are: 161 * vite-for-wp by Dzikri Aziz (https://github.com/kucrut/vite-for-wp), 162 licensed under the GPL v2.0 license 163 * Speech Rule Engine (https://github.com/Speech-Rule-Engine/speech-rule-engine), 164 licensed under the Apache v2.0 license 165 166 Embedded fonts: 167 * OpenDyslexic (https://opendyslexic.org/) by Abbie Gonzales, licensed under the SIL Open Font License v1.1; 168 * Manrope (https://github.com/sharanda/manrope) by The Manrope Project Authors, licensed under the SIL Open Font License v1.1; 169 * Latin Modern (https://www.gust.org.pl/projects/e-foundry) by the Polish TeX Users Group, licensed under the GUST Font License. 170 171 OpenDyslexic and Latin Modern fonts have been converted from their original OpenType format to the woff2 format for use on the web, without, at the best of my knowledge, modifying their internal parameters and metadata. -
simple-ebook-viewer/trunk/simple-ebook-viewer.php
r3301587 r3480712 3 3 * Plugin Name: Simple Ebook Viewer 4 4 * Description: A plugin to embed and display Ebooks 5 * Version: 0.4.15 * Version: 1.0.0 6 6 * Author: Francesco Martini 7 7 * License: GPL-2.0+ … … 16 16 17 17 18 define('SIMEBV_VERSION', ' 0.4.1');18 define('SIMEBV_VERSION', '1.0.0'); 19 19 define('SIMEBV_PLUGIN_DIR', plugin_dir_path( __FILE__ )); 20 20 define('SIMEBV_PLUGIN_URL', plugin_dir_url( __FILE__ )); … … 25 25 26 26 require_once SIMEBV_PLUGIN_DIR . 'vendor/vite-for-wp/vite-for-wp.php'; 27 require_once SIMEBV_PLUGIN_DIR . 'includes/simebv-base.php'; 27 28 require_once SIMEBV_PLUGIN_DIR . 'includes/simebv-viewer.php'; 28 29 require_once SIMEBV_PLUGIN_DIR . 'includes/simebv-admin.php'; -
simple-ebook-viewer/trunk/uninstall.php
r3301587 r3480712 1 1 <?php 2 if (!defined( WP_UNINSTALL_PLUGIN)) {2 if (!defined('WP_UNINSTALL_PLUGIN')) { 3 3 exit; 4 4 }
Note: See TracChangeset
for help on using the changeset viewer.