forked from bartvdbraak/blender
Translations utils: add needed bits to update git repo together with svn trunk.
This commit is contained in:
parent
7bac8348bf
commit
02a496c61c
@ -416,6 +416,15 @@ REL_TRUNK_PO_DIR = os.path.join(REL_TRUNK_DIR, "po")
|
|||||||
# The /trunk/mo path (relative to I18N_DIR).
|
# The /trunk/mo path (relative to I18N_DIR).
|
||||||
REL_TRUNK_MO_DIR = os.path.join(REL_TRUNK_DIR, "locale")
|
REL_TRUNK_MO_DIR = os.path.join(REL_TRUNK_DIR, "locale")
|
||||||
|
|
||||||
|
|
||||||
|
# The path to the *git* translation repository (relative to SOURCE_DIR).
|
||||||
|
REL_GIT_I18N_DIR = os.path.join("release/datafiles/locale")
|
||||||
|
|
||||||
|
|
||||||
|
# The /po path of the *git* translation repository (relative to REL_GIT_I18N_DIR).
|
||||||
|
REL_GIT_I18N_PO_DIR = os.path.join("po")
|
||||||
|
|
||||||
|
|
||||||
# The Blender source path to check for i18n macros (relative to SOURCE_DIR).
|
# The Blender source path to check for i18n macros (relative to SOURCE_DIR).
|
||||||
REL_POTFILES_SOURCE_DIR = os.path.join("source")
|
REL_POTFILES_SOURCE_DIR = os.path.join("source")
|
||||||
|
|
||||||
@ -497,14 +506,6 @@ def _gen_get_set_path(ref, name):
|
|||||||
return _get, _set
|
return _get, _set
|
||||||
|
|
||||||
|
|
||||||
def _gen_get_set_paths(ref, name):
|
|
||||||
def _get(self):
|
|
||||||
return [_do_get(getattr(self, ref), p) for p in getattr(self, name)]
|
|
||||||
def _set(self, value):
|
|
||||||
setattr(self, name, [_do_set(getattr(self, ref), p) for p in value])
|
|
||||||
return _get, _set
|
|
||||||
|
|
||||||
|
|
||||||
class I18nSettings:
|
class I18nSettings:
|
||||||
"""
|
"""
|
||||||
Class allowing persistence of our settings!
|
Class allowing persistence of our settings!
|
||||||
@ -556,6 +557,8 @@ class I18nSettings:
|
|||||||
TRUNK_DIR = property(*(_gen_get_set_path("I18N_DIR", "REL_TRUNK_DIR")))
|
TRUNK_DIR = property(*(_gen_get_set_path("I18N_DIR", "REL_TRUNK_DIR")))
|
||||||
TRUNK_PO_DIR = property(*(_gen_get_set_path("I18N_DIR", "REL_TRUNK_PO_DIR")))
|
TRUNK_PO_DIR = property(*(_gen_get_set_path("I18N_DIR", "REL_TRUNK_PO_DIR")))
|
||||||
TRUNK_MO_DIR = property(*(_gen_get_set_path("I18N_DIR", "REL_TRUNK_MO_DIR")))
|
TRUNK_MO_DIR = property(*(_gen_get_set_path("I18N_DIR", "REL_TRUNK_MO_DIR")))
|
||||||
|
GIT_I18N_ROOT = property(*(_gen_get_set_path("SOURCE_DIR", "REL_GIT_I18N_DIR")))
|
||||||
|
GIT_I18N_PO_DIR = property(*(_gen_get_set_path("GIT_I18N_ROOT", "REL_GIT_I18N_PO_DIR")))
|
||||||
POTFILES_SOURCE_DIR = property(*(_gen_get_set_path("SOURCE_DIR", "REL_POTFILES_SOURCE_DIR")))
|
POTFILES_SOURCE_DIR = property(*(_gen_get_set_path("SOURCE_DIR", "REL_POTFILES_SOURCE_DIR")))
|
||||||
FILE_NAME_POT = property(*(_gen_get_set_path("I18N_DIR", "REL_FILE_NAME_POT")))
|
FILE_NAME_POT = property(*(_gen_get_set_path("I18N_DIR", "REL_FILE_NAME_POT")))
|
||||||
MO_PATH_ROOT = property(*(_gen_get_set_path("I18N_DIR", "REL_MO_PATH_ROOT")))
|
MO_PATH_ROOT = property(*(_gen_get_set_path("I18N_DIR", "REL_MO_PATH_ROOT")))
|
||||||
|
@ -981,13 +981,13 @@ class I18nMessages:
|
|||||||
def write(self, kind, dest):
|
def write(self, kind, dest):
|
||||||
self.writers[kind](self, dest)
|
self.writers[kind](self, dest)
|
||||||
|
|
||||||
def write_messages_to_po(self, fname):
|
def write_messages_to_po(self, fname, compact=False):
|
||||||
"""
|
"""
|
||||||
Write messages in fname po file.
|
Write messages in fname po file.
|
||||||
"""
|
"""
|
||||||
default_context = self.settings.DEFAULT_CONTEXT
|
default_context = self.settings.DEFAULT_CONTEXT
|
||||||
|
|
||||||
def _write(self, f):
|
def _write(self, f, compact):
|
||||||
_msgctxt = self.settings.PO_MSGCTXT
|
_msgctxt = self.settings.PO_MSGCTXT
|
||||||
_msgid = self.settings.PO_MSGID
|
_msgid = self.settings.PO_MSGID
|
||||||
_msgstr = self.settings.PO_MSGSTR
|
_msgstr = self.settings.PO_MSGSTR
|
||||||
@ -996,9 +996,12 @@ class I18nMessages:
|
|||||||
self.escape()
|
self.escape()
|
||||||
|
|
||||||
for num, msg in enumerate(self.msgs.values()):
|
for num, msg in enumerate(self.msgs.values()):
|
||||||
f.write("\n".join(msg.comment_lines))
|
if compact and (msg.is_commented or msg.is_fuzzy or not msg.msgstr_lines):
|
||||||
|
continue
|
||||||
|
if not compact:
|
||||||
|
f.write("\n".join(msg.comment_lines))
|
||||||
# Only mark as fuzzy if msgstr is not empty!
|
# Only mark as fuzzy if msgstr is not empty!
|
||||||
if msg.is_fuzzy and msg.msgstr:
|
if msg.is_fuzzy and msg.msgstr_lines:
|
||||||
f.write("\n" + self.settings.PO_COMMENT_FUZZY)
|
f.write("\n" + self.settings.PO_COMMENT_FUZZY)
|
||||||
_p = _comm if msg.is_commented else ""
|
_p = _comm if msg.is_commented else ""
|
||||||
chunks = []
|
chunks = []
|
||||||
@ -1035,10 +1038,10 @@ class I18nMessages:
|
|||||||
self.normalize(max_len=0) # No wrapping for now...
|
self.normalize(max_len=0) # No wrapping for now...
|
||||||
if isinstance(fname, str):
|
if isinstance(fname, str):
|
||||||
with open(fname, 'w', encoding="utf-8") as f:
|
with open(fname, 'w', encoding="utf-8") as f:
|
||||||
_write(self, f)
|
_write(self, f, compact)
|
||||||
# Else assume fname is already a file(like) object!
|
# Else assume fname is already a file(like) object!
|
||||||
else:
|
else:
|
||||||
_write(self, fname)
|
_write(self, fname, compact)
|
||||||
|
|
||||||
def write_messages_to_mo(self, fname):
|
def write_messages_to_mo(self, fname):
|
||||||
"""
|
"""
|
||||||
@ -1117,6 +1120,7 @@ class I18nMessages:
|
|||||||
|
|
||||||
writers = {
|
writers = {
|
||||||
"PO": write_messages_to_po,
|
"PO": write_messages_to_po,
|
||||||
|
"PO_COMPACT": lambda s, fn: s.write_messages_to_po(fn, True),
|
||||||
"MO": write_messages_to_mo,
|
"MO": write_messages_to_mo,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,3 +95,5 @@ def gen_menu_file(stats, settings):
|
|||||||
data_lines.append("# {} #{}:{}:{}".format(FLAG_MESSAGES[flag], uid_num, label, uid))
|
data_lines.append("# {} #{}:{}:{}".format(FLAG_MESSAGES[flag], uid_num, label, uid))
|
||||||
with open(os.path.join(settings.TRUNK_MO_DIR, settings.LANGUAGES_FILE), 'w') as f:
|
with open(os.path.join(settings.TRUNK_MO_DIR, settings.LANGUAGES_FILE), 'w') as f:
|
||||||
f.write("\n".join(data_lines))
|
f.write("\n".join(data_lines))
|
||||||
|
with open(os.path.join(settings.GIT_I18N_ROOT, settings.LANGUAGES_FILE), 'w') as f:
|
||||||
|
f.write("\n".join(data_lines))
|
||||||
|
Loading…
Reference in New Issue
Block a user