aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDeathamns <deathamns@gmail.com>2014-12-02 08:13:33 +0100
committerDeathamns <deathamns@gmail.com>2014-12-08 08:15:08 +0100
commit25cf80838b44da9b788f72099c876a8d09adb8d4 (patch)
treea1af95d9a55a769af567fc5c36f3b0d98bc8e589
parent00c662d3dddd880e3c568cd0a1b81338e0693596 (diff)
downloaduBlock-25cf80838b44da9b788f72099c876a8d09adb8d4.zip
uBlock-25cf80838b44da9b788f72099c876a8d09adb8d4.tar.gz
uBlock-25cf80838b44da9b788f72099c876a8d09adb8d4.tar.bz2
Safari: small locale improvements
Since there is no API for localization in Safari, we read the locale files every time when an extension page opens. This commit adds a new file "make-locale-safari.py", which will make the size of the locale files smaller.
-rw-r--r--platform/safari/Info.plist2
-rw-r--r--platform/safari/update_safariextz.plist2
-rw-r--r--platform/safari/vapi-common.js12
-rw-r--r--tools/make-locale-safari.py39
-rw-r--r--tools/make-safari.sh4
5 files changed, 49 insertions, 10 deletions
diff --git a/platform/safari/Info.plist b/platform/safari/Info.plist
index dab006b..c5291ca 100644
--- a/platform/safari/Info.plist
+++ b/platform/safari/Info.plist
@@ -13,7 +13,7 @@
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleShortVersionString</key>
- <string>0.7.2.0</string>
+ <string>0.8.1.2</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>Chrome</key>
diff --git a/platform/safari/update_safariextz.plist b/platform/safari/update_safariextz.plist
index f82911e..c171e86 100644
--- a/platform/safari/update_safariextz.plist
+++ b/platform/safari/update_safariextz.plist
@@ -10,7 +10,7 @@
<key>Developer Identifier</key>
<string></string>
<key>CFBundleShortVersionString</key>
- <string>0.7.0.11</string>
+ <string>0.8.1.2</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>URL</key>
diff --git a/platform/safari/vapi-common.js b/platform/safari/vapi-common.js
index f7f1a64..505815b 100644
--- a/platform/safari/vapi-common.js
+++ b/platform/safari/vapi-common.js
@@ -77,9 +77,9 @@ vAPI.getURL = function(path) {
// supported languages
// first language is the default
vAPI.i18nData = [
- "en", "ar", "cs", "da", "de", "el", "es", "et", "fi", "fr", "he", "hi",
- "hr", "hu", "id", "it", "ja", "mr", "nb", "nl", "pl", "pt_BR", "pt_PT",
- "ro", "ru", "sv", "tr", "uk", "vi", "zh_CN"
+ 'en', 'ar', 'cs', 'da', 'de', 'el', 'es', 'et', 'fi', 'fil', 'fr', 'he',
+ 'hi', 'hr', 'hu', 'id', 'it', 'ja', 'mr', 'nb', 'nl', 'pl', 'pt_BR',
+ 'pt_PT', 'ro', 'ru', 'sv', 'tr', 'uk', 'vi', 'zh_CN'
];
vAPI.i18n = navigator.language.replace('-', '_');
@@ -96,14 +96,10 @@ setScriptDirection(vAPI.i18n);
var xhr = new XMLHttpRequest;
xhr.overrideMimeType('application/json;charset=utf-8');
-xhr.open('GET', './_locales/' + vAPI.i18n + '/messages.json', false);
+xhr.open('GET', './_locales/' + vAPI.i18n + '.json', false);
xhr.send();
vAPI.i18nData = JSON.parse(xhr.responseText);
-for (var i18nKey in vAPI.i18nData) {
- vAPI.i18nData[i18nKey] = vAPI.i18nData[i18nKey].message;
-}
-
vAPI.i18n = function(s) {
return this.i18nData[s] || s;
};
diff --git a/tools/make-locale-safari.py b/tools/make-locale-safari.py
new file mode 100644
index 0000000..62c8198
--- /dev/null
+++ b/tools/make-locale-safari.py
@@ -0,0 +1,39 @@
+#!/usr/bin/env python3
+
+import os
+import json
+import sys
+from shutil import rmtree
+from collections import OrderedDict
+
+if not sys.argv[1]:
+ raise SystemExit('Build dir missing.')
+
+
+def mkdirs(path):
+ try:
+ os.makedirs(path)
+ finally:
+ return os.path.exists(path)
+
+
+build_dir = os.path.abspath(sys.argv[1])
+locale_dir = os.path.join(build_dir, '_locales')
+
+for alpha2 in os.listdir(locale_dir):
+ locale_path = os.path.join(locale_dir, alpha2, 'messages.json')
+ with open(locale_path, encoding='utf-8') as f:
+ string_data = json.load(f, object_pairs_hook=OrderedDict)
+
+ for string_name in string_data:
+ string_data[string_name] = string_data[string_name]['message']
+
+ rmtree(os.path.join(locale_dir, alpha2))
+
+ alpha2 = alpha2.replace('_', '-')
+ locale_path = os.path.join(locale_dir, alpha2 + '.json')
+
+ mkdirs(os.path.join(locale_dir))
+
+ with open(locale_path, 'wt', encoding='utf-8', newline='\n') as f:
+ json.dump(string_data, f, ensure_ascii=False)
diff --git a/tools/make-safari.sh b/tools/make-safari.sh
index 89f8994..1b9840a 100644
--- a/tools/make-safari.sh
+++ b/tools/make-safari.sh
@@ -18,4 +18,8 @@ cp src/img/icon_128.png $DES/Icon.png
cp platform/safari/*.js $DES/js/
cp platform/safari/Info.plist $DES/
cp platform/safari/Settings.plist $DES/
+
+echo "*** uBlock_xpi: Generating locales"
+python tools/make-locale-safari.py $DES/
+
echo "*** uBlock.safariextension: Package done."