Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2015-06-13 12:42:54 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2015-06-13 12:42:54 +0300
commit02a496c61cc878e0b9fd6208c808a4537942a791 (patch)
tree2f61f535d3f7c213e1c936dd4614dbf65bfec180 /release/scripts
parent7bac8348bf7e70325aa902ca1c6b6cd776d74d71 (diff)
Translations utils: add needed bits to update git repo together with svn trunk.
Diffstat (limited to 'release/scripts')
-rw-r--r--release/scripts/modules/bl_i18n_utils/settings.py19
-rw-r--r--release/scripts/modules/bl_i18n_utils/utils.py16
-rwxr-xr-xrelease/scripts/modules/bl_i18n_utils/utils_languages_menu.py2
3 files changed, 23 insertions, 14 deletions
diff --git a/release/scripts/modules/bl_i18n_utils/settings.py b/release/scripts/modules/bl_i18n_utils/settings.py
index 30ee3cdc7d8..1c960a217de 100644
--- a/release/scripts/modules/bl_i18n_utils/settings.py
+++ b/release/scripts/modules/bl_i18n_utils/settings.py
@@ -416,6 +416,15 @@ REL_TRUNK_PO_DIR = os.path.join(REL_TRUNK_DIR, "po")
# The /trunk/mo path (relative to I18N_DIR).
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).
REL_POTFILES_SOURCE_DIR = os.path.join("source")
@@ -497,14 +506,6 @@ def _gen_get_set_path(ref, name):
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 allowing persistence of our settings!
@@ -556,6 +557,8 @@ class I18nSettings:
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_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")))
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")))
diff --git a/release/scripts/modules/bl_i18n_utils/utils.py b/release/scripts/modules/bl_i18n_utils/utils.py
index d472621029e..5fdb6b88cbf 100644
--- a/release/scripts/modules/bl_i18n_utils/utils.py
+++ b/release/scripts/modules/bl_i18n_utils/utils.py
@@ -981,13 +981,13 @@ class I18nMessages:
def write(self, kind, 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.
"""
default_context = self.settings.DEFAULT_CONTEXT
- def _write(self, f):
+ def _write(self, f, compact):
_msgctxt = self.settings.PO_MSGCTXT
_msgid = self.settings.PO_MSGID
_msgstr = self.settings.PO_MSGSTR
@@ -996,9 +996,12 @@ class I18nMessages:
self.escape()
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!
- if msg.is_fuzzy and msg.msgstr:
+ if msg.is_fuzzy and msg.msgstr_lines:
f.write("\n" + self.settings.PO_COMMENT_FUZZY)
_p = _comm if msg.is_commented else ""
chunks = []
@@ -1035,10 +1038,10 @@ class I18nMessages:
self.normalize(max_len=0) # No wrapping for now...
if isinstance(fname, str):
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:
- _write(self, fname)
+ _write(self, fname, compact)
def write_messages_to_mo(self, fname):
"""
@@ -1117,6 +1120,7 @@ class I18nMessages:
writers = {
"PO": write_messages_to_po,
+ "PO_COMPACT": lambda s, fn: s.write_messages_to_po(fn, True),
"MO": write_messages_to_mo,
}
diff --git a/release/scripts/modules/bl_i18n_utils/utils_languages_menu.py b/release/scripts/modules/bl_i18n_utils/utils_languages_menu.py
index 24255d9be61..4f499476ad9 100755
--- a/release/scripts/modules/bl_i18n_utils/utils_languages_menu.py
+++ b/release/scripts/modules/bl_i18n_utils/utils_languages_menu.py
@@ -95,3 +95,5 @@ def gen_menu_file(stats, settings):
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:
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))