aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2012-01-27 21:30:19 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2012-01-27 21:30:19 +0000
commita205d6e9bd1ec5237f9c08c77bcba0c32e8865e8 (patch)
tree9e8a824a225c84c6c32c029acf23ee4f28191935
parentfa0d50e99a8ba62e2ce5680fa147d4e77d45e37c (diff)
embed the included languages into the Info.plist to enable per-app language selection
svn path=/trunk/; revision=15894
-rw-r--r--packages/darwin_app/Info.plist.in4
-rw-r--r--packages/darwin_app/Makefile4
-rwxr-xr-xpackages/darwin_app/embed-languages-in-info-list.py15
3 files changed, 22 insertions, 1 deletions
diff --git a/packages/darwin_app/Info.plist.in b/packages/darwin_app/Info.plist.in
index 7f38d7fa..79c9cc75 100644
--- a/packages/darwin_app/Info.plist.in
+++ b/packages/darwin_app/Info.plist.in
@@ -25,6 +25,10 @@
</array>
<key>CFBundleExecutable</key>
<string>PD_APP_NAME</string>
+ <key>CFBundleLocalizations</key>
+ <array>
+ CFBUNDLELOCALIZATIONS
+ </array>
<key>CFBundleIconFile</key>
<string>pd.icns</string>
<key>CFBundleIdentifier</key>
diff --git a/packages/darwin_app/Makefile b/packages/darwin_app/Makefile
index a05b7e99..92609bb3 100644
--- a/packages/darwin_app/Makefile
+++ b/packages/darwin_app/Makefile
@@ -130,11 +130,13 @@ endif # NOT /System
#------------------------------------------------------------------------------#
# generate Info.plist using PD_APP_NAME and PD_VERSION
Info.plist: CFBUNDLEVERSION_DATE := $(shell date +%Y.%m.%d)
+Info.plist: CFBUNDLELOCALIZATIONS := $(shell $(packages_src)/darwin_app/embed-languages-in-info-list.py $(pd_src)/po/Makefile.am)
Info.plist: Info.plist.in
cat Info.plist.in | \
sed 's/PD_APP_NAME/$(PD_APP_NAME)/' | \
sed 's/CFBUNDLESHORTVERSIONSTRING/$(PD_MAJOR_VERSION).$(PD_MINOR_VERSION).$(PD_BUGFIX_VERSION)/' | \
- sed 's/CFBUNDLEVERSION/$(CFBUNDLEVERSION_DATE)/' > \
+ sed 's/CFBUNDLEVERSION/$(CFBUNDLEVERSION_DATE)/' | \
+ sed 's|CFBUNDLELOCALIZATIONS|$(CFBUNDLELOCALIZATIONS)|' > \
Info.plist
spotlight_importer_install:
diff --git a/packages/darwin_app/embed-languages-in-info-list.py b/packages/darwin_app/embed-languages-in-info-list.py
new file mode 100755
index 00000000..c2dd28db
--- /dev/null
+++ b/packages/darwin_app/embed-languages-in-info-list.py
@@ -0,0 +1,15 @@
+#!/usr/bin/python
+
+import sys
+import re
+
+f = open(sys.argv[1], 'r')
+for line in f.readlines():
+ if re.match('^ALL_LINGUAS = (.*)', line):
+ for po in line.split('=')[1].strip().rstrip().split(' '):
+ s = po.split('_')
+ if len(s) == 2:
+ iso = s[0] + '_' + s[1].upper()
+ else:
+ iso = po
+ print '<string>' + iso + '</string>\\n\\t',