Conversion_Kitchen_Code/kitchen_counter/conversion/translation/getting_languages_Codes.py

209 lines
11 KiB
Python
Raw Normal View History

2024-04-27 09:33:09 +00:00
from conversion.translation.translation_resources import ibm_watson, aws, azure, google_simple, lingvanex
from openpyxl import Workbook
from google.cloud import translate_v2 as translate
import os
def test_run():
wb = Workbook()
ws = wb.active
# -> Text Used for Testing
text = "My name is dharmesh and my age is 15. Can you help me with "
languages = \
['Afrikaans',
'Albanian', 'Amharic', 'Arabic', 'Armenian', 'Assamese', 'Aymara', 'Azerbaijani', 'Bambara', 'Basque',
'Belarusian', 'Bengali', 'Bhojpuri', 'Bosnian', 'Bulgarian', 'Catalan', 'Cebuano', 'Chichewa',
'Chinese (Simplified)', 'Chinese (Traditional)', 'Corsican', 'Croatian', 'Czech', 'Danish', 'Divehi', 'Dogri',
'Dutch', 'English', 'Esperanto', 'Estonian', 'Ewe', 'Filipino', 'Finnish', 'French', 'Frisian', 'Galician',
'Ganda', 'Georgian', 'German', 'Greek', 'Guarani', 'Gujarati', 'Haitian Creole', 'Hausa', 'Hawaiian', 'Hebrew',
'Hindi', 'Hmong', 'Hungarian', 'Icelandic', 'Igbo', 'Iloko', 'Indonesian', 'Irish Gaelic', 'Italian',
'Japanese', 'Javanese', 'Kannada', 'Kazakh', 'Khmer', 'Kinyarwanda', 'Konkani', 'Korean', 'Krio',
'Kurdish (Kurmanji)', 'Kurdish (Sorani)', 'Kyrgyz', 'Lao', 'Latin', 'Latvian', 'Lingala', 'Lithuanian',
'Luxembourgish', 'Macedonian', 'Maithili', 'Malagasy', 'Malay', 'Malayalam', 'Maltese', 'Maori', 'Marathi',
'Meiteilon (Manipuri)', 'Mizo', 'Mongolian', 'Myanmar (Burmese)', 'Nepali', 'Northern Sotho', 'Norwegian',
'Odia (Oriya)', 'Oromo', 'Pashto', 'Persian', 'Polish', 'Portuguese', 'Punjabi', 'Quechua', 'Romanian',
'Russian', 'Samoan', 'Sanskrit', 'Scots Gaelic', 'Serbian', 'Sesotho', 'Shona', 'Sindhi', 'Sinhala', 'Slovak',
'Slovenian', 'Somali', 'Spanish', 'Sundanese', 'Swahili', 'Swedish', 'Tajik', 'Tamil', 'Tatar', 'Telugu',
'Thai', 'Tigrinya', 'Tsonga', 'Turkish', 'Turkmen', 'Twi', 'Ukrainian', 'Urdu', 'Uyghur', 'Uzbek',
'Vietnamese', 'Welsh', 'Xhosa', 'Yiddish', 'Yoruba', 'Zulu']
language_code = \
{'Afrikaans': 'af',
'Albanian': 'sq', 'Amharic': 'am', 'Arabic': 'ar', 'Armenian': 'hy', 'Assamese': 'as', 'Aymara': 'ay',
'Azerbaijani': 'az', 'Bambara': 'bm', 'Basque': 'eu', 'Belarusian': 'be', 'Bengali': 'bn', 'Bhojpuri': 'bho',
'Bosnian': 'bs', 'Bulgarian': 'bg', 'Catalan': 'ca', 'Cebuano': 'ceb', 'Chichewa': 'ny',
'Chinese (Simplified)': ['zh-CN', 'zh'], 'Chinese (Traditional)': 'zh-TW', 'Corsican': 'co', 'Croatian': 'hr',
'Czech': 'cs', 'Danish': 'da', 'Divehi': 'dv', 'Dogri': 'doi', 'Dutch': 'nl', 'English': 'en',
'Esperanto': 'eo', 'Estonian': 'et', 'Ewe': 'ee', 'Filipino': 'tl', 'Finnish': 'fi', 'French': 'fr',
'Frisian': 'fy', 'Galician': 'gl', 'Ganda': 'lg', 'Georgian': 'ka', 'German': 'de', 'Greek': 'el',
'Guarani': 'gn', 'Gujarati': 'gu', 'Haitian Creole': 'ht', 'Hausa': 'ha', 'Hawaiian': 'haw', 'Hebrew': ['he', 'iw'],
'Hindi': 'hi', 'Hmong': 'hmn', 'Hungarian': 'hu', 'Icelandic': 'is', 'Igbo': 'ig', 'Iloko': 'ilo',
'Indonesian': 'id', 'Irish Gaelic': 'ga', 'Italian': 'it', 'Japanese': 'ja', 'Javanese': ['jv', 'jw'], 'Kannada': 'kn',
'Kazakh': 'kk', 'Khmer': 'km', 'Kinyarwanda': 'rw', 'Konkani': 'gom', 'Korean': 'ko', 'Krio': 'kri',
'Kurdish (Kurmanji)': 'ku', 'Kurdish (Sorani)': 'ckb', 'Kyrgyz': 'ky', 'Lao': 'lo', 'Latin': 'la',
'Latvian': 'lv', 'Lingala': 'ln', 'Lithuanian': 'lt', 'Luxembourgish': 'lb', 'Macedonian': 'mk',
'Maithili': 'mai', 'Malagasy': 'mg', 'Malay': 'ms', 'Malayalam': 'ml', 'Maltese': 'mt', 'Maori': 'mi',
'Marathi': 'mr', 'Meiteilon (Manipuri)': 'mni-Mtei', 'Mizo': 'lus', 'Mongolian': 'mn',
'Myanmar (Burmese)': 'my', 'Nepali': 'ne', 'Northern Sotho': 'nso', 'Norwegian': 'no', 'Odia (Oriya)': 'or',
'Oromo': 'om', 'Pashto': 'ps', 'Persian': 'fa', 'Polish': 'pl', 'Portuguese': 'pt', 'Punjabi': 'pa',
'Quechua': 'qu', 'Romanian': 'ro', 'Russian': 'ru', 'Samoan': 'sm', 'Sanskrit': 'sa', 'Scots Gaelic': 'gd',
'Serbian': 'sr', 'Sesotho': 'st', 'Shona': 'sn', 'Sindhi': 'sd', 'Sinhala': 'si', 'Slovak': 'sk',
'Slovenian': 'sl', 'Somali': 'so', 'Spanish': 'es', 'Sundanese': 'su', 'Swahili': 'sw', 'Swedish': 'sv',
'Tajik': 'tg', 'Tamil': 'ta', 'Tatar': 'tt', 'Telugu': 'te', 'Thai': 'th', 'Tigrinya': 'ti', 'Tsonga': 'ts',
'Turkish': 'tr', 'Turkmen': 'tk', 'Twi': 'ak', 'Ukrainian': 'uk', 'Urdu': 'ur', 'Uyghur': 'ug', 'Uzbek': 'uz',
'Vietnamese': 'vi', 'Welsh': 'cy', 'Xhosa': 'xh', 'Yiddish': 'yi', 'Yoruba': 'yo', 'Zulu': 'zu'}
# -> Heading Row
testdata = [['First Language', 'Second Language', 'Google', 'IBM', 'AWS', 'Azure', 'Outcome', 'Error']]
allow_translations = 1
# -> Adding Heading Row
for data in testdata:
ws.append(data)
for lang1 in ["English"]:
if isinstance(language_code[lang1], list):
textuse = google_simple(text, "en", language_code[lang1][0])
else:
if language_code[lang1] != "en":
textuse = google_simple(text, "en", language_code[lang1])
else:
textuse = text
for lang2 in ["Hebrew", "Javanese", "Chinese (Simplified)"]:
current_pair = []
current_pair.append(lang1)
current_pair.append(lang2)
working_services = 0
error_log = ""
if isinstance(language_code[lang2], list):
# -> Translation using Google Translate
try:
google_simple(textuse, language_code[lang1], language_code[lang2][0])
current_pair.append("PASS")
working_services += 1
error_log += "-NONE"+str(language_code[lang2][0])
except Exception as e:
try:
google_simple(textuse, language_code[lang1], language_code[lang2][1])
current_pair.append("PASS")
working_services += 1
error_log += "-NONE"+str(language_code[lang2][1])
except Exception as e:
current_pair.append("FAIL")
error_log += "-" + str(e)
# -> Translation using IBM Translate
try:
lingvanex(textuse, language_code[lang1], language_code[lang2][0])
current_pair.append("PASS")
working_services += 1
error_log += "-NONE"+str(language_code[lang2][0])
except Exception as e:
try:
lingvanex(textuse, language_code[lang1], language_code[lang2][1])
current_pair.append("PASS")
working_services += 1
error_log += "-NONE"+str(language_code[lang2][1])
except Exception as e:
current_pair.append("FAIL")
error_log += "-" + str(e)
# -> Translation using AWS Translate
try:
aws(textuse, language_code[lang1], language_code[lang2][0])
current_pair.append("PASS")
working_services += 1
error_log += "-NONE"+str(language_code[lang2][0])
except Exception as e:
try:
aws(textuse, language_code[lang1], language_code[lang2][1])
current_pair.append("PASS")
working_services += 1
error_log += "-NONE"+str(language_code[lang2][1])
except Exception as e:
current_pair.append("FAIL")
error_log += "-" + str(e)
# -> Translation using Azure Translate
try:
azure(textuse, language_code[lang2][0])
current_pair.append("PASS")
working_services += 1
error_log += "-NONE"+str(language_code[lang2][0])
except Exception as e:
try:
azure(textuse, language_code[lang2][1])
current_pair.append("PASS")
working_services += 1
error_log += "-NONE"+str(language_code[lang2][1])
except Exception as e:
current_pair.append("FAIL")
error_log += "-" + str(e)
else:
# -> Translation using Google Translate
try:
google_simple(textuse, language_code[lang1], language_code[lang2])
current_pair.append("PASS")
working_services += 1
error_log += "-NONE"
except Exception as e:
current_pair.append("FAIL")
error_log += "-" + str(e)
# -> Translation using IBM Translate
try:
ibm_watson(textuse, language_code[lang1], language_code[lang2])
current_pair.append("PASS")
working_services += 1
error_log += "-NONE"
except Exception as e:
current_pair.append("FAIL")
error_log += "-" + str(e)
# -> Translation using AWS Translate
try:
aws(textuse, language_code[lang1], language_code[lang2])
current_pair.append("PASS")
working_services += 1
error_log += "-NONE"
except Exception as e:
current_pair.append("FAIL")
error_log += "-" + str(e)
# -> Translation using Azure Translate
try:
azure(textuse, language_code[lang2])
current_pair.append("PASS")
working_services += 1
error_log += "-NONE"
except Exception as e:
current_pair.append("FAIL")
error_log += "-" + str(e)
# -> Adding the OUTCOME
if working_services == 4:
current_pair.append("ULTIMATE PASS")
elif working_services == 0:
current_pair.append("FAILED")
elif working_services >= 2:
current_pair.append("PARTIAL PASS")
else:
current_pair.append("BAD PASS")
# -> Adding the Error Log
current_pair.append(error_log)
# -> Appending the Pair
for data in [current_pair]:
ws.append(data)
wb.save("/home/user/mnf/project/MNF/media/file_11.xlsx")
return True