+ print "Terminating lyx instance: " + str(lyx_pid) + "\n"
+ intr_system("kill -9 " + str(lyx_pid), True);
+ while lyx_exists():
+ print "Waiting for lyx to die...\n"
+ time.sleep(0.5)
+ cmd = c[8:].rstrip()
+ print "Executing " + cmd
+ result = intr_system(cmd)
+ failed = failed or (result != 0)
+ print "result=" + str(result) + ", failed=" + str(failed)
+ elif c[0:4] == 'Lang':
+ lang = c[5:].rstrip()
+ print "Setting LANG=" + lang + "\n"
+ os.environ['LANG'] = lang
+ os.environ['LC_ALL'] = lang
+# If it doesn't exist, create a link <locale_dir>/<country-code>/LC_MESSAGES/lyx<version-suffix>.mo
+# pointing to the corresponding .gmo file. Needed to let lyx find the right translation files.
+# See http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg165613.html
+ idx = lang.rfind(".")
+ if idx != -1:
+ ccode = lang[0:idx]
+ else:
+ ccode = lang
+
+ print "Setting LANGUAGE=" + ccode + "\n"
+ os.environ['LANGUAGE'] = ccode
+
+ idx = lang.find("_")
+ if idx != -1:
+ short_code = lang[0:idx]
+ else:
+ short_code = ccode
+ lyx_dir = os.popen("dirname \"" + lyx_exe + "\"").read().rstrip()
+ if PACKAGE is None:
+ # on cmake-build there is no Makefile in this directory
+ # so PACKAGE has to be provided
+ if os.path.exists(lyx_dir + "/Makefile"):
+ print "Executing: grep 'PACKAGE =' " + lyx_dir + "/Makefile | sed -e 's/PACKAGE = \(.*\)/\\1/'"
+ lyx_name = os.popen("grep 'PACKAGE =' " + lyx_dir + "/Makefile | sed -e 's/PACKAGE = \(.*\)/\\1/'").read().rstrip()
+ else:
+ print 'Could not determine PACKAGE name needed for translations\n'
+ failed = True
+ else:
+ lyx_name = PACKAGE
+ intr_system("mkdir -p " + locale_dir + "/" + ccode + "/LC_MESSAGES")
+ intr_system("rm -f " + locale_dir + "/" + ccode + "/LC_MESSAGES/" + lyx_name + ".mo")
+ if PO_BUILD_DIR is None:
+ if lyx_dir[0:3] == "../":
+ rel_dir = "../../" + lyx_dir
+ else:
+ rel_dir = lyx_dir
+ intr_system("ln -s " + rel_dir + "/../po/" + short_code + ".gmo " + locale_dir + "/" + ccode + "/LC_MESSAGES/" + lyx_name + ".mo")
+ else:
+ intr_system("ln -s " + PO_BUILD_DIR + "/" + short_code + ".gmo " + locale_dir + "/" + ccode + "/LC_MESSAGES/" + lyx_name + ".mo")