diff --git a/.gitignore b/.gitignore
index 1c375d353..28fe0f592 100644
--- a/.gitignore
+++ b/.gitignore
@@ -45,6 +45,11 @@ js/copayMain.js
css/copay.min.css
css/vendors.min.css
+# translation
+po/*
+!po/*.po
+js/translations.js
+
webapp
browser-extensions/chrome/copay-chrome-extension
browser-extensions/chrome/copay-chrome-extension.zip
diff --git a/Gruntfile.js b/Gruntfile.js
index 0183f688e..4b1216fb4 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -8,6 +8,7 @@ module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
+ grunt.loadNpmTasks('grunt-angular-gettext');
// Project Configuration
grunt.initConfig({
@@ -105,7 +106,8 @@ module.exports = function(grunt) {
'lib/angular-qrcode/qrcode.js',
'lib/ng-idle/angular-idle.min.js',
'lib/angular-foundation/mm-foundation.min.js',
- 'lib/angular-foundation/mm-foundation-tpls.min.js'
+ 'lib/angular-foundation/mm-foundation-tpls.min.js',
+ 'lib/angular-gettext/dist/angular-gettext.min.js'
],
dest: 'lib/angularjs-all.js'
},
@@ -117,6 +119,7 @@ module.exports = function(grunt) {
'js/routes.js',
'js/services/*.js',
'js/controllers/*.js',
+ 'js/translations.js',
'js/mobile.js', // PLACEHOLDER: CORDOVA SRIPT
'js/init.js'
],
@@ -146,10 +149,28 @@ module.exports = function(grunt) {
'lib/vendors.js': ['lib/vendors.js']
}
}
+ },
+ nggettext_extract: {
+ pot: {
+ files: {
+ 'po/template.pot': ['index.html', 'views/*.html', 'views/**/*.html']
+ }
+ },
+ },
+ nggettext_compile: {
+ all: {
+ options: {
+ module: 'copayApp'
+ },
+ files: {
+ 'js/translations.js': ['po/*.po']
+ }
+ },
}
});
- grunt.registerTask('default', ['shell:dev', 'concat', 'cssmin']);
- grunt.registerTask('prod', ['shell:prod', 'concat', 'cssmin', 'uglify']);
+ grunt.registerTask('default', ['shell:dev', 'nggettext_compile', 'concat', 'cssmin']);
+ grunt.registerTask('prod', ['shell:prod', 'nggettext_compile', 'concat', 'cssmin', 'uglify']);
+ grunt.registerTask('translate', ['nggettext_extract']);
};
diff --git a/bower.json b/bower.json
index e5060c602..9300e2b27 100644
--- a/bower.json
+++ b/bower.json
@@ -11,6 +11,7 @@
"angular-route": "~1.2.14",
"angular-qrcode": "~3.1.0",
"angular-mocks": "~1.2.14",
+ "angular-gettext": "~1.1.0",
"mocha": "~1.18.2",
"chai": "~1.9.1",
"crypto-js": "http://crypto-js.googlecode.com/files/CryptoJS%20v3.1.2.zip",
diff --git a/config.js b/config.js
index af79f4175..984e1b2c8 100644
--- a/config.js
+++ b/config.js
@@ -1,5 +1,6 @@
'use strict';
var defaultConfig = {
+ defaultLanguage: 'en',
// DEFAULT network (livenet or testnet)
networkName: 'testnet',
forceNetwork: false,
diff --git a/js/app.js b/js/app.js
index 726a00922..177755b2a 100644
--- a/js/app.js
+++ b/js/app.js
@@ -24,6 +24,7 @@ var copayApp = window.copayApp = angular.module('copayApp', [
'mm.foundation',
'monospaced.qrcode',
'ngIdle',
+ 'gettext',
'copayApp.filters',
'copayApp.services',
'copayApp.controllers',
diff --git a/js/controllers/settings.js b/js/controllers/settings.js
index 0e72fceb2..4e3020666 100644
--- a/js/controllers/settings.js
+++ b/js/controllers/settings.js
@@ -9,6 +9,22 @@ angular.module('copayApp.controllers').controller('SettingsController', function
$scope.insightPort = config.blockchain.port;
$scope.insightSecure = config.blockchain.schema === 'https';
$scope.forceNetwork = config.forceNetwork;
+ $scope.defaultLanguage = config.defaultLanguage || 'en';
+
+ $scope.availableLanguages = [{
+ name: 'English',
+ isoCode: 'en',
+ }, {
+ name: 'Spanish',
+ isoCode: 'es',
+ }];
+
+ for (var ii in $scope.availableLanguages) {
+ if ($scope.defaultLanguage === $scope.availableLanguages[ii].isoCode) {
+ $scope.selectedLanguage = $scope.availableLanguages[ii];
+ break;
+ }
+ }
$scope.unitOpts = [{
name: 'Satoshis (100,000,000 satoshis = 1BTC)',
@@ -90,7 +106,8 @@ angular.module('copayApp.controllers').controller('SettingsController', function
alternativeName: $scope.selectedAlternative.name,
alternativeIsoCode: $scope.selectedAlternative.isoCode,
- version: copay.version
+ version: copay.version,
+ defaultLanguage: $scope.selectedLanguage.isoCode
}));
// Go home reloading the application
diff --git a/js/controllers/version.js b/js/controllers/version.js
index f00fcc13a..e6c9216ab 100644
--- a/js/controllers/version.js
+++ b/js/controllers/version.js
@@ -6,6 +6,7 @@ angular.module('copayApp.controllers').controller('VersionController',
$scope.version = copay.version;
$scope.commitHash = copay.commitHash;
$scope.networkName = config.networkName;
+ $scope.defaultLanguage = config.defaultLanguage;
$http.get('https://api.github.com/repos/bitpay/copay/tags').success(function(data) {
var toInt = function(s) {
diff --git a/js/routes.js b/js/routes.js
index 3ff033a11..02c036251 100644
--- a/js/routes.js
+++ b/js/routes.js
@@ -79,7 +79,8 @@ angular
$idleProvider.warningDuration(20); // in seconds
$keepaliveProvider.interval(2); // in seconds
})
-.run(function($rootScope, $location, $idle) {
+.run(function($rootScope, $location, $idle, gettextCatalog) {
+ gettextCatalog.currentLanguage = config.defaultLanguage;
$idle.watch();
$rootScope.$on('$routeChangeStart', function(event, next, current) {
if (!localStorage || localStorage.length < 1) {
diff --git a/karma.conf.js b/karma.conf.js
index 331f325ac..e9c89b577 100644
--- a/karma.conf.js
+++ b/karma.conf.js
@@ -28,6 +28,7 @@ module.exports = function(config) {
'lib/angular-route/angular-route.min.js',
'lib/angular-foundation/mm-foundation.min.js',
'lib/angular-foundation/mm-foundation-tpls.min.js',
+ 'lib/angular-gettext/dist/angular-gettext.min.js',
'lib/inherits/inherits.js',
'lib/bitcore.js',
'lib/underscore/underscore.js',
@@ -49,6 +50,7 @@ module.exports = function(config) {
'js/directives.js',
'js/filters.js',
'js/controllers/*.js',
+ 'js/translations.js',
'js/init.js',
//Test-Specific Code
diff --git a/package.json b/package.json
index 6a3c094fe..facdc0eb3 100644
--- a/package.json
+++ b/package.json
@@ -65,6 +65,7 @@
"grunt-markdown": "0.5.0",
"grunt-mocha-test": "0.8.2",
"grunt-shell": "0.6.4",
+ "grunt-angular-gettext": "^0.2.15",
"istanbul": "0.2.10",
"karma": "0.12.9",
"karma-chrome-launcher": "0.1.3",
diff --git a/po/es.po b/po/es.po
new file mode 100644
index 000000000..872a4ae46
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,704 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: Copay\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.6.8\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: views/create.html
+msgid "(*) The limits are imposed by the bitcoin network."
+msgstr "(*) Los límites son impuestos por la red de bitcoin."
+
+#: views/more.html
+msgid ""
+"ALL Transactions Proposals will be discarted. This need to be done on "
+"ALL peers of a wallet, to prevent the old proposals to be resynced "
+"again.\n"
+" "
+msgstr ""
+"TODAS las Propuestas de Transacciones serán descartadas. Es necesario que lo "
+"hagan TODOS los compañeros del monedero, para prevenir que las viejas "
+"propuestas sean re sincronizadas de nuevo.\n"
+" "
+
+#: views/modals/address-book.html
+msgid "Add Address"
+msgstr "Agregar Dirección"
+
+#: views/modals/address-book.html
+msgid "Add Address Book Entry"
+msgstr "Nueva entrada"
+
+#: views/send.html
+msgid "Add New Entry"
+msgstr "Nueva Entrada"
+
+#: views/send.html views/modals/address-book.html
+msgid "Address"
+msgstr "Dirección"
+
+#: views/send.html
+msgid "Address Book"
+msgstr "Libreta de Direcciones"
+
+#: views/addresses.html
+msgid "Addresses"
+msgstr "Direcciones"
+
+#: views/settings.html
+msgid "Alternative Currency"
+msgstr "Moneda Alternativa"
+
+#: views/send.html
+msgid "Amount"
+msgstr "Importe"
+
+#: views/send.html
+msgid "Amount in"
+msgstr "Importe en"
+
+#: views/more.html
+msgid "Are you sure to delete this wallet from this computer?"
+msgstr "¿Estas seguro de borrar este monedero de tu computadora?"
+
+#: views/join.html views/open.html
+msgid "Authenticating and looking for peers..."
+msgstr "Autenticando y buscando compañeros..."
+
+#: views/create.html views/import.html views/join.html views/open.html
+#: views/settings.html views/warning.html views/errors/404.html
+msgid "Back"
+msgstr "Volver"
+
+#: views/more.html
+msgid "Backup"
+msgstr "Copia de Seguridad"
+
+#: views/copayers.html
+msgid "Backup wallet"
+msgstr "Hacer copia de seguridad"
+
+#: views/includes/sidebar-mobile.html views/includes/sidebar.html
+msgid "Balance"
+msgstr "Balance"
+
+#: views/includes/sidebar-mobile.html views/includes/sidebar.html
+msgid "Balance locked in pending transaction proposals"
+msgstr "Balance bloqueado en las propuestas de transacción pendientes"
+
+#: views/settings.html
+msgid "Bitcoin Network"
+msgstr "Red Bitcoin"
+
+#: views/includes/transaction.html
+msgid "Broadcast Transaction"
+msgstr "Emitir Transacción"
+
+#: views/unsupported.html
+msgid "Browser unsupported"
+msgstr "Navegador no soportado"
+
+#: views/send.html views/modals/address-book.html
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: views/import.html
+msgid "Choose backup file from your computer"
+msgstr "Seleccione el archivo backup de su computadora"
+
+#: views/create.html views/join.html
+msgid "Choose your password"
+msgstr "Escribe tu contraseña"
+
+#: views/includes/sidebar-mobile.html views/includes/sidebar.html
+msgid "Close"
+msgstr "Cerrar"
+
+#: views/transactions.html
+msgid "Confirmations"
+msgstr "Confirmaciones"
+
+#: views/warning.html
+msgid "Continue anyways"
+msgstr "Continuar de todas maneras"
+
+#: views/includes/peer-list.html
+msgid "Copayers"
+msgstr "Compañeros"
+
+#: views/modals/qr-address.html
+msgid "Copy to clipboard"
+msgstr "Copiar al portapapeles"
+
+#: views/home.html
+msgid "Create a new wallet"
+msgstr "Crear un nuevo monedero"
+
+#: views/home.html
+msgid "Create a wallet"
+msgstr "Crea un monedero"
+
+#: views/create.html
+msgid "Create new wallet"
+msgstr "Crear nuevo monedero"
+
+#: views/create.html
+msgid "Create {{requiredCopayers}}-of-{{totalCopayers}} wallet"
+msgstr "Crea monedero {{requiredCopayers}}-de-{{totalCopayers}}"
+
+#: views/create.html
+msgid "Creating wallet..."
+msgstr "Creando monedero..."
+
+#: views/send.html
+msgid "Creator"
+msgstr "Creador"
+
+#: views/send.html
+msgid "Date"
+msgstr "Fecha"
+
+#: views/more.html
+msgid "Delete"
+msgstr "Eliminar"
+
+#: views/more.html
+msgid "Delete Wallet"
+msgstr "Borrar Monedero"
+
+#: views/copayers.html
+msgid "Delete wallet"
+msgstr "Borrar monedero"
+
+#: views/copayers.html
+msgid "Download Backup"
+msgstr "Descargar Copia de Seguridad"
+
+#: views/more.html
+msgid "Download File"
+msgstr "Descargar Archivo"
+
+#: views/copayers.html
+msgid "Download seed backup"
+msgstr "Descargar copia de seguridad"
+
+#: views/send.html
+msgid "Empty. Create an alias for your addresses"
+msgstr "Vacío. Crea una etiqueta para tus direcciones"
+
+#: views/create.html
+msgid "Family vacation funds"
+msgstr "Fondos para vacaciones en familia"
+
+#: views/transactions.html views/includes/transaction.html
+msgid "Fee"
+msgstr "Tasa"
+
+#: views/join.html
+msgid "Get QR code"
+msgstr "Obtener código QR"
+
+#: views/create.html views/import.html views/join.html views/more.html
+#: views/transactions.html
+msgid "Hide"
+msgstr "Ocultar"
+
+#: views/dummy-translations.html
+msgid "History"
+msgstr "Historial"
+
+#: views/more.html
+msgid ""
+"If all funds have been removed from your wallet and you do not wish to have "
+"the wallet data stored on your computer anymore, you can delete your wallet."
+msgstr ""
+"Si todos los fondos fueron removidos de tu monedero y no deseas tener los "
+"datos guardados en tu computadora, puedes eliminar tu monedero."
+
+#: views/home.html
+msgid "Import a backup"
+msgstr "Importar backup"
+
+#: views/import.html
+msgid "Import backup"
+msgstr "Importar copia de seguridad"
+
+#: views/send.html
+msgid "Including fee of"
+msgstr "Incluye tasa de"
+
+#: views/settings.html
+msgid "Insight API server"
+msgstr "Servidor API Insight"
+
+#: views/settings.html
+msgid ""
+"Insight API server is open-source software. You can run your own instance, "
+"check Insight API Homepage"
+"a>"
+msgstr ""
+"Servidor API de insight es un software código-abierto. Puedes correr tu "
+"propia instancia en Insight "
+"API Homepage"
+
+#: views/send.html
+msgid "Insufficient funds"
+msgstr "Fondos insuficientes"
+
+#: views/more.html
+msgid ""
+"It's important to backup your wallet so that you can recover it in case of "
+"disaster"
+msgstr ""
+"Es importante hacer copia de seguridad de tu monedero para que puedas "
+"recuperarlo en caso de pérdidas"
+
+#: views/join.html
+msgid "Join"
+msgstr "Unirse"
+
+#: views/home.html views/join.html
+msgid "Join a Wallet in Creation"
+msgstr "Unirse a un monedero"
+
+#: views/send.html views/modals/address-book.html
+msgid "Label"
+msgstr "Etiqueta"
+
+#: views/settings.html
+msgid "Language"
+msgstr "Idioma"
+
+#: views/transactions.html
+msgid "Last transactions"
+msgstr "Últimas transacciones"
+
+#: views/send.html
+msgid "Leave a private message to your copayers"
+msgstr "Dejar mensaje privado a tus compañeros"
+
+#: views/includes/sidebar-mobile.html views/includes/sidebar.html
+msgid "Locked"
+msgstr "Bloqueado"
+
+#: views/more.html
+msgid "Master Private Key"
+msgstr "Master Private Key"
+
+#: views/includes/copayer.html views/includes/peer-list.html
+msgid "Me"
+msgstr "Yo"
+
+#: views/create.html
+msgid "Name"
+msgstr "Nombre"
+
+#: views/settings.html
+msgid ""
+"Network has been fixed to {{networkName}} in this setup. "
+"See copay.io for options to use Copay on "
+"both livenet and testnet."
+msgstr ""
+"La red fue fijada a {{networkName}} para esta "
+"configuración. Ver copay.io para más "
+"opciones de uso de Copay en livenet y testnet."
+
+#: views/copayers.html
+msgid "New Wallet Created"
+msgstr "Nuevo Monedero Creado"
+
+#: views/create.html
+msgid "Next"
+msgstr "Siguiente"
+
+#: views/transactions.html
+msgid "No transactions proposals yet."
+msgstr "Sin propuestas de transacciones aún."
+
+#: views/transactions.html
+msgid "No transactions yet."
+msgstr "Aún no hay transacciones."
+
+#: views/send.html views/modals/address-book.html
+msgid "Not valid"
+msgstr "No válido"
+
+#: views/send.html
+msgid "Notes"
+msgstr "Notas"
+
+#: views/copayers.html
+msgid "One person has"
+msgstr "Una persona"
+
+#: views/includes/transaction.html
+msgid "One signature missing"
+msgstr "Falta una firma"
+
+#: views/open.html
+msgid "Open"
+msgstr "Abrir"
+
+#: views/open.html
+msgid "Open Wallet"
+msgstr "Abrir Monedero"
+
+#: views/home.html
+msgid "Open a wallet"
+msgstr "Abrir un monedero"
+
+#: views/modals/qr-address.html
+msgid "Open in external application"
+msgstr "Abrir en una aplicación externa"
+
+#: views/warning.html
+msgid ""
+"Opening the wallet in multiple browser tabs could lead to unexpected results"
+msgstr ""
+"Abrir el monedero en varias ventanas del mismo navegador podría conducir a "
+"resultados inesperados"
+
+#: views/errors/404.html
+msgid "Page not found"
+msgstr "Página no encontrada"
+
+#: views/import.html
+msgid "Password"
+msgstr "Contraseña"
+
+#: views/join.html
+msgid "Paste wallet secret here"
+msgstr "Pegar código secreto del monedero aquí"
+
+#: views/more.html
+msgid ""
+"Pending Transactions Proposals will be discarted. This need to be done on "
+"ALL peers of a wallet, to prevent the old proposals to be resynced "
+"again.\n"
+" "
+msgstr ""
+"Las Propuestas de Transacciones Pendientes serán descartadas. Esto es "
+"necesario hacerlo con TODOS los compañeros del monedero, para "
+"prevenir que viejas propuestas sean re sincronizadas de nuevo.\n"
+" "
+
+#: views/settings.html
+msgid "Port"
+msgstr "Puerto"
+
+#: views/uri-payment.html
+msgid "Preparing payment..."
+msgstr "Preparando pago..."
+
+#: views/create.html views/join.html
+msgid "Private Key (Hex)"
+msgstr "Clave Privada (Hex)"
+
+#: views/includes/transaction.html
+msgid "Proposal ID"
+msgstr "ID de Propuesta"
+
+#: views/more.html
+msgid "Purge"
+msgstr "Purgar"
+
+#: views/more.html
+msgid "Purge ALL Transaction Proposals"
+msgstr "Purgar TODAS las Propuestas de Transacciones"
+
+#: views/more.html
+msgid "Purge All"
+msgstr "Purgar Todo"
+
+#: views/more.html
+msgid "Purge Pending Transaction Proposals"
+msgstr "Purgar Propuestas de Transacciones Pendientes"
+
+#: views/includes/copayer.html
+msgid "Ready"
+msgstr "Listo"
+
+#: views/dummy-translations.html
+msgid "Receive"
+msgstr "Recibir"
+
+#: views/includes/transaction.html
+msgid "Reject"
+msgstr "Rechazar"
+
+#: views/create.html views/join.html
+msgid "Repeat password"
+msgstr "Repite la contraseña"
+
+#: views/create.html views/import.html views/join.html
+msgid "Required"
+msgstr "Requerido"
+
+#: views/settings.html
+msgid "Save"
+msgstr "Guardar"
+
+#: views/more.html
+msgid "Scan"
+msgstr "Explorar"
+
+#: views/more.html
+msgid "Scan Wallet Addresses"
+msgstr "Explorar Direcciones del Monedero"
+
+#: views/import.html
+msgid "Select a backup file"
+msgstr "Seleccionar el archivo de copia de seguridad"
+
+#: views/create.html
+msgid "Select required signatures (*)"
+msgstr "Seleccione las firmas requeridas (*)"
+
+#: views/create.html
+msgid "Select total number of copayers (*)"
+msgstr "Seleccione el total de compañeros (*)"
+
+#: views/send.html
+msgid "Send"
+msgstr "Enviar"
+
+#: views/send.html
+msgid "Send Proposals"
+msgstr "Enviar Propuestas"
+
+#: views/send.html
+msgid "Send all funds"
+msgstr "Enviar todos los fondos"
+
+#: views/send.html
+msgid "Send to"
+msgstr "Enviar a"
+
+#: views/includes/transaction.html
+msgid "Sent"
+msgstr "Enviado"
+
+#: views/home.html views/more.html
+msgid "Settings"
+msgstr "Configuración"
+
+#: views/copayers.html
+msgid "Share this secret with your other copayers"
+msgstr "Compartir el código secreto con tus otros compañeros"
+
+#: views/create.html views/import.html views/join.html views/more.html
+#: views/transactions.html
+msgid "Show"
+msgstr "Mostrar"
+
+#: views/addresses.html
+msgid "Show all"
+msgstr "Ver todo"
+
+#: views/addresses.html
+msgid "Show less"
+msgstr "Ver menos"
+
+#: views/includes/transaction.html
+msgid "Sign"
+msgstr "Firmar"
+
+#: views/import.html
+msgid "Skipping fields: {{skipFields}}"
+msgstr "Saltear campos: {{skipFields}}"
+
+#: views/warning.html
+msgid "This wallet appears to be currently open."
+msgstr "Este monedero parece estar actualmente abierto."
+
+#: views/more.html
+msgid ""
+"This will scan the blockchain looking for addresses derived from your "
+"wallet, in case you have funds in addresses not yet generated (e.g.: you "
+"restored an old backup). This will also trigger a syncronization of "
+"addresses to other connected peers."
+msgstr ""
+"Esto verificará la blockchain buscando direcciones derivadas de tu monedero, "
+"en caso de tener fondo en direcciones que no fueron generadas aún (por ej.: "
+"si restauraste una copia de seguridad antigua). Esto también activará la "
+"sincronización de direcciones a los demás compañeros conectados."
+
+#: views/send.html
+msgid "To address"
+msgstr "Dirección"
+
+#: views/transactions.html
+msgid "Total"
+msgstr "Total"
+
+#: views/includes/transaction.html
+msgid "Transaction ID"
+msgstr "ID Transacción"
+
+#: views/transactions.html
+msgid "Transaction Proposals"
+msgstr "Propuestas de Transacción"
+
+#: views/includes/transaction.html
+msgid "Transaction finally rejected"
+msgstr "Transacción rechazada"
+
+#: views/settings.html
+msgid "Use SSL"
+msgstr "Usar SSL"
+
+#: views/send.html
+msgid "Use all funds"
+msgstr "Todos los fondos"
+
+#: views/join.html
+msgid "User information"
+msgstr "Información de Usuario"
+
+#: views/send.html views/modals/address-book.html
+msgid "Valid"
+msgstr "Válido"
+
+#: views/copayers.html
+msgid "Waiting Copayers for {{$root.wallet.getName()}}"
+msgstr "Esperando compañeros a {{$root.wallet.getName()}}"
+
+#: views/copayers.html
+msgid "Waiting copayers"
+msgstr "Esperando compañeros"
+
+#: views/copayers.html
+msgid "Waiting for other copayers to make a Backup"
+msgstr "Esperando que los otros compañeros hagan su copia de seguridad"
+
+#: views/copayers.html
+msgid "Waiting..."
+msgstr "Esperando..."
+
+#: views/join.html
+msgid "Wallet Secret"
+msgstr "Código Secreto del Monedero"
+
+#: views/join.html
+msgid "Wallet Secret is not valid!"
+msgstr "¡El código secreto no es válido!"
+
+#: views/settings.html
+msgid "Wallet Unit"
+msgstr "Unidad del monedero"
+
+#: views/create.html
+msgid "Wallet name"
+msgstr "Nombre del monedero"
+
+#: views/warning.html
+msgid "Warning!"
+msgstr "¡Advertencia!"
+
+#: views/create.html
+msgid "Your Wallet Password"
+msgstr "Contraseña de tu Monedero"
+
+#: views/more.html
+msgid ""
+"Your master private key contains the information to sign any "
+"transaction on this wallet. Handle with care."
+msgstr ""
+"Tu \"master private key\" contiene la información para firmar cualquier"
+"b> transacción de este monedero. Tenga cuidado al usar."
+
+#: views/create.html
+msgid "Your name"
+msgstr "Tu nombre"
+
+#: views/join.html
+msgid "Your name (optional)"
+msgstr "Tu nombre (opcional)"
+
+#: views/open.html
+msgid "Your password"
+msgstr "Tu contraseña"
+
+#: views/import.html
+msgid "Your wallet password"
+msgstr "Contraseña de tu monedero"
+
+#: views/create.html views/import.html views/join.html views/more.html
+msgid "advanced options"
+msgstr "opciones avanzadas"
+
+#: views/addresses.html
+msgid "change"
+msgstr "vuelto"
+
+#: views/transactions.html
+msgid "first seen at"
+msgstr "Visto el"
+
+#: views/transactions.html
+msgid "mined at"
+msgstr "Minado el"
+
+#: views/send.html
+msgid "not valid"
+msgstr "no válido"
+
+#: views/copayers.html views/includes/peer-list.html
+msgid "of"
+msgstr "de"
+
+#: views/send.html
+msgid "optional"
+msgstr "opcional"
+
+#: views/copayers.html
+msgid "people have"
+msgstr "personas"
+
+#: views/send.html views/modals/address-book.html
+msgid "required"
+msgstr "requerido"
+
+#: views/send.html
+msgid "too long!"
+msgstr "¡demasiado largo!"
+
+#: views/send.html
+msgid "valid!"
+msgstr "¡válido!"
+
+#: views/copayers.html
+msgid "yet to backup the wallet."
+msgstr "deben hacer su copia de seguridad"
+
+#: views/copayers.html
+msgid "yet to join."
+msgstr "deben unirse"
+
+#: views/includes/transaction.html
+msgid "{{tx.missingSignatures}} signatures missing"
+msgstr "Faltan {{tx.missingSignatures}} firmas"
+
+#~ msgid ""
+#~ "{{$root.wallet.requiredCopayers}}-of-{{$root.wallet.totalCopayers}} wallet"
+#~ msgstr "Monedero {{requiredCopayers}}-de-{{totalCopayers}}"
+
+#~ msgid "« Back"
+#~ msgstr "« Volver"
+
+#~ msgid "Fees"
+#~ msgstr "Tasas"
+
+#~ msgid ""
+#~ "Wallet\n"
+#~ " name"
+#~ msgstr ""
+#~ "Nombre del\n"
+#~ " monedero"
diff --git a/views/addresses.html b/views/addresses.html
index 5845c8b5b..75a1999ed 100644
--- a/views/addresses.html
+++ b/views/addresses.html
@@ -1,7 +1,7 @@
- Waiting...
+ Waiting...
- Addresses
+ Addresses
@@ -16,7 +16,7 @@
Waiting copayers
- Share this secret with your other copayers
+ Waiting copayers
+ Share this secret with your other copayers
New Wallet Created
+ New Wallet Created
Download Backup
+ Download Backup
{{$root.wallet.getName()}} :
- {{$root.wallet.requiredCopayers}}-of-{{$root.wallet.totalCopayers}}
+ {{$root.wallet.requiredCopayers}}-{{'of'|translate}}-{{$root.wallet.totalCopayers}}
+
Waiting Copayers for {{$root.wallet.getName()}}
- {{$root.wallet.requiredCopayers}}-of-{{$root.wallet.totalCopayers}} wallet
+ {{$root.wallet.requiredCopayers}}-{{'of'|translate}}-{{$root.wallet.totalCopayers}}
{{title}}
+ {{title|translate}}
{{noti.title}}
- {{noti.title|translate}}
+
- Copayers
+ Copayers
- {{$root.wallet.requiredCopayers}} of {{$root.wallet.totalCopayers}}
+ {{$root.wallet.requiredCopayers}} of {{$root.wallet.totalCopayers}}
@@ -15,7 +15,9 @@
width="30">
+
One signature missing
-+
{{tx.missingSignatures}} signatures missing
It's important to backup your wallet so that you can recover it in case of disaster
+It's important to backup your wallet so that you can recover it in case of disaster
If all funds have been removed from your wallet and you do not wish to have the wallet data stored on your computer anymore, you can delete your wallet.
+If all funds have been removed from your wallet and you do not wish to have the wallet data stored on your computer anymore, you can delete your wallet.
- Show - Hide - advanced options + Show + Hide + advanced options
Your master private key contains the information to sign any transaction on this wallet. Handle with care. +
+ Your master private key contains the information to sign any transaction on this wallet. Handle with care. +
This will scan the blockchain looking for addresses derived from your wallet, in case you have funds in addresses not yet generated (e.g.: you restored an old backup). This will also trigger a syncronization of addresses to other connected peers. +
+ This will scan the blockchain looking for addresses derived from your wallet, in case you have funds in addresses not yet generated (e.g.: you restored an old backup). This will also trigger a syncronization of addresses to other connected peers. +
Pending Transactions Proposals will be discarted. This need to be done on ALL peers of a wallet, to prevent the old proposals to be resynced again.
+ Purge Pending Transaction Proposals
+
+ Pending Transactions Proposals will be discarted. This need to be done on ALL peers of a wallet, to prevent the old proposals to be resynced again. +
ALL Transactions Proposals will be discarted. This need to be done on ALL peers of a wallet, to prevent the old proposals to be resynced again.
+ Purge ALL Transaction Proposals
+
+ ALL Transactions Proposals will be discarted. This need to be done on ALL peers of a wallet, to prevent the old proposals to be resynced again. +
diff --git a/views/open.html b/views/open.html index 1488e6b8f..5cbdce83b 100644 --- a/views/open.html +++ b/views/open.html @@ -1,7 +1,7 @@