Skip to content

Commit aeda2fa

Browse files
author
Takahisa Hasegawa
committed
Add i18n and ja locale
- New dependency 'i18n' - Form labels, headings and button labels are localizable
1 parent 0610dc2 commit aeda2fa

14 files changed

+77
-48
lines changed

app.js

+6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
var express = require('express');
2+
var i18n = require('i18n');
23
var path = require('path');
34
var favicon = require('serve-favicon');
45
var logger = require('morgan');
@@ -18,6 +19,7 @@ app.use(logger('dev'));
1819
app.use(bodyParser.json());
1920
app.use(bodyParser.urlencoded({ extended: false }));
2021
app.use(cookieParser());
22+
app.use(i18n.init);
2123
app.use(express.static(path.join(__dirname, 'public')));
2224

2325
app.use('/', routes);
@@ -53,5 +55,9 @@ app.use(function(err, req, res, next) {
5355
});
5456
});
5557

58+
i18n.configure({
59+
locales:['en', 'ja'],
60+
directory: __dirname + '/locales'
61+
});
5662

5763
module.exports = app;

locales/en.json

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"Hash": "Hash"
3+
}

locales/ja.json

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"Hash": "ハッシュ",
3+
"Data": "データ",
4+
"Block": "ブロック",
5+
"Nonce": "ノンス",
6+
"Mine": "掘る",
7+
"Blockchain Demo": "ブロックチェーンデモ",
8+
"Blockchain": "ブロックチェーン",
9+
"Distributed": "分散",
10+
"Tokens": "トークン",
11+
"Coinbase": "コインベース",
12+
"Prev": "",
13+
"Distributed Blockchain": "分散ブロックチェーン",
14+
"Peer": "ピア",
15+
"Tx": "取引",
16+
"$": "¥",
17+
"From": "送信元",
18+
"Coinbase Transactions": "コインベース取引"
19+
}

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
"cookie-parser": "^1.4.3",
2727
"body-parser": "~1.15.2",
2828
"debug": "~2.2.0",
29-
"jade": "~1.11.0"
29+
"jade": "~1.11.0",
30+
"i18n": "0.8.3"
3031
},
3132
"homepage": "https://github.com/anders94/blockchain-demo#readme",
3233
"maintainers": [

views/block.jade

+6-6
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,29 @@ extends layout
22

33
block content
44
.container
5-
h1 Block
5+
h1 #{__('Block')}
66
.well#block1chain1well
77
form.form-horizontal
88

99
.form-group
10-
label.col-sm-2.control-label(for='block1chain1number') Block:
10+
label.col-sm-2.control-label(for='block1chain1number') #{__('Block')}:
1111
.col-sm-10
1212
.input-group
1313
span.input-group-addon #
1414
input#block1chain1number.form-control(type='text', value='1' onkeyup='updateHash(1, 1);')
1515

1616
.form-group
17-
label.col-sm-2.control-label(for='block1chain1nonce') Nonce:
17+
label.col-sm-2.control-label(for='block1chain1nonce') #{__('Nonce')}:
1818
.col-sm-10
1919
input#block1chain1nonce.form-control(type='text', value='72608', onkeyup='updateHash(1, 1);')
2020

2121
.form-group
22-
label.col-sm-2.control-label(for='block1chain1data') Data:
22+
label.col-sm-2.control-label(for='block1chain1data') #{__('Data')}:
2323
.col-sm-10
2424
textarea#block1chain1data.form-control(rows='10', onkeyup='updateHash(1, 1);')
2525

2626
#state.form-group
27-
label.col-sm-2.control-label(for='block1chain1hash') Hash:
27+
label.col-sm-2.control-label(for='block1chain1hash') #{__('Hash')}:
2828
.col-sm-10
2929
input#block1chain1hash.form-control(type='text', disabled)
3030

@@ -33,7 +33,7 @@ block content
3333
i.icon-spinner.icon-spin.icon-large
3434
.col-sm-10
3535
button#block1chain1mineButton.btn.btn-primary.ladda-button(data-style='expand-right')
36-
span.ladda-label Mine
36+
span.ladda-label #{__('Mine')}
3737

3838
script.
3939
$(function() {

views/blockchain.jade

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ extends layout
22

33
block content
44
.container-fluid
5-
h1 Blockchain
5+
h1 #{__('Blockchain')}
66
.row.row-horizon
77
- var blocks = []
88
- blocks.push({block: 1, chain: 1, nonce: 11316, previous: '0000000000000000000000000000000000000000000000000000000000000000'})

views/coinbase.jade

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ extends layout
22

33
block content
44
.container-fluid
5-
h1 Coinbase Transactions
5+
h1 #{__('Coinbase Transactions')}
66
- var peers = {1: 'A', 2: 'B', 3: 'C'}
77
- each peer, chain in peers
8-
h3 Peer #{peer}
8+
h3 #{__('Peer')} #{peer}
99
.row.row-horizon
1010
- var blocks = []
1111
- blocks.push({block: 1, chain: chain, nonce: 16651, coinbasevalue: '100.00', coinbaseto: 'Anders', txs: [], previous: '0000000000000000000000000000000000000000000000000000000000000000'})

views/distributed.jade

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ extends layout
22

33
block content
44
.container-fluid
5-
h1 Distributed Blockchain
5+
h1 #{__('Distributed Blockchain')}
66
- var peers = {1: 'A', 2: 'B', 3: 'C'}
77
- each peer, chain in peers
8-
h3 Peer #{peer}
8+
h3 #{__('Peer')} #{peer}
99
.row.row-horizon
1010
- var blocks = []
1111
- blocks.push({block: 1, chain: chain, nonce: 11316, previous: '0000000000000000000000000000000000000000000000000000000000000000'})

views/hash.jade

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@ extends layout
33
block content
44
.container
55

6-
h1 SHA256 Hash
6+
h1 SHA256 #{__('Hash')}
77
.well#well1
88
form.form-horizontal
99

1010
.form-group
11-
label.col-sm-2.control-label(for='data') Data:
11+
label.col-sm-2.control-label(for='data') #{__('Data')}:
1212
.col-sm-10
1313
textarea#data.form-control(rows='10', onkeyup='$("#hash").val(sha256())')
1414

1515
.form-group
16-
label.col-sm-2.control-label(for='hash') Hash:
16+
label.col-sm-2.control-label(for='hash') #{__('Hash')}:
1717
.col-sm-10
1818
input#hash.form-control(type='text', disabled)
1919

views/includes/block.jade

+6-6
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,29 @@
22
form.form-horizontal
33

44
.form-group
5-
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}number') Block:
5+
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}number') #{__('Block')}:
66
.col-sm-10
77
.input-group
88
span.input-group-addon #
99
input.form-control(id='block#{block.block}chain#{block.chain}number', type='text', value='#{block.block}' onkeyup='updateChain(#{block.block}, #{block.chain});')
1010

1111
.form-group
12-
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}nonce') Nonce:
12+
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}nonce') #{__('Nonce')}:
1313
.col-sm-10
1414
input.form-control(id='block#{block.block}chain#{block.chain}nonce', type='text', value='#{block.nonce}', onkeyup='updateChain(#{block.block}, #{block.chain});')
1515

1616
.form-group
17-
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}data') Data:
17+
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}data') #{__('Data')}:
1818
.col-sm-10
1919
textarea.form-control(id='block#{block.block}chain#{block.chain}data', rows='10', onkeyup='updateChain(#{block.block}, #{block.chain});')
2020

2121
#state.form-group
22-
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}previous') Prev:
22+
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}previous') #{__('Prev')}:
2323
.col-sm-10
2424
input.form-control(id='block#{block.block}chain#{block.chain}previous', type='text', value='#{block.previous}', disabled)
2525

2626
#state.form-group
27-
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}hash') Hash:
27+
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}hash') #{__('Hash')}:
2828
.col-sm-10
2929
input.form-control(id='block#{block.block}chain#{block.chain}hash', type='text', disabled)
3030

@@ -33,4 +33,4 @@
3333
i.icon-spinner.icon-spin.icon-large
3434
.col-sm-10
3535
button.btn.btn-primary.ladda-button(id='block#{block.block}chain#{block.chain}mineButton', data-style='expand-right')
36-
span.ladda-label Mine
36+
span.ladda-label #{__('Mine')}

views/includes/coinbaseblock.jade

+10-10
Original file line numberDiff line numberDiff line change
@@ -2,45 +2,45 @@
22
form.form-horizontal
33

44
.form-group
5-
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}number') Block:
5+
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}number') #{__('Block')}:
66
.col-sm-10
77
.input-group
88
span.input-group-addon #
99
input.form-control(id='block#{block.block}chain#{block.chain}number', type='text', value='#{block.block}' onkeyup='updateChain(#{block.block}, #{block.chain});')
1010

1111
.form-group
12-
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}nonce') Nonce:
12+
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}nonce') #{__('Nonce')}:
1313
.col-sm-10
1414
input.form-control(id='block#{block.block}chain#{block.chain}nonce', type='text', value='#{block.nonce}', onkeyup='updateChain(#{block.block}, #{block.chain});')
1515

1616
.form-group
17-
label.col-sm-2.control-label Coinbase:
17+
label.col-sm-2.control-label #{__('Coinbase')}:
1818
.col-sm-10
1919
.input-group
20-
.input-group-addon $
20+
.input-group-addon #{__('$')}
2121
input.form-control(id='block#{block.block}chain#{block.chain}coinbasevalue', type='text', value='#{block.coinbasevalue}', onkeyup='updateChain(#{block.block}, #{block.chain});')
2222
.input-group-addon ->
2323
input.form-control(id='block#{block.block}chain#{block.chain}coinbaseto', type='text', value='#{block.coinbaseto}', onkeyup='updateChain(#{block.block}, #{block.chain});')
2424

2525
.form-group
26-
label.col-sm-2.control-label Tx:
26+
label.col-sm-2.control-label #{__('Tx')}:
2727
.col-sm-10
2828
- each tx, x in block.txs
2929
.input-group
30-
.input-group-addon $
30+
.input-group-addon #{__('$')}
3131
input.form-control(id='block#{block.block}chain#{block.chain}tx#{x}value', type='text', value='#{tx.value}', onkeyup='updateChain(#{block.block}, #{block.chain});')
32-
.input-group-addon From:
32+
.input-group-addon #{__('From')}:
3333
input.form-control(id='block#{block.block}chain#{block.chain}tx#{x}from', type='text', value='#{tx.from}', onkeyup='updateChain(#{block.block}, #{block.chain});')
3434
.input-group-addon ->
3535
input.form-control(id='block#{block.block}chain#{block.chain}tx#{x}to', type='text', value='#{tx.to}', onkeyup='updateChain(#{block.block}, #{block.chain});')
3636

3737
#state.form-group
38-
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}previous') Prev:
38+
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}previous') #{__('Prev')}:
3939
.col-sm-10
4040
input.form-control(id='block#{block.block}chain#{block.chain}previous', type='text', value='#{block.previous}')
4141

4242
#state.form-group
43-
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}hash') Hash:
43+
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}hash') #{__('Hash')}:
4444
.col-sm-10
4545
input.form-control(id='block#{block.block}chain#{block.chain}hash', type='text' disabled)
4646

@@ -49,4 +49,4 @@
4949
i.icon-spinner.icon-spin.icon-large
5050
.col-sm-10
5151
button.btn.btn-primary.ladda-button(id='block#{block.block}chain#{block.chain}mineButton', data-style='expand-right')
52-
span.ladda-label Mine
52+
span.ladda-label #{__('Mine')}

views/includes/tokenblock.jade

+8-8
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,36 @@
22
form.form-horizontal
33

44
.form-group
5-
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}number') Block:
5+
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}number') #{__('Block')}:
66
.col-sm-10
77
.input-group
88
span.input-group-addon #
99
input.form-control(id='block#{block.block}chain#{block.chain}number', type='text', value='#{block.block}' onkeyup='updateChain(#{block.block}, #{block.chain});')
1010

1111
.form-group
12-
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}nonce') Nonce:
12+
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}nonce') #{__('Nonce')}:
1313
.col-sm-10
1414
input.form-control(id='block#{block.block}chain#{block.chain}nonce', type='text', value='#{block.nonce}', onkeyup='updateChain(#{block.block}, #{block.chain});')
1515

1616
.form-group
17-
label.col-sm-2.control-label Tx:
17+
label.col-sm-2.control-label #{__('Tx')}:
1818
.col-sm-10
1919
- each tx, x in block.txs
2020
.input-group
21-
.input-group-addon $
21+
.input-group-addon #{__('$')}
2222
input.form-control(id='block#{block.block}chain#{block.chain}tx#{x}value', type='text', value='#{tx.value}', onkeyup='updateChain(#{block.block}, #{block.chain});')
23-
.input-group-addon From:
23+
.input-group-addon #{__('From')}:
2424
input.form-control(id='block#{block.block}chain#{block.chain}tx#{x}from', type='text', value='#{tx.from}', onkeyup='updateChain(#{block.block}, #{block.chain});')
2525
.input-group-addon ->
2626
input.form-control(id='block#{block.block}chain#{block.chain}tx#{x}to', type='text', value='#{tx.to}', onkeyup='updateChain(#{block.block}, #{block.chain});')
2727

2828
#state.form-group
29-
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}previous') Prev:
29+
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}previous') #{__('Prev')}:
3030
.col-sm-10
3131
input.form-control(id='block#{block.block}chain#{block.chain}previous', type='text', value='#{block.previous}')
3232

3333
#state.form-group
34-
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}hash') Hash:
34+
label.col-sm-2.control-label(for='block#{block.block}chain#{block.chain}hash') #{__('Hash')}:
3535
.col-sm-10
3636
input.form-control(id='block#{block.block}chain#{block.chain}hash', type='text' disabled)
3737

@@ -40,4 +40,4 @@
4040
i.icon-spinner.icon-spin.icon-large
4141
.col-sm-10
4242
button.btn.btn-primary.ladda-button(id='block#{block.block}chain#{block.chain}mineButton', data-style='expand-right')
43-
span.ladda-label Mine
43+
span.ladda-label #{__('Mine')}

views/layout.jade

+7-7
Original file line numberDiff line numberDiff line change
@@ -34,20 +34,20 @@ html
3434
span.icon-bar
3535
span.icon-bar
3636
span.icon-bar
37-
a.navbar-brand(href='/') Blockchain Demo
37+
a.navbar-brand(href='/') #{__('Blockchain Demo')}
3838
#navbar.collapse.navbar-collapse
3939
ul.nav.navbar-nav.navbar-right
4040
li(class={active: page === 'hash'})
41-
a(href='/hash') Hash
41+
a(href='/hash') #{__('Hash')}
4242
li(class={active: page === 'block'})
43-
a(href='/block') Block
43+
a(href='/block') #{__('Block')}
4444
li(class={active: page === 'blockchain'})
45-
a(href='/blockchain') Blockchain
45+
a(href='/blockchain') #{__('Blockchain')}
4646
li(class={active: page === 'distributed'})
47-
a(href='/distributed') Distributed
47+
a(href='/distributed') #{__('Distributed')}
4848
li(class={active: page === 'tokens'})
49-
a(href='/tokens') Tokens
49+
a(href='/tokens') #{__('Tokens')}
5050
li(class={active: page === 'coinbase'})
51-
a(href='/coinbase') Coinbase
51+
a(href='/coinbase') #{__('Coinbase')}
5252

5353
block content

views/tokens.jade

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ extends layout
22

33
block content
44
.container-fluid
5-
h1 Tokens
5+
h1 #{__('Tokens')}
66
- var peers = {1: 'A', 2: 'B', 3: 'C'}
77
- each peer, chain in peers
8-
h3 Peer #{peer}
8+
h3 #{__('Peer')} #{peer}
99
.row.row-horizon
1010
- var blocks = []
1111
- blocks.push({block: 1, chain: chain, nonce: 139358, txs: [{value: '25.00', from: 'Darcy', to: 'Bingley'},{value: '4.27', from: 'Elizabeth', to: 'Jane'},{value: '19.22', from: 'Wickham', to: 'Lydia'},{value: '106.44', from: 'Lady Catherine de Bourgh', to: 'Collins'},{value: '6.42', from: 'Charlotte', to: 'Elizabeth'}], previous: '0000000000000000000000000000000000000000000000000000000000000000'})

0 commit comments

Comments
 (0)