This commit is contained in:
tg(x) 2016-02-22 23:15:24 +01:00
parent 4c005a1596
commit c4446d02d5
7 changed files with 68 additions and 15 deletions

View File

@ -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 .

16
extension/header.po Normal file
View File

@ -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"

View File

@ -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;
};

View File

@ -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",

View File

@ -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">

View File

@ -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>

View File

@ -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>