summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralastrim <alasmirt@gmail.com>2023-05-26 20:14:16 -0300
committeralastrim <alasmirt@gmail.com>2023-05-26 20:14:16 -0300
commit3369e0fda9e83d3bd107c69663d7fb2b7d124f6b (patch)
tree07ac93fe6e44d6a6371a355b44af1553d253f73a
parent7cc6b92077d0ca78f2f70bf72538b930c11d8c9e (diff)
downloadtools-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-xgoogletranslate.py73
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()