# This file has been automatically generated by po/lyx_pot.py.
-# PLEASE DO NOT MODIFY ANYTHING HERE! If you want to regenerate this file
-# from the translations, run `make ../lib/layouttranslations' in po.
+# PLEASE MODIFY ONLY THE LAGUAGES HAVING NO .po FILE! If you want to regenerate
+# this file from the translations, run `make ../lib/layouttranslations' in po.
Translation ar
"Algorithm" "الخوارزم"
End
Translation ia
- "Acknowledgement" "Riconoscimento"
- "Algorithm" "Algoritmo"
- "Assumption" "Assunzione"
- "Axiom" "Assioma"
+ "Acknowledgement" "Recognoscentia"
+ "Algorithm" "Algorithmo"
+ "Axiom" "Axioma"
"Case" "Caso"
"Chart" "Diagramma"
- "Claim" "Asserzione"
- "Conclusion" "Conclusione"
- "Condition" "Condizione"
- "Conjecture" "Congettura"
+ "Claim" "Assertion"
+ "Conjecture" "Conjectura"
"Corollary" "Corollario"
"Criterion" "Criterio"
- "Definition" "Definizione"
- "Example" "Esempio"
- "Exercise" "Esercizio"
- "Fact" "Fatto"
+ "Example" "Exemplo"
+ "Exercise" "Exercitio"
+ "Fact" "Facto"
"Figure" "Figura"
- "Graph" "Grafico"
- "List of Algorithms" "Elenco degli algoritmi|a"
- "List of Charts" "Elenco dei diagrammi"
- "List of Figures" "Elenco delle figure"
- "List of Graphs" "Elenco dei grafici"
- "List of Schemes" "Elenco degli schemi"
- "List of Tableaux" "Elenco dei tableau"
- "List of Tables" "Elenco delle tabelle"
+ "Graph" "Graphico"
+ "List of Algorithms" "Lista del algorithmos"
+ "List of Charts" "Lista de diagrammas"
+ "List of Figures" "Lista de figuras"
+ "List of Graphs" "Lista de graphicos"
+ "List of Schemes" "Lista de schemas"
+ "List of Tableaux" "Lista de tableau"
+ "List of Tables" "Lista de tabellas"
"MarginFigure" "Figura a margine"
"MarginTable" "Tabella a margine"
- "Notation" "Notazione"
"Note" "Nota"
- "Plate" "Foglio"
+ "Plate" "Folio"
"Problem" "Problema"
- "Proof" "Dimostrazione"
- "Proposition" "Proposizione"
- "Question" "Questione"
- "Remark" "Osservazione"
+ "Proof" "Demonstration"
+ "Remark" "Observation"
"Scheme" "Schema"
- "Summary" "Sommario"
+ "Summary" "Summario"
"Table" "Tabella"
- "Theorem" "Teorema"
+ "Theorem" "Theorema"
End
Translation id
def layouts_l10n(input_files, output, base, layouttranslations):
'''Generate pot file from lib/layouts/*.{layout,inc,module}'''
- out = open(output, 'w')
Style = re.compile(r'^Style\s+(.*)', re.IGNORECASE)
# include ???LabelString???, but exclude comment lines
LabelString = re.compile(r'^[^#]*LabelString\S*\s+(.*)')
Float = re.compile(r'\s*Float')
End = re.compile(r'\s*End')
Comment = re.compile(r'\s*#')
+ Translation = re.compile(r'\s*Translation\s+(.*)\s*$')
+ KeyValPair = re.compile(r'\s*"(.*)"\s+"(.*)"')
+ oldlanguages = []
languages = []
keyset = set()
+ oldtrans = dict()
if layouttranslations:
linguas_file = os.path.join(base, 'po/LINGUAS')
for line in open(linguas_file).readlines():
if Comment.search(line) == None:
languages.extend(line.split())
- # walon is not a known document language
- # FIXME: Do not hardcode, read from lib/languages!
- if 'wa' in languages:
- languages.remove('wa')
+ # read old translations if available
+ try:
+ input = open(output)
+ lang = ''
+ for line in input.readlines():
+ res = Comment.search(line)
+ if res:
+ continue
+ if line.strip() == '':
+ continue
+ res = Translation.search(line)
+ if res:
+ lang = res.group(1)
+ if lang not in languages:
+ oldlanguages.append(lang)
+ languages.append(lang)
+ oldtrans[lang] = dict()
+ continue
+ res = End.search(line)
+ if res:
+ lang = ''
+ continue
+ res = KeyValPair.search(line)
+ if res and lang != '':
+ key = res.group(1).decode('utf-8')
+ val = res.group(2).decode('utf-8')
+ key = key.replace('\\"', '"').replace('\\\\', '\\')
+ val = val.replace('\\"', '"').replace('\\\\', '\\')
+ oldtrans[lang][key] = val
+ keyset.add(key)
+ continue
+ print "Error: Unable to handle line:"
+ print line
+ except IOError:
+ pass
+
+ # walon is not a known document language
+ # FIXME: Do not hardcode, read from lib/languages!
+ if 'wa' in languages:
+ languages.remove('wa')
+
+ out = open(output, 'w')
for src in input_files:
readingDescription = False
readingI18nPreamble = False
keys.sort()
print >> out, '''# This file has been automatically generated by po/lyx_pot.py.
-# PLEASE DO NOT MODIFY ANYTHING HERE! If you want to regenerate this file
-# from the translations, run `make ../lib/layouttranslations' in po.'''
+# PLEASE MODIFY ONLY THE LAGUAGES HAVING NO .po FILE! If you want to regenerate
+# this file from the translations, run `make ../lib/layouttranslations' in po.'''
for lang in languages:
print >> out, '\nTranslation %s' % lang
- poname = os.path.join(base, 'po/' + lang + '.po')
- po = polib.pofile(poname)
- # Iterate through po entries and not keys for speed reasons.
- # FIXME: The code is still too slow
- trans = dict()
- for entry in po:
- if not entry.translated():
- continue
- if entry.msgid in keys:
- key = entry.msgid.replace('\\', '\\\\').replace('"', '\\"')
- val = entry.msgstr.replace('\\', '\\\\').replace('"', '\\"')
- # some translators keep untranslated entries
- if val != key:
- trans[key] = val
+ if lang in oldtrans.keys():
+ trans = oldtrans[lang]
+ else:
+ trans = dict()
+ if not lang in oldlanguages:
+ poname = os.path.join(base, 'po/' + lang + '.po')
+ po = polib.pofile(poname)
+ # Iterate through po entries and not keys for speed reasons.
+ # FIXME: The code is still too slow
+ for entry in po:
+ if not entry.translated():
+ continue
+ if entry.msgid in keys:
+ key = entry.msgid
+ val = entry.msgstr
+ # some translators keep untranslated entries
+ if val != key:
+ trans[key] = val
for key in keys:
if key in trans.keys():
- val = trans[key]
+ val = trans[key].replace('\\', '\\\\').replace('"', '\\"')
+ key = key.replace('\\', '\\\\').replace('"', '\\"')
print >> out, '\t"%s" "%s"' % \
(key.encode('utf-8'), val.encode('utf-8'))
+ # to print untranslated entries, uncomment the following lines
+ #else:
+ # key = key.replace('\\', '\\\\').replace('"', '\\"')
+ # print >> out, '\t"%s" "%s"' % \
+ # (key.encode('utf-8'), key.encode('utf-8'))
print >> out, 'End'
out.close()