LibreOffice plugin to pipe whole Writer documents through Google Translate, that ought to keep most of the page formatting.

⌈⌋ ⎇ branch:  PageTranslate


Check-in [c05353ea1c]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:add annotate option
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: c05353ea1ca449d3fadee4fd41675527fa5bd141
User & Date: mario 2022-10-13 08:27:22
Context
2022-10-13
08:33
Enable annotations for table cells. check-in: 6b0be26269 user: mario tags: trunk
08:27
add annotate option check-in: c05353ea1c user: mario tags: trunk
08:19
introduce comment-preservation of original text check-in: 6a653f14b2 user: mario tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to OptionsDialog.xdl.

1
2
3
4
5
6
7
8
9
10
11
12

13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="OptionsPageTranslate" dlg:left="110" dlg:top="50" dlg:width="283" dlg:height="258" dlg:help-url="HIDID" dlg:closeable="true" dlg:moveable="true" dlg:title="Title" dlg:withtitlebar="false">
 <dlg:styles>
  <dlg:style dlg:style-id="0" dlg:border="none" dlg:font-height="8"/>
 </dlg:styles>
 <dlg:bulletinboard>
  <dlg:textfield dlg:id="api_key" dlg:tab-index="4" dlg:left="169" dlg:top="20" dlg:width="75" dlg:height="10" dlg:help-text="Key required for DeepL, Microsoft Translator, or Google Translate API (not implemented here)" dlg:help-url="HIDID"/>
  <dlg:checkbox dlg:id="quick" dlg:tab-index="0" dlg:left="10" dlg:top="87" dlg:width="111" dlg:height="10" dlg:help-text="Temporary placeholders instead of iterating over newline breaks. (Only tested with Google Translate. Might screw up others.)" dlg:help-url="HIDID" dlg:value="quick paragraph linebreak handling" dlg:checked="false"/>
  <dlg:checkbox dlg:id="frames" dlg:tab-index="1" dlg:left="10" dlg:top="100" dlg:width="100" dlg:height="10" dlg:help-text="Traverse subdocuments (frames / floating frames) as well" dlg:help-url="HIDID" dlg:value="also iterate over TextFrames" dlg:checked="false"/>
  <dlg:checkbox dlg:id="slow" dlg:tab-index="2" dlg:left="10" dlg:top="113" dlg:width="109" dlg:height="10" dlg:help-text="Split sentences on formatting prior translation (= more roundtrips, less cohesive sentence structure / translation)" dlg:help-url="HIDID" dlg:value="slow mode (more inline formatting)" dlg:checked="false"/>
  <dlg:checkbox dlg:id="selectonly" dlg:tab-index="3" dlg:left="10" dlg:top="126" dlg:width="100" dlg:height="10" dlg:help-text="Disable full doc translation (Tradutor mode)" dlg:help-url="HIDID" dlg:value="Select-mode only" dlg:checked="false"/>

  <dlg:checkbox dlg:id="debug" dlg:tab-index="4" dlg:left="10" dlg:top="140" dlg:width="100" dlg:height="10" dlg:help-text="Log file in /tmp/pagetranslate-libreoffice.txt" dlg:help-url="HIDID" dlg:value="additonal debugging" dlg:checked="true"/>
  <dlg:textfield dlg:id="email" dlg:tab-index="5" dlg:left="169" dlg:top="42" dlg:width="75" dlg:height="10" dlg:help-text="MyMemory asks for an email addres (does not require it)" dlg:help-url="HIDID"/>
  <dlg:fixedline dlg:id="FixedLine1" dlg:tab-index="6" dlg:left="5" dlg:top="75" dlg:width="117" dlg:height="9" dlg:value="Options"/>
  <dlg:fixedline dlg:id="FixedLine3" dlg:tab-index="7" dlg:left="5" dlg:top="5" dlg:width="117" dlg:height="7" dlg:value="Service"/>
  <dlg:fixedline dlg:id="FixedLine2" dlg:tab-index="8" dlg:left="131" dlg:top="5" dlg:width="115" dlg:height="8" dlg:value="Parameters"/>
  <dlg:fixedline dlg:id="Label1" dlg:tab-index="9" dlg:left="137" dlg:top="20" dlg:width="23" dlg:height="8" dlg:value="API key "/>
  <dlg:fixedline dlg:id="Label2" dlg:tab-index="10" dlg:left="137" dlg:top="42" dlg:width="28" dlg:height="8" dlg:printable="false" dlg:value="Email adr "/>
  <dlg:fixedline dlg:id="Label3" dlg:tab-index="11" dlg:left="137" dlg:top="64" dlg:width="30" dlg:height="8" dlg:value="Command "/>












>
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="OptionsPageTranslate" dlg:left="110" dlg:top="50" dlg:width="283" dlg:height="258" dlg:help-url="HIDID" dlg:closeable="true" dlg:moveable="true" dlg:title="Title" dlg:withtitlebar="false">
 <dlg:styles>
  <dlg:style dlg:style-id="0" dlg:border="none" dlg:font-height="8"/>
 </dlg:styles>
 <dlg:bulletinboard>
  <dlg:textfield dlg:id="api_key" dlg:tab-index="4" dlg:left="169" dlg:top="20" dlg:width="75" dlg:height="10" dlg:help-text="Key required for DeepL, Microsoft Translator, or Google Translate API (not implemented here)" dlg:help-url="HIDID"/>
  <dlg:checkbox dlg:id="quick" dlg:tab-index="0" dlg:left="10" dlg:top="87" dlg:width="111" dlg:height="10" dlg:help-text="Temporary placeholders instead of iterating over newline breaks. (Only tested with Google Translate. Might screw up others.)" dlg:help-url="HIDID" dlg:value="quick paragraph linebreak handling" dlg:checked="false"/>
  <dlg:checkbox dlg:id="frames" dlg:tab-index="1" dlg:left="10" dlg:top="100" dlg:width="100" dlg:height="10" dlg:help-text="Traverse subdocuments (frames / floating frames) as well" dlg:help-url="HIDID" dlg:value="also iterate over TextFrames" dlg:checked="false"/>
  <dlg:checkbox dlg:id="slow" dlg:tab-index="2" dlg:left="10" dlg:top="113" dlg:width="109" dlg:height="10" dlg:help-text="Split sentences on formatting prior translation (= more roundtrips, less cohesive sentence structure / translation)" dlg:help-url="HIDID" dlg:value="slow mode (more inline formatting)" dlg:checked="false"/>
  <dlg:checkbox dlg:id="selectonly" dlg:tab-index="3" dlg:left="10" dlg:top="126" dlg:width="100" dlg:height="10" dlg:help-text="Disable full doc translation (Tradutor mode)" dlg:help-url="HIDID" dlg:value="Select-mode only" dlg:checked="false"/>
  <dlg:checkbox dlg:id="annotate" dlg:tab-index="4" dlg:left="10" dlg:top="139" dlg:width="100" dlg:height="10" dlg:help-text="Preserver untranslated text in comment before paragraph / text section" dlg:help-url="HIDID" dlg:value="original text annotations" dlg:checked="false"/>
  <dlg:checkbox dlg:id="debug" dlg:tab-index="4" dlg:left="10" dlg:top="152" dlg:width="100" dlg:height="10" dlg:help-text="Log file in /tmp/pagetranslate-libreoffice.txt" dlg:help-url="HIDID" dlg:value="additional debugging" dlg:checked="true"/>
  <dlg:textfield dlg:id="email" dlg:tab-index="5" dlg:left="169" dlg:top="42" dlg:width="75" dlg:height="10" dlg:help-text="MyMemory asks for an email addres (does not require it)" dlg:help-url="HIDID"/>
  <dlg:fixedline dlg:id="FixedLine1" dlg:tab-index="6" dlg:left="5" dlg:top="75" dlg:width="117" dlg:height="9" dlg:value="Options"/>
  <dlg:fixedline dlg:id="FixedLine3" dlg:tab-index="7" dlg:left="5" dlg:top="5" dlg:width="117" dlg:height="7" dlg:value="Service"/>
  <dlg:fixedline dlg:id="FixedLine2" dlg:tab-index="8" dlg:left="131" dlg:top="5" dlg:width="115" dlg:height="8" dlg:value="Parameters"/>
  <dlg:fixedline dlg:id="Label1" dlg:tab-index="9" dlg:left="137" dlg:top="20" dlg:width="23" dlg:height="8" dlg:value="API key "/>
  <dlg:fixedline dlg:id="Label2" dlg:tab-index="10" dlg:left="137" dlg:top="42" dlg:width="28" dlg:height="8" dlg:printable="false" dlg:value="Email adr "/>
  <dlg:fixedline dlg:id="Label3" dlg:tab-index="11" dlg:left="137" dlg:top="64" dlg:width="30" dlg:height="8" dlg:value="Command "/>
64
65
66
67
68
69
70
71
72
73
    <dlg:menuitem dlg:value="deep_translator -trans &quot;google&quot; -src &quot;auto&quot; -tg {lang} -txt {text}"/>
    <dlg:menuitem dlg:value="argos-translate --from-lang {from} --to-lang {lang} {text}"/>
    <dlg:menuitem dlg:value="trans -sl {from} {text} {lang}"/>
    <dlg:menuitem dlg:value="dingonyms --en-fr {text}"/>
   </dlg:menupopup>
  </dlg:combobox>
  <dlg:img dlg:style-id="0" dlg:id="logo" dlg:tab-index="23" dlg:left="200" dlg:top="135" dlg:width="40" dlg:height="40" dlg:src="vnd.sun.star.extension://vnd.include-once.pagetranslate/icons/flags.png"/>
  <dlg:button dlg:id="cfg_argos" dlg:tab-index="24" dlg:left="10" dlg:top="155" dlg:width="75" dlg:height="12" dlg:value="argos config gui"/>
 </dlg:bulletinboard>
</dlg:window>







|


65
66
67
68
69
70
71
72
73
74
    <dlg:menuitem dlg:value="deep_translator -trans &quot;google&quot; -src &quot;auto&quot; -tg {lang} -txt {text}"/>
    <dlg:menuitem dlg:value="argos-translate --from-lang {from} --to-lang {lang} {text}"/>
    <dlg:menuitem dlg:value="trans -sl {from} {text} {lang}"/>
    <dlg:menuitem dlg:value="dingonyms --en-fr {text}"/>
   </dlg:menupopup>
  </dlg:combobox>
  <dlg:img dlg:style-id="0" dlg:id="logo" dlg:tab-index="23" dlg:left="200" dlg:top="135" dlg:width="40" dlg:height="40" dlg:src="vnd.sun.star.extension://vnd.include-once.pagetranslate/icons/flags.png"/>
  <dlg:button dlg:id="cfg_argos" dlg:tab-index="24" dlg:left="10" dlg:top="170" dlg:width="75" dlg:height="12" dlg:value="argos config gui"/>
 </dlg:bulletinboard>
</dlg:window>

Changes to OptionsSchema.xcs.

30
31
32
33
34
35
36

37
38
39
40
41
42
43
        <prop oor:name="backend" oor:type="xs:string"><value>Google Translate</value></prop>
        <prop oor:name="api_key" oor:type="xs:string"><value></value></prop>
        <prop oor:name="email" oor:type="xs:string"><value></value></prop>
        <prop oor:name="cmd" oor:type="xs:string"><value>translate-cli -o -f auto -t {lang} {text}</value></prop>
        <prop oor:name="quick" oor:type="xs:short"><value>0</value></prop>
        <prop oor:name="frames" oor:type="xs:short"><value>0</value></prop>
        <prop oor:name="slow" oor:type="xs:short"><value>0</value></prop>

        <prop oor:name="debug" oor:type="xs:short"><value>1</value></prop>
        <prop oor:name="selectonly" oor:type="xs:short"><value>0</value></prop>
        <prop oor:name="flag" oor:type="xs:string"><value>locale</value></prop>
      </group>
    </group>
  </component>
</oor:component-schema>







>







30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
        <prop oor:name="backend" oor:type="xs:string"><value>Google Translate</value></prop>
        <prop oor:name="api_key" oor:type="xs:string"><value></value></prop>
        <prop oor:name="email" oor:type="xs:string"><value></value></prop>
        <prop oor:name="cmd" oor:type="xs:string"><value>translate-cli -o -f auto -t {lang} {text}</value></prop>
        <prop oor:name="quick" oor:type="xs:short"><value>0</value></prop>
        <prop oor:name="frames" oor:type="xs:short"><value>0</value></prop>
        <prop oor:name="slow" oor:type="xs:short"><value>0</value></prop>
        <prop oor:name="annotate" oor:type="xs:short"><value>0</value></prop>
        <prop oor:name="debug" oor:type="xs:short"><value>1</value></prop>
        <prop oor:name="selectonly" oor:type="xs:short"><value>0</value></prop>
        <prop oor:name="flag" oor:type="xs:string"><value>locale</value></prop>
      </group>
    </group>
  </component>
</oor:component-schema>