diff options
author | alastrim <alasmirt@gmail.com> | 2023-05-26 20:14:16 -0300 |
---|---|---|
committer | alastrim <alasmirt@gmail.com> | 2023-05-26 20:14:16 -0300 |
commit | 3369e0fda9e83d3bd107c69663d7fb2b7d124f6b (patch) | |
tree | 07ac93fe6e44d6a6371a355b44af1553d253f73a | |
parent | 7cc6b92077d0ca78f2f70bf72538b930c11d8c9e (diff) | |
download | tools-3369e0fda9e83d3bd107c69663d7fb2b7d124f6b.tar.gz tools-3369e0fda9e83d3bd107c69663d7fb2b7d124f6b.tar.bz2 tools-3369e0fda9e83d3bd107c69663d7fb2b7d124f6b.tar.xz tools-3369e0fda9e83d3bd107c69663d7fb2b7d124f6b.zip |
Adapt code to python 3. Note: When using googletrans, make sure you have a new version to avoid errors. Source: https://stackoverflow.com/questions/52455774/googletrans-stopped-working-with-error-nonetype-object-has-no-attribute-group
-rwxr-xr-x | googletranslate.py | 73 |
1 files changed, 48 insertions, 25 deletions
diff --git a/googletranslate.py b/googletranslate.py index e21f547..487e519 100755 --- a/googletranslate.py +++ b/googletranslate.py @@ -1,30 +1,53 @@ -#!/usr/bin/python +#!/usr/bin/python3 import polib -from googletrans import Translator +from googletrans import Translator, LANGCODES from time import sleep -ttl=Translator() -po=polib.pofile('in.po') -cnt=0 -print "Current progress: "+str(po.percent_translated())+"%" -print "Initiating" - -for e in po.untranslated_entries(): - if not "#" in e.msgid and not "%%" in e.msgid: - cnt+=1 - try: - e.msgstr=ttl.translate(str(e.msgid), src='en', dest='pt_BR').text - except: - pass - sleep(0.25) - print "%s\n-> %s" % (e.msgid, e.msgstr) - if (cnt % 20) == 0: - po.save() - sleep(1) # Safety timer - print "\033[33;1mSaved Successfully\033[0m" - -po.save() -print "Translated %d entries" % cnt -print "Progress afterwards:"+str(po.percent_translated())+"%" +# When using googletrans, make sure you have a new version to avoid errors. Recommended version: pip install googletrans==4.0.0-rc1 +# Source: https://stackoverflow.com/questions/52455774/googletrans-stopped-working-with-error-nonetype-object-has-no-attribute-group + +def main(): + ttl = Translator() + po = polib.pofile('Spanish.po') + cnt = 0 + print(f"Current progress: {str(po.percent_translated())}") + print("Initiating") + + src_language = 'english' + src_language_code = LANGCODES.get(src_language) + if src_language_code is None: + print(f"Error: '{src_language}' language is invalid. Please check 'src_language' variable. Here is the list of valid languages: {', '.join(LANGCODES.keys())}") + return + + dest_language = 'portuguese' + dest_language_code = LANGCODES.get(dest_language) + if dest_language_code is None: + print(f"Error: '{dest_language}' language is invalid. Please check 'dest_language' variable. Here is the list of valid languages: {', '.join(LANGCODES.keys())}") + return + + for e in po.untranslated_entries(): + if "#" not in e.msgid and "%%" not in e.msgid: + cnt += 1 + + try: + e.msgstr = ttl.translate(str(e.msgid), src=src_language_code, dest=dest_language_code).text + except Exception as ex: + print(ex) + + sleep(0.25) + print(f"{e.msgid}\n-> {e.msgstr}") + + if (cnt % 20) == 0: + po.save() + sleep(1) # Safety timer + print("\033[33;1mSaved Successfully\033[0m") + + po.save() + print(f"Translated {cnt} entries") + print(f"Progress afterwards: {str(po.percent_translated())}") + + +if __name__ == '__main__': + main() |