summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsolenv/bin/interim-update-module-for-gettext81
-rwxr-xr-x[-rw-r--r--]solenv/bin/update-for-gettext0
-rw-r--r--solenv/gbuild/AllLangMoTarget.mk12
3 files changed, 87 insertions, 6 deletions
diff --git a/solenv/bin/interim-update-module-for-gettext b/solenv/bin/interim-update-module-for-gettext
new file mode 100755
index 000000000000..0fe222504273
--- /dev/null
+++ b/solenv/bin/interim-update-module-for-gettext
@@ -0,0 +1,81 @@
+#!/usr/bin/python
+
+import binascii
+import polib
+from os import listdir, walk, remove
+from os.path import isdir, join
+
+import sys
+
+if len(sys.argv) < 2:
+ print(" Syntax: interim-update-module-for-gettext path/to/dir/of/languages/language/module output.po")
+ sys.exit(2)
+
+uiline = False
+
+subpath = sys.argv[1]
+print >> sys.stderr, "interim-update-for-gettext: processing ", subpath
+messages = None
+npos = 0
+for dirpath, dirname, filenames in walk(subpath):
+ for filename in filenames:
+ ipath = join(dirpath, filename)
+ print >> sys.stderr, "interim-update-for-gettext: merging ", ipath
+ po = polib.pofile(ipath)
+ if len(po) != 0:
+ samplefile = po[0].occurrences[0][0]
+ if samplefile.endswith(".src") or samplefile.endswith(".ui"):
+ if npos == 0:
+ messages = po
+ else:
+ for entry in po:
+ messages.append(entry)
+ npos = npos + 1
+
+if npos > 0:
+ middle = 0
+ for entry in messages:
+ if not len(entry.occurrences):
+ continue
+ location = entry.occurrences[0][0]
+ if location.endswith(".ui"):
+ uiline = True
+ else:
+ uiline = False
+ lines = entry.msgctxt.split('\n')
+ if uiline:
+ widgetid = lines[1]
+ typeid = lines[2]
+ entry.msgctxt = location[:-3] + "|" + widgetid
+ if typeid == "tooltip_text":
+ entry.msgctxt = entry.msgctxt + "|" + typeid
+ if entry.msgctxt == 'calloutpage|position' and entry.msgid == 'Middle':
+ middle = middle + 1
+ if middle == 2:
+ entry.msgid = "Center"
+ else:
+ ctxline = lines[1]
+ if (ctxline.endswith("+RID_SC_FUNC_DESCRIPTIONS_START")):
+ ctxline = ctxline[:-len("+RID_SC_FUNC_DESCRIPTIONS_START")]
+ elif (ctxline.endswith("+RID_GLOBSTR_OFFSET")):
+ ctxline = ctxline[:-len("+RID_GLOBSTR_OFFSET")]
+ entry.msgctxt = ctxline
+ comments = entry.comment.split('\n')
+ keyid = entry.msgctxt + '|' + entry.msgid
+ comments[-1] = polib.genKeyId(keyid.encode('utf-8'))
+ entry.comment = "\n".join(comments)
+else:
+ messages = polib.POFile()
+ messages.metadata = {
+ 'Project-Id-Version': '1.0',
+ 'Report-Msgid-Bugs-To': 'you@example.com',
+ 'POT-Creation-Date': '2007-10-18 14:00+0100',
+ 'PO-Revision-Date': '2007-10-18 14:00+0100',
+ 'Last-Translator': 'you <you@example.com>',
+ 'Language-Team': 'English <yourteam@example.com>',
+ 'MIME-Version': '1.0',
+ 'Content-Type': 'text/plain; charset=utf-8',
+ 'Content-Transfer-Encoding': '8bit',
+ }
+
+messages.save(sys.argv[2])
diff --git a/solenv/bin/update-for-gettext b/solenv/bin/update-for-gettext
index 1234b248490f..1234b248490f 100644..100755
--- a/solenv/bin/update-for-gettext
+++ b/solenv/bin/update-for-gettext
diff --git a/solenv/gbuild/AllLangMoTarget.mk b/solenv/gbuild/AllLangMoTarget.mk
index c5cf2cf1005d..d3953b1163ae 100644
--- a/solenv/gbuild/AllLangMoTarget.mk
+++ b/solenv/gbuild/AllLangMoTarget.mk
@@ -32,15 +32,15 @@ $(call gb_MoTarget_get_clean_target,%) :
$(call gb_MoTarget_get_target,$*) \
$(call gb_MoTarget_get_install_target,$*))
-#for the moment merge existing source and ui translations into a single .po,
-#and minimize msgctxt
-#eventually instead can do something like
-#msgfmt $(gb_POLOCATION)/$(LANGUAGE)/$(LIBRARY)/messages.po -o $@)
$(call gb_MoTarget_get_target,%) : $(gb_Helper_MISCDUMMY)
$(call gb_Output_announce,$*,$(true),MO,2)
+# after translate should look like this
+# $(call gb_Helper_abbreviate_dirs,\
+# mkdir -p $(dir $@) && \
+# $(MSGUNIQ) $(gb_POLOCATION)/$(LANGUAGE)/$(POLOCATION)/messages.po | $(MSGFMT) - -o $@)
$(call gb_Helper_abbreviate_dirs,\
- mkdir -p $(dir $@) && \
- if test -e $(gb_POLOCATION)/$(LANGUAGE)/$(POLOCATION)/messages.po; then $(MSGUNIQ) $(gb_POLOCATION)/$(LANGUAGE)/$(POLOCATION)/messages.po | $(MSGFMT) - -o $@; else touch $@; fi)
+ mkdir -p $(dir $@) && $(SRCDIR)/solenv/bin/interim-update-module-for-gettext $(gb_POLOCATION)/$(LANGUAGE)/$(POLOCATION) $@.po && \
+ $(MSGUNIQ) --force-po $@.po | $(MSGFMT) - -o $@)
#$(info $(call gb_MoTarget_get_target,$(1)))
define gb_MoTarget_MoTarget