Google translate in python
pip install googletrans==3.1.0a0
import os
from googletrans import Translator
from openpyxl.worksheet.worksheet import Worksheet
# import googletrans
from openpyxl import load_workbook
import sys
#print(googletrans.LANGUAGES)
"""
{'af': 'afrikaans', 'sq': 'albanian', 'am': 'amharic', 'ar': 'arabic', 'hy': 'armenian',
'az': 'azerbaijani', 'eu': 'basque', 'be': 'belarusian', 'bn': 'bengali', 'bs': 'bosnian',
'bg': 'bulgarian', 'ca': 'catalan', 'ceb': 'cebuano', 'ny': 'chichewa', 'zh-cn': 'chinese (simplified)',
'zh-tw': 'chinese (traditional)', 'co': 'corsican', 'hr': 'croatian', 'cs': 'czech', 'da': 'danish',
'nl': 'dutch', 'en': 'english', 'eo': 'esperanto', 'et': 'estonian', 'tl': 'filipino', 'fi': 'finnish',
'fr': 'french', 'fy': 'frisian', 'gl': 'galician', 'ka': 'georgian', 'de': 'german', 'el': 'greek',
'gu': 'gujarati', 'ht': 'haitian creole', 'ha': 'hausa', 'haw': 'hawaiian', 'iw': 'hebrew',
'he': 'hebrew', 'hi': 'hindi', 'hmn': 'hmong', 'hu': 'hungarian', 'is': 'icelandic', 'ig': 'igbo',
'id': 'indonesian', 'ga': 'irish', 'it': 'italian', 'ja': 'japanese', 'jw': 'javanese', 'kn': 'kannada',
'kk': 'kazakh', 'km': 'khmer', 'ko': 'korean', 'ku': 'kurdish (kurmanji)', 'ky': 'kyrgyz', 'lo': 'lao',
'la': 'latin', 'lv': 'latvian', 'lt': 'lithuanian', 'lb': 'luxembourgish', 'mk': 'macedonian', 'mg': 'malagasy',
'ms': 'malay', 'ml': 'malayalam', 'mt': 'maltese', 'mi': 'maori', 'mr': 'marathi', 'mn': 'mongolian',
'my': 'myanmar (burmese)', 'ne': 'nepali', 'no': 'norwegian', 'or': 'odia', 'ps': 'pashto', 'fa': 'persian', 'pl': 'polish', 'pt': 'portuguese'
'pa': 'punjabi', 'ro': 'romanian', 'ru': 'russian', 'sm': 'samoan', 'gd': 'scots gaelic', 'sr': 'serbian', 'st': 'sesotho',
'sn': 'shona', 'sd': 'sindhi', 'si': 'sinhala', 'sk': 'slovak', 'sl': 'slovenian', 'so': 'somali', 'es': 'spanish',
'su': 'sundanese', 'sw': 'swahili', 'sv': 'swedish', 'tg': 'tajik', 'ta': 'tamil', 'te': 'telugu', 'th': 'thai', 'tr': 'turkish',
'uk': 'ukrainian', 'ur': 'urdu', 'ug': 'uyghur', 'uz': 'uzbek', 'vi': 'vietnamese', 'cy': 'welsh', 'xh': 'xhosa', 'yi': 'yiddish', 'yo': 'yoruba', 'zu': 'zulu'}
"""
languages=["en","ru","es","pt","vi","id","th","de","pl","tr","fr","ja","ko","it"]
translator = Translator()
def translate(ws:Worksheet,row,column,text,dest):
dt = translator.translate(text,dest=dest,src="zh-cn")
ws.cell(row,column).value = dt.text
return column+1
def progress(percent,width=50):
if percent >= 100:
percent=100
show_str=('[%%-%ds]' %width) %(int(width * percent/100)*"#")
print('\r%s %d%%' %(show_str,percent),end='')
def main(path):
wb = load_workbook(path)
ws = wb.active
for row in range(4,ws.max_row):
value = ws.cell(row,1).value
if value == "language_end:new":
break
current = 0
end = row-5
for row in range(4,row):
value = ws.cell(row,2).value
current+=1
if value == None:
progress((current/end)*100)
continue
column=3
for language in languages:
column = translate(ws,row,column,value,language)
progress((current/end)*100)
wb.save(path)
print("\nsave: "+path)
def error():
print("input xlsx path")
os.system("pause")
exit()
if __name__ == "__main__":
if len(sys.argv) != 2:
error()
path = sys.argv[1]
if os.path.isdir(path):
for root,_,files in os.walk(path):
for file in files:
if file.endswith(".xlsx"):
main(os.path.join(root,file))
elif os.path.isfile(path):
if path.endswith(".xlsx"):
main(path)
else:
error()
else:
error()