diff options
-rw-r--r-- | extension/Makefile | 37 | ||||
-rw-r--r-- | extension/header.po | 16 | ||||
-rw-r--r-- | extension/lib/i18n.ts | 17 | ||||
-rw-r--r-- | extension/package.json | 1 | ||||
-rw-r--r-- | extension/pages/confirm-contract.html | 4 | ||||
-rw-r--r-- | extension/pages/confirm-create-reserve.html | 4 | ||||
-rw-r--r-- | extension/popup/popup.html | 4 |
7 files changed, 68 insertions, 15 deletions
diff --git a/extension/Makefile b/extension/Makefile index 4055cb00e..c83cc3896 100644 --- a/extension/Makefile +++ b/extension/Makefile @@ -1,10 +1,12 @@ -src = lib background content_scripts pages +src = lib background content_scripts pages popup +ts = $(shell git ls-files $(src) | grep '\.tsx\?$$') +langs = en-US de-DE gulp = node_modules/gulp/bin/gulp.js tsc = node_modules/typescript/bin/tsc po2json = node_modules/po2json/bin/po2json -.PHONY: taler.po lib/i18n.json +.PHONY: pogen lib/i18n-strings.js package-stable: tsc i18n $(gulp) package-stable @@ -18,15 +20,32 @@ tsc: tsconfig.json node_modules tsconfig.json: gulpfile.js node_modules $(gulp) tsconfig -i18n: lib/i18n.json +lib/vendor/jed.js: node_modules + test -e lib/vendor/jed.js || ln -s ../../node_modules/jed/jed.js lib/vendor/ -taler.po: node_modules - for f in `find $(src) -name '*.ts' -or -name '*.tsx'`; do echo $$f; pogen/pogen.js $$f > `dirname $$f`/`basename $$f .ts`.po; done - touch $@ - msgcat `find $(src) -name '*.po'` | msgmerge -o $@ $@ - +i18n: lib/i18n-strings.js lib/vendor/jed.js -lib/i18n.json: taler.po node_modules - $(po2json) $< $@ +pogen: $(ts) node_modules + for ts in $(ts); do \ + echo $$ts; \ + pogen/pogen.js $$ts > `dirname $$ts`/`basename $$ts .ts`.po; \ + done + + for lang in $(langs); do \ + echo $$lang; \ + test -e taler-$$lang.po || cp header.po taler-$$lang.po; \ + msgcat `find $(src) -name '*.po'` | msgmerge -o taler-$$lang.po taler-$$lang.po -; \ + done + +lib/i18n-strings.js: $(ts) pogen node_modules + for lang in $(langs); do \ + $(po2json) -f jed1.x -d $$lang taler-$$lang.po taler-$$lang.json; \ + done + + truncate -s0 $@ + for lang in $(langs); do \ + (echo -n "i18n.strings['$$lang'] = "; cat taler-$$lang.json; echo ';') >> $@; \ + done node_modules: npm install . diff --git a/extension/header.po b/extension/header.po new file mode 100644 index 000000000..6e5a529b5 --- /dev/null +++ b/extension/header.po @@ -0,0 +1,16 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Taler Wallet\n" +"Report-Msgid-Bugs-To: taler@gnu.org\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" diff --git a/extension/lib/i18n.ts b/extension/lib/i18n.ts index 6ed8942b3..c23ab0740 100644 --- a/extension/lib/i18n.ts +++ b/extension/lib/i18n.ts @@ -17,10 +17,22 @@ declare var i18n: any; var i18n = <any>function i18n(strings, ...values) { - // TODO: actually look up translation - return String.raw(strings, ...values); + i18n['init'](); + //console.log('i18n:', ...strings, ...values) + return i18n['jed'].translate(strings[0]).fetch(...values); + //return String.raw(strings, ...values); }; +i18n.lang = chrome.i18n.getUILanguage(); +i18n.jed = null; +i18n.strings = {}; + +i18n.init = function() { + if (null == i18n.jed) { + i18n.jed = new window['Jed'] (i18n.strings[i18n.lang]); + } +} + // Interpolate i8nized values with arbitrary objects and // return array of strings/objects. i18n.parts = function(strings, ...values) { @@ -35,4 +47,3 @@ i18n.parts = function(strings, ...values) { return parts; }; - diff --git a/extension/package.json b/extension/package.json index 4523b91b0..a1934b7c8 100644 --- a/extension/package.json +++ b/extension/package.json @@ -20,6 +20,7 @@ "gulp-json-transform": "^0.3.0", "gulp-typescript": "^2.10.0", "gulp-zip": "^3.1.0", + "jed": "^1.1.0", "map-stream": "0.0.6", "mocha": "^2.3.4", "po2json": "^0.4.1", diff --git a/extension/pages/confirm-contract.html b/extension/pages/confirm-contract.html index ca524a61a..2eac4a8e8 100644 --- a/extension/pages/confirm-contract.html +++ b/extension/pages/confirm-contract.html @@ -5,9 +5,11 @@ <title>Taler Wallet: Confirm Reserve Creation</title> <script src="../lib/vendor/URI.js"></script> <script src="../lib/vendor/mithril.js"></script> - <script src="../lib/i18n.js"></script> <script src="../lib/vendor/lodash.core.min.js"></script> <script src="../lib/vendor/system-csp-production.src.js"></script> + <script src="../lib/vendor/jed.js"></script> + <script src="../lib/i18n.js"></script> + <script src="../lib/i18n-strings.js"></script> <script src="../lib/module-trampoline.js"></script> <link rel="stylesheet" type="text/css" href="../style/wallet.css"> diff --git a/extension/pages/confirm-create-reserve.html b/extension/pages/confirm-create-reserve.html index 7bf2b0498..e14d10221 100644 --- a/extension/pages/confirm-create-reserve.html +++ b/extension/pages/confirm-create-reserve.html @@ -4,9 +4,11 @@ <head> <title>Taler Wallet: Select Taler Provider</title> <script src="../lib/vendor/URI.js"></script> - <script src="../lib/i18n.js"></script> <script src="../lib/vendor/mithril.js"></script> <script src="../lib/vendor/system-csp-production.src.js"></script> + <script src="../lib/vendor/jed.js"></script> + <script src="../lib/i18n.js"></script> + <script src="../lib/i18n-strings.js"></script> <script src="../lib/module-trampoline.js"></script> <link rel="stylesheet" type="text/css" href="../style/wallet.css"> </head> diff --git a/extension/popup/popup.html b/extension/popup/popup.html index 0a5662d69..c67085c1b 100644 --- a/extension/popup/popup.html +++ b/extension/popup/popup.html @@ -4,9 +4,11 @@ <meta charset="utf-8"> <link rel="stylesheet" href="popup.css" type="text/css"> <script src="../lib/vendor/mithril.js"></script> - <script src="../lib/i18n.js"></script> <script src="../lib/vendor/lodash.core.min.js"></script> <script src="../lib/vendor/system-csp-production.src.js"></script> + <script src="../lib/vendor/jed.js"></script> + <script src="../lib/i18n.js"></script> + <script src="../lib/i18n-strings.js"></script> <script src="../lib/module-trampoline.js"></script> </head> <body> |