clean up i18n

This commit is contained in:
Florian Dold 2016-03-18 17:35:52 +01:00
parent 863938dadb
commit 87e98b0aae
13 changed files with 252 additions and 169 deletions

1
.gitignore vendored
View File

@ -5,7 +5,6 @@ lib/wallet/*.js
pages/*.js pages/*.js
lib/*.js lib/*.js
!lib/module-trampoline.js !lib/module-trampoline.js
!lib/i18n-strings.js
popup/*.js popup/*.js
test/tests/*.js test/tests/*.js
build/ build/

View File

@ -1,13 +1,13 @@
SHELL = /bin/bash
src = lib background content_scripts pages popup src = lib background content_scripts pages popup
ts = $(shell git ls-files $(src) | grep '\.tsx\?$$') ts = $(shell git ls-files $(src) | grep '\.tsx\?$$')
langs = en-US de-DE fr-FR it-IT poname = taler-wallet-webex
poname = taler-wallet
gulp = node_modules/gulp/bin/gulp.js gulp = node_modules/gulp/bin/gulp.js
tsc = node_modules/typescript/bin/tsc tsc = node_modules/typescript/bin/tsc
po2json = node_modules/po2json/bin/po2json po2json = node_modules/po2json/bin/po2json
.PHONY: node_modules pogen lib/i18n-strings.js .PHONY: node_modules pogen i18n/strings.js
package-stable: node_modules package-stable: node_modules
$(gulp) package-stable $(gulp) package-stable
@ -21,27 +21,23 @@ tsc: tsconfig.json node_modules
tsconfig.json: gulpfile.js node_modules tsconfig.json: gulpfile.js node_modules
$(gulp) tsconfig $(gulp) tsconfig
i18n: pogen lib/i18n-strings.js i18n: pogen i18n/strings.js
pogen/pogen.js: pogen/pogen.ts pogen/tsconfig.json node_modules pogen/pogen.js: pogen/pogen.ts pogen/tsconfig.json node_modules
cd pogen; ../$(tsc) cd pogen; ../$(tsc)
pogen: $(ts) pogen/pogen.js node_modules pogen: $(ts) pogen/pogen.js node_modules
for ts in $(ts); do \ find $(src) \( -name '*.ts' -or -name '*.tsx' \) ! -name '*.d.ts' \
echo $$ts; \ | xargs node pogen/pogen.js \
node pogen/pogen.js $$ts > `dirname $$ts`/`basename $$ts .ts`.po; \ | msguniq \
done | msgmerge i18n/poheader - \
> i18n/$(poname).pot
pos=`find $(src) -name '*.po'`; \ msgmerge:
for lang in $(langs); do \ @for pofile in i18n/*.po; do \
echo $$lang; \ echo merging $$pofile; \
test -e $(poname)-$$lang.po || cp header.po $(poname)-$$lang.po; \ msgmerge -o $$pofile $$pofile i18n/$(poname).pot; \
for po in $$pos; do \
msguniq -o $$po $$po; \
done; \
msgcat $$pos | msgmerge -o $(poname)-$$lang.po $(poname)-$$lang.po -; \
done; \ done; \
rm $$pos
dist: node_modules dist: node_modules
$(gulp) srcdist $(gulp) srcdist
@ -49,13 +45,14 @@ dist: node_modules
appdist: appdist:
$(gulp) appdist $(gulp) appdist
lib/i18n-strings.js: $(ts) node_modules i18n/strings.js: # $(ts) node_modules
truncate -s0 $@ for pofile in i18n/*.po; do \
for lang in $(langs); do \ b=`basename $$pofile`; \
$(po2json) -F -f jed1.x -d $$lang $(poname)-$$lang.po $(poname)-$$lang.json; \ lang=$${b%%.po}; \
(echo -n "i18n.strings['$$lang'] = "; cat $(poname)-$$lang.json; echo ';') >> $@; \ $(po2json) -F -f jed1.x -d $$lang $$pofile $$pofile.json; \
rm $(poname)-$$lang.json; \ (echo -n "i18n.strings['$$lang'] = "; cat $$pofile.json; echo ';') >> $@; \
done done
node_modules: node_modules:
npm install . npm install .

View File

@ -60,11 +60,12 @@ const paths = {
], ],
}, },
dist: [ dist: [
"*.po", "i18n/*.po",
"i18n/*.pot",
"img/*", "img/*",
"style/*.css", "style/*.css",
"lib/vendor/*", "lib/vendor/*",
"lib/i18n-strings.js", "i18n/strings.js",
"lib/emscripten/libwrapper.js", "lib/emscripten/libwrapper.js",
"lib/module-trampoline.js", "lib/module-trampoline.js",
"popup/**/*.{html,css}", "popup/**/*.{html,css}",
@ -85,7 +86,8 @@ const paths = {
], ],
/* French copyright application */ /* French copyright application */
appdist: [ appdist: [
"*.po", "i18n/*.po",
"i18n/*.pot",
"style/*.css", "style/*.css",
"img/**", "img/**",
"lib/**/*.{ts,tsx}", "lib/**/*.{ts,tsx}",

View File

@ -17,7 +17,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Taler Wallet\n" "Project-Id-Version: Taler Wallet\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-02-24 23:45+0100\n" "POT-Creation-Date: 2016-03-18 16:54+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -27,12 +27,42 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/i18n.ts:39 popup/popup.tsx:117 #: lib/i18n.ts:64 popup/popup.tsx:136
#, c-format #, c-format
msgid "free KUDOS" msgid "free KUDOS"
msgstr "" msgstr ""
#: pages/confirm-contract.tsx:41 #: lib/i18n.ts:66 lib/i18n.ts:67
#, c-format
msgid "DEBUG: Your balance on %1$s is %2$s KUDO. Get more at %3$s"
msgstr ""
#: lib/i18n.ts:68
#, c-format
msgid "DEBUG: Your balance is %1$s KUDO."
msgstr ""
#: lib/i18n.ts:70
#, c-format
msgid "DEBUG: #%1$s: Your balance is %2$s KUDO."
msgstr ""
#: pages/confirm-create-reserve.tsx:92
#, c-format
msgid "Please enter a URL"
msgstr "Bitte eine URL eingeben"
#: pages/confirm-create-reserve.tsx:98
#, c-format
msgid "The URL you've entered is not valid (must be absolute)"
msgstr "Die eingegebene URL ist nicht gültig (muss absolut sein)"
#: pages/confirm-create-reserve.tsx:185
#, c-format
msgid "The bank wants to create a reserve over %1$s."
msgstr "Die Bank möchte eine Reserve über %1$s anlegen."
#: pages/confirm-contract.tsx:79
#, c-format #, c-format
msgid "" msgid ""
"%1$s\n" "%1$s\n"
@ -43,82 +73,77 @@ msgstr ""
" möchte einen Vertrag über %2$s\n" " möchte einen Vertrag über %2$s\n"
" mit Ihnen abschließen." " mit Ihnen abschließen."
#: pages/confirm-contract.tsx:46 #: pages/confirm-contract.tsx:84
#, c-format #, c-format
msgid "You are about to purchase:" msgid "You are about to purchase:"
msgstr "Sie sind dabei, Folgendes zu kaufen:" msgstr "Sie sind dabei, Folgendes zu kaufen:"
#: pages/confirm-contract.tsx:52 #: pages/confirm-contract.tsx:90
#, c-format #, c-format
msgid "Confirm Payment" msgid "Confirm Payment"
msgstr "Bezahlung bestätigen" msgstr "Bezahlung bestätigen"
#: pages/confirm-create-reserve.tsx:84 #: popup/popup.tsx:70
#, c-format
msgid "Please enter a URL"
msgstr "Bitte eine URL eingeben"
#: pages/confirm-create-reserve.tsx:90
#, c-format
msgid "The URL you've entered is not valid (must be absolute)"
msgstr "Die eingegebene URL ist nicht gültig (muss absolut sein)"
#: pages/confirm-create-reserve.tsx:177
#, c-format
msgid "The bank wants to create a reserve over %1$s."
msgstr "Die Bank möchte eine Reserve über %1$s anlegen."
#: popup/popup.tsx:62
#, c-format #, c-format
msgid "Balance" msgid "Balance"
msgstr "Saldo" msgstr "Saldo"
#: popup/popup.tsx:63 #: popup/popup.tsx:71
#, c-format #, c-format
msgid "History" msgid "History"
msgstr "Verlauf" msgstr "Verlauf"
#: popup/popup.tsx:64 #: popup/popup.tsx:72
#, c-format #, c-format
msgid "Debug" msgid "Debug"
msgstr "Debug" msgstr "Debug"
#: popup/popup.tsx:120 #: popup/popup.tsx:126
#, c-format
msgid "Error: could not retrieve balance information."
msgstr ""
#: popup/popup.tsx:139
#, c-format #, c-format
msgid "You have no balance to show. Want to get some %1$s?" msgid "You have no balance to show. Want to get some %1$s?"
msgstr "Sie haben kein Digitalgeld. Wollen Sie %1$s? abheben?" msgstr "Sie haben kein Digitalgeld. Wollen Sie %1$s? abheben?"
#: popup/popup.tsx:158 #: popup/popup.tsx:177
#, c-format #, c-format
msgid "Created reserve (%1$s) of %2$s at %3$s" msgid "Created reserve (%1$s) of %2$s at %3$s"
msgstr "Reserve (%1$s) mit %2$s bei %3$s erzeugt" msgstr "Reserve (%1$s) mit %2$s bei %3$s erzeugt"
#: popup/popup.tsx:163 #: popup/popup.tsx:182
#, c-format #, c-format
msgid "Bank confirmed reserve (%1$s) at %2$s" msgid "Bank confirmed reserve (%1$s) at %2$s"
msgstr "Bank bestätig anlegen der Reserve (%1$s) bei %2$s" msgstr "Bank bestätig anlegen der Reserve (%1$s) bei %2$s"
#: popup/popup.tsx:167 #: popup/popup.tsx:186
#, c-format #, c-format
msgid "Withdraw at %1$s" msgid "Withdraw at %1$s"
msgstr "Abheben bei %1$s" msgstr "Abheben bei %1$s"
#: popup/popup.tsx:170 #: popup/popup.tsx:189
#, c-format #, c-format
msgid "Wallet depleted reserve (%1$s) at %2$s" msgid "Wallet depleted reserve (%1$s) at %2$s"
msgstr "Geldbörse hat die Reserve (%1$s) erschöpft" msgstr "Geldbörse hat die Reserve (%1$s) erschöpft"
#: popup/popup.tsx:176 #: popup/popup.tsx:195
#, c-format #, c-format
msgid "Payment for %1$s to merchant %2$s. " msgid "Payment for %1$s to merchant %2$s. "
msgstr "" msgstr ""
#: popup/popup.tsx:183 #: popup/popup.tsx:202
#, c-format #, c-format
msgid "Unknown event (%1$s)" msgid "Unknown event (%1$s)"
msgstr "" msgstr ""
#: popup/popup.tsx:220 #: popup/popup.tsx:241
#, c-format
msgid "Error: could not retrieve event history"
msgstr ""
#: popup/popup.tsx:250
#, c-format #, c-format
msgid "Your wallet has no events recorded." msgid "Your wallet has no events recorded."
msgstr "Ihre Geldbörse verzeichnet keine Vorkommnisse." msgstr "Ihre Geldbörse verzeichnet keine Vorkommnisse."

View File

@ -17,7 +17,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Taler Wallet\n" "Project-Id-Version: Taler Wallet\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-02-24 23:45+0100\n" "POT-Creation-Date: 2016-03-18 16:54+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -27,31 +27,42 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/i18n.ts:39 popup/popup.tsx:117 #: lib/i18n.ts:64 popup/popup.tsx:136
#, c-format #, c-format
msgid "free KUDOS" msgid "free KUDOS"
msgstr "" msgstr ""
#: lib/i18n.ts:41 lib/i18n.ts:42 #: lib/i18n.ts:66 lib/i18n.ts:67
#, fuzzy, c-format #, fuzzy, c-format
msgid "DEBUG: Your balance on %1$s is %2$s KUDO. Get more at %3$s" msgid "DEBUG: Your balance on %1$s is %2$s KUDO. Get more at %3$s"
msgstr "DEBUG: Your balance is %2$s KUDO on %1$s. Get more at %3$s" msgstr "DEBUG: Your balance is %2$s KUDO on %1$s. Get more at %3$s"
#: lib/i18n.ts:43 #: lib/i18n.ts:68
#, fuzzy, c-format #, c-format
msgid "DEBUG: Your balance is %1$s KUDO." msgid "DEBUG: Your balance is %1$s KUDO."
msgid_plural "DEBUG: Your balance is %1$s KUDOs." msgstr ""
msgstr[0] ""
msgstr[1] ""
#: lib/i18n.ts:45 #: lib/i18n.ts:70
#, fuzzy, c-format #, c-format
msgid "DEBUG: #%1$s: Your balance is %2$s KUDO." msgid "DEBUG: #%1$s: Your balance is %2$s KUDO."
msgid_plural "DEBUG: #%1$s: Your balance is %2$s KUDOs." msgstr ""
msgstr[0] ""
msgstr[1] ""
#: pages/confirm-contract.tsx:41 #: pages/confirm-create-reserve.tsx:92
#, c-format
msgid "Please enter a URL"
msgstr ""
#: pages/confirm-create-reserve.tsx:98
#, c-format
msgid "The URL you've entered is not valid (must be absolute)"
msgstr ""
#: pages/confirm-create-reserve.tsx:185
#, c-format
msgid "The bank wants to create a reserve over %1$s."
msgstr ""
#: pages/confirm-contract.tsx:79
#, c-format #, c-format
msgid "" msgid ""
"%1$s\n" "%1$s\n"
@ -59,82 +70,77 @@ msgid ""
" with you." " with you."
msgstr "" msgstr ""
#: pages/confirm-contract.tsx:46 #: pages/confirm-contract.tsx:84
#, c-format #, c-format
msgid "You are about to purchase:" msgid "You are about to purchase:"
msgstr "" msgstr ""
#: pages/confirm-contract.tsx:52 #: pages/confirm-contract.tsx:90
#, c-format #, c-format
msgid "Confirm Payment" msgid "Confirm Payment"
msgstr "" msgstr ""
#: pages/confirm-create-reserve.tsx:84 #: popup/popup.tsx:70
#, c-format
msgid "Please enter a URL"
msgstr ""
#: pages/confirm-create-reserve.tsx:90
#, c-format
msgid "The URL you've entered is not valid (must be absolute)"
msgstr ""
#: pages/confirm-create-reserve.tsx:177
#, c-format
msgid "The bank wants to create a reserve over %1$s."
msgstr ""
#: popup/popup.tsx:62
#, c-format #, c-format
msgid "Balance" msgid "Balance"
msgstr "" msgstr ""
#: popup/popup.tsx:63 #: popup/popup.tsx:71
#, c-format #, c-format
msgid "History" msgid "History"
msgstr "" msgstr ""
#: popup/popup.tsx:64 #: popup/popup.tsx:72
#, c-format #, c-format
msgid "Debug" msgid "Debug"
msgstr "" msgstr ""
#: popup/popup.tsx:120 #: popup/popup.tsx:126
#, c-format
msgid "Error: could not retrieve balance information."
msgstr ""
#: popup/popup.tsx:139
#, c-format #, c-format
msgid "You have no balance to show. Want to get some %1$s?" msgid "You have no balance to show. Want to get some %1$s?"
msgstr "" msgstr ""
#: popup/popup.tsx:158 #: popup/popup.tsx:177
#, c-format #, c-format
msgid "Created reserve (%1$s) of %2$s at %3$s" msgid "Created reserve (%1$s) of %2$s at %3$s"
msgstr "" msgstr ""
#: popup/popup.tsx:163 #: popup/popup.tsx:182
#, c-format #, c-format
msgid "Bank confirmed reserve (%1$s) at %2$s" msgid "Bank confirmed reserve (%1$s) at %2$s"
msgstr "" msgstr ""
#: popup/popup.tsx:167 #: popup/popup.tsx:186
#, c-format #, c-format
msgid "Withdraw at %1$s" msgid "Withdraw at %1$s"
msgstr "" msgstr ""
#: popup/popup.tsx:170 #: popup/popup.tsx:189
#, c-format #, c-format
msgid "Wallet depleted reserve (%1$s) at %2$s" msgid "Wallet depleted reserve (%1$s) at %2$s"
msgstr "" msgstr ""
#: popup/popup.tsx:176 #: popup/popup.tsx:195
#, c-format #, c-format
msgid "Payment for %1$s to merchant %2$s. " msgid "Payment for %1$s to merchant %2$s. "
msgstr "" msgstr ""
#: popup/popup.tsx:183 #: popup/popup.tsx:202
#, c-format #, c-format
msgid "Unknown event (%1$s)" msgid "Unknown event (%1$s)"
msgstr "" msgstr ""
#: popup/popup.tsx:220 #: popup/popup.tsx:241
#, c-format
msgid "Error: could not retrieve event history"
msgstr ""
#: popup/popup.tsx:250
#, c-format #, c-format
msgid "Your wallet has no events recorded." msgid "Your wallet has no events recorded."
msgstr "" msgstr ""

View File

@ -17,7 +17,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Taler Wallet\n" "Project-Id-Version: Taler Wallet\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-02-24 23:45+0100\n" "POT-Creation-Date: 2016-03-18 16:54+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -27,12 +27,42 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/i18n.ts:39 popup/popup.tsx:117 #: lib/i18n.ts:64 popup/popup.tsx:136
#, c-format #, c-format
msgid "free KUDOS" msgid "free KUDOS"
msgstr "" msgstr ""
#: pages/confirm-contract.tsx:41 #: lib/i18n.ts:66 lib/i18n.ts:67
#, c-format
msgid "DEBUG: Your balance on %1$s is %2$s KUDO. Get more at %3$s"
msgstr ""
#: lib/i18n.ts:68
#, c-format
msgid "DEBUG: Your balance is %1$s KUDO."
msgstr ""
#: lib/i18n.ts:70
#, c-format
msgid "DEBUG: #%1$s: Your balance is %2$s KUDO."
msgstr ""
#: pages/confirm-create-reserve.tsx:92
#, c-format
msgid "Please enter a URL"
msgstr ""
#: pages/confirm-create-reserve.tsx:98
#, c-format
msgid "The URL you've entered is not valid (must be absolute)"
msgstr ""
#: pages/confirm-create-reserve.tsx:185
#, c-format
msgid "The bank wants to create a reserve over %1$s."
msgstr ""
#: pages/confirm-contract.tsx:79
#, c-format #, c-format
msgid "" msgid ""
"%1$s\n" "%1$s\n"
@ -40,82 +70,77 @@ msgid ""
" with you." " with you."
msgstr "" msgstr ""
#: pages/confirm-contract.tsx:46 #: pages/confirm-contract.tsx:84
#, c-format #, c-format
msgid "You are about to purchase:" msgid "You are about to purchase:"
msgstr "" msgstr ""
#: pages/confirm-contract.tsx:52 #: pages/confirm-contract.tsx:90
#, c-format #, c-format
msgid "Confirm Payment" msgid "Confirm Payment"
msgstr "" msgstr ""
#: pages/confirm-create-reserve.tsx:84 #: popup/popup.tsx:70
#, c-format
msgid "Please enter a URL"
msgstr ""
#: pages/confirm-create-reserve.tsx:90
#, c-format
msgid "The URL you've entered is not valid (must be absolute)"
msgstr ""
#: pages/confirm-create-reserve.tsx:177
#, c-format
msgid "The bank wants to create a reserve over %1$s."
msgstr ""
#: popup/popup.tsx:62
#, c-format #, c-format
msgid "Balance" msgid "Balance"
msgstr "" msgstr ""
#: popup/popup.tsx:63 #: popup/popup.tsx:71
#, c-format #, c-format
msgid "History" msgid "History"
msgstr "" msgstr ""
#: popup/popup.tsx:64 #: popup/popup.tsx:72
#, c-format #, c-format
msgid "Debug" msgid "Debug"
msgstr "" msgstr ""
#: popup/popup.tsx:120 #: popup/popup.tsx:126
#, c-format
msgid "Error: could not retrieve balance information."
msgstr ""
#: popup/popup.tsx:139
#, c-format #, c-format
msgid "You have no balance to show. Want to get some %1$s?" msgid "You have no balance to show. Want to get some %1$s?"
msgstr "" msgstr ""
#: popup/popup.tsx:158 #: popup/popup.tsx:177
#, c-format #, c-format
msgid "Created reserve (%1$s) of %2$s at %3$s" msgid "Created reserve (%1$s) of %2$s at %3$s"
msgstr "" msgstr ""
#: popup/popup.tsx:163 #: popup/popup.tsx:182
#, c-format #, c-format
msgid "Bank confirmed reserve (%1$s) at %2$s" msgid "Bank confirmed reserve (%1$s) at %2$s"
msgstr "" msgstr ""
#: popup/popup.tsx:167 #: popup/popup.tsx:186
#, c-format #, c-format
msgid "Withdraw at %1$s" msgid "Withdraw at %1$s"
msgstr "" msgstr ""
#: popup/popup.tsx:170 #: popup/popup.tsx:189
#, c-format #, c-format
msgid "Wallet depleted reserve (%1$s) at %2$s" msgid "Wallet depleted reserve (%1$s) at %2$s"
msgstr "" msgstr ""
#: popup/popup.tsx:176 #: popup/popup.tsx:195
#, c-format #, c-format
msgid "Payment for %1$s to merchant %2$s. " msgid "Payment for %1$s to merchant %2$s. "
msgstr "" msgstr ""
#: popup/popup.tsx:183 #: popup/popup.tsx:202
#, c-format #, c-format
msgid "Unknown event (%1$s)" msgid "Unknown event (%1$s)"
msgstr "" msgstr ""
#: popup/popup.tsx:220 #: popup/popup.tsx:241
#, c-format
msgid "Error: could not retrieve event history"
msgstr ""
#: popup/popup.tsx:250
#, c-format #, c-format
msgid "Your wallet has no events recorded." msgid "Your wallet has no events recorded."
msgstr "" msgstr ""

View File

@ -17,7 +17,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Taler Wallet\n" "Project-Id-Version: Taler Wallet\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-02-24 23:45+0100\n" "POT-Creation-Date: 2016-03-18 16:54+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -27,12 +27,42 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/i18n.ts:39 popup/popup.tsx:117 #: lib/i18n.ts:64 popup/popup.tsx:136
#, c-format #, c-format
msgid "free KUDOS" msgid "free KUDOS"
msgstr "" msgstr ""
#: pages/confirm-contract.tsx:41 #: lib/i18n.ts:66 lib/i18n.ts:67
#, c-format
msgid "DEBUG: Your balance on %1$s is %2$s KUDO. Get more at %3$s"
msgstr ""
#: lib/i18n.ts:68
#, c-format
msgid "DEBUG: Your balance is %1$s KUDO."
msgstr ""
#: lib/i18n.ts:70
#, c-format
msgid "DEBUG: #%1$s: Your balance is %2$s KUDO."
msgstr ""
#: pages/confirm-create-reserve.tsx:92
#, c-format
msgid "Please enter a URL"
msgstr ""
#: pages/confirm-create-reserve.tsx:98
#, c-format
msgid "The URL you've entered is not valid (must be absolute)"
msgstr ""
#: pages/confirm-create-reserve.tsx:185
#, c-format
msgid "The bank wants to create a reserve over %1$s."
msgstr ""
#: pages/confirm-contract.tsx:79
#, c-format #, c-format
msgid "" msgid ""
"%1$s\n" "%1$s\n"
@ -40,82 +70,77 @@ msgid ""
" with you." " with you."
msgstr "" msgstr ""
#: pages/confirm-contract.tsx:46 #: pages/confirm-contract.tsx:84
#, c-format #, c-format
msgid "You are about to purchase:" msgid "You are about to purchase:"
msgstr "" msgstr ""
#: pages/confirm-contract.tsx:52 #: pages/confirm-contract.tsx:90
#, c-format #, c-format
msgid "Confirm Payment" msgid "Confirm Payment"
msgstr "" msgstr ""
#: pages/confirm-create-reserve.tsx:84 #: popup/popup.tsx:70
#, c-format
msgid "Please enter a URL"
msgstr ""
#: pages/confirm-create-reserve.tsx:90
#, c-format
msgid "The URL you've entered is not valid (must be absolute)"
msgstr ""
#: pages/confirm-create-reserve.tsx:177
#, c-format
msgid "The bank wants to create a reserve over %1$s."
msgstr ""
#: popup/popup.tsx:62
#, c-format #, c-format
msgid "Balance" msgid "Balance"
msgstr "" msgstr ""
#: popup/popup.tsx:63 #: popup/popup.tsx:71
#, c-format #, c-format
msgid "History" msgid "History"
msgstr "" msgstr ""
#: popup/popup.tsx:64 #: popup/popup.tsx:72
#, c-format #, c-format
msgid "Debug" msgid "Debug"
msgstr "" msgstr ""
#: popup/popup.tsx:120 #: popup/popup.tsx:126
#, c-format
msgid "Error: could not retrieve balance information."
msgstr ""
#: popup/popup.tsx:139
#, c-format #, c-format
msgid "You have no balance to show. Want to get some %1$s?" msgid "You have no balance to show. Want to get some %1$s?"
msgstr "" msgstr ""
#: popup/popup.tsx:158 #: popup/popup.tsx:177
#, c-format #, c-format
msgid "Created reserve (%1$s) of %2$s at %3$s" msgid "Created reserve (%1$s) of %2$s at %3$s"
msgstr "" msgstr ""
#: popup/popup.tsx:163 #: popup/popup.tsx:182
#, c-format #, c-format
msgid "Bank confirmed reserve (%1$s) at %2$s" msgid "Bank confirmed reserve (%1$s) at %2$s"
msgstr "" msgstr ""
#: popup/popup.tsx:167 #: popup/popup.tsx:186
#, c-format #, c-format
msgid "Withdraw at %1$s" msgid "Withdraw at %1$s"
msgstr "" msgstr ""
#: popup/popup.tsx:170 #: popup/popup.tsx:189
#, c-format #, c-format
msgid "Wallet depleted reserve (%1$s) at %2$s" msgid "Wallet depleted reserve (%1$s) at %2$s"
msgstr "" msgstr ""
#: popup/popup.tsx:176 #: popup/popup.tsx:195
#, c-format #, c-format
msgid "Payment for %1$s to merchant %2$s. " msgid "Payment for %1$s to merchant %2$s. "
msgstr "" msgstr ""
#: popup/popup.tsx:183 #: popup/popup.tsx:202
#, c-format #, c-format
msgid "Unknown event (%1$s)" msgid "Unknown event (%1$s)"
msgstr "" msgstr ""
#: popup/popup.tsx:220 #: popup/popup.tsx:241
#, c-format
msgid "Error: could not retrieve event history"
msgstr ""
#: popup/popup.tsx:250
#, c-format #, c-format
msgid "Your wallet has no events recorded." msgid "Your wallet has no events recorded."
msgstr "" msgstr ""

4
i18n/strings.js Normal file
View File

@ -0,0 +1,4 @@
i18n.strings['de-DE'] = {"domain":"de-DE","locale_data":{"de-DE":{"":{"domain":"de-DE","plural_forms":"nplurals=2; plural=(n != 1);","lang":""},"free KUDOS":[""],"DEBUG: Your balance on %1$s is %2$s KUDO. Get more at %3$s":[""],"DEBUG: Your balance is %1$s KUDO.":[""],"DEBUG: #%1$s: Your balance is %2$s KUDO.":[""],"Please enter a URL":["Bitte eine URL eingeben"],"The URL you've entered is not valid (must be absolute)":["Die eingegebene URL ist nicht gültig (muss absolut sein)"],"The bank wants to create a reserve over %1$s.":["Die Bank möchte eine Reserve über %1$s anlegen."],"%1$s\n wants to enter a contract over %2$s\n with you.":["%1$s\n möchte einen Vertrag über %2$s\n mit Ihnen abschließen."],"You are about to purchase:":["Sie sind dabei, Folgendes zu kaufen:"],"Confirm Payment":["Bezahlung bestätigen"],"Balance":["Saldo"],"History":["Verlauf"],"Debug":["Debug"],"Error: could not retrieve balance information.":[""],"You have no balance to show. Want to get some %1$s?":["Sie haben kein Digitalgeld. Wollen Sie %1$s? abheben?"],"Created reserve (%1$s) of %2$s at %3$s":["Reserve (%1$s) mit %2$s bei %3$s erzeugt"],"Bank confirmed reserve (%1$s) at %2$s":["Bank bestätig anlegen der Reserve (%1$s) bei %2$s"],"Withdraw at %1$s":["Abheben bei %1$s"],"Wallet depleted reserve (%1$s) at %2$s":["Geldbörse hat die Reserve (%1$s) erschöpft"],"Payment for %1$s to merchant %2$s. ":[""],"Unknown event (%1$s)":[""],"Error: could not retrieve event history":[""],"Your wallet has no events recorded.":["Ihre Geldbörse verzeichnet keine Vorkommnisse."]}}};
i18n.strings['en-US'] = {"domain":"en-US","locale_data":{"en-US":{"":{"domain":"en-US","plural_forms":"nplurals=2; plural=(n != 1);","lang":""},"free KUDOS":[""],"DEBUG: Your balance on %1$s is %2$s KUDO. Get more at %3$s":["DEBUG: Your balance is %2$s KUDO on %1$s. Get more at %3$s"],"DEBUG: Your balance is %1$s KUDO.":[""],"DEBUG: #%1$s: Your balance is %2$s KUDO.":[""],"Please enter a URL":[""],"The URL you've entered is not valid (must be absolute)":[""],"The bank wants to create a reserve over %1$s.":[""],"%1$s\n wants to enter a contract over %2$s\n with you.":[""],"You are about to purchase:":[""],"Confirm Payment":[""],"Balance":[""],"History":[""],"Debug":[""],"Error: could not retrieve balance information.":[""],"You have no balance to show. Want to get some %1$s?":[""],"Created reserve (%1$s) of %2$s at %3$s":[""],"Bank confirmed reserve (%1$s) at %2$s":[""],"Withdraw at %1$s":[""],"Wallet depleted reserve (%1$s) at %2$s":[""],"Payment for %1$s to merchant %2$s. ":[""],"Unknown event (%1$s)":[""],"Error: could not retrieve event history":[""],"Your wallet has no events recorded.":[""]}}};
i18n.strings['fr-FR'] = {"domain":"fr-FR","locale_data":{"fr-FR":{"":{"domain":"fr-FR","plural_forms":"nplurals=2; plural=(n != 1);","lang":""},"free KUDOS":[""],"DEBUG: Your balance on %1$s is %2$s KUDO. Get more at %3$s":[""],"DEBUG: Your balance is %1$s KUDO.":[""],"DEBUG: #%1$s: Your balance is %2$s KUDO.":[""],"Please enter a URL":[""],"The URL you've entered is not valid (must be absolute)":[""],"The bank wants to create a reserve over %1$s.":[""],"%1$s\n wants to enter a contract over %2$s\n with you.":[""],"You are about to purchase:":[""],"Confirm Payment":[""],"Balance":[""],"History":[""],"Debug":[""],"Error: could not retrieve balance information.":[""],"You have no balance to show. Want to get some %1$s?":[""],"Created reserve (%1$s) of %2$s at %3$s":[""],"Bank confirmed reserve (%1$s) at %2$s":[""],"Withdraw at %1$s":[""],"Wallet depleted reserve (%1$s) at %2$s":[""],"Payment for %1$s to merchant %2$s. ":[""],"Unknown event (%1$s)":[""],"Error: could not retrieve event history":[""],"Your wallet has no events recorded.":[""]}}};
i18n.strings['it-IT'] = {"domain":"it-IT","locale_data":{"it-IT":{"":{"domain":"it-IT","plural_forms":"nplurals=2; plural=(n != 1);","lang":""},"free KUDOS":[""],"DEBUG: Your balance on %1$s is %2$s KUDO. Get more at %3$s":[""],"DEBUG: Your balance is %1$s KUDO.":[""],"DEBUG: #%1$s: Your balance is %2$s KUDO.":[""],"Please enter a URL":[""],"The URL you've entered is not valid (must be absolute)":[""],"The bank wants to create a reserve over %1$s.":[""],"%1$s\n wants to enter a contract over %2$s\n with you.":[""],"You are about to purchase:":[""],"Confirm Payment":[""],"Balance":[""],"History":[""],"Debug":[""],"Error: could not retrieve balance information.":[""],"You have no balance to show. Want to get some %1$s?":[""],"Created reserve (%1$s) of %2$s at %3$s":[""],"Bank confirmed reserve (%1$s) at %2$s":[""],"Withdraw at %1$s":[""],"Wallet depleted reserve (%1$s) at %2$s":[""],"Payment for %1$s to merchant %2$s. ":[""],"Unknown event (%1$s)":[""],"Error: could not retrieve event history":[""],"Your wallet has no events recorded.":[""]}}};

View File

@ -1,4 +1,4 @@
i18n.strings['en-US'] = {"domain":"en-US","locale_data":{"en-US":{"":{"domain":"en-US","plural_forms":"nplurals=2; plural=(n != 1);","lang":""},"free KUDOS":[""],"DEBUG: Your balance on %1$s is %2$s KUDO. Get more at %3$s":["DEBUG: Your balance is %2$s KUDO on %1$s. Get more at %3$s"],"DEBUG: Your balance is %1$s KUDO.":["","DEBUG: Your balance is %1$s KUDOs."],"DEBUG: #%1$s: Your balance is %2$s KUDO.":["","DEBUG: #%1$s: Your balance is %2$s KUDOs."],"%1$s\n wants to enter a contract over %2$s\n with you.":[""],"You are about to purchase:":[""],"Confirm Payment":[""],"Please enter a URL":[""],"The URL you've entered is not valid (must be absolute)":[""],"The bank wants to create a reserve over %1$s.":[""],"Balance":[""],"History":[""],"Debug":[""],"You have no balance to show. Want to get some %1$s?":[""],"Created reserve (%1$s) of %2$s at %3$s":[""],"Bank confirmed reserve (%1$s) at %2$s":[""],"Withdraw at %1$s":[""],"Wallet depleted reserve (%1$s) at %2$s":[""],"Payment for %1$s to merchant %2$s. ":[""],"Unknown event (%1$s)":[""],"Your wallet has no events recorded.":[""]}}}; i18n.strings['en-US'] = {"domain":"en-US","locale_data":{"en-US":{"":{"domain":"en-US","plural_forms":"nplurals=2; plural=(n != 1);","lang":""},"free KUDOS":[""],"DEBUG: Your balance on %1$s is %2$s KUDO. Get more at %3$s":["DEBUG: Your balance is %2$s KUDO on %1$s. Get more at %3$s"],"DEBUG: Your balance is %1$s KUDO.":[""],"DEBUG: #%1$s: Your balance is %2$s KUDO.":[""],"Please enter a URL":[""],"The URL you've entered is not valid (must be absolute)":[""],"The bank wants to create a reserve over %1$s.":[""],"%1$s\n wants to enter a contract over %2$s\n with you.":[""],"You are about to purchase:":[""],"Confirm Payment":[""],"Balance":[""],"History":[""],"Debug":[""],"Error: could not retrieve balance information.":[""],"You have no balance to show. Want to get some %1$s?":[""],"Created reserve (%1$s) of %2$s at %3$s":[""],"Bank confirmed reserve (%1$s) at %2$s":[""],"Withdraw at %1$s":[""],"Wallet depleted reserve (%1$s) at %2$s":[""],"Payment for %1$s to merchant %2$s. ":[""],"Unknown event (%1$s)":[""],"Error: could not retrieve event history":[""],"Your wallet has no events recorded.":[""]}}};
i18n.strings['de-DE'] = {"domain":"de-DE","locale_data":{"de-DE":{"":{"domain":"de-DE","plural_forms":"nplurals=2; plural=(n != 1);","lang":""},"free KUDOS":[""],"%1$s\n wants to enter a contract over %2$s\n with you.":["%1$s\n möchte einen Vertrag über %2$s\n mit Ihnen abschließen."],"You are about to purchase:":["Sie sind dabei, Folgendes zu kaufen:"],"Confirm Payment":["Bezahlung bestätigen"],"Please enter a URL":["Bitte eine URL eingeben"],"The URL you've entered is not valid (must be absolute)":["Die eingegebene URL ist nicht gültig (muss absolut sein)"],"The bank wants to create a reserve over %1$s.":["Die Bank möchte eine Reserve über %1$s anlegen."],"Balance":["Saldo"],"History":["Verlauf"],"Debug":["Debug"],"You have no balance to show. Want to get some %1$s?":["Sie haben kein Digitalgeld. Wollen Sie %1$s? abheben?"],"Created reserve (%1$s) of %2$s at %3$s":["Reserve (%1$s) mit %2$s bei %3$s erzeugt"],"Bank confirmed reserve (%1$s) at %2$s":["Bank bestätig anlegen der Reserve (%1$s) bei %2$s"],"Withdraw at %1$s":["Abheben bei %1$s"],"Wallet depleted reserve (%1$s) at %2$s":["Geldbörse hat die Reserve (%1$s) erschöpft"],"Payment for %1$s to merchant %2$s. ":[""],"Unknown event (%1$s)":[""],"Your wallet has no events recorded.":["Ihre Geldbörse verzeichnet keine Vorkommnisse."]}}}; i18n.strings['de-DE'] = {"domain":"de-DE","locale_data":{"de-DE":{"":{"domain":"de-DE","plural_forms":"nplurals=2; plural=(n != 1);","lang":""},"free KUDOS":[""],"DEBUG: Your balance on %1$s is %2$s KUDO. Get more at %3$s":[""],"DEBUG: Your balance is %1$s KUDO.":[""],"DEBUG: #%1$s: Your balance is %2$s KUDO.":[""],"Please enter a URL":["Bitte eine URL eingeben"],"The URL you've entered is not valid (must be absolute)":["Die eingegebene URL ist nicht gültig (muss absolut sein)"],"The bank wants to create a reserve over %1$s.":["Die Bank möchte eine Reserve über %1$s anlegen."],"%1$s\n wants to enter a contract over %2$s\n with you.":["%1$s\n möchte einen Vertrag über %2$s\n mit Ihnen abschließen."],"You are about to purchase:":["Sie sind dabei, Folgendes zu kaufen:"],"Confirm Payment":["Bezahlung bestätigen"],"Balance":["Saldo"],"History":["Verlauf"],"Debug":["Debug"],"Error: could not retrieve balance information.":[""],"You have no balance to show. Want to get some %1$s?":["Sie haben kein Digitalgeld. Wollen Sie %1$s? abheben?"],"Created reserve (%1$s) of %2$s at %3$s":["Reserve (%1$s) mit %2$s bei %3$s erzeugt"],"Bank confirmed reserve (%1$s) at %2$s":["Bank bestätig anlegen der Reserve (%1$s) bei %2$s"],"Withdraw at %1$s":["Abheben bei %1$s"],"Wallet depleted reserve (%1$s) at %2$s":["Geldbörse hat die Reserve (%1$s) erschöpft"],"Payment for %1$s to merchant %2$s. ":[""],"Unknown event (%1$s)":[""],"Error: could not retrieve event history":[""],"Your wallet has no events recorded.":["Ihre Geldbörse verzeichnet keine Vorkommnisse."]}}};
i18n.strings['fr-FR'] = {"domain":"fr-FR","locale_data":{"fr-FR":{"":{"domain":"fr-FR","plural_forms":"nplurals=2; plural=(n != 1);","lang":""},"free KUDOS":[""],"%1$s\n wants to enter a contract over %2$s\n with you.":[""],"You are about to purchase:":[""],"Confirm Payment":[""],"Please enter a URL":[""],"The URL you've entered is not valid (must be absolute)":[""],"The bank wants to create a reserve over %1$s.":[""],"Balance":[""],"History":[""],"Debug":[""],"You have no balance to show. Want to get some %1$s?":[""],"Created reserve (%1$s) of %2$s at %3$s":[""],"Bank confirmed reserve (%1$s) at %2$s":[""],"Withdraw at %1$s":[""],"Wallet depleted reserve (%1$s) at %2$s":[""],"Payment for %1$s to merchant %2$s. ":[""],"Unknown event (%1$s)":[""],"Your wallet has no events recorded.":[""]}}}; i18n.strings['fr-FR'] = {"domain":"fr-FR","locale_data":{"fr-FR":{"":{"domain":"fr-FR","plural_forms":"nplurals=2; plural=(n != 1);","lang":""},"free KUDOS":[""],"DEBUG: Your balance on %1$s is %2$s KUDO. Get more at %3$s":[""],"DEBUG: Your balance is %1$s KUDO.":[""],"DEBUG: #%1$s: Your balance is %2$s KUDO.":[""],"Please enter a URL":[""],"The URL you've entered is not valid (must be absolute)":[""],"The bank wants to create a reserve over %1$s.":[""],"%1$s\n wants to enter a contract over %2$s\n with you.":[""],"You are about to purchase:":[""],"Confirm Payment":[""],"Balance":[""],"History":[""],"Debug":[""],"Error: could not retrieve balance information.":[""],"You have no balance to show. Want to get some %1$s?":[""],"Created reserve (%1$s) of %2$s at %3$s":[""],"Bank confirmed reserve (%1$s) at %2$s":[""],"Withdraw at %1$s":[""],"Wallet depleted reserve (%1$s) at %2$s":[""],"Payment for %1$s to merchant %2$s. ":[""],"Unknown event (%1$s)":[""],"Error: could not retrieve event history":[""],"Your wallet has no events recorded.":[""]}}};
i18n.strings['it-IT'] = {"domain":"it-IT","locale_data":{"it-IT":{"":{"domain":"it-IT","plural_forms":"nplurals=2; plural=(n != 1);","lang":""},"free KUDOS":[""],"%1$s\n wants to enter a contract over %2$s\n with you.":[""],"You are about to purchase:":[""],"Confirm Payment":[""],"Please enter a URL":[""],"The URL you've entered is not valid (must be absolute)":[""],"The bank wants to create a reserve over %1$s.":[""],"Balance":[""],"History":[""],"Debug":[""],"You have no balance to show. Want to get some %1$s?":[""],"Created reserve (%1$s) of %2$s at %3$s":[""],"Bank confirmed reserve (%1$s) at %2$s":[""],"Withdraw at %1$s":[""],"Wallet depleted reserve (%1$s) at %2$s":[""],"Payment for %1$s to merchant %2$s. ":[""],"Unknown event (%1$s)":[""],"Your wallet has no events recorded.":[""]}}}; i18n.strings['it-IT'] = {"domain":"it-IT","locale_data":{"it-IT":{"":{"domain":"it-IT","plural_forms":"nplurals=2; plural=(n != 1);","lang":""},"free KUDOS":[""],"DEBUG: Your balance on %1$s is %2$s KUDO. Get more at %3$s":[""],"DEBUG: Your balance is %1$s KUDO.":[""],"DEBUG: #%1$s: Your balance is %2$s KUDO.":[""],"Please enter a URL":[""],"The URL you've entered is not valid (must be absolute)":[""],"The bank wants to create a reserve over %1$s.":[""],"%1$s\n wants to enter a contract over %2$s\n with you.":[""],"You are about to purchase:":[""],"Confirm Payment":[""],"Balance":[""],"History":[""],"Debug":[""],"Error: could not retrieve balance information.":[""],"You have no balance to show. Want to get some %1$s?":[""],"Created reserve (%1$s) of %2$s at %3$s":[""],"Bank confirmed reserve (%1$s) at %2$s":[""],"Withdraw at %1$s":[""],"Wallet depleted reserve (%1$s) at %2$s":[""],"Payment for %1$s to merchant %2$s. ":[""],"Unknown event (%1$s)":[""],"Error: could not retrieve event history":[""],"Your wallet has no events recorded.":[""]}}};

View File

@ -12,8 +12,8 @@
<script src="../lib/vendor/lodash.core.min.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/system-csp-production.src.js"></script>
<script src="../lib/vendor/jed.js"></script> <script src="../lib/vendor/jed.js"></script>
<script src="../i18n/strings.js"></script>
<script src="../lib/i18n.js"></script> <script src="../lib/i18n.js"></script>
<script src="../lib/i18n-strings.js"></script>
<script src="../lib/module-trampoline.js"></script> <script src="../lib/module-trampoline.js"></script>
</head> </head>

View File

@ -10,8 +10,8 @@
<script src="../lib/vendor/mithril.js"></script> <script src="../lib/vendor/mithril.js"></script>
<script src="../lib/vendor/system-csp-production.src.js"></script> <script src="../lib/vendor/system-csp-production.src.js"></script>
<script src="../lib/vendor/jed.js"></script> <script src="../lib/vendor/jed.js"></script>
<script src="../i18n/strings.js"></script>
<script src="../lib/i18n.js"></script> <script src="../lib/i18n.js"></script>
<script src="../lib/i18n-strings.js"></script>
<script src="../lib/module-trampoline.js"></script> <script src="../lib/module-trampoline.js"></script>
</head> </head>

View File

@ -11,8 +11,8 @@
<script src="../lib/vendor/lodash.core.min.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/system-csp-production.src.js"></script>
<script src="../lib/vendor/jed.js"></script> <script src="../lib/vendor/jed.js"></script>
<script src="../i18n/strings.js"></script>
<script src="../lib/i18n.js"></script> <script src="../lib/i18n.js"></script>
<script src="../lib/i18n-strings.js"></script>
<script src="../lib/module-trampoline.js"></script> <script src="../lib/module-trampoline.js"></script>
</head> </head>