Check-in [b469e6efc0]
Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | prepare for language list updates (seems shorter than default list however) |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
b469e6efc0ffa0d4bdc47ed5b119b3d3 |
| User & Date: | mario 2022-11-15 17:47:11 |
Context
|
2023-02-01
| ||
| 09:09 | sample keyboard bindings (disabled in manifest.xml however) Leaf check-in: a0244ed81d user: mario tags: trunk | |
|
2022-11-15
| ||
| 17:47 | prepare for language list updates (seems shorter than default list however) check-in: b469e6efc0 user: mario tags: trunk | |
|
2022-10-31
| ||
| 09:08 | release as 2.1 check-in: e93c2ef456 user: mario tags: trunk, 2.1 | |
Changes
Changes to pagetranslate.py.
1 2 3 4 5 6 7 | #!/usr/bin/python # encoding: utf-8 # api: uno ##type: callback # category: language # title: PageTranslate # description: Action button to get whole Writer document translated | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/usr/bin/python
# encoding: utf-8
# api: uno
##type: callback
# category: language
# title: PageTranslate
# description: Action button to get whole Writer document translated
# version: 2.1.0
# state: stable
# author: mario
# url: https://fossil.include-once.org/pagetranslate/
# depends: python:requests (>= 2.5), python:uno
# pack: *.py, pythonpath/*.py, META-INF/*, pkg-desc, *.x*, icons/*
# config:
# { name: frames, type: bool, value: 0, description: traverse TextFrames }
|
| ︙ | ︙ |
Changes to pythonpath/pt_dialogs.py.
| ︙ | ︙ | |||
20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
from com.sun.star.awt.MessageBoxButtons import BUTTONS_OK, BUTTONS_OK_CANCEL, BUTTONS_YES_NO, BUTTONS_YES_NO_CANCEL, BUTTONS_RETRY_CANCEL, BUTTONS_ABORT_IGNORE_RETRY
from com.sun.star.awt.MessageBoxButtons import DEFAULT_BUTTON_OK, DEFAULT_BUTTON_CANCEL, DEFAULT_BUTTON_RETRY, DEFAULT_BUTTON_YES, DEFAULT_BUTTON_NO, DEFAULT_BUTTON_IGNORE
from com.sun.star.awt.MessageBoxType import MESSAGEBOX, INFOBOX, WARNINGBOX, ERRORBOX, QUERYBOX
from com.sun.star.awt import FontDescriptor
langs = ("auto", "acf", "af", "aig", "am", "ar", "az", "bah", "be", "bem", "bg", "bi", "bjs", "bn", "bod", "br", "bs", "ca", "cb", "cha", "cop", "crs", "cs", "cy", "da", "de", "div", "dzo", "el", "en", "eo", "es", "et", "eu", "fa", "fi", "fn", "fo", "fr", "ga", "gcl", "gd", "gl", "grc", "gu", "gv", "gyn", "ha", "haw", "he", "hi", "hr", "ht", "hu", "hy", "id", "is", "it", "ja", "jam", "jv", "ka", "kab", "kal", "kea", "kk", "km", "kn", "ko", "ku", "ku", "ky", "la", "lb", "lo", "lt", "lv", "men", "mfe", "mg", "mh", "mi", "mk", "mn", "ms", "mt", "my", "ne", "niu", "nl", "no", "nso", "ny", "pa", "pap", "pau", "pis", "pl", "pot", "pov", "ppk", "ps", "pt", "qu", "rm", "ro", "ru", "run", "rw", "sg", "si", "sk", "sl", "smo", "sna", "so", "sq", "sr", "srn", "sv", "svc", "sw", "syc", "ta", "te", "tet", "tg", "th", "ti", "tk", "tkl", "tl", "tmh", "tn", "ton", "tpi", "tr", "tvl", "uk", "ur", "uz", "vi", "vic", "wls", "wo", "xh", "yi", "zdj", "zh-CN", "zh-TW", "zu")
class ExcApp(unohelper.Base, XActionListener, XJobExecutor):
"""
Class documentation...
"""
def __init__(self, ctx=uno.getComponentContext(), err="error msg", exc="exception/traceback"):
self.LocalContext = ctx
| > > > | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
from com.sun.star.awt.MessageBoxButtons import BUTTONS_OK, BUTTONS_OK_CANCEL, BUTTONS_YES_NO, BUTTONS_YES_NO_CANCEL, BUTTONS_RETRY_CANCEL, BUTTONS_ABORT_IGNORE_RETRY
from com.sun.star.awt.MessageBoxButtons import DEFAULT_BUTTON_OK, DEFAULT_BUTTON_CANCEL, DEFAULT_BUTTON_RETRY, DEFAULT_BUTTON_YES, DEFAULT_BUTTON_NO, DEFAULT_BUTTON_IGNORE
from com.sun.star.awt.MessageBoxType import MESSAGEBOX, INFOBOX, WARNINGBOX, ERRORBOX, QUERYBOX
from com.sun.star.awt import FontDescriptor
langs = ("auto", "acf", "af", "aig", "am", "ar", "az", "bah", "be", "bem", "bg", "bi", "bjs", "bn", "bod", "br", "bs", "ca", "cb", "cha", "cop", "crs", "cs", "cy", "da", "de", "div", "dzo", "el", "en", "eo", "es", "et", "eu", "fa", "fi", "fn", "fo", "fr", "ga", "gcl", "gd", "gl", "grc", "gu", "gv", "gyn", "ha", "haw", "he", "hi", "hr", "ht", "hu", "hy", "id", "is", "it", "ja", "jam", "jv", "ka", "kab", "kal", "kea", "kk", "km", "kn", "ko", "ku", "ku", "ky", "la", "lb", "lo", "lt", "lv", "men", "mfe", "mg", "mh", "mi", "mk", "mn", "ms", "mt", "my", "ne", "niu", "nl", "no", "nso", "ny", "pa", "pap", "pau", "pis", "pl", "pot", "pov", "ppk", "ps", "pt", "qu", "rm", "ro", "ru", "run", "rw", "sg", "si", "sk", "sl", "smo", "sna", "so", "sq", "sr", "srn", "sv", "svc", "sw", "syc", "ta", "te", "tet", "tg", "th", "ti", "tk", "tkl", "tl", "tmh", "tn", "ton", "tpi", "tr", "tvl", "uk", "ur", "uz", "vi", "vic", "wls", "wo", "xh", "yi", "zdj", "zh-CN", "zh-TW", "zu")
def google_get_langs():
langs = langs
class ExcApp(unohelper.Base, XActionListener, XJobExecutor):
"""
Class documentation...
"""
def __init__(self, ctx=uno.getComponentContext(), err="error msg", exc="exception/traceback"):
self.LocalContext = ctx
|
| ︙ | ︙ | |||
343 344 345 346 347 348 349 350 351 352 353 |
def langselect(*args):
try:
ctx = remote_ctx # IDE
except:
ctx = uno.getComponentContext() # UI
app = LangSelection(ctx=ctx)
app.showDialog()
return app.fr, app.to
| > | 346 347 348 349 350 351 352 353 354 355 356 357 |
def langselect(*args):
try:
ctx = remote_ctx # IDE
except:
ctx = uno.getComponentContext() # UI
#google_get_langs()
app = LangSelection(ctx=ctx)
app.showDialog()
return app.fr, app.to
|
Changes to pythonpath/translationbackends.py.
| ︙ | ︙ | |||
270 271 272 273 274 275 276 277 278 279 280 281 282 283 |
text = found.group(1)
text = self.html_unescape(text)
else:
self.log.warning("NO TRANSLATION RESULT EXTRACTED: %s", html)
self.log.debug("ORIG TEXT: %r", text)
return text
# variant that uses the AJAX or API interface
class GoogleAjax(BackendUtils):
""" alternative/faster interface """
match = r"^google.*ajax"
raises_error = False
| > > > > > > > > > > > | 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 |
text = found.group(1)
text = self.html_unescape(text)
else:
self.log.warning("NO TRANSLATION RESULT EXTRACTED: %s", html)
self.log.debug("ORIG TEXT: %r", text)
return text
# available languages
def get_langs(self):
html = http.get("https://translate.google.com/").text
rewr_html = """
<div class="qSb8Pe" jsname="sgblj" data-language-code="hu" tabindex="0"><div class="l7O9Dc"><i class="material-icons-extended VfPpkd-kBDsod hsfpcd" aria-hidden="true" lang="">check</i><i class="material-icons-extended VfPpkd-kBDsod S3Dwie" aria-hidden="true" lang="">history</i></div><div class="Llmcnf" jsname="Lm8Uhb">Hungarian</div></div>
"""
return re.findall(
r'''<option value="([\w-]+)">''',
# r'''\bdata-language-code="([\w-]+)"(?=[\s>])''',
html
)
# variant that uses the AJAX or API interface
class GoogleAjax(BackendUtils):
""" alternative/faster interface """
match = r"^google.*ajax"
raises_error = False
|
| ︙ | ︙ |