Check-in [53081278cb]
Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Use saxonb-xslt for help pages, add short usage/intro page. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
53081278cbb9f0bf3038df078f89cc50 |
User & Date: | mario 2020-06-11 18:49:39 |
Context
2020-06-12
| ||
04:42 | Fix to dlg:help-url=โฆ Now context-sensitive help pops up for F1 in settings window. (For LibreOffice before 7.0 at least) check-in: 29abf22448 user: mario tags: trunk | |
2020-06-11
| ||
18:49 | Use saxonb-xslt for help pages, add short usage/intro page. check-in: 53081278cb user: mario tags: trunk | |
2020-06-10
| ||
05:10 | Add help-uri=vnd.sun.star.help://help/vnd.include-once.pagetranslate/config.xhp?Language=en&โฆ; doesn't work of course. check-in: 15c0def16d user: mario tags: trunk | |
Changes
Changes to Makefile.
|
| | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | all: xhp oxt install install: unopkg remove vnd.include-once.pagetranslate unopkg add --log-file log.txt -s pagetranslate.oxt oxt: version --read pagetranslate.py --incr --write pagetranslate.py --write description.xml zip pagetranslate.oxt -r META-INF pagetranslate.py *xcu *xcs *xdl *desc* icons pythonpath/ help #pythonpath: aoo: oxt /opt/openoffice4/program/unopkg add pagetranslate.oxt /opt/openoffice4/program/soffice -writer xhp: make -C help/en/vnd.include-once.pagetranslate/ |
Changes to help/en/help.tree.
1 2 3 4 | <?xml version="1.0" encoding="UTF-8"?> <tree_view> <help_section application="vnd.include-once.pagetranslate" id="idm49428" title="PageTranslate"> <topic id="help/vnd.include-once.pagetranslate/config.xhp">Config options</topic> | > | | 1 2 3 4 5 6 7 8 | <?xml version="1.0" encoding="UTF-8"?> <tree_view> <help_section application="vnd.include-once.pagetranslate" id="idm49428" title="PageTranslate"> <topic id="help/vnd.include-once.pagetranslate/usage.xhp">Usage</topic> <topic id="help/vnd.include-once.pagetranslate/config.xhp">Config options</topic> <topic id="help/vnd.include-once.pagetranslate/config.page">Config options (src)</topic> </help_section> </tree_view> |
Added help/en/vnd.include-once.pagetranslate/Makefile.
> > > > > | 1 2 3 4 5 | all: config.xhp usage.xhp %.xhp: %.page saxonb-xslt $*.page mallard2xhp.xsl > $*.xhp #xsltproc mallard2xhp.xsl config.page.xhp > config.xhp |
Name change from help/en/vnd.include-once.pagetranslate/config.page.xhp to help/en/vnd.include-once.pagetranslate/config.page.
|
| > | | | | > > | > | > | > > > | | > | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | <?xml version="1.0"?> <?xml-stylesheet href="./mallard2xhp.xsl" type="text/xsl"?> <!--%origin%/help/en/vnd.include-once.pagetranslate/--> <page xmlns="http://projectmallard.org/1.0/" type="guide" group="first" id="config"> <info> <link type="guide" xref="OptionsPageTranslate"/> <link type="index" xref="translation; pagetranslate; options"/> <desc>PageTranslate settings</desc> </info> <title>Translation settings</title> <p>The options page can be found under <guiseq><gui>Tools</gui> โ <gui>Options</gui> โ <gui>๐</gui> โ <gui>Language Settings</gui> โ <gui>PageTranslate</gui></guiseq>.</p> <section id="service"> <title>Translation service to use</title> <terms> <item> <title>โ Google Translate</title> <p>That's the default, and suitable to both text selection and translating whole pages. Provides pretty good machine translations. It incurs some delays for longer texts, as each 1900 characters (sentences/paragraphs) have to be transfered individually (managed automatically, no user interaction necessary).</p> </item> <item> <title>โ DeepL web</title> <p>Only makes sense for translating a single-paragraph / text selection, because it quickly blocks with "error 429 - too many requests" otherwise.</p> </item> <item> <title>โ DeepL per API</title> <p>Use the speedier API to translate documents. As of yet untested. Requires an API key and paid subscription. No XML mode (to retain full inline formatting) yet, still translates each text segment/paragraph/sentence individually. </p> </item> <item> <title>โ Microsoft Translator</title> <p>Requires an authorization key, and a `pip install translate` system package. There's also a free/test <link href="https://azure.microsoft.com/en-us/pricing/details/cognitive-services/translator/">subscription for an API key</link>. Not tested within PageTranslate yet.</p> </item> <item> <title>โ MyMemory</title> <p>Should have an email address in the according input box (though optional). Also requires `pip install translate`, unless the full OpenOffice plugin bundle was installed. Doesn't yield quite as good machine translations. But it's an open source service. </p> </item> <item> <title>โ Command line tool</title> <p>Allows to send each text paragraph to a local application. To use it, set the command in the according input field again. Placeholders are `{lang}` for the target language, and `{text}` for the paragaphs or current text section. (Both get automatically escaped). For <cmd>translate-cli</cmd> you might need the <var>-p</var> provider option as well. </p> </item> </terms> </section> <section id="flags"> <title>Operation flags</title> <terms> <item> <title>โ quick linebreak handling</title> <p>Might speed up table processing with Google Translate, as it avoids sending each newline-split sentence separately. It simply conjoins multiple lines temporarily with <cmd>"/#ยง/"</cmd> in place of a linebreak (and then rejoins them), so there are less requests.</p> </item> <item> <title>โ also iterate over TextFrames</title> <p>Handles normal and floating TextFrames. Those are essentially subdocuments in a Writer page. But you probably don't need this option for standard office documents.</p> </item> <item> <title>โ super slow mode</title> <p>Iterates over paragraph segments, to keep more inline formatting - but seriously harms mid-sentence translations. And currently the formatting still bleeds into adjoining paragraph segments, so not very useful in practice yet.</p> </item> <item> <title>โ debug mode</title> <p>Will fill up the <file>/tmp/pagetranslate-libreoffice.txt</file> log file quicker. Currently the debug mode is enabled by default anyway.</p> </item> </terms> </section> </page> |
Changes to help/en/vnd.include-once.pagetranslate/config.xhp.
|
| | | | | | | | | | | | | | > | > > | < | | | | | | > > > | | > > > > | | > > > > | | | > > | > > > | > | > > > > | | > > | > > > | | > > | | | | | | > > > | > > > > | > > > > > > > | > > > > > | > > | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | <?xml version="1.0" encoding="UTF-8"?> <helpdocument version="1.0"> <meta> <topic id="topic_d1e3" indexer="include" status="PUBLISH"> <title xml-lang="en" id="title_d1e3">Translation settings</title> <filename>/help/vnd.include-once.pagetranslate/config_.xhp</filename> </topic> <history> <created date="2020-02-02T22:22:22"/> <lastedited date="2020-06-11T17:44:44.269+02:00"/> </history> </meta> <body> <bookmark id="bm_d1e7" branch="hid/vnd.include-once.pagetranslate:OptionsPageTranslate" xml-lang="en"> <bookmark_value>PageTranslate settings</bookmark_value> </bookmark> <bookmark id="helpindex_d1e9" branch="index" xml-lang="en"> <bookmark_value>translation; pagetranslate; options</bookmark_value> </bookmark> <paragraph id="hd_d1e15" role="heading" level="1" xml-lang="en">Translation settings</paragraph> <paragraph id="par_d1e18" role="paragraph" xml-lang="en">The options page can be found under <item type="gui">Tools</item> โ <item type="gui">Options</item> โ <item type="gui">๐</item> โ <item type="gui">Language Settings</item> โ <item type="gui">PageTranslate</item>.</paragraph> <paragraph id="sect_d1e37" role="section" xml-lang="en"> <paragraph id="hd_d1e39" role="heading" level="2" xml-lang="en">Translation service to use</paragraph> <list id="terms_d1e42" xml-lang="en"> <listitem id="item_d1e44" xml-lang="en"> <emph>โ Google Translate</emph> <br/> <paragraph id="par_d1e49" role="paragraph" xml-lang="en">That's the default, and suitable to both text selection and translating whole pages. Provides pretty good machine translations. It incurs some delays for longer texts, as each 1900 characters (sentences/paragraphs) have to be transfered individually (managed automatically, no user interaction necessary).</paragraph> </listitem> <listitem id="item_d1e53" xml-lang="en"> <emph>โ DeepL web</emph> <br/> <paragraph id="par_d1e58" role="paragraph" xml-lang="en">Only makes sense for translating a single-paragraph / text selection, because it quickly blocks with "error 429 - too many requests" otherwise.</paragraph> </listitem> <listitem id="item_d1e62" xml-lang="en"> <emph>โ DeepL per API</emph> <br/> <paragraph id="par_d1e67" role="paragraph" xml-lang="en">Use the speedier API to translate documents. As of yet untested. Requires an API key and paid subscription. No XML mode (to retain full inline formatting) yet, still translates each text segment/paragraph/sentence individually. </paragraph> </listitem> <listitem id="item_d1e71" xml-lang="en"> <emph>โ Microsoft Translator</emph> <br/> <paragraph id="par_d1e76" role="paragraph" xml-lang="en">Requires an authorization key, and a `pip install translate` system package. There's also a free/test <link href="https://azure.microsoft.com/en-us/pricing/details/cognitive-services/translator/">subscription for an API key</link>. Not tested within PageTranslate yet.</paragraph> </listitem> <listitem id="item_d1e83" xml-lang="en"> <emph>โ MyMemory</emph> <br/> <paragraph id="par_d1e88" role="paragraph" xml-lang="en">Should have an email address in the according input box (though optional). Also requires `pip install translate`, unless the full OpenOffice plugin bundle was installed. Doesn't yield quite as good machine translations. But it's an open source service. </paragraph> </listitem> <listitem id="item_d1e93" xml-lang="en"> <emph>โ Command line tool</emph> <br/> <paragraph id="par_d1e98" role="paragraph" xml-lang="en">Allows to send each text paragraph to a local application. To use it, set the command in the according input field again. Placeholders are `{lang}` for the target language, and `{text}` for the paragaphs or current text section. (Both get automatically escaped). For <item type="command">translate-cli</item> you might need the <item type="variable">-p</item> provider option as well. </paragraph> </listitem> </list> </paragraph> <paragraph id="sect_d1e110" role="section" xml-lang="en"> <paragraph id="hd_d1e112" role="heading" level="2" xml-lang="en">Operation flags</paragraph> <list id="terms_d1e115" xml-lang="en"> <listitem id="item_d1e117" xml-lang="en"> <emph>โ quick linebreak handling</emph> <br/> <paragraph id="par_d1e122" role="paragraph" xml-lang="en">Might speed up table processing with Google Translate, as it avoids sending each newline-split sentence separately. It simply conjoins multiple lines temporarily with <item type="command">"/#ยง/"</item> in place of a linebreak (and then rejoins them), so there are less requests.</paragraph> </listitem> <listitem id="item_d1e129" xml-lang="en"> <emph>โ also iterate over TextFrames</emph> <br/> <paragraph id="par_d1e134" role="paragraph" xml-lang="en">Handles normal and floating TextFrames. Those are essentially subdocuments in a Writer page. But you probably don't need this option for standard office documents.</paragraph> </listitem> <listitem id="item_d1e138" xml-lang="en"> <emph>โ super slow mode</emph> <br/> <paragraph id="par_d1e143" role="paragraph" xml-lang="en">Iterates over paragraph segments, to keep more inline formatting - but seriously harms mid-sentence translations. And currently the formatting still bleeds into adjoining paragraph segments, so not very useful in practice yet.</paragraph> </listitem> <listitem id="item_d1e147" xml-lang="en"> <emph>โ debug mode</emph> <br/> <paragraph id="par_d1e152" role="paragraph" xml-lang="en">Will fill up the <item type="fileitem">/tmp/pagetranslate-libreoffice.txt</item> log file quicker. Currently the debug mode is enabled by default anyway.</paragraph> </listitem> </list> </paragraph> </body> </helpdocument> |
Changes to help/en/vnd.include-once.pagetranslate/mallard2xhp.xsl.
1 2 3 4 5 | <?xml version="1.0" encoding="UTF-8"?><!-- /** * api: xslt * type: transform * title: mallard to xhp | | | > | > | > | | < < | | > > > | > > | > > > > > | | > > > > > | > > > > > > > | | < | | < | > > | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | <?xml version="1.0" encoding="UTF-8"?><!-- /** * api: xslt * type: transform * title: mallard to xhp * description: converts help .page to openoffice .xhp * version: 0.3 * depends: bin:saxonb-xslt * * Crude mapping from mallard help file to OpenOffice helpdocument/xhp. * Only handles paragraphs, titles, lists, sections. No media/images. * And info <link>s are just mapped to type=index or bookmark (type=guide) * entries, but type=seealso and href= links in the body kept as is. * No help.tree generation obviously. * */--> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:m="http://projectmallard.org/1.0/" exclude-result-prefixes="m"> <!-- cfg --> <xsl:variable name="package" select="'vnd.include-once.pagetranslate'"/> <xsl:variable name="filenam" select="replace(replace(base-uri(), '^.+/', ''), '(\.\w+){1,2}$', '.xhp')"/> <xsl:variable name="fileref" select="concat('/help/',$package,'/',$filenam)"/> <xsl:variable name="maptype" select="'gui=gui key=keystroke kbd=keystroke dialog=dialog ins=added del=removed span=span input=input output=output var=variable cmd=command app=menuitem sys=menuitem file=fileitem'"/> <xsl:output indent="yes"/> <!-- new document carcass --> <xsl:template match="/m:page"> <helpdocument version="1.0"> <meta> <topic id="topic_{generate-id()}" indexer="include" status="PUBLISH"> <title xml-lang="en" id="title_{generate-id()}"><xsl:value-of select="(//m:title)[1]"/></title> <filename><xsl:value-of select="$fileref"/></filename> </topic> <history> <created date="2020-02-02T22:22:22"></created> <lastedited date="{current-dateTime()}"></lastedited> </history> </meta> <body> <xsl:apply-templates/> </body> </helpdocument> </xsl:template> <!-- text nodes / paragraphs / sections --> <xsl:template match="text()"> <xsl:value-of select="."/> </xsl:template> <xsl:template match="m:p"> <paragraph id="par_{generate-id()}" role="paragraph" xml-lang="en"> <xsl:apply-templates/> </paragraph> </xsl:template> <xsl:template match="m:title"> <paragraph id="hd_{generate-id()}" role="heading" level="{count(ancestor::*)}" xml-lang="en"> <xsl:value-of select="."/> </paragraph> </xsl:template> <xsl:template match="m:section|m:note"> <xsl:choose> <xsl:when test="@style"> <paragraph id="sect_{generate-id()}" role="{@style}" xml-lang="en"><xsl:apply-templates/></paragraph> </xsl:when> <xsl:otherwise> <paragraph id="sect_{generate-id()}" role="{local-name()}" xml-lang="en"><xsl:apply-templates/></paragraph> </xsl:otherwise> </xsl:choose> </xsl:template> <!-- inline --> <xsl:template match="m:em"> <emph><xsl:apply-templates/></emph> </xsl:template> <xsl:template match="m:guiseq|m:keyseq"> <xsl:apply-templates/> </xsl:template> <xsl:template match="m:gui|m:kbd|m:key|m:dialog|m:ins|m:del|m:span|m:input|m:output|m:var|m:cmd|m:app|m:sys|m:file"> <item type="{replace($maptype, concat('^.*', local-name(), '=(\w+).*$'), '$1')}"><xsl:apply-templates/></item> </xsl:template> <!-- lists --> <xsl:template match="m:terms"> <list id="{local-name()}_{generate-id()}" xml-lang="en"> <xsl:apply-templates/> </list> </xsl:template> <xsl:template match="m:list|m:steps|m:tree"> <list bullet="disc" type="ordered"> <xsl:apply-templates/> </list> </xsl:template> <xsl:template match="m:item"> <listitem id="item_{generate-id()}" xml-lang="en"> <xsl:choose> <xsl:when test="m:title"> <emph><xsl:value-of select="m:title"/></emph><br/> <xsl:apply-templates select="m:p"/> </xsl:when> <xsl:otherwise> <xsl:apply-templates/> </xsl:otherwise> </xsl:choose> </listitem> </xsl:template> <!-- meta --> <xsl:template match="m:link"> <xsl:choose> <!-- meta links --> <xsl:when test="@type='guide'"> |
︙ | ︙ | |||
98 99 100 101 102 103 104 | </xsl:when> <xsl:when test="@href"> <link href="{@href}"><xsl:value-of select="."/></link> </xsl:when> </xsl:choose> </xsl:template> <xsl:template match="m:info"> | | | 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | </xsl:when> <xsl:when test="@href"> <link href="{@href}"><xsl:value-of select="."/></link> </xsl:when> </xsl:choose> </xsl:template> <xsl:template match="m:info"> <xsl:apply-templates select="m:link"/> </xsl:template> <!-- remove all else --> <xsl:template match="*"> <xsl:comment>xsl:skipped=<xsl:value-of select="concat('<', name(), '>')"/></xsl:comment> </xsl:template> </xsl:stylesheet> |
Added help/en/vnd.include-once.pagetranslate/usage.page.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <?xml version="1.0"?> <?xml-stylesheet href="./mallard2xhp.xsl" type="text/xsl"?> <page xmlns="http://projectmallard.org/1.0/" type="guide" group="first" id="usage"> <info> <link type="guide" xref=".uno:ToolsMenu\.uno:T3"/> <link type="index" xref="translate; pagetranslate"/> <desc>Document/Text translation</desc> </info> <title>Translating a document</title> <p>PageTranslate provides two toolbar buttons and a menu <guiseq><gui>Tools</gui> โ <gui>PageTranslate</gui></guiseq> to get documents machine-translated.</p> <p>The main button <key>Tโ๐ฌ๐ง</key> translates text to English. Whereas <key>๐ด</key> uses the local/Office language as target.</p> <p>If a text portion is selected, then only that gets replaced. Otherwise, the extension will traverse the whole Writer/Draw/Impress document, paragraph by paragraph, and substitute each sentence.</p> <warning><p>Which might take a while.</p></warning> <p>There's some <link type="seealso" xref="config#service">options</link> to change, nameley the used translation service (Google per default), or a few performance flags.</p> </page> |
Added help/en/vnd.include-once.pagetranslate/usage.xhp.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <?xml version="1.0" encoding="UTF-8"?> <helpdocument version="1.0"> <meta> <topic id="topic_d1e2" indexer="include" status="PUBLISH"> <title xml-lang="en" id="title_d1e2">Translating a document</title> <filename>/help/vnd.include-once.pagetranslate/usage.xhp</filename> </topic> <history> <created date="2020-02-02T22:22:22"/> <lastedited date="2020-06-11T19:51:14.891+02:00"/> </history> </meta> <body> <bookmark id="bm_d1e6" branch="hid/vnd.include-once.pagetranslate:.uno:ToolsMenu\.uno:T3" xml-lang="en"> <bookmark_value>Document/Text translation</bookmark_value> </bookmark> <bookmark id="helpindex_d1e8" branch="index" xml-lang="en"> <bookmark_value>translate; pagetranslate</bookmark_value> </bookmark> <paragraph id="hd_d1e14" role="heading" level="1" xml-lang="en">Translating a document</paragraph> <paragraph id="par_d1e17" role="paragraph" xml-lang="en">PageTranslate provides two toolbar buttons and a menu <item type="gui">Tools</item> โ <item type="gui">PageTranslate</item> to get documents machine-translated.</paragraph> <paragraph id="par_d1e27" role="paragraph" xml-lang="en">The main button <item type="keystroke">Tโ๐ฌ๐ง</item> translates text to English. Whereas <item type="keystroke">๐ด</item> uses the local/Office language as target.</paragraph> <paragraph id="par_d1e36" role="paragraph" xml-lang="en">If a text portion is selected, then only that gets replaced. Otherwise, the extension will traverse the whole Writer/Draw/Impress document, paragraph by paragraph, and substitute each sentence.</paragraph> <!--xsl:skipped=<warning>--> <paragraph id="par_d1e44" role="paragraph" xml-lang="en">There's some <link href="config#service">options</link> to change, nameley the used translation service (Google per default), or a few performance flags.</paragraph> </body> </helpdocument> |