357 lines
9.2 KiB
Python
357 lines
9.2 KiB
Python
|
from docx.shared import Inches, Cm, Pt
|
||
|
from docx.enum.text import WD_ALIGN_PARAGRAPH
|
||
|
from docx.enum.table import WD_TABLE_ALIGNMENT, WD_ALIGN_VERTICAL
|
||
|
|
||
|
default_script = {
|
||
|
"hi": "Devanagari",
|
||
|
"en": "Latin",
|
||
|
"ur": "Arabic",
|
||
|
"ar": "Arabic",
|
||
|
"kn": "Kannada",
|
||
|
"ta": "Tamil",
|
||
|
"bg": "Cyrillic",
|
||
|
"bn": "Bengali",
|
||
|
"te": "Telugu",
|
||
|
"ml": "Malayalam",
|
||
|
"ru": "Cyrillic",
|
||
|
"sr": "Cyrillic",
|
||
|
"uk": "Cyrillic",
|
||
|
"hr": "Cyrillic",
|
||
|
"ga": "Latin",
|
||
|
"sq": "Latin",
|
||
|
"mr": "Devanagari",
|
||
|
"fa": "Arabic",
|
||
|
"tr": "Latin",
|
||
|
"hu": "Latin",
|
||
|
"it": "Latin",
|
||
|
"ro": "Latin",
|
||
|
"pa": "Gurmukhi",
|
||
|
"gu": "Gujarati",
|
||
|
"or": "Odia",
|
||
|
"zh-CN": "Hanji",
|
||
|
"zh-TW": "Hanji",
|
||
|
"ne": "Devanagri",
|
||
|
"fr": "Latin",
|
||
|
"es": "Latin",
|
||
|
"id": "Latin",
|
||
|
"el": "Latin",
|
||
|
"ja": "Kana",
|
||
|
"jv": "Javanese",
|
||
|
"ko": "Hangul",
|
||
|
"be": "Cyrillic",
|
||
|
"uz": "Cyrillic",
|
||
|
"sd": "Arabic",
|
||
|
"af": "Latin",
|
||
|
"de": "Latin",
|
||
|
"is": "Latin",
|
||
|
"ig": "Latin",
|
||
|
"la": "Latin",
|
||
|
"pt": "Latin",
|
||
|
"my": "Burmese",
|
||
|
"th": "Thai",
|
||
|
"su": "Sundanese",
|
||
|
"lo": "Lao",
|
||
|
"am": "amharic",
|
||
|
"si": "sinhala",
|
||
|
"az": "Cyrillic",
|
||
|
"kk": "Cyrillic",
|
||
|
"mk": "Cyrillic",
|
||
|
"bs": "Cyrillic",
|
||
|
"ps": "Arabic",
|
||
|
"mg": "Latin",
|
||
|
"ms": "Latin",
|
||
|
"yo": "Arabic",
|
||
|
"cs": "Latin",
|
||
|
"da": "Latin",
|
||
|
"nl": "Latin",
|
||
|
"tl": "Latin",
|
||
|
"no": "Latin",
|
||
|
"sl": "Latin",
|
||
|
"sv": "Latin",
|
||
|
"vi": "Latin",
|
||
|
"cy": "Latin",
|
||
|
"he": "Hebrew",
|
||
|
"hy": "Armenian",
|
||
|
"km": "Khmer",
|
||
|
"ka": "Georgian",
|
||
|
"mn": "Mongolian",
|
||
|
"ku": "Latin",
|
||
|
"ky": "Cyrillic",
|
||
|
"tk": "Latin",
|
||
|
"fi": "Latin",
|
||
|
"ht": "Latin",
|
||
|
"haw": "Latin",
|
||
|
"lt": "Latin",
|
||
|
"lb": "Latin",
|
||
|
"mt": "Latin",
|
||
|
"pl": "Latin",
|
||
|
"eo": "Latin",
|
||
|
"tt": "Cyrillic",
|
||
|
"ug": "Arabic",
|
||
|
"ha": "Latin",
|
||
|
"so": "Latin",
|
||
|
"sw": "Latin",
|
||
|
"yi": "Latin",
|
||
|
"eu": "Latin",
|
||
|
"ca": "Latin",
|
||
|
"ceb": "Latin",
|
||
|
"co": "Latin",
|
||
|
"et": "Latin",
|
||
|
"fy": "Latin",
|
||
|
"gl": "Latin",
|
||
|
"hmn": "Latin",
|
||
|
"rw": "Latin",
|
||
|
"lv": "Latin",
|
||
|
"mi": "Latin",
|
||
|
"sm": "Latin",
|
||
|
"gd": "Latin",
|
||
|
"st": "Latin",
|
||
|
"sn": "Latin",
|
||
|
"sk": "Latin",
|
||
|
"xh": "Latin",
|
||
|
"zu": "Latin",
|
||
|
}
|
||
|
|
||
|
|
||
|
languages = {
|
||
|
"hi": "Hindi",
|
||
|
"en": "English",
|
||
|
"te": "Telugu",
|
||
|
"ur": "Urdu",
|
||
|
"ar": "Arabic",
|
||
|
"kn": "Kannada",
|
||
|
"ta": "Tamil",
|
||
|
"bg": "Bulgarian",
|
||
|
"bn": "Bengali",
|
||
|
"ml": "Malayalam",
|
||
|
"ru": "Russian",
|
||
|
"sr": "Serbian",
|
||
|
"uk": "Ukranian",
|
||
|
"hr": "Croatian",
|
||
|
"ga": "Irish",
|
||
|
"sq": "Albanian",
|
||
|
"mr": "Marathi",
|
||
|
"fa": "Persian",
|
||
|
"tr": "Turkish",
|
||
|
"hu": "Hungarian",
|
||
|
"it": "Italian",
|
||
|
"ro": "Romanian",
|
||
|
"pa": "Punjabi",
|
||
|
"gu": "Gujrati",
|
||
|
"or": "Odia",
|
||
|
"zh": "Chienese",
|
||
|
"ne": "Nepali",
|
||
|
"fr": "French",
|
||
|
"es": "Spanish",
|
||
|
"id": "Indonesian",
|
||
|
"el": "Greek",
|
||
|
"ja": "Japanese",
|
||
|
"jv": "Javanese",
|
||
|
"ko": "Korean",
|
||
|
"be": "Belarusian",
|
||
|
"uz": "Uzbek",
|
||
|
"sd": "Sindhi",
|
||
|
"af": "Afrikaans",
|
||
|
"de": "German",
|
||
|
"is": "Icelandic",
|
||
|
"ig": "Igbo",
|
||
|
"la": "Latin",
|
||
|
"pt": "Portugese",
|
||
|
"my": "Mayanmar",
|
||
|
"th": "Thai",
|
||
|
"su": "Sundanese",
|
||
|
"lo": "Lao",
|
||
|
"am": "amharic",
|
||
|
"si": "sinhala",
|
||
|
"az": "azerbaijani ",
|
||
|
"kk": "Kazak",
|
||
|
"mk": "Macedonian",
|
||
|
"bs": "Bosnian",
|
||
|
"ps": "Pashto",
|
||
|
"mg": "Malagasy",
|
||
|
"ms": "Malay",
|
||
|
"yo": "Yoruba",
|
||
|
"cs": "Czech",
|
||
|
"da": "Danish",
|
||
|
"nl": "Dutch",
|
||
|
"tl": "Tagalog",
|
||
|
"no": "Norwegian",
|
||
|
"sl": "Slovenian",
|
||
|
"sv": " Swedish",
|
||
|
"vi": "Vietnamese",
|
||
|
"cy": "Welsh",
|
||
|
"he": "Hebrew",
|
||
|
"hy": "Armenian",
|
||
|
"km": "Khmer",
|
||
|
"ka": "Georgian",
|
||
|
"mn": "Mongolian",
|
||
|
"ku": "Kurdish",
|
||
|
"ky": "Kyrgyz",
|
||
|
"tk": "Turkmen",
|
||
|
"fi": "Finnish",
|
||
|
"ht": "Haitian Creole",
|
||
|
"haw": "Hawaiian",
|
||
|
"lt": "Lithuanian",
|
||
|
"lb": "Luxembourgish",
|
||
|
"mt": "Maltese",
|
||
|
"pl": "Polish",
|
||
|
"eo": "Esperanto",
|
||
|
"tt": "Tatar",
|
||
|
"ug": "Uyghur",
|
||
|
"ha": "Hausa",
|
||
|
"so": "Somali",
|
||
|
"sw": "Swahili",
|
||
|
"yi": "Yiddish",
|
||
|
"eu": "Basque",
|
||
|
"ca": "Catalan",
|
||
|
"ceb": "Cebuano",
|
||
|
"co": "Corsican",
|
||
|
"et": "Estonian",
|
||
|
"fy": "Frisian",
|
||
|
"gl": "Galician",
|
||
|
"hmn": "Hmong",
|
||
|
"rw": "Kinyarwanda",
|
||
|
"lv": "Latvian",
|
||
|
"mi": "Maori",
|
||
|
"sm": "Samoan",
|
||
|
"gd": "Scots Gaelic",
|
||
|
"st": "Sesotho",
|
||
|
"sn": "Shona",
|
||
|
"sk": "Slovak",
|
||
|
"xh": "Xhosa",
|
||
|
"zu": "Zulu",
|
||
|
}
|
||
|
|
||
|
|
||
|
def addSlugLine(document, slugline):
|
||
|
slug_data = document.add_paragraph()
|
||
|
slug_data_format = slug_data.paragraph_format
|
||
|
slug_data_format.space_after = Pt(12)
|
||
|
slug_data_format.keep_with_next = True
|
||
|
slug_data_format.left_indent = Inches(0)
|
||
|
slug_data.style.font.name = "Courier New"
|
||
|
slug_data.style.font.size = Pt(12.0)
|
||
|
slug_data.add_run(slugline).bold = True
|
||
|
|
||
|
|
||
|
def addActionLine(document, actionline, non_dial_dest_lang):
|
||
|
act = document.add_paragraph()
|
||
|
act_format = act.paragraph_format
|
||
|
act_format.space_after = Pt(12)
|
||
|
act_format.alignment = WD_ALIGN_PARAGRAPH.JUSTIFY
|
||
|
act_format.line_spacing = Pt(12)
|
||
|
act_format.left_indent = Inches(0)
|
||
|
if (non_dial_dest_lang == "hi") or (non_dial_dest_lang == "gu"):
|
||
|
act.style.font.name = "Mangal"
|
||
|
else:
|
||
|
act.style.font.name = "Courier New"
|
||
|
act.add_run(actionline)
|
||
|
|
||
|
|
||
|
def addSpeaker(document, speaker):
|
||
|
spk = document.add_paragraph(speaker)
|
||
|
spk.style.font.name = "Courier New"
|
||
|
spk_format = spk.paragraph_format
|
||
|
spk_format.keep_with_next = True
|
||
|
spk_format.space_after = 0
|
||
|
spk_format.line_spacing = Pt(12)
|
||
|
spk_format.left_indent = Inches(2.0)
|
||
|
|
||
|
|
||
|
def addParenthetical(document, parenthetical):
|
||
|
parathetical = document.add_paragraph(parenthetical)
|
||
|
parathetical.style.font.name = "Courier New"
|
||
|
parathetical_format = parathetical.paragraph_format
|
||
|
parathetical_format.keep_with_next = True
|
||
|
parathetical_format.space_after = 0
|
||
|
parathetical_format.line_spacing = Pt(12)
|
||
|
parathetical_format.alignment = WD_ALIGN_PARAGRAPH.JUSTIFY
|
||
|
parathetical_format.left_indent = Inches(1.5)
|
||
|
parathetical_format.right_indent = Inches(1.5)
|
||
|
|
||
|
|
||
|
def addDialogue(document, dialogue, dial_dest_lang):
|
||
|
dia = document.add_paragraph(dialogue)
|
||
|
dia_format = dia.paragraph_format
|
||
|
dia_format.keep_together = True
|
||
|
dia_format.space_after = Pt(12)
|
||
|
dia_format.alignment = WD_ALIGN_PARAGRAPH.JUSTIFY
|
||
|
dia_format.line_spacing = Pt(12)
|
||
|
dia_format.left_indent = Inches(1)
|
||
|
dia_format.right_indent = Inches(1.25)
|
||
|
if dial_dest_lang == "hi":
|
||
|
dia.style.font.name = "Mangal"
|
||
|
else:
|
||
|
dia.style.font.name = "Courier New"
|
||
|
|
||
|
|
||
|
def dual_script(document, orignal_dial, translated_dial, dial_dest_lang):
|
||
|
table = document.add_table(rows=1, cols=3)
|
||
|
table.alignment = WD_TABLE_ALIGNMENT.CENTER
|
||
|
table.autofit = False
|
||
|
table.space_before = Pt(10)
|
||
|
table.allow_autofit = False
|
||
|
table.rows[0].cells[0].width = Inches(3.75)
|
||
|
table.rows[0].cells[1].width = Inches(0.30)
|
||
|
table.rows[0].cells[0].vertical_alignment = WD_ALIGN_VERTICAL.TOP
|
||
|
|
||
|
col1 = table.rows[0].cells
|
||
|
dialogue1 = col1[0].paragraphs[0]
|
||
|
dialogue1.add_run(orignal_dial)
|
||
|
dia_format1 = dialogue1.paragraph_format
|
||
|
dia_format1.space_before = Pt(5)
|
||
|
table.rows[0].cells[2].width = Inches(3.75)
|
||
|
col3 = table.rows[0].cells
|
||
|
|
||
|
dialogue2 = col3[2].paragraphs[0]
|
||
|
dialogue2.add_run(translated_dial)
|
||
|
dia_format2 = dialogue2.paragraph_format
|
||
|
dia_format2.space_before = Pt(5)
|
||
|
if dial_dest_lang == "hi":
|
||
|
dialogue2.style.font.name = "Mangal"
|
||
|
else:
|
||
|
dialogue2.style.font.name = "Courier New"
|
||
|
|
||
|
|
||
|
def addTransition(document, transition):
|
||
|
transitions_data = document.add_paragraph(transition)
|
||
|
transitions_data_format = transitions_data.paragraph_format
|
||
|
transitions_data_format.space_after = Pt(12)
|
||
|
transitions_data_format.keep_with_next = True
|
||
|
transitions_data_format.left_indent = Inches(5.0)
|
||
|
|
||
|
|
||
|
# def dial_checker(dial_dest_lang, dial_src_lang, dial_dest_script, dial_src_script ):
|
||
|
# if( dial_dest_lang != dial_src_lang ):
|
||
|
# dial_translate = True
|
||
|
# if ( dial_dest_script != default_script[dial_dest_lang]):
|
||
|
# dial_transliterate = True
|
||
|
# else:
|
||
|
# dial_transliterate = False
|
||
|
# else:
|
||
|
# dial_translate = False
|
||
|
|
||
|
# if dial_translate == False:
|
||
|
# if ( dial_dest_script != dial_src_script ):
|
||
|
# dial_transliterate = True
|
||
|
# else:
|
||
|
# dial_transliterate = False
|
||
|
# return dial_translate, dial_transliterate
|
||
|
|
||
|
|
||
|
def dial_checker(dial_dest_lang, dial_src_lang):
|
||
|
if dial_dest_lang != dial_src_lang:
|
||
|
dial_translate = True
|
||
|
else:
|
||
|
dial_translate = False
|
||
|
|
||
|
return dial_translate
|
||
|
|
||
|
|
||
|
def non_dial_checker(non_dial_dest_lang, non_dial_src_lang):
|
||
|
if non_dial_dest_lang != non_dial_src_lang:
|
||
|
non_dial_translate = True
|
||
|
else:
|
||
|
non_dial_translate = False
|
||
|
return non_dial_translate
|