def parse_page(page, cfg): # Get raw page values. raw = page.get_all_values() translationsColumnId = int(cfg["TRANSLATION_COLUMN"]) - 1 # Get list of languages. languagesRowId = int(cfg["LANGUAGES_ROW"]) - 1 langRow = raw[languagesRowId] languagesNb = len(langRow) languages = [] for columnId in range(translationsColumnId, languagesNb): languages.append(raw[languagesRowId][columnId]) translationRowId = int(cfg["TRANSLATION_ROW"]) - 1 # Comments column ids. commentKeyColumnId = int(cfg["COMMENT_KEY_COLUMN"]) - 1 groupKeyColumnId = int(cfg["GROUP_KEY_COLUMN"]) - 1 # Key column ids. androidKeyColumnId = int(cfg["ANDROID_KEY_COLUMN"]) - 1 iosKeyColumnId = int(cfg["IOS_KEY_COLUMN"]) - 1 # Parse translations. group_name_var = '' translations = [] for rowId in range(0, len(raw)): # Skip non-translation rows. if rowId < translationRowId: continue tr = Translation() # Comment keys. comment = raw[rowId][commentKeyColumnId] tr.comment = comment if len(comment) else None group_key = raw[rowId][groupKeyColumnId] group_name_var = group_key if len(group_key) else group_name_var # print('parsed group name {}'.format(group_name_var)) tr.group = group_name_var # Platform keys. androidKey = raw[rowId][androidKeyColumnId] tr.androidKey = androidKey if len(androidKey) else None ios_key = raw[rowId][iosKeyColumnId] tr.iosKey = ios_key if len(ios_key) else None # Get translations. for columnId in range(translationsColumnId, languagesNb): tr.translations.append(raw[rowId][columnId]) translations.append(tr) return languages, translations