Browse Source

REF: brush up localizations

localNotifications
Overtorment 6 years ago
committed by Igor Korsakov
parent
commit
fc4543bbe1
  1. 39
      Loc.test.js
  2. 56
      loc/es.js
  3. 30
      loc/pt_BR.js
  4. 30
      loc/pt_PT.js
  5. 20
      loc/ru.js
  6. 30
      loc/ua.js

39
Loc.test.js

@ -0,0 +1,39 @@
/* global it, describe */
let assert = require('assert');
describe('Localization', () => {
it('has all keys in all locales', async () => {
let en = require('./loc/en');
let noErrors = true;
for (let key1 of Object.keys(en)) {
for (let key2 of Object.keys(en[key1])) {
// iterating all keys and subkeys in EN locale, which is main
for (let lang of ['es', 'pt_BR', 'pt_PT', 'ru', 'ua']) {
// iteratin all locales except EN
let locale = require('./loc/' + lang);
if (typeof locale[key1] === 'undefined') {
console.error('Missing: ' + lang + '.' + key1);
noErrors = false;
} else if (typeof locale[key1][key2] === 'undefined') {
console.error('Missing: ' + lang + '.' + key1 + '.' + key2);
noErrors = false;
}
// level 1 & 2 done, doing level 3 (if it exists):
if (typeof en[key1][key2] !== 'string') {
for (let key3 of Object.keys(en[key1][key2])) {
if (typeof locale[key1][key2][key3] === 'undefined') {
console.error('Missing: ' + lang + '.' + key1 + '.' + key2 + '.' + key3);
noErrors = false;
}
}
}
}
}
}
assert.ok(noErrors, 'Some localizations are missing keys');
});
});

56
loc/es.js

@ -1,4 +1,13 @@
module.exports = {
_: {
storage_is_encrypted: 'Your storage is encrypted. Password is required to decrypt it',
enter_password: 'Enter password',
bad_password: 'Bad pasword, try again',
months_ago: 'months ago',
days_ago: 'days ago',
hours_ago: 'hours ago',
never: 'never',
},
wallets: {
list: {
tabBarLabel: 'Monederos',
@ -6,6 +15,12 @@ module.exports = {
title: 'Mi Monederos de Bitcoin',
header: 'Un Monedero esta representado con secreto (clave privada) y una dirección' + 'que puedes compartir para recibir monedas.',
add: 'Añadir Monedero',
create_a_wallet: 'Create a wallet',
create_a_wallet1: "It's free and you can create",
create_a_wallet2: 'as many as you like',
latest_transaction: 'latest transaction',
empty_txs1: 'Your transactions will appear here,',
empty_txs2: 'none at the moment',
},
add: {
title: 'Añadir Monedero',
@ -14,6 +29,14 @@ module.exports = {
scan: 'Escaniar',
create: 'Crear',
label_new_segwit: 'Nuevo SegWit',
wallet_name: 'wallet name',
wallet_type: 'wallet type',
or: 'or',
import_wallet: 'Import wallet',
imported: 'Imported',
coming_soon: 'Coming soon',
lightning: 'Lightning',
bitcoin: 'Bitcoin',
},
details: {
title: 'Detalles del Monedero',
@ -29,6 +52,16 @@ module.exports = {
export: {
title: 'Exportacion de Monedero',
},
import: {
title: 'import',
explanation:
"Write here you mnemonic, private key, WIF, or anything you've got. BlueWallet will do it's best to guess the correct format and import your wallet",
imported: 'Imported',
error: 'Failed to import. Is it event valid?',
success: 'Success',
do_import: 'Import',
scan_qr: 'or scan QR code instead?',
},
scanQrWif: {
go_back: 'Regresar',
cancel: 'Cancelar',
@ -42,6 +75,7 @@ module.exports = {
with_address: ' con dirección ',
imported_segwit: 'Importado SegWit',
imported_legacy: 'Importado Legado',
imported_watchonly: 'Imported Watch-only',
},
},
transactions: {
@ -88,6 +122,7 @@ module.exports = {
satoshi_per_byte: 'satoshiPorByte',
memo: 'Comentario',
broadcast: 'Transmitir',
not_enough_fee: 'Not enough fee. Increase the fee',
},
},
receive: {
@ -104,6 +139,7 @@ module.exports = {
header: 'Ajustes',
plausible_deniability: 'Negación plausible...',
storage_not_encrypted: 'Almacenamiento: no esta encriptado',
storage_encrypted: 'Storage: encrypted',
password: 'Contraseña',
password_explain: 'Crea la contraseña que usarás para descifrar el almacenamiento',
retype_password: 'Ingresa la contraseña de nuevo',
@ -111,4 +147,24 @@ module.exports = {
encrypt_storage: 'Cifrar almacenamiento',
about: 'Sobre nosotros',
},
plausibledeniability: {
title: 'Plausible Deniability',
help:
'Under certain circumstances, you might be forced to disclose a ' +
'password. To keep your coins safe, BlueWallet can create another ' +
'encrypted storage, with a different password. Under the pressure, ' +
'you can disclose this password to a 3rd party. If entered in ' +
"BlueWallet, it will unlock new 'fake' storage. This will seem " +
'legit to a 3rd party, but will secretly keep your main storage ' +
'with coins safe.',
help2: 'New storage will be fully functional, and you can store some ' + 'minimum amounts there so it looks more believable.',
create_fake_storage: 'Create fake encrypted storage',
go_back: 'Go Back',
create_password: 'Create a password',
create_password_explanation: 'Password for fake storage should not match password for your main storage',
password_should_not_match: 'Password for fake storage should not match password for your main storage',
retype_password: 'Retype password',
passwords_do_not_match: 'Passwords do not match, try again',
success: 'Success',
},
};

30
loc/pt_BR.js

@ -3,6 +3,10 @@ module.exports = {
storage_is_encrypted: 'O armazenamento está encriptado. Uma password é necessaria para desencriptar',
enter_password: 'Inserir password',
bad_password: 'pasword errada, tentar novamente',
months_ago: 'months ago',
days_ago: 'days ago',
hours_ago: 'hours ago',
never: 'never',
},
wallets: {
list: {
@ -11,6 +15,12 @@ module.exports = {
title: 'Minhas Bitcoin Wallets',
header: 'Uma wallet representa um par entre um segredo (chave privada) e um endereço' + 'que pode partilhar para receber Bitcoin.',
add: 'Adicionar Wallet',
create_a_wallet: 'Create a wallet',
create_a_wallet1: "It's free and you can create",
create_a_wallet2: 'as many as you like',
latest_transaction: 'latest transaction',
empty_txs1: 'Your transactions will appear here,',
empty_txs2: 'none at the moment',
},
add: {
title: 'Adicionar Wallet',
@ -19,6 +29,14 @@ module.exports = {
scan: 'Scanear',
create: 'Criar',
label_new_segwit: 'Novo SegWit',
wallet_name: 'wallet name',
wallet_type: 'wallet type',
or: 'or',
import_wallet: 'Import wallet',
imported: 'Imported',
coming_soon: 'Coming soon',
lightning: 'Lightning',
bitcoin: 'Bitcoin',
},
details: {
title: 'Detalhes da Wallet',
@ -34,6 +52,16 @@ module.exports = {
export: {
title: 'Exportar Wallet',
},
import: {
title: 'import',
explanation:
"Write here you mnemonic, private key, WIF, or anything you've got. BlueWallet will do it's best to guess the correct format and import your wallet",
imported: 'Imported',
error: 'Failed to import. Is it event valid?',
success: 'Success',
do_import: 'Import',
scan_qr: 'or scan QR code instead?',
},
scanQrWif: {
go_back: 'Voltar',
cancel: 'Cancelar',
@ -47,6 +75,7 @@ module.exports = {
with_address: ' com endereço ',
imported_segwit: 'SegWit transferido',
imported_legacy: 'Legacy transferido',
imported_watchonly: 'Imported Watch-only',
},
},
transactions: {
@ -93,6 +122,7 @@ module.exports = {
satoshi_per_byte: 'satoshiPerByte',
memo: 'Nota pessoal',
broadcast: 'Difundir',
not_enough_fee: 'Not enough fee. Increase the fee',
},
},
receive: {

30
loc/pt_PT.js

@ -3,6 +3,10 @@ module.exports = {
storage_is_encrypted: 'O armazenamento está encriptado. Uma password é necessaria para desencriptar',
enter_password: 'Inserir password',
bad_password: 'pasword errada, tente novamente',
months_ago: 'months ago',
days_ago: 'days ago',
hours_ago: 'hours ago',
never: 'never',
},
wallets: {
list: {
@ -11,6 +15,12 @@ module.exports = {
title: 'Minhas Bitcoin Wallets',
header: 'Uma wallet representa um par entre um segredo (chave privada) e um endereço' + 'que pode partilhar para receber Bitcoin.',
add: 'Adicionar Wallet',
create_a_wallet: 'Create a wallet',
create_a_wallet1: "It's free and you can create",
create_a_wallet2: 'as many as you like',
latest_transaction: 'latest transaction',
empty_txs1: 'Your transactions will appear here,',
empty_txs2: 'none at the moment',
},
add: {
title: 'Adicionar Wallet',
@ -19,6 +29,14 @@ module.exports = {
scan: 'Scan',
create: 'Criar',
label_new_segwit: 'Novo SegWit',
wallet_name: 'wallet name',
wallet_type: 'wallet type',
or: 'or',
import_wallet: 'Import wallet',
imported: 'Imported',
coming_soon: 'Coming soon',
lightning: 'Lightning',
bitcoin: 'Bitcoin',
},
details: {
title: 'Detalhes da Wallet',
@ -34,6 +52,16 @@ module.exports = {
export: {
title: 'Exportar Wallet',
},
import: {
title: 'import',
explanation:
"Write here you mnemonic, private key, WIF, or anything you've got. BlueWallet will do it's best to guess the correct format and import your wallet",
imported: 'Imported',
error: 'Failed to import. Is it event valid?',
success: 'Success',
do_import: 'Import',
scan_qr: 'or scan QR code instead?',
},
scanQrWif: {
go_back: 'Voltar',
cancel: 'Cancelar',
@ -47,6 +75,7 @@ module.exports = {
with_address: ' com endereço ',
imported_segwit: 'SegWit transferido',
imported_legacy: 'Legacy transferido',
imported_watchonly: 'Imported Watch-only',
},
},
transactions: {
@ -93,6 +122,7 @@ module.exports = {
satoshi_per_byte: 'satoshiPerByte',
memo: 'Nota pessoal',
broadcast: 'Difundir',
not_enough_fee: 'Not enough fee. Increase the fee',
},
},
receive: {

20
loc/ru.js

@ -29,6 +29,14 @@ module.exports = {
scan: 'Отсканировать',
create: 'Создать',
label_new_segwit: 'Новый SegWit',
wallet_name: 'wallet name',
wallet_type: 'wallet type',
or: 'or',
import_wallet: 'Import wallet',
imported: 'Imported',
coming_soon: 'Coming soon',
lightning: 'Lightning',
bitcoin: 'Bitcoin',
},
details: {
title: 'Информация о Кошельке',
@ -44,6 +52,16 @@ module.exports = {
export: {
title: 'Экспорт Кошелька',
},
import: {
title: 'import',
explanation:
"Write here you mnemonic, private key, WIF, or anything you've got. BlueWallet will do it's best to guess the correct format and import your wallet",
imported: 'Imported',
error: 'Failed to import. Is it event valid?',
success: 'Success',
do_import: 'Import',
scan_qr: 'or scan QR code instead?',
},
scanQrWif: {
go_back: 'Назад',
cancel: 'Отмена',
@ -57,6 +75,7 @@ module.exports = {
with_address: ' с адресом ',
imported_segwit: 'Импортированый SegWit',
imported_legacy: 'Импортированый Legacy',
imported_watchonly: 'Imported Watch-only',
},
},
transactions: {
@ -103,6 +122,7 @@ module.exports = {
satoshi_per_byte: 'Сатоши на байт',
memo: 'Примечание',
broadcast: 'Отправить',
not_enough_fee: 'Not enough fee. Increase the fee',
},
},
receive: {

30
loc/ua.js

@ -3,6 +3,10 @@ module.exports = {
storage_is_encrypted: 'Ваше сховище зашифроване. Введіть пароль для розшифровки',
enter_password: 'Введіть пароль',
bad_password: 'Невірний пароль, спробуйте ще раз',
months_ago: 'months ago',
days_ago: 'days ago',
hours_ago: 'hours ago',
never: 'never',
},
wallets: {
list: {
@ -11,6 +15,12 @@ module.exports = {
title: 'Мої Біткоїн Гаманці',
header: 'Гаманець це секретний (приватний) ключ, і відповідна йому адреса на яку можна отримувати біткоїни',
add: 'Додати Гаманець',
create_a_wallet: 'Create a wallet',
create_a_wallet1: "It's free and you can create",
create_a_wallet2: 'as many as you like',
latest_transaction: 'latest transaction',
empty_txs1: 'Your transactions will appear here,',
empty_txs2: 'none at the moment',
},
add: {
title: 'Додати Гаманець',
@ -19,6 +29,14 @@ module.exports = {
scan: 'Відсканувати',
create: 'Створити',
label_new_segwit: 'Новий SegWit',
wallet_name: 'wallet name',
wallet_type: 'wallet type',
or: 'or',
import_wallet: 'Import wallet',
imported: 'Imported',
coming_soon: 'Coming soon',
lightning: 'Lightning',
bitcoin: 'Bitcoin',
},
details: {
title: 'Інформація про Гаманець',
@ -34,6 +52,16 @@ module.exports = {
export: {
title: 'Експорт Гаманця',
},
import: {
title: 'import',
explanation:
"Write here you mnemonic, private key, WIF, or anything you've got. BlueWallet will do it's best to guess the correct format and import your wallet",
imported: 'Imported',
error: 'Failed to import. Is it event valid?',
success: 'Success',
do_import: 'Import',
scan_qr: 'or scan QR code instead?',
},
scanQrWif: {
go_back: 'Назад',
cancel: 'Відміна',
@ -47,6 +75,7 @@ module.exports = {
with_address: ' з адресою ',
imported_segwit: 'Імпортований SegWit',
imported_legacy: 'Імпортований Legacy',
imported_watchonly: 'Imported Watch-only',
},
},
transactions: {
@ -93,6 +122,7 @@ module.exports = {
satoshi_per_byte: 'Сатоші на байт',
memo: 'Примітка',
broadcast: 'Відправити',
not_enough_fee: 'Not enough fee. Increase the fee',
},
},
receive: {

Loading…
Cancel
Save