aboutsummaryrefslogtreecommitdiff
path: root/devtools/create_bladerunner/subtitles/mixResourceCreator
diff options
context:
space:
mode:
authorantoniou792019-01-02 19:46:21 +0200
committerEugene Sandulenko2019-01-06 17:12:02 +0100
commit729d8a20ff09fb68b0c9c85994083858b33561ca (patch)
treee320c3a1e2c8c233de239c5da9716c5f1ede7d27 /devtools/create_bladerunner/subtitles/mixResourceCreator
parentfa64a064a1c583d75e1f64dabbe4cda83aa02c5b (diff)
downloadscummvm-rg350-729d8a20ff09fb68b0c9c85994083858b33561ca.tar.gz
scummvm-rg350-729d8a20ff09fb68b0c9c85994083858b33561ca.tar.bz2
scummvm-rg350-729d8a20ff09fb68b0c9c85994083858b33561ca.zip
DEVTOOLS: BladeRunner MIX multilanguage support
mixResourceCreator now additionally supports ITA, FRA, ESP, GER
Diffstat (limited to 'devtools/create_bladerunner/subtitles/mixResourceCreator')
-rw-r--r--devtools/create_bladerunner/subtitles/mixResourceCreator/packBladeRunnerMIXFromPCTLKXLS04.py390
-rw-r--r--devtools/create_bladerunner/subtitles/mixResourceCreator/samples/sampleCMDParameters.txt2
2 files changed, 228 insertions, 164 deletions
diff --git a/devtools/create_bladerunner/subtitles/mixResourceCreator/packBladeRunnerMIXFromPCTLKXLS04.py b/devtools/create_bladerunner/subtitles/mixResourceCreator/packBladeRunnerMIXFromPCTLKXLS04.py
index 7fdb0d0a9b..93ab4d5544 100644
--- a/devtools/create_bladerunner/subtitles/mixResourceCreator/packBladeRunnerMIXFromPCTLKXLS04.py
+++ b/devtools/create_bladerunner/subtitles/mixResourceCreator/packBladeRunnerMIXFromPCTLKXLS04.py
@@ -77,15 +77,18 @@ APP_WRAPPER_NAME = "mixResourceCreator.py"
APP_NAME_SPACED = "Blade Runner MIX Resource Creator"
APP_SHORT_DESC = "Make a Text Resource file for spoken in-game quotes and pack Text Resources with Fonts into a SUBTITLES.MIX file."
+# TODO- maybe the '_E' part is not needed
DEFAULT_SUBTITLES_FONT_NAME = 'SUBTLS_E.FON'
DEFAULT_SUBTITLES_MIX_OUTPUT_NAME = u'SUBTITLES.MIX'
# all dialogue sheets get the SUBTLS_E.FON for translation to a Text Resource (TRx)
# In-game dialogue sheet
# TODO- maybe the '_E' part is not needed, since we use the suffix (x) of the extension (TRx) to signify the language
-SUPPORTED_INGAME_DIALOGUE_SHEETS = ['INGQUO_E.TR']
+SUPPORTED_INGAME_DIALOGUE_SHEETS = ['INGQUO_']
# Video cut-scenes' dialogue sheets - these need the appendix of (x) for the language code, and a suffix of '.VQA'.
-SUPPORTED_VIDEO_DIALOGUE_SHEETS = ['WSTLGO_', 'BRLOGO_', 'INTRO_', 'MW_A_', 'MW_B01_', 'MW_B02_', 'MW_B03_', 'MW_B04_', 'MW_B05_', 'INTRGT_', 'MW_D_', 'MW_C01_', 'MW_C02_', 'MW_C03_', 'END04A_', 'END04B_', 'END04C_', 'END06_', 'END01A_', 'END01B_', 'END01C_', 'END01D_', 'END01E_', 'END01F_', 'END03_']
+# These two first videos seem to be in _E (english) language across translations
+SUPPORTED_VIDEO_DIALOGUE_SHEETS_ENGLISH = ['WSTLGO_', 'BRLOGO_']
+SUPPORTED_VIDEO_DIALOGUE_SHEETS_LOCALIZED = ['INTRO_', 'MW_A_', 'MW_B01_', 'MW_B02_', 'MW_B03_', 'MW_B04_', 'MW_B05_', 'INTRGT_', 'MW_D_', 'MW_C01_', 'MW_C02_', 'MW_C03_', 'END04A_', 'END04B_', 'END04C_', 'END06_', 'END01A_', 'END01B_', 'END01C_', 'END01D_', 'END01E_', 'END01F_', 'END03_']
#
# Each Text Resource (TRx) sheet gets a specific font to handle their translation to Text Resource
# TAHOMA means both TAHOMA Fonts (18 and 24)(their translation should be identical (although in the original they have minor differences but they don't affect anything)
@@ -103,27 +106,30 @@ gTraceModeEnabled = False
gActiveLanguageDescriptionCodeTuple = ''
gNumOfSpokenQuotes = 0
+gActorPropertyEntries = []
+gActorPropertyEntriesWasInit = False
-origEncoding = 'windows-1252'
-defaultTargetEncoding = 'windows-1252'
-defaultTargetEncodingUnicode = unicode(defaultTargetEncoding, 'utf-8')
-targetEncoding = ''
-targetEncodingUnicode = ''
+gTableOfStringIds = []
+gTableOfStringOffsets = []
+gTableOfStringEntries = []
-tableOfStringIds = []
-tableOfStringOffsets = []
-tableOfStringEntries = []
-
-# this list is used in order to replace the actual indices of characters with delegate font indices (ASCII indexes of the target code-page) which have been used during the font creation (or exist in in the internal TAHOMA font)
+# This list is used in order to replace the actual indices of characters with delegate font indices (ASCII indexes of the target code-page) which have been used during the font creation (or exist in in the internal TAHOMA font)
# contains tuples of two values. First value is actual UTF char, the second is a replacement ASCII char
-listOfFontNamesToOutOfOrderGlyphs = []
-arrangedListOfFontNamesToOutOfOrderGlyphs = []
+gListOfFontNamesToOutOfOrderGlyphs = []
+gArrangedListOfFontNamesToOutOfOrderGlyphs = []
-actorPropertyEntries = []
-actorPropertyEntriesWasInit = False
+ORIGINAL_ENCODING = 'windows-1252'
+#DEFAULT_TARGET_ENCODING = 'windows-1252'
+#DEFAULT_TARGET_ENCODING_UNICODE = unicode(DEFAULT_TARGET_ENCODING, 'utf-8')
+gTargetEncoding = ''
+#
+#
+#
def initOverrideEncoding(pathToConfigureFontsTranslationTxt):
- global targetEncoding
+ global gTargetEncoding
+ global gListOfFontNamesToOutOfOrderGlyphs
+ global gArrangedListOfFontNamesToOutOfOrderGlyphs
if pathToConfigureFontsTranslationTxt is None or not pathToConfigureFontsTranslationTxt:
configureFontsTranslationTextFile = u'configureFontsTranslation.txt'
@@ -134,6 +140,7 @@ def initOverrideEncoding(pathToConfigureFontsTranslationTxt):
configureTranslationFailed = True
try:
if os.access(pathToConfigureFontsTranslationTxt, os.F_OK):
+ print "[Info] Font Translation Configuration file found: {0}".format(pathToConfigureFontsTranslationTxt)
conFontsTranslationFile = open(pathToConfigureFontsTranslationTxt, 'r')
linesLst = conFontsTranslationFile.readlines()
conFontsTranslationFile.close()
@@ -141,7 +148,7 @@ def initOverrideEncoding(pathToConfigureFontsTranslationTxt):
configureTranslationFailed = True
else:
if gTraceModeEnabled:
- print "[Info] Font Translation Configuration Info: "
+ print "[Debug] Parsing Font Translation Configuration file info..."
involvedTokensLst =[]
for readEncodLine in linesLst:
tmplineTokens = re.findall("[^\t\n]+",readEncodLine )
@@ -152,8 +159,8 @@ def initOverrideEncoding(pathToConfigureFontsTranslationTxt):
nameKeyTupl = tokenNameKeyPair.split('=', 1)
try:
if len(nameKeyTupl) == 2 and nameKeyTupl[0] == 'targetEncoding' and nameKeyTupl[1] is not None and nameKeyTupl[1] != '-' and nameKeyTupl[1] != '':
- targetEncodingUnicode = unicode(nameKeyTupl[1], 'utf-8')
- targetEncoding = unicode.encode("%s" % targetEncodingUnicode, origEncoding)
+ tmpTargetEncodingUnicode = unicode(nameKeyTupl[1], 'utf-8')
+ gTargetEncoding = unicode.encode("%s" % tmpTargetEncodingUnicode, ORIGINAL_ENCODING)
elif len(nameKeyTupl) == 2 and nameKeyTupl[0] == 'fontNameAndOutOfOrderGlyphs' and nameKeyTupl[1] is not None and nameKeyTupl[1] != '':
# split at hash tag first
tmpListOfOutOfOrderGlyphs = []
@@ -163,15 +170,15 @@ def initOverrideEncoding(pathToConfigureFontsTranslationTxt):
tmpFontName = fontNameAndOOOGlyphsTuple[0]
# split at comma, then split at ':' and store tuples of character
explicitOutOfOrderGlyphsTokenUnicode = unicode(fontNameAndOOOGlyphsTuple[1], 'utf-8') # unicode(fontNameAndOOOGlyphsTuple[1], 'utf-8')
- #explicitOutOfOrderGlyphsTokenStr = unicode.encode("%s" % explicitOutOfOrderGlyphsTokenUnicode, targetEncoding)
- #explicitOutOfOrderGlyphsTokenStr = explicitOutOfOrderGlyphsTokenUnicode.decode(targetEncoding) # unicode.encode("%s" % explicitOutOfOrderGlyphsTokenUnicode, 'utf-8')
+ #explicitOutOfOrderGlyphsTokenStr = unicode.encode("%s" % explicitOutOfOrderGlyphsTokenUnicode, gTargetEncoding)
+ #explicitOutOfOrderGlyphsTokenStr = explicitOutOfOrderGlyphsTokenUnicode.decode(gTargetEncoding) # unicode.encode("%s" % explicitOutOfOrderGlyphsTokenUnicode, 'utf-8')
tokensOfOutOfOrderGlyphsStrList = explicitOutOfOrderGlyphsTokenUnicode.split(',')
for tokenX in tokensOfOutOfOrderGlyphsStrList:
tokensOfTupleList = tokenX.split(':')
tmpListOfOutOfOrderGlyphs.append( (unichr(ord(tokensOfTupleList[0])), unichr(ord(tokensOfTupleList[1]))) )
- if tmpFontName not in [x[0] for x in listOfFontNamesToOutOfOrderGlyphs]:
- listOfFontNamesToOutOfOrderGlyphs.append( ( tmpFontName, tmpListOfOutOfOrderGlyphs) )
+ if tmpFontName not in [x[0] for x in gListOfFontNamesToOutOfOrderGlyphs]:
+ gListOfFontNamesToOutOfOrderGlyphs.append( ( tmpFontName, tmpListOfOutOfOrderGlyphs) )
else:
configureTranslationFailed = True
@@ -180,22 +187,21 @@ def initOverrideEncoding(pathToConfigureFontsTranslationTxt):
configureTranslationFailed = True
raise
- if not (targetEncoding is None or not targetEncoding):
+ if not (gTargetEncoding is None or not gTargetEncoding):
configureTranslationFailed = False
except:
- print "[Error] while trying to access file for encoding info: %s" % (pathToConfigureFontsTranslationTxt)
+ print "[Error] while trying to access file for Font Translation Configuration info: %s" % (pathToConfigureFontsTranslationTxt)
raise
configureTranslationFailed = True
if configureTranslationFailed == True:
-# targetEncoding = defaultTargetEncoding
- print "[Error] Could not find proper override encoding info in: %s" % (pathToConfigureFontsTranslationTxt)
- sys.exit() # terminate if override Failed (Blade Runner)
+ print "[Error] Could not find proper Font Translation Configuration info in: %s" % (pathToConfigureFontsTranslationTxt)
+ sys.exit(1) # terminate if override Failed (Blade Runner)
#
# TODO ASDF fix this!!!
#
- if(len(listOfFontNamesToOutOfOrderGlyphs) == 0):
+ if(len(gListOfFontNamesToOutOfOrderGlyphs) == 0):
tmpFontType = DEFAULT_SUBTITLES_FONT_NAME[:-4] # remove the .FON extensionFromTheName
print "[Info] Empty list for out of order glyphs. Assuming default out of order glyphs and only for the %s font" % (tmpFontType)
tmplistOfOutOfOrderGlyphs = []
@@ -203,15 +209,15 @@ def initOverrideEncoding(pathToConfigureFontsTranslationTxt):
tmplistOfOutOfOrderGlyphs.append((u'\xf1', u'\xa5')) # spanish n (senor)
tmplistOfOutOfOrderGlyphs.append((u'\xe2', u'\xa6')) # a for (liver) pate
tmplistOfOutOfOrderGlyphs.append((u'\xe9', u'\xa7')) # e for (liver) pate
- listOfFontNamesToOutOfOrderGlyphs.append( (tmpFontType, tmplistOfOutOfOrderGlyphs))
+ gListOfFontNamesToOutOfOrderGlyphs.append( (tmpFontType, tmplistOfOutOfOrderGlyphs))
if gTraceModeEnabled:
- print "[Info] Explicit Out Of Order Glyphs List: " , listOfFontNamesToOutOfOrderGlyphs
+ print "[Info] Explicit Out Of Order Glyphs List: " , gListOfFontNamesToOutOfOrderGlyphs
# arrange list properly:
# check if the list contains same item as key and value (in different pairs)
# if such case then the pair with the key should preceed the pair with the value matched,
# to avoid replacing instances of a special character (key) with a delegate (value) that will be later replaced again due to the second pair
#
- for (itFontName, itOOOGlyphList) in listOfFontNamesToOutOfOrderGlyphs:
+ for (itFontName, itOOOGlyphList) in gListOfFontNamesToOutOfOrderGlyphs:
while (True):
foundMatchingPairs = False
for glyphDelegItA in itOOOGlyphList:
@@ -226,65 +232,69 @@ def initOverrideEncoding(pathToConfigureFontsTranslationTxt):
break
if(foundMatchingPairs == False):
break # the whole while loop
- arrangedListOfFontNamesToOutOfOrderGlyphs.append( ( itFontName, itOOOGlyphList))
+ gArrangedListOfFontNamesToOutOfOrderGlyphs.append( ( itFontName, itOOOGlyphList))
if gTraceModeEnabled:
- print "[Info] Arranged Glyphs Delegates List: " , arrangedListOfFontNamesToOutOfOrderGlyphs
+ print "[Debug] Arranged Glyphs Delegates List: " , gArrangedListOfFontNamesToOutOfOrderGlyphs
return
#
-# Fill the actorPropertyEntries table
+# Fill the gActorPropertyEntries table
def initActorPropertyEntries(thePathToActorNamesTxt):
- global actorPropertyEntriesWasInit
- global actorPropertyEntries
+ global gActorPropertyEntriesWasInit
+ global gActorPropertyEntries
firstLine = True
-# print "[Debug] opening actornames"
+ #if gTraceModeEnabled:
+ # print "[Debug] opening actornames"
if thePathToActorNamesTxt is None or not thePathToActorNamesTxt:
actorNamesTextFile = u'actornames.txt'
relPath = u'.'
thePathToActorNamesTxt = os.path.join(relPath, actorNamesTextFile)
print "[Warning] Actor names text file %s not found in arguments. Attempting to open local file if it exists" % (thePathToActorNamesTxt)
- with open(thePathToActorNamesTxt) as tsv:
- for line in csv.reader(tsv, dialect="excel-tab"):
- #skip first line header
- if firstLine == True:
-# print "[Debug] skipping Header line in Excel sheet"
- firstLine = False
- else:
- actorPropertyEntries.append(line)
- actorPropertyEntriesWasInit = True
- tsv.close()
+
+ if os.access(thePathToActorNamesTxt, os.F_OK):
+ print "[Info] Actor names text file found: {0}".format(thePathToActorNamesTxt)
+
+ with open(thePathToActorNamesTxt) as tsv:
+ for line in csv.reader(tsv, dialect="excel-tab"):
+ #skip first line header
+ if firstLine == True:
+ #if gTraceModeEnabled:
+ # print "[Debug] skipping Header line in Excel sheet"
+ firstLine = False
+ else:
+ gActorPropertyEntries.append(line)
+ gActorPropertyEntriesWasInit = True
+ tsv.close()
+ else:
+ ## error
+ print "[Error] Actor names text file not found: {0}".format(thePathToActorNamesTxt)
+ sys.exit(1) # terminate if finding actor names file failed (Blade Runner)
def getActorShortNameById(lookupActorId):
- global actorPropertyEntriesWasInit
- global actorPropertyEntries
- if not actorPropertyEntriesWasInit:
+ if not gActorPropertyEntriesWasInit:
return ''
else:
- for actorEntryTmp in actorPropertyEntries:
+ for actorEntryTmp in gActorPropertyEntries:
if int(actorEntryTmp[0]) == int(lookupActorId):
return actorEntryTmp[1]
return ''
def getActorFullNameById(lookupActorId):
- global actorPropertyEntriesWasInit
- global actorPropertyEntries
- if not actorPropertyEntriesWasInit:
+ if not gActorPropertyEntriesWasInit:
return ''
else:
- for actorEntryTmp in actorPropertyEntries:
+ for actorEntryTmp in gActorPropertyEntries:
if int(actorEntryTmp[0]) == int(lookupActorId):
return actorEntryTmp[2]
return ''
def getActorIdByShortName(lookupActorShortName):
- global actorPropertyEntriesWasInit
- global actorPropertyEntries
- if not actorPropertyEntriesWasInit:
+ if not gActorPropertyEntriesWasInit:
return ''
else:
- for actorEntryTmp in actorPropertyEntries:
+ for actorEntryTmp in gActorPropertyEntries:
if actorEntryTmp[1] == lookupActorShortName:
return actorEntryTmp[0].zfill(2)
return ''
@@ -314,7 +324,7 @@ def calculateFoldHash(strFileName):
hash = ((hash << 1) | ((hash >> 31) & 1)) + groupSum
hash &= 0xFFFFFFFF # mask here!
if gTraceModeEnabled:
- print (strParam +': ' +''.join('{:08X}'.format(hash)))
+ print '[Debug] ', (strParam +': ' +''.join('{:08X}'.format(hash)))
return hash
#
@@ -332,7 +342,7 @@ def outputMIX():
#calculateFoldHash('AR02-MIN.SET')
#calculateFoldHash('CLOVDIES.AUD')
#calculateFoldHash('INTRO.VQA')
- print "[Info] Writing to output file %s..." % (DEFAULT_SUBTITLES_MIX_OUTPUT_NAME)
+ print "[Info] Writing to output MIX file: %s..." % (DEFAULT_SUBTITLES_MIX_OUTPUT_NAME)
errorFound = False
outMIXFile = None
@@ -373,15 +383,20 @@ def outputMIX():
mixFileEntries = []
totalFilesDataSize = 0
currOffsetForDataSegment = 0 # we start after header and table of index entries, from 0, (but this means that when reading the offset we need to add 6 + numOfFiles * 12). This does not concern us though.
- for sheetDialogueName in SUPPORTED_DIALOGUE_SHEETS:
- sheetDialogueNameTRx = sheetDialogueName[:-4] + '.TRE'
+
+ mergedListOfSupportedSubtitleSheets = [(x + '%s.TR%s' % (gActiveLanguageDescriptionCodeTuple[1], gActiveLanguageDescriptionCodeTuple[1])) for x in SUPPORTED_INGAME_DIALOGUE_SHEETS]
+ mergedListOfSupportedSubtitleSheets = mergedListOfSupportedSubtitleSheets + [(x + 'E.VQA') for x in SUPPORTED_VIDEO_DIALOGUE_SHEETS_ENGLISH]
+ mergedListOfSupportedSubtitleSheets = mergedListOfSupportedSubtitleSheets + [(x + '%s.VQA' % (gActiveLanguageDescriptionCodeTuple[1])) for x in SUPPORTED_VIDEO_DIALOGUE_SHEETS_LOCALIZED]
+ #mergedListOfSupportedSubtitleSheets = SUPPORTED_INGAME_DIALOGUE_SHEETS + SUPPORTED_VIDEO_DIALOGUE_SHEETS
+ for sheetDialogueName in mergedListOfSupportedSubtitleSheets:
+ sheetDialogueNameTRx = sheetDialogueName[:-4] + ('.TR%s' %(gActiveLanguageDescriptionCodeTuple[1]))
if os.path.isfile('./' + sheetDialogueNameTRx):
entryID = calculateFoldHash(sheetDialogueNameTRx)
mixEntryfileSizeBytes = os.path.getsize('./' + sheetDialogueNameTRx)
mixFileEntries.append((entryID, sheetDialogueNameTRx, mixEntryfileSizeBytes))
totalFilesDataSize += mixEntryfileSizeBytes
- for translatedTREFileName in [ x[0] for x in SUPPORTED_TRANSLATION_SHEETS] :
+ for translatedTREFileName in [ (x[0] + '%s' % (gActiveLanguageDescriptionCodeTuple[1])) for x in SUPPORTED_TRANSLATION_SHEETS] :
if os.path.isfile('./' + translatedTREFileName):
entryID = calculateFoldHash(translatedTREFileName)
mixEntryfileSizeBytes = os.path.getsize('./' + translatedTREFileName)
@@ -407,7 +422,7 @@ def outputMIX():
outMIXFile.write(totalFilesDataSizeToWrite)
if gTraceModeEnabled:
- print ("[Debug] Sorted Entries based on EntryId")
+ print ("[Debug] Sorted Entries based on EntryId.")
for mixFileEntry in mixFileEntries:
if gTraceModeEnabled:
print (''.join('{:08X}'.format(mixFileEntry[0])) + ': ' + mixFileEntry[1] + ' : ' + ''.join('{:08X}'.format(mixFileEntry[2])))
@@ -448,11 +463,11 @@ def outputMIX():
#TODO extra pass once the quotes have been updated for weird unicode characters
#TODO some ' quotes appear as \u2019 and others appear normally as '. what's that about?
#DONE manually I've replaced all weird \u2019 single quotes with '''
- #the spanish n is \xf1 -> we put it at ascii value: \xA5 -- font index 0xA6 ?
- #the spanish i is \xed -> we put it at ascii value: \xA2 -- font index 0xA3 ?
+ #the Spanish n is \xf1 -> we put it at ASCII value: \xA5 -- font index 0xA6 ?
+ #the Spanish i is \xed -> we put it at ASCII value: \xA2 -- font index 0xA3 ?
#pâté
- # a actual ascii value is 0xE2 in codepage 1252 -- put it in ascii value 0xA6 (165) -- font index 0xA7
- # e actual ascii value is 0xE9 in codepage 1252 -- put it in ascii value 0xA7 (166) -- font index 0xA8
+ # a actual ASCII value is 0xE2 in codepage 1252 -- put it in ASCII value 0xA6 (165) -- font index 0xA7
+ # e actual ASCII value is 0xE9 in codepage 1252 -- put it in ASCII value 0xA7 (166) -- font index 0xA8
#TODO what are other characters are special?
#TODO transition to ASCII chars to store in TRE file?
#DONE manually I've replaced all one-char '...' with three dots
@@ -461,27 +476,35 @@ def outputMIX():
def translateQuoteToAsciiProper(cellObj, pSheetName):
newQuoteReplaceSpecials = cellObj.value.encode("utf-8")
- #print ('[Debug] Encoded to unicode: %s ' % (newQuoteReplaceSpecials))
+ #if gTraceModeEnabled:
+ # print ('[Debug] Encoded to unicode: %s' % (newQuoteReplaceSpecials))
newQuoteReplaceSpecials = newQuoteReplaceSpecials.decode("utf-8")
pertinentListOfOutOfOrderGlyphs = []
- #print pSheetName
- #print SUPPORTED_DIALOGUE_SHEETS
- #print DEFAULT_SUBTITLES_FONT_NAME[:-4]
- #print [x[0] for x in listOfFontNamesToOutOfOrderGlyphs]
- if pSheetName in SUPPORTED_DIALOGUE_SHEETS and DEFAULT_SUBTITLES_FONT_NAME[:-4] in [x[0] for x in listOfFontNamesToOutOfOrderGlyphs]:
- for (tmpFontName, tmpOOOList) in listOfFontNamesToOutOfOrderGlyphs:
+
+ mergedListOfSupportedSubtitleSheets = [(x + '%s.TR%s' % (gActiveLanguageDescriptionCodeTuple[1], gActiveLanguageDescriptionCodeTuple[1])) for x in SUPPORTED_INGAME_DIALOGUE_SHEETS]
+ mergedListOfSupportedSubtitleSheets = mergedListOfSupportedSubtitleSheets + [(x + 'E.VQA') for x in SUPPORTED_VIDEO_DIALOGUE_SHEETS_ENGLISH]
+ mergedListOfSupportedSubtitleSheets = mergedListOfSupportedSubtitleSheets + [(x + '%s.VQA' % (gActiveLanguageDescriptionCodeTuple[1])) for x in SUPPORTED_VIDEO_DIALOGUE_SHEETS_LOCALIZED]
+ #mergedListOfSupportedSubtitleSheets = SUPPORTED_INGAME_DIALOGUE_SHEETS + SUPPORTED_VIDEO_DIALOGUE_SHEETS
+ #if gTraceModeEnabled:
+ # print '[Debug] ', pSheetName
+ # print '[Debug] ', mergedListOfSupportedSubtitleSheets
+ # print '[Debug] ', DEFAULT_SUBTITLES_FONT_NAME[:-4]
+ # print [x[0] for x in gListOfFontNamesToOutOfOrderGlyphs]
+ if pSheetName in mergedListOfSupportedSubtitleSheets and DEFAULT_SUBTITLES_FONT_NAME[:-4] in [x[0] for x in gListOfFontNamesToOutOfOrderGlyphs]:
+ for (tmpFontName, tmpOOOList) in gListOfFontNamesToOutOfOrderGlyphs:
if tmpFontName == DEFAULT_SUBTITLES_FONT_NAME[:-4]:
pertinentListOfOutOfOrderGlyphs = tmpOOOList
break
- elif pSheetName in [x[0] for x in SUPPORTED_TRANSLATION_SHEETS]:
+ elif pSheetName in [(x[0] + '%s' % (gActiveLanguageDescriptionCodeTuple[1])) for x in SUPPORTED_TRANSLATION_SHEETS]:
pertinentFontType = ''
#[treAndFontTypeTuple for treAndFontTypeTuple in SUPPORTED_TRANSLATION_SHEETS if treAndFontTypeTuple[0] == pSheetName]
for (tmpSheetName, tmpFontType) in SUPPORTED_TRANSLATION_SHEETS:
+ tmpSheetName = tmpSheetName + '%s' % (gActiveLanguageDescriptionCodeTuple[1])
if tmpSheetName == pSheetName:
pertinentFontType = tmpFontType
break
- for (tmpFontName, tmpOOOList) in listOfFontNamesToOutOfOrderGlyphs:
+ for (tmpFontName, tmpOOOList) in gListOfFontNamesToOutOfOrderGlyphs:
if tmpFontName == pertinentFontType:
pertinentListOfOutOfOrderGlyphs = tmpOOOList
break
@@ -489,16 +512,16 @@ def translateQuoteToAsciiProper(cellObj, pSheetName):
#newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u"\u0386", u"\u00A3")
for repTuple in pertinentListOfOutOfOrderGlyphs:
newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(repTuple[0], repTuple[1])
- # WORKAROUND, we re-replace the spanish i delegate again here!
-# newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u'\xa2', u'\u0386') # this is needed for spanish i because in utf-8 it's actually the u'\u0386' that's assigned to A tonomeno which is the delegate.
-# newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u"\u0386", u"\u00A3")
-# #newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u"\u0386", u"\u00A3") # greek alpha tonomeno -- TODO which character is this in the excel (utf value) ???
-# newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u"\u00ed", u"\u00A2") # spanish i
-# newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u"\u00f1", u"\u00A5") # spanish n
-# #newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u"\u00A4", u"\u00A5") # spanish n
-# newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u"\u00e2", u"\u00A6") # a from pate -- todo this is not confirmed in-game font (but it is in our external font as of yet)
-# newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u"\u00e9", u"\u00A7") # e from pate -- todo this is not confirmed in-game font (but it is in our external font as of yet)
- # other replacements.
+ # WORKAROUND, we re-replace the Spanish i delegate again here!
+ #newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u'\xa2', u'\u0386') # this is needed for spanish i because in utf-8 it's actually the u'\u0386' that's assigned to A tonomeno which is the delegate.
+ #newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u"\u0386", u"\u00A3")
+ ##newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u"\u0386", u"\u00A3") # greek alpha tonomeno -- TODO which character is this in the excel (utf value) ???
+ #newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u"\u00ed", u"\u00A2") # spanish i
+ #newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u"\u00f1", u"\u00A5") # spanish n
+ ##newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u"\u00A4", u"\u00A5") # spanish n
+ #newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u"\u00e2", u"\u00A6") # a from pate -- todo this is not confirmed in-game font (but it is in our external font as of yet)
+ #newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u"\u00e9", u"\u00A7") # e from pate -- todo this is not confirmed in-game font (but it is in our external font as of yet)
+ ## other replacements.
newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u"\u2019", u"\u0027") # right single quote
newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u"\u2018", u"\u0027") # left single quote
newQuoteReplaceSpecials = newQuoteReplaceSpecials.replace(u"\u2026", u"\u002e\u002e\u002e") # three dots together (changes length)
@@ -507,43 +530,52 @@ def translateQuoteToAsciiProper(cellObj, pSheetName):
# TODO? replace new line ??? with another char (maybe |)?
#newQuoteReplaceSpecialsUnicode = unicode(newQuoteReplaceSpecials, 'utf-8')
- #newQuoteReplaceSpecialsStr = unicode.encode("%s" % newQuoteReplaceSpecials, targetEncoding)
-
- #print type(newQuoteReplaceSpecials) # type is unicode
- #print type(newQuoteReplaceSpecials.encode('utf-8')) # type is str
-# print targetEncoding
-# print newQuoteReplaceSpecials
-# newQuoteReplaceSpecialsDec = newQuoteReplaceSpecials.decode(targetEncoding)
+ #newQuoteReplaceSpecialsStr = unicode.encode("%s" % newQuoteReplaceSpecials, gTargetEncoding)
+ #if gTraceModeEnabled:
+ # print '[Debug] ', type(newQuoteReplaceSpecials) # type is unicode
+ # print '[Debug] ', type(newQuoteReplaceSpecials.encode('utf-8')) # type is str
+ # print '[Debug] ', gTargetEncoding
+ # print '[Debug] ', newQuoteReplaceSpecials
+ #newQuoteReplaceSpecialsDec = newQuoteReplaceSpecials.decode(gTargetEncoding)
newQuoteReplaceSpecialsRetStr = ''
- newQuoteReplaceSpecialsRetStr = newQuoteReplaceSpecials.encode(targetEncoding)
-# try:
-# newQuoteReplaceSpecialsRetStr = newQuoteReplaceSpecials.encode(targetEncoding)
-# except:
-# print "==============================================================================="
-# print "==============================================================================="
-# print "ERROR:"
-# print newQuoteReplaceSpecials
-# print newQuoteReplaceSpecials.encode(targetEncoding, errors='xmlcharrefreplace')
-# print "==============================================================================="
-# print "==============================================================================="
-# newQuoteReplaceSpecialsRetStr = newQuoteReplaceSpecials.encode(targetEncoding, errors='xmlcharrefreplace')
+ newQuoteReplaceSpecialsRetStr = newQuoteReplaceSpecials.encode(gTargetEncoding)
+ #try:
+ # newQuoteReplaceSpecialsRetStr = newQuoteReplaceSpecials.encode(gTargetEncoding)
+ #except:
+ # print "==============================================================================="
+ # print "==============================================================================="
+ # print "ERROR:"
+ # print newQuoteReplaceSpecials
+ # print newQuoteReplaceSpecials.encode(gTargetEncoding, errors='xmlcharrefreplace')
+ # print "==============================================================================="
+ # print "==============================================================================="
+ # newQuoteReplaceSpecialsRetStr = newQuoteReplaceSpecials.encode(gTargetEncoding, errors='xmlcharrefreplace')
return newQuoteReplaceSpecialsRetStr
-# return newQuoteReplaceSpecialsEnStr
+ #return newQuoteReplaceSpecialsEnStr
def inputXLS(filename):
global gNumOfSpokenQuotes
- global tableOfStringIds
- global tableOfStringOffsets
- global tableOfStringEntries
+ global gTableOfStringIds
+ global gTableOfStringOffsets
+ global gTableOfStringEntries
# Open the workbook
- xl_workbook = xlrd.open_workbook(filename, encoding_override="utf-8")
-
+ xl_workbook = None
+ try:
+ xl_workbook = xlrd.open_workbook(filename, encoding_override="utf-8")
+ if xl_workbook is not None:
+ print "[Info] Opened Excel input file: %s" % (filename)
+ except Exception as e:
+ print '[Debug] Could not open the Excel input file::' + str(e)
+ if xl_workbook is None:
+ print '[Info] Could not open the Excel input file: %s' % (filename)
+ sys.exit(1) # Terminate if the input Excel was not found
# List sheet names, and pull a sheet by name
#
- # sheet_names = xl_workbook.sheet_names()
- #print('Sheet Names', sheet_names)
+ #sheet_names = xl_workbook.sheet_names()
+ #if gTraceModeEnabled:
+ # print('[Debug] Sheet Names', sheet_names)
#
#xl_sheet = xl_workbook.sheet_by_name(sheet_names[0])
@@ -551,16 +583,28 @@ def inputXLS(filename):
# (sheets are zero-indexed)
# First sheet is the in-game quotes
#
- # xl_sheet = xl_workbook.sheet_by_index(0)
+ #xl_sheet = xl_workbook.sheet_by_index(0)
#
#
- mergedListOfSubtitleSheetsAndTranslatedTREs = SUPPORTED_DIALOGUE_SHEETS + [ x[0] for x in SUPPORTED_TRANSLATION_SHEETS ]
-
- for sheetDialogueName in mergedListOfSubtitleSheetsAndTranslatedTREs:
- xl_sheet = xl_workbook.sheet_by_name(sheetDialogueName)
- if(xl_sheet is not None):
+ mergedListOfSupportedSubtitleSheets = [(x + '%s.TR%s' % (gActiveLanguageDescriptionCodeTuple[1], gActiveLanguageDescriptionCodeTuple[1])) for x in SUPPORTED_INGAME_DIALOGUE_SHEETS]
+ mergedListOfSupportedSubtitleSheets = mergedListOfSupportedSubtitleSheets + [(x + 'E.VQA') for x in SUPPORTED_VIDEO_DIALOGUE_SHEETS_ENGLISH]
+ mergedListOfSupportedSubtitleSheets = mergedListOfSupportedSubtitleSheets + [(x + '%s.VQA' % (gActiveLanguageDescriptionCodeTuple[1])) for x in SUPPORTED_VIDEO_DIALOGUE_SHEETS_LOCALIZED]
+ #mergedListOfSupportedSubtitleSheets = SUPPORTED_INGAME_DIALOGUE_SHEETS + SUPPORTED_VIDEO_DIALOGUE_SHEETS
+ mergedListOfSupportedSubtitleSheetsAndTranslatedTREs = mergedListOfSupportedSubtitleSheets + [ (x[0] + '%s' % (gActiveLanguageDescriptionCodeTuple[1])) for x in SUPPORTED_TRANSLATION_SHEETS ]
+
+ for sheetDialogueName in mergedListOfSupportedSubtitleSheetsAndTranslatedTREs:
+ xl_sheet = None
+ try:
+ xl_sheet = xl_workbook.sheet_by_name(sheetDialogueName)
+ except Exception as e:
+ if gTraceModeEnabled:
+ print '[Debug] Could not open requested sheet in Excel::' + str(e)
+
+ if xl_sheet is None:
+ print '[Warning] %s sheet was not found in input Excel file.' % (sheetDialogueName)
+ else: #if(xl_sheet is not None):
if gTraceModeEnabled:
- print ('[Info] Sheet name: %s' % xl_sheet.name)
+ print ('[Debug] Sheet name: %s' % xl_sheet.name)
gNumOfSpokenQuotes = xl_sheet.nrows - 2 # all rows minus the first TWO rows with headers
if gTraceModeEnabled:
print ('[Debug] Number of spoken quotes: %d' % gNumOfSpokenQuotes)
@@ -582,31 +626,33 @@ def inputXLS(filename):
tmpStartFrame = 0 # for VQA sheets
tmpEndFrame = 0 # for VQA sheets
mode = 0 # init to unknown
- if xl_sheet.name == SUPPORTED_DIALOGUE_SHEETS[0]:
+ if xl_sheet.name == mergedListOfSupportedSubtitleSheets[0]:
if gTraceModeEnabled:
print '[Debug] IN GAME QUOTES'
mode = 1 #in-game quote
- elif xl_sheet.name in SUPPORTED_DIALOGUE_SHEETS:
+ elif xl_sheet.name in mergedListOfSupportedSubtitleSheets:
if gTraceModeEnabled:
print '[Debug] VQA SCENE DIALOGUE'
mode = 2 #VQA
- elif xl_sheet.name in [ x[0] for x in SUPPORTED_TRANSLATION_SHEETS ]:
+ elif xl_sheet.name in [ (x[0] + '%s' % (gActiveLanguageDescriptionCodeTuple[1])) for x in SUPPORTED_TRANSLATION_SHEETS ]:
if gTraceModeEnabled:
print '[Debug] TRANSLATED TEXT RESOURCE'
mode = 3 # Translated TRE
#
- del tableOfStringIds[:]
- del tableOfStringEntries[:]
- del tableOfStringOffsets[:]
+ del gTableOfStringIds[:]
+ del gTableOfStringEntries[:]
+ del gTableOfStringOffsets[:]
for row_idx in range(2, xl_sheet.nrows):
- #print "[Debug] Line %d" % (row_idx)
+ #if gTraceModeEnabled:
+ # print "[Debug] Line %d" % (row_idx)
for col_idx in range(0, xl_sheet.ncols):
cell_obj = xl_sheet.cell(row_idx, col_idx)
#
# FOR IN-GAME QUOTES -- Iterate through columns starting from col 0. We need cols: 0, 2
#
if mode == 1:
- #print ('[Debug] Column: [%s] cell_obj: [%s]' % (col_idx, cell_obj))
+ #if gTraceModeEnabled:
+ # print ('[Debug] Column: [%s] cell_obj: [%s]' % (col_idx, cell_obj))
if(col_idx == 0):
#switchFlagShowQuote = False
twoTokensfirstColSplitAtDotXLS = cell_obj.value.split('.', 1)
@@ -614,24 +660,28 @@ def inputXLS(filename):
twoTokensfirstColSplitAtDashXLS = twoTokensfirstColSplitAtDotXLS[0].split('-', 1)
if len(twoTokensfirstColSplitAtDashXLS) == 2:
tmpQuoteID = int( twoTokensfirstColSplitAtDashXLS[0]) * 10000 + int(twoTokensfirstColSplitAtDashXLS[1])
- #print ('[Debug] row_idx: %d. tag %s: quoteId [%d]' % (row_idx, twoTokensfirstColSplitAtDotXLS[0], tmpQuoteID))
- tableOfStringIds.append(tmpQuoteID)
+ #if gTraceModeEnabled:
+ # print ('[Debug] Row_idx: %d. Tag: %s, QuoteId: [%d]' % (row_idx, twoTokensfirstColSplitAtDotXLS[0], tmpQuoteID))
+ gTableOfStringIds.append(tmpQuoteID)
#if(tmpQuoteID == 160110 or tmpQuoteID == 160010):
- # switchFlagShowQuote = True
+ # switchFlagShowQuote = True
elif(col_idx == 1) :
#if switchFlagShowQuote == True:
- # print ('[Debug] length: %d: %s' % (len(cell_obj.value), cell_obj.value))
- # print ('[Debug] object: %s' % (cell_obj))
- # #newQuoteReplaceSpecials = cell_obj.value.decode("utf-8") # unicode(cell_obj.value, 'windows-1252')
- # #print ('[Debug] decoded to unicode: %s ' % (newQuoteReplaceSpecials)) # error with char xf1
+ #if gTraceModeEnabled:
+ # print ('[Debug] length: %d: %s' % (len(cell_obj.value), cell_obj.value))
+ # print ('[Debug] object: %s' % (cell_obj))
+ ## newQuoteReplaceSpecials = cell_obj.value.decode("utf-8") # unicode(cell_obj.value, 'windows-1252')
+ ## print ('[Debug] decoded to unicode: %s ' % (newQuoteReplaceSpecials)) # error with char xf1
newQuoteReplaceSpecialsAscii = translateQuoteToAsciiProper(cell_obj, xl_sheet.name)
#if switchFlagShowQuote == True:
- # print ('[Debug] length: %d: %s' % (len(newQuoteReplaceSpecialsAscii), newQuoteReplaceSpecialsAscii))
- #print ':'.join(x.encode('hex') for x in newQuoteReplaceSpecialsAscii) # seems to work. new chars are non-printable but exist in string
+ #if gTraceModeEnabled:
+ # print ('[Debug] length: %d: %s' % (len(newQuoteReplaceSpecialsAscii), newQuoteReplaceSpecialsAscii))
+ #if gTraceModeEnabled:
+ # print ':'.join(x.encode('hex') for x in newQuoteReplaceSpecialsAscii) # seems to work. new chars are non-printable but exist in string
- tableOfStringEntries.append(newQuoteReplaceSpecialsAscii)
- tableOfStringOffsets.append(curStrStartOffset)
+ gTableOfStringEntries.append(newQuoteReplaceSpecialsAscii)
+ gTableOfStringOffsets.append(curStrStartOffset)
curStrStartOffset += (len(newQuoteReplaceSpecialsAscii) + 1)
if ( longestLength < len(newQuoteReplaceSpecialsAscii)):
longestLength = len(newQuoteReplaceSpecialsAscii)
@@ -647,7 +697,7 @@ def inputXLS(filename):
newQuoteReplaceSpecialsAscii = translateQuoteToAsciiProper(cell_obj, xl_sheet.name)
#print ('[Debug] length: %d: %s' % (len(newQuoteReplaceSpecialsAscii), newQuoteReplaceSpecialsAscii))
#print ':'.join(x.encode('hex') for x in newQuoteReplaceSpecialsAscii) # seems to work. new chars are non-printable but exist in string
- # don't append to tableOfStringEntries yet
+ # don't append to gTableOfStringEntries yet
elif(col_idx == 9): # startFrame
#print "[Debug] cell: %s" % (cell_obj.value)
tmpStartFrame = int(cell_obj.value)
@@ -655,9 +705,9 @@ def inputXLS(filename):
tmpEndFrame = int(cell_obj.value)
tmpQuoteID = tmpStartFrame | (tmpEndFrame << 16) # top 16 bits are end frame (up to 65536 frames which is enough) and low 16 bits are startFrame
- tableOfStringIds.append(tmpQuoteID)
- tableOfStringEntries.append(newQuoteReplaceSpecialsAscii)
- tableOfStringOffsets.append(curStrStartOffset)
+ gTableOfStringIds.append(tmpQuoteID)
+ gTableOfStringEntries.append(newQuoteReplaceSpecialsAscii)
+ gTableOfStringOffsets.append(curStrStartOffset)
curStrStartOffset += (len(newQuoteReplaceSpecialsAscii) + 1)
if ( longestLength < len(newQuoteReplaceSpecialsAscii)):
longestLength = len(newQuoteReplaceSpecialsAscii)
@@ -671,7 +721,7 @@ def inputXLS(filename):
#print ('[Debug] Column: [%s] cell_obj: [%s]' % (col_idx, cell_obj))
if(col_idx == 0):
tmpQuoteID = int(cell_obj.value)
- tableOfStringIds.append(tmpQuoteID)
+ gTableOfStringIds.append(tmpQuoteID)
elif(col_idx == 1) :
#if switchFlagShowQuote == True:
# print ('[Debug] length: %d: %s' % (len(cell_obj.value), cell_obj.value))
@@ -683,8 +733,8 @@ def inputXLS(filename):
# print ('[Debug] length: %d: %s' % (len(newQuoteReplaceSpecialsAscii), newQuoteReplaceSpecialsAscii))
#print ':'.join(x.encode('hex') for x in newQuoteReplaceSpecialsAscii) # seems to work. new chars are non-printable but exist in string
- tableOfStringEntries.append(newQuoteReplaceSpecialsAscii)
- tableOfStringOffsets.append(curStrStartOffset)
+ gTableOfStringEntries.append(newQuoteReplaceSpecialsAscii)
+ gTableOfStringOffsets.append(curStrStartOffset)
curStrStartOffset += (len(newQuoteReplaceSpecialsAscii) + 1)
if ( longestLength < len(newQuoteReplaceSpecialsAscii)):
longestLength = len(newQuoteReplaceSpecialsAscii)
@@ -693,7 +743,7 @@ def inputXLS(filename):
quoteNumAboveThreshold += 1
#print ('[Debug] row_idx: %d. tag %s: quoteId [%d], length: %d: %s' % (row_idx, twoTokensfirstColSplitAtDotXLS[0], tmpQuoteID, len(newQuoteReplaceSpecialsAscii), newQuoteReplaceSpecialsAscii))
- tableOfStringOffsets.append(curStrStartOffset) # the final extra offset entry
+ gTableOfStringOffsets.append(curStrStartOffset) # the final extra offset entry
if gTraceModeEnabled:
print '[Debug] Longest Length: %d, Quotes above threshold (%d): %d' % (longestLength, predefinedLengthThreshold, quoteNumAboveThreshold)
for extremQuotTuple in extremeQuotesList:
@@ -705,24 +755,24 @@ def inputXLS(filename):
outTREFile = None
outTREFileName = sheetDialogueName[:-4]
try:
- outTREFile = open("./" + outTREFileName + ".TRE", 'wb')
+ outTREFile = open("./" + outTREFileName + (".TR%s" %(gActiveLanguageDescriptionCodeTuple[1])), 'wb')
except Exception as e:
errorFound = True
- print '[Error] Unable to write to output TRE file. ' + str(e)
+ print ('[Error] Unable to write to output TR%s file:: ' %(gActiveLanguageDescriptionCodeTuple[1])) + str(e)
if not errorFound:
numOfSpokenQuotesToWrite = pack('I', gNumOfSpokenQuotes) # unsigned integer 4 bytes
outTREFile.write(numOfSpokenQuotesToWrite)
# write string IDs table
- for idxe in range(0, len(tableOfStringIds)):
- idOfStringToWrite = pack('I', tableOfStringIds[idxe]) # unsigned integer 4 bytes
+ for idxe in range(0, len(gTableOfStringIds)):
+ idOfStringToWrite = pack('I', gTableOfStringIds[idxe]) # unsigned integer 4 bytes
outTREFile.write(idOfStringToWrite)
# write string offsets table
- for idxe in range(0, len(tableOfStringOffsets)):
- offsetOfStringToWrite = pack('I', tableOfStringOffsets[idxe]) # unsigned integer 4 bytes
+ for idxe in range(0, len(gTableOfStringOffsets)):
+ offsetOfStringToWrite = pack('I', gTableOfStringOffsets[idxe]) # unsigned integer 4 bytes
outTREFile.write(offsetOfStringToWrite)
#write strings with null terminator
- for idxe in range(0, len(tableOfStringEntries)):
- outTREFile.write(tableOfStringEntries[idxe])
+ for idxe in range(0, len(gTableOfStringEntries)):
+ outTREFile.write(gTableOfStringEntries[idxe])
outTREFile.write('\0')
outTREFile.close()
return
@@ -765,10 +815,12 @@ def main(argsCL):
pathToQuoteExcelFile = ""
pathToActorNamesTxt = ""
pathToConfigureFontsTranslationTxt = ""
+
+ candidateLangDescriptionTxt = ""
invalidSyntax = False
print "Running %s (%s)..." % (APP_NAME_SPACED, APP_VERSION)
-# print "Len of sysargv = %s" % (len(argsCL))
+ #print "Len of sysargv = %s" % (len(argsCL))
if len(argsCL) == 2:
if(argsCL[1] == '--help'or argsCL[1] == '-h'):
print "%s %s supports Westwood's Blade Runner PC Game (1997)." % (APP_NAME_SPACED, APP_VERSION)
@@ -812,6 +864,8 @@ def main(argsCL):
pathToActorNamesTxt = argsCL[i+1]
elif (argsCL[i] == '-cft'):
pathToConfigureFontsTranslationTxt = argsCL[i+1]
+ elif (argsCL[i] == '-ld'):
+ candidateLangDescriptionTxt = argsCL[i+1]
elif sys.argv[i] == '--trace':
print "[Info] Trace mode enabled (more debug messages)."
gTraceModeEnabled = True
@@ -827,15 +881,25 @@ def main(argsCL):
if not invalidSyntax:
print "[Info] Game Language Selected: %s (%s)" % (gActiveLanguageDescriptionCodeTuple[0], gActiveLanguageDescriptionCodeTuple[2])
+ #
+ # Early check for external subtitles font file, since we no longer support internal font
+ relPath = u'.'
+ thePathToExternalFontFileFon = os.path.join(relPath, DEFAULT_SUBTITLES_FONT_NAME)
+ if not os.path.isfile(thePathToExternalFontFileFon):
+ print "[Error] Font file %s for subtitles was not found!" % (thePathToExternalFontFileFon)
+ sys.exit(1)
+ else:
+ print "[Info] Supported font file for subtitles found: {0}".format(thePathToExternalFontFileFon)
+
# parse any overrideEncoding file if exists:
initOverrideEncoding(pathToConfigureFontsTranslationTxt)
-
# parse the EXCEL File
# parse Actors files:
initActorPropertyEntries(pathToActorNamesTxt)
-# for actorEntryTmp in actorPropertyEntries:
-# print "[Debug] Found actor: %s %s %s" % (actorEntryTmp[0], actorEntryTmp[1], actorEntryTmp[2])
+ #if gTraceModeEnabled:
+ # for actorEntryTmp in gActorPropertyEntries:
+ # print "[Debug] Found actor: %s %s %s" % (actorEntryTmp[0], actorEntryTmp[1], actorEntryTmp[2])
inputXLS(pathToQuoteExcelFile)
outputMIX()
diff --git a/devtools/create_bladerunner/subtitles/mixResourceCreator/samples/sampleCMDParameters.txt b/devtools/create_bladerunner/subtitles/mixResourceCreator/samples/sampleCMDParameters.txt
index e3842054c6..93fe959ac5 100644
--- a/devtools/create_bladerunner/subtitles/mixResourceCreator/samples/sampleCMDParameters.txt
+++ b/devtools/create_bladerunner/subtitles/mixResourceCreator/samples/sampleCMDParameters.txt
@@ -1 +1 @@
-python2.7 mixResourceCreator.py -x ./outSpeech-02-09-2018-1358-TranslatingComms-117PatrasLinks.xls -ian ./common/actornames.txt -cft ./configureFontsTranslation.txt --trace \ No newline at end of file
+python2.7 mixResourceCreator.py -x ../sampleInput/englishTranscript.xls -ian ../common/actornames.txt -cft ../sampleInput/configureFontsTranslation.txt --trace \ No newline at end of file