diff --git a/.gitignore b/.gitignore index b510ad9bd..1b6bef1a9 100644 --- a/.gitignore +++ b/.gitignore @@ -5,8 +5,9 @@ js/.DS_Store npm-debug.log .DS_Store node_modules +test/sauce/node_modules/ build/ -src/js/config.js +config.js test/e2e/protractor.conf.js analytics.js res/nw/config.js @@ -14,6 +15,7 @@ deps/js/ripple/ deps/js/angular/ deps/js/angular-route/ deps/js/angular-mocks/ +deps/js/angular-messages/ deps/js/jquery/ deps/js/moment/ deps/js/spin.js/ diff --git a/.travis.yml b/.travis.yml index 618c2905c..f87ef66c9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,15 +1,34 @@ language: node_js node_js: - "0.10" +addons: + hosts: + - ripp.site +#addons: +# sauce_connect: true before_install: - "export DISPLAY=:99.0" - "sh -e /etc/init.d/xvfb start" - - npm install -g grunt-cli + - sudo apt-get update -qq + - npm install -g gulp + - echo "$TRAVIS_BUILD_DIR" + - echo "$SAUCE_USERNAME" + - cd test/sauce && npm install + - node launch_connect.js & + - $TRAVIS_BUILD_DIR/test/sauce/wait_for_browser_provider.sh + - cd $TRAVIS_BUILD_DIR before_script: - - "cp src/js/config-example.js src/js/config.js" + - "cp test/travis/config-travis.js config.js" + - "cp test/travis/ripple-travis.txt ripple.txt" - npm install -g bower - bower install -script: "grunt && npm run test-travis" + - npm install -g darkdarkdragon/se-interpreter + - sudo ps aux + - sudo ls -l /proc/*/exe || true +script: "./test/travis-run.sh" +after_script: + - curl -i http://ripp.site:3000/config.js + - curl -i http://ripp.site:3000/ripple.txt notifications: email: false @@ -19,3 +38,14 @@ notifications: on_success: change on_failure: always on_start: false +env: + global: + - SAUCE_CONNECT_VERSION=4.3.8 + - SAUCE_USERNAME=tonga + - SAUCE_ACCESS_KEY=1553f141-1258-4319-b20d-7743def99fbb + - secure: "g+bSaoKAx6YQTVof5kUBdWx/REaKzqzkP+CQqsU6Whx+rp9juOtJGNtfH++PaWP1hSslRJi2Ib+9+/EU6CXzLE6IlwLHcnBikexeeF28kEivwRqxosLERLQ0axk8VGw324kgUDG1DsJNKxZFPq+LlXkPcF5eVta+BcSz5BO2ygs=" + - secure: "BIFtSHbHke2SfyhCTjnSVwkQ3g8aGGV9ZR+tTSFQmp5RVMPEPTy0eiLx4qk+D/UTnJztQSqrtecVvhIa1iHtkwqecyS3/Hjs5h3F9pHNVdL5njk+sMcI4qL63ijpSG3j41jG81SHiCUi86u0FpGtrYzUaSBVe/DWEKwyXmYMlrM=" + - secure: "Evu2xM7r/up6jlpbMhG/tiDsXTNwsU9aoaiKieggQaSexWzQbMKB3xh/NqiGUYeKR8VVrmDxRmy1Ym5eTdK1Pca6JGXOEhUudI3xqMC/2ttXcUGwsLSpSoB1w5zOwg5O0CnSRGlwvCrh8jj2viIwbOWvCcTcf6QBsN6ro10UOJI=" + - secure: "dT8RdQjiwlYtic/55lZFQLEJwawnk+6O4W7gJCYZ1/PBDO7KlKz+3u0ODLC3H9vgAqQBL2m2pPtn4uFPyL7n8hscuzBbMolv6pPlAcj+AzMEfINrHJoDAkHcRR8RtityB+X82uh/KVY2lKNjfZoiiFUZwUP0DmVfKJCBQYg+uwU=" + +# - secure: "VJFHj5fr46Qf7h34xa/W6FmGvknPH57eQLJoEjKlZUYn0EGx9EliCdENfzAbtr3e4GnNvQh6X2bLA/lB7TRzoD84oyGkllkMayevQm/dViJbUBQsl7HOa6VwUwugW+o7T3+vPM4y5qqFv1B/fs3Fthl+eKUatccy9qK4xra1Hso=" diff --git a/Gruntfile.js b/Gruntfile.js deleted file mode 100644 index ee7f3f050..000000000 --- a/Gruntfile.js +++ /dev/null @@ -1,511 +0,0 @@ -var path = require('path'), - fs = require('fs'), - languages = require('./l10n/languages.json').active; - -var languageCodes = languages.map(function(i) { return i.code; }).join(' '); - -var BannerPlugin = require('webpack/lib/BannerPlugin'); - -module.exports = function(grunt) { - // grunt.loadTasks('scripts/grunt'); - grunt.loadNpmTasks('grunt-recess'); - grunt.loadNpmTasks('grunt-webpack'); - grunt.loadNpmTasks('grunt-preprocess'); - grunt.loadNpmTasks('grunt-contrib-concat'); - grunt.loadNpmTasks('grunt-contrib-uglify'); - grunt.loadNpmTasks('grunt-contrib-watch'); - grunt.loadNpmTasks('grunt-contrib-copy'); - grunt.loadNpmTasks('grunt-contrib-connect'); - grunt.loadNpmTasks('grunt-jade-l10n-extractor'); - grunt.loadNpmTasks('grunt-bower-task'); - grunt.loadNpmTasks('grunt-webfont'); - grunt.loadNpmTasks('grunt-shell'); - grunt.loadNpmTasks('grunt-lesslint'); - grunt.loadNpmTasks('grunt-jscs'); - - // Ripple client dependencies - var deps = ['deps/js/jquery/dist/jquery.js', - 'deps/js/authy.js', - 'deps/js/swfobject.js', - 'deps/js/setImmediate.js', - 'deps/js/underscore/underscore.js', - 'deps/js/downloadify.js', - 'deps/js/angular/angular.js', - 'deps/js/angular-route/angular-route.js', - 'deps/js/store.js/store.js', - 'deps/js/d3/d3.js', - 'deps/js/ripple/ripple-debug.js', - 'deps/js/ripple-sjcl.js', - 'deps/js/moment/moment.js', - 'deps/js/ripple-vault-client/ripple-vault-client-debug.js', - 'deps/js/bootstrap-modal.js', - 'deps/js/bootstrap-tooltip.js', - 'deps/js/bootstrap-popover.js', - 'deps/js/angular-bootstrap/ui-bootstrap-tpls.js', - 'deps/js/bootstrap-datepicker.js', - 'deps/js/spin.js/spin.js', - 'deps/js/snapjs/snap.js', - 'deps/js/ng-sortable/dist/ng-sortable.js', - 'deps/js/charts/ticker.js', - 'deps/js/charts/pricechart.js']; - - var compatIE = ['compat/ie/base64/base64.js', - 'compat/ie/ws/web_socket.js', - 'compat/ie/ws/config.js', - 'compat/ie/xdr/xdr.js']; - - var compatNW = ['compat/nw/setImmediate/setImmediate.js']; - - /** - * Returns true if the source is newer than the destination. - */ - var isNewer = function (src, dest) { - if (!fs.existsSync(dest)) { - return true; - } - var fromstat = fs.statSync(src); - var tostat = fs.statSync(dest); - return fromstat.mtime > tostat.mtime; - }; - - /** - * Where there are many files that compile to one, this returns true - * if any of the input files are newer than the output. - */ - var manyToOne = function (dest, src) { - var compile = true; - if (fs.existsSync(dest)) { - var from = grunt.file.expand(src); - var tostat = fs.statSync(dest); - compile = false; - for (var i = from.length - 1; i >= 0; i--) { - if (fs.statSync(from[i]).mtime > tostat.mtime) { - compile = true; - break; - } - } - } - return [{dest:dest, src:compile ? src : []}]; - }; - - /** - * Add a prefix to a filename or array of filenames. - */ - var prefix = function (pre, f) { - if (Array.isArray(f)) { - return f.map(prefix.bind(this, pre)); - } else if ('string' === typeof f) { - return pre + f; - } else { - return f; - } - }; - - grunt.registerTask('version', 'Describes current git commit', function (prop) { - var done = this.async(); - - grunt.log.write('Version: '); - - grunt.util.spawn({ - cmd: 'git', - args: ['describe', '--tags', '--always', '--dirty'] - }, function (err, result) { - if (err) { - grunt.config(prop || 'meta.version', 'unknown'); - grunt.log.writeln('Unable to determine version, continuing'.red); - return done(); - } - - grunt.config(prop || 'meta.version', result.stdout); - - grunt.log.writeln(result.stdout.green); - - done(result); - }); - }); - - grunt.registerTask('versionBranch', 'Describes current git branch', function (prop) { - var done = this.async(); - - grunt.log.write('Branch: '); - - grunt.util.spawn({ - cmd: 'git', - args: ['rev-parse', '--abbrev-ref', 'HEAD'] - }, function (err, result) { - if (err) { - grunt.config(prop || 'meta.versionBranch', 'unknown'); - grunt.log.writeln('Unable to determine branch, continuing'.red); - return done(); - } - - grunt.config(prop || 'meta.versionBranch', result.stdout); - - grunt.log.writeln(result.stdout.green); - - done(result); - }); - }); - - grunt.initConfig({ - pkg: grunt.file.readJSON('package.json'), - meta: {}, - shell: { - options: { - stdout: true, - failOnError: true - }, - startdevserver: { - command: - process.platform === 'darwin' ? 'sudo node ./scripts/web-server.js' - : 'node ./scripts/web-server.js' - }, - }, - recess: { - web: { - src: ['src/less/ripple/web.less'], - dest: 'build/dist/ripple.css', - options: { - compile: true - } - } - }, - concat: { - deps: { - src: prefix('build/', deps), - dest: 'build/dist/deps.js', - separator: ';' - }, - depsDebug: { - src: deps, - dest: 'build/dist/deps-debug.js', - separator: ';' - }, - compatIE: { - src: prefix('build/', compatIE), - dest: 'build/dist/compat_ie.js' - }, - compatIEDebug: { - src: compatIE, - dest: 'build/dist/compat_ie-debug.js' - }, - compatNW: { - src: prefix('build/', compatNW), - dest: 'build/dist/compat_nw.js' - }, - compatNWDebug: { - src: compatNW, - dest: 'build/dist/compat_nw-debug.js' - } - }, - uglify: { - // JavaScript dependencies - deps: { - expand: true, - src: deps, - dest: 'build/', - filter: function (from) { - return isNewer(from, 'build/' + from); - } - }, - individualDeps: { - expand: false, - files: { - 'build/bundle/web/js/deps/mixpanel.js': 'deps/js/mixpanel.js', - 'build/bundle/web/js/deps/modernizr.js': 'deps/js/modernizr.js' - } - }, - compatIE: { - expand: true, - src: compatIE, - dest: 'build/', - filter: function (from) { - return isNewer(from, 'build/' + from); - } - }, - compatNW: { - expand: true, - src: compatNW, - dest: 'build/', - filter: function (from) { - return isNewer(from, 'build/' + from); - } - } - }, - preprocess: { - web: { - src: 'src/index.html', - dest: 'build/dist/web/index.html', - options: { - context: { - MODE: 'release', - TARGET: 'web', - VERSION: '<%= meta.version %>', - VERSIONBRANCH: '<%= meta.versionBranch %>', - LANGUAGES: languageCodes - } - } - }, - webDebug: { - src: 'src/index.html', - dest: 'build/dist/web/index_debug.html', - options: { - context: { - MODE: 'debug', - TARGET: 'web', - VERSION: '<%= meta.version %>', - VERSIONBRANCH: '<%= meta.versionBranch %>', - LANGUAGES: languageCodes - } - } - } - }, - webfont: { - icons: { - options: { - engine: 'fontforge', - stylesheet: 'less', - classPrefix: 'icon-', - mixinPrefix: 'icon-', - relativeFontPath: '../res/icons/font', - syntax: 'bootstrap', - htmlDemo: false - }, - src: 'res/icons/svg/*.svg', - dest: 'res/icons/font/' - } - }, - copy: { - // TODO clear destination folders before copying - web: { - files: [ - {expand: true, src: ['build/dist/*.js'], - dest: 'build/bundle/web/js', flatten: true}, - {expand: true, src: ['build/dist/web/*.js'], - dest: 'build/bundle/web/js', flatten: true}, - {expand: true, src: ['build/dist/*.css'], - dest: 'build/bundle/web/css', flatten: true}, - {expand: true, src: ['res/fonts/*'], dest: 'build/bundle/web/fonts', flatten: true}, - {expand: true, src: ['res/icons/font/*'], dest: 'build/bundle/web'}, - {expand: true, src: ['img/**'], dest: 'build/bundle/web'}, - {src: 'build/dist/web/index.html', dest: 'build/bundle/web/index.html'}, - {src: 'build/dist/web/index_debug.html', dest: 'build/bundle/web/index_debug.html'}, - {src: 'src/js/config.js', dest: 'build/bundle/web/config.js'}, - {src: 'scripts/livereload.js', dest: 'build/bundle/web/livereload.js'}, - {src: 'deps/downloadify.swf', dest: 'build/bundle/web/swf/downloadify.swf' }, - {src: 'ripple.txt', dest: 'build/bundle/web/ripple.txt' }, - {src: 'src/callback.html', dest: 'build/bundle/web/callback.html'} - ] - } - }, - jade_l10n_extractor: { - templates: { - options: { - }, - files: [ - { src: ['src/jade/**/*.jade'], dest: 'l10n/templates/messages.pot' } - ] - } - }, - watch: { - livereload: { - files: ['build/css/**/*.css'], - tasks: [], - options: { livereload: true } - }, - scriptsDebug: { - files: ['src/js/**/*.js', 'src/jade/**/*.jade'], - tasks: ['webpack:webDebug', 'copy'], - options: { nospawn: true, livereload: true } - }, - deps: { - files: deps, - tasks: ['uglify:deps', 'uglify:individualDeps', 'concat:depsDebug', 'copy'], - options: { livereload: true } - }, - styles: { - files: 'src/less/**/*.less', - tasks: ['recess', 'copy'], - options: { livereload: true } - }, - index: { - files: ['src/index.html'], - tasks: ['version', 'versionBranch', 'preprocess:webDebug', 'copy'], - options: { livereload: true } - }, - callback: { - files: ['src/callback.html'], - tasks: ['copy'] - }, - config: { - files: ['src/js/config.js'], - options: { livereload: true } - }, - txt: { - files: ['ripple.txt'], - tasks: ['copy'], - options: { livereload: true } - } - }, - connect: { - debug: { - options: { - hostname: 'localhost', - port: 8005, - base: '.', - open: false, - middleware: function(connect, options) { - return [ - connect.static(options.base) - ]; - } - } - } - }, - bower: { - install: { - options: { - targetDir: './deps/js' - } - } - }, - lesslint: { - options: { - imports: ['src/less/ripple/*.less'], - csslint: { - ids: false, - 'adjoining-classes': false, - 'known-properties': false - } - }, - src: ['src/less/ripple/web.less'] - } - }); - - // Webpack - var webpack = { - options: { - module: { - preLoaders: [ - { - test: /\.js$/, - include: pathToRegExp(path.join(__dirname, 'src', 'js')), - loader: 'jshint-loader' - } - ] - }, - output: { - path: 'build/dist/' - }, - cache: true, - jshint: { - validthis: true, - laxcomma: true, - laxbreak: true, - browser: true, - eqnull: true, - debug: true, - devel: true, - boss: true, - expr: true, - asi: true, - sub: true, - jquery: true, - predef: [ - '_', - 'angular', - 'Options', - 'ripple', - 'setImmediate', - 'store' - ] - }, - plugins: [ - new BannerPlugin('Ripple Client v<%= meta.version %>\nCopyright (c) <%= grunt.template.today(\'yyyy\') %> <%= pkg.author.name %>\nLicensed under the <%= pkg.license %> license.') - ] - }, - webDebug: { - entry: { - web: './src/js/entry/web.js' - }, - module: { - loaders: [ - { test: /\.jade$/, loader: 'jade-l10n-loader' }, - { test: /\.json$/, loader: 'json-loader' } - ] - }, - output: { - filename: 'web/<%= pkg.name %>-debug.js' - }, - debug: true, - devtool: 'eval', - cache: false - } - }; - - languages.forEach(function(language){ - webpack['webL10n-' + language.name] = { - entry: { - web: './src/js/entry/web.js' - }, - module: { - loaders: [ - { test: /\.jade$/, loader: 'jade-l10n-loader?languageFile=./l10n/' + language.code + '/messages.po' }, - { test: /\.json$/, loader: 'json-loader' } - ] - }, - output: { - filename: 'web/<%= pkg.name %>-' + language.code + '.js' - }, - optimize: { - // TODO Minimization breaks our l10n mechanisms -// minimize: true - } - }; - }); - - grunt.config.set('webpack', webpack); - - // Tasks - // ----- - - // Default - builds the web version of the client - grunt.registerTask('default', ['bower:install', - 'version', - 'versionBranch', - 'preprocess', - 'webpack', - 'recess', - 'deps', - 'copy']); - - // Dev - builds the web version of the client excluding any locales - // Be sure to use English version for testing - grunt.registerTask('dev', ['bower:install', - 'version', - 'versionBranch', - 'preprocess', - 'webpack:webDebug', - 'webpack:webL10n-english', - 'recess', - 'deps', - 'copy']); - - // Deps only - only rebuilds the dependencies - grunt.registerTask('deps', ['uglify:deps', 'uglify:individualDeps', - 'concat:deps', 'concat:depsDebug', - 'uglify:compatIE', - 'concat:compatIE', 'concat:compatIEDebug', - 'uglify:compatNW', - 'concat:compatNW', 'concat:compatNWDebug']); - - // Node.js server to serve built files - grunt.registerTask('devserver', ['shell:startdevserver']); - - // Start server with auto-recompilation - grunt.registerTask('serve', ['connect:debug', 'watch']); -}; - -// Helpers -function escapeRegExpString(str) { return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&'); } -function pathToRegExp(p) { return new RegExp('^' + escapeRegExpString(p)); } diff --git a/README.md b/README.md index 636b4d929..9f4e2acf9 100644 --- a/README.md +++ b/README.md @@ -18,32 +18,30 @@ Questions? Contact us as support@ripple.com. ### Install Dependencies -Install Node.js, Grunt, Git and Python 2 if you haven't already. +Install Node.js, Gulp, Git and Python 2 if you haven't already. Install bower by running `sudo bower install --allow-root`. Fork and clone the ripple-client repository and run `npm install`. -Create a new config.js file and copy/paste from config-example.js into the same directory, located under 'src/js'. +Create a new config.js file and copy/paste from config-example.js into the same directory. ### Build -Run 'grunt' in your command line to build the client. +Run 'gulp' in your command line for development. -Your web client is in the 'build/bundle/web/' directory. Use 'index_debug.html' for development. +Run 'gulp dist' for the production ready client. -If you want to watch for changes and have the client rebuild for index_debug.html, run 'grunt watch' while you make changes. - -A web server is needed to serve the built files. Please have a look at our ['Setting Up Local Environment' wiki post](https://github.com/ripple/ripple-client/wiki/Setting-Up-Local-Environment) for more information. +Your web client is in the 'build/dist/' directory. ### Target backend By default, the [ripple.txt](https://wiki.ripple.com/Ripple.txt) file is pointed at the staging server. -__This means you will only be able to log in on your dev environment with an account created on [staging.ripple.com/client](https://staging.ripple.com/client).__ +__This means you will only be able to log in on your dev environment with an account created on [staging.rippletrade.com](https://staging.rippletrade.com).__ If you want to point your environment at the production server: - set the authinfo_url in ripple.txt (in the root of the repo directory) to: `https://id.ripple.com/v1/authinfo` (make sure to rebuild + clear browser cache) -- set the `activate_link` property in src/js/config.js to `http://ripple.com/client/#/register/activate` +- set the `activate_link` property in config.js to `https://rippletrade.com/#/register/activate` ## Directory Layout @@ -71,7 +69,7 @@ Stay tuned... ## Reporting Bugs -Have a bug or a feature request? [Please create a new issue](https://ripplelabs.atlassian.net/browse/WC). Before opening any issue, please search for [existing issues](https://ripplelabs.atlassian.net/browse/WC-1193?jql=project%20%3D%20WC) and read the [Issue Guidelines](https://github.com/rippleFoundation/ripple-client/blob/develop/CONTRIBUTING.md), written by [Nicolas Gallagher](https://github.com/necolas/). +Have a bug or a feature request? [Please create a new issue](https://ripplelabs.atlassian.net/browse/RT). Before opening any issue, please search for [existing issues](https://ripplelabs.atlassian.net/issues/?jql=project%20%3D%20RT) and read the [Issue Guidelines](https://github.com/ripple/ripple-client/blob/develop/CONTRIBUTING.md), written by [Nicolas Gallagher](https://github.com/necolas/). ## Contributing @@ -90,6 +88,7 @@ Keep track of development and community news. - Follow [@RippleLabs on Twitter](https://twitter.com/ripplelabs) - Like [Ripple Labs on Facebook](https://facebook.com/ripplelabs) - Subscribe to [@Ripple on Reddit](http://www.reddit.com/r/Ripple) +- Subscribe to [the Ripple user community on Reddit](http://www.reddit.com/r/Ripplers) - Have a question that's not a feature request or bug report? Send a message to [support@ripple.com](mailto:support@ripple.com) - Chat directly with our engineers! Join us [here](https://gitter.im/ripple/developers). diff --git a/bower.json b/bower.json index cba1d8888..5d056690c 100644 --- a/bower.json +++ b/bower.json @@ -1,9 +1,10 @@ { "name": "ripple-client", "dependencies": { - "ripple": "~0.10.1", + "ripple": "~0.12.5-rc2", "ripple-vault-client": "~0.4.7", "angular": "~1.3.12", + "angular-messages": "~1.3.12", "angular-route": "~1.3.12", "angular-mocks": "~1.3.12", "underscore": "~1.7.0", @@ -12,8 +13,8 @@ "store.js": "~1.3.16", "spin.js": "~2.0.1", "snapjs": "~1.9.3", - "angular-bootstrap": "~0.12.0", - "ng-sortable": "~1.1.9", + "angular-bootstrap": "~0.12.1", + "ng-sortable": "~1.2.2", "d3": "~3.5.3" }, "resolutions": { diff --git a/config-example.js b/config-example.js new file mode 100644 index 000000000..1c19b9468 --- /dev/null +++ b/config-example.js @@ -0,0 +1,125 @@ +/** + * Ripple Client Configuration + * + * Copy this file to config.js and edit to suit your preferences. + */ +var Options = { + // Local domain + // + // Which domain should ripple-client consider native? + domain: 'local.ripple.com', + + // Rippled to connect + server: { + trace: true, + trusted: true, + local_signing: true, + + servers: [ + { host: 's-west.ripple.com', port: 443, secure: true }, + { host: 's-east.ripple.com', port: 443, secure: true } + ], + + connection_offset: 0, + allow_partial_history: false + }, + + // DEPRECATED: Blobvault server (old blob protocol) + // + // The blobvault URL for the new login protocol is set via authinfo. You can + // still use this setting for the fallback feature. + blobvault: 'https://blobvault.ripple.com', + + // If set, login will persist across sessions (page reload). This is mostly + // intended for developers, be careful about using this in a real setting. + persistent_auth: false, + + historyApi: 'https://history.ripple.com:7443/v1', + + // Number of transactions each page has in balance tab notifications + transactions_per_page: 50, + + // Configure bridges + bridge: { + // Outbound bridges + out: { + // Bitcoin outbound bridge + // bitcoin: 'snapswap.us' + 'bitcoin': 'btc2ripple.com' + } + }, + + mixpanel: { + 'token': '', + // Don't track events by default + 'track': false + }, + + // production + // activate_link: 'http://rippletrade.com/#/register/activate', + // staging + activate_link: 'http://staging.ripple.com/client/#/register/activate', + + b2rAddress: 'rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q', + snapswapApi: 'https://snapswap.us/api/v1', + + // Number of ledgers ahead of the current ledger index where a tx is valid + tx_last_ledger: 3, + + // Set max transaction fee for network in drops of XRP + max_tx_network_fee: 200000, + + // Set max number of rows for orderbook + orderbook_max_rows: 20, + + // Show transaction confirmation page + confirmation: { + send: true, + exchange: true, + trade: true + }, + + // Show advanced parameters in the trust/gateway page + advanced_feature_switch: false, + + // Default gateway max trust amount under 'simplfied' view ie when advanced_feature_switch is false in trust/gateway page + gateway_max_limit: 1000000000, + + // Default threshold in XRPs for fee on RT to show higher load status + low_load_threshold: 0.012, + + // Ripple trade backend URL + backend_url: 'https://backend.rippletrade.com', + ids_url: 'https://id.ripple.com' +}; + +// Load client-side overrides +if (store.enabled) { + var settings = JSON.parse(store.get('ripple_settings') || '{}'); + + if (settings.server && settings.server.servers) { + Options.server.servers = settings.server.servers; + } + + if (settings.bridge) { + Options.bridge.out.bitcoin = settings.bridge.out.bitcoin.replace('https://www.bitstamp.net/ripple/bridge/out/bitcoin/', 'snapswap.us'); + } + + if (settings.blobvault) { + // TODO: test if url defined and valid + Options.blobvault = settings.blobvault.replace('payward.com', 'ripple.com'); + } + + if (settings.mixpanel) { + Options.mixpanel = settings.mixpanel; + } + + if (settings.max_tx_network_fee) { + Options.max_tx_network_fee = settings.max_tx_network_fee; + } + + Options.server.servers = Options.server.servers.map(function (server) { + server.host = server.host.replace(/s_(west|east)/, 's-$1'); + return server; + }); +} diff --git a/deps/gateways.json b/deps/gateways.json index 1c3ac9345..f2be009f6 100644 --- a/deps/gateways.json +++ b/deps/gateways.json @@ -31,7 +31,7 @@ "name": "SnapSwap", "accounts": [{ "address": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "currencies": ["USD","BTC","EUR","GBP"], + "currencies": ["USD", "BTC", "EUR", "GBP"], "hotwallets": ["rUQTpMqAF5jhykj4FExVeXakrZpiKF6cQV", "rhasPLL5GaXzBh5amQkN7Dr1SNF4Whb2ZT"] }] }, { @@ -59,7 +59,7 @@ "name": "Justcoin", "accounts": [{ "address": "rJHygWcTLVpSXkowott6kzgZU6viQSVYM1", - "currencies": ["LTC", "BTC","STR","EUR","NOK"], + "currencies": ["LTC", "BTC", "STR", "EUR", "NOK"], "hotwallets": [] }] }, { @@ -73,28 +73,21 @@ "name": "RippleSingapore", "accounts": [{ "address": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH", - "currencies": ["SGD"], - "hotwallets": [] - }] - }, { - "name": "RippleTradeJapan", - "accounts": [{ - "address": "rMAz5ZnK73nyNUL4foAvaxdreczCkG3vA6", - "currencies": ["JPY"], + "currencies": ["XAU", "XAG", "XPT", "SGD"], "hotwallets": [] }] }, { "name": "Bitso", "accounts": [{ "address": "rG6FZ31hDHN1K5Dkbma3PSB5uVCuVVRzfn", - "currencies": ["MXN","BTC"], + "currencies": ["MXN", "BTC"], "hotwallets": ["rHZaDC6tsGN2JWGeXhjKL6664RNCq5hu4B"] }] }, { "name": "Coinex", "accounts": [{ "address": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc", - "currencies": ["NZD","BTC","USD","AUD", "STR"], + "currencies": ["NZD", "BTC", "USD", "AUD", "STR"], "hotwallets": ["rGAmy1w1ENyTJ9BCAEicYyRM2Yk1iWZ7Z5"], "domain": "coinexgateway.com" }] @@ -102,7 +95,7 @@ "name": "RippleLatAm", "accounts": [{ "address": "rP5ShE8dGBH6hHtNvRESdMceen36XFBQmh", - "currencies": ["BRL","UYU","PEN","MXN","BTC","LTC","USD","CLP","ARS"], + "currencies": ["BRL", "UYU", "PEN", "MXN", "BTC", "LTC", "USD", "CLP", "ARS"], "hotwallets": ["raoFdQah8c8owTj4TPMr8o1WntnXybXCgB"], "domain": "ripplelatam.com" }] @@ -110,16 +103,11 @@ "name": "GBI", "accounts": [{ "address": "rrh7rf1gV2pXAoqA8oYbpHd8TKv5ZQeo67", - "currencies": [ - { - "label" : "XAU", - "code" : "0158415500000000C1F76FF6ECB0BAC600000000" - } - ] - }], - "hotwallets": [ - ], - "domain": "goldbullioninternational.com" + "currencies": ["XAU"], + "hotwallets": [ + ], + "domain": "goldbullioninternational.com" + }] }, { "name": "LakeBTC", "accounts": [{ @@ -166,14 +154,6 @@ }], "hotwallets": [], "domain": "ripple-market.jp" - }, { - "name": "PaxMoneta", - "accounts": [{ - "address": "rUkMKjQitpgAM5WTGk79xpjT38DEJY283d", - "currencies": ["KRW"] - }], - "hotwallets": ["rhLSigWL4J9JBBW1JFMBvaduDkVghG7cc2"], - "domain": "paxmoneta.com" }, { "name": "RippleExchangeTokyo", "accounts": [{ @@ -197,5 +177,12 @@ "currencies": ["ZAR"] }], "domain": "www.ice3x.co.za" + }, { + "name": "Senderas", + "accounts": [{ + "address": "rJypGvB8H2JBj1QVYofUTU8kFtWLspNWqs", + "currencies": ["GBP"] + }], + "domain": "www.senderas.com" } ] diff --git a/deps/js/charts/pricechart.js b/deps/js/charts/pricechart.js index 216aff3f2..8e4fdb1ad 100644 --- a/deps/js/charts/pricechart.js +++ b/deps/js/charts/pricechart.js @@ -1,8 +1,8 @@ /** - * ripplecharts - v0.0.1 - 2015-02-03 + * ripplecharts - v0.0.1 - 2015-03-10 * http://ripple.com * * Copyright (c) 2015 Ripple Labs, Inc. - * Licensed ISC <> + * Licensed ISC <> */ -var API="https://api.ripplecharts.com/api";var DOMAIN="https://ripplecharts.com";var PRICECHART_CSS=".priceChart{position:relative;display:inline-block;width:100%;clear:both}.priceChart .background{pointer-events:all;fill:none;stroke:#999;stroke-width:1;shape-rendering:crispEdges}.priceChart .loader{position:absolute;top:50%;left:50%;width:40px;margin-top:-20px;margin-left:-20px}.priceChart .axis{fill:#999;shape-rendering:crispEdges}.priceChart .axis .title{stroke-width:1;stroke:#bbb;fill:#bbb}.priceChart .axis path,.priceChart .axis line{fill:none;stroke:#999;stroke-width:1}.priceChart .axis text{font-size:10px}.priceChart .axis.price text,.priceChart .axis.volume text{font-size:12px}.priceChart path{fill:none;stroke:#3369a8;stroke-width:2;stroke-linejoin:round}.priceChart line{stroke:#999;shape-rendering:crispEdges}.priceChart .status{position:absolute;top:30%;width:100%;color:#aaa;text-align:center}.priceChart .hover{stroke:#999;stroke-width:1}.priceChart .focus{fill:rgba(255,255,255,0.5);stroke:#999}.priceChart .focus.dark{fill:#555;stroke:none}.candlesticks rect{fill:#fff;stroke:#a22;stroke-width:1}.candlesticks line{stroke:#a22}.candlesticks .filled rect{fill:#a22}.candlesticks .up rect{stroke:#3a3}.candlesticks .up line{stroke:#3a3}.candlesticks .up.filled rect{fill:#3a3}.candlesticks line{stroke-width:1}.candlesticks line.extent{stroke-width:1}.priceChart .volumeBars rect{fill:#ddd;stroke:#bbb}.priceChart .title{font-size:15px}.priceChart .chartDetails{position:absolute;padding:1px 5px;font-size:14px;color:#333;text-align:right;background:rgba(255,255,255,0.5);border-bottom:1px solid rgba(150,150,150,0.2)}.priceChart .chartDetails span{display:inline-block;margin:0 .25em;font-size:12px;color:#999}.priceChart .chartDetails b{margin:0 .25em}.priceChart .chartDetails .date{margin-right:20px;text-align:right}.priceChart .chartDetails .high{color:#090}.priceChart .chartDetails .low{color:#900}.priceChart .chartDetails .vwap{color:#86b}.priceChart .chartDetails .volume{color:#369}.dark .priceChart .background,.dark .priceChart .hover,.dark .priceChart .axis path,.dark .priceChart .axis line{stroke:#404040}.dark .priceChart .axis text{fill:#666;stroke:#666}.dark .priceChart .volumeBars rect{opacity:.4;stroke:#888}.dark .priceChart .status{color:#666}.dark .candlesticks line{stroke-width:1;stroke:#a00}.dark .candlesticks .filled rect{fill:#a00}.dark .candlesticks .up line{stroke:#393}.dark .candlesticks .up rect{stroke:#393}.dark .candlesticks .filled.up rect{fill:#393;stroke:#393}.dark .candlesticks rect{fill:#000;stroke-width:1;stroke:#a00}.dark .priceChart .chartDetails{background:rgba(255,255,255,0.1)}.dark{color:#999;background:#000}.light{background:#fff}@keyframes rotating{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes rotating{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}.loader{-webkit-animation:rotating 1s linear infinite;-moz-animation:rotating 1s linear infinite;-ms-animation:rotating 1s linear infinite;-o-animation:rotating 1s linear infinite;animation:rotating 1s linear infinite}";var LOADER_PNG="iVBORw0KGgoAAAANSUhEUgAAAC8AAAAyCAYAAADMb4LpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAoBJREFUeNrsmb1uwjAQgCHK1uyww072ssPePAAPwEBZYOABYKEd0p2xAw8Q9rCHPex0JzM9VxcpWM6vL3GixpIVifz4u8P36+7j8eg0dehlfHT/se/DxYTZj/zsw/SW78s71TpdSs0DNAOewRwlPHaCeQAhbrWBB/A5XN4yPh7AtEEARzk8gK/hMinw6k5GAI0A3CoIzsYK3h8qgYeFDdzjMmOuSvNTmC+S3xgV1b4s/JjIUU1VwI+I4JVoXun41/BBk+E9Ig5PBbxLBO9UDo+h/UcS/Fw0SaMw2K2kzdjKvA1oje3XXUHwhUxqTJkSs2i7zpgusK22AXC/TsVIHxOt14THvgD6WLtKKiLEN1x6ZYKXGWFFgAEleJnwIiP0qRfRc2wFMwTL4CHMmLzdoOwe6ClVkoU5+4C7F2B0ddBVRu8NE/LzuSguwDtTXMfkvNUVo68jElposDnd3ikS3kNvk/TeBW3ijnm8FWPcfEw4ggCHRHjUwqqmWfAJBNgKDRY1XldwNibYZnmGxz2+bkANMkElPxmsRdAJ6HDGdkS3OSbqNISDtVtcXbaCT0hzN9FiA7TFjPqTSIAB82paZMv0COEdQfbpx0TeosPUZFoPcW4NQN2Sy0Y2jDLSA78qyw3h74Tf9CqFx/1I1ca4pVRdZMmfVkInIA3wSrWOJtt+EITvtIyTwuP8dRw07i89S3YCDhnbJbLat0XFyFbiw3aOTsBGwsZ24ToapxXmdRY5BQg6Oc+WcPFFAQGe1oktwCHqzjLkO1LHkhjZWf6fdqZ1wXW8XN0DzOCGOA0MQgzWpThLjbRMwkrK4DyXG9ff6Tb5+L49GWnhW/gWvprxK8AA17MEbNrj+u8AAAAASUVORK5CYII=";function addFlowListener(a,b,c){var d="over"==b;a.addEventListener("OverflowEvent"in window?"overflowchanged":b+"flow",function(a){return a.type==b+"flow"||0==a.orient&&a.horizontalOverflow==d||1==a.orient&&a.verticalOverflow==d||2==a.orient&&a.horizontalOverflow==d&&a.verticalOverflow==d?(a.flow=b,c.call(this,a)):void 0},!1)}function fireEvent(a,b,c,d){var d=d||{},e=document.createEvent("Event");e.initEvent(b,"bubbles"in d?d.bubbles:!0,"cancelable"in d?d.cancelable:!0);for(var f in c)e[f]=c[f];a.dispatchEvent(e)}function addResizeListener(a,b){var c="onresize"in a;if(!c&&!a._resizeSensor){var d=a._resizeSensor=document.createElement("div");d.className="resize-sensor",d.innerHTML='
';var e=0,f=0,g=d.firstElementChild.firstChild,h=d.lastElementChild.firstChild,i=function(b){var c=!1,d=a.offsetWidth;e!=d&&(g.style.width=d-1+"px",h.style.width=d+1+"px",c=!0,e=d);var i=a.offsetHeight;f!=i&&(g.style.height=i-1+"px",h.style.height=i+1+"px",c=!0,f=i),c&&b.currentTarget!=a&&fireEvent(a,"resize")};"static"==getComputedStyle(a).position&&(a.style.position="relative",a._resizeSensor._resetPosition=!0),addFlowListener(d,"over",i),addFlowListener(d,"under",i),addFlowListener(d.firstElementChild,"over",i),addFlowListener(d.lastElementChild,"under",i),a.appendChild(d),i({})}var j=a._flowEvents||(a._flowEvents=[]);-1==j.indexOf(b)&&j.push(b),c||a.addEventListener("resize",b,!1),a.onresize=function(b){j.forEach(function(c){c.call(a,b)})}}function removeResizeListener(a,b){var c=a._flowEvents.indexOf(b);if(c>-1&&a._flowEvents.splice(c,1),!a._flowEvents.length){var d=a._resizeSensor;d&&(a.removeChild(d),d._resetPosition&&(a.style.position="static"),delete a._resizeSensor),"onresize"in a&&(a.onresize=null),delete a._flowEvents}a.removeEventListener("resize",b)}ApiHandler=function(a){function b(a){var b=d3.xhr(d.url+"/"+a);return b.header("Content-Type","application/json"),b}function c(a,b,c){return a.post(JSON.stringify(b)).on("load",function(a){var b=JSON.parse(a.response);c(null,b)}).on("error",function(a){c({status:a.status,text:a.statusText,message:a.response})}),a}var d=this;d.url=a,this.offersExercised=function(a,c,d){var e=b("offersExercised");return e.post(JSON.stringify(a)).on("load",function(b){var d=JSON.parse(b.response),e=[];if(d.length>1)if(a.reduce===!1){d.shift(),e=d.map(function(a){return{time:moment.utc(a[0]),price:a[1],amount:a[2],amount2:a[3],tx:a[4],id:a[5],type:""}});for(var f=null,g=e.length;g>-1;g--)f&&f.price>e[g].price?e[g].type="bid":f&&f.pricec?c=1:4>c&&(c=2);var d=n(N.currency),f=n(O.currency);F.select(".axis.price").select("text").text("Price ("+f+")"),F.select(".axis.volume").select("text").text("Volume ("+d+")"),D.datum(W,function(a){return a.startTime}).on("mousemove",i).on("touchmove",i).on("touchstart",i).on("touchend",i),r.domain([P,Q]).range([0,b.width]),t.domain([0,2*d3.max(W,function(a){return a.baseVolume})]).range([b.height,0]),"line"==R?(F.select(".line").style("opacity",1),F.select(".candlesticks").style("opacity",0),s.domain([.975*d3.min(W,function(a){return Math.min(a.close)}),1.025*d3.max(W,function(a){return Math.max(a.close)})]).range([b.height,0])):(F.select(".line").style("opacity",0),F.select(".candlesticks").style("opacity",1),s.domain([.975*d3.min(W,function(a){return Math.min(a.open,a.close,a.high,a.low)}),1.025*d3.max(W,function(a){return Math.max(a.open,a.close,a.high,a.low)})]).range([b.height,0]));var g=d3.svg.line().x(function(a){return r(a.startTime)}).y(function(a){return s(a.close)});F.select(".line").datum(W,function(a){return a.startTime}).transition().attr("d",g);var h=F.select(".candlesticks").selectAll("g").data(W,function(a){return a.startTime}),j=h.enter().append("g").attr("transform",function(a){return"translate("+r(a.startTime)+")"});j.append("line").attr("class","extent"),j.append("line").attr("class","high"),j.append("line").attr("class","low"),j.append("rect");var k=h.classed("up",function(a,b){if(b>0){var c=W[b-1];return c.close<=a.close}return a.open<=a.close}).classed("filled",function(a){return a.close<=a.open}).transition().attr("transform",function(a){return"translate("+r(a.startTime)+")"});k.select(".extent").attr("y1",function(a){return s(a.low)}).attr("y2",function(a){return s(a.high)}),k.select("rect").attr("x",-c/2).attr("width",c).attr("y",function(a){return s(Math.max(a.open,a.close))}).attr("height",function(a){return Math.abs(s(a.open)-s(a.close))+.5}),k.select(".high").attr("x1",-c/4).attr("x2",c/4).attr("y1",function(a){return s(a.high)}).attr("y2",function(a){return s(a.high)}),k.select(".low").attr("x1",-c/4).attr("x2",c/4).attr("y1",function(a){return s(a.low)}).attr("y2",function(a){return s(a.low)}),d3.transition(h.exit()).attr("transform",function(a){return"translate("+r(a.startTime)+")"}).style("opacity",1e-6).remove();var l=F.select(".volumeBars").selectAll("rect").data(W,function(a){return a.startTime});l.enter().append("rect"),l.data(W,function(a){return a.startTime}).transition().attr("x",function(a){return r(a.startTime)-c/3}).attr("y",function(a){return t(a.baseVolume)}).attr("width",c/1.2).attr("height",function(a){return b.height-t(a.baseVolume)}).style("fill","url(#gradient)"),l.exit().remove(),F.select(".x.axis").attr("transform","translate(0,"+s.range()[0]+")").call(u),F.select(".price.axis").attr("transform","translate("+r.range()[1]+", 0)").call(w),F.select(".volume.axis").call(v),p||(D.transition().duration(300).style("opacity",1),M.transition().duration(300).style("opacity",0))}function i(){var c,d,e,f,g,h=y.style("zoom")||1,i=d3.mouse(this)[0]/h,j=Math.max(0,Math.min(b.width+b.margin.left,i)),l=d3.bisect(W.map(function(a){return a.startTime}),r.invert(j-b.margin.left)),o=W[l];if(o){m?(c=m(o.open,O.currency),d=m(o.high,O.currency),e=m(o.low,O.currency),f=m(o.close,O.currency),a=m(o.vwap,O.currency),g=m(o.baseVolume,N.currency)):(c=o.open.toFixed(4),d=o.high.toFixed(4),e=o.low.toFixed(4),f=o.close.toFixed(4),f=o.vwap.toFixed(4),g=o.baseVolume.toFixed(2));var p=n(N.currency),q=z.select(".chartDetails");q.html(""+k(o.startTime.local(),S)+"O:"+c+"H:"+d+"L:"+e+"C:"+f+"VWAP:"+a+"Vol:"+g+" "+p+"").style("opacity",1),H.transition().duration(50).attr("transform","translate("+r(o.startTime)+")"),J.transition().duration(50).attr("transform","translate("+r(o.startTime)+","+s(o.close)+")"),I.transition().duration(50).attr("x1",r(o.startTime)).attr("x2",b.width).attr("y1",s(o.close)).attr("y2",s(o.close)),H.style("opacity",1),I.style("opacity",1),J.style("opacity",1)}}function j(a){var b;if(a||(a=moment().utc()),a.subtract("milliseconds",a.milliseconds()),"se"==S)b=a.subtract("seconds",a.seconds()%U);else if("mi"==S)b=a.subtract({seconds:a.seconds(),minutes:a.minutes()%U});else if("ho"==S)b=a.subtract({seconds:a.seconds(),minutes:a.minutes(),hours:a.hours()%U});else if("da"==S){var c,d;1===U?c=0:(d=a.diff(moment.utc([2013,0,1]),"hours")/24,c=0>d?U-(0-Math.floor(d))%U:Math.floor(d)%U),b=a.subtract({seconds:a.seconds(),minutes:a.minutes(),hours:a.hours(),days:c})}else"we"==S?b=a.subtract({seconds:a.seconds(),minutes:a.minutes(),hours:a.hours(),days:a.day(),weeks:a.isoWeek()%U}):"mo"==S&&(b=a.subtract({seconds:a.seconds(),minutes:a.minutes(),hours:a.hours(),days:a.date()-1,months:a.months()%U}));return b}function k(a,b){return"mi"==b?a.format("MMMM D")+" · "+a.format("hh:mm A")+" "+l(a):"ho"==b?a.format("MMMM D")+" · "+a.format("hh:mm A")+" "+l(a):"da"==b?a.utc().format("MMMM D")+" ("+a.utc().format("hh:mm A")+" UTC)":"mo"==b?a.utc().format("MMMM YYYY")+"UTC":"ye"==b?a.utc().format("YYYY"):a.format("MMMM D")+" · "+a.format("hh:mm:ss A")+" "+l(a)}function l(a){var b=a.toDate()||new Date,c=b+"",d=c.match(/\(([^\)]+)\)$/)||c.match(/([A-Z]+) [\d]{4}$/);return d&&(d=d[1].match(/[A-Z]/g).join("")),!d&&/(GMT\W*\d{4})/.test(c)?RegExp.$1:d}function m(a,b,c){return"undefined"!=typeof ripple&&ripple.Amount?(c||(c=6),ripple.Amount.from_human(a+" "+b).to_human({max_sig_digits:6})):a}function n(a){return"undefined"!=typeof ripple&&ripple.Currency?ripple.Currency.from_json(N.currency).to_human():a}var o,p,q=this,r=d3.time.scale(),s=d3.scale.linear(),t=d3.scale.linear(),u=d3.svg.axis().scale(r),v=d3.svg.axis().scale(t).orient("left").tickFormat(d3.format("s")),w=d3.svg.axis().scale(s).orient("right"),x=new ApiHandler(b.url);q.onStateChange=null;var y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W=[];if(R=b.type?b.type:"line",y=b.id?d3.select("#"+b.id):d3.select("body").append("div"),A=parseInt(y.style("height"),10),B=parseInt(y.style("width"),10),z=y.append("div").attr("class","priceChart"),y.classed("priceChartWrap"),b.margin||(b.margin={top:2,right:60,bottom:20,left:60}),b.width||(b.width=B-b.margin.left-b.margin.right),b.height?b.height-b.margin.top-b.margin.bottom:b.height=A?A-b.margin.top-b.margin.bottom:window.innerHeight-b.margin.top-b.margin.bottom,b.height<150&&(b.height=150),b.width<0&&(b.width=0),c(),b.resize&&"function"==typeof addResizeListener)addResizeListener(window,d);else{var X=parseInt(L.style("padding-left"),10)+parseInt(L.style("padding-right"),10);L.style("width",b.width-X+"px").style("right","auto"),z.style("width",b.width+b.margin.left+b.margin.right+"px"),z.style("height",(b.height||C)+b.margin.top+b.margin.bottom+"px")}this.resizeChart=function(){d()},this.fadeOut=function(){z.selectAll("svg").transition().duration(100).style("opacity",.5),D.on("mousemove",null).on("touchmove",null),L.style("opacity",0),K.style("opacity",0),z.selectAll(".hover").style("opacity",0),z.selectAll(".focus").style("opacity",0),M.transition().duration(100).style("opacity",1)},this.setType=function(a){R=a,W.length&&h()},this.getRawData=function(){return W},this.load=function(a,c,d){if(!a)return e("Base currency is required.");if(!c)return e("Counter currency is required.");if(!d||!d.interval)return e("Interval is required.");if(S=d.interval.slice(0,2),"se"==S)T=1;else if("mi"==S)T=60;else if("ho"==S)T=3600;else if("da"==S)T=86400;else if("we"==S)T=604800;else{if("mo"!=S)return e("Invalid Interval");T=2635200}q.onStateChange&&q.onStateChange("loading"),q.fadeOut(),N=a,O=c,U=d.multiple||1,W=[],p=!0,T*=U,V=j(d.end?moment.utc(d.end):null),Q=moment.utc(V).add("seconds",T),P=d.start?j(moment.utc(d.start)):moment.utc(d.offset(Q)),o&&o.stopListener(),b.live&&d.live&&f(),q.request&&q.request.abort(),q.request=x.offersExercised({startTime:P.toDate(),endTime:Q.toDate(),timeIncrement:d.interval,timeMultiple:d.multiple,descending:!1,base:N,counter:O},function(a){if(W.length&&a.length){var c=W.shift(),e=a[a.length-1],f=e.baseVolume+c.baseVolume;e.high>c.high&&(e.high=c.high),e.low365)c.interval="months",c.multiple=1;else if(d>120)c.interval="days",c.multiple=3;else if(d>30)c.interval="days",c.multiple=1;else if(d>5)c.interval="hours",c.multiple=4;else if(d>3)c.interval="hours",c.multiple=1;else{var f=Math.abs(c.start.diff(c.end,"hours"));f>12?(c.interval="minutes",c.multiple=15):f>2?(c.interval="minutes",c.multiple=5):(c.interval="minutes",c.multiple=1)}}console.log(c),e.load(c)},this.resize=g.resizeChart,this}; \ No newline at end of file +var API="https://api.ripplecharts.com/api";var DOMAIN="http://ripplecharts.com";var PRICECHART_CSS=".priceChart{position:relative;display:inline-block;width:100%;clear:both}.priceChart .background{pointer-events:all;fill:none;stroke:#999;stroke-width:1;shape-rendering:crispEdges}.priceChart .loader{position:absolute;top:50%;left:50%;width:40px;margin-top:-20px;margin-left:-20px}.priceChart .axis{fill:#999;shape-rendering:crispEdges}.priceChart .axis .title{stroke-width:1;stroke:#bbb;fill:#bbb}.priceChart .axis path,.priceChart .axis line{fill:none;stroke:#999;stroke-width:1}.priceChart .axis text{font-size:10px}.priceChart .axis.price text,.priceChart .axis.volume text{font-size:12px}.priceChart path{fill:none;stroke:#3369a8;stroke-width:2;stroke-linejoin:round}.priceChart line{stroke:#999;shape-rendering:crispEdges}.priceChart .status{position:absolute;top:30%;width:100%;color:#aaa;text-align:center}.priceChart .hover{stroke:#999;stroke-width:1}.priceChart .focus{fill:rgba(255,255,255,0.5);stroke:#999}.priceChart .focus.dark{fill:#555;stroke:none}.candlesticks rect{fill:#fff;stroke:#a22;stroke-width:1}.candlesticks line{stroke:#a22}.candlesticks .filled rect{fill:#a22}.candlesticks .up rect{stroke:#3a3}.candlesticks .up line{stroke:#3a3}.candlesticks .up.filled rect{fill:#3a3}.candlesticks line{stroke-width:1}.candlesticks line.extent{stroke-width:1}.priceChart .volumeBars rect{fill:#ddd;stroke:#bbb}.priceChart .title{font-size:15px}.priceChart .chartDetails{position:absolute;padding:1px 5px;font-size:14px;color:#333;text-align:right;background:rgba(255,255,255,0.5);border-bottom:1px solid rgba(150,150,150,0.2)}.priceChart .chartDetails span{display:inline-block;margin:0 .25em;font-size:12px;color:#999}.priceChart .chartDetails b{margin:0 .25em}.priceChart .chartDetails .date{margin-right:20px;text-align:right}.priceChart .chartDetails .high{color:#090}.priceChart .chartDetails .low{color:#900}.priceChart .chartDetails .vwap{color:#86b}.priceChart .chartDetails .volume{color:#369}.dark .priceChart .background,.dark .priceChart .hover,.dark .priceChart .axis path,.dark .priceChart .axis line{stroke:#404040}.dark .priceChart .axis text{fill:#666;stroke:#666}.dark .priceChart .volumeBars rect{opacity:.4;stroke:#888}.dark .priceChart .status{color:#666}.dark .candlesticks line{stroke-width:1;stroke:#a00}.dark .candlesticks .filled rect{fill:#a00}.dark .candlesticks .up line{stroke:#393}.dark .candlesticks .up rect{stroke:#393}.dark .candlesticks .filled.up rect{fill:#393;stroke:#393}.dark .candlesticks rect{fill:#000;stroke-width:1;stroke:#a00}.dark .priceChart .chartDetails{background:rgba(255,255,255,0.1)}.dark{color:#999;background:#000}.light{background:#fff}@keyframes rotating{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes rotating{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}.loader{-webkit-animation:rotating 1s linear infinite;-moz-animation:rotating 1s linear infinite;-ms-animation:rotating 1s linear infinite;-o-animation:rotating 1s linear infinite;animation:rotating 1s linear infinite}";var LOADER_PNG="iVBORw0KGgoAAAANSUhEUgAAAC8AAAAyCAYAAADMb4LpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAoBJREFUeNrsmb1uwjAQgCHK1uyww072ssPePAAPwEBZYOABYKEd0p2xAw8Q9rCHPex0JzM9VxcpWM6vL3GixpIVifz4u8P36+7j8eg0dehlfHT/se/DxYTZj/zsw/SW78s71TpdSs0DNAOewRwlPHaCeQAhbrWBB/A5XN4yPh7AtEEARzk8gK/hMinw6k5GAI0A3CoIzsYK3h8qgYeFDdzjMmOuSvNTmC+S3xgV1b4s/JjIUU1VwI+I4JVoXun41/BBk+E9Ig5PBbxLBO9UDo+h/UcS/Fw0SaMw2K2kzdjKvA1oje3XXUHwhUxqTJkSs2i7zpgusK22AXC/TsVIHxOt14THvgD6WLtKKiLEN1x6ZYKXGWFFgAEleJnwIiP0qRfRc2wFMwTL4CHMmLzdoOwe6ClVkoU5+4C7F2B0ddBVRu8NE/LzuSguwDtTXMfkvNUVo68jElposDnd3ikS3kNvk/TeBW3ijnm8FWPcfEw4ggCHRHjUwqqmWfAJBNgKDRY1XldwNibYZnmGxz2+bkANMkElPxmsRdAJ6HDGdkS3OSbqNISDtVtcXbaCT0hzN9FiA7TFjPqTSIAB82paZMv0COEdQfbpx0TeosPUZFoPcW4NQN2Sy0Y2jDLSA78qyw3h74Tf9CqFx/1I1ca4pVRdZMmfVkInIA3wSrWOJtt+EITvtIyTwuP8dRw07i89S3YCDhnbJbLat0XFyFbiw3aOTsBGwsZ24ToapxXmdRY5BQg6Oc+WcPFFAQGe1oktwCHqzjLkO1LHkhjZWf6fdqZ1wXW8XN0DzOCGOA0MQgzWpThLjbRMwkrK4DyXG9ff6Tb5+L49GWnhW/gWvprxK8AA17MEbNrj+u8AAAAASUVORK5CYII=";!function(){function a(a){var b=a.__resizeTriggers__,c=b.firstElementChild,d=b.lastElementChild,e=c.firstElementChild;d.scrollLeft=d.scrollWidth,d.scrollTop=d.scrollHeight,e.style.width=c.offsetWidth+1+"px",e.style.height=c.offsetHeight+1+"px",c.scrollLeft=c.scrollWidth,c.scrollTop=c.scrollHeight}function b(a){return a.offsetWidth!=a.__resizeLast__.width||a.offsetHeight!=a.__resizeLast__.height}function c(c){var d=this;a(this),this.__resizeRAF__&&h(this.__resizeRAF__),this.__resizeRAF__=g(function(){b(d)&&(d.__resizeLast__.width=d.offsetWidth,d.__resizeLast__.height=d.offsetHeight,d.__resizeListeners__.forEach(function(a){a.call(d,c)}))})}function d(){if(!f){var a=(s?s:"")+".resize-triggers { "+(t?t:"")+'visibility: hidden; opacity: 0; } .resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',b=document.head||document.getElementsByTagName("head")[0],c=document.createElement("style");c.type="text/css",c.styleSheet?c.styleSheet.cssText=a:c.appendChild(document.createTextNode(a)),b.appendChild(c),f=!0}}var e=document.attachEvent,f=!1;if(!e){var g=function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)};return function(b){return a(b)}}(),h=function(){var a=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.clearTimeout;return function(b){return a(b)}}(),i=!1,j="animation",k="",l="animationstart",m="Webkit Moz O ms".split(" "),n="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),o="",p=document.createElement("fakeelement");if(void 0!==p.style.animationName&&(i=!0),i===!1)for(var q=0;q
',b.appendChild(b.__resizeTriggers__),a(b),b.addEventListener("scroll",c,!0),l&&b.__resizeTriggers__.addEventListener(l,function(c){c.animationName==r&&a(b)})),b.__resizeListeners__.push(f))},window.removeResizeListener=function(a,b){e?a.detachEvent("onresize",b):(a.__resizeListeners__.splice(a.__resizeListeners__.indexOf(b),1),a.__resizeListeners__.length||(a.removeEventListener("scroll",c),a.__resizeTriggers__=!a.removeChild(a.__resizeTriggers__)))}}(),ApiHandler=function(a){function b(a){var b=d3.xhr(d.url+"/"+a);return b.header("Content-Type","application/json"),b}function c(a,b,c){return a.post(JSON.stringify(b)).on("load",function(a){var b=JSON.parse(a.response);c(null,b)}).on("error",function(a){c({status:a.status,text:a.statusText,message:a.response})}),a}var d=this;d.url=a,this.offersExercised=function(a,c,d){var e=b("offersExercised");return e.post(JSON.stringify(a)).on("load",function(b){var d=JSON.parse(b.response),e=[];if(d.length>1)if(a.reduce===!1){d.shift(),e=d.map(function(a){return{time:moment.utc(a[0]),price:a[1],amount:a[2],amount2:a[3],tx:a[4],id:a[5],type:""}});for(var f=null,g=e.length;g>-1;g--)f&&f.price>e[g].price?e[g].type="bid":f&&f.pricef?f=1:4>f&&(f=2);var g=n(N.currency),h=n(O.currency);F.select(".axis.price").select("text").text("Price ("+h+")"),F.select(".axis.volume").select("text").text("Volume ("+g+")"),D.datum(W,function(a){return a.startTime}).on("mousemove",i).on("touchmove",i).on("touchstart",i).on("touchend",i),r.domain([P,Q]).range([0,b.width]),t.domain([0,2*d3.max(W,function(a){return a.baseVolume})]).range([b.height,0]),"line"==R?(F.select(".line").style("opacity",1),F.select(".candlesticks").style("opacity",0),s.domain([.975*d3.min(W,function(a){return Math.min(a.close)}),1.025*d3.max(W,function(a){return Math.max(a.close)})]).range([b.height,0])):(F.select(".line").style("opacity",0),F.select(".candlesticks").style("opacity",1),s.domain([.975*d3.min(W,function(a){return Math.min(a.open,a.close,a.high,a.low)}),1.025*d3.max(W,function(a){return Math.max(a.open,a.close,a.high,a.low)})]).range([b.height,0]));var j=d3.svg.line().x(function(a){return r(a.startTime)}).y(function(a){return s(a.close)});F.select(".line").datum(W,function(a){return a.startTime}).transition().duration(c).attr("d",j);var k=F.select(".candlesticks").selectAll("g").data(W,function(a){return a.startTime}),l=k.enter().append("g").attr("transform",function(a){return"translate("+r(a.startTime)+")"});l.append("line").attr("class","extent"),l.append("line").attr("class","high"),l.append("line").attr("class","low"),l.append("rect");var m=k.classed("up",function(a,b){if(b>0){var c=W[b-1];return c.close<=a.close}return a.open<=a.close}).classed("filled",function(a){return a.close<=a.open}).transition().duration(c).attr("transform",function(a){return"translate("+r(a.startTime)+")"});m.select(".extent").attr("y1",function(a){return s(a.low)}).attr("y2",function(a){return s(a.high)}),m.select("rect").attr("x",-f/2).attr("width",f).attr("y",function(a){return s(Math.max(a.open,a.close))}).attr("height",function(a){return Math.abs(s(a.open)-s(a.close))+.5}),m.select(".high").attr("x1",-f/4).attr("x2",f/4).attr("y1",function(a){return s(a.high)}).attr("y2",function(a){return s(a.high)}),m.select(".low").attr("x1",-f/4).attr("x2",f/4).attr("y1",function(a){return s(a.low)}).attr("y2",function(a){return s(a.low)}),d3.transition(k.exit()).attr("transform",function(a){return"translate("+r(a.startTime)+")"}).style("opacity",1e-6).remove();var o=F.select(".volumeBars").selectAll("rect").data(W,function(a){return a.startTime});o.enter().append("rect"),o.data(W,function(a){return a.startTime}).transition().duration(c).attr("x",function(a){return r(a.startTime)-f/3}).attr("y",function(a){return t(a.baseVolume)}).attr("width",f/1.2).attr("height",function(a){return b.height-t(a.baseVolume)}).style("fill","url(#gradient)"),o.exit().remove(),F.select(".x.axis").attr("transform","translate(0,"+s.range()[0]+")").transition().duration(c).call(u),F.select(".price.axis").attr("transform","translate("+r.range()[1]+", 0)").transition().duration(c).call(w),F.select(".volume.axis").transition().duration(c).call(v),p||(D.transition().duration(c).style("opacity",1),M.transition().duration(c).style("opacity",0))}function i(){var c,d,e,f,g,h=y.style("zoom")||1,i=d3.mouse(this)[0]/h,j=Math.max(0,Math.min(b.width+b.margin.left,i)),l=d3.bisect(W.map(function(a){return a.startTime}),r.invert(j-b.margin.left)),o=W[l];if(o){m?(c=m(o.open,O.currency),d=m(o.high,O.currency),e=m(o.low,O.currency),f=m(o.close,O.currency),a=m(o.vwap,O.currency),g=m(o.baseVolume,N.currency)):(c=o.open.toFixed(4),d=o.high.toFixed(4),e=o.low.toFixed(4),f=o.close.toFixed(4),f=o.vwap.toFixed(4),g=o.baseVolume.toFixed(2));var p=n(N.currency),q=z.select(".chartDetails");q.html(""+k(o.startTime.local(),S)+"O:"+c+"H:"+d+"L:"+e+"C:"+f+"VWAP:"+a+"Vol:"+g+" "+p+"").style("opacity",1),H.transition().duration(50).attr("transform","translate("+r(o.startTime)+")"),J.transition().duration(50).attr("transform","translate("+r(o.startTime)+","+s(o.close)+")"),I.transition().duration(50).attr("x1",r(o.startTime)).attr("x2",b.width).attr("y1",s(o.close)).attr("y2",s(o.close)),H.style("opacity",1),I.style("opacity",1),J.style("opacity",1)}}function j(a){var b;if(a||(a=moment().utc()),a.subtract("milliseconds",a.milliseconds()),"se"==S)b=a.subtract("seconds",a.seconds()%U);else if("mi"==S)b=a.subtract({seconds:a.seconds(),minutes:a.minutes()%U});else if("ho"==S)b=a.subtract({seconds:a.seconds(),minutes:a.minutes(),hours:a.hours()%U});else if("da"==S){var c,d;1===U?c=0:(d=a.diff(moment.utc([2013,0,1]),"hours")/24,c=0>d?U-(0-Math.floor(d))%U:Math.floor(d)%U),b=a.subtract({seconds:a.seconds(),minutes:a.minutes(),hours:a.hours(),days:c})}else"we"==S?b=a.subtract({seconds:a.seconds(),minutes:a.minutes(),hours:a.hours(),days:a.day(),weeks:a.isoWeek()%U}):"mo"==S&&(b=a.subtract({seconds:a.seconds(),minutes:a.minutes(),hours:a.hours(),days:a.date()-1,months:a.months()%U}));return b}function k(a,b){return"mi"==b?a.format("MMMM D")+" · "+a.format("hh:mm A")+" "+l(a):"ho"==b?a.format("MMMM D")+" · "+a.format("hh:mm A")+" "+l(a):"da"==b?a.utc().format("MMMM D")+" ("+a.utc().format("hh:mm A")+" UTC)":"mo"==b?a.utc().format("MMMM YYYY")+"UTC":"ye"==b?a.utc().format("YYYY"):a.format("MMMM D")+" · "+a.format("hh:mm:ss A")+" "+l(a)}function l(a){var b=a.toDate()||new Date,c=b+"",d=c.match(/\(([^\)]+)\)$/)||c.match(/([A-Z]+) [\d]{4}$/);return d&&(d=d[1].match(/[A-Z]/g).join("")),!d&&/(GMT\W*\d{4})/.test(c)?RegExp.$1:d}function m(a,b,c){return"undefined"!=typeof ripple&&ripple.Amount?(c||(c=6),ripple.Amount.from_human(a+" "+b).to_human({max_sig_digits:6})):a}function n(a){return"undefined"!=typeof ripple&&ripple.Currency?ripple.Currency.from_json(N.currency).to_human():a}var o,p,q=this,r=d3.time.scale(),s=d3.scale.linear(),t=d3.scale.linear(),u=d3.svg.axis().scale(r),v=d3.svg.axis().scale(t).orient("left").tickFormat(d3.format("s")),w=d3.svg.axis().scale(s).orient("right"),x=new ApiHandler(b.url);q.onStateChange=null;var y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W=[];if(R=b.type?b.type:"line",y=b.id?d3.select("#"+b.id):d3.select("body").append("div"),A=parseInt(y.style("height"),10)||0,B=parseInt(y.style("width"),10)||0,z=y.append("div").attr("class","priceChart"),y.classed("priceChartWrap"),b.margin||(b.margin={top:2,right:60,bottom:20,left:60}),b.width||(b.width=B-b.margin.left-b.margin.right),b.height?b.height-b.margin.top-b.margin.bottom:b.height=A?A-b.margin.top-b.margin.bottom:window.innerHeight-b.margin.top-b.margin.bottom,b.height<150&&(b.height=150),b.width<0&&(b.width=0),c(),b.resize)addResizeListener(y.node(),d);else{var X=parseInt(L.style("padding-left"),10)+parseInt(L.style("padding-right"),10);L.style("width",b.width-X+"px").style("right","auto"),z.style("width",b.width+b.margin.left+b.margin.right+"px"),z.style("height",(b.height||C)+b.margin.top+b.margin.bottom+"px")}this.resizeChart=function(){d()},this.fadeOut=function(){z.selectAll("svg").transition().duration(100).style("opacity",.5),D.on("mousemove",null).on("touchmove",null),L.style("opacity",0),K.style("opacity",0),z.selectAll(".hover").style("opacity",0),z.selectAll(".focus").style("opacity",0),M.transition().duration(100).style("opacity",1)},this.setType=function(a){R=a,W.length&&h()},this.getRawData=function(){return W},this.load=function(a,c,d){if(!a)return e("Base currency is required.");if(!c)return e("Counter currency is required.");if(!d||!d.interval)return e("Interval is required.");if(S=d.interval.slice(0,2),"se"==S)T=1;else if("mi"==S)T=60;else if("ho"==S)T=3600;else if("da"==S)T=86400;else if("we"==S)T=604800;else{if("mo"!=S)return e("Invalid Interval");T=2635200}q.onStateChange&&q.onStateChange("loading"),q.fadeOut(),N=a,O=c,U=d.multiple||1,W=[],p=!0,T*=U,V=j(d.end?moment.utc(d.end):null),Q=moment.utc(V).add("seconds",T),P=d.start?j(moment.utc(d.start)):moment.utc(d.offset(Q)),o&&o.stopListener(),b.live&&d.live&&f(),q.request&&q.request.abort(),q.request=x.offersExercised({startTime:P.toDate(),endTime:Q.toDate(),timeIncrement:d.interval,timeMultiple:d.multiple,descending:!1,base:N,counter:O},function(a){if(W.length&&a.length){var c=W.shift(),e=a[a.length-1],f=e.baseVolume+c.baseVolume;e.high>c.high&&(e.high=c.high),e.low365)c.interval="months",c.multiple=1;else if(d>120)c.interval="days",c.multiple=3;else if(d>30)c.interval="days",c.multiple=1;else if(d>5)c.interval="hours",c.multiple=4;else if(d>3)c.interval="hours",c.multiple=1;else{var f=Math.abs(c.start.diff(c.end,"hours"));f>12?(c.interval="minutes",c.multiple=15):f>2?(c.interval="minutes",c.multiple=5):(c.interval="minutes",c.multiple=1)}}e.load(c)},this.resize=g.resizeChart,this.suspend=g.suspend(),this}; diff --git a/deps/js/charts/ticker.js b/deps/js/charts/ticker.js deleted file mode 100644 index 5705c8f46..000000000 --- a/deps/js/charts/ticker.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - * ripplecharts - v0.0.1 - 2015-02-03 - * http://ripple.com - * - * Copyright (c) 2015 Ripple Labs, Inc. - * Licensed ISC <> - */ -var API="https://api.ripplecharts.com/api";var DOMAIN="https://ripplecharts.com";var TICKER_CSS=".closer{position:absolute;top:0;right:0;z-index:1;padding:3px 5px;font-size:12px;font-weight:300;line-height:10px;color:#000;cursor:pointer}.closer:hover{color:#666}.info{position:absolute;top:0;left:0;height:60px;color:#000}.infoText{width:20px;height:60px;padding:2px 1px;overflow:hidden;font-size:12px;text-align:center;cursor:pointer}#prices{position:relative;display:inline-block;width:100%;height:60px;overflow:hidden;white-space:nowrap;background-color:#f5f5f5}#prices .ticker{display:inline-block;margin:15px;cursor:pointer;opacity:.7}#prices .hidden{display:none}#prices .pct{display:inline-block;margin:5px 5px 5px 0;font-size:14px;font-weight:300}#prices .pctUp{color:#483}#prices .pctDown{color:#a22}#prices .price{display:inline-block;margin:5px;font-weight:700;color:#3c3c3c}#prices .baseGateway{display:inline-block;font-size:12px;color:#346aa9}#prices .counterGateway{display:inline-block;font-size:12px;color:#346aa9}#prices .baseCurrency{display:inline-block;font-weight:300}#prices .counterCurrency{display:inline-block;margin:5px 5px 5px 0;font-weight:300}#prices .priceStatus{display:inline-block;width:10px;height:5px;padding-bottom:2px}#prices #scrollingText{position:relative;top:150px;width:100%;height:16px;padding:2px 0;border:solid 1px #ccc}@keyframes rotating{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes rotating{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}.tickerLoader{position:absolute;top:17px;right:0;left:0;width:auto;height:25px;margin:auto;-webkit-animation:rotating 1s linear infinite;-moz-animation:rotating 1s linear infinite;-ms-animation:rotating 1s linear infinite;-o-animation:rotating 1s linear infinite;animation:rotating 1s linear infinite}div.scrollingHotSpotLeft{position:absolute;left:0;z-index:200;width:10%;height:100%;min-width:75px}div.scrollingHotSpotRight{position:absolute;right:0;z-index:200;width:10%;height:100%;min-width:75px}div.scrollWrapper{position:relative;width:100%;height:100%;overflow:hidden}div.scrollableArea{position:relative;width:auto;height:100%}";var LOADER_PNG="iVBORw0KGgoAAAANSUhEUgAAAC8AAAAyCAYAAADMb4LpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAoBJREFUeNrsmb1uwjAQgCHK1uyww072ssPePAAPwEBZYOABYKEd0p2xAw8Q9rCHPex0JzM9VxcpWM6vL3GixpIVifz4u8P36+7j8eg0dehlfHT/se/DxYTZj/zsw/SW78s71TpdSs0DNAOewRwlPHaCeQAhbrWBB/A5XN4yPh7AtEEARzk8gK/hMinw6k5GAI0A3CoIzsYK3h8qgYeFDdzjMmOuSvNTmC+S3xgV1b4s/JjIUU1VwI+I4JVoXun41/BBk+E9Ig5PBbxLBO9UDo+h/UcS/Fw0SaMw2K2kzdjKvA1oje3XXUHwhUxqTJkSs2i7zpgusK22AXC/TsVIHxOt14THvgD6WLtKKiLEN1x6ZYKXGWFFgAEleJnwIiP0qRfRc2wFMwTL4CHMmLzdoOwe6ClVkoU5+4C7F2B0ddBVRu8NE/LzuSguwDtTXMfkvNUVo68jElposDnd3ikS3kNvk/TeBW3ijnm8FWPcfEw4ggCHRHjUwqqmWfAJBNgKDRY1XldwNibYZnmGxz2+bkANMkElPxmsRdAJ6HDGdkS3OSbqNISDtVtcXbaCT0hzN9FiA7TFjPqTSIAB82paZMv0COEdQfbpx0TeosPUZFoPcW4NQN2Sy0Y2jDLSA78qyw3h74Tf9CqFx/1I1ca4pVRdZMmfVkInIA3wSrWOJtt+EITvtIyTwuP8dRw07i89S3YCDhnbJbLat0XFyFbiw3aOTsBGwsZ24ToapxXmdRY5BQg6Oc+WcPFFAQGe1oktwCHqzjLkO1LHkhjZWf6fdqZ1wXW8XN0DzOCGOA0MQgzWpThLjbRMwkrK4DyXG9ff6Tb5+L49GWnhW/gWvprxK8AA17MEbNrj+u8AAAAASUVORK5CYII=";var ARROW_DOWN_PNG="iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTg5MDQ3ODc4RURBMTFFNEE3RTNENkQ0QUIyQzI1REQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QTg5MDQ3ODg4RURBMTFFNEE3RTNENkQ0QUIyQzI1REQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBODkwNDc4NThFREExMUU0QTdFM0Q2RDRBQjJDMjVERCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBODkwNDc4NjhFREExMUU0QTdFM0Q2RDRBQjJDMjVERCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pvw5lsIAAABeSURBVHjaYnyeH9PBwMBQzkAd0MkIIqlkaKfkxCUVjDAehYaCDQMxGJFFyTQUbhiGgWQYimIYVgNJMBTDMJwGEmEoVsPwGojHUJyGETQQi6F4DSMagAyFGkwQAAQYAAHDL7jGnyjCAAAAAElFTkSuQmCC";var ARROW_UP_PNG="iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTg5MDQ3ODM4RURBMTFFNEE3RTNENkQ0QUIyQzI1REQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QTg5MDQ3ODQ4RURBMTFFNEE3RTNENkQ0QUIyQzI1REQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBODkwNDc4MThFREExMUU0QTdFM0Q2RDRBQjJDMjVERCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBODkwNDc4MjhFREExMUU0QTdFM0Q2RDRBQjJDMjVERCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhMNcMcAAABcSURBVHjaYmQgAjgc6e4AUvxAnHXApvQ/PrWMRBpWDuXOIGQoIwmGMRBjKCOJhhE0lJEMw/AaykimYTgNZaTAMKyGMlJoGIahTFQwDAQygLgT7EIqGIYMOgECDACdeTWi/rI1HAAAAABJRU5ErkJggg==";var ICN_INFO_PNG="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOC4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxOTIwIDEwODAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDE5MjAgMTA4MCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBmaWxsPSIjNjY2QTZBIiBkPSJNOTYwLDMzLjJjLTI3OS41LDAtNTA2LjgsMjI3LjQtNTA2LjgsNTA2LjhzMjI3LjQsNTA2LjgsNTA2LjgsNTA2LjhzNTA2LjgtMjI3LjQsNTA2LjgtNTA2LjgNCgkJQzE0NjYuOCwyNjAuNSwxMjM5LjUsMzMuMiw5NjAsMzMuMnogTTk2MCw5NzUuOGMtMjQxLjYsMC00MzUuOC0xOTQuMi00MzUuOC00MzUuOFM3MTguNCwxMDQuMiw5NjAsMTA0LjJzNDM1LjgsMTk0LjIsNDM1LjgsNDM1LjgNCgkJQzEzOTUuOCw3ODEuNiwxMjAxLjYsOTc1LjgsOTYwLDk3NS44eiIvPg0KCTxjaXJjbGUgZmlsbD0iIzY2NkE2QSIgY3g9Ijk2MCIgY3k9IjI4OC45IiByPSI1Ni44Ii8+DQoJPHBhdGggZmlsbD0iIzY2NkE2QSIgZD0iTTEwMjYuMyw3MTUuM2gtMjguNFY0NDAuNWMwLTE4LjktMTQuMi0zNy45LTM3LjktMzcuOWgtNjYuM2MtMTguOSwwLTM3LjksMTQuMi0zNy45LDM3LjkNCgkJYzAsMjMuNywxOC45LDMzLjIsMzcuOSwzMy4yaDI4LjR2MjM2LjhoLTI4LjRjLTE4LjksMC0zNy45LDE0LjItMzcuOSwzNy45YzAsMTguOSwxNC4yLDM3LjksMzcuOSwzNy45aDEzMi42DQoJCWMxOC45LDAsMzcuOS0xNC4yLDM3LjktMzcuOUMxMDU5LjUsNzI5LjUsMTA0NS4zLDcxNS4zLDEwMjYuMyw3MTUuM3oiLz4NCjwvZz4NCjwvc3ZnPg0K";function addTicker(a,b,c){new Ticker(a,b,self,c)}function getParams(){for(var a={},b=window.location.search.substring(1),c=b?b.split("&"):[],d=0;d"))}),e=d.append("div").attr("class","infoText").html("");d3.select("body").on("click",function(){d.classed("open",!1).classed("closed",!0).style({"background-color":"rgba(0,0,0,0)",color:"#000",width:null}),e.style({padding:"2px 1px",width:"20px",height:"60px"}).html("")})}$("#prices").smoothDivScroll({autoScrollingDirection:"endlessLoopRight",autoScrollingStep:1,autoScrollingInterval:15,hotSpotScrolling:!1}),$("#prices").smoothDivScroll("startAutoScrolling"),$("#prices").bind("mouseover",function(){$("#prices").smoothDivScroll("stopAutoScrolling")}),$("#prices").bind("mouseout",function(){$("#prices").smoothDivScroll("startAutoScrolling")})}})}}function addCommas(a){a+="",x=a.split("."),x1=x[0],x2=x.length>1?"."+x[1]:"";for(var b=/(\d+)(\d{3})/;b.test(x1);)x1=x1.replace(b,"$1,$2");return x1+x2}function OffersExercisedListener(a,b){remote?remote=remote:(remote=new Remote({servers:[{host:"s-west.ripple.com",port:443},{host:"s-east.ripple.com",port:443}]}),remote.connect()),"function"==typeof a&&(b=a,a={}),this.displayFn=b,this.txProcessor,this.interval,this.finishedInterval=function(){this.displayFn(formatReduceResult(this.storedResults),!0);var a=moment.utc(this.storedResults.startTime).add(this.viewOpts.timeIncrement,this.viewOpts.timeMultiple);this.resetStored([a.format()])},this.updateViewOpts(a)}function parseViewOpts(a){return a.openTime=moment.utc(a.openTime).toArray().slice(0,6),a.timeIncrement&&(a.reduce=!0,a.timeMultiple||(a.timeMultiple=1)),a.base&&a.counter?a.base&&""==a.base.issuer?delete a.base.issuer:a.counter&&""==a.counter.issuer&&delete a.counter.issuer:a.reduce=!1,a}function createTransactionProcessor(a,b){function c(c){var d={close_time_timestamp:(new Date).getTime(),transactions:[c.transaction]};d.transactions[0].metaData=c.meta,offersExercisedMap(d,function(c,d){(!a.counter||a.counter.currency===c[0][0]&&a.counter.issuer===c[0][1]||a.counter.currency===c[1][0]&&a.counter.issuer===c[1][1])&&(!a.base||a.base.currency===c[0][0]&&a.base.issuer===c[0][1]||a.base.currency===c[1][0]&&a.base.issuer===c[1][1])&&(a.base.currency===c[1][0]&&a.base.issuer===c[1][1]&&(c=[c[1],c[0]],d=[d[1],d[0],1/d[2],d[3],d[4],d[5],d[6]]),b(a.reduce?offersExercisedReduce([d],!1):{key:c,value:d}))})}return c}function offersExercisedMap(a,b){var c=new Date(a.close_time_timestamp),d=Math.round(c.getTime());a.transactions.forEach(function(a){"tesSUCCESS"===a.metaData.TransactionResult&&("Payment"===a.TransactionType||"OfferCreate"===a.TransactionType)&&a.metaData.AffectedNodes.forEach(function(c){var e=c.ModifiedNode||c.DeletedNode;if(e&&"Offer"===e.LedgerEntryType&&e.PreviousFields&&e.PreviousFields.TakerPays&&e.PreviousFields.TakerGets){(e.FinalFields||e.NewFields)&&"string"==typeof(e.FinalFields||e.NewFields).BookDirectory&&(e.exchange_rate=Amount.from_quality((e.FinalFields||e.NewFields).BookDirectory).to_json().value);var f,g,h,i,j=e.exchange_rate,k=e.FinalFields.Account;"object"==typeof e.PreviousFields.TakerPays?(f=[e.PreviousFields.TakerPays.currency,e.PreviousFields.TakerPays.issuer],g=e.PreviousFields.TakerPays.value-e.FinalFields.TakerPays.value):(f=["XRP"],g=(e.PreviousFields.TakerPays-e.FinalFields.TakerPays)/1e6,j/=1e6),"object"==typeof e.PreviousFields.TakerGets?(h=[e.PreviousFields.TakerGets.currency,e.PreviousFields.TakerGets.issuer],i=e.PreviousFields.TakerGets.value-e.FinalFields.TakerGets.value):(h=["XRP"],i=(e.PreviousFields.TakerGets-e.FinalFields.TakerGets)/1e6,j=1e6*j),b([f,h],[g,i,1/j,k,a.Account,d,a.hash])}})})}function offersExercisedReduce(a,b){var c;if(b)return c=a[0],"string"==typeof c.openTime&&(c.openTime=moment.utc(c.openTime).unix()),"string"==typeof c.closeTime&&(c.closeTime=moment.utc(c.closeTime).unix()),a.forEach(function(a,b){0!==b&&("string"==typeof a.openTime&&(a.openTime=moment.utc(a.openTime).unix()),"string"==typeof a.closeTime&&(a.closeTime=moment.utc(a.closeTime).unix()),(!c.open||a.openTimec.high)&&(c.high=a.high),(!c.low||a.lowc.high&&(c.high=d),dh;h++)for(e in g[h])f=g[h][e],g[h].hasOwnProperty(e)&&f!==b&&(c[e]=a.isPlainObject(f)?a.isPlainObject(c[e])?a.widget.extend({},c[e],f):a.widget.extend({},f):f);return c},a.widget.bridge=function(c,e){var f=e.prototype.widgetFullName||c;a.fn[c]=function(g){var h="string"==typeof g,i=d.call(arguments,1),j=this;return g=!h&&i.length?a.widget.extend.apply(null,[g].concat(i)):g,this.each(h?function(){var d,e=a.data(this,f);return e?a.isFunction(e[g])&&"_"!==g.charAt(0)?(d=e[g].apply(e,i),d!==e&&d!==b?(j=d&&d.jquery?j.pushStack(d.get()):d,!1):b):a.error("no such method '"+g+"' for "+c+" widget instance"):a.error("cannot call methods on "+c+" prior to initialization; attempted to call method '"+g+"'")}:function(){var b=a.data(this,f);b?b.option(g||{})._init():a.data(this,f,new e(g,this))}),j}},a.Widget=function(){},a.Widget._childConstructors=[],a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{disabled:!1,create:null},_createWidget:function(b,d){d=a(d||this.defaultElement||this)[0],this.element=a(d),this.uuid=c++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=a.widget.extend({},this.options,this._getCreateOptions(),b),this.bindings=a(),this.hoverable=a(),this.focusable=a(),d!==this&&(a.data(d,this.widgetFullName,this),this._on(!0,this.element,{remove:function(a){a.target===d&&this.destroy()}}),this.document=a(d.style?d.ownerDocument:d.document||d),this.window=a(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:a.noop,_getCreateEventData:a.noop,_create:a.noop,_init:a.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(a.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:a.noop,widget:function(){return this.element},option:function(c,d){var e,f,g,h=c;if(0===arguments.length)return a.widget.extend({},this.options);if("string"==typeof c)if(h={},e=c.split("."),c=e.shift(),e.length){for(f=h[c]=a.widget.extend({},this.options[c]),g=0;e.length-1>g;g++)f[e[g]]=f[e[g]]||{},f=f[e[g]];if(c=e.pop(),d===b)return f[c]===b?null:f[c];f[c]=d}else{if(d===b)return this.options[c]===b?null:this.options[c];h[c]=d}return this._setOptions(h),this},_setOptions:function(a){var b;for(b in a)this._setOption(b,a[b]);return this},_setOption:function(a,b){return this.options[a]=b,"disabled"===a&&(this.widget().toggleClass(this.widgetFullName+"-disabled ui-state-disabled",!!b).attr("aria-disabled",b),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_on:function(c,d,e){var f,g=this;"boolean"!=typeof c&&(e=d,d=c,c=!1),e?(d=f=a(d),this.bindings=this.bindings.add(d)):(e=d,d=this.element,f=this.widget()),a.each(e,function(e,h){function i(){return c||g.options.disabled!==!0&&!a(this).hasClass("ui-state-disabled")?("string"==typeof h?g[h]:h).apply(g,arguments):b}"string"!=typeof h&&(i.guid=h.guid=h.guid||i.guid||a.guid++);var j=e.match(/^(\w+)\s*(.*)$/),k=j[1]+g.eventNamespace,l=j[2];l?f.delegate(l,k,i):d.bind(k,i)})},_off:function(a,b){b=(b||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,a.unbind(b).undelegate(b)},_delay:function(a,b){function c(){return("string"==typeof a?d[a]:a).apply(d,arguments)}var d=this;return setTimeout(c,b||0)},_hoverable:function(b){this.hoverable=this.hoverable.add(b),this._on(b,{mouseenter:function(b){a(b.currentTarget).addClass("ui-state-hover")},mouseleave:function(b){a(b.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(b){this.focusable=this.focusable.add(b),this._on(b,{focusin:function(b){a(b.currentTarget).addClass("ui-state-focus")},focusout:function(b){a(b.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(b,c,d){var e,f,g=this.options[b];if(d=d||{},c=a.Event(c),c.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase(),c.target=this.element[0],f=c.originalEvent)for(e in f)e in c||(c[e]=f[e]);return this.element.trigger(c,d),!(a.isFunction(g)&&g.apply(this.element[0],[c].concat(d))===!1||c.isDefaultPrevented())}},a.each({show:"fadeIn",hide:"fadeOut"},function(b,c){a.Widget.prototype["_"+b]=function(d,e,f){"string"==typeof e&&(e={effect:e});var g,h=e?e===!0||"number"==typeof e?c:e.effect||c:b;e=e||{},"number"==typeof e&&(e={duration:e}),g=!a.isEmptyObject(e),e.complete=f,e.delay&&d.delay(e.delay),g&&a.effects&&a.effects.effect[h]?d[b](e):h!==b&&d[h]?d[h](e.duration,e.easing,f):d.queue(function(c){a(this)[b](),f&&f.call(d[0]),c()})}})}(jQuery),function(a,b){var c="ui-effects-";a.effects={effect:{}},function(a,b){function c(a,b,c){var d=l[b.type]||{};return null==a?c||!b.def?null:b.def:(a=d.floor?~~a:parseFloat(a),isNaN(a)?b.def:d.mod?(a+d.mod)%d.mod:0>a?0:a>d.max?d.max:a)}function d(c){var d=j(),e=d._rgba=[];return c=c.toLowerCase(),o(i,function(a,f){var g,h=f.re.exec(c),i=h&&f.parse(h),j=f.space||"rgba";return i?(g=d[j](i),d[k[j].cache]=g[k[j].cache],e=d._rgba=g._rgba,!1):b}),e.length?("0,0,0,0"===e.join()&&a.extend(e,f.transparent),d):f[c]}function e(a,b,c){return c=(c+1)%1,1>6*c?a+6*(b-a)*c:1>2*c?b:2>3*c?a+6*(b-a)*(2/3-c):a}var f,g="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",h=/^([\-+])=\s*(\d+\.?\d*)/,i=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(a){return[a[1],a[2],a[3],a[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(a){return[2.55*a[1],2.55*a[2],2.55*a[3],a[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(a){return[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(a){return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(a){return[a[1],a[2]/100,a[3]/100,a[4]]}}],j=a.Color=function(b,c,d,e){return new a.Color.fn.parse(b,c,d,e)},k={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},l={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},m=j.support={},n=a("

")[0],o=a.each;n.style.cssText="background-color:rgba(1,1,1,.5)",m.rgba=n.style.backgroundColor.indexOf("rgba")>-1,o(k,function(a,b){b.cache="_"+a,b.props.alpha={idx:3,type:"percent",def:1}}),j.fn=a.extend(j.prototype,{parse:function(e,g,h,i){if(e===b)return this._rgba=[null,null,null,null],this;(e.jquery||e.nodeType)&&(e=a(e).css(g),g=b);var l=this,m=a.type(e),n=this._rgba=[];return g!==b&&(e=[e,g,h,i],m="array"),"string"===m?this.parse(d(e)||f._default):"array"===m?(o(k.rgba.props,function(a,b){n[b.idx]=c(e[b.idx],b)}),this):"object"===m?(e instanceof j?o(k,function(a,b){e[b.cache]&&(l[b.cache]=e[b.cache].slice())}):o(k,function(b,d){var f=d.cache;o(d.props,function(a,b){if(!l[f]&&d.to){if("alpha"===a||null==e[a])return;l[f]=d.to(l._rgba)}l[f][b.idx]=c(e[a],b,!0)}),l[f]&&0>a.inArray(null,l[f].slice(0,3))&&(l[f][3]=1,d.from&&(l._rgba=d.from(l[f])))}),this):b},is:function(a){var c=j(a),d=!0,e=this;return o(k,function(a,f){var g,h=c[f.cache];return h&&(g=e[f.cache]||f.to&&f.to(e._rgba)||[],o(f.props,function(a,c){return null!=h[c.idx]?d=h[c.idx]===g[c.idx]:b})),d}),d},_space:function(){var a=[],b=this;return o(k,function(c,d){b[d.cache]&&a.push(c)}),a.pop()},transition:function(a,b){var d=j(a),e=d._space(),f=k[e],g=0===this.alpha()?j("transparent"):this,h=g[f.cache]||f.to(g._rgba),i=h.slice();return d=d[f.cache],o(f.props,function(a,e){var f=e.idx,g=h[f],j=d[f],k=l[e.type]||{};null!==j&&(null===g?i[f]=j:(k.mod&&(j-g>k.mod/2?g+=k.mod:g-j>k.mod/2&&(g-=k.mod)),i[f]=c((j-g)*b+g,e)))}),this[e](i)},blend:function(b){if(1===this._rgba[3])return this;var c=this._rgba.slice(),d=c.pop(),e=j(b)._rgba;return j(a.map(c,function(a,b){return(1-d)*e[b]+d*a}))},toRgbaString:function(){var b="rgba(",c=a.map(this._rgba,function(a,b){return null==a?b>2?1:0:a});return 1===c[3]&&(c.pop(),b="rgb("),b+c.join()+")"},toHslaString:function(){var b="hsla(",c=a.map(this.hsla(),function(a,b){return null==a&&(a=b>2?1:0),b&&3>b&&(a=Math.round(100*a)+"%"),a});return 1===c[3]&&(c.pop(),b="hsl("),b+c.join()+")"},toHexString:function(b){var c=this._rgba.slice(),d=c.pop();return b&&c.push(~~(255*d)),"#"+a.map(c,function(a){return a=(a||0).toString(16),1===a.length?"0"+a:a}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),j.fn.parse.prototype=j.fn,k.hsla.to=function(a){if(null==a[0]||null==a[1]||null==a[2])return[null,null,null,a[3]];var b,c,d=a[0]/255,e=a[1]/255,f=a[2]/255,g=a[3],h=Math.max(d,e,f),i=Math.min(d,e,f),j=h-i,k=h+i,l=.5*k;return b=i===h?0:d===h?60*(e-f)/j+360:e===h?60*(f-d)/j+120:60*(d-e)/j+240,c=0===j?0:.5>=l?j/k:j/(2-k),[Math.round(b)%360,c,l,null==g?1:g]},k.hsla.from=function(a){if(null==a[0]||null==a[1]||null==a[2])return[null,null,null,a[3]];var b=a[0]/360,c=a[1],d=a[2],f=a[3],g=.5>=d?d*(1+c):d+c-d*c,h=2*d-g;return[Math.round(255*e(h,g,b+1/3)),Math.round(255*e(h,g,b)),Math.round(255*e(h,g,b-1/3)),f]},o(k,function(d,e){var f=e.props,g=e.cache,i=e.to,k=e.from;j.fn[d]=function(d){if(i&&!this[g]&&(this[g]=i(this._rgba)),d===b)return this[g].slice();var e,h=a.type(d),l="array"===h||"object"===h?d:arguments,m=this[g].slice();return o(f,function(a,b){var d=l["object"===h?a:b.idx];null==d&&(d=m[b.idx]),m[b.idx]=c(d,b)}),k?(e=j(k(m)),e[g]=m,e):j(m)},o(f,function(b,c){j.fn[b]||(j.fn[b]=function(e){var f,g=a.type(e),i="alpha"===b?this._hsla?"hsla":"rgba":d,j=this[i](),k=j[c.idx];return"undefined"===g?k:("function"===g&&(e=e.call(this,k),g=a.type(e)),null==e&&c.empty?this:("string"===g&&(f=h.exec(e),f&&(e=k+parseFloat(f[2])*("+"===f[1]?1:-1))),j[c.idx]=e,this[i](j)))})})}),j.hook=function(b){var c=b.split(" ");o(c,function(b,c){a.cssHooks[c]={set:function(b,e){var f,g,h="";if("transparent"!==e&&("string"!==a.type(e)||(f=d(e)))){if(e=j(f||e),!m.rgba&&1!==e._rgba[3]){for(g="backgroundColor"===c?b.parentNode:b;(""===h||"transparent"===h)&&g&&g.style;)try{h=a.css(g,"backgroundColor"),g=g.parentNode}catch(i){}e=e.blend(h&&"transparent"!==h?h:"_default")}e=e.toRgbaString()}try{b.style[c]=e}catch(i){}}},a.fx.step[c]=function(b){b.colorInit||(b.start=j(b.elem,c),b.end=j(b.end),b.colorInit=!0),a.cssHooks[c].set(b.elem,b.start.transition(b.end,b.pos))}})},j.hook(g),a.cssHooks.borderColor={expand:function(a){var b={};return o(["Top","Right","Bottom","Left"],function(c,d){b["border"+d+"Color"]=a}),b}},f=a.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function c(b){var c,d,e=b.ownerDocument.defaultView?b.ownerDocument.defaultView.getComputedStyle(b,null):b.currentStyle,f={};if(e&&e.length&&e[0]&&e[e[0]])for(d=e.length;d--;)c=e[d],"string"==typeof e[c]&&(f[a.camelCase(c)]=e[c]);else for(c in e)"string"==typeof e[c]&&(f[c]=e[c]);return f}function d(b,c){var d,e,g={};for(d in c)e=c[d],b[d]!==e&&(f[d]||(a.fx.step[d]||!isNaN(parseFloat(e)))&&(g[d]=e));return g}var e=["add","remove","toggle"],f={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};a.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(b,c){a.fx.step[c]=function(a){("none"!==a.end&&!a.setAttr||1===a.pos&&!a.setAttr)&&(jQuery.style(a.elem,c,a.end),a.setAttr=!0)}}),a.fn.addBack||(a.fn.addBack=function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}),a.effects.animateClass=function(b,f,g,h){var i=a.speed(f,g,h);return this.queue(function(){var f,g=a(this),h=g.attr("class")||"",j=i.children?g.find("*").addBack():g;j=j.map(function(){var b=a(this);return{el:b,start:c(this)}}),f=function(){a.each(e,function(a,c){b[c]&&g[c+"Class"](b[c])})},f(),j=j.map(function(){return this.end=c(this.el[0]),this.diff=d(this.start,this.end),this}),g.attr("class",h),j=j.map(function(){var b=this,c=a.Deferred(),d=a.extend({},i,{queue:!1,complete:function(){c.resolve(b)}});return this.el.animate(this.diff,d),c.promise()}),a.when.apply(a,j.get()).done(function(){f(),a.each(arguments,function(){var b=this.el;a.each(this.diff,function(a){b.css(a,"")})}),i.complete.call(g[0])})})},a.fn.extend({addClass:function(b){return function(c,d,e,f){return d?a.effects.animateClass.call(this,{add:c},d,e,f):b.apply(this,arguments)}}(a.fn.addClass),removeClass:function(b){return function(c,d,e,f){return arguments.length>1?a.effects.animateClass.call(this,{remove:c},d,e,f):b.apply(this,arguments)}}(a.fn.removeClass),toggleClass:function(c){return function(d,e,f,g,h){return"boolean"==typeof e||e===b?f?a.effects.animateClass.call(this,e?{add:d}:{remove:d},f,g,h):c.apply(this,arguments):a.effects.animateClass.call(this,{toggle:d},e,f,g)}}(a.fn.toggleClass),switchClass:function(b,c,d,e,f){return a.effects.animateClass.call(this,{add:c,remove:b},d,e,f)}})}(),function(){function d(b,c,d,e){return a.isPlainObject(b)&&(c=b,b=b.effect),b={effect:b},null==c&&(c={}),a.isFunction(c)&&(e=c,d=null,c={}),("number"==typeof c||a.fx.speeds[c])&&(e=d,d=c,c={}),a.isFunction(d)&&(e=d,d=null),c&&a.extend(b,c),d=d||c.duration,b.duration=a.fx.off?0:"number"==typeof d?d:d in a.fx.speeds?a.fx.speeds[d]:a.fx.speeds._default,b.complete=e||c.complete,b}function e(b){return!b||"number"==typeof b||a.fx.speeds[b]?!0:"string"!=typeof b||a.effects.effect[b]?a.isFunction(b)?!0:"object"!=typeof b||b.effect?!1:!0:!0}a.extend(a.effects,{version:"1.10.3",save:function(a,b){for(var d=0;b.length>d;d++)null!==b[d]&&a.data(c+b[d],a[0].style[b[d]])},restore:function(a,d){var e,f;for(f=0;d.length>f;f++)null!==d[f]&&(e=a.data(c+d[f]),e===b&&(e=""),a.css(d[f],e))},setMode:function(a,b){return"toggle"===b&&(b=a.is(":hidden")?"show":"hide"),b},getBaseline:function(a,b){var c,d;switch(a[0]){case"top":c=0;break;case"middle":c=.5;break;case"bottom":c=1;break;default:c=a[0]/b.height}switch(a[1]){case"left":d=0;break;case"center":d=.5;break;case"right":d=1;break;default:d=a[1]/b.width}return{x:d,y:c}},createWrapper:function(b){if(b.parent().is(".ui-effects-wrapper"))return b.parent();var c={width:b.outerWidth(!0),height:b.outerHeight(!0),"float":b.css("float")},d=a("

").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e={width:b.width(),height:b.height()},f=document.activeElement;try{f.id}catch(g){f=document.body}return b.wrap(d),(b[0]===f||a.contains(b[0],f))&&a(f).focus(),d=b.parent(),"static"===b.css("position")?(d.css({position:"relative"}),b.css({position:"relative"})):(a.extend(c,{position:b.css("position"),zIndex:b.css("z-index")}),a.each(["top","left","bottom","right"],function(a,d){c[d]=b.css(d),isNaN(parseInt(c[d],10))&&(c[d]="auto")}),b.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),b.css(e),d.css(c).show()},removeWrapper:function(b){var c=document.activeElement;return b.parent().is(".ui-effects-wrapper")&&(b.parent().replaceWith(b),(b[0]===c||a.contains(b[0],c))&&a(c).focus()),b},setTransition:function(b,c,d,e){return e=e||{},a.each(c,function(a,c){var f=b.cssUnit(c);f[0]>0&&(e[c]=f[0]*d+f[1])}),e}}),a.fn.extend({effect:function(){function b(b){function d(){a.isFunction(f)&&f.call(e[0]),a.isFunction(b)&&b()}var e=a(this),f=c.complete,h=c.mode;(e.is(":hidden")?"hide"===h:"show"===h)?(e[h](),d()):g.call(e[0],c,d)}var c=d.apply(this,arguments),e=c.mode,f=c.queue,g=a.effects.effect[c.effect];return a.fx.off||!g?e?this[e](c.duration,c.complete):this.each(function(){c.complete&&c.complete.call(this)}):f===!1?this.each(b):this.queue(f||"fx",b)},show:function(a){return function(b){if(e(b))return a.apply(this,arguments);var c=d.apply(this,arguments);return c.mode="show",this.effect.call(this,c)}}(a.fn.show),hide:function(a){return function(b){if(e(b))return a.apply(this,arguments);var c=d.apply(this,arguments);return c.mode="hide",this.effect.call(this,c)}}(a.fn.hide),toggle:function(a){return function(b){if(e(b)||"boolean"==typeof b)return a.apply(this,arguments);var c=d.apply(this,arguments);return c.mode="toggle",this.effect.call(this,c)}}(a.fn.toggle),cssUnit:function(b){var c=this.css(b),d=[];return a.each(["em","px","%","pt"],function(a,b){c.indexOf(b)>0&&(d=[parseFloat(c),b])}),d}})}(),function(){var b={};a.each(["Quad","Cubic","Quart","Quint","Expo"],function(a,c){b[c]=function(b){return Math.pow(b,a+2)}}),a.extend(b,{Sine:function(a){return 1-Math.cos(a*Math.PI/2)},Circ:function(a){return 1-Math.sqrt(1-a*a)},Elastic:function(a){return 0===a||1===a?a:-Math.pow(2,8*(a-1))*Math.sin((80*(a-1)-7.5)*Math.PI/15)},Back:function(a){return a*a*(3*a-2)},Bounce:function(a){for(var b,c=4;((b=Math.pow(2,--c))-1)/11>a;);return 1/Math.pow(4,3-c)-7.5625*Math.pow((3*b-2)/22-a,2)}}),a.each(b,function(b,c){a.easing["easeIn"+b]=c,a.easing["easeOut"+b]=function(a){return 1-c(1-a)},a.easing["easeInOut"+b]=function(a){return.5>a?c(2*a)/2:1-c(-2*a+2)/2}})}()}(jQuery),function(a){a.widget("thomaskahn.smoothDivScroll",{options:{scrollingHotSpotLeftClass:"scrollingHotSpotLeft",scrollingHotSpotRightClass:"scrollingHotSpotRight",scrollingHotSpotLeftVisibleClass:"scrollingHotSpotLeftVisible",scrollingHotSpotRightVisibleClass:"scrollingHotSpotRightVisible",scrollableAreaClass:"scrollableArea",scrollWrapperClass:"scrollWrapper",hiddenOnStart:!1,getContentOnLoad:{},countOnlyClass:"",startAtElementId:"",hotSpotScrolling:!0,hotSpotScrollingStep:15,hotSpotScrollingInterval:10,hotSpotMouseDownSpeedBooster:3,visibleHotSpotBackgrounds:"hover",hotSpotsVisibleTime:5e3,easingAfterHotSpotScrolling:!0,easingAfterHotSpotScrollingDistance:10,easingAfterHotSpotScrollingDuration:300,easingAfterHotSpotScrollingFunction:"easeOutQuart",mousewheelScrolling:"",mousewheelScrollingStep:70,easingAfterMouseWheelScrolling:!0,easingAfterMouseWheelScrollingDuration:300,easingAfterMouseWheelScrollingFunction:"easeOutQuart",manualContinuousScrolling:!1,autoScrollingMode:"",autoScrollingDirection:"endlessLoopRight",autoScrollingStep:1,autoScrollingInterval:10,touchScrolling:!1,scrollToAnimationDuration:1e3,scrollToEasingFunction:"easeOutQuart"},_create:function(){var b=this,c=this.options,d=this.element;d.data("scrollWrapper",d.find("."+c.scrollWrapperClass)),d.data("scrollingHotSpotRight",d.find("."+c.scrollingHotSpotRightClass)),d.data("scrollingHotSpotLeft",d.find("."+c.scrollingHotSpotLeftClass)),d.data("scrollableArea",d.find("."+c.scrollableAreaClass)),d.data("scrollingHotSpotRight").length>0&&d.data("scrollingHotSpotRight").detach(),d.data("scrollingHotSpotLeft").length>0&&d.data("scrollingHotSpotLeft").detach(),0===d.data("scrollableArea").length&&0===d.data("scrollWrapper").length?(d.wrapInner("
").wrapInner("
"),d.data("scrollWrapper",d.find("."+c.scrollWrapperClass)),d.data("scrollableArea",d.find("."+c.scrollableAreaClass))):0===d.data("scrollWrapper").length?(d.wrapInner("
"),d.data("scrollWrapper",d.find("."+c.scrollWrapperClass))):0===d.data("scrollableArea").length&&(d.data("scrollWrapper").wrapInner("
"),d.data("scrollableArea",d.find("."+c.scrollableAreaClass))),0===d.data("scrollingHotSpotRight").length?(d.prepend("
"),d.data("scrollingHotSpotRight",d.find("."+c.scrollingHotSpotRightClass))):d.prepend(d.data("scrollingHotSpotRight")),0===d.data("scrollingHotSpotLeft").length?(d.prepend("
"),d.data("scrollingHotSpotLeft",d.find("."+c.scrollingHotSpotLeftClass))):d.prepend(d.data("scrollingHotSpotLeft")),d.data("speedBooster",1),d.data("scrollXPos",0),d.data("hotSpotWidth",d.data("scrollingHotSpotLeft").innerWidth()),d.data("scrollableAreaWidth",0),d.data("startingPosition",0),d.data("rightScrollingInterval",null),d.data("leftScrollingInterval",null),d.data("autoScrollingInterval",null),d.data("hideHotSpotBackgroundsInterval",null),d.data("previousScrollLeft",0),d.data("pingPongDirection","right"),d.data("getNextElementWidth",!0),d.data("swapAt",null),d.data("startAtElementHasNotPassed",!0),d.data("swappedElement",null),d.data("originalElements",d.data("scrollableArea").children(c.countOnlyClass)),d.data("visible",!0),d.data("enabled",!0),d.data("scrollableAreaHeight",d.data("scrollableArea").height()),d.data("scrollerOffset",d.offset()),c.touchScrolling&&d.data("enabled")&&d.data("scrollWrapper").kinetic({y:!1,moved:function(){c.manualContinuousScrolling&&(d.data("scrollWrapper").scrollLeft()<=0?b._checkContinuousSwapLeft():b._checkContinuousSwapRight()),b._trigger("touchMoved")},stopped:function(){d.data("scrollWrapper").stop(!0,!1),b.stopAutoScrolling(),b._trigger("touchStopped")}}),d.data("scrollingHotSpotRight").bind("mousemove",function(b){if(c.hotSpotScrolling){var e=b.pageX-a(this).offset().left;d.data("scrollXPos",Math.round(e/d.data("hotSpotWidth")*c.hotSpotScrollingStep)),(1/0===d.data("scrollXPos")||d.data("scrollXPos")<1)&&d.data("scrollXPos",1)}}),d.data("scrollingHotSpotRight").bind("mouseover",function(){c.hotSpotScrolling&&(d.data("scrollWrapper").stop(!0,!1),b.stopAutoScrolling(),d.data("rightScrollingInterval",setInterval(function(){d.data("scrollXPos")>0&&d.data("enabled")&&(d.data("scrollWrapper").scrollLeft(d.data("scrollWrapper").scrollLeft()+d.data("scrollXPos")*d.data("speedBooster")),c.manualContinuousScrolling&&b._checkContinuousSwapRight(),b._showHideHotSpots())},c.hotSpotScrollingInterval)),b._trigger("mouseOverRightHotSpot"))}),d.data("scrollingHotSpotRight").bind("mouseout",function(){c.hotSpotScrolling&&(clearInterval(d.data("rightScrollingInterval")),d.data("scrollXPos",0),c.easingAfterHotSpotScrolling&&d.data("enabled")&&d.data("scrollWrapper").animate({scrollLeft:d.data("scrollWrapper").scrollLeft()+c.easingAfterHotSpotScrollingDistance},{duration:c.easingAfterHotSpotScrollingDuration,easing:c.easingAfterHotSpotScrollingFunction}))}),d.data("scrollingHotSpotRight").bind("mousedown",function(){d.data("speedBooster",c.hotSpotMouseDownSpeedBooster)}),a("body").bind("mouseup",function(){d.data("speedBooster",1)}),d.data("scrollingHotSpotLeft").bind("mousemove",function(b){if(c.hotSpotScrolling){var e=d.data("hotSpotWidth")-(b.pageX-a(this).offset().left);d.data("scrollXPos",Math.round(e/d.data("hotSpotWidth")*c.hotSpotScrollingStep)),(1/0===d.data("scrollXPos")||d.data("scrollXPos")<1)&&d.data("scrollXPos",1)}}),d.data("scrollingHotSpotLeft").bind("mouseover",function(){c.hotSpotScrolling&&(d.data("scrollWrapper").stop(!0,!1),b.stopAutoScrolling(),d.data("leftScrollingInterval",setInterval(function(){d.data("scrollXPos")>0&&d.data("enabled")&&(d.data("scrollWrapper").scrollLeft(d.data("scrollWrapper").scrollLeft()-d.data("scrollXPos")*d.data("speedBooster")),c.manualContinuousScrolling&&b._checkContinuousSwapLeft(),b._showHideHotSpots())},c.hotSpotScrollingInterval)),b._trigger("mouseOverLeftHotSpot"))}),d.data("scrollingHotSpotLeft").bind("mouseout",function(){c.hotSpotScrolling&&(clearInterval(d.data("leftScrollingInterval")),d.data("scrollXPos",0),c.easingAfterHotSpotScrolling&&d.data("enabled")&&d.data("scrollWrapper").animate({scrollLeft:d.data("scrollWrapper").scrollLeft()-c.easingAfterHotSpotScrollingDistance},{duration:c.easingAfterHotSpotScrollingDuration,easing:c.easingAfterHotSpotScrollingFunction}))}),d.data("scrollingHotSpotLeft").bind("mousedown",function(){d.data("speedBooster",c.hotSpotMouseDownSpeedBooster) -}),d.data("scrollableArea").mousewheel(function(a,e,f,g){if(d.data("enabled")&&c.mousewheelScrolling.length>0){var h;"vertical"===c.mousewheelScrolling&&0!==g?(b.stopAutoScrolling(),a.preventDefault(),h=Math.round(c.mousewheelScrollingStep*g*-1),b.move(h)):"horizontal"===c.mousewheelScrolling&&0!==f?(b.stopAutoScrolling(),a.preventDefault(),h=Math.round(c.mousewheelScrollingStep*f*-1),b.move(h)):"allDirections"===c.mousewheelScrolling&&(b.stopAutoScrolling(),a.preventDefault(),h=Math.round(c.mousewheelScrollingStep*e*-1),b.move(h))}}),c.mousewheelScrolling&&d.data("scrollingHotSpotLeft").add(d.data("scrollingHotSpotRight")).mousewheel(function(a){a.preventDefault()}),a(window).bind("resize",function(){b._showHideHotSpots(),b._trigger("windowResized")}),jQuery.isEmptyObject(c.getContentOnLoad)||b[c.getContentOnLoad.method](c.getContentOnLoad.content,c.getContentOnLoad.manipulationMethod,c.getContentOnLoad.addWhere,c.getContentOnLoad.filterTag),c.hiddenOnStart&&b.hide(),a(window).load(function(){if(c.hiddenOnStart||b.recalculateScrollableArea(),c.autoScrollingMode.length>0&&!c.hiddenOnStart&&b.startAutoScrolling(),"always"!==c.autoScrollingMode)switch(c.visibleHotSpotBackgrounds){case"always":b.showHotSpotBackgrounds();break;case"onStart":b.showHotSpotBackgrounds(),d.data("hideHotSpotBackgroundsInterval",setTimeout(function(){b.hideHotSpotBackgrounds(250)},c.hotSpotsVisibleTime));break;case"hover":d.mouseenter(function(a){c.hotSpotScrolling&&(a.stopPropagation(),b.showHotSpotBackgrounds(250))}).mouseleave(function(a){c.hotSpotScrolling&&(a.stopPropagation(),b.hideHotSpotBackgrounds(250))})}b._showHideHotSpots(),b._trigger("setupComplete")})},_init:function(){{var a=this;this.element}a.recalculateScrollableArea(),a._showHideHotSpots(),a._trigger("initializationComplete")},_setOption:function(a,b){var c=this,d=this.options,e=this.element;d[a]=b,"hotSpotScrolling"===a?b===!0?c._showHideHotSpots():(e.data("scrollingHotSpotLeft").hide(),e.data("scrollingHotSpotRight").hide()):"autoScrollingStep"===a||"easingAfterHotSpotScrollingDistance"===a||"easingAfterHotSpotScrollingDuration"===a||"easingAfterMouseWheelScrollingDuration"===a?d[a]=parseInt(b,10):"autoScrollingInterval"===a&&(d[a]=parseInt(b,10),c.startAutoScrolling())},showHotSpotBackgrounds:function(a){var b=this,c=this.element,d=this.options;void 0!==a?(c.data("scrollingHotSpotLeft").addClass(d.scrollingHotSpotLeftVisibleClass),c.data("scrollingHotSpotRight").addClass(d.scrollingHotSpotRightVisibleClass),c.data("scrollingHotSpotLeft").add(c.data("scrollingHotSpotRight")).fadeTo(a,.35)):(c.data("scrollingHotSpotLeft").addClass(d.scrollingHotSpotLeftVisibleClass),c.data("scrollingHotSpotLeft").removeAttr("style"),c.data("scrollingHotSpotRight").addClass(d.scrollingHotSpotRightVisibleClass),c.data("scrollingHotSpotRight").removeAttr("style")),b._showHideHotSpots()},hideHotSpotBackgrounds:function(a){var b=this.element,c=this.options;void 0!==a?(b.data("scrollingHotSpotLeft").fadeTo(a,0,function(){b.data("scrollingHotSpotLeft").removeClass(c.scrollingHotSpotLeftVisibleClass)}),b.data("scrollingHotSpotRight").fadeTo(a,0,function(){b.data("scrollingHotSpotRight").removeClass(c.scrollingHotSpotRightVisibleClass)})):(b.data("scrollingHotSpotLeft").removeClass(c.scrollingHotSpotLeftVisibleClass).removeAttr("style"),b.data("scrollingHotSpotRight").removeClass(c.scrollingHotSpotRightVisibleClass).removeAttr("style"))},_showHideHotSpots:function(){var a=this,b=this.element,c=this.options;c.hotSpotScrolling?c.hotSpotScrolling&&"always"!==c.autoScrollingMode&&null!==b.data("autoScrollingInterval")?(b.data("scrollingHotSpotLeft").show(),b.data("scrollingHotSpotRight").show()):"always"!==c.autoScrollingMode&&c.hotSpotScrolling?b.data("scrollableAreaWidth")<=b.data("scrollWrapper").innerWidth()?(b.data("scrollingHotSpotLeft").hide(),b.data("scrollingHotSpotRight").hide()):0===b.data("scrollWrapper").scrollLeft()?(b.data("scrollingHotSpotLeft").hide(),b.data("scrollingHotSpotRight").show(),a._trigger("scrollerLeftLimitReached"),clearInterval(b.data("leftScrollingInterval")),b.data("leftScrollingInterval",null)):b.data("scrollableAreaWidth")<=b.data("scrollWrapper").innerWidth()+b.data("scrollWrapper").scrollLeft()?(b.data("scrollingHotSpotLeft").show(),b.data("scrollingHotSpotRight").hide(),a._trigger("scrollerRightLimitReached"),clearInterval(b.data("rightScrollingInterval")),b.data("rightScrollingInterval",null)):(b.data("scrollingHotSpotLeft").show(),b.data("scrollingHotSpotRight").show()):(b.data("scrollingHotSpotLeft").hide(),b.data("scrollingHotSpotRight").hide()):(b.data("scrollingHotSpotLeft").hide(),b.data("scrollingHotSpotRight").hide())},_setElementScrollPosition:function(b,c){var d=this.element,e=this.options,f=0;switch(b){case"first":return d.data("scrollXPos",0),!0;case"start":return""!==e.startAtElementId&&d.data("scrollableArea").has("#"+e.startAtElementId)?(f=a("#"+e.startAtElementId).position().left,d.data("scrollXPos",f),!0):!1;case"last":return d.data("scrollXPos",d.data("scrollableAreaWidth")-d.data("scrollWrapper").innerWidth()),!0;case"number":return isNaN(c)?!1:(f=d.data("scrollableArea").children(e.countOnlyClass).eq(c-1).position().left,d.data("scrollXPos",f),!0);case"id":return c.length>0&&d.data("scrollableArea").has("#"+c)?(f=a("#"+c).position().left,d.data("scrollXPos",f),!0):!1;default:return!1}},jumpToElement:function(a,b){var c=this,d=this.element;if(d.data("enabled")&&c._setElementScrollPosition(a,b))switch(d.data("scrollWrapper").scrollLeft(d.data("scrollXPos")),c._showHideHotSpots(),a){case"first":c._trigger("jumpedToFirstElement");break;case"start":c._trigger("jumpedToStartElement");break;case"last":c._trigger("jumpedToLastElement");break;case"number":c._trigger("jumpedToElementNumber",null,{elementNumber:b});break;case"id":c._trigger("jumpedToElementId",null,{elementId:b})}},scrollToElement:function(a,b){var c=this,d=this.element,e=this.options,f=!1;d.data("enabled")&&c._setElementScrollPosition(a,b)&&(null!==d.data("autoScrollingInterval")&&(c.stopAutoScrolling(),f=!0),d.data("scrollWrapper").stop(!0,!1),d.data("scrollWrapper").animate({scrollLeft:d.data("scrollXPos")},{duration:e.scrollToAnimationDuration,easing:e.scrollToEasingFunction,complete:function(){switch(f&&c.startAutoScrolling(),c._showHideHotSpots(),a){case"first":c._trigger("scrolledToFirstElement");break;case"start":c._trigger("scrolledToStartElement");break;case"last":c._trigger("scrolledToLastElement");break;case"number":c._trigger("scrolledToElementNumber",null,{elementNumber:b});break;case"id":c._trigger("scrolledToElementId",null,{elementId:b})}}}))},move:function(a){var b=this,c=this.element,d=this.options;if(c.data("scrollWrapper").stop(!0,!0),0>a&&c.data("scrollWrapper").scrollLeft()>0||a>0&&c.data("scrollableAreaWidth")>c.data("scrollWrapper").innerWidth()+c.data("scrollWrapper").scrollLeft()||d.manualContinuousScrolling){var e=c.data("scrollableArea").width()-c.data("scrollWrapper").width(),f=c.data("scrollWrapper").scrollLeft()+a;if(0>f)for(var g=function(){c.data("swappedElement",c.data("scrollableArea").children(":last").detach()),c.data("scrollableArea").prepend(c.data("swappedElement")),c.data("scrollWrapper").scrollLeft(c.data("scrollWrapper").scrollLeft()+c.data("swappedElement").outerWidth(!0))};0>f;)g(),f=c.data("scrollableArea").children(":first").outerWidth(!0)+f;else if(f-e>0)for(var h=function(){c.data("swappedElement",c.data("scrollableArea").children(":first").detach()),c.data("scrollableArea").append(c.data("swappedElement"));var a=c.data("scrollWrapper").scrollLeft();c.data("scrollWrapper").scrollLeft(a-c.data("swappedElement").outerWidth(!0))};f-e>0;)h(),f-=c.data("scrollableArea").children(":last").outerWidth(!0);d.easingAfterMouseWheelScrolling?c.data("scrollWrapper").animate({scrollLeft:c.data("scrollWrapper").scrollLeft()+a},{duration:d.easingAfterMouseWheelScrollingDuration,easing:d.easingAfterMouseWheelFunction,complete:function(){b._showHideHotSpots(),d.manualContinuousScrolling&&(a>0?b._checkContinuousSwapRight():b._checkContinuousSwapLeft())}}):(c.data("scrollWrapper").scrollLeft(c.data("scrollWrapper").scrollLeft()+a),b._showHideHotSpots(),d.manualContinuousScrolling&&(a>0?b._checkContinuousSwapRight():b._checkContinuousSwapLeft()))}},getFlickrContent:function(b,c){var d=this,e=this.element;a.getJSON(b,function(b){function f(b,h){var n=b.media.m,o=n.replace("_m",i[h].letter),p=a("").attr("src",o);p.load(function(){if(this.height0?a("
").html(g).find(d):b:g,c){case"addFirst":f.data("scrollableArea").children(":first").before(h);break;case"addLast":f.data("scrollableArea").children(":last").after(h);break;default:f.data("scrollableArea").html(h)}e.recalculateScrollableArea(),e._showHideHotSpots(),e._trigger("addedAjaxContent")})},getHtmlContent:function(b,c,d){var e,f=this,g=this.element;switch(e=void 0!==d&&d.length>0?a("
").html(b).find(d):b,c){case"addFirst":g.data("scrollableArea").children(":first").before(e);break;case"addLast":g.data("scrollableArea").children(":last").after(e);break;default:g.data("scrollableArea").html(e)}f.recalculateScrollableArea(),f._showHideHotSpots(),f._trigger("addedHtmlContent")},recalculateScrollableArea:function(){var b=0,c=!1,d=this.options,e=this.element;e.data("scrollableArea").children(d.countOnlyClass).each(function(){d.startAtElementId.length>0&&a(this).attr("id")===d.startAtElementId&&(e.data("startingPosition",b),c=!0),b+=a(this).outerWidth(!0)}),c||e.data("startAtElementId",""),e.data("scrollableAreaWidth",b),e.data("scrollableArea").width(e.data("scrollableAreaWidth")),e.data("scrollWrapper").scrollLeft(e.data("startingPosition")),e.data("scrollXPos",e.data("startingPosition"))},getScrollerOffset:function(){var a=this.element;return a.data("scrollWrapper").scrollLeft()},stopAutoScrolling:function(){var a=this,b=this.element;null!==b.data("autoScrollingInterval")&&(clearInterval(b.data("autoScrollingInterval")),b.data("autoScrollingInterval",null),a._showHideHotSpots(),a._trigger("autoScrollingStopped"))},startAutoScrolling:function(){var a=this,b=this.element,c=this.options;b.data("enabled")&&(a._showHideHotSpots(),clearInterval(b.data("autoScrollingInterval")),b.data("autoScrollingInterval",null),a._trigger("autoScrollingStarted"),b.data("autoScrollingInterval",setInterval(function(){if(!b.data("visible")||b.data("scrollableAreaWidth")<=b.data("scrollWrapper").innerWidth())clearInterval(b.data("autoScrollingInterval")),b.data("autoScrollingInterval",null);else switch(b.data("previousScrollLeft",b.data("scrollWrapper").scrollLeft()),c.autoScrollingDirection){case"right":b.data("scrollWrapper").scrollLeft(b.data("scrollWrapper").scrollLeft()+c.autoScrollingStep),b.data("previousScrollLeft")===b.data("scrollWrapper").scrollLeft()&&(a._trigger("autoScrollingRightLimitReached"),a.stopAutoScrolling());break;case"left":b.data("scrollWrapper").scrollLeft(b.data("scrollWrapper").scrollLeft()-c.autoScrollingStep),b.data("previousScrollLeft")===b.data("scrollWrapper").scrollLeft()&&(a._trigger("autoScrollingLeftLimitReached"),a.stopAutoScrolling());break;case"backAndForth":b.data("scrollWrapper").scrollLeft("right"===b.data("pingPongDirection")?b.data("scrollWrapper").scrollLeft()+c.autoScrollingStep:b.data("scrollWrapper").scrollLeft()-c.autoScrollingStep),b.data("previousScrollLeft")===b.data("scrollWrapper").scrollLeft()&&("right"===b.data("pingPongDirection")?(b.data("pingPongDirection","left"),a._trigger("autoScrollingRightLimitReached")):(b.data("pingPongDirection","right"),a._trigger("autoScrollingLeftLimitReached")));break;case"endlessLoopRight":b.data("scrollWrapper").scrollLeft(b.data("scrollWrapper").scrollLeft()+c.autoScrollingStep),a._checkContinuousSwapRight();break;case"endlessLoopLeft":b.data("scrollWrapper").scrollLeft(b.data("scrollWrapper").scrollLeft()-c.autoScrollingStep),a._checkContinuousSwapLeft()}},c.autoScrollingInterval)))},_checkContinuousSwapRight:function(){var b=this.element,c=this.options;if(b.data("getNextElementWidth")&&(c.startAtElementId.length>0&&b.data("startAtElementHasNotPassed")?(b.data("swapAt",a("#"+c.startAtElementId).outerWidth(!0)),b.data("startAtElementHasNotPassed",!1)):b.data("swapAt",b.data("scrollableArea").children(":first").outerWidth(!0)),b.data("getNextElementWidth",!1)),b.data("swapAt")<=b.data("scrollWrapper").scrollLeft()){b.data("swappedElement",b.data("scrollableArea").children(":first").detach()),b.data("scrollableArea").append(b.data("swappedElement"));var d=b.data("scrollWrapper").scrollLeft();b.data("scrollWrapper").scrollLeft(d-b.data("swappedElement").outerWidth(!0)),b.data("getNextElementWidth",!0)}},_checkContinuousSwapLeft:function(){var b=this.element,c=this.options;b.data("getNextElementWidth")&&(c.startAtElementId.length>0&&b.data("startAtElementHasNotPassed")?(b.data("swapAt",a("#"+c.startAtElementId).outerWidth(!0)),b.data("startAtElementHasNotPassed",!1)):b.data("swapAt",b.data("scrollableArea").children(":first").outerWidth(!0)),b.data("getNextElementWidth",!1)),0===b.data("scrollWrapper").scrollLeft()&&(b.data("swappedElement",b.data("scrollableArea").children(":last").detach()),b.data("scrollableArea").prepend(b.data("swappedElement")),b.data("scrollWrapper").scrollLeft(b.data("scrollWrapper").scrollLeft()+b.data("swappedElement").outerWidth(!0)),b.data("getNextElementWidth",!0))},restoreOriginalElements:function(){var a=this,b=this.element;b.data("scrollableArea").html(b.data("originalElements")),a.recalculateScrollableArea(),a.jumpToElement("first")},show:function(){var a=this.element;a.data("visible",!0),a.show()},hide:function(){var a=this.element;a.data("visible",!1),a.hide()},enable:function(){var a=this.element;this.options.touchScrolling&&a.data("scrollWrapper").kinetic("attach"),a.data("enabled",!0)},disable:function(){var a=this,b=this.element;a.stopAutoScrolling(),clearInterval(b.data("rightScrollingInterval")),clearInterval(b.data("leftScrollingInterval")),clearInterval(b.data("hideHotSpotBackgroundsInterval")),this.options.touchScrolling&&b.data("scrollWrapper").kinetic("detach"),b.data("enabled",!1)},destroy:function(){var b=this,c=this.element;b.stopAutoScrolling(),clearInterval(c.data("rightScrollingInterval")),clearInterval(c.data("leftScrollingInterval")),clearInterval(c.data("hideHotSpotBackgroundsInterval")),c.data("scrollingHotSpotRight").unbind("mouseover"),c.data("scrollingHotSpotRight").unbind("mouseout"),c.data("scrollingHotSpotRight").unbind("mousedown"),c.data("scrollingHotSpotLeft").unbind("mouseover"),c.data("scrollingHotSpotLeft").unbind("mouseout"),c.data("scrollingHotSpotLeft").unbind("mousedown"),c.unbind("mousenter"),c.unbind("mouseleave"),c.data("scrollingHotSpotRight").remove(),c.data("scrollingHotSpotLeft").remove(),c.data("scrollableArea").remove(),c.data("scrollWrapper").remove(),c.html(c.data("originalElements")),a.Widget.prototype.destroy.apply(this,arguments)}})}(jQuery),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var e,f=b||window.event,g=[].slice.call(arguments,1),h=0,i=0,j=0,k=0,l=0;return b=a.event.fix(f),b.type="mousewheel",f.wheelDelta&&(h=f.wheelDelta),f.detail&&(h=-1*f.detail),j=h,void 0!==f.axis&&f.axis===f.HORIZONTAL_AXIS&&(j=0,i=-1*h),f.deltaY&&(j=-1*f.deltaY,h=j),f.deltaX&&(i=f.deltaX,h=-1*i),void 0!==f.wheelDeltaY&&(j=f.wheelDeltaY),void 0!==f.wheelDeltaX&&(i=-1*f.wheelDeltaX),k=Math.abs(h),(!c||c>k)&&(c=k),l=Math.max(Math.abs(j),Math.abs(i)),(!d||d>l)&&(d=l),e=h>0?"floor":"ceil",h=Math[e](h/c),i=Math[e](i/d),j=Math[e](j/d),g.unshift(b,h,i,j),(a.event.dispatch||a.event.handle).apply(this,g)}var c,d,e=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],f="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"];if(a.event.fixHooks)for(var g=e.length;g;)a.event.fixHooks[e[--g]]=a.event.mouseHooks;a.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=f.length;a;)this.addEventListener(f[--a],b,!1);else this.onmousewheel=b},teardown:function(){if(this.removeEventListener)for(var a=f.length;a;)this.removeEventListener(f[--a],b,!1);else this.onmousewheel=null}},a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})}),ApiHandler=function(a){function b(a){var b=d3.xhr(d.url+"/"+a);return b.header("Content-Type","application/json"),b}function c(a,b,c){return a.post(JSON.stringify(b)).on("load",function(a){var b=JSON.parse(a.response);c(null,b)}).on("error",function(a){c({status:a.status,text:a.statusText,message:a.response})}),a}var d=this;d.url=a,this.offersExercised=function(a,c,d){var e=b("offersExercised");return e.post(JSON.stringify(a)).on("load",function(b){var d=JSON.parse(b.response),e=[];if(d.length>1)if(a.reduce===!1){d.shift(),e=d.map(function(a){return{time:moment.utc(a[0]),price:a[1],amount:a[2],amount2:a[3],tx:a[4],id:a[5],type:""}});for(var f=null,g=e.length;g>-1;g--)f&&f.price>e[g].price?e[g].type="bid":f&&f.price-.01&&(k.difference=0),k.difference=k.difference.toFixed(2)}function f(){k.difference>0?(k.direction="up",k.divPriceStatus.attr("src",ARROW_UP_PNG).style({height:5,width:10}),k.divPct.attr("class",null).attr("class","pct pctUp")):k.difference<0?(k.direction="down",k.divPriceStatus.attr("src",ARROW_DOWN_PNG).style({height:5,width:10}),k.divPct.attr("class",null).attr("class","pct pctDown")):(k.direction="unch",k.divPriceStatus.attr("src",BLANK_PNG).style({height:0,width:0}),k.divPct.attr("class",null).attr("class","pct"))}function g(){k.startTime=moment.utc().add(1,"h").startOf("day"),k.newUtcPrice=k.markets.apiHandler.offersExercised({base:a,counter:b,startTime:"2013-1-1",endTime:k.startTime,reduce:!1,limit:1,descending:!0},function(a){k.oldPrice=a[0].price,e(),k.divPct.text(k.difference+"%"),f()})}function h(){k.timeout=setInterval(function(){g()},864e5)}function i(a,b){var c={startTime:moment.utc(),baseVolume:0,counterVolume:0,count:0,open:0,high:0,low:0,close:0,vwap:0,openTime:null,closeTime:null},d={base:a,counter:b,timeIncrement:"minute",timeMultiple:15,incompleteApiRow:c};liveFeed=new OffersExercisedListener(d,j),listener_list.push(liveFeed)}function j(a){var b=k.price;0!==a.close&&(k.price=a.close),b>k.price?(k.div.select(".price").style("color","#a22"),k.div.select(".price").transition().delay(500).text(addCommas(parseFloat(k.price.toPrecision(6)))),k.div.select(".price").transition().delay(1500).duration(500).style("color","#3C3C3C")):b0?k.timeout=setTimeout(function(){h(),g()},n):h(),k.reqUtcPrice=k.markets.apiHandler.offersExercised({base:a,counter:b,startTime:"2013-1-1",endTime:k.startTime,reduce:!1,limit:1,descending:!0},function(c){k.oldPrice=c[0].price,k.reqCurrentPrice=k.markets.apiHandler.offersExercised({base:a,counter:b,startTime:moment.utc().subtract(1,"d"),endTime:moment.utc(),reduce:!1,limit:1,descending:!0},function(c){k.price=c[0].price,e(),k.div.on("click",function(){var c="markets/"+a.currency+(a.issuer?":"+a.issuer:"")+"/"+b.currency+(b.issuer?":"+b.issuer:"");window.open("http://www.ripplecharts.com/#/"+c,"_blank")}),k.div.on("mouseover",function(){k.div.style("opacity",1)}),k.div.on("mouseout",function(){k.div.style("opacity",.7)}),""!==a.name&&""!==b.name?k.div.append("div").attr("class","baseGateway").text(a.name+"/"):""!==a.name&&k.div.append("div").attr("class","baseGateway").text(a.name),""!==b.name&&k.div.append("div").attr("class","counterGateway").text(b.name),k.divPrice=k.div.append("div").attr("class","price priceWrapper").text(addCommas(parseFloat(k.price.toPrecision(6)))),k.div.append("div").attr("class","baseCurrency").text(a.currency+"/"),k.div.append("div").attr("class","counterCurrency").text(b.currency),k.divPct=k.div.append("div").attr("class","pct").text(k.difference+"%"),k.divPriceStatus=k.div.append("img").attr("class","priceStatus"),f(),d(),i(a,b)})})},default_markets=[{base:{currency:"XRP"},counter:{currency:"USD",issuer:"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"}},{base:{currency:"BTC",issuer:"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"},counter:{currency:"XRP"}},{base:{currency:"XRP"},counter:{currency:"KRW",issuer:"rUkMKjQitpgAM5WTGk79xpjT38DEJY283d"}},{base:{currency:"XRP"},counter:{currency:"JPY",issuer:"rMAz5ZnK73nyNUL4foAvaxdreczCkG3vA6"}},{base:{currency:"XRP"},counter:{currency:"USD",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B"}},{base:{currency:"BTC",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B"},counter:{currency:"XRP"}},{base:{currency:"XRP"},counter:{currency:"EUR",issuer:"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q"}},{base:{currency:"XRP"},counter:{currency:"CNY",issuer:"rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK"}}],itext="Each ticker represents the last traded price of each currency and gateway pair. The arrow and precentage represent the change in price since the start of the day (UTC). The prices and precentages update live and refresh at the start of each new day (UTC). The price flashing signifies that a trade just went through. A red flash signifies it lowering the price, whereas a green flash signifies that it raised the price.";!function(){var a,b,c,d=[];ripple.currencyDropdown=function(e){function f(a){d?d.push(function(){a.call(g)}):a.call(g)}function g(b){function d(){if(e)i.change(k.node().value);else{var b=k.node().value,c="XRP"==b?[""]:a[b].map(function(a){return a.gateway.name}),d=n.selectAll("option").data(c,String);if(d.enter().append("option").text(function(a){return a}),d.exit().remove(),"XRP"==b?n.attr("disabled","true"):n.attr("disabled",null),h){var g=l?l.name:"";d.property("selected",function(a){return a===g})}f()}}function f(){var b=n.node().value,c=k.node().value,d=a[c];if(account=d&&d.filter(function(a){return a.gateway.name===b})[0],issuer=account?account.address:null,account)for(j=0;j20736e5)return;e>0?c.timeout=setTimeout(function(){c.finishedInterval(),b(c)},e):(c.finishedInterval(),b(c))}else c.txProcessor=createTransactionProcessor(c.viewOpts,c.displayFn);remote.on("transaction_all",c.txProcessor)},"undefined"!=typeof module&&(module.exports=OffersExercisedListener);var gateways=[{name:"Bitstamp",startDate:"2013-02-22",accounts:[{address:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",currencies:["BTC","USD","EUR"],hotwallets:["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"]}]},{name:"RippleChina",startDate:"2013-05-21",accounts:[{address:"razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA",currencies:["CNY"],hotwallets:["r45dBj4S3VvMMYXxr9vHX4Z4Ma6ifPMCkK"]}]},{name:"rippleCN",startDate:"2013-05-05",accounts:[{address:"rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK",currencies:["BTC","CNY"],hotwallets:["rNaptDNfFXo1quhKwMaNPf66iwPqA8YLky","rno91tGDJeRcnM7EMXj8KG9UTyxRGMMz8s"]}]},{name:"Payroutes",startDate:"2013-04-24",accounts:[{address:"rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9",currencies:["BTC","ILS"],hotwallets:[]}]},{name:"SnapSwap",startDate:"2013-06-18",accounts:[{address:"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q",currencies:["USD","BTC","EUR","GBP"],hotwallets:["rUQTpMqAF5jhykj4FExVeXakrZpiKF6cQV","rhasPLL5GaXzBh5amQkN7Dr1SNF4Whb2ZT"]}]},{name:"The Rock Trading",startDate:"2013-05-19",accounts:[{address:"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun",currencies:["BTC","EUR","USD"],hotwallets:["rUeFPRGNjtcbtezyQKKiDcS1eQyYLQ1gcr"]}]},{name:"WisePass",startDate:"2013-04-28",accounts:[{address:"rPDXxSZcuVL3ZWoyU82bcde3zwvmShkRyF",currencies:["BTC","LTC","USD"],hotwallets:["r9xAQUyqs53QH2PLxe7iFbNbpU2RA9QtZx"]}]},{name:"RippleUnion",startDate:"2013-03-22",accounts:[{address:"r3ADD8kXSUKHd6zTCKfnKT3zV9EZHjzp1S",currencies:["CAD"],hotwallets:[]}]},{name:"Justcoin",startDate:"2013-07-29",accounts:[{address:"rJHygWcTLVpSXkowott6kzgZU6viQSVYM1",currencies:["LTC","BTC","STR","EUR","NOK"],hotwallets:[]}]},{name:"DotPayco",startDate:"2013-06-02",accounts:[{address:"rM8199qFwspxiWNZRChZdZbGN5WrCepVP1",currencies:["CNY"],hotwallets:[]}]},{name:"Ripple Singapore",startDate:"2014-01-25",accounts:[{address:"r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH",currencies:["XAU","XAG","USD","SGD"],hotwallets:[]}]},{name:"Ripple Trade Japan",startDate:"2014-02-21",accounts:[{address:"rMAz5ZnK73nyNUL4foAvaxdreczCkG3vA6",currencies:["JPY"],hotwallets:[]}]},{name:"Bitso",startDate:"2014-05-22",accounts:[{address:"rG6FZ31hDHN1K5Dkbma3PSB5uVCuVVRzfn",currencies:["MXN","BTC"],hotwallets:["rHZaDC6tsGN2JWGeXhjKL6664RNCq5hu4B"]}]},{name:"Coinex",startDate:"2014-04-01",accounts:[{address:"rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc",currencies:["NZD","BTC","USD","AUD","STR"],hotwallets:["rGAmy1w1ENyTJ9BCAEicYyRM2Yk1iWZ7Z5"],domain:"coinexgateway.com"}]},{name:"Ripple LatAm",startDate:"2014-05-01",accounts:[{address:"rP5ShE8dGBH6hHtNvRESdMceen36XFBQmh",currencies:["BRL","UYU","PEN","MXN","BTC","LTC","USD","CLP","ARS"],hotwallets:["raoFdQah8c8owTj4TPMr8o1WntnXybXCgB"],domain:"ripplelatam.com"}]},{name:"GBI",startDate:"2014-07-28",accounts:[{address:"rrh7rf1gV2pXAoqA8oYbpHd8TKv5ZQeo67",currencies:[{label:"XAU",code:"0158415500000000C1F76FF6ECB0BAC600000000"}]}],hotwallets:[],domain:"goldbullioninternational.com"},{name:"Lake BTC",startDate:"2014-05-19",accounts:[{address:"rpDMez6pm6dBve2TJsmDpv7Yae6V5Pyvy2",currencies:["USD"]}],hotwallets:["rP9gFJKqKGWdR4n6XjdsUPqmJfXkg4kSgZ"],domain:"lakebtc.com"},{name:"Ripple Fox",startDate:"2014-04-19",accounts:[{address:"rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y",currencies:["CNY","STR"]}],hotwallets:["rLSnkKvMfPD9abLoQFxQJMYyZqJcsqkL3o","rPcQaiyDxMwLr7Q9eFmn5VnVx2RN57MUmN","r3ipidkRUZWq8JYVjnSnNMf3v7o69vgLEW"],domain:"ripplefox.com"},{name:"TokyoJPY",startDate:"2014-08-18",accounts:[{address:"r94s8px6kSw1uZ1MV98dhSRTvc6VMPoPcN",currencies:["JPY"]}],hotwallets:[],domain:"tokyojpy.com"},{name:"Rippex",startDate:"2014-09-13",accounts:[{address:"rfNZPxoZ5Uaamdp339U9dCLWz2T73nZJZH",currencies:["BRL"]}],hotwallets:["r37FUji17jCgCZvAUc8m5YqXquwHpgwa9q"],domain:"rippex.net"},{name:"Ripple Market Japan",startDate:"2014-08-12",accounts:[{address:"rJRi8WW24gt9X85PHAxfWNPCizMMhqUQwg",currencies:["JPY"]}],hotwallets:[],domain:"ripple-market.jp"},{name:"Pax Moneta",startDate:"2014-09-06",accounts:[{address:"rUkMKjQitpgAM5WTGk79xpjT38DEJY283d",currencies:["KRW"]}],hotwallets:["rhLSigWL4J9JBBW1JFMBvaduDkVghG7cc2"],domain:"paxmoneta.com"},{name:"Ripple Exchange Tokyo",startDate:"2014-09-25",accounts:[{address:"r9ZFPSb1TFdnJwbTMYHvVwFK1bQPUCVNfJ",currencies:["JPY"]}],hotwallets:[],domain:"ripple-exchange.tokyo"},{name:"Ripula",startDate:"2014-10-16",accounts:[{address:"rBycsjqxD8RVZP5zrrndiVtJwht7Z457A8",currencies:["GBP"]}],hotwallets:["rUR5QVHqFxRa8TSQawc1M6jKj7BvKzbHek"],domain:"ripula.co.uk"},{name:"Mr. Ripple",startDate:"2014-10-5",accounts:[{address:"rB3gZey7VWHYRqJHLoHDEJXJ2pEPNieKiS",currencies:["JPY"]}],hotwallets:[],domain:"mr-ripple.com"}]; diff --git a/deps/js/roost.min.js b/deps/js/roost.min.js new file mode 100644 index 000000000..0680ab206 --- /dev/null +++ b/deps/js/roost.min.js @@ -0,0 +1 @@ +window._roost||(window._roost=[]),_roost.init||!function(e){function c(e){if(!e||!e.origin)return;if(l.indexOf(e.origin)==-1)return;var t=JSON.parse(e.data);if(t.type&&t.type=="registered"){_roost._fireRoostCallback({firstTime:t.firstTime,deviceToken:t.deviceToken,registered:t.enabled,enabled:!0,tags:t.tags,alias:t.alias});return}u.enabled=t.enabled,u.tags=t.tags,u.alias=t.alias,u.websiteDomain=t.websiteDomain;for(var n=0;n<_roost.length;n++)f.push(_roost[n]);_roost=f,_roost._o=u;var r=u.onload;r&&typeof r=="function"&&r({promptable:_roost.promptable()}),u.initFunction&&u.initFunction(!0)}function h(){u.appkey="1614486d7a974efa8f15823a92ce6bd3",v(),E("experimental"),u.appkey!="DEMO"&&(window&&typeof window.safari!="undefined"?(u.initFunction=D,u.idFunction=_):u.experimental&&o&&(u.initFunction=P)),u.initFunction&&(f.prompt=function(){u.initFunction(!1)}),u.idFunction&&(u.rdt=u.idFunction()),u.rdt||(u.rdt=L("_rdt")),u.rid=L("_rid"),(!u.rid||u.rid=="")&&S()&&(u.rid=g(),k("_rid",u.rid)),E("host");if(u.initFunction){var e=u.host+"/api/pageview?rdt="+encodeURIComponent(u.rdt)+"&rid="+encodeURIComponent(u.rid)+"&appKey="+encodeURIComponent(u.appkey)+"&url="+encodeURIComponent(document.URL)+"&referrer="+encodeURIComponent(document.referrer);p(e)}else{var t=u.onload;t&&typeof t=="function"&&t({promptable:f.promptable()})}}function p(e){var t=document.createElement("iframe");t.style.display="none",t.src=e,document.body.appendChild(t)}function d(e){var t=document.createElement("iframe");t.style.display="none";var n=!1;t.onload=function(){n=!0},setTimeout(function(){n||console.log("Roost Error: Could not load required content: "+e)},2e3),t.src=e,document.body.appendChild(t)}function v(){typeof twttr!="undefined"&&typeof twttr.events!="undefined"&&typeof twttr.events.bind!="undefined"&&twttr.events.bind("tweet",function(e){f.push(["social_action","TWEET"])}),typeof FB!="undefined"&&typeof FB.Event!="undefined"&&typeof FB.Event.subscribe!="undefined"&&(FB.Event.subscribe("edge.create",function(e){f.push(["social_action","FB_LIKE"])}),FB.Event.subscribe("edge.remove",function(e){f.push(["social_action","FB_UNLIKE"])}),FB.Event.subscribe("comment.create",function(e){f.push(["social_action","FB_COMMENT"])}),FB.Event.subscribe("comment.remove",function(e){f.push(["social_action","FB_UNCOMMENT"])}),FB.Event.subscribe("message.send",function(e){f.push(["social_action","FB_SHARE"])}))}function m(){return location.protocol=="https:"}function g(){function e(){return Math.floor((1+Math.random())*65536).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}function E(e){var t=[];for(var n=0;n<_roost.length;n++)_roost[n].length&&_roost[n][0]==e?f.push(_roost[n]):t.push(_roost[n]);_roost=t}function S(){var e="cc"+Math.random(),t=!1;return k(e,"true"),L(e)&&(t=!0),k(e,"",-1),t}function x(t){T({url:u.host+"/Ping",vars:{appKey:u.appkey,referrer:encodeURIComponent((document.referrer+"").split("'").join("%27")),page:encodeURIComponent((e.location+"").split("'").join("%27")),action:"log",details:t?JSON.stringify(t):"",rdt:L("_rdt")}})}function T(e){e=e||{},e.url=e.url||null,e.vars=e.vars||{},e.error=e.error||function(){},e.success=e.success||function(){};var t=[];for(var n in e.vars)t.push(n+"="+encodeURIComponent(e.vars[n]));var r=t.join("&");if(e.url){var i=e.url+"?"+r,s=new Image;e.error&&(s.onerror=e.error),e.success&&(s.onload=e.success),s.src=i}}function N(e){u[e[0]]=typeof e[1]=="undefined"?u[e[0]]:e[1]}function C(e){return function(t){if(!u.appkey)return!1;e(t)}}function k(e,t,n,r){n||(n=0);var i=new Date;i.setTime(i.getTime()+n*24*60*60*1e3);var s=escape(t)+(n==null||n==0?"":"; expires="+i.toGMTString())+"; "+(r?" domain=."+r+"; ":"")+" path=/";document.cookie=e+"="+s}function L(e){if(document.cookie.length>0){c_start=document.cookie.indexOf(e+"=");if(c_start!=-1)return c_start=c_start+e.length+1,c_end=document.cookie.indexOf(";",c_start),c_end==-1&&(c_end=document.cookie.length),unescape(document.cookie.substring(c_start,c_end))}return""}function _(){var e="web.web.me.roost.autob473dc7f18e0491da8b5d3f1d1d6e576",t=window.safari.pushNotification.permission(e);if(t.permission=="granted")return t.deviceToken}function D(e){typeof e=="undefined"&&(e=!1);var t="web.web.me.roost.autob473dc7f18e0491da8b5d3f1d1d6e576",n=!1,r=location.host,i=location.host.split(".").reverse();i.length>1&&r.indexOf("blogger.com")==-1&&(r=i[1]+"."+i[0]),r=r.split(":")[0];var s=function(){n=!0;var e=_roost._getTags(),i=_roost._getAlias();A=setInterval(function(){var e=window.safari.pushNotification.permission(t);e.permission=="granted"&&!O&&(O=!0,console.log("Fake callback"),_roost._fireRoostCallback({firstTime:!0,deviceToken:e.deviceToken,registered:e.permission!="denied",enabled:!0,tags:_roost._getTags(),alias:_roost._getAlias()}),_roost.setCookie("_rdt",e.deviceToken,1825,r)),O&&clearInterval(A)},1e3),window.safari.pushNotification.requestPermission("https://go.goroost.com/register/native/safari/1614486d7a974efa8f15823a92ce6bd3",t,{website:encodeURIComponent(location.href),data:"{'tags':'"+e+"','alias':'"+i+"'}"},M)},o=window.safari.pushNotification.permission(t);if(o.permission=="default"){var u=_roost._isAutoPrompt(),a=_roost._promptMinVisits();(!e||u||a)&&s()}else o.permission=="granted"?(_roost._fireRoostCallback({firstTime:!1,deviceToken:o.deviceToken,registered:!0,enabled:_roost._isEnabled(),tags:_roost._getTags(),alias:_roost._getAlias()}),o.deviceToken&&_roost.setCookie("_rdt",o.deviceToken,1825,r)):_roost._fireRoostCallback({firstTime:!1,deviceToken:o.deviceToken,registered:!1,enabled:_roost._isEnabled(),tags:_roost._getTags(),alias:_roost._getAlias()})}function P(e){typeof e=="undefined"&&(e=!1),document.domain!=u.websiteDomain&&console.log("Roost Error: Domains do not match and Chrome push can old support a single config / domain: "+u.websiteDomain);var t=_roost._getTags(),n=_roost._getAlias(),r="?appKey="+u.appkey+"&host="+encodeURIComponent(u.host);n&&(r+="&alias="+encodeURIComponent(n));for(var i=0;i1&&e.indexOf("blogger.com")==-1&&(e=t[1]+"."+t[0]),e=e.split(":")[0],e},_cookiesEnabled:function(){var e="cc"+Math.random(),t=!1;return _roost.setCookie(e,"true"),_roost.getCookie(e)&&(t=!0),_roost.setCookie(e,"",-1),t},_promptMinVisits:function(){if(u.minvisits>-1){if(!_roost._cookiesEnabled())return!1;var e="_r_visits",t=_roost.getCookie(e);return t?t++:t=1,_roost.setCookie(e,t,30,_roost._domain()),u.minvisits<=t}return!1},_enqueue:function(e){a.push(e),a.length==1&&f._processQueue()},_processQueue:function(){if(a.length){var e=a[0];e()}},_workFinished:function(){a.length&&(a.shift(),f._processQueue())}};window&&window.addEventListener&&window.addEventListener("message",c,!1);var l=["http://localhost:8081","http://go.goroost.com","https://go.goroost.com","http://cdn.goroost.com","https://cdn.goroost.com"],y=C(function(e){var t=[];for(var n=1;n-1&&u.tags.splice(o,1)}u.tags=u.tags.concat(t)}f._enqueue(function(){u.rdt?T({url:u.host+"/Ping",vars:{action:r,appKey:u.appkey,tags:JSON.stringify(t),rdt:u.rdt},success:f._workFinished}):f._workFinished()})}),b=C(function(e){var t=null;e&&e.length==2&&(t=e[1]);var n=e[0];n=="alias"?u.alias=t:n=="alias_clear"&&(u.alias=null),f._enqueue(function(){u.rdt?T({url:u.host+"/Ping",vars:{action:e[0],appKey:u.appkey,alias:t,rdt:u.rdt},success:f._workFinished}):f._workFinished()})}),w={appkey:function(){},onload:N,onresult:N,host:N,experimental:N,minvisits:N,tags:y,segments:y,segments_add:y,segments_remove:y,segments_clear:y,alias:b,alias_clear:b,autoprompt:N,prompt:function(){_roost.prompt&&_roost.prompt()},log:function(e){x(e[1])},social_action:C(function(e){T({url:u.host+"/Ping",vars:{action:"socialAction",appKey:u.appkey,useraction:e[1],rdt:L("_rdt")}})}),enable:C(function(e){f._enqueue(function(){T({url:u.host+"/Ping",vars:{action:"enable",appKey:u.appkey,enable:e[1],rdt:u.rdt},success:f._workFinished})})})},A,O=!1,M=function(e){A&&(clearInterval(A),A=null),u.rdt=e.deviceToken,O||(O=!0,_roost._fireRoostCallback({firstTime:!0,deviceToken:e.deviceToken,registered:e.permission!="denied",enabled:!0,tags:_roost._getTags(),alias:_roost._getAlias()})),e.permission=="granted"&&_roost.setCookie("_rdt",e.deviceToken,1825,domain)};H()}(window) \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 000000000..d2f0a2075 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,280 @@ +'use strict'; + +var gulp = require('gulp'), + merge = require('merge-stream'), + modRewrite = require('connect-modrewrite'), + BannerPlugin = require('gulp-webpack/node_modules/webpack/lib/BannerPlugin'), + UglifyJsPlugin = require('gulp-webpack/node_modules/webpack/lib/optimize/UglifyJsPlugin'), + jade = require('jade'), + jadeL10n = require('jade-l10n'), + + meta = require('./package.json'), + languages = require('./l10n/languages.json').active; + +var $ = require('gulp-load-plugins')({ + pattern: ['gulp-*', 'del', 'browser-sync'] +}); + +var buildDirPath = 'build'; + +require('events').EventEmitter.prototype._maxListeners = 100; + +// Clean the build folder +gulp.task('clean:dev', function () { + $.del.sync([buildDirPath + '/dev/*']); +}); + +gulp.task('clean:dist', function () { + $.del.sync([buildDirPath + '/dist/*']); +}); + +gulp.task('bower', function() { + return $.bower(); +}); + +// Webpack +gulp.task('webpack:dev', function() { + // TODO jshint + // TODO move to js/entry.js + return gulp.src('src/js/entry/web.js') + .pipe($.webpack({ + module: { + loaders: [ + { test: /\.jade$/, loader: "jade-loader" }, + { test: /\.json$/, loader: "json-loader" } + ] + }, + output: { + filename: "app.js" + }, + cache: true, + debug: true, + devtool: 'eval' + })) + .pipe(gulp.dest(buildDirPath + '/dev/js/')) + .pipe($.browserSync.reload({stream:true})); +}); + +gulp.task('webpack:dist', function() { + return gulp.src('src/js/entry/web.js') + .pipe($.webpack({ + module: { + loaders: [ + { test: /\.jade$/, loader: "jade-loader" }, + { test: /\.json$/, loader: "json-loader" } + ] + }, + output: { + filename: "app.js" + }, + plugins: [ + new BannerPlugin('Ripple Client v' + meta.version + '\nCopyright (c) ' + new Date().getFullYear() + ' ' + meta.author.name + '\nLicensed under the ' + meta.license + ' license.'), + new UglifyJsPlugin({ + compress: { + warnings: false + } + }) + ], + debug: false + })) + .pipe(gulp.dest(buildDirPath + '/dist/js/')); +}); + +// TODO SASS +// Less +gulp.task('less', function () { + return gulp.src('src/less/ripple/web.less') + .pipe($.less({ + paths: ['src/less'] + })) + .pipe(gulp.dest(buildDirPath + '/dev/css')) + .pipe($.browserSync.reload({stream:true})); +}); + +// Extracts l10n strings from template files +gulp.task('l10nExtract', function () { + return gulp.src('src/templates/**/*.jade') + .pipe($.jadeL10nExtractor({ + filename: 'messages.pot' + })) + .pipe(gulp.dest('./l10n/templates')) +}); + +// Static server +gulp.task('serve:dev', function() { + $.browserSync({ + server: { + baseDir: [".", buildDirPath + "/dev", buildDirPath, buildDirPath + "/dist", "./res", "./deps/js"], + middleware: [ + modRewrite([ + '!\\.html|\\.js|\\.css|\\.png|\\.jpg|\\.gif|\\.svg|\\.txt|\\.eot|\\.woff|\\.woff2|\\.ttf$ /index.html [L]' + ]) + ] + } + }); +}); + +gulp.task('serve:dist', function() { + $.browserSync({ + server: { + baseDir: [buildDirPath + "/dist"], + middleware: [ + modRewrite([ + '!\\.html|\\.js|\\.css|\\.png|\\.jpg|\\.gif|\\.svg|\\.txt|\\.eot|\\.woff|\\.woff2|\\.ttf$ /index.html [L]' + ]) + ] + }, + middleware: require("connect-logger")() + }); +}); + +// Static files +gulp.task('static', function() { + // Ripple.txt and mixpanel script + var rpl = gulp.src(['ripple.txt', 'deps/js/mixpanel.js']) + .pipe(gulp.dest(buildDirPath + '/dist/')); + + // Fonts and icons + var fontsIcons = gulp.src(['res/**/*']) + .pipe(gulp.dest(buildDirPath + '/dist/')); + + // Images + var images = gulp.src('img/**/*') + .pipe(gulp.dest(buildDirPath + '/dist/img/')); + + return merge(rpl, fontsIcons, images); +}); + +// Version branch +gulp.task('gitVersion', function (cb) { + require('child_process').exec('git rev-parse --abbrev-ref HEAD', function(err, stdout) { + meta.gitVersionBranch = stdout.replace(/\n$/, ''); + + require('child_process').exec('git describe --tags --always', function(err, stdout) { + meta.gitVersion = stdout.replace(/\n$/, ''); + + cb(err) + }) + }) +}); + +// Preprocess +gulp.task('preprocess:dev', ['gitVersion'], function() { + return gulp.src(buildDirPath + '/dev/templates/en/index.html') + .pipe($.preprocess({ + context: { + MODE: 'dev', + VERSION: meta.gitVersion, + VERSIONBRANCH: meta.gitVersionBranch, + VERSIONFULL: meta.gitVersion + '-' + meta.gitVersionBranch + } + })) + .pipe(gulp.dest(buildDirPath + '/dev/')) + .pipe($.browserSync.reload({stream:true})) +}); + +gulp.task('preprocess:dist', ['gitVersion'], function() { + return gulp.src(buildDirPath + '/dist/templates/en/index.html') + .pipe($.preprocess({ + context: { + MODE: 'dist', + VERSION: meta.gitVersion, + VERSIONBRANCH: meta.gitVersionBranch, + VERSIONFULL: meta.gitVersion + } + })) + .pipe(gulp.dest(buildDirPath + '/dist/')) +}); + +// Languages +gulp.task('templates:dev', function () { + return gulp.src('src/templates/**/*.jade') + .pipe($.jade({ + jade: jade, + pretty: true + })) + .pipe(gulp.dest('build/dev/templates/en')); +}); + +var languageTasks = []; + +languages.forEach(function(language){ + gulp.task('templates:' + language.code, function(){ + return gulp.src('src/templates/**/*.jade') + .pipe($.jade({ + jade: jadeL10n, + languageFile: 'l10n/' + language.code + '/messages.po', + pretty: true + })) + .pipe(gulp.dest(buildDirPath + '/dist/templates/' + language.code)); + }); + + languageTasks.push('templates:' + language.code); +}); + +gulp.task('templates:dist', $.sync(gulp).sync(languageTasks)); + +// Default Task (Dev environment) +gulp.task('default', ['dev'], function() { + gulp.start('serve:dev'); + + // Webpack + gulp.watch(['src/js/**/*.js'], ['webpack:dev']); + + // Templates + $.watch('src/templates/**/*.jade') + .pipe($.jadeFindAffected()) + .pipe($.jade({jade: jade, pretty: true})) + .pipe(gulp.dest('build/dev/templates/en')) + .pipe($.browserSync.reload({stream:true})); + + // Htmls + gulp.watch(buildDirPath + '/dev/templates/en/*.html', ['preprocess:dev']); + + // TODO Config + + gulp.watch('src/less/**/*', ['less']); +}); + +// Development +gulp.task('dev', ['clean:dev', 'bower', 'webpack:dev', 'less', 'templates:dev'], function () { + gulp.start('preprocess:dev'); +}); + +gulp.task('deps', ['preprocess:dist'], function () { + var assets = $.useref.assets(); + + return gulp.src([buildDirPath + '/dist/index.html']) + // Concatenates asset files from the build blocks inside the HTML + .pipe(assets) + // Appends hash to extracted files app.css → app-098f6bcd.css + .pipe($.rev()) + // Adds AngularJS dependency injection annotations + // We don't need this, cuz the app doesn't go thru this anymore + //.pipe($.if('*.js', $.ngAnnotate())) + // Uglifies js files + .pipe($.if('*.js', $.uglify())) + // Minifies css files + .pipe($.if('*.css', $.csso())) + // Brings back the previously filtered HTML files + .pipe(assets.restore()) + // Parses build blocks in html to replace references to non-optimized scripts or stylesheets + .pipe($.useref()) + // Rewrites occurences of filenames which have been renamed by rev + .pipe($.revReplace()) + // Minifies html + .pipe($.if('*.html', $.minifyHtml({ + empty: true, + spare: true, + quotes: true + }))) + // Creates the actual files + .pipe(gulp.dest(buildDirPath + '/dist/')) + // Print the file sizes + .pipe($.size({ title: buildDirPath + '/dist/', showFiles: true })); +}); + +// Distribution +gulp.task('dist', ['clean:dist', 'bower', 'less', 'l10nExtract', 'webpack:dist', 'templates:dist', 'static'], function () { + gulp.start('deps'); +}); \ No newline at end of file diff --git a/img/favicon.ico b/img/favicon.ico index 92d89f45a..6e2ae6bcb 100644 Binary files a/img/favicon.ico and b/img/favicon.ico differ diff --git a/l10n/de/messages.po b/l10n/de/messages.po index 443c9adce..3b2a06433 100644 --- a/l10n/de/messages.po +++ b/l10n/de/messages.po @@ -2,7 +2,7 @@ # Translators: # chi.monow , 2014 # chi.monow , 2014 -# Ettore Atalan , 2014 +# Ettore Atalan , 2014-2015 # FabianRuehle , 2014 # FabianRuehle , 2014 # J.M. , 2014-2015 @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: Ripple Trade\n" -"PO-Revision-Date: 2015-01-12 18:07+0000\n" +"PO-Revision-Date: 2015-04-04 14:08+0000\n" "Last-Translator: J.M. \n" "Language-Team: German (http://www.transifex.com/projects/p/ripple-trade/language/de/)\n" "MIME-Version: 1.0\n" @@ -25,47 +25,49 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/jade/client/index.jade:5 src/jade/client/navbar.jade:112 -#: src/jade/tabs/trust.jade:86 src/jade/tabs/trust.jade:228 +#: src/jade/client/index.jade:5 src/jade/client/navbar.jade:117 +#: src/jade/tabs/trust.jade:59 src/jade/tabs/trust.jade:168 msgid "Balance" msgstr "Kontostand" -#: src/jade/client/index.jade:7 src/jade/client/navbar.jade:114 +#: src/jade/client/index.jade:7 src/jade/client/navbar.jade:119 msgid "History" msgstr "Kontoauszug" -#: src/jade/client/index.jade:8 src/jade/client/navbar.jade:116 -#: src/jade/tabs/contacts.jade:5 +#: src/jade/client/index.jade:8 src/jade/client/navbar.jade:121 msgid "Contacts" msgstr "Kontakte" -#: src/jade/client/index.jade:12 src/jade/client/navbar.jade:13 -#: src/jade/tabs/contacts.jade:73 +#: src/jade/client/index.jade:12 src/jade/client/navbar.jade:21 +#: src/jade/tabs/contacts.jade:65 msgid "Send" msgstr "Senden" -#: src/jade/client/index.jade:16 src/jade/client/navbar.jade:123 +#: src/jade/client/index.jade:16 msgid "Convert" msgstr "Market-Order (Einfach)" -#: src/jade/client/index.jade:18 src/jade/client/navbar.jade:121 +#: src/jade/client/index.jade:18 src/jade/client/navbar.jade:23 +#: src/jade/client/navbar.jade:25 src/jade/tabs/settings/navbar.jade:3 msgid "Trade" msgstr "Handel" -#: src/jade/client/index.jade:22 src/jade/client/navbar.jade:19 -#: src/jade/client/navbar.jade:128 +#: src/jade/client/index.jade:22 src/jade/client/navbar.jade:27 +#: src/jade/client/navbar.jade:133 msgid "Fund" msgstr "Kapital" -#: src/jade/client/index.jade:24 src/jade/tabs/fund/menu.jade:5 +#: src/jade/client/index.jade:24 src/jade/tabs/fund/menu.jade:29 msgid "Gateways" msgstr "Gateways" -#: src/jade/client/index.jade:29 src/jade/tabs/su.jade:12 +#: src/jade/client/index.jade:29 src/jade/client/navbar.jade:107 +#: src/jade/tabs/su.jade:12 msgid "Account" msgstr "Konto" -#: src/jade/client/index.jade:32 src/jade/tabs/advanced.jade:9 +#: src/jade/client/index.jade:32 src/jade/client/navbar.jade:109 +#: src/jade/tabs/advanced.jade:19 msgid "Settings" msgstr "Einstellungen" @@ -73,198 +75,437 @@ msgstr "Einstellungen" msgid "Logout" msgstr "Abmelden" -#: src/jade/client/index.jade:41 -msgid "Welcome to {{productName}}, a global value exchange" -msgstr "Willkommen bei {{productName}}, einer globalen Werte-Handelsplattform" - -#: src/jade/client/index.jade:51 +#: src/jade/client/index.jade:61 +msgid "Why Use Ripple Trade?" +msgstr "Warum Ripple Trade verwenden?" + +#: src/jade/client/index.jade:66 +msgid "Home of XRP -" +msgstr "Heimat von XRP -" + +#: src/jade/client/index.jade:67 +msgid "the best place to buy and sell XRP" +msgstr "der beste Ort zum Kaufen und Verkaufen von XRP" + +#: src/jade/client/index.jade:71 +msgid "Free -" +msgstr "Kostenlos -" + +#: src/jade/client/index.jade:72 +msgid "no fees to sign up and use Ripple Trade" +msgstr "keine Gebühren zum Registrieren und Verwenden von Ripple Trade" + +#: src/jade/client/index.jade:76 +msgid "No Middlemen -" +msgstr "Keine Makler -" + +#: src/jade/client/index.jade:77 +msgid "" +"When you submit orders, Ripple automatically finds the best available match," +" without a clearinghouse or broker." +msgstr "Beim Absenden von Ordern findet Ripple automatisch die beste verfügbare Kombination, ohne Girozentrale oder Broker." + +#: src/jade/client/index.jade:81 +msgid "Deposit, trade and withdraw money on Ripple via gateways." +msgstr "Einzahlen, Handeln und Abheben von Geld auf Ripple über Gateways." + +#: src/jade/client/index.jade:89 +msgid "Featured Ripple Gateways" +msgstr "Nennenswerte Ripple-Gateways" + +#: src/jade/client/index.jade:91 +msgid "Ripple's growing gateway network." +msgstr "Das wachsende Gateway-Netzwerk von Ripple." + +#: src/jade/client/index.jade:93 src/jade/client/index.jade:96 +#: src/jade/client/index.jade:99 src/jade/client/index.jade:102 +#: src/jade/client/index.jade:105 src/jade/client/index.jade:108 +#: src/jade/client/index.jade:111 src/jade/client/index.jade:114 +#: src/jade/client/index.jade:117 src/jade/tabs/banner/unfunded.jade:6 +#: src/jade/tabs/brl.jade:53 src/jade/tabs/brl.jade:57 +#: src/jade/tabs/brl.jade:93 src/jade/tabs/btc.jade:46 +#: src/jade/tabs/eur.jade:50 src/jade/tabs/eur.jade:54 +#: src/jade/tabs/eur.jade:86 src/jade/tabs/eur.jade:93 +#: src/jade/tabs/gold.jade:51 src/jade/tabs/jpy.jade:55 +#: src/jade/tabs/jpy.jade:91 src/jade/tabs/jpy.jade:97 +#: src/jade/tabs/mxn.jade:53 src/jade/tabs/send.jade:63 +#: src/jade/tabs/trade.jade:320 src/jade/tabs/usd.jade:51 +#: src/jade/tabs/usd.jade:83 src/jade/tabs/usd.jade:90 +#: src/jade/tabs/usd.jade:100 src/jade/tabs/widgets/orders.jade:31 +msgid "{{1}}" +msgstr "{{1}}" + +#: src/jade/client/index.jade:123 msgid "Version: {{version}}" msgstr "Version: {{version}}" -#: src/jade/client/index.jade:55 -msgid "End-User License Agreement" -msgstr "Endbenutzer-Lizenzvertrag" +#: src/jade/client/index.jade:128 +msgid "Terms of Use" +msgstr "Nutzungsbedingungen" -#: src/jade/client/index.jade:56 +#: src/jade/client/index.jade:129 +msgid "Privacy Policy" +msgstr "Datenschutzerklärung" + +#: src/jade/client/index.jade:130 msgid "Support" msgstr "Support" -#: src/jade/client/index.jade:57 +#: src/jade/client/index.jade:131 msgid "Bug reports" msgstr "Fehlerberichte" -#: src/jade/client/index.jade:64 +#: src/jade/client/index.jade:138 msgid "more..." msgstr "mehr..." -#: src/jade/client/index.jade:68 +#: src/jade/client/index.jade:142 msgid "Select a language" msgstr "Sprachen Auswahl" -#: src/jade/client/navbar.jade:11 +#: src/jade/client/navbar.jade:2 +msgid "" +"You are viewing an account in {{1}} mode. While in this mode, you can view " +"publicly available data, but you cannot initiate any transactions. Click " +"{{2}} to exit." +msgstr "Sie zeigen ein Konto im {{1}}-Modus an. In diesem Modus können Sie öffentlich verfügbare Daten sehen, aber keine Transaktionen auslösen. Zum Beenden auf {{2}} klicken." + +#: src/jade/client/navbar.jade:8 +msgid "" +"Warning: this account has over 200 trust lines, so the displayed account " +"balance may not be accurate." +msgstr "Warnung: Dieses Konto hat mehr als 200 Vertrauenslinien, der angezeigte Kontostand stimmt unter Umständen nicht genau." + +#: src/jade/client/navbar.jade:19 msgid "Overview" msgstr "Übersicht" -#: src/jade/client/navbar.jade:15 src/jade/client/navbar.jade:17 -#: src/jade/tabs/exchange.jade:43 -msgid "Exchange" -msgstr "Umtausch" - -#: src/jade/client/navbar.jade:39 src/jade/tabs/account/public.jade:45 -#: src/jade/tabs/apps.jade:8 src/jade/tabs/balance.jade:8 -#: src/jade/tabs/balance.jade:27 src/jade/tabs/btc.jade:60 -#: src/jade/tabs/exchange.jade:9 src/jade/tabs/history.jade:207 -#: src/jade/tabs/kyc.jade:38 src/jade/tabs/recover.jade:21 -#: src/jade/tabs/security.jade:134 src/jade/tabs/su.jade:8 -#: src/jade/tabs/trust.jade:9 src/jade/tabs/trust.jade:175 +#: src/jade/client/navbar.jade:49 src/jade/tabs/account/private.jade:7 +#: src/jade/tabs/account/private.jade:16 src/jade/tabs/account/public.jade:45 +#: src/jade/tabs/apps.jade:8 src/jade/tabs/btc.jade:72 +#: src/jade/tabs/exchange.jade:9 src/jade/tabs/kyc.jade:45 +#: src/jade/tabs/recover.jade:26 src/jade/tabs/security.jade:147 +#: src/jade/tabs/su.jade:8 src/jade/tabs/trust.jade:9 +#: src/jade/tabs/trust.jade:139 msgid "Loading..." msgstr "Bitte warten..." -#: src/jade/client/navbar.jade:40 +#: src/jade/client/navbar.jade:50 msgid "There are no recent notifications." msgstr "Es gibt keine neuen Meldungen." -#: src/jade/client/navbar.jade:44 +#: src/jade/client/navbar.jade:54 msgid "You sent {{1}} to {{2}}" msgstr "Sie haben {{1}} zu {{2}} gesendet" -#: src/jade/client/navbar.jade:50 +#: src/jade/client/navbar.jade:60 msgid "{{1}} sent you {{2}}" msgstr "{{1}} hat Ihnen {{2}} gesendet" -#: src/jade/client/navbar.jade:58 +#: src/jade/client/navbar.jade:68 msgid "{{entry.transaction.counterparty | rpcontactname}} now trusts you for" msgstr "{{entry.transaction.counterparty | rpcontactname}} vertraut Ihnen jetzt über" -#: src/jade/client/navbar.jade:64 src/jade/notification/account.jade:25 -#: src/jade/tabs/history.jade:133 src/jade/tabs/history/effects.jade:63 +#: src/jade/client/navbar.jade:74 src/jade/notification/account.jade:25 +#: src/jade/tabs/history.jade:115 src/jade/tabs/history/effects.jade:63 msgid "You have now connected to the gateway {{1}}{{2: for }}{{3}}." msgstr "Sie haben sich jetzt mit dem Gateway {{1}}{{2: für }}{{3}} verbunden." -#: src/jade/client/navbar.jade:75 +#: src/jade/client/navbar.jade:85 msgid "You cancelled an order accepting {{1}} for {{2}}" msgstr "Sie haben ihr Angebot {{1}} für {{2}} zu akzeptieren storniert" -#: src/jade/client/navbar.jade:82 src/jade/tabs/history.jade:156 +#: src/jade/client/navbar.jade:92 src/jade/tabs/history.jade:138 msgid "Account details have been changed" msgstr "Kontodaten wurden geändert" -#: src/jade/client/navbar.jade:85 src/jade/tabs/history.jade:159 -#: src/jade/tabs/trust.jade:231 +#: src/jade/client/navbar.jade:95 src/jade/tabs/history.jade:141 +#: src/jade/tabs/trust.jade:171 msgid "Rippling" msgstr "Rippling" -#: src/jade/client/navbar.jade:87 src/jade/tabs/history.jade:161 +#: src/jade/client/navbar.jade:97 src/jade/tabs/history.jade:143 msgid "Failed transaction" msgstr "Fehlgeschlagene Transaktion" -#: src/jade/client/navbar.jade:93 +#: src/jade/client/navbar.jade:103 msgid "View Full History" msgstr "Vollständigen Verlauf anzeigen" -#: src/jade/client/navbar.jade:97 -msgid "{{1}} Account" -msgstr "{{1}} Konto" +#: src/jade/client/navbar.jade:111 +msgid "Log Out" +msgstr "Abmelden" -#: src/jade/client/navbar.jade:101 -msgid "{{1}} Settings" -msgstr "{{1}} Einstellungen" +#: src/jade/client/navbar.jade:126 +msgid "Simple" +msgstr "Einfach" -#: src/jade/client/navbar.jade:105 -msgid "{{1}} Log Out" -msgstr "{{1}} Abmelden" +#: src/jade/client/navbar.jade:128 src/jade/tabs/settings/navbar.jade:4 +msgid "Advanced" +msgstr "Erweitert" -#: src/jade/client/navbar.jade:130 src/jade/tabs/balance.jade:110 +#: src/jade/client/navbar.jade:135 msgid "Withdraw" msgstr "Abhebung" -#: src/jade/client/navbar.jade:132 +#: src/jade/client/navbar.jade:137 msgid "" "Your account was successfully recovered and encrypted with the new password " "you provided!" msgstr "Ihr Konto wurde erfolgreich wiederhergestellt und mit dem neuen Kennwort verschlüsselt, das Sie bereitgestellt haben!" -#: src/jade/client/navbar.jade:133 +#: src/jade/client/navbar.jade:138 msgid "dismiss" msgstr "schließen" -#: src/jade/directives/transactionerror.jade:5 +#: src/jade/directives/addresspopover.jade:3 +msgid "Ripple address {{ identity }}" +msgstr "Ripple-Adresse {{ identity }}" + +#: src/jade/directives/addresspopover.jade:8 src/jade/tabs/tx.jade:13 +msgid "Show in graph" +msgstr "In Diagramm anzeigen" + +#: src/jade/directives/transactionerror.jade:8 +msgid "Connecting gateway to your account..." +msgstr "Gateway wird mit Ihrem Konto verbunden…" + +#: src/jade/directives/transactionerror.jade:10 +msgid "Gateway connected." +msgstr "Gateway verbunden." + +#: src/jade/directives/transactionerror.jade:12 +msgid "There was a problem connecting to the gateway. Please try again later." +msgstr "Beim Verbinden des Gateways ist ein Problem aufgetreten. Bitte versuchen Sie es später erneut." + +#: src/jade/directives/transactionerror.jade:14 +#: src/jade/directives/transactionerror.jade:73 +#: src/jade/directives/transactionerror.jade:158 +#: src/jade/messages/sendconvert/confirmation.jade:13 +msgid "Error code: {{engine_result}} - {{engine_result_message}}" +msgstr "Fehlercode: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:19 +#: src/jade/directives/transactionerror.jade:23 +#: src/jade/directives/transactionerror.jade:28 +#: src/jade/directives/transactionerror.jade:33 +#: src/jade/directives/transactionerror.jade:45 +#: src/jade/directives/transactionerror.jade:52 +#: src/jade/directives/transactionerror.jade:156 +#: src/jade/directives/transactionerror.jade:163 +#: src/jade/directives/transactionerror.jade:167 +#: src/jade/directives/transactionerror.jade:172 +#: src/jade/directives/transactionerror.jade:177 +#: src/jade/directives/transactionerror.jade:186 +#: src/jade/directives/transactionerror.jade:193 +msgid "Request failed" +msgstr "Anfrage gescheitert" + +#: src/jade/directives/transactionerror.jade:21 +#: src/jade/directives/transactionerror.jade:165 +msgid "Your request timed out, please try again." +msgstr "Zeitüberschreitung bei Ihrer Anfrage, bitte erneut versuchen." + +#: src/jade/directives/transactionerror.jade:25 +#: src/jade/directives/transactionerror.jade:84 +#: src/jade/directives/transactionerror.jade:169 +#: src/jade/messages/sendconvert/confirmation.jade:18 +msgid "Error code: Destination tag needed [tefDST_TAG_NEEDED]." +msgstr "Fehlercode: Zielmarker erforderlich [tefDST_TAG_NEEDED]." + +#: src/jade/directives/transactionerror.jade:30 +#: src/jade/directives/transactionerror.jade:174 +msgid "" +"Error code: This request failed because it exceeded the maximum network fee," +" please try again later [telINSUF_FEE_P]." +msgstr "Fehlercode: Diese Anfrage ist gescheitert, da die maximale Netzwerkgebühr überschritten wird, bitte später erneut versuchen [tellNSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:35 +msgid "" +"Error code: You have no gateway connected in this currency [terNO_LINE]." +msgstr "Fehlercode: Sie haben kein Gateway in dieser Währung verbunden [terNO_LINE]." + +#: src/jade/directives/transactionerror.jade:37 +msgid "" +"Error code: Insufficient reserve to connect gateway [tecINSUF_RESERVE_LINE]." +msgstr "Fehlercode: Ungenügende Reserve zum Verbinden des Gateways [tecINSUF_RESERVE_LINE]." + +#: src/jade/directives/transactionerror.jade:39 +msgid "" +"Error code: You have an insufficient reserve amount to connect a gateway " +"[tecNO_LINE_INSUF_RESERVE]. {{1}}" +msgstr "Fehlercode: Ihre Reserve reicht nicht aus, um ein Gateway zu verbinden [tecNO_LINE_INSUF_RESERVE]. {{1}}" + +#: src/jade/directives/transactionerror.jade:41 src/jade/tabs/fund.jade:34 +#: src/jade/tabs/send.jade:110 src/jade/tabs/trust.jade:74 +msgid "More information" +msgstr "Mehr Infos" + +#: src/jade/directives/transactionerror.jade:42 +#: src/jade/directives/transactionerror.jade:98 +#: src/jade/directives/transactionerror.jade:135 +#: src/jade/directives/transactionerror.jade:183 +#: src/jade/messages/sendconvert/confirmation.jade:27 +msgid "Error: {{engine_result_message}}" +msgstr "Fehler: {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:47 +#: src/jade/directives/transactionerror.jade:103 +#: src/jade/directives/transactionerror.jade:188 +#: src/jade/messages/sendconvert/confirmation.jade:32 +msgid "Error code: You have no trust line in this currency [terNO_LINE]." +msgstr "Fehlercode: Sie haben keine Vertrauens-Linie in dieser Währung [terNO_LINE]." + +#: src/jade/directives/transactionerror.jade:49 +#: src/jade/directives/transactionerror.jade:190 +msgid "Your request failed: {{engine_result}} - {{engine_result_message}}" +msgstr "Ihre Anfrage ist gescheitert: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:54 +#: src/jade/directives/transactionerror.jade:195 +msgid "Error code: request could not be submitted [tejLost]." +msgstr "Fehlercode: Anfrage konnte nicht übermittelt werden [tejLost]." + +#: src/jade/directives/transactionerror.jade:56 +#: src/jade/directives/transactionerror.jade:197 src/jade/tabs/trust.jade:36 +msgid "" +"This request failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "Diese Anfrage ist fehlgeschlagen, da die aktuelle Netzwerkgebühr höher ist als das Limit Ihres Accounts. Sie können Ihre maximale Netzwerkgebühr in Einstellungen > Erweitert anpassen, oder Sie versuchen es später erneut.
Fehlercode: Netzwerkgebühr überschritten [tejMaxFeeExceeded]." + +#: src/jade/directives/transactionerror.jade:59 +#: src/jade/directives/transactionerror.jade:200 +msgid "" +"Your request could not be submitted: {{engine_result}} - " +"{{engine_result_message}}" +msgstr "Ihre Anfrage konnte nicht übermittelt werden: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:67 msgid "Payment pending" msgstr "Zahlung ausstehend" -#: src/jade/directives/transactionerror.jade:7 +#: src/jade/directives/transactionerror.jade:69 msgid "Payment successful" msgstr "Zahlung erfolgreich" -#: src/jade/directives/transactionerror.jade:9 -#: src/jade/directives/transactionerror.jade:16 -#: src/jade/directives/transactionerror.jade:20 -#: src/jade/directives/transactionerror.jade:25 -#: src/jade/directives/transactionerror.jade:30 -#: src/jade/directives/transactionerror.jade:39 -#: src/jade/directives/transactionerror.jade:46 +#: src/jade/directives/transactionerror.jade:71 +#: src/jade/directives/transactionerror.jade:82 +#: src/jade/directives/transactionerror.jade:87 +#: src/jade/directives/transactionerror.jade:92 +#: src/jade/directives/transactionerror.jade:101 +#: src/jade/directives/transactionerror.jade:108 msgid "Payment failed" msgstr "Zahlung fehlgeschlagen" -#: src/jade/directives/transactionerror.jade:11 -#: src/jade/messages/sendconvert/confirmation.jade:13 -msgid "Error code: {{engine_result}} - {{engine_result_message}}" -msgstr "Fehlercode: {{engine_result}} - {{engine_result_message}}" +#: src/jade/directives/transactionerror.jade:78 +msgid "Payment failed [tefMAX_LEDGER]." +msgstr "Zahlung fehlgeschlagen [tefMAX_LEDGER]." -#: src/jade/directives/transactionerror.jade:18 +#: src/jade/directives/transactionerror.jade:80 msgid "Your payment timed out, please try again." msgstr "Zeitüberschreitung bei Ihrer Zahlung, bitte versuchen Sie es erneut." -#: src/jade/directives/transactionerror.jade:22 -#: src/jade/messages/sendconvert/confirmation.jade:18 -msgid "Error code: Destination tag needed [tefDST_TAG_NEEDED]." -msgstr "Fehlercode: Zielmarker erforderlich [tefDST_TAG_NEEDED]." - -#: src/jade/directives/transactionerror.jade:27 +#: src/jade/directives/transactionerror.jade:89 #: src/jade/messages/sendconvert/confirmation.jade:39 msgid "" "Error code: This transaction failed because it exceeded the maximum network " "fee, please try again later [telINSUF_FEE_P]." msgstr "Fehlercode: Diese Transaktion ist fehlgeschlagen, da die maximale Netzwerkgebühr überschritten wurde, bitte versuchen Sie es später erneut [tellNSUF_FEE_P]." -#: src/jade/directives/transactionerror.jade:32 +#: src/jade/directives/transactionerror.jade:94 +#: src/jade/directives/transactionerror.jade:179 msgid "Error code: No destination [tecNO_DST]." msgstr "Fehlercode: Kein Ziel [tecNO_DST]." -#: src/jade/directives/transactionerror.jade:34 +#: src/jade/directives/transactionerror.jade:96 +#: src/jade/directives/transactionerror.jade:181 #: src/jade/messages/sendconvert/confirmation.jade:25 msgid "" "Error code: Insufficient XRP sent to destination [tecNO_DST_INSUF_XRP]." msgstr "Fehlercode: Nicht ausreichende XRP an Ziel gesendet [tecNO_DST_INSUF_XRP]." -#: src/jade/directives/transactionerror.jade:36 -#: src/jade/messages/sendconvert/confirmation.jade:27 -msgid "Error: {{engine_result_message}}" -msgstr "Fehler: {{engine_result_message}}" - -#: src/jade/directives/transactionerror.jade:41 -#: src/jade/messages/sendconvert/confirmation.jade:32 -msgid "Error code: You have no trust line in this currency [terNO_LINE]." -msgstr "Fehlercode: Sie haben keine Vertrauens-Linie in dieser Währung [terNO_LINE]." - -#: src/jade/directives/transactionerror.jade:43 +#: src/jade/directives/transactionerror.jade:105 msgid "Your payment failed: {{engine_result}} - {{engine_result_message}}" msgstr "Ihre Zahlung ist fehlgeschlagen: {{engine_result}} - {{engine_result_message}}" -#: src/jade/directives/transactionerror.jade:48 +#: src/jade/directives/transactionerror.jade:110 msgid "Error code: Transaction could not be submitted [tejLost]." msgstr "Fehlercode: Transaktion konnte nicht übermittelt werden [tejLost]." -#: src/jade/directives/transactionerror.jade:50 -msgid "Error code: Network fee exceeded [tejMaxFeeExceeded]." -msgstr "Fehlercode: Netzwerkgebühr überschritten [tejMaxFeeExceeded]." +#: src/jade/directives/transactionerror.jade:112 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "Diese Transaktion ist fehlgeschlagen, da die aktuelle Netzwerkgebühr höher ist als das Limit Ihres Kontos. Sie können Ihre maximale Netzwerkgebühr in Einstellungen > Erweitert anpassen, oder Sie versuchen es später erneut.
Fehlercode: Netzwerkgebühr überschritten [tejMaxFeeExceeded]." -#: src/jade/directives/transactionerror.jade:52 +#: src/jade/directives/transactionerror.jade:115 msgid "" "Your payment could not be submitted: {{engine_result}} - " "{{engine_result_message}}" msgstr "Ihre Zahlung konnte nicht übermittelt werden: {{engine_result}} - {{engine_result_message}}" +#: src/jade/directives/transactionerror.jade:121 +msgid "Request is malformed." +msgstr "Anfrage ist nicht korrekt formatiert." + +#: src/jade/directives/transactionerror.jade:122 +msgid "" +"Your request is invalid, reason: {{engine_result_message}} - " +"{{engine_result_message}}" +msgstr "Ihre Anfrage ist ungültig, Grund: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:125 +#: src/jade/directives/transactionerror.jade:142 +msgid "Transaction failed." +msgstr "Transaktion gescheitert." + +#: src/jade/directives/transactionerror.jade:127 +msgid "You do not have enough funds to create this order [tecUNFUNDED_ORDER]." +msgstr "Sie haben nicht genug Mittel, um diese Order aufzugeben [tecUNFUNDED_ORDER]." + +#: src/jade/directives/transactionerror.jade:129 +msgid "" +"Insufficient reserve amount to submit an order [tecINSUF_RESERVE_OFFER]." +msgstr "Fehlercode: Ihre Reserve reicht nicht aus, um eine Order aufzugeben [tecINSUF_RESERVE_OFFER]." + +#: src/jade/directives/transactionerror.jade:131 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]. {{1}}" +msgstr "Diese Transaktion ist fehlgeschlagen, da die aktuelle Netzwerkgebühr höher ist als das Limit Ihres Accounts. Sie können Ihre maximale Netzwerkgebühr in Einstellungen > Erweitert anpassen, oder Sie versuchen es später erneut.
Fehlercode: Netzwerkgebühr überschritten [tejMaxFeeExceeded]. {{1}}" + +#: src/jade/directives/transactionerror.jade:134 +msgid "More information." +msgstr "Mehr Infos." + +#: src/jade/directives/transactionerror.jade:138 +msgid "Trade failed." +msgstr "Wechsel gescheitert." + +#: src/jade/directives/transactionerror.jade:140 +msgid "Trade failed, reason: {{engine_result_message}}" +msgstr "Handel fehlgeschlagen, Grund: {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:144 +msgid "" +"The particular server you sent the transaction to was too busy to forward or" +" process your transaction at the fee you included in it [telINSUF_FEE_P]." +msgstr "Der Server, an den die Transaktion gesendet wurde, ist im Moment zu beschäftigt, um sie für die inkludierte Gebühr weiterzuverarbeiten oder weiterzuleiten [telINSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:152 +msgid "Request pending" +msgstr "Anfrage ausstehend" + +#: src/jade/directives/transactionerror.jade:154 +msgid "Request successful" +msgstr "Anfrage erfolgreich" + #: src/jade/messages/sendconvert/confirmation.jade:4 msgid "Transaction pending." msgstr "Transaktion ausstehend." @@ -286,8 +527,11 @@ msgstr "Transaktion erfolgreich" msgid "Transaction failed" msgstr "Transaktion fehlgeschlagen" -#: src/jade/messages/sendconvert/confirmation.jade:9 -#: src/jade/tabs/trust.jade:58 src/jade/tabs/trust.jade:70 +#: src/jade/messages/sendconvert/confirmation.jade:9 src/jade/tabs/brl.jade:25 +#: src/jade/tabs/btc.jade:22 src/jade/tabs/eur.jade:25 +#: src/jade/tabs/gold.jade:25 src/jade/tabs/jpy.jade:25 +#: src/jade/tabs/mxn.jade:25 src/jade/tabs/trust.jade:43 +#: src/jade/tabs/usd.jade:25 msgid "Please try again later." msgstr "Bitte versuchen Sie es später noch einmal." @@ -328,6 +572,7 @@ msgid "Account unlock failed" msgstr "Entsperren des Kontos fehlgeschlagen" #: src/jade/messages/sendconvert/localerror.jade:18 +#: src/jade/tabs/trust.jade:40 msgid "Your account could not be unlocked. Please try again later." msgstr "Ihr Konto konnte nicht entsperrt werden. Bitte versuchen Sie es später erneut." @@ -343,7 +588,7 @@ msgid "" "executed already." msgstr "Bevor Sie es erneut versuchen, bitte versichern Sie sich, dass die Transaktion nicht schon ausgeführt wurde." -#: src/jade/messages/sendconvert/waiting.jade:3 +#: src/jade/messages/sendconvert/waiting.jade:5 msgid "Sending transaction to the Ripple network" msgstr "Transaktion wird an das Ripple-Netzwerk gesendet" @@ -359,13 +604,49 @@ msgstr "{{tx.counterparty | rpcontactname}} hat ihnen folgendes gesendet" msgid "{{tx.counterparty | rpcontactname}} now trusts you for" msgstr "{{tx.counterparty | rpcontactname}} vertraut Ihnen jetzt über" +#: src/jade/popup/modifyOrderError.jade:2 +msgid "Modify Order Error" +msgstr "Fehler beim Ändern der Order" + +#: src/jade/popup/modifyOrderError.jade:4 +msgid "Sorry, your order could not be modified." +msgstr "Leider konnte Ihre Order nicht geändert werden." + +#: src/jade/popup/modifyOrderError.jade:5 +msgid "" +"Your original order was cancelled but the modified order was not placed. " +"
" +msgstr "Ihre ursprüngliche Order wurde entfernt, doch die geänderte Order wurde nicht gesetzt.
" + +#: src/jade/popup/modifyOrderError.jade:6 +msgid "" +"The quantity of your order changed by {{order.qtyChangeAfterCancel | " +"rpamount}} before the order could be modified.

" +msgstr "Die Menge Ihrer Order hat sich um {{order.qtyChangeAfterCancel | rpamount}} geändert, bevor die Order geändert werden konnte.

" + +#: src/jade/popup/modifyOrderError.jade:7 +msgid "" +"To safeguard against the possibility of overfills a new order has not been " +"placed.
" +msgstr "Um sicherzugehen, dass kein höheres Volumen gewechselt wird, wurde keine neue Order eingetragen.
" + +#: src/jade/popup/modifyOrderError.jade:8 +msgid "" +"Please check your balance and history before placing the new order manually." +"
" +msgstr "Bitte prüfen Sie Ihr Guthaben und Ihren Kontoverlauf, bevor Sie manuell die neue Order eintragen.
" + +#: src/jade/popup/modifyOrderError.jade:10 src/jade/popup/unlock.jade:17 +msgid "Close" +msgstr "Schließen" + #: src/jade/popup/unlock.jade:2 msgid "Unlock account" msgstr "Konto entsperren" -#: src/jade/popup/unlock.jade:5 src/jade/tabs/desktop/register.jade:28 -#: src/jade/tabs/login/form.jade:7 src/jade/tabs/recover.jade:33 -#: src/jade/tabs/register.jade:42 src/jade/tabs/security.jade:10 +#: src/jade/popup/unlock.jade:5 src/jade/tabs/login/form.jade:8 +#: src/jade/tabs/recover.jade:38 src/jade/tabs/register.jade:58 +#: src/jade/tabs/security.jade:12 msgid "Password" msgstr "Kennwort" @@ -373,7 +654,7 @@ msgstr "Kennwort" msgid "Please enter your password to show your secret key." msgstr "Bitte geben Sie Ihr Kennwort ein, um Ihren geheimen Schlüssel anzuzeigen." -#: src/jade/popup/unlock.jade:9 src/jade/tabs/send.jade:195 +#: src/jade/popup/unlock.jade:9 src/jade/tabs/send.jade:205 msgid "Please enter your password to confirm this transaction." msgstr "Bitte geben Sie Ihr Kennwort ein, um diese Transaktion zu bestätigen." @@ -381,52 +662,146 @@ msgstr "Bitte geben Sie Ihr Kennwort ein, um diese Transaktion zu bestätigen." msgid "This password is incorrect, please try again." msgstr "Kennwort ungültig. Versuchen Sie es erneut." -#: src/jade/popup/unlock.jade:11 +#: src/jade/popup/unlock.jade:13 msgid "Confirming password" msgstr "Kennwort bestätigen" -#: src/jade/popup/unlock.jade:14 src/jade/tabs/account/public.jade:44 -#: src/jade/tabs/security.jade:133 +#: src/jade/popup/unlock.jade:16 src/jade/tabs/account/public.jade:44 +#: src/jade/tabs/security.jade:146 msgid "Submit" msgstr "Senden" -#: src/jade/popup/unlock.jade:15 -msgid "Close" -msgstr "Schließen" - #: src/jade/tabs/2fa/form.jade:3 msgid "Country Code" msgstr "Landesvorwahl" -#: src/jade/tabs/2fa/form.jade:6 src/jade/tabs/kyc.jade:146 +#: src/jade/tabs/2fa/form.jade:6 src/jade/tabs/kyc.jade:162 msgid "Phone Number" msgstr "Telefonnummer" +#: src/jade/tabs/_usd.jade:6 src/jade/tabs/apps.jade:5 +#: src/jade/tabs/balance.jade:5 src/jade/tabs/brl.jade:6 +#: src/jade/tabs/btc.jade:9 src/jade/tabs/eur.jade:6 +#: src/jade/tabs/exchange.jade:6 src/jade/tabs/fund.jade:6 +#: src/jade/tabs/gold.jade:6 src/jade/tabs/history.jade:6 +#: src/jade/tabs/jpy.jade:6 src/jade/tabs/kyc.jade:6 src/jade/tabs/mxn.jade:6 +#: src/jade/tabs/send.jade:6 src/jade/tabs/su.jade:5 +#: src/jade/tabs/trade.jade:7 src/jade/tabs/trust.jade:6 +#: src/jade/tabs/usd.jade:6 src/jade/tabs/withdraw.jade:6 +#: src/jade/tabs/xrp.jade:6 +msgid "You have to be online to see this screen" +msgstr "Sie müssen online sein um dieses Fenster zu sehen" + +#: src/jade/tabs/_usd.jade:17 +msgid "USD instant deposit" +msgstr "USD-Sofort-Überweisung" + +#: src/jade/tabs/_usd.jade:19 src/jade/tabs/_usd.jade:21 +msgid "Step 1 (Amount)" +msgstr "Schritt 1 (Betrag)" + +#: src/jade/tabs/_usd.jade:22 +msgid "Step 2 (Confirmation)" +msgstr "Schritt 2 (Bestätigung)" + +#: src/jade/tabs/_usd.jade:23 +msgid "Step 3 (Complete deposit)" +msgstr "Schritt 3 (Einzahlung abschließen)" + +#: src/jade/tabs/_usd.jade:26 +msgid "STEP 1: AMOUNT" +msgstr "SCHRITT 1: BETRAG" + +#: src/jade/tabs/_usd.jade:28 +msgid "STEP 2: CONFIRMATION" +msgstr "SCHRITT 2: BESTÄTIGUNG" + +#: src/jade/tabs/_usd.jade:30 +msgid "STEP 3: COMPLETE DEPOSIT" +msgstr "SCHRITT 3: EINZAHLUNG ABSCHLIESSEN" + +#: src/jade/tabs/_usd.jade:34 +msgid "" +"Success! You've completed your USD deposit. Your funds should be available " +"within a few minutes." +msgstr "Erfolgreich! Ihre USD wurden eingezahlt und stehen binnen weniger Minuten zur Verfügung." + +#: src/jade/tabs/_usd.jade:36 +msgid "You cancelled your deposit." +msgstr "Sie haben Ihre Einzahlung abgebrochen." + +#: src/jade/tabs/_usd.jade:38 +msgid "" +"Your deposit failed. Your bank account was not charged. Please contact " +"{{1}}." +msgstr "Ihre Einzahlung ist gescheitert. Ihr Bankkonto wurde nicht belastet. Bitte kontaktieren Sie {{1}}." + +#: src/jade/tabs/_usd.jade:49 src/jade/tabs/_usd.jade:91 +#: src/jade/tabs/fund.jade:41 src/jade/tabs/history.jade:172 +#: src/jade/tabs/trust.jade:89 +msgid "Amount" +msgstr "Betrag" + +#: src/jade/tabs/_usd.jade:59 src/jade/tabs/_usd.jade:62 +msgid "Select your bank" +msgstr "Wählen Sie Ihre Bank aus" + +#: src/jade/tabs/_usd.jade:77 +msgid "" +"Ripple Trade has partnered with SnapSwap to make USD deposits easier. By " +"continuing, you agree to SnapSwap's {{1}}To contact support, email {{2}}." +msgstr "Ripple Trade und SnapSwap sind Partner, um USD-Einzahlungen einfacher zu machen. Indem Sie fortfahren, akzeptieren Sie die {{1}} von SnapSwap. Um sich an den Kundendienst zu wenden, senden Sie eine E-Mail an {{2}}." + +#: src/jade/tabs/_usd.jade:93 src/jade/tabs/history.jade:178 +msgid "Fee" +msgstr "Gebühr" + +#: src/jade/tabs/_usd.jade:95 +msgid "Total" +msgstr "Insgesamt" + +#: src/jade/tabs/_usd.jade:98 +msgid "Calculating..." +msgstr "Berechnung läuft..." + +#: src/jade/tabs/_usd.jade:109 src/jade/tabs/register.jade:126 +#: src/jade/tabs/register.jade:133 +msgid "Back" +msgstr "Zurück" + +#: src/jade/tabs/_usd.jade:111 src/jade/tabs/btc.jade:73 +#: src/jade/tabs/exchange.jade:111 src/jade/tabs/send.jade:213 +#: src/jade/tabs/trade.jade:67 src/jade/tabs/trade.jade:77 +#: src/jade/tabs/trade.jade:248 src/jade/tabs/trade.jade:407 +#: src/jade/tabs/trust.jade:140 +msgid "Confirm" +msgstr "Bestätigen" + #: src/jade/tabs/account/navbar.jade:2 msgid "Public Information" msgstr "Öffentliche Informationen" -#: src/jade/tabs/account/private.jade:2 +#: src/jade/tabs/account/private.jade:1 msgid "Profile Information" msgstr "Profil-Informationen" -#: src/jade/tabs/account/private.jade:5 +#: src/jade/tabs/account/private.jade:3 msgid "Identity Information" msgstr "Identitäts-Informationen" -#: src/jade/tabs/account/private.jade:8 src/jade/tabs/account/private.jade:19 +#: src/jade/tabs/account/private.jade:8 src/jade/tabs/account/private.jade:17 msgid "Completed" msgstr "Vollständig" -#: src/jade/tabs/account/private.jade:11 src/jade/tabs/account/private.jade:22 +#: src/jade/tabs/account/private.jade:9 src/jade/tabs/account/private.jade:18 msgid "Incomplete" msgstr "Unvollständig" -#: src/jade/tabs/account/private.jade:13 src/jade/tabs/account/private.jade:24 +#: src/jade/tabs/account/private.jade:10 src/jade/tabs/account/private.jade:19 msgid "Complete your profile" msgstr "Vervollständigen Sie Ihr Profil" -#: src/jade/tabs/account/private.jade:16 +#: src/jade/tabs/account/private.jade:12 msgid "Identity Questions" msgstr "Identitäts-Fragen" @@ -442,15 +817,17 @@ msgstr "Ihr Ripple-Name wurde erfolgreich geändert." msgid "Account settings" msgstr "Konto-Einstellungen" -#: src/jade/tabs/account/public.jade:5 src/jade/tabs/login/form.jade:2 +#: src/jade/tabs/account/public.jade:5 src/jade/tabs/fund/menu.jade:2 +#: src/jade/tabs/login/form.jade:3 msgid "Ripple name" msgstr "Ripple Name" -#: src/jade/tabs/account/public.jade:9 src/jade/tabs/advanced.jade:17 -#: src/jade/tabs/advanced.jade:34 src/jade/tabs/advanced.jade:53 -#: src/jade/tabs/advanced.jade:106 src/jade/tabs/contacts.jade:69 -#: src/jade/tabs/security.jade:107 src/jade/tabs/security.jade:165 -#: src/jade/tabs/trust.jade:219 src/jade/tabs/trust.jade:248 +#: src/jade/tabs/account/public.jade:9 src/jade/tabs/advanced.jade:27 +#: src/jade/tabs/advanced.jade:44 src/jade/tabs/advanced.jade:63 +#: src/jade/tabs/advanced.jade:86 src/jade/tabs/advanced.jade:134 +#: src/jade/tabs/contacts.jade:61 src/jade/tabs/security.jade:120 +#: src/jade/tabs/security.jade:180 src/jade/tabs/trust.jade:191 +#: src/jade/tabs/trust.jade:193 msgid "edit" msgstr "Ändern" @@ -458,23 +835,24 @@ msgstr "Ändern" msgid "New Ripple name" msgstr "Neuer Ripple-Name" -#: src/jade/tabs/account/public.jade:17 src/jade/tabs/balance.jade:60 +#: src/jade/tabs/account/public.jade:17 src/jade/tabs/register.jade:35 +#: src/jade/tabs/widgets/balances.jade:24 msgid "Available" msgstr "Verfügbar" -#: src/jade/tabs/account/public.jade:20 src/jade/tabs/register.jade:30 +#: src/jade/tabs/account/public.jade:20 src/jade/tabs/register.jade:39 msgid "Already taken!" msgstr "Schon vergeben!" -#: src/jade/tabs/account/public.jade:21 src/jade/tabs/register.jade:31 +#: src/jade/tabs/account/public.jade:21 msgid "Reserved for {{usernameReservedFor}}{{1}}{{2}}" msgstr "Reserviert für {{usernameReservedFor}}{{1}}{{2}}" -#: src/jade/tabs/account/public.jade:24 src/jade/tabs/register.jade:34 +#: src/jade/tabs/account/public.jade:24 src/jade/tabs/register.jade:45 msgid "Must be at least 2 characters" msgstr "Muss mindestens 2 Zeichen haben" -#: src/jade/tabs/account/public.jade:25 src/jade/tabs/register.jade:35 +#: src/jade/tabs/account/public.jade:25 src/jade/tabs/register.jade:47 msgid "Must be at most 20 characters" msgstr "Darf höchstens 20 Zeichen haben" @@ -482,11 +860,11 @@ msgstr "Darf höchstens 20 Zeichen haben" msgid "Only a-z, 0-9 and hyphen (-)" msgstr "Nur a-z, 0-9 und Bindestrich (-)" -#: src/jade/tabs/account/public.jade:27 src/jade/tabs/register.jade:37 +#: src/jade/tabs/account/public.jade:27 src/jade/tabs/register.jade:51 msgid "Cannot start with hyphen (-)" msgstr "Kann nicht mit Bindestrich (-) anfangen" -#: src/jade/tabs/account/public.jade:28 src/jade/tabs/register.jade:38 +#: src/jade/tabs/account/public.jade:28 src/jade/tabs/register.jade:53 msgid "Cannot end with hyphen (-)" msgstr "Kann nicht mit Bindestrich (-) enden" @@ -494,16 +872,16 @@ msgstr "Kann nicht mit Bindestrich (-) enden" msgid "Cannot bundle hyphens (--)" msgstr "Darf keine aufeinanderfolgenden Bindestriche (--) enthalten" -#: src/jade/tabs/account/public.jade:30 src/jade/tabs/register.jade:40 +#: src/jade/tabs/account/public.jade:30 src/jade/tabs/register.jade:56 msgid "Checking..." msgstr "Wird geprüft" -#: src/jade/tabs/account/public.jade:32 src/jade/tabs/security.jade:113 +#: src/jade/tabs/account/public.jade:32 src/jade/tabs/security.jade:126 msgid "Current password" msgstr "Aktuelles Kennwort" -#: src/jade/tabs/account/public.jade:35 src/jade/tabs/security.jade:15 -#: src/jade/tabs/security.jade:20 +#: src/jade/tabs/account/public.jade:35 src/jade/tabs/security.jade:18 +#: src/jade/tabs/security.jade:23 msgid "Entered password is wrong." msgstr "Das eingegebene Kennwort ist falsch." @@ -515,107 +893,135 @@ msgstr "Ihr Ripple-Name wurde geändert. Bitte melden Sie sich erneut an." msgid "Couldn't change your Ripple name, please try again later." msgstr "Ihr Ripple-Name konnte nicht geändert werden, bitte später erneut versuchen." -#: src/jade/tabs/account/public.jade:47 src/jade/tabs/advanced.jade:26 -#: src/jade/tabs/advanced.jade:43 src/jade/tabs/advanced.jade:67 -#: src/jade/tabs/advanced.jade:96 src/jade/tabs/btc.jade:62 -#: src/jade/tabs/contacts.jade:58 src/jade/tabs/contacts.jade:101 -#: src/jade/tabs/exchange.jade:94 src/jade/tabs/exchange.jade:107 -#: src/jade/tabs/kyc.jade:106 src/jade/tabs/kyc.jade:118 -#: src/jade/tabs/kyc.jade:140 src/jade/tabs/kyc.jade:141 -#: src/jade/tabs/kyc.jade:167 src/jade/tabs/login/form.jade:25 -#: src/jade/tabs/security.jade:71 src/jade/tabs/security.jade:101 -#: src/jade/tabs/security.jade:136 src/jade/tabs/send.jade:205 -#: src/jade/tabs/send.jade:217 src/jade/tabs/send.jade:238 -#: src/jade/tabs/send.jade:268 src/jade/tabs/trade.jade:32 -#: src/jade/tabs/trade.jade:43 src/jade/tabs/trust.jade:177 -#: src/jade/tabs/trust.jade:179 src/jade/tabs/trust.jade:263 -#: src/jade/tabs/trust.jade:296 +#: src/jade/tabs/account/public.jade:47 src/jade/tabs/advanced.jade:36 +#: src/jade/tabs/advanced.jade:53 src/jade/tabs/advanced.jade:77 +#: src/jade/tabs/advanced.jade:94 src/jade/tabs/advanced.jade:124 +#: src/jade/tabs/btc.jade:74 src/jade/tabs/contacts.jade:50 +#: src/jade/tabs/contacts.jade:93 src/jade/tabs/exchange.jade:113 +#: src/jade/tabs/exchange.jade:126 src/jade/tabs/kyc.jade:116 +#: src/jade/tabs/kyc.jade:131 src/jade/tabs/kyc.jade:156 +#: src/jade/tabs/kyc.jade:157 src/jade/tabs/kyc.jade:186 +#: src/jade/tabs/login/form.jade:26 src/jade/tabs/security.jade:79 +#: src/jade/tabs/security.jade:112 src/jade/tabs/security.jade:149 +#: src/jade/tabs/send.jade:215 src/jade/tabs/send.jade:227 +#: src/jade/tabs/send.jade:252 src/jade/tabs/send.jade:286 +#: src/jade/tabs/trade.jade:55 src/jade/tabs/trust.jade:141 +#: src/jade/tabs/trust.jade:143 src/jade/tabs/trust.jade:213 +#: src/jade/tabs/trust.jade:251 msgid "cancel" msgstr "abbrechen" -#: src/jade/tabs/account/public.jade:49 src/jade/tabs/contacts.jade:7 -#: src/jade/tabs/contacts.jade:34 src/jade/tabs/desktop/register.jade:88 +#: src/jade/tabs/account/public.jade:49 msgid "Ripple address" msgstr "Ripple Adresse" +#: src/jade/tabs/advanced.jade:8 +msgid "Your blob vault has been changed successfully." +msgstr "Ihr Datentresor wurde erfolgreich geändert." + +#: src/jade/tabs/advanced.jade:9 +msgid "Your bitcoin bridge has been changed successfully." +msgstr "Ihre Bitcoin-Brücke wurde erfolgreich geändert." + +#: src/jade/tabs/advanced.jade:10 +msgid "Trustline advanced settings has been changed successfully." +msgstr "Die erweiterten Einstellungen der Vertrauenslinie wurden erfolgreich geändert." + #: src/jade/tabs/advanced.jade:11 +msgid "Maximum network fee has been changed successfully." +msgstr "Die maximale Netzwerkgebühr wurde erfolgreich geändert." + +#: src/jade/tabs/advanced.jade:12 +msgid "A new server has been successfully added." +msgstr "Ein neuer Server wurde erfolgreich hinzugefügt." + +#: src/jade/tabs/advanced.jade:13 +msgid "A server has been successfully removed." +msgstr "Ein Server wurde erfolgreich entfernt." + +#: src/jade/tabs/advanced.jade:14 +msgid "A server has been changed successfully." +msgstr "Ein Server wurde erfolgreich geändert." + +#: src/jade/tabs/advanced.jade:21 msgid "Blob vault" msgstr "Blob-Tresor" -#: src/jade/tabs/advanced.jade:22 src/jade/tabs/advanced.jade:39 -#: src/jade/tabs/advanced.jade:63 src/jade/tabs/advanced.jade:92 -#: src/jade/tabs/contacts.jade:96 src/jade/tabs/fund.jade:79 -#: src/jade/tabs/security.jade:175 src/jade/tabs/send.jade:237 -#: src/jade/tabs/send.jade:266 src/jade/tabs/trust.jade:156 -#: src/jade/tabs/trust.jade:282 +#: src/jade/tabs/advanced.jade:32 src/jade/tabs/advanced.jade:49 +#: src/jade/tabs/advanced.jade:73 src/jade/tabs/advanced.jade:92 +#: src/jade/tabs/advanced.jade:120 src/jade/tabs/contacts.jade:88 +#: src/jade/tabs/fund.jade:65 src/jade/tabs/security.jade:190 +#: src/jade/tabs/send.jade:251 src/jade/tabs/send.jade:284 +#: src/jade/tabs/trust.jade:119 src/jade/tabs/trust.jade:232 msgid "Save" msgstr "Speichern" -#: src/jade/tabs/advanced.jade:24 src/jade/tabs/advanced.jade:41 -#: src/jade/tabs/advanced.jade:65 src/jade/tabs/advanced.jade:94 -#: src/jade/tabs/contacts.jade:99 +#: src/jade/tabs/advanced.jade:34 src/jade/tabs/advanced.jade:51 +#: src/jade/tabs/advanced.jade:75 src/jade/tabs/advanced.jade:122 +#: src/jade/tabs/contacts.jade:91 src/jade/tabs/security.jade:198 msgid "Delete" msgstr "Löschen" -#: src/jade/tabs/advanced.jade:28 +#: src/jade/tabs/advanced.jade:38 msgid "Bitcoin bridge" msgstr "Bitcoin-Brücke" -#: src/jade/tabs/advanced.jade:45 +#: src/jade/tabs/advanced.jade:55 msgid "Trust line" msgstr "Vertrauens-Linie" -#: src/jade/tabs/advanced.jade:50 src/jade/tabs/advanced.jade:61 -#: src/jade/tabs/desktop/register.jade:85 src/jade/tabs/security.jade:148 +#: src/jade/tabs/advanced.jade:60 src/jade/tabs/advanced.jade:71 +#: src/jade/tabs/security.jade:162 msgid "Show" msgstr "Zeigen" -#: src/jade/tabs/advanced.jade:51 src/jade/tabs/desktop/register.jade:86 -#: src/jade/tabs/security.jade:149 +#: src/jade/tabs/advanced.jade:61 src/jade/tabs/security.jade:163 msgid "Hide" msgstr "Verstecken" -#: src/jade/tabs/advanced.jade:68 +#: src/jade/tabs/advanced.jade:78 +msgid "Network settings" +msgstr "Netzwerkeinstellungen" + +#: src/jade/tabs/advanced.jade:80 +msgid "Maximum network fee" +msgstr "Maximale Netzwerkgebühr" + +#: src/jade/tabs/advanced.jade:96 msgid "Server settings" msgstr "Server-Einstellungen" -#: src/jade/tabs/advanced.jade:73 +#: src/jade/tabs/advanced.jade:101 msgid "WebSocket host name" msgstr "WebSocket-Hostname" -#: src/jade/tabs/advanced.jade:75 +#: src/jade/tabs/advanced.jade:103 msgid "Port number" msgstr "Portnummer" -#: src/jade/tabs/advanced.jade:81 +#: src/jade/tabs/advanced.jade:109 msgid "Socket ip or hostname is invalid." msgstr "Socket IP oder Hostname sind falsch." -#: src/jade/tabs/advanced.jade:83 +#: src/jade/tabs/advanced.jade:111 msgid "Port number is invalid." msgstr "Die Portnummer ist falsch." -#: src/jade/tabs/advanced.jade:90 src/jade/tabs/advanced.jade:103 +#: src/jade/tabs/advanced.jade:118 src/jade/tabs/advanced.jade:131 msgid "Secure" msgstr "Sicher" -#: src/jade/tabs/advanced.jade:104 +#: src/jade/tabs/advanced.jade:132 msgid "Not Secure" msgstr "Unsicher" -#: src/jade/tabs/advanced.jade:110 +#: src/jade/tabs/advanced.jade:138 msgid "Add new server" msgstr "Neuen Server hinzufügen" -#: src/jade/tabs/apps.jade:5 src/jade/tabs/balance.jade:5 -#: src/jade/tabs/btc.jade:6 src/jade/tabs/exchange.jade:6 -#: src/jade/tabs/fund.jade:6 src/jade/tabs/history.jade:6 -#: src/jade/tabs/kyc.jade:6 src/jade/tabs/send.jade:6 src/jade/tabs/su.jade:5 -#: src/jade/tabs/trade.jade:7 src/jade/tabs/trust.jade:6 -#: src/jade/tabs/usd.jade:6 src/jade/tabs/withdraw.jade:6 -#: src/jade/tabs/xrp.jade:6 -msgid "You have to be online to see this screen" -msgstr "Sie müssen online sein um dieses Fenster zu sehen" +#: src/jade/tabs/apps.jade:27 +msgid "App Ripple Address" +msgstr "Ripple-Adresse der App" #: src/jade/tabs/apps.jade:29 msgid "Please enter a ripple address." @@ -625,454 +1031,535 @@ msgstr "Bitte geben Sie eine Ripple Adresse ein." msgid "Please enter a valid ripple address." msgstr "Bitte geben Sie eine gültige Ripple-Adresse ein." -#: src/jade/tabs/balance.jade:21 -msgid "Total Balance{{1}}" -msgstr "Gesamt-Kontostand{{1}}" - -#: src/jade/tabs/balance.jade:22 -msgid "Estimated from latest trade price" -msgstr "Geschätzt vom neuesten Handelspreis" - -#: src/jade/tabs/balance.jade:29 -msgid "(excluding negative balances)" -msgstr "(exklusive negative Kontostände)" - -#: src/jade/tabs/balance.jade:67 -msgid "Reserve" -msgstr "Rücklage" - -#: src/jade/tabs/balance.jade:85 -msgid "Unverified" -msgstr "Unbestätigt" - -#: src/jade/tabs/balance.jade:92 -msgid "Enter bitcoin address." -msgstr "Bitcoin-Adresse eingeben." - -#: src/jade/tabs/balance.jade:95 -msgid "Enter amount to withdraw." -msgstr "Betrag eingeben, den Sie abheben möchten." - -#: src/jade/tabs/balance.jade:100 src/jade/tabs/balance.jade:102 -msgid "Enter a valid bitcoin address" -msgstr "Geben Sie eine gültige Bitcoin-Adresse ein" - -#: src/jade/tabs/balance.jade:106 -msgid "Enter a valid amount" -msgstr "Geben Sie einen gültigen Betrag ein" - -#: src/jade/tabs/balance.jade:113 -msgid "You are sending {{1}} BTC to:" -msgstr "Sie senden {{1}} BTC an:" - -#: src/jade/tabs/balance.jade:119 src/jade/tabs/balance.jade:134 -#: src/jade/tabs/register.jade:105 src/jade/tabs/register.jade:111 -msgid "Back" -msgstr "Zurück" - -#: src/jade/tabs/balance.jade:122 src/jade/tabs/btc.jade:61 -#: src/jade/tabs/exchange.jade:92 src/jade/tabs/send.jade:203 -#: src/jade/tabs/trade.jade:57 src/jade/tabs/trade.jade:67 -#: src/jade/tabs/trade.jade:241 src/jade/tabs/trust.jade:176 -msgid "Confirm" -msgstr "Bestätigen" - -#: src/jade/tabs/balance.jade:127 -msgid "Reconnecting to Ripple network" -msgstr "Verbindung zum Ripple-Netzwerk wird wiederhergestellt" - -#: src/jade/tabs/balance.jade:128 -msgid "Transaction Successful" -msgstr "Transaktion erfolgreich" - -#: src/jade/tabs/balance.jade:129 -msgid "Warning" -msgstr "Warnung" - -#: src/jade/tabs/balance.jade:130 -msgid "Transaction Failed" -msgstr "Transaktion fehlgeschlagen" - -#: src/jade/tabs/balance.jade:131 -msgid "Message" -msgstr "Nachricht" - #: src/jade/tabs/banner/announcement.jade:2 msgid "Help our team improve Ripple Trade! {{1:Take a quick user survey.}}" msgstr "Helfen Sie unserem Team, Ripple Trade zu verbessern! {{1:Nehmen Sie an einer schnellen Nutzer-Umfrage teil.}}" #: src/jade/tabs/banner/unfunded.jade:2 msgid "" -"Welcome to Ripple Trade! To activate your account, you'll need at least 20 " -"XRP." -msgstr "Willkommen bei Ripple Trade. Um Ihr Konto zu aktivieren, benötigen Sie mindestens 20 XRP." +"Welcome to Ripple Trade! Your account needs to be activated. You can " +"activate it in 2 ways:" +msgstr "Willkommen bei Ripple Trade! Ihr Konto muss freigeschaltet werden. Sie können es auf 2 Arten freischalten:" #: src/jade/tabs/banner/unfunded.jade:4 msgid "" "Have another user send XRP to your Ripple name " -"(~{{userCredentials.username}})" -msgstr "Lassen Sie sich von einem anderen Nutzer XRP an Ihren Ripple-Namen senden (~{{userCredentials.username}})" +"(~{{userCredentials.username}}). {{1}}" +msgstr "Lassen Sie sich von einem anderen Nutzer XRP an Ihren Ripple-Namen (~{{userCredentials.username}}) senden. {{1}}" -#: src/jade/tabs/banner/unfunded.jade:5 -msgid "" -"Use the {{1}}. A small amount of your first deposit will be used to " -"activate your account." -msgstr "Verwenden Sie die {{1}}. Ein kleiner Betrag Ihrer ersten Einzahlung wird dazu genutzt, Ihr Konto freizuschalten." +#: src/jade/tabs/brl.jade:24 src/jade/tabs/eur.jade:24 +#: src/jade/tabs/gold.jade:24 src/jade/tabs/jpy.jade:24 +#: src/jade/tabs/mxn.jade:24 src/jade/tabs/trust.jade:42 +#: src/jade/tabs/usd.jade:24 +msgid "There was an error while saving your changes." +msgstr "Beim Speichern Ihrer Änderungen ist ein Fehler aufgetreten." -#: src/jade/tabs/btc.jade:18 -msgid "Bitcoin Deposit" -msgstr "Bitcoin-Guthaben" +#: src/jade/tabs/brl.jade:28 src/jade/tabs/eur.jade:27 +#: src/jade/tabs/gold.jade:27 src/jade/tabs/jpy.jade:28 +#: src/jade/tabs/mxn.jade:28 src/jade/tabs/trust.jade:45 +#: src/jade/tabs/usd.jade:27 +msgid "You must have at least {{1}} to add a new trust line. {{2}}" +msgstr "Sie benötigen zumindest {{1}} um eine Vertrauenslinie hinzuzufügen. {{2}}" -#: src/jade/tabs/btc.jade:26 -msgid "" -"A small amount (~.001 BTC) of your first transfer will be converted to XRP " -"to activate your wallet. {{1:Why?}}" -msgstr "Ein kleiner Betrag (~.001 BTC) Ihrer ersten Überweisung wird zu XRP umgewandelt, um Ihre Brieftasche freizuschalten. {{1:Weshalb?}}" +#: src/jade/tabs/brl.jade:38 +msgid "Brazilian Real Deposit" +msgstr "Einzahlen von Brasilianischen Real" -#: src/jade/tabs/btc.jade:30 -msgid "Your current deposit limit is:" -msgstr "Ihr aktuelles Einzahlungs-Limit beträgt:" +#: src/jade/tabs/brl.jade:41 src/jade/tabs/btc.jade:35 +#: src/jade/tabs/eur.jade:38 src/jade/tabs/gold.jade:40 +#: src/jade/tabs/jpy.jade:41 src/jade/tabs/mxn.jade:41 +#: src/jade/tabs/trust.jade:167 src/jade/tabs/usd.jade:38 +msgid "Gateway" +msgstr "Gateway" + +#: src/jade/tabs/brl.jade:42 src/jade/tabs/eur.jade:48 +#: src/jade/tabs/mxn.jade:81 src/jade/tabs/mxn.jade:93 +#: src/jade/tabs/mxn.jade:103 src/jade/tabs/security.jade:49 +msgid "{{1}}{{2}}" +msgstr "{{1}}{{2}}" + +#: src/jade/tabs/brl.jade:43 +msgid "Ripple (~rippex)" +msgstr "Ripple (~rippex)" + +#: src/jade/tabs/brl.jade:46 src/jade/tabs/btc.jade:39 +#: src/jade/tabs/eur.jade:44 src/jade/tabs/gold.jade:44 +#: src/jade/tabs/jpy.jade:45 src/jade/tabs/mxn.jade:46 +#: src/jade/tabs/usd.jade:44 +msgid "Availability" +msgstr "Verfügbarkeit" + +#: src/jade/tabs/brl.jade:47 +msgid "Brazil" +msgstr "Brasilien" + +#: src/jade/tabs/brl.jade:49 src/jade/tabs/btc.jade:42 +#: src/jade/tabs/eur.jade:47 src/jade/tabs/gold.jade:47 +#: src/jade/tabs/jpy.jade:48 src/jade/tabs/mxn.jade:49 +#: src/jade/tabs/usd.jade:47 +msgid "Fees" +msgstr "Gebühren" + +#: src/jade/tabs/brl.jade:50 src/jade/tabs/jpy.jade:49 +#: src/jade/tabs/kyc.jade:111 src/jade/tabs/kyc.jade:126 +#: src/jade/tabs/kyc.jade:151 +msgid "{{1}}{{2}}{{3}}" +msgstr "{{1}}{{2}}{{3}}" + +#: src/jade/tabs/brl.jade:51 +msgid "Deposit: 1.50 BRL + 0.5%" +msgstr "Einzahlung: 1,50 BRL + 0,5%" + +#: src/jade/tabs/brl.jade:52 +msgid "Transfer: 0%" +msgstr "Überweisung: 0%" + +#: src/jade/tabs/brl.jade:56 src/jade/tabs/btc.jade:45 +#: src/jade/tabs/eur.jade:53 src/jade/tabs/gold.jade:50 +#: src/jade/tabs/jpy.jade:54 src/jade/tabs/mxn.jade:52 +#: src/jade/tabs/usd.jade:50 +msgid "Rating" +msgstr "Bewertung" + +#: src/jade/tabs/brl.jade:62 +msgid "" +"Ripple Trade has partnered with Rippex to provide easy access to BRL. By " +"continuing, you agree with Rippex's {{1}}Following this action will enable " +"Rippex to hold BRL on your behalf." +msgstr "Ripple Trade und Rippex sind Partner, um einfachen Zugriff auf BRL anzubieten. Indem Sie fortfahren, akzeptieren Sie die {{1}} von Rippex. Rippex kann dann BRL in Ihrem Auftrag halten." + +#: src/jade/tabs/brl.jade:69 +msgid "Add Rippex" +msgstr "Rippex hinzufügen" + +#: src/jade/tabs/brl.jade:70 +msgid "Adding..." +msgstr "Wird hinzugefügt..." + +#: src/jade/tabs/brl.jade:71 src/jade/tabs/eur.jade:65 +#: src/jade/tabs/jpy.jade:64 src/jade/tabs/usd.jade:62 +msgid "Hide instructions" +msgstr "Anweisungen ausblenden" + +#: src/jade/tabs/brl.jade:72 src/jade/tabs/eur.jade:66 +#: src/jade/tabs/jpy.jade:65 src/jade/tabs/usd.jade:63 +msgid "Show instructions" +msgstr "Anweisungen anzeigen" + +#: src/jade/tabs/brl.jade:75 src/jade/tabs/btc.jade:83 +msgid "{{1}}Not connected" +msgstr "{{1}}Nicht verbunden" + +#: src/jade/tabs/brl.jade:78 src/jade/tabs/btc.jade:86 +msgid "{{1}}Connected" +msgstr "{{1}}Verbunden" + +#: src/jade/tabs/brl.jade:81 src/jade/tabs/eur.jade:71 +#: src/jade/tabs/gold.jade:73 src/jade/tabs/jpy.jade:74 +#: src/jade/tabs/mxn.jade:76 src/jade/tabs/usd.jade:68 +msgid "Your account has to be activated before you can add a gateway account." +msgstr "Ihr Konto muss freigeschaltet werden, bevor Sie ein neues Gateway-Konto hinzufügen können." + +#: src/jade/tabs/brl.jade:84 src/jade/tabs/eur.jade:75 +#: src/jade/tabs/gold.jade:76 src/jade/tabs/jpy.jade:77 +#: src/jade/tabs/mxn.jade:79 src/jade/tabs/usd.jade:72 +msgid "×" +msgstr "×" + +#: src/jade/tabs/brl.jade:85 +msgid "NEW CUSTOMERS- SIGN UP AT RIPPEX" +msgstr "NEUKUNDEN- BEI RIPPEX REGISTRIEREN" + +#: src/jade/tabs/brl.jade:86 +msgid "" +"{{1}} at Rippex.net to initiate deposits and withdrawals. You will " +"need:{{2}}" +msgstr "{{1}} Sie sich auf Rippex.net, um Ein- und Auszahlungen einzurichten. Sie brauchen:{{2}}" + +#: src/jade/tabs/brl.jade:90 +msgid "A {{1}}" +msgstr "Einen {{1}}" + +#: src/jade/tabs/brl.jade:92 +msgid "A bank account in Brazil." +msgstr "Ein Bankkonto in Brasilien." + +#: src/jade/tabs/brl.jade:96 +msgid "EXISTING RIPPEX CUSTOMERS" +msgstr "EXISTIERENDE RIPPEX-KUNDEN" + +#: src/jade/tabs/brl.jade:97 +msgid "If you have a Rippex account, {{1}}" +msgstr "Falls Sie ein Rippex-Konto haben, {{1}}" + +#: src/jade/tabs/brl.jade:100 +msgid "DEPOSIT INSTRUCTIONS" +msgstr "EINZAHLUNGS-ANWEISUNGEN" + +#: src/jade/tabs/brl.jade:101 +msgid "Rippex accepts deposits from all Brazilian banks. Instructions {{1}}" +msgstr "Rippex akzeptiert Einzahlungen von allen brasilianischen Banken. Anweisungen {{1}}" + +#: src/jade/tabs/btc.jade:19 +msgid "Success! You can deposit BTC via your generated BTC receiving address." +msgstr "Erfolg! Sie können BTC über Ihre generierte BTC-Empfangsadresse einzahlen." + +#: src/jade/tabs/btc.jade:21 +msgid "There was an error with your request. {{1}}" +msgstr "Ein Fehler mit Ihrer Anfrage ist aufgetreten. {{1}}" -#: src/jade/tabs/btc.jade:32 -msgid "Remove Limit" -msgstr "Limit entfernen" +#: src/jade/tabs/btc.jade:30 +msgid "Bitcoin Deposit" +msgstr "Bitcoin-Guthaben" #: src/jade/tabs/btc.jade:36 -msgid "Waiting for response from SnapSwap service..." -msgstr "Auf Antwort des SnapSwap-Dienstes wird gewartet" +msgid "btc2ripple (~snapswap) {{1}}" +msgstr "btc2ripple (~snapswap) {{1}}" + +#: src/jade/tabs/btc.jade:40 src/jade/tabs/gold.jade:45 +#: src/jade/tabs/jpy.jade:46 +msgid "All countries" +msgstr "Alle Länder" + +#: src/jade/tabs/btc.jade:43 src/jade/tabs/mxn.jade:50 +msgid "0%" +msgstr "0%" -#: src/jade/tabs/btc.jade:38 +#: src/jade/tabs/btc.jade:50 msgid "" -"To deposit, generate a bitcoin receiving address using the {{1}} service " -"powered by SnapSwap." -msgstr "Zur Einzahlung erzeugen Sie eine Bitcoin-Empfänger-Adresse mit dem {{1}}-Dienst, mit freundlicher Unterstützung von SnapSwap." +"Ripple Trade has partnered with btc2ripple to make depositing BTC easier. By" +" proceeding, you agree to the btc2ripple {{1}} Following this action will " +"allow btc2ripple to hold BTC on your behalf." +msgstr "Ripple Trade und btc2ripple sind Partner, um Einzahlungen von BTC einfacher zu machen. Indem Sie fortfahren, akzeptieren Sie die {{1}} von btc2ripple. Btc2ripple kann dann BTC in Ihrem Auftrag halten." -#: src/jade/tabs/btc.jade:45 -msgid "Generate bitcoin address" -msgstr "Bitcoin-Adresse erzeugen" +#: src/jade/tabs/btc.jade:56 +msgid "Add btc2ripple" +msgstr "btc2ripple hinzufügen" -#: src/jade/tabs/btc.jade:49 src/jade/tabs/security.jade:56 -#: src/jade/tabs/trust.jade:160 +#: src/jade/tabs/btc.jade:60 src/jade/tabs/security.jade:64 +#: src/jade/tabs/trust.jade:123 msgid "Connect" msgstr "Verbinden" -#: src/jade/tabs/btc.jade:51 +#: src/jade/tabs/btc.jade:62 msgid "btc2ripple would like to:" msgstr "btc2ripple möchte gern:" -#: src/jade/tabs/btc.jade:53 -msgid "- Receive your email address{{1}}" -msgstr "- Ihre E-Mail-Adresse erhalten{{1}}" +#: src/jade/tabs/btc.jade:64 +msgid "- Receive your email address {{1}}" +msgstr "- Ihre E-Mail-Adresse erhalten {{1}}" -#: src/jade/tabs/btc.jade:54 +#: src/jade/tabs/btc.jade:65 msgid "({{userBlob.data.email}})" msgstr "({{userBlob.data.email}})" -#: src/jade/tabs/btc.jade:55 +#: src/jade/tabs/btc.jade:66 msgid "- Hold deposited BTC on your behalf" msgstr "- Eingezahlte BTC in Ihrem Auftrag verwalten" -#: src/jade/tabs/btc.jade:56 +#: src/jade/tabs/btc.jade:67 msgid "By proceeding, you agree to the btc2ripple {{1}}" msgstr "Indem Sie fortfahren, akzeptieren Sie die btc2ripple {{1}}" -#: src/jade/tabs/btc.jade:63 +#: src/jade/tabs/btc.jade:75 msgid "" "SnapSwap's btc2ripple service is currently unavailable. Please check back " "later." msgstr "SnapSwap's btc2ripple-Service ist im Moment nicht verfügbar. Bitte versuchen Sie es später erneut." -#: src/jade/tabs/contacts.jade:6 src/jade/tabs/contacts.jade:26 +#: src/jade/tabs/btc.jade:94 +msgid "Personal Deposit address" +msgstr "Persönliche Einzahlungsadresse" + +#: src/jade/tabs/btc.jade:96 +msgid "Your account is fully verified." +msgstr "Ihr Konto ist vollständig bestätigt." + +#: src/jade/tabs/btc.jade:104 +msgid "Withdrawal instructions" +msgstr "Abhebungsanweisungen" + +#: src/jade/tabs/btc.jade:105 +msgid "" +"To withdraw to a BTC address, go to the Send tab and enter the BTC address. " +"Using the btc2ripple service, you will be able tosend to that BTC address." +msgstr "Um an eine BTC-Adresse Guthaben abzuheben, gehen Sie zum Tab „Senden“ und geben Sie die BTC-Adresse ein. Über den btc2ripple-Dienst können Sie an diese BTC-Adresse senden." + +#: src/jade/tabs/btc.jade:110 +msgid "Waiting for response from SnapSwap service..." +msgstr "Auf Antwort des SnapSwap-Dienstes wird gewartet" + +#: src/jade/tabs/btc.jade:112 +msgid "" +"To deposit, generate a bitcoin receiving address using the {{1}} service " +"powered by SnapSwap." +msgstr "Zur Einzahlung erzeugen Sie eine Bitcoin-Empfänger-Adresse mit dem {{1}}-Dienst, mit freundlicher Unterstützung von SnapSwap." + +#: src/jade/tabs/contacts.jade:8 +msgid "A new contact has been successfully added." +msgstr "Ein neuer Kontakt wurde erfolgreich hinzugefügt." + +#: src/jade/tabs/contacts.jade:9 +msgid "Your contact has been successfully updated." +msgstr "Ihr Kontakt wurde erfolgreich aktualisiert." + +#: src/jade/tabs/contacts.jade:10 +msgid "A contact has been successfully removed." +msgstr "Ein Kontakt wurde erfolgreich entfernt." + +#: src/jade/tabs/contacts.jade:12 src/jade/tabs/contacts.jade:24 +msgid "Contact" +msgstr "Kontakt" + +#: src/jade/tabs/contacts.jade:13 src/jade/tabs/contacts.jade:32 msgid "Ripple name or address" msgstr "Ripple Name oder Ripple-Adresse." -#: src/jade/tabs/contacts.jade:9 src/jade/tabs/contacts.jade:13 -#: src/jade/tabs/contacts.jade:56 +#: src/jade/tabs/contacts.jade:15 src/jade/tabs/contacts.jade:19 +#: src/jade/tabs/contacts.jade:48 msgid "Add contact" msgstr "Kontakt hinzufügen" -#: src/jade/tabs/contacts.jade:18 -msgid "Contact" -msgstr "Kontakt" - -#: src/jade/tabs/contacts.jade:21 +#: src/jade/tabs/contacts.jade:27 src/jade/tabs/send.jade:245 +#: src/jade/tabs/send.jade:277 msgid "Please enter a contact." msgstr "Bitte geben Sie einen Kontakt ein." -#: src/jade/tabs/contacts.jade:22 +#: src/jade/tabs/contacts.jade:28 msgid "This contact already exists." msgstr "Dieser Kontakt ist bereits vorhanden." -#: src/jade/tabs/contacts.jade:30 +#: src/jade/tabs/contacts.jade:36 msgid "Please enter a Ripple name." msgstr "Bitte Ihren Ripple Name eingeben." -#: src/jade/tabs/contacts.jade:31 src/jade/tabs/contacts.jade:47 +#: src/jade/tabs/contacts.jade:37 src/jade/tabs/contacts.jade:45 msgid "" "You already have a contact with the same Ripple name and/or the same " "Destination tag." msgstr "Sie haben bereits einen Kontakt mit dem gleichen Ripple-Namen und/oder dem gleichen Zielmarker." -#: src/jade/tabs/contacts.jade:32 +#: src/jade/tabs/contacts.jade:38 msgid "Not a valid Ripple name or address." msgstr "Kein gültiger Ripple-Name oder Adresse." -#: src/jade/tabs/contacts.jade:38 -msgid "Please enter a Ripple address." -msgstr "Bitte geben Sie eine Ripple-Adresse ein." - -#: src/jade/tabs/contacts.jade:39 src/jade/tabs/contacts.jade:53 -msgid "" -"You already have a contact with the same Ripple address and/or the same " -"Destination tag." -msgstr "Sie haben bereits einen Kontakt mit der gleichen Ripple-Adresse und/oder dem gleichen Zielmarker." - -#: src/jade/tabs/contacts.jade:40 -msgid "Not a valid Ripple address." -msgstr "Keine gültige Ripple-Adresse." - -#: src/jade/tabs/contacts.jade:43 src/jade/tabs/contacts.jade:49 -#: src/jade/tabs/contacts.jade:89 src/jade/tabs/send.jade:49 -#: src/jade/tabs/tx.jade:54 +#: src/jade/tabs/contacts.jade:41 src/jade/tabs/contacts.jade:81 +#: src/jade/tabs/send.jade:42 src/jade/tabs/tx.jade:56 msgid "Destination tag" msgstr "Zielmarker" -#: src/jade/tabs/contacts.jade:46 src/jade/tabs/contacts.jade:52 -#: src/jade/tabs/send.jade:53 +#: src/jade/tabs/contacts.jade:42 +msgid "Leave blank if not applicable" +msgstr "Leer lassen, falls nicht anwendbar" + +#: src/jade/tabs/contacts.jade:44 src/jade/tabs/send.jade:46 msgid "Invalid destination tag" msgstr "Ungültiger Zielmarker" -#: src/jade/tabs/contacts.jade:80 src/jade/tabs/send.jade:232 -#: src/jade/tabs/send.jade:260 +#: src/jade/tabs/contacts.jade:72 msgid "You already have a contact with the same name." msgstr "Sie haben bereits einen Kontakt mit demselben Namen." -#: src/jade/tabs/contacts.jade:86 +#: src/jade/tabs/contacts.jade:78 msgid "You already have this address." msgstr "Sie haben diese Adresse bereits." -#: src/jade/tabs/contacts.jade:87 +#: src/jade/tabs/contacts.jade:79 src/jade/tabs/debug.jade:14 msgid "Not a valid address." msgstr "Keine gültige Adresse." -#: src/jade/tabs/contacts.jade:92 +#: src/jade/tabs/contacts.jade:84 msgid "Invalid destination tag." msgstr "Ungültiger Zielmarker." -#: src/jade/tabs/contacts.jade:102 +#: src/jade/tabs/contacts.jade:94 msgid "" "You don't have any contacts yet. Click on 'Add contact' button in the top " "right corner to add a new contact." msgstr "Sie haben noch keine Kontakte. Klicken Sie auf die Schaltfläche 'Kontakt hinzufügen' in der oberen rechten Ecke, um einen neuen Kontakt hinzuzufügen." -#: src/jade/tabs/desktop/login.jade:3 -msgid "" -"You will not be able to login to the downloadable client using a " -"username/password you create on Ripple Trade or the web version of the " -"Ripple Client. You can only use a secret key to access an existing Ripple " -"account. This is because the downloadable client stores your login " -"information locally on your computer, so your account is as safe as the " -"security of your personal computer." -msgstr "Sie werden sich auf dem herunterladbaren Client nicht mit einem Nutzernamen/Kennwort einloggen können, den Sie bei Ripple Trade oder der Web-Version des Ripple-Clients anlegen. Sie können nur einen geheimen Schlüssel verwenden, um auf ein bestehendes Ripple-Konto zuzugreifen. Denn der herunterladbare Client speichert Ihre Anmelde-Informationen lokal auf Ihrem Computer, die Sicherheit Ihres Kontos steht und fällt also mit der Sicherheit Ihres persönlichen Computers." - -#: src/jade/tabs/desktop/login.jade:12 src/jade/tabs/desktop/login.jade:34 -msgid "Open account" -msgstr "Konto eröffnen" +#: src/jade/tabs/debug.jade:9 +msgid "Enter a Ripple name or address" +msgstr "Geben Sie einen Ripple-Namen oder eine Adresse ein" -#: src/jade/tabs/desktop/login.jade:15 src/jade/tabs/desktop/register.jade:5 -#: src/jade/tabs/desktop/register.jade:65 -msgid "Create new account" -msgstr "Neues Konto erstellen" +#: src/jade/tabs/debug.jade:13 +msgid "Please enter an address." +msgstr "Bitte geben Sie eine Adresse an." -#: src/jade/tabs/desktop/login.jade:18 -msgid "Select account file {{walletfile}}" -msgstr "Konto-Datei auswählen {{walletfile}}" +#: src/jade/tabs/debug.jade:17 +msgid "Turn on debug mode" +msgstr "Debug-Modus einschalten" -#: src/jade/tabs/desktop/login.jade:21 -msgid "Select account file" -msgstr "Kontodatei auswählen" +#: src/jade/tabs/eur.jade:35 +msgid "Euro Deposit" +msgstr "Euro-Guthaben" -#: src/jade/tabs/desktop/login.jade:24 -msgid "Account password" -msgstr "Konto-Kennwort" +#: src/jade/tabs/eur.jade:39 +msgid "SnapSwap EU (~SnapSwap){{1}}{{2}}" +msgstr "SnapSwap EU (~SnapSwap){{1}}{{2}}" -#: src/jade/tabs/desktop/register.jade:8 -msgid "Open existing account" -msgstr "Bestehendes Konto öffnen" +#: src/jade/tabs/eur.jade:45 +msgid "All countries, except USA" +msgstr "Alle Länder außer den USA" -#: src/jade/tabs/desktop/register.jade:11 -msgid "Create an empty account" -msgstr "Leeres Konto erstellen" +#: src/jade/tabs/eur.jade:49 +msgid "€ 0.31 – € 15.00" +msgstr "€ 0,31 – € 15,00" -#: src/jade/tabs/desktop/register.jade:14 -msgid "Create a new account with a secret key" -msgstr "Neues Konto mit Sicherheitsschlüssel erstellen" - -#: src/jade/tabs/desktop/register.jade:18 -msgid "Create empty account" -msgstr "Leeres Konto erstellen" - -#: src/jade/tabs/desktop/register.jade:20 -msgid "Encrypt your new account file: {{walletfile}}" -msgstr "Verschlüsseln Sie Ihre neue Konto-Datei: {{walletfile}}" - -#: src/jade/tabs/desktop/register.jade:24 -msgid "Wallet file" -msgstr "Wallet-Datei" - -#: src/jade/tabs/desktop/register.jade:31 +#: src/jade/tabs/eur.jade:59 msgid "" -"Your password is weak. It is not a mix of letters, numbers and symbols or it" -" is the same as your Ripple name." -msgstr "Ihr Kennwort ist zu schwach. Es besteht nicht aus Buchstaben, Ziffern und Sonderzeichen, oder entspricht ihrem Ripple-Namen." - -#: src/jade/tabs/desktop/register.jade:33 src/jade/tabs/recover.jade:40 -#: src/jade/tabs/register.jade:49 src/jade/tabs/security.jade:123 -msgid "Confirm password" -msgstr "Kennwort bestätigen" - -#: src/jade/tabs/desktop/register.jade:36 src/jade/tabs/recover.jade:43 -#: src/jade/tabs/register.jade:52 src/jade/tabs/security.jade:126 -msgid "Passwords do not match" -msgstr "Die Passwörter stimmen nicht überein" - -#: src/jade/tabs/desktop/register.jade:42 -msgid "Encrypt account" -msgstr "Konto verschlüsseln" - -#: src/jade/tabs/desktop/register.jade:44 -msgid "Cancel and delete account file" -msgstr "Abbrechen und Konto-Datei löschen" - -#: src/jade/tabs/desktop/register.jade:50 -msgid "Create account with secret key" -msgstr "Konto mit Sicherheitsschlüssel erstellen" +"Ripple Trade has partnered with SnapSwap to provide easier access to EUR. " +"Following this action will enable SnapSwap to hold EUR on your behalf." +msgstr "Ripple Trade und SnapSwap sind Partner, um einfacheren Zugriff auf EUR anzubieten. Indem Sie fortfahren, erlauben Sie SnapSwap, EUR in Ihrem Auftrag zu halten." -#: src/jade/tabs/desktop/register.jade:55 -msgid "Enter your secret key" -msgstr "Geben Sie Ihren Sicherheitsschlüssel ein" +#: src/jade/tabs/eur.jade:69 src/jade/tabs/usd.jade:66 +msgid "Not connected" +msgstr "Nicht verbunden" -#: src/jade/tabs/desktop/register.jade:62 -msgid "Secret is invalid" -msgstr "Sicherheitsschlüssel ist ungültig" +#: src/jade/tabs/eur.jade:70 src/jade/tabs/usd.jade:67 +msgid "Connected" +msgstr "Verbunden" -#: src/jade/tabs/desktop/register.jade:67 src/jade/tabs/fund.jade:77 -#: src/jade/tabs/trade.jade:325 -msgid "Cancel" -msgstr "Abbrechen" +#: src/jade/tabs/eur.jade:76 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.EU" +msgstr "NEUKUNDEN- BEI SNAPSWAP.EU REGISTRIEREN" -#: src/jade/tabs/desktop/register.jade:69 src/jade/tabs/register.jade:95 -msgid "Have an account? {{1:Log In}}" -msgstr "Haben Sie ein Konto? {{1:Anmelden}}" +#: src/jade/tabs/eur.jade:77 +msgid "Register and verify your account at SnapSwap EU. You will need: {{1}}" +msgstr "Registrieren und bestätigen Sie Ihr Konto bei SnapSwap EU. Sie brauchen: {{1}}" -#: src/jade/tabs/desktop/register.jade:75 -msgid "Important:" -msgstr "Wichtig:" - -#: src/jade/tabs/desktop/register.jade:76 +#: src/jade/tabs/eur.jade:81 src/jade/tabs/usd.jade:78 msgid "" -"The secret key below gives access to your money in the unlikely case that " -"you lose your password. In that case your contacts will be lost, but with " -"this secret key alone anyone can retrieve your money. So please store it " -"somewhere PRIVATE AND SAFE. Read more about keys and wallet safety in {{1}}" -msgstr "Der geheime Schlüssel unten gewährt Zugriff auf Ihr Geld für den unwahrscheinlichen Fall, dass Sie Ihr Kennwort verlieren. In diesem Fall sind Ihre Kontakte verloren, doch dieser geheime Schlüssel reicht aus, damit jeder, der in seinem Besitz ist, auf Ihr Geld zugreifen kann. Bewahren Sie ihn also an einem PRIVATEN UND SICHEREN Ort auf. Lesen Sie mehr über Schlüssel und die Sicherheit Ihrer Brieftasche unter {{1}}" +"A valid government-issued ID: driver license, passport, ID card, or visa " +"stamp." +msgstr "Eine gültige von den Behörden ausgestellte ID: Führerschein, Reisepass, Personalausweis oder Visum mit Stempel." -#: src/jade/tabs/desktop/register.jade:79 src/jade/tabs/settings/navbar.jade:2 -msgid "Security" -msgstr "Sicherheit" +#: src/jade/tabs/eur.jade:83 src/jade/tabs/usd.jade:80 +msgid "A proof of address: driver license, utility bill, bank statement, etc." +msgstr "Ein Adressnachweis: Führerschein, Rechnung, Kontoauszug der Bank, usw." -#: src/jade/tabs/desktop/register.jade:81 -msgid "Passphrase:{{1}}{{2}}{{3}}{{4}}" -msgstr "Passphrase:{{1}}{{2}}{{3}}{{4}}" +#: src/jade/tabs/eur.jade:85 +msgid "EXISTING SNAPSWAP EU CUSTOMERS" +msgstr "BESTEHENDE SNAPSWAP EU KUNDEN" -#: src/jade/tabs/desktop/register.jade:90 -msgid "Secret key:" -msgstr "Sicherheitsschlüssel:" +#: src/jade/tabs/eur.jade:89 src/jade/tabs/jpy.jade:94 +#: src/jade/tabs/usd.jade:86 +msgid "Login to your account {{1}}" +msgstr "Melden Sie sich bei Ihrem Konto an {{1}}" -#: src/jade/tabs/desktop/register.jade:95 src/jade/tabs/register.jade:150 -msgid "Show secret key" -msgstr "Sicherheitsschlüssel anzeigen" +#: src/jade/tabs/eur.jade:92 src/jade/tabs/jpy.jade:96 +msgid "DEPOSITS AND WITHDRAWALS:" +msgstr "EIN- UND AUSZAHLUNGEN:" -#: src/jade/tabs/desktop/register.jade:97 src/jade/tabs/register.jade:151 -msgid "Hide secret key" -msgstr "Sicherheitsschlüssel verbergen" +#: src/jade/tabs/eur.jade:96 +msgid "Deposit from your bank (2-4 business days)" +msgstr "Von Ihrer Bank einzahlen (2-4 Arbeitstage)" -#: src/jade/tabs/desktop/register.jade:98 -msgid "Have you saved your secret key somewhere safe?" -msgstr "Haben Sie Ihren Sicherheitsschlüssel an einem sichern Ort notiert?" +#: src/jade/tabs/eur.jade:98 +msgid "Withdraw to your bank account in SEPA (2-4 business days)" +msgstr "Auf Ihr Bankkonto mit SEPA abbuchen (2-4 Arbeitstage)" -#: src/jade/tabs/desktop/register.jade:101 -msgid "Yes, I saved my secret key" -msgstr "Ja, Ich habe meinen Sicherheitsschlüssel notiert" +#: src/jade/tabs/eur.jade:100 +msgid "Withdraw to SmartyCash Card (instant)" +msgstr "Zu SmartyCash-Karte abbuchen (sofort)" #: src/jade/tabs/exchange.jade:13 msgid "You have to be funded before you can exchange money" msgstr "Ihr Konto benötigt einen gewissen Mindestbetrag, bevor Sie in der Lage sind, Handel zu treiben" +#: src/jade/tabs/exchange.jade:23 +msgid "Buy (Market Order)" +msgstr "Kaufen (Markt-Order)" + +#: src/jade/tabs/exchange.jade:24 +msgid "" +"Submit a buy order at the current market rate. Orders will execute " +"instantly." +msgstr "Eine Kaufen-Order zur aktuellen Marktrate absenden. Order wird sofort ausgeführt." + # Receive (amount) -#: src/jade/tabs/exchange.jade:19 +#: src/jade/tabs/exchange.jade:27 msgid "Receive (amount)" -msgstr "Empfangen" +msgstr "Ich möchte kaufen" + +#: src/jade/tabs/exchange.jade:34 src/jade/tabs/widgets/balances.jade:49 +msgid "add gateway" +msgstr "Gateway hinzufügen" -#: src/jade/tabs/exchange.jade:26 src/jade/tabs/send.jade:88 +#: src/jade/tabs/exchange.jade:37 src/jade/tabs/send.jade:90 msgid "Please enter an amount." msgstr "Bitte geben Sie einen Betrag ein." -#: src/jade/tabs/exchange.jade:27 src/jade/tabs/send.jade:89 -#: src/jade/tabs/trade.jade:146 src/jade/tabs/trade.jade:161 -#: src/jade/tabs/trade.jade:176 +#: src/jade/tabs/exchange.jade:38 src/jade/tabs/send.jade:91 +#: src/jade/tabs/trade.jade:153 src/jade/tabs/trade.jade:168 +#: src/jade/tabs/trade.jade:183 src/jade/tabs/trust.jade:101 msgid "Not a valid amount." msgstr "Kein gültiger Betrag." -#: src/jade/tabs/exchange.jade:28 +#: src/jade/tabs/exchange.jade:39 +msgid "" +"You are either trying to convert too little or too much XRP.Minimum amount " +"is 0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "Sie versuchen entweder zu wenig oder zu viel XRP zu wechseln. Der Minimalbetrag beträgt 0,000001 XRP und der Maximalbetrag beträgt 100 Milliarden XRP." + +#: src/jade/tabs/exchange.jade:42 src/jade/tabs/send.jade:96 +#: src/jade/tabs/trust.jade:103 +msgid "Your amount has too many digits. The max number of digits is 16." +msgstr "Ihr Betrag hat zu viele Ziffern. Die maximale Anzahl Ziffern beträgt 16." + +#: src/jade/tabs/exchange.jade:43 msgid "Please enter an amount greater than zero." msgstr "Bitte geben Sie einen Betrag größer als Null ein." -#: src/jade/tabs/exchange.jade:31 -msgid "Calculating..." -msgstr "Berechnung läuft..." +#: src/jade/tabs/exchange.jade:46 +msgid "{{1}} Calculating..." +msgstr "{{1}} Wird berechnet..." -#: src/jade/tabs/exchange.jade:33 +#: src/jade/tabs/exchange.jade:50 msgid "" "Cannot convert to {{exchange.amount}} {{exchange.currency_name}}. Please " "make sure your account has enough funds, and a {{1}} to a " "{{exchange.currency_name}} gateway." msgstr "Umwandeln zu {{exchange.amount}} {{exchange.currency_name}} nicht möglich. Bitte stellen Sie sicher, dass Ihr Konto genug Guthaben hat, und einen {{1}} zu einem {{exchange.currency_name}}-Gateway." -#: src/jade/tabs/exchange.jade:37 +#: src/jade/tabs/exchange.jade:54 msgid "" "Sorry! Cannot convert {{exchange.amount}} {{exchange.currency_name}}. Please" " make sure your account has enough funds." msgstr "Leider kann {{exchange.amount}} {{exchange.currency_name}} nicht gewechselt werden. Bitte stellen Sie sicher, dass Ihr Konto genügend Guthaben aufweist." -#: src/jade/tabs/exchange.jade:39 src/jade/tabs/send.jade:133 +#: src/jade/tabs/exchange.jade:56 src/jade/tabs/send.jade:142 msgid "Error while calculating path" msgstr "Fehler bei der Berechnung des Pfads" -#: src/jade/tabs/exchange.jade:55 +#: src/jade/tabs/exchange.jade:60 +msgid "Exchange" +msgstr "Umtausch" + +#: src/jade/tabs/exchange.jade:72 msgid "Exchange {{ alt.amount | rpcurrency }} {{1}}" msgstr "{{ alt.amount | rpcurrency }} wechseln {{1}}" -#: src/jade/tabs/exchange.jade:61 src/jade/tabs/send.jade:161 +#: src/jade/tabs/exchange.jade:78 src/jade/tabs/send.jade:170 msgid "Paths last updated {{1}} {{2: seconds}} {{3: second}} ago" msgstr "Zuletzt aktualisiert vor {{1}} {{2: Sekunden}} {{3: Sekunde}}" -#: src/jade/tabs/exchange.jade:70 +#: src/jade/tabs/exchange.jade:89 msgid "Ripple is calculating a path for your conversion." msgstr "Ripple berechnet einen Pfad für Ihren Umtausch." -#: src/jade/tabs/exchange.jade:75 +#: src/jade/tabs/exchange.jade:94 msgid "" "{{1:You are exchanging}}{{2}}{{3:to}}{{4}}{{5:You will pay at " "most}}{{6}}{{7:Are you sure?}}" msgstr "{{1:Sie tauschen}}{{2}}{{3:um in}}{{4}}{{5:Sie bezahlen maximal}}{{6}}{{7:Sind Sie sicher?}}" -#: src/jade/tabs/exchange.jade:116 +#: src/jade/tabs/exchange.jade:139 msgid "Do another conversion" msgstr "Einen weiteren Umtausch ausführen" -#: src/jade/tabs/exchange.jade:118 src/jade/tabs/send.jade:243 -#: src/jade/tabs/send.jade:273 +#: src/jade/tabs/exchange.jade:141 src/jade/tabs/send.jade:257 +#: src/jade/tabs/send.jade:291 msgid "Back to balance" msgstr "Zurück zum Kontostand" @@ -1080,215 +1567,280 @@ msgstr "Zurück zum Kontostand" msgid "Add trust" msgstr "Vertrauen hinzufügen" -#: src/jade/tabs/fund.jade:33 src/jade/tabs/fund.jade:47 -#: src/jade/tabs/trust.jade:100 src/jade/tabs/trust.jade:121 +#: src/jade/tabs/fund.jade:27 src/jade/tabs/send.jade:26 +msgid "Enter a Ripple name or contact" +msgstr "Geben Sie einen Ripple-Namen oder einen Kontakt ein" + +#: src/jade/tabs/fund.jade:33 src/jade/tabs/trust.jade:73 msgid "Account does not meet the minimum XRP reserve." msgstr "Account erfüllt nicht die mindest XRP Reserve." -#: src/jade/tabs/fund.jade:34 src/jade/tabs/fund.jade:48 -#: src/jade/tabs/send.jade:107 src/jade/tabs/trust.jade:101 -#: src/jade/tabs/trust.jade:122 -msgid "More information" -msgstr "Mehr Infos" - -#: src/jade/tabs/fund.jade:36 src/jade/tabs/trust.jade:103 +#: src/jade/tabs/fund.jade:36 src/jade/tabs/trust.jade:76 msgid "Please enter a Ripple name, contact, or address." msgstr "Bitte geben Sie einen Ripple-Namen, Kontakt, oder eine Adresse ein." -#: src/jade/tabs/fund.jade:37 src/jade/tabs/fund.jade:51 -#: src/jade/tabs/trust.jade:104 src/jade/tabs/trust.jade:125 +#: src/jade/tabs/fund.jade:37 src/jade/tabs/trust.jade:77 msgid "You've entered your own address." msgstr "Sie haben Ihre eigene Adresse eingegeben." -#: src/jade/tabs/fund.jade:38 src/jade/tabs/trust.jade:105 +#: src/jade/tabs/fund.jade:38 src/jade/tabs/trust.jade:78 msgid "Please enter a valid Ripple name, contact, or address." msgstr "Bitte geben Sie einen gültigen Ripple-Namen, Kontakt, oder eine gültige Adresse ein." -#: src/jade/tabs/fund.jade:50 src/jade/tabs/trust.jade:124 -msgid "Please enter a Ripple address or contact." -msgstr "Bitte geben Sie eine Ripple-Adresse oder einen Kontakt ein." - -#: src/jade/tabs/fund.jade:52 src/jade/tabs/trust.jade:126 -msgid "Please enter a valid Ripple address or contact." -msgstr "Bitte geben Sie eine gültige Ripple-Adresse oder einen gültigen Kontakt ein." - -#: src/jade/tabs/fund.jade:55 src/jade/tabs/history.jade:190 -#: src/jade/tabs/trade.jade:303 src/jade/tabs/trust.jade:129 -msgid "Amount" -msgstr "Betrag" - -#: src/jade/tabs/fund.jade:62 src/jade/tabs/trust.jade:107 -#: src/jade/tabs/trust.jade:140 +#: src/jade/tabs/fund.jade:48 src/jade/tabs/trust.jade:80 msgid "Amount field is required" msgstr "Das Betragsfeld ist erforderlich" -#: src/jade/tabs/fund.jade:64 src/jade/tabs/trust.jade:109 -#: src/jade/tabs/trust.jade:142 +#: src/jade/tabs/fund.jade:50 src/jade/tabs/trust.jade:82 +#: src/jade/tabs/trust.jade:105 msgid "" "XRP can be sent without extending trust. If you really want to trust in XRP," " please use XRR currency code." msgstr "XRP können versandt werden, ohne Vertrauen auszusprechen. Wenn sie wirklich jemandem für XRP vertrauen wollen, verwenden Sie bitte XRR als Währungscode." -#: src/jade/tabs/fund.jade:67 src/jade/tabs/trust.jade:112 -#: src/jade/tabs/trust.jade:145 +#: src/jade/tabs/fund.jade:53 src/jade/tabs/trust.jade:85 +#: src/jade/tabs/trust.jade:108 msgid "Currency field is required" msgstr "Das Währungsfeld ist erforderlich" -#: src/jade/tabs/fund.jade:73 src/jade/tabs/trust.jade:151 +#: src/jade/tabs/fund.jade:59 src/jade/tabs/fund.jade:60 +#: src/jade/tabs/trust.jade:114 src/jade/tabs/trust.jade:115 msgid "Allow Rippling" msgstr "Rippling erlauben" -#: src/jade/tabs/fund/menu.jade:2 -msgid "XRP" -msgstr "XRP" +#: src/jade/tabs/fund.jade:60 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"trust. More " +"information" +msgstr "Zulassen, dass das Guthaben dieser Vertrauenslinie an einen anderen Ausgeber übertragen werden kann, dem Sie ebenfalls vertrauen. Mehr Informationen" + +#: src/jade/tabs/fund.jade:63 +msgid "Cancel" +msgstr "Abbrechen" #: src/jade/tabs/fund/menu.jade:3 -msgid "BTC" -msgstr "BTC" +msgid "{{1}}XRP" +msgstr "{{1}}XRP" #: src/jade/tabs/fund/menu.jade:6 +msgid "Featured gateways" +msgstr "Nennenswerte Gateways" + +#: src/jade/tabs/fund/menu.jade:7 +msgid "{{1}}BRL" +msgstr "{{1}}BRL" + +#: src/jade/tabs/fund/menu.jade:10 +msgid "{{1}}BTC" +msgstr "{{1}}BTC" + +#: src/jade/tabs/fund/menu.jade:13 +msgid "{{1}}EUR" +msgstr "{{1}}EUR" + +#: src/jade/tabs/fund/menu.jade:16 +msgid "{{1}}JPY" +msgstr "{{1}}JPY" + +#: src/jade/tabs/fund/menu.jade:19 +msgid "{{1}}MXN" +msgstr "{{1}}MXN" + +#: src/jade/tabs/fund/menu.jade:22 +msgid "{{1}}USD" +msgstr "{{1}}USD" + +#: src/jade/tabs/fund/menu.jade:25 +msgid "{{1}}XAU" +msgstr "{{1}}XAU" + +#: src/jade/tabs/fund/menu.jade:28 +msgid "Add any gateway" +msgstr "Anderes Gateway hinzufügen" + +#: src/jade/tabs/fund/menu.jade:30 msgid "Learn more about gateways" msgstr "Mehr über Gateways erfahren" -#: src/jade/tabs/history.jade:9 -msgid "Loading history..." -msgstr "Kontoverlauf wird geladen…" +#: src/jade/tabs/gold.jade:37 +msgid "Gold Deposit" +msgstr "Gold-Guthaben" + +#: src/jade/tabs/gold.jade:41 +msgid "Gold Bullion International (~gbi) {{1}}" +msgstr "Gold Bullion International (~gbi) {{1}}" + +#: src/jade/tabs/gold.jade:48 +msgid "0.5% per year" +msgstr "0,5% pro Jahr" + +#: src/jade/tabs/gold.jade:56 +msgid "" +"Ripple Trade has partnered with GBI to provide easy access toXAU. By " +"continuing, you are allowing GBI to hold gold on your behalf." +msgstr "Ripple Trade und GBI sind Partner, um einfachen Zugriff auf XAU anzubieten. Indem Sie fortfahren, erlauben Sie GBI, Gold in Ihrem Auftrag zu halten." + +#: src/jade/tabs/gold.jade:67 src/jade/tabs/jpy.jade:68 +#: src/jade/tabs/mxn.jade:70 +msgid "{{1}} Not connected" +msgstr "{{1}} Nicht verbunden" + +#: src/jade/tabs/gold.jade:70 src/jade/tabs/jpy.jade:71 +#: src/jade/tabs/mxn.jade:73 +msgid "{{1}} Connected" +msgstr "{{1}} Verbunden" + +#: src/jade/tabs/gold.jade:77 +msgid "Deposit" +msgstr "Einzahlung" + +#: src/jade/tabs/gold.jade:78 +msgid "" +"GBI does not currently support direct deposits. You can {{1}} or {{2}}." +msgstr "GBI unterstützt zurzeit keine direkten Einzahlungen. Sie können {{1}} oder {{2}}." + +#: src/jade/tabs/gold.jade:84 +msgid "Withdrawal" +msgstr "Abhebung" + +#: src/jade/tabs/gold.jade:85 +msgid "" +"You can redeem the physical gold in 1 oz increments.To do so, you'll need to" +" {{1}} and arrange to have the gold shipped to you." +msgstr "Sie können das physische Gold in Einheiten von 1 oz abheben. Dazu müssen Sie {{1}} und sich das Gold schicken lassen." + +#: src/jade/tabs/history.jade:11 +msgid "Loading History" +msgstr "Kontoverlauf wird geladen" -#: src/jade/tabs/history.jade:14 +#: src/jade/tabs/history.jade:16 msgid "Your account history is empty" msgstr "Ihr Kontoauszug ist leer" -#: src/jade/tabs/history.jade:20 -msgid "Filters" -msgstr "Filter" - -#: src/jade/tabs/history.jade:23 +#: src/jade/tabs/history.jade:24 msgid "Transaction type{{1}}{{2}}" msgstr "Transaktions-Typ{{1}}{{2}}" -#: src/jade/tabs/history.jade:48 +#: src/jade/tabs/history.jade:37 msgid "Date{{1}}{{2}}" msgstr "Datum:{{1}}{{2}}" -#: src/jade/tabs/history.jade:53 +#: src/jade/tabs/history.jade:42 msgid "Load history for specific date range" msgstr "Lade Kontoauszug für spezifischen Datumsbereich" -#: src/jade/tabs/history.jade:59 +#: src/jade/tabs/history.jade:48 msgid "From" msgstr "Von" -#: src/jade/tabs/history.jade:65 +#: src/jade/tabs/history.jade:54 msgid "To" msgstr "An" -#: src/jade/tabs/history.jade:68 +#: src/jade/tabs/history.jade:57 msgid "Filter" msgstr "Filter" -#: src/jade/tabs/history.jade:82 -msgid "Transaction History" -msgstr "Transaktions-Verlauf" - -#: src/jade/tabs/history.jade:84 -msgid "Export to CSV" -msgstr "Als CSV exportieren" - -#: src/jade/tabs/history.jade:88 +#: src/jade/tabs/history.jade:64 msgid "Date" msgstr "Datum" -#: src/jade/tabs/history.jade:89 src/jade/tabs/history.jade:188 +#: src/jade/tabs/history.jade:65 src/jade/tabs/history.jade:170 msgid "Description" msgstr "Beschreibung" -#: src/jade/tabs/history.jade:90 +#: src/jade/tabs/history.jade:68 src/jade/tabs/history.jade:73 +msgid "Export to CSV" +msgstr "Als CSV exportieren" + +#: src/jade/tabs/history.jade:69 msgid "Sorry, no transactions match your current filter." msgstr "Es tut uns leid, keine Transaktionen passen zu Ihrem aktuellen Filter." -#: src/jade/tabs/history.jade:109 +#: src/jade/tabs/history.jade:91 msgid "You sent{{1}}to{{2}}" msgstr "Sie haben {{1}} an {{2}} gesendet" -#: src/jade/tabs/history.jade:115 +#: src/jade/tabs/history.jade:97 msgid "{{1}}sent you{{2}}" msgstr "{{1}} hat Ihnen {{2}} gesendet" -#: src/jade/tabs/history.jade:121 +#: src/jade/tabs/history.jade:103 msgid "You requested to exchange{{1}}to{{2}}" msgstr "Sie möchten {{1}} gegen {{2}} tauschen" -#: src/jade/tabs/history.jade:127 +#: src/jade/tabs/history.jade:109 msgid "{{1}}now trusts you for{{2}}" msgstr "{{1}}vertraut Ihnen jetzt für{{2}}" -#: src/jade/tabs/history.jade:140 src/jade/tabs/history/effects.jade:45 +#: src/jade/tabs/history.jade:122 src/jade/tabs/history/effects.jade:45 msgid "You created an order to sell{{1}}for{{2}}" msgstr "Ihre Order {{1}} für {{2}} zu verkaufen wurde erteilt." -#: src/jade/tabs/history.jade:144 src/jade/tabs/history/effects.jade:49 +#: src/jade/tabs/history.jade:126 src/jade/tabs/history/effects.jade:49 msgid "You created an order to buy{{1}}for{{2}}" msgstr "Ihre Order {{1}} für {{2}} zu kaufen wurde erteilt." -#: src/jade/tabs/history.jade:150 +#: src/jade/tabs/history.jade:132 msgid "You cancelled an order accepting {{1}}for{{2}}" msgstr "Ihre Order {{1}} für {{2}} zu akzeptieren wurde storniert" -#: src/jade/tabs/history.jade:163 +#: src/jade/tabs/history.jade:145 msgid "Unknown transaction" msgstr "Unbekannte Transaktion" -#: src/jade/tabs/history.jade:166 +#: src/jade/tabs/history.jade:148 msgid "" "The client failed to parse this transaction. The developers have been " "notified of the issue." msgstr "Der Client konnte diese Transaktion nicht auslesen. Die Entwickler wurden über das Problem benachrichtigt." -#: src/jade/tabs/history.jade:171 +#: src/jade/tabs/history.jade:153 msgid "{{1}} sent you{{2}} and activated your account!" msgstr "{{1}} hat Ihnen{{2}} gesendet und Ihr Konto freigeschaltet!" -#: src/jade/tabs/history.jade:178 +#: src/jade/tabs/history.jade:160 msgid "You deposited{{1}} using {{entry.details.app.name}}" msgstr "Sie haben{{1}} über {{entry.details.app.name}} eingezahlt" -#: src/jade/tabs/history.jade:186 +#: src/jade/tabs/history.jade:168 msgid "Balance Changes" msgstr "Kontostand Änderungen" -#: src/jade/tabs/history.jade:189 +#: src/jade/tabs/history.jade:171 msgid "Issuer" msgstr "Gateway" -#: src/jade/tabs/history.jade:191 +#: src/jade/tabs/history.jade:173 msgid "Final balance" msgstr "Finaler Kontostand" -#: src/jade/tabs/history.jade:194 +#: src/jade/tabs/history.jade:176 msgid "XRP Balance Change" msgstr "Änderung XRP-Kontostand" -#: src/jade/tabs/history.jade:195 +#: src/jade/tabs/history.jade:177 msgid "{{effect.currency}} Balance Change" msgstr "Änderung {{effect.currency}}-Kontostand" -#: src/jade/tabs/history.jade:196 -msgid "Fee" -msgstr "Gebühr" - -#: src/jade/tabs/history.jade:201 +#: src/jade/tabs/history.jade:183 msgid "Transaction details" msgstr "Transaktionsdetails" -#: src/jade/tabs/history.jade:202 +#: src/jade/tabs/history.jade:184 msgid "Add {{1}} to contact list" msgstr "{{1}} zur Kontaktliste hinzufügen" -#: src/jade/tabs/history.jade:208 src/jade/tabs/trade.jade:386 +#: src/jade/tabs/history.jade:189 +msgid "{{1}} Loading more" +msgstr "{{1}} Weitere Daten werden geladen" + +#: src/jade/tabs/history.jade:192 src/jade/tabs/trade.jade:500 msgid "Load more" msgstr "Weitere laden" -#: src/jade/tabs/history.jade:209 +#: src/jade/tabs/history.jade:193 msgid "No more transactions left" msgstr "Keine weiteren Transaktionen" @@ -1344,439 +1896,633 @@ msgstr "Vertrauens-Kontostand zwischen Ihnen und{{1}}wurde geändert von{{2}}." msgid "Your balance has been changed by{{1}}." msgstr "Ihr Kontostand wurde geändert von {{1}}." -#: src/jade/tabs/kyc.jade:16 +#: src/jade/tabs/jpy.jade:38 +msgid "Japanese Yen Deposit" +msgstr "Depot für Japanische Yen" + +#: src/jade/tabs/jpy.jade:42 +msgid "Tokyo JPY Issuer (~tokyojpy) {{1}}" +msgstr "Tokyo JPY Issuer (~tokyojpy) {{1}}" + +#: src/jade/tabs/jpy.jade:59 +msgid "" +"Ripple Trade has partnered with Tokyo JPY Issuer to provide easier access to" +" JPY. Following this action will enable Tokyo JPY Issuer to hold JPY on your" +" behalf." +msgstr "Ripple Trade und Tokyo JPY Issuer sind Partner, um einfacheren Zugriff auf JPY anzubieten. Indem Sie fortfahren, erlauben Sie Tokyo JPY Issuer, JPY in Ihrem Auftrag zu halten." + +#: src/jade/tabs/jpy.jade:78 +msgid "NEW CUSTOMERS- SIGN UP AT TOKYO JPY ISSUER" +msgstr "NEUKUNDEN- BEI TOKYO JPY ISSUER REGISTRIEREN" + +#: src/jade/tabs/jpy.jade:79 +msgid "{{1}}at Tokyo JPY Issuer. You will need:{{2}}" +msgstr "{{1}}Sie sich bei Tokyo JPY Issuer. Sie brauchen:{{2}}" + +#: src/jade/tabs/jpy.jade:84 +msgid "A valid government-issued ID." +msgstr "Eine gültigen von der Regierung ausgestellten Personalausweis." + +#: src/jade/tabs/jpy.jade:86 +msgid "A proof of address (utility bill, etc)." +msgstr "Einen Adressnachweis (Rechnung, o.ä.)." + +#: src/jade/tabs/jpy.jade:88 +msgid "A bank account under the same name." +msgstr "Ein Bankkonto, das auf den gleichen Namen läuft." + +#: src/jade/tabs/jpy.jade:90 +msgid "EXISTING TOKYO JPY ISSUER CUSTOMERS" +msgstr "EXISTIERENDE KUNDEN VON TOKYO JPY ISSUER" + +#: src/jade/tabs/jpy.jade:100 +msgid "" +"Tokyo JPY Issuer accepts deposits and withdrawals via bank transfer. Details" +" {{1}}" +msgstr "Tokyo JPY Issuer akzeptiert Ein- und Auszahlungen per Banküberweisung. Details {{1}}" + +#: src/jade/tabs/jpy.jade:103 +msgid "" +"To deposit, you’ll need to first deposit into your Tokyo JPY Issuer account " +"and then initiate a transfer into your Ripple account." +msgstr "Zum Einzahlen müssen Sie zuerst auf Ihr Konto bei Tokyo JPY Issuer einzahlen und dann eine Überweisung auf Ihr Ripple-Konto veranlassen." + +#: src/jade/tabs/jpy.jade:105 +msgid "" +"To withdraw to a bank account, you’ll first send money from your Ripple " +"account to your Tokyo JPY Issuer account. Follow instructions on the Tokyo " +"JPY Issuer site to send to your bank account." +msgstr "Zum Auszahlen an ein Bankkonto müssen Sie zuerst Geld von Ihrem Ripple-Konto an Ihr Konto bei Tokyo JPY Issuer senden. Folgen Sie dann den Anweisungen auf der Website von Tokyo JPY Issuer, um an Ihr Bankkonto zu senden." + +#: src/jade/tabs/kyc.jade:14 +msgid "Profile completion is only available to US residents." +msgstr "Die Identitätsprüfung steht nur für US-Bürger zur Verfügung." + +#: src/jade/tabs/kyc.jade:21 src/jade/tabs/trade.jade:285 msgid "Verifying your information. Please wait..." msgstr "Ihre Informationen werden verifiziert. Bitte warten" -#: src/jade/tabs/kyc.jade:18 +#: src/jade/tabs/kyc.jade:23 msgid "Your identity information has been verified." msgstr "Ihre Identitäts-Informationen wurden verifiziert." -#: src/jade/tabs/kyc.jade:20 +#: src/jade/tabs/kyc.jade:25 msgid "Your identity questions have been verified." msgstr "Ihre Identitäts-Fragen wurden verifiziert." -#: src/jade/tabs/kyc.jade:22 +#: src/jade/tabs/kyc.jade:27 msgid "" "Congratulations, you've verified your identity! You will now be redirected " "back to the instant deposit page." msgstr "Herzlichen Glückwunsch, Sie haben Ihre Identität erfolgreich bestätigt! Sie werden jetzt auf die Seite für Sofort-Einzahlungen zurückgeleitet." -#: src/jade/tabs/kyc.jade:24 +#: src/jade/tabs/kyc.jade:29 msgid "There was an error with your request. Please try again later." msgstr "Ein Fehler mit Ihrer Anfrage ist aufgetreten. Bitte versuchen Sie es später erneut." -#: src/jade/tabs/kyc.jade:26 +#: src/jade/tabs/kyc.jade:31 msgid "" "There was an error with your request. Make sure your phone number is valid " "and try again." msgstr "Bei Ihrer Anfrage ist ein Fehler aufgetreten. Stellen Sie sicher, dass Ihre Telefonnummer gültig ist, und versuchen Sie es erneut." -#: src/jade/tabs/kyc.jade:28 +#: src/jade/tabs/kyc.jade:33 msgid "Please check your verification code and try again." msgstr "Bitte prüfen Sie Ihren Verifizierungs-Code und versuchen Sie es erneut." -#: src/jade/tabs/kyc.jade:30 +#: src/jade/tabs/kyc.jade:35 msgid "" "There was an error while requesting the verification code. Please try again " "later." msgstr "Beim Anfordern des Verifizierungs-Codes ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut." -#: src/jade/tabs/kyc.jade:32 +#: src/jade/tabs/kyc.jade:37 msgid "" "We are unable to validate your identity information. Please check your " "information and try again." msgstr "Wir konnten Ihre Identitäts-Informationen nicht verifizieren. Bitte prüfen Sie Ihre Informationen und versuchen Sie es erneut." -#: src/jade/tabs/kyc.jade:34 +#: src/jade/tabs/kyc.jade:39 msgid "" "We are unable to validate your identity questions. Please check your answers" " and try again." msgstr "Wir konnten Ihre Identitäts-Fragen nicht verifizieren. Bitte prüfen Sie Ihre Antworten und versuchen Sie es erneut." -#: src/jade/tabs/kyc.jade:36 +#: src/jade/tabs/kyc.jade:41 +msgid "" +"Sorry, you've reached your maximum number of verification attempts. Please " +"try again in 24 hours." +msgstr "Leider haben Sie die maximale Anzahl Versuche zur Verifizierung erreicht. Bitte versuchen Sie es in 24 Stunden erneut." + +#: src/jade/tabs/kyc.jade:43 msgid "" "We can't verify your identity. Please contact us at support@ripple.com." msgstr "Wir können Ihre Identität nicht verifizieren. Bitte kontaktieren Sie uns unter support@ripple.com." -#: src/jade/tabs/kyc.jade:41 +#: src/jade/tabs/kyc.jade:48 msgid "Profile Completion" msgstr "Profil-Vollständigkeit" -#: src/jade/tabs/kyc.jade:45 +#: src/jade/tabs/kyc.jade:52 msgid "STEP 1: IDENTITY INFORMATION" msgstr "SCHRITT 1: IDENTITÄTS-INFORMATIONEN" -#: src/jade/tabs/kyc.jade:47 +#: src/jade/tabs/kyc.jade:54 msgid "STEP 2: IDENTITY QUESTIONS" msgstr "SCHRITT 2: IDENTITÄTS-FRAGEN" -#: src/jade/tabs/kyc.jade:49 +#: src/jade/tabs/kyc.jade:56 msgid "STEP 3: TWO-FACTOR AUTHENTICATION" msgstr "SCHRITT 3: ZWEI-FAKTOR-AUTHENTIFIZIERUNG" -#: src/jade/tabs/kyc.jade:56 +#: src/jade/tabs/kyc.jade:63 msgid "First Name" msgstr "Vorname" -#: src/jade/tabs/kyc.jade:60 +#: src/jade/tabs/kyc.jade:67 msgid "Last Name" msgstr "Nachname" -#: src/jade/tabs/kyc.jade:64 +#: src/jade/tabs/kyc.jade:71 msgid "Street Address" msgstr "Straße" -#: src/jade/tabs/kyc.jade:69 +#: src/jade/tabs/kyc.jade:76 msgid "City" msgstr "Ort" -#: src/jade/tabs/kyc.jade:73 +#: src/jade/tabs/kyc.jade:80 msgid "State" msgstr "Bundesland" -#: src/jade/tabs/kyc.jade:77 +#: src/jade/tabs/kyc.jade:84 msgid "ZIP" msgstr "PLZ" -#: src/jade/tabs/kyc.jade:81 +#: src/jade/tabs/kyc.jade:88 msgid "Date of Birth" msgstr "Geburtsdatum" -#: src/jade/tabs/kyc.jade:85 +#: src/jade/tabs/kyc.jade:92 msgid "Month{{1}}" msgstr "Monat{{1}}" -#: src/jade/tabs/kyc.jade:88 +#: src/jade/tabs/kyc.jade:95 msgid "Day{{1}}" msgstr "Tag{{1}}" -#: src/jade/tabs/kyc.jade:91 +#: src/jade/tabs/kyc.jade:98 msgid "Year{{1}}" msgstr "Jahr{{1}}" -#: src/jade/tabs/kyc.jade:104 +#: src/jade/tabs/kyc.jade:113 msgid "Continue to identity questions" msgstr "Weiter zu Identitäts-Fragen" -#: src/jade/tabs/kyc.jade:110 +#: src/jade/tabs/kyc.jade:114 src/jade/tabs/kyc.jade:129 +#: src/jade/tabs/kyc.jade:154 src/jade/tabs/kyc.jade:184 +#: src/jade/tabs/login.jade:17 +msgid "Verifying..." +msgstr "Überprüfen..." + +#: src/jade/tabs/kyc.jade:120 msgid "{{ q.question }}{{1}}" msgstr "{{ q.question }}{{1}}" -#: src/jade/tabs/kyc.jade:113 +#: src/jade/tabs/kyc.jade:123 msgid "{{ a.answer }}" msgstr "{{ a.answer }}" -#: src/jade/tabs/kyc.jade:116 +#: src/jade/tabs/kyc.jade:128 msgid "Continue to two-factor authentication" msgstr "Weiter zur Zwei-Faktor-Authentifizierung" -#: src/jade/tabs/kyc.jade:124 +#: src/jade/tabs/kyc.jade:137 msgid "Two-factor authentication provides extra security for your account." msgstr "Die Zwei-Faktor-Authentifizierung bietet zusätzlichen Schutz für Ihr Konto" -#: src/jade/tabs/kyc.jade:132 +#: src/jade/tabs/kyc.jade:145 msgid "" "Ripple Trade has partnered with Authy to provide better security for your " "account.By continuing, you agree to Authy's {{1:Terms of Service}}." msgstr "Ripple Trade arbeitet mit Authy zusammen, um bessere Sicherheit für Ihr Konto anzubieten. Indem Sie fortfahren, akzeptieren Sie die {{1:Nutzungsbedingungen}} von Authy." -#: src/jade/tabs/kyc.jade:138 +#: src/jade/tabs/kyc.jade:153 msgid "Verify phone number" msgstr "Telefonnummer verifizieren" -#: src/jade/tabs/kyc.jade:148 +#: src/jade/tabs/kyc.jade:164 msgid "change" msgstr "ändern" -#: src/jade/tabs/kyc.jade:152 +#: src/jade/tabs/kyc.jade:168 msgid "" "A verification code has been sent to +{{ currentCountryCode }} {{ " "phoneNumber }}." msgstr "Ein Verifizierungs-Code wurde an +{{ currentCountryCode }} {{ phoneNumber }} gesendet." -#: src/jade/tabs/kyc.jade:156 src/jade/tabs/login/form.jade:15 -#: src/jade/tabs/security.jade:88 +#: src/jade/tabs/kyc.jade:172 src/jade/tabs/login/form.jade:16 +#: src/jade/tabs/security.jade:97 msgid "Verification Code" msgstr "Verifizierungs-Code" -#: src/jade/tabs/login.jade:5 src/jade/tabs/login.jade:19 -#: src/jade/tabs/login.jade:83 +#: src/jade/tabs/kyc.jade:183 +msgid "Submit code" +msgstr "Code absenden" + +#: src/jade/tabs/login.jade:4 src/jade/tabs/migrate.jade:4 +#: src/jade/tabs/recover.jade:3 src/jade/tabs/register.jade:5 +#: src/jade/tabs/register.jade:137 src/jade/tabs/register.jade:184 +msgid "Welcome to Ripple Trade" +msgstr "Willkomen bei Ripple Trade" + +#: src/jade/tabs/login.jade:6 src/jade/tabs/migrate.jade:6 +#: src/jade/tabs/recover.jade:5 src/jade/tabs/register.jade:7 +#: src/jade/tabs/register.jade:139 src/jade/tabs/register.jade:186 +msgid "Trade hundreds of assets, from XRP to crypto to gold to fiat." +msgstr "Wechseln Sie Hunderte Aktiva, von XRP über Krypto und Gold bis zu Währungen." + +#: src/jade/tabs/login.jade:15 src/jade/tabs/login.jade:31 msgid "Log In" msgstr "Anmelden" -#: src/jade/tabs/login.jade:7 -msgid "Verifying..." -msgstr "Überprüfen..." - -#: src/jade/tabs/login.jade:8 +#: src/jade/tabs/login.jade:18 msgid "You have successfully verified your email address." msgstr "Sie haben erfolgreich Ihre E-Mail-Adresse verifiziert." -#: src/jade/tabs/login.jade:9 +#: src/jade/tabs/login.jade:19 msgid "" "Email verification token is invalid. It has either expired or has been " "resent. Please check your inbox for the most recent verification email." msgstr "E-Mail-Verifizierungs-Token ist ungültig. Es ist entweder abgelaufen oder ein neueres wurde gesendet. Bitte sehen Sie in Ihrem Posteingang nach, um die neuste Verifizierungs-E-Mail zu verwenden." -#: src/jade/tabs/login.jade:21 +#: src/jade/tabs/login.jade:30 +msgid "Logging in" +msgstr "Anmeldung läuft" + +#: src/jade/tabs/login.jade:34 msgid "Verify" msgstr "Verifizieren" -#: src/jade/tabs/login.jade:25 src/jade/tabs/login.jade:26 -#: src/jade/tabs/recover.jade:5 -msgid "Account Recovery" -msgstr "Konto-Wiederherstellung" - -#: src/jade/tabs/login.jade:28 src/jade/tabs/register.jade:93 +#: src/jade/tabs/login.jade:36 src/jade/tabs/register.jade:114 msgid "Already have a ripple.com/client account? {{1:Migrate}}" msgstr "Sie haben schon ein Konto bei ripple.com/client? {{1:Umstellen}}" -#: src/jade/tabs/login.jade:30 src/jade/tabs/migrate.jade:26 -msgid "New to {{productName}}? {{1:Sign Up}}" -msgstr "Neu bei {{productName}}? {{1:Registrieren}}" +#: src/jade/tabs/login.jade:41 src/jade/tabs/login.jade:42 +#: src/jade/tabs/recover.jade:9 +msgid "Account Recovery" +msgstr "Konto-Wiederherstellung" -#: src/jade/tabs/login.jade:37 +#: src/jade/tabs/login.jade:49 msgid "{{1:You're sending money to}}{{2}}." msgstr "{{1:Sie senden Geld an}}{{2}}." -#: src/jade/tabs/login.jade:41 +#: src/jade/tabs/login.jade:53 msgid "{{1:You're sending}}{{2}}{{3: to }}{{4}}." msgstr "{{1:Sie senden}}{{2}}{{3: an }}{{4}}." -#: src/jade/tabs/login.jade:51 +#: src/jade/tabs/login.jade:63 msgid "" "{{1:You're connecting to the gateway}}{{2}}{{3:for{{1}}}}{{4:with a limit " "of{{1}}}}." msgstr "{{1:Sie verbinden sich mit dem Gateway}}{{2}}{{3:für{{1}}}}{{4:mit einem Limit von{{1}}}}." -#: src/jade/tabs/login.jade:66 +#: src/jade/tabs/login.jade:78 msgid "{{1:You're adding}}{{2}}{{3:to your contacts list}}" msgstr "{{1:Sie fügen}}{{2}}{{3:zu Ihrer Kontaktliste hinzu}}" -#: src/jade/tabs/login.jade:84 +#: src/jade/tabs/login.jade:95 +msgid "{{1}} Log In" +msgstr "{{1}} Anmelden" + +#: src/jade/tabs/login.jade:98 msgid "You can confirm this transaction on the next page." msgstr "Sie können diese Transaktion auf der nächsten Seite bestätigen." -#: src/jade/tabs/login.jade:85 +#: src/jade/tabs/login.jade:99 msgid "New to {{productName}}? {{1:Create a wallet}}" msgstr "Neu bei {{productName}}? {{1:Brieftasche anlegen}}" -#: src/jade/tabs/login/form.jade:11 src/jade/tabs/security.jade:82 +#: src/jade/tabs/login/form.jade:12 src/jade/tabs/security.jade:91 msgid "" "Please enter the verification code from the SMS message sent to your device:" msgstr "Bitte geben Sie den Verifizierungs-Code aus der SMS an, die an Ihr Gerät gesendet wurde:" -#: src/jade/tabs/login/form.jade:12 src/jade/tabs/security.jade:83 +#: src/jade/tabs/login/form.jade:13 src/jade/tabs/security.jade:92 msgid "" "Please enter the verification code from the Authy app installed on your " "device:" msgstr "Bitte geben Sie den Verifizierungs-Code aus der Authy-App an, die auf Ihrem Gerät installiert ist:" -#: src/jade/tabs/login/form.jade:22 +#: src/jade/tabs/login/form.jade:23 msgid "Resend" msgstr "Erneut senden" -#: src/jade/tabs/login/form.jade:23 src/jade/tabs/security.jade:95 +#: src/jade/tabs/login/form.jade:24 src/jade/tabs/security.jade:105 msgid "Send Via SMS" msgstr "Via SMS senden" -#: src/jade/tabs/login/form.jade:29 +#: src/jade/tabs/login/form.jade:30 msgid "Remember me on this device for 30 days" msgstr "An diesem Gerät für 30 Tage angemeldet bleiben" -#: src/jade/tabs/migrate.jade:5 src/jade/tabs/register.jade:10 -#: src/jade/tabs/register.jade:116 src/jade/tabs/register.jade:159 +#: src/jade/tabs/migrate.jade:10 src/jade/tabs/register.jade:17 +#: src/jade/tabs/register.jade:142 src/jade/tabs/register.jade:189 msgid "Migrate" msgstr "Portieren" -#: src/jade/tabs/migrate.jade:6 +#: src/jade/tabs/migrate.jade:11 msgid "" "To begin migration, enter the name and passphrase used to encrypt your " "ripple.com/client wallet below. After migration, you will no longer be able " "to login on ripple.com/client." msgstr "Um mit der Umstellung zu beginnen, geben Sie unten den Namen und die Passphrase ein, mit der Ihre Brieftasche von ripple.com/client verschlüsselt ist. Nach der Umstellung können Sie sich nicht mehr bei ripple.com/client anmelden." -#: src/jade/tabs/migrate.jade:10 +#: src/jade/tabs/migrate.jade:15 msgid "Existing ripple.com/client Wallet name" msgstr "Name der bestehenden Brieftasche bei ripple.com/client" -#: src/jade/tabs/migrate.jade:13 -msgid "Passphrase" -msgstr "Passphrase" +#: src/jade/tabs/migrate.jade:18 +msgid "Passphrase" +msgstr "Passphrase" + +#: src/jade/tabs/migrate.jade:31 +msgid "Begin Migration" +msgstr "Umstellung beginnen" + +#: src/jade/tabs/migrate.jade:32 +msgid "New to {{productName}}? {{1:Sign Up}}" +msgstr "Neu bei {{productName}}? {{1:Registrieren}}" + +#: src/jade/tabs/migrate.jade:34 +msgid "Have a {{productName}} account? {{1:Log In}}" +msgstr "Sie haben ein Konto bei {{productName}}? {{1:Anmelden}}" + +#: src/jade/tabs/mxn.jade:38 +msgid "Mexican Peso Deposit" +msgstr "Depot für mexikanische Pesos" + +#: src/jade/tabs/mxn.jade:42 +msgid "Bitso (~bitso) {{1}}{{2}}" +msgstr "Bitso (~bitso) {{1}}{{2}}" + +#: src/jade/tabs/mxn.jade:47 +msgid "All countries except the US" +msgstr "Alle Länder außer den USA" + +#: src/jade/tabs/mxn.jade:58 +msgid "" +"Ripple Trade has partnered with Bitso to provide easy access to MXN (Mexican" +" Peso). By continuing, you agree with Bitso’s terms of service. Following " +"this action will enable Bitso to hold MXN on your behalf." +msgstr "Ripple Trade und Bitso sind Partner, um einfachen Zugriff auf MXN (mexikanische Pesos) anzubieten. Indem Sie fortfahren, akzeptieren Sie die Nutzungsbedingungen von Bitso. Bitso kann dann MXN in Ihrem Auftrag halten." + +#: src/jade/tabs/mxn.jade:80 +msgid "TO FUND/REDEEM MEXICAN PESO:" +msgstr "UM MEXIKANISCHE PESOS EIN- ODER AUSZUZAHLEN:" + +#: src/jade/tabs/mxn.jade:82 +msgid "Register or login at {{1}}to initiate deposits and withdrawals." +msgstr "Bei {{1}} registrieren oder anmelden, um Ein- und Auszahlungen einzurichten." + +#: src/jade/tabs/mxn.jade:86 +msgid "" +"A valid, non-US, state-issued ID (passport, driver's license, etc)." +msgstr "Einen gültigen, Nicht-US-, vom Staat ausgestellten Ausweis (Reisepass, Führerschein o.ä.)." + +#: src/jade/tabs/mxn.jade:87 +msgid "" +"Proof of address (utility bill or other type of bill that has your address " +"on it). Verification is required for peso deposits or withdrawals." +msgstr "Adressnachweis (Rechnung mit Ihrer Adresse). Für Ein- und Auszahlungen von Pesos ist eine Verifizierung erforderlich." + +#: src/jade/tabs/mxn.jade:89 +msgid "" +"To fund your Ripple account, see the below options. Once a balance is " +"deposited with Bitso, you can send it to your Ripple account using the Bitso" +" Dashboard." +msgstr "Um Guthaben auf Ihr Ripple-Konto einzuzahlen, siehe die Optionen unten. Sobald ein Betrag bei Bitso eingezahlt ist, können Sie ihn mithilfe des Bitso-Dashboards an Ihr Ripple-Konto senden" + +#: src/jade/tabs/mxn.jade:90 +msgid "" +"To withdraw from your Ripple account, click on the 'Redeem from Ripple' " +"button on the Bitso Dashboard." +msgstr "Zum Abheben von Ihrem Ripple-Konto klicken Sie im Bitso-Dashbard auf die Schaltfläche „Redeem from Ripple“." + +#: src/jade/tabs/mxn.jade:92 src/jade/tabs/usd.jade:89 +msgid "DEPOSIT OPTIONS" +msgstr "EINZAHLUNGSOPTIONEN" + +#: src/jade/tabs/mxn.jade:94 +msgid "Bitso accepts deposits by the following methods:" +msgstr "Bitso akzeptiert Einzahlungen mit folgenden Methoden:" + +#: src/jade/tabs/mxn.jade:96 src/jade/tabs/mxn.jade:106 +msgid "Bank Wire" +msgstr "Bank-Überweisung" + +#: src/jade/tabs/mxn.jade:97 src/jade/tabs/mxn.jade:107 +msgid "SPEI (Mexican instant inter-bank transfer)" +msgstr "SPEI (mexikanische Sofort-Überweisung zwischen Banken)" + +#: src/jade/tabs/mxn.jade:98 src/jade/tabs/mxn.jade:108 +msgid "Bitcoin" +msgstr "Bitcoin" + +#: src/jade/tabs/mxn.jade:99 +msgid "MXN Cash (at locations across Mexico)" +msgstr "MXN-Bargeld (an Standorten in ganz Mexiko)" + +#: src/jade/tabs/mxn.jade:100 +msgid "Pademobile wallet" +msgstr "Pademobile-Brieftasche" -#: src/jade/tabs/migrate.jade:25 -msgid "Begin Migration" -msgstr "Umstellung beginnen" +#: src/jade/tabs/mxn.jade:102 src/jade/tabs/usd.jade:99 +msgid "WITHDRAWAL OPTIONS" +msgstr "AUSZAHLUNGSOPTIONEN" -#: src/jade/tabs/migrate.jade:28 -msgid "Have a {{productName}} account? {{1:Log In}}" -msgstr "Sie haben ein Konto bei {{productName}}? {{1:Anmelden}}" +#: src/jade/tabs/mxn.jade:104 +msgid "Bitso offers withdrawals via the following methods:" +msgstr "Bitso bietet Auszahlungen über die folgenden Methoden an:" -#: src/jade/tabs/recover.jade:7 +#: src/jade/tabs/recover.jade:11 msgid "" "You can only recover your Ripple Trade account with a secret key. You will " "recover the account's Ripple name, contacts and other information." msgstr "Sie können Ihr Ripple Trade-Konto nur mit einem geheimen Schlüssel wiederherstellen. Wiederhergestellt werden der Ripple-Name des Kontos, die Kontakte und weitere Informationen." -#: src/jade/tabs/recover.jade:9 src/jade/tabs/recover.jade:28 +#: src/jade/tabs/recover.jade:13 src/jade/tabs/recover.jade:33 msgid "Ripple Name" msgstr "Ripple Name" -#: src/jade/tabs/recover.jade:14 +#: src/jade/tabs/recover.jade:18 msgid "Secret Key" msgstr "Geheimschlüssel" -#: src/jade/tabs/recover.jade:17 +#: src/jade/tabs/recover.jade:21 msgid "Unable to recover account." msgstr "Fehler beim Wiederherstellen des Kontos." -#: src/jade/tabs/recover.jade:22 src/jade/tabs/register.jade:74 +#: src/jade/tabs/recover.jade:27 src/jade/tabs/register.jade:95 msgid "Recover Account" msgstr "Konto wiederherstellen" -#: src/jade/tabs/recover.jade:24 src/jade/tabs/recover.jade:50 +#: src/jade/tabs/recover.jade:29 src/jade/tabs/recover.jade:56 msgid "Set Password" msgstr "Kennwort setzen" -#: src/jade/tabs/recover.jade:26 +#: src/jade/tabs/recover.jade:31 msgid "" "Your account was sucessfully recovered. Please re-encrypt your account with " "a new password." msgstr "Ihr Konto wurde erfolgreich wiederhergestellt. Bitte verschlüsseln Sie Ihr Konto neu, indem Sie ein neues Kennwort setzen." -#: src/jade/tabs/recover.jade:36 src/jade/tabs/register.jade:45 -#: src/jade/tabs/security.jade:119 +#: src/jade/tabs/recover.jade:41 src/jade/tabs/register.jade:62 +#: src/jade/tabs/security.jade:132 msgid "" "Your password is weak. It does not contain numbers and symbols or it is too " "short." msgstr "Ihr Kennwort ist schwach. Es enthält keine Ziffern oder Sonderzeichen oder ist zu kurz." -#: src/jade/tabs/recover.jade:38 src/jade/tabs/register.jade:47 -#: src/jade/tabs/security.jade:121 +#: src/jade/tabs/recover.jade:43 src/jade/tabs/register.jade:65 +#: src/jade/tabs/security.jade:134 msgid "" "Your Ripple name and password cannot match. Please create a new password." msgstr "Ihr Ripple-Name und Ihr Kennwort dürfen nicht identisch sein. Bitte erstellen Sie ein neues Kennwort." -#: src/jade/tabs/recover.jade:45 +#: src/jade/tabs/recover.jade:45 src/jade/tabs/register.jade:67 +#: src/jade/tabs/security.jade:136 +msgid "Confirm password" +msgstr "Kennwort bestätigen" + +#: src/jade/tabs/recover.jade:48 src/jade/tabs/register.jade:71 +#: src/jade/tabs/security.jade:139 +msgid "Passwords do not match" +msgstr "Die Passwörter stimmen nicht überein" + +#: src/jade/tabs/recover.jade:50 msgid "Unable to change your account password." msgstr "Fehler beim Ändern Ihres Konto-Kennworts." -#: src/jade/tabs/recover.jade:49 +#: src/jade/tabs/recover.jade:55 msgid "Updating..." msgstr "Wird aktualisiert…" -#: src/jade/tabs/recover.jade:51 +#: src/jade/tabs/recover.jade:57 msgid "Remember your password? {{1:Log In}}" msgstr "Sie erinnern sich an Ihr Kennwort? {{1:Anmelden}}" -#: src/jade/tabs/register.jade:5 -msgid "" -"Ripple Trade is the only platform where you can trade between stores of " -"value spanning fiat, crypto, precious metals and more." -msgstr "Ripple Trade ist die einzige Plattform, bei der Sie Wertspeicher wie Rechengeld, verschlüsselten Währungen, wertvollen Metallen und mehr, gegeneinander wechseln können." - -#: src/jade/tabs/register.jade:9 src/jade/tabs/register.jade:90 -#: src/jade/tabs/register.jade:115 src/jade/tabs/register.jade:158 +#: src/jade/tabs/register.jade:13 src/jade/tabs/register.jade:109 +#: src/jade/tabs/register.jade:141 src/jade/tabs/register.jade:188 msgid "Sign Up" msgstr "Registrieren" -#: src/jade/tabs/register.jade:12 src/jade/tabs/register.jade:14 -#: src/jade/tabs/register.jade:16 src/jade/tabs/register.jade:120 -#: src/jade/tabs/register.jade:122 src/jade/tabs/register.jade:161 -#: src/jade/tabs/register.jade:163 src/jade/tabs/register.jade:165 +#: src/jade/tabs/register.jade:19 src/jade/tabs/register.jade:21 +#: src/jade/tabs/register.jade:23 src/jade/tabs/register.jade:146 +#: src/jade/tabs/register.jade:148 src/jade/tabs/register.jade:191 +#: src/jade/tabs/register.jade:193 src/jade/tabs/register.jade:195 msgid "Step {{1}}" msgstr "Schritt {{1}}" -#: src/jade/tabs/register.jade:19 +#: src/jade/tabs/register.jade:26 msgid "Create Ripple name" msgstr "Ripple-Namen erstellen" -#: src/jade/tabs/register.jade:20 +#: src/jade/tabs/register.jade:27 msgid "" "Please choose a Ripple name below. You will use this Ripple name to login to" " Ripple Trade, so remember it! Ripple names are unique and public, like your" " current Ripple address. {{1}}" msgstr "Bitte wählen Sie unten einen Ripple-Namen. Sie verwenden diesen Ripple-Namen, um sich bei Ripple Trade anzumelden, merken Sie ihn sich also! Ripple-Namen sind eindeutig und öffentlich, so wie Ihre aktuelle Ripple-Adresse. {{1}}" -#: src/jade/tabs/register.jade:21 +#: src/jade/tabs/register.jade:28 msgid "Learn More" msgstr "Mehr erfahren" -#: src/jade/tabs/register.jade:36 +#: src/jade/tabs/register.jade:41 +msgid "Reserved for {{usernameReservedFor}}" +msgstr "Reserviert für {{usernameReservedFor}}" + +#: src/jade/tabs/register.jade:43 +msgid "" +"This name belongs to a high-traffic website and has been reserved to prevent" +" phishing." +msgstr "Dieser Name gehört zu einer bekannten Website und wurde reserviert, um Phishing zu verhindern." + +#: src/jade/tabs/register.jade:49 msgid "You can only use the following characters: a-z, 0-9 and hyphens (-)" msgstr "Sie können nur die folgenden Zeichen verwenden: a-z, 0-9 und Bindestrich (-)" -#: src/jade/tabs/register.jade:39 +#: src/jade/tabs/register.jade:55 msgid "Cannot use hyphens in a row (--)" msgstr "Aufeinanderfolgende Bindestriche (--) sind nicht erlaubt" -#: src/jade/tabs/register.jade:60 +#: src/jade/tabs/register.jade:80 msgid "Email address is invalid" msgstr "Ihre E-Mail-Adresse ist ungültig" -#: src/jade/tabs/register.jade:62 src/jade/tabs/security.jade:138 +#: src/jade/tabs/register.jade:82 src/jade/tabs/security.jade:151 msgid "Secret key" msgstr "Geheimer Schlüssel" -#: src/jade/tabs/register.jade:63 src/jade/tabs/send.jade:50 -#: src/jade/tabs/trade.jade:331 src/jade/tabs/trade.jade:337 +#: src/jade/tabs/register.jade:83 src/jade/tabs/send.jade:43 +#: src/jade/tabs/trade.jade:441 msgid "hide" msgstr "verstecken" -#: src/jade/tabs/register.jade:67 +#: src/jade/tabs/register.jade:88 msgid "Secret Account Key is invalid" msgstr "Geheimer Konto-Schlüssel ist ungültig" -#: src/jade/tabs/register.jade:69 +#: src/jade/tabs/register.jade:90 msgid "" "The account ~{{1}}{{2}} has already been created using this secret key." msgstr "Das Konto ~{{1}}{{2}} wurde bereits mit diesem geheimen Schlüssel angelegt." -#: src/jade/tabs/register.jade:75 -msgid "Need to use your secret key? {{1}}" -msgstr "Sie müssen Ihren geheimen Schlüssel verwenden? {{1}}" - -#: src/jade/tabs/register.jade:77 -msgid "Use key" -msgstr "Schlüssel verwenden" - -#: src/jade/tabs/register.jade:80 -msgid "I agree to the {{productName}} {{1:end-user license agreement}}" -msgstr "Ich akzeptiere den {{1:Endbenutzer-Lizenzvertrag}} von {{productName}}" +#: src/jade/tabs/register.jade:98 +msgid "I agree to the {{productName}} {{1:Terms of Use}}" +msgstr "Ich akzeptiere die {{1:Nutzungsbedingungen}} von {{productName}}" -#: src/jade/tabs/register.jade:83 +#: src/jade/tabs/register.jade:101 msgid "" "Please see our {{1}} to see how we collect, use and share information about " "you" msgstr "Bitte lesen Sie unsere {{1}}, um zu erfahren, wie wir Informationen über Sie sammeln, verwenden und weitergeben" -#: src/jade/tabs/register.jade:91 +#: src/jade/tabs/register.jade:110 msgid "Migrate Account" msgstr "Konto portieren" -#: src/jade/tabs/register.jade:100 +#: src/jade/tabs/register.jade:111 +msgid "Need to use your secret key? {{1}}" +msgstr "Sie müssen Ihren geheimen Schlüssel verwenden? {{1}}" + +#: src/jade/tabs/register.jade:113 +msgid "Use key" +msgstr "Schlüssel verwenden" + +#: src/jade/tabs/register.jade:121 msgid "An error occurred during registration. Please try again later." msgstr "Während der Registrierung ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut." -#: src/jade/tabs/register.jade:101 +#: src/jade/tabs/register.jade:122 msgid "The reported error was: {{1}}" msgstr "Der gemeldete Fehler war: {{1}}" -#: src/jade/tabs/register.jade:109 +#: src/jade/tabs/register.jade:131 msgid "" "There is already a wallet using this username, please choose a different " "username and try again." msgstr "Es existiert schon eine Brieftasche mit diesem Nutzernamen, bitte wählen Sie einen anderen Nutzernamen und versuchen Sie es erneut." -#: src/jade/tabs/register.jade:124 +#: src/jade/tabs/register.jade:150 msgid "" "By proceeding, you understand that Ripple Trade does not provide a password " "or secret key recovery mechanism. If you forget your Ripple name/password " "and secret key, you will be unable to access this Ripple account." msgstr "Indem Sie fortfahren, verstehen Sie, dass Ripple Trade keinen Mechanismus zur Wiederherstellung Ihres Kennworts oder Ihres geheimen Schlüssels bereitstellt. Falls Sie sowohl Ihren Ripple-Namen/Ihr Kennwort als auch Ihren geheimen Schlüssel vergessen, können Sie nicht mehr auf dieses Ripple-Konto zugreifen." -#: src/jade/tabs/register.jade:129 +#: src/jade/tabs/register.jade:155 msgid "" "You are now migrating your account- meaning you'll no longer be able to " "access your account from ripple.com/client. You will retain all of your " @@ -1785,907 +2531,1123 @@ msgid "" "continue your migration." msgstr "Sie stellen Ihr Konto jetzt um. Das bedeutet, dass Sie nicht länger über ripple.com/client darauf zugreifen können. Sämtliche Kontostände, Kontakte und der Kontoverlauf bleiben erhalten. Ihr Konto verwendet den gleichen geheimen Schlüssel wie zuvor. Wenn Sie Ihren geheimen Schlüssel bereits gesichert haben, fahren Sie bitte mit der Umstellung fort." -#: src/jade/tabs/register.jade:136 +#: src/jade/tabs/register.jade:162 msgid "" "The secret key unlocks access to all your account funds in the event you " "lose your Ripple name or password. Please write it down and store it " "somewhere private and safe. {{1:Read more}} about keys and wallet safety." msgstr "Der geheime Schlüssel entsperrt den Zugriff auf sämtliches Konto-Guthaben für den Fall, dass Sie Ihren Ripple-Namen oder Ihr Kennwort verlieren. Bitte schreiben Sie ihn auf und bewahren ihn an einem privaten und sicheren Ort auf. {{1:Mehr erfahren}} über Schlüssel und die Sicherheit der Brieftasche." -#: src/jade/tabs/register.jade:141 +#: src/jade/tabs/register.jade:167 msgid "" "If you have not saved your secret key, please write it down and store it " "somewhere private and safe. In the event you lose your Ripple name or " "password, you can use this secret key to recover your funds." msgstr "Falls Sie Ihren geheimen Schlüssel nicht gesichert haben, notieren Sie ihn und bewahren Sie ihn an einem privaten und sicheren Ort auf. Für den Fall, dass Sie Ihren Ripple-Namen oder Ihr Kennwort verlieren, können Sie diesen geheimen Schlüssel nutzen, um Ihr Guthaben wiederherzustellen" -#: src/jade/tabs/register.jade:154 +#: src/jade/tabs/register.jade:176 +msgid "Show secret key" +msgstr "Sicherheitsschlüssel anzeigen" + +#: src/jade/tabs/register.jade:177 +msgid "Hide secret key" +msgstr "Sicherheitsschlüssel verbergen" + +#: src/jade/tabs/register.jade:180 msgid "Continue to email verification" msgstr "Weiter zur E-Mail-Bestätigung" -#: src/jade/tabs/register.jade:167 +#: src/jade/tabs/register.jade:197 msgid "" "We’ve sent an email to {{1}}. To complete registration, click the link in " "the email." msgstr "Wir haben eine E-Mail an {{1}} gesendet. Um die Registrierung abzuschließen, klicken Sie auf den Link in der E-Mail." -#: src/jade/tabs/register.jade:170 +#: src/jade/tabs/register.jade:200 msgid "Email token has been resent." msgstr "E-Mail-Token wurde erneut gesendet." -#: src/jade/tabs/register.jade:173 +#: src/jade/tabs/register.jade:203 msgid "Email Address:" msgstr "E-Mail-Adresse:" -#: src/jade/tabs/register.jade:178 +#: src/jade/tabs/register.jade:210 msgid "Re-send Email" msgstr "E-Mail erneut senden" -#: src/jade/tabs/security.jade:5 +#: src/jade/tabs/security.jade:7 msgid "Active Session Timeout" msgstr "Zeitüberschreitung der aktiven Sitzung" -#: src/jade/tabs/security.jade:6 +#: src/jade/tabs/security.jade:8 msgid "" "To view or edit your security settings, you must currently have an active " "session." msgstr "Um Ihre Sicherheits-Einstellungen anzuzeigen oder zu bearbeiten, müssen Sie über eine momentan aktive Sitzung verfügen." -#: src/jade/tabs/security.jade:13 +#: src/jade/tabs/security.jade:16 msgid "Restore Session" msgstr "Sitzung wiederherstellen" -#: src/jade/tabs/security.jade:22 +#: src/jade/tabs/security.jade:25 msgid "Your Ripple password has been changed, please login again" msgstr "Ihr Ripple-Kennwort wurde geändert, bitte melden Sie sich erneut an." -#: src/jade/tabs/security.jade:24 +#: src/jade/tabs/security.jade:27 msgid "Couldn't change your Ripple password, please try again later." msgstr "Fehler beim Ändern Ihres Ripple-Kennworts, bitte versuchen Sie es später erneut." -#: src/jade/tabs/security.jade:27 +#: src/jade/tabs/security.jade:30 msgid "Changing your Ripple password..." msgstr "Ihr Ripple-Kennwort wird geändert" -#: src/jade/tabs/security.jade:28 +#: src/jade/tabs/security.jade:31 msgid "Your Ripple password has been changed successfully." msgstr "Ihr Ripple-Kennwort wurde erfolgreich geändert." -#: src/jade/tabs/security.jade:29 +#: src/jade/tabs/security.jade:32 msgid "Unable to load Two-factor authentication settings." msgstr "Fehler beim Laden der Einstellungen für die Zwei-Faktor-Authentifizierung." -#: src/jade/tabs/security.jade:30 +#: src/jade/tabs/security.jade:33 msgid "Error saving Two-factor authentication settings." msgstr "Fehler beim Speichern der Einstellungen für die Zwei-Faktor-Authentifizierung." -#: src/jade/tabs/security.jade:31 +#: src/jade/tabs/security.jade:34 msgid "The verification code is invalid." msgstr "Der Verifizierungs-Code ist ungültig." -#: src/jade/tabs/security.jade:32 +#: src/jade/tabs/security.jade:36 msgid "Two-factor authentication has been successfully enabled." msgstr "Die Zwei-Faktor-Authentifizierung wurde erfolgreich aktiviert." -#: src/jade/tabs/security.jade:33 +#: src/jade/tabs/security.jade:37 msgid "Two-factor authentication has been successfully disabled." msgstr "Die Zwei-Faktor-Authentifizierung wurde erfolgreich deaktiviert." +#: src/jade/tabs/security.jade:38 +msgid "Password protection has been successfully enabled." +msgstr "Der Kennwortschutz wurde erfolgreich aktiviert." + #: src/jade/tabs/security.jade:39 +msgid "Password protection has been successfully disabled." +msgstr "Der Kennwortschutz wurde erfolgreich deaktiviert." + +#: src/jade/tabs/security.jade:45 msgid "Security settings" msgstr "Sicherheits-Einstellungen" -#: src/jade/tabs/security.jade:44 +#: src/jade/tabs/security.jade:51 msgid "Loading Two-factor authentication settings..." msgstr "Einstellungen für die Zwei-Faktor-Authentifizierung werden geladen" -#: src/jade/tabs/security.jade:47 +#: src/jade/tabs/security.jade:55 msgid "Enabled" msgstr "Aktiviert" -#: src/jade/tabs/security.jade:48 +#: src/jade/tabs/security.jade:56 msgid "Disabled" msgstr "Deaktiviert" -#: src/jade/tabs/security.jade:50 +#: src/jade/tabs/security.jade:58 msgid "disable" msgstr "deaktivieren" -#: src/jade/tabs/security.jade:52 +#: src/jade/tabs/security.jade:60 msgid "enable" msgstr "aktivieren" -#: src/jade/tabs/security.jade:58 +#: src/jade/tabs/security.jade:66 msgid "" "Authy is providing two-factor authentication for Ripple Trade. To enable " "two-factor authentication, you must share some information with Authy." msgstr "Authy stellt Zwei-Faktor-Authentifizierung für Ripple Trade bereit. Um die Zwei-Faktor-Authentifizierung zu aktivieren, müssen Sie einige Informationen für Authy freigeben." -#: src/jade/tabs/security.jade:61 +#: src/jade/tabs/security.jade:69 msgid "- Your email address:" msgstr "- Ihre E-Mail-Adresse:" -#: src/jade/tabs/security.jade:64 +#: src/jade/tabs/security.jade:72 msgid "- Your phone number:" msgstr "- Ihre Telefonnummer:" -#: src/jade/tabs/security.jade:66 +#: src/jade/tabs/security.jade:74 msgid "By proceeding, you agree to the Authy {{1: terms of service.}}" msgstr "Indem Sie fortfahren, akzeptieren Sie die Authy-{{1: Nutzungsbedingungen}}" -#: src/jade/tabs/security.jade:70 +#: src/jade/tabs/security.jade:78 msgid "Share" msgstr "Freigeben" -#: src/jade/tabs/security.jade:75 +#: src/jade/tabs/security.jade:84 msgid "Saving settings..." msgstr "Einstellungen werden gespeichert..." -#: src/jade/tabs/security.jade:76 +#: src/jade/tabs/security.jade:85 msgid "Disabling Two-factor authentication..." msgstr "Zwei-Faktor-Authentifizierung wird deaktiviert..." -#: src/jade/tabs/security.jade:77 +#: src/jade/tabs/security.jade:86 msgid "Enabling Two-factor authentication..." msgstr "Zwei-Faktor-Authentifizierung wird aktiviert..." -#: src/jade/tabs/security.jade:94 +#: src/jade/tabs/security.jade:104 msgid "Resend Code" msgstr "Code erneut senden" -#: src/jade/tabs/security.jade:99 +#: src/jade/tabs/security.jade:110 msgid "Enable" msgstr "Aktivieren" -#: src/jade/tabs/security.jade:103 +#: src/jade/tabs/security.jade:114 msgid "Ripple password" msgstr "Ripple-Kennwort" -#: src/jade/tabs/security.jade:116 +#: src/jade/tabs/security.jade:129 msgid "New password" msgstr "Neues Kennwort" -#: src/jade/tabs/security.jade:140 +#: src/jade/tabs/security.jade:153 msgid "" "Your secret key unlocks access to your account funds. Please write it down " "and store it somewhere private and safe. In the event you lose your Ripple " "name or password, you can use this secret key to recover your funds." msgstr "Ihr geheimer Schlüssel entsperrt den Zugriff auf Ihr Konto-Guthaben. Bitte notieren Sie ihn sich und bewahren Sie ihn an einem privaten und sicheren Ort auf. Für den Fall, dass Sie Ihren Ripple-Namen oder Ihr Kennwort verlieren, können Sie diesen sicheren Schlüssel verwenden, um Ihr Guthaben wiederherzustellen." -#: src/jade/tabs/security.jade:150 +#: src/jade/tabs/security.jade:165 msgid "Password protection for transactions" msgstr "Kennwortschutz für Transaktionen" -#: src/jade/tabs/security.jade:153 +#: src/jade/tabs/security.jade:168 msgid "" "If you turn off password requests, you’ll still need to enter your password " "after each page refresh." msgstr "Wenn Sie Kennwort-Anfragen deaktivieren, müssen Sie Ihr Kennwort trotzdem noch nach jedem Neu-Laden der Seite eingeben." -#: src/jade/tabs/security.jade:161 +#: src/jade/tabs/security.jade:176 msgid "Yes" msgstr "Ja" -#: src/jade/tabs/security.jade:162 +#: src/jade/tabs/security.jade:177 msgid "No" msgstr "Nein" +#: src/jade/tabs/security.jade:192 +msgid "Delete Ripple Trade account" +msgstr "Ripple-Trade-Konto löschen" + +#: src/jade/tabs/security.jade:194 +msgid "" +"This deletes your Ripple Trade account. You will no longer be able to login " +"to Ripple Trade and your account data will be deleted. However, you can " +"still access your funds using your secret key." +msgstr "Damit wird Ihr Ripple-Trade-Konto gelöscht. Sie können sich dann nicht mehr bei Ripple Trade anmelden, und die Daten in Ihrem Konto werden gelöscht. Über Ihren geheimen Schlüssel haben Sie aber weiterhin Zugriff auf Ihr Guthaben." + #: src/jade/tabs/send.jade:12 msgid "You have to be funded before you can send money" msgstr "Sie müssen finanziert werden, bevor Sie in der Lage sind, Geld zu senden" -#: src/jade/tabs/send.jade:19 src/jade/tabs/send.jade:32 +#: src/jade/tabs/send.jade:25 msgid "Recipient" msgstr "Empfänger" -#: src/jade/tabs/send.jade:24 src/jade/tabs/send.jade:37 +#: src/jade/tabs/send.jade:30 msgid "Please enter a recipient." msgstr "Bitte geben Sie einen Empfänger an." -#: src/jade/tabs/send.jade:26 +#: src/jade/tabs/send.jade:32 msgid "" "Recipient should be a Ripple name, a contact, or Ripple/Bitcoin address." msgstr "Empfänger sollte ein Ripple-Name, ein Kontakt, oder eine Ripple-/Bitcoin-Adresse sein." -#: src/jade/tabs/send.jade:28 src/jade/tabs/send.jade:41 +#: src/jade/tabs/send.jade:34 msgid "This email address is not Ripple-enabled." msgstr "Diese Email-Adresse ist nicht für Ripple aktiviert." -#: src/jade/tabs/send.jade:39 -msgid "Recipient should be a contact or Ripple/Bitcoin address." -msgstr "Empfänger sollte ein Kontakt oder eine Ripple-/Bitcoin-Adresse sein." - -#: src/jade/tabs/send.jade:45 +#: src/jade/tabs/send.jade:38 msgid "Show destination tag" msgstr "Zielmarker anzeigen" -#: src/jade/tabs/send.jade:54 +#: src/jade/tabs/send.jade:47 msgid "Destination cannot be blank." msgstr "Ziel darf nicht leer sein." -#: src/jade/tabs/send.jade:55 +#: src/jade/tabs/send.jade:48 msgid "" "Recipient requires a destination tag to be specified for the transaction. If" " you don't know the destination tag, please contact them before doing a " "transaction." msgstr "Der Empfänger verlangt einen Zielmarker für diese Transaktion. Falls Sie den korrekten Zielmarker nicht wissen, kontaktieren Sie bitte den Empfänger bevor Sie Geld senden." -#: src/jade/tabs/send.jade:60 +#: src/jade/tabs/send.jade:53 msgid "Source tag" msgstr "Ursprungsmarker" -#: src/jade/tabs/send.jade:63 +#: src/jade/tabs/send.jade:56 msgid "Invalid source tag" msgstr "Falscher Ursprungsmarker" -#: src/jade/tabs/send.jade:75 +#: src/jade/tabs/send.jade:59 +msgid "Invoice ID" +msgstr "Rechnungskennung" + +#: src/jade/tabs/send.jade:62 +msgid "Invoice ID must not be more than 64 characters long." +msgstr "Rechnungskennung darf nicht mehr als 64 Zeichen lang sein." + +#: src/jade/tabs/send.jade:77 msgid "Recipient will receive" msgstr "Empfänger erhält" -#: src/jade/tabs/send.jade:86 +#: src/jade/tabs/send.jade:88 msgid "{{send.recipient | rpcontactname}} can't receive this currency." msgstr "{{send.recipient | rpcontactname}} kann diese Währung nicht empfangen." -#: src/jade/tabs/send.jade:90 +#: src/jade/tabs/send.jade:92 src/jade/tabs/trust.jade:102 msgid "Amount must be greater than zero." msgstr "Die Menge muss größer als Null sein." -#: src/jade/tabs/send.jade:91 +#: src/jade/tabs/send.jade:93 msgid "" -"This transaction exceeds your balance, you can send a max. of " -"{{account.max_spend | rpamount:{rel_precision: 0} }} XRP" -msgstr "Diese Transaktion überschreitet Ihr Guthaben, Sie können maximal {{account.max_spend | rpamount:{rel_precision: 0} }} XRP verwenden" +"You are either trying to send too little or too much XRP.Minimum amount is " +"0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "Sie versuchen entweder zu wenig oder zu viel XRP zu senden. Der Minimumbetrag ist 0,000001 XRP und der Maximumbetrag 100 Milliarden XRP." -#: src/jade/tabs/send.jade:94 +#: src/jade/tabs/send.jade:97 msgid "" "Recipient does not allow XRP payments. Are you sure you want to send XRP " "anyway?" msgstr "Der Empfänger erlaubt keine XRP-Zahlungen. Sind Sie sicher, dass Sie trotzdem XRP senden möchten?" -#: src/jade/tabs/send.jade:96 +#: src/jade/tabs/send.jade:99 msgid "" "{{send.recipient | rpcontactname}}trusts you for {{send.trust_limit | " "rpamount}} {{send.trust_limit | rpcurrency}}." msgstr "{{send.recipient | rpcontactname}}vertraut Ihnen über {{send.trust_limit | rpamount}} {{send.trust_limit | rpcurrency}}." -#: src/jade/tabs/send.jade:100 +#: src/jade/tabs/send.jade:103 msgid "Send XRP" msgstr "XRP senden" -#: src/jade/tabs/send.jade:104 +#: src/jade/tabs/send.jade:107 msgid "" "Destination account is unfunded; send at least {{send.xrp_deficiency | " "rpamount}} XRP to fund it.{{1}}" msgstr "Das Zielkonto wurde noch nicht finanziert; Sie müssen mindestens {{send.xrp_deficiency | rpamount}} XRP senden um es zu finanzieren.{{1}}" -#: src/jade/tabs/send.jade:109 +#: src/jade/tabs/send.jade:114 msgid "Checking" msgstr "Untersuche" -#: src/jade/tabs/send.jade:111 +#: src/jade/tabs/send.jade:117 msgid "Analyzing address" msgstr "Analysiere adresse" -#: src/jade/tabs/send.jade:113 +#: src/jade/tabs/send.jade:120 msgid "Scanning accepted currencies" msgstr "Akzeptierte Währungen werden gesucht" -#: src/jade/tabs/send.jade:115 +#: src/jade/tabs/send.jade:123 msgid "Requesting quote" msgstr "Kosten abfragen" -#: src/jade/tabs/send.jade:117 +#: src/jade/tabs/send.jade:126 msgid "Calculating paths" msgstr "Berechne Pfade" -#: src/jade/tabs/send.jade:119 +#: src/jade/tabs/send.jade:129 msgid "Calculating alternatives" msgstr "Berechne Alternativen" -#: src/jade/tabs/send.jade:121 +#: src/jade/tabs/send.jade:130 msgid "" "You cannot send {{send.amount}} {{send.currency}} to {{send.recipient}}. " "Either your account has insufficient funds, or {{send.recipient}} doesn't " "accept {{send.currency}}." msgstr "Sie können nicht {{send.amount}} {{send.currency}} an {{send.recipient}} senden. Entweder verfügt Ihr Konto nicht über genügend Guthaben, oder {{send.recipient}} akzeptiert {{send.currency}} nicht." -#: src/jade/tabs/send.jade:125 +#: src/jade/tabs/send.jade:134 msgid "" "You cannot send {{send.amount}} {{send.currency}} to{{send.recipient}}. Your" " account has insufficient funds." msgstr "Sie können nicht {{send.amount}} {{send.currency}} an{{send.recipient}} senden. Ihr Konto hat nicht genug Guthaben." -#: src/jade/tabs/send.jade:128 +#: src/jade/tabs/send.jade:137 msgid "There are no valid currency choices for this destination." msgstr "Es gibt keine gültigen Währungen für dieses Ziel." -#: src/jade/tabs/send.jade:130 +#: src/jade/tabs/send.jade:139 msgid "Error while retrieving quote for outbound payment. {{1}}" msgstr "Fehler beim Empfangen der Quote für ausgehende Zahlung. {{1}}" -#: src/jade/tabs/send.jade:139 +#: src/jade/tabs/send.jade:148 msgid "You can send" msgstr "Sie könne folgendes senden" -#: src/jade/tabs/send.jade:141 +#: src/jade/tabs/send.jade:150 msgid "Or you can send" msgstr "Oder Sie senden folgendes" -#: src/jade/tabs/send.jade:155 +#: src/jade/tabs/send.jade:164 msgid "Send {{ alt.amount | rpcurrency }} {{1}}" msgstr "{{ alt.amount | rpcurrency }} senden {{1}}" -#: src/jade/tabs/send.jade:170 +#: src/jade/tabs/send.jade:181 msgid "Ripple is calculating a path for your payment." msgstr "Ripple berechnet den Pfad für Ihre Zahlung." -#: src/jade/tabs/send.jade:176 +#: src/jade/tabs/send.jade:186 msgid "You are sending {{1}} to" msgstr "Sie senden {{1}} an" -#: src/jade/tabs/send.jade:184 +#: src/jade/tabs/send.jade:194 msgid "Destination tag: {{send.dt}}" msgstr "Zielmarker: {{send.dt}}" -#: src/jade/tabs/send.jade:185 +#: src/jade/tabs/send.jade:195 msgid "They will receive" msgstr "Der Empfänger erhält" -#: src/jade/tabs/send.jade:188 +#: src/jade/tabs/send.jade:198 msgid "You will pay at most" msgstr "Sie werden maximal folgendes bezahlen" -#: src/jade/tabs/send.jade:194 +#: src/jade/tabs/send.jade:204 msgid "Are you sure?" msgstr "Sind Sie sicher?" -#: src/jade/tabs/send.jade:200 +#: src/jade/tabs/send.jade:210 msgid "Password required to unlock wallet" msgstr "Kennwort zum Entsperren der Brieftasche erforderlich" -#: src/jade/tabs/send.jade:224 src/jade/tabs/send.jade:252 +#: src/jade/tabs/send.jade:234 src/jade/tabs/send.jade:266 msgid "Contact saved!" msgstr "Kontakt gespeichert!" -#: src/jade/tabs/send.jade:226 src/jade/tabs/send.jade:254 +#: src/jade/tabs/send.jade:236 src/jade/tabs/send.jade:268 msgid "Add this address to contacts" msgstr "Füge diese Adresse der Kontaktliste hinzu" -#: src/jade/tabs/send.jade:230 src/jade/tabs/send.jade:258 +#: src/jade/tabs/send.jade:242 src/jade/tabs/send.jade:274 msgid "Name this user" msgstr "Name des Users" -#: src/jade/tabs/send.jade:236 src/jade/tabs/send.jade:265 -#: src/jade/tabs/trust.jade:283 +#: src/jade/tabs/send.jade:246 src/jade/tabs/send.jade:278 +msgid "This contact already exists, please choose another name." +msgstr "Dieser Kontakt existiert bereits, bitte wählen Sie einen anderen Namen." + +#: src/jade/tabs/send.jade:250 src/jade/tabs/send.jade:283 +#: src/jade/tabs/trust.jade:233 msgid "Saving..." msgstr "Speichert..." -#: src/jade/tabs/send.jade:241 src/jade/tabs/send.jade:271 +#: src/jade/tabs/send.jade:255 src/jade/tabs/send.jade:289 msgid "Send another payment" msgstr "Eine weitere Zahlung durchführen" -#: src/jade/tabs/settings/navbar.jade:3 -msgid "Advanced" -msgstr "Erweitert" +#: src/jade/tabs/settings/navbar.jade:2 +msgid "Security" +msgstr "Sicherheit" -#: src/jade/tabs/trade.jade:10 -msgid "Loading order book..." -msgstr "Orderbuch wird geladen…" +#: src/jade/tabs/settingstrade.jade:12 +msgid "Trade settings" +msgstr "Wechsel-Einstellungen" -#: src/jade/tabs/trade.jade:23 +#: src/jade/tabs/settingstrade.jade:14 +msgid "Trade currency pairs" +msgstr "Wechsel-Währungspaare" + +#: src/jade/tabs/trade.jade:12 src/jade/tabs/trade.jade:451 +msgid "Loading Order Book" +msgstr "Orderbuch wird geladen" + +#: src/jade/tabs/trade.jade:31 src/jade/tabs/widgets/markets.jade:24 msgid "flip" msgstr "umschalten" -#: src/jade/tabs/trade.jade:27 src/jade/tabs/trade.jade:35 -msgid "Base currency" +#: src/jade/tabs/trade.jade:34 +msgid "add pair" +msgstr "Paar hinzufügen" + +#: src/jade/tabs/trade.jade:37 +msgid "edit pairs" +msgstr "Paare bearbeiten" + +#: src/jade/tabs/trade.jade:41 +msgid "Base Currency" msgstr "Basiswährung" -#: src/jade/tabs/trade.jade:30 src/jade/tabs/trade.jade:41 -msgid "Change gateway" -msgstr "Gateway ändern" +#: src/jade/tabs/trade.jade:44 +msgid "Base Gateway" +msgstr "Basisgateway" -#: src/jade/tabs/trade.jade:38 src/jade/tabs/trade.jade:46 -msgid "Counter currency" +#: src/jade/tabs/trade.jade:49 +msgid "Counter Currency" msgstr "Gegenwährung" -#: src/jade/tabs/trade.jade:50 +#: src/jade/tabs/trade.jade:52 +msgid "Counter Gateway" +msgstr "Gegengateway" + +#: src/jade/tabs/trade.jade:57 +msgid "Add" +msgstr "Hinzufügen" + +#: src/jade/tabs/trade.jade:60 msgid "Base currency issuer ({{order.first_currency | rpcurrency}})" msgstr "Ausgeber der Quell-Währung ({{order.first_currency | rpcurrency}})" -#: src/jade/tabs/trade.jade:55 +#: src/jade/tabs/trade.jade:63 +msgid "Ripple name or contact" +msgstr "Ripple-Name oder Kontakt" + +#: src/jade/tabs/trade.jade:65 msgid "Not a valid Ripple address or contact" msgstr "Keine gültige Ripple-Adresse oder Kontakt" -#: src/jade/tabs/trade.jade:60 +#: src/jade/tabs/trade.jade:70 msgid "Counter currency issuer ({{order.second_currency | rpcurrency}})" msgstr "Ausgeber der Ziel-Währung ({{order.second_currency | rpcurrency}})" -#: src/jade/tabs/trade.jade:65 +#: src/jade/tabs/trade.jade:75 msgid "Not a valid Ripple name or address" msgstr "Ripple-Name oder -Adresse ungültig" -#: src/jade/tabs/trade.jade:69 +#: src/jade/tabs/trade.jade:79 msgid "" -"You must select a gateway to trade currencies. Click the “Change gateway” " -"link above and enter the gateway's address or Ripple name. {{1:Find a " -"gateway.}}" -msgstr "Sie müssen ein Gateway auswählen, um Währungen zu wechseln. Klicken Sie oben auf den Link „Gateway ändern“ und geben Sie die Adresse oder den Ripple-Namen des Gateways ein. {{1:Ein Gateway finden.}}" +"To show an orderbook, choose from the dropdown above or click \"Add custom " +"pair\"." +msgstr "Um ein Orderbuch anzuzeigen, wählen Sie aus der Klappliste oben oder klicken Sie auf „Benutzerdefiniertes Paar hinzufügen“." -#: src/jade/tabs/trade.jade:79 +#: src/jade/tabs/trade.jade:86 msgid "Bid" msgstr "Angebot" -#: src/jade/tabs/trade.jade:84 +#: src/jade/tabs/trade.jade:91 msgid "Ask" msgstr "Nachfrage" -#: src/jade/tabs/trade.jade:89 +#: src/jade/tabs/trade.jade:96 msgid "Spread" msgstr "Streuung" -#: src/jade/tabs/trade.jade:94 +#: src/jade/tabs/trade.jade:101 msgid "Last price" msgstr "Letzter Preis" -#: src/jade/tabs/trade.jade:101 +#: src/jade/tabs/trade.jade:108 msgid "You have to be funded before you can trade" msgstr "Sie müssen finanziert werden, bevor Sie handeln können" -#: src/jade/tabs/trade.jade:108 +#: src/jade/tabs/trade.jade:115 msgid "Buy {{1}} {{order.first_currency | rpcurrency}}" msgstr "{{1}} kaufen {{order.first_currency | rpcurrency}}" -#: src/jade/tabs/trade.jade:111 +#: src/jade/tabs/trade.jade:118 msgid "Sell {{1}} {{order.first_currency | rpcurrency}}" msgstr "{{1}} verkaufen {{order.first_currency | rpcurrency}}" -#: src/jade/tabs/trade.jade:114 src/jade/tabs/trade.jade:123 +#: src/jade/tabs/trade.jade:121 src/jade/tabs/trade.jade:130 msgid "{{1}} available" msgstr "{{1}} verfügbar" -#: src/jade/tabs/trade.jade:137 +#: src/jade/tabs/trade.jade:144 msgid "Amount To Buy" msgstr "Zu kaufender Betrag" -#: src/jade/tabs/trade.jade:138 +#: src/jade/tabs/trade.jade:145 msgid "Amount To Sell" msgstr "Zu verkaufender Betrag" -#: src/jade/tabs/trade.jade:145 src/jade/tabs/trade.jade:160 -#: src/jade/tabs/trade.jade:175 +#: src/jade/tabs/trade.jade:152 src/jade/tabs/trade.jade:167 +#: src/jade/tabs/trade.jade:182 msgid "Required" msgstr "Erforderlich" -#: src/jade/tabs/trade.jade:147 src/jade/tabs/trade.jade:162 -#: src/jade/tabs/trade.jade:177 +#: src/jade/tabs/trade.jade:154 src/jade/tabs/trade.jade:169 +#: src/jade/tabs/trade.jade:184 msgid "Must be greater than zero" msgstr "Die Menge muss größer als Null sein." -#: src/jade/tabs/trade.jade:149 src/jade/tabs/trade.jade:164 -#: src/jade/tabs/trade.jade:179 -msgid "Minimum is a drop (0.000001) and maximum is 100 billion XRPs" -msgstr "Mindestbetrag: ein Drop (0.000001); Maximalbetrag: 100 Milliarden XRP" +#: src/jade/tabs/trade.jade:156 src/jade/tabs/trade.jade:171 +#: src/jade/tabs/trade.jade:186 +msgid "" +"Minimum amount of XRP you can send is a drop (0.000001) and the maximum is " +"100 billion XRPs." +msgstr "Der Minimalbetrag an XRP, die Sie senden können, ist ein Drop (0,000001) und der Maximalbetrag ist 100 Milliarden XRP." -#: src/jade/tabs/trade.jade:153 +#: src/jade/tabs/trade.jade:160 msgid "Price of Each" msgstr "Preis von jeweils" -#: src/jade/tabs/trade.jade:168 +#: src/jade/tabs/trade.jade:175 msgid "Order Value (max)" msgstr "Bestellwert (max)" -#: src/jade/tabs/trade.jade:185 +#: src/jade/tabs/trade.jade:192 msgid "You are wanting to buy {{1}} for {{2}} ({{3}} per {{4}})" msgstr "Sie möchten {{1}} für {{2}} kaufen ({{3}} pro {{4}})" -#: src/jade/tabs/trade.jade:194 +#: src/jade/tabs/trade.jade:201 msgid "You are wanting to sell {{1}} for {{2}} ({{3}} per {{4}})" msgstr "Sie möchten {{1}} für {{2}} verkaufen ({{3}} pro {{4}})" -#: src/jade/tabs/trade.jade:206 +#: src/jade/tabs/trade.jade:213 msgid "Buy" msgstr "Kaufen" -#: src/jade/tabs/trade.jade:207 +#: src/jade/tabs/trade.jade:214 msgid "Sell" msgstr "Verkaufen" -#: src/jade/tabs/trade.jade:213 +#: src/jade/tabs/trade.jade:220 msgid "You do not have sufficient funds to create an order." msgstr "Sie haben nicht genug Mittel, um eine Order aufzugeben." -#: src/jade/tabs/trade.jade:218 -msgid "CAUTION: Your order is far off from the current market price." -msgstr "VORSICHT: Ihre Anweisung ist weit vom aktuellen Marktpreis entfernt." - -#: src/jade/tabs/trade.jade:220 +#: src/jade/tabs/trade.jade:225 msgid "" "You are about to create an order to {{1: buy}} {{2: " -"sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}" -msgstr "Sie erstellen gerade eine Anweisung, {{3}}{{4:für}}{{5}}{{6}}zu {{1: kaufen}} {{2: verkaufen}}{{7:Sind Sie sicher?}}" +"sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}{{8}}" +msgstr "Sie sind dabei, eine Order zum {{1: Kaufen}} {{2: Verkaufen}}{{3}}{{4:für}}{{5}}{{6}}zu erstellen{{7:Sind Sie sicher?}}{{8}}" + +#: src/jade/tabs/trade.jade:242 +msgid "CAUTION: Your order is far off from the current market price." +msgstr "VORSICHT: Ihre Anweisung ist weit vom aktuellen Marktpreis entfernt." -#: src/jade/tabs/trade.jade:239 +#: src/jade/tabs/trade.jade:246 src/jade/tabs/trade.jade:407 msgid "« Back" msgstr "« Zurück" -#: src/jade/tabs/trade.jade:246 +#: src/jade/tabs/trade.jade:255 msgid "Sending order to Ripple network..." msgstr "Order wird an Ripple-Netzwerk gesendet..." -#: src/jade/tabs/trade.jade:252 +#: src/jade/tabs/trade.jade:261 msgid "Your order has been submitted." msgstr "Ihre Order wurde übermittelt." -#: src/jade/tabs/trade.jade:254 +#: src/jade/tabs/trade.jade:263 msgid "Your order is now active." msgstr "Ihre Order ist jetzt aktiv." -#: src/jade/tabs/trade.jade:256 -msgid "Your order is filled." +#: src/jade/tabs/trade.jade:265 +msgid "Your order has been filled." msgstr "Ihre Order wurde erfüllt." -#: src/jade/tabs/trade.jade:258 -msgid "Request has been denied." -msgstr "Anfrage wurde abgelehnt." +#: src/jade/tabs/trade.jade:267 +msgid "" +"Your order has been partially filled. The remaining amount is now active." +msgstr "Ihre Order wurde teilweise erfüllt. Der Restbetrag ist jetzt aktiv." -#: src/jade/tabs/trade.jade:259 -msgid "We were unable to submit the request. Please try again later." -msgstr "Wir konnten Ihre Anfrage nicht an den Server übermitteln. Bitte versuchen Sie es später erneut." +#: src/jade/tabs/trade.jade:276 +msgid "Submit another order" +msgstr "Eine weitere Order einreichen" -#: src/jade/tabs/trade.jade:261 -msgid "Request is malformed." -msgstr "Anfrage ist nicht korrekt formatiert." +#: src/jade/tabs/trade.jade:278 +msgid "My Orders{{1}}{{2}}" +msgstr "Meine Aufträge{{1}}{{2}}" -#: src/jade/tabs/trade.jade:262 -msgid "" -"Your request is invalid, reason: {{order[type].engine_result}} - " -"{{order[type].engine_result_message}}" -msgstr "Ihre Anfrage ist ungültig, Grund: {{order[type].engine_result}} - {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:287 +msgid "Your order has been modified." +msgstr "Ihre Order wurde bearbeitet." -#: src/jade/tabs/trade.jade:265 src/jade/tabs/trade.jade:279 -msgid "Transaction failed." -msgstr "Transaktion gescheitert." +#: src/jade/tabs/trade.jade:289 +msgid "Your order #{{ cancelOrder.seq }} has been cancelled." +msgstr "Ihre Order #{{ cancelOrder.seq }} wurde abgebrochen." -#: src/jade/tabs/trade.jade:267 +#: src/jade/tabs/trade.jade:291 msgid "" -"You do not have enough {{(type == 'buy' ? order.second_currency : " -"order.first_currency) | rpcurrency}} to create this order." -msgstr "Sie haben nicht genug {{(type == 'buy' ? order.second_currency : order.first_currency) | rpcurrency}}, um diese Order zu erstellen." +"Your order could not be modified and no longer exists. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "Ihre Order konnte nicht bearbeitet werden und existiert nicht mehr. Fehler: {{order[editOrder.type].engine_result_message}}" -#: src/jade/tabs/trade.jade:269 -msgid "" -"You must have at least {{account.reserve_to_add_trust | rpamount}} XRP to " -"submit an order. {{1}}" -msgstr "Sie benötigen mindestens {{account.reserve_to_add_trust | rpamount}} XRP, um eine Order zu übermittlen. {{1}}" +#: src/jade/tabs/trade.jade:293 +msgid "Unable to cancel order as it no longer exists." +msgstr "Fehler beim Abbrechen der Order, sie existiert nicht mehr." -#: src/jade/tabs/trade.jade:271 -msgid "More information." -msgstr "Mehr Infos." +#: src/jade/tabs/trade.jade:295 +msgid "Modifying your order (Placing new order) ..." +msgstr "Ihre Order wird bearbeitet (neue Order wird platziert)…" -#: src/jade/tabs/trade.jade:272 -msgid "Error: {{order[type].engine_result_message}}" -msgstr "Fehler: {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:299 +msgid "Current pair only" +msgstr "Nur aktuelles Paar" -#: src/jade/tabs/trade.jade:275 -msgid "Trade failed." -msgstr "Wechsel gescheitert." +#: src/jade/tabs/trade.jade:313 src/jade/tabs/widgets/orders.jade:24 +msgid "reverse" +msgstr "umkehren" -#: src/jade/tabs/trade.jade:277 -msgid "Trade failed, reason: {{order[type].engine_result_message}}" -msgstr "Handel fehlgeschlagen, Grund: {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:322 src/jade/tabs/widgets/orders.jade:33 +msgid "QTY{{1}}" +msgstr "MENGE{{1}}" -#: src/jade/tabs/trade.jade:281 src/jade/tabs/trust.jade:45 -msgid "" -"The particular server you sent the transaction to was too busy to forward or" -" process your transaction at the fee you included in it." -msgstr "Der Server, an den die Transaktion gesendet wurde, ist im Moment zu beschäftigt, um sie für die inkludierte Gebühr weiterzuverarbeiten oder weiterzuleiten." +#: src/jade/tabs/trade.jade:324 src/jade/tabs/widgets/orders.jade:35 +msgid "Base{{1}}" +msgstr "Basis{{1}}" -#: src/jade/tabs/trade.jade:290 -msgid "Submit another order" -msgstr "Eine weitere Order einreichen" +#: src/jade/tabs/trade.jade:326 src/jade/tabs/widgets/orders.jade:37 +msgid "Counter{{1}}" +msgstr "Gegen{{1}}" -#: src/jade/tabs/trade.jade:292 -msgid "My Orders{{1}}{{2}}" -msgstr "Meine Aufträge{{1}}{{2}}" +#: src/jade/tabs/trade.jade:328 src/jade/tabs/widgets/orders.jade:39 +msgid "Limit{{1}}" +msgstr "Grenze{{1}}" -#: src/jade/tabs/trade.jade:299 -msgid "Type" -msgstr "Typ" +#: src/jade/tabs/trade.jade:334 +msgid "Action" +msgstr "Aktion" -#: src/jade/tabs/trade.jade:300 -msgid "Currencies {{1: (Issuer)}}" -msgstr "Währungen {{1: (Herausgeber)}}" +#: src/jade/tabs/trade.jade:360 src/jade/tabs/trade.jade:424 +msgid "TRADE CONFIRMATION" +msgstr "WECHSEL-BESTÄTIGUNG" -#: src/jade/tabs/trade.jade:302 -msgid "Price" -msgstr "Preis" +#: src/jade/tabs/trade.jade:362 +msgid "{{1:Please confirm that you wish to cancel order #{{entry.seq}}}}" +msgstr "{{1:Bitte bestätigen Sie, dass Sie die Order #{{entry.seq}} abbrechen wollen}}" -#: src/jade/tabs/trade.jade:304 -msgid "Action" -msgstr "Aktion" +#: src/jade/tabs/trade.jade:364 +msgid "" +"{{1}} div span.modal-order-type(l10n-inc) FILLED: span filled data div" +" span.modal-order-type(l10n-inc) REMAIN: span remain data div span" +".modal-order-type(l10n-inc) PLACED: span time data" +msgstr "{{1}} div span.modal-order-type(l10n-inc) ERFÜLLT: span filled data div span.modal-order-type(l10n-inc) ÜBRIG: span remain data div span.modal-order-type(l10n-inc) PLATZIERT: span time data" -#: src/jade/tabs/trade.jade:313 +#: src/jade/tabs/trade.jade:371 msgid "with" msgstr "mit" -#: src/jade/tabs/trade.jade:314 +#: src/jade/tabs/trade.jade:372 msgid "for" msgstr "für" -# You haven't placed any orders. -#: src/jade/tabs/trade.jade:327 -msgid "You haven't placed any orders." -msgstr "Sie haben bisher keine Order gesetzt." +#: src/jade/tabs/trade.jade:376 +msgid "at" +msgstr "zu" -#: src/jade/tabs/trade.jade:329 -msgid "Unable to cancel order." -msgstr "Order konnte nicht abgebrochen werden." +#: src/jade/tabs/trade.jade:389 +msgid "Cancel order" +msgstr "Order abbrechen" -#: src/jade/tabs/trade.jade:330 -msgid "Error: {{cancelError}}" -msgstr "Fehler: {{cancelError}}" +#: src/jade/tabs/trade.jade:390 src/jade/tabs/trade.jade:431 +msgid "back" +msgstr "zurück" -#: src/jade/tabs/trade.jade:334 -msgid "Orderbook" -msgstr "Auftragsbuch" +#: src/jade/tabs/trade.jade:407 +msgid "" +"CAUTION: Your new order is far off from the current market price.
Do " +"you still want to replace your order ?" +msgstr "VORSICHT: Ihre neue Order ist weit vom aktuellen Marktpreis entfernt.
Wollen Sie Ihre Order immer noch ersetzen?" + +#: src/jade/tabs/trade.jade:410 +msgid "Unable to cancel order. Error: {{entry.errorMsg}}" +msgstr "Fehler beim Abbrechen der Order. Fehler: {{entry.errorMsg}}" + +#: src/jade/tabs/trade.jade:412 +msgid "" +"Your order amount has been updated by Ripple. Please go back and edit again " +"to modify this order." +msgstr "Ihre Order-Menge wurde von Ripple aktualisiert. Bitte gehen Sie zurück und bearbeiten Sie die Order erneut, um sie zu verändern." + +#: src/jade/tabs/trade.jade:414 +msgid "" +"Your order could not be modified. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "Ihre Order konnte nicht bearbeitet werden. Fehler: {{order[editOrder.type].engine_result_message}}" + +#: src/jade/tabs/trade.jade:415 +msgid "X" +msgstr "X" -#: src/jade/tabs/trade.jade:336 +#: src/jade/tabs/trade.jade:420 +msgid "cancel all" +msgstr "alle abbrechen" + +#: src/jade/tabs/trade.jade:426 +msgid "{{1:Please confirm that you wish to cancel all orders.}}" +msgstr "{{1:Bitte bestätigen Sie, dass Sie alle Order abbrechen wollen.}}" + +#: src/jade/tabs/trade.jade:430 +msgid "Cancel all orders" +msgstr "Alle Order abbrechen" + +#: src/jade/tabs/trade.jade:433 src/jade/tabs/widgets/orders.jade:64 +msgid "No current orders. {{1}}" +msgstr "Keine aktuellen Order. {{1}}" + +#: src/jade/tabs/trade.jade:434 src/jade/tabs/widgets/orders.jade:65 +msgid "View orders history" +msgstr "Orderverlauf anzeigen" + +#: src/jade/tabs/trade.jade:437 +msgid "Orderbook{{1}}" +msgstr "Orderbuch{{1}}" + +#: src/jade/tabs/trade.jade:440 msgid "show" msgstr "anzeigen" -#: src/jade/tabs/trade.jade:344 +#: src/jade/tabs/trade.jade:442 +msgid "Last updated {{1}} {{2: seconds}} {{3: second}} ago" +msgstr "Zuletzt aktualisiert vor {{1}} {{2: Sekunden}} {{3: Sekunde}}" + +#: src/jade/tabs/trade.jade:458 msgid "Bids" msgstr "Angebote" -#: src/jade/tabs/trade.jade:346 src/jade/tabs/trade.jade:373 +#: src/jade/tabs/trade.jade:460 src/jade/tabs/trade.jade:487 msgid "Sum{{1}}{{2}}" msgstr "Summe{{1}}{{2}}" -#: src/jade/tabs/trade.jade:349 src/jade/tabs/trade.jade:370 +#: src/jade/tabs/trade.jade:463 src/jade/tabs/trade.jade:484 msgid "Size{{1}}{{2}}" msgstr "Größe{{1}}{{2}}" -#: src/jade/tabs/trade.jade:352 +#: src/jade/tabs/trade.jade:466 msgid "Bid Price{{1}}{{2}}" msgstr "Bid-preis{{1}}{{2}}" -#: src/jade/tabs/trade.jade:363 +#: src/jade/tabs/trade.jade:477 msgid "There are currently no bids for this pair." msgstr "Für dieses Paar gibt es momentan keine Angebote." -#: src/jade/tabs/trade.jade:365 +#: src/jade/tabs/trade.jade:479 msgid "Asks" msgstr "Nachfragen" -#: src/jade/tabs/trade.jade:367 +#: src/jade/tabs/trade.jade:481 msgid "Ask Price{{1}}{{2}}" msgstr "Ask-preis{{1}}{{2}}" -#: src/jade/tabs/trade.jade:384 +#: src/jade/tabs/trade.jade:498 msgid "There are currently no asks for this pair." msgstr "Es gibt momentan keine Nachfragen zu diesem Paar." -#: src/jade/tabs/trade.jade:387 +#: src/jade/tabs/trade.jade:501 msgid "No more orders" msgstr "Keine weiteren Aufträge" -#: src/jade/tabs/trust.jade:23 -msgid "Connecting a gateway to your Ripple account..." -msgstr "Gateway wird mit Ihrem Ripple-Konto verbunden…" - -#: src/jade/tabs/trust.jade:25 -msgid "Gateway connected." -msgstr "Gateway verbunden." - -#: src/jade/tabs/trust.jade:27 -msgid "Gateway could not be connected!" -msgstr "Gateway konnte nicht verbunden werden!" - -#: src/jade/tabs/trust.jade:28 src/jade/tabs/trust.jade:30 -msgid "There was a problem connecting the gateway. Please try again later." -msgstr "Beim Verbinden des Gateways ist ein Problem aufgetreten. Bitte versuchen Sie es später erneut." +#: src/jade/tabs/trust.jade:29 +msgid "Removing gateway..." +msgstr "Gateway wird entfernt..." #: src/jade/tabs/trust.jade:31 -msgid "" -"Your request is invalid, reason: {{engine_result}} - " -"{{engine_result_message}}" -msgstr "Ihre Anfrage ist ungültig, Grund: {{engine_result}} - {{engine_result_message}}" +msgid "Gateway removed." +msgstr "Gateway entfernt." #: src/jade/tabs/trust.jade:33 -msgid "Gateway connection failed!" -msgstr "Gateway-Verbindung fehlgeschlagen!" +msgid "Your changes have been saved." +msgstr "Ihre Änderungen wurden gespeichert." #: src/jade/tabs/trust.jade:35 -msgid "You have no gateway connected in this currency." -msgstr "Sie haben kein Gateway in dieser Währung verbunden." - -#: src/jade/tabs/trust.jade:36 -msgid "Insufficient reserve to connect gateway." -msgstr "Reserve reicht zum Verbinden des Gateways nicht aus." - -#: src/jade/tabs/trust.jade:37 -msgid "" -"You must have at least {{account.reserve_to_add_trust | rpamount:0}} XRP to " -"connect a gateway. {{1}}" -msgstr "Sie müssen mindestens {{account.reserve_to_add_trust | rpamount:0}} XRP haben, um ein Gateway zu verbinden. {{1}}" +msgid "Request failed." +msgstr "Anfrage gescheitert." #: src/jade/tabs/trust.jade:39 -msgid "Read more." -msgstr "Lesen Sie mehr." - -#: src/jade/tabs/trust.jade:40 -msgid "Gateway connection failed to clear, reason: {{engine_result_message}}" -msgstr "Fehler beim Schließen der Gateway-Verbindung, Grund: {{engine_result_message}}" - -#: src/jade/tabs/trust.jade:43 -msgid "Transaction failed!" -msgstr "Transaktion fehlgeschlagen!" - -#: src/jade/tabs/trust.jade:53 -msgid "Saving changes..." -msgstr "Änderungen werden gespeichert..." +msgid "Account unlock failed." +msgstr "Entsperren des Kontos gescheitert." #: src/jade/tabs/trust.jade:55 -msgid "Changes saved!" -msgstr "Änderungen gespeichert!" - -#: src/jade/tabs/trust.jade:57 src/jade/tabs/trust.jade:69 -msgid "There was an error while saving your changes." -msgstr "Beim Speichern Ihrer Änderungen ist ein Fehler aufgetreten." - -#: src/jade/tabs/trust.jade:65 -msgid "Removing gateway..." -msgstr "Gateway wird entfernt..." - -#: src/jade/tabs/trust.jade:67 -msgid "Gateway removed!" -msgstr "Gateway entfernt!" - -#: src/jade/tabs/trust.jade:72 src/jade/tabs/trust.jade:194 -msgid "You must have at least {{1}} to add a new trust line. {{2}}" -msgstr "Sie benötigen zumindest {{1}} um eine Vertrauenslinie hinzuzufügen. {{2}}" - -#: src/jade/tabs/trust.jade:82 msgid "Name / Address" msgstr "Name / Adresse" -#: src/jade/tabs/trust.jade:84 src/jade/tabs/trust.jade:130 +#: src/jade/tabs/trust.jade:57 src/jade/tabs/trust.jade:90 msgid "Currency" msgstr "Währung" -#: src/jade/tabs/trust.jade:87 +#: src/jade/tabs/trust.jade:60 msgid "Trust Limit" msgstr "Vertrauensgrenze" -#: src/jade/tabs/trust.jade:93 +#: src/jade/tabs/trust.jade:66 msgid "Gateway's Ripple name or address" msgstr "Ripple-Name oder Adresse des Gateways" -#: src/jade/tabs/trust.jade:162 +#: src/jade/tabs/trust.jade:100 +msgid "Amount field is required." +msgstr "Menge muss angegeben werden." + +#: src/jade/tabs/trust.jade:115 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"connect to. More " +"information" +msgstr "Zulassen, dass das Guthaben dieser Vertrauenslinie an einen anderen Herausgeber übertragen werden kann, mit dem Sie sich verbunden haben. Mehr Informationen" + +#: src/jade/tabs/trust.jade:125 msgid "" "{{1:You are connecting a gateway, which means}}{{2:{{ counterparty_address |" " rpripplename:{tilde: true} }} can:}}" msgstr "{{1:Sie verbinden ein Gateway. Das bedeutet,}}{{2:{{ counterparty_address | rpripplename:{tilde: true} }} kann:}}" -#: src/jade/tabs/trust.jade:165 +#: src/jade/tabs/trust.jade:128 msgid "{{1:- Hold up to }}{{2}} {{3: on your behalf}}" msgstr "{{1:- Bis zu }}{{2}} {{3: in Ihrem Auftrag halten}}" -#: src/jade/tabs/trust.jade:169 +#: src/jade/tabs/trust.jade:132 msgid "{{1:- Hold }}{{2}} {{3: on your behalf}}" msgstr "{{1:- In Ihrem Auftrag }}{{2}} {{3: halten}}" -#: src/jade/tabs/trust.jade:183 src/jade/tabs/trust.jade:186 -#: src/jade/tabs/trust.jade:189 src/jade/tabs/trust.jade:255 -#: src/jade/tabs/trust.jade:258 src/jade/tabs/trust.jade:261 -#: src/jade/tabs/trust.jade:288 src/jade/tabs/trust.jade:291 -#: src/jade/tabs/trust.jade:294 -msgid "Remove" -msgstr "Entfernen" - -#: src/jade/tabs/trust.jade:192 +#: src/jade/tabs/trust.jade:148 msgid "Verifying address" msgstr "Prüfe Adresse" -#: src/jade/tabs/trust.jade:201 +#: src/jade/tabs/trust.jade:151 msgid "" "Your account has to be {{1:activated}} before you can add a gateway account." msgstr "Ihr Konto muss {{1:aktiviert}} sein, bevor Sie ein Gateway-Konto hinzufügen können." -#: src/jade/tabs/trust.jade:209 +#: src/jade/tabs/trust.jade:159 msgid "Connect gateway" msgstr "Gateway verbinden" -#: src/jade/tabs/trust.jade:227 -msgid "Gateway" -msgstr "Gateway" - -#: src/jade/tabs/trust.jade:229 src/jade/tabs/trust.jade:271 +#: src/jade/tabs/trust.jade:169 src/jade/tabs/trust.jade:221 msgid "Limit" msgstr "Limit" -#: src/jade/tabs/trust.jade:230 +#: src/jade/tabs/trust.jade:170 msgid "Min" msgstr "Min" -#: src/jade/tabs/trust.jade:232 +#: src/jade/tabs/trust.jade:172 msgid "Edit" msgstr "Bearbeiten" -#: src/jade/tabs/trust.jade:245 +#: src/jade/tabs/trust.jade:188 msgid "Off" msgstr "Aus" -#: src/jade/tabs/trust.jade:246 +#: src/jade/tabs/trust.jade:189 msgid "On" msgstr "Ein" -#: src/jade/tabs/trust.jade:276 +#: src/jade/tabs/trust.jade:192 src/jade/tabs/trust.jade:201 +#: src/jade/tabs/trust.jade:206 src/jade/tabs/trust.jade:210 +#: src/jade/tabs/trust.jade:239 src/jade/tabs/trust.jade:244 +#: src/jade/tabs/trust.jade:248 +msgid "Incoming trust" +msgstr "Eingehendes Vertrauen" + +#: src/jade/tabs/trust.jade:192 +msgid "" +"You can't edit incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "Sie können eingehende Vertrauenslinien nicht bearbeiten. Eingehende Vertrauenslinien bedeuten, dass andere Ripple-Nutzer Ihnen vertrauen." + +#: src/jade/tabs/trust.jade:200 src/jade/tabs/trust.jade:202 +#: src/jade/tabs/trust.jade:205 src/jade/tabs/trust.jade:207 +#: src/jade/tabs/trust.jade:209 src/jade/tabs/trust.jade:211 +#: src/jade/tabs/trust.jade:238 src/jade/tabs/trust.jade:240 +#: src/jade/tabs/trust.jade:243 src/jade/tabs/trust.jade:245 +#: src/jade/tabs/trust.jade:247 src/jade/tabs/trust.jade:249 +msgid "Remove" +msgstr "Entfernen" + +#: src/jade/tabs/trust.jade:201 src/jade/tabs/trust.jade:206 +#: src/jade/tabs/trust.jade:210 src/jade/tabs/trust.jade:239 +#: src/jade/tabs/trust.jade:244 src/jade/tabs/trust.jade:248 +msgid "" +"You can't delete incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "Sie können eingehende Vertrauenslinien nicht löschen. Eingehende Vertrauenslinien bedeuten, dass andere Ripple-Nutzer Ihnen vertrauen." + +#: src/jade/tabs/trust.jade:226 msgid "Rippling {{1}}" msgstr "{{1}} wird geripplet" -#: src/jade/tabs/tx.jade:3 +#: src/jade/tabs/tx.jade:5 msgid "Loading transaction details..." msgstr "Lade Transaktionsdetails..." -#: src/jade/tabs/tx.jade:5 +#: src/jade/tabs/tx.jade:7 msgid "An error occurred while loading the transaction details." msgstr "Ein Fehler ist während des ladens der Transaktionsdetails aufgetreten." -#: src/jade/tabs/tx.jade:8 +#: src/jade/tabs/tx.jade:10 msgid "Transaction #" msgstr "Transaktions #" -#: src/jade/tabs/tx.jade:11 -msgid "Show in graph" -msgstr "In Diagramm anzeigen" - -#: src/jade/tabs/tx.jade:13 +#: src/jade/tabs/tx.jade:15 msgid "Transaction type: {{1}}" msgstr "Transaktionstyp: {{1}}" -#: src/jade/tabs/tx.jade:20 +#: src/jade/tabs/tx.jade:22 msgid "Address sent from" msgstr "Adresse gesendet von" -#: src/jade/tabs/tx.jade:24 +#: src/jade/tabs/tx.jade:26 msgid "Amount sent" msgstr "Betrag gesendet" -#: src/jade/tabs/tx.jade:28 +#: src/jade/tabs/tx.jade:30 msgid "Currency sent" msgstr "Währung gesendet" -#: src/jade/tabs/tx.jade:33 +#: src/jade/tabs/tx.jade:35 msgid "Address sent to" msgstr "Adresse gesendet an" -#: src/jade/tabs/tx.jade:37 +#: src/jade/tabs/tx.jade:39 msgid "Amount received" msgstr "Betrag erhalten" -#: src/jade/tabs/tx.jade:41 +#: src/jade/tabs/tx.jade:43 msgid "Currency received" msgstr "Währung erhalten" -#: src/jade/tabs/tx.jade:48 +#: src/jade/tabs/tx.jade:50 msgid "Network fee paid" msgstr "Netzwerkgebühr bezahlt" -#: src/jade/tabs/tx.jade:60 +#: src/jade/tabs/tx.jade:62 msgid "Ledger number" msgstr "Ledger-Nummer" -#: src/jade/tabs/tx.jade:66 +#: src/jade/tabs/tx.jade:68 msgid "Address sent from:" msgstr "Quelladresse:" # Sorry, we don't have an info page layout for this transaction type yet. -#: src/jade/tabs/tx.jade:70 +#: src/jade/tabs/tx.jade:72 msgid "" "Sorry, we don't have an info page layout for this transaction type yet." msgstr "Entschuldigung, wir haben bisher keine Informationsseite zu diesem Transaktionstyp." +#: src/jade/tabs/usd.jade:35 +msgid "US Dollar Deposit" +msgstr "US-Dollar-Depot" + +#: src/jade/tabs/usd.jade:39 +msgid "SnapSwap US (~SnapSwap){{1}}{{2}}" +msgstr "SnapSwap US (~SnapSwap){{1}}{{2}}" + +#: src/jade/tabs/usd.jade:45 +msgid "USA" +msgstr "USA" + +#: src/jade/tabs/usd.jade:48 +msgid "$ 0.31-$ 5.00" +msgstr "$ 0.31-$ 5.00" + +#: src/jade/tabs/usd.jade:56 +msgid "" +"Ripple Trade has partnered with SnapSwap to provide easier access to USD. " +"Following this action will enable SnapSwap to hold USD on your behalf." +msgstr "Ripple Trade und SnapSwap sind Partner, um einfacheren Zugriff auf USD anzubieten. Indem Sie fortfahren, erlauben Sie SnapSwap, USD in Ihrem Auftrag zu halten." + +#: src/jade/tabs/usd.jade:73 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.US" +msgstr "NEUKUNDEN- BEI SNAPSWAP.US REGISTRIEREN" + +#: src/jade/tabs/usd.jade:74 +msgid "Register and verify your account at SnapSwap US. You will need: {{1}}" +msgstr "Registrieren und bestätigen Sie Ihr Konto bei SnapSwap US. Sie brauchen: {{1}}" + +#: src/jade/tabs/usd.jade:82 +msgid "EXISTING SNAPSWAP US CUSTOMERS" +msgstr "BESTEHENDE SNAPSWAP US KUNDEN" + +#: src/jade/tabs/usd.jade:93 +msgid "Deposit instantly via selected banks" +msgstr "Soforteinzahlung über ausgewählte Banken" + +#: src/jade/tabs/usd.jade:95 +msgid "Deposit cash at Bank of America branches (3 business days)" +msgstr "Geld bei Bank-of-America-Filialen einzahlen (3 Arbeitstage)" + +#: src/jade/tabs/usd.jade:97 +msgid "Deposit via online bank transfer (3 business days)" +msgstr "Via Online-Überweisung einzahlen (3 Arbeitstage)" + +#: src/jade/tabs/usd.jade:103 +msgid "Directly to your bank account (3-4 business days)" +msgstr "Direkt auf Ihr Bankkonto (3-4 Arbeitstage)" + +#: src/jade/tabs/usd.jade:105 +msgid "Directly to your PayPal account (several minutes)" +msgstr "Direkt auf Ihr PayPal-Konto (einige Minuten)" + +#: src/jade/tabs/widgets/assetallocation.jade:3 +msgid "Asset Allocation" +msgstr "Werte-Verteilung" + +#: src/jade/tabs/widgets/balances.jade:3 +msgid "Balances" +msgstr "Guthaben" + +#: src/jade/tabs/widgets/balances.jade:12 +msgid "Balance
{{ account.Balance | rpamount }} XRP" +msgstr "Guthaben
{{ account.Balance | rpamount }} XRP" + +#: src/jade/tabs/widgets/balances.jade:16 +msgid "Reserve" +msgstr "Rücklage" + +#: src/jade/tabs/widgets/balances.jade:18 +msgid "Reserve amount" +msgstr "Reservebetrag" + +#: src/jade/tabs/widgets/balances.jade:18 +msgid "" +"Minimum amount of XRP required to fund your account. You cannot spend the " +"reserve." +msgstr "Minimumbetrag an XRP, der zur Finanzierung Ihres Kontos benötigt wird. Sie können die Reserve nicht ausgeben." + +#: src/jade/tabs/widgets/balances.jade:20 +msgid "Reserve amount
{{ account.reserve | rpamount }} XRP" +msgstr "Reservebetrag
{{ account.reserve | rpamount }} XRP" + +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Available amount" +msgstr "Verfügbarer Betrag" + +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Total amount of XRP in your account minus the reserve amount." +msgstr "Gesamtbetrag an XRP in Ihrem Konto minus den Reservebetrag." + +#: src/jade/tabs/widgets/balances.jade:28 +msgid "Available amount
{{ account.max_spend | rpamount }} XRP" +msgstr "Verfügbarer Betrag
{{ account.max_spend | rpamount }} XRP" + +#: src/jade/tabs/widgets/balances.jade:35 +msgid "" +"Balance
{{ entry.total | rpamount:{precision: 30, hard_precision: true} " +"}} {{ entry.total | rpcurrency }}" +msgstr "Guthaben
{{ entry.total | rpamount:{precision: 30, hard_precision: true} }} {{ entry.total | rpcurrency }}" + +#: src/jade/tabs/widgets/balances.jade:43 +msgid "" +"Balance
{{ component | rpamount:{precision: 30, rel_min_precision: -2, " +"hard_precision: true} }} {{ entry.total | rpcurrency }}" +msgstr "Guthaben
{{ component | rpamount:{precision: 30, el_min_precision: -2, hard_precision: true} }} {{ entry.total | rpcurrency }}" + +#: src/jade/tabs/widgets/markets.jade:3 +msgid "Markets" +msgstr "Märkte" + +#: src/jade/tabs/widgets/networth.jade:3 +msgid "Net Worth" +msgstr "Nettowert" + +#: src/jade/tabs/widgets/networth.jade:8 +msgid "{{1:{{1:In}}}}{{2}}" +msgstr "{{1:{{1:In}}}}{{2}}" + +#: src/jade/tabs/widgets/networth.jade:14 +msgid "Estimated from latest trade price" +msgstr "Geschätzt vom neuesten Handelspreis" + +#: src/jade/tabs/widgets/networth.jade:23 +msgid "(excluding negative balances)" +msgstr "(exklusive negative Kontostände)" + +#: src/jade/tabs/widgets/orders.jade:3 +msgid "My Orders" +msgstr "Meine Order" + +#: src/jade/tabs/widgets/orders.jade:68 +msgid "trade currencies" +msgstr "Wechsel-Währungen" + #: src/jade/tabs/xrp.jade:19 msgid "Ripple name: {{1}}{{2}}{{3}}" msgstr "Ripple-Name: {{1}}{{2}}{{3}}" @@ -2705,7 +3667,3 @@ msgid "" "full Ripple address, and while we are working to transition to Ripple names," " some gateways may still ask for your full address." msgstr "Ripple-Namen sind eine neue Funktion bei Ripple! Verwenden Sie Ihren Ripple-Namen (~{{userCredentials.username}}), um Geld zu empfangen. Sie können weiterhin Ihre volle Ripple-Adresse verwenden, und während wir an der Umstellung auf Ripple-Namen arbeiten, werden Sie von einigen Gateways möglicherweise immer noch nach Ihrer vollen Adresse gefragt." - -#: src/jade/tabs/xrp.jade:31 -msgid "Ripple address {{1}}" -msgstr "Ripple-Adresse {{1}}" diff --git a/l10n/en/messages.po b/l10n/en/messages.po index b992a5440..71a262978 100644 --- a/l10n/en/messages.po +++ b/l10n/en/messages.po @@ -1,2285 +1,3656 @@ -# #-#-#-#-# messages.pot #-#-#-#-# -# Generated by grunt-jade-l10n-extractor -# #-#-#-#-# messages.po (Ripple Client) #-#-#-#-# # Generated by grunt-jade-l10n-extractor # Translators: -#, fuzzy msgid "" msgstr "" -"#-#-#-#-# messages.pot #-#-#-#-#\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# messages.po (Ripple Client) #-#-#-#-#\n" -"Project-Id-Version: Ripple Client\n" -"PO-Revision-Date: 2013-12-10 22:07+0000\n" -"Last-Translator: vhpoet \n" +"Project-Id-Version: Ripple Trade\n" +"PO-Revision-Date: 2015-01-14 09:50+0000\n" +"Last-Translator: Stefan Thomas \n" +"Language-Team: English (http://www.transifex.com/projects/p/ripple-trade/language/en/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: en\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/jade/client/status.jade:10 -msgid "logout" -msgstr "logout" +#: src/jade/client/index.jade:5 src/jade/client/navbar.jade:117 +#: src/jade/tabs/trust.jade:59 src/jade/tabs/trust.jade:168 +msgid "Balance" +msgstr "Balance" -#: src/jade/client/status.jade:12 -msgid "Loading your balance..." -msgstr "Loading your balance..." +#: src/jade/client/index.jade:7 src/jade/client/navbar.jade:119 +msgid "History" +msgstr "History" -#: src/jade/client/status.jade:14 -msgid "Unfunded account" -msgstr "Unfunded account" +#: src/jade/client/index.jade:8 src/jade/client/navbar.jade:121 +msgid "Contacts" +msgstr "Contacts" -#: src/jade/client/status.jade:26 src/jade/index.jade:29 -#: src/jade/menu/advanced.jade:7 src/jade/tabs/options.jade:4 -msgid "Options" -msgstr "Options" +#: src/jade/client/index.jade:12 src/jade/client/navbar.jade:21 +#: src/jade/tabs/contacts.jade:65 +msgid "Send" +msgstr "Send" -#: src/jade/directives/transactionerror.jade:4 src/jade/tabs/convert.jade:103 -#: src/jade/tabs/send.jade:223 src/jade/tabs/send.jade:218 -msgid "Your transaction has been submitted." -msgstr "Your transaction has been submitted." +#: src/jade/client/index.jade:16 +msgid "Convert" +msgstr "Convert" -#: src/jade/directives/transactionerror.jade:5 -msgid "Your account balance will update once the transaction has cleared." -msgstr "Your account balance will update once the transaction has cleared." +#: src/jade/client/index.jade:18 src/jade/client/navbar.jade:23 +#: src/jade/client/navbar.jade:25 src/jade/tabs/settings/navbar.jade:3 +msgid "Trade" +msgstr "Trade" -#: src/jade/directives/transactionerror.jade:7 src/jade/tabs/convert.jade:106 -#: src/jade/tabs/send.jade:226 src/jade/tabs/send.jade:221 -msgid "Transaction cleared!" -msgstr "Transaction cleared!" +#: src/jade/client/index.jade:22 src/jade/client/navbar.jade:27 +#: src/jade/client/navbar.jade:133 +msgid "Fund" +msgstr "Fund" -#: src/jade/directives/transactionerror.jade:9 src/jade/tabs/convert.jade:108 -#: src/jade/tabs/send.jade:228 src/jade/tabs/send.jade:223 -msgid "Transaction partially valid!" -msgstr "Transaction partially valid!" +#: src/jade/client/index.jade:24 src/jade/tabs/fund/menu.jade:29 +msgid "Gateways" +msgstr "Gateways" -#: src/jade/directives/transactionerror.jade:10 src/jade/tabs/convert.jade:109 -#: src/jade/tabs/send.jade:229 src/jade/tabs/send.jade:224 -msgid "Your transaction could only be partially applied." -msgstr "Your transaction could only be partially applied." +#: src/jade/client/index.jade:29 src/jade/client/navbar.jade:107 +#: src/jade/tabs/su.jade:12 +msgid "Account" +msgstr "Account" + +#: src/jade/client/index.jade:32 src/jade/client/navbar.jade:109 +#: src/jade/tabs/advanced.jade:19 +msgid "Settings" +msgstr "Settings" + +#: src/jade/client/index.jade:35 +msgid "Logout" +msgstr "Logout" + +#: src/jade/client/index.jade:61 +msgid "Why Use Ripple Trade?" +msgstr "Why Use Ripple Trade?" + +#: src/jade/client/index.jade:66 +msgid "Home of XRP -" +msgstr "Home of XRP -" + +#: src/jade/client/index.jade:67 +msgid "the best place to buy and sell XRP" +msgstr "the best place to buy and sell XRP" + +#: src/jade/client/index.jade:71 +msgid "Free -" +msgstr "Free -" + +#: src/jade/client/index.jade:72 +msgid "no fees to sign up and use Ripple Trade" +msgstr "no fees to sign up and use Ripple Trade" + +#: src/jade/client/index.jade:76 +msgid "No Middlemen -" +msgstr "No Middlemen -" + +#: src/jade/client/index.jade:77 +msgid "" +"When you submit orders, Ripple automatically finds the best available match," +" without a clearinghouse or broker." +msgstr "When you submit orders, Ripple automatically finds the best available match, without a clearinghouse or broker." + +#: src/jade/client/index.jade:81 +msgid "Deposit, trade and withdraw money on Ripple via gateways." +msgstr "Deposit, trade and withdraw money on Ripple via gateways." + +#: src/jade/client/index.jade:89 +msgid "Featured Ripple Gateways" +msgstr "Featured Ripple Gateways" + +#: src/jade/client/index.jade:91 +msgid "Ripple's growing gateway network." +msgstr "Ripple's growing gateway network." + +#: src/jade/client/index.jade:93 src/jade/client/index.jade:96 +#: src/jade/client/index.jade:99 src/jade/client/index.jade:102 +#: src/jade/client/index.jade:105 src/jade/client/index.jade:108 +#: src/jade/client/index.jade:111 src/jade/client/index.jade:114 +#: src/jade/client/index.jade:117 src/jade/tabs/banner/unfunded.jade:6 +#: src/jade/tabs/brl.jade:53 src/jade/tabs/brl.jade:57 +#: src/jade/tabs/brl.jade:93 src/jade/tabs/btc.jade:46 +#: src/jade/tabs/eur.jade:50 src/jade/tabs/eur.jade:54 +#: src/jade/tabs/eur.jade:86 src/jade/tabs/eur.jade:93 +#: src/jade/tabs/gold.jade:51 src/jade/tabs/jpy.jade:55 +#: src/jade/tabs/jpy.jade:91 src/jade/tabs/jpy.jade:97 +#: src/jade/tabs/mxn.jade:53 src/jade/tabs/send.jade:63 +#: src/jade/tabs/trade.jade:320 src/jade/tabs/usd.jade:51 +#: src/jade/tabs/usd.jade:83 src/jade/tabs/usd.jade:90 +#: src/jade/tabs/usd.jade:100 src/jade/tabs/widgets/orders.jade:31 +msgid "{{1}}" +msgstr "{{1}}" + +#: src/jade/client/index.jade:123 +msgid "Version: {{version}}" +msgstr "Version: {{version}}" + +#: src/jade/client/index.jade:128 +msgid "Terms of Use" +msgstr "Terms of Use" + +#: src/jade/client/index.jade:129 +msgid "Privacy Policy" +msgstr "Privacy Policy" + +#: src/jade/client/index.jade:130 +msgid "Support" +msgstr "Support" + +#: src/jade/client/index.jade:131 +msgid "Bug reports" +msgstr "Bug reports" + +#: src/jade/client/index.jade:138 +msgid "more..." +msgstr "more..." + +#: src/jade/client/index.jade:142 +msgid "Select a language" +msgstr "Select a language" + +#: src/jade/client/navbar.jade:2 +msgid "" +"You are viewing an account in {{1}} mode. While in this mode, you can view " +"publicly available data, but you cannot initiate any transactions. Click " +"{{2}} to exit." +msgstr "You are viewing an account in {{1}} mode. While in this mode, you can view publicly available data, but you cannot initiate any transactions. Click {{2}} to exit." + +#: src/jade/client/navbar.jade:8 +msgid "" +"Warning: this account has over 200 trust lines, so the displayed account " +"balance may not be accurate." +msgstr "Warning: this account has over 200 trust lines, so the displayed account balance may not be accurate." + +#: src/jade/client/navbar.jade:19 +msgid "Overview" +msgstr "Overview" + +#: src/jade/client/navbar.jade:49 src/jade/tabs/account/private.jade:7 +#: src/jade/tabs/account/private.jade:16 src/jade/tabs/account/public.jade:45 +#: src/jade/tabs/apps.jade:8 src/jade/tabs/btc.jade:72 +#: src/jade/tabs/exchange.jade:9 src/jade/tabs/kyc.jade:45 +#: src/jade/tabs/recover.jade:26 src/jade/tabs/security.jade:147 +#: src/jade/tabs/su.jade:8 src/jade/tabs/trust.jade:9 +#: src/jade/tabs/trust.jade:139 +msgid "Loading..." +msgstr "Loading..." -#: src/jade/directives/transactionerror.jade:12 -#: src/jade/directives/transactionerror.jade:17 src/jade/tabs/convert.jade:115 -#: src/jade/tabs/convert.jade:120 src/jade/tabs/send.jade:235 -#: src/jade/tabs/send.jade:240 src/jade/tabs/send.jade:230 -msgid "Transaction malformed!" -msgstr "Transaction malformed!" +#: src/jade/client/navbar.jade:50 +msgid "There are no recent notifications." +msgstr "There are no recent notifications." -#: src/jade/directives/transactionerror.jade:14 src/jade/tabs/convert.jade:117 -#: src/jade/tabs/send.jade:237 src/jade/tabs/send.jade:232 -msgid "" -"Your transaction is invalid, reason: {{engine_result}} - " -"{{engine_result_message}}" -msgstr "" -"Your transaction is invalid, reason: {{engine_result}} - " -"{{engine_result_message}}" +#: src/jade/client/navbar.jade:54 +msgid "You sent {{1}} to {{2}}" +msgstr "You sent {{1}} to {{2}}" + +#: src/jade/client/navbar.jade:60 +msgid "{{1}} sent you {{2}}" +msgstr "{{1}} sent you {{2}}" -#: src/jade/directives/transactionerror.jade:19 src/jade/tabs/convert.jade:122 -#: src/jade/tabs/send.jade:242 src/jade/tabs/send.jade:237 +#: src/jade/client/navbar.jade:68 +msgid "{{entry.transaction.counterparty | rpcontactname}} now trusts you for" +msgstr "{{entry.transaction.counterparty | rpcontactname}} now trusts you for" + +#: src/jade/client/navbar.jade:74 src/jade/notification/account.jade:25 +#: src/jade/tabs/history.jade:115 src/jade/tabs/history/effects.jade:63 +msgid "You have now connected to the gateway {{1}}{{2: for }}{{3}}." +msgstr "You have now connected to the gateway {{1}}{{2: for }}{{3}}." + +#: src/jade/client/navbar.jade:85 +msgid "You cancelled an order accepting {{1}} for {{2}}" +msgstr "You cancelled an order accepting {{1}} for {{2}}" + +#: src/jade/client/navbar.jade:92 src/jade/tabs/history.jade:138 +msgid "Account details have been changed" +msgstr "Account details have been changed" + +#: src/jade/client/navbar.jade:95 src/jade/tabs/history.jade:141 +#: src/jade/tabs/trust.jade:171 +msgid "Rippling" +msgstr "Rippling" + +#: src/jade/client/navbar.jade:97 src/jade/tabs/history.jade:143 +msgid "Failed transaction" +msgstr "Failed transaction" + +#: src/jade/client/navbar.jade:103 +msgid "View Full History" +msgstr "View Full History" + +#: src/jade/client/navbar.jade:111 +msgid "Log Out" +msgstr "Log Out" + +#: src/jade/client/navbar.jade:126 +msgid "Simple" +msgstr "Simple" + +#: src/jade/client/navbar.jade:128 src/jade/tabs/settings/navbar.jade:4 +msgid "Advanced" +msgstr "Advanced" + +#: src/jade/client/navbar.jade:135 +msgid "Withdraw" +msgstr "Withdraw" + +#: src/jade/client/navbar.jade:137 msgid "" -"Destination account requires destination tag to be specified when making " -"payments." -msgstr "" -"Destination account requires destination tag to be specified when making " -"payments." +"Your account was successfully recovered and encrypted with the new password " +"you provided!" +msgstr "Your account was successfully recovered and encrypted with the new password you provided!" + +#: src/jade/client/navbar.jade:138 +msgid "dismiss" +msgstr "dismiss" + +#: src/jade/directives/addresspopover.jade:3 +msgid "Ripple address {{ identity }}" +msgstr "Ripple address {{ identity }}" + +#: src/jade/directives/addresspopover.jade:8 src/jade/tabs/tx.jade:13 +msgid "Show in graph" +msgstr "Show in graph" -#: src/jade/directives/transactionerror.jade:22 +#: src/jade/directives/transactionerror.jade:8 +msgid "Connecting gateway to your account..." +msgstr "Connecting gateway to your account..." + +#: src/jade/directives/transactionerror.jade:10 +msgid "Gateway connected." +msgstr "Gateway connected." + +#: src/jade/directives/transactionerror.jade:12 +msgid "There was a problem connecting to the gateway. Please try again later." +msgstr "There was a problem connecting to the gateway. Please try again later." + +#: src/jade/directives/transactionerror.jade:14 +#: src/jade/directives/transactionerror.jade:73 +#: src/jade/directives/transactionerror.jade:158 +#: src/jade/messages/sendconvert/confirmation.jade:13 +msgid "Error code: {{engine_result}} - {{engine_result_message}}" +msgstr "Error code: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:19 +#: src/jade/directives/transactionerror.jade:23 #: src/jade/directives/transactionerror.jade:28 -#: src/jade/directives/transactionerror.jade:37 -#: src/jade/directives/transactionerror.jade:44 src/jade/tabs/convert.jade:125 -#: src/jade/tabs/convert.jade:134 src/jade/tabs/convert.jade:141 -#: src/jade/tabs/send.jade:245 src/jade/tabs/send.jade:251 -#: src/jade/tabs/send.jade:260 src/jade/tabs/trade.jade:194 -#: src/jade/tabs/trade.jade:208 src/jade/tabs/trust.jade:160 -#: src/jade/tabs/send.jade:240 src/jade/tabs/send.jade:246 -#: src/jade/tabs/send.jade:255 src/jade/tabs/trade.jade:190 -#: src/jade/tabs/trade.jade:204 -msgid "Transaction failed!" -msgstr "Transaction failed!" - -#: src/jade/directives/transactionerror.jade:24 src/jade/tabs/convert.jade:143 -#: src/jade/tabs/send.jade:247 src/jade/tabs/trade.jade:210 -#: src/jade/tabs/trust.jade:162 src/jade/tabs/send.jade:242 -#: src/jade/tabs/trade.jade:206 -msgid "" -"The particular server you sent the transaction to was too busy to forward or " -"process your transaction at the fee you included in it." -msgstr "" -"The particular server you sent the transaction to was too busy to forward or " -"process your transaction at the fee you included in it." +#: src/jade/directives/transactionerror.jade:33 +#: src/jade/directives/transactionerror.jade:45 +#: src/jade/directives/transactionerror.jade:52 +#: src/jade/directives/transactionerror.jade:156 +#: src/jade/directives/transactionerror.jade:163 +#: src/jade/directives/transactionerror.jade:167 +#: src/jade/directives/transactionerror.jade:172 +#: src/jade/directives/transactionerror.jade:177 +#: src/jade/directives/transactionerror.jade:186 +#: src/jade/directives/transactionerror.jade:193 +msgid "Request failed" +msgstr "Request failed" + +#: src/jade/directives/transactionerror.jade:21 +#: src/jade/directives/transactionerror.jade:165 +msgid "Your request timed out, please try again." +msgstr "Your request timed out, please try again." + +#: src/jade/directives/transactionerror.jade:25 +#: src/jade/directives/transactionerror.jade:84 +#: src/jade/directives/transactionerror.jade:169 +#: src/jade/messages/sendconvert/confirmation.jade:18 +msgid "Error code: Destination tag needed [tefDST_TAG_NEEDED]." +msgstr "Error code: Destination tag needed [tefDST_TAG_NEEDED]." + +#: src/jade/directives/transactionerror.jade:30 +#: src/jade/directives/transactionerror.jade:174 +msgid "" +"Error code: This request failed because it exceeded the maximum network fee," +" please try again later [telINSUF_FEE_P]." +msgstr "Error code: This request failed because it exceeded the maximum network fee, please try again later [telINSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:35 +msgid "" +"Error code: You have no gateway connected in this currency [terNO_LINE]." +msgstr "Error code: You have no gateway connected in this currency [terNO_LINE]." -#: src/jade/directives/transactionerror.jade:30 src/jade/tabs/convert.jade:127 -#: src/jade/tabs/send.jade:253 src/jade/tabs/send.jade:248 -msgid "The destination account does not exist." -msgstr "The destination account does not exist." +#: src/jade/directives/transactionerror.jade:37 +msgid "" +"Error code: Insufficient reserve to connect gateway [tecINSUF_RESERVE_LINE]." +msgstr "Error code: Insufficient reserve to connect gateway [tecINSUF_RESERVE_LINE]." -#: src/jade/directives/transactionerror.jade:32 src/jade/tabs/convert.jade:129 -#: src/jade/tabs/send.jade:255 src/jade/tabs/send.jade:250 +#: src/jade/directives/transactionerror.jade:39 msgid "" -"The destination account does not exist. Too little XRP sent to create it." -msgstr "" -"The destination account does not exist. Too little XRP sent to create it." +"Error code: You have an insufficient reserve amount to connect a gateway " +"[tecNO_LINE_INSUF_RESERVE]. {{1}}" +msgstr "Error code: You have an insufficient reserve amount to connect a gateway [tecNO_LINE_INSUF_RESERVE]. {{1}}" -#: src/jade/directives/transactionerror.jade:34 src/jade/tabs/convert.jade:131 -#: src/jade/tabs/send.jade:257 src/jade/tabs/send.jade:252 +#: src/jade/directives/transactionerror.jade:41 src/jade/tabs/fund.jade:34 +#: src/jade/tabs/send.jade:110 src/jade/tabs/trust.jade:74 +msgid "More information" +msgstr "More information" + +#: src/jade/directives/transactionerror.jade:42 +#: src/jade/directives/transactionerror.jade:98 +#: src/jade/directives/transactionerror.jade:135 +#: src/jade/directives/transactionerror.jade:183 +#: src/jade/messages/sendconvert/confirmation.jade:27 msgid "Error: {{engine_result_message}}" msgstr "Error: {{engine_result_message}}" -#: src/jade/directives/transactionerror.jade:39 src/jade/tabs/convert.jade:136 -#: src/jade/tabs/send.jade:262 src/jade/tabs/trust.jade:152 -#: src/jade/tabs/send.jade:257 -msgid "You have no trust line in this currency." -msgstr "You have no trust line in this currency." +#: src/jade/directives/transactionerror.jade:47 +#: src/jade/directives/transactionerror.jade:103 +#: src/jade/directives/transactionerror.jade:188 +#: src/jade/messages/sendconvert/confirmation.jade:32 +msgid "Error code: You have no trust line in this currency [terNO_LINE]." +msgstr "Error code: You have no trust line in this currency [terNO_LINE]." + +#: src/jade/directives/transactionerror.jade:49 +#: src/jade/directives/transactionerror.jade:190 +msgid "Your request failed: {{engine_result}} - {{engine_result_message}}" +msgstr "Your request failed: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:54 +#: src/jade/directives/transactionerror.jade:195 +msgid "Error code: request could not be submitted [tejLost]." +msgstr "Error code: request could not be submitted [tejLost]." -#: src/jade/directives/transactionerror.jade:41 +#: src/jade/directives/transactionerror.jade:56 +#: src/jade/directives/transactionerror.jade:197 src/jade/tabs/trust.jade:36 msgid "" -"Your transaction failed to clear: {{engine_result}} - " -"{{engine_result_message}}" -msgstr "" -"Your transaction failed to clear: {{engine_result}} - " +"This request failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "This request failed because the current network fee is higher than your account limit. You can adjust your maximum network fee in Settings > Advanced, or try again later.
Error code: Network fee exceeded [tejMaxFeeExceeded]." + +#: src/jade/directives/transactionerror.jade:59 +#: src/jade/directives/transactionerror.jade:200 +msgid "" +"Your request could not be submitted: {{engine_result}} - " "{{engine_result_message}}" +msgstr "Your request could not be submitted: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:67 +msgid "Payment pending" +msgstr "Payment pending" + +#: src/jade/directives/transactionerror.jade:69 +msgid "Payment successful" +msgstr "Payment successful" + +#: src/jade/directives/transactionerror.jade:71 +#: src/jade/directives/transactionerror.jade:82 +#: src/jade/directives/transactionerror.jade:87 +#: src/jade/directives/transactionerror.jade:92 +#: src/jade/directives/transactionerror.jade:101 +#: src/jade/directives/transactionerror.jade:108 +msgid "Payment failed" +msgstr "Payment failed" -#: src/jade/directives/transactionerror.jade:46 -msgid "Ripple client gave up trying to submit this transaction." -msgstr "Ripple client gave up trying to submit this transaction." +#: src/jade/directives/transactionerror.jade:78 +msgid "Payment failed [tefMAX_LEDGER]." +msgstr "Payment failed [tefMAX_LEDGER]." -#: src/jade/directives/transactionerror.jade:48 +#: src/jade/directives/transactionerror.jade:80 +msgid "Your payment timed out, please try again." +msgstr "Your payment timed out, please try again." + +#: src/jade/directives/transactionerror.jade:89 +#: src/jade/messages/sendconvert/confirmation.jade:39 +msgid "" +"Error code: This transaction failed because it exceeded the maximum network " +"fee, please try again later [telINSUF_FEE_P]." +msgstr "Error code: This transaction failed because it exceeded the maximum network fee, please try again later [telINSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:94 +#: src/jade/directives/transactionerror.jade:179 +msgid "Error code: No destination [tecNO_DST]." +msgstr "Error code: No destination [tecNO_DST]." + +#: src/jade/directives/transactionerror.jade:96 +#: src/jade/directives/transactionerror.jade:181 +#: src/jade/messages/sendconvert/confirmation.jade:25 msgid "" -"Your transaction could not be submitted: {{engine_result}} - " +"Error code: Insufficient XRP sent to destination [tecNO_DST_INSUF_XRP]." +msgstr "Error code: Insufficient XRP sent to destination [tecNO_DST_INSUF_XRP]." + +#: src/jade/directives/transactionerror.jade:105 +msgid "Your payment failed: {{engine_result}} - {{engine_result_message}}" +msgstr "Your payment failed: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:110 +msgid "Error code: Transaction could not be submitted [tejLost]." +msgstr "Error code: Transaction could not be submitted [tejLost]." + +#: src/jade/directives/transactionerror.jade:112 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "This transaction failed because the current network fee is higher than your account limit. You can adjust your maximum network fee in Settings > Advanced, or try again later.
Error code: Network fee exceeded [tejMaxFeeExceeded]." + +#: src/jade/directives/transactionerror.jade:115 +msgid "" +"Your payment could not be submitted: {{engine_result}} - " "{{engine_result_message}}" -msgstr "" -"Your transaction could not be submitted: {{engine_result}} - " +msgstr "Your payment could not be submitted: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:121 +msgid "Request is malformed." +msgstr "Request is malformed." + +#: src/jade/directives/transactionerror.jade:122 +msgid "" +"Your request is invalid, reason: {{engine_result_message}} - " "{{engine_result_message}}" +msgstr "Your request is invalid, reason: {{engine_result_message}} - {{engine_result_message}}" -#: src/jade/index.jade:5 src/jade/index.jade:45 -msgid "Wallet" -msgstr "Wallet" +#: src/jade/directives/transactionerror.jade:125 +#: src/jade/directives/transactionerror.jade:142 +msgid "Transaction failed." +msgstr "Transaction failed." -#: src/jade/index.jade:6 src/jade/menu/wallet.jade:5 -#: src/jade/tabs/trust.jade:29 -msgid "Balance" -msgstr "Balance" +#: src/jade/directives/transactionerror.jade:127 +msgid "You do not have enough funds to create this order [tecUNFUNDED_ORDER]." +msgstr "You do not have enough funds to create this order [tecUNFUNDED_ORDER]." -#: src/jade/index.jade:7 src/jade/menu/wallet.jade:7 -msgid "History" -msgstr "History" +#: src/jade/directives/transactionerror.jade:129 +msgid "" +"Insufficient reserve amount to submit an order [tecINSUF_RESERVE_OFFER]." +msgstr "Insufficient reserve amount to submit an order [tecINSUF_RESERVE_OFFER]." -#: src/jade/index.jade:8 src/jade/menu/wallet.jade:9 -msgid "Contacts" -msgstr "Contacts" +#: src/jade/directives/transactionerror.jade:131 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]. {{1}}" +msgstr "This transaction failed because the current network fee is higher than your account limit. You can adjust your maximum network fee in Settings > Advanced, or try again later.
Error code: Network fee exceeded [tejMaxFeeExceeded]. {{1}}" -#: src/jade/index.jade:9 src/jade/menu/wallet.jade:11 -#: src/jade/tabs/convert.jade:43 -msgid "Convert" -msgstr "Convert" +#: src/jade/directives/transactionerror.jade:134 +msgid "More information." +msgstr "More information." -#: src/jade/index.jade:10 src/jade/menu/wallet.jade:15 -#: src/jade/tabs/register.jade:87 -msgid "Security" -msgstr "Security" +#: src/jade/directives/transactionerror.jade:138 +msgid "Trade failed." +msgstr "Trade failed." -#: src/jade/index.jade:14 src/jade/index.jade:48 -#: src/jade/tabs/contacts.jade:75 -msgid "Send" -msgstr "Send" +#: src/jade/directives/transactionerror.jade:140 +msgid "Trade failed, reason: {{engine_result_message}}" +msgstr "Trade failed, reason: {{engine_result_message}}" -#: src/jade/index.jade:18 src/jade/index.jade:51 src/jade/tabs/convert.jade:22 -msgid "Receive" -msgstr "Receive" +#: src/jade/directives/transactionerror.jade:144 +msgid "" +"The particular server you sent the transaction to was too busy to forward or" +" process your transaction at the fee you included in it [telINSUF_FEE_P]." +msgstr "The particular server you sent the transaction to was too busy to forward or process your transaction at the fee you included in it [telINSUF_FEE_P]." -#: src/jade/index.jade:22 src/jade/index.jade:54 -msgid "Trade" -msgstr "Trade" +#: src/jade/directives/transactionerror.jade:152 +msgid "Request pending" +msgstr "Request pending" -#: src/jade/index.jade:26 src/jade/index.jade:57 -msgid "Advanced" -msgstr "Advanced" +#: src/jade/directives/transactionerror.jade:154 +msgid "Request successful" +msgstr "Request successful" -#: src/jade/index.jade:28 src/jade/menu/advanced.jade:5 -msgid "Trust" -msgstr "Trust" +#: src/jade/messages/sendconvert/confirmation.jade:4 +msgid "Transaction pending." +msgstr "Transaction pending." -#: src/jade/menu/wallet.jade:13 src/jade/tabs/gateways.jade:19 -msgid "Gateways" -msgstr "Gateways" +#: src/jade/messages/sendconvert/confirmation.jade:6 +msgid "Transaction successful" +msgstr "Transaction successful" + +#: src/jade/messages/sendconvert/confirmation.jade:8 +#: src/jade/messages/sendconvert/confirmation.jade:11 +#: src/jade/messages/sendconvert/confirmation.jade:16 +#: src/jade/messages/sendconvert/confirmation.jade:21 +#: src/jade/messages/sendconvert/confirmation.jade:30 +#: src/jade/messages/sendconvert/confirmation.jade:37 +#: src/jade/messages/sendconvert/localerror.jade:5 +#: src/jade/messages/sendconvert/localerror.jade:8 +#: src/jade/messages/sendconvert/localerror.jade:11 +#: src/jade/messages/sendconvert/localerror.jade:14 +msgid "Transaction failed" +msgstr "Transaction failed" + +#: src/jade/messages/sendconvert/confirmation.jade:9 src/jade/tabs/brl.jade:25 +#: src/jade/tabs/btc.jade:22 src/jade/tabs/eur.jade:25 +#: src/jade/tabs/gold.jade:25 src/jade/tabs/jpy.jade:25 +#: src/jade/tabs/mxn.jade:25 src/jade/tabs/trust.jade:43 +#: src/jade/tabs/usd.jade:25 +msgid "Please try again later." +msgstr "Please try again later." + +#: src/jade/messages/sendconvert/confirmation.jade:23 +msgid "Error code: The destination account does not exist [tecNO_DST]." +msgstr "Error code: The destination account does not exist [tecNO_DST]." + +#: src/jade/messages/sendconvert/confirmation.jade:34 +msgid "Your transaction failed: {{engine_result_message}}" +msgstr "Your transaction failed: {{engine_result_message}}" + +#: src/jade/messages/sendconvert/localerror.jade:6 +msgid "" +"Error code: The account you're trying to send to does not exist " +"[noDest]." +msgstr "Error code: The account you're trying to send to does not exist [noDest]." + +#: src/jade/messages/sendconvert/localerror.jade:9 +msgid "" +"Error code: Ripple was unable to find a path between you and the destination" +" account [noPath]." +msgstr "Error code: Ripple was unable to find a path between you and the destination account [noPath]." + +#: src/jade/messages/sendconvert/localerror.jade:12 +msgid "" +"Error code: This transaction failed because it exceeded the maximum network " +"fee. [maxfeeExceeded]." +msgstr "Error code: This transaction failed because it exceeded the maximum network fee. [maxfeeExceeded]." + +#: src/jade/messages/sendconvert/localerror.jade:15 +msgid "" +"Error code: The transaction was rejected by the Ripple network " +"[invalidTransaction]." +msgstr "Error code: The transaction was rejected by the Ripple network [invalidTransaction]." + +#: src/jade/messages/sendconvert/localerror.jade:17 +msgid "Account unlock failed" +msgstr "Account unlock failed" + +#: src/jade/messages/sendconvert/localerror.jade:18 +#: src/jade/tabs/trust.jade:40 +msgid "Your account could not be unlocked. Please try again later." +msgstr "Your account could not be unlocked. Please try again later." + +#: src/jade/messages/sendconvert/localerror.jade:20 +msgid "" +"Sorry, an error occurred while submitting your transaction.Make sure you are" +" connected to the Internet and try again later." +msgstr "Sorry, an error occurred while submitting your transaction.Make sure you are connected to the Internet and try again later." + +#: src/jade/messages/sendconvert/localerror.jade:22 +msgid "" +"Before trying again, please ensure that the transaction has not been " +"executed already." +msgstr "Before trying again, please ensure that the transaction has not been executed already." + +#: src/jade/messages/sendconvert/waiting.jade:5 +msgid "Sending transaction to the Ripple network" +msgstr "Sending transaction to the Ripple network" #: src/jade/notification/account.jade:3 -msgid "You sent {{1}} {{2}} {{3}}" -msgstr "You sent {{1}} {{2}} {{3}}" +msgid "You sent {{1}} {{2}} to {{3}}" +msgstr "You sent {{1}} {{2}} to {{3}}" -#: src/jade/notification/account.jade:9 +#: src/jade/notification/account.jade:11 msgid "{{tx.counterparty | rpcontactname}} sent you" -msgstr "{{tx.counterparty | rpcontactname}} sent you " +msgstr "{{tx.counterparty | rpcontactname}} sent you" -#: src/jade/notification/account.jade:14 +#: src/jade/notification/account.jade:18 msgid "{{tx.counterparty | rpcontactname}} now trusts you for" -msgstr "{{tx.counterparty | rpcontactname}} now trusts you for " +msgstr "{{tx.counterparty | rpcontactname}} now trusts you for" + +#: src/jade/popup/modifyOrderError.jade:2 +msgid "Modify Order Error" +msgstr "Modify Order Error" -#: src/jade/notification/account.jade:19 -msgid "You now trust {{tx.counterparty | rpcontactname}} for" -msgstr "You now trust {{tx.counterparty | rpcontactname}} for " +#: src/jade/popup/modifyOrderError.jade:4 +msgid "Sorry, your order could not be modified." +msgstr "Sorry, your order could not be modified." + +#: src/jade/popup/modifyOrderError.jade:5 +msgid "" +"Your original order was cancelled but the modified order was not placed. " +"
" +msgstr "Your original order was cancelled but the modified order was not placed.
" + +#: src/jade/popup/modifyOrderError.jade:6 +msgid "" +"The quantity of your order changed by {{order.qtyChangeAfterCancel | " +"rpamount}} before the order could be modified.

" +msgstr "The quantity of your order changed by {{order.qtyChangeAfterCancel | rpamount}} before the order could be modified.

" + +#: src/jade/popup/modifyOrderError.jade:7 +msgid "" +"To safeguard against the possibility of overfills a new order has not been " +"placed.
" +msgstr "To safeguard against the possibility of overfills a new order has not been placed.
" -#: src/jade/tabs/balance.jade:7 src/jade/tabs/convert.jade:7 -#: src/jade/tabs/gateways.jade:7 src/jade/tabs/history.jade:7 -#: src/jade/tabs/send.jade:6 src/jade/tabs/trade.jade:6 -#: src/jade/tabs/trust.jade:7 +#: src/jade/popup/modifyOrderError.jade:8 +msgid "" +"Please check your balance and history before placing the new order manually." +"
" +msgstr "Please check your balance and history before placing the new order manually.
" + +#: src/jade/popup/modifyOrderError.jade:10 src/jade/popup/unlock.jade:17 +msgid "Close" +msgstr "Close" + +#: src/jade/popup/unlock.jade:2 +msgid "Unlock account" +msgstr "Unlock account" + +#: src/jade/popup/unlock.jade:5 src/jade/tabs/login/form.jade:8 +#: src/jade/tabs/recover.jade:38 src/jade/tabs/register.jade:58 +#: src/jade/tabs/security.jade:12 +msgid "Password" +msgstr "Password" + +#: src/jade/popup/unlock.jade:8 +msgid "Please enter your password to show your secret key." +msgstr "Please enter your password to show your secret key." + +#: src/jade/popup/unlock.jade:9 src/jade/tabs/send.jade:205 +msgid "Please enter your password to confirm this transaction." +msgstr "Please enter your password to confirm this transaction." + +#: src/jade/popup/unlock.jade:10 +msgid "This password is incorrect, please try again." +msgstr "This password is incorrect, please try again." + +#: src/jade/popup/unlock.jade:13 +msgid "Confirming password" +msgstr "Confirming password" + +#: src/jade/popup/unlock.jade:16 src/jade/tabs/account/public.jade:44 +#: src/jade/tabs/security.jade:146 +msgid "Submit" +msgstr "Submit" + +#: src/jade/tabs/2fa/form.jade:3 +msgid "Country Code" +msgstr "Country Code" + +#: src/jade/tabs/2fa/form.jade:6 src/jade/tabs/kyc.jade:162 +msgid "Phone Number" +msgstr "Phone Number" + +#: src/jade/tabs/_usd.jade:6 src/jade/tabs/apps.jade:5 +#: src/jade/tabs/balance.jade:5 src/jade/tabs/brl.jade:6 +#: src/jade/tabs/btc.jade:9 src/jade/tabs/eur.jade:6 +#: src/jade/tabs/exchange.jade:6 src/jade/tabs/fund.jade:6 +#: src/jade/tabs/gold.jade:6 src/jade/tabs/history.jade:6 +#: src/jade/tabs/jpy.jade:6 src/jade/tabs/kyc.jade:6 src/jade/tabs/mxn.jade:6 +#: src/jade/tabs/send.jade:6 src/jade/tabs/su.jade:5 +#: src/jade/tabs/trade.jade:7 src/jade/tabs/trust.jade:6 +#: src/jade/tabs/usd.jade:6 src/jade/tabs/withdraw.jade:6 +#: src/jade/tabs/xrp.jade:6 msgid "You have to be online to see this screen" msgstr "You have to be online to see this screen" -#: src/jade/tabs/balance.jade:10 src/jade/tabs/balance.jade:121 -#: src/jade/tabs/convert.jade:10 src/jade/tabs/gateways.jade:10 -#: src/jade/tabs/gateways.jade:26 src/jade/tabs/gateways.jade:68 -#: src/jade/tabs/gateways.jade:152 src/jade/tabs/history.jade:169 -#: src/jade/tabs/register.jade:46 src/jade/tabs/trust.jade:10 -msgid "Loading..." -msgstr "Loading..." +#: src/jade/tabs/_usd.jade:17 +msgid "USD instant deposit" +msgstr "USD instant deposit" + +#: src/jade/tabs/_usd.jade:19 src/jade/tabs/_usd.jade:21 +msgid "Step 1 (Amount)" +msgstr "Step 1 (Amount)" + +#: src/jade/tabs/_usd.jade:22 +msgid "Step 2 (Confirmation)" +msgstr "Step 2 (Confirmation)" + +#: src/jade/tabs/_usd.jade:23 +msgid "Step 3 (Complete deposit)" +msgstr "Step 3 (Complete deposit)" + +#: src/jade/tabs/_usd.jade:26 +msgid "STEP 1: AMOUNT" +msgstr "STEP 1: AMOUNT" + +#: src/jade/tabs/_usd.jade:28 +msgid "STEP 2: CONFIRMATION" +msgstr "STEP 2: CONFIRMATION" + +#: src/jade/tabs/_usd.jade:30 +msgid "STEP 3: COMPLETE DEPOSIT" +msgstr "STEP 3: COMPLETE DEPOSIT" + +#: src/jade/tabs/_usd.jade:34 +msgid "" +"Success! You've completed your USD deposit. Your funds should be available " +"within a few minutes." +msgstr "Success! You've completed your USD deposit. Your funds should be available within a few minutes." + +#: src/jade/tabs/_usd.jade:36 +msgid "You cancelled your deposit." +msgstr "You cancelled your deposit." + +#: src/jade/tabs/_usd.jade:38 +msgid "" +"Your deposit failed. Your bank account was not charged. Please contact " +"{{1}}." +msgstr "Your deposit failed. Your bank account was not charged. Please contact {{1}}." + +#: src/jade/tabs/_usd.jade:49 src/jade/tabs/_usd.jade:91 +#: src/jade/tabs/fund.jade:41 src/jade/tabs/history.jade:172 +#: src/jade/tabs/trust.jade:89 +msgid "Amount" +msgstr "Amount" + +#: src/jade/tabs/_usd.jade:59 src/jade/tabs/_usd.jade:62 +msgid "Select your bank" +msgstr "Select your bank" + +#: src/jade/tabs/_usd.jade:77 +msgid "" +"Ripple Trade has partnered with SnapSwap to make USD deposits easier. By " +"continuing, you agree to SnapSwap's {{1}}To contact support, email {{2}}." +msgstr "Ripple Trade has partnered with SnapSwap to make USD deposits easier. By continuing, you agree to SnapSwap's {{1}}To contact support, email {{2}}." + +#: src/jade/tabs/_usd.jade:93 src/jade/tabs/history.jade:178 +msgid "Fee" +msgstr "Fee" + +#: src/jade/tabs/_usd.jade:95 +msgid "Total" +msgstr "Total" + +#: src/jade/tabs/_usd.jade:98 +msgid "Calculating..." +msgstr "Calculating..." + +#: src/jade/tabs/_usd.jade:109 src/jade/tabs/register.jade:126 +#: src/jade/tabs/register.jade:133 +msgid "Back" +msgstr "Back" + +#: src/jade/tabs/_usd.jade:111 src/jade/tabs/btc.jade:73 +#: src/jade/tabs/exchange.jade:111 src/jade/tabs/send.jade:213 +#: src/jade/tabs/trade.jade:67 src/jade/tabs/trade.jade:77 +#: src/jade/tabs/trade.jade:248 src/jade/tabs/trade.jade:407 +#: src/jade/tabs/trust.jade:140 +msgid "Confirm" +msgstr "Confirm" + +#: src/jade/tabs/account/navbar.jade:2 +msgid "Public Information" +msgstr "Public Information" + +#: src/jade/tabs/account/private.jade:1 +msgid "Profile Information" +msgstr "Profile Information" + +#: src/jade/tabs/account/private.jade:3 +msgid "Identity Information" +msgstr "Identity Information" + +#: src/jade/tabs/account/private.jade:8 src/jade/tabs/account/private.jade:17 +msgid "Completed" +msgstr "Completed" + +#: src/jade/tabs/account/private.jade:9 src/jade/tabs/account/private.jade:18 +msgid "Incomplete" +msgstr "Incomplete" + +#: src/jade/tabs/account/private.jade:10 src/jade/tabs/account/private.jade:19 +msgid "Complete your profile" +msgstr "Complete your profile" + +#: src/jade/tabs/account/private.jade:12 +msgid "Identity Questions" +msgstr "Identity Questions" + +#: src/jade/tabs/account/public.jade:1 +msgid "Changing your Ripple name..." +msgstr "Changing your Ripple name..." + +#: src/jade/tabs/account/public.jade:2 +msgid "Your Ripple name has been changed successfully." +msgstr "Your Ripple name has been changed successfully." + +#: src/jade/tabs/account/public.jade:3 +msgid "Account settings" +msgstr "Account settings" + +#: src/jade/tabs/account/public.jade:5 src/jade/tabs/fund/menu.jade:2 +#: src/jade/tabs/login/form.jade:3 +msgid "Ripple name" +msgstr "Ripple name" + +#: src/jade/tabs/account/public.jade:9 src/jade/tabs/advanced.jade:27 +#: src/jade/tabs/advanced.jade:44 src/jade/tabs/advanced.jade:63 +#: src/jade/tabs/advanced.jade:86 src/jade/tabs/advanced.jade:134 +#: src/jade/tabs/contacts.jade:61 src/jade/tabs/security.jade:120 +#: src/jade/tabs/security.jade:180 src/jade/tabs/trust.jade:191 +#: src/jade/tabs/trust.jade:193 +msgid "edit" +msgstr "edit" + +#: src/jade/tabs/account/public.jade:12 +msgid "New Ripple name" +msgstr "New Ripple name" + +#: src/jade/tabs/account/public.jade:17 src/jade/tabs/register.jade:35 +#: src/jade/tabs/widgets/balances.jade:24 +msgid "Available" +msgstr "Available" + +#: src/jade/tabs/account/public.jade:20 src/jade/tabs/register.jade:39 +msgid "Already taken!" +msgstr "Already taken!" + +#: src/jade/tabs/account/public.jade:21 +msgid "Reserved for {{usernameReservedFor}}{{1}}{{2}}" +msgstr "Reserved for {{usernameReservedFor}}{{1}}{{2}}" + +#: src/jade/tabs/account/public.jade:24 src/jade/tabs/register.jade:45 +msgid "Must be at least 2 characters" +msgstr "Must be at least 2 characters" + +#: src/jade/tabs/account/public.jade:25 src/jade/tabs/register.jade:47 +msgid "Must be at most 20 characters" +msgstr "Must be at most 20 characters" + +#: src/jade/tabs/account/public.jade:26 +msgid "Only a-z, 0-9 and hyphen (-)" +msgstr "Only a-z, 0-9 and hyphen (-)" + +#: src/jade/tabs/account/public.jade:27 src/jade/tabs/register.jade:51 +msgid "Cannot start with hyphen (-)" +msgstr "Cannot start with hyphen (-)" + +#: src/jade/tabs/account/public.jade:28 src/jade/tabs/register.jade:53 +msgid "Cannot end with hyphen (-)" +msgstr "Cannot end with hyphen (-)" + +#: src/jade/tabs/account/public.jade:29 +msgid "Cannot bundle hyphens (--)" +msgstr "Cannot bundle hyphens (--)" + +#: src/jade/tabs/account/public.jade:30 src/jade/tabs/register.jade:56 +msgid "Checking..." +msgstr "Checking..." + +#: src/jade/tabs/account/public.jade:32 src/jade/tabs/security.jade:126 +msgid "Current password" +msgstr "Current password" + +#: src/jade/tabs/account/public.jade:35 src/jade/tabs/security.jade:18 +#: src/jade/tabs/security.jade:23 +msgid "Entered password is wrong." +msgstr "Entered password is wrong." + +#: src/jade/tabs/account/public.jade:37 +msgid "Your Ripple name has been changed. Please login again." +msgstr "Your Ripple name has been changed. Please login again." + +#: src/jade/tabs/account/public.jade:39 +msgid "Couldn't change your Ripple name, please try again later." +msgstr "Couldn't change your Ripple name, please try again later." + +#: src/jade/tabs/account/public.jade:47 src/jade/tabs/advanced.jade:36 +#: src/jade/tabs/advanced.jade:53 src/jade/tabs/advanced.jade:77 +#: src/jade/tabs/advanced.jade:94 src/jade/tabs/advanced.jade:124 +#: src/jade/tabs/btc.jade:74 src/jade/tabs/contacts.jade:50 +#: src/jade/tabs/contacts.jade:93 src/jade/tabs/exchange.jade:113 +#: src/jade/tabs/exchange.jade:126 src/jade/tabs/kyc.jade:116 +#: src/jade/tabs/kyc.jade:131 src/jade/tabs/kyc.jade:156 +#: src/jade/tabs/kyc.jade:157 src/jade/tabs/kyc.jade:186 +#: src/jade/tabs/login/form.jade:26 src/jade/tabs/security.jade:79 +#: src/jade/tabs/security.jade:112 src/jade/tabs/security.jade:149 +#: src/jade/tabs/send.jade:215 src/jade/tabs/send.jade:227 +#: src/jade/tabs/send.jade:252 src/jade/tabs/send.jade:286 +#: src/jade/tabs/trade.jade:55 src/jade/tabs/trust.jade:141 +#: src/jade/tabs/trust.jade:143 src/jade/tabs/trust.jade:213 +#: src/jade/tabs/trust.jade:251 +msgid "cancel" +msgstr "cancel" + +#: src/jade/tabs/account/public.jade:49 +msgid "Ripple address" +msgstr "Ripple address" + +#: src/jade/tabs/advanced.jade:8 +msgid "Your blob vault has been changed successfully." +msgstr "Your blob vault has been changed successfully." + +#: src/jade/tabs/advanced.jade:9 +msgid "Your bitcoin bridge has been changed successfully." +msgstr "Your bitcoin bridge has been changed successfully." + +#: src/jade/tabs/advanced.jade:10 +msgid "Trustline advanced settings has been changed successfully." +msgstr "Trustline advanced settings has been changed successfully." + +#: src/jade/tabs/advanced.jade:11 +msgid "Maximum network fee has been changed successfully." +msgstr "Maximum network fee has been changed successfully." + +#: src/jade/tabs/advanced.jade:12 +msgid "A new server has been successfully added." +msgstr "A new server has been successfully added." + +#: src/jade/tabs/advanced.jade:13 +msgid "A server has been successfully removed." +msgstr "A server has been successfully removed." + +#: src/jade/tabs/advanced.jade:14 +msgid "A server has been changed successfully." +msgstr "A server has been changed successfully." + +#: src/jade/tabs/advanced.jade:21 +msgid "Blob vault" +msgstr "Blob vault" + +#: src/jade/tabs/advanced.jade:32 src/jade/tabs/advanced.jade:49 +#: src/jade/tabs/advanced.jade:73 src/jade/tabs/advanced.jade:92 +#: src/jade/tabs/advanced.jade:120 src/jade/tabs/contacts.jade:88 +#: src/jade/tabs/fund.jade:65 src/jade/tabs/security.jade:190 +#: src/jade/tabs/send.jade:251 src/jade/tabs/send.jade:284 +#: src/jade/tabs/trust.jade:119 src/jade/tabs/trust.jade:232 +msgid "Save" +msgstr "Save" + +#: src/jade/tabs/advanced.jade:34 src/jade/tabs/advanced.jade:51 +#: src/jade/tabs/advanced.jade:75 src/jade/tabs/advanced.jade:122 +#: src/jade/tabs/contacts.jade:91 src/jade/tabs/security.jade:198 +msgid "Delete" +msgstr "Delete" + +#: src/jade/tabs/advanced.jade:38 +msgid "Bitcoin bridge" +msgstr "Bitcoin bridge" + +#: src/jade/tabs/advanced.jade:55 +msgid "Trust line" +msgstr "Trust line" + +#: src/jade/tabs/advanced.jade:60 src/jade/tabs/advanced.jade:71 +#: src/jade/tabs/security.jade:162 +msgid "Show" +msgstr "Show" + +#: src/jade/tabs/advanced.jade:61 src/jade/tabs/security.jade:163 +msgid "Hide" +msgstr "Hide" + +#: src/jade/tabs/advanced.jade:78 +msgid "Network settings" +msgstr "Network settings" + +#: src/jade/tabs/advanced.jade:80 +msgid "Maximum network fee" +msgstr "Maximum network fee" + +#: src/jade/tabs/advanced.jade:96 +msgid "Server settings" +msgstr "Server settings" + +#: src/jade/tabs/advanced.jade:101 +msgid "WebSocket host name" +msgstr "WebSocket host name" + +#: src/jade/tabs/advanced.jade:103 +msgid "Port number" +msgstr "Port number" + +#: src/jade/tabs/advanced.jade:109 +msgid "Socket ip or hostname is invalid." +msgstr "Socket ip or hostname is invalid." + +#: src/jade/tabs/advanced.jade:111 +msgid "Port number is invalid." +msgstr "Port number is invalid." + +#: src/jade/tabs/advanced.jade:118 src/jade/tabs/advanced.jade:131 +msgid "Secure" +msgstr "Secure" + +#: src/jade/tabs/advanced.jade:132 +msgid "Not Secure" +msgstr "Not Secure" + +#: src/jade/tabs/advanced.jade:138 +msgid "Add new server" +msgstr "Add new server" + +#: src/jade/tabs/apps.jade:27 +msgid "App Ripple Address" +msgstr "App Ripple Address" + +#: src/jade/tabs/apps.jade:29 +msgid "Please enter a ripple address." +msgstr "Please enter a ripple address." + +#: src/jade/tabs/apps.jade:31 +msgid "Please enter a valid ripple address." +msgstr "Please enter a valid ripple address." + +#: src/jade/tabs/banner/announcement.jade:2 +msgid "Help our team improve Ripple Trade! {{1:Take a quick user survey.}}" +msgstr "Help our team improve Ripple Trade! {{1:Take a quick user survey.}}" + +#: src/jade/tabs/banner/unfunded.jade:2 +msgid "" +"Welcome to Ripple Trade! Your account needs to be activated. You can " +"activate it in 2 ways:" +msgstr "Welcome to Ripple Trade! Your account needs to be activated. You can activate it in 2 ways:" + +#: src/jade/tabs/banner/unfunded.jade:4 +msgid "" +"Have another user send XRP to your Ripple name " +"(~{{userCredentials.username}}). {{1}}" +msgstr "Have another user send XRP to your Ripple name (~{{userCredentials.username}}). {{1}}" + +#: src/jade/tabs/brl.jade:24 src/jade/tabs/eur.jade:24 +#: src/jade/tabs/gold.jade:24 src/jade/tabs/jpy.jade:24 +#: src/jade/tabs/mxn.jade:24 src/jade/tabs/trust.jade:42 +#: src/jade/tabs/usd.jade:24 +msgid "There was an error while saving your changes." +msgstr "There was an error while saving your changes." + +#: src/jade/tabs/brl.jade:28 src/jade/tabs/eur.jade:27 +#: src/jade/tabs/gold.jade:27 src/jade/tabs/jpy.jade:28 +#: src/jade/tabs/mxn.jade:28 src/jade/tabs/trust.jade:45 +#: src/jade/tabs/usd.jade:27 +msgid "You must have at least {{1}} to add a new trust line. {{2}}" +msgstr "You must have at least {{1}} to add a new trust line. {{2}}" + +#: src/jade/tabs/brl.jade:38 +msgid "Brazilian Real Deposit" +msgstr "Brazilian Real Deposit" + +#: src/jade/tabs/brl.jade:41 src/jade/tabs/btc.jade:35 +#: src/jade/tabs/eur.jade:38 src/jade/tabs/gold.jade:40 +#: src/jade/tabs/jpy.jade:41 src/jade/tabs/mxn.jade:41 +#: src/jade/tabs/trust.jade:167 src/jade/tabs/usd.jade:38 +msgid "Gateway" +msgstr "Gateway" + +#: src/jade/tabs/brl.jade:42 src/jade/tabs/eur.jade:48 +#: src/jade/tabs/mxn.jade:81 src/jade/tabs/mxn.jade:93 +#: src/jade/tabs/mxn.jade:103 src/jade/tabs/security.jade:49 +msgid "{{1}}{{2}}" +msgstr "{{1}}{{2}}" + +#: src/jade/tabs/brl.jade:43 +msgid "Ripple (~rippex)" +msgstr "Ripple (~rippex)" + +#: src/jade/tabs/brl.jade:46 src/jade/tabs/btc.jade:39 +#: src/jade/tabs/eur.jade:44 src/jade/tabs/gold.jade:44 +#: src/jade/tabs/jpy.jade:45 src/jade/tabs/mxn.jade:46 +#: src/jade/tabs/usd.jade:44 +msgid "Availability" +msgstr "Availability" + +#: src/jade/tabs/brl.jade:47 +msgid "Brazil" +msgstr "Brazil" + +#: src/jade/tabs/brl.jade:49 src/jade/tabs/btc.jade:42 +#: src/jade/tabs/eur.jade:47 src/jade/tabs/gold.jade:47 +#: src/jade/tabs/jpy.jade:48 src/jade/tabs/mxn.jade:49 +#: src/jade/tabs/usd.jade:47 +msgid "Fees" +msgstr "Fees" + +#: src/jade/tabs/brl.jade:50 src/jade/tabs/jpy.jade:49 +#: src/jade/tabs/kyc.jade:111 src/jade/tabs/kyc.jade:126 +#: src/jade/tabs/kyc.jade:151 +msgid "{{1}}{{2}}{{3}}" +msgstr "{{1}}{{2}}{{3}}" + +#: src/jade/tabs/brl.jade:51 +msgid "Deposit: 1.50 BRL + 0.5%" +msgstr "Deposit: 1.50 BRL + 0.5%" + +#: src/jade/tabs/brl.jade:52 +msgid "Transfer: 0%" +msgstr "Transfer: 0%" + +#: src/jade/tabs/brl.jade:56 src/jade/tabs/btc.jade:45 +#: src/jade/tabs/eur.jade:53 src/jade/tabs/gold.jade:50 +#: src/jade/tabs/jpy.jade:54 src/jade/tabs/mxn.jade:52 +#: src/jade/tabs/usd.jade:50 +msgid "Rating" +msgstr "Rating" + +#: src/jade/tabs/brl.jade:62 +msgid "" +"Ripple Trade has partnered with Rippex to provide easy access to BRL. By " +"continuing, you agree with Rippex's {{1}}Following this action will enable " +"Rippex to hold BRL on your behalf." +msgstr "Ripple Trade has partnered with Rippex to provide easy access to BRL. By continuing, you agree with Rippex's {{1}}Following this action will enable Rippex to hold BRL on your behalf." + +#: src/jade/tabs/brl.jade:69 +msgid "Add Rippex" +msgstr "Add Rippex" + +#: src/jade/tabs/brl.jade:70 +msgid "Adding..." +msgstr "Adding..." + +#: src/jade/tabs/brl.jade:71 src/jade/tabs/eur.jade:65 +#: src/jade/tabs/jpy.jade:64 src/jade/tabs/usd.jade:62 +msgid "Hide instructions" +msgstr "Hide instructions" + +#: src/jade/tabs/brl.jade:72 src/jade/tabs/eur.jade:66 +#: src/jade/tabs/jpy.jade:65 src/jade/tabs/usd.jade:63 +msgid "Show instructions" +msgstr "Show instructions" + +#: src/jade/tabs/brl.jade:75 src/jade/tabs/btc.jade:83 +msgid "{{1}}Not connected" +msgstr "{{1}}Not connected" + +#: src/jade/tabs/brl.jade:78 src/jade/tabs/btc.jade:86 +msgid "{{1}}Connected" +msgstr "{{1}}Connected" + +#: src/jade/tabs/brl.jade:81 src/jade/tabs/eur.jade:71 +#: src/jade/tabs/gold.jade:73 src/jade/tabs/jpy.jade:74 +#: src/jade/tabs/mxn.jade:76 src/jade/tabs/usd.jade:68 +msgid "Your account has to be activated before you can add a gateway account." +msgstr "Your account has to be activated before you can add a gateway account." + +#: src/jade/tabs/brl.jade:84 src/jade/tabs/eur.jade:75 +#: src/jade/tabs/gold.jade:76 src/jade/tabs/jpy.jade:77 +#: src/jade/tabs/mxn.jade:79 src/jade/tabs/usd.jade:72 +msgid "×" +msgstr "×" + +#: src/jade/tabs/brl.jade:85 +msgid "NEW CUSTOMERS- SIGN UP AT RIPPEX" +msgstr "NEW CUSTOMERS- SIGN UP AT RIPPEX" + +#: src/jade/tabs/brl.jade:86 +msgid "" +"{{1}} at Rippex.net to initiate deposits and withdrawals. You will " +"need:{{2}}" +msgstr "{{1}} at Rippex.net to initiate deposits and withdrawals. You will need:{{2}}" + +#: src/jade/tabs/brl.jade:90 +msgid "A {{1}}" +msgstr "A {{1}}" + +#: src/jade/tabs/brl.jade:92 +msgid "A bank account in Brazil." +msgstr "A bank account in Brazil." + +#: src/jade/tabs/brl.jade:96 +msgid "EXISTING RIPPEX CUSTOMERS" +msgstr "EXISTING RIPPEX CUSTOMERS" + +#: src/jade/tabs/brl.jade:97 +msgid "If you have a Rippex account, {{1}}" +msgstr "If you have a Rippex account, {{1}}" + +#: src/jade/tabs/brl.jade:100 +msgid "DEPOSIT INSTRUCTIONS" +msgstr "DEPOSIT INSTRUCTIONS" + +#: src/jade/tabs/brl.jade:101 +msgid "Rippex accepts deposits from all Brazilian banks. Instructions {{1}}" +msgstr "Rippex accepts deposits from all Brazilian banks. Instructions {{1}}" + +#: src/jade/tabs/btc.jade:19 +msgid "Success! You can deposit BTC via your generated BTC receiving address." +msgstr "Success! You can deposit BTC via your generated BTC receiving address." + +#: src/jade/tabs/btc.jade:21 +msgid "There was an error with your request. {{1}}" +msgstr "There was an error with your request. {{1}}" + +#: src/jade/tabs/btc.jade:30 +msgid "Bitcoin Deposit" +msgstr "Bitcoin Deposit" + +#: src/jade/tabs/btc.jade:36 +msgid "btc2ripple (~snapswap) {{1}}" +msgstr "btc2ripple (~snapswap) {{1}}" + +#: src/jade/tabs/btc.jade:40 src/jade/tabs/gold.jade:45 +#: src/jade/tabs/jpy.jade:46 +msgid "All countries" +msgstr "All countries" + +#: src/jade/tabs/btc.jade:43 src/jade/tabs/mxn.jade:50 +msgid "0%" +msgstr "0%" + +#: src/jade/tabs/btc.jade:50 +msgid "" +"Ripple Trade has partnered with btc2ripple to make depositing BTC easier. By" +" proceeding, you agree to the btc2ripple {{1}} Following this action will " +"allow btc2ripple to hold BTC on your behalf." +msgstr "Ripple Trade has partnered with btc2ripple to make depositing BTC easier. By proceeding, you agree to the btc2ripple {{1}} Following this action will allow btc2ripple to hold BTC on your behalf." + +#: src/jade/tabs/btc.jade:56 +msgid "Add btc2ripple" +msgstr "Add btc2ripple" + +#: src/jade/tabs/btc.jade:60 src/jade/tabs/security.jade:64 +#: src/jade/tabs/trust.jade:123 +msgid "Connect" +msgstr "Connect" + +#: src/jade/tabs/btc.jade:62 +msgid "btc2ripple would like to:" +msgstr "btc2ripple would like to:" + +#: src/jade/tabs/btc.jade:64 +msgid "- Receive your email address {{1}}" +msgstr "- Receive your email address {{1}}" + +#: src/jade/tabs/btc.jade:65 +msgid "({{userBlob.data.email}})" +msgstr "({{userBlob.data.email}})" + +#: src/jade/tabs/btc.jade:66 +msgid "- Hold deposited BTC on your behalf" +msgstr "- Hold deposited BTC on your behalf" + +#: src/jade/tabs/btc.jade:67 +msgid "By proceeding, you agree to the btc2ripple {{1}}" +msgstr "By proceeding, you agree to the btc2ripple {{1}}" + +#: src/jade/tabs/btc.jade:75 +msgid "" +"SnapSwap's btc2ripple service is currently unavailable. Please check back " +"later." +msgstr "SnapSwap's btc2ripple service is currently unavailable. Please check back later." + +#: src/jade/tabs/btc.jade:94 +msgid "Personal Deposit address" +msgstr "Personal Deposit address" + +#: src/jade/tabs/btc.jade:96 +msgid "Your account is fully verified." +msgstr "Your account is fully verified." + +#: src/jade/tabs/btc.jade:104 +msgid "Withdrawal instructions" +msgstr "Withdrawal instructions" + +#: src/jade/tabs/btc.jade:105 +msgid "" +"To withdraw to a BTC address, go to the Send tab and enter the BTC address. " +"Using the btc2ripple service, you will be able tosend to that BTC address." +msgstr "To withdraw to a BTC address, go to the Send tab and enter the BTC address. Using the btc2ripple service, you will be able tosend to that BTC address." + +#: src/jade/tabs/btc.jade:110 +msgid "Waiting for response from SnapSwap service..." +msgstr "Waiting for response from SnapSwap service..." + +#: src/jade/tabs/btc.jade:112 +msgid "" +"To deposit, generate a bitcoin receiving address using the {{1}} service " +"powered by SnapSwap." +msgstr "To deposit, generate a bitcoin receiving address using the {{1}} service powered by SnapSwap." + +#: src/jade/tabs/contacts.jade:8 +msgid "A new contact has been successfully added." +msgstr "A new contact has been successfully added." + +#: src/jade/tabs/contacts.jade:9 +msgid "Your contact has been successfully updated." +msgstr "Your contact has been successfully updated." + +#: src/jade/tabs/contacts.jade:10 +msgid "A contact has been successfully removed." +msgstr "A contact has been successfully removed." + +#: src/jade/tabs/contacts.jade:12 src/jade/tabs/contacts.jade:24 +msgid "Contact" +msgstr "Contact" + +#: src/jade/tabs/contacts.jade:13 src/jade/tabs/contacts.jade:32 +msgid "Ripple name or address" +msgstr "Ripple name or address" + +#: src/jade/tabs/contacts.jade:15 src/jade/tabs/contacts.jade:19 +#: src/jade/tabs/contacts.jade:48 +msgid "Add contact" +msgstr "Add contact" + +#: src/jade/tabs/contacts.jade:27 src/jade/tabs/send.jade:245 +#: src/jade/tabs/send.jade:277 +msgid "Please enter a contact." +msgstr "Please enter a contact." + +#: src/jade/tabs/contacts.jade:28 +msgid "This contact already exists." +msgstr "This contact already exists." + +#: src/jade/tabs/contacts.jade:36 +msgid "Please enter a Ripple name." +msgstr "Please enter a Ripple name." + +#: src/jade/tabs/contacts.jade:37 src/jade/tabs/contacts.jade:45 +msgid "" +"You already have a contact with the same Ripple name and/or the same " +"Destination tag." +msgstr "You already have a contact with the same Ripple name and/or the same Destination tag." + +#: src/jade/tabs/contacts.jade:38 +msgid "Not a valid Ripple name or address." +msgstr "Not a valid Ripple name or address." + +#: src/jade/tabs/contacts.jade:41 src/jade/tabs/contacts.jade:81 +#: src/jade/tabs/send.jade:42 src/jade/tabs/tx.jade:56 +msgid "Destination tag" +msgstr "Destination tag" + +#: src/jade/tabs/contacts.jade:42 +msgid "Leave blank if not applicable" +msgstr "Leave blank if not applicable" + +#: src/jade/tabs/contacts.jade:44 src/jade/tabs/send.jade:46 +msgid "Invalid destination tag" +msgstr "Invalid destination tag" + +#: src/jade/tabs/contacts.jade:72 +msgid "You already have a contact with the same name." +msgstr "You already have a contact with the same name." + +#: src/jade/tabs/contacts.jade:78 +msgid "You already have this address." +msgstr "You already have this address." + +#: src/jade/tabs/contacts.jade:79 src/jade/tabs/debug.jade:14 +msgid "Not a valid address." +msgstr "Not a valid address." + +#: src/jade/tabs/contacts.jade:84 +msgid "Invalid destination tag." +msgstr "Invalid destination tag." + +#: src/jade/tabs/contacts.jade:94 +msgid "" +"You don't have any contacts yet. Click on 'Add contact' button in the top " +"right corner to add a new contact." +msgstr "You don't have any contacts yet. Click on 'Add contact' button in the top right corner to add a new contact." + +#: src/jade/tabs/debug.jade:9 +msgid "Enter a Ripple name or address" +msgstr "Enter a Ripple name or address" + +#: src/jade/tabs/debug.jade:13 +msgid "Please enter an address." +msgstr "Please enter an address." + +#: src/jade/tabs/debug.jade:17 +msgid "Turn on debug mode" +msgstr "Turn on debug mode" + +#: src/jade/tabs/eur.jade:35 +msgid "Euro Deposit" +msgstr "Euro Deposit" + +#: src/jade/tabs/eur.jade:39 +msgid "SnapSwap EU (~SnapSwap){{1}}{{2}}" +msgstr "SnapSwap EU (~SnapSwap){{1}}{{2}}" + +#: src/jade/tabs/eur.jade:45 +msgid "All countries, except USA" +msgstr "All countries, except USA" + +#: src/jade/tabs/eur.jade:49 +msgid "€ 0.31 – € 15.00" +msgstr "€ 0.31 – € 15.00" + +#: src/jade/tabs/eur.jade:59 +msgid "" +"Ripple Trade has partnered with SnapSwap to provide easier access to EUR. " +"Following this action will enable SnapSwap to hold EUR on your behalf." +msgstr "Ripple Trade has partnered with SnapSwap to provide easier access to EUR. Following this action will enable SnapSwap to hold EUR on your behalf." + +#: src/jade/tabs/eur.jade:69 src/jade/tabs/usd.jade:66 +msgid "Not connected" +msgstr "Not connected" + +#: src/jade/tabs/eur.jade:70 src/jade/tabs/usd.jade:67 +msgid "Connected" +msgstr "Connected" + +#: src/jade/tabs/eur.jade:76 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.EU" +msgstr "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.EU" + +#: src/jade/tabs/eur.jade:77 +msgid "Register and verify your account at SnapSwap EU. You will need: {{1}}" +msgstr "Register and verify your account at SnapSwap EU. You will need: {{1}}" + +#: src/jade/tabs/eur.jade:81 src/jade/tabs/usd.jade:78 +msgid "" +"A valid government-issued ID: driver license, passport, ID card, or visa " +"stamp." +msgstr "A valid government-issued ID: driver license, passport, ID card, or visa stamp." + +#: src/jade/tabs/eur.jade:83 src/jade/tabs/usd.jade:80 +msgid "A proof of address: driver license, utility bill, bank statement, etc." +msgstr "A proof of address: driver license, utility bill, bank statement, etc." + +#: src/jade/tabs/eur.jade:85 +msgid "EXISTING SNAPSWAP EU CUSTOMERS" +msgstr "EXISTING SNAPSWAP EU CUSTOMERS" + +#: src/jade/tabs/eur.jade:89 src/jade/tabs/jpy.jade:94 +#: src/jade/tabs/usd.jade:86 +msgid "Login to your account {{1}}" +msgstr "Login to your account {{1}}" + +#: src/jade/tabs/eur.jade:92 src/jade/tabs/jpy.jade:96 +msgid "DEPOSITS AND WITHDRAWALS:" +msgstr "DEPOSITS AND WITHDRAWALS:" + +#: src/jade/tabs/eur.jade:96 +msgid "Deposit from your bank (2-4 business days)" +msgstr "Deposit from your bank (2-4 business days)" + +#: src/jade/tabs/eur.jade:98 +msgid "Withdraw to your bank account in SEPA (2-4 business days)" +msgstr "Withdraw to your bank account in SEPA (2-4 business days)" + +#: src/jade/tabs/eur.jade:100 +msgid "Withdraw to SmartyCash Card (instant)" +msgstr "Withdraw to SmartyCash Card (instant)" + +#: src/jade/tabs/exchange.jade:13 +msgid "You have to be funded before you can exchange money" +msgstr "You have to be funded before you can exchange money" + +#: src/jade/tabs/exchange.jade:23 +msgid "Buy (Market Order)" +msgstr "Buy (Market Order)" + +#: src/jade/tabs/exchange.jade:24 +msgid "" +"Submit a buy order at the current market rate. Orders will execute " +"instantly." +msgstr "Submit a buy order at the current market rate. Orders will execute instantly." + +# Receive (amount) +#: src/jade/tabs/exchange.jade:27 +msgid "Receive (amount)" +msgstr "I want to buy" + +#: src/jade/tabs/exchange.jade:34 src/jade/tabs/widgets/balances.jade:49 +msgid "add gateway" +msgstr "add gateway" + +#: src/jade/tabs/exchange.jade:37 src/jade/tabs/send.jade:90 +msgid "Please enter an amount." +msgstr "Please enter an amount." + +#: src/jade/tabs/exchange.jade:38 src/jade/tabs/send.jade:91 +#: src/jade/tabs/trade.jade:153 src/jade/tabs/trade.jade:168 +#: src/jade/tabs/trade.jade:183 src/jade/tabs/trust.jade:101 +msgid "Not a valid amount." +msgstr "Not a valid amount." + +#: src/jade/tabs/exchange.jade:39 +msgid "" +"You are either trying to convert too little or too much XRP.Minimum amount " +"is 0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "You are either trying to convert too little or too much XRP.Minimum amount is 0.000001 XRP and maximum amount is 100 billion XRP." + +#: src/jade/tabs/exchange.jade:42 src/jade/tabs/send.jade:96 +#: src/jade/tabs/trust.jade:103 +msgid "Your amount has too many digits. The max number of digits is 16." +msgstr "Your amount has too many digits. The max number of digits is 16." + +#: src/jade/tabs/exchange.jade:43 +msgid "Please enter an amount greater than zero." +msgstr "Please enter an amount greater than zero." + +#: src/jade/tabs/exchange.jade:46 +msgid "{{1}} Calculating..." +msgstr "{{1}} Calculating..." + +#: src/jade/tabs/exchange.jade:50 +msgid "" +"Cannot convert to {{exchange.amount}} {{exchange.currency_name}}. Please " +"make sure your account has enough funds, and a {{1}} to a " +"{{exchange.currency_name}} gateway." +msgstr "Cannot convert to {{exchange.amount}} {{exchange.currency_name}}. Please make sure your account has enough funds, and a {{1}} to a {{exchange.currency_name}} gateway." + +#: src/jade/tabs/exchange.jade:54 +msgid "" +"Sorry! Cannot convert {{exchange.amount}} {{exchange.currency_name}}. Please" +" make sure your account has enough funds." +msgstr "Sorry! Cannot convert {{exchange.amount}} {{exchange.currency_name}}. Please make sure your account has enough funds." + +#: src/jade/tabs/exchange.jade:56 src/jade/tabs/send.jade:142 +msgid "Error while calculating path" +msgstr "Error while calculating path" + +#: src/jade/tabs/exchange.jade:60 +msgid "Exchange" +msgstr "Exchange" + +#: src/jade/tabs/exchange.jade:72 +msgid "Exchange {{ alt.amount | rpcurrency }} {{1}}" +msgstr "Exchange {{ alt.amount | rpcurrency }} {{1}}" + +#: src/jade/tabs/exchange.jade:78 src/jade/tabs/send.jade:170 +msgid "Paths last updated {{1}} {{2: seconds}} {{3: second}} ago" +msgstr "Paths last updated {{1}} {{2: seconds}} {{3: second}} ago" + +#: src/jade/tabs/exchange.jade:89 +msgid "Ripple is calculating a path for your conversion." +msgstr "Ripple is calculating a path for your conversion." + +#: src/jade/tabs/exchange.jade:94 +msgid "" +"{{1:You are exchanging}}{{2}}{{3:to}}{{4}}{{5:You will pay at " +"most}}{{6}}{{7:Are you sure?}}" +msgstr "{{1:You are exchanging}}{{2}}{{3:to}}{{4}}{{5:You will pay at most}}{{6}}{{7:Are you sure?}}" + +#: src/jade/tabs/exchange.jade:139 +msgid "Do another conversion" +msgstr "Do another conversion" + +#: src/jade/tabs/exchange.jade:141 src/jade/tabs/send.jade:257 +#: src/jade/tabs/send.jade:291 +msgid "Back to balance" +msgstr "Back to balance" + +#: src/jade/tabs/fund.jade:20 +msgid "Add trust" +msgstr "Add trust" + +#: src/jade/tabs/fund.jade:27 src/jade/tabs/send.jade:26 +msgid "Enter a Ripple name or contact" +msgstr "Enter a Ripple name or contact" + +#: src/jade/tabs/fund.jade:33 src/jade/tabs/trust.jade:73 +msgid "Account does not meet the minimum XRP reserve." +msgstr "Account does not meet the minimum XRP reserve." + +#: src/jade/tabs/fund.jade:36 src/jade/tabs/trust.jade:76 +msgid "Please enter a Ripple name, contact, or address." +msgstr "Please enter a Ripple name, contact, or address." + +#: src/jade/tabs/fund.jade:37 src/jade/tabs/trust.jade:77 +msgid "You've entered your own address." +msgstr "You've entered your own address." + +#: src/jade/tabs/fund.jade:38 src/jade/tabs/trust.jade:78 +msgid "Please enter a valid Ripple name, contact, or address." +msgstr "Please enter a valid Ripple name, contact, or address." + +#: src/jade/tabs/fund.jade:48 src/jade/tabs/trust.jade:80 +msgid "Amount field is required" +msgstr "Amount field is required" + +#: src/jade/tabs/fund.jade:50 src/jade/tabs/trust.jade:82 +#: src/jade/tabs/trust.jade:105 +msgid "" +"XRP can be sent without extending trust. If you really want to trust in XRP," +" please use XRR currency code." +msgstr "XRP can be sent without extending trust. If you really want to trust in XRP, please use XRR currency code." + +#: src/jade/tabs/fund.jade:53 src/jade/tabs/trust.jade:85 +#: src/jade/tabs/trust.jade:108 +msgid "Currency field is required" +msgstr "Currency field is required" + +#: src/jade/tabs/fund.jade:59 src/jade/tabs/fund.jade:60 +#: src/jade/tabs/trust.jade:114 src/jade/tabs/trust.jade:115 +msgid "Allow Rippling" +msgstr "Allow Rippling" + +#: src/jade/tabs/fund.jade:60 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"trust. More " +"information" +msgstr "Allow this trust line's balances to be transferred to another issuer you trust. More information" + +#: src/jade/tabs/fund.jade:63 +msgid "Cancel" +msgstr "Cancel" + +#: src/jade/tabs/fund/menu.jade:3 +msgid "{{1}}XRP" +msgstr "{{1}}XRP" + +#: src/jade/tabs/fund/menu.jade:6 +msgid "Featured gateways" +msgstr "Featured gateways" + +#: src/jade/tabs/fund/menu.jade:7 +msgid "{{1}}BRL" +msgstr "{{1}}BRL" + +#: src/jade/tabs/fund/menu.jade:10 +msgid "{{1}}BTC" +msgstr "{{1}}BTC" + +#: src/jade/tabs/fund/menu.jade:13 +msgid "{{1}}EUR" +msgstr "{{1}}EUR" + +#: src/jade/tabs/fund/menu.jade:16 +msgid "{{1}}JPY" +msgstr "{{1}}JPY" + +#: src/jade/tabs/fund/menu.jade:19 +msgid "{{1}}MXN" +msgstr "{{1}}MXN" + +#: src/jade/tabs/fund/menu.jade:22 +msgid "{{1}}USD" +msgstr "{{1}}USD" + +#: src/jade/tabs/fund/menu.jade:25 +msgid "{{1}}XAU" +msgstr "{{1}}XAU" + +#: src/jade/tabs/fund/menu.jade:28 +msgid "Add any gateway" +msgstr "Add any gateway" + +#: src/jade/tabs/fund/menu.jade:30 +msgid "Learn more about gateways" +msgstr "Learn more about gateways" + +#: src/jade/tabs/gold.jade:37 +msgid "Gold Deposit" +msgstr "Gold Deposit" + +#: src/jade/tabs/gold.jade:41 +msgid "Gold Bullion International (~gbi) {{1}}" +msgstr "Gold Bullion International (~gbi) {{1}}" + +#: src/jade/tabs/gold.jade:48 +msgid "0.5% per year" +msgstr "0.5% per year" + +#: src/jade/tabs/gold.jade:56 +msgid "" +"Ripple Trade has partnered with GBI to provide easy access toXAU. By " +"continuing, you are allowing GBI to hold gold on your behalf." +msgstr "Ripple Trade has partnered with GBI to provide easy access toXAU. By continuing, you are allowing GBI to hold gold on your behalf." + +#: src/jade/tabs/gold.jade:67 src/jade/tabs/jpy.jade:68 +#: src/jade/tabs/mxn.jade:70 +msgid "{{1}} Not connected" +msgstr "{{1}} Not connected" + +#: src/jade/tabs/gold.jade:70 src/jade/tabs/jpy.jade:71 +#: src/jade/tabs/mxn.jade:73 +msgid "{{1}} Connected" +msgstr "{{1}} Connected" + +#: src/jade/tabs/gold.jade:77 +msgid "Deposit" +msgstr "Deposit" + +#: src/jade/tabs/gold.jade:78 +msgid "" +"GBI does not currently support direct deposits. You can {{1}} or {{2}}." +msgstr "GBI does not currently support direct deposits. You can {{1}} or {{2}}." + +#: src/jade/tabs/gold.jade:84 +msgid "Withdrawal" +msgstr "Withdrawal" + +#: src/jade/tabs/gold.jade:85 +msgid "" +"You can redeem the physical gold in 1 oz increments.To do so, you'll need to" +" {{1}} and arrange to have the gold shipped to you." +msgstr "You can redeem the physical gold in 1 oz increments.To do so, you'll need to {{1}} and arrange to have the gold shipped to you." + +#: src/jade/tabs/history.jade:11 +msgid "Loading History" +msgstr "Loading History" + +#: src/jade/tabs/history.jade:16 +msgid "Your account history is empty" +msgstr "Your account history is empty" + +#: src/jade/tabs/history.jade:24 +msgid "Transaction type{{1}}{{2}}" +msgstr "Transaction type{{1}}{{2}}" + +#: src/jade/tabs/history.jade:37 +msgid "Date{{1}}{{2}}" +msgstr "Date{{1}}{{2}}" + +#: src/jade/tabs/history.jade:42 +msgid "Load history for specific date range" +msgstr "Load history for specific date range" + +#: src/jade/tabs/history.jade:48 +msgid "From" +msgstr "From" + +#: src/jade/tabs/history.jade:54 +msgid "To" +msgstr "To" + +#: src/jade/tabs/history.jade:57 +msgid "Filter" +msgstr "Filter" + +#: src/jade/tabs/history.jade:64 +msgid "Date" +msgstr "Date" + +#: src/jade/tabs/history.jade:65 src/jade/tabs/history.jade:170 +msgid "Description" +msgstr "Description" + +#: src/jade/tabs/history.jade:68 src/jade/tabs/history.jade:73 +msgid "Export to CSV" +msgstr "Export to CSV" + +#: src/jade/tabs/history.jade:69 +msgid "Sorry, no transactions match your current filter." +msgstr "Sorry, no transactions match your current filter." + +#: src/jade/tabs/history.jade:91 +msgid "You sent{{1}}to{{2}}" +msgstr "You sent{{1}}to{{2}}" + +#: src/jade/tabs/history.jade:97 +msgid "{{1}}sent you{{2}}" +msgstr "{{1}}sent you{{2}}" + +#: src/jade/tabs/history.jade:103 +msgid "You requested to exchange{{1}}to{{2}}" +msgstr "You requested to exchange{{1}}to{{2}}" + +#: src/jade/tabs/history.jade:109 +msgid "{{1}}now trusts you for{{2}}" +msgstr "{{1}}now trusts you for{{2}}" + +#: src/jade/tabs/history.jade:122 src/jade/tabs/history/effects.jade:45 +msgid "You created an order to sell{{1}}for{{2}}" +msgstr "You created an order to sell{{1}}for{{2}}" + +#: src/jade/tabs/history.jade:126 src/jade/tabs/history/effects.jade:49 +msgid "You created an order to buy{{1}}for{{2}}" +msgstr "You created an order to buy{{1}}for{{2}}" + +#: src/jade/tabs/history.jade:132 +msgid "You cancelled an order accepting {{1}}for{{2}}" +msgstr "You cancelled an order accepting {{1}}for{{2}}" + +#: src/jade/tabs/history.jade:145 +msgid "Unknown transaction" +msgstr "Unknown transaction" + +#: src/jade/tabs/history.jade:148 +msgid "" +"The client failed to parse this transaction. The developers have been " +"notified of the issue." +msgstr "The client failed to parse this transaction. The developers have been notified of the issue." + +#: src/jade/tabs/history.jade:153 +msgid "{{1}} sent you{{2}} and activated your account!" +msgstr "{{1}} sent you{{2}} and activated your account!" -#: src/jade/tabs/balance.jade:16 -msgid "Welcome to Ripple." -msgstr "Welcome to Ripple." +#: src/jade/tabs/history.jade:160 +msgid "You deposited{{1}} using {{entry.details.app.name}}" +msgstr "You deposited{{1}} using {{entry.details.app.name}}" -#: src/jade/tabs/balance.jade:17 -msgid "You currently don't have any ripples (XRP). To get started you can:" -msgstr "" -"You currently don't have any ripples (XRP). To get started you can:" +#: src/jade/tabs/history.jade:168 +msgid "Balance Changes" +msgstr "Balance Changes" -#: src/jade/tabs/balance.jade:24 -msgid "XRP - Ripple" -msgstr "XRP - Ripple" +#: src/jade/tabs/history.jade:171 +msgid "Issuer" +msgstr "Issuer" -#: src/jade/tabs/balance.jade:35 -msgid "Activity" -msgstr "Activity" +#: src/jade/tabs/history.jade:173 +msgid "Final balance" +msgstr "Final balance" -#: src/jade/tabs/balance.jade:39 -msgid "Loading activity..." -msgstr "Loading activity..." +#: src/jade/tabs/history.jade:176 +msgid "XRP Balance Change" +msgstr "XRP Balance Change" -#: src/jade/tabs/balance.jade:43 src/jade/tabs/history.jade:83 -msgid "Date" -msgstr "Date" +#: src/jade/tabs/history.jade:177 +msgid "{{effect.currency}} Balance Change" +msgstr "{{effect.currency}} Balance Change" -#: src/jade/tabs/balance.jade:44 -msgid "Event" -msgstr "Event" +#: src/jade/tabs/history.jade:183 +msgid "Transaction details" +msgstr "Transaction details" -#: src/jade/tabs/balance.jade:50 src/jade/tabs/history.jade:101 -msgid "You sent {{1}} {{2}}" -msgstr "You sent {{1}} {{2}}" +#: src/jade/tabs/history.jade:184 +msgid "Add {{1}} to contact list" +msgstr "Add {{1}} to contact list" -#: src/jade/tabs/balance.jade:54 src/jade/tabs/balance.jade:63 -#: src/jade/tabs/balance.jade:81 src/jade/tabs/balance.jade:92 -msgid "Add to contacts" -msgstr "Add to contacts" +#: src/jade/tabs/history.jade:189 +msgid "{{1}} Loading more" +msgstr "{{1}} Loading more" -#: src/jade/tabs/balance.jade:59 -msgid "{{entry.transaction.counterparty | rpcontactname}} sent you" -msgstr "{{entry.transaction.counterparty | rpcontactname}} sent you" +#: src/jade/tabs/history.jade:192 src/jade/tabs/trade.jade:500 +msgid "Load more" +msgstr "Load more" -#: src/jade/tabs/balance.jade:68 src/jade/tabs/history.jade:112 -msgid "You requested to convert {{1}} to {{2}}" -msgstr "You requested to convert {{1}} to {{2}}" +#: src/jade/tabs/history.jade:193 +msgid "No more transactions left" +msgstr "No more transactions left" -#: src/jade/tabs/balance.jade:76 -msgid "{{entry.transaction.counterparty | rpcontactname}} now trusts you for" -msgstr "{{entry.transaction.counterparty | rpcontactname}} now trusts you for" +#: src/jade/tabs/history/effects.jade:4 src/jade/tabs/history/effects.jade:19 +msgid "You sold{{1}}for{{2}}" +msgstr "You sold{{1}}for{{2}}" -#: src/jade/tabs/balance.jade:86 -msgid "You now trust {{1}} {{2}}" -msgstr "You now trust {{1}} {{2}}" +#: src/jade/tabs/history/effects.jade:8 src/jade/tabs/history/effects.jade:23 +msgid "You bought{{1}}for{{2}}" +msgstr "You bought{{1}}for{{2}}" -#: src/jade/tabs/balance.jade:97 src/jade/tabs/balance/effects.jade:17 -#: src/jade/tabs/history.jade:130 src/jade/tabs/history/effects.jade:17 -msgid "You created an offer accepting {{1}} for {{2}}" -msgstr "You created an offer accepting {{1}} for {{2}}" +#: src/jade/tabs/history/effects.jade:13 src/jade/tabs/history/effects.jade:28 +msgid "price" +msgstr "price" -#: src/jade/tabs/balance.jade:105 src/jade/tabs/balance/effects.jade:13 -#: src/jade/tabs/history.jade:136 src/jade/tabs/history/effects.jade:13 -msgid "You cancelled an offer accepting {{1}} for {{2}}" -msgstr "You cancelled an offer accepting {{1}} for {{2}}" +#: src/jade/tabs/history/effects.jade:17 +msgid "This order has been filled." +msgstr "This order has been filled." -#: src/jade/tabs/balance.jade:112 -msgid "Account details have been changed" -msgstr "Account details have been changed" +#: src/jade/tabs/history/effects.jade:32 +msgid "The rest of your order has been cancelled due to lack of funds." +msgstr "The rest of your order has been cancelled due to lack of funds." -#: src/jade/tabs/balance.jade:120 src/jade/tabs/history.jade:171 -msgid "Load more" -msgstr "Load more" +#: src/jade/tabs/history/effects.jade:33 +msgid "This order has{{1}}remaining." +msgstr "This order has{{1}}remaining." -#: src/jade/tabs/balance.jade:122 -msgid "Error" -msgstr "Error" +#: src/jade/tabs/history/effects.jade:39 +msgid "Order ({{1}} for {{2}}) has been cancelled due to lack of funds." +msgstr "Order ({{1}} for {{2}}) has been cancelled due to lack of funds." -#: src/jade/tabs/balance.jade:123 -msgid "No past transactions found" -msgstr "No past transactions found" +#: src/jade/tabs/history/effects.jade:53 +msgid "You bought{{1}}for{{2}}({{3:price}}{{4}})." +msgstr "You bought{{1}}for{{2}}({{3:price}}{{4}})." -#: src/jade/tabs/balance/effects.jade:3 src/jade/tabs/history/effects.jade:3 -msgid "You sold {{1}} for {{2}} This order has been funded." -msgstr "You sold {{1}} for {{2}} This order has been funded." +#: src/jade/tabs/history/effects.jade:68 +msgid "{{1}}is trusting you for{{2}}." +msgstr "{{1}}is trusting you for{{2}}." -#: src/jade/tabs/balance/effects.jade:8 src/jade/tabs/history/effects.jade:8 -msgid "You sold {{1}} for {{2}} {{3}}" -msgstr "You sold {{1}} for {{2}} {{3}}" +#: src/jade/tabs/history/effects.jade:73 +msgid "You have changed {{1}}trust for{{2}}from{{3}}to{{4}}." +msgstr "You have changed {{1}}trust for{{2}}from{{3}}to{{4}}." -#: src/jade/tabs/balance/effects.jade:12 src/jade/tabs/history/effects.jade:12 -msgid "" -"This order has {{effect.remaining | rpamount}} {{effect.remaining | " -"rpcurrency}} remaining." -msgstr "" -"This order has {{effect.remaining | rpamount}} {{effect.remaining | " -"rpcurrency}} remaining." +#: src/jade/tabs/history/effects.jade:83 +msgid "{{1}}changed the{{2}}trust from{{3}}to{{4}}." +msgstr "{{1}}changed the{{2}}trust from{{3}}to{{4}}." -#: src/jade/tabs/balance/effects.jade:21 src/jade/tabs/history/effects.jade:21 -msgid "You bought {{1}} for {{2}}" -msgstr "You bought {{1}} for {{2}}" +#: src/jade/tabs/history/effects.jade:92 +msgid "Trust balance between you and{{1}}has been changed by{{2}}." +msgstr "Trust balance between you and{{1}}has been changed by{{2}}." -#: src/jade/tabs/balance/effects.jade:26 src/jade/tabs/history/effects.jade:26 -msgid "" -"You now trust {{effect.counterparty | rpcontactname}} for {{effect.limit | " -"rpamount}} {{effect.limit | rpcurrency}}" -msgstr "" -"You now trust {{effect.counterparty | rpcontactname}} for {{effect.limit | " -"rpamount}} {{effect.limit | rpcurrency}}" +#: src/jade/tabs/history/effects.jade:99 +msgid "Your balance has been changed by{{1}}." +msgstr "Your balance has been changed by{{1}}." -#: src/jade/tabs/balance/effects.jade:28 src/jade/tabs/history/effects.jade:28 -msgid "" -"{{effect.counterparty | rpcontactname}} is trusting you for {{effect.limit " -"| rpamount}} {{effect.limit | rpcurrency}}" -msgstr "" -"{{effect.counterparty | rpcontactname}} is trusting you for {{effect.limit " -"| rpamount}} {{effect.limit | rpcurrency}}" +#: src/jade/tabs/jpy.jade:38 +msgid "Japanese Yen Deposit" +msgstr "Japanese Yen Deposit" -#: src/jade/tabs/balance/effects.jade:30 src/jade/tabs/history/effects.jade:30 -msgid "" -"You have changed {{effect.limit | rpcurrency}} trust for {{effect." -"counterparty | rpcontactname}} from {{effect.prevLimit | rpamount}} to " -"{{effect.limit | rpamount}}" -msgstr "" -"You have changed {{effect.limit | rpcurrency}} trust for {{effect." -"counterparty | rpcontactname}} from {{effect.prevLimit | rpamount}} to " -"{{effect.limit | rpamount}}" +#: src/jade/tabs/jpy.jade:42 +msgid "Tokyo JPY Issuer (~tokyojpy) {{1}}" +msgstr "Tokyo JPY Issuer (~tokyojpy) {{1}}" -#: src/jade/tabs/balance/effects.jade:33 src/jade/tabs/history/effects.jade:33 +#: src/jade/tabs/jpy.jade:59 msgid "" -"{{effect.counterparty | rpcontactname}} changed the {{effect.limit | " -"rpcurrency}} trust from {{effect.prevLimit | rpamount}} to {{effect.limit | " -"rpamount}}" -msgstr "" -"{{effect.counterparty | rpcontactname}} changed the {{effect.limit | " -"rpcurrency}} trust from {{effect.prevLimit | rpamount}} to {{effect.limit | " -"rpamount}}" +"Ripple Trade has partnered with Tokyo JPY Issuer to provide easier access to" +" JPY. Following this action will enable Tokyo JPY Issuer to hold JPY on your" +" behalf." +msgstr "Ripple Trade has partnered with Tokyo JPY Issuer to provide easier access to JPY. Following this action will enable Tokyo JPY Issuer to hold JPY on your behalf." -#: src/jade/tabs/balance/effects.jade:36 src/jade/tabs/history/effects.jade:36 -msgid "" -"Trust balance between you and {{effect.counterparty | rpcontactname}} has " -"been changed by {{effect.amount | rpamount}} {{effect.amount | rpcurrency}}" -msgstr "" -"Trust balance between you and {{effect.counterparty | rpcontactname}} has " -"been changed by {{effect.amount | rpamount}} {{effect.amount | rpcurrency}}" +#: src/jade/tabs/jpy.jade:78 +msgid "NEW CUSTOMERS- SIGN UP AT TOKYO JPY ISSUER" +msgstr "NEW CUSTOMERS- SIGN UP AT TOKYO JPY ISSUER" -#: src/jade/tabs/balance/effects.jade:40 src/jade/tabs/history/effects.jade:40 -msgid "" -"Your balance has been changed by {{effect.amount | rpamount}} {{effect." -"amount | rpcurrency}}" -msgstr "" -"Your balance has been changed by {{effect.amount | rpamount}} {{effect." -"amount | rpcurrency}}" +#: src/jade/tabs/jpy.jade:79 +msgid "{{1}}at Tokyo JPY Issuer. You will need:{{2}}" +msgstr "{{1}}at Tokyo JPY Issuer. You will need:{{2}}" -#: src/jade/tabs/contacts.jade:4 src/jade/tabs/contacts.jade:15 -msgid "Name" -msgstr "Name" +#: src/jade/tabs/jpy.jade:84 +msgid "A valid government-issued ID." +msgstr "A valid government-issued ID." -#: src/jade/tabs/contacts.jade:5 src/jade/tabs/contacts.jade:22 -msgid "Address" -msgstr "Address" +#: src/jade/tabs/jpy.jade:86 +msgid "A proof of address (utility bill, etc)." +msgstr "A proof of address (utility bill, etc)." -#: src/jade/tabs/contacts.jade:7 src/jade/tabs/contacts.jade:10 -#: src/jade/tabs/contacts.jade:37 src/jade/tabs/login.jade:45 -#: src/jade/tabs/login.jade:44 -msgid "Add contact" -msgstr "Add contact" +#: src/jade/tabs/jpy.jade:88 +msgid "A bank account under the same name." +msgstr "A bank account under the same name." -#: src/jade/tabs/contacts.jade:18 -msgid "Please enter a name." -msgstr "Please enter a name." +#: src/jade/tabs/jpy.jade:90 +msgid "EXISTING TOKYO JPY ISSUER CUSTOMERS" +msgstr "EXISTING TOKYO JPY ISSUER CUSTOMERS" -#: src/jade/tabs/contacts.jade:19 src/jade/tabs/contacts.jade:44 -#: src/jade/tabs/send.jade:205 src/jade/tabs/send.jade:276 -#: src/jade/tabs/trust.jade:174 src/jade/tabs/send.jade:200 -#: src/jade/tabs/send.jade:271 -msgid "You already have a contact with the same name." -msgstr "You already have a contact with the same name." +#: src/jade/tabs/jpy.jade:100 +msgid "" +"Tokyo JPY Issuer accepts deposits and withdrawals via bank transfer. Details" +" {{1}}" +msgstr "Tokyo JPY Issuer accepts deposits and withdrawals via bank transfer. Details {{1}}" -#: src/jade/tabs/contacts.jade:25 -msgid "Please enter an address." -msgstr "Please enter an address." +#: src/jade/tabs/jpy.jade:103 +msgid "" +"To deposit, you’ll need to first deposit into your Tokyo JPY Issuer account " +"and then initiate a transfer into your Ripple account." +msgstr "To deposit, you’ll need to first deposit into your Tokyo JPY Issuer account and then initiate a transfer into your Ripple account." -#: src/jade/tabs/contacts.jade:26 -msgid "You already have a contact with the same address." -msgstr "You already have a contact with the same address." +#: src/jade/tabs/jpy.jade:105 +msgid "" +"To withdraw to a bank account, you’ll first send money from your Ripple " +"account to your Tokyo JPY Issuer account. Follow instructions on the Tokyo " +"JPY Issuer site to send to your bank account." +msgstr "To withdraw to a bank account, you’ll first send money from your Ripple account to your Tokyo JPY Issuer account. Follow instructions on the Tokyo JPY Issuer site to send to your bank account." -#: src/jade/tabs/contacts.jade:27 src/jade/tabs/contacts.jade:53 -msgid "Not a valid address." -msgstr "Not a valid address." +#: src/jade/tabs/kyc.jade:14 +msgid "Profile completion is only available to US residents." +msgstr "Profile completion is only available to US residents." -#: src/jade/tabs/contacts.jade:29 src/jade/tabs/contacts.jade:55 -#: src/jade/tabs/send.jade:34 -msgid "Destination tag" -msgstr "Destination tag" +#: src/jade/tabs/kyc.jade:21 src/jade/tabs/trade.jade:285 +msgid "Verifying your information. Please wait..." +msgstr "Verifying your information. Please wait..." -#: src/jade/tabs/contacts.jade:32 src/jade/tabs/send.jade:37 -msgid "Invalid destination tag" -msgstr "Invalid destination tag" +#: src/jade/tabs/kyc.jade:23 +msgid "Your identity information has been verified." +msgstr "Your identity information has been verified." -#: src/jade/tabs/contacts.jade:35 src/jade/tabs/contacts.jade:73 -#: src/jade/tabs/send.jade:211 src/jade/tabs/send.jade:282 -#: src/jade/tabs/trade.jade:251 src/jade/tabs/trust.jade:76 -#: src/jade/tabs/send.jade:206 src/jade/tabs/send.jade:277 -#: src/jade/tabs/trade.jade:247 -msgid "Cancel" -msgstr "Cancel" +#: src/jade/tabs/kyc.jade:25 +msgid "Your identity questions have been verified." +msgstr "Your identity questions have been verified." -#: src/jade/tabs/contacts.jade:52 -msgid "You already have this address." -msgstr "You already have this address." +#: src/jade/tabs/kyc.jade:27 +msgid "" +"Congratulations, you've verified your identity! You will now be redirected " +"back to the instant deposit page." +msgstr "Congratulations, you've verified your identity! You will now be redirected back to the instant deposit page." -#: src/jade/tabs/contacts.jade:58 -msgid "Invalid destination tag." -msgstr "Invalid destination tag." +#: src/jade/tabs/kyc.jade:29 +msgid "There was an error with your request. Please try again later." +msgstr "There was an error with your request. Please try again later." -#: src/jade/tabs/contacts.jade:62 -msgid "Delete" -msgstr "Delete" +#: src/jade/tabs/kyc.jade:31 +msgid "" +"There was an error with your request. Make sure your phone number is valid " +"and try again." +msgstr "There was an error with your request. Make sure your phone number is valid and try again." -#: src/jade/tabs/contacts.jade:64 src/jade/tabs/options.jade:47 -#: src/jade/tabs/send.jade:210 src/jade/tabs/send.jade:281 -#: src/jade/tabs/trust.jade:179 src/jade/tabs/send.jade:205 -#: src/jade/tabs/send.jade:276 -msgid "Save" -msgstr "Save" +#: src/jade/tabs/kyc.jade:33 +msgid "Please check your verification code and try again." +msgstr "Please check your verification code and try again." -#: src/jade/tabs/contacts.jade:71 -msgid "Edit" -msgstr "Edit" +#: src/jade/tabs/kyc.jade:35 +msgid "" +"There was an error while requesting the verification code. Please try again " +"later." +msgstr "There was an error while requesting the verification code. Please try again later." -#: src/jade/tabs/contacts.jade:76 +#: src/jade/tabs/kyc.jade:37 msgid "" -"You don't have any contacts yet. Click on \"Add contact\" button in the top " -"right corner to add a new contact." -msgstr "" -"You don't have any contacts yet. Click on \"Add contact\" button in the top " -"right corner to add a new contact." +"We are unable to validate your identity information. Please check your " +"information and try again." +msgstr "We are unable to validate your identity information. Please check your information and try again." -#: src/jade/tabs/convert.jade:13 src/jade/tabs/gateways.jade:13 -msgid "You have to be funded before you can convert money" -msgstr "You have to be funded before you can convert money" +#: src/jade/tabs/kyc.jade:39 +msgid "" +"We are unable to validate your identity questions. Please check your answers" +" and try again." +msgstr "We are unable to validate your identity questions. Please check your answers and try again." -#: src/jade/tabs/convert.jade:14 src/jade/tabs/convert.jade:151 -#: src/jade/tabs/gateways.jade:14 src/jade/tabs/send.jade:12 -#: src/jade/tabs/send.jade:216 src/jade/tabs/send.jade:287 -#: src/jade/tabs/trust.jade:18 src/jade/tabs/trust.jade:130 -#: src/jade/tabs/send.jade:211 src/jade/tabs/send.jade:282 -msgid "Back to balance" -msgstr "Back to balance" +#: src/jade/tabs/kyc.jade:41 +msgid "" +"Sorry, you've reached your maximum number of verification attempts. Please " +"try again in 24 hours." +msgstr "Sorry, you've reached your maximum number of verification attempts. Please try again in 24 hours." -#: src/jade/tabs/convert.jade:19 -msgid "Convert one currency into another." -msgstr "Convert one currency into another." +#: src/jade/tabs/kyc.jade:43 +msgid "" +"We can't verify your identity. Please contact us at support@ripple.com." +msgstr "We can't verify your identity. Please contact us at support@ripple.com." -#: src/jade/tabs/convert.jade:29 src/jade/tabs/send.jade:70 -#: src/jade/tabs/send.jade:65 -msgid "Please enter an amount." -msgstr "Please enter an amount." +#: src/jade/tabs/kyc.jade:48 +msgid "Profile Completion" +msgstr "Profile Completion" -#: src/jade/tabs/convert.jade:30 src/jade/tabs/send.jade:71 -#: src/jade/tabs/trade.jade:112 src/jade/tabs/trade.jade:125 -#: src/jade/tabs/trade.jade:138 src/jade/tabs/send.jade:66 -#: src/jade/tabs/trade.jade:108 src/jade/tabs/trade.jade:121 -#: src/jade/tabs/trade.jade:134 -msgid "Not a valid amount." -msgstr "Not a valid amount." +#: src/jade/tabs/kyc.jade:52 +msgid "STEP 1: IDENTITY INFORMATION" +msgstr "STEP 1: IDENTITY INFORMATION" -#: src/jade/tabs/convert.jade:31 -msgid "Please enter an amount greater than zero." -msgstr "Please enter an amount greater than zero." +#: src/jade/tabs/kyc.jade:54 +msgid "STEP 2: IDENTITY QUESTIONS" +msgstr "STEP 2: IDENTITY QUESTIONS" -#: src/jade/tabs/convert.jade:33 -msgid "Please enter the conversion details." -msgstr "Please enter the conversion details." +#: src/jade/tabs/kyc.jade:56 +msgid "STEP 3: TWO-FACTOR AUTHENTICATION" +msgstr "STEP 3: TWO-FACTOR AUTHENTICATION" -#: src/jade/tabs/convert.jade:34 -msgid "Calculating..." -msgstr "Calculating..." +#: src/jade/tabs/kyc.jade:63 +msgid "First Name" +msgstr "First Name" -#: src/jade/tabs/convert.jade:36 -msgid "" -"Sorry! Cannot convert {{convert.amount}} {{convert.currency}}. Please make " -"sure your account has enough funds, and a {{1}} to a {{convert.currency}} " -"gateway." -msgstr "" -"Sorry! Cannot convert {{convert.amount}} {{convert.currency}}. Please make " -"sure your account has enough funds, and a {{1}} to a {{convert." -"currency}} gateway." +#: src/jade/tabs/kyc.jade:67 +msgid "Last Name" +msgstr "Last Name" -#: src/jade/tabs/convert.jade:40 src/jade/tabs/send.jade:112 -#: src/jade/tabs/send.jade:107 -msgid "Error while calculating path" -msgstr "Error while calculating path" +#: src/jade/tabs/kyc.jade:71 +msgid "Street Address" +msgstr "Street Address" -#: src/jade/tabs/convert.jade:49 -msgid "Convert {{ alt.amount | rpcurrency }}" -msgstr "Convert {{ alt.amount | rpcurrency }}" +#: src/jade/tabs/kyc.jade:76 +msgid "City" +msgstr "City" -#: src/jade/tabs/convert.jade:54 -msgid "Ripple is calculating a path for your conversion." -msgstr "Ripple is calculating a path for your conversion." +#: src/jade/tabs/kyc.jade:80 +msgid "State" +msgstr "State" -#: src/jade/tabs/convert.jade:59 -msgid "You are converting" -msgstr "You are converting" +#: src/jade/tabs/kyc.jade:84 +msgid "ZIP" +msgstr "ZIP" -#: src/jade/tabs/convert.jade:63 -msgid "to" -msgstr "to" +#: src/jade/tabs/kyc.jade:88 +msgid "Date of Birth" +msgstr "Date of Birth" -#: src/jade/tabs/convert.jade:67 src/jade/tabs/send.jade:152 -#: src/jade/tabs/send.jade:147 -msgid "You will pay at most" -msgstr "You will pay at most" +#: src/jade/tabs/kyc.jade:92 +msgid "Month{{1}}" +msgstr "Month{{1}}" -#: src/jade/tabs/convert.jade:72 src/jade/tabs/send.jade:158 -#: src/jade/tabs/send.jade:153 -msgid "Are you sure?" -msgstr "Are you sure?" +#: src/jade/tabs/kyc.jade:95 +msgid "Day{{1}}" +msgstr "Day{{1}}" -#: src/jade/tabs/convert.jade:75 src/jade/tabs/convert.jade:97 -#: src/jade/tabs/send.jade:161 src/jade/tabs/send.jade:190 -#: src/jade/tabs/trade.jade:170 src/jade/tabs/trust.jade:114 -#: src/jade/tabs/trust.jade:134 src/jade/tabs/send.jade:156 -#: src/jade/tabs/send.jade:185 src/jade/tabs/trade.jade:166 -msgid "« Back" -msgstr "« Back" +#: src/jade/tabs/kyc.jade:98 +msgid "Year{{1}}" +msgstr "Year{{1}}" -#: src/jade/tabs/convert.jade:77 src/jade/tabs/send.jade:164 -#: src/jade/tabs/trade.jade:50 src/jade/tabs/trade.jade:60 -#: src/jade/tabs/trade.jade:172 src/jade/tabs/trust.jade:116 -#: src/jade/tabs/send.jade:159 src/jade/tabs/trade.jade:168 -msgid "Confirm" -msgstr "Confirm" +#: src/jade/tabs/kyc.jade:113 +msgid "Continue to identity questions" +msgstr "Continue to identity questions" -#: src/jade/tabs/convert.jade:82 src/jade/tabs/send.jade:170 -#: src/jade/tabs/send.jade:165 -msgid "Sending transaction to Ripple network" -msgstr "Sending transaction to Ripple network" +#: src/jade/tabs/kyc.jade:114 src/jade/tabs/kyc.jade:129 +#: src/jade/tabs/kyc.jade:154 src/jade/tabs/kyc.jade:184 +#: src/jade/tabs/login.jade:17 +msgid "Verifying..." +msgstr "Verifying..." -#: src/jade/tabs/convert.jade:84 src/jade/tabs/send.jade:172 -#: src/jade/tabs/trust.jade:123 src/jade/tabs/send.jade:167 -msgid "Stop waiting" -msgstr "Stop waiting" +#: src/jade/tabs/kyc.jade:120 +msgid "{{ q.question }}{{1}}" +msgstr "{{ q.question }}{{1}}" -#: src/jade/tabs/convert.jade:90 src/jade/tabs/send.jade:181 -msgid "No Path" -msgstr "No Path" +#: src/jade/tabs/kyc.jade:123 +msgid "{{ a.answer }}" +msgstr "{{ a.answer }}" -#: src/jade/tabs/convert.jade:91 src/jade/tabs/send.jade:182 -msgid "" -"Ripple was unable to find a path between you and the destination account." -msgstr "" -"Ripple was unable to find a path between you and the destination account." +#: src/jade/tabs/kyc.jade:128 +msgid "Continue to two-factor authentication" +msgstr "Continue to two-factor authentication" -#: src/jade/tabs/convert.jade:93 src/jade/tabs/send.jade:187 -msgid "" -"Sorry, an error occurred while submitting your transaction. Make sure you " -"are connected to the Internet and try again later." -msgstr "" -"Sorry, an error occurred while submitting your transaction. Make sure you " -"are connected to the Internet and try again later." +#: src/jade/tabs/kyc.jade:137 +msgid "Two-factor authentication provides extra security for your account." +msgstr "Two-factor authentication provides extra security for your account." -#: src/jade/tabs/convert.jade:95 +#: src/jade/tabs/kyc.jade:145 msgid "" -"Before trying again, please ensure that the transaction has not been " -"executed already." -msgstr "" -"Before trying again, please ensure that the transaction has not been " -"executed already." +"Ripple Trade has partnered with Authy to provide better security for your " +"account.By continuing, you agree to Authy's {{1:Terms of Service}}." +msgstr "Ripple Trade has partnered with Authy to provide better security for your account.By continuing, you agree to Authy's {{1:Terms of Service}}." -#: src/jade/tabs/convert.jade:104 src/jade/tabs/send.jade:224 -#: src/jade/tabs/send.jade:219 -msgid "Your account balance will update once the payment has cleared." -msgstr "Your account balance will update once the payment has cleared." +#: src/jade/tabs/kyc.jade:153 +msgid "Verify phone number" +msgstr "Verify phone number" -#: src/jade/tabs/convert.jade:111 src/jade/tabs/send.jade:231 -#: src/jade/tabs/send.jade:226 -msgid "Transaction could not be submitted!" -msgstr "Transaction could not be submitted!" +#: src/jade/tabs/kyc.jade:164 +msgid "change" +msgstr "change" -#: src/jade/tabs/convert.jade:112 src/jade/tabs/send.jade:232 -#: src/jade/tabs/send.jade:227 +#: src/jade/tabs/kyc.jade:168 msgid "" -"We were unable to submit the transaction to the server. Please try again " -"later." -msgstr "" -"We were unable to submit the transaction to the server. Please try again " -"later." +"A verification code has been sent to +{{ currentCountryCode }} {{ " +"phoneNumber }}." +msgstr "A verification code has been sent to +{{ currentCountryCode }} {{ phoneNumber }}." -#: src/jade/tabs/convert.jade:138 src/jade/tabs/send.jade:264 -#: src/jade/tabs/send.jade:259 -msgid "Your transaction failed to clear, reason: {{engine_result_message}}" -msgstr "Your transaction failed to clear, reason: {{engine_result_message}}" +#: src/jade/tabs/kyc.jade:172 src/jade/tabs/login/form.jade:16 +#: src/jade/tabs/security.jade:97 +msgid "Verification Code" +msgstr "Verification Code" -#: src/jade/tabs/convert.jade:149 -msgid "Do another conversion" -msgstr "Do another conversion" +#: src/jade/tabs/kyc.jade:183 +msgid "Submit code" +msgstr "Submit code" -#: src/jade/tabs/gateways.jade:24 -msgid "" -"ZipZap, Inc. is a cash payment network, enabling users to use cash to fill " -"up the ripple balance. Users can complete transactions conveniently and " -"easily at one of ZipZap’s Payment Center locations." -msgstr "" -"ZipZap, Inc. is a cash payment network, enabling users to use cash to fill " -"up the ripple balance. Users can complete transactions conveniently and " -"easily at one of ZipZap’s Payment Center locations." +#: src/jade/tabs/login.jade:4 src/jade/tabs/migrate.jade:4 +#: src/jade/tabs/recover.jade:3 src/jade/tabs/register.jade:5 +#: src/jade/tabs/register.jade:137 src/jade/tabs/register.jade:184 +msgid "Welcome to Ripple Trade" +msgstr "Welcome to Ripple Trade" -#: src/jade/tabs/gateways.jade:32 src/jade/tabs/register.jade:95 -#: src/jade/tabs/security.jade:33 src/jade/tabs/security.jade:52 -msgid "Show" -msgstr "Show" +#: src/jade/tabs/login.jade:6 src/jade/tabs/migrate.jade:6 +#: src/jade/tabs/recover.jade:5 src/jade/tabs/register.jade:7 +#: src/jade/tabs/register.jade:139 src/jade/tabs/register.jade:186 +msgid "Trade hundreds of assets, from XRP to crypto to gold to fiat." +msgstr "Trade hundreds of assets, from XRP to crypto to gold to fiat." -#: src/jade/tabs/gateways.jade:33 -msgid "Hide Details" -msgstr "Hide Details" +#: src/jade/tabs/login.jade:15 src/jade/tabs/login.jade:31 +msgid "Log In" +msgstr "Log In" -#: src/jade/tabs/gateways.jade:35 -msgid "Sign Up" -msgstr "Sign Up" +#: src/jade/tabs/login.jade:18 +msgid "You have successfully verified your email address." +msgstr "You have successfully verified your email address." -#: src/jade/tabs/gateways.jade:62 +#: src/jade/tabs/login.jade:19 msgid "" -"Present the ZipZap account number to the cashier on any payment center. " -"ZipZap will confirm with you that your payment has been received and that " -"your transaction is complete." -msgstr "" -"Present the ZipZap account number to the cashier on any payment center. " -"ZipZap will confirm with you that your payment has been received and that " -"your transaction is complete." +"Email verification token is invalid. It has either expired or has been " +"resent. Please check your inbox for the most recent verification email." +msgstr "Email verification token is invalid. It has either expired or has been resent. Please check your inbox for the most recent verification email." -#: src/jade/tabs/gateways.jade:63 -msgid "Locate a payment center" -msgstr "Locate a payment center" +#: src/jade/tabs/login.jade:30 +msgid "Logging in" +msgstr "Logging in" -#: src/jade/tabs/gateways.jade:67 -msgid "Search!" -msgstr "Search!" +#: src/jade/tabs/login.jade:34 +msgid "Verify" +msgstr "Verify" -#: src/jade/tabs/gateways.jade:72 -msgid "show on map" -msgstr "show on map" +#: src/jade/tabs/login.jade:36 src/jade/tabs/register.jade:114 +msgid "Already have a ripple.com/client account? {{1:Migrate}}" +msgstr "Already have a ripple.com/client account? {{1:Migrate}}" -#: src/jade/tabs/gateways.jade:73 +#: src/jade/tabs/login.jade:41 src/jade/tabs/login.jade:42 +#: src/jade/tabs/recover.jade:9 +msgid "Account Recovery" +msgstr "Account Recovery" + +#: src/jade/tabs/login.jade:49 +msgid "{{1:You're sending money to}}{{2}}." +msgstr "{{1:You're sending money to}}{{2}}." + +#: src/jade/tabs/login.jade:53 +msgid "{{1:You're sending}}{{2}}{{3: to }}{{4}}." +msgstr "{{1:You're sending}}{{2}}{{3: to }}{{4}}." + +#: src/jade/tabs/login.jade:63 msgid "" -"Address: {{location.Address}}, {{location.City}}, {{location.State}}, " -"{{location.PostalCode}}." -msgstr "" -"Address: {{location.Address}}, {{location.City}}, {{location.State}}, " -"{{location.PostalCode}}." +"{{1:You're connecting to the gateway}}{{2}}{{3:for{{1}}}}{{4:with a limit " +"of{{1}}}}." +msgstr "{{1:You're connecting to the gateway}}{{2}}{{3:for{{1}}}}{{4:with a limit of{{1}}}}." -#: src/jade/tabs/gateways.jade:74 -msgid "Phone: {{location.Phone}}" -msgstr "Phone: {{location.Phone}}" +#: src/jade/tabs/login.jade:78 +msgid "{{1:You're adding}}{{2}}{{3:to your contacts list}}" +msgstr "{{1:You're adding}}{{2}}{{3:to your contacts list}}" -#: src/jade/tabs/gateways.jade:75 -msgid "Sorry, there are no payment centers for your query." -msgstr "Sorry, there are no payment centers for your query." +#: src/jade/tabs/login.jade:95 +msgid "{{1}} Log In" +msgstr "{{1}} Log In" -#: src/jade/tabs/gateways.jade:151 -msgid "Signup" -msgstr "Signup" +#: src/jade/tabs/login.jade:98 +msgid "You can confirm this transaction on the next page." +msgstr "You can confirm this transaction on the next page." -#: src/jade/tabs/history.jade:10 -msgid "Loading history..." -msgstr "Loading history..." +#: src/jade/tabs/login.jade:99 +msgid "New to {{productName}}? {{1:Create a wallet}}" +msgstr "New to {{productName}}? {{1:Create a wallet}}" -#: src/jade/tabs/history.jade:15 -msgid "Your account history is empty" -msgstr "Your account history is empty" +#: src/jade/tabs/login/form.jade:12 src/jade/tabs/security.jade:91 +msgid "" +"Please enter the verification code from the SMS message sent to your device:" +msgstr "Please enter the verification code from the SMS message sent to your device:" -#: src/jade/tabs/history.jade:23 -msgid "Transaction type: {{1}} {{2}} {{3}}" -msgstr "Transaction type: {{1}} {{2}} {{3}}" +#: src/jade/tabs/login/form.jade:13 src/jade/tabs/security.jade:92 +msgid "" +"Please enter the verification code from the Authy app installed on your " +"device:" +msgstr "Please enter the verification code from the Authy app installed on your device:" -#: src/jade/tabs/history.jade:25 src/jade/tabs/history.jade:29 -#: src/jade/tabs/history.jade:33 src/jade/tabs/history.jade:37 -msgid "Change" -msgstr "Change" +#: src/jade/tabs/login/form.jade:23 +msgid "Resend" +msgstr "Resend" -#: src/jade/tabs/history.jade:26 src/jade/tabs/history.jade:30 -#: src/jade/tabs/history.jade:34 src/jade/tabs/history.jade:38 -#: src/jade/tabs/register.jade:96 src/jade/tabs/security.jade:34 -#: src/jade/tabs/security.jade:53 -msgid "Hide" -msgstr "Hide" +#: src/jade/tabs/login/form.jade:24 src/jade/tabs/security.jade:105 +msgid "Send Via SMS" +msgstr "Send Via SMS" -#: src/jade/tabs/history.jade:27 -msgid "Currency: {{1}} {{2}} {{3}}" -msgstr "Currency: {{1}} {{2}} {{3}}" +#: src/jade/tabs/login/form.jade:30 +msgid "Remember me on this device for 30 days" +msgstr "Remember me on this device for 30 days" -#: src/jade/tabs/history.jade:31 -msgid "Date: {{1}} {{2}} {{3}}" -msgstr "Date: {{1}} {{2}} {{3}}" +#: src/jade/tabs/migrate.jade:10 src/jade/tabs/register.jade:17 +#: src/jade/tabs/register.jade:142 src/jade/tabs/register.jade:189 +msgid "Migrate" +msgstr "Migrate" -#: src/jade/tabs/history.jade:35 -msgid "Minimum Amount: {{1}} {{2}} {{3}}" -msgstr "Minimum Amount: {{1}} {{2}} {{3}}" +#: src/jade/tabs/migrate.jade:11 +msgid "" +"To begin migration, enter the name and passphrase used to encrypt your " +"ripple.com/client wallet below. After migration, you will no longer be able " +"to login on ripple.com/client." +msgstr "To begin migration, enter the name and passphrase used to encrypt your ripple.com/client wallet below. After migration, you will no longer be able to login on ripple.com/client." -#: src/jade/tabs/history.jade:57 -msgid "Load history for specific date range" -msgstr "Load history for specific date range" +#: src/jade/tabs/migrate.jade:15 +msgid "Existing ripple.com/client Wallet name" +msgstr "Existing ripple.com/client Wallet name" -#: src/jade/tabs/history.jade:62 -msgid "From" -msgstr "From" +#: src/jade/tabs/migrate.jade:18 +msgid "Passphrase" +msgstr "Passphrase" -#: src/jade/tabs/history.jade:67 -msgid "To" -msgstr "To" +#: src/jade/tabs/migrate.jade:31 +msgid "Begin Migration" +msgstr "Begin Migration" -#: src/jade/tabs/history.jade:70 src/jade/tabs/history.jade:77 -msgid "Filter" -msgstr "Filter" +#: src/jade/tabs/migrate.jade:32 +msgid "New to {{productName}}? {{1:Sign Up}}" +msgstr "New to {{productName}}? {{1:Sign Up}}" -#: src/jade/tabs/history.jade:72 -msgid "Minimum amount filter" -msgstr "Minimum amount filter" +#: src/jade/tabs/migrate.jade:34 +msgid "Have a {{productName}} account? {{1:Log In}}" +msgstr "Have a {{productName}} account? {{1:Log In}}" -#: src/jade/tabs/history.jade:84 src/jade/tabs/history.jade:150 -msgid "Description" -msgstr "Description" +#: src/jade/tabs/mxn.jade:38 +msgid "Mexican Peso Deposit" +msgstr "Mexican Peso Deposit" -#: src/jade/tabs/history.jade:85 -msgid "Sorry, no transactions match your current filter." -msgstr "Sorry, no transactions match your current filter." +#: src/jade/tabs/mxn.jade:42 +msgid "Bitso (~bitso) {{1}}{{2}}" +msgstr "Bitso (~bitso) {{1}}{{2}}" -#: src/jade/tabs/history.jade:106 -msgid "{{1}} sent you {{2}}" -msgstr "{{1}} sent you {{2}}" +#: src/jade/tabs/mxn.jade:47 +msgid "All countries except the US" +msgstr "All countries except the US" -#: src/jade/tabs/history.jade:118 -msgid "{{1}} now trusts you for {{2}}" -msgstr "{{1}} now trusts you for {{2}}" +#: src/jade/tabs/mxn.jade:58 +msgid "" +"Ripple Trade has partnered with Bitso to provide easy access to MXN (Mexican" +" Peso). By continuing, you agree with Bitso’s terms of service. Following " +"this action will enable Bitso to hold MXN on your behalf." +msgstr "Ripple Trade has partnered with Bitso to provide easy access to MXN (Mexican Peso). By continuing, you agree with Bitso’s terms of service. Following this action will enable Bitso to hold MXN on your behalf." -#: src/jade/tabs/history.jade:124 -msgid "You now trust {{1}} for {{2}}" -msgstr "You now trust {{1}} for {{2}}" +#: src/jade/tabs/mxn.jade:80 +msgid "TO FUND/REDEEM MEXICAN PESO:" +msgstr "TO FUND/REDEEM MEXICAN PESO:" -#: src/jade/tabs/history.jade:141 -msgid "Account details have been Changed" -msgstr "Account details have been Changed" +#: src/jade/tabs/mxn.jade:82 +msgid "Register or login at {{1}}to initiate deposits and withdrawals." +msgstr "Register or login at {{1}}to initiate deposits and withdrawals." -#: src/jade/tabs/history.jade:148 -msgid "Balance Changes" -msgstr "Balance Changes" +#: src/jade/tabs/mxn.jade:86 +msgid "" +"A valid, non-US, state-issued ID (passport, driver's license, etc)." +msgstr "A valid, non-US, state-issued ID (passport, driver's license, etc)." -#: src/jade/tabs/history.jade:151 -msgid "Issuer" -msgstr "Issuer" +#: src/jade/tabs/mxn.jade:87 +msgid "" +"Proof of address (utility bill or other type of bill that has your address " +"on it). Verification is required for peso deposits or withdrawals." +msgstr "Proof of address (utility bill or other type of bill that has your address on it). Verification is required for peso deposits or withdrawals." -#: src/jade/tabs/history.jade:152 src/jade/tabs/trade.jade:232 -#: src/jade/tabs/trust.jade:54 src/jade/tabs/trade.jade:228 -msgid "Amount" -msgstr "Amount" +#: src/jade/tabs/mxn.jade:89 +msgid "" +"To fund your Ripple account, see the below options. Once a balance is " +"deposited with Bitso, you can send it to your Ripple account using the Bitso" +" Dashboard." +msgstr "To fund your Ripple account, see the below options. Once a balance is deposited with Bitso, you can send it to your Ripple account using the Bitso Dashboard." -#: src/jade/tabs/history.jade:153 -msgid "Final balance" -msgstr "Final balance" +#: src/jade/tabs/mxn.jade:90 +msgid "" +"To withdraw from your Ripple account, click on the 'Redeem from Ripple' " +"button on the Bitso Dashboard." +msgstr "To withdraw from your Ripple account, click on the 'Redeem from Ripple' button on the Bitso Dashboard." -#: src/jade/tabs/history.jade:156 -msgid "XRP balance Change" -msgstr "XRP balance Change" +#: src/jade/tabs/mxn.jade:92 src/jade/tabs/usd.jade:89 +msgid "DEPOSIT OPTIONS" +msgstr "DEPOSIT OPTIONS" -#: src/jade/tabs/history.jade:157 -msgid "{{effect.currency}} balance Change" -msgstr "{{effect.currency}} balance Change" +#: src/jade/tabs/mxn.jade:94 +msgid "Bitso accepts deposits by the following methods:" +msgstr "Bitso accepts deposits by the following methods:" -#: src/jade/tabs/history.jade:158 -msgid "Fee" -msgstr "Fee" +#: src/jade/tabs/mxn.jade:96 src/jade/tabs/mxn.jade:106 +msgid "Bank Wire" +msgstr "Bank Wire" -#: src/jade/tabs/history.jade:163 -msgid "Transaction details" -msgstr "Transaction details" +#: src/jade/tabs/mxn.jade:97 src/jade/tabs/mxn.jade:107 +msgid "SPEI (Mexican instant inter-bank transfer)" +msgstr "SPEI (Mexican instant inter-bank transfer)" -#: src/jade/tabs/history.jade:164 -msgid "Add {{1}} to contact list" -msgstr "Add {{1}} to contact list" +#: src/jade/tabs/mxn.jade:98 src/jade/tabs/mxn.jade:108 +msgid "Bitcoin" +msgstr "Bitcoin" -#: src/jade/tabs/history.jade:172 -msgid "No more transactions left" -msgstr "No more transactions left" +#: src/jade/tabs/mxn.jade:99 +msgid "MXN Cash (at locations across Mexico)" +msgstr "MXN Cash (at locations across Mexico)" -#: src/jade/tabs/login.jade:4 src/jade/tabs/login.jade:26 -#: src/jade/tabs/login.jade:93 src/jade/tabs/login.jade:25 -#: src/jade/tabs/login.jade:92 -msgid "Open Wallet" -msgstr "Open Wallet" +#: src/jade/tabs/mxn.jade:100 +msgid "Pademobile wallet" +msgstr "Pademobile wallet" -#: src/jade/tabs/login.jade:8 -msgid "Enter the Name and Passphrase used to encrypt your Wallet below." -msgstr "Enter the Name and Passphrase used to encrypt your Wallet below." +#: src/jade/tabs/mxn.jade:102 src/jade/tabs/usd.jade:99 +msgid "WITHDRAWAL OPTIONS" +msgstr "WITHDRAWAL OPTIONS" -#: src/jade/tabs/login.jade:29 src/jade/tabs/login.jade:28 -msgid "Fetch wallet from" -msgstr "Fetch wallet from" +#: src/jade/tabs/mxn.jade:104 +msgid "Bitso offers withdrawals via the following methods:" +msgstr "Bitso offers withdrawals via the following methods:" -#: src/jade/tabs/login.jade:32 src/jade/tabs/login.jade:79 -#: src/jade/tabs/register.jade:52 src/jade/tabs/login.jade:31 -#: src/jade/tabs/login.jade:78 -msgid "change" -msgstr "change" +#: src/jade/tabs/recover.jade:11 +msgid "" +"You can only recover your Ripple Trade account with a secret key. You will " +"recover the account's Ripple name, contacts and other information." +msgstr "You can only recover your Ripple Trade account with a secret key. You will recover the account's Ripple name, contacts and other information." -#: src/jade/tabs/login.jade:35 src/jade/tabs/login.jade:82 -#: src/jade/tabs/login.jade:34 src/jade/tabs/login.jade:81 -msgid "ok" -msgstr "ok" +#: src/jade/tabs/recover.jade:13 src/jade/tabs/recover.jade:33 +msgid "Ripple Name" +msgstr "Ripple Name" -#: src/jade/tabs/login.jade:39 -msgid "New to ripple?" -msgstr "New to ripple? " +#: src/jade/tabs/recover.jade:18 +msgid "Secret Key" +msgstr "Secret Key" -#: src/jade/tabs/login.jade:40 src/jade/tabs/login.jade:39 -msgid "Create a wallet" -msgstr "Create a wallet" +#: src/jade/tabs/recover.jade:21 +msgid "Unable to recover account." +msgstr "Unable to recover account." -#: src/jade/tabs/login.jade:43 src/jade/tabs/login.jade:42 -msgid "Transaction summary" -msgstr "Transaction summary" +#: src/jade/tabs/recover.jade:27 src/jade/tabs/register.jade:95 +msgid "Recover Account" +msgstr "Recover Account" -#: src/jade/tabs/login.jade:44 src/jade/tabs/trust.jade:78 -#: src/jade/tabs/login.jade:43 -msgid "Grant Trust" -msgstr "Grant Trust" +#: src/jade/tabs/recover.jade:29 src/jade/tabs/recover.jade:56 +msgid "Set Password" +msgstr "Set Password" -#: src/jade/tabs/login.jade:50 src/jade/tabs/login.jade:49 -msgid "you will send" -msgstr "you will send" +#: src/jade/tabs/recover.jade:31 +msgid "" +"Your account was sucessfully recovered. Please re-encrypt your account with " +"a new password." +msgstr "Your account was sucessfully recovered. Please re-encrypt your account with a new password." -#: src/jade/tabs/login.jade:51 src/jade/tabs/login.jade:50 -msgid "you will send money to the ripple address" -msgstr "you will send money to the ripple address" +#: src/jade/tabs/recover.jade:41 src/jade/tabs/register.jade:62 +#: src/jade/tabs/security.jade:132 +msgid "" +"Your password is weak. It does not contain numbers and symbols or it is too " +"short." +msgstr "Your password is weak. It does not contain numbers and symbols or it is too short." -#: src/jade/tabs/login.jade:55 src/jade/tabs/login.jade:54 -msgid "To the ripple address" -msgstr "To the ripple address" +#: src/jade/tabs/recover.jade:43 src/jade/tabs/register.jade:65 +#: src/jade/tabs/security.jade:134 +msgid "" +"Your Ripple name and password cannot match. Please create a new password." +msgstr "Your Ripple name and password cannot match. Please create a new password." -#: src/jade/tabs/login.jade:59 src/jade/tabs/login.jade:58 -msgid "you will trust" -msgstr "you will trust" +#: src/jade/tabs/recover.jade:45 src/jade/tabs/register.jade:67 +#: src/jade/tabs/security.jade:136 +msgid "Confirm password" +msgstr "Confirm password" -#: src/jade/tabs/login.jade:63 src/jade/tabs/login.jade:62 -msgid "To ripple address" -msgstr "To ripple address" +#: src/jade/tabs/recover.jade:48 src/jade/tabs/register.jade:71 +#: src/jade/tabs/security.jade:139 +msgid "Passwords do not match" +msgstr "Passwords do not match" -#: src/jade/tabs/login.jade:64 src/jade/tabs/login.jade:63 -msgid "To {{$routeParams.name}} with a ripple address" -msgstr "To {{$routeParams.name}} with a ripple address" +#: src/jade/tabs/recover.jade:50 +msgid "Unable to change your account password." +msgstr "Unable to change your account password." -#: src/jade/tabs/login.jade:68 src/jade/tabs/trust.jade:91 -#: src/jade/tabs/login.jade:67 -msgid "{{1}} {{2}} {{3}}" -msgstr "{{1}} {{2}} {{3}}" +#: src/jade/tabs/recover.jade:55 +msgid "Updating..." +msgstr "Updating..." -#: src/jade/tabs/login.jade:94 src/jade/tabs/login.jade:93 -msgid "You can confirm this transaction on the next page." -msgstr "You can confirm this transaction on the next page." +#: src/jade/tabs/recover.jade:57 +msgid "Remember your password? {{1:Log In}}" +msgstr "Remember your password? {{1:Log In}}" -#: src/jade/tabs/login.jade:95 -msgid "New to ripple? {{1}}" -msgstr "New to ripple? {{1}}" +#: src/jade/tabs/register.jade:13 src/jade/tabs/register.jade:109 +#: src/jade/tabs/register.jade:141 src/jade/tabs/register.jade:188 +msgid "Sign Up" +msgstr "Sign Up" -#: src/jade/tabs/login/form.jade:2 -msgid "Wallet name" -msgstr "Wallet name" +#: src/jade/tabs/register.jade:19 src/jade/tabs/register.jade:21 +#: src/jade/tabs/register.jade:23 src/jade/tabs/register.jade:146 +#: src/jade/tabs/register.jade:148 src/jade/tabs/register.jade:191 +#: src/jade/tabs/register.jade:193 src/jade/tabs/register.jade:195 +msgid "Step {{1}}" +msgstr "Step {{1}}" -#: src/jade/tabs/login/form.jade:5 -msgid "Passphrase" -msgstr "Passphrase" +#: src/jade/tabs/register.jade:26 +msgid "Create Ripple name" +msgstr "Create Ripple name" -#: src/jade/tabs/options.jade:8 -msgid "Ripple Servers" -msgstr "Ripple Servers" +#: src/jade/tabs/register.jade:27 +msgid "" +"Please choose a Ripple name below. You will use this Ripple name to login to" +" Ripple Trade, so remember it! Ripple names are unique and public, like your" +" current Ripple address. {{1}}" +msgstr "Please choose a Ripple name below. You will use this Ripple name to login to Ripple Trade, so remember it! Ripple names are unique and public, like your current Ripple address. {{1}}" -#: src/jade/tabs/options.jade:12 -msgid "WebSocket hostname, port, secure" -msgstr "WebSocket hostname, port, secure" +#: src/jade/tabs/register.jade:28 +msgid "Learn More" +msgstr "Learn More" -#: src/jade/tabs/options.jade:18 -msgid "Socket ip or hostname is invalid." -msgstr "Socket ip or hostname is invalid." +#: src/jade/tabs/register.jade:41 +msgid "Reserved for {{usernameReservedFor}}" +msgstr "Reserved for {{usernameReservedFor}}" -#: src/jade/tabs/options.jade:20 -msgid "Port number is invalid." -msgstr "Port number is invalid." +#: src/jade/tabs/register.jade:43 +msgid "" +"This name belongs to a high-traffic website and has been reserved to prevent" +" phishing." +msgstr "This name belongs to a high-traffic website and has been reserved to prevent phishing." -#: src/jade/tabs/options.jade:24 -msgid "Remove" -msgstr "Remove" +#: src/jade/tabs/register.jade:49 +msgid "You can only use the following characters: a-z, 0-9 and hyphens (-)" +msgstr "You can only use the following characters: a-z, 0-9 and hyphens (-)" -#: src/jade/tabs/options.jade:29 -msgid "Use secure WebSocket" -msgstr "Use secure WebSocket" +#: src/jade/tabs/register.jade:55 +msgid "Cannot use hyphens in a row (--)" +msgstr "Cannot use hyphens in a row (--)" -#: src/jade/tabs/options.jade:32 -msgid "Add new server" -msgstr "Add new server" +#: src/jade/tabs/register.jade:80 +msgid "Email address is invalid" +msgstr "Email address is invalid" -#: src/jade/tabs/options.jade:34 -msgid "Blob Vault" -msgstr "Blob Vault" +#: src/jade/tabs/register.jade:82 src/jade/tabs/security.jade:151 +msgid "Secret key" +msgstr "Secret key" -#: src/jade/tabs/options.jade:37 -msgid "Blob vault URL" -msgstr "Blob vault URL" +#: src/jade/tabs/register.jade:83 src/jade/tabs/send.jade:43 +#: src/jade/tabs/trade.jade:441 +msgid "hide" +msgstr "hide" -#: src/jade/tabs/options.jade:40 -msgid "Anonymous statistics" -msgstr "Anonymous statistics" +#: src/jade/tabs/register.jade:88 +msgid "Secret Account Key is invalid" +msgstr "Secret Account Key is invalid" -#: src/jade/tabs/options.jade:42 src/jade/tabs/register.jade:41 +#: src/jade/tabs/register.jade:90 msgid "" -"Help Ripple Labs make a better product through sending anonymous client " -"usage data." -msgstr "" -"Help Ripple Labs make a better product through sending anonymous client " -"usage data." +"The account ~{{1}}{{2}} has already been created using this secret key." +msgstr "The account ~{{1}}{{2}} has already been created using this secret key." + +#: src/jade/tabs/register.jade:98 +msgid "I agree to the {{productName}} {{1:Terms of Use}}" +msgstr "I agree to the {{productName}} {{1:Terms of Use}}" -#: src/jade/tabs/receive.jade:2 +#: src/jade/tabs/register.jade:101 msgid "" -"This is your public address. Give this address to other users so they can " -"send you money." -msgstr "" -"This is your public address. Give this address to other users so they can " -"send you money." +"Please see our {{1}} to see how we collect, use and share information about " +"you" +msgstr "Please see our {{1}} to see how we collect, use and share information about you" -#: src/jade/tabs/receive.jade:7 -msgid "Tip: {{1:Select}} and copy using Ctrl+C." -msgstr "Tip: {{1:Select}} and copy using Ctrl+C." +#: src/jade/tabs/register.jade:110 +msgid "Migrate Account" +msgstr "Migrate Account" -#: src/jade/tabs/receive.jade:12 -msgid "Copy Address" -msgstr "Copy Address" +#: src/jade/tabs/register.jade:111 +msgid "Need to use your secret key? {{1}}" +msgstr "Need to use your secret key? {{1}}" -#: src/jade/tabs/register.jade:4 -msgid "Create a Ripple Wallet" -msgstr "Create a Ripple Wallet" +#: src/jade/tabs/register.jade:113 +msgid "Use key" +msgstr "Use key" -#: src/jade/tabs/register.jade:5 -msgid "" -"Ripple is a global open payments system — a fast, easy way to send any kind " -"of money to anyone in the world." -msgstr "" -"Ripple is a global open payments system — a fast, easy way to send any kind " -"of money to anyone in the world." +#: src/jade/tabs/register.jade:121 +msgid "An error occurred during registration. Please try again later." +msgstr "An error occurred during registration. Please try again later." -#: src/jade/tabs/register.jade:7 -msgid "" -"Your Wallet is only as safe as your Wallet username and passphrase, used to " -"encrypt your Wallet data. Choose a passphrase you can easily remember but " -"others cannot guess. Hint: Mix letters, numbers, and symbols." -msgstr "" -"Your Wallet is only as safe as your Wallet username and passphrase, used to " -"encrypt your Wallet data. Choose a passphrase you can easily remember but " -"others cannot guess. Hint: Mix letters, numbers, and symbols." +#: src/jade/tabs/register.jade:122 +msgid "The reported error was: {{1}}" +msgstr "The reported error was: {{1}}" -#: src/jade/tabs/register.jade:10 +#: src/jade/tabs/register.jade:131 msgid "" -"Only you have this Wallet username and passphrase and are responsible for " -"their safekeeping. Ripple cannot recover them if you forget them! {{1}}" -msgstr "" -"Only you have this Wallet username and passphrase and are responsible for " -"their safekeeping. Ripple cannot recover them if you forget them! {{1}}" - -#: src/jade/tabs/register.jade:19 -msgid "Create Wallet username" -msgstr "Create Wallet username" - -#: src/jade/tabs/register.jade:23 -msgid "Create Wallet passphrase" -msgstr "Create Wallet passphrase" +"There is already a wallet using this username, please choose a different " +"username and try again." +msgstr "There is already a wallet using this username, please choose a different username and try again." -#: src/jade/tabs/register.jade:26 -msgid "Re-enter passphrase" -msgstr "Re-enter passphrase" +#: src/jade/tabs/register.jade:150 +msgid "" +"By proceeding, you understand that Ripple Trade does not provide a password " +"or secret key recovery mechanism. If you forget your Ripple name/password " +"and secret key, you will be unable to access this Ripple account." +msgstr "By proceeding, you understand that Ripple Trade does not provide a password or secret key recovery mechanism. If you forget your Ripple name/password and secret key, you will be unable to access this Ripple account." -#: src/jade/tabs/register.jade:31 -msgid "Passwords do not match" -msgstr "Passwords do not match" +#: src/jade/tabs/register.jade:155 +msgid "" +"You are now migrating your account- meaning you'll no longer be able to " +"access your account from ripple.com/client. You will retain all of your " +"balances, contacts, and account history. Your account will use the same " +"secret key as before. If you have already saved your secret key, please " +"continue your migration." +msgstr "You are now migrating your account- meaning you'll no longer be able to access your account from ripple.com/client. You will retain all of your balances, contacts, and account history. Your account will use the same secret key as before. If you have already saved your secret key, please continue your migration." -#: src/jade/tabs/register.jade:32 +#: src/jade/tabs/register.jade:162 msgid "" -"Your password is weak. It is not a mix of letters, numbers and symbols or it " -"is the same as your Wallet name." -msgstr "" -"Your password is weak. It is not a mix of letters, numbers and symbols or it " -"is the same as your Wallet name." +"The secret key unlocks access to all your account funds in the event you " +"lose your Ripple name or password. Please write it down and store it " +"somewhere private and safe. {{1:Read more}} about keys and wallet safety." +msgstr "The secret key unlocks access to all your account funds in the event you lose your Ripple name or password. Please write it down and store it somewhere private and safe. {{1:Read more}} about keys and wallet safety." -#: src/jade/tabs/register.jade:35 -msgid "Secret Account Key {{1}}" -msgstr "Secret Account Key {{1}}" +#: src/jade/tabs/register.jade:167 +msgid "" +"If you have not saved your secret key, please write it down and store it " +"somewhere private and safe. In the event you lose your Ripple name or " +"password, you can use this secret key to recover your funds." +msgstr "If you have not saved your secret key, please write it down and store it somewhere private and safe. In the event you lose your Ripple name or password, you can use this secret key to recover your funds." -#: src/jade/tabs/register.jade:36 -msgid "hide" -msgstr "hide" +#: src/jade/tabs/register.jade:176 +msgid "Show secret key" +msgstr "Show secret key" -#: src/jade/tabs/register.jade:39 -msgid "Secret Account Key is invalid" -msgstr "Secret Account Key is invalid" +#: src/jade/tabs/register.jade:177 +msgid "Hide secret key" +msgstr "Hide secret key" -#: src/jade/tabs/register.jade:47 -msgid "Create Wallet" -msgstr "Create Wallet" +#: src/jade/tabs/register.jade:180 +msgid "Continue to email verification" +msgstr "Continue to email verification" -#: src/jade/tabs/register.jade:48 -msgid "Store your Wallet with: {{1}} {{2}} {{3}}" -msgstr "Store your Wallet with: {{1}} {{2}} {{3}}" +#: src/jade/tabs/register.jade:197 +msgid "" +"We’ve sent an email to {{1}}. To complete registration, click the link in " +"the email." +msgstr "We’ve sent an email to {{1}}. To complete registration, click the link in the email." -#: src/jade/tabs/register.jade:57 -msgid "Already have a Wallet?" -msgstr "Already have a Wallet? " +#: src/jade/tabs/register.jade:200 +msgid "Email token has been resent." +msgstr "Email token has been resent." -#: src/jade/tabs/register.jade:58 -msgid "Open wallet" -msgstr "Open wallet" +#: src/jade/tabs/register.jade:203 +msgid "Email Address:" +msgstr "Email Address:" -#: src/jade/tabs/register.jade:60 -msgid "Need to use your Secret Key? {{1}}" -msgstr "Need to use your Secret Key? {{1}}" +#: src/jade/tabs/register.jade:210 +msgid "Re-send Email" +msgstr "Re-send Email" -#: src/jade/tabs/register.jade:66 -msgid "Secret Account Key error" -msgstr "Secret Account Key error" +#: src/jade/tabs/security.jade:7 +msgid "Active Session Timeout" +msgstr "Active Session Timeout" -#: src/jade/tabs/register.jade:67 +#: src/jade/tabs/security.jade:8 msgid "" -"There is a Wallet with your Wallet username and passphrase, but the given " -"Secret Account Key is not connected to it. If you decide to continue " -"registration your new Secret Account Key will be used for current Wallet " -"name and passphrase." -msgstr "" -"There is a Wallet with your Wallet username and passphrase, but the given " -"Secret Account Key is not connected to it. If you decide to continue " -"registration your new Secret Account Key will be used for current Wallet " -"name and passphrase." - -#: src/jade/tabs/register.jade:69 src/jade/tabs/register.jade:78 -msgid "Back" -msgstr "Back" +"To view or edit your security settings, you must currently have an active " +"session." +msgstr "To view or edit your security settings, you must currently have an active session." -#: src/jade/tabs/register.jade:71 -msgid "Overwrite current key" -msgstr "Overwrite current key" +#: src/jade/tabs/security.jade:16 +msgid "Restore Session" +msgstr "Restore Session" -#: src/jade/tabs/register.jade:75 -msgid "Existing account error" -msgstr "Existing account error" +#: src/jade/tabs/security.jade:25 +msgid "Your Ripple password has been changed, please login again" +msgstr "Your Ripple password has been changed, please login again" -#: src/jade/tabs/register.jade:76 -msgid "" -"There is a Wallet with a similar Wallet name and passphrase, but this wallet " -"could not be decrypted. Try choosing a different wallet name and/or " -"passphrase." -msgstr "" -"There is a Wallet with a similar Wallet name and passphrase, but this wallet " -"could not be decrypted. Try choosing a different wallet name and/or " -"passphrase." +#: src/jade/tabs/security.jade:27 +msgid "Couldn't change your Ripple password, please try again later." +msgstr "Couldn't change your Ripple password, please try again later." -#: src/jade/tabs/register.jade:82 -msgid "Welcome To ripple" -msgstr "Welcome To ripple" +#: src/jade/tabs/security.jade:30 +msgid "Changing your Ripple password..." +msgstr "Changing your Ripple password..." -#: src/jade/tabs/register.jade:83 -msgid "Important:" -msgstr "Important:" +#: src/jade/tabs/security.jade:31 +msgid "Your Ripple password has been changed successfully." +msgstr "Your Ripple password has been changed successfully." -#: src/jade/tabs/register.jade:84 -msgid "" -"The Secret Account Key below gives access to your money in the unlikely case " -"that you lose your wallet name or passphrase. In that case your contacts " -"will be lost, but with this Secret Account Key alone anyone can retrieve " -"your money. So please store it somewhere PRIVATE AND SAFE. Read more about " -"keys and wallet safety in {{1}}" -msgstr "" -"The Secret Account Key below gives access to your money in the unlikely case " -"that you lose your wallet name or passphrase. In that case your contacts " -"will be lost, but with this Secret Account Key alone anyone can retrieve " -"your money. So please store it somewhere PRIVATE AND SAFE. Read more about " -"keys and wallet safety in {{1}}" +#: src/jade/tabs/security.jade:32 +msgid "Unable to load Two-factor authentication settings." +msgstr "Unable to load Two-factor authentication settings." -#: src/jade/tabs/register.jade:89 -msgid "Wallet name: {{1}}" -msgstr "Wallet name: {{1}}" +#: src/jade/tabs/security.jade:33 +msgid "Error saving Two-factor authentication settings." +msgstr "Error saving Two-factor authentication settings." -#: src/jade/tabs/register.jade:91 -msgid "Pass phrase: {{1}} {{2}} {{3}} {{4}}" -msgstr "Pass phrase: {{1}} {{2}} {{3}} {{4}}" +#: src/jade/tabs/security.jade:34 +msgid "The verification code is invalid." +msgstr "The verification code is invalid." -#: src/jade/tabs/register.jade:98 -msgid "Ripple Address" -msgstr "Ripple Address" +#: src/jade/tabs/security.jade:36 +msgid "Two-factor authentication has been successfully enabled." +msgstr "Two-factor authentication has been successfully enabled." -#: src/jade/tabs/register.jade:100 -msgid "Secret Account key:" -msgstr "Secret Account key:" +#: src/jade/tabs/security.jade:37 +msgid "Two-factor authentication has been successfully disabled." +msgstr "Two-factor authentication has been successfully disabled." -#: src/jade/tabs/register.jade:105 -msgid "Show secret account key" -msgstr "Show secret account key" +#: src/jade/tabs/security.jade:38 +msgid "Password protection has been successfully enabled." +msgstr "Password protection has been successfully enabled." -#: src/jade/tabs/register.jade:107 -msgid "Hide secret account key" -msgstr "Hide secret account key" +#: src/jade/tabs/security.jade:39 +msgid "Password protection has been successfully disabled." +msgstr "Password protection has been successfully disabled." -#: src/jade/tabs/register.jade:108 -msgid "Have you saved your Secret Account Key somewhere safe?" -msgstr "Have you saved your Secret Account Key somewhere safe?" +#: src/jade/tabs/security.jade:45 +msgid "Security settings" +msgstr "Security settings" -#: src/jade/tabs/register.jade:111 -msgid "Yes, I saved my secret account key" -msgstr "Yes, I saved my secret account key" +#: src/jade/tabs/security.jade:51 +msgid "Loading Two-factor authentication settings..." +msgstr "Loading Two-factor authentication settings..." -#: src/jade/tabs/security.jade:3 -msgid "" -"Your money and wallet are protected digitally through encryption algorithms " -"that can be unlocked {{1}}" -msgstr "" -"Your money and wallet are protected digitally through encryption algorithms " -"that can be unlocked {{1}}" +#: src/jade/tabs/security.jade:55 +msgid "Enabled" +msgstr "Enabled" -#: src/jade/tabs/security.jade:6 -msgid "– No one else has them, so don't lose them!" -msgstr "– No one else has them, so don't lose them!" +#: src/jade/tabs/security.jade:56 +msgid "Disabled" +msgstr "Disabled" -#: src/jade/tabs/security.jade:7 -msgid "– Never share them!" -msgstr "– Never share them!" +#: src/jade/tabs/security.jade:58 +msgid "disable" +msgstr "disable" -#: src/jade/tabs/security.jade:10 -msgid "Wallet Key" -msgstr "Wallet Key" +#: src/jade/tabs/security.jade:60 +msgid "enable" +msgstr "enable" -#: src/jade/tabs/security.jade:12 -msgid "{{userBlob.data.contacts.length}} contacts, {{1}}" -msgstr "{{userBlob.data.contacts.length}} contacts, {{1}}" +#: src/jade/tabs/security.jade:66 +msgid "" +"Authy is providing two-factor authentication for Ripple Trade. To enable " +"two-factor authentication, you must share some information with Authy." +msgstr "Authy is providing two-factor authentication for Ripple Trade. To enable two-factor authentication, you must share some information with Authy." -#: src/jade/tabs/security.jade:15 -msgid "You can {{1}}" -msgstr "You can {{1}}" +#: src/jade/tabs/security.jade:69 +msgid "- Your email address:" +msgstr "- Your email address:" -#: src/jade/tabs/security.jade:18 -msgid "This is the key you use every time you use ripple." -msgstr "This is the key you use every time you use ripple." +#: src/jade/tabs/security.jade:72 +msgid "- Your phone number:" +msgstr "- Your phone number:" -#: src/jade/tabs/security.jade:19 -msgid "You created it when you chose your Wallet Name and Passphrase." -msgstr "You created it when you chose your Wallet Name and Passphrase." +#: src/jade/tabs/security.jade:74 +msgid "By proceeding, you agree to the Authy {{1: terms of service.}}" +msgstr "By proceeding, you agree to the Authy {{1: terms of service.}}" -#: src/jade/tabs/security.jade:20 -msgid "It protects Your money + Your contacts and history." -msgstr "It protects Your money + Your contacts and history." +#: src/jade/tabs/security.jade:78 +msgid "Share" +msgstr "Share" -#: src/jade/tabs/security.jade:22 -msgid "Never forget it, never share it." -msgstr "Never forget it, never share it." +#: src/jade/tabs/security.jade:84 +msgid "Saving settings..." +msgstr "Saving settings..." -#: src/jade/tabs/security.jade:26 -msgid "Wallet name:" -msgstr "Wallet name:" +#: src/jade/tabs/security.jade:85 +msgid "Disabling Two-factor authentication..." +msgstr "Disabling Two-factor authentication..." -#: src/jade/tabs/security.jade:29 -msgid "Pass Phrase:" -msgstr "Pass Phrase:" +#: src/jade/tabs/security.jade:86 +msgid "Enabling Two-factor authentication..." +msgstr "Enabling Two-factor authentication..." -#: src/jade/tabs/security.jade:35 -msgid "" -"This gives access to your wallet. DO NOT SHARE THIS WITH ANYONE. Keep it " -"safe. Keep it private." -msgstr "" -"This gives access to your wallet. DO NOT SHARE THIS WITH ANYONE. Keep it " -"safe. Keep it private." +#: src/jade/tabs/security.jade:104 +msgid "Resend Code" +msgstr "Resend Code" -#: src/jade/tabs/security.jade:39 -msgid "Secret Key" -msgstr "Secret Key" +#: src/jade/tabs/security.jade:110 +msgid "Enable" +msgstr "Enable" -#: src/jade/tabs/security.jade:41 -msgid "" -"This key is for emergency use only. You did not choose it. The network " -"created it. You don't have to memorize it." -msgstr "" -"This key is for emergency use only. You did not choose it. The network " -"created it. You don't have to memorize it." +#: src/jade/tabs/security.jade:114 +msgid "Ripple password" +msgstr "Ripple password" -#: src/jade/tabs/security.jade:42 -msgid "" -"The Secret Key accesses Your money, which is already contained inside your " -"wallet." -msgstr "" -"The Secret Key accesses Your money, which is already contained inside your " -"wallet." +#: src/jade/tabs/security.jade:129 +msgid "New password" +msgstr "New password" -#: src/jade/tabs/security.jade:43 +#: src/jade/tabs/security.jade:153 msgid "" -"But if you ever lose your wallet, you can recover just your money with this " -"key." -msgstr "" -"But if you ever lose your wallet, you can recover just your money with this " -"key." +"Your secret key unlocks access to your account funds. Please write it down " +"and store it somewhere private and safe. In the event you lose your Ripple " +"name or password, you can use this secret key to recover your funds." +msgstr "Your secret key unlocks access to your account funds. Please write it down and store it somewhere private and safe. In the event you lose your Ripple name or password, you can use this secret key to recover your funds." -#: src/jade/tabs/security.jade:45 -msgid "Store it somewhere safe, never share it." -msgstr "Store it somewhere safe, never share it." +#: src/jade/tabs/security.jade:165 +msgid "Password protection for transactions" +msgstr "Password protection for transactions" -#: src/jade/tabs/security.jade:54 +#: src/jade/tabs/security.jade:168 msgid "" -"This gives access to your money. DO NOT SHARE THIS WITH ANYONE. Keep it " -"safe. Keep it private." -msgstr "" -"This gives access to your money. DO NOT SHARE THIS WITH ANYONE. Keep it " -"safe. Keep it private." +"If you turn off password requests, you’ll still need to enter your password " +"after each page refresh." +msgstr "If you turn off password requests, you’ll still need to enter your password after each page refresh." -#: src/jade/tabs/security.jade:56 -msgid "Show my keys" -msgstr "Show my keys" +#: src/jade/tabs/security.jade:176 +msgid "Yes" +msgstr "Yes" -#: src/jade/tabs/send.jade:11 +#: src/jade/tabs/security.jade:177 +msgid "No" +msgstr "No" + +#: src/jade/tabs/security.jade:192 +msgid "Delete Ripple Trade account" +msgstr "Delete Ripple Trade account" + +#: src/jade/tabs/security.jade:194 +msgid "" +"This deletes your Ripple Trade account. You will no longer be able to login " +"to Ripple Trade and your account data will be deleted. However, you can " +"still access your funds using your secret key." +msgstr "This deletes your Ripple Trade account. You will no longer be able to login to Ripple Trade and your account data will be deleted. However, you can still access your funds using your secret key." + +#: src/jade/tabs/send.jade:12 msgid "You have to be funded before you can send money" msgstr "You have to be funded before you can send money" -#: src/jade/tabs/send.jade:17 -msgid "Send money." -msgstr "Send money." - -#: src/jade/tabs/send.jade:21 +#: src/jade/tabs/send.jade:25 msgid "Recipient" msgstr "Recipient" -#: src/jade/tabs/send.jade:26 +#: src/jade/tabs/send.jade:30 msgid "Please enter a recipient." msgstr "Please enter a recipient." -#: src/jade/tabs/send.jade:28 +#: src/jade/tabs/send.jade:32 msgid "" -"Recipient should be either a name from your contact list or Ripple/Bitcoin " -"address." -msgstr "" -"Recipient should be either a name from your contact list or Ripple/Bitcoin " -"address." +"Recipient should be a Ripple name, a contact, or Ripple/Bitcoin address." +msgstr "Recipient should be a Ripple name, a contact, or Ripple/Bitcoin address." -#: src/jade/tabs/send.jade:30 +#: src/jade/tabs/send.jade:34 msgid "This email address is not Ripple-enabled." msgstr "This email address is not Ripple-enabled." #: src/jade/tabs/send.jade:38 +msgid "Show destination tag" +msgstr "Show destination tag" + +#: src/jade/tabs/send.jade:47 msgid "Destination cannot be blank." msgstr "Destination cannot be blank." -#: src/jade/tabs/send.jade:39 +#: src/jade/tabs/send.jade:48 msgid "" -"Recipient requires a destination tag to be specified for the transaction. If " -"you don't know the destination tag, please contact them before doing a " -"transaction." -msgstr "" -"Recipient requires a destination tag to be specified for the transaction. If " -"you don't know the destination tag, please contact them before doing a " +"Recipient requires a destination tag to be specified for the transaction. If" +" you don't know the destination tag, please contact them before doing a " "transaction." +msgstr "Recipient requires a destination tag to be specified for the transaction. If you don't know the destination tag, please contact them before doing a transaction." -#: src/jade/tabs/send.jade:44 +#: src/jade/tabs/send.jade:53 msgid "Source tag" msgstr "Source tag" -#: src/jade/tabs/send.jade:47 +#: src/jade/tabs/send.jade:56 msgid "Invalid source tag" msgstr "Invalid source tag" -#: src/jade/tabs/send.jade:59 src/jade/tabs/send.jade:54 +#: src/jade/tabs/send.jade:59 +msgid "Invoice ID" +msgstr "Invoice ID" + +#: src/jade/tabs/send.jade:62 +msgid "Invoice ID must not be more than 64 characters long." +msgstr "Invoice ID must not be more than 64 characters long." + +#: src/jade/tabs/send.jade:77 msgid "Recipient will receive" msgstr "Recipient will receive" -#: src/jade/tabs/send.jade:72 src/jade/tabs/send.jade:67 +#: src/jade/tabs/send.jade:88 +msgid "{{send.recipient | rpcontactname}} can't receive this currency." +msgstr "{{send.recipient | rpcontactname}} can't receive this currency." + +#: src/jade/tabs/send.jade:92 src/jade/tabs/trust.jade:102 msgid "Amount must be greater than zero." msgstr "Amount must be greater than zero." -#: src/jade/tabs/send.jade:73 src/jade/tabs/send.jade:68 +#: src/jade/tabs/send.jade:93 msgid "" -"This transaction exceeds your balance, you can send a max. of {{account." -"max_spend | rpamount:{rel_precision: 0} }} XRP" -msgstr "" -"This transaction exceeds your balance, you can send a max. of {{account." -"max_spend | rpamount:{rel_precision: 0} }} XRP" +"You are either trying to send too little or too much XRP.Minimum amount is " +"0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "You are either trying to send too little or too much XRP.Minimum amount is 0.000001 XRP and maximum amount is 100 billion XRP." -#: src/jade/tabs/send.jade:76 src/jade/tabs/send.jade:71 +#: src/jade/tabs/send.jade:97 msgid "" "Recipient does not allow XRP payments. Are you sure you want to send XRP " "anyway?" -msgstr "" -"Recipient does not allow XRP payments. Are you sure you want to send XRP " -"anyway?" +msgstr "Recipient does not allow XRP payments. Are you sure you want to send XRP anyway?" -#: src/jade/tabs/send.jade:78 src/jade/tabs/send.jade:73 +#: src/jade/tabs/send.jade:99 msgid "" -"{{send.recipient | rpcontactname}} trusts you for {{send.trust_limit | " -"rpamount}} {{send.trust_limit | rpcurrency}}." -msgstr "" -"{{send.recipient | rpcontactname}} trusts you for {{send.trust_limit | " +"{{send.recipient | rpcontactname}}trusts you for {{send.trust_limit | " "rpamount}} {{send.trust_limit | rpcurrency}}." +msgstr "{{send.recipient | rpcontactname}}trusts you for {{send.trust_limit | rpamount}} {{send.trust_limit | rpcurrency}}." -#: src/jade/tabs/send.jade:82 src/jade/tabs/send.jade:77 -msgid "Add Destination tag" -msgstr "Add Destination tag" - -#: src/jade/tabs/send.jade:86 src/jade/tabs/send.jade:81 +#: src/jade/tabs/send.jade:103 msgid "Send XRP" msgstr "Send XRP" -#: src/jade/tabs/send.jade:90 src/jade/tabs/send.jade:85 +#: src/jade/tabs/send.jade:107 msgid "" -"Destination account is unfunded; send at least {{send.xrp_deficiency | " -"rpamount}} XRP to fund it. {{1}}" -msgstr "" -"Destination account is unfunded; send at least {{send.xrp_deficiency | " -"rpamount}} XRP to fund it. {{1}}" - -#: src/jade/tabs/send.jade:93 src/jade/tabs/trust.jade:46 -#: src/jade/tabs/send.jade:88 -msgid "More information" -msgstr "More information" +"Destination account is unfunded; send at least {{send.xrp_deficiency | " +"rpamount}} XRP to fund it.{{1}}" +msgstr "Destination account is unfunded; send at least {{send.xrp_deficiency | rpamount}} XRP to fund it.{{1}}" -#: src/jade/tabs/send.jade:96 src/jade/tabs/send.jade:91 +#: src/jade/tabs/send.jade:114 msgid "Checking" msgstr "Checking" -#: src/jade/tabs/send.jade:98 src/jade/tabs/send.jade:93 +#: src/jade/tabs/send.jade:117 msgid "Analyzing address" msgstr "Analyzing address" -#: src/jade/tabs/send.jade:100 src/jade/tabs/send.jade:95 +#: src/jade/tabs/send.jade:120 +msgid "Scanning accepted currencies" +msgstr "Scanning accepted currencies" + +#: src/jade/tabs/send.jade:123 msgid "Requesting quote" msgstr "Requesting quote" -#: src/jade/tabs/send.jade:102 src/jade/tabs/send.jade:97 +#: src/jade/tabs/send.jade:126 msgid "Calculating paths" msgstr "Calculating paths" -#: src/jade/tabs/send.jade:104 src/jade/tabs/send.jade:99 +#: src/jade/tabs/send.jade:129 msgid "Calculating alternatives" msgstr "Calculating alternatives" -#: src/jade/tabs/send.jade:105 src/jade/tabs/send.jade:100 +#: src/jade/tabs/send.jade:130 msgid "" -"Sorry! Cannot send {{send.amount}} {{send.currency}} to {{send.recipient}}. " -"Please make sure your account has enough funds, and the recipient accepts " -"the currency you're sending. If it still doesn't work, try again later." -msgstr "" -"Sorry! Cannot send {{send.amount}} {{send.currency}} to {{send.recipient}}. " -"Please make sure your account has enough funds, and the recipient accepts " -"the currency you're sending. If it still doesn't work, try again later." +"You cannot send {{send.amount}} {{send.currency}} to {{send.recipient}}. " +"Either your account has insufficient funds, or {{send.recipient}} doesn't " +"accept {{send.currency}}." +msgstr "You cannot send {{send.amount}} {{send.currency}} to {{send.recipient}}. Either your account has insufficient funds, or {{send.recipient}} doesn't accept {{send.currency}}." + +#: src/jade/tabs/send.jade:134 +msgid "" +"You cannot send {{send.amount}} {{send.currency}} to{{send.recipient}}. Your" +" account has insufficient funds." +msgstr "You cannot send {{send.amount}} {{send.currency}} to{{send.recipient}}. Your account has insufficient funds." + +#: src/jade/tabs/send.jade:137 +msgid "There are no valid currency choices for this destination." +msgstr "There are no valid currency choices for this destination." -#: src/jade/tabs/send.jade:110 src/jade/tabs/send.jade:105 -msgid "Error while retrieving quote for outbound payment" -msgstr "Error while retrieving quote for outbound payment" +#: src/jade/tabs/send.jade:139 +msgid "Error while retrieving quote for outbound payment. {{1}}" +msgstr "Error while retrieving quote for outbound payment. {{1}}" -#: src/jade/tabs/send.jade:117 src/jade/tabs/send.jade:112 +#: src/jade/tabs/send.jade:148 msgid "You can send" msgstr "You can send" -#: src/jade/tabs/send.jade:119 src/jade/tabs/send.jade:114 +#: src/jade/tabs/send.jade:150 msgid "Or you can send" msgstr "Or you can send" -#: src/jade/tabs/send.jade:127 src/jade/tabs/send.jade:122 -msgid "Send {{ alt.amount | rpcurrency }}" -msgstr "Send {{ alt.amount | rpcurrency }}" +#: src/jade/tabs/send.jade:164 +msgid "Send {{ alt.amount | rpcurrency }} {{1}}" +msgstr "Send {{ alt.amount | rpcurrency }} {{1}}" -#: src/jade/tabs/send.jade:134 src/jade/tabs/send.jade:129 +#: src/jade/tabs/send.jade:181 msgid "Ripple is calculating a path for your payment." msgstr "Ripple is calculating a path for your payment." -#: src/jade/tabs/send.jade:140 src/jade/tabs/send.jade:135 -msgid "You are sending {{ (send.alt.amount || send.currency) | rpcurrency}} to" -msgstr "" -"You are sending {{ (send.alt.amount || send.currency) | rpcurrency}} to" +#: src/jade/tabs/send.jade:186 +msgid "You are sending {{1}} to" +msgstr "You are sending {{1}} to" -#: src/jade/tabs/send.jade:146 src/jade/tabs/send.jade:141 +#: src/jade/tabs/send.jade:194 msgid "Destination tag: {{send.dt}}" msgstr "Destination tag: {{send.dt}}" -#: src/jade/tabs/send.jade:147 src/jade/tabs/send.jade:142 +#: src/jade/tabs/send.jade:195 msgid "They will receive" msgstr "They will receive" -#: src/jade/tabs/send.jade:178 -msgid "Destination does not exist" -msgstr "Destination does not exist" - -#: src/jade/tabs/send.jade:179 -msgid "The wallet you're trying to send to does not exist." -msgstr "The wallet you're trying to send to does not exist." - -#: src/jade/tabs/send.jade:184 -msgid "Invalid transaction" -msgstr "Invalid transaction" +#: src/jade/tabs/send.jade:198 +msgid "You will pay at most" +msgstr "You will pay at most" -#: src/jade/tabs/send.jade:185 -msgid "The transaction was rejected by the server due to a client issue." -msgstr "The transaction was rejected by the server due to a client issue." +#: src/jade/tabs/send.jade:204 +msgid "Are you sure?" +msgstr "Are you sure?" -#: src/jade/tabs/send.jade:189 -msgid "Please ensure you don't send your payment more than once." -msgstr "Please ensure you don't send your payment more than once." +#: src/jade/tabs/send.jade:210 +msgid "Password required to unlock wallet" +msgstr "Password required to unlock wallet" -#: src/jade/tabs/send.jade:197 src/jade/tabs/send.jade:268 -#: src/jade/tabs/send.jade:192 src/jade/tabs/send.jade:263 +#: src/jade/tabs/send.jade:234 src/jade/tabs/send.jade:266 msgid "Contact saved!" msgstr "Contact saved!" -#: src/jade/tabs/send.jade:199 src/jade/tabs/send.jade:270 -#: src/jade/tabs/trust.jade:169 src/jade/tabs/send.jade:194 -#: src/jade/tabs/send.jade:265 +#: src/jade/tabs/send.jade:236 src/jade/tabs/send.jade:268 msgid "Add this address to contacts" msgstr "Add this address to contacts" -#: src/jade/tabs/send.jade:203 src/jade/tabs/send.jade:274 -#: src/jade/tabs/trust.jade:172 src/jade/tabs/send.jade:198 -#: src/jade/tabs/send.jade:269 +#: src/jade/tabs/send.jade:242 src/jade/tabs/send.jade:274 msgid "Name this user" msgstr "Name this user" -#: src/jade/tabs/send.jade:209 src/jade/tabs/send.jade:280 -#: src/jade/tabs/trust.jade:178 src/jade/tabs/send.jade:204 -#: src/jade/tabs/send.jade:275 +#: src/jade/tabs/send.jade:246 src/jade/tabs/send.jade:278 +msgid "This contact already exists, please choose another name." +msgstr "This contact already exists, please choose another name." + +#: src/jade/tabs/send.jade:250 src/jade/tabs/send.jade:283 +#: src/jade/tabs/trust.jade:233 msgid "Saving..." msgstr "Saving..." -#: src/jade/tabs/send.jade:214 src/jade/tabs/send.jade:285 -#: src/jade/tabs/send.jade:209 src/jade/tabs/send.jade:280 +#: src/jade/tabs/send.jade:255 src/jade/tabs/send.jade:289 msgid "Send another payment" msgstr "Send another payment" -#: src/jade/tabs/trade.jade:9 -msgid "Loading order book..." -msgstr "Loading order book..." +#: src/jade/tabs/settings/navbar.jade:2 +msgid "Security" +msgstr "Security" -#: src/jade/tabs/trade.jade:20 src/jade/tabs/trade.jade:28 -msgid "Base currency" -msgstr "Base currency" +#: src/jade/tabs/settingstrade.jade:12 +msgid "Trade settings" +msgstr "Trade settings" -#: src/jade/tabs/trade.jade:23 src/jade/tabs/trade.jade:34 -msgid "change issuer" -msgstr "change issuer" +#: src/jade/tabs/settingstrade.jade:14 +msgid "Trade currency pairs" +msgstr "Trade currency pairs" -#: src/jade/tabs/trade.jade:25 src/jade/tabs/trade.jade:36 -msgid "cancel" -msgstr "cancel" +#: src/jade/tabs/trade.jade:12 src/jade/tabs/trade.jade:451 +msgid "Loading Order Book" +msgstr "Loading Order Book" -#: src/jade/tabs/trade.jade:31 src/jade/tabs/trade.jade:39 -msgid "Counter currency" -msgstr "Counter currency" +#: src/jade/tabs/trade.jade:31 src/jade/tabs/widgets/markets.jade:24 +msgid "flip" +msgstr "flip" -#: src/jade/tabs/trade.jade:32 -msgid "{{order.second_currency}}  {{1}}" -msgstr "{{order.second_currency}}  {{1}}" +#: src/jade/tabs/trade.jade:34 +msgid "add pair" +msgstr "add pair" -#: src/jade/tabs/trade.jade:43 -msgid "Base currency issuer ({{order.first_currency}})" -msgstr "Base currency issuer ({{order.first_currency}})" +#: src/jade/tabs/trade.jade:37 +msgid "edit pairs" +msgstr "edit pairs" -#: src/jade/tabs/trade.jade:48 +#: src/jade/tabs/trade.jade:41 +msgid "Base Currency" +msgstr "Base Currency" + +#: src/jade/tabs/trade.jade:44 +msgid "Base Gateway" +msgstr "Base Gateway" + +#: src/jade/tabs/trade.jade:49 +msgid "Counter Currency" +msgstr "Counter Currency" + +#: src/jade/tabs/trade.jade:52 +msgid "Counter Gateway" +msgstr "Counter Gateway" + +#: src/jade/tabs/trade.jade:57 +msgid "Add" +msgstr "Add" + +#: src/jade/tabs/trade.jade:60 +msgid "Base currency issuer ({{order.first_currency | rpcurrency}})" +msgstr "Base currency issuer ({{order.first_currency | rpcurrency}})" + +#: src/jade/tabs/trade.jade:63 +msgid "Ripple name or contact" +msgstr "Ripple name or contact" + +#: src/jade/tabs/trade.jade:65 msgid "Not a valid Ripple address or contact" msgstr "Not a valid Ripple address or contact" -#: src/jade/tabs/trade.jade:53 -msgid "Counter currency issuer ({{order.second_currency}})" -msgstr "Counter currency issuer ({{order.second_currency}})" +#: src/jade/tabs/trade.jade:70 +msgid "Counter currency issuer ({{order.second_currency | rpcurrency}})" +msgstr "Counter currency issuer ({{order.second_currency | rpcurrency}})" -#: src/jade/tabs/trade.jade:58 -msgid "Not a valid ripple address or contact" -msgstr "Not a valid ripple address or contact" +#: src/jade/tabs/trade.jade:75 +msgid "Not a valid Ripple name or address" +msgstr "Not a valid Ripple name or address" -#: src/jade/tabs/trade.jade:62 +#: src/jade/tabs/trade.jade:79 msgid "" -"You must select an issuer to trade currencies. Click the “change issuer”, " -"link above and enter your trusted gateway address or nickname." -msgstr "" -"You must select an issuer to trade currencies. Click the “change issuer”, " -"link above and enter your trusted gateway address or nickname." +"To show an orderbook, choose from the dropdown above or click \"Add custom " +"pair\"." +msgstr "To show an orderbook, choose from the dropdown above or click \"Add custom pair\"." -#: src/jade/tabs/trade.jade:71 +#: src/jade/tabs/trade.jade:86 msgid "Bid" msgstr "Bid" -#: src/jade/tabs/trade.jade:76 +#: src/jade/tabs/trade.jade:91 msgid "Ask" msgstr "Ask" -#: src/jade/tabs/trade.jade:81 +#: src/jade/tabs/trade.jade:96 msgid "Spread" msgstr "Spread" -#: src/jade/tabs/trade.jade:86 +#: src/jade/tabs/trade.jade:101 msgid "Last price" msgstr "Last price" -#: src/jade/tabs/trade.jade:93 src/jade/tabs/trade.jade:89 +#: src/jade/tabs/trade.jade:108 msgid "You have to be funded before you can trade" msgstr "You have to be funded before you can trade" -#: src/jade/tabs/trade.jade:106 src/jade/tabs/trade.jade:102 -msgid "Amount To {{type}}" -msgstr "Amount To {{type}}" +#: src/jade/tabs/trade.jade:115 +msgid "Buy {{1}} {{order.first_currency | rpcurrency}}" +msgstr "Buy {{1}} {{order.first_currency | rpcurrency}}" + +#: src/jade/tabs/trade.jade:118 +msgid "Sell {{1}} {{order.first_currency | rpcurrency}}" +msgstr "Sell {{1}} {{order.first_currency | rpcurrency}}" + +#: src/jade/tabs/trade.jade:121 src/jade/tabs/trade.jade:130 +msgid "{{1}} available" +msgstr "{{1}} available" + +#: src/jade/tabs/trade.jade:144 +msgid "Amount To Buy" +msgstr "Amount To Buy" + +#: src/jade/tabs/trade.jade:145 +msgid "Amount To Sell" +msgstr "Amount To Sell" -#: src/jade/tabs/trade.jade:111 src/jade/tabs/trade.jade:124 -#: src/jade/tabs/trade.jade:137 src/jade/tabs/trade.jade:107 -#: src/jade/tabs/trade.jade:120 src/jade/tabs/trade.jade:133 +#: src/jade/tabs/trade.jade:152 src/jade/tabs/trade.jade:167 +#: src/jade/tabs/trade.jade:182 msgid "Required" msgstr "Required" -#: src/jade/tabs/trade.jade:113 src/jade/tabs/trade.jade:126 -#: src/jade/tabs/trade.jade:139 src/jade/tabs/trade.jade:109 -#: src/jade/tabs/trade.jade:122 src/jade/tabs/trade.jade:135 +#: src/jade/tabs/trade.jade:154 src/jade/tabs/trade.jade:169 +#: src/jade/tabs/trade.jade:184 msgid "Must be greater than zero" msgstr "Must be greater than zero" -#: src/jade/tabs/trade.jade:115 src/jade/tabs/trade.jade:128 -#: src/jade/tabs/trade.jade:140 src/jade/tabs/trade.jade:111 -#: src/jade/tabs/trade.jade:124 src/jade/tabs/trade.jade:136 -msgid "There is a limit of 100 billion XRPs" -msgstr "There is a limit of 100 billion XRPs" +#: src/jade/tabs/trade.jade:156 src/jade/tabs/trade.jade:171 +#: src/jade/tabs/trade.jade:186 +msgid "" +"Minimum amount of XRP you can send is a drop (0.000001) and the maximum is " +"100 billion XRPs." +msgstr "Minimum amount of XRP you can send is a drop (0.000001) and the maximum is 100 billion XRPs." -#: src/jade/tabs/trade.jade:119 src/jade/tabs/trade.jade:115 +#: src/jade/tabs/trade.jade:160 msgid "Price of Each" msgstr "Price of Each" -#: src/jade/tabs/trade.jade:132 src/jade/tabs/trade.jade:128 +#: src/jade/tabs/trade.jade:175 msgid "Order Value (max)" msgstr "Order Value (max)" -#: src/jade/tabs/trade.jade:142 src/jade/tabs/trade.jade:138 -msgid "" -"You are wanting to {{type}} {{order[type].first_amount | rpamount:" -"{precision: 10} }} {{order[type].first_amount | rpcurrency}} for " -"{{order[type].second_amount | rpamount:{precision: 10} }} {{order[type]." -"second_amount | rpcurrency}} ({{order[type].price_amount | rpamount:" -"{precision: 10} }} {{order[type].second_amount | rpcurrency}} per " -"{{order[type].first_amount | rpcurrency}})" -msgstr "" -"You are wanting to {{type}} {{order[type].first_amount | rpamount:" -"{precision: 10} }} {{order[type].first_amount | rpcurrency}} for " -"{{order[type].second_amount | rpamount:{precision: 10} }} {{order[type]." -"second_amount | rpcurrency}} ({{order[type].price_amount | rpamount:" -"{precision: 10} }} {{order[type].second_amount | rpcurrency}} per " -"{{order[type].first_amount | rpcurrency}})" - -#: src/jade/tabs/trade.jade:154 src/jade/tabs/trade.jade:150 +#: src/jade/tabs/trade.jade:192 +msgid "You are wanting to buy {{1}} for {{2}} ({{3}} per {{4}})" +msgstr "You are wanting to buy {{1}} for {{2}} ({{3}} per {{4}})" + +#: src/jade/tabs/trade.jade:201 +msgid "You are wanting to sell {{1}} for {{2}} ({{3}} per {{4}})" +msgstr "You are wanting to sell {{1}} for {{2}} ({{3}} per {{4}})" + +#: src/jade/tabs/trade.jade:213 +msgid "Buy" +msgstr "Buy" + +#: src/jade/tabs/trade.jade:214 +msgid "Sell" +msgstr "Sell" + +#: src/jade/tabs/trade.jade:220 msgid "You do not have sufficient funds to create an order." msgstr "You do not have sufficient funds to create an order." -#: src/jade/tabs/trade.jade:159 src/jade/tabs/trade.jade:155 -msgid "You are about to create an order to {{type}} {{1}} {{2}} {{3}} {{4}}" -msgstr "You are about to create an order to {{type}} {{1}} {{2}} {{3}} {{4}}" +#: src/jade/tabs/trade.jade:225 +msgid "" +"You are about to create an order to {{1: buy}} {{2: " +"sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}{{8}}" +msgstr "You are about to create an order to {{1: buy}} {{2: sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}{{8}}" + +#: src/jade/tabs/trade.jade:242 +msgid "CAUTION: Your order is far off from the current market price." +msgstr "CAUTION: Your order is far off from the current market price." + +#: src/jade/tabs/trade.jade:246 src/jade/tabs/trade.jade:407 +msgid "« Back" +msgstr "« Back" -#: src/jade/tabs/trade.jade:177 src/jade/tabs/trade.jade:173 +#: src/jade/tabs/trade.jade:255 msgid "Sending order to Ripple network..." msgstr "Sending order to Ripple network..." -#: src/jade/tabs/trade.jade:183 src/jade/tabs/trade.jade:179 +#: src/jade/tabs/trade.jade:261 msgid "Your order has been submitted." msgstr "Your order has been submitted." -#: src/jade/tabs/trade.jade:185 src/jade/tabs/trade.jade:181 -msgid "Your order is now active!" -msgstr "Your order is now active!" +#: src/jade/tabs/trade.jade:263 +msgid "Your order is now active." +msgstr "Your order is now active." -#: src/jade/tabs/trade.jade:187 src/jade/tabs/trade.jade:183 -msgid "Request has been denied!" -msgstr "Request has been denied!" +#: src/jade/tabs/trade.jade:265 +msgid "Your order has been filled." +msgstr "Your order has been filled." -#: src/jade/tabs/trade.jade:188 src/jade/tabs/trust.jade:145 -#: src/jade/tabs/trade.jade:184 -msgid "We were unable to submit the request. Please try again later." -msgstr "We were unable to submit the request. Please try again later." +#: src/jade/tabs/trade.jade:267 +msgid "" +"Your order has been partially filled. The remaining amount is now active." +msgstr "Your order has been partially filled. The remaining amount is now active." + +#: src/jade/tabs/trade.jade:276 +msgid "Submit another order" +msgstr "Submit another order" + +#: src/jade/tabs/trade.jade:278 +msgid "My Orders{{1}}{{2}}" +msgstr "My Orders{{1}}{{2}}" + +#: src/jade/tabs/trade.jade:287 +msgid "Your order has been modified." +msgstr "Your order has been modified." -#: src/jade/tabs/trade.jade:190 src/jade/tabs/trade.jade:186 -msgid "Request is malformed!" -msgstr "Request is malformed!" +#: src/jade/tabs/trade.jade:289 +msgid "Your order #{{ cancelOrder.seq }} has been cancelled." +msgstr "Your order #{{ cancelOrder.seq }} has been cancelled." -#: src/jade/tabs/trade.jade:191 src/jade/tabs/trade.jade:187 +#: src/jade/tabs/trade.jade:291 msgid "" -"Your request is invalid, reason: {{order[type].engine_result}} - " -"{{order[type].engine_result_message}}" -msgstr "" -"Your request is invalid, reason: {{order[type].engine_result}} - " -"{{order[type].engine_result_message}}" +"Your order could not be modified and no longer exists. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "Your order could not be modified and no longer exists. Error: {{order[editOrder.type].engine_result_message}}" + +#: src/jade/tabs/trade.jade:293 +msgid "Unable to cancel order as it no longer exists." +msgstr "Unable to cancel order as it no longer exists." + +#: src/jade/tabs/trade.jade:295 +msgid "Modifying your order (Placing new order) ..." +msgstr "Modifying your order (Placing new order) ..." + +#: src/jade/tabs/trade.jade:299 +msgid "Current pair only" +msgstr "Current pair only" -#: src/jade/tabs/trade.jade:196 src/jade/tabs/trade.jade:192 +#: src/jade/tabs/trade.jade:313 src/jade/tabs/widgets/orders.jade:24 +msgid "reverse" +msgstr "reverse" + +#: src/jade/tabs/trade.jade:322 src/jade/tabs/widgets/orders.jade:33 +msgid "QTY{{1}}" +msgstr "QTY{{1}}" + +#: src/jade/tabs/trade.jade:324 src/jade/tabs/widgets/orders.jade:35 +msgid "Base{{1}}" +msgstr "Base{{1}}" + +#: src/jade/tabs/trade.jade:326 src/jade/tabs/widgets/orders.jade:37 +msgid "Counter{{1}}" +msgstr "Counter{{1}}" + +#: src/jade/tabs/trade.jade:328 src/jade/tabs/widgets/orders.jade:39 +msgid "Limit{{1}}" +msgstr "Limit{{1}}" + +#: src/jade/tabs/trade.jade:334 +msgid "Action" +msgstr "Action" + +#: src/jade/tabs/trade.jade:360 src/jade/tabs/trade.jade:424 +msgid "TRADE CONFIRMATION" +msgstr "TRADE CONFIRMATION" + +#: src/jade/tabs/trade.jade:362 +msgid "{{1:Please confirm that you wish to cancel order #{{entry.seq}}}}" +msgstr "{{1:Please confirm that you wish to cancel order #{{entry.seq}}}}" + +#: src/jade/tabs/trade.jade:364 msgid "" -"You do not have enough {{type == 'buy' ? order.second_currency : order." -"first_currency}} to create this order." -msgstr "" -"You do not have enough {{type == 'buy' ? order.second_currency : order." -"first_currency}} to create this order." +"{{1}} div span.modal-order-type(l10n-inc) FILLED: span filled data div" +" span.modal-order-type(l10n-inc) REMAIN: span remain data div span" +".modal-order-type(l10n-inc) PLACED: span time data" +msgstr "{{1}} div span.modal-order-type(l10n-inc) FILLED: span filled data div span.modal-order-type(l10n-inc) REMAIN: span remain data div span.modal-order-type(l10n-inc) PLACED: span time data" + +#: src/jade/tabs/trade.jade:371 +msgid "with" +msgstr "with" + +#: src/jade/tabs/trade.jade:372 +msgid "for" +msgstr "for" + +#: src/jade/tabs/trade.jade:376 +msgid "at" +msgstr "at" + +#: src/jade/tabs/trade.jade:389 +msgid "Cancel order" +msgstr "Cancel order" + +#: src/jade/tabs/trade.jade:390 src/jade/tabs/trade.jade:431 +msgid "back" +msgstr "back" -#: src/jade/tabs/trade.jade:198 +#: src/jade/tabs/trade.jade:407 msgid "" -"You must have at least {{account.reserve_to_add_trust | rpamount}} XRP to " -"submit an order. {{1}}" -msgstr "" -"You must have at least {{account.reserve_to_add_trust | rpamount}} XRP to " -"submit an order. {{1}}" +"CAUTION: Your new order is far off from the current market price.
Do " +"you still want to replace your order ?" +msgstr "CAUTION: Your new order is far off from the current market price.
Do you still want to replace your order ?" -#: src/jade/tabs/trade.jade:200 src/jade/tabs/trade.jade:196 -msgid "More information." -msgstr "More information." +#: src/jade/tabs/trade.jade:410 +msgid "Unable to cancel order. Error: {{entry.errorMsg}}" +msgstr "Unable to cancel order. Error: {{entry.errorMsg}}" -#: src/jade/tabs/trade.jade:201 src/jade/tabs/trade.jade:197 -msgid "Error: {{order[type].engine_result_message}}" -msgstr "Error: {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:412 +msgid "" +"Your order amount has been updated by Ripple. Please go back and edit again " +"to modify this order." +msgstr "Your order amount has been updated by Ripple. Please go back and edit again to modify this order." -#: src/jade/tabs/trade.jade:204 src/jade/tabs/trade.jade:200 -msgid "Trade failed!" -msgstr "Trade failed!" +#: src/jade/tabs/trade.jade:414 +msgid "" +"Your order could not be modified. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "Your order could not be modified. Error: {{order[editOrder.type].engine_result_message}}" -#: src/jade/tabs/trade.jade:206 src/jade/tabs/trade.jade:202 -msgid "Trade failed, reason: {{order[type].engine_result_message}}" -msgstr "Trade failed, reason: {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:415 +msgid "X" +msgstr "X" -#: src/jade/tabs/trade.jade:219 src/jade/tabs/trade.jade:215 -msgid "Submit another order" -msgstr "Submit another order" +#: src/jade/tabs/trade.jade:420 +msgid "cancel all" +msgstr "cancel all" -#: src/jade/tabs/trade.jade:222 src/jade/tabs/trade.jade:218 -msgid "Order book" -msgstr "Order book" +#: src/jade/tabs/trade.jade:426 +msgid "{{1:Please confirm that you wish to cancel all orders.}}" +msgstr "{{1:Please confirm that you wish to cancel all orders.}}" -#: src/jade/tabs/trade.jade:223 src/jade/tabs/trade.jade:219 -msgid "My Orders" -msgstr "My Orders" +#: src/jade/tabs/trade.jade:430 +msgid "Cancel all orders" +msgstr "Cancel all orders" -#: src/jade/tabs/trade.jade:229 src/jade/tabs/trade.jade:225 -msgid "Type" -msgstr "Type" +#: src/jade/tabs/trade.jade:433 src/jade/tabs/widgets/orders.jade:64 +msgid "No current orders. {{1}}" +msgstr "No current orders. {{1}}" -#: src/jade/tabs/trade.jade:230 src/jade/tabs/trade.jade:226 -msgid "Pair" -msgstr "Pair" +#: src/jade/tabs/trade.jade:434 src/jade/tabs/widgets/orders.jade:65 +msgid "View orders history" +msgstr "View orders history" -#: src/jade/tabs/trade.jade:231 src/jade/tabs/trade.jade:227 -msgid "Price" -msgstr "Price" +#: src/jade/tabs/trade.jade:437 +msgid "Orderbook{{1}}" +msgstr "Orderbook{{1}}" -#: src/jade/tabs/trade.jade:233 src/jade/tabs/trade.jade:229 -msgid "Action" -msgstr "Action" +#: src/jade/tabs/trade.jade:440 +msgid "show" +msgstr "show" -#: src/jade/tabs/trade.jade:253 -msgid "You haven't placed any orders." -msgstr "You haven't placed any orders." +#: src/jade/tabs/trade.jade:442 +msgid "Last updated {{1}} {{2: seconds}} {{3: second}} ago" +msgstr "Last updated {{1}} {{2: seconds}} {{3: second}} ago" -#: src/jade/tabs/trade.jade:259 src/jade/tabs/trade.jade:255 +#: src/jade/tabs/trade.jade:458 msgid "Bids" msgstr "Bids" -#: src/jade/tabs/trade.jade:261 src/jade/tabs/trade.jade:283 -#: src/jade/tabs/trade.jade:257 src/jade/tabs/trade.jade:279 -msgid "Sum {{1}}" -msgstr "Sum {{1}}" +#: src/jade/tabs/trade.jade:460 src/jade/tabs/trade.jade:487 +msgid "Sum{{1}}{{2}}" +msgstr "Sum{{1}}{{2}}" -#: src/jade/tabs/trade.jade:263 src/jade/tabs/trade.jade:281 -#: src/jade/tabs/trade.jade:259 src/jade/tabs/trade.jade:277 -msgid "Size {{1}}" -msgstr "Size {{1}}" +#: src/jade/tabs/trade.jade:463 src/jade/tabs/trade.jade:484 +msgid "Size{{1}}{{2}}" +msgstr "Size{{1}}{{2}}" -#: src/jade/tabs/trade.jade:265 src/jade/tabs/trade.jade:261 -msgid "Bid Price {{1}}" -msgstr "Bid Price {{1}}" +#: src/jade/tabs/trade.jade:466 +msgid "Bid Price{{1}}{{2}}" +msgstr "Bid Price{{1}}{{2}}" -#: src/jade/tabs/trade.jade:275 src/jade/tabs/trade.jade:271 +#: src/jade/tabs/trade.jade:477 msgid "There are currently no bids for this pair." msgstr "There are currently no bids for this pair." -#: src/jade/tabs/trade.jade:277 src/jade/tabs/trade.jade:273 +#: src/jade/tabs/trade.jade:479 msgid "Asks" msgstr "Asks" -#: src/jade/tabs/trade.jade:279 src/jade/tabs/trade.jade:275 -msgid "Ask Price {{1}}" -msgstr "Ask Price {{1}}" +#: src/jade/tabs/trade.jade:481 +msgid "Ask Price{{1}}{{2}}" +msgstr "Ask Price{{1}}{{2}}" -#: src/jade/tabs/trade.jade:293 src/jade/tabs/trade.jade:289 +#: src/jade/tabs/trade.jade:498 msgid "There are currently no asks for this pair." msgstr "There are currently no asks for this pair." -#: src/jade/tabs/trust.jade:17 -msgid "You have to be funded before you can grant a trust" -msgstr "You have to be funded before you can grant a trust" +#: src/jade/tabs/trade.jade:501 +msgid "No more orders" +msgstr "No more orders" + +#: src/jade/tabs/trust.jade:29 +msgid "Removing gateway..." +msgstr "Removing gateway..." + +#: src/jade/tabs/trust.jade:31 +msgid "Gateway removed." +msgstr "Gateway removed." + +#: src/jade/tabs/trust.jade:33 +msgid "Your changes have been saved." +msgstr "Your changes have been saved." + +#: src/jade/tabs/trust.jade:35 +msgid "Request failed." +msgstr "Request failed." -#: src/jade/tabs/trust.jade:25 +#: src/jade/tabs/trust.jade:39 +msgid "Account unlock failed." +msgstr "Account unlock failed." + +#: src/jade/tabs/trust.jade:55 msgid "Name / Address" msgstr "Name / Address" -#: src/jade/tabs/trust.jade:27 +#: src/jade/tabs/trust.jade:57 src/jade/tabs/trust.jade:90 msgid "Currency" msgstr "Currency" -#: src/jade/tabs/trust.jade:30 +#: src/jade/tabs/trust.jade:60 msgid "Trust Limit" msgstr "Trust Limit" -#: src/jade/tabs/trust.jade:32 -msgid "Add trust" -msgstr "Add trust" - -#: src/jade/tabs/trust.jade:44 -msgid "Account does not meet the minimum XRP reserve. {{1}}" -msgstr "Account does not meet the minimum XRP reserve. {{1}}" - -#: src/jade/tabs/trust.jade:48 -msgid "Please enter a User." -msgstr "Please enter a User." - -#: src/jade/tabs/trust.jade:49 -msgid "You've entered your address." -msgstr "You've entered your address." - -#: src/jade/tabs/trust.jade:50 -msgid "User should be either a name from your contact list or Ripple address." -msgstr "" -"User should be either a name from your contact list or Ripple address." - -#: src/jade/tabs/trust.jade:61 -msgid "Amount field is required" -msgstr "Amount field is required" - -#: src/jade/tabs/trust.jade:63 -msgid "" -"XRP can be sent without extending trust. If you really want to trust in " -"XRP, please use XRR currency code." -msgstr "" -"XRP can be sent without extending trust. If you really want to trust in " -"XRP, please use XRR currency code." - #: src/jade/tabs/trust.jade:66 -msgid "Currency field is required" -msgstr "Currency field is required" - -#: src/jade/tabs/trust.jade:72 -msgid "Allow Rippling" -msgstr "Allow Rippling" +msgid "Gateway's Ripple name or address" +msgstr "Gateway's Ripple name or address" -#: src/jade/tabs/trust.jade:81 -msgid "Verifying address" -msgstr "Verifying address" +#: src/jade/tabs/trust.jade:100 +msgid "Amount field is required." +msgstr "Amount field is required." -#: src/jade/tabs/trust.jade:83 -msgid "You must have at least {{1}} to add a new trust line. {{2}}" -msgstr "You must have at least {{1}} to add a new trust line. {{2}}" - -#: src/jade/tabs/trust.jade:101 +#: src/jade/tabs/trust.jade:115 msgid "" -"By pressing CONFIRM you are extending trust to another Ripple user. This " -"action carries the risk of potential loss up to the amount of the trust " -"line. Make sure you understand these consequences, and that all the issuers " -"are trustworthy." -msgstr "" -"By pressing CONFIRM you are extending trust to another Ripple user. This " -"action carries the risk of potential loss up to the amount of the trust " -"line. Make sure you understand these consequences, and that all the issuers " -"are trustworthy." +"Allow this trust line's balances to be transferred to another issuer you " +"connect to. More " +"information" +msgstr "Allow this trust line's balances to be transferred to another issuer you connect to. More information" -#: src/jade/tabs/trust.jade:106 +#: src/jade/tabs/trust.jade:125 msgid "" -"By pressing CONFIRM you are extending trust to {{1}} for the same currency " -"which may result in your account balances changing without your direct " -"action. Make sure you understand these consequences, and that all your " -"issuers are trustworthy." -msgstr "" -"By pressing CONFIRM you are extending trust to {{1}} for the same " -"currency which may result in your account balances changing without your " -"direct action. Make sure you understand these consequences, and that all " -"your issuers are trustworthy." +"{{1:You are connecting a gateway, which means}}{{2:{{ counterparty_address |" +" rpripplename:{tilde: true} }} can:}}" +msgstr "{{1:You are connecting a gateway, which means}}{{2:{{ counterparty_address | rpripplename:{tilde: true} }} can:}}" -#: src/jade/tabs/trust.jade:121 -msgid "Granting is in progress" -msgstr "Granting is in progress" +#: src/jade/tabs/trust.jade:128 +msgid "{{1:- Hold up to }}{{2}} {{3: on your behalf}}" +msgstr "{{1:- Hold up to }}{{2}} {{3: on your behalf}}" #: src/jade/tabs/trust.jade:132 -msgid "" -"Sorry, an error occurred while granting. Make sure you are connected to the " -"Internet and try again later." -msgstr "" -"Sorry, an error occurred while granting. Make sure you are connected to the " -"Internet and try again later." - -#: src/jade/tabs/trust.jade:140 -msgid "Your grant request has been submitted." -msgstr "Your grant request has been submitted." - -#: src/jade/tabs/trust.jade:142 -msgid "Trust is granted!" -msgstr "Trust is granted!" - -#: src/jade/tabs/trust.jade:144 -msgid "Trust could not be granted!" -msgstr "Trust could not be granted!" - -#: src/jade/tabs/trust.jade:147 -msgid "Grant is malformed!" -msgstr "Grant is malformed!" +msgid "{{1:- Hold }}{{2}} {{3: on your behalf}}" +msgstr "{{1:- Hold }}{{2}} {{3: on your behalf}}" #: src/jade/tabs/trust.jade:148 -msgid "" -"Your request is invalid, reason: {{engine_result}} - " -"{{engine_result_message}}" -msgstr "" -"Your request is invalid, reason: {{engine_result}} - " -"{{engine_result_message}}" +msgid "Verifying address" +msgstr "Verifying address" -#: src/jade/tabs/trust.jade:150 -msgid "Granting failed!" -msgstr "Granting failed!" +#: src/jade/tabs/trust.jade:151 +msgid "" +"Your account has to be {{1:activated}} before you can add a gateway account." +msgstr "Your account has to be {{1:activated}} before you can add a gateway account." -#: src/jade/tabs/trust.jade:153 -msgid "Insufficient reserve to add trust line." -msgstr "Insufficient reserve to add trust line." +#: src/jade/tabs/trust.jade:159 +msgid "Connect gateway" +msgstr "Connect gateway" -#: src/jade/tabs/trust.jade:154 -msgid "" -"You must have at least {{account.reserve_to_add_trust | rpamount:0}} XRP to " -"add a trust line. {{1}}" -msgstr "" -"You must have at least {{account.reserve_to_add_trust | rpamount:0}} XRP to " -"add a trust line. {{1}}" +#: src/jade/tabs/trust.jade:169 src/jade/tabs/trust.jade:221 +msgid "Limit" +msgstr "Limit" -#: src/jade/tabs/trust.jade:156 -msgid "Read more." -msgstr "Read more." +#: src/jade/tabs/trust.jade:170 +msgid "Min" +msgstr "Min" -#: src/jade/tabs/trust.jade:157 -msgid "Trust granting failed to clear, reason: {{engine_result_message}}" -msgstr "Trust granting failed to clear, reason: {{engine_result_message}}" +#: src/jade/tabs/trust.jade:172 +msgid "Edit" +msgstr "Edit" -#: src/jade/tabs/trust.jade:167 -msgid "Address saved!" -msgstr "Address saved!" +#: src/jade/tabs/trust.jade:188 +msgid "Off" +msgstr "Off" + +#: src/jade/tabs/trust.jade:189 +msgid "On" +msgstr "On" + +#: src/jade/tabs/trust.jade:192 src/jade/tabs/trust.jade:201 +#: src/jade/tabs/trust.jade:206 src/jade/tabs/trust.jade:210 +#: src/jade/tabs/trust.jade:239 src/jade/tabs/trust.jade:244 +#: src/jade/tabs/trust.jade:248 +msgid "Incoming trust" +msgstr "Incoming trust" + +#: src/jade/tabs/trust.jade:192 +msgid "" +"You can't edit incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "You can't edit incoming trust lines. Incoming trust lines are when other Ripple users trust you." + +#: src/jade/tabs/trust.jade:200 src/jade/tabs/trust.jade:202 +#: src/jade/tabs/trust.jade:205 src/jade/tabs/trust.jade:207 +#: src/jade/tabs/trust.jade:209 src/jade/tabs/trust.jade:211 +#: src/jade/tabs/trust.jade:238 src/jade/tabs/trust.jade:240 +#: src/jade/tabs/trust.jade:243 src/jade/tabs/trust.jade:245 +#: src/jade/tabs/trust.jade:247 src/jade/tabs/trust.jade:249 +msgid "Remove" +msgstr "Remove" -#: src/jade/tabs/trust.jade:183 -msgid "Back to trust page" -msgstr "Back to trust page" +#: src/jade/tabs/trust.jade:201 src/jade/tabs/trust.jade:206 +#: src/jade/tabs/trust.jade:210 src/jade/tabs/trust.jade:239 +#: src/jade/tabs/trust.jade:244 src/jade/tabs/trust.jade:248 +msgid "" +"You can't delete incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "You can't delete incoming trust lines. Incoming trust lines are when other Ripple users trust you." -#: src/jade/tabs/trust.jade:194 -msgid "edit" -msgstr "edit" +#: src/jade/tabs/trust.jade:226 +msgid "Rippling {{1}}" +msgstr "Rippling {{1}}" -#: src/jade/tabs/tx.jade:3 +#: src/jade/tabs/tx.jade:5 msgid "Loading transaction details..." msgstr "Loading transaction details..." -#: src/jade/tabs/tx.jade:5 +#: src/jade/tabs/tx.jade:7 msgid "An error occurred while loading the transaction details." msgstr "An error occurred while loading the transaction details." -#: src/jade/tabs/tx.jade:7 -msgid "Transaction # {{transaction.hash}}" -msgstr "Transaction # {{transaction.hash}}" +#: src/jade/tabs/tx.jade:10 +msgid "Transaction #" +msgstr "Transaction #" -#: src/jade/tabs/tx.jade:9 +#: src/jade/tabs/tx.jade:15 msgid "Transaction type: {{1}}" msgstr "Transaction type: {{1}}" -#: src/jade/tabs/tx.jade:16 +#: src/jade/tabs/tx.jade:22 msgid "Address sent from" msgstr "Address sent from" -#: src/jade/tabs/tx.jade:20 +#: src/jade/tabs/tx.jade:26 msgid "Amount sent" msgstr "Amount sent" -#: src/jade/tabs/tx.jade:24 +#: src/jade/tabs/tx.jade:30 msgid "Currency sent" msgstr "Currency sent" -#: src/jade/tabs/tx.jade:29 +#: src/jade/tabs/tx.jade:35 msgid "Address sent to" msgstr "Address sent to" -#: src/jade/tabs/tx.jade:33 +#: src/jade/tabs/tx.jade:39 msgid "Amount received" msgstr "Amount received" -#: src/jade/tabs/tx.jade:37 +#: src/jade/tabs/tx.jade:43 msgid "Currency received" msgstr "Currency received" -#: src/jade/tabs/tx.jade:43 +#: src/jade/tabs/tx.jade:50 msgid "Network fee paid" msgstr "Network fee paid" -#: src/jade/tabs/tx.jade:47 -msgid "Conversion rate" -msgstr "Conversion rate" - -#: src/jade/tabs/tx.jade:53 +#: src/jade/tabs/tx.jade:62 msgid "Ledger number" msgstr "Ledger number" -#: src/jade/tabs/tx.jade:59 -msgid "Address sent from {{1}}" -msgstr "Address sent from {{1}}" - -#: src/jade/tabs/tx.jade:64 -msgid "Sorry, we don't have an info page layout for this transaction type yet." -msgstr "" -"Sorry, we don't have an info page layout for this transaction type yet." - -#: src/jade/notification/account.jade:3 -msgid "You sent  {{1}} {{2}} {{3}}" -msgstr "You sent  {{1}} {{2}} {{3}}" - -#: src/jade/notification/account.jade:9 -msgid "{{tx.counterparty | rpcontactname}} sent you " -msgstr "{{tx.counterparty | rpcontactname}} sent you " - -#: src/jade/notification/account.jade:14 -msgid "{{tx.counterparty | rpcontactname}} now trusts you for " -msgstr "{{tx.counterparty | rpcontactname}} now trusts you for " - -#: src/jade/notification/account.jade:19 -msgid "You now trust {{tx.counterparty | rpcontactname}} for " -msgstr "You now trust {{tx.counterparty | rpcontactname}} for " - -#: src/jade/tabs/balance.jade:50 src/jade/tabs/history.jade:101 -msgid "You sent  {{1}} {{2}}" -msgstr "You sent  {{1}} {{2}}" - -#: src/jade/tabs/balance.jade:86 -msgid "You now trust  {{1}} {{2}}" -msgstr "You now trust  {{1}} {{2}}" - -#: src/jade/tabs/balance.jade:97 src/jade/tabs/history.jade:130 -#: src/jade/tabs/history/effects.jade:17 -msgid "You created an offer accepting  {{1}} for  {{2}}" -msgstr "You created an offer accepting  {{1}} for  {{2}}" - -#: src/jade/tabs/balance.jade:105 src/jade/tabs/history.jade:136 -#: src/jade/tabs/history/effects.jade:13 -msgid "You cancelled an offer accepting  {{1}} for  {{2}}" -msgstr "You cancelled an offer accepting  {{1}} for  {{2}}" - -#: src/jade/tabs/balance.jade:121 -msgid " Loading..." -msgstr " Loading..." - -#: src/jade/tabs/balance.jade:122 -msgid " Error" -msgstr " Error" - -#: src/jade/tabs/balance.jade:123 -msgid " No past transactions found" -msgstr " No past transactions found" - -#: src/jade/tabs/balance/effects.jade:3 -msgid "– You sold  {{1}} for  {{2}} This order has been funded." -msgstr "– You sold  {{1}} for  {{2}} This order has been funded." - -#: src/jade/tabs/balance/effects.jade:8 -msgid "– You sold  {{1}} for  {{2}} {{3}}" -msgstr "– You sold  {{1}} for  {{2}} {{3}}" - -#: src/jade/tabs/balance/effects.jade:12 src/jade/tabs/history/effects.jade:12 -msgid "" -" This order has {{effect.remaining | rpamount}} {{effect.remaining | " -"rpcurrency}} remaining." -msgstr "" -" This order has {{effect.remaining | rpamount}} {{effect.remaining | " -"rpcurrency}} remaining." - -#: src/jade/tabs/balance/effects.jade:13 -msgid "– You cancelled an offer accepting  {{1}} for  {{2}}" -msgstr "– You cancelled an offer accepting  {{1}} for  {{2}}" - -#: src/jade/tabs/balance/effects.jade:17 -msgid "– You created an offer accepting  {{1}} for  {{2}}" -msgstr "– You created an offer accepting  {{1}} for  {{2}}" - -#: src/jade/tabs/balance/effects.jade:21 -msgid "– You bought  {{1}} for  {{2}}" -msgstr "– You bought  {{1}} for  {{2}}" - -#: src/jade/tabs/balance/effects.jade:26 -msgid "" -"– You now trust {{effect.counterparty | rpcontactname}} for {{effect.limit " -"| rpamount}} {{effect.limit | rpcurrency}}" -msgstr "" -"– You now trust {{effect.counterparty | rpcontactname}} for {{effect.limit " -"| rpamount}} {{effect.limit | rpcurrency}}" +#: src/jade/tabs/tx.jade:68 +msgid "Address sent from:" +msgstr "Address sent from:" -#: src/jade/tabs/balance/effects.jade:28 +# Sorry, we don't have an info page layout for this transaction type yet. +#: src/jade/tabs/tx.jade:72 msgid "" -"– {{effect.counterparty | rpcontactname}} is trusting you for {{effect." -"limit | rpamount}} {{effect.limit | rpcurrency}}" -msgstr "" -"– {{effect.counterparty | rpcontactname}} is trusting you for {{effect." -"limit | rpamount}} {{effect.limit | rpcurrency}}" +"Sorry, we don't have an info page layout for this transaction type yet." +msgstr "Sorry, we don't have an info page layout for this transaction type yet." -#: src/jade/tabs/balance/effects.jade:30 -msgid "" -"– You have changed {{effect.limit | rpcurrency}} trust for {{effect." -"counterparty | rpcontactname}} from {{effect.prevLimit | rpamount}} to " -"{{effect.limit | rpamount}}" -msgstr "" -"– You have changed {{effect.limit | rpcurrency}} trust for {{effect." -"counterparty | rpcontactname}} from {{effect.prevLimit | rpamount}} to " -"{{effect.limit | rpamount}}" +#: src/jade/tabs/usd.jade:35 +msgid "US Dollar Deposit" +msgstr "US Dollar Deposit" -#: src/jade/tabs/balance/effects.jade:33 -msgid "" -"– {{effect.counterparty | rpcontactname}} changed the {{effect.limit | " -"rpcurrency}} trust from {{effect.prevLimit | rpamount}} to {{effect.limit | " -"rpamount}}" -msgstr "" -"– {{effect.counterparty | rpcontactname}} changed the {{effect.limit | " -"rpcurrency}} trust from {{effect.prevLimit | rpamount}} to {{effect.limit | " -"rpamount}}" +#: src/jade/tabs/usd.jade:39 +msgid "SnapSwap US (~SnapSwap){{1}}{{2}}" +msgstr "SnapSwap US (~SnapSwap){{1}}{{2}}" -#: src/jade/tabs/balance/effects.jade:36 -msgid "" -"– Trust balance between you and {{effect.counterparty | rpcontactname}} has " -"been changed by {{effect.amount | rpamount}} {{effect.amount | rpcurrency}}" -msgstr "" -"– Trust balance between you and {{effect.counterparty | rpcontactname}} has " -"been changed by {{effect.amount | rpamount}} {{effect.amount | rpcurrency}}" +#: src/jade/tabs/usd.jade:45 +msgid "USA" +msgstr "USA" -#: src/jade/tabs/balance/effects.jade:40 -msgid "" -"– Your balance has been changed by {{effect.amount | rpamount}} {{effect." -"amount | rpcurrency}}" -msgstr "" -"– Your balance has been changed by {{effect.amount | rpamount}} {{effect." -"amount | rpcurrency}}" +#: src/jade/tabs/usd.jade:48 +msgid "$ 0.31-$ 5.00" +msgstr "$ 0.31-$ 5.00" -#: src/jade/tabs/convert.jade:36 +#: src/jade/tabs/usd.jade:56 msgid "" -"Sorry! Cannot convert {{convert.amount}} {{convert.currency}}. Please make " -"sure your account has enough funds, and a  {{1}} to a {{convert." -"currency}} gateway." -msgstr "" -"Sorry! Cannot convert {{convert.amount}} {{convert.currency}}. Please make " -"sure your account has enough funds, and a  {{1}} to a {{convert." -"currency}} gateway." +"Ripple Trade has partnered with SnapSwap to provide easier access to USD. " +"Following this action will enable SnapSwap to hold USD on your behalf." +msgstr "Ripple Trade has partnered with SnapSwap to provide easier access to USD. Following this action will enable SnapSwap to hold USD on your behalf." -#: src/jade/tabs/history.jade:124 -msgid "You now trust  {{1}} for  {{2}}" -msgstr "You now trust  {{1}} for  {{2}}" +#: src/jade/tabs/usd.jade:73 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.US" +msgstr "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.US" -#: src/jade/tabs/history/effects.jade:3 -msgid "You sold  {{1}} for  {{2}} This order has been funded." -msgstr "You sold  {{1}} for  {{2}} This order has been funded." +#: src/jade/tabs/usd.jade:74 +msgid "Register and verify your account at SnapSwap US. You will need: {{1}}" +msgstr "Register and verify your account at SnapSwap US. You will need: {{1}}" -#: src/jade/tabs/history/effects.jade:8 -msgid "You sold  {{1}} for  {{2}} {{3}}" -msgstr "You sold  {{1}} for  {{2}} {{3}}" +#: src/jade/tabs/usd.jade:82 +msgid "EXISTING SNAPSWAP US CUSTOMERS" +msgstr "EXISTING SNAPSWAP US CUSTOMERS" -#: src/jade/tabs/history/effects.jade:21 -msgid "You bought  {{1}} for  {{2}}" -msgstr "You bought  {{1}} for  {{2}}" +#: src/jade/tabs/usd.jade:93 +msgid "Deposit instantly via selected banks" +msgstr "Deposit instantly via selected banks" -#: src/jade/tabs/login.jade:38 -msgid "New to ripple? " -msgstr "New to ripple? " +#: src/jade/tabs/usd.jade:95 +msgid "Deposit cash at Bank of America branches (3 business days)" +msgstr "Deposit cash at Bank of America branches (3 business days)" -#: src/jade/tabs/login.jade:94 -msgid "New to ripple?  {{1}}" -msgstr "New to ripple?  {{1}}" +#: src/jade/tabs/usd.jade:97 +msgid "Deposit via online bank transfer (3 business days)" +msgstr "Deposit via online bank transfer (3 business days)" -#: src/jade/tabs/options.jade:42 -msgid "" -" Help Ripple Labs make a better product through sending anonymous client " -"usage data." -msgstr "" -" Help Ripple Labs make a better product through sending anonymous client " -"usage data." - -#: src/jade/tabs/receive.jade:7 -msgid "Tip:  {{1:Select}} and copy using Ctrl+C." -msgstr "Tip:  {{1:Select}} and copy using Ctrl+C." - -#: src/jade/tabs/register.jade:10 -msgid "" -"Only you have this Wallet username and passphrase and are responsible for " -"their safekeeping. Ripple cannot recover them if you forget them!  {{1}}" -msgstr "" -"Only you have this Wallet username and passphrase and are responsible for " -"their safekeeping. Ripple cannot recover them if you forget them!  {{1}}" +#: src/jade/tabs/usd.jade:103 +msgid "Directly to your bank account (3-4 business days)" +msgstr "Directly to your bank account (3-4 business days)" -#: src/jade/tabs/register.jade:35 -msgid "Secret Account Key  {{1}}" -msgstr "Secret Account Key  {{1}}" +#: src/jade/tabs/usd.jade:105 +msgid "Directly to your PayPal account (several minutes)" +msgstr "Directly to your PayPal account (several minutes)" -#: src/jade/tabs/register.jade:36 -msgid "(hide)" -msgstr "(hide)" +#: src/jade/tabs/widgets/assetallocation.jade:3 +msgid "Asset Allocation" +msgstr "Asset Allocation" -#: src/jade/tabs/register.jade:48 -msgid "Store your Wallet with:  {{1}} {{2}} {{3}}" -msgstr "Store your Wallet with:  {{1}} {{2}} {{3}}" +#: src/jade/tabs/widgets/balances.jade:3 +msgid "Balances" +msgstr "Balances" -#: src/jade/tabs/register.jade:57 -msgid "Already have a Wallet? " -msgstr "Already have a Wallet? " +#: src/jade/tabs/widgets/balances.jade:12 +msgid "Balance
{{ account.Balance | rpamount }} XRP" +msgstr "Balance
{{ account.Balance | rpamount }} XRP" -#: src/jade/tabs/register.jade:60 -msgid "Need to use your Secret Key?  {{1}}" -msgstr "Need to use your Secret Key?  {{1}}" +#: src/jade/tabs/widgets/balances.jade:16 +msgid "Reserve" +msgstr "Reserve" -#: src/jade/tabs/register.jade:84 -msgid "" -"The Secret Account Key below gives access to your money in the unlikely case " -"that you lose your wallet name or passphrase. In that case your contacts " -"will be lost, but with this Secret Account Key alone anyone can retrieve " -"your money. So please store it somewhere PRIVATE AND SAFE. Read more about " -"keys and wallet safety in  {{1}}" -msgstr "" -"The Secret Account Key below gives access to your money in the unlikely case " -"that you lose your wallet name or passphrase. In that case your contacts " -"will be lost, but with this Secret Account Key alone anyone can retrieve " -"your money. So please store it somewhere PRIVATE AND SAFE. Read more about " -"keys and wallet safety in  {{1}}" +#: src/jade/tabs/widgets/balances.jade:18 +msgid "Reserve amount" +msgstr "Reserve amount" -#: src/jade/tabs/security.jade:3 +#: src/jade/tabs/widgets/balances.jade:18 msgid "" -"Your money and wallet are protected digitally through encryption algorithms " -"that can be unlocked  {{1}}" -msgstr "" -"Your money and wallet are protected digitally through encryption algorithms " -"that can be unlocked  {{1}}" - -#: src/jade/tabs/security.jade:12 -msgid "{{userBlob.data.contacts.length}} contacts,  {{1}}" -msgstr "{{userBlob.data.contacts.length}} contacts,  {{1}}" - -#: src/jade/tabs/security.jade:15 -msgid "You can  {{1}}" -msgstr "You can  {{1}}" +"Minimum amount of XRP required to fund your account. You cannot spend the " +"reserve." +msgstr "Minimum amount of XRP required to fund your account. You cannot spend the reserve." -#: src/jade/tabs/send.jade:24 -msgid "{{send.recipient_address}}" -msgstr "{{send.recipient_address}}" +#: src/jade/tabs/widgets/balances.jade:20 +msgid "Reserve amount
{{ account.reserve | rpamount }} XRP" +msgstr "Reserve amount
{{ account.reserve | rpamount }} XRP" -#: src/jade/tabs/send.jade:172 src/jade/tabs/send.jade:175 -#: src/jade/tabs/send.jade:178 src/jade/tabs/send.jade:181 -msgid "{{1}} {{2}}" -msgstr "{{1}} {{2}}" - -#: src/jade/tabs/trade.jade:29 src/jade/tabs/trade.jade:40 -msgid "XRP" -msgstr "XRP" - -#: src/jade/tabs/trade.jade:71 -msgid "Bid = " -msgstr "Bid = " - -#: src/jade/tabs/trade.jade:75 -msgid "Ask = " -msgstr "Ask = " +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Available amount" +msgstr "Available amount" -#: src/jade/tabs/trade.jade:79 -msgid "Spread = " -msgstr "Spread = " +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Total amount of XRP in your account minus the reserve amount." +msgstr "Total amount of XRP in your account minus the reserve amount." -#: src/jade/tabs/trade.jade:83 -msgid "Last price = " -msgstr "Last price = " +#: src/jade/tabs/widgets/balances.jade:28 +msgid "Available amount
{{ account.max_spend | rpamount }} XRP" +msgstr "Available amount
{{ account.max_spend | rpamount }} XRP" -#: src/jade/tabs/trade.jade:194 +#: src/jade/tabs/widgets/balances.jade:35 msgid "" -"You must have at least {{account.reserve_to_add_trust | rpamount}} XRP to " -"submit an order.  {{1}}" -msgstr "" -"You must have at least {{account.reserve_to_add_trust | rpamount}} XRP to " -"submit an order.  {{1}}" - -#: src/jade/tabs/trade.jade:249 -msgid "You haven't placed any orders." -msgstr "You haven't placed any orders." - -#: src/jade/tabs/trust.jade:44 -msgid "Account does not meet the minimum XRP reserve.  {{1}}" -msgstr "Account does not meet the minimum XRP reserve.  {{1}}" +"Balance
{{ entry.total | rpamount:{precision: 30, hard_precision: true} " +"}} {{ entry.total | rpcurrency }}" +msgstr "Balance
{{ entry.total | rpamount:{precision: 30, hard_precision: true} }} {{ entry.total | rpcurrency }}" -#: src/jade/tabs/trust.jade:83 -msgid "You must have at least {{1}} to add a new trust line.  {{2}}" -msgstr "You must have at least {{1}} to add a new trust line.  {{2}}" - -#: src/jade/tabs/trust.jade:106 +#: src/jade/tabs/widgets/balances.jade:43 msgid "" -"By pressing CONFIRM you are extending trust to  {{1}} for the same " -"currency which may result in your account balances changing without your " -"direct action. Make sure you understand these consequences, and that all " -"your issuers are trustworthy." -msgstr "" -"By pressing CONFIRM you are extending trust to  {{1}} for the same " -"currency which may result in your account balances changing without your " -"direct action. Make sure you understand these consequences, and that all " -"your issuers are trustworthy." +"Balance
{{ component | rpamount:{precision: 30, rel_min_precision: -2, " +"hard_precision: true} }} {{ entry.total | rpcurrency }}" +msgstr "Balance
{{ component | rpamount:{precision: 30, rel_min_precision: -2, hard_precision: true} }} {{ entry.total | rpcurrency }}" -#: src/jade/tabs/trust.jade:154 -msgid "" -"You must have at least {{account.reserve_to_add_trust | rpamount:0}} XRP to " -"add a trust line.  {{1}}" -msgstr "" -"You must have at least {{account.reserve_to_add_trust | rpamount:0}} XRP to " -"add a trust line.  {{1}}" +#: src/jade/tabs/widgets/markets.jade:3 +msgid "Markets" +msgstr "Markets" -#: src/jade/tabs/tx.jade:15 src/jade/tabs/tx.jade:41 -msgid "Address sent from:" -msgstr "Address sent from:" +#: src/jade/tabs/widgets/networth.jade:3 +msgid "Net Worth" +msgstr "Net Worth" -#: src/jade/tabs/tx.jade:17 -msgid "Amount sent:" -msgstr "Amount sent:" +#: src/jade/tabs/widgets/networth.jade:8 +msgid "{{1:{{1:In}}}}{{2}}" +msgstr "{{1:{{1:In}}}}{{2}}" -#: src/jade/tabs/tx.jade:19 -msgid "Currency sent:" -msgstr "Currency sent:" +#: src/jade/tabs/widgets/networth.jade:14 +msgid "Estimated from latest trade price" +msgstr "Estimated from latest trade price" -#: src/jade/tabs/tx.jade:22 -msgid "Address sent to:" -msgstr "Address sent to:" +#: src/jade/tabs/widgets/networth.jade:23 +msgid "(excluding negative balances)" +msgstr "(excluding negative balances)" -#: src/jade/tabs/tx.jade:24 -msgid "Amount received:" -msgstr "Amount received:" +#: src/jade/tabs/widgets/orders.jade:3 +msgid "My Orders" +msgstr "My Orders" -#: src/jade/tabs/tx.jade:26 -msgid "Currency received:" -msgstr "Currency received:" +#: src/jade/tabs/widgets/orders.jade:68 +msgid "trade currencies" +msgstr "trade currencies" -#: src/jade/tabs/tx.jade:30 -msgid "Network fee paid:" -msgstr "Network fee paid:" +#: src/jade/tabs/xrp.jade:19 +msgid "Ripple name: {{1}}{{2}}{{3}}" +msgstr "Ripple name: {{1}}{{2}}{{3}}" -#: src/jade/tabs/tx.jade:32 -msgid "Conversion rate:" -msgstr "Conversion rate:" +#: src/jade/tabs/xrp.jade:21 +msgid "loading..." +msgstr "loading..." -#: src/jade/tabs/tx.jade:36 -msgid "Ledger number:" -msgstr "Ledger number:" +#: src/jade/tabs/xrp.jade:23 +msgid "Show address" +msgstr "Show address" -#: src/jade/tabs/tx.jade:45 +#: src/jade/tabs/xrp.jade:25 msgid "" -"Sorry, we don't have an info page layout for this transaction type yet." -msgstr "" -"Sorry, we don't have an info page layout for this transaction type yet." +"Ripple names are a new feature on Ripple! Use your Ripple name " +"(~{{userCredentials.username}}) to receive money. You can still use your " +"full Ripple address, and while we are working to transition to Ripple names," +" some gateways may still ask for your full address." +msgstr "Ripple names are a new feature on Ripple! Use your Ripple name (~{{userCredentials.username}}) to receive money. You can still use your full Ripple address, and while we are working to transition to Ripple names, some gateways may still ask for your full address." diff --git a/l10n/es/messages.po b/l10n/es/messages.po index 36f5cf13e..639a6526c 100644 --- a/l10n/es/messages.po +++ b/l10n/es/messages.po @@ -1,11 +1,11 @@ # Generated by grunt-jade-l10n-extractor # Translators: # Ignacio Elizalde , 2014 -# Leonardo , 2013-2014 +# Leonardo , 2013-2015 msgid "" msgstr "" "Project-Id-Version: Ripple Trade\n" -"PO-Revision-Date: 2014-12-19 19:26+0000\n" +"PO-Revision-Date: 2015-01-21 19:24+0000\n" "Last-Translator: Leonardo \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/ripple-trade/language/es/)\n" "MIME-Version: 1.0\n" @@ -14,47 +14,49 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/jade/client/index.jade:5 src/jade/client/navbar.jade:112 -#: src/jade/tabs/trust.jade:86 src/jade/tabs/trust.jade:228 +#: src/jade/client/index.jade:5 src/jade/client/navbar.jade:117 +#: src/jade/tabs/trust.jade:59 src/jade/tabs/trust.jade:168 msgid "Balance" msgstr "Balance" -#: src/jade/client/index.jade:7 src/jade/client/navbar.jade:114 +#: src/jade/client/index.jade:7 src/jade/client/navbar.jade:119 msgid "History" msgstr "Historial" -#: src/jade/client/index.jade:8 src/jade/client/navbar.jade:116 -#: src/jade/tabs/contacts.jade:5 +#: src/jade/client/index.jade:8 src/jade/client/navbar.jade:121 msgid "Contacts" msgstr "Contactos" -#: src/jade/client/index.jade:12 src/jade/client/navbar.jade:13 -#: src/jade/tabs/contacts.jade:73 +#: src/jade/client/index.jade:12 src/jade/client/navbar.jade:21 +#: src/jade/tabs/contacts.jade:65 msgid "Send" msgstr "Enviar" -#: src/jade/client/index.jade:16 src/jade/client/navbar.jade:123 +#: src/jade/client/index.jade:16 msgid "Convert" msgstr "Convertir" -#: src/jade/client/index.jade:18 src/jade/client/navbar.jade:121 +#: src/jade/client/index.jade:18 src/jade/client/navbar.jade:23 +#: src/jade/client/navbar.jade:25 src/jade/tabs/settings/navbar.jade:3 msgid "Trade" msgstr "Cambio" -#: src/jade/client/index.jade:22 src/jade/client/navbar.jade:19 -#: src/jade/client/navbar.jade:128 +#: src/jade/client/index.jade:22 src/jade/client/navbar.jade:27 +#: src/jade/client/navbar.jade:133 msgid "Fund" msgstr "Financiar" -#: src/jade/client/index.jade:24 src/jade/tabs/fund/menu.jade:5 +#: src/jade/client/index.jade:24 src/jade/tabs/fund/menu.jade:29 msgid "Gateways" msgstr "Pasarelas" -#: src/jade/client/index.jade:29 src/jade/tabs/su.jade:12 +#: src/jade/client/index.jade:29 src/jade/client/navbar.jade:107 +#: src/jade/tabs/su.jade:12 msgid "Account" msgstr "Cuenta" -#: src/jade/client/index.jade:32 src/jade/tabs/advanced.jade:9 +#: src/jade/client/index.jade:32 src/jade/client/navbar.jade:109 +#: src/jade/tabs/advanced.jade:19 msgid "Settings" msgstr "Configuración" @@ -62,198 +64,437 @@ msgstr "Configuración" msgid "Logout" msgstr "Desconectar" -#: src/jade/client/index.jade:41 -msgid "Welcome to {{productName}}, a global value exchange" -msgstr "Bienvenido a {{productName}}, cambio de valores global" - -#: src/jade/client/index.jade:51 +#: src/jade/client/index.jade:61 +msgid "Why Use Ripple Trade?" +msgstr "Por qué usar Ripple Trade?" + +#: src/jade/client/index.jade:66 +msgid "Home of XRP -" +msgstr "Casa de XRP -" + +#: src/jade/client/index.jade:67 +msgid "the best place to buy and sell XRP" +msgstr "el mejor sitio para comprar y vender XRP" + +#: src/jade/client/index.jade:71 +msgid "Free -" +msgstr "Gratis -" + +#: src/jade/client/index.jade:72 +msgid "no fees to sign up and use Ripple Trade" +msgstr "sin comisiones de registro y uso de Ripple Trade" + +#: src/jade/client/index.jade:76 +msgid "No Middlemen -" +msgstr "Sin Intermediarios -" + +#: src/jade/client/index.jade:77 +msgid "" +"When you submit orders, Ripple automatically finds the best available match," +" without a clearinghouse or broker." +msgstr "Cuando emite sus ordenes, Ripple automaticamente encuentra el mejor resultado posible, sin brokers ni oficinas de inversion." + +#: src/jade/client/index.jade:81 +msgid "Deposit, trade and withdraw money on Ripple via gateways." +msgstr "Deposite, cambie y retire dinero de Ripple via pasarelas." + +#: src/jade/client/index.jade:89 +msgid "Featured Ripple Gateways" +msgstr "Principales Pasarelas Ripple" + +#: src/jade/client/index.jade:91 +msgid "Ripple's growing gateway network." +msgstr "La creciente red de pasarelas de Ripple." + +#: src/jade/client/index.jade:93 src/jade/client/index.jade:96 +#: src/jade/client/index.jade:99 src/jade/client/index.jade:102 +#: src/jade/client/index.jade:105 src/jade/client/index.jade:108 +#: src/jade/client/index.jade:111 src/jade/client/index.jade:114 +#: src/jade/client/index.jade:117 src/jade/tabs/banner/unfunded.jade:6 +#: src/jade/tabs/brl.jade:53 src/jade/tabs/brl.jade:57 +#: src/jade/tabs/brl.jade:93 src/jade/tabs/btc.jade:46 +#: src/jade/tabs/eur.jade:50 src/jade/tabs/eur.jade:54 +#: src/jade/tabs/eur.jade:86 src/jade/tabs/eur.jade:93 +#: src/jade/tabs/gold.jade:51 src/jade/tabs/jpy.jade:55 +#: src/jade/tabs/jpy.jade:91 src/jade/tabs/jpy.jade:97 +#: src/jade/tabs/mxn.jade:53 src/jade/tabs/send.jade:63 +#: src/jade/tabs/trade.jade:320 src/jade/tabs/usd.jade:51 +#: src/jade/tabs/usd.jade:83 src/jade/tabs/usd.jade:90 +#: src/jade/tabs/usd.jade:100 src/jade/tabs/widgets/orders.jade:31 +msgid "{{1}}" +msgstr "{{1}}" + +#: src/jade/client/index.jade:123 msgid "Version: {{version}}" msgstr "Versión: {{version}}" -#: src/jade/client/index.jade:55 -msgid "End-User License Agreement" -msgstr "Acuerdo de Licencia de Usuario" +#: src/jade/client/index.jade:128 +msgid "Terms of Use" +msgstr "Condiciones de Uso" -#: src/jade/client/index.jade:56 +#: src/jade/client/index.jade:129 +msgid "Privacy Policy" +msgstr "Política de Privacidad" + +#: src/jade/client/index.jade:130 msgid "Support" msgstr "Soporte" -#: src/jade/client/index.jade:57 +#: src/jade/client/index.jade:131 msgid "Bug reports" msgstr "Informes de errores" -#: src/jade/client/index.jade:64 +#: src/jade/client/index.jade:138 msgid "more..." msgstr "más..." -#: src/jade/client/index.jade:68 +#: src/jade/client/index.jade:142 msgid "Select a language" msgstr "Seleccione un idioma" -#: src/jade/client/navbar.jade:11 +#: src/jade/client/navbar.jade:2 +msgid "" +"You are viewing an account in {{1}} mode. While in this mode, you can view " +"publicly available data, but you cannot initiate any transactions. Click " +"{{2}} to exit." +msgstr "Esta viendo una cuenta en modo {{1}}. Mientras siga en este modo puede ver informacion publica, pero no puede iniciar ninguna transaccion. Haga click en para {{2}} salir." + +#: src/jade/client/navbar.jade:8 +msgid "" +"Warning: this account has over 200 trust lines, so the displayed account " +"balance may not be accurate." +msgstr "Atencion: esta cuenta tiene mas de 200 lineas de credito, por lo que el balance mostrado puede no ser preciso." + +#: src/jade/client/navbar.jade:19 msgid "Overview" msgstr "Resumen" -#: src/jade/client/navbar.jade:15 src/jade/client/navbar.jade:17 -#: src/jade/tabs/exchange.jade:43 -msgid "Exchange" -msgstr "Cambio" - -#: src/jade/client/navbar.jade:39 src/jade/tabs/account/public.jade:45 -#: src/jade/tabs/apps.jade:8 src/jade/tabs/balance.jade:8 -#: src/jade/tabs/balance.jade:27 src/jade/tabs/btc.jade:60 -#: src/jade/tabs/exchange.jade:9 src/jade/tabs/history.jade:207 -#: src/jade/tabs/kyc.jade:38 src/jade/tabs/recover.jade:21 -#: src/jade/tabs/security.jade:134 src/jade/tabs/su.jade:8 -#: src/jade/tabs/trust.jade:9 src/jade/tabs/trust.jade:175 +#: src/jade/client/navbar.jade:49 src/jade/tabs/account/private.jade:7 +#: src/jade/tabs/account/private.jade:16 src/jade/tabs/account/public.jade:45 +#: src/jade/tabs/apps.jade:8 src/jade/tabs/btc.jade:72 +#: src/jade/tabs/exchange.jade:9 src/jade/tabs/kyc.jade:45 +#: src/jade/tabs/recover.jade:26 src/jade/tabs/security.jade:147 +#: src/jade/tabs/su.jade:8 src/jade/tabs/trust.jade:9 +#: src/jade/tabs/trust.jade:139 msgid "Loading..." msgstr "Cargando..." -#: src/jade/client/navbar.jade:40 +#: src/jade/client/navbar.jade:50 msgid "There are no recent notifications." msgstr "No hay notificaciones recientes" -#: src/jade/client/navbar.jade:44 +#: src/jade/client/navbar.jade:54 msgid "You sent {{1}} to {{2}}" msgstr "Ha enviado {{1}} a {{2}}" -#: src/jade/client/navbar.jade:50 +#: src/jade/client/navbar.jade:60 msgid "{{1}} sent you {{2}}" msgstr "{{1}} le ha enviado {{2}}" -#: src/jade/client/navbar.jade:58 +#: src/jade/client/navbar.jade:68 msgid "{{entry.transaction.counterparty | rpcontactname}} now trusts you for" msgstr "{{entry.transaction.counterparty | rpcontactname}} le ha acreditado por" -#: src/jade/client/navbar.jade:64 src/jade/notification/account.jade:25 -#: src/jade/tabs/history.jade:133 src/jade/tabs/history/effects.jade:63 +#: src/jade/client/navbar.jade:74 src/jade/notification/account.jade:25 +#: src/jade/tabs/history.jade:115 src/jade/tabs/history/effects.jade:63 msgid "You have now connected to the gateway {{1}}{{2: for }}{{3}}." msgstr "Se acaba de conectar a la pasarela {{1}}{{2: por }}{{3}}." -#: src/jade/client/navbar.jade:75 +#: src/jade/client/navbar.jade:85 msgid "You cancelled an order accepting {{1}} for {{2}}" msgstr "Ha cancelado una orden aceptando {{1}} por {{2}}" -#: src/jade/client/navbar.jade:82 src/jade/tabs/history.jade:156 +#: src/jade/client/navbar.jade:92 src/jade/tabs/history.jade:138 msgid "Account details have been changed" msgstr "Los datos de la cuenta han sido modificados" -#: src/jade/client/navbar.jade:85 src/jade/tabs/history.jade:159 -#: src/jade/tabs/trust.jade:231 +#: src/jade/client/navbar.jade:95 src/jade/tabs/history.jade:141 +#: src/jade/tabs/trust.jade:171 msgid "Rippling" msgstr "Rippleando" -#: src/jade/client/navbar.jade:87 src/jade/tabs/history.jade:161 +#: src/jade/client/navbar.jade:97 src/jade/tabs/history.jade:143 msgid "Failed transaction" msgstr "Transacción fallida" -#: src/jade/client/navbar.jade:93 +#: src/jade/client/navbar.jade:103 msgid "View Full History" msgstr "Ver el Historial Completo" -#: src/jade/client/navbar.jade:97 -msgid "{{1}} Account" -msgstr "{{1}} Cuenta" +#: src/jade/client/navbar.jade:111 +msgid "Log Out" +msgstr "Desconectar" -#: src/jade/client/navbar.jade:101 -msgid "{{1}} Settings" -msgstr "{{1}} Configuración" +#: src/jade/client/navbar.jade:126 +msgid "Simple" +msgstr "Simple" -#: src/jade/client/navbar.jade:105 -msgid "{{1}} Log Out" -msgstr "{{1}} Desconectar" +#: src/jade/client/navbar.jade:128 src/jade/tabs/settings/navbar.jade:4 +msgid "Advanced" +msgstr "Avanzado" -#: src/jade/client/navbar.jade:130 src/jade/tabs/balance.jade:110 +#: src/jade/client/navbar.jade:135 msgid "Withdraw" msgstr "Retirar" -#: src/jade/client/navbar.jade:132 +#: src/jade/client/navbar.jade:137 msgid "" "Your account was successfully recovered and encrypted with the new password " "you provided!" msgstr "Su cuenta ha sido recuperada y encriptada con la nueva contraseña indicada con éxito!" -#: src/jade/client/navbar.jade:133 +#: src/jade/client/navbar.jade:138 msgid "dismiss" msgstr "Omitir" -#: src/jade/directives/transactionerror.jade:5 +#: src/jade/directives/addresspopover.jade:3 +msgid "Ripple address {{ identity }}" +msgstr "Dirección Ripple {{ identity }}" + +#: src/jade/directives/addresspopover.jade:8 src/jade/tabs/tx.jade:13 +msgid "Show in graph" +msgstr "Mostrar en un gráfico" + +#: src/jade/directives/transactionerror.jade:8 +msgid "Connecting gateway to your account..." +msgstr "Conectando pasarela a su cuenta..." + +#: src/jade/directives/transactionerror.jade:10 +msgid "Gateway connected." +msgstr "Pasarela conectada." + +#: src/jade/directives/transactionerror.jade:12 +msgid "There was a problem connecting to the gateway. Please try again later." +msgstr "Ha habido un problema conectando con la pasarela. Por favor inténtelo más tarde." + +#: src/jade/directives/transactionerror.jade:14 +#: src/jade/directives/transactionerror.jade:73 +#: src/jade/directives/transactionerror.jade:158 +#: src/jade/messages/sendconvert/confirmation.jade:13 +msgid "Error code: {{engine_result}} - {{engine_result_message}}" +msgstr "Código de error: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:19 +#: src/jade/directives/transactionerror.jade:23 +#: src/jade/directives/transactionerror.jade:28 +#: src/jade/directives/transactionerror.jade:33 +#: src/jade/directives/transactionerror.jade:45 +#: src/jade/directives/transactionerror.jade:52 +#: src/jade/directives/transactionerror.jade:156 +#: src/jade/directives/transactionerror.jade:163 +#: src/jade/directives/transactionerror.jade:167 +#: src/jade/directives/transactionerror.jade:172 +#: src/jade/directives/transactionerror.jade:177 +#: src/jade/directives/transactionerror.jade:186 +#: src/jade/directives/transactionerror.jade:193 +msgid "Request failed" +msgstr "Petición fallida" + +#: src/jade/directives/transactionerror.jade:21 +#: src/jade/directives/transactionerror.jade:165 +msgid "Your request timed out, please try again." +msgstr "Su petición ha expirado, por favor inténtelo de nuevo." + +#: src/jade/directives/transactionerror.jade:25 +#: src/jade/directives/transactionerror.jade:84 +#: src/jade/directives/transactionerror.jade:169 +#: src/jade/messages/sendconvert/confirmation.jade:18 +msgid "Error code: Destination tag needed [tefDST_TAG_NEEDED]." +msgstr "Código de error: Etiqueta de destino requerida [tefDST_TAG_NEEDED]." + +#: src/jade/directives/transactionerror.jade:30 +#: src/jade/directives/transactionerror.jade:174 +msgid "" +"Error code: This request failed because it exceeded the maximum network fee," +" please try again later [telINSUF_FEE_P]." +msgstr "Código de error: Esta petición ha fallado porque supera la comisión máxima de red, por favor inténtelo más tarde [telINSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:35 +msgid "" +"Error code: You have no gateway connected in this currency [terNO_LINE]." +msgstr "Código de error: No tiene ninguna pasarela conectada para esta divisa [terNO_LINE]." + +#: src/jade/directives/transactionerror.jade:37 +msgid "" +"Error code: Insufficient reserve to connect gateway [tecINSUF_RESERVE_LINE]." +msgstr "Código de error: Reserva insuficiente para conectar con pasarela [tecINSUF_RESERVE_LINE]." + +#: src/jade/directives/transactionerror.jade:39 +msgid "" +"Error code: You have an insufficient reserve amount to connect a gateway " +"[tecNO_LINE_INSUF_RESERVE]. {{1}}" +msgstr "Código de error: Su reserva es insuficiente para conectar con pasarela [tecNO_LINE_INSUF_RESERVE]. {{1}}" + +#: src/jade/directives/transactionerror.jade:41 src/jade/tabs/fund.jade:34 +#: src/jade/tabs/send.jade:110 src/jade/tabs/trust.jade:74 +msgid "More information" +msgstr "Más información" + +#: src/jade/directives/transactionerror.jade:42 +#: src/jade/directives/transactionerror.jade:98 +#: src/jade/directives/transactionerror.jade:135 +#: src/jade/directives/transactionerror.jade:183 +#: src/jade/messages/sendconvert/confirmation.jade:27 +msgid "Error: {{engine_result_message}}" +msgstr "Error: {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:47 +#: src/jade/directives/transactionerror.jade:103 +#: src/jade/directives/transactionerror.jade:188 +#: src/jade/messages/sendconvert/confirmation.jade:32 +msgid "Error code: You have no trust line in this currency [terNO_LINE]." +msgstr "Código de error: No tiene linea de crédito en esta moneda [terNO_LINE]." + +#: src/jade/directives/transactionerror.jade:49 +#: src/jade/directives/transactionerror.jade:190 +msgid "Your request failed: {{engine_result}} - {{engine_result_message}}" +msgstr "Su peticion ha fallado: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:54 +#: src/jade/directives/transactionerror.jade:195 +msgid "Error code: request could not be submitted [tejLost]." +msgstr "Código de error: La petición no se pudo enviar [tejLost]. " + +#: src/jade/directives/transactionerror.jade:56 +#: src/jade/directives/transactionerror.jade:197 src/jade/tabs/trust.jade:36 +msgid "" +"This request failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "Esta peticion ha fallado porque la comision de red actual es superior a su limite de cuenta. Puede ajustar su comision maxima de red en Ajustes > Avanzado, o intentarlo de nuevo mas tarde.
Error code: Network fee exceeded [tejMaxFeeExceeded]." + +#: src/jade/directives/transactionerror.jade:59 +#: src/jade/directives/transactionerror.jade:200 +msgid "" +"Your request could not be submitted: {{engine_result}} - " +"{{engine_result_message}}" +msgstr "Su peticion no ha podido ser enviada: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:67 msgid "Payment pending" msgstr "Pago pendiente" -#: src/jade/directives/transactionerror.jade:7 +#: src/jade/directives/transactionerror.jade:69 msgid "Payment successful" msgstr "Pago efectuado" -#: src/jade/directives/transactionerror.jade:9 -#: src/jade/directives/transactionerror.jade:16 -#: src/jade/directives/transactionerror.jade:20 -#: src/jade/directives/transactionerror.jade:25 -#: src/jade/directives/transactionerror.jade:30 -#: src/jade/directives/transactionerror.jade:39 -#: src/jade/directives/transactionerror.jade:46 +#: src/jade/directives/transactionerror.jade:71 +#: src/jade/directives/transactionerror.jade:82 +#: src/jade/directives/transactionerror.jade:87 +#: src/jade/directives/transactionerror.jade:92 +#: src/jade/directives/transactionerror.jade:101 +#: src/jade/directives/transactionerror.jade:108 msgid "Payment failed" msgstr "Pago fallido" -#: src/jade/directives/transactionerror.jade:11 -#: src/jade/messages/sendconvert/confirmation.jade:13 -msgid "Error code: {{engine_result}} - {{engine_result_message}}" -msgstr "Código de error: {{engine_result}} - {{engine_result_message}}" +#: src/jade/directives/transactionerror.jade:78 +msgid "Payment failed [tefMAX_LEDGER]." +msgstr "Pago fallido [tefMAX_LEDGER]." -#: src/jade/directives/transactionerror.jade:18 +#: src/jade/directives/transactionerror.jade:80 msgid "Your payment timed out, please try again." msgstr "Su pago ha expirado, por favor inténtelo de nuevo." -#: src/jade/directives/transactionerror.jade:22 -#: src/jade/messages/sendconvert/confirmation.jade:18 -msgid "Error code: Destination tag needed [tefDST_TAG_NEEDED]." -msgstr "Código de error: Etiqueta de destino requerida [tefDST_TAG_NEEDED]." - -#: src/jade/directives/transactionerror.jade:27 +#: src/jade/directives/transactionerror.jade:89 #: src/jade/messages/sendconvert/confirmation.jade:39 msgid "" "Error code: This transaction failed because it exceeded the maximum network " "fee, please try again later [telINSUF_FEE_P]." msgstr "Código de error: Esta transacción ha fallado porque supera la comisión máxima de red, por favor inténtelo más tarde [telINSUF_FEE_P]." -#: src/jade/directives/transactionerror.jade:32 +#: src/jade/directives/transactionerror.jade:94 +#: src/jade/directives/transactionerror.jade:179 msgid "Error code: No destination [tecNO_DST]." msgstr "Código de error: No hay destino [tecNO_DST]." -#: src/jade/directives/transactionerror.jade:34 +#: src/jade/directives/transactionerror.jade:96 +#: src/jade/directives/transactionerror.jade:181 #: src/jade/messages/sendconvert/confirmation.jade:25 msgid "" "Error code: Insufficient XRP sent to destination [tecNO_DST_INSUF_XRP]." msgstr "Código de error: Cantidad de XRP enviados al destino insuficiente [tecNO_DST_INSUF_XRP]." -#: src/jade/directives/transactionerror.jade:36 -#: src/jade/messages/sendconvert/confirmation.jade:27 -msgid "Error: {{engine_result_message}}" -msgstr "Error: {{engine_result_message}}" - -#: src/jade/directives/transactionerror.jade:41 -#: src/jade/messages/sendconvert/confirmation.jade:32 -msgid "Error code: You have no trust line in this currency [terNO_LINE]." -msgstr "Código de error: No tiene linea de crédito en esta moneda [terNO_LINE]." - -#: src/jade/directives/transactionerror.jade:43 +#: src/jade/directives/transactionerror.jade:105 msgid "Your payment failed: {{engine_result}} - {{engine_result_message}}" msgstr "Su pago ha fallado: {{engine_result}} - {{engine_result_message}}" -#: src/jade/directives/transactionerror.jade:48 +#: src/jade/directives/transactionerror.jade:110 msgid "Error code: Transaction could not be submitted [tejLost]." msgstr "Código de error: La transaccóin no se pudo enviar [tejLost]. " -#: src/jade/directives/transactionerror.jade:50 -msgid "Error code: Network fee exceeded [tejMaxFeeExceeded]." -msgstr "Código de error: Comisión de red excedida [tejMaxFeeExceeded]. " +#: src/jade/directives/transactionerror.jade:112 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "Esta peticion ha fallado porque la comision de red actual es superior a su limite de cuenta. Puede ajustar su comision maxima de red en Ajustes > Avanzado, o intentarlo de nuevo mas tarde.
Error code: Network fee exceeded [tejMaxFeeExceeded]." -#: src/jade/directives/transactionerror.jade:52 +#: src/jade/directives/transactionerror.jade:115 msgid "" "Your payment could not be submitted: {{engine_result}} - " "{{engine_result_message}}" msgstr "Su pago no ha podido ser enviado: {{engine_result}} - {{engine_result_message}}" +#: src/jade/directives/transactionerror.jade:121 +msgid "Request is malformed." +msgstr "La petición no esta bien hecha." + +#: src/jade/directives/transactionerror.jade:122 +msgid "" +"Your request is invalid, reason: {{engine_result_message}} - " +"{{engine_result_message}}" +msgstr "Su peticion no es valida, motivo: {{engine_result_message}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:125 +#: src/jade/directives/transactionerror.jade:142 +msgid "Transaction failed." +msgstr "Transacción fallida." + +#: src/jade/directives/transactionerror.jade:127 +msgid "You do not have enough funds to create this order [tecUNFUNDED_ORDER]." +msgstr "No tiene suficentes fondos para crear esta orden [tecUNFUNDED_ORDER]." + +#: src/jade/directives/transactionerror.jade:129 +msgid "" +"Insufficient reserve amount to submit an order [tecINSUF_RESERVE_OFFER]." +msgstr "Cantidad de reserva insuficiente para emitir una orden [tecINSUF_RESERVE_OFFER]." + +#: src/jade/directives/transactionerror.jade:131 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]. {{1}}" +msgstr "Esta transaccion ha fallado porque la comision de red actual es superior a su limite de cuenta. Puede ajustar su comision maxima de red en Ajustes > Avanzado, o intentarlo de nuevo mas tarde.
Error code: Network fee exceeded [tejMaxFeeExceeded]. {{1}}" + +#: src/jade/directives/transactionerror.jade:134 +msgid "More information." +msgstr "Más información." + +#: src/jade/directives/transactionerror.jade:138 +msgid "Trade failed." +msgstr "Cambio fallido." + +#: src/jade/directives/transactionerror.jade:140 +msgid "Trade failed, reason: {{engine_result_message}}" +msgstr "El Cambio ha fallado, motivo: {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:144 +msgid "" +"The particular server you sent the transaction to was too busy to forward or" +" process your transaction at the fee you included in it [telINSUF_FEE_P]." +msgstr "El servidor al que envio la transaccion estaba demasiado ocupado para procesar o redirigir su transaccion con la comision que ha incluido [telINSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:152 +msgid "Request pending" +msgstr "Petición pendiente" + +#: src/jade/directives/transactionerror.jade:154 +msgid "Request successful" +msgstr "Petición efectuada" + #: src/jade/messages/sendconvert/confirmation.jade:4 msgid "Transaction pending." msgstr "Transacción pendiente." @@ -275,8 +516,11 @@ msgstr "Transacción efectuada" msgid "Transaction failed" msgstr "Transaccion fallida" -#: src/jade/messages/sendconvert/confirmation.jade:9 -#: src/jade/tabs/trust.jade:58 src/jade/tabs/trust.jade:70 +#: src/jade/messages/sendconvert/confirmation.jade:9 src/jade/tabs/brl.jade:25 +#: src/jade/tabs/btc.jade:22 src/jade/tabs/eur.jade:25 +#: src/jade/tabs/gold.jade:25 src/jade/tabs/jpy.jade:25 +#: src/jade/tabs/mxn.jade:25 src/jade/tabs/trust.jade:43 +#: src/jade/tabs/usd.jade:25 msgid "Please try again later." msgstr "Por favor inténtelo de nuevo más tarde." @@ -317,6 +561,7 @@ msgid "Account unlock failed" msgstr "Desbloqueo de cuenta fallido" #: src/jade/messages/sendconvert/localerror.jade:18 +#: src/jade/tabs/trust.jade:40 msgid "Your account could not be unlocked. Please try again later." msgstr "Su cuentq no ha podido ser desbloqueada. Por favor inténtelo más tarde." @@ -332,7 +577,7 @@ msgid "" "executed already." msgstr "Antes de intentarlo de nuevo, por favor asegurese de que la transaccion no se haya ejecutado ya." -#: src/jade/messages/sendconvert/waiting.jade:3 +#: src/jade/messages/sendconvert/waiting.jade:5 msgid "Sending transaction to the Ripple network" msgstr "Enviando transacción a la red Ripple" @@ -348,13 +593,49 @@ msgstr "{{tx.counterparty | rpcontactname}} le ha enviado " msgid "{{tx.counterparty | rpcontactname}} now trusts you for" msgstr "{{tx.counterparty | rpcontactname}} le ha acreditado por " +#: src/jade/popup/modifyOrderError.jade:2 +msgid "Modify Order Error" +msgstr "Modificar Error de Orden" + +#: src/jade/popup/modifyOrderError.jade:4 +msgid "Sorry, your order could not be modified." +msgstr "Lo sentimos, su orden no ha podido modificarse." + +#: src/jade/popup/modifyOrderError.jade:5 +msgid "" +"Your original order was cancelled but the modified order was not placed. " +"
" +msgstr "Su orden original fue cancelada pero su orden modificada no podido ponerse.
" + +#: src/jade/popup/modifyOrderError.jade:6 +msgid "" +"The quantity of your order changed by {{order.qtyChangeAfterCancel | " +"rpamount}} before the order could be modified.

" +msgstr "La cantidad de su orden ha cambiado en {{order.qtyChangeAfterCancel | rpamount}} antes de que la orden pudiese ser modificada.

" + +#: src/jade/popup/modifyOrderError.jade:7 +msgid "" +"To safeguard against the possibility of overfills a new order has not been " +"placed.
" +msgstr "Para prevenir la posibilidad de sobrecarga la nueva orden no ha sido enviada.
" + +#: src/jade/popup/modifyOrderError.jade:8 +msgid "" +"Please check your balance and history before placing the new order manually." +"
" +msgstr "Por favor compruebe su balance e historial antes de introducir una orden manualmente.
" + +#: src/jade/popup/modifyOrderError.jade:10 src/jade/popup/unlock.jade:17 +msgid "Close" +msgstr "Cerrar" + #: src/jade/popup/unlock.jade:2 msgid "Unlock account" msgstr "Desbloquear cuenta" -#: src/jade/popup/unlock.jade:5 src/jade/tabs/desktop/register.jade:28 -#: src/jade/tabs/login/form.jade:7 src/jade/tabs/recover.jade:33 -#: src/jade/tabs/register.jade:42 src/jade/tabs/security.jade:10 +#: src/jade/popup/unlock.jade:5 src/jade/tabs/login/form.jade:8 +#: src/jade/tabs/recover.jade:38 src/jade/tabs/register.jade:58 +#: src/jade/tabs/security.jade:12 msgid "Password" msgstr "Contraseña" @@ -362,7 +643,7 @@ msgstr "Contraseña" msgid "Please enter your password to show your secret key." msgstr "Por favor intoroduzca su contraseña para mostrar su clave secreta." -#: src/jade/popup/unlock.jade:9 src/jade/tabs/send.jade:195 +#: src/jade/popup/unlock.jade:9 src/jade/tabs/send.jade:205 msgid "Please enter your password to confirm this transaction." msgstr "Por favor introduzca su contraseña para confirmar esta transacción." @@ -370,52 +651,146 @@ msgstr "Por favor introduzca su contraseña para confirmar esta transacción." msgid "This password is incorrect, please try again." msgstr "La contraseña es incorrecta, por favor inténtelo de nuevo." -#: src/jade/popup/unlock.jade:11 +#: src/jade/popup/unlock.jade:13 msgid "Confirming password" msgstr "Comprobando contraseña" -#: src/jade/popup/unlock.jade:14 src/jade/tabs/account/public.jade:44 -#: src/jade/tabs/security.jade:133 +#: src/jade/popup/unlock.jade:16 src/jade/tabs/account/public.jade:44 +#: src/jade/tabs/security.jade:146 msgid "Submit" msgstr "Enviar" -#: src/jade/popup/unlock.jade:15 -msgid "Close" -msgstr "Cerrar" - #: src/jade/tabs/2fa/form.jade:3 msgid "Country Code" msgstr "Código de País" -#: src/jade/tabs/2fa/form.jade:6 src/jade/tabs/kyc.jade:146 +#: src/jade/tabs/2fa/form.jade:6 src/jade/tabs/kyc.jade:162 msgid "Phone Number" msgstr "Número de Teléfono" +#: src/jade/tabs/_usd.jade:6 src/jade/tabs/apps.jade:5 +#: src/jade/tabs/balance.jade:5 src/jade/tabs/brl.jade:6 +#: src/jade/tabs/btc.jade:9 src/jade/tabs/eur.jade:6 +#: src/jade/tabs/exchange.jade:6 src/jade/tabs/fund.jade:6 +#: src/jade/tabs/gold.jade:6 src/jade/tabs/history.jade:6 +#: src/jade/tabs/jpy.jade:6 src/jade/tabs/kyc.jade:6 src/jade/tabs/mxn.jade:6 +#: src/jade/tabs/send.jade:6 src/jade/tabs/su.jade:5 +#: src/jade/tabs/trade.jade:7 src/jade/tabs/trust.jade:6 +#: src/jade/tabs/usd.jade:6 src/jade/tabs/withdraw.jade:6 +#: src/jade/tabs/xrp.jade:6 +msgid "You have to be online to see this screen" +msgstr "Debe estar online para ver esto" + +#: src/jade/tabs/_usd.jade:17 +msgid "USD instant deposit" +msgstr "Deposito instantaneo USD" + +#: src/jade/tabs/_usd.jade:19 src/jade/tabs/_usd.jade:21 +msgid "Step 1 (Amount)" +msgstr "Paso 1 (Cantidad)" + +#: src/jade/tabs/_usd.jade:22 +msgid "Step 2 (Confirmation)" +msgstr "Paso 2 (Confirmacion)" + +#: src/jade/tabs/_usd.jade:23 +msgid "Step 3 (Complete deposit)" +msgstr "Paso 3 (Completar deposito)" + +#: src/jade/tabs/_usd.jade:26 +msgid "STEP 1: AMOUNT" +msgstr "PASO 1: CANTIDAD" + +#: src/jade/tabs/_usd.jade:28 +msgid "STEP 2: CONFIRMATION" +msgstr "PASO 2: CONFIRMACION" + +#: src/jade/tabs/_usd.jade:30 +msgid "STEP 3: COMPLETE DEPOSIT" +msgstr "PASO 3: COMPLETAR DEPOSITO" + +#: src/jade/tabs/_usd.jade:34 +msgid "" +"Success! You've completed your USD deposit. Your funds should be available " +"within a few minutes." +msgstr "Hecho! Ha completado su deposito de USD. Sus fondos estaran disponibles en unos minutos." + +#: src/jade/tabs/_usd.jade:36 +msgid "You cancelled your deposit." +msgstr "Ha cancelado su deposito." + +#: src/jade/tabs/_usd.jade:38 +msgid "" +"Your deposit failed. Your bank account was not charged. Please contact " +"{{1}}." +msgstr "Su deposito ha fallado. No se ha cargado nada en su cuenta bancaria. Por favor contacte {{1}}." + +#: src/jade/tabs/_usd.jade:49 src/jade/tabs/_usd.jade:91 +#: src/jade/tabs/fund.jade:41 src/jade/tabs/history.jade:172 +#: src/jade/tabs/trust.jade:89 +msgid "Amount" +msgstr "Cantidad" + +#: src/jade/tabs/_usd.jade:59 src/jade/tabs/_usd.jade:62 +msgid "Select your bank" +msgstr "Seleccione su banco" + +#: src/jade/tabs/_usd.jade:77 +msgid "" +"Ripple Trade has partnered with SnapSwap to make USD deposits easier. By " +"continuing, you agree to SnapSwap's {{1}}To contact support, email {{2}}." +msgstr "Ripple Trade se ha asociado con SnapSwap para facilitar los depositos de USD. Al continuar acepta las {{1}} de SnapSwap. Para contactar con soporte envie un email a {{2}}." + +#: src/jade/tabs/_usd.jade:93 src/jade/tabs/history.jade:178 +msgid "Fee" +msgstr "Comisión" + +#: src/jade/tabs/_usd.jade:95 +msgid "Total" +msgstr "Total" + +#: src/jade/tabs/_usd.jade:98 +msgid "Calculating..." +msgstr "Calculando..." + +#: src/jade/tabs/_usd.jade:109 src/jade/tabs/register.jade:126 +#: src/jade/tabs/register.jade:133 +msgid "Back" +msgstr "Atrás" + +#: src/jade/tabs/_usd.jade:111 src/jade/tabs/btc.jade:73 +#: src/jade/tabs/exchange.jade:111 src/jade/tabs/send.jade:213 +#: src/jade/tabs/trade.jade:67 src/jade/tabs/trade.jade:77 +#: src/jade/tabs/trade.jade:248 src/jade/tabs/trade.jade:407 +#: src/jade/tabs/trust.jade:140 +msgid "Confirm" +msgstr "Confirmar" + #: src/jade/tabs/account/navbar.jade:2 msgid "Public Information" msgstr "Información Pública" -#: src/jade/tabs/account/private.jade:2 +#: src/jade/tabs/account/private.jade:1 msgid "Profile Information" msgstr "Información de Perfil" -#: src/jade/tabs/account/private.jade:5 +#: src/jade/tabs/account/private.jade:3 msgid "Identity Information" msgstr "Información de Identidad" -#: src/jade/tabs/account/private.jade:8 src/jade/tabs/account/private.jade:19 +#: src/jade/tabs/account/private.jade:8 src/jade/tabs/account/private.jade:17 msgid "Completed" msgstr "Completado" -#: src/jade/tabs/account/private.jade:11 src/jade/tabs/account/private.jade:22 +#: src/jade/tabs/account/private.jade:9 src/jade/tabs/account/private.jade:18 msgid "Incomplete" msgstr "Incompleto" -#: src/jade/tabs/account/private.jade:13 src/jade/tabs/account/private.jade:24 +#: src/jade/tabs/account/private.jade:10 src/jade/tabs/account/private.jade:19 msgid "Complete your profile" msgstr "Complete su perfil" -#: src/jade/tabs/account/private.jade:16 +#: src/jade/tabs/account/private.jade:12 msgid "Identity Questions" msgstr "Preguntas de Identidad" @@ -431,15 +806,17 @@ msgstr "Su nombre Ripple ha sido cambiado con éxito." msgid "Account settings" msgstr "Configuración de cuenta" -#: src/jade/tabs/account/public.jade:5 src/jade/tabs/login/form.jade:2 +#: src/jade/tabs/account/public.jade:5 src/jade/tabs/fund/menu.jade:2 +#: src/jade/tabs/login/form.jade:3 msgid "Ripple name" msgstr "Nombre Ripple" -#: src/jade/tabs/account/public.jade:9 src/jade/tabs/advanced.jade:17 -#: src/jade/tabs/advanced.jade:34 src/jade/tabs/advanced.jade:53 -#: src/jade/tabs/advanced.jade:106 src/jade/tabs/contacts.jade:69 -#: src/jade/tabs/security.jade:107 src/jade/tabs/security.jade:165 -#: src/jade/tabs/trust.jade:219 src/jade/tabs/trust.jade:248 +#: src/jade/tabs/account/public.jade:9 src/jade/tabs/advanced.jade:27 +#: src/jade/tabs/advanced.jade:44 src/jade/tabs/advanced.jade:63 +#: src/jade/tabs/advanced.jade:86 src/jade/tabs/advanced.jade:134 +#: src/jade/tabs/contacts.jade:61 src/jade/tabs/security.jade:120 +#: src/jade/tabs/security.jade:180 src/jade/tabs/trust.jade:191 +#: src/jade/tabs/trust.jade:193 msgid "edit" msgstr "Editar" @@ -447,23 +824,24 @@ msgstr "Editar" msgid "New Ripple name" msgstr "Nuevo nombre Ripple" -#: src/jade/tabs/account/public.jade:17 src/jade/tabs/balance.jade:60 +#: src/jade/tabs/account/public.jade:17 src/jade/tabs/register.jade:35 +#: src/jade/tabs/widgets/balances.jade:24 msgid "Available" msgstr "Disponible" -#: src/jade/tabs/account/public.jade:20 src/jade/tabs/register.jade:30 +#: src/jade/tabs/account/public.jade:20 src/jade/tabs/register.jade:39 msgid "Already taken!" msgstr "Ya asignado!" -#: src/jade/tabs/account/public.jade:21 src/jade/tabs/register.jade:31 +#: src/jade/tabs/account/public.jade:21 msgid "Reserved for {{usernameReservedFor}}{{1}}{{2}}" msgstr "Reservado para {{usernameReservedFor}}{{1}}{{2}} " -#: src/jade/tabs/account/public.jade:24 src/jade/tabs/register.jade:34 +#: src/jade/tabs/account/public.jade:24 src/jade/tabs/register.jade:45 msgid "Must be at least 2 characters" msgstr "Debe tener al menos 2 caracteres." -#: src/jade/tabs/account/public.jade:25 src/jade/tabs/register.jade:35 +#: src/jade/tabs/account/public.jade:25 src/jade/tabs/register.jade:47 msgid "Must be at most 20 characters" msgstr "Debe tener como máximo 20 caracteres." @@ -471,11 +849,11 @@ msgstr "Debe tener como máximo 20 caracteres." msgid "Only a-z, 0-9 and hyphen (-)" msgstr "Solo a-z, 0-9 y guión (-)" -#: src/jade/tabs/account/public.jade:27 src/jade/tabs/register.jade:37 +#: src/jade/tabs/account/public.jade:27 src/jade/tabs/register.jade:51 msgid "Cannot start with hyphen (-)" msgstr "No puede empezar por guión (-)" -#: src/jade/tabs/account/public.jade:28 src/jade/tabs/register.jade:38 +#: src/jade/tabs/account/public.jade:28 src/jade/tabs/register.jade:53 msgid "Cannot end with hyphen (-)" msgstr "No puede acabar en guión (-)" @@ -483,16 +861,16 @@ msgstr "No puede acabar en guión (-)" msgid "Cannot bundle hyphens (--)" msgstr "No puede enlazar guiones (--)" -#: src/jade/tabs/account/public.jade:30 src/jade/tabs/register.jade:40 +#: src/jade/tabs/account/public.jade:30 src/jade/tabs/register.jade:56 msgid "Checking..." msgstr "Comprobando..." -#: src/jade/tabs/account/public.jade:32 src/jade/tabs/security.jade:113 +#: src/jade/tabs/account/public.jade:32 src/jade/tabs/security.jade:126 msgid "Current password" msgstr "Contraseña actual" -#: src/jade/tabs/account/public.jade:35 src/jade/tabs/security.jade:15 -#: src/jade/tabs/security.jade:20 +#: src/jade/tabs/account/public.jade:35 src/jade/tabs/security.jade:18 +#: src/jade/tabs/security.jade:23 msgid "Entered password is wrong." msgstr "La contraseña introducida es incorrecta." @@ -504,107 +882,135 @@ msgstr "Su nombre Ripple ha sido cambiado. Por favor conéctese de nuevo." msgid "Couldn't change your Ripple name, please try again later." msgstr "No se ha podido cambiar su nombre Ripple, por favor inténtelo de nuevo más tarde." -#: src/jade/tabs/account/public.jade:47 src/jade/tabs/advanced.jade:26 -#: src/jade/tabs/advanced.jade:43 src/jade/tabs/advanced.jade:67 -#: src/jade/tabs/advanced.jade:96 src/jade/tabs/btc.jade:62 -#: src/jade/tabs/contacts.jade:58 src/jade/tabs/contacts.jade:101 -#: src/jade/tabs/exchange.jade:94 src/jade/tabs/exchange.jade:107 -#: src/jade/tabs/kyc.jade:106 src/jade/tabs/kyc.jade:118 -#: src/jade/tabs/kyc.jade:140 src/jade/tabs/kyc.jade:141 -#: src/jade/tabs/kyc.jade:167 src/jade/tabs/login/form.jade:25 -#: src/jade/tabs/security.jade:71 src/jade/tabs/security.jade:101 -#: src/jade/tabs/security.jade:136 src/jade/tabs/send.jade:205 -#: src/jade/tabs/send.jade:217 src/jade/tabs/send.jade:238 -#: src/jade/tabs/send.jade:268 src/jade/tabs/trade.jade:32 -#: src/jade/tabs/trade.jade:43 src/jade/tabs/trust.jade:177 -#: src/jade/tabs/trust.jade:179 src/jade/tabs/trust.jade:263 -#: src/jade/tabs/trust.jade:296 +#: src/jade/tabs/account/public.jade:47 src/jade/tabs/advanced.jade:36 +#: src/jade/tabs/advanced.jade:53 src/jade/tabs/advanced.jade:77 +#: src/jade/tabs/advanced.jade:94 src/jade/tabs/advanced.jade:124 +#: src/jade/tabs/btc.jade:74 src/jade/tabs/contacts.jade:50 +#: src/jade/tabs/contacts.jade:93 src/jade/tabs/exchange.jade:113 +#: src/jade/tabs/exchange.jade:126 src/jade/tabs/kyc.jade:116 +#: src/jade/tabs/kyc.jade:131 src/jade/tabs/kyc.jade:156 +#: src/jade/tabs/kyc.jade:157 src/jade/tabs/kyc.jade:186 +#: src/jade/tabs/login/form.jade:26 src/jade/tabs/security.jade:79 +#: src/jade/tabs/security.jade:112 src/jade/tabs/security.jade:149 +#: src/jade/tabs/send.jade:215 src/jade/tabs/send.jade:227 +#: src/jade/tabs/send.jade:252 src/jade/tabs/send.jade:286 +#: src/jade/tabs/trade.jade:55 src/jade/tabs/trust.jade:141 +#: src/jade/tabs/trust.jade:143 src/jade/tabs/trust.jade:213 +#: src/jade/tabs/trust.jade:251 msgid "cancel" msgstr "cancelar" -#: src/jade/tabs/account/public.jade:49 src/jade/tabs/contacts.jade:7 -#: src/jade/tabs/contacts.jade:34 src/jade/tabs/desktop/register.jade:88 +#: src/jade/tabs/account/public.jade:49 msgid "Ripple address" msgstr "Dirección Ripple" +#: src/jade/tabs/advanced.jade:8 +msgid "Your blob vault has been changed successfully." +msgstr "Su camara blob se ha cambiado con exito." + +#: src/jade/tabs/advanced.jade:9 +msgid "Your bitcoin bridge has been changed successfully." +msgstr "Su puente Bitcoin ha sido cambiado con exito." + +#: src/jade/tabs/advanced.jade:10 +msgid "Trustline advanced settings has been changed successfully." +msgstr "Los ajustes avanzados de lineas de credito se han cambiado con éxito." + #: src/jade/tabs/advanced.jade:11 +msgid "Maximum network fee has been changed successfully." +msgstr "La comision de red maxima se ha cambiado con éxito." + +#: src/jade/tabs/advanced.jade:12 +msgid "A new server has been successfully added." +msgstr "Un nuevo servidor se ha añadido con éxito." + +#: src/jade/tabs/advanced.jade:13 +msgid "A server has been successfully removed." +msgstr "El servidor se ha eliminado con éxito." + +#: src/jade/tabs/advanced.jade:14 +msgid "A server has been changed successfully." +msgstr "El servidor se ha cambiado con éxito." + +#: src/jade/tabs/advanced.jade:21 msgid "Blob vault" msgstr "Blob vault" -#: src/jade/tabs/advanced.jade:22 src/jade/tabs/advanced.jade:39 -#: src/jade/tabs/advanced.jade:63 src/jade/tabs/advanced.jade:92 -#: src/jade/tabs/contacts.jade:96 src/jade/tabs/fund.jade:79 -#: src/jade/tabs/security.jade:175 src/jade/tabs/send.jade:237 -#: src/jade/tabs/send.jade:266 src/jade/tabs/trust.jade:156 -#: src/jade/tabs/trust.jade:282 +#: src/jade/tabs/advanced.jade:32 src/jade/tabs/advanced.jade:49 +#: src/jade/tabs/advanced.jade:73 src/jade/tabs/advanced.jade:92 +#: src/jade/tabs/advanced.jade:120 src/jade/tabs/contacts.jade:88 +#: src/jade/tabs/fund.jade:65 src/jade/tabs/security.jade:190 +#: src/jade/tabs/send.jade:251 src/jade/tabs/send.jade:284 +#: src/jade/tabs/trust.jade:119 src/jade/tabs/trust.jade:232 msgid "Save" msgstr "Guardar" -#: src/jade/tabs/advanced.jade:24 src/jade/tabs/advanced.jade:41 -#: src/jade/tabs/advanced.jade:65 src/jade/tabs/advanced.jade:94 -#: src/jade/tabs/contacts.jade:99 +#: src/jade/tabs/advanced.jade:34 src/jade/tabs/advanced.jade:51 +#: src/jade/tabs/advanced.jade:75 src/jade/tabs/advanced.jade:122 +#: src/jade/tabs/contacts.jade:91 src/jade/tabs/security.jade:198 msgid "Delete" msgstr "Eliminar" -#: src/jade/tabs/advanced.jade:28 +#: src/jade/tabs/advanced.jade:38 msgid "Bitcoin bridge" msgstr "Puente Bitcoin" -#: src/jade/tabs/advanced.jade:45 +#: src/jade/tabs/advanced.jade:55 msgid "Trust line" msgstr "Linea de crédito" -#: src/jade/tabs/advanced.jade:50 src/jade/tabs/advanced.jade:61 -#: src/jade/tabs/desktop/register.jade:85 src/jade/tabs/security.jade:148 +#: src/jade/tabs/advanced.jade:60 src/jade/tabs/advanced.jade:71 +#: src/jade/tabs/security.jade:162 msgid "Show" msgstr "Mostrar" -#: src/jade/tabs/advanced.jade:51 src/jade/tabs/desktop/register.jade:86 -#: src/jade/tabs/security.jade:149 +#: src/jade/tabs/advanced.jade:61 src/jade/tabs/security.jade:163 msgid "Hide" msgstr "Ocultar" -#: src/jade/tabs/advanced.jade:68 +#: src/jade/tabs/advanced.jade:78 +msgid "Network settings" +msgstr "Configuración de red" + +#: src/jade/tabs/advanced.jade:80 +msgid "Maximum network fee" +msgstr "Maxima comision de red" + +#: src/jade/tabs/advanced.jade:96 msgid "Server settings" msgstr "Configuración de servidor" -#: src/jade/tabs/advanced.jade:73 +#: src/jade/tabs/advanced.jade:101 msgid "WebSocket host name" msgstr "Nombre WebSocket host " -#: src/jade/tabs/advanced.jade:75 +#: src/jade/tabs/advanced.jade:103 msgid "Port number" msgstr "Número de puerto" -#: src/jade/tabs/advanced.jade:81 +#: src/jade/tabs/advanced.jade:109 msgid "Socket ip or hostname is invalid." msgstr "Socket ip o hostname son inválidos." -#: src/jade/tabs/advanced.jade:83 +#: src/jade/tabs/advanced.jade:111 msgid "Port number is invalid." msgstr "Número de puerto es inválido" -#: src/jade/tabs/advanced.jade:90 src/jade/tabs/advanced.jade:103 +#: src/jade/tabs/advanced.jade:118 src/jade/tabs/advanced.jade:131 msgid "Secure" msgstr "Seguro" -#: src/jade/tabs/advanced.jade:104 +#: src/jade/tabs/advanced.jade:132 msgid "Not Secure" msgstr "No Seguro" -#: src/jade/tabs/advanced.jade:110 +#: src/jade/tabs/advanced.jade:138 msgid "Add new server" msgstr "Añadir nuevo servidor" -#: src/jade/tabs/apps.jade:5 src/jade/tabs/balance.jade:5 -#: src/jade/tabs/btc.jade:6 src/jade/tabs/exchange.jade:6 -#: src/jade/tabs/fund.jade:6 src/jade/tabs/history.jade:6 -#: src/jade/tabs/kyc.jade:6 src/jade/tabs/send.jade:6 src/jade/tabs/su.jade:5 -#: src/jade/tabs/trade.jade:7 src/jade/tabs/trust.jade:6 -#: src/jade/tabs/usd.jade:6 src/jade/tabs/withdraw.jade:6 -#: src/jade/tabs/xrp.jade:6 -msgid "You have to be online to see this screen" -msgstr "Debe estar online para ver esto" +#: src/jade/tabs/apps.jade:27 +msgid "App Ripple Address" +msgstr "Añadir Dirección Ripple" #: src/jade/tabs/apps.jade:29 msgid "Please enter a ripple address." @@ -614,454 +1020,535 @@ msgstr "Por favor introduzca una dirección Ripple." msgid "Please enter a valid ripple address." msgstr "Por favor introduzca una dirección Ripple válida." -#: src/jade/tabs/balance.jade:21 -msgid "Total Balance{{1}}" -msgstr "Balance Total{{1}}" - -#: src/jade/tabs/balance.jade:22 -msgid "Estimated from latest trade price" -msgstr "Estimado por último precio de cambio." - -#: src/jade/tabs/balance.jade:29 -msgid "(excluding negative balances)" -msgstr "(excluyendo balances negativos)" - -#: src/jade/tabs/balance.jade:67 -msgid "Reserve" -msgstr "Reserva" - -#: src/jade/tabs/balance.jade:85 -msgid "Unverified" -msgstr "Sin verificar" - -#: src/jade/tabs/balance.jade:92 -msgid "Enter bitcoin address." -msgstr "Introduzca dirección Bitcoin." - -#: src/jade/tabs/balance.jade:95 -msgid "Enter amount to withdraw." -msgstr "Introduzca la cantidad a retirar." - -#: src/jade/tabs/balance.jade:100 src/jade/tabs/balance.jade:102 -msgid "Enter a valid bitcoin address" -msgstr "Introduzca una dirección bitcoin válida." - -#: src/jade/tabs/balance.jade:106 -msgid "Enter a valid amount" -msgstr "Introduzca una cantidad válida." - -#: src/jade/tabs/balance.jade:113 -msgid "You are sending {{1}} BTC to:" -msgstr "Está enviando {{1}} BTC a:" - -#: src/jade/tabs/balance.jade:119 src/jade/tabs/balance.jade:134 -#: src/jade/tabs/register.jade:105 src/jade/tabs/register.jade:111 -msgid "Back" -msgstr "Atrás" - -#: src/jade/tabs/balance.jade:122 src/jade/tabs/btc.jade:61 -#: src/jade/tabs/exchange.jade:92 src/jade/tabs/send.jade:203 -#: src/jade/tabs/trade.jade:57 src/jade/tabs/trade.jade:67 -#: src/jade/tabs/trade.jade:241 src/jade/tabs/trust.jade:176 -msgid "Confirm" -msgstr "Confirmar" - -#: src/jade/tabs/balance.jade:127 -msgid "Reconnecting to Ripple network" -msgstr "Reconectando con la red Ripple" - -#: src/jade/tabs/balance.jade:128 -msgid "Transaction Successful" -msgstr "Transacción Efectuada" - -#: src/jade/tabs/balance.jade:129 -msgid "Warning" -msgstr "Atención" - -#: src/jade/tabs/balance.jade:130 -msgid "Transaction Failed" -msgstr "Transacción Fallida" - -#: src/jade/tabs/balance.jade:131 -msgid "Message" -msgstr "Mensaje" - #: src/jade/tabs/banner/announcement.jade:2 msgid "Help our team improve Ripple Trade! {{1:Take a quick user survey.}}" msgstr "Ayúdenos a mejorar Ripple Trade! {{1:Realice una rápida encuesta.}}" #: src/jade/tabs/banner/unfunded.jade:2 msgid "" -"Welcome to Ripple Trade! To activate your account, you'll need at least 20 " -"XRP." -msgstr "Bienvenido a Ripple Trade! Para activar su cuenta necesitará al menos 20 XRP." +"Welcome to Ripple Trade! Your account needs to be activated. You can " +"activate it in 2 ways:" +msgstr "Bienvenido a Ripple Trade! Su cuenta debe ser activada. Puede activarla de 2 formas:" #: src/jade/tabs/banner/unfunded.jade:4 msgid "" "Have another user send XRP to your Ripple name " -"(~{{userCredentials.username}})" -msgstr "Hace hacer que otro usuario envie XRP a tu nombre Ripple (~{{userCredentials.username}})" +"(~{{userCredentials.username}}). {{1}}" +msgstr "Hacer que otro usuario envie XRP a su nombre Ripple (~{{userCredentials.username}}). {{1}}" -#: src/jade/tabs/banner/unfunded.jade:5 -msgid "" -"Use the {{1}}. A small amount of your first deposit will be used to " -"activate your account." -msgstr "Use el {{1}}. Una pequeña cantidad de su primer depósito se usará para activar su cuenta." +#: src/jade/tabs/brl.jade:24 src/jade/tabs/eur.jade:24 +#: src/jade/tabs/gold.jade:24 src/jade/tabs/jpy.jade:24 +#: src/jade/tabs/mxn.jade:24 src/jade/tabs/trust.jade:42 +#: src/jade/tabs/usd.jade:24 +msgid "There was an error while saving your changes." +msgstr "Ha habido un error al guardar sus cambios." -#: src/jade/tabs/btc.jade:18 -msgid "Bitcoin Deposit" -msgstr "Depositar Bitcoin" +#: src/jade/tabs/brl.jade:28 src/jade/tabs/eur.jade:27 +#: src/jade/tabs/gold.jade:27 src/jade/tabs/jpy.jade:28 +#: src/jade/tabs/mxn.jade:28 src/jade/tabs/trust.jade:45 +#: src/jade/tabs/usd.jade:27 +msgid "You must have at least {{1}} to add a new trust line. {{2}}" +msgstr "Debe tener al menos {{1}} para añadir una nueva línea de crédito. {{2}}" -#: src/jade/tabs/btc.jade:26 -msgid "" -"A small amount (~.001 BTC) of your first transfer will be converted to XRP " -"to activate your wallet. {{1:Why?}}" -msgstr "Una pequeña cantidad (~.001 BTC) de su primera transferencia será convertida a XRP para activar su monedero. {{1:Por qué?}}" +#: src/jade/tabs/brl.jade:38 +msgid "Brazilian Real Deposit" +msgstr "Depósito Real Brasileño" -#: src/jade/tabs/btc.jade:30 -msgid "Your current deposit limit is:" -msgstr "Tu límite de depósito actual es:" +#: src/jade/tabs/brl.jade:41 src/jade/tabs/btc.jade:35 +#: src/jade/tabs/eur.jade:38 src/jade/tabs/gold.jade:40 +#: src/jade/tabs/jpy.jade:41 src/jade/tabs/mxn.jade:41 +#: src/jade/tabs/trust.jade:167 src/jade/tabs/usd.jade:38 +msgid "Gateway" +msgstr "Pasarela" -#: src/jade/tabs/btc.jade:32 -msgid "Remove Limit" -msgstr "Quitar Límite" +#: src/jade/tabs/brl.jade:42 src/jade/tabs/eur.jade:48 +#: src/jade/tabs/mxn.jade:81 src/jade/tabs/mxn.jade:93 +#: src/jade/tabs/mxn.jade:103 src/jade/tabs/security.jade:49 +msgid "{{1}}{{2}}" +msgstr "{{1}}{{2}}" + +#: src/jade/tabs/brl.jade:43 +msgid "Ripple (~rippex)" +msgstr "Ripple (~rippex)" + +#: src/jade/tabs/brl.jade:46 src/jade/tabs/btc.jade:39 +#: src/jade/tabs/eur.jade:44 src/jade/tabs/gold.jade:44 +#: src/jade/tabs/jpy.jade:45 src/jade/tabs/mxn.jade:46 +#: src/jade/tabs/usd.jade:44 +msgid "Availability" +msgstr "Disponibilidad" + +#: src/jade/tabs/brl.jade:47 +msgid "Brazil" +msgstr "Brasil" + +#: src/jade/tabs/brl.jade:49 src/jade/tabs/btc.jade:42 +#: src/jade/tabs/eur.jade:47 src/jade/tabs/gold.jade:47 +#: src/jade/tabs/jpy.jade:48 src/jade/tabs/mxn.jade:49 +#: src/jade/tabs/usd.jade:47 +msgid "Fees" +msgstr "Comisiones" + +#: src/jade/tabs/brl.jade:50 src/jade/tabs/jpy.jade:49 +#: src/jade/tabs/kyc.jade:111 src/jade/tabs/kyc.jade:126 +#: src/jade/tabs/kyc.jade:151 +msgid "{{1}}{{2}}{{3}}" +msgstr "{{1}}{{2}}{{3}}" + +#: src/jade/tabs/brl.jade:51 +msgid "Deposit: 1.50 BRL + 0.5%" +msgstr "Deposito: 1.50 BRL + 0.5%" + +#: src/jade/tabs/brl.jade:52 +msgid "Transfer: 0%" +msgstr "Transferencia: 0%" + +#: src/jade/tabs/brl.jade:56 src/jade/tabs/btc.jade:45 +#: src/jade/tabs/eur.jade:53 src/jade/tabs/gold.jade:50 +#: src/jade/tabs/jpy.jade:54 src/jade/tabs/mxn.jade:52 +#: src/jade/tabs/usd.jade:50 +msgid "Rating" +msgstr "Puntuacion" + +#: src/jade/tabs/brl.jade:62 +msgid "" +"Ripple Trade has partnered with Rippex to provide easy access to BRL. By " +"continuing, you agree with Rippex's {{1}}Following this action will enable " +"Rippex to hold BRL on your behalf." +msgstr "Ripple Trade se ha asociado con Rippew para proveer facil acceso a BRL. Al continuar acepta las {{1}} de Rippex. Al continuar permitira que Rippex guarde BRL en su nombre." + +#: src/jade/tabs/brl.jade:69 +msgid "Add Rippex" +msgstr "Añadir Rippex" + +#: src/jade/tabs/brl.jade:70 +msgid "Adding..." +msgstr "Añadiendo..." + +#: src/jade/tabs/brl.jade:71 src/jade/tabs/eur.jade:65 +#: src/jade/tabs/jpy.jade:64 src/jade/tabs/usd.jade:62 +msgid "Hide instructions" +msgstr "Ocultar instrucciones" + +#: src/jade/tabs/brl.jade:72 src/jade/tabs/eur.jade:66 +#: src/jade/tabs/jpy.jade:65 src/jade/tabs/usd.jade:63 +msgid "Show instructions" +msgstr "Mostrar instrucciones" + +#: src/jade/tabs/brl.jade:75 src/jade/tabs/btc.jade:83 +msgid "{{1}}Not connected" +msgstr "{{1}}No conectado" + +#: src/jade/tabs/brl.jade:78 src/jade/tabs/btc.jade:86 +msgid "{{1}}Connected" +msgstr "{{1}}Conectado" + +#: src/jade/tabs/brl.jade:81 src/jade/tabs/eur.jade:71 +#: src/jade/tabs/gold.jade:73 src/jade/tabs/jpy.jade:74 +#: src/jade/tabs/mxn.jade:76 src/jade/tabs/usd.jade:68 +msgid "Your account has to be activated before you can add a gateway account." +msgstr "Su cuenta debe estar activada antes de poder añadir una cuenta de pasarela." + +#: src/jade/tabs/brl.jade:84 src/jade/tabs/eur.jade:75 +#: src/jade/tabs/gold.jade:76 src/jade/tabs/jpy.jade:77 +#: src/jade/tabs/mxn.jade:79 src/jade/tabs/usd.jade:72 +msgid "×" +msgstr "×" + +#: src/jade/tabs/brl.jade:85 +msgid "NEW CUSTOMERS- SIGN UP AT RIPPEX" +msgstr "NUEVOS CLIENTES- REGISTRARSE EN RIPPEX" + +#: src/jade/tabs/brl.jade:86 +msgid "" +"{{1}} at Rippex.net to initiate deposits and withdrawals. You will " +"need:{{2}}" +msgstr "{{1}} en Rippex.net para iniciar depositos y retiradas. Necesitara:{{2}}" + +#: src/jade/tabs/brl.jade:90 +msgid "A {{1}}" +msgstr "UN {{1}}" + +#: src/jade/tabs/brl.jade:92 +msgid "A bank account in Brazil." +msgstr "Una cuenta bancaria en Brasil." + +#: src/jade/tabs/brl.jade:96 +msgid "EXISTING RIPPEX CUSTOMERS" +msgstr "CLIENTES RIPPEX EXISTENTES" + +#: src/jade/tabs/brl.jade:97 +msgid "If you have a Rippex account, {{1}}" +msgstr "Si tiene una cuenta Rippex, {{1}}" + +#: src/jade/tabs/brl.jade:100 +msgid "DEPOSIT INSTRUCTIONS" +msgstr "INSTRUCCIONES DE DEPOSITO" + +#: src/jade/tabs/brl.jade:101 +msgid "Rippex accepts deposits from all Brazilian banks. Instructions {{1}}" +msgstr "Rippex acepta depositos de todos los banco Brasileños. Instrucciones {{1}}" + +#: src/jade/tabs/btc.jade:19 +msgid "Success! You can deposit BTC via your generated BTC receiving address." +msgstr "Hecho! Ya puede depositar BTC via su direccion de recepcion BTC." + +#: src/jade/tabs/btc.jade:21 +msgid "There was an error with your request. {{1}}" +msgstr "Ha habido un error con su petición. {{1}}" + +#: src/jade/tabs/btc.jade:30 +msgid "Bitcoin Deposit" +msgstr "Depositar Bitcoin" #: src/jade/tabs/btc.jade:36 -msgid "Waiting for response from SnapSwap service..." -msgstr "Esperando respuesta desde el servicio SnapSwap..." +msgid "btc2ripple (~snapswap) {{1}}" +msgstr "btc2ripple (~snapswap) {{1}}" -#: src/jade/tabs/btc.jade:38 +#: src/jade/tabs/btc.jade:40 src/jade/tabs/gold.jade:45 +#: src/jade/tabs/jpy.jade:46 +msgid "All countries" +msgstr "Todos los paises" + +#: src/jade/tabs/btc.jade:43 src/jade/tabs/mxn.jade:50 +msgid "0%" +msgstr "0%" + +#: src/jade/tabs/btc.jade:50 msgid "" -"To deposit, generate a bitcoin receiving address using the {{1}} service " -"powered by SnapSwap." -msgstr "Para depositar, genere una dirección receptora bitcoin usando el {{1}} servicio proporcionado por SnapSwap." +"Ripple Trade has partnered with btc2ripple to make depositing BTC easier. By" +" proceeding, you agree to the btc2ripple {{1}} Following this action will " +"allow btc2ripple to hold BTC on your behalf." +msgstr "Ripple Trade se ha asociado con btc2ripple para facilitar los depositos de BTC. Al continuar acepta las {{1}} de btc2ripple . Al continuar permitira que btc2ripple guarde BTC en su nombre." -#: src/jade/tabs/btc.jade:45 -msgid "Generate bitcoin address" -msgstr "Generar dirección bitcoin" +#: src/jade/tabs/btc.jade:56 +msgid "Add btc2ripple" +msgstr "Añadir btc2ripple" -#: src/jade/tabs/btc.jade:49 src/jade/tabs/security.jade:56 -#: src/jade/tabs/trust.jade:160 +#: src/jade/tabs/btc.jade:60 src/jade/tabs/security.jade:64 +#: src/jade/tabs/trust.jade:123 msgid "Connect" msgstr "Conectar" -#: src/jade/tabs/btc.jade:51 +#: src/jade/tabs/btc.jade:62 msgid "btc2ripple would like to:" msgstr "btc2ripple quiere:" -#: src/jade/tabs/btc.jade:53 -msgid "- Receive your email address{{1}}" -msgstr "- Recibir su dirección de email{{1}}" +#: src/jade/tabs/btc.jade:64 +msgid "- Receive your email address {{1}}" +msgstr "- Recibir su dirección de email {{1}}" -#: src/jade/tabs/btc.jade:54 +#: src/jade/tabs/btc.jade:65 msgid "({{userBlob.data.email}})" msgstr "({{userBlob.data.email}})" -#: src/jade/tabs/btc.jade:55 +#: src/jade/tabs/btc.jade:66 msgid "- Hold deposited BTC on your behalf" msgstr "- Guardar por usted los BTC depositados " -#: src/jade/tabs/btc.jade:56 +#: src/jade/tabs/btc.jade:67 msgid "By proceeding, you agree to the btc2ripple {{1}}" msgstr "Al continuar, acepta el btc2ripple {{1}}" -#: src/jade/tabs/btc.jade:63 +#: src/jade/tabs/btc.jade:75 msgid "" "SnapSwap's btc2ripple service is currently unavailable. Please check back " "later." msgstr "El servicio btc2ripple de SnapSwap no está disponible en este momento. Por favor pruebe más tarde. " -#: src/jade/tabs/contacts.jade:6 src/jade/tabs/contacts.jade:26 +#: src/jade/tabs/btc.jade:94 +msgid "Personal Deposit address" +msgstr "Direccion de Deposito Personal" + +#: src/jade/tabs/btc.jade:96 +msgid "Your account is fully verified." +msgstr "Su cuenta esta completamente verificada." + +#: src/jade/tabs/btc.jade:104 +msgid "Withdrawal instructions" +msgstr "Instrucciones de retirada" + +#: src/jade/tabs/btc.jade:105 +msgid "" +"To withdraw to a BTC address, go to the Send tab and enter the BTC address. " +"Using the btc2ripple service, you will be able tosend to that BTC address." +msgstr "Para retirar a una direccion BTC, vaya a la pestaña Enviar e introduzca la direccion BTC. A traves del servicio btc2ripple, podra enviar a esa direccion BTC." + +#: src/jade/tabs/btc.jade:110 +msgid "Waiting for response from SnapSwap service..." +msgstr "Esperando respuesta desde el servicio SnapSwap..." + +#: src/jade/tabs/btc.jade:112 +msgid "" +"To deposit, generate a bitcoin receiving address using the {{1}} service " +"powered by SnapSwap." +msgstr "Para depositar, genere una dirección receptora bitcoin usando el {{1}} servicio proporcionado por SnapSwap." + +#: src/jade/tabs/contacts.jade:8 +msgid "A new contact has been successfully added." +msgstr "Un nuevo contacto se ha añadido con éxito." + +#: src/jade/tabs/contacts.jade:9 +msgid "Your contact has been successfully updated." +msgstr "Su contacto se ha actualizado con éxito." + +#: src/jade/tabs/contacts.jade:10 +msgid "A contact has been successfully removed." +msgstr "El contacto se ha eliminado con éxito." + +#: src/jade/tabs/contacts.jade:12 src/jade/tabs/contacts.jade:24 +msgid "Contact" +msgstr "Contacto" + +#: src/jade/tabs/contacts.jade:13 src/jade/tabs/contacts.jade:32 msgid "Ripple name or address" msgstr "Nombre o dirección Ripple" -#: src/jade/tabs/contacts.jade:9 src/jade/tabs/contacts.jade:13 -#: src/jade/tabs/contacts.jade:56 +#: src/jade/tabs/contacts.jade:15 src/jade/tabs/contacts.jade:19 +#: src/jade/tabs/contacts.jade:48 msgid "Add contact" msgstr "Añadir contacto" -#: src/jade/tabs/contacts.jade:18 -msgid "Contact" -msgstr "Contacto" - -#: src/jade/tabs/contacts.jade:21 +#: src/jade/tabs/contacts.jade:27 src/jade/tabs/send.jade:245 +#: src/jade/tabs/send.jade:277 msgid "Please enter a contact." msgstr "Por favor introduzca un contacto." -#: src/jade/tabs/contacts.jade:22 +#: src/jade/tabs/contacts.jade:28 msgid "This contact already exists." msgstr "Este contacto ya existe." -#: src/jade/tabs/contacts.jade:30 +#: src/jade/tabs/contacts.jade:36 msgid "Please enter a Ripple name." msgstr "Por favor introduzca un nombre Ripple." -#: src/jade/tabs/contacts.jade:31 src/jade/tabs/contacts.jade:47 +#: src/jade/tabs/contacts.jade:37 src/jade/tabs/contacts.jade:45 msgid "" "You already have a contact with the same Ripple name and/or the same " "Destination tag." msgstr "Ya tiene un contacto con ese nombre Ripple y/o con la misma etiqueta de Destino." -#: src/jade/tabs/contacts.jade:32 +#: src/jade/tabs/contacts.jade:38 msgid "Not a valid Ripple name or address." msgstr "No es un nombre o dirección Ripple válido." -#: src/jade/tabs/contacts.jade:38 -msgid "Please enter a Ripple address." -msgstr "Por favor introduzca una dirección Ripple." - -#: src/jade/tabs/contacts.jade:39 src/jade/tabs/contacts.jade:53 -msgid "" -"You already have a contact with the same Ripple address and/or the same " -"Destination tag." -msgstr "Ya tiene un contacto con esa dirección Ripple y/o con la misma etiqueta de Destino." - -#: src/jade/tabs/contacts.jade:40 -msgid "Not a valid Ripple address." -msgstr "No es una dirección Ripple válida." - -#: src/jade/tabs/contacts.jade:43 src/jade/tabs/contacts.jade:49 -#: src/jade/tabs/contacts.jade:89 src/jade/tabs/send.jade:49 -#: src/jade/tabs/tx.jade:54 +#: src/jade/tabs/contacts.jade:41 src/jade/tabs/contacts.jade:81 +#: src/jade/tabs/send.jade:42 src/jade/tabs/tx.jade:56 msgid "Destination tag" msgstr "Etiqueta de destino" -#: src/jade/tabs/contacts.jade:46 src/jade/tabs/contacts.jade:52 -#: src/jade/tabs/send.jade:53 +#: src/jade/tabs/contacts.jade:42 +msgid "Leave blank if not applicable" +msgstr "Dejar en blanco si no corresponde" + +#: src/jade/tabs/contacts.jade:44 src/jade/tabs/send.jade:46 msgid "Invalid destination tag" msgstr "Etiqueta de destino inválida" -#: src/jade/tabs/contacts.jade:80 src/jade/tabs/send.jade:232 -#: src/jade/tabs/send.jade:260 +#: src/jade/tabs/contacts.jade:72 msgid "You already have a contact with the same name." msgstr "Ya tiene un contacto con el mismo nombre." -#: src/jade/tabs/contacts.jade:86 +#: src/jade/tabs/contacts.jade:78 msgid "You already have this address." msgstr "Ya tiene esta dirección." -#: src/jade/tabs/contacts.jade:87 +#: src/jade/tabs/contacts.jade:79 src/jade/tabs/debug.jade:14 msgid "Not a valid address." msgstr "No es una dirección válida." -#: src/jade/tabs/contacts.jade:92 +#: src/jade/tabs/contacts.jade:84 msgid "Invalid destination tag." msgstr "Etiqueta de destino inválida" -#: src/jade/tabs/contacts.jade:102 +#: src/jade/tabs/contacts.jade:94 msgid "" "You don't have any contacts yet. Click on 'Add contact' button in the top " "right corner to add a new contact." msgstr "Todavía no tiene ningun contacto. Haz click en el botón \"Añadir contacto\" en la esquina superior derecha para añadir un contacto." -#: src/jade/tabs/desktop/login.jade:3 -msgid "" -"You will not be able to login to the downloadable client using a " -"username/password you create on Ripple Trade or the web version of the " -"Ripple Client. You can only use a secret key to access an existing Ripple " -"account. This is because the downloadable client stores your login " -"information locally on your computer, so your account is as safe as the " -"security of your personal computer." -msgstr "No podrá conectarse al cliente descargable usando un nombre/contraseña creado en Ripple Trade o en la versión web del Cliente Ripple. Solo puede usar una clave secreta para acceder a una cuenta Ripple existente. Ésto sucede porque el cliente descargable guarda su información de conexión localmente en su ordenador, por lo que su cuenta está tan segura como su ordenador." - -#: src/jade/tabs/desktop/login.jade:12 src/jade/tabs/desktop/login.jade:34 -msgid "Open account" -msgstr "Abrir cuenta" - -#: src/jade/tabs/desktop/login.jade:15 src/jade/tabs/desktop/register.jade:5 -#: src/jade/tabs/desktop/register.jade:65 -msgid "Create new account" -msgstr "Crear nueva cuenta" +#: src/jade/tabs/debug.jade:9 +msgid "Enter a Ripple name or address" +msgstr "Introduzca un nombre o dirección Ripple" -#: src/jade/tabs/desktop/login.jade:18 -msgid "Select account file {{walletfile}}" -msgstr "Seleccionar archivo de cuenta {{walletfile}}" +#: src/jade/tabs/debug.jade:13 +msgid "Please enter an address." +msgstr "Por favor introduzca una direccion." -#: src/jade/tabs/desktop/login.jade:21 -msgid "Select account file" -msgstr "Seleccionar archivo de cuenta" +#: src/jade/tabs/debug.jade:17 +msgid "Turn on debug mode" +msgstr "Activar modo debug" -#: src/jade/tabs/desktop/login.jade:24 -msgid "Account password" -msgstr "Contraseña de cuenta" +#: src/jade/tabs/eur.jade:35 +msgid "Euro Deposit" +msgstr "Depósito Euro" -#: src/jade/tabs/desktop/register.jade:8 -msgid "Open existing account" -msgstr "Abrir cuenta existente" +#: src/jade/tabs/eur.jade:39 +msgid "SnapSwap EU (~SnapSwap){{1}}{{2}}" +msgstr "SnapSwap EU (~SnapSwap){{1}}{{2}}" -#: src/jade/tabs/desktop/register.jade:11 -msgid "Create an empty account" -msgstr "Crear una cuenta vacía" +#: src/jade/tabs/eur.jade:45 +msgid "All countries, except USA" +msgstr "Todos los paises, menos USA" -#: src/jade/tabs/desktop/register.jade:14 -msgid "Create a new account with a secret key" -msgstr "Crear una nueva cuenta con una clave secreta" +#: src/jade/tabs/eur.jade:49 +msgid "€ 0.31 – € 15.00" +msgstr "€ 0.31 – € 15.00" -#: src/jade/tabs/desktop/register.jade:18 -msgid "Create empty account" -msgstr "Crear cuenta vacía" - -#: src/jade/tabs/desktop/register.jade:20 -msgid "Encrypt your new account file: {{walletfile}}" -msgstr "Encriptar su nuevo archivo de cuenta: {{walletfile}} " - -#: src/jade/tabs/desktop/register.jade:24 -msgid "Wallet file" -msgstr "Archivo de cartera" - -#: src/jade/tabs/desktop/register.jade:31 +#: src/jade/tabs/eur.jade:59 msgid "" -"Your password is weak. It is not a mix of letters, numbers and symbols or it" -" is the same as your Ripple name." -msgstr "Su contraseña es débil. No es una mezcla de letras, numeros y símbolos o es la misma que su nombre Ripple." +"Ripple Trade has partnered with SnapSwap to provide easier access to EUR. " +"Following this action will enable SnapSwap to hold EUR on your behalf." +msgstr "Ripple Trade se ha asociado con SnapSwap para proveer facil acceso a EUR. Al continuar permitira que SnapSwap guarde EUR en su nombre." -#: src/jade/tabs/desktop/register.jade:33 src/jade/tabs/recover.jade:40 -#: src/jade/tabs/register.jade:49 src/jade/tabs/security.jade:123 -msgid "Confirm password" -msgstr "Confirmar contraseña" +#: src/jade/tabs/eur.jade:69 src/jade/tabs/usd.jade:66 +msgid "Not connected" +msgstr "No conectado" -#: src/jade/tabs/desktop/register.jade:36 src/jade/tabs/recover.jade:43 -#: src/jade/tabs/register.jade:52 src/jade/tabs/security.jade:126 -msgid "Passwords do not match" -msgstr "Las contraseñas no coinciden" - -#: src/jade/tabs/desktop/register.jade:42 -msgid "Encrypt account" -msgstr "Encriptar cuenta" - -#: src/jade/tabs/desktop/register.jade:44 -msgid "Cancel and delete account file" -msgstr "Cancelar y eliminar archivo de cuenta" - -#: src/jade/tabs/desktop/register.jade:50 -msgid "Create account with secret key" -msgstr "Crear cuenta con clave secreta" - -#: src/jade/tabs/desktop/register.jade:55 -msgid "Enter your secret key" -msgstr "Introduzca su clave secreta" - -#: src/jade/tabs/desktop/register.jade:62 -msgid "Secret is invalid" -msgstr "El Secreto no es válido" - -#: src/jade/tabs/desktop/register.jade:67 src/jade/tabs/fund.jade:77 -#: src/jade/tabs/trade.jade:325 -msgid "Cancel" -msgstr "Cancelar" +#: src/jade/tabs/eur.jade:70 src/jade/tabs/usd.jade:67 +msgid "Connected" +msgstr "Conectado" -#: src/jade/tabs/desktop/register.jade:69 src/jade/tabs/register.jade:95 -msgid "Have an account? {{1:Log In}}" -msgstr "Tiene una cuenta? {{1:Conectarse}}" +#: src/jade/tabs/eur.jade:76 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.EU" +msgstr "NUEVOS CLIENTES- REGISTRARSE EN SNAPSWAP.EU" -#: src/jade/tabs/desktop/register.jade:75 -msgid "Important:" -msgstr "Importante:" +#: src/jade/tabs/eur.jade:77 +msgid "Register and verify your account at SnapSwap EU. You will need: {{1}}" +msgstr "Registrese y verifique su cuenta en SnapSwap EU. Necesitara: {{1}}" -#: src/jade/tabs/desktop/register.jade:76 +#: src/jade/tabs/eur.jade:81 src/jade/tabs/usd.jade:78 msgid "" -"The secret key below gives access to your money in the unlikely case that " -"you lose your password. In that case your contacts will be lost, but with " -"this secret key alone anyone can retrieve your money. So please store it " -"somewhere PRIVATE AND SAFE. Read more about keys and wallet safety in {{1}}" -msgstr "La clave secreta escrita abajo le da acceso a su dinero en caso de que pierda su contraseña. En ese caso perderá los contactos, con esa clave secreta cualquiera puede recuperar su dinero. Así que por favor guárdela en un lugar PRIVADO Y SEGURO. Más sobre claves y seguridad de cartera en {{1}}" +"A valid government-issued ID: driver license, passport, ID card, or visa " +"stamp." +msgstr "Un documento de identificacion valido emitido por su gobierno: Licencia de conduccion, pasaporte, tarjeta de identidad o visado." -#: src/jade/tabs/desktop/register.jade:79 src/jade/tabs/settings/navbar.jade:2 -msgid "Security" -msgstr "Seguridad" +#: src/jade/tabs/eur.jade:83 src/jade/tabs/usd.jade:80 +msgid "A proof of address: driver license, utility bill, bank statement, etc." +msgstr "Una prueba de residencia: licencia de conduccion, factura, extracto bancario, etc." -#: src/jade/tabs/desktop/register.jade:81 -msgid "Passphrase:{{1}}{{2}}{{3}}{{4}}" -msgstr "Frase clave:{{1}}{{2}}{{3}}{{4}}" +#: src/jade/tabs/eur.jade:85 +msgid "EXISTING SNAPSWAP EU CUSTOMERS" +msgstr "CLIENTES SNAPSWAP EU EXISTENTES" -#: src/jade/tabs/desktop/register.jade:90 -msgid "Secret key:" -msgstr "Clave secreta:" +#: src/jade/tabs/eur.jade:89 src/jade/tabs/jpy.jade:94 +#: src/jade/tabs/usd.jade:86 +msgid "Login to your account {{1}}" +msgstr "Conectese a su cuenta {{1}}" -#: src/jade/tabs/desktop/register.jade:95 src/jade/tabs/register.jade:150 -msgid "Show secret key" -msgstr "Mostrar clave secreta" +#: src/jade/tabs/eur.jade:92 src/jade/tabs/jpy.jade:96 +msgid "DEPOSITS AND WITHDRAWALS:" +msgstr "DEPOSITOS Y RETIRADAS:" -#: src/jade/tabs/desktop/register.jade:97 src/jade/tabs/register.jade:151 -msgid "Hide secret key" -msgstr "Ocultar clave secreta" +#: src/jade/tabs/eur.jade:96 +msgid "Deposit from your bank (2-4 business days)" +msgstr "Deposite desde su banco (2-4 dias laborables)" -#: src/jade/tabs/desktop/register.jade:98 -msgid "Have you saved your secret key somewhere safe?" -msgstr "Ha guardado su clave secreta en un lugar seguro?" +#: src/jade/tabs/eur.jade:98 +msgid "Withdraw to your bank account in SEPA (2-4 business days)" +msgstr "Retire a su banco por SEPA (2-4 dias laborables)" -#: src/jade/tabs/desktop/register.jade:101 -msgid "Yes, I saved my secret key" -msgstr "Sí, he guardado my clave secreta" +#: src/jade/tabs/eur.jade:100 +msgid "Withdraw to SmartyCash Card (instant)" +msgstr "Retire a SmartyCash Card (instantaneo)" #: src/jade/tabs/exchange.jade:13 msgid "You have to be funded before you can exchange money" msgstr "Debe tener crédito antes de poder cambiar dinero" +#: src/jade/tabs/exchange.jade:23 +msgid "Buy (Market Order)" +msgstr "Comprar (Orden de Mercado)" + +#: src/jade/tabs/exchange.jade:24 +msgid "" +"Submit a buy order at the current market rate. Orders will execute " +"instantly." +msgstr "Emitir una orden de compra al actual valor de mercado. Las ordenes se ejecutaran instantaneamente." + # Receive (amount) -#: src/jade/tabs/exchange.jade:19 +#: src/jade/tabs/exchange.jade:27 msgid "Receive (amount)" -msgstr "Recibir" +msgstr "Quiero comprar" -#: src/jade/tabs/exchange.jade:26 src/jade/tabs/send.jade:88 +#: src/jade/tabs/exchange.jade:34 src/jade/tabs/widgets/balances.jade:49 +msgid "add gateway" +msgstr "añadir pasarela" + +#: src/jade/tabs/exchange.jade:37 src/jade/tabs/send.jade:90 msgid "Please enter an amount." msgstr "Por favor introduzca una cantidad." -#: src/jade/tabs/exchange.jade:27 src/jade/tabs/send.jade:89 -#: src/jade/tabs/trade.jade:146 src/jade/tabs/trade.jade:161 -#: src/jade/tabs/trade.jade:176 +#: src/jade/tabs/exchange.jade:38 src/jade/tabs/send.jade:91 +#: src/jade/tabs/trade.jade:153 src/jade/tabs/trade.jade:168 +#: src/jade/tabs/trade.jade:183 src/jade/tabs/trust.jade:101 msgid "Not a valid amount." msgstr "La cantidad no es válida." -#: src/jade/tabs/exchange.jade:28 +#: src/jade/tabs/exchange.jade:39 +msgid "" +"You are either trying to convert too little or too much XRP.Minimum amount " +"is 0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "Esta intentando convertir demasiado o demasiado poco XRP. La cantidad minima es 0.000001 XRP y la cantidad maxima es 100 billones XRP." + +#: src/jade/tabs/exchange.jade:42 src/jade/tabs/send.jade:96 +#: src/jade/tabs/trust.jade:103 +msgid "Your amount has too many digits. The max number of digits is 16." +msgstr "Su cantidad tiene demasiados digitos. El maximo numero de digitos es 16." + +#: src/jade/tabs/exchange.jade:43 msgid "Please enter an amount greater than zero." msgstr "Por favor introduzca una cantidad superior a cero." -#: src/jade/tabs/exchange.jade:31 -msgid "Calculating..." -msgstr "Calculando..." +#: src/jade/tabs/exchange.jade:46 +msgid "{{1}} Calculating..." +msgstr "{{1}} Calculando..." -#: src/jade/tabs/exchange.jade:33 +#: src/jade/tabs/exchange.jade:50 msgid "" "Cannot convert to {{exchange.amount}} {{exchange.currency_name}}. Please " "make sure your account has enough funds, and a {{1}} to a " "{{exchange.currency_name}} gateway." msgstr "No puede convertir a {{exchange.amount}} {{exchange.currency_name}}. Por favor asegúrese de que su cuenta tiene fondos suficientes, y una {{1}} a {{exchange.currency_name}} gateway." -#: src/jade/tabs/exchange.jade:37 +#: src/jade/tabs/exchange.jade:54 msgid "" "Sorry! Cannot convert {{exchange.amount}} {{exchange.currency_name}}. Please" " make sure your account has enough funds." msgstr "Lo sentimos! No se puede convertir {{exchange.amount}} {{exchange.currency_name}}. Por favor asegúrese de que su cuenta tiene fondos suficientes." -#: src/jade/tabs/exchange.jade:39 src/jade/tabs/send.jade:133 +#: src/jade/tabs/exchange.jade:56 src/jade/tabs/send.jade:142 msgid "Error while calculating path" msgstr "Error al calcular el camino" -#: src/jade/tabs/exchange.jade:55 +#: src/jade/tabs/exchange.jade:60 +msgid "Exchange" +msgstr "Cambio" + +#: src/jade/tabs/exchange.jade:72 msgid "Exchange {{ alt.amount | rpcurrency }} {{1}}" msgstr "Cambiar {{ alt.amount | rpcurrency }} {{1}}" -#: src/jade/tabs/exchange.jade:61 src/jade/tabs/send.jade:161 +#: src/jade/tabs/exchange.jade:78 src/jade/tabs/send.jade:170 msgid "Paths last updated {{1}} {{2: seconds}} {{3: second}} ago" msgstr "Caminos actualizados hace {{1}} {{2: seconds}} {{3: second}}" -#: src/jade/tabs/exchange.jade:70 +#: src/jade/tabs/exchange.jade:89 msgid "Ripple is calculating a path for your conversion." msgstr "Ripple esta calculando un camino para la conversión. " -#: src/jade/tabs/exchange.jade:75 +#: src/jade/tabs/exchange.jade:94 msgid "" "{{1:You are exchanging}}{{2}}{{3:to}}{{4}}{{5:You will pay at " "most}}{{6}}{{7:Are you sure?}}" msgstr "{{1:Esta cambiando}}{{2}}{{3:a}}{{4}}{{5:Pagará como máximo}}{{6}}{{7:Está seguro?}}" -#: src/jade/tabs/exchange.jade:116 +#: src/jade/tabs/exchange.jade:139 msgid "Do another conversion" msgstr "Hacer otra conversión" -#: src/jade/tabs/exchange.jade:118 src/jade/tabs/send.jade:243 -#: src/jade/tabs/send.jade:273 +#: src/jade/tabs/exchange.jade:141 src/jade/tabs/send.jade:257 +#: src/jade/tabs/send.jade:291 msgid "Back to balance" msgstr "Volver a balance" @@ -1069,215 +1556,280 @@ msgstr "Volver a balance" msgid "Add trust" msgstr "Añadir crédito" -#: src/jade/tabs/fund.jade:33 src/jade/tabs/fund.jade:47 -#: src/jade/tabs/trust.jade:100 src/jade/tabs/trust.jade:121 +#: src/jade/tabs/fund.jade:27 src/jade/tabs/send.jade:26 +msgid "Enter a Ripple name or contact" +msgstr "Introduzca un nombre o contacto Ripple" + +#: src/jade/tabs/fund.jade:33 src/jade/tabs/trust.jade:73 msgid "Account does not meet the minimum XRP reserve." msgstr "La cuenta no cumple la reserva mínima de XRP. " -#: src/jade/tabs/fund.jade:34 src/jade/tabs/fund.jade:48 -#: src/jade/tabs/send.jade:107 src/jade/tabs/trust.jade:101 -#: src/jade/tabs/trust.jade:122 -msgid "More information" -msgstr "Más información" - -#: src/jade/tabs/fund.jade:36 src/jade/tabs/trust.jade:103 +#: src/jade/tabs/fund.jade:36 src/jade/tabs/trust.jade:76 msgid "Please enter a Ripple name, contact, or address." msgstr "Por favor introduzca un nombre Ripple, un contacto, o una dirección." -#: src/jade/tabs/fund.jade:37 src/jade/tabs/fund.jade:51 -#: src/jade/tabs/trust.jade:104 src/jade/tabs/trust.jade:125 +#: src/jade/tabs/fund.jade:37 src/jade/tabs/trust.jade:77 msgid "You've entered your own address." msgstr "Ha introducido su propia dirección." -#: src/jade/tabs/fund.jade:38 src/jade/tabs/trust.jade:105 +#: src/jade/tabs/fund.jade:38 src/jade/tabs/trust.jade:78 msgid "Please enter a valid Ripple name, contact, or address." msgstr "Por favor introduzca un nombre Ripple válido, un contacto, o una dirección." -#: src/jade/tabs/fund.jade:50 src/jade/tabs/trust.jade:124 -msgid "Please enter a Ripple address or contact." -msgstr "Por favor introduzca una dirección Ripple o un contacto." - -#: src/jade/tabs/fund.jade:52 src/jade/tabs/trust.jade:126 -msgid "Please enter a valid Ripple address or contact." -msgstr "Por favor introduzca una dirección Ripple o un contacto válido." - -#: src/jade/tabs/fund.jade:55 src/jade/tabs/history.jade:190 -#: src/jade/tabs/trade.jade:303 src/jade/tabs/trust.jade:129 -msgid "Amount" -msgstr "Cantidad" - -#: src/jade/tabs/fund.jade:62 src/jade/tabs/trust.jade:107 -#: src/jade/tabs/trust.jade:140 +#: src/jade/tabs/fund.jade:48 src/jade/tabs/trust.jade:80 msgid "Amount field is required" msgstr "El campo Cantidad es necesario" -#: src/jade/tabs/fund.jade:64 src/jade/tabs/trust.jade:109 -#: src/jade/tabs/trust.jade:142 +#: src/jade/tabs/fund.jade:50 src/jade/tabs/trust.jade:82 +#: src/jade/tabs/trust.jade:105 msgid "" "XRP can be sent without extending trust. If you really want to trust in XRP," " please use XRR currency code." msgstr "Se pueden enviar XRP sin extender crédito. Si realmente quiere extender crédito en XRP, por favor utilice el código de divisa XRR." -#: src/jade/tabs/fund.jade:67 src/jade/tabs/trust.jade:112 -#: src/jade/tabs/trust.jade:145 +#: src/jade/tabs/fund.jade:53 src/jade/tabs/trust.jade:85 +#: src/jade/tabs/trust.jade:108 msgid "Currency field is required" msgstr "El campo Divisa es necesario" -#: src/jade/tabs/fund.jade:73 src/jade/tabs/trust.jade:151 +#: src/jade/tabs/fund.jade:59 src/jade/tabs/fund.jade:60 +#: src/jade/tabs/trust.jade:114 src/jade/tabs/trust.jade:115 msgid "Allow Rippling" msgstr "Pemitir Ripplear" -#: src/jade/tabs/fund/menu.jade:2 -msgid "XRP" -msgstr "XRP" +#: src/jade/tabs/fund.jade:60 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"trust. More " +"information" +msgstr "Permitir que los balances de ésta línea de crédito sean transferidos a otro emisor acreditado por usted. Mas informacion" + +#: src/jade/tabs/fund.jade:63 +msgid "Cancel" +msgstr "Cancelar" #: src/jade/tabs/fund/menu.jade:3 -msgid "BTC" -msgstr "BTC" +msgid "{{1}}XRP" +msgstr "{{1}}XRP" #: src/jade/tabs/fund/menu.jade:6 +msgid "Featured gateways" +msgstr "Principales Pasarelas" + +#: src/jade/tabs/fund/menu.jade:7 +msgid "{{1}}BRL" +msgstr "{{1}}BRL" + +#: src/jade/tabs/fund/menu.jade:10 +msgid "{{1}}BTC" +msgstr "{{1}}BTC" + +#: src/jade/tabs/fund/menu.jade:13 +msgid "{{1}}EUR" +msgstr "{{1}}EUR" + +#: src/jade/tabs/fund/menu.jade:16 +msgid "{{1}}JPY" +msgstr "{{1}}JPY" + +#: src/jade/tabs/fund/menu.jade:19 +msgid "{{1}}MXN" +msgstr "{{1}}MXN" + +#: src/jade/tabs/fund/menu.jade:22 +msgid "{{1}}USD" +msgstr "{{1}}USD" + +#: src/jade/tabs/fund/menu.jade:25 +msgid "{{1}}XAU" +msgstr "{{1}}XAU" + +#: src/jade/tabs/fund/menu.jade:28 +msgid "Add any gateway" +msgstr "Añadir cualquier pasarela" + +#: src/jade/tabs/fund/menu.jade:30 msgid "Learn more about gateways" msgstr "Más sobre pasarelas" -#: src/jade/tabs/history.jade:9 -msgid "Loading history..." -msgstr "Cargando historial..." +#: src/jade/tabs/gold.jade:37 +msgid "Gold Deposit" +msgstr "Depósito Oro" + +#: src/jade/tabs/gold.jade:41 +msgid "Gold Bullion International (~gbi) {{1}}" +msgstr "Gold Bullion International (~gbi) {{1}}" + +#: src/jade/tabs/gold.jade:48 +msgid "0.5% per year" +msgstr "0.5% al año" + +#: src/jade/tabs/gold.jade:56 +msgid "" +"Ripple Trade has partnered with GBI to provide easy access toXAU. By " +"continuing, you are allowing GBI to hold gold on your behalf." +msgstr "Ripple Trade se ha asociado con GBI para proveer facil acceso a XAU. Al continuar permitira que GBI guarde XAU en su nombre." + +#: src/jade/tabs/gold.jade:67 src/jade/tabs/jpy.jade:68 +#: src/jade/tabs/mxn.jade:70 +msgid "{{1}} Not connected" +msgstr "{{1}} No conectado" + +#: src/jade/tabs/gold.jade:70 src/jade/tabs/jpy.jade:71 +#: src/jade/tabs/mxn.jade:73 +msgid "{{1}} Connected" +msgstr "{{1}} Conectado" + +#: src/jade/tabs/gold.jade:77 +msgid "Deposit" +msgstr "Depósito" + +#: src/jade/tabs/gold.jade:78 +msgid "" +"GBI does not currently support direct deposits. You can {{1}} or {{2}}." +msgstr "GBI no soporta depositos directos en este momento. Puede {{1}} o {{2}}." + +#: src/jade/tabs/gold.jade:84 +msgid "Withdrawal" +msgstr "Retirada" -#: src/jade/tabs/history.jade:14 +#: src/jade/tabs/gold.jade:85 +msgid "" +"You can redeem the physical gold in 1 oz increments.To do so, you'll need to" +" {{1}} and arrange to have the gold shipped to you." +msgstr "Puede retirar el oro fisico en incrementos de 1 oz. Para hacerlo, necesitara {{1}} y concertar el transporte del oro hasta usted." + +#: src/jade/tabs/history.jade:11 +msgid "Loading History" +msgstr "Cargando Historial" + +#: src/jade/tabs/history.jade:16 msgid "Your account history is empty" msgstr "Su historial de cuenta está vacio" -#: src/jade/tabs/history.jade:20 -msgid "Filters" -msgstr "Filtros" - -#: src/jade/tabs/history.jade:23 +#: src/jade/tabs/history.jade:24 msgid "Transaction type{{1}}{{2}}" msgstr "Tipo de transacción{{1}}{{2}}" -#: src/jade/tabs/history.jade:48 +#: src/jade/tabs/history.jade:37 msgid "Date{{1}}{{2}}" msgstr "Fecha{{1}}{{2}}" -#: src/jade/tabs/history.jade:53 +#: src/jade/tabs/history.jade:42 msgid "Load history for specific date range" msgstr "Cargar historial para un determinado rango de fechas" -#: src/jade/tabs/history.jade:59 +#: src/jade/tabs/history.jade:48 msgid "From" msgstr "Desde" -#: src/jade/tabs/history.jade:65 +#: src/jade/tabs/history.jade:54 msgid "To" msgstr "A" -#: src/jade/tabs/history.jade:68 +#: src/jade/tabs/history.jade:57 msgid "Filter" msgstr "Filtro" -#: src/jade/tabs/history.jade:82 -msgid "Transaction History" -msgstr "Historial de Transacciones" - -#: src/jade/tabs/history.jade:84 -msgid "Export to CSV" -msgstr "Exportar a CSV" - -#: src/jade/tabs/history.jade:88 +#: src/jade/tabs/history.jade:64 msgid "Date" msgstr "Fecha" -#: src/jade/tabs/history.jade:89 src/jade/tabs/history.jade:188 +#: src/jade/tabs/history.jade:65 src/jade/tabs/history.jade:170 msgid "Description" msgstr "Descripción" -#: src/jade/tabs/history.jade:90 +#: src/jade/tabs/history.jade:68 src/jade/tabs/history.jade:73 +msgid "Export to CSV" +msgstr "Exportar a CSV" + +#: src/jade/tabs/history.jade:69 msgid "Sorry, no transactions match your current filter." msgstr "Lo sentimos, ninguna transacción concuerda con su filtro actual." -#: src/jade/tabs/history.jade:109 +#: src/jade/tabs/history.jade:91 msgid "You sent{{1}}to{{2}}" msgstr "Ha enviado{{1}}a{{2}}" -#: src/jade/tabs/history.jade:115 +#: src/jade/tabs/history.jade:97 msgid "{{1}}sent you{{2}}" msgstr "{{1}}le ha enviado{{2}}" -#: src/jade/tabs/history.jade:121 +#: src/jade/tabs/history.jade:103 msgid "You requested to exchange{{1}}to{{2}}" msgstr "Ha solicitado cambiar{{1}}a{{2}}" -#: src/jade/tabs/history.jade:127 +#: src/jade/tabs/history.jade:109 msgid "{{1}}now trusts you for{{2}}" msgstr "{{1}}le ha acreditado por{{2}}" -#: src/jade/tabs/history.jade:140 src/jade/tabs/history/effects.jade:45 +#: src/jade/tabs/history.jade:122 src/jade/tabs/history/effects.jade:45 msgid "You created an order to sell{{1}}for{{2}}" msgstr "Ha creado una orden para vender{{1}}por{{2}}" -#: src/jade/tabs/history.jade:144 src/jade/tabs/history/effects.jade:49 +#: src/jade/tabs/history.jade:126 src/jade/tabs/history/effects.jade:49 msgid "You created an order to buy{{1}}for{{2}}" msgstr "Ha creado una orden para comprar{{1}}por{{2}}" -#: src/jade/tabs/history.jade:150 +#: src/jade/tabs/history.jade:132 msgid "You cancelled an order accepting {{1}}for{{2}}" msgstr "Ha cancelado una orden aceptando {{1}}por{{2}}" -#: src/jade/tabs/history.jade:163 +#: src/jade/tabs/history.jade:145 msgid "Unknown transaction" msgstr "Transacción desconocida" -#: src/jade/tabs/history.jade:166 +#: src/jade/tabs/history.jade:148 msgid "" "The client failed to parse this transaction. The developers have been " "notified of the issue." msgstr "El cliente ha fallado al analizar esta transacción. Los desarrolladores han sido notificados de este incidente." -#: src/jade/tabs/history.jade:171 +#: src/jade/tabs/history.jade:153 msgid "{{1}} sent you{{2}} and activated your account!" msgstr "{{1}} le ha enviado{{2}}y ha activado su cuenta!" -#: src/jade/tabs/history.jade:178 +#: src/jade/tabs/history.jade:160 msgid "You deposited{{1}} using {{entry.details.app.name}}" msgstr "Ha depositado{{1}} usando {{entry.details.app.name}}" -#: src/jade/tabs/history.jade:186 +#: src/jade/tabs/history.jade:168 msgid "Balance Changes" msgstr "Cambios de Balance" -#: src/jade/tabs/history.jade:189 +#: src/jade/tabs/history.jade:171 msgid "Issuer" msgstr "Emisor" -#: src/jade/tabs/history.jade:191 +#: src/jade/tabs/history.jade:173 msgid "Final balance" msgstr "Balance final" -#: src/jade/tabs/history.jade:194 +#: src/jade/tabs/history.jade:176 msgid "XRP Balance Change" msgstr "Cambio de Balance de XRP" -#: src/jade/tabs/history.jade:195 +#: src/jade/tabs/history.jade:177 msgid "{{effect.currency}} Balance Change" msgstr "{{effect.currency}} Cambio de Balance" -#: src/jade/tabs/history.jade:196 -msgid "Fee" -msgstr "Comisión" - -#: src/jade/tabs/history.jade:201 +#: src/jade/tabs/history.jade:183 msgid "Transaction details" msgstr "Datos de transacción" -#: src/jade/tabs/history.jade:202 +#: src/jade/tabs/history.jade:184 msgid "Add {{1}} to contact list" msgstr "Añadir {{1}} a la lista de contactos" -#: src/jade/tabs/history.jade:208 src/jade/tabs/trade.jade:386 +#: src/jade/tabs/history.jade:189 +msgid "{{1}} Loading more" +msgstr "{{1}} Cargando mas" + +#: src/jade/tabs/history.jade:192 src/jade/tabs/trade.jade:500 msgid "Load more" msgstr "Cargar más" -#: src/jade/tabs/history.jade:209 +#: src/jade/tabs/history.jade:193 msgid "No more transactions left" msgstr "No quedan transacciones" @@ -1333,439 +1885,633 @@ msgstr "El balance de credito entre usted y{{1}}ha cambiado por{{2}}." msgid "Your balance has been changed by{{1}}." msgstr "Su balance has sido cambiado por{{1}}. " -#: src/jade/tabs/kyc.jade:16 +#: src/jade/tabs/jpy.jade:38 +msgid "Japanese Yen Deposit" +msgstr "Depósito Yen Japonés" + +#: src/jade/tabs/jpy.jade:42 +msgid "Tokyo JPY Issuer (~tokyojpy) {{1}}" +msgstr "Tokyo JPY Issuer (~tokyojpy) {{1}}" + +#: src/jade/tabs/jpy.jade:59 +msgid "" +"Ripple Trade has partnered with Tokyo JPY Issuer to provide easier access to" +" JPY. Following this action will enable Tokyo JPY Issuer to hold JPY on your" +" behalf." +msgstr "Ripple Trade se ha asociado con Tokyo JPY Issuer para proveer facil acceso a JPY. Al continuar permitira que Tokyo JPY Issuer guarde JPY en su nombre." + +#: src/jade/tabs/jpy.jade:78 +msgid "NEW CUSTOMERS- SIGN UP AT TOKYO JPY ISSUER" +msgstr "NUEVOS CLIENTES- REGISTRARSE EN JPY TOKYO ISSUER" + +#: src/jade/tabs/jpy.jade:79 +msgid "{{1}}at Tokyo JPY Issuer. You will need:{{2}}" +msgstr "{{1}}en Tokyo JPY Issuer. Necesitara:{{2}}" + +#: src/jade/tabs/jpy.jade:84 +msgid "A valid government-issued ID." +msgstr "Un documento de identidad expedido por su gobierno." + +#: src/jade/tabs/jpy.jade:86 +msgid "A proof of address (utility bill, etc)." +msgstr "Una prueba de residencia (factura, etc)." + +#: src/jade/tabs/jpy.jade:88 +msgid "A bank account under the same name." +msgstr "Una cuenta bancaria bajo el mismo nombre." + +#: src/jade/tabs/jpy.jade:90 +msgid "EXISTING TOKYO JPY ISSUER CUSTOMERS" +msgstr "CLIENTES TOKYO JPY ISSUER EXISTENTES" + +#: src/jade/tabs/jpy.jade:100 +msgid "" +"Tokyo JPY Issuer accepts deposits and withdrawals via bank transfer. Details" +" {{1}}" +msgstr "Tokyo JPY Issuer acepta depositos y retiradas via transferencia bancaria. Detalles {{1}}" + +#: src/jade/tabs/jpy.jade:103 +msgid "" +"To deposit, you’ll need to first deposit into your Tokyo JPY Issuer account " +"and then initiate a transfer into your Ripple account." +msgstr "Para depositar, primero tendra que depositar en su cuenta Tokyo JPY Issuer y despues transferirlo a su cuenta Ripple." + +#: src/jade/tabs/jpy.jade:105 +msgid "" +"To withdraw to a bank account, you’ll first send money from your Ripple " +"account to your Tokyo JPY Issuer account. Follow instructions on the Tokyo " +"JPY Issuer site to send to your bank account." +msgstr "Para retirar a su cuenta bancaria, primero tendra que enviar dinero de su cuenta Ripple a su cuenta Tokyo JPY Issuer. Siga las instrucciones en la web de Tokyo JPY Issuer para enviarlo a su cuenta bancaria." + +#: src/jade/tabs/kyc.jade:14 +msgid "Profile completion is only available to US residents." +msgstr "Completar Perfil solo esta disponible para los residentes de US." + +#: src/jade/tabs/kyc.jade:21 src/jade/tabs/trade.jade:285 msgid "Verifying your information. Please wait..." msgstr "Verificando su información. Espere por favor..." -#: src/jade/tabs/kyc.jade:18 +#: src/jade/tabs/kyc.jade:23 msgid "Your identity information has been verified." msgstr "Su identidad ha sido verificada." -#: src/jade/tabs/kyc.jade:20 +#: src/jade/tabs/kyc.jade:25 msgid "Your identity questions have been verified." msgstr "Sus preguntas de identificación han sido verificadas." -#: src/jade/tabs/kyc.jade:22 +#: src/jade/tabs/kyc.jade:27 msgid "" "Congratulations, you've verified your identity! You will now be redirected " "back to the instant deposit page." msgstr "Enhorabuena, ha verificado su identidad! Ahora será redirigido a la página de depósito instantáneo," -#: src/jade/tabs/kyc.jade:24 +#: src/jade/tabs/kyc.jade:29 msgid "There was an error with your request. Please try again later." msgstr "Ha habido un error con su petición, Por favorm inténtelo más tarde." -#: src/jade/tabs/kyc.jade:26 +#: src/jade/tabs/kyc.jade:31 msgid "" "There was an error with your request. Make sure your phone number is valid " "and try again." msgstr "Ha habido un error con su petición. Asegúrese de que su número de teléfono es válido e inténtelo de nuevo." -#: src/jade/tabs/kyc.jade:28 +#: src/jade/tabs/kyc.jade:33 msgid "Please check your verification code and try again." msgstr "Por favor compruebe su código de verificación e inténtelo de nuevo," -#: src/jade/tabs/kyc.jade:30 +#: src/jade/tabs/kyc.jade:35 msgid "" "There was an error while requesting the verification code. Please try again " "later." msgstr "Ha habido un error mientras solicitaba el código de verificación. Por favor inténtelo más tarde." -#: src/jade/tabs/kyc.jade:32 +#: src/jade/tabs/kyc.jade:37 msgid "" "We are unable to validate your identity information. Please check your " "information and try again." msgstr "No hemos podido validar su información de identidad. Por favor compruebe sus datos e inténtelo de nuevo." -#: src/jade/tabs/kyc.jade:34 +#: src/jade/tabs/kyc.jade:39 msgid "" "We are unable to validate your identity questions. Please check your answers" " and try again." msgstr "No hemos podido validar sus cuestiones de identidad. Por favor compruebe sus respuestas e inténtelo de nuevo." -#: src/jade/tabs/kyc.jade:36 +#: src/jade/tabs/kyc.jade:41 +msgid "" +"Sorry, you've reached your maximum number of verification attempts. Please " +"try again in 24 hours." +msgstr "Lo sentimos, ha alcanzado el maximo numero de intentos de verificacion. Por favor intentelo de nuevo en 24 horas." + +#: src/jade/tabs/kyc.jade:43 msgid "" "We can't verify your identity. Please contact us at support@ripple.com." msgstr "No podemos verificar su identidad, Por favor contáctenos en support@ripple.com." -#: src/jade/tabs/kyc.jade:41 +#: src/jade/tabs/kyc.jade:48 msgid "Profile Completion" msgstr "Perfil Completo" -#: src/jade/tabs/kyc.jade:45 +#: src/jade/tabs/kyc.jade:52 msgid "STEP 1: IDENTITY INFORMATION" msgstr "PASO 1: INFORMACION DE IDENTIDAD" -#: src/jade/tabs/kyc.jade:47 +#: src/jade/tabs/kyc.jade:54 msgid "STEP 2: IDENTITY QUESTIONS" msgstr "PASO 2: CUESTIONES DE IDENTIDAD" -#: src/jade/tabs/kyc.jade:49 +#: src/jade/tabs/kyc.jade:56 msgid "STEP 3: TWO-FACTOR AUTHENTICATION" msgstr "PASO 3: AUTENTICACION DOBLE-FACTOR" -#: src/jade/tabs/kyc.jade:56 +#: src/jade/tabs/kyc.jade:63 msgid "First Name" msgstr "Nombre" -#: src/jade/tabs/kyc.jade:60 +#: src/jade/tabs/kyc.jade:67 msgid "Last Name" msgstr "Apellido" -#: src/jade/tabs/kyc.jade:64 +#: src/jade/tabs/kyc.jade:71 msgid "Street Address" msgstr "Dirección" -#: src/jade/tabs/kyc.jade:69 +#: src/jade/tabs/kyc.jade:76 msgid "City" msgstr "Ciudad" -#: src/jade/tabs/kyc.jade:73 +#: src/jade/tabs/kyc.jade:80 msgid "State" msgstr "Provincia/Estado" -#: src/jade/tabs/kyc.jade:77 +#: src/jade/tabs/kyc.jade:84 msgid "ZIP" msgstr "Código Postal" -#: src/jade/tabs/kyc.jade:81 +#: src/jade/tabs/kyc.jade:88 msgid "Date of Birth" msgstr "Fecha de Nacimiento" -#: src/jade/tabs/kyc.jade:85 +#: src/jade/tabs/kyc.jade:92 msgid "Month{{1}}" msgstr "Mes{{1}}" -#: src/jade/tabs/kyc.jade:88 +#: src/jade/tabs/kyc.jade:95 msgid "Day{{1}}" msgstr "Dia{{1}}" -#: src/jade/tabs/kyc.jade:91 +#: src/jade/tabs/kyc.jade:98 msgid "Year{{1}}" msgstr "Año{{1}}" -#: src/jade/tabs/kyc.jade:104 +#: src/jade/tabs/kyc.jade:113 msgid "Continue to identity questions" msgstr "Continuar a preguntas de identidad" -#: src/jade/tabs/kyc.jade:110 +#: src/jade/tabs/kyc.jade:114 src/jade/tabs/kyc.jade:129 +#: src/jade/tabs/kyc.jade:154 src/jade/tabs/kyc.jade:184 +#: src/jade/tabs/login.jade:17 +msgid "Verifying..." +msgstr "Verificando..." + +#: src/jade/tabs/kyc.jade:120 msgid "{{ q.question }}{{1}}" msgstr "{{ q.question }}{{1}}" -#: src/jade/tabs/kyc.jade:113 +#: src/jade/tabs/kyc.jade:123 msgid "{{ a.answer }}" msgstr "{{ a.answer }}" -#: src/jade/tabs/kyc.jade:116 +#: src/jade/tabs/kyc.jade:128 msgid "Continue to two-factor authentication" msgstr "Continuar a autenticación doble-factor" -#: src/jade/tabs/kyc.jade:124 +#: src/jade/tabs/kyc.jade:137 msgid "Two-factor authentication provides extra security for your account." msgstr "Autenticación doble-factor proporciona un extra de seguridad a su cuenta." -#: src/jade/tabs/kyc.jade:132 +#: src/jade/tabs/kyc.jade:145 msgid "" "Ripple Trade has partnered with Authy to provide better security for your " "account.By continuing, you agree to Authy's {{1:Terms of Service}}." msgstr "RippleTrade se ha asociado con Authy para ofrecer una mayor seguridad a su cuenta. Al continuar acepta los {{1:Terminos de Servicio}} de Authy." -#: src/jade/tabs/kyc.jade:138 +#: src/jade/tabs/kyc.jade:153 msgid "Verify phone number" msgstr "Verificar número de teléfono" -#: src/jade/tabs/kyc.jade:148 +#: src/jade/tabs/kyc.jade:164 msgid "change" msgstr "cambio" -#: src/jade/tabs/kyc.jade:152 +#: src/jade/tabs/kyc.jade:168 msgid "" "A verification code has been sent to +{{ currentCountryCode }} {{ " "phoneNumber }}." msgstr "Se ha enviado un código de verificación a+{{ currentCountryCode }} {{ phoneNumber }}." -#: src/jade/tabs/kyc.jade:156 src/jade/tabs/login/form.jade:15 -#: src/jade/tabs/security.jade:88 +#: src/jade/tabs/kyc.jade:172 src/jade/tabs/login/form.jade:16 +#: src/jade/tabs/security.jade:97 msgid "Verification Code" msgstr "Código de Verificación" -#: src/jade/tabs/login.jade:5 src/jade/tabs/login.jade:19 -#: src/jade/tabs/login.jade:83 +#: src/jade/tabs/kyc.jade:183 +msgid "Submit code" +msgstr "Enviar codigo" + +#: src/jade/tabs/login.jade:4 src/jade/tabs/migrate.jade:4 +#: src/jade/tabs/recover.jade:3 src/jade/tabs/register.jade:5 +#: src/jade/tabs/register.jade:137 src/jade/tabs/register.jade:184 +msgid "Welcome to Ripple Trade" +msgstr "Bienvenido a Ripple Trade" + +#: src/jade/tabs/login.jade:6 src/jade/tabs/migrate.jade:6 +#: src/jade/tabs/recover.jade:5 src/jade/tabs/register.jade:7 +#: src/jade/tabs/register.jade:139 src/jade/tabs/register.jade:186 +msgid "Trade hundreds of assets, from XRP to crypto to gold to fiat." +msgstr "Cambie cientos de bienes, desde XRP a crypto, a oro, a fiat." + +#: src/jade/tabs/login.jade:15 src/jade/tabs/login.jade:31 msgid "Log In" msgstr "Entrar" -#: src/jade/tabs/login.jade:7 -msgid "Verifying..." -msgstr "Verificando..." - -#: src/jade/tabs/login.jade:8 +#: src/jade/tabs/login.jade:18 msgid "You have successfully verified your email address." msgstr "Ha verificado su email correctamente." -#: src/jade/tabs/login.jade:9 +#: src/jade/tabs/login.jade:19 msgid "" "Email verification token is invalid. It has either expired or has been " "resent. Please check your inbox for the most recent verification email." msgstr "El código de verificación no es válido. Ha expirado o ha sido reenviado. Por favor busque en su bandeja de entrada el código más reciente." -#: src/jade/tabs/login.jade:21 +#: src/jade/tabs/login.jade:30 +msgid "Logging in" +msgstr "Conectando" + +#: src/jade/tabs/login.jade:34 msgid "Verify" msgstr "Verificar" -#: src/jade/tabs/login.jade:25 src/jade/tabs/login.jade:26 -#: src/jade/tabs/recover.jade:5 -msgid "Account Recovery" -msgstr "Recuperación de Cuenta" - -#: src/jade/tabs/login.jade:28 src/jade/tabs/register.jade:93 +#: src/jade/tabs/login.jade:36 src/jade/tabs/register.jade:114 msgid "Already have a ripple.com/client account? {{1:Migrate}}" msgstr "Ya tiene una cuenta ripple.com/client? {{1:Migrar}}" -#: src/jade/tabs/login.jade:30 src/jade/tabs/migrate.jade:26 -msgid "New to {{productName}}? {{1:Sign Up}}" -msgstr "Nuevo en {{productName}}? {{1:Registrarse}}" +#: src/jade/tabs/login.jade:41 src/jade/tabs/login.jade:42 +#: src/jade/tabs/recover.jade:9 +msgid "Account Recovery" +msgstr "Recuperación de Cuenta" -#: src/jade/tabs/login.jade:37 +#: src/jade/tabs/login.jade:49 msgid "{{1:You're sending money to}}{{2}}." msgstr "{{1:Está enviando dinero a}}{{2}}." -#: src/jade/tabs/login.jade:41 +#: src/jade/tabs/login.jade:53 msgid "{{1:You're sending}}{{2}}{{3: to }}{{4}}." msgstr "{{1:Está enviando}}{{2}}{{3: a }}{{4}}." -#: src/jade/tabs/login.jade:51 +#: src/jade/tabs/login.jade:63 msgid "" "{{1:You're connecting to the gateway}}{{2}}{{3:for{{1}}}}{{4:with a limit " "of{{1}}}}." msgstr "{{1:Está conectándose a la pasarela}}{{2}}{{3:por{{1}}}}{{4:con un límite de{{1}}}}." -#: src/jade/tabs/login.jade:66 +#: src/jade/tabs/login.jade:78 msgid "{{1:You're adding}}{{2}}{{3:to your contacts list}}" msgstr "{{1:Va a añadir}}{{2}}{{3:a su lista de contactos}}" -#: src/jade/tabs/login.jade:84 +#: src/jade/tabs/login.jade:95 +msgid "{{1}} Log In" +msgstr "{{1}} Conectar" + +#: src/jade/tabs/login.jade:98 msgid "You can confirm this transaction on the next page." msgstr "Puede confirmar esta transacción en la pagina siguiente" -#: src/jade/tabs/login.jade:85 +#: src/jade/tabs/login.jade:99 msgid "New to {{productName}}? {{1:Create a wallet}}" msgstr "Nuevo en {{productName}}? {{1:Crear una cartera}}" -#: src/jade/tabs/login/form.jade:11 src/jade/tabs/security.jade:82 +#: src/jade/tabs/login/form.jade:12 src/jade/tabs/security.jade:91 msgid "" "Please enter the verification code from the SMS message sent to your device:" msgstr "Por favor, introduzca el código de verificación del mensaje SMS enviado a su dispositivo:" -#: src/jade/tabs/login/form.jade:12 src/jade/tabs/security.jade:83 +#: src/jade/tabs/login/form.jade:13 src/jade/tabs/security.jade:92 msgid "" "Please enter the verification code from the Authy app installed on your " "device:" msgstr "Por favor, introduzca el código de verificación de la app Authy instalada en su dispositivo:" -#: src/jade/tabs/login/form.jade:22 +#: src/jade/tabs/login/form.jade:23 msgid "Resend" msgstr "Reenviar" -#: src/jade/tabs/login/form.jade:23 src/jade/tabs/security.jade:95 +#: src/jade/tabs/login/form.jade:24 src/jade/tabs/security.jade:105 msgid "Send Via SMS" msgstr "Enviar Via SMS" -#: src/jade/tabs/login/form.jade:29 +#: src/jade/tabs/login/form.jade:30 msgid "Remember me on this device for 30 days" msgstr "Recordarme en este dispositivo durante 30 dias" -#: src/jade/tabs/migrate.jade:5 src/jade/tabs/register.jade:10 -#: src/jade/tabs/register.jade:116 src/jade/tabs/register.jade:159 +#: src/jade/tabs/migrate.jade:10 src/jade/tabs/register.jade:17 +#: src/jade/tabs/register.jade:142 src/jade/tabs/register.jade:189 msgid "Migrate" msgstr "Migrar" -#: src/jade/tabs/migrate.jade:6 +#: src/jade/tabs/migrate.jade:11 msgid "" "To begin migration, enter the name and passphrase used to encrypt your " "ripple.com/client wallet below. After migration, you will no longer be able " "to login on ripple.com/client." msgstr "Para comenzar la migración, introduzca abajo el nombre y contraseña usados para encriptar su cartera ripple.com/client. Después de la migración no podrá conectarse a ripple.com/client." -#: src/jade/tabs/migrate.jade:10 -msgid "Existing ripple.com/client Wallet name" -msgstr "Nombre ripple.com/Cartera de cliente existente" +#: src/jade/tabs/migrate.jade:15 +msgid "Existing ripple.com/client Wallet name" +msgstr "Nombre ripple.com/Cartera de cliente existente" + +#: src/jade/tabs/migrate.jade:18 +msgid "Passphrase" +msgstr "Clave" + +#: src/jade/tabs/migrate.jade:31 +msgid "Begin Migration" +msgstr "Comenzar Migración" + +#: src/jade/tabs/migrate.jade:32 +msgid "New to {{productName}}? {{1:Sign Up}}" +msgstr "Nuevo en {{productName}}? {{1:Registrarse}}" + +#: src/jade/tabs/migrate.jade:34 +msgid "Have a {{productName}} account? {{1:Log In}}" +msgstr "Tiene una cuenta {{productName}}? {{1:Conectarse}}" + +#: src/jade/tabs/mxn.jade:38 +msgid "Mexican Peso Deposit" +msgstr "Depositar Peso Mexicano" + +#: src/jade/tabs/mxn.jade:42 +msgid "Bitso (~bitso) {{1}}{{2}}" +msgstr "Bitso (~bitso) {{1}}{{2}}" + +#: src/jade/tabs/mxn.jade:47 +msgid "All countries except the US" +msgstr "Todos los paises menos US" + +#: src/jade/tabs/mxn.jade:58 +msgid "" +"Ripple Trade has partnered with Bitso to provide easy access to MXN (Mexican" +" Peso). By continuing, you agree with Bitso’s terms of service. Following " +"this action will enable Bitso to hold MXN on your behalf." +msgstr "Ripple Trade se ha asociado con Bitso para proveer facil acceso a MXN (Peso Mexicano). Al continuar acepta los terminos de servicio de Bitso. Al continuar permitira que Bitso guarde MXN en su nombre." + +#: src/jade/tabs/mxn.jade:80 +msgid "TO FUND/REDEEM MEXICAN PESO:" +msgstr "PARA FUNDAR/RETIRAR PESO MEXICANO:" + +#: src/jade/tabs/mxn.jade:82 +msgid "Register or login at {{1}}to initiate deposits and withdrawals." +msgstr "Registrese o entre en {{1}}para iniciar depositos y retiradas." + +#: src/jade/tabs/mxn.jade:86 +msgid "" +"A valid, non-US, state-issued ID (passport, driver's license, etc)." +msgstr "Un documento de identidad oficial, no de US (pasaporte, licencia's conduccion, etc)." + +#: src/jade/tabs/mxn.jade:87 +msgid "" +"Proof of address (utility bill or other type of bill that has your address " +"on it). Verification is required for peso deposits or withdrawals." +msgstr "Prueba de residencia (factura que incluya su direccion). La verificacion es obligatoria para depositar y retirar pesos." + +#: src/jade/tabs/mxn.jade:89 +msgid "" +"To fund your Ripple account, see the below options. Once a balance is " +"deposited with Bitso, you can send it to your Ripple account using the Bitso" +" Dashboard." +msgstr "Para fundar tu cuenta Ripple, mire las opciones de abajo. Una vez se haya depositado fondos en Bitso, puede enviarlo a su cuenta Ripple usando el Escritorio Bitso." + +#: src/jade/tabs/mxn.jade:90 +msgid "" +"To withdraw from your Ripple account, click on the 'Redeem from Ripple' " +"button on the Bitso Dashboard." +msgstr "Para retirar fondos de su cuenta Ripple, haga click en el boton \"Retirar desde Ripple\" en el Escritorio Bitso." + +#: src/jade/tabs/mxn.jade:92 src/jade/tabs/usd.jade:89 +msgid "DEPOSIT OPTIONS" +msgstr "OPCIONES DE DEPOSITO" + +#: src/jade/tabs/mxn.jade:94 +msgid "Bitso accepts deposits by the following methods:" +msgstr "Bitso acepta depositos por los siguientes metodos:" + +#: src/jade/tabs/mxn.jade:96 src/jade/tabs/mxn.jade:106 +msgid "Bank Wire" +msgstr "Transferencia bancaria" + +#: src/jade/tabs/mxn.jade:97 src/jade/tabs/mxn.jade:107 +msgid "SPEI (Mexican instant inter-bank transfer)" +msgstr "SPEI (Transferencia instantanea inter-bancaria de Mexico)" + +#: src/jade/tabs/mxn.jade:98 src/jade/tabs/mxn.jade:108 +msgid "Bitcoin" +msgstr "Bitcoin" -#: src/jade/tabs/migrate.jade:13 -msgid "Passphrase" -msgstr "Clave" +#: src/jade/tabs/mxn.jade:99 +msgid "MXN Cash (at locations across Mexico)" +msgstr "MXN Cash (para sitios en Mexico)" -#: src/jade/tabs/migrate.jade:25 -msgid "Begin Migration" -msgstr "Comenzar Migración" +#: src/jade/tabs/mxn.jade:100 +msgid "Pademobile wallet" +msgstr "Cartera Pademobile" -#: src/jade/tabs/migrate.jade:28 -msgid "Have a {{productName}} account? {{1:Log In}}" -msgstr "Tiene una cuenta {{productName}}? {{1:Conectarse}}" +#: src/jade/tabs/mxn.jade:102 src/jade/tabs/usd.jade:99 +msgid "WITHDRAWAL OPTIONS" +msgstr "OPCIONES DE RETIRADA" -#: src/jade/tabs/recover.jade:7 +#: src/jade/tabs/mxn.jade:104 +msgid "Bitso offers withdrawals via the following methods:" +msgstr "Bitso ofrece retirada via los siguientes metodos:" + +#: src/jade/tabs/recover.jade:11 msgid "" "You can only recover your Ripple Trade account with a secret key. You will " "recover the account's Ripple name, contacts and other information." msgstr "Sólo puede recuperar su cuenta Ripple Trade con una clave secreta. Recuperara el nombre Ripple de la cuenta, los contactos y otra información." -#: src/jade/tabs/recover.jade:9 src/jade/tabs/recover.jade:28 +#: src/jade/tabs/recover.jade:13 src/jade/tabs/recover.jade:33 msgid "Ripple Name" msgstr "Nombre Ripple" -#: src/jade/tabs/recover.jade:14 +#: src/jade/tabs/recover.jade:18 msgid "Secret Key" msgstr "Clave Secreta" -#: src/jade/tabs/recover.jade:17 +#: src/jade/tabs/recover.jade:21 msgid "Unable to recover account." msgstr "Imposible recuperar esa cuenta." -#: src/jade/tabs/recover.jade:22 src/jade/tabs/register.jade:74 +#: src/jade/tabs/recover.jade:27 src/jade/tabs/register.jade:95 msgid "Recover Account" msgstr "Recuperar Cuenta" -#: src/jade/tabs/recover.jade:24 src/jade/tabs/recover.jade:50 +#: src/jade/tabs/recover.jade:29 src/jade/tabs/recover.jade:56 msgid "Set Password" msgstr "Establecer Contraseña" -#: src/jade/tabs/recover.jade:26 +#: src/jade/tabs/recover.jade:31 msgid "" "Your account was sucessfully recovered. Please re-encrypt your account with " "a new password." msgstr "Su cuenta ha sido recuperada con éxito. Por favor reencripte su cuenta con una nueva contraseña." -#: src/jade/tabs/recover.jade:36 src/jade/tabs/register.jade:45 -#: src/jade/tabs/security.jade:119 +#: src/jade/tabs/recover.jade:41 src/jade/tabs/register.jade:62 +#: src/jade/tabs/security.jade:132 msgid "" "Your password is weak. It does not contain numbers and symbols or it is too " "short." msgstr "Su contraseña es débil. No contiene numeros y simbolos o es demasiado corta." -#: src/jade/tabs/recover.jade:38 src/jade/tabs/register.jade:47 -#: src/jade/tabs/security.jade:121 +#: src/jade/tabs/recover.jade:43 src/jade/tabs/register.jade:65 +#: src/jade/tabs/security.jade:134 msgid "" "Your Ripple name and password cannot match. Please create a new password." msgstr "Su nombre Ripple y su contraseña no concuerdan. Por favor cree una nueva contraseña." -#: src/jade/tabs/recover.jade:45 +#: src/jade/tabs/recover.jade:45 src/jade/tabs/register.jade:67 +#: src/jade/tabs/security.jade:136 +msgid "Confirm password" +msgstr "Confirmar contraseña" + +#: src/jade/tabs/recover.jade:48 src/jade/tabs/register.jade:71 +#: src/jade/tabs/security.jade:139 +msgid "Passwords do not match" +msgstr "Las contraseñas no coinciden" + +#: src/jade/tabs/recover.jade:50 msgid "Unable to change your account password." msgstr "Imposible cambiar su contraseña de cuenta." -#: src/jade/tabs/recover.jade:49 +#: src/jade/tabs/recover.jade:55 msgid "Updating..." msgstr "Actualizando..." -#: src/jade/tabs/recover.jade:51 +#: src/jade/tabs/recover.jade:57 msgid "Remember your password? {{1:Log In}}" msgstr "Recuerda su contraseña? {{1:Conectarse}}" -#: src/jade/tabs/register.jade:5 -msgid "" -"Ripple Trade is the only platform where you can trade between stores of " -"value spanning fiat, crypto, precious metals and more." -msgstr "Ripple Trade es la única plataforma donde puede cambiar entre valores fiat, crypto, metales preciosos y más." - -#: src/jade/tabs/register.jade:9 src/jade/tabs/register.jade:90 -#: src/jade/tabs/register.jade:115 src/jade/tabs/register.jade:158 +#: src/jade/tabs/register.jade:13 src/jade/tabs/register.jade:109 +#: src/jade/tabs/register.jade:141 src/jade/tabs/register.jade:188 msgid "Sign Up" msgstr "Registrarse" -#: src/jade/tabs/register.jade:12 src/jade/tabs/register.jade:14 -#: src/jade/tabs/register.jade:16 src/jade/tabs/register.jade:120 -#: src/jade/tabs/register.jade:122 src/jade/tabs/register.jade:161 -#: src/jade/tabs/register.jade:163 src/jade/tabs/register.jade:165 +#: src/jade/tabs/register.jade:19 src/jade/tabs/register.jade:21 +#: src/jade/tabs/register.jade:23 src/jade/tabs/register.jade:146 +#: src/jade/tabs/register.jade:148 src/jade/tabs/register.jade:191 +#: src/jade/tabs/register.jade:193 src/jade/tabs/register.jade:195 msgid "Step {{1}}" msgstr "Paso {{1}}" -#: src/jade/tabs/register.jade:19 +#: src/jade/tabs/register.jade:26 msgid "Create Ripple name" msgstr "Crear nombre Ripple" -#: src/jade/tabs/register.jade:20 +#: src/jade/tabs/register.jade:27 msgid "" "Please choose a Ripple name below. You will use this Ripple name to login to" " Ripple Trade, so remember it! Ripple names are unique and public, like your" " current Ripple address. {{1}}" msgstr "Por favor elija un nombre Ripple más abajo. Usará este nombre Ripple para conectarse a Ripple Trade, recuérdelo! Los nombres Ripple son únicos y públicos, como su dirección Ripple actual. {{1}}" -#: src/jade/tabs/register.jade:21 +#: src/jade/tabs/register.jade:28 msgid "Learn More" msgstr "Más Información" -#: src/jade/tabs/register.jade:36 +#: src/jade/tabs/register.jade:41 +msgid "Reserved for {{usernameReservedFor}}" +msgstr "Reservado para {{usernameReservedFor}}" + +#: src/jade/tabs/register.jade:43 +msgid "" +"This name belongs to a high-traffic website and has been reserved to prevent" +" phishing." +msgstr "Este nombre pertenece a una web conocida y ha sido reservado para prevenir phishing." + +#: src/jade/tabs/register.jade:49 msgid "You can only use the following characters: a-z, 0-9 and hyphens (-)" msgstr "Sólo puede usar los siguientes caracteres: a-z, 0-9 y guiones (-)" -#: src/jade/tabs/register.jade:39 +#: src/jade/tabs/register.jade:55 msgid "Cannot use hyphens in a row (--)" msgstr "No puede enlazar guiones (--)" -#: src/jade/tabs/register.jade:60 +#: src/jade/tabs/register.jade:80 msgid "Email address is invalid" msgstr "Dirección email no valida" -#: src/jade/tabs/register.jade:62 src/jade/tabs/security.jade:138 +#: src/jade/tabs/register.jade:82 src/jade/tabs/security.jade:151 msgid "Secret key" msgstr "Clave secreta" -#: src/jade/tabs/register.jade:63 src/jade/tabs/send.jade:50 -#: src/jade/tabs/trade.jade:331 src/jade/tabs/trade.jade:337 +#: src/jade/tabs/register.jade:83 src/jade/tabs/send.jade:43 +#: src/jade/tabs/trade.jade:441 msgid "hide" msgstr "ocultar" -#: src/jade/tabs/register.jade:67 +#: src/jade/tabs/register.jade:88 msgid "Secret Account Key is invalid" msgstr "La Clave Secreta de Cuenta no es valida" -#: src/jade/tabs/register.jade:69 +#: src/jade/tabs/register.jade:90 msgid "" "The account ~{{1}}{{2}} has already been created using this secret key." msgstr "La cuenta ~{{1}}{{2}} ya ha sido creada usando esta clave secreta. " -#: src/jade/tabs/register.jade:75 -msgid "Need to use your secret key? {{1}}" -msgstr "Necesita usar su clave secreta? {{1}}" - -#: src/jade/tabs/register.jade:77 -msgid "Use key" -msgstr "Usar clave" - -#: src/jade/tabs/register.jade:80 -msgid "I agree to the {{productName}} {{1:end-user license agreement}}" -msgstr "Acepto el {{productName}} {{1:end-user license agreement}}" +#: src/jade/tabs/register.jade:98 +msgid "I agree to the {{productName}} {{1:Terms of Use}}" +msgstr "Acepto el {{productName}} {{1:Terminos de Uso}}" -#: src/jade/tabs/register.jade:83 +#: src/jade/tabs/register.jade:101 msgid "" "Please see our {{1}} to see how we collect, use and share information about " "you" msgstr "Por favor mire nuestro {{1}} para ver como recogemos, usamos y compartimos su información." -#: src/jade/tabs/register.jade:91 +#: src/jade/tabs/register.jade:110 msgid "Migrate Account" msgstr "Migrar Cuenta" -#: src/jade/tabs/register.jade:100 +#: src/jade/tabs/register.jade:111 +msgid "Need to use your secret key? {{1}}" +msgstr "Necesita usar su clave secreta? {{1}}" + +#: src/jade/tabs/register.jade:113 +msgid "Use key" +msgstr "Usar clave" + +#: src/jade/tabs/register.jade:121 msgid "An error occurred during registration. Please try again later." msgstr "Ha ocurrido un error durante el registro. Por favor inténtelo más tarde." -#: src/jade/tabs/register.jade:101 +#: src/jade/tabs/register.jade:122 msgid "The reported error was: {{1}}" msgstr "El error reportado fue: {{1}}" -#: src/jade/tabs/register.jade:109 +#: src/jade/tabs/register.jade:131 msgid "" "There is already a wallet using this username, please choose a different " "username and try again." msgstr "Ya hay una cartera con este nombre de usuario, por favor elija un nombre diferente y pruebe de nuevo." -#: src/jade/tabs/register.jade:124 +#: src/jade/tabs/register.jade:150 msgid "" "By proceeding, you understand that Ripple Trade does not provide a password " "or secret key recovery mechanism. If you forget your Ripple name/password " "and secret key, you will be unable to access this Ripple account." msgstr "Al porceder, entiende que Ripple Trade no provee un mecanismo de recuperación de contraseña o clave secreta. Si olvida su nombre Ripple/contraseña y clave secreta, no podrá acceder a su cuenta Ripple." -#: src/jade/tabs/register.jade:129 +#: src/jade/tabs/register.jade:155 msgid "" "You are now migrating your account- meaning you'll no longer be able to " "access your account from ripple.com/client. You will retain all of your " @@ -1774,907 +2520,1123 @@ msgid "" "continue your migration." msgstr "Esta a punto de migrar su cuenta- esto significa que no podrá volver a conectarse a su cuenta desde ripple.com/client. Mantendrá todos sus balances, contactos e historial de cuenta. Su cuenta usará la misma clave secreta que antes. Si ya ha guardado su clave secreta, por favor continue la migración." -#: src/jade/tabs/register.jade:136 +#: src/jade/tabs/register.jade:162 msgid "" "The secret key unlocks access to all your account funds in the event you " "lose your Ripple name or password. Please write it down and store it " "somewhere private and safe. {{1:Read more}} about keys and wallet safety." msgstr "La clave secreta desbloquea el acceso a todos los fondos de su cuenta en caso de que olvide o pierda su nombre Ripple o contraseña. Por favor guárdela en un lugar privado y seguro. {{1:Leer más}} sobre claves y seguridad de cartera." -#: src/jade/tabs/register.jade:141 +#: src/jade/tabs/register.jade:167 msgid "" "If you have not saved your secret key, please write it down and store it " "somewhere private and safe. In the event you lose your Ripple name or " "password, you can use this secret key to recover your funds." msgstr "Si no ha guardado su clave secreta, por favor guárdela en un lugar privado y seguro. En caso de que pierda su nombre Ripple o contraseña, puede usar esta clave secreta para recuperar sus fondos." -#: src/jade/tabs/register.jade:154 +#: src/jade/tabs/register.jade:176 +msgid "Show secret key" +msgstr "Mostrar clave secreta" + +#: src/jade/tabs/register.jade:177 +msgid "Hide secret key" +msgstr "Ocultar clave secreta" + +#: src/jade/tabs/register.jade:180 msgid "Continue to email verification" msgstr "Seguir a verificación de mail" -#: src/jade/tabs/register.jade:167 +#: src/jade/tabs/register.jade:197 msgid "" "We’ve sent an email to {{1}}. To complete registration, click the link in " "the email." msgstr "Hemos enviado un email a {{1}}. Para complear el registro haga click en el link que hay dentro del email." -#: src/jade/tabs/register.jade:170 +#: src/jade/tabs/register.jade:200 msgid "Email token has been resent." msgstr "Un Email ha sido reenviado." -#: src/jade/tabs/register.jade:173 +#: src/jade/tabs/register.jade:203 msgid "Email Address:" msgstr "Dirección Email:" -#: src/jade/tabs/register.jade:178 +#: src/jade/tabs/register.jade:210 msgid "Re-send Email" msgstr "Reenviar Email" -#: src/jade/tabs/security.jade:5 +#: src/jade/tabs/security.jade:7 msgid "Active Session Timeout" msgstr "Expiración de Sesión Activa" -#: src/jade/tabs/security.jade:6 +#: src/jade/tabs/security.jade:8 msgid "" "To view or edit your security settings, you must currently have an active " "session." msgstr "Para ver o editar su configuración de seguridad, debe tener una sesión activa." -#: src/jade/tabs/security.jade:13 +#: src/jade/tabs/security.jade:16 msgid "Restore Session" msgstr "Reestablecer Sesión" -#: src/jade/tabs/security.jade:22 +#: src/jade/tabs/security.jade:25 msgid "Your Ripple password has been changed, please login again" msgstr "Su contraseña Ripple ha sido cambiada, por favor conéctese de nuevo" -#: src/jade/tabs/security.jade:24 +#: src/jade/tabs/security.jade:27 msgid "Couldn't change your Ripple password, please try again later." msgstr "No se ha podido cambiar su contraseña Ripple, por favor inténtelo de nuevo más tarde." -#: src/jade/tabs/security.jade:27 +#: src/jade/tabs/security.jade:30 msgid "Changing your Ripple password..." msgstr "Cambiando su contraseña Ripple..." -#: src/jade/tabs/security.jade:28 +#: src/jade/tabs/security.jade:31 msgid "Your Ripple password has been changed successfully." msgstr "Su contraseña Ripple ha sido cambiada con éxito." -#: src/jade/tabs/security.jade:29 +#: src/jade/tabs/security.jade:32 msgid "Unable to load Two-factor authentication settings." msgstr "No se ha podido cargar la configuración de la autenticación Two-factor." -#: src/jade/tabs/security.jade:30 +#: src/jade/tabs/security.jade:33 msgid "Error saving Two-factor authentication settings." msgstr "Error guardando la configuración de la autenticación Two-factor." -#: src/jade/tabs/security.jade:31 +#: src/jade/tabs/security.jade:34 msgid "The verification code is invalid." msgstr "El código de verificación no es válido." -#: src/jade/tabs/security.jade:32 +#: src/jade/tabs/security.jade:36 msgid "Two-factor authentication has been successfully enabled." msgstr "Autenticación Two-factor se ha activado con éxito." -#: src/jade/tabs/security.jade:33 +#: src/jade/tabs/security.jade:37 msgid "Two-factor authentication has been successfully disabled." msgstr "Autenticación Two-factor se ha desactivado con éxito." +#: src/jade/tabs/security.jade:38 +msgid "Password protection has been successfully enabled." +msgstr "Protección de contraseña se ha activado con éxito." + #: src/jade/tabs/security.jade:39 +msgid "Password protection has been successfully disabled." +msgstr "Protección de contraseña se ha desactivado con éxito." + +#: src/jade/tabs/security.jade:45 msgid "Security settings" msgstr "Configuración de seguridad" -#: src/jade/tabs/security.jade:44 +#: src/jade/tabs/security.jade:51 msgid "Loading Two-factor authentication settings..." msgstr "Cargando la configuración de la autenticación Two-factor..." -#: src/jade/tabs/security.jade:47 +#: src/jade/tabs/security.jade:55 msgid "Enabled" msgstr "Activado" -#: src/jade/tabs/security.jade:48 +#: src/jade/tabs/security.jade:56 msgid "Disabled" msgstr "Desactivado" -#: src/jade/tabs/security.jade:50 +#: src/jade/tabs/security.jade:58 msgid "disable" msgstr "desactivar" -#: src/jade/tabs/security.jade:52 +#: src/jade/tabs/security.jade:60 msgid "enable" msgstr "activar" -#: src/jade/tabs/security.jade:58 +#: src/jade/tabs/security.jade:66 msgid "" "Authy is providing two-factor authentication for Ripple Trade. To enable " "two-factor authentication, you must share some information with Authy." msgstr "Authy provee autenticación two-factor para Ripple Trade. Para activar la autenticación two-factor, debe compartir cierta información con Authy." -#: src/jade/tabs/security.jade:61 +#: src/jade/tabs/security.jade:69 msgid "- Your email address:" msgstr "- Su dirección de email:" -#: src/jade/tabs/security.jade:64 +#: src/jade/tabs/security.jade:72 msgid "- Your phone number:" msgstr "- Su número de teléfono:" -#: src/jade/tabs/security.jade:66 +#: src/jade/tabs/security.jade:74 msgid "By proceeding, you agree to the Authy {{1: terms of service.}}" msgstr "Al continuar, acepta los {{1: términos de servicio.}} de Authy" -#: src/jade/tabs/security.jade:70 +#: src/jade/tabs/security.jade:78 msgid "Share" msgstr "Compartir" -#: src/jade/tabs/security.jade:75 +#: src/jade/tabs/security.jade:84 msgid "Saving settings..." msgstr "Guardando configuración..." -#: src/jade/tabs/security.jade:76 +#: src/jade/tabs/security.jade:85 msgid "Disabling Two-factor authentication..." msgstr "Desactivando la autenticación Two-factor..." -#: src/jade/tabs/security.jade:77 +#: src/jade/tabs/security.jade:86 msgid "Enabling Two-factor authentication..." msgstr "Activando la autenticación Two-factor..." -#: src/jade/tabs/security.jade:94 +#: src/jade/tabs/security.jade:104 msgid "Resend Code" msgstr "Reenviar Código" -#: src/jade/tabs/security.jade:99 +#: src/jade/tabs/security.jade:110 msgid "Enable" msgstr "Activar" -#: src/jade/tabs/security.jade:103 +#: src/jade/tabs/security.jade:114 msgid "Ripple password" msgstr "Contraseña Ripple" -#: src/jade/tabs/security.jade:116 +#: src/jade/tabs/security.jade:129 msgid "New password" msgstr "Nueva contraseña" -#: src/jade/tabs/security.jade:140 +#: src/jade/tabs/security.jade:153 msgid "" "Your secret key unlocks access to your account funds. Please write it down " "and store it somewhere private and safe. In the event you lose your Ripple " "name or password, you can use this secret key to recover your funds." msgstr "Su clave secreta desbloquea el acceso a los fondos de su cuenta. Por favor cópiela y guárdela en un lugar privado y seguro. En caso de que pierda su nombre Ripple o contraseña, puede usar esta clave secreta para recuperar sus fondos." -#: src/jade/tabs/security.jade:150 +#: src/jade/tabs/security.jade:165 msgid "Password protection for transactions" msgstr "Protección por contraseña para transacciones." -#: src/jade/tabs/security.jade:153 +#: src/jade/tabs/security.jade:168 msgid "" "If you turn off password requests, you’ll still need to enter your password " "after each page refresh." msgstr "Aunque apague la petición de contraseña, tendrá que introducir su contraseña al refrescar la página." -#: src/jade/tabs/security.jade:161 +#: src/jade/tabs/security.jade:176 msgid "Yes" msgstr "Si" -#: src/jade/tabs/security.jade:162 +#: src/jade/tabs/security.jade:177 msgid "No" msgstr "No" +#: src/jade/tabs/security.jade:192 +msgid "Delete Ripple Trade account" +msgstr "Eliminar cuenta Ripple Trade" + +#: src/jade/tabs/security.jade:194 +msgid "" +"This deletes your Ripple Trade account. You will no longer be able to login " +"to Ripple Trade and your account data will be deleted. However, you can " +"still access your funds using your secret key." +msgstr "Esto borrara su cuenta Ripple Trade. Ya no podra conectarse a Ripple Trade y sus datos seran borrados. Sin embargo, aun podra acceder a sus fondos usando su clave secreta." + #: src/jade/tabs/send.jade:12 msgid "You have to be funded before you can send money" msgstr "Debe tener crédito antes de poder enviar dinero" -#: src/jade/tabs/send.jade:19 src/jade/tabs/send.jade:32 +#: src/jade/tabs/send.jade:25 msgid "Recipient" msgstr "Receptor" -#: src/jade/tabs/send.jade:24 src/jade/tabs/send.jade:37 +#: src/jade/tabs/send.jade:30 msgid "Please enter a recipient." msgstr "Por favor introduzca un receptor." -#: src/jade/tabs/send.jade:26 +#: src/jade/tabs/send.jade:32 msgid "" "Recipient should be a Ripple name, a contact, or Ripple/Bitcoin address." msgstr "El receptor debe ser un nombre Ripple, un contacto, o una dirección Ripple/Bitcoin." -#: src/jade/tabs/send.jade:28 src/jade/tabs/send.jade:41 +#: src/jade/tabs/send.jade:34 msgid "This email address is not Ripple-enabled." msgstr "Esta dirección de email no ha sido Ripple-activada." -#: src/jade/tabs/send.jade:39 -msgid "Recipient should be a contact or Ripple/Bitcoin address." -msgstr "El receptor debe ser un contacto o una dirección Ripple/Bitcoin." - -#: src/jade/tabs/send.jade:45 +#: src/jade/tabs/send.jade:38 msgid "Show destination tag" msgstr "Mostrar etiqueta de destino" -#: src/jade/tabs/send.jade:54 +#: src/jade/tabs/send.jade:47 msgid "Destination cannot be blank." msgstr "Destino no puede quedar en blanco." -#: src/jade/tabs/send.jade:55 +#: src/jade/tabs/send.jade:48 msgid "" "Recipient requires a destination tag to be specified for the transaction. If" " you don't know the destination tag, please contact them before doing a " "transaction." msgstr "El receptor requiere que se especifique una etiqueta de destino en la transacción. Si no conoce la etiqueta de destino, por favor contacte con ellos antes de efectuar una transacción." -#: src/jade/tabs/send.jade:60 +#: src/jade/tabs/send.jade:53 msgid "Source tag" msgstr "Etiqueta de fuente" -#: src/jade/tabs/send.jade:63 +#: src/jade/tabs/send.jade:56 msgid "Invalid source tag" msgstr "Etiqueta de fuente inválida" -#: src/jade/tabs/send.jade:75 +#: src/jade/tabs/send.jade:59 +msgid "Invoice ID" +msgstr "ID de Recibo" + +#: src/jade/tabs/send.jade:62 +msgid "Invoice ID must not be more than 64 characters long." +msgstr "ID de recibo no de ser de mas de 64 caracteres de largo." + +#: src/jade/tabs/send.jade:77 msgid "Recipient will receive" msgstr "El receptor recibirá" -#: src/jade/tabs/send.jade:86 +#: src/jade/tabs/send.jade:88 msgid "{{send.recipient | rpcontactname}} can't receive this currency." msgstr "{{send.recipient | rpcontactname}} no puede recibir esta moneda." -#: src/jade/tabs/send.jade:90 +#: src/jade/tabs/send.jade:92 src/jade/tabs/trust.jade:102 msgid "Amount must be greater than zero." msgstr "La cantidad debe ser superior a cero." -#: src/jade/tabs/send.jade:91 +#: src/jade/tabs/send.jade:93 msgid "" -"This transaction exceeds your balance, you can send a max. of " -"{{account.max_spend | rpamount:{rel_precision: 0} }} XRP" -msgstr "Esta transaccion excede sus fondos, puede enviar un max. de {{account.max_spend | rpamount:{rel_precision: 0} }} XRP" +"You are either trying to send too little or too much XRP.Minimum amount is " +"0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "Esta intentando enviar demasiado o demasiado poco XRP. La cantidad minima es 0.000001 XRP y la cantidad maxima es 100 billones XRP." -#: src/jade/tabs/send.jade:94 +#: src/jade/tabs/send.jade:97 msgid "" "Recipient does not allow XRP payments. Are you sure you want to send XRP " "anyway?" msgstr "El receptor no acepta pagos XRP. Está seguro de querer enviar XRP de todas formas?" -#: src/jade/tabs/send.jade:96 +#: src/jade/tabs/send.jade:99 msgid "" "{{send.recipient | rpcontactname}}trusts you for {{send.trust_limit | " "rpamount}} {{send.trust_limit | rpcurrency}}." msgstr "{{send.recipient | rpcontactname}} le ha acreditado por {{send.trust_limit | rpamount}} {{send.trust_limit | rpcurrency}}." -#: src/jade/tabs/send.jade:100 +#: src/jade/tabs/send.jade:103 msgid "Send XRP" msgstr "Enviar XRP" -#: src/jade/tabs/send.jade:104 +#: src/jade/tabs/send.jade:107 msgid "" "Destination account is unfunded; send at least {{send.xrp_deficiency | " "rpamount}} XRP to fund it.{{1}}" msgstr "La cuenta de destino no tiene fondos; envíe al menos {{send.xrp_deficiency | rpamount}} XRP para activarla.{{1}}" -#: src/jade/tabs/send.jade:109 +#: src/jade/tabs/send.jade:114 msgid "Checking" msgstr "Comprobando" -#: src/jade/tabs/send.jade:111 +#: src/jade/tabs/send.jade:117 msgid "Analyzing address" msgstr "Analizando dirección" -#: src/jade/tabs/send.jade:113 +#: src/jade/tabs/send.jade:120 msgid "Scanning accepted currencies" msgstr "Escaneando divisas aceptadas" -#: src/jade/tabs/send.jade:115 +#: src/jade/tabs/send.jade:123 msgid "Requesting quote" msgstr "Solicitando cotización" -#: src/jade/tabs/send.jade:117 +#: src/jade/tabs/send.jade:126 msgid "Calculating paths" msgstr "Calculando caminos" -#: src/jade/tabs/send.jade:119 +#: src/jade/tabs/send.jade:129 msgid "Calculating alternatives" msgstr "Calculando alternativas" -#: src/jade/tabs/send.jade:121 +#: src/jade/tabs/send.jade:130 msgid "" "You cannot send {{send.amount}} {{send.currency}} to {{send.recipient}}. " "Either your account has insufficient funds, or {{send.recipient}} doesn't " "accept {{send.currency}}." msgstr "No puede enviar {{send.amount}} {{send.currency}} a {{send.recipient}}. O su cuenta no tiene fondos suficientes, o {{send.recipient}} no acepta {{send.currency}}." -#: src/jade/tabs/send.jade:125 +#: src/jade/tabs/send.jade:134 msgid "" "You cannot send {{send.amount}} {{send.currency}} to{{send.recipient}}. Your" " account has insufficient funds." msgstr "No puede enviar {{send.amount}} {{send.currency}} a{{send.recipient}}. Su cuenta no tiene fondos suficientes" -#: src/jade/tabs/send.jade:128 +#: src/jade/tabs/send.jade:137 msgid "There are no valid currency choices for this destination." msgstr "No hay opciones de divisas válidas para este destino." -#: src/jade/tabs/send.jade:130 +#: src/jade/tabs/send.jade:139 msgid "Error while retrieving quote for outbound payment. {{1}}" msgstr "Se ha producido un error al recuperar la cuota para el pago saliente. {{1}}" -#: src/jade/tabs/send.jade:139 +#: src/jade/tabs/send.jade:148 msgid "You can send" msgstr "Puede enviar" -#: src/jade/tabs/send.jade:141 +#: src/jade/tabs/send.jade:150 msgid "Or you can send" msgstr "O puede enviar" -#: src/jade/tabs/send.jade:155 +#: src/jade/tabs/send.jade:164 msgid "Send {{ alt.amount | rpcurrency }} {{1}}" msgstr "Enviar {{ alt.amount | rpcurrency }} {{1}}" -#: src/jade/tabs/send.jade:170 +#: src/jade/tabs/send.jade:181 msgid "Ripple is calculating a path for your payment." msgstr "Ripple está calculando un camino para su pago." -#: src/jade/tabs/send.jade:176 +#: src/jade/tabs/send.jade:186 msgid "You are sending {{1}} to" msgstr "Está enviando {{1}} a" -#: src/jade/tabs/send.jade:184 +#: src/jade/tabs/send.jade:194 msgid "Destination tag: {{send.dt}}" msgstr "Etiqueta de destino: {{send.dt}}" -#: src/jade/tabs/send.jade:185 +#: src/jade/tabs/send.jade:195 msgid "They will receive" msgstr "Recibirán" -#: src/jade/tabs/send.jade:188 +#: src/jade/tabs/send.jade:198 msgid "You will pay at most" msgstr "Pagarás como máximo" -#: src/jade/tabs/send.jade:194 +#: src/jade/tabs/send.jade:204 msgid "Are you sure?" msgstr "Estás seguro?" -#: src/jade/tabs/send.jade:200 +#: src/jade/tabs/send.jade:210 msgid "Password required to unlock wallet" msgstr "Contraseña requerida para desbloquear la cartera" -#: src/jade/tabs/send.jade:224 src/jade/tabs/send.jade:252 +#: src/jade/tabs/send.jade:234 src/jade/tabs/send.jade:266 msgid "Contact saved!" msgstr "Contacto guardado!" -#: src/jade/tabs/send.jade:226 src/jade/tabs/send.jade:254 +#: src/jade/tabs/send.jade:236 src/jade/tabs/send.jade:268 msgid "Add this address to contacts" msgstr "Añadir esta dirección a contactos" -#: src/jade/tabs/send.jade:230 src/jade/tabs/send.jade:258 +#: src/jade/tabs/send.jade:242 src/jade/tabs/send.jade:274 msgid "Name this user" msgstr "Nombre a este usuario" -#: src/jade/tabs/send.jade:236 src/jade/tabs/send.jade:265 -#: src/jade/tabs/trust.jade:283 +#: src/jade/tabs/send.jade:246 src/jade/tabs/send.jade:278 +msgid "This contact already exists, please choose another name." +msgstr "Este contacto ya existe, por favor elija otro nombre." + +#: src/jade/tabs/send.jade:250 src/jade/tabs/send.jade:283 +#: src/jade/tabs/trust.jade:233 msgid "Saving..." msgstr "Guardando..." -#: src/jade/tabs/send.jade:241 src/jade/tabs/send.jade:271 +#: src/jade/tabs/send.jade:255 src/jade/tabs/send.jade:289 msgid "Send another payment" msgstr "Enviar otro pago" -#: src/jade/tabs/settings/navbar.jade:3 -msgid "Advanced" -msgstr "Avanzado" +#: src/jade/tabs/settings/navbar.jade:2 +msgid "Security" +msgstr "Seguridad" + +#: src/jade/tabs/settingstrade.jade:12 +msgid "Trade settings" +msgstr "Configuracion de Cambio" -#: src/jade/tabs/trade.jade:10 -msgid "Loading order book..." -msgstr "Cargando libro de ordenes..." +#: src/jade/tabs/settingstrade.jade:14 +msgid "Trade currency pairs" +msgstr "Cambiar pares de divisas" -#: src/jade/tabs/trade.jade:23 +#: src/jade/tabs/trade.jade:12 src/jade/tabs/trade.jade:451 +msgid "Loading Order Book" +msgstr "Cargando Libro de Ordenes" + +#: src/jade/tabs/trade.jade:31 src/jade/tabs/widgets/markets.jade:24 msgid "flip" msgstr "cambiar" -#: src/jade/tabs/trade.jade:27 src/jade/tabs/trade.jade:35 -msgid "Base currency" -msgstr "Divisa base" +#: src/jade/tabs/trade.jade:34 +msgid "add pair" +msgstr "añadir par" + +#: src/jade/tabs/trade.jade:37 +msgid "edit pairs" +msgstr "editar pares" + +#: src/jade/tabs/trade.jade:41 +msgid "Base Currency" +msgstr "Divisa Base" + +#: src/jade/tabs/trade.jade:44 +msgid "Base Gateway" +msgstr "Pasarela Base" -#: src/jade/tabs/trade.jade:30 src/jade/tabs/trade.jade:41 -msgid "Change gateway" -msgstr "Cambiar pasarela" +#: src/jade/tabs/trade.jade:49 +msgid "Counter Currency" +msgstr "Contra Divisa" -#: src/jade/tabs/trade.jade:38 src/jade/tabs/trade.jade:46 -msgid "Counter currency" -msgstr "Divisa secundaria" +#: src/jade/tabs/trade.jade:52 +msgid "Counter Gateway" +msgstr "Contra Divisa" -#: src/jade/tabs/trade.jade:50 +#: src/jade/tabs/trade.jade:57 +msgid "Add" +msgstr "Añadir" + +#: src/jade/tabs/trade.jade:60 msgid "Base currency issuer ({{order.first_currency | rpcurrency}})" msgstr "Emisor de moneda base ({{order.first_currency | rpcurrency}})" -#: src/jade/tabs/trade.jade:55 +#: src/jade/tabs/trade.jade:63 +msgid "Ripple name or contact" +msgstr "Nombre o contacto Ripple" + +#: src/jade/tabs/trade.jade:65 msgid "Not a valid Ripple address or contact" msgstr "La dirección Ripple o el contacto no son válidos" -#: src/jade/tabs/trade.jade:60 +#: src/jade/tabs/trade.jade:70 msgid "Counter currency issuer ({{order.second_currency | rpcurrency}})" msgstr "Emisor de moneda secundaria ({{order.second_currency | rpcurrency}})" -#: src/jade/tabs/trade.jade:65 +#: src/jade/tabs/trade.jade:75 msgid "Not a valid Ripple name or address" msgstr "No es un nombre o dirección Ripple válido" -#: src/jade/tabs/trade.jade:69 +#: src/jade/tabs/trade.jade:79 msgid "" -"You must select a gateway to trade currencies. Click the “Change gateway” " -"link above and enter the gateway's address or Ripple name. {{1:Find a " -"gateway.}}" -msgstr "Debe seleccionar una plataforma para cambiar divisas. Haga click en el link \"Cambiar pasarela\" arriba e introduzca la dirección o el nombre Ripple de la plataforma. {{1:Buscar una pasarela.}}" +"To show an orderbook, choose from the dropdown above or click \"Add custom " +"pair\"." +msgstr "Para ver un libro de ordenes, elija uno del menu desplegable de arriba o haga click en \"Añadir par personalizado\"." -#: src/jade/tabs/trade.jade:79 +#: src/jade/tabs/trade.jade:86 msgid "Bid" msgstr "Oferta" -#: src/jade/tabs/trade.jade:84 +#: src/jade/tabs/trade.jade:91 msgid "Ask" msgstr "Demanda" -#: src/jade/tabs/trade.jade:89 +#: src/jade/tabs/trade.jade:96 msgid "Spread" msgstr "Diferencia" -#: src/jade/tabs/trade.jade:94 +#: src/jade/tabs/trade.jade:101 msgid "Last price" msgstr "Último precio" -#: src/jade/tabs/trade.jade:101 +#: src/jade/tabs/trade.jade:108 msgid "You have to be funded before you can trade" msgstr "Debe tener fondos antes de poder operar" -#: src/jade/tabs/trade.jade:108 +#: src/jade/tabs/trade.jade:115 msgid "Buy {{1}} {{order.first_currency | rpcurrency}}" msgstr "Comprar {{1}} {{order.first_currency | rpcurrency}}" -#: src/jade/tabs/trade.jade:111 +#: src/jade/tabs/trade.jade:118 msgid "Sell {{1}} {{order.first_currency | rpcurrency}}" msgstr "Vender {{1}} {{order.first_currency | rpcurrency}}" -#: src/jade/tabs/trade.jade:114 src/jade/tabs/trade.jade:123 +#: src/jade/tabs/trade.jade:121 src/jade/tabs/trade.jade:130 msgid "{{1}} available" msgstr "{{1}} disponible" -#: src/jade/tabs/trade.jade:137 +#: src/jade/tabs/trade.jade:144 msgid "Amount To Buy" msgstr "Cantidad A Comprar" -#: src/jade/tabs/trade.jade:138 +#: src/jade/tabs/trade.jade:145 msgid "Amount To Sell" msgstr "Cantidad A Vender" -#: src/jade/tabs/trade.jade:145 src/jade/tabs/trade.jade:160 -#: src/jade/tabs/trade.jade:175 +#: src/jade/tabs/trade.jade:152 src/jade/tabs/trade.jade:167 +#: src/jade/tabs/trade.jade:182 msgid "Required" msgstr "Requerido" -#: src/jade/tabs/trade.jade:147 src/jade/tabs/trade.jade:162 -#: src/jade/tabs/trade.jade:177 +#: src/jade/tabs/trade.jade:154 src/jade/tabs/trade.jade:169 +#: src/jade/tabs/trade.jade:184 msgid "Must be greater than zero" msgstr "Debe ser mayor que cero" -#: src/jade/tabs/trade.jade:149 src/jade/tabs/trade.jade:164 -#: src/jade/tabs/trade.jade:179 -msgid "Minimum is a drop (0.000001) and maximum is 100 billion XRPs" -msgstr "Lo minimo es una nimiedad (0.000001) y el maximo es 100 billones de XRPs" +#: src/jade/tabs/trade.jade:156 src/jade/tabs/trade.jade:171 +#: src/jade/tabs/trade.jade:186 +msgid "" +"Minimum amount of XRP you can send is a drop (0.000001) and the maximum is " +"100 billion XRPs." +msgstr "La cantidad minima es un drop (0.000001) y la maxima es 100 billones de XRPs." -#: src/jade/tabs/trade.jade:153 +#: src/jade/tabs/trade.jade:160 msgid "Price of Each" msgstr "Precio de Cada" -#: src/jade/tabs/trade.jade:168 +#: src/jade/tabs/trade.jade:175 msgid "Order Value (max)" msgstr "Valor de Orden (máx.)" -#: src/jade/tabs/trade.jade:185 +#: src/jade/tabs/trade.jade:192 msgid "You are wanting to buy {{1}} for {{2}} ({{3}} per {{4}})" msgstr "Quiere comprar {{1}} por {{2}} ({{3}} a {{4}})" -#: src/jade/tabs/trade.jade:194 +#: src/jade/tabs/trade.jade:201 msgid "You are wanting to sell {{1}} for {{2}} ({{3}} per {{4}})" msgstr "Quiere vender {{1}} por {{2}} ({{3}} a {{4}})" -#: src/jade/tabs/trade.jade:206 +#: src/jade/tabs/trade.jade:213 msgid "Buy" msgstr "Comprar" -#: src/jade/tabs/trade.jade:207 +#: src/jade/tabs/trade.jade:214 msgid "Sell" msgstr "Vender" -#: src/jade/tabs/trade.jade:213 +#: src/jade/tabs/trade.jade:220 msgid "You do not have sufficient funds to create an order." msgstr "No tiene suficentes fondos para crear una orden" -#: src/jade/tabs/trade.jade:218 -msgid "CAUTION: Your order is far off from the current market price." -msgstr "ATENCIÓN: Su orden esta muy alejada del precio de mercado actual." - -#: src/jade/tabs/trade.jade:220 +#: src/jade/tabs/trade.jade:225 msgid "" "You are about to create an order to {{1: buy}} {{2: " -"sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}" -msgstr "Va a crear una orden para {{1: comprar}} {{2: vender}}{{3}}{{4:por}}{{5}}{{6}}{{7::Esta seguro?}}" +"sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}{{8}}" +msgstr "Va a crear una orden para {{1: comprar}} {{2: vender}}{{3}}{{4:por}}{{5}}{{6}}{{7::Esta seguro?}}{{8}}" + +#: src/jade/tabs/trade.jade:242 +msgid "CAUTION: Your order is far off from the current market price." +msgstr "ATENCIÓN: Su orden esta muy alejada del precio de mercado actual." -#: src/jade/tabs/trade.jade:239 +#: src/jade/tabs/trade.jade:246 src/jade/tabs/trade.jade:407 msgid "« Back" msgstr "« Atrás" -#: src/jade/tabs/trade.jade:246 +#: src/jade/tabs/trade.jade:255 msgid "Sending order to Ripple network..." msgstr "Enviando orden a la red Ripple..." -#: src/jade/tabs/trade.jade:252 +#: src/jade/tabs/trade.jade:261 msgid "Your order has been submitted." msgstr "Su orden ha sido enviada. " -#: src/jade/tabs/trade.jade:254 +#: src/jade/tabs/trade.jade:263 msgid "Your order is now active." msgstr "Su orden está ahora activada." -#: src/jade/tabs/trade.jade:256 -msgid "Your order is filled." -msgstr "Su orden está completa." +#: src/jade/tabs/trade.jade:265 +msgid "Your order has been filled." +msgstr "Su orden ha sido completada." -#: src/jade/tabs/trade.jade:258 -msgid "Request has been denied." -msgstr "La petición ha sido denegada. " +#: src/jade/tabs/trade.jade:267 +msgid "" +"Your order has been partially filled. The remaining amount is now active." +msgstr "Su orden ha sido parcialmente completada. La cantidad restante esta activa." -#: src/jade/tabs/trade.jade:259 -msgid "We were unable to submit the request. Please try again later." -msgstr "No ha sido posible enviar la peticion. Por favor intentelo mas tarde." +#: src/jade/tabs/trade.jade:276 +msgid "Submit another order" +msgstr "Enviar otra orden" -#: src/jade/tabs/trade.jade:261 -msgid "Request is malformed." -msgstr "La petición no esta bien hecha." +#: src/jade/tabs/trade.jade:278 +msgid "My Orders{{1}}{{2}}" +msgstr "Mis Ordenes {{1}}{{2}}" -#: src/jade/tabs/trade.jade:262 -msgid "" -"Your request is invalid, reason: {{order[type].engine_result}} - " -"{{order[type].engine_result_message}}" -msgstr "Su peticion no es valida, motivo: {{order[type].engine_result}} - {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:287 +msgid "Your order has been modified." +msgstr "Su orden ha sido modificada." -#: src/jade/tabs/trade.jade:265 src/jade/tabs/trade.jade:279 -msgid "Transaction failed." -msgstr "Transacción fallida." +#: src/jade/tabs/trade.jade:289 +msgid "Your order #{{ cancelOrder.seq }} has been cancelled." +msgstr "Su orden #{{ cancelOrder.seq }} ha sido cancelada." -#: src/jade/tabs/trade.jade:267 +#: src/jade/tabs/trade.jade:291 msgid "" -"You do not have enough {{(type == 'buy' ? order.second_currency : " -"order.first_currency) | rpcurrency}} to create this order." -msgstr "No tiene suficientes {{(type == 'buy' ? order.second_currency : order.first_currency) | rpcurrency}} para crear esta orden." +"Your order could not be modified and no longer exists. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "Su orden no ha podido ser modificada y ya no existe. Error: {{order[editOrder.type].engine_result_message}}" -#: src/jade/tabs/trade.jade:269 -msgid "" -"You must have at least {{account.reserve_to_add_trust | rpamount}} XRP to " -"submit an order. {{1}}" -msgstr "Debe tener al menos {{account.reserve_to_add_trust | rpamount}} XRP para enviar una orden. {{1}}" +#: src/jade/tabs/trade.jade:293 +msgid "Unable to cancel order as it no longer exists." +msgstr "Imposible cancelar la orden porque ya no existe." -#: src/jade/tabs/trade.jade:271 -msgid "More information." -msgstr "Más información." +#: src/jade/tabs/trade.jade:295 +msgid "Modifying your order (Placing new order) ..." +msgstr "Modificando su orden (Poniendo nueva orden) ..." -#: src/jade/tabs/trade.jade:272 -msgid "Error: {{order[type].engine_result_message}}" -msgstr "Error: {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:299 +msgid "Current pair only" +msgstr "Solo par actual" -#: src/jade/tabs/trade.jade:275 -msgid "Trade failed." -msgstr "Cambio fallido." +#: src/jade/tabs/trade.jade:313 src/jade/tabs/widgets/orders.jade:24 +msgid "reverse" +msgstr "inverso" -#: src/jade/tabs/trade.jade:277 -msgid "Trade failed, reason: {{order[type].engine_result_message}}" -msgstr "Cambio fallido, motivo: {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:322 src/jade/tabs/widgets/orders.jade:33 +msgid "QTY{{1}}" +msgstr "CTD{{1}}" -#: src/jade/tabs/trade.jade:281 src/jade/tabs/trust.jade:45 -msgid "" -"The particular server you sent the transaction to was too busy to forward or" -" process your transaction at the fee you included in it." -msgstr "El servidor al que envio la transaccion estaba demasiado ocupado para procesar o redirigir su transaccion con la comision que ha incluido." +#: src/jade/tabs/trade.jade:324 src/jade/tabs/widgets/orders.jade:35 +msgid "Base{{1}}" +msgstr "Base{{1}}" -#: src/jade/tabs/trade.jade:290 -msgid "Submit another order" -msgstr "Enviar otra orden" +#: src/jade/tabs/trade.jade:326 src/jade/tabs/widgets/orders.jade:37 +msgid "Counter{{1}}" +msgstr "Contra{{1}}" -#: src/jade/tabs/trade.jade:292 -msgid "My Orders{{1}}{{2}}" -msgstr "Mis Ordenes {{1}}{{2}}" +#: src/jade/tabs/trade.jade:328 src/jade/tabs/widgets/orders.jade:39 +msgid "Limit{{1}}" +msgstr "Limite{{1}}" -#: src/jade/tabs/trade.jade:299 -msgid "Type" -msgstr "Tipo" +#: src/jade/tabs/trade.jade:334 +msgid "Action" +msgstr "Acción" -#: src/jade/tabs/trade.jade:300 -msgid "Currencies {{1: (Issuer)}}" -msgstr "Monedas {{1: (Emisor)}}" +#: src/jade/tabs/trade.jade:360 src/jade/tabs/trade.jade:424 +msgid "TRADE CONFIRMATION" +msgstr "CONFIRMACION DE CAMBIO" -#: src/jade/tabs/trade.jade:302 -msgid "Price" -msgstr "Precio" +#: src/jade/tabs/trade.jade:362 +msgid "{{1:Please confirm that you wish to cancel order #{{entry.seq}}}}" +msgstr "{{1:Por favor confirme que desea cancelar la orden #{{entry.seq}}}}" -#: src/jade/tabs/trade.jade:304 -msgid "Action" -msgstr "Acción" +#: src/jade/tabs/trade.jade:364 +msgid "" +"{{1}} div span.modal-order-type(l10n-inc) FILLED: span filled data div" +" span.modal-order-type(l10n-inc) REMAIN: span remain data div span" +".modal-order-type(l10n-inc) PLACED: span time data" +msgstr "{{1}} div span.modal-order-type(l10n-inc) FILLED: span filled data div span.modal-order-type(l10n-inc) REMAIN: span remain data div span.modal-order-type(l10n-inc) PLACED: span time data" -#: src/jade/tabs/trade.jade:313 +#: src/jade/tabs/trade.jade:371 msgid "with" msgstr "con" -#: src/jade/tabs/trade.jade:314 +#: src/jade/tabs/trade.jade:372 msgid "for" msgstr "para" -# You haven't placed any orders. -#: src/jade/tabs/trade.jade:327 -msgid "You haven't placed any orders." -msgstr "No ha emitido ninguna orden." +#: src/jade/tabs/trade.jade:376 +msgid "at" +msgstr "en" -#: src/jade/tabs/trade.jade:329 -msgid "Unable to cancel order." -msgstr "Imposible cancelar orden." +#: src/jade/tabs/trade.jade:389 +msgid "Cancel order" +msgstr "Cancelar orden" -#: src/jade/tabs/trade.jade:330 -msgid "Error: {{cancelError}}" -msgstr "Error: {{cancelError}}" +#: src/jade/tabs/trade.jade:390 src/jade/tabs/trade.jade:431 +msgid "back" +msgstr "atras" -#: src/jade/tabs/trade.jade:334 -msgid "Orderbook" -msgstr "Libro de órdenes" +#: src/jade/tabs/trade.jade:407 +msgid "" +"CAUTION: Your new order is far off from the current market price.
Do " +"you still want to replace your order ?" +msgstr "ATENCIÓN: Su orden esta muy alejada del precio de mercado actual.
Sigue queriendo reemplazar su orden?" + +#: src/jade/tabs/trade.jade:410 +msgid "Unable to cancel order. Error: {{entry.errorMsg}}" +msgstr "Imposible cancelar orden. Error: {{entry.errorMsg}}" + +#: src/jade/tabs/trade.jade:412 +msgid "" +"Your order amount has been updated by Ripple. Please go back and edit again " +"to modify this order." +msgstr "La cantidad de la orden ha sido actualizada por Ripple. Por favor retroceda y edite de nuevo para modificar esta orden." + +#: src/jade/tabs/trade.jade:414 +msgid "" +"Your order could not be modified. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "Su orden no ha podido ser modificada. Error: {{order[editOrder.type].engine_result_message}}" + +#: src/jade/tabs/trade.jade:415 +msgid "X" +msgstr "X" + +#: src/jade/tabs/trade.jade:420 +msgid "cancel all" +msgstr "cancelar todo" + +#: src/jade/tabs/trade.jade:426 +msgid "{{1:Please confirm that you wish to cancel all orders.}}" +msgstr "{{1:Por favor confirme que desea cancelar todas las ordenes.}}" + +#: src/jade/tabs/trade.jade:430 +msgid "Cancel all orders" +msgstr "Cancelar todas las ordenes" + +#: src/jade/tabs/trade.jade:433 src/jade/tabs/widgets/orders.jade:64 +msgid "No current orders. {{1}}" +msgstr "No hay órdenes. {{1}}" + +#: src/jade/tabs/trade.jade:434 src/jade/tabs/widgets/orders.jade:65 +msgid "View orders history" +msgstr "Ver historial de ordenes" + +#: src/jade/tabs/trade.jade:437 +msgid "Orderbook{{1}}" +msgstr "Libro de órdenes{{1}}" -#: src/jade/tabs/trade.jade:336 +#: src/jade/tabs/trade.jade:440 msgid "show" msgstr "mostrar" -#: src/jade/tabs/trade.jade:344 +#: src/jade/tabs/trade.jade:442 +msgid "Last updated {{1}} {{2: seconds}} {{3: second}} ago" +msgstr "Actualizado hace {{1}} {{2: segundoss}} {{3: segundos}}" + +#: src/jade/tabs/trade.jade:458 msgid "Bids" msgstr "Ofertas" -#: src/jade/tabs/trade.jade:346 src/jade/tabs/trade.jade:373 +#: src/jade/tabs/trade.jade:460 src/jade/tabs/trade.jade:487 msgid "Sum{{1}}{{2}}" msgstr "Suma{{1}}{{2}}" -#: src/jade/tabs/trade.jade:349 src/jade/tabs/trade.jade:370 +#: src/jade/tabs/trade.jade:463 src/jade/tabs/trade.jade:484 msgid "Size{{1}}{{2}}" msgstr "Tamaño{{1}}{{2}}" -#: src/jade/tabs/trade.jade:352 +#: src/jade/tabs/trade.jade:466 msgid "Bid Price{{1}}{{2}}" msgstr "Precio de Oferta{{1}}{{2}}" -#: src/jade/tabs/trade.jade:363 +#: src/jade/tabs/trade.jade:477 msgid "There are currently no bids for this pair." msgstr "Actualmente no hay ofertas para este par." -#: src/jade/tabs/trade.jade:365 +#: src/jade/tabs/trade.jade:479 msgid "Asks" msgstr "Demandas" -#: src/jade/tabs/trade.jade:367 +#: src/jade/tabs/trade.jade:481 msgid "Ask Price{{1}}{{2}}" msgstr "Precio de Demanda{{1}}{{2}}" -#: src/jade/tabs/trade.jade:384 +#: src/jade/tabs/trade.jade:498 msgid "There are currently no asks for this pair." msgstr "Actualmente no hay demandas para este par." -#: src/jade/tabs/trade.jade:387 +#: src/jade/tabs/trade.jade:501 msgid "No more orders" msgstr "No más órdenes" -#: src/jade/tabs/trust.jade:23 -msgid "Connecting a gateway to your Ripple account..." -msgstr "Conectando una pasarela a su cuenta Ripple..." - -#: src/jade/tabs/trust.jade:25 -msgid "Gateway connected." -msgstr "Pasarela conectada." - -#: src/jade/tabs/trust.jade:27 -msgid "Gateway could not be connected!" -msgstr "No se ha podido conectar con la pasarela!" - -#: src/jade/tabs/trust.jade:28 src/jade/tabs/trust.jade:30 -msgid "There was a problem connecting the gateway. Please try again later." -msgstr "Ha habido un problema conectando con la pasarela. Por favor inténtelo más tarde." +#: src/jade/tabs/trust.jade:29 +msgid "Removing gateway..." +msgstr "Quitando pasarela..." #: src/jade/tabs/trust.jade:31 -msgid "" -"Your request is invalid, reason: {{engine_result}} - " -"{{engine_result_message}}" -msgstr "Su peticion no es valida, motivo: {{engine_result}} - {{engine_result_message}}" +msgid "Gateway removed." +msgstr "Pasarela eliminada." #: src/jade/tabs/trust.jade:33 -msgid "Gateway connection failed!" -msgstr "Conexión con pasarela fallida!" +msgid "Your changes have been saved." +msgstr "Se han guardado los cambios." #: src/jade/tabs/trust.jade:35 -msgid "You have no gateway connected in this currency." -msgstr "No tiene ninguna pasarela conectada para esta divisa." - -#: src/jade/tabs/trust.jade:36 -msgid "Insufficient reserve to connect gateway." -msgstr "Reserva insuficiente para conectar con pasarela." - -#: src/jade/tabs/trust.jade:37 -msgid "" -"You must have at least {{account.reserve_to_add_trust | rpamount:0}} XRP to " -"connect a gateway. {{1}}" -msgstr "Debe tener al menos {{account.reserve_to_add_trust | rpamount:0}} XRP para conectarse con una pasarela. {{1}}" +msgid "Request failed." +msgstr "Petición fallida." #: src/jade/tabs/trust.jade:39 -msgid "Read more." -msgstr "Seguir leyendo." - -#: src/jade/tabs/trust.jade:40 -msgid "Gateway connection failed to clear, reason: {{engine_result_message}}" -msgstr "La conexión con la pasarela no se ha efectuado, motivo: {{engine_result_message}}" - -#: src/jade/tabs/trust.jade:43 -msgid "Transaction failed!" -msgstr "Transaccion fallida!" - -#: src/jade/tabs/trust.jade:53 -msgid "Saving changes..." -msgstr "Guardando cambios..." +msgid "Account unlock failed." +msgstr "Desbloqueo de cuenta fallido." #: src/jade/tabs/trust.jade:55 -msgid "Changes saved!" -msgstr "Cambios guardados!" - -#: src/jade/tabs/trust.jade:57 src/jade/tabs/trust.jade:69 -msgid "There was an error while saving your changes." -msgstr "Ha habido un error al guardar sus cambios." - -#: src/jade/tabs/trust.jade:65 -msgid "Removing gateway..." -msgstr "Quitando pasarela..." - -#: src/jade/tabs/trust.jade:67 -msgid "Gateway removed!" -msgstr "Pasarela eliminada!" - -#: src/jade/tabs/trust.jade:72 src/jade/tabs/trust.jade:194 -msgid "You must have at least {{1}} to add a new trust line. {{2}}" -msgstr "Debe tener al menos {{1}} para añadir una nueva línea de crédito. {{2}}" - -#: src/jade/tabs/trust.jade:82 msgid "Name / Address" msgstr "Nombre / Dirección" -#: src/jade/tabs/trust.jade:84 src/jade/tabs/trust.jade:130 +#: src/jade/tabs/trust.jade:57 src/jade/tabs/trust.jade:90 msgid "Currency" msgstr "Divisa" -#: src/jade/tabs/trust.jade:87 +#: src/jade/tabs/trust.jade:60 msgid "Trust Limit" msgstr "Límite de Crédito" -#: src/jade/tabs/trust.jade:93 +#: src/jade/tabs/trust.jade:66 msgid "Gateway's Ripple name or address" msgstr "Nombre Ripple o dirección de la pasarela" -#: src/jade/tabs/trust.jade:162 +#: src/jade/tabs/trust.jade:100 +msgid "Amount field is required." +msgstr "El campo Cantidad es necesario." + +#: src/jade/tabs/trust.jade:115 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"connect to. More " +"information" +msgstr "Permitir que los balances de ésta línea de crédito sean transferidos a otro emisor al que se conecte. Mas informacion" + +#: src/jade/tabs/trust.jade:125 msgid "" "{{1:You are connecting a gateway, which means}}{{2:{{ counterparty_address |" " rpripplename:{tilde: true} }} can:}}" msgstr "{{1:Está conectando una pasarela, lo cual significa que}}{{2:{{ counterparty_address | rpripplename:{tilde: true} }} puede:}}" -#: src/jade/tabs/trust.jade:165 +#: src/jade/tabs/trust.jade:128 msgid "{{1:- Hold up to }}{{2}} {{3: on your behalf}}" msgstr "{{1:- Guardar hasta }}{{2}} {{3: en su nombre}}" -#: src/jade/tabs/trust.jade:169 +#: src/jade/tabs/trust.jade:132 msgid "{{1:- Hold }}{{2}} {{3: on your behalf}}" msgstr "{{1:- Guardar }}{{2}} {{3: en su nombre}}" -#: src/jade/tabs/trust.jade:183 src/jade/tabs/trust.jade:186 -#: src/jade/tabs/trust.jade:189 src/jade/tabs/trust.jade:255 -#: src/jade/tabs/trust.jade:258 src/jade/tabs/trust.jade:261 -#: src/jade/tabs/trust.jade:288 src/jade/tabs/trust.jade:291 -#: src/jade/tabs/trust.jade:294 -msgid "Remove" -msgstr "Quitar" - -#: src/jade/tabs/trust.jade:192 +#: src/jade/tabs/trust.jade:148 msgid "Verifying address" msgstr "Comprobando dirección" -#: src/jade/tabs/trust.jade:201 +#: src/jade/tabs/trust.jade:151 msgid "" "Your account has to be {{1:activated}} before you can add a gateway account." msgstr "Su cuenta debe estar {{1:activada}} antes de poder añadir una cuenta de pasarela." -#: src/jade/tabs/trust.jade:209 +#: src/jade/tabs/trust.jade:159 msgid "Connect gateway" msgstr "Conectar pasarela" -#: src/jade/tabs/trust.jade:227 -msgid "Gateway" -msgstr "Pasarela" - -#: src/jade/tabs/trust.jade:229 src/jade/tabs/trust.jade:271 +#: src/jade/tabs/trust.jade:169 src/jade/tabs/trust.jade:221 msgid "Limit" msgstr "Límite" -#: src/jade/tabs/trust.jade:230 +#: src/jade/tabs/trust.jade:170 msgid "Min" msgstr "Min" -#: src/jade/tabs/trust.jade:232 +#: src/jade/tabs/trust.jade:172 msgid "Edit" msgstr "Editar" -#: src/jade/tabs/trust.jade:245 +#: src/jade/tabs/trust.jade:188 msgid "Off" msgstr "Off" -#: src/jade/tabs/trust.jade:246 +#: src/jade/tabs/trust.jade:189 msgid "On" msgstr "On" -#: src/jade/tabs/trust.jade:276 +#: src/jade/tabs/trust.jade:192 src/jade/tabs/trust.jade:201 +#: src/jade/tabs/trust.jade:206 src/jade/tabs/trust.jade:210 +#: src/jade/tabs/trust.jade:239 src/jade/tabs/trust.jade:244 +#: src/jade/tabs/trust.jade:248 +msgid "Incoming trust" +msgstr "Credito entrante" + +#: src/jade/tabs/trust.jade:192 +msgid "" +"You can't edit incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "No puede editar lineas de credito entrantes. Las lineas de credito entrantes es el credito que otros usuarios Ripple le conceden." + +#: src/jade/tabs/trust.jade:200 src/jade/tabs/trust.jade:202 +#: src/jade/tabs/trust.jade:205 src/jade/tabs/trust.jade:207 +#: src/jade/tabs/trust.jade:209 src/jade/tabs/trust.jade:211 +#: src/jade/tabs/trust.jade:238 src/jade/tabs/trust.jade:240 +#: src/jade/tabs/trust.jade:243 src/jade/tabs/trust.jade:245 +#: src/jade/tabs/trust.jade:247 src/jade/tabs/trust.jade:249 +msgid "Remove" +msgstr "Quitar" + +#: src/jade/tabs/trust.jade:201 src/jade/tabs/trust.jade:206 +#: src/jade/tabs/trust.jade:210 src/jade/tabs/trust.jade:239 +#: src/jade/tabs/trust.jade:244 src/jade/tabs/trust.jade:248 +msgid "" +"You can't delete incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "No puede borrar lineas de credito entrantes. Las lineas de credito entrantes es el credito que otros usuarios Ripple le conceden." + +#: src/jade/tabs/trust.jade:226 msgid "Rippling {{1}}" msgstr "Rippleando {{1}}" -#: src/jade/tabs/tx.jade:3 +#: src/jade/tabs/tx.jade:5 msgid "Loading transaction details..." msgstr "Cargando los detalles de la transacción..." -#: src/jade/tabs/tx.jade:5 +#: src/jade/tabs/tx.jade:7 msgid "An error occurred while loading the transaction details." msgstr "Ha ocurrido un error mientras se cargaban los detalles de la transacción." -#: src/jade/tabs/tx.jade:8 +#: src/jade/tabs/tx.jade:10 msgid "Transaction #" msgstr "Transacción #" -#: src/jade/tabs/tx.jade:11 -msgid "Show in graph" -msgstr "Mostrar en un gráfico" - -#: src/jade/tabs/tx.jade:13 +#: src/jade/tabs/tx.jade:15 msgid "Transaction type: {{1}}" msgstr "Tipo de transacción: {{1}} " -#: src/jade/tabs/tx.jade:20 +#: src/jade/tabs/tx.jade:22 msgid "Address sent from" msgstr "Dirección enviada desde" -#: src/jade/tabs/tx.jade:24 +#: src/jade/tabs/tx.jade:26 msgid "Amount sent" msgstr "Cantidad enviada" -#: src/jade/tabs/tx.jade:28 +#: src/jade/tabs/tx.jade:30 msgid "Currency sent" msgstr "Divisa enviada" -#: src/jade/tabs/tx.jade:33 +#: src/jade/tabs/tx.jade:35 msgid "Address sent to" msgstr "Dirección enviada a" -#: src/jade/tabs/tx.jade:37 +#: src/jade/tabs/tx.jade:39 msgid "Amount received" msgstr "Cantidad recibida" -#: src/jade/tabs/tx.jade:41 +#: src/jade/tabs/tx.jade:43 msgid "Currency received" msgstr "Divisa recibida" -#: src/jade/tabs/tx.jade:48 +#: src/jade/tabs/tx.jade:50 msgid "Network fee paid" msgstr "Comisión de red pagada" -#: src/jade/tabs/tx.jade:60 +#: src/jade/tabs/tx.jade:62 msgid "Ledger number" msgstr "Libro número" -#: src/jade/tabs/tx.jade:66 +#: src/jade/tabs/tx.jade:68 msgid "Address sent from:" msgstr "Dirección enviada desde:" # Sorry, we don't have an info page layout for this transaction type yet. -#: src/jade/tabs/tx.jade:70 +#: src/jade/tabs/tx.jade:72 msgid "" "Sorry, we don't have an info page layout for this transaction type yet." msgstr "Lo sentimos, todavía no tenemos un formato de página de información para este tipo de transacción." +#: src/jade/tabs/usd.jade:35 +msgid "US Dollar Deposit" +msgstr "Depósito US Dollar" + +#: src/jade/tabs/usd.jade:39 +msgid "SnapSwap US (~SnapSwap){{1}}{{2}}" +msgstr "SnapSwap US (~SnapSwap){{1}}{{2}}" + +#: src/jade/tabs/usd.jade:45 +msgid "USA" +msgstr "USA" + +#: src/jade/tabs/usd.jade:48 +msgid "$ 0.31-$ 5.00" +msgstr "$ 0.31-$ 5.00" + +#: src/jade/tabs/usd.jade:56 +msgid "" +"Ripple Trade has partnered with SnapSwap to provide easier access to USD. " +"Following this action will enable SnapSwap to hold USD on your behalf." +msgstr "Ripple Trade se ha asociado con SnapSwap para proveer facil acceso a USD. Al continuar permitira que SnapSwap guarde USD en su nombre." + +#: src/jade/tabs/usd.jade:73 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.US" +msgstr "NUEVOS CLIENTES- REGISTRARSE EN SNAPSWAP.US" + +#: src/jade/tabs/usd.jade:74 +msgid "Register and verify your account at SnapSwap US. You will need: {{1}}" +msgstr "Registrese y verifique su cuenta en SnapSwap US. Necesitara: {{1}}" + +#: src/jade/tabs/usd.jade:82 +msgid "EXISTING SNAPSWAP US CUSTOMERS" +msgstr "CLIENTES SNAPSWAP US EXISTENTES" + +#: src/jade/tabs/usd.jade:93 +msgid "Deposit instantly via selected banks" +msgstr "Deposite instantaneamente via los siguientes bancos" + +#: src/jade/tabs/usd.jade:95 +msgid "Deposit cash at Bank of America branches (3 business days)" +msgstr "Deposite dinero en oficinas de Bank of America (3 dias laborables)" + +#: src/jade/tabs/usd.jade:97 +msgid "Deposit via online bank transfer (3 business days)" +msgstr "Deposite desde su banco online (3 dias laborables)" + +#: src/jade/tabs/usd.jade:103 +msgid "Directly to your bank account (3-4 business days)" +msgstr "Directo a su cuenta bancaria (3-4 dias laborables)" + +#: src/jade/tabs/usd.jade:105 +msgid "Directly to your PayPal account (several minutes)" +msgstr "Directo a su cuenta Paypal (unos minutos)" + +#: src/jade/tabs/widgets/assetallocation.jade:3 +msgid "Asset Allocation" +msgstr "Distribucion de Bienes" + +#: src/jade/tabs/widgets/balances.jade:3 +msgid "Balances" +msgstr "Balances" + +#: src/jade/tabs/widgets/balances.jade:12 +msgid "Balance
{{ account.Balance | rpamount }} XRP" +msgstr "Balance
{{ account.Balance | rpamount }} XRP" + +#: src/jade/tabs/widgets/balances.jade:16 +msgid "Reserve" +msgstr "Reserva" + +#: src/jade/tabs/widgets/balances.jade:18 +msgid "Reserve amount" +msgstr "Cantidad de reserva" + +#: src/jade/tabs/widgets/balances.jade:18 +msgid "" +"Minimum amount of XRP required to fund your account. You cannot spend the " +"reserve." +msgstr "Cantidad mínima de XRP requerida para fundar su cuenta. No puede gastar la reserva. " + +#: src/jade/tabs/widgets/balances.jade:20 +msgid "Reserve amount
{{ account.reserve | rpamount }} XRP" +msgstr "Cantidad de reserva
{{ account.reserve | rpamount }} XRP" + +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Available amount" +msgstr "Cantidad disponible" + +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Total amount of XRP in your account minus the reserve amount." +msgstr "Cantidad total de XRP en su cuenta menos la cantidad de reserva." + +#: src/jade/tabs/widgets/balances.jade:28 +msgid "Available amount
{{ account.max_spend | rpamount }} XRP" +msgstr "Cantidad disponible
{{ account.max_spend | rpamount }} XRP" + +#: src/jade/tabs/widgets/balances.jade:35 +msgid "" +"Balance
{{ entry.total | rpamount:{precision: 30, hard_precision: true} " +"}} {{ entry.total | rpcurrency }}" +msgstr "Balance
{{ entry.total | rpamount:{precision: 30, hard_precision: true} }} {{ entry.total | rpcurrency }}" + +#: src/jade/tabs/widgets/balances.jade:43 +msgid "" +"Balance
{{ component | rpamount:{precision: 30, rel_min_precision: -2, " +"hard_precision: true} }} {{ entry.total | rpcurrency }}" +msgstr "Balance
{{ component | rpamount:{precision: 30, rel_min_precision: -2, hard_precision: true} }} {{ entry.total | rpcurrency }}" + +#: src/jade/tabs/widgets/markets.jade:3 +msgid "Markets" +msgstr "Mercados" + +#: src/jade/tabs/widgets/networth.jade:3 +msgid "Net Worth" +msgstr "Valor de Red" + +#: src/jade/tabs/widgets/networth.jade:8 +msgid "{{1:{{1:In}}}}{{2}}" +msgstr "{{1:{{1:En}}}}{{2}}" + +#: src/jade/tabs/widgets/networth.jade:14 +msgid "Estimated from latest trade price" +msgstr "Estimado por último precio de cambio." + +#: src/jade/tabs/widgets/networth.jade:23 +msgid "(excluding negative balances)" +msgstr "(excluyendo balances negativos)" + +#: src/jade/tabs/widgets/orders.jade:3 +msgid "My Orders" +msgstr "Mis Ordenes" + +#: src/jade/tabs/widgets/orders.jade:68 +msgid "trade currencies" +msgstr "cambiar divisas" + #: src/jade/tabs/xrp.jade:19 msgid "Ripple name: {{1}}{{2}}{{3}}" msgstr "Nombre Ripple: {{1}}{{2}}{{3}}" @@ -2694,7 +3656,3 @@ msgid "" "full Ripple address, and while we are working to transition to Ripple names," " some gateways may still ask for your full address." msgstr "Nombres Ripple es una novedad en Ripple! Use su nombre Ripple (~{{userCredentials.username}}) para recibir dinero. Sigue pudiendo utilizar su dirección Ripple completa, y mientras estemos trabajando con la transicion a nombres Ripple, algunas pasarelas pueden seguir pidiendo su dirección completa. " - -#: src/jade/tabs/xrp.jade:31 -msgid "Ripple address {{1}}" -msgstr "Dirección Ripple {{1}}" diff --git a/l10n/fr_FR/messages.po b/l10n/fr_FR/messages.po new file mode 100644 index 000000000..841b9462e --- /dev/null +++ b/l10n/fr_FR/messages.po @@ -0,0 +1,3660 @@ +# Generated by grunt-jade-l10n-extractor +# Translators: +# Angelblanc , 2014 +# ChartGuy , 2013-2014 +# keepx , 2014-2015 +# rcarrier , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Ripple Trade\n" +"PO-Revision-Date: 2015-05-24 19:08+0000\n" +"Last-Translator: keepx \n" +"Language-Team: French (France) (http://www.transifex.com/projects/p/ripple-trade/language/fr_FR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fr_FR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: src/jade/client/index.jade:5 src/jade/client/navbar.jade:117 +#: src/jade/tabs/trust.jade:59 src/jade/tabs/trust.jade:168 +msgid "Balance" +msgstr "Solde" + +#: src/jade/client/index.jade:7 src/jade/client/navbar.jade:119 +msgid "History" +msgstr "Historique" + +#: src/jade/client/index.jade:8 src/jade/client/navbar.jade:121 +msgid "Contacts" +msgstr "Contacts" + +#: src/jade/client/index.jade:12 src/jade/client/navbar.jade:21 +#: src/jade/tabs/contacts.jade:65 +msgid "Send" +msgstr "Envoyer" + +#: src/jade/client/index.jade:16 +msgid "Convert" +msgstr "Convertir" + +#: src/jade/client/index.jade:18 src/jade/client/navbar.jade:23 +#: src/jade/client/navbar.jade:25 src/jade/tabs/settings/navbar.jade:3 +msgid "Trade" +msgstr "Échanger" + +#: src/jade/client/index.jade:22 src/jade/client/navbar.jade:27 +#: src/jade/client/navbar.jade:133 +msgid "Fund" +msgstr "Approvisionner" + +#: src/jade/client/index.jade:24 src/jade/tabs/fund/menu.jade:29 +msgid "Gateways" +msgstr "Passerelles" + +#: src/jade/client/index.jade:29 src/jade/client/navbar.jade:107 +#: src/jade/tabs/su.jade:12 +msgid "Account" +msgstr "Compte" + +#: src/jade/client/index.jade:32 src/jade/client/navbar.jade:109 +#: src/jade/tabs/advanced.jade:19 +msgid "Settings" +msgstr "Paramètres" + +#: src/jade/client/index.jade:35 +msgid "Logout" +msgstr "Déconnexion" + +#: src/jade/client/index.jade:61 +msgid "Why Use Ripple Trade?" +msgstr "Pourquoi Utiliser Ripple Trade ?" + +#: src/jade/client/index.jade:66 +msgid "Home of XRP -" +msgstr "Berceau des XRP -" + +#: src/jade/client/index.jade:67 +msgid "the best place to buy and sell XRP" +msgstr "le meilleur endroit pour acheter et vendre des XRP" + +#: src/jade/client/index.jade:71 +msgid "Free -" +msgstr "Gratuit -" + +#: src/jade/client/index.jade:72 +msgid "no fees to sign up and use Ripple Trade" +msgstr "aucun frais pour s'inscrire et utiliser Ripple Trade" + +#: src/jade/client/index.jade:76 +msgid "No Middlemen -" +msgstr "Sans intermédiaires -" + +#: src/jade/client/index.jade:77 +msgid "" +"When you submit orders, Ripple automatically finds the best available match," +" without a clearinghouse or broker." +msgstr "Lorsque vous envoyez des ordres, Ripple détecte automatiquement la meilleure correspondance possible, sans chambre de compensation ou courtier." + +#: src/jade/client/index.jade:81 +msgid "Deposit, trade and withdraw money on Ripple via gateways." +msgstr "Déposer, échanger et retirer de l'argent sur Ripple par l'intermédiaire de passerelles." + +#: src/jade/client/index.jade:89 +msgid "Featured Ripple Gateways" +msgstr "Passerelles Ripple préférées" + +#: src/jade/client/index.jade:91 +msgid "Ripple's growing gateway network." +msgstr "Le réseau croissant de passerelles Ripple" + +#: src/jade/client/index.jade:93 src/jade/client/index.jade:96 +#: src/jade/client/index.jade:99 src/jade/client/index.jade:102 +#: src/jade/client/index.jade:105 src/jade/client/index.jade:108 +#: src/jade/client/index.jade:111 src/jade/client/index.jade:114 +#: src/jade/client/index.jade:117 src/jade/tabs/banner/unfunded.jade:6 +#: src/jade/tabs/brl.jade:53 src/jade/tabs/brl.jade:57 +#: src/jade/tabs/brl.jade:93 src/jade/tabs/btc.jade:46 +#: src/jade/tabs/eur.jade:50 src/jade/tabs/eur.jade:54 +#: src/jade/tabs/eur.jade:86 src/jade/tabs/eur.jade:93 +#: src/jade/tabs/gold.jade:51 src/jade/tabs/jpy.jade:55 +#: src/jade/tabs/jpy.jade:91 src/jade/tabs/jpy.jade:97 +#: src/jade/tabs/mxn.jade:53 src/jade/tabs/send.jade:63 +#: src/jade/tabs/trade.jade:320 src/jade/tabs/usd.jade:51 +#: src/jade/tabs/usd.jade:83 src/jade/tabs/usd.jade:90 +#: src/jade/tabs/usd.jade:100 src/jade/tabs/widgets/orders.jade:31 +msgid "{{1}}" +msgstr "{{1}}" + +#: src/jade/client/index.jade:123 +msgid "Version: {{version}}" +msgstr "Version: {{version}}" + +#: src/jade/client/index.jade:128 +msgid "Terms of Use" +msgstr "Conditions d'utilisation" + +#: src/jade/client/index.jade:129 +msgid "Privacy Policy" +msgstr "Politique de Confidentialité" + +#: src/jade/client/index.jade:130 +msgid "Support" +msgstr "Support" + +#: src/jade/client/index.jade:131 +msgid "Bug reports" +msgstr "Rapport de bugs" + +#: src/jade/client/index.jade:138 +msgid "more..." +msgstr "plus..." + +#: src/jade/client/index.jade:142 +msgid "Select a language" +msgstr "Sélectionnez une langue" + +#: src/jade/client/navbar.jade:2 +msgid "" +"You are viewing an account in {{1}} mode. While in this mode, you can view " +"publicly available data, but you cannot initiate any transactions. Click " +"{{2}} to exit." +msgstr "Vous visualisez un compte en mode {{1}}. Dans ce mode, vous pouvez afficher les données publiquement disponibles, mais vous ne pouvez pas déclencher de transactions. Cliquez sur {{2}} pour quitter." + +#: src/jade/client/navbar.jade:8 +msgid "" +"Warning: this account has over 200 trust lines, so the displayed account " +"balance may not be accurate." +msgstr "Avertissement: ce compte a plus de 200 lignes de confiance, de sorte que le solde du compte affiché peut ne pas être exact." + +#: src/jade/client/navbar.jade:19 +msgid "Overview" +msgstr "Vue d'ensemble" + +#: src/jade/client/navbar.jade:49 src/jade/tabs/account/private.jade:7 +#: src/jade/tabs/account/private.jade:16 src/jade/tabs/account/public.jade:45 +#: src/jade/tabs/apps.jade:8 src/jade/tabs/btc.jade:72 +#: src/jade/tabs/exchange.jade:9 src/jade/tabs/kyc.jade:45 +#: src/jade/tabs/recover.jade:26 src/jade/tabs/security.jade:147 +#: src/jade/tabs/su.jade:8 src/jade/tabs/trust.jade:9 +#: src/jade/tabs/trust.jade:139 +msgid "Loading..." +msgstr "Chargement..." + +#: src/jade/client/navbar.jade:50 +msgid "There are no recent notifications." +msgstr "Il n'y a pas de notifications récentes." + +#: src/jade/client/navbar.jade:54 +msgid "You sent {{1}} to {{2}}" +msgstr "Vous avez envoyé {{1}} à {{2}}" + +#: src/jade/client/navbar.jade:60 +msgid "{{1}} sent you {{2}}" +msgstr "{{1}} vous a envoyé {{2}}" + +#: src/jade/client/navbar.jade:68 +msgid "{{entry.transaction.counterparty | rpcontactname}} now trusts you for" +msgstr "{{entry.transaction.counterparty | rpcontactname}} vous fait maintenant confiance pour" + +#: src/jade/client/navbar.jade:74 src/jade/notification/account.jade:25 +#: src/jade/tabs/history.jade:115 src/jade/tabs/history/effects.jade:63 +msgid "You have now connected to the gateway {{1}}{{2: for }}{{3}}." +msgstr "Vous êtes maintenant connecté à la passerelle {{1}}{{2: pour }}{{3}}." + +#: src/jade/client/navbar.jade:85 +msgid "You cancelled an order accepting {{1}} for {{2}}" +msgstr "Vous avez annulé un ordre acceptant {{1}} pour {{2}}" + +#: src/jade/client/navbar.jade:92 src/jade/tabs/history.jade:138 +msgid "Account details have been changed" +msgstr "Les détails du compte ont été changés" + +#: src/jade/client/navbar.jade:95 src/jade/tabs/history.jade:141 +#: src/jade/tabs/trust.jade:171 +msgid "Rippling" +msgstr "Rippling" + +#: src/jade/client/navbar.jade:97 src/jade/tabs/history.jade:143 +msgid "Failed transaction" +msgstr "Transaction qui a échoué" + +#: src/jade/client/navbar.jade:103 +msgid "View Full History" +msgstr "Afficher l'historique complet" + +#: src/jade/client/navbar.jade:111 +msgid "Log Out" +msgstr "Déconnexion" + +#: src/jade/client/navbar.jade:126 +msgid "Simple" +msgstr "Simple" + +#: src/jade/client/navbar.jade:128 src/jade/tabs/settings/navbar.jade:4 +msgid "Advanced" +msgstr "Avancé" + +#: src/jade/client/navbar.jade:135 +msgid "Withdraw" +msgstr "Retirer" + +#: src/jade/client/navbar.jade:137 +msgid "" +"Your account was successfully recovered and encrypted with the new password " +"you provided!" +msgstr "Votre compte a été récupéré avec succès et chiffré avec le nouveau mot de passe que vous avez fourni!" + +#: src/jade/client/navbar.jade:138 +msgid "dismiss" +msgstr "rejeter" + +#: src/jade/directives/addresspopover.jade:3 +msgid "Ripple address {{ identity }}" +msgstr "Adresse Ripple {{ identity }}" + +#: src/jade/directives/addresspopover.jade:8 src/jade/tabs/tx.jade:13 +msgid "Show in graph" +msgstr "Montrer dans le graphique" + +#: src/jade/directives/transactionerror.jade:8 +msgid "Connecting gateway to your account..." +msgstr "Connexion de la passerelle à votre compte..." + +#: src/jade/directives/transactionerror.jade:10 +msgid "Gateway connected." +msgstr "Passerelle connectée." + +#: src/jade/directives/transactionerror.jade:12 +msgid "There was a problem connecting to the gateway. Please try again later." +msgstr "Il y a eu un problème lors de la connexion de la passerelle. Veuillez réessayer ultérieurement." + +#: src/jade/directives/transactionerror.jade:14 +#: src/jade/directives/transactionerror.jade:73 +#: src/jade/directives/transactionerror.jade:158 +#: src/jade/messages/sendconvert/confirmation.jade:13 +msgid "Error code: {{engine_result}} - {{engine_result_message}}" +msgstr "Code d'erreur: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:19 +#: src/jade/directives/transactionerror.jade:23 +#: src/jade/directives/transactionerror.jade:28 +#: src/jade/directives/transactionerror.jade:33 +#: src/jade/directives/transactionerror.jade:45 +#: src/jade/directives/transactionerror.jade:52 +#: src/jade/directives/transactionerror.jade:156 +#: src/jade/directives/transactionerror.jade:163 +#: src/jade/directives/transactionerror.jade:167 +#: src/jade/directives/transactionerror.jade:172 +#: src/jade/directives/transactionerror.jade:177 +#: src/jade/directives/transactionerror.jade:186 +#: src/jade/directives/transactionerror.jade:193 +msgid "Request failed" +msgstr "La demande a échoué" + +#: src/jade/directives/transactionerror.jade:21 +#: src/jade/directives/transactionerror.jade:165 +msgid "Your request timed out, please try again." +msgstr "Votre demande a expiré, veuillez réessayer." + +#: src/jade/directives/transactionerror.jade:25 +#: src/jade/directives/transactionerror.jade:84 +#: src/jade/directives/transactionerror.jade:169 +#: src/jade/messages/sendconvert/confirmation.jade:18 +msgid "Error code: Destination tag needed [tefDST_TAG_NEEDED]." +msgstr "Code d'erreur: Étiquette de destination nécessaire [tefDST_TAG_NEEDED]." + +#: src/jade/directives/transactionerror.jade:30 +#: src/jade/directives/transactionerror.jade:174 +msgid "" +"Error code: This request failed because it exceeded the maximum network fee," +" please try again later [telINSUF_FEE_P]." +msgstr "Code d'erreur: Cette demande a échoué parce qu'elle a dépassé les frais de réseau maximum, veuillez réessayer ultérieurement [telINSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:35 +msgid "" +"Error code: You have no gateway connected in this currency [terNO_LINE]." +msgstr "Code d'erreur: Vous n'avez pas de passerelle connectée dans cette devise [terNO_LINE]." + +#: src/jade/directives/transactionerror.jade:37 +msgid "" +"Error code: Insufficient reserve to connect gateway [tecINSUF_RESERVE_LINE]." +msgstr "Code d'erreur: Réserve insuffisante pour connecter la passerelle [tecINSUF_RESERVE_LINE]." + +#: src/jade/directives/transactionerror.jade:39 +msgid "" +"Error code: You have an insufficient reserve amount to connect a gateway " +"[tecNO_LINE_INSUF_RESERVE]. {{1}}" +msgstr "Code d'erreur: Vous avez un montant de réserve insuffisant pour connecter une passerelle [tecNO_LINE_INSUF_RESERVE]. {{1}}" + +#: src/jade/directives/transactionerror.jade:41 src/jade/tabs/fund.jade:34 +#: src/jade/tabs/send.jade:110 src/jade/tabs/trust.jade:74 +msgid "More information" +msgstr "Plus d'informations" + +#: src/jade/directives/transactionerror.jade:42 +#: src/jade/directives/transactionerror.jade:98 +#: src/jade/directives/transactionerror.jade:135 +#: src/jade/directives/transactionerror.jade:183 +#: src/jade/messages/sendconvert/confirmation.jade:27 +msgid "Error: {{engine_result_message}}" +msgstr "Erreur: {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:47 +#: src/jade/directives/transactionerror.jade:103 +#: src/jade/directives/transactionerror.jade:188 +#: src/jade/messages/sendconvert/confirmation.jade:32 +msgid "Error code: You have no trust line in this currency [terNO_LINE]." +msgstr "Code d'erreur: Vous n'avez pas de ligne de confiance dans cette devise [terNO_LINE]." + +#: src/jade/directives/transactionerror.jade:49 +#: src/jade/directives/transactionerror.jade:190 +msgid "Your request failed: {{engine_result}} - {{engine_result_message}}" +msgstr "Votre demande a échoué: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:54 +#: src/jade/directives/transactionerror.jade:195 +msgid "Error code: request could not be submitted [tejLost]." +msgstr "Code d'erreur: la demande n'a pas pu être envoyée [tejLost]." + +#: src/jade/directives/transactionerror.jade:56 +#: src/jade/directives/transactionerror.jade:197 src/jade/tabs/trust.jade:36 +msgid "" +"This request failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "Cette demande a échoué car les frais de réseau actuels sont plus élevés que la limite de votre compte. Vous pouvez régler vos frais de réseau maximum dans Paramètres > Avancé, ou réessayer plus tard.
Code d'erreur: Frais Réseau dépassés [tejMaxFeeExceeded]." + +#: src/jade/directives/transactionerror.jade:59 +#: src/jade/directives/transactionerror.jade:200 +msgid "" +"Your request could not be submitted: {{engine_result}} - " +"{{engine_result_message}}" +msgstr "Votre demande n'a pas pu être envoyée: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:67 +msgid "Payment pending" +msgstr "Paiement en attente" + +#: src/jade/directives/transactionerror.jade:69 +msgid "Payment successful" +msgstr "Paiement réussi" + +#: src/jade/directives/transactionerror.jade:71 +#: src/jade/directives/transactionerror.jade:82 +#: src/jade/directives/transactionerror.jade:87 +#: src/jade/directives/transactionerror.jade:92 +#: src/jade/directives/transactionerror.jade:101 +#: src/jade/directives/transactionerror.jade:108 +msgid "Payment failed" +msgstr "Le paiement a échoué" + +#: src/jade/directives/transactionerror.jade:78 +msgid "Payment failed [tefMAX_LEDGER]." +msgstr "Le paiement a échoué [tefMAX_LEDGER]." + +#: src/jade/directives/transactionerror.jade:80 +msgid "Your payment timed out, please try again." +msgstr "Votre paiement a expiré, veuillez essayer à nouveau." + +#: src/jade/directives/transactionerror.jade:89 +#: src/jade/messages/sendconvert/confirmation.jade:39 +msgid "" +"Error code: This transaction failed because it exceeded the maximum network " +"fee, please try again later [telINSUF_FEE_P]." +msgstr "Code d'erreur: Cette transaction a échoué parce qu'elle a dépassé les frais de réseau maximum, veuillez réessayer ultérieurement [telINSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:94 +#: src/jade/directives/transactionerror.jade:179 +msgid "Error code: No destination [tecNO_DST]." +msgstr "Code d'erreur: Aucune destination [tecNO_DST]." + +#: src/jade/directives/transactionerror.jade:96 +#: src/jade/directives/transactionerror.jade:181 +#: src/jade/messages/sendconvert/confirmation.jade:25 +msgid "" +"Error code: Insufficient XRP sent to destination [tecNO_DST_INSUF_XRP]." +msgstr "Code d'erreur: Pas assez de XRP envoyés à destination [tecNO_DST_INSUF_XRP]." + +#: src/jade/directives/transactionerror.jade:105 +msgid "Your payment failed: {{engine_result}} - {{engine_result_message}}" +msgstr "Votre paiement a échoué: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:110 +msgid "Error code: Transaction could not be submitted [tejLost]." +msgstr "Code d'erreur: La transaction n'a pas pu être envoyée [tejLost]." + +#: src/jade/directives/transactionerror.jade:112 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "Cette transaction a échoué car les frais de réseau actuels sont plus élevés que la limite de votre compte. Vous pouvez régler vos frais de réseau maximum dans Paramètres > Avancé, ou réessayer plus tard.
Code d'erreur: Frais Réseau dépassés [tejMaxFeeExceeded]." + +#: src/jade/directives/transactionerror.jade:115 +msgid "" +"Your payment could not be submitted: {{engine_result}} - " +"{{engine_result_message}}" +msgstr "Votre paiement n'a pas pu être envoyé: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:121 +msgid "Request is malformed." +msgstr "La demande est malformée." + +#: src/jade/directives/transactionerror.jade:122 +msgid "" +"Your request is invalid, reason: {{engine_result_message}} - " +"{{engine_result_message}}" +msgstr "Votre demande est invalide, raison: {{engine_result_message}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:125 +#: src/jade/directives/transactionerror.jade:142 +msgid "Transaction failed." +msgstr "La transaction a échoué." + +#: src/jade/directives/transactionerror.jade:127 +msgid "You do not have enough funds to create this order [tecUNFUNDED_ORDER]." +msgstr "Vous n'avez pas suffisamment de fonds pour créer cet ordre [tecUNFUNDED_ORDER]." + +#: src/jade/directives/transactionerror.jade:129 +msgid "" +"Insufficient reserve amount to submit an order [tecINSUF_RESERVE_OFFER]." +msgstr "Montant de la réserve insuffisant pour soumettre un ordre [tecINSUF_RESERVE_OFFER]." + +#: src/jade/directives/transactionerror.jade:131 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]. {{1}}" +msgstr "Cette transaction a échoué car les frais de réseau actuels sont plus élevés que la limite de votre compte. Vous pouvez régler vos frais de réseau maximum dans Paramètres > Avancé, ou réessayer plus tard.
Code d'erreur: Frais Réseau dépassés [tejMaxFeeExceeded]. {{1}}" + +#: src/jade/directives/transactionerror.jade:134 +msgid "More information." +msgstr "Plus d'informations." + +#: src/jade/directives/transactionerror.jade:138 +msgid "Trade failed." +msgstr "L'échange a échoué." + +#: src/jade/directives/transactionerror.jade:140 +msgid "Trade failed, reason: {{engine_result_message}}" +msgstr "Échec de l'échange, raison: {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:144 +msgid "" +"The particular server you sent the transaction to was too busy to forward or" +" process your transaction at the fee you included in it [telINSUF_FEE_P]." +msgstr "Le serveur concerné auquel vous avez envoyé la transaction était trop occupé pour transmettre ou traiter votre transaction au niveau de frais que vous avez inclus [telINSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:152 +msgid "Request pending" +msgstr "Demande en attente" + +#: src/jade/directives/transactionerror.jade:154 +msgid "Request successful" +msgstr "Demande réussie" + +#: src/jade/messages/sendconvert/confirmation.jade:4 +msgid "Transaction pending." +msgstr "Transaction en attente." + +#: src/jade/messages/sendconvert/confirmation.jade:6 +msgid "Transaction successful" +msgstr "Transaction réussie" + +#: src/jade/messages/sendconvert/confirmation.jade:8 +#: src/jade/messages/sendconvert/confirmation.jade:11 +#: src/jade/messages/sendconvert/confirmation.jade:16 +#: src/jade/messages/sendconvert/confirmation.jade:21 +#: src/jade/messages/sendconvert/confirmation.jade:30 +#: src/jade/messages/sendconvert/confirmation.jade:37 +#: src/jade/messages/sendconvert/localerror.jade:5 +#: src/jade/messages/sendconvert/localerror.jade:8 +#: src/jade/messages/sendconvert/localerror.jade:11 +#: src/jade/messages/sendconvert/localerror.jade:14 +msgid "Transaction failed" +msgstr "La transaction a échoué" + +#: src/jade/messages/sendconvert/confirmation.jade:9 src/jade/tabs/brl.jade:25 +#: src/jade/tabs/btc.jade:22 src/jade/tabs/eur.jade:25 +#: src/jade/tabs/gold.jade:25 src/jade/tabs/jpy.jade:25 +#: src/jade/tabs/mxn.jade:25 src/jade/tabs/trust.jade:43 +#: src/jade/tabs/usd.jade:25 +msgid "Please try again later." +msgstr "Veuillez réessayer ultérieurement." + +#: src/jade/messages/sendconvert/confirmation.jade:23 +msgid "Error code: The destination account does not exist [tecNO_DST]." +msgstr "Code d'erreur: Le compte de destination n'existe pas [tecNO_DST]." + +#: src/jade/messages/sendconvert/confirmation.jade:34 +msgid "Your transaction failed: {{engine_result_message}}" +msgstr "Votre transaction a échoué: {{engine_result_message}}" + +#: src/jade/messages/sendconvert/localerror.jade:6 +msgid "" +"Error code: The account you're trying to send to does not exist " +"[noDest]." +msgstr "Code d'erreur: Le compte auquel vous essayez d'envoyer n'existe pas [noDest]." + +#: src/jade/messages/sendconvert/localerror.jade:9 +msgid "" +"Error code: Ripple was unable to find a path between you and the destination" +" account [noPath]." +msgstr "Code d'erreur: Ripple n'a pas pu trouver de chemin entre vous et le compte destinataire. [noPath]." + +#: src/jade/messages/sendconvert/localerror.jade:12 +msgid "" +"Error code: This transaction failed because it exceeded the maximum network " +"fee. [maxfeeExceeded]." +msgstr "Code d'erreur: Cette transaction a échoué parce qu'elle a dépassé les frais de réseau maximum. [maxfeeExceeded]." + +#: src/jade/messages/sendconvert/localerror.jade:15 +msgid "" +"Error code: The transaction was rejected by the Ripple network " +"[invalidTransaction]." +msgstr "Code d'erreur: la transaction a été rejetée par le réseau Ripple [invalidTransaction]." + +#: src/jade/messages/sendconvert/localerror.jade:17 +msgid "Account unlock failed" +msgstr "Le déverrouillage du compte a échoué" + +#: src/jade/messages/sendconvert/localerror.jade:18 +#: src/jade/tabs/trust.jade:40 +msgid "Your account could not be unlocked. Please try again later." +msgstr "Votre compte n'a pas pu être déverrouillé. Veuillez réessayer ultérieurement." + +#: src/jade/messages/sendconvert/localerror.jade:20 +msgid "" +"Sorry, an error occurred while submitting your transaction.Make sure you are" +" connected to the Internet and try again later." +msgstr "Désolé, une erreur s'est produite lors de l'envoi de votre transaction.Assurez-vous que vous êtes connecté à Internet et réessayez plus tard." + +#: src/jade/messages/sendconvert/localerror.jade:22 +msgid "" +"Before trying again, please ensure that the transaction has not been " +"executed already." +msgstr "Avant d'essayer à nouveau, veuillez vous assurer que la transaction n'a pas déjà été exécutée." + +#: src/jade/messages/sendconvert/waiting.jade:5 +msgid "Sending transaction to the Ripple network" +msgstr "Envoi de la transaction au réseau Ripple" + +#: src/jade/notification/account.jade:3 +msgid "You sent {{1}} {{2}} to {{3}}" +msgstr "Vous avez envoyé {{1}} {{2}} à {{3}}" + +#: src/jade/notification/account.jade:11 +msgid "{{tx.counterparty | rpcontactname}} sent you" +msgstr "{{tx.counterparty | rpcontactname}} vous a envoyé" + +#: src/jade/notification/account.jade:18 +msgid "{{tx.counterparty | rpcontactname}} now trusts you for" +msgstr "{{tx.counterparty | rpcontactname}} vous fait maintenant confiance pour" + +#: src/jade/popup/modifyOrderError.jade:2 +msgid "Modify Order Error" +msgstr "Erreur Modification Ordre" + +#: src/jade/popup/modifyOrderError.jade:4 +msgid "Sorry, your order could not be modified." +msgstr "Désolé, votre ordre n'a pas pu être modifié." + +#: src/jade/popup/modifyOrderError.jade:5 +msgid "" +"Your original order was cancelled but the modified order was not placed. " +"
" +msgstr "Votre ordre initial a été annulé mais l'ordre modifié n'a pas été placé.
" + +#: src/jade/popup/modifyOrderError.jade:6 +msgid "" +"The quantity of your order changed by {{order.qtyChangeAfterCancel | " +"rpamount}} before the order could be modified.

" +msgstr "La quantité de votre ordre a changé de {{order.qtyChangeAfterCancel | rpamount}} avant que l'ordre puisse être modifié.

" + +#: src/jade/popup/modifyOrderError.jade:7 +msgid "" +"To safeguard against the possibility of overfills a new order has not been " +"placed.
" +msgstr "Pour protéger contre la possibilité de dépassement un nouvel ordre n'a pas été placé.
" + +#: src/jade/popup/modifyOrderError.jade:8 +msgid "" +"Please check your balance and history before placing the new order manually." +"
" +msgstr "Veuillez vérifier votre solde et historique avant de placer le nouvel ordre manuellement.
" + +#: src/jade/popup/modifyOrderError.jade:10 src/jade/popup/unlock.jade:17 +msgid "Close" +msgstr "Fermer" + +#: src/jade/popup/unlock.jade:2 +msgid "Unlock account" +msgstr "Déverrouiller le compte" + +#: src/jade/popup/unlock.jade:5 src/jade/tabs/login/form.jade:8 +#: src/jade/tabs/recover.jade:38 src/jade/tabs/register.jade:58 +#: src/jade/tabs/security.jade:12 +msgid "Password" +msgstr "Mot de passe" + +#: src/jade/popup/unlock.jade:8 +msgid "Please enter your password to show your secret key." +msgstr "Veuillez entrer votre mot de passe pour afficher votre clé secrète." + +#: src/jade/popup/unlock.jade:9 src/jade/tabs/send.jade:205 +msgid "Please enter your password to confirm this transaction." +msgstr "Veuillez entrer votre mot de passe pour confirmer cette transaction." + +#: src/jade/popup/unlock.jade:10 +msgid "This password is incorrect, please try again." +msgstr "Ce mot de passe est incorrect, veuillez réessayer." + +#: src/jade/popup/unlock.jade:13 +msgid "Confirming password" +msgstr "Confirmation du mot de passe" + +#: src/jade/popup/unlock.jade:16 src/jade/tabs/account/public.jade:44 +#: src/jade/tabs/security.jade:146 +msgid "Submit" +msgstr "Envoyer" + +#: src/jade/tabs/2fa/form.jade:3 +msgid "Country Code" +msgstr "Indicatif du Pays" + +#: src/jade/tabs/2fa/form.jade:6 src/jade/tabs/kyc.jade:162 +msgid "Phone Number" +msgstr "Numéro de téléphone" + +#: src/jade/tabs/_usd.jade:6 src/jade/tabs/apps.jade:5 +#: src/jade/tabs/balance.jade:5 src/jade/tabs/brl.jade:6 +#: src/jade/tabs/btc.jade:9 src/jade/tabs/eur.jade:6 +#: src/jade/tabs/exchange.jade:6 src/jade/tabs/fund.jade:6 +#: src/jade/tabs/gold.jade:6 src/jade/tabs/history.jade:6 +#: src/jade/tabs/jpy.jade:6 src/jade/tabs/kyc.jade:6 src/jade/tabs/mxn.jade:6 +#: src/jade/tabs/send.jade:6 src/jade/tabs/su.jade:5 +#: src/jade/tabs/trade.jade:7 src/jade/tabs/trust.jade:6 +#: src/jade/tabs/usd.jade:6 src/jade/tabs/withdraw.jade:6 +#: src/jade/tabs/xrp.jade:6 +msgid "You have to be online to see this screen" +msgstr "Vous devez être connecté pour visualiser cette page" + +#: src/jade/tabs/_usd.jade:17 +msgid "USD instant deposit" +msgstr "Dépôt instantané USD" + +#: src/jade/tabs/_usd.jade:19 src/jade/tabs/_usd.jade:21 +msgid "Step 1 (Amount)" +msgstr "Étape 1 (Montant)" + +#: src/jade/tabs/_usd.jade:22 +msgid "Step 2 (Confirmation)" +msgstr "Étape 2 (Confirmation)" + +#: src/jade/tabs/_usd.jade:23 +msgid "Step 3 (Complete deposit)" +msgstr "Étape 3 (Finaliser le dépôt)" + +#: src/jade/tabs/_usd.jade:26 +msgid "STEP 1: AMOUNT" +msgstr "ÉTAPE 1: MONTANT" + +#: src/jade/tabs/_usd.jade:28 +msgid "STEP 2: CONFIRMATION" +msgstr "ÉTAPE 2: CONFIRMATION" + +#: src/jade/tabs/_usd.jade:30 +msgid "STEP 3: COMPLETE DEPOSIT" +msgstr "ÉTAPE 3: FINALISER LE DÉPÔT" + +#: src/jade/tabs/_usd.jade:34 +msgid "" +"Success! You've completed your USD deposit. Your funds should be available " +"within a few minutes." +msgstr "Succès! Vous avez effectué votre dépôt USD. Vos fonds devraient être disponibles d'ici quelques minutes." + +#: src/jade/tabs/_usd.jade:36 +msgid "You cancelled your deposit." +msgstr "Vous avez annulé votre dépôt." + +#: src/jade/tabs/_usd.jade:38 +msgid "" +"Your deposit failed. Your bank account was not charged. Please contact " +"{{1}}." +msgstr "Votre dépôt a échoué. Votre compte bancaire n'a pas été débité. Merci de contacter {{1}}." + +#: src/jade/tabs/_usd.jade:49 src/jade/tabs/_usd.jade:91 +#: src/jade/tabs/fund.jade:41 src/jade/tabs/history.jade:172 +#: src/jade/tabs/trust.jade:89 +msgid "Amount" +msgstr "Montant" + +#: src/jade/tabs/_usd.jade:59 src/jade/tabs/_usd.jade:62 +msgid "Select your bank" +msgstr "Sélectionnez votre banque" + +#: src/jade/tabs/_usd.jade:77 +msgid "" +"Ripple Trade has partnered with SnapSwap to make USD deposits easier. By " +"continuing, you agree to SnapSwap's {{1}}To contact support, email {{2}}." +msgstr "Ripple Trade a établi un partenariat avec SnapSwap pour faciliter les dépôts USD. En continuant, vous acceptez les {{1}} de SnapSwap. Pour contacter le support, email {{2}}." + +#: src/jade/tabs/_usd.jade:93 src/jade/tabs/history.jade:178 +msgid "Fee" +msgstr "Frais" + +#: src/jade/tabs/_usd.jade:95 +msgid "Total" +msgstr "Total" + +#: src/jade/tabs/_usd.jade:98 +msgid "Calculating..." +msgstr "Calcul en cours..." + +#: src/jade/tabs/_usd.jade:109 src/jade/tabs/register.jade:126 +#: src/jade/tabs/register.jade:133 +msgid "Back" +msgstr "Retour" + +#: src/jade/tabs/_usd.jade:111 src/jade/tabs/btc.jade:73 +#: src/jade/tabs/exchange.jade:111 src/jade/tabs/send.jade:213 +#: src/jade/tabs/trade.jade:67 src/jade/tabs/trade.jade:77 +#: src/jade/tabs/trade.jade:248 src/jade/tabs/trade.jade:407 +#: src/jade/tabs/trust.jade:140 +msgid "Confirm" +msgstr "Confirmer" + +#: src/jade/tabs/account/navbar.jade:2 +msgid "Public Information" +msgstr "Informations publiques" + +#: src/jade/tabs/account/private.jade:1 +msgid "Profile Information" +msgstr "Informations sur le profil" + +#: src/jade/tabs/account/private.jade:3 +msgid "Identity Information" +msgstr "Informations sur l'identité" + +#: src/jade/tabs/account/private.jade:8 src/jade/tabs/account/private.jade:17 +msgid "Completed" +msgstr "Terminé" + +#: src/jade/tabs/account/private.jade:9 src/jade/tabs/account/private.jade:18 +msgid "Incomplete" +msgstr "Incomplet" + +#: src/jade/tabs/account/private.jade:10 src/jade/tabs/account/private.jade:19 +msgid "Complete your profile" +msgstr "Complétez votre profil" + +#: src/jade/tabs/account/private.jade:12 +msgid "Identity Questions" +msgstr "Questions sur l'identité" + +#: src/jade/tabs/account/public.jade:1 +msgid "Changing your Ripple name..." +msgstr "Modification de votre nom Ripple..." + +#: src/jade/tabs/account/public.jade:2 +msgid "Your Ripple name has been changed successfully." +msgstr "Votre nom Ripple a été changé avec succès." + +#: src/jade/tabs/account/public.jade:3 +msgid "Account settings" +msgstr "Paramètres de compte" + +#: src/jade/tabs/account/public.jade:5 src/jade/tabs/fund/menu.jade:2 +#: src/jade/tabs/login/form.jade:3 +msgid "Ripple name" +msgstr "Nom Ripple" + +#: src/jade/tabs/account/public.jade:9 src/jade/tabs/advanced.jade:27 +#: src/jade/tabs/advanced.jade:44 src/jade/tabs/advanced.jade:63 +#: src/jade/tabs/advanced.jade:86 src/jade/tabs/advanced.jade:134 +#: src/jade/tabs/contacts.jade:61 src/jade/tabs/security.jade:120 +#: src/jade/tabs/security.jade:180 src/jade/tabs/trust.jade:191 +#: src/jade/tabs/trust.jade:193 +msgid "edit" +msgstr "éditer" + +#: src/jade/tabs/account/public.jade:12 +msgid "New Ripple name" +msgstr "Nouveau nom Ripple" + +#: src/jade/tabs/account/public.jade:17 src/jade/tabs/register.jade:35 +#: src/jade/tabs/widgets/balances.jade:24 +msgid "Available" +msgstr "Disponible" + +#: src/jade/tabs/account/public.jade:20 src/jade/tabs/register.jade:39 +msgid "Already taken!" +msgstr "Déjà pris!" + +#: src/jade/tabs/account/public.jade:21 +msgid "Reserved for {{usernameReservedFor}}{{1}}{{2}}" +msgstr "Réservé pour {{usernameReservedFor}}{{1}}{{2}}" + +#: src/jade/tabs/account/public.jade:24 src/jade/tabs/register.jade:45 +msgid "Must be at least 2 characters" +msgstr "Doit être d'au moins 2 caractères" + +#: src/jade/tabs/account/public.jade:25 src/jade/tabs/register.jade:47 +msgid "Must be at most 20 characters" +msgstr "Doit être au plus de 20 caractères" + +#: src/jade/tabs/account/public.jade:26 +msgid "Only a-z, 0-9 and hyphen (-)" +msgstr "Seulement a-z, 0-9 et tiret (-)" + +#: src/jade/tabs/account/public.jade:27 src/jade/tabs/register.jade:51 +msgid "Cannot start with hyphen (-)" +msgstr "Ne peut pas commencer par un tiret (-)" + +#: src/jade/tabs/account/public.jade:28 src/jade/tabs/register.jade:53 +msgid "Cannot end with hyphen (-)" +msgstr "Ne peut pas se terminer par un tiret (-)" + +#: src/jade/tabs/account/public.jade:29 +msgid "Cannot bundle hyphens (--)" +msgstr "Vous ne pouvez pas regrouper des tirets (--)" + +#: src/jade/tabs/account/public.jade:30 src/jade/tabs/register.jade:56 +msgid "Checking..." +msgstr "Vérification..." + +#: src/jade/tabs/account/public.jade:32 src/jade/tabs/security.jade:126 +msgid "Current password" +msgstr "Mot de passe actuel" + +#: src/jade/tabs/account/public.jade:35 src/jade/tabs/security.jade:18 +#: src/jade/tabs/security.jade:23 +msgid "Entered password is wrong." +msgstr "Le mot de passe entré est erroné." + +#: src/jade/tabs/account/public.jade:37 +msgid "Your Ripple name has been changed. Please login again." +msgstr "Votre nom de Ripple a été changé. Veuillez vous connecter à nouveau." + +#: src/jade/tabs/account/public.jade:39 +msgid "Couldn't change your Ripple name, please try again later." +msgstr "Impossible de changer votre nom Ripple, veuillez réessayer ultérieurement." + +#: src/jade/tabs/account/public.jade:47 src/jade/tabs/advanced.jade:36 +#: src/jade/tabs/advanced.jade:53 src/jade/tabs/advanced.jade:77 +#: src/jade/tabs/advanced.jade:94 src/jade/tabs/advanced.jade:124 +#: src/jade/tabs/btc.jade:74 src/jade/tabs/contacts.jade:50 +#: src/jade/tabs/contacts.jade:93 src/jade/tabs/exchange.jade:113 +#: src/jade/tabs/exchange.jade:126 src/jade/tabs/kyc.jade:116 +#: src/jade/tabs/kyc.jade:131 src/jade/tabs/kyc.jade:156 +#: src/jade/tabs/kyc.jade:157 src/jade/tabs/kyc.jade:186 +#: src/jade/tabs/login/form.jade:26 src/jade/tabs/security.jade:79 +#: src/jade/tabs/security.jade:112 src/jade/tabs/security.jade:149 +#: src/jade/tabs/send.jade:215 src/jade/tabs/send.jade:227 +#: src/jade/tabs/send.jade:252 src/jade/tabs/send.jade:286 +#: src/jade/tabs/trade.jade:55 src/jade/tabs/trust.jade:141 +#: src/jade/tabs/trust.jade:143 src/jade/tabs/trust.jade:213 +#: src/jade/tabs/trust.jade:251 +msgid "cancel" +msgstr "annuler" + +#: src/jade/tabs/account/public.jade:49 +msgid "Ripple address" +msgstr "Adresse Ripple" + +#: src/jade/tabs/advanced.jade:8 +msgid "Your blob vault has been changed successfully." +msgstr "Votre blob vault a été changé avec succès." + +#: src/jade/tabs/advanced.jade:9 +msgid "Your bitcoin bridge has been changed successfully." +msgstr "Votre pont bitcoin a été changé avec succès." + +#: src/jade/tabs/advanced.jade:10 +msgid "Trustline advanced settings has been changed successfully." +msgstr "Paramètres avancés de confiance changé avec succès." + +#: src/jade/tabs/advanced.jade:11 +msgid "Maximum network fee has been changed successfully." +msgstr "Les frais de réseau maximum ont été changés avec succès." + +#: src/jade/tabs/advanced.jade:12 +msgid "A new server has been successfully added." +msgstr "Un nouveau serveur a été ajouté avec succès." + +#: src/jade/tabs/advanced.jade:13 +msgid "A server has been successfully removed." +msgstr "Un serveur a été supprimé avec succès." + +#: src/jade/tabs/advanced.jade:14 +msgid "A server has been changed successfully." +msgstr "Un serveur a été modifié avec succès." + +#: src/jade/tabs/advanced.jade:21 +msgid "Blob vault" +msgstr "Blob vault" + +#: src/jade/tabs/advanced.jade:32 src/jade/tabs/advanced.jade:49 +#: src/jade/tabs/advanced.jade:73 src/jade/tabs/advanced.jade:92 +#: src/jade/tabs/advanced.jade:120 src/jade/tabs/contacts.jade:88 +#: src/jade/tabs/fund.jade:65 src/jade/tabs/security.jade:190 +#: src/jade/tabs/send.jade:251 src/jade/tabs/send.jade:284 +#: src/jade/tabs/trust.jade:119 src/jade/tabs/trust.jade:232 +msgid "Save" +msgstr "Sauvegarder" + +#: src/jade/tabs/advanced.jade:34 src/jade/tabs/advanced.jade:51 +#: src/jade/tabs/advanced.jade:75 src/jade/tabs/advanced.jade:122 +#: src/jade/tabs/contacts.jade:91 src/jade/tabs/security.jade:198 +msgid "Delete" +msgstr "Supprimer" + +#: src/jade/tabs/advanced.jade:38 +msgid "Bitcoin bridge" +msgstr "Pont Bitcoin" + +#: src/jade/tabs/advanced.jade:55 +msgid "Trust line" +msgstr "Ligne de confiance" + +#: src/jade/tabs/advanced.jade:60 src/jade/tabs/advanced.jade:71 +#: src/jade/tabs/security.jade:162 +msgid "Show" +msgstr "Afficher" + +#: src/jade/tabs/advanced.jade:61 src/jade/tabs/security.jade:163 +msgid "Hide" +msgstr "Masquer" + +#: src/jade/tabs/advanced.jade:78 +msgid "Network settings" +msgstr "Paramètres réseau" + +#: src/jade/tabs/advanced.jade:80 +msgid "Maximum network fee" +msgstr "Frais de réseau maximum" + +#: src/jade/tabs/advanced.jade:96 +msgid "Server settings" +msgstr "Paramètres serveur" + +#: src/jade/tabs/advanced.jade:101 +msgid "WebSocket host name" +msgstr "Nom d'hôte WebSocket" + +#: src/jade/tabs/advanced.jade:103 +msgid "Port number" +msgstr "Numéro de port" + +#: src/jade/tabs/advanced.jade:109 +msgid "Socket ip or hostname is invalid." +msgstr "Socket ip ou nom d'hôte invalide." + +#: src/jade/tabs/advanced.jade:111 +msgid "Port number is invalid." +msgstr "Numéro de port invalide." + +#: src/jade/tabs/advanced.jade:118 src/jade/tabs/advanced.jade:131 +msgid "Secure" +msgstr "Sécurisé" + +#: src/jade/tabs/advanced.jade:132 +msgid "Not Secure" +msgstr "Non sécurisé" + +#: src/jade/tabs/advanced.jade:138 +msgid "Add new server" +msgstr "Ajouter un nouveau serveur" + +#: src/jade/tabs/apps.jade:27 +msgid "App Ripple Address" +msgstr "App Addresse Ripple" + +#: src/jade/tabs/apps.jade:29 +msgid "Please enter a ripple address." +msgstr "Veuillez entrer une adresse ripple." + +#: src/jade/tabs/apps.jade:31 +msgid "Please enter a valid ripple address." +msgstr "Veuillez entrer une adresse ripple valide." + +#: src/jade/tabs/banner/announcement.jade:2 +msgid "Help our team improve Ripple Trade! {{1:Take a quick user survey.}}" +msgstr "Aider notre équipe à améliorer Ripple Trade! {{1:Remplir un court sondage.}}" + +#: src/jade/tabs/banner/unfunded.jade:2 +msgid "" +"Welcome to Ripple Trade! Your account needs to be activated. You can " +"activate it in 2 ways:" +msgstr "Bienvenue sur Ripple Trade! Votre compte doit être activé. Vous pouvez l'activer de 2 façons:" + +#: src/jade/tabs/banner/unfunded.jade:4 +msgid "" +"Have another user send XRP to your Ripple name " +"(~{{userCredentials.username}}). {{1}}" +msgstr "Un autre utilisateur peut vous envoyer des XRP à votre nom Ripple (~{{userCredentials.username}}). {{1}}" + +#: src/jade/tabs/brl.jade:24 src/jade/tabs/eur.jade:24 +#: src/jade/tabs/gold.jade:24 src/jade/tabs/jpy.jade:24 +#: src/jade/tabs/mxn.jade:24 src/jade/tabs/trust.jade:42 +#: src/jade/tabs/usd.jade:24 +msgid "There was an error while saving your changes." +msgstr "Il y a eu une erreur lors de l'enregistrement de vos modifications." + +#: src/jade/tabs/brl.jade:28 src/jade/tabs/eur.jade:27 +#: src/jade/tabs/gold.jade:27 src/jade/tabs/jpy.jade:28 +#: src/jade/tabs/mxn.jade:28 src/jade/tabs/trust.jade:45 +#: src/jade/tabs/usd.jade:27 +msgid "You must have at least {{1}} to add a new trust line. {{2}}" +msgstr "Vous devez avoir au moins {{1}} pour ajouter une nouvelle ligne de confiance. {{2}}" + +#: src/jade/tabs/brl.jade:38 +msgid "Brazilian Real Deposit" +msgstr "Dépôt de Real brésilien" + +#: src/jade/tabs/brl.jade:41 src/jade/tabs/btc.jade:35 +#: src/jade/tabs/eur.jade:38 src/jade/tabs/gold.jade:40 +#: src/jade/tabs/jpy.jade:41 src/jade/tabs/mxn.jade:41 +#: src/jade/tabs/trust.jade:167 src/jade/tabs/usd.jade:38 +msgid "Gateway" +msgstr "Passerelle" + +#: src/jade/tabs/brl.jade:42 src/jade/tabs/eur.jade:48 +#: src/jade/tabs/mxn.jade:81 src/jade/tabs/mxn.jade:93 +#: src/jade/tabs/mxn.jade:103 src/jade/tabs/security.jade:49 +msgid "{{1}}{{2}}" +msgstr "{{1}}{{2}}" + +#: src/jade/tabs/brl.jade:43 +msgid "Ripple (~rippex)" +msgstr "Ripple (~rippex)" + +#: src/jade/tabs/brl.jade:46 src/jade/tabs/btc.jade:39 +#: src/jade/tabs/eur.jade:44 src/jade/tabs/gold.jade:44 +#: src/jade/tabs/jpy.jade:45 src/jade/tabs/mxn.jade:46 +#: src/jade/tabs/usd.jade:44 +msgid "Availability" +msgstr "Disponibilité" + +#: src/jade/tabs/brl.jade:47 +msgid "Brazil" +msgstr "Brésil" + +#: src/jade/tabs/brl.jade:49 src/jade/tabs/btc.jade:42 +#: src/jade/tabs/eur.jade:47 src/jade/tabs/gold.jade:47 +#: src/jade/tabs/jpy.jade:48 src/jade/tabs/mxn.jade:49 +#: src/jade/tabs/usd.jade:47 +msgid "Fees" +msgstr "Frais" + +#: src/jade/tabs/brl.jade:50 src/jade/tabs/jpy.jade:49 +#: src/jade/tabs/kyc.jade:111 src/jade/tabs/kyc.jade:126 +#: src/jade/tabs/kyc.jade:151 +msgid "{{1}}{{2}}{{3}}" +msgstr "{{1}}{{2}}{{3}}" + +#: src/jade/tabs/brl.jade:51 +msgid "Deposit: 1.50 BRL + 0.5%" +msgstr "Dépôt: 1.50 BRL + 0.5%" + +#: src/jade/tabs/brl.jade:52 +msgid "Transfer: 0%" +msgstr "Transfert: 0%" + +#: src/jade/tabs/brl.jade:56 src/jade/tabs/btc.jade:45 +#: src/jade/tabs/eur.jade:53 src/jade/tabs/gold.jade:50 +#: src/jade/tabs/jpy.jade:54 src/jade/tabs/mxn.jade:52 +#: src/jade/tabs/usd.jade:50 +msgid "Rating" +msgstr "Évaluation" + +#: src/jade/tabs/brl.jade:62 +msgid "" +"Ripple Trade has partnered with Rippex to provide easy access to BRL. By " +"continuing, you agree with Rippex's {{1}}Following this action will enable " +"Rippex to hold BRL on your behalf." +msgstr "Ripple Trade a établi un partenariat avec Rippex pour fournir un accès facile aux BRL. En continuant, vous acceptez les {{1}} de Rippex. Cette action permettra à Rippex de conserver les BRL en votre nom." + +#: src/jade/tabs/brl.jade:69 +msgid "Add Rippex" +msgstr "Ajouter Rippex" + +#: src/jade/tabs/brl.jade:70 +msgid "Adding..." +msgstr "Ajout..." + +#: src/jade/tabs/brl.jade:71 src/jade/tabs/eur.jade:65 +#: src/jade/tabs/jpy.jade:64 src/jade/tabs/usd.jade:62 +msgid "Hide instructions" +msgstr "Masquer les instructions" + +#: src/jade/tabs/brl.jade:72 src/jade/tabs/eur.jade:66 +#: src/jade/tabs/jpy.jade:65 src/jade/tabs/usd.jade:63 +msgid "Show instructions" +msgstr "Afficher les instructions" + +#: src/jade/tabs/brl.jade:75 src/jade/tabs/btc.jade:83 +msgid "{{1}}Not connected" +msgstr "{{1}}Non connecté" + +#: src/jade/tabs/brl.jade:78 src/jade/tabs/btc.jade:86 +msgid "{{1}}Connected" +msgstr "{{1}}Connecté" + +#: src/jade/tabs/brl.jade:81 src/jade/tabs/eur.jade:71 +#: src/jade/tabs/gold.jade:73 src/jade/tabs/jpy.jade:74 +#: src/jade/tabs/mxn.jade:76 src/jade/tabs/usd.jade:68 +msgid "Your account has to be activated before you can add a gateway account." +msgstr "Votre compte doit être activé avant de pouvoir ajouter un compte de passerelle." + +#: src/jade/tabs/brl.jade:84 src/jade/tabs/eur.jade:75 +#: src/jade/tabs/gold.jade:76 src/jade/tabs/jpy.jade:77 +#: src/jade/tabs/mxn.jade:79 src/jade/tabs/usd.jade:72 +msgid "×" +msgstr "×" + +#: src/jade/tabs/brl.jade:85 +msgid "NEW CUSTOMERS- SIGN UP AT RIPPEX" +msgstr "NOUVEAUX CLIENTS- INSCRIVEZ-VOUS SUR RIPPEX" + +#: src/jade/tabs/brl.jade:86 +msgid "" +"{{1}} at Rippex.net to initiate deposits and withdrawals. You will " +"need:{{2}}" +msgstr "{{1}} à Rippex.net pour initier les dépôts et retraits. Vous aurez besoin de:{{2}}" + +#: src/jade/tabs/brl.jade:90 +msgid "A {{1}}" +msgstr "UN {{1}}" + +#: src/jade/tabs/brl.jade:92 +msgid "A bank account in Brazil." +msgstr "Un compte bancaire au Brésil." + +#: src/jade/tabs/brl.jade:96 +msgid "EXISTING RIPPEX CUSTOMERS" +msgstr "CLIENTS ACTUELS DE RIPPEX" + +#: src/jade/tabs/brl.jade:97 +msgid "If you have a Rippex account, {{1}}" +msgstr "Si vous avez un compte Rippex, {{1}}" + +#: src/jade/tabs/brl.jade:100 +msgid "DEPOSIT INSTRUCTIONS" +msgstr "INSTRUCTIONS DE DÉPÔT" + +#: src/jade/tabs/brl.jade:101 +msgid "Rippex accepts deposits from all Brazilian banks. Instructions {{1}}" +msgstr "Rippex accepte les dépôts de toutes les banques brésiliennes. Instructions {{1}}" + +#: src/jade/tabs/btc.jade:19 +msgid "Success! You can deposit BTC via your generated BTC receiving address." +msgstr "Succès! Vous pouvez déposer des BTC via votre adresse de réception BTC générée." + +#: src/jade/tabs/btc.jade:21 +msgid "There was an error with your request. {{1}}" +msgstr "Il y a eu une erreur avec votre demande. {{1}}" + +#: src/jade/tabs/btc.jade:30 +msgid "Bitcoin Deposit" +msgstr "Dépôt de Bitcoin" + +#: src/jade/tabs/btc.jade:36 +msgid "btc2ripple (~snapswap) {{1}}" +msgstr "btc2ripple (~snapswap) {{1}}" + +#: src/jade/tabs/btc.jade:40 src/jade/tabs/gold.jade:45 +#: src/jade/tabs/jpy.jade:46 +msgid "All countries" +msgstr "Tous les pays" + +#: src/jade/tabs/btc.jade:43 src/jade/tabs/mxn.jade:50 +msgid "0%" +msgstr "0%" + +#: src/jade/tabs/btc.jade:50 +msgid "" +"Ripple Trade has partnered with btc2ripple to make depositing BTC easier. By" +" proceeding, you agree to the btc2ripple {{1}} Following this action will " +"allow btc2ripple to hold BTC on your behalf." +msgstr "Ripple Trade a établi un partenariat avec btc2ripple afin de rendre le dépôt de BTC plus facile. En continuant, vous acceptez les {{1}} de btc2ripple. Cette action permettra à btc2ripple de conserver les BTC en votre nom." + +#: src/jade/tabs/btc.jade:56 +msgid "Add btc2ripple" +msgstr "Ajouter btc2ripple" + +#: src/jade/tabs/btc.jade:60 src/jade/tabs/security.jade:64 +#: src/jade/tabs/trust.jade:123 +msgid "Connect" +msgstr "Relier" + +#: src/jade/tabs/btc.jade:62 +msgid "btc2ripple would like to:" +msgstr "btc2ripple aimerait:" + +#: src/jade/tabs/btc.jade:64 +msgid "- Receive your email address {{1}}" +msgstr "- Reçoit votre adresse email {{1}}" + +#: src/jade/tabs/btc.jade:65 +msgid "({{userBlob.data.email}})" +msgstr "({{userBlob.data.email}})" + +#: src/jade/tabs/btc.jade:66 +msgid "- Hold deposited BTC on your behalf" +msgstr "- Conserve les BTC déposés en votre nom" + +#: src/jade/tabs/btc.jade:67 +msgid "By proceeding, you agree to the btc2ripple {{1}}" +msgstr "En continuant, vous consentez aux {{1}} de btc2ripple" + +#: src/jade/tabs/btc.jade:75 +msgid "" +"SnapSwap's btc2ripple service is currently unavailable. Please check back " +"later." +msgstr "Le service SnapSwap's btc2ripple est actuellement indisponible. Veuillez réessayer ultérieurement." + +#: src/jade/tabs/btc.jade:94 +msgid "Personal Deposit address" +msgstr "Adresse de dépôt personnelle" + +#: src/jade/tabs/btc.jade:96 +msgid "Your account is fully verified." +msgstr "Votre compte est entièrement vérifié." + +#: src/jade/tabs/btc.jade:104 +msgid "Withdrawal instructions" +msgstr "Instructions de retrait" + +#: src/jade/tabs/btc.jade:105 +msgid "" +"To withdraw to a BTC address, go to the Send tab and enter the BTC address. " +"Using the btc2ripple service, you will be able tosend to that BTC address." +msgstr "Pour retirer vers une adresse BTC, allez sur l'onglet Envoyer et entrez l'adresse BTC. En utilisant le service btc2ripple, vous pourrez envoyer à cette adresse BTC." + +#: src/jade/tabs/btc.jade:110 +msgid "Waiting for response from SnapSwap service..." +msgstr "En attente de réponse du service SnapSwap..." + +#: src/jade/tabs/btc.jade:112 +msgid "" +"To deposit, generate a bitcoin receiving address using the {{1}} service " +"powered by SnapSwap." +msgstr "Pour déposer, générez une adresse de réception bitcoin en utilisant le {{1}} service fourni par SnapSwap." + +#: src/jade/tabs/contacts.jade:8 +msgid "A new contact has been successfully added." +msgstr "Un nouveau contact a été correctement ajouté." + +#: src/jade/tabs/contacts.jade:9 +msgid "Your contact has been successfully updated." +msgstr "Votre contact a été mis à jour avec succès." + +#: src/jade/tabs/contacts.jade:10 +msgid "A contact has been successfully removed." +msgstr "Un contact a été supprimé avec succès." + +#: src/jade/tabs/contacts.jade:12 src/jade/tabs/contacts.jade:24 +msgid "Contact" +msgstr "Contact" + +#: src/jade/tabs/contacts.jade:13 src/jade/tabs/contacts.jade:32 +msgid "Ripple name or address" +msgstr "Nom Ripple ou adresse" + +#: src/jade/tabs/contacts.jade:15 src/jade/tabs/contacts.jade:19 +#: src/jade/tabs/contacts.jade:48 +msgid "Add contact" +msgstr "Ajouter un contact" + +#: src/jade/tabs/contacts.jade:27 src/jade/tabs/send.jade:245 +#: src/jade/tabs/send.jade:277 +msgid "Please enter a contact." +msgstr "Veuillez entrer un contact." + +#: src/jade/tabs/contacts.jade:28 +msgid "This contact already exists." +msgstr "Ce contact existe déjà." + +#: src/jade/tabs/contacts.jade:36 +msgid "Please enter a Ripple name." +msgstr "Veuillez entrer un nom de Ripple." + +#: src/jade/tabs/contacts.jade:37 src/jade/tabs/contacts.jade:45 +msgid "" +"You already have a contact with the same Ripple name and/or the same " +"Destination tag." +msgstr "Vous avez déjà un contact avec le même nom Ripple et/ou la même étiquette de destination." + +#: src/jade/tabs/contacts.jade:38 +msgid "Not a valid Ripple name or address." +msgstr "Pas un nom Ripple ou une adresse valide." + +#: src/jade/tabs/contacts.jade:41 src/jade/tabs/contacts.jade:81 +#: src/jade/tabs/send.jade:42 src/jade/tabs/tx.jade:56 +msgid "Destination tag" +msgstr "Étiquette de destination" + +#: src/jade/tabs/contacts.jade:42 +msgid "Leave blank if not applicable" +msgstr "Laissez vide si non applicable" + +#: src/jade/tabs/contacts.jade:44 src/jade/tabs/send.jade:46 +msgid "Invalid destination tag" +msgstr "Étiquette de destination invalide" + +#: src/jade/tabs/contacts.jade:72 +msgid "You already have a contact with the same name." +msgstr "Vous avez déjà un contact avec le même nom." + +#: src/jade/tabs/contacts.jade:78 +msgid "You already have this address." +msgstr "Vous avez déjà cette adresse." + +#: src/jade/tabs/contacts.jade:79 src/jade/tabs/debug.jade:14 +msgid "Not a valid address." +msgstr "Cette adresse n'est pas valide." + +#: src/jade/tabs/contacts.jade:84 +msgid "Invalid destination tag." +msgstr "Étiquette de destination invalide." + +#: src/jade/tabs/contacts.jade:94 +msgid "" +"You don't have any contacts yet. Click on 'Add contact' button in the top " +"right corner to add a new contact." +msgstr "Vous n'avez pas encore de contacts. Cliquez sur le bouton \"Ajouter un contact\" dans le coin en haut à droite pour ajouter un nouveau contact." + +#: src/jade/tabs/debug.jade:9 +msgid "Enter a Ripple name or address" +msgstr "Entrez un nom Ripple ou adresse" + +#: src/jade/tabs/debug.jade:13 +msgid "Please enter an address." +msgstr "Veuillez entrer une adresse." + +#: src/jade/tabs/debug.jade:17 +msgid "Turn on debug mode" +msgstr "Activer le mode debug" + +#: src/jade/tabs/eur.jade:35 +msgid "Euro Deposit" +msgstr "Dépôt en Euro" + +#: src/jade/tabs/eur.jade:39 +msgid "SnapSwap EU (~SnapSwap){{1}}{{2}}" +msgstr "SnapSwap EU (~SnapSwap){{1}}{{2}}" + +#: src/jade/tabs/eur.jade:45 +msgid "All countries, except USA" +msgstr "Tous les pays sauf USA" + +#: src/jade/tabs/eur.jade:49 +msgid "€ 0.31 – € 15.00" +msgstr "€ 0.31 – € 15.00" + +#: src/jade/tabs/eur.jade:59 +msgid "" +"Ripple Trade has partnered with SnapSwap to provide easier access to EUR. " +"Following this action will enable SnapSwap to hold EUR on your behalf." +msgstr "Ripple Trade a établi un partenariat avec SnapSwap pour faciliter l'accès aux EUR. Cette action permettra à SnapSwap de conserver les EUR en votre nom." + +#: src/jade/tabs/eur.jade:69 src/jade/tabs/usd.jade:66 +msgid "Not connected" +msgstr "Non connecté" + +#: src/jade/tabs/eur.jade:70 src/jade/tabs/usd.jade:67 +msgid "Connected" +msgstr "Connecté" + +#: src/jade/tabs/eur.jade:76 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.EU" +msgstr "NOUVEAUX CLIENTS- INSCRIVEZ-VOUS SUR SNAPSWAP.EU" + +#: src/jade/tabs/eur.jade:77 +msgid "Register and verify your account at SnapSwap EU. You will need: {{1}}" +msgstr "Inscrivez-vous et vérifiez votre compte sur SnapSwap EU. Vous aurez besoin de: {{1}}" + +#: src/jade/tabs/eur.jade:81 src/jade/tabs/usd.jade:78 +msgid "" +"A valid government-issued ID: driver license, passport, ID card, or visa " +"stamp." +msgstr "Une pièce d'identité émise par le gouvernement en cours de validité: permis de conduire, passeport, carte d'identité ou tampon de visa." + +#: src/jade/tabs/eur.jade:83 src/jade/tabs/usd.jade:80 +msgid "A proof of address: driver license, utility bill, bank statement, etc." +msgstr "Un justificatif de domicile: permis de conduire, facture de services publics, relevé bancaire, etc." + +#: src/jade/tabs/eur.jade:85 +msgid "EXISTING SNAPSWAP EU CUSTOMERS" +msgstr "CLIENTS ACTUELS DE SNAPSWAP EU" + +#: src/jade/tabs/eur.jade:89 src/jade/tabs/jpy.jade:94 +#: src/jade/tabs/usd.jade:86 +msgid "Login to your account {{1}}" +msgstr "Connectez-vous à votre compte {{1}}" + +#: src/jade/tabs/eur.jade:92 src/jade/tabs/jpy.jade:96 +msgid "DEPOSITS AND WITHDRAWALS:" +msgstr "DÉPÔTS ET RETRAITS:" + +#: src/jade/tabs/eur.jade:96 +msgid "Deposit from your bank (2-4 business days)" +msgstr "Dépôt auprès de votre banque (2-4 jours ouvrables)" + +#: src/jade/tabs/eur.jade:98 +msgid "Withdraw to your bank account in SEPA (2-4 business days)" +msgstr "Retrait sur votre compte bancaire dans la zone SEPA (2-4 jours ouvrables)" + +#: src/jade/tabs/eur.jade:100 +msgid "Withdraw to SmartyCash Card (instant)" +msgstr "Retrait sur carte SmartyCash (instantané)" + +#: src/jade/tabs/exchange.jade:13 +msgid "You have to be funded before you can exchange money" +msgstr "Vous devez être approvisionné avant de pouvoir échanger de l'argent" + +#: src/jade/tabs/exchange.jade:23 +msgid "Buy (Market Order)" +msgstr "Acheter (Ordre de marché)" + +#: src/jade/tabs/exchange.jade:24 +msgid "" +"Submit a buy order at the current market rate. Orders will execute " +"instantly." +msgstr "Soumettre un ordre d'achat au taux actuel du marché. Les ordres seront exécutés instantanément." + +# Receive (amount) +#: src/jade/tabs/exchange.jade:27 +msgid "Receive (amount)" +msgstr "Je veux acheter" + +#: src/jade/tabs/exchange.jade:34 src/jade/tabs/widgets/balances.jade:49 +msgid "add gateway" +msgstr "ajouter passerelle" + +#: src/jade/tabs/exchange.jade:37 src/jade/tabs/send.jade:90 +msgid "Please enter an amount." +msgstr "Veuillez entrer un montant." + +#: src/jade/tabs/exchange.jade:38 src/jade/tabs/send.jade:91 +#: src/jade/tabs/trade.jade:153 src/jade/tabs/trade.jade:168 +#: src/jade/tabs/trade.jade:183 src/jade/tabs/trust.jade:101 +msgid "Not a valid amount." +msgstr "Ce montant n'est pas valide." + +#: src/jade/tabs/exchange.jade:39 +msgid "" +"You are either trying to convert too little or too much XRP.Minimum amount " +"is 0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "Vous tentez de convertir soit trop ou trop peu de XRP. Le montant minimum est de 0.000001 XRP et le montant maximal est de 100 milliards de XRP." + +#: src/jade/tabs/exchange.jade:42 src/jade/tabs/send.jade:96 +#: src/jade/tabs/trust.jade:103 +msgid "Your amount has too many digits. The max number of digits is 16." +msgstr "Votre montant a trop de chiffres. Le nombre maximum de chiffres est de 16." + +#: src/jade/tabs/exchange.jade:43 +msgid "Please enter an amount greater than zero." +msgstr "Veuillez entrer un montant supérieur à zéro." + +#: src/jade/tabs/exchange.jade:46 +msgid "{{1}} Calculating..." +msgstr "{{1}} Calcul en cours..." + +#: src/jade/tabs/exchange.jade:50 +msgid "" +"Cannot convert to {{exchange.amount}} {{exchange.currency_name}}. Please " +"make sure your account has enough funds, and a {{1}} to a " +"{{exchange.currency_name}} gateway." +msgstr "Impossible de convertir vers {{exchange.amount}} {{exchange.currency_name}}. Assurez-vous s'il vous plaît que votre compte a suffisamment de fonds, et une {{1}} vers une passerelle {{exchange.currency_name}}." + +#: src/jade/tabs/exchange.jade:54 +msgid "" +"Sorry! Cannot convert {{exchange.amount}} {{exchange.currency_name}}. Please" +" make sure your account has enough funds." +msgstr "Désolé! Impossible de convertir {{exchange.amount}} {{exchange.currency_name}}. Assurez-vous s'il vous plaît que votre compte a suffisamment de fonds." + +#: src/jade/tabs/exchange.jade:56 src/jade/tabs/send.jade:142 +msgid "Error while calculating path" +msgstr "Une erreur est survenue lors du calcul de chemin" + +#: src/jade/tabs/exchange.jade:60 +msgid "Exchange" +msgstr "Marché" + +#: src/jade/tabs/exchange.jade:72 +msgid "Exchange {{ alt.amount | rpcurrency }} {{1}}" +msgstr "Échanger {{ alt.amount | rpcurrency }} {{1}}" + +#: src/jade/tabs/exchange.jade:78 src/jade/tabs/send.jade:170 +msgid "Paths last updated {{1}} {{2: seconds}} {{3: second}} ago" +msgstr "Dernière mise à jour des chemins il y a {{1}} {{2: secondes}} {{3: seconde}}" + +#: src/jade/tabs/exchange.jade:89 +msgid "Ripple is calculating a path for your conversion." +msgstr "Ripple calcule un chemin pour votre conversion." + +#: src/jade/tabs/exchange.jade:94 +msgid "" +"{{1:You are exchanging}}{{2}}{{3:to}}{{4}}{{5:You will pay at " +"most}}{{6}}{{7:Are you sure?}}" +msgstr "{{1:Vous échangez}}{{2}}{{3:pour}}{{4}}{{5:Vous paierai au plus}}{{6}}{{7:Êtes-vous sûr ?}}" + +#: src/jade/tabs/exchange.jade:139 +msgid "Do another conversion" +msgstr "Faire une autre conversion" + +#: src/jade/tabs/exchange.jade:141 src/jade/tabs/send.jade:257 +#: src/jade/tabs/send.jade:291 +msgid "Back to balance" +msgstr "Revenir au solde" + +#: src/jade/tabs/fund.jade:20 +msgid "Add trust" +msgstr "Ajouter une ligne de confiance" + +#: src/jade/tabs/fund.jade:27 src/jade/tabs/send.jade:26 +msgid "Enter a Ripple name or contact" +msgstr "Entrez un nom Ripple ou contact" + +#: src/jade/tabs/fund.jade:33 src/jade/tabs/trust.jade:73 +msgid "Account does not meet the minimum XRP reserve." +msgstr "Le compte ne dispose pas de la réserve de XRP mininum." + +#: src/jade/tabs/fund.jade:36 src/jade/tabs/trust.jade:76 +msgid "Please enter a Ripple name, contact, or address." +msgstr "Veuillez entrer un nom Ripple, un contact ou une adresse." + +#: src/jade/tabs/fund.jade:37 src/jade/tabs/trust.jade:77 +msgid "You've entered your own address." +msgstr "Vous avez entré votre propre adresse." + +#: src/jade/tabs/fund.jade:38 src/jade/tabs/trust.jade:78 +msgid "Please enter a valid Ripple name, contact, or address." +msgstr "Veuillez entrer un nom Ripple, un contact ou une adresse valide." + +#: src/jade/tabs/fund.jade:48 src/jade/tabs/trust.jade:80 +msgid "Amount field is required" +msgstr "Le champ montant est requis" + +#: src/jade/tabs/fund.jade:50 src/jade/tabs/trust.jade:82 +#: src/jade/tabs/trust.jade:105 +msgid "" +"XRP can be sent without extending trust. If you really want to trust in XRP," +" please use XRR currency code." +msgstr "Les XRP peuvent être envoyés sans étendre la confiance. Si vous souhaitez vraiment établir une ligne de confiance en XRP, veuillez utiliser le code de devise XRR." + +#: src/jade/tabs/fund.jade:53 src/jade/tabs/trust.jade:85 +#: src/jade/tabs/trust.jade:108 +msgid "Currency field is required" +msgstr "Le champ devise est requis" + +#: src/jade/tabs/fund.jade:59 src/jade/tabs/fund.jade:60 +#: src/jade/tabs/trust.jade:114 src/jade/tabs/trust.jade:115 +msgid "Allow Rippling" +msgstr "Permettre le Rippling" + +#: src/jade/tabs/fund.jade:60 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"trust. More " +"information" +msgstr "Autoriser les soldes de cette ligne de confiance à être transférés vers un autre émetteur auquel vous faites confiance. Plus d'information" + +#: src/jade/tabs/fund.jade:63 +msgid "Cancel" +msgstr "Annuler" + +#: src/jade/tabs/fund/menu.jade:3 +msgid "{{1}}XRP" +msgstr "{{1}}XRP" + +#: src/jade/tabs/fund/menu.jade:6 +msgid "Featured gateways" +msgstr "Passerelles preferées" + +#: src/jade/tabs/fund/menu.jade:7 +msgid "{{1}}BRL" +msgstr "{{1}}BRL" + +#: src/jade/tabs/fund/menu.jade:10 +msgid "{{1}}BTC" +msgstr "{{1}}BTC" + +#: src/jade/tabs/fund/menu.jade:13 +msgid "{{1}}EUR" +msgstr "{{1}}EUR" + +#: src/jade/tabs/fund/menu.jade:16 +msgid "{{1}}JPY" +msgstr "{{1}}JPY" + +#: src/jade/tabs/fund/menu.jade:19 +msgid "{{1}}MXN" +msgstr "{{1}}MXN" + +#: src/jade/tabs/fund/menu.jade:22 +msgid "{{1}}USD" +msgstr "{{1}}USD" + +#: src/jade/tabs/fund/menu.jade:25 +msgid "{{1}}XAU" +msgstr "{{1}}XAU" + +#: src/jade/tabs/fund/menu.jade:28 +msgid "Add any gateway" +msgstr "Ajouter une passerelle" + +#: src/jade/tabs/fund/menu.jade:30 +msgid "Learn more about gateways" +msgstr "En savoir plus sur les passerelles" + +#: src/jade/tabs/gold.jade:37 +msgid "Gold Deposit" +msgstr "Dépôt d'Or" + +#: src/jade/tabs/gold.jade:41 +msgid "Gold Bullion International (~gbi) {{1}}" +msgstr "Gold Bullion International (~gbi) {{1}}" + +#: src/jade/tabs/gold.jade:48 +msgid "0.5% per year" +msgstr "0.5% par an" + +#: src/jade/tabs/gold.jade:56 +msgid "" +"Ripple Trade has partnered with GBI to provide easy access toXAU. By " +"continuing, you are allowing GBI to hold gold on your behalf." +msgstr "Ripple Trade a établi un partenariat avec GBI pour fournir un accès facile aux XAU. En continuant, vous acceptez que GBI conserve l'or en votre nom." + +#: src/jade/tabs/gold.jade:67 src/jade/tabs/jpy.jade:68 +#: src/jade/tabs/mxn.jade:70 +msgid "{{1}} Not connected" +msgstr "{{1}} Non connecté" + +#: src/jade/tabs/gold.jade:70 src/jade/tabs/jpy.jade:71 +#: src/jade/tabs/mxn.jade:73 +msgid "{{1}} Connected" +msgstr "{{1}} Connecté" + +#: src/jade/tabs/gold.jade:77 +msgid "Deposit" +msgstr "Dépôt" + +#: src/jade/tabs/gold.jade:78 +msgid "" +"GBI does not currently support direct deposits. You can {{1}} or {{2}}." +msgstr "GBI ne supporte pas actuellement les dépôts directs. Vous pouvez {{1}} ou {{2}}." + +#: src/jade/tabs/gold.jade:84 +msgid "Withdrawal" +msgstr "Retrait" + +#: src/jade/tabs/gold.jade:85 +msgid "" +"You can redeem the physical gold in 1 oz increments.To do so, you'll need to" +" {{1}} and arrange to have the gold shipped to you." +msgstr "Vous pouvez échanger contre de l'or physique par tranches de 1 oz. Pour ce faire, vous devrez {{1}} et prendre des dispositions pour avoir l'or livré chez vous." + +#: src/jade/tabs/history.jade:11 +msgid "Loading History" +msgstr "Chargement de l'historique" + +#: src/jade/tabs/history.jade:16 +msgid "Your account history is empty" +msgstr "L'historique de votre compte est vide" + +#: src/jade/tabs/history.jade:24 +msgid "Transaction type{{1}}{{2}}" +msgstr "Type de transaction{{1}}{{2}}" + +#: src/jade/tabs/history.jade:37 +msgid "Date{{1}}{{2}}" +msgstr "Date{{1}}{{2}}" + +#: src/jade/tabs/history.jade:42 +msgid "Load history for specific date range" +msgstr "Charger l'historique pour une période spécifique" + +#: src/jade/tabs/history.jade:48 +msgid "From" +msgstr "de" + +#: src/jade/tabs/history.jade:54 +msgid "To" +msgstr "à" + +#: src/jade/tabs/history.jade:57 +msgid "Filter" +msgstr "Filtre" + +#: src/jade/tabs/history.jade:64 +msgid "Date" +msgstr "Date" + +#: src/jade/tabs/history.jade:65 src/jade/tabs/history.jade:170 +msgid "Description" +msgstr "Description" + +#: src/jade/tabs/history.jade:68 src/jade/tabs/history.jade:73 +msgid "Export to CSV" +msgstr "Exporter au format CSV" + +#: src/jade/tabs/history.jade:69 +msgid "Sorry, no transactions match your current filter." +msgstr "Désolé, aucune transaction ne correspond à votre filtre actuel." + +#: src/jade/tabs/history.jade:91 +msgid "You sent{{1}}to{{2}}" +msgstr "Vous avez envoyé{{1}}à{{2}}" + +#: src/jade/tabs/history.jade:97 +msgid "{{1}}sent you{{2}}" +msgstr "{{1}}vous a envoyé{{2}}" + +#: src/jade/tabs/history.jade:103 +msgid "You requested to exchange{{1}}to{{2}}" +msgstr "Vous avez demandé à échanger{{1}}pour{{2}}" + +#: src/jade/tabs/history.jade:109 +msgid "{{1}}now trusts you for{{2}}" +msgstr "{{1}}vous fait maintenant confiance pour{{2}}" + +#: src/jade/tabs/history.jade:122 src/jade/tabs/history/effects.jade:45 +msgid "You created an order to sell{{1}}for{{2}}" +msgstr "Vous avez créé un ordre pour vendre{{1}}pour{{2}}" + +#: src/jade/tabs/history.jade:126 src/jade/tabs/history/effects.jade:49 +msgid "You created an order to buy{{1}}for{{2}}" +msgstr "Vous avez créé un ordre pour acheter{{1}}pour{{2}}" + +#: src/jade/tabs/history.jade:132 +msgid "You cancelled an order accepting {{1}}for{{2}}" +msgstr "Vous avez annulé un ordre acceptant {{1}}pour{{2}}" + +#: src/jade/tabs/history.jade:145 +msgid "Unknown transaction" +msgstr "Transaction inconnue" + +#: src/jade/tabs/history.jade:148 +msgid "" +"The client failed to parse this transaction. The developers have been " +"notified of the issue." +msgstr "Le client n'a pas pu analyser cette transaction. Les développeurs ont été avertis de ce problème." + +#: src/jade/tabs/history.jade:153 +msgid "{{1}} sent you{{2}} and activated your account!" +msgstr "{{1}} vous a envoyé{{2}} et activé votre compte!" + +#: src/jade/tabs/history.jade:160 +msgid "You deposited{{1}} using {{entry.details.app.name}}" +msgstr "Vous avez déposé{{1}} en utilisant {{entry.details.app.name}}" + +#: src/jade/tabs/history.jade:168 +msgid "Balance Changes" +msgstr "Variations du solde" + +#: src/jade/tabs/history.jade:171 +msgid "Issuer" +msgstr "Émetteur" + +#: src/jade/tabs/history.jade:173 +msgid "Final balance" +msgstr "Solde final" + +#: src/jade/tabs/history.jade:176 +msgid "XRP Balance Change" +msgstr "Changement du solde XRP" + +#: src/jade/tabs/history.jade:177 +msgid "{{effect.currency}} Balance Change" +msgstr "{{effect.currency}} Variation du Solde" + +#: src/jade/tabs/history.jade:183 +msgid "Transaction details" +msgstr "Détails de la transaction" + +#: src/jade/tabs/history.jade:184 +msgid "Add {{1}} to contact list" +msgstr "Ajouter {{1}} à votre liste de contacts" + +#: src/jade/tabs/history.jade:189 +msgid "{{1}} Loading more" +msgstr "{{1}} Afficher davantage" + +#: src/jade/tabs/history.jade:192 src/jade/tabs/trade.jade:500 +msgid "Load more" +msgstr "En afficher plus" + +#: src/jade/tabs/history.jade:193 +msgid "No more transactions left" +msgstr "Aucune transaction restante" + +#: src/jade/tabs/history/effects.jade:4 src/jade/tabs/history/effects.jade:19 +msgid "You sold{{1}}for{{2}}" +msgstr "Vous avez vendu{{1}}pour{{2}}" + +#: src/jade/tabs/history/effects.jade:8 src/jade/tabs/history/effects.jade:23 +msgid "You bought{{1}}for{{2}}" +msgstr "Vous avez acheté{{1}}pour{{2}}" + +#: src/jade/tabs/history/effects.jade:13 src/jade/tabs/history/effects.jade:28 +msgid "price" +msgstr "prix" + +#: src/jade/tabs/history/effects.jade:17 +msgid "This order has been filled." +msgstr "Cet ordre a été exécuté." + +#: src/jade/tabs/history/effects.jade:32 +msgid "The rest of your order has been cancelled due to lack of funds." +msgstr "Le reste de votre ordre a été annulé en raison du manque de fonds." + +#: src/jade/tabs/history/effects.jade:33 +msgid "This order has{{1}}remaining." +msgstr "Cette ordre a{{1}}restant." + +#: src/jade/tabs/history/effects.jade:39 +msgid "Order ({{1}} for {{2}}) has been cancelled due to lack of funds." +msgstr "L'ordre ({{1}} pour {{2}}) a été annulé en raison du manque de fonds." + +#: src/jade/tabs/history/effects.jade:53 +msgid "You bought{{1}}for{{2}}({{3:price}}{{4}})." +msgstr "Vous avez acheté{{1}}pour{{2}}({{3:prix}}{{4}})." + +#: src/jade/tabs/history/effects.jade:68 +msgid "{{1}}is trusting you for{{2}}." +msgstr "{{1}}vous fait confiance pour{{2}}." + +#: src/jade/tabs/history/effects.jade:73 +msgid "You have changed {{1}}trust for{{2}}from{{3}}to{{4}}." +msgstr "Vous avez modifié la confiance {{1}} pour{{2}}de{{3}}à{{4}}." + +#: src/jade/tabs/history/effects.jade:83 +msgid "{{1}}changed the{{2}}trust from{{3}}to{{4}}." +msgstr "{{1}}a modifié la confiance {{2}}de{{3}}à{{4}}." + +#: src/jade/tabs/history/effects.jade:92 +msgid "Trust balance between you and{{1}}has been changed by{{2}}." +msgstr "Le solde de confiance entre vous et{{1}}a été modifié par{{2}}." + +#: src/jade/tabs/history/effects.jade:99 +msgid "Your balance has been changed by{{1}}." +msgstr "Votre solde a été changé de{{1}}." + +#: src/jade/tabs/jpy.jade:38 +msgid "Japanese Yen Deposit" +msgstr "Dépôt de Yen japonais" + +#: src/jade/tabs/jpy.jade:42 +msgid "Tokyo JPY Issuer (~tokyojpy) {{1}}" +msgstr "Tokyo JPY Issuer (~tokyojpy) {{1}}" + +#: src/jade/tabs/jpy.jade:59 +msgid "" +"Ripple Trade has partnered with Tokyo JPY Issuer to provide easier access to" +" JPY. Following this action will enable Tokyo JPY Issuer to hold JPY on your" +" behalf." +msgstr "Ripple Trade a établi un partenariat avec Tokyo JPY Issuer pour faciliter l'accès aux JPY. Cette action permettra à Tokyo JPY Issuer de conserver les JPY en votre nom." + +#: src/jade/tabs/jpy.jade:78 +msgid "NEW CUSTOMERS- SIGN UP AT TOKYO JPY ISSUER" +msgstr "NOUVEAUX CLIENTS- INSCRIVEZ-VOUS SUR TOKYO JPY ISSUER" + +#: src/jade/tabs/jpy.jade:79 +msgid "{{1}}at Tokyo JPY Issuer. You will need:{{2}}" +msgstr "{{1}}à Tokyo JPY Issuer. Vous aurez besoin de:{{2}}" + +#: src/jade/tabs/jpy.jade:84 +msgid "A valid government-issued ID." +msgstr "Une pièce d'identité valide émise par le gouvernement." + +#: src/jade/tabs/jpy.jade:86 +msgid "A proof of address (utility bill, etc)." +msgstr "Un justificatif de domicile (facture de services publics, etc)." + +#: src/jade/tabs/jpy.jade:88 +msgid "A bank account under the same name." +msgstr "Un compte bancaire sous le même nom." + +#: src/jade/tabs/jpy.jade:90 +msgid "EXISTING TOKYO JPY ISSUER CUSTOMERS" +msgstr "CLIENTS ACTUELS DE TOKYO JPY ISSUER" + +#: src/jade/tabs/jpy.jade:100 +msgid "" +"Tokyo JPY Issuer accepts deposits and withdrawals via bank transfer. Details" +" {{1}}" +msgstr "Tokyo JPY Issuer accepte les dépôts et les retraits par virement bancaire. Détails {{1}}" + +#: src/jade/tabs/jpy.jade:103 +msgid "" +"To deposit, you’ll need to first deposit into your Tokyo JPY Issuer account " +"and then initiate a transfer into your Ripple account." +msgstr "Pour faire un dépôt, vous devrez tout d'abord déposer sur votre compte Tokyo JPY Issuer et ensuite lancer un transfert sur votre compte Ripple." + +#: src/jade/tabs/jpy.jade:105 +msgid "" +"To withdraw to a bank account, you’ll first send money from your Ripple " +"account to your Tokyo JPY Issuer account. Follow instructions on the Tokyo " +"JPY Issuer site to send to your bank account." +msgstr "Pour retirer vers un compte bancaire, vous devez d'abord envoyer l'argent de votre compte Ripple vers votre compte Tokyo JPY Issuer. Suivez les instructions sur le site de Tokyo JPY Issuer pour envoyer à votre compte bancaire." + +#: src/jade/tabs/kyc.jade:14 +msgid "Profile completion is only available to US residents." +msgstr "Le remplissage du profil est uniquement disponible pour les résidents des États-Unis." + +#: src/jade/tabs/kyc.jade:21 src/jade/tabs/trade.jade:285 +msgid "Verifying your information. Please wait..." +msgstr "Vérification de vos informations. Veuillez patienter..." + +#: src/jade/tabs/kyc.jade:23 +msgid "Your identity information has been verified." +msgstr "Vos informations sur l'identité ont été vérifiées." + +#: src/jade/tabs/kyc.jade:25 +msgid "Your identity questions have been verified." +msgstr "Vos questions sur l'identité ont été vérifiées." + +#: src/jade/tabs/kyc.jade:27 +msgid "" +"Congratulations, you've verified your identity! You will now be redirected " +"back to the instant deposit page." +msgstr "Félicitations, vous avez vérifié votre identité! Vous allez maintenant être redirigé vers la page de dépôt instantané." + +#: src/jade/tabs/kyc.jade:29 +msgid "There was an error with your request. Please try again later." +msgstr "Il y a eu une erreur avec votre demande. Veuillez réessayer ultérieurement." + +#: src/jade/tabs/kyc.jade:31 +msgid "" +"There was an error with your request. Make sure your phone number is valid " +"and try again." +msgstr "Il y a eu une erreur avec votre demande. Assurez-vous que votre numéro de téléphone est valide et réessayez." + +#: src/jade/tabs/kyc.jade:33 +msgid "Please check your verification code and try again." +msgstr "Vérifiez s'il vous plaît votre code de vérification puis réessayez." + +#: src/jade/tabs/kyc.jade:35 +msgid "" +"There was an error while requesting the verification code. Please try again " +"later." +msgstr "Il y a eu une erreur en demandant le code de vérification. Veuillez réessayer ultérieurement." + +#: src/jade/tabs/kyc.jade:37 +msgid "" +"We are unable to validate your identity information. Please check your " +"information and try again." +msgstr "Nous ne pouvons pas valider vos informations d'identité. Veuillez vérifier vos informations et réessayer." + +#: src/jade/tabs/kyc.jade:39 +msgid "" +"We are unable to validate your identity questions. Please check your answers" +" and try again." +msgstr "Nous ne pouvons pas valider vos questions d'identité. Vérifiez vos réponses s'il vous plaît et réessayez." + +#: src/jade/tabs/kyc.jade:41 +msgid "" +"Sorry, you've reached your maximum number of verification attempts. Please " +"try again in 24 hours." +msgstr "Désolé, vous avez atteint votre nombre maximum de tentatives de vérification. Veuillez réessayer dans 24 heures." + +#: src/jade/tabs/kyc.jade:43 +msgid "" +"We can't verify your identity. Please contact us at support@ripple.com." +msgstr "Nous ne pouvons pas vérifier votre identité. Contactez-nous s'il vous plaît sur support@ripple.com." + +#: src/jade/tabs/kyc.jade:48 +msgid "Profile Completion" +msgstr "Remplissage du Profil" + +#: src/jade/tabs/kyc.jade:52 +msgid "STEP 1: IDENTITY INFORMATION" +msgstr "ÉTAPE 1: INFORMATIONS SUR L'IDENTITÉ" + +#: src/jade/tabs/kyc.jade:54 +msgid "STEP 2: IDENTITY QUESTIONS" +msgstr "ÉTAPE 2: QUESTIONS SUR L'IDENTITÉ" + +#: src/jade/tabs/kyc.jade:56 +msgid "STEP 3: TWO-FACTOR AUTHENTICATION" +msgstr "ÉTAPE 3: AUTHENTIFICATION À DEUX FACTEURS" + +#: src/jade/tabs/kyc.jade:63 +msgid "First Name" +msgstr "Prénom" + +#: src/jade/tabs/kyc.jade:67 +msgid "Last Name" +msgstr "Nom" + +#: src/jade/tabs/kyc.jade:71 +msgid "Street Address" +msgstr "Rue" + +#: src/jade/tabs/kyc.jade:76 +msgid "City" +msgstr "Ville" + +#: src/jade/tabs/kyc.jade:80 +msgid "State" +msgstr "Région" + +#: src/jade/tabs/kyc.jade:84 +msgid "ZIP" +msgstr "Code Postal" + +#: src/jade/tabs/kyc.jade:88 +msgid "Date of Birth" +msgstr "Date de naissance" + +#: src/jade/tabs/kyc.jade:92 +msgid "Month{{1}}" +msgstr "Mois{{1}}" + +#: src/jade/tabs/kyc.jade:95 +msgid "Day{{1}}" +msgstr "Jour{{1}}" + +#: src/jade/tabs/kyc.jade:98 +msgid "Year{{1}}" +msgstr "Année{{1}}" + +#: src/jade/tabs/kyc.jade:113 +msgid "Continue to identity questions" +msgstr "Continuer aux questions sur l'identité" + +#: src/jade/tabs/kyc.jade:114 src/jade/tabs/kyc.jade:129 +#: src/jade/tabs/kyc.jade:154 src/jade/tabs/kyc.jade:184 +#: src/jade/tabs/login.jade:17 +msgid "Verifying..." +msgstr "Vérification..." + +#: src/jade/tabs/kyc.jade:120 +msgid "{{ q.question }}{{1}}" +msgstr "{{ q.question }}{{1}}" + +#: src/jade/tabs/kyc.jade:123 +msgid "{{ a.answer }}" +msgstr "{{ a.réponse }}" + +#: src/jade/tabs/kyc.jade:128 +msgid "Continue to two-factor authentication" +msgstr "Continuer vers l'authentification à deux facteurs" + +#: src/jade/tabs/kyc.jade:137 +msgid "Two-factor authentication provides extra security for your account." +msgstr "L'authentification à deux facteurs fournit une sécurité supplémentaire pour votre compte." + +#: src/jade/tabs/kyc.jade:145 +msgid "" +"Ripple Trade has partnered with Authy to provide better security for your " +"account.By continuing, you agree to Authy's {{1:Terms of Service}}." +msgstr "Ripple Trade a établi un partenariat avec Authy pour garantir une meilleure sécurité pour votre compte.En continuant, vous acceptez les {{1:Termes de Service}} de Authy." + +#: src/jade/tabs/kyc.jade:153 +msgid "Verify phone number" +msgstr "Vérifier le numéro de téléphone" + +#: src/jade/tabs/kyc.jade:164 +msgid "change" +msgstr "Changer" + +#: src/jade/tabs/kyc.jade:168 +msgid "" +"A verification code has been sent to +{{ currentCountryCode }} {{ " +"phoneNumber }}." +msgstr "Un code de vérification a été envoyé à +{{ currentCountryCode }} {{ phoneNumber }}." + +#: src/jade/tabs/kyc.jade:172 src/jade/tabs/login/form.jade:16 +#: src/jade/tabs/security.jade:97 +msgid "Verification Code" +msgstr "Code de Vérification" + +#: src/jade/tabs/kyc.jade:183 +msgid "Submit code" +msgstr "Envoyer Code" + +#: src/jade/tabs/login.jade:4 src/jade/tabs/migrate.jade:4 +#: src/jade/tabs/recover.jade:3 src/jade/tabs/register.jade:5 +#: src/jade/tabs/register.jade:137 src/jade/tabs/register.jade:184 +msgid "Welcome to Ripple Trade" +msgstr "Bienvenue sur Ripple Trade" + +#: src/jade/tabs/login.jade:6 src/jade/tabs/migrate.jade:6 +#: src/jade/tabs/recover.jade:5 src/jade/tabs/register.jade:7 +#: src/jade/tabs/register.jade:139 src/jade/tabs/register.jade:186 +msgid "Trade hundreds of assets, from XRP to crypto to gold to fiat." +msgstr "Échangez des centaines d'actifs, des XRP aux crypto en passant par l'or et les devises." + +#: src/jade/tabs/login.jade:15 src/jade/tabs/login.jade:31 +msgid "Log In" +msgstr "S'identifier" + +#: src/jade/tabs/login.jade:18 +msgid "You have successfully verified your email address." +msgstr "Vous avez vérifié avec succès votre adresse email." + +#: src/jade/tabs/login.jade:19 +msgid "" +"Email verification token is invalid. It has either expired or has been " +"resent. Please check your inbox for the most recent verification email." +msgstr "Le jeton de vérification email est invalide. Il a expiré ou a été renvoyé. Vérifiez s'il vous plaît votre boîte de réception pour l'email de vérification le plus récent." + +#: src/jade/tabs/login.jade:30 +msgid "Logging in" +msgstr "Connexion" + +#: src/jade/tabs/login.jade:34 +msgid "Verify" +msgstr "Vérifier" + +#: src/jade/tabs/login.jade:36 src/jade/tabs/register.jade:114 +msgid "Already have a ripple.com/client account? {{1:Migrate}}" +msgstr "Vous avez déjà un compte ripple.com/client ? {{1:Migrer}}" + +#: src/jade/tabs/login.jade:41 src/jade/tabs/login.jade:42 +#: src/jade/tabs/recover.jade:9 +msgid "Account Recovery" +msgstr "Récupération de compte" + +#: src/jade/tabs/login.jade:49 +msgid "{{1:You're sending money to}}{{2}}." +msgstr "{{1:Vous envoyez de l'argent à}}{{2}}." + +#: src/jade/tabs/login.jade:53 +msgid "{{1:You're sending}}{{2}}{{3: to }}{{4}}." +msgstr "{{1:Vous envoyez}}{{2}}{{3: à }}{{4}}." + +#: src/jade/tabs/login.jade:63 +msgid "" +"{{1:You're connecting to the gateway}}{{2}}{{3:for{{1}}}}{{4:with a limit " +"of{{1}}}}." +msgstr "{{1:Vous vous connectez à la passerelle}}{{2}}{{3:pour{{1}}}}{{4:avec une limite de{{1}}}}." + +#: src/jade/tabs/login.jade:78 +msgid "{{1:You're adding}}{{2}}{{3:to your contacts list}}" +msgstr "{{1:Vous ajoutez}}{{2}}{{3:à votre liste de contacts}}" + +#: src/jade/tabs/login.jade:95 +msgid "{{1}} Log In" +msgstr "{{1}} S'identifier" + +#: src/jade/tabs/login.jade:98 +msgid "You can confirm this transaction on the next page." +msgstr "Vous pouvez confirmer la transaction sur la page suivante." + +#: src/jade/tabs/login.jade:99 +msgid "New to {{productName}}? {{1:Create a wallet}}" +msgstr "Nouveau sur {{productName}} ? {{1:Créer un portefeuille}}" + +#: src/jade/tabs/login/form.jade:12 src/jade/tabs/security.jade:91 +msgid "" +"Please enter the verification code from the SMS message sent to your device:" +msgstr "Veuillez entrer le code de vérification du message SMS envoyé à votre appareil:" + +#: src/jade/tabs/login/form.jade:13 src/jade/tabs/security.jade:92 +msgid "" +"Please enter the verification code from the Authy app installed on your " +"device:" +msgstr "Veuillez entrer le code de vérification de l'application Authy installée sur votre appareil:" + +#: src/jade/tabs/login/form.jade:23 +msgid "Resend" +msgstr "Renvoyer" + +#: src/jade/tabs/login/form.jade:24 src/jade/tabs/security.jade:105 +msgid "Send Via SMS" +msgstr "Envoyer par SMS" + +#: src/jade/tabs/login/form.jade:30 +msgid "Remember me on this device for 30 days" +msgstr "Se souvenir de moi sur cet appareil pendant 30 jours" + +#: src/jade/tabs/migrate.jade:10 src/jade/tabs/register.jade:17 +#: src/jade/tabs/register.jade:142 src/jade/tabs/register.jade:189 +msgid "Migrate" +msgstr "Migrer" + +#: src/jade/tabs/migrate.jade:11 +msgid "" +"To begin migration, enter the name and passphrase used to encrypt your " +"ripple.com/client wallet below. After migration, you will no longer be able " +"to login on ripple.com/client." +msgstr "Pour commencer la migration, entrez le nom et mot de passe que vous avez utilisé pour chiffrer votre portefeuille ripple.com/client ci-dessous. Après la migration, vous ne pourrez plus vous connecter depuis ripple.com/client." + +#: src/jade/tabs/migrate.jade:15 +msgid "Existing ripple.com/client Wallet name" +msgstr "Nom de portefeuille ripple.com/client existant" + +#: src/jade/tabs/migrate.jade:18 +msgid "Passphrase" +msgstr "Mot de passe" + +#: src/jade/tabs/migrate.jade:31 +msgid "Begin Migration" +msgstr "Commencer la migration" + +#: src/jade/tabs/migrate.jade:32 +msgid "New to {{productName}}? {{1:Sign Up}}" +msgstr "Nouveau sur {{productName}} ? {{1:S'enregistrer}}" + +#: src/jade/tabs/migrate.jade:34 +msgid "Have a {{productName}} account? {{1:Log In}}" +msgstr "Vous avez un compte {{productName}} ? {{1:S'identifier}}" + +#: src/jade/tabs/mxn.jade:38 +msgid "Mexican Peso Deposit" +msgstr "Dépôt de Peso Mexicain" + +#: src/jade/tabs/mxn.jade:42 +msgid "Bitso (~bitso) {{1}}{{2}}" +msgstr "Bitso (~bitso) {{1}}{{2}}" + +#: src/jade/tabs/mxn.jade:47 +msgid "All countries except the US" +msgstr "Tous les pays sauf les États-Unis" + +#: src/jade/tabs/mxn.jade:58 +msgid "" +"Ripple Trade has partnered with Bitso to provide easy access to MXN (Mexican" +" Peso). By continuing, you agree with Bitso’s terms of service. Following " +"this action will enable Bitso to hold MXN on your behalf." +msgstr "Ripple Trade a établi un partenariat avec Bitso pour fournir un accès facile aux MXN (Mexican Peso). En continuant, vous acceptez les conditions de service de Bitso. Cette action permettra à Bitso de conserver les MXN en votre nom." + +#: src/jade/tabs/mxn.jade:80 +msgid "TO FUND/REDEEM MEXICAN PESO:" +msgstr "POUR APPROVISIONNER/RETIRER PESO MEXICAIN:" + +#: src/jade/tabs/mxn.jade:82 +msgid "Register or login at {{1}}to initiate deposits and withdrawals." +msgstr "Inscrivez-vous ou connectez-vous sur {{1}}pour initier les dépôts et retraits." + +#: src/jade/tabs/mxn.jade:86 +msgid "" +"A valid, non-US, state-issued ID (passport, driver's license, etc)." +msgstr "Une pièce d'identité valide, non-US, émise par l'état (passeport, permis de conduire, etc.)." + +#: src/jade/tabs/mxn.jade:87 +msgid "" +"Proof of address (utility bill or other type of bill that has your address " +"on it). Verification is required for peso deposits or withdrawals." +msgstr "Un justificatif de domicile (facture de services publics ou autre type de facture contenant votre adresse). La vérification est requise pour les dépôts ou retraits de pesos." + +#: src/jade/tabs/mxn.jade:89 +msgid "" +"To fund your Ripple account, see the below options. Once a balance is " +"deposited with Bitso, you can send it to your Ripple account using the Bitso" +" Dashboard." +msgstr "Pour approvisionner votre compte Ripple, voir les options ci-dessous. Une fois qu'un solde est déposé avec Bitso, vous pouvez l'envoyer à votre compte Ripple en utilisant le tableau de bord Bitso." + +#: src/jade/tabs/mxn.jade:90 +msgid "" +"To withdraw from your Ripple account, click on the 'Redeem from Ripple' " +"button on the Bitso Dashboard." +msgstr "Pour retirer de votre compte Ripple, cliquez sur le bouton 'Redeem from Ripple' sur le tableau de bord Bitso." + +#: src/jade/tabs/mxn.jade:92 src/jade/tabs/usd.jade:89 +msgid "DEPOSIT OPTIONS" +msgstr "OPTIONS DE DÉPÔT" + +#: src/jade/tabs/mxn.jade:94 +msgid "Bitso accepts deposits by the following methods:" +msgstr "Bitso accepte les dépôts par les méthodes suivantes:" + +#: src/jade/tabs/mxn.jade:96 src/jade/tabs/mxn.jade:106 +msgid "Bank Wire" +msgstr "Virement bancaire" + +#: src/jade/tabs/mxn.jade:97 src/jade/tabs/mxn.jade:107 +msgid "SPEI (Mexican instant inter-bank transfer)" +msgstr "SPEI (transfert inter-bancaire instantané Mexicain)" + +#: src/jade/tabs/mxn.jade:98 src/jade/tabs/mxn.jade:108 +msgid "Bitcoin" +msgstr "Bitcoin" + +#: src/jade/tabs/mxn.jade:99 +msgid "MXN Cash (at locations across Mexico)" +msgstr "Espèces MXN (à divers endroits au Mexique)" + +#: src/jade/tabs/mxn.jade:100 +msgid "Pademobile wallet" +msgstr "Portefeuille Pademobile" + +#: src/jade/tabs/mxn.jade:102 src/jade/tabs/usd.jade:99 +msgid "WITHDRAWAL OPTIONS" +msgstr "OPTIONS DE RETRAIT" + +#: src/jade/tabs/mxn.jade:104 +msgid "Bitso offers withdrawals via the following methods:" +msgstr "Bitso propose des retraits via les méthodes suivantes:" + +#: src/jade/tabs/recover.jade:11 +msgid "" +"You can only recover your Ripple Trade account with a secret key. You will " +"recover the account's Ripple name, contacts and other information." +msgstr "Vous ne pouvez récupérer votre compte Ripple Trade qu'avec une clé secrète. Vous recouvrerez le nom Ripple du compte, contacts et autres informations." + +#: src/jade/tabs/recover.jade:13 src/jade/tabs/recover.jade:33 +msgid "Ripple Name" +msgstr "Nom Ripple" + +#: src/jade/tabs/recover.jade:18 +msgid "Secret Key" +msgstr "Clé secrète" + +#: src/jade/tabs/recover.jade:21 +msgid "Unable to recover account." +msgstr "Impossible de récupérer le compte." + +#: src/jade/tabs/recover.jade:27 src/jade/tabs/register.jade:95 +msgid "Recover Account" +msgstr "Récupérer le Compte" + +#: src/jade/tabs/recover.jade:29 src/jade/tabs/recover.jade:56 +msgid "Set Password" +msgstr "Définir mot de passe" + +#: src/jade/tabs/recover.jade:31 +msgid "" +"Your account was sucessfully recovered. Please re-encrypt your account with " +"a new password." +msgstr "Votre compte a été récupéré avec succès. S'il vous plaît re-encryptez votre compte avec un nouveau mot de passe." + +#: src/jade/tabs/recover.jade:41 src/jade/tabs/register.jade:62 +#: src/jade/tabs/security.jade:132 +msgid "" +"Your password is weak. It does not contain numbers and symbols or it is too " +"short." +msgstr "Votre mot de passe est faible. Il ne contient pas des chiffres et symboles ou il est trop court." + +#: src/jade/tabs/recover.jade:43 src/jade/tabs/register.jade:65 +#: src/jade/tabs/security.jade:134 +msgid "" +"Your Ripple name and password cannot match. Please create a new password." +msgstr "Votre nom Ripple et mot de passe ne peuvent correspondre. Veuillez créer un nouveau mot de passe." + +#: src/jade/tabs/recover.jade:45 src/jade/tabs/register.jade:67 +#: src/jade/tabs/security.jade:136 +msgid "Confirm password" +msgstr "Confirmez le mot de passe" + +#: src/jade/tabs/recover.jade:48 src/jade/tabs/register.jade:71 +#: src/jade/tabs/security.jade:139 +msgid "Passwords do not match" +msgstr "Les mots de passe ne correspondent pas" + +#: src/jade/tabs/recover.jade:50 +msgid "Unable to change your account password." +msgstr "Impossible de changer votre mot de passe de compte." + +#: src/jade/tabs/recover.jade:55 +msgid "Updating..." +msgstr "Mise à jour..." + +#: src/jade/tabs/recover.jade:57 +msgid "Remember your password? {{1:Log In}}" +msgstr "Vous vous rappelez de votre mot de passe ? {{1:S'identifier}}" + +#: src/jade/tabs/register.jade:13 src/jade/tabs/register.jade:109 +#: src/jade/tabs/register.jade:141 src/jade/tabs/register.jade:188 +msgid "Sign Up" +msgstr "S'inscrire" + +#: src/jade/tabs/register.jade:19 src/jade/tabs/register.jade:21 +#: src/jade/tabs/register.jade:23 src/jade/tabs/register.jade:146 +#: src/jade/tabs/register.jade:148 src/jade/tabs/register.jade:191 +#: src/jade/tabs/register.jade:193 src/jade/tabs/register.jade:195 +msgid "Step {{1}}" +msgstr "Étape {{1}}" + +#: src/jade/tabs/register.jade:26 +msgid "Create Ripple name" +msgstr "Créer un nom Ripple" + +#: src/jade/tabs/register.jade:27 +msgid "" +"Please choose a Ripple name below. You will use this Ripple name to login to" +" Ripple Trade, so remember it! Ripple names are unique and public, like your" +" current Ripple address. {{1}}" +msgstr "Veuillez choisir un nom Ripple ci-dessous. Vous utiliserez ce nom Ripple pour vous connecter à Ripple Trade, donc ne l'oubliez pas! Les noms Ripple sont uniques et publics, comme votre adresse Ripple actuelle. {{1}}" + +#: src/jade/tabs/register.jade:28 +msgid "Learn More" +msgstr "En savoir plus" + +#: src/jade/tabs/register.jade:41 +msgid "Reserved for {{usernameReservedFor}}" +msgstr "Réservé pour {{usernameReservedFor}}" + +#: src/jade/tabs/register.jade:43 +msgid "" +"This name belongs to a high-traffic website and has been reserved to prevent" +" phishing." +msgstr "Ce nom appartient à un site web à fort trafic et a été réservé pour prévenir le phishing." + +#: src/jade/tabs/register.jade:49 +msgid "You can only use the following characters: a-z, 0-9 and hyphens (-)" +msgstr "Vous pouvez seulement utiliser les caractères suivants: a-z, 0-9 et les tirets (-)" + +#: src/jade/tabs/register.jade:55 +msgid "Cannot use hyphens in a row (--)" +msgstr "Impossible d'utiliser des tirets d'affilée (--)" + +#: src/jade/tabs/register.jade:80 +msgid "Email address is invalid" +msgstr "L'adresse email est invalide" + +#: src/jade/tabs/register.jade:82 src/jade/tabs/security.jade:151 +msgid "Secret key" +msgstr "Clé secrète" + +#: src/jade/tabs/register.jade:83 src/jade/tabs/send.jade:43 +#: src/jade/tabs/trade.jade:441 +msgid "hide" +msgstr "cacher" + +#: src/jade/tabs/register.jade:88 +msgid "Secret Account Key is invalid" +msgstr "La Clé Secrète de Compte est invalide" + +#: src/jade/tabs/register.jade:90 +msgid "" +"The account ~{{1}}{{2}} has already been created using this secret key." +msgstr "Le compte ~{{1}}{{2}} a déjà été créé à l'aide de cette clé secrète." + +#: src/jade/tabs/register.jade:98 +msgid "I agree to the {{productName}} {{1:Terms of Use}}" +msgstr "J'accepte les {{1:Conditions d'utilisation}} de {{productName}}" + +#: src/jade/tabs/register.jade:101 +msgid "" +"Please see our {{1}} to see how we collect, use and share information about " +"you" +msgstr "Merci de consulter notre {{1}} pour voir comment nous recueillons, utilisons et partageons des informations vous concernant" + +#: src/jade/tabs/register.jade:110 +msgid "Migrate Account" +msgstr "Migrer le compte" + +#: src/jade/tabs/register.jade:111 +msgid "Need to use your secret key? {{1}}" +msgstr "Besoin d'utiliser votre clé secrète ? {{1}}" + +#: src/jade/tabs/register.jade:113 +msgid "Use key" +msgstr "Utiliser la clé" + +#: src/jade/tabs/register.jade:121 +msgid "An error occurred during registration. Please try again later." +msgstr "Une erreur s'est produite lors de l'inscription. Veuillez réessayer ultérieurement." + +#: src/jade/tabs/register.jade:122 +msgid "The reported error was: {{1}}" +msgstr "L'erreur signalée était: {{1}}" + +#: src/jade/tabs/register.jade:131 +msgid "" +"There is already a wallet using this username, please choose a different " +"username and try again." +msgstr "Il existe déjà un portefeuille utilisant ce nom d'utilisateur, choisissez s'il vous plaît un nom d'utilisateur différent et essayez à nouveau." + +#: src/jade/tabs/register.jade:150 +msgid "" +"By proceeding, you understand that Ripple Trade does not provide a password " +"or secret key recovery mechanism. If you forget your Ripple name/password " +"and secret key, you will be unable to access this Ripple account." +msgstr "En poursuivant, vous comprenez que Ripple Trade ne fournit pas un mécanisme de récupération de clé secrète ou de mot de passe. Si vous oubliez votre nom Ripple / mot de passe et clé secrète, il vous sera impossible d'accéder à ce compte Ripple." + +#: src/jade/tabs/register.jade:155 +msgid "" +"You are now migrating your account- meaning you'll no longer be able to " +"access your account from ripple.com/client. You will retain all of your " +"balances, contacts, and account history. Your account will use the same " +"secret key as before. If you have already saved your secret key, please " +"continue your migration." +msgstr "Vous migrez maintenant votre compte- ce qui signifie que vous ne serez plus en mesure d'accéder à votre compte depuis ripple.com/client. Vous conserverez tous vos soldes, contacts et l'historique du compte. Votre compte utilisera la même clé secrète qu'avant. Si vous avez déjà sauvegardé votre clé secrète, merci de continuer votre migration." + +#: src/jade/tabs/register.jade:162 +msgid "" +"The secret key unlocks access to all your account funds in the event you " +"lose your Ripple name or password. Please write it down and store it " +"somewhere private and safe. {{1:Read more}} about keys and wallet safety." +msgstr "La clé secrète déverrouille l'accès à tous les fonds de votre compte dans le cas où vous perdriez votre nom Ripple ou mot de passe. S'il vous plaît notez-la et conservez-la dans un endroit privé et sûr. {{1:En savoir plus}} sur les clés et la sécurité du portefeuille." + +#: src/jade/tabs/register.jade:167 +msgid "" +"If you have not saved your secret key, please write it down and store it " +"somewhere private and safe. In the event you lose your Ripple name or " +"password, you can use this secret key to recover your funds." +msgstr "Si vous n'avez pas enregistré votre clé secrète, notez-la s'il vous plaît et rangez-la dans un endroit privé et sûr. Dans le cas où vous perdriez votre nom ou mot de passe Ripple, vous pouvez utiliser cette clé secrète pour récupérer vos fonds." + +#: src/jade/tabs/register.jade:176 +msgid "Show secret key" +msgstr "Montrer clé secrète" + +#: src/jade/tabs/register.jade:177 +msgid "Hide secret key" +msgstr "Cacher clé secrète" + +#: src/jade/tabs/register.jade:180 +msgid "Continue to email verification" +msgstr "Continuer vers la vérification par email" + +#: src/jade/tabs/register.jade:197 +msgid "" +"We’ve sent an email to {{1}}. To complete registration, click the link in " +"the email." +msgstr "Nous avons envoyé un email à {{1}}. Pour terminer l'enregistrement, cliquez sur le lien dans l'email." + +#: src/jade/tabs/register.jade:200 +msgid "Email token has been resent." +msgstr "Le jeton email a été renvoyé." + +#: src/jade/tabs/register.jade:203 +msgid "Email Address:" +msgstr "Adresse email:" + +#: src/jade/tabs/register.jade:210 +msgid "Re-send Email" +msgstr "Ré-envoyer email" + +#: src/jade/tabs/security.jade:7 +msgid "Active Session Timeout" +msgstr "Expiration de la session active" + +#: src/jade/tabs/security.jade:8 +msgid "" +"To view or edit your security settings, you must currently have an active " +"session." +msgstr "Pour afficher ou modifier vos paramètres de sécurité, vous devez actuellement avoir une session active." + +#: src/jade/tabs/security.jade:16 +msgid "Restore Session" +msgstr "Restaurer la Session" + +#: src/jade/tabs/security.jade:25 +msgid "Your Ripple password has been changed, please login again" +msgstr "Votre mot de passe Ripple a été changé, veuillez vous identifier à nouveau" + +#: src/jade/tabs/security.jade:27 +msgid "Couldn't change your Ripple password, please try again later." +msgstr "Impossible de changer votre mot de passe Ripple, veuillez réessayer ultérieurement." + +#: src/jade/tabs/security.jade:30 +msgid "Changing your Ripple password..." +msgstr "Modification de votre mot de passe Ripple..." + +#: src/jade/tabs/security.jade:31 +msgid "Your Ripple password has been changed successfully." +msgstr "Votre mot de passe Ripple a été changé avec succès." + +#: src/jade/tabs/security.jade:32 +msgid "Unable to load Two-factor authentication settings." +msgstr "Impossible de charger les paramètres d'authentification à deux facteurs." + +#: src/jade/tabs/security.jade:33 +msgid "Error saving Two-factor authentication settings." +msgstr "Erreur lors de l'enregistrement des paramètres d'authentification à deux facteurs." + +#: src/jade/tabs/security.jade:34 +msgid "The verification code is invalid." +msgstr "Le code de vérification est invalide." + +#: src/jade/tabs/security.jade:36 +msgid "Two-factor authentication has been successfully enabled." +msgstr "L'authentification à deux facteurs a été activée avec succès." + +#: src/jade/tabs/security.jade:37 +msgid "Two-factor authentication has been successfully disabled." +msgstr "L'authentification à deux facteurs a été désactivée avec succès." + +#: src/jade/tabs/security.jade:38 +msgid "Password protection has been successfully enabled." +msgstr "La protection par mot de passe a été activée avec succès." + +#: src/jade/tabs/security.jade:39 +msgid "Password protection has been successfully disabled." +msgstr "La protection par mot de passe a été désactivée avec succès." + +#: src/jade/tabs/security.jade:45 +msgid "Security settings" +msgstr "Paramètres de sécurité" + +#: src/jade/tabs/security.jade:51 +msgid "Loading Two-factor authentication settings..." +msgstr "Chargement des paramètres d'authentification à deux facteurs..." + +#: src/jade/tabs/security.jade:55 +msgid "Enabled" +msgstr "Activé" + +#: src/jade/tabs/security.jade:56 +msgid "Disabled" +msgstr "Désactivé" + +#: src/jade/tabs/security.jade:58 +msgid "disable" +msgstr "désactiver" + +#: src/jade/tabs/security.jade:60 +msgid "enable" +msgstr "activer" + +#: src/jade/tabs/security.jade:66 +msgid "" +"Authy is providing two-factor authentication for Ripple Trade. To enable " +"two-factor authentication, you must share some information with Authy." +msgstr "Authy assure l'authentification à deux facteurs pour Ripple Trade. Pour activer l'authentification à deux facteurs, vous devez partager des informations avec Authy." + +#: src/jade/tabs/security.jade:69 +msgid "- Your email address:" +msgstr "- Votre adresse email:" + +#: src/jade/tabs/security.jade:72 +msgid "- Your phone number:" +msgstr "- Votre numéro de téléphone:" + +#: src/jade/tabs/security.jade:74 +msgid "By proceeding, you agree to the Authy {{1: terms of service.}}" +msgstr "En continuant, vous acceptez les {{1: conditions de service}} de Authy." + +#: src/jade/tabs/security.jade:78 +msgid "Share" +msgstr "Partager" + +#: src/jade/tabs/security.jade:84 +msgid "Saving settings..." +msgstr "Enregistrement des paramètres..." + +#: src/jade/tabs/security.jade:85 +msgid "Disabling Two-factor authentication..." +msgstr "Désactivation de l'authentification à deux facteurs..." + +#: src/jade/tabs/security.jade:86 +msgid "Enabling Two-factor authentication..." +msgstr "Activation de l'authentification à deux facteurs..." + +#: src/jade/tabs/security.jade:104 +msgid "Resend Code" +msgstr "Renvoyer le Code" + +#: src/jade/tabs/security.jade:110 +msgid "Enable" +msgstr "Activer" + +#: src/jade/tabs/security.jade:114 +msgid "Ripple password" +msgstr "Mot de passe Ripple" + +#: src/jade/tabs/security.jade:129 +msgid "New password" +msgstr "Nouveau mot de passe" + +#: src/jade/tabs/security.jade:153 +msgid "" +"Your secret key unlocks access to your account funds. Please write it down " +"and store it somewhere private and safe. In the event you lose your Ripple " +"name or password, you can use this secret key to recover your funds." +msgstr "Votre clé secrète déverrouille l'accès aux fonds de votre compte. S'il vous plaît notez-la et conservez-la dans un endroit privé et sûr. Dans le cas où vous perdriez votre nom ou mot de passe Ripple, vous pouvez utiliser cette clé secrète pour récupérer vos fonds." + +#: src/jade/tabs/security.jade:165 +msgid "Password protection for transactions" +msgstr "Protection par mot de passe pour les transactions" + +#: src/jade/tabs/security.jade:168 +msgid "" +"If you turn off password requests, you’ll still need to enter your password " +"after each page refresh." +msgstr "Si vous désactivez les demandes de mot de passe, vous aurez toujours besoin d'entrer votre mot de passe après chaque rafraichissement de la page." + +#: src/jade/tabs/security.jade:176 +msgid "Yes" +msgstr "Oui" + +#: src/jade/tabs/security.jade:177 +msgid "No" +msgstr "Non" + +#: src/jade/tabs/security.jade:192 +msgid "Delete Ripple Trade account" +msgstr "Supprimer compte Ripple Trade" + +#: src/jade/tabs/security.jade:194 +msgid "" +"This deletes your Ripple Trade account. You will no longer be able to login " +"to Ripple Trade and your account data will be deleted. However, you can " +"still access your funds using your secret key." +msgstr "Cela supprime votre compte Ripple Trade. Vous ne serez plus en mesure de vous connecter à Ripple Trade et les données de votre compte seront supprimées. Cependant, vous pourrez toujours accéder à vos fonds à l'aide de votre clé secrète." + +#: src/jade/tabs/send.jade:12 +msgid "You have to be funded before you can send money" +msgstr "Vous devez être approvisionné avant de pouvoir envoyer de l'argent" + +#: src/jade/tabs/send.jade:25 +msgid "Recipient" +msgstr "Destinataire" + +#: src/jade/tabs/send.jade:30 +msgid "Please enter a recipient." +msgstr "Veuillez entrer un destinataire." + +#: src/jade/tabs/send.jade:32 +msgid "" +"Recipient should be a Ripple name, a contact, or Ripple/Bitcoin address." +msgstr "Le destinataire doit être un nom Ripple, un contact ou une adresse Ripple/Bitcoin." + +#: src/jade/tabs/send.jade:34 +msgid "This email address is not Ripple-enabled." +msgstr "Cette adresse email n'est pas compatible avec Ripple." + +#: src/jade/tabs/send.jade:38 +msgid "Show destination tag" +msgstr "Afficher l'étiquette de destination" + +#: src/jade/tabs/send.jade:47 +msgid "Destination cannot be blank." +msgstr "La destination ne peut être vide." + +#: src/jade/tabs/send.jade:48 +msgid "" +"Recipient requires a destination tag to be specified for the transaction. If" +" you don't know the destination tag, please contact them before doing a " +"transaction." +msgstr "Le destinataire requiert qu'une étiquette de destination soit spécifiée pour la transaction. Si vous ne connaissez pas l’étiquette de destination, contactez le destinataire avant de faire une transaction s'il vous plaît." + +#: src/jade/tabs/send.jade:53 +msgid "Source tag" +msgstr "Étiquette source" + +#: src/jade/tabs/send.jade:56 +msgid "Invalid source tag" +msgstr "Étiquette source invalide" + +#: src/jade/tabs/send.jade:59 +msgid "Invoice ID" +msgstr "Identifiant d'envoi" + +#: src/jade/tabs/send.jade:62 +msgid "Invoice ID must not be more than 64 characters long." +msgstr "L'identifiant d'envoi ne doit pas dépasser 64 caractères." + +#: src/jade/tabs/send.jade:77 +msgid "Recipient will receive" +msgstr "Le destinataire recevra" + +#: src/jade/tabs/send.jade:88 +msgid "{{send.recipient | rpcontactname}} can't receive this currency." +msgstr "{{send.recipient | rpcontactname}} ne peut recevoir cette devise." + +#: src/jade/tabs/send.jade:92 src/jade/tabs/trust.jade:102 +msgid "Amount must be greater than zero." +msgstr "Le montant doit être plus élevé que zéro." + +#: src/jade/tabs/send.jade:93 +msgid "" +"You are either trying to send too little or too much XRP.Minimum amount is " +"0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "Vous tentez d'envoyer soit trop ou trop peu de XRP. Le montant minimum est de 0.000001 XRP et le montant maximal est de 100 milliards de XRP." + +#: src/jade/tabs/send.jade:97 +msgid "" +"Recipient does not allow XRP payments. Are you sure you want to send XRP " +"anyway?" +msgstr "Le destinataire n'accepte pas le paiement en XRP. Êtes-vous sûr de vouloir tout de même envoyer des XRP ?" + +#: src/jade/tabs/send.jade:99 +msgid "" +"{{send.recipient | rpcontactname}}trusts you for {{send.trust_limit | " +"rpamount}} {{send.trust_limit | rpcurrency}}." +msgstr "{{send.recipient | rpcontactname}}vous fait confiance pour {{send.trust_limit | rpamount}} {{send.trust_limit | rpcurrency}}." + +#: src/jade/tabs/send.jade:103 +msgid "Send XRP" +msgstr "Envoyer des XRP" + +#: src/jade/tabs/send.jade:107 +msgid "" +"Destination account is unfunded; send at least {{send.xrp_deficiency | " +"rpamount}} XRP to fund it.{{1}}" +msgstr "Le compte de destination n'est pas approvisionné; envoyer au moins {{send.xrp_deficiency | rpamount}} XRP pour le financer.{{1}}" + +#: src/jade/tabs/send.jade:114 +msgid "Checking" +msgstr "Vérification en cours" + +#: src/jade/tabs/send.jade:117 +msgid "Analyzing address" +msgstr "Analyse de l'adresse" + +#: src/jade/tabs/send.jade:120 +msgid "Scanning accepted currencies" +msgstr "Examen des devises acceptées" + +#: src/jade/tabs/send.jade:123 +msgid "Requesting quote" +msgstr "Demande d'une estimation" + +#: src/jade/tabs/send.jade:126 +msgid "Calculating paths" +msgstr "Calcul des chemins" + +#: src/jade/tabs/send.jade:129 +msgid "Calculating alternatives" +msgstr "Calcul des alternatives" + +#: src/jade/tabs/send.jade:130 +msgid "" +"You cannot send {{send.amount}} {{send.currency}} to {{send.recipient}}. " +"Either your account has insufficient funds, or {{send.recipient}} doesn't " +"accept {{send.currency}}." +msgstr "Vous ne pouvez pas envoyer {{send.amount}} {{send.currency}} à {{send.recipient}}. Soit votre compte n'est pas suffisamment approvisionné, ou {{send.recipient}} n'accepte pas {{send.currency}}." + +#: src/jade/tabs/send.jade:134 +msgid "" +"You cannot send {{send.amount}} {{send.currency}} to{{send.recipient}}. Your" +" account has insufficient funds." +msgstr "Vous ne pouvez pas envoyer {{send.amount}} {{send.currency}} à{{send.recipient}}. Votre compte n'est pas suffisamment approvisionné." + +#: src/jade/tabs/send.jade:137 +msgid "There are no valid currency choices for this destination." +msgstr "Il n'y a aucun choix de devise valide pour cette destination." + +#: src/jade/tabs/send.jade:139 +msgid "Error while retrieving quote for outbound payment. {{1}}" +msgstr "Erreur lors de la récupération d'une estimation pour un paiement sortant. {{1}}" + +#: src/jade/tabs/send.jade:148 +msgid "You can send" +msgstr "Vous pouvez envoyer" + +#: src/jade/tabs/send.jade:150 +msgid "Or you can send" +msgstr "Ou vous pouvez envoyer" + +#: src/jade/tabs/send.jade:164 +msgid "Send {{ alt.amount | rpcurrency }} {{1}}" +msgstr "Envoyer {{ alt.amount | rpcurrency }} {{1}}" + +#: src/jade/tabs/send.jade:181 +msgid "Ripple is calculating a path for your payment." +msgstr "Ripple calcule un chemin pour votre paiement." + +#: src/jade/tabs/send.jade:186 +msgid "You are sending {{1}} to" +msgstr "Vous envoyez {{1}} à" + +#: src/jade/tabs/send.jade:194 +msgid "Destination tag: {{send.dt}}" +msgstr "Étiquette de destination: {{send.dt}}" + +#: src/jade/tabs/send.jade:195 +msgid "They will receive" +msgstr "Ils recevront" + +#: src/jade/tabs/send.jade:198 +msgid "You will pay at most" +msgstr "Vous paierez au plus" + +#: src/jade/tabs/send.jade:204 +msgid "Are you sure?" +msgstr "Êtes-vous certain ?" + +#: src/jade/tabs/send.jade:210 +msgid "Password required to unlock wallet" +msgstr "Mot de passe requis pour déverrouiller le portefeuille" + +#: src/jade/tabs/send.jade:234 src/jade/tabs/send.jade:266 +msgid "Contact saved!" +msgstr "Contact sauvegardé!" + +#: src/jade/tabs/send.jade:236 src/jade/tabs/send.jade:268 +msgid "Add this address to contacts" +msgstr "Ajouter cette adresse aux contacts" + +#: src/jade/tabs/send.jade:242 src/jade/tabs/send.jade:274 +msgid "Name this user" +msgstr "Nommer cet utilisateur" + +#: src/jade/tabs/send.jade:246 src/jade/tabs/send.jade:278 +msgid "This contact already exists, please choose another name." +msgstr "Ce contact existe déjà, veuillez choisir un autre nom." + +#: src/jade/tabs/send.jade:250 src/jade/tabs/send.jade:283 +#: src/jade/tabs/trust.jade:233 +msgid "Saving..." +msgstr "Sauvegarde en cours..." + +#: src/jade/tabs/send.jade:255 src/jade/tabs/send.jade:289 +msgid "Send another payment" +msgstr "Envoyer un autre paiement" + +#: src/jade/tabs/settings/navbar.jade:2 +msgid "Security" +msgstr "Sécurité" + +#: src/jade/tabs/settingstrade.jade:12 +msgid "Trade settings" +msgstr "Paramètres d'échange" + +#: src/jade/tabs/settingstrade.jade:14 +msgid "Trade currency pairs" +msgstr "Échanger paire de devises" + +#: src/jade/tabs/trade.jade:12 src/jade/tabs/trade.jade:451 +msgid "Loading Order Book" +msgstr "Chargement du livre d'ordres" + +#: src/jade/tabs/trade.jade:31 src/jade/tabs/widgets/markets.jade:24 +msgid "flip" +msgstr "basculer" + +#: src/jade/tabs/trade.jade:34 +msgid "add pair" +msgstr "Ajouter une paire" + +#: src/jade/tabs/trade.jade:37 +msgid "edit pairs" +msgstr "Modifier les paires" + +#: src/jade/tabs/trade.jade:41 +msgid "Base Currency" +msgstr "Devise de base" + +#: src/jade/tabs/trade.jade:44 +msgid "Base Gateway" +msgstr "Passerelle de base" + +#: src/jade/tabs/trade.jade:49 +msgid "Counter Currency" +msgstr "Devise de contrepartie" + +#: src/jade/tabs/trade.jade:52 +msgid "Counter Gateway" +msgstr "Passerelle de contrepartie" + +#: src/jade/tabs/trade.jade:57 +msgid "Add" +msgstr "Ajouter" + +#: src/jade/tabs/trade.jade:60 +msgid "Base currency issuer ({{order.first_currency | rpcurrency}})" +msgstr "Émetteur de la devise de base ({{order.first_currency | rpcurrency}})" + +#: src/jade/tabs/trade.jade:63 +msgid "Ripple name or contact" +msgstr "Nom Ripple ou contact" + +#: src/jade/tabs/trade.jade:65 +msgid "Not a valid Ripple address or contact" +msgstr "Adresse Ripple ou contact non valide" + +#: src/jade/tabs/trade.jade:70 +msgid "Counter currency issuer ({{order.second_currency | rpcurrency}})" +msgstr "Émetteur de la devise de contrepartie ({{order.second_currency | rpcurrency}})" + +#: src/jade/tabs/trade.jade:75 +msgid "Not a valid Ripple name or address" +msgstr "Pas un nom Ripple ou une adresse valide." + +#: src/jade/tabs/trade.jade:79 +msgid "" +"To show an orderbook, choose from the dropdown above or click \"Add custom " +"pair\"." +msgstr "Pour afficher un carnet d'ordres, choisissez dans le menu déroulant ci-dessus ou cliquez sur \"Ajouter une paire personnalisée\"." + +#: src/jade/tabs/trade.jade:86 +msgid "Bid" +msgstr "Offre" + +#: src/jade/tabs/trade.jade:91 +msgid "Ask" +msgstr "Demande" + +#: src/jade/tabs/trade.jade:96 +msgid "Spread" +msgstr "Écart" + +#: src/jade/tabs/trade.jade:101 +msgid "Last price" +msgstr "Dernier prix" + +#: src/jade/tabs/trade.jade:108 +msgid "You have to be funded before you can trade" +msgstr "Vous devez être approvisionné avant d'être en mesure d'échanger" + +#: src/jade/tabs/trade.jade:115 +msgid "Buy {{1}} {{order.first_currency | rpcurrency}}" +msgstr "Acheter {{1}} {{order.first_currency | rpcurrency}}" + +#: src/jade/tabs/trade.jade:118 +msgid "Sell {{1}} {{order.first_currency | rpcurrency}}" +msgstr "Vendre {{1}} {{order.first_currency | rpcurrency}}" + +#: src/jade/tabs/trade.jade:121 src/jade/tabs/trade.jade:130 +msgid "{{1}} available" +msgstr "{{1}} disponible" + +#: src/jade/tabs/trade.jade:144 +msgid "Amount To Buy" +msgstr "Montant à acheter" + +#: src/jade/tabs/trade.jade:145 +msgid "Amount To Sell" +msgstr "Montant à vendre" + +#: src/jade/tabs/trade.jade:152 src/jade/tabs/trade.jade:167 +#: src/jade/tabs/trade.jade:182 +msgid "Required" +msgstr "Requis" + +#: src/jade/tabs/trade.jade:154 src/jade/tabs/trade.jade:169 +#: src/jade/tabs/trade.jade:184 +msgid "Must be greater than zero" +msgstr "Doit être supérieur a zéro " + +#: src/jade/tabs/trade.jade:156 src/jade/tabs/trade.jade:171 +#: src/jade/tabs/trade.jade:186 +msgid "" +"Minimum amount of XRP you can send is a drop (0.000001) and the maximum is " +"100 billion XRPs." +msgstr "Le montant minimum de XRP que vous pouvez envoyer est une goutte (0,000001) et le maximum est de 100 milliards de XRPs." + +#: src/jade/tabs/trade.jade:160 +msgid "Price of Each" +msgstr "Prix pour chaque" + +#: src/jade/tabs/trade.jade:175 +msgid "Order Value (max)" +msgstr "Valeur de l'ordre (max)" + +#: src/jade/tabs/trade.jade:192 +msgid "You are wanting to buy {{1}} for {{2}} ({{3}} per {{4}})" +msgstr "Vous voulez acheter {{1}} pour {{2}} ({{3}} par {{4}})" + +#: src/jade/tabs/trade.jade:201 +msgid "You are wanting to sell {{1}} for {{2}} ({{3}} per {{4}})" +msgstr "Vous voulez vendre {{1}} pour {{2}} ({{3}} par {{4}})" + +#: src/jade/tabs/trade.jade:213 +msgid "Buy" +msgstr "Acheter" + +#: src/jade/tabs/trade.jade:214 +msgid "Sell" +msgstr "Vendre" + +#: src/jade/tabs/trade.jade:220 +msgid "You do not have sufficient funds to create an order." +msgstr "Vous n'avez pas de fonds suffisants pour créer un ordre." + +#: src/jade/tabs/trade.jade:225 +msgid "" +"You are about to create an order to {{1: buy}} {{2: " +"sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}{{8}}" +msgstr "Vous êtes sur le point de créer un ordre pour {{1: acheter}} {{2: vendre}}{{3}}{{4:pour}}{{5}}{{6}}{{7:Êtes-vous sûr ?}}{{8}}" + +#: src/jade/tabs/trade.jade:242 +msgid "CAUTION: Your order is far off from the current market price." +msgstr "ATTENTION: Votre ordre est très éloigné du prix actuel du marché." + +#: src/jade/tabs/trade.jade:246 src/jade/tabs/trade.jade:407 +msgid "« Back" +msgstr "« Retour" + +#: src/jade/tabs/trade.jade:255 +msgid "Sending order to Ripple network..." +msgstr "Envoi de l'ordre au réseau Ripple en cours..." + +#: src/jade/tabs/trade.jade:261 +msgid "Your order has been submitted." +msgstr "Votre ordre a été envoyé." + +#: src/jade/tabs/trade.jade:263 +msgid "Your order is now active." +msgstr "Votre ordre est maintenant actif." + +#: src/jade/tabs/trade.jade:265 +msgid "Your order has been filled." +msgstr "Votre ordre a été exécuté." + +#: src/jade/tabs/trade.jade:267 +msgid "" +"Your order has been partially filled. The remaining amount is now active." +msgstr "Votre ordre a été partiellement exécuté. Le montant restant est maintenant actif." + +#: src/jade/tabs/trade.jade:276 +msgid "Submit another order" +msgstr "Envoyer un autre ordre" + +#: src/jade/tabs/trade.jade:278 +msgid "My Orders{{1}}{{2}}" +msgstr "Mes Ordres{{1}}{{2}}" + +#: src/jade/tabs/trade.jade:287 +msgid "Your order has been modified." +msgstr "Votre ordre a été modifié." + +#: src/jade/tabs/trade.jade:289 +msgid "Your order #{{ cancelOrder.seq }} has been cancelled." +msgstr "Votre ordre #{{ cancelOrder.seq }} a été annulé." + +#: src/jade/tabs/trade.jade:291 +msgid "" +"Your order could not be modified and no longer exists. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "Votre ordre n'a pas pu être modifié et n'existe plus. Erreur: {{order[editOrder.type].engine_result_message}}" + +#: src/jade/tabs/trade.jade:293 +msgid "Unable to cancel order as it no longer exists." +msgstr "Impossible d'annuler l'ordre car il n'existe plus." + +#: src/jade/tabs/trade.jade:295 +msgid "Modifying your order (Placing new order) ..." +msgstr "Modification de votre ordre (Placement nouvel ordre) ..." + +#: src/jade/tabs/trade.jade:299 +msgid "Current pair only" +msgstr "Paire actuelle uniquement" + +#: src/jade/tabs/trade.jade:313 src/jade/tabs/widgets/orders.jade:24 +msgid "reverse" +msgstr "inverser" + +#: src/jade/tabs/trade.jade:322 src/jade/tabs/widgets/orders.jade:33 +msgid "QTY{{1}}" +msgstr "QTÉ{{1}}" + +#: src/jade/tabs/trade.jade:324 src/jade/tabs/widgets/orders.jade:35 +msgid "Base{{1}}" +msgstr "Base{{1}}" + +#: src/jade/tabs/trade.jade:326 src/jade/tabs/widgets/orders.jade:37 +msgid "Counter{{1}}" +msgstr "Contre{{1}}" + +#: src/jade/tabs/trade.jade:328 src/jade/tabs/widgets/orders.jade:39 +msgid "Limit{{1}}" +msgstr "Limite{{1}}" + +#: src/jade/tabs/trade.jade:334 +msgid "Action" +msgstr "Action" + +#: src/jade/tabs/trade.jade:360 src/jade/tabs/trade.jade:424 +msgid "TRADE CONFIRMATION" +msgstr "CONFIRMATION DE TRANSACTION" + +#: src/jade/tabs/trade.jade:362 +msgid "{{1:Please confirm that you wish to cancel order #{{entry.seq}}}}" +msgstr "{{1:Veuillez confirmer que vous souhaitez annuler l'ordre #{{entry.seq}}}}" + +#: src/jade/tabs/trade.jade:364 +msgid "" +"{{1}} div span.modal-order-type(l10n-inc) FILLED: span filled data div" +" span.modal-order-type(l10n-inc) REMAIN: span remain data div span" +".modal-order-type(l10n-inc) PLACED: span time data" +msgstr "{{1}} div span.modal-order-type(l10n-inc) ÉXECUTÉ: span filled data div span.modal-order-type(l10n-inc) RESTE: span remain data div span.modal-order-type(l10n-inc) PLACÉ: span time data" + +#: src/jade/tabs/trade.jade:371 +msgid "with" +msgstr "avec" + +#: src/jade/tabs/trade.jade:372 +msgid "for" +msgstr "pour" + +#: src/jade/tabs/trade.jade:376 +msgid "at" +msgstr "à" + +#: src/jade/tabs/trade.jade:389 +msgid "Cancel order" +msgstr "Annuler l'ordre" + +#: src/jade/tabs/trade.jade:390 src/jade/tabs/trade.jade:431 +msgid "back" +msgstr "retour" + +#: src/jade/tabs/trade.jade:407 +msgid "" +"CAUTION: Your new order is far off from the current market price.
Do " +"you still want to replace your order ?" +msgstr "ATTENTION: Votre nouvel ordre est loin du prix du marché actuel.
Voulez-vous toujours remplacer votre ordre ?" + +#: src/jade/tabs/trade.jade:410 +msgid "Unable to cancel order. Error: {{entry.errorMsg}}" +msgstr "Impossible d'annuler l'ordre. Erreur: {{entry.errorMsg}}" + +#: src/jade/tabs/trade.jade:412 +msgid "" +"Your order amount has been updated by Ripple. Please go back and edit again " +"to modify this order." +msgstr "Le montant de votre ordre a été mis à jour par Ripple. Veuillez revenir en arrière et éditer à nouveau pour modifier cet ordre." + +#: src/jade/tabs/trade.jade:414 +msgid "" +"Your order could not be modified. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "Votre ordre n'a pas pu être modifié. Erreur: {{order[editOrder.type].engine_result_message}}" + +#: src/jade/tabs/trade.jade:415 +msgid "X" +msgstr "X" + +#: src/jade/tabs/trade.jade:420 +msgid "cancel all" +msgstr "tout annuler" + +#: src/jade/tabs/trade.jade:426 +msgid "{{1:Please confirm that you wish to cancel all orders.}}" +msgstr "{{1:Veuillez confirmer que vous souhaitez annuler tous les ordres.}}" + +#: src/jade/tabs/trade.jade:430 +msgid "Cancel all orders" +msgstr "Annuler tous les ordres" + +#: src/jade/tabs/trade.jade:433 src/jade/tabs/widgets/orders.jade:64 +msgid "No current orders. {{1}}" +msgstr "Pas d'ordres en cours. {{1}}" + +#: src/jade/tabs/trade.jade:434 src/jade/tabs/widgets/orders.jade:65 +msgid "View orders history" +msgstr "Voir l'historique des ordres" + +#: src/jade/tabs/trade.jade:437 +msgid "Orderbook{{1}}" +msgstr "Carnet d'ordres{{1}}" + +#: src/jade/tabs/trade.jade:440 +msgid "show" +msgstr "afficher" + +#: src/jade/tabs/trade.jade:442 +msgid "Last updated {{1}} {{2: seconds}} {{3: second}} ago" +msgstr "Dernière mise à jour il y a {{1}} {{2: secondes}} {{3: seconde}}" + +#: src/jade/tabs/trade.jade:458 +msgid "Bids" +msgstr "Offres" + +#: src/jade/tabs/trade.jade:460 src/jade/tabs/trade.jade:487 +msgid "Sum{{1}}{{2}}" +msgstr "Somme{{1}}{{2}}" + +#: src/jade/tabs/trade.jade:463 src/jade/tabs/trade.jade:484 +msgid "Size{{1}}{{2}}" +msgstr "Taille{{1}}{{2}}" + +#: src/jade/tabs/trade.jade:466 +msgid "Bid Price{{1}}{{2}}" +msgstr "Prix Offert{{1}}{{2}}" + +#: src/jade/tabs/trade.jade:477 +msgid "There are currently no bids for this pair." +msgstr "Il n'y a actuellement pas d'offre pour cette pair." + +#: src/jade/tabs/trade.jade:479 +msgid "Asks" +msgstr "Demandes" + +#: src/jade/tabs/trade.jade:481 +msgid "Ask Price{{1}}{{2}}" +msgstr "Prix demandé{{1}}{{2}}" + +#: src/jade/tabs/trade.jade:498 +msgid "There are currently no asks for this pair." +msgstr "Il n'y a actuellement pas de demande pour cette pair." + +#: src/jade/tabs/trade.jade:501 +msgid "No more orders" +msgstr "Pas plus d'ordres" + +#: src/jade/tabs/trust.jade:29 +msgid "Removing gateway..." +msgstr "Suppression de la passerelle..." + +#: src/jade/tabs/trust.jade:31 +msgid "Gateway removed." +msgstr "Passerelle supprimée." + +#: src/jade/tabs/trust.jade:33 +msgid "Your changes have been saved." +msgstr "Vos modifications ont été enregistrées." + +#: src/jade/tabs/trust.jade:35 +msgid "Request failed." +msgstr "La demande a échoué." + +#: src/jade/tabs/trust.jade:39 +msgid "Account unlock failed." +msgstr "Le déverrouillage du compte a échoué." + +#: src/jade/tabs/trust.jade:55 +msgid "Name / Address" +msgstr "Nom / Adresse" + +#: src/jade/tabs/trust.jade:57 src/jade/tabs/trust.jade:90 +msgid "Currency" +msgstr "Devise" + +#: src/jade/tabs/trust.jade:60 +msgid "Trust Limit" +msgstr "Limite de confiance" + +#: src/jade/tabs/trust.jade:66 +msgid "Gateway's Ripple name or address" +msgstr "Nom Ripple ou adresse de la passerelle" + +#: src/jade/tabs/trust.jade:100 +msgid "Amount field is required." +msgstr "Le champ montant est requis." + +#: src/jade/tabs/trust.jade:115 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"connect to. More " +"information" +msgstr "Autoriser les soldes de cette ligne de confiance à être transférés vers un autre émetteur auquel vous vous connectez. Plus d'information" + +#: src/jade/tabs/trust.jade:125 +msgid "" +"{{1:You are connecting a gateway, which means}}{{2:{{ counterparty_address |" +" rpripplename:{tilde: true} }} can:}}" +msgstr "{{1:Vous connectez une passerelle, ce qui signifie que}}{{2:{{ counterparty_address | rpripplename:{tilde: true} }} peut:}}" + +#: src/jade/tabs/trust.jade:128 +msgid "{{1:- Hold up to }}{{2}} {{3: on your behalf}}" +msgstr "{{1:- Contient jusqu'à }}{{2}} {{3: en votre nom}}" + +#: src/jade/tabs/trust.jade:132 +msgid "{{1:- Hold }}{{2}} {{3: on your behalf}}" +msgstr "{{1:- Contient }}{{2}} {{3: en votre nom}}" + +#: src/jade/tabs/trust.jade:148 +msgid "Verifying address" +msgstr "Vérification de l'adresse" + +#: src/jade/tabs/trust.jade:151 +msgid "" +"Your account has to be {{1:activated}} before you can add a gateway account." +msgstr "Votre compte doit être {{1:activé}} avant de pouvoir ajouter un compte de passerelle." + +#: src/jade/tabs/trust.jade:159 +msgid "Connect gateway" +msgstr "Connecter une passerelle" + +#: src/jade/tabs/trust.jade:169 src/jade/tabs/trust.jade:221 +msgid "Limit" +msgstr "Limite" + +#: src/jade/tabs/trust.jade:170 +msgid "Min" +msgstr "Min" + +#: src/jade/tabs/trust.jade:172 +msgid "Edit" +msgstr "Editer" + +#: src/jade/tabs/trust.jade:188 +msgid "Off" +msgstr "Désactivé" + +#: src/jade/tabs/trust.jade:189 +msgid "On" +msgstr "Activé" + +#: src/jade/tabs/trust.jade:192 src/jade/tabs/trust.jade:201 +#: src/jade/tabs/trust.jade:206 src/jade/tabs/trust.jade:210 +#: src/jade/tabs/trust.jade:239 src/jade/tabs/trust.jade:244 +#: src/jade/tabs/trust.jade:248 +msgid "Incoming trust" +msgstr "Confiance entrante" + +#: src/jade/tabs/trust.jade:192 +msgid "" +"You can't edit incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "Vous ne pouvez pas modifier les lignes de confiance entrantes. Les lignes de confiance entrantes sont quand les autres utilisateurs de Ripple vous font confiance." + +#: src/jade/tabs/trust.jade:200 src/jade/tabs/trust.jade:202 +#: src/jade/tabs/trust.jade:205 src/jade/tabs/trust.jade:207 +#: src/jade/tabs/trust.jade:209 src/jade/tabs/trust.jade:211 +#: src/jade/tabs/trust.jade:238 src/jade/tabs/trust.jade:240 +#: src/jade/tabs/trust.jade:243 src/jade/tabs/trust.jade:245 +#: src/jade/tabs/trust.jade:247 src/jade/tabs/trust.jade:249 +msgid "Remove" +msgstr "Enlever" + +#: src/jade/tabs/trust.jade:201 src/jade/tabs/trust.jade:206 +#: src/jade/tabs/trust.jade:210 src/jade/tabs/trust.jade:239 +#: src/jade/tabs/trust.jade:244 src/jade/tabs/trust.jade:248 +msgid "" +"You can't delete incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "Vous ne pouvez pas supprimer les lignes de confiance entrantes. Les lignes de confiance entrantes sont quand les autres utilisateurs de Ripple vous font confiance." + +#: src/jade/tabs/trust.jade:226 +msgid "Rippling {{1}}" +msgstr "Rippling {{1}}" + +#: src/jade/tabs/tx.jade:5 +msgid "Loading transaction details..." +msgstr "Chargement des détails de la transaction..." + +#: src/jade/tabs/tx.jade:7 +msgid "An error occurred while loading the transaction details." +msgstr "Une erreur est survenue durant le chargement des détails de la transaction." + +#: src/jade/tabs/tx.jade:10 +msgid "Transaction #" +msgstr "Transaction #" + +#: src/jade/tabs/tx.jade:15 +msgid "Transaction type: {{1}}" +msgstr "Type de transaction: {{1}}" + +#: src/jade/tabs/tx.jade:22 +msgid "Address sent from" +msgstr "Adresse de l'expéditeur" + +#: src/jade/tabs/tx.jade:26 +msgid "Amount sent" +msgstr "Montant envoyé" + +#: src/jade/tabs/tx.jade:30 +msgid "Currency sent" +msgstr "Devise envoyée" + +#: src/jade/tabs/tx.jade:35 +msgid "Address sent to" +msgstr "Adresse du récipiendaire" + +#: src/jade/tabs/tx.jade:39 +msgid "Amount received" +msgstr "Montant reçu" + +#: src/jade/tabs/tx.jade:43 +msgid "Currency received" +msgstr "Devise reçue" + +#: src/jade/tabs/tx.jade:50 +msgid "Network fee paid" +msgstr "Frais de réseau payé" + +#: src/jade/tabs/tx.jade:62 +msgid "Ledger number" +msgstr "Numéro du registre" + +#: src/jade/tabs/tx.jade:68 +msgid "Address sent from:" +msgstr "Adresse de l'expéditeur:" + +# Sorry, we don't have an info page layout for this transaction type yet. +#: src/jade/tabs/tx.jade:72 +msgid "" +"Sorry, we don't have an info page layout for this transaction type yet." +msgstr "Désolé, nous n'avons pas encore de page d'information pour ce type de transaction." + +#: src/jade/tabs/usd.jade:35 +msgid "US Dollar Deposit" +msgstr "Dépôt de Dollars US" + +#: src/jade/tabs/usd.jade:39 +msgid "SnapSwap US (~SnapSwap){{1}}{{2}}" +msgstr "SnapSwap US (~SnapSwap){{1}}{{2}}" + +#: src/jade/tabs/usd.jade:45 +msgid "USA" +msgstr "USA" + +#: src/jade/tabs/usd.jade:48 +msgid "$ 0.31-$ 5.00" +msgstr "$ 0.31-$ 5.00" + +#: src/jade/tabs/usd.jade:56 +msgid "" +"Ripple Trade has partnered with SnapSwap to provide easier access to USD. " +"Following this action will enable SnapSwap to hold USD on your behalf." +msgstr "Ripple Trade a établi un partenariat avec SnapSwap pour faciliter l'accès aux USD. Cette action permettra à SnapSwap de conserver les USD en votre nom." + +#: src/jade/tabs/usd.jade:73 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.US" +msgstr "NOUVEAUX CLIENTS- INSCRIVEZ-VOUS SUR SNAPSWAP.US" + +#: src/jade/tabs/usd.jade:74 +msgid "Register and verify your account at SnapSwap US. You will need: {{1}}" +msgstr "Inscrivez-vous et vérifiez votre compte sur SnapSwap US. Vous aurez besoin de: {{1}}" + +#: src/jade/tabs/usd.jade:82 +msgid "EXISTING SNAPSWAP US CUSTOMERS" +msgstr "CLIENTS ACTUELS DE SNAPSWAP US" + +#: src/jade/tabs/usd.jade:93 +msgid "Deposit instantly via selected banks" +msgstr "Dépôt instantané via des banques sélectionnées" + +#: src/jade/tabs/usd.jade:95 +msgid "Deposit cash at Bank of America branches (3 business days)" +msgstr "Dépôt en espèces dans les succursales de Bank of America (3 jours ouvrés)" + +#: src/jade/tabs/usd.jade:97 +msgid "Deposit via online bank transfer (3 business days)" +msgstr "Dépôt par virement bancaire en ligne (3 jours ouvrés)" + +#: src/jade/tabs/usd.jade:103 +msgid "Directly to your bank account (3-4 business days)" +msgstr "Directement sur votre compte bancaire (3-4 jours ouvrables)" + +#: src/jade/tabs/usd.jade:105 +msgid "Directly to your PayPal account (several minutes)" +msgstr "Directement sur votre compte PayPal (plusieurs minutes)" + +#: src/jade/tabs/widgets/assetallocation.jade:3 +msgid "Asset Allocation" +msgstr "Allocation d'actifs" + +#: src/jade/tabs/widgets/balances.jade:3 +msgid "Balances" +msgstr "Soldes" + +#: src/jade/tabs/widgets/balances.jade:12 +msgid "Balance
{{ account.Balance | rpamount }} XRP" +msgstr "Solde
{{ account.Balance | rpamount }} XRP" + +#: src/jade/tabs/widgets/balances.jade:16 +msgid "Reserve" +msgstr "Réserve" + +#: src/jade/tabs/widgets/balances.jade:18 +msgid "Reserve amount" +msgstr "Montant de la réserve" + +#: src/jade/tabs/widgets/balances.jade:18 +msgid "" +"Minimum amount of XRP required to fund your account. You cannot spend the " +"reserve." +msgstr "Montant minimum de XRP nécessaire pour financer votre compte. Vous ne pouvez pas dépenser la réserve." + +#: src/jade/tabs/widgets/balances.jade:20 +msgid "Reserve amount
{{ account.reserve | rpamount }} XRP" +msgstr "Montant de la réserve
{{ account.reserve | rpamount }} XRP" + +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Available amount" +msgstr "Montant disponible" + +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Total amount of XRP in your account minus the reserve amount." +msgstr "Montant total de XRP sur votre compte moins le montant de la réserve." + +#: src/jade/tabs/widgets/balances.jade:28 +msgid "Available amount
{{ account.max_spend | rpamount }} XRP" +msgstr "Montant disponible
{{ account.max_spend | rpamount }} XRP" + +#: src/jade/tabs/widgets/balances.jade:35 +msgid "" +"Balance
{{ entry.total | rpamount:{precision: 30, hard_precision: true} " +"}} {{ entry.total | rpcurrency }}" +msgstr "Solde
{{ entry.total | rpamount:{precision: 30, hard_precision: true} }} {{ entry.total | rpcurrency }}" + +#: src/jade/tabs/widgets/balances.jade:43 +msgid "" +"Balance
{{ component | rpamount:{precision: 30, rel_min_precision: -2, " +"hard_precision: true} }} {{ entry.total | rpcurrency }}" +msgstr "Solde
{{ component | rpamount:{precision: 30, rel_min_precision: -2, hard_precision: true} }} {{ entry.total | rpcurrency }}" + +#: src/jade/tabs/widgets/markets.jade:3 +msgid "Markets" +msgstr "Marchés" + +#: src/jade/tabs/widgets/networth.jade:3 +msgid "Net Worth" +msgstr "Valeur Nette" + +#: src/jade/tabs/widgets/networth.jade:8 +msgid "{{1:{{1:In}}}}{{2}}" +msgstr "{{1:{{1:Dans}}}}{{2}}" + +#: src/jade/tabs/widgets/networth.jade:14 +msgid "Estimated from latest trade price" +msgstr "Estimé à partir du dernier prix d'échange" + +#: src/jade/tabs/widgets/networth.jade:23 +msgid "(excluding negative balances)" +msgstr "(hors soldes négatifs)" + +#: src/jade/tabs/widgets/orders.jade:3 +msgid "My Orders" +msgstr "Mes Ordres" + +#: src/jade/tabs/widgets/orders.jade:68 +msgid "trade currencies" +msgstr "Échanger des devises" + +#: src/jade/tabs/xrp.jade:19 +msgid "Ripple name: {{1}}{{2}}{{3}}" +msgstr "Nom Ripple: {{1}}{{2}}{{3}}" + +#: src/jade/tabs/xrp.jade:21 +msgid "loading..." +msgstr "chargement..." + +#: src/jade/tabs/xrp.jade:23 +msgid "Show address" +msgstr "Afficher l'adresse" + +#: src/jade/tabs/xrp.jade:25 +msgid "" +"Ripple names are a new feature on Ripple! Use your Ripple name " +"(~{{userCredentials.username}}) to receive money. You can still use your " +"full Ripple address, and while we are working to transition to Ripple names," +" some gateways may still ask for your full address." +msgstr "Les noms Ripple sont une nouvelle fonctionnalité sur Ripple! Utilisez votre nom Ripple (~{{userCredentials.username}}) pour recevoir de l'argent. Vous pouvez toujours utiliser votre adresse Ripple complète, et pendant que nous travaillons à la transition vers les noms Ripple, certaines passerelles peuvent encore demander votre adresse complète." diff --git a/l10n/it/messages.po b/l10n/it/messages.po index c268fa15b..2a8e8fb56 100644 --- a/l10n/it/messages.po +++ b/l10n/it/messages.po @@ -8,15 +8,15 @@ # Luigigiuseppe Prosperi , 2013 # Luigigiuseppe Prosperi , 2013 # Marco Montesi , 2013 -# tuloski, 2014 +# tuloski, 2014-2015 # oblo , 2013-2015 # oblo , 2013 # Marco Montesi , 2013 -# Roberto Catini , 2014 +# Roberto Catini , 2014-2015 msgid "" msgstr "" "Project-Id-Version: Ripple Trade\n" -"PO-Revision-Date: 2015-01-07 20:40+0000\n" +"PO-Revision-Date: 2015-02-11 16:24+0000\n" "Last-Translator: oblo \n" "Language-Team: Italian (http://www.transifex.com/projects/p/ripple-trade/language/it/)\n" "MIME-Version: 1.0\n" @@ -25,47 +25,49 @@ msgstr "" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/jade/client/index.jade:5 src/jade/client/navbar.jade:112 -#: src/jade/tabs/trust.jade:86 src/jade/tabs/trust.jade:228 +#: src/jade/client/index.jade:5 src/jade/client/navbar.jade:117 +#: src/jade/tabs/trust.jade:59 src/jade/tabs/trust.jade:168 msgid "Balance" msgstr "Saldo" -#: src/jade/client/index.jade:7 src/jade/client/navbar.jade:114 +#: src/jade/client/index.jade:7 src/jade/client/navbar.jade:119 msgid "History" msgstr "Cronologia" -#: src/jade/client/index.jade:8 src/jade/client/navbar.jade:116 -#: src/jade/tabs/contacts.jade:5 +#: src/jade/client/index.jade:8 src/jade/client/navbar.jade:121 msgid "Contacts" msgstr "Contatti" -#: src/jade/client/index.jade:12 src/jade/client/navbar.jade:13 -#: src/jade/tabs/contacts.jade:73 +#: src/jade/client/index.jade:12 src/jade/client/navbar.jade:21 +#: src/jade/tabs/contacts.jade:65 msgid "Send" msgstr "Invia" -#: src/jade/client/index.jade:16 src/jade/client/navbar.jade:123 +#: src/jade/client/index.jade:16 msgid "Convert" msgstr "Cambio" -#: src/jade/client/index.jade:18 src/jade/client/navbar.jade:121 +#: src/jade/client/index.jade:18 src/jade/client/navbar.jade:23 +#: src/jade/client/navbar.jade:25 src/jade/tabs/settings/navbar.jade:3 msgid "Trade" msgstr "Scambia" -#: src/jade/client/index.jade:22 src/jade/client/navbar.jade:19 -#: src/jade/client/navbar.jade:128 +#: src/jade/client/index.jade:22 src/jade/client/navbar.jade:27 +#: src/jade/client/navbar.jade:133 msgid "Fund" msgstr "Deposita" -#: src/jade/client/index.jade:24 src/jade/tabs/fund/menu.jade:5 +#: src/jade/client/index.jade:24 src/jade/tabs/fund/menu.jade:29 msgid "Gateways" msgstr "Gateways" -#: src/jade/client/index.jade:29 src/jade/tabs/su.jade:12 +#: src/jade/client/index.jade:29 src/jade/client/navbar.jade:107 +#: src/jade/tabs/su.jade:12 msgid "Account" msgstr "Account" -#: src/jade/client/index.jade:32 src/jade/tabs/advanced.jade:9 +#: src/jade/client/index.jade:32 src/jade/client/navbar.jade:109 +#: src/jade/tabs/advanced.jade:19 msgid "Settings" msgstr "Impostazioni" @@ -73,198 +75,437 @@ msgstr "Impostazioni" msgid "Logout" msgstr "Esci" -#: src/jade/client/index.jade:41 -msgid "Welcome to {{productName}}, a global value exchange" -msgstr "Benvenuto in {{productName}}, un mercato globale per lo scambio di valori " - -#: src/jade/client/index.jade:51 +#: src/jade/client/index.jade:61 +msgid "Why Use Ripple Trade?" +msgstr "Perchè usare Ripple Trade?" + +#: src/jade/client/index.jade:66 +msgid "Home of XRP -" +msgstr "La casa degli XRP -" + +#: src/jade/client/index.jade:67 +msgid "the best place to buy and sell XRP" +msgstr "il luogo migliore dove comprare e vendere XRP" + +#: src/jade/client/index.jade:71 +msgid "Free -" +msgstr "Gratuito -" + +#: src/jade/client/index.jade:72 +msgid "no fees to sign up and use Ripple Trade" +msgstr "nessun costo per iscriversi e utilizzare Ripple Trade" + +#: src/jade/client/index.jade:76 +msgid "No Middlemen -" +msgstr "Nessun Intermediario -" + +#: src/jade/client/index.jade:77 +msgid "" +"When you submit orders, Ripple automatically finds the best available match," +" without a clearinghouse or broker." +msgstr "Quando invii un ordine, Ripple trova automaticamente la migliore corrispondenza disponibile senza bisogno di intermediari." + +#: src/jade/client/index.jade:81 +msgid "Deposit, trade and withdraw money on Ripple via gateways." +msgstr "Deposita, scambia e preleva denaro su Ripple tramite i gateways." + +#: src/jade/client/index.jade:89 +msgid "Featured Ripple Gateways" +msgstr "Principali Gateways Ripple" + +#: src/jade/client/index.jade:91 +msgid "Ripple's growing gateway network." +msgstr "Il network dei sempre più numerosi gateways Ripple." + +#: src/jade/client/index.jade:93 src/jade/client/index.jade:96 +#: src/jade/client/index.jade:99 src/jade/client/index.jade:102 +#: src/jade/client/index.jade:105 src/jade/client/index.jade:108 +#: src/jade/client/index.jade:111 src/jade/client/index.jade:114 +#: src/jade/client/index.jade:117 src/jade/tabs/banner/unfunded.jade:6 +#: src/jade/tabs/brl.jade:53 src/jade/tabs/brl.jade:57 +#: src/jade/tabs/brl.jade:93 src/jade/tabs/btc.jade:46 +#: src/jade/tabs/eur.jade:50 src/jade/tabs/eur.jade:54 +#: src/jade/tabs/eur.jade:86 src/jade/tabs/eur.jade:93 +#: src/jade/tabs/gold.jade:51 src/jade/tabs/jpy.jade:55 +#: src/jade/tabs/jpy.jade:91 src/jade/tabs/jpy.jade:97 +#: src/jade/tabs/mxn.jade:53 src/jade/tabs/send.jade:63 +#: src/jade/tabs/trade.jade:320 src/jade/tabs/usd.jade:51 +#: src/jade/tabs/usd.jade:83 src/jade/tabs/usd.jade:90 +#: src/jade/tabs/usd.jade:100 src/jade/tabs/widgets/orders.jade:31 +msgid "{{1}}" +msgstr "{{1}}" + +#: src/jade/client/index.jade:123 msgid "Version: {{version}}" msgstr "Versione: {{version}}" -#: src/jade/client/index.jade:55 -msgid "End-User License Agreement" -msgstr "Accordo di Licenza con l'utente finale" +#: src/jade/client/index.jade:128 +msgid "Terms of Use" +msgstr "Termini di Utilizzo" -#: src/jade/client/index.jade:56 +#: src/jade/client/index.jade:129 +msgid "Privacy Policy" +msgstr "Norme sulla Privacy" + +#: src/jade/client/index.jade:130 msgid "Support" msgstr "Supporto" -#: src/jade/client/index.jade:57 +#: src/jade/client/index.jade:131 msgid "Bug reports" msgstr "Rapporto errori" -#: src/jade/client/index.jade:64 +#: src/jade/client/index.jade:138 msgid "more..." msgstr "altro..." -#: src/jade/client/index.jade:68 +#: src/jade/client/index.jade:142 msgid "Select a language" msgstr "Seleziona una lingua" -#: src/jade/client/navbar.jade:11 +#: src/jade/client/navbar.jade:2 +msgid "" +"You are viewing an account in {{1}} mode. While in this mode, you can view " +"publicly available data, but you cannot initiate any transactions. Click " +"{{2}} to exit." +msgstr "Stai vedendo l'account in modalità {{1}}. In tale modalità puoi visualizzare pubblicamente i dati ma non puoi iniziare nessuna transazione. Clicca {{2}} per uscire." + +#: src/jade/client/navbar.jade:8 +msgid "" +"Warning: this account has over 200 trust lines, so the displayed account " +"balance may not be accurate." +msgstr "Attenzione: questo account ha più di 200 linee di fiducia, il saldo visualizzato potrebbe non essere esatto." + +#: src/jade/client/navbar.jade:19 msgid "Overview" msgstr "Panoramica" -#: src/jade/client/navbar.jade:15 src/jade/client/navbar.jade:17 -#: src/jade/tabs/exchange.jade:43 -msgid "Exchange" -msgstr "Scambia" - -#: src/jade/client/navbar.jade:39 src/jade/tabs/account/public.jade:45 -#: src/jade/tabs/apps.jade:8 src/jade/tabs/balance.jade:8 -#: src/jade/tabs/balance.jade:27 src/jade/tabs/btc.jade:60 -#: src/jade/tabs/exchange.jade:9 src/jade/tabs/history.jade:207 -#: src/jade/tabs/kyc.jade:38 src/jade/tabs/recover.jade:21 -#: src/jade/tabs/security.jade:134 src/jade/tabs/su.jade:8 -#: src/jade/tabs/trust.jade:9 src/jade/tabs/trust.jade:175 +#: src/jade/client/navbar.jade:49 src/jade/tabs/account/private.jade:7 +#: src/jade/tabs/account/private.jade:16 src/jade/tabs/account/public.jade:45 +#: src/jade/tabs/apps.jade:8 src/jade/tabs/btc.jade:72 +#: src/jade/tabs/exchange.jade:9 src/jade/tabs/kyc.jade:45 +#: src/jade/tabs/recover.jade:26 src/jade/tabs/security.jade:147 +#: src/jade/tabs/su.jade:8 src/jade/tabs/trust.jade:9 +#: src/jade/tabs/trust.jade:139 msgid "Loading..." msgstr "Caricamento..." -#: src/jade/client/navbar.jade:40 +#: src/jade/client/navbar.jade:50 msgid "There are no recent notifications." msgstr "Non ci sono notifiche recenti." -#: src/jade/client/navbar.jade:44 +#: src/jade/client/navbar.jade:54 msgid "You sent {{1}} to {{2}}" msgstr "Hai inviato {{1}} a {{2}}" -#: src/jade/client/navbar.jade:50 +#: src/jade/client/navbar.jade:60 msgid "{{1}} sent you {{2}}" msgstr "{{1}} ti ha inviato {{2}}" -#: src/jade/client/navbar.jade:58 +#: src/jade/client/navbar.jade:68 msgid "{{entry.transaction.counterparty | rpcontactname}} now trusts you for" msgstr "{{entry.transaction.counterparty | rpcontactname}} ti ha dato fiducia per" -#: src/jade/client/navbar.jade:64 src/jade/notification/account.jade:25 -#: src/jade/tabs/history.jade:133 src/jade/tabs/history/effects.jade:63 +#: src/jade/client/navbar.jade:74 src/jade/notification/account.jade:25 +#: src/jade/tabs/history.jade:115 src/jade/tabs/history/effects.jade:63 msgid "You have now connected to the gateway {{1}}{{2: for }}{{3}}." msgstr "Sei stato collegato al gateway {{1}}{{2: per }}{{3}}." -#: src/jade/client/navbar.jade:75 +#: src/jade/client/navbar.jade:85 msgid "You cancelled an order accepting {{1}} for {{2}}" msgstr "Hai cancellato un'offerta per accettare {{1}} in cambio di {{2}}" -#: src/jade/client/navbar.jade:82 src/jade/tabs/history.jade:156 +#: src/jade/client/navbar.jade:92 src/jade/tabs/history.jade:138 msgid "Account details have been changed" msgstr "I dettagli dell'account sono stati cambiati" -#: src/jade/client/navbar.jade:85 src/jade/tabs/history.jade:159 -#: src/jade/tabs/trust.jade:231 +#: src/jade/client/navbar.jade:95 src/jade/tabs/history.jade:141 +#: src/jade/tabs/trust.jade:171 msgid "Rippling" msgstr "Rippling" -#: src/jade/client/navbar.jade:87 src/jade/tabs/history.jade:161 +#: src/jade/client/navbar.jade:97 src/jade/tabs/history.jade:143 msgid "Failed transaction" -msgstr "Transazione fallita" +msgstr "Transazione non riuscita" -#: src/jade/client/navbar.jade:93 +#: src/jade/client/navbar.jade:103 msgid "View Full History" msgstr "Visualizza la cronologia completa" -#: src/jade/client/navbar.jade:97 -msgid "{{1}} Account" -msgstr "{{1}} Account" +#: src/jade/client/navbar.jade:111 +msgid "Log Out" +msgstr "Esci" -#: src/jade/client/navbar.jade:101 -msgid "{{1}} Settings" -msgstr "{{1}} Impostazioni" +#: src/jade/client/navbar.jade:126 +msgid "Simple" +msgstr "Semplice" -#: src/jade/client/navbar.jade:105 -msgid "{{1}} Log Out" -msgstr "{{1}} Esci" +#: src/jade/client/navbar.jade:128 src/jade/tabs/settings/navbar.jade:4 +msgid "Advanced" +msgstr "Avanzate" -#: src/jade/client/navbar.jade:130 src/jade/tabs/balance.jade:110 +#: src/jade/client/navbar.jade:135 msgid "Withdraw" msgstr "Preleva" -#: src/jade/client/navbar.jade:132 +#: src/jade/client/navbar.jade:137 msgid "" "Your account was successfully recovered and encrypted with the new password " "you provided!" msgstr "Il tuo account è stato recuperato con successo e criptato con la nuova password da te fornita!" -#: src/jade/client/navbar.jade:133 +#: src/jade/client/navbar.jade:138 msgid "dismiss" msgstr "annulla" -#: src/jade/directives/transactionerror.jade:5 +#: src/jade/directives/addresspopover.jade:3 +msgid "Ripple address {{ identity }}" +msgstr "Indirizzo Ripple {{ identity }}" + +#: src/jade/directives/addresspopover.jade:8 src/jade/tabs/tx.jade:13 +msgid "Show in graph" +msgstr "Mostra sulla mappa" + +#: src/jade/directives/transactionerror.jade:8 +msgid "Connecting gateway to your account..." +msgstr "Collegamento del gateway al tuo account..." + +#: src/jade/directives/transactionerror.jade:10 +msgid "Gateway connected." +msgstr "Gateway connesso." + +#: src/jade/directives/transactionerror.jade:12 +msgid "There was a problem connecting to the gateway. Please try again later." +msgstr "C'è stato un problema di connessione al gateway. Per favore riprova più tardi." + +#: src/jade/directives/transactionerror.jade:14 +#: src/jade/directives/transactionerror.jade:73 +#: src/jade/directives/transactionerror.jade:158 +#: src/jade/messages/sendconvert/confirmation.jade:13 +msgid "Error code: {{engine_result}} - {{engine_result_message}}" +msgstr "Errore: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:19 +#: src/jade/directives/transactionerror.jade:23 +#: src/jade/directives/transactionerror.jade:28 +#: src/jade/directives/transactionerror.jade:33 +#: src/jade/directives/transactionerror.jade:45 +#: src/jade/directives/transactionerror.jade:52 +#: src/jade/directives/transactionerror.jade:156 +#: src/jade/directives/transactionerror.jade:163 +#: src/jade/directives/transactionerror.jade:167 +#: src/jade/directives/transactionerror.jade:172 +#: src/jade/directives/transactionerror.jade:177 +#: src/jade/directives/transactionerror.jade:186 +#: src/jade/directives/transactionerror.jade:193 +msgid "Request failed" +msgstr "Richiesta non riuscita" + +#: src/jade/directives/transactionerror.jade:21 +#: src/jade/directives/transactionerror.jade:165 +msgid "Your request timed out, please try again." +msgstr "La tua richiesta non è riuscita, per favore riprova ancora." + +#: src/jade/directives/transactionerror.jade:25 +#: src/jade/directives/transactionerror.jade:84 +#: src/jade/directives/transactionerror.jade:169 +#: src/jade/messages/sendconvert/confirmation.jade:18 +msgid "Error code: Destination tag needed [tefDST_TAG_NEEDED]." +msgstr "Errore: Manca l'etichetta del destinatario [tefDST_TAG_NEEDED]." + +#: src/jade/directives/transactionerror.jade:30 +#: src/jade/directives/transactionerror.jade:174 +msgid "" +"Error code: This request failed because it exceeded the maximum network fee," +" please try again later [telINSUF_FEE_P]." +msgstr "Errore: Questa richiesta non è riuscita perchè ha superato il limite massimo delle commissioni del network, per favore riprova più tardi [telINSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:35 +msgid "" +"Error code: You have no gateway connected in this currency [terNO_LINE]." +msgstr "Errore: Non hai nessun gateway collegato a questa valuta [terNO_LINE]." + +#: src/jade/directives/transactionerror.jade:37 +msgid "" +"Error code: Insufficient reserve to connect gateway [tecINSUF_RESERVE_LINE]." +msgstr "Errore: Riserva insufficiente per connettersi ad un gateway [tecINSUF_RESERVE_LINE]." + +#: src/jade/directives/transactionerror.jade:39 +msgid "" +"Error code: You have an insufficient reserve amount to connect a gateway " +"[tecNO_LINE_INSUF_RESERVE]. {{1}}" +msgstr "Errore: L'ammontare della tua riserva non è sufficiente per collegarti ad un gateway\n[tecNO_LINE_INSUF_RESERVE]. {{1}}" + +#: src/jade/directives/transactionerror.jade:41 src/jade/tabs/fund.jade:34 +#: src/jade/tabs/send.jade:110 src/jade/tabs/trust.jade:74 +msgid "More information" +msgstr "Maggiori informazioni" + +#: src/jade/directives/transactionerror.jade:42 +#: src/jade/directives/transactionerror.jade:98 +#: src/jade/directives/transactionerror.jade:135 +#: src/jade/directives/transactionerror.jade:183 +#: src/jade/messages/sendconvert/confirmation.jade:27 +msgid "Error: {{engine_result_message}}" +msgstr "Errore: {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:47 +#: src/jade/directives/transactionerror.jade:103 +#: src/jade/directives/transactionerror.jade:188 +#: src/jade/messages/sendconvert/confirmation.jade:32 +msgid "Error code: You have no trust line in this currency [terNO_LINE]." +msgstr "Errore: Non hai una linea di fiducia per questa valuta [terNO_LINE]." + +#: src/jade/directives/transactionerror.jade:49 +#: src/jade/directives/transactionerror.jade:190 +msgid "Your request failed: {{engine_result}} - {{engine_result_message}}" +msgstr "La tua richiesta non è riuscita: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:54 +#: src/jade/directives/transactionerror.jade:195 +msgid "Error code: request could not be submitted [tejLost]." +msgstr "Errore: la richiesta non può essere inviata [tejLost]." + +#: src/jade/directives/transactionerror.jade:56 +#: src/jade/directives/transactionerror.jade:197 src/jade/tabs/trust.jade:36 +msgid "" +"This request failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "Questa richiesta non è riuscita perchè le attuali commissioni del network sono più alte del limite del tuo account. Puoi cambiare il limite massimo sulle commissioni in Impostazioni & Avanzate.
Errore: Commissioni del network superate [tejMaxFeeExceeded]." + +#: src/jade/directives/transactionerror.jade:59 +#: src/jade/directives/transactionerror.jade:200 +msgid "" +"Your request could not be submitted: {{engine_result}} - " +"{{engine_result_message}}" +msgstr "La tua richiesta non può essere inviata: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:67 msgid "Payment pending" msgstr "Pagamento pendente" -#: src/jade/directives/transactionerror.jade:7 +#: src/jade/directives/transactionerror.jade:69 msgid "Payment successful" msgstr "Pagamento riuscito" -#: src/jade/directives/transactionerror.jade:9 -#: src/jade/directives/transactionerror.jade:16 -#: src/jade/directives/transactionerror.jade:20 -#: src/jade/directives/transactionerror.jade:25 -#: src/jade/directives/transactionerror.jade:30 -#: src/jade/directives/transactionerror.jade:39 -#: src/jade/directives/transactionerror.jade:46 +#: src/jade/directives/transactionerror.jade:71 +#: src/jade/directives/transactionerror.jade:82 +#: src/jade/directives/transactionerror.jade:87 +#: src/jade/directives/transactionerror.jade:92 +#: src/jade/directives/transactionerror.jade:101 +#: src/jade/directives/transactionerror.jade:108 msgid "Payment failed" msgstr "Pagamento non riuscito" -#: src/jade/directives/transactionerror.jade:11 -#: src/jade/messages/sendconvert/confirmation.jade:13 -msgid "Error code: {{engine_result}} - {{engine_result_message}}" -msgstr "Errore: {{engine_result}} - {{engine_result_message}}" +#: src/jade/directives/transactionerror.jade:78 +msgid "Payment failed [tefMAX_LEDGER]." +msgstr "Pagamento non riuscito [tefMAX_LEDGER]." -#: src/jade/directives/transactionerror.jade:18 +#: src/jade/directives/transactionerror.jade:80 msgid "Your payment timed out, please try again." msgstr "Il tuo pagamento non è riuscito, per favore prova di nuovo." -#: src/jade/directives/transactionerror.jade:22 -#: src/jade/messages/sendconvert/confirmation.jade:18 -msgid "Error code: Destination tag needed [tefDST_TAG_NEEDED]." -msgstr "Errore: Manca l'etichetta del destinatario [tefDST_TAG_NEEDED]." - -#: src/jade/directives/transactionerror.jade:27 +#: src/jade/directives/transactionerror.jade:89 #: src/jade/messages/sendconvert/confirmation.jade:39 msgid "" "Error code: This transaction failed because it exceeded the maximum network " "fee, please try again later [telINSUF_FEE_P]." msgstr "Errore: La transazione non è riuscita perchè supera il limite massimo delle commissioni del network, per favore riprova più tardi [telINSUF_FEE_P]." -#: src/jade/directives/transactionerror.jade:32 +#: src/jade/directives/transactionerror.jade:94 +#: src/jade/directives/transactionerror.jade:179 msgid "Error code: No destination [tecNO_DST]." msgstr "Errore: Nessun destinatario [tecNO_DST]." -#: src/jade/directives/transactionerror.jade:34 +#: src/jade/directives/transactionerror.jade:96 +#: src/jade/directives/transactionerror.jade:181 #: src/jade/messages/sendconvert/confirmation.jade:25 msgid "" "Error code: Insufficient XRP sent to destination [tecNO_DST_INSUF_XRP]." msgstr "Errore: Non sono stati inviati abbastanza XRP al destinatario [tecNO_DST_INSUF_XRP]." -#: src/jade/directives/transactionerror.jade:36 -#: src/jade/messages/sendconvert/confirmation.jade:27 -msgid "Error: {{engine_result_message}}" -msgstr "Errore: {{engine_result_message}}" - -#: src/jade/directives/transactionerror.jade:41 -#: src/jade/messages/sendconvert/confirmation.jade:32 -msgid "Error code: You have no trust line in this currency [terNO_LINE]." -msgstr "Errore: Non hai una linea di fiducia per questa valuta [terNO_LINE]." - -#: src/jade/directives/transactionerror.jade:43 +#: src/jade/directives/transactionerror.jade:105 msgid "Your payment failed: {{engine_result}} - {{engine_result_message}}" msgstr "Il tuo pagamento non è riuscito: {{engine_result}} - {{engine_result_message}}" -#: src/jade/directives/transactionerror.jade:48 +#: src/jade/directives/transactionerror.jade:110 msgid "Error code: Transaction could not be submitted [tejLost]." msgstr "Errore: La transazione potrebbe non essere stata effettuata [tejLost]." -#: src/jade/directives/transactionerror.jade:50 -msgid "Error code: Network fee exceeded [tejMaxFeeExceeded]." -msgstr "Errore: Commissioni del network superate [tejMaxFeeExceeded]." +#: src/jade/directives/transactionerror.jade:112 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "Questa transazione non è riuscita perchè le attuali commissioni del network sono più alte del limite del tuo account. Puoi cambiare il limite massimo sulle commissioni in Impostazioni & Avanzate oppure puoi riprovare più tardi.
Errore: Commissioni del network superate [tejMaxFeeExceeded]." -#: src/jade/directives/transactionerror.jade:52 +#: src/jade/directives/transactionerror.jade:115 msgid "" "Your payment could not be submitted: {{engine_result}} - " "{{engine_result_message}}" msgstr "Non è stato possibile effettuare il tuo pagamento: {{engine_result}} - {{engine_result_message}}" +#: src/jade/directives/transactionerror.jade:121 +msgid "Request is malformed." +msgstr "La richiesta non è valida." + +#: src/jade/directives/transactionerror.jade:122 +msgid "" +"Your request is invalid, reason: {{engine_result_message}} - " +"{{engine_result_message}}" +msgstr "La tua richiesta è non valida, motivo: {{engine_result_message}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:125 +#: src/jade/directives/transactionerror.jade:142 +msgid "Transaction failed." +msgstr "Transazione non riuscita." + +#: src/jade/directives/transactionerror.jade:127 +msgid "You do not have enough funds to create this order [tecUNFUNDED_ORDER]." +msgstr "Non hai abbastanza fondi per effettuare questo ordine [tecUNFUNDED_ORDER]." + +#: src/jade/directives/transactionerror.jade:129 +msgid "" +"Insufficient reserve amount to submit an order [tecINSUF_RESERVE_OFFER]." +msgstr "Ammontare della riserva non sufficiente per effettuare un ordine [tecINSUF_RESERVE_OFFER]." + +#: src/jade/directives/transactionerror.jade:131 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]. {{1}}" +msgstr "Questa transazione non è riuscita perchè le attuali commissioni del network sono più alte del limite del tuo account. Puoi cambiare il limite massimo sulle commissioni in Impostazioni & Avanzate oppure puoi riprovare più tardi.
Errore: Commissioni del network superate [tejMaxFeeExceeded]. {{1}}" + +#: src/jade/directives/transactionerror.jade:134 +msgid "More information." +msgstr "Maggiori informazioni." + +#: src/jade/directives/transactionerror.jade:138 +msgid "Trade failed." +msgstr "Scambio non riuscito." + +#: src/jade/directives/transactionerror.jade:140 +msgid "Trade failed, reason: {{engine_result_message}}" +msgstr "Scambio non riuscito, motivo: {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:144 +msgid "" +"The particular server you sent the transaction to was too busy to forward or" +" process your transaction at the fee you included in it [telINSUF_FEE_P]." +msgstr "Il server cui hai inviato la transazione era troppo occupato per trasmettere o elaborare la tua transazione alle commissioni che avevi specificato [telINSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:152 +msgid "Request pending" +msgstr "Richiesta in corso" + +#: src/jade/directives/transactionerror.jade:154 +msgid "Request successful" +msgstr "Richiesta riuscita" + #: src/jade/messages/sendconvert/confirmation.jade:4 msgid "Transaction pending." msgstr "Transazione pendente." @@ -286,8 +527,11 @@ msgstr "Transazione eseguita" msgid "Transaction failed" msgstr "Transazione non riuscita" -#: src/jade/messages/sendconvert/confirmation.jade:9 -#: src/jade/tabs/trust.jade:58 src/jade/tabs/trust.jade:70 +#: src/jade/messages/sendconvert/confirmation.jade:9 src/jade/tabs/brl.jade:25 +#: src/jade/tabs/btc.jade:22 src/jade/tabs/eur.jade:25 +#: src/jade/tabs/gold.jade:25 src/jade/tabs/jpy.jade:25 +#: src/jade/tabs/mxn.jade:25 src/jade/tabs/trust.jade:43 +#: src/jade/tabs/usd.jade:25 msgid "Please try again later." msgstr "Per favore riprova più tardi." @@ -328,6 +572,7 @@ msgid "Account unlock failed" msgstr "Sblocco dell'account fallito" #: src/jade/messages/sendconvert/localerror.jade:18 +#: src/jade/tabs/trust.jade:40 msgid "Your account could not be unlocked. Please try again later." msgstr "Il tuo account non può essere sbloccato. Per favore riprova più tardi." @@ -343,7 +588,7 @@ msgid "" "executed already." msgstr "Prima di provare ancora, assicurati che la transazione non sia già stata eseguita." -#: src/jade/messages/sendconvert/waiting.jade:3 +#: src/jade/messages/sendconvert/waiting.jade:5 msgid "Sending transaction to the Ripple network" msgstr "Inviando la transazione alla rete Ripple" @@ -359,13 +604,49 @@ msgstr "{{tx.counterparty | rpcontactname}} ti ha inviato" msgid "{{tx.counterparty | rpcontactname}} now trusts you for" msgstr "{{tx.counterparty | rpcontactname}} ti sta dando fiducia per" +#: src/jade/popup/modifyOrderError.jade:2 +msgid "Modify Order Error" +msgstr "Modifica Ordine Errore" + +#: src/jade/popup/modifyOrderError.jade:4 +msgid "Sorry, your order could not be modified." +msgstr "Spiacenti, il tuo ordine non può essere modificato." + +#: src/jade/popup/modifyOrderError.jade:5 +msgid "" +"Your original order was cancelled but the modified order was not placed. " +"
" +msgstr "Il tuo precedente ordine è stato cancellato ma quello modificato non è stato piazzato.
" + +#: src/jade/popup/modifyOrderError.jade:6 +msgid "" +"The quantity of your order changed by {{order.qtyChangeAfterCancel | " +"rpamount}} before the order could be modified.

" +msgstr "La quantità del tuo ordine è cambiata di {{order.qtyChangeAfterCancel | rpamount}} prima che l'ordine potesse essere modificato.

" + +#: src/jade/popup/modifyOrderError.jade:7 +msgid "" +"To safeguard against the possibility of overfills a new order has not been " +"placed.
" +msgstr "Per evitare che tu possa aver piazzato un ordine superiore al tuo saldo, il nuovo ordine non è stato piazzato.

" + +#: src/jade/popup/modifyOrderError.jade:8 +msgid "" +"Please check your balance and history before placing the new order manually." +"
" +msgstr "Per favore controlla il tuo saldo e la cronologia prima di piazzare un nuovo ordine.
" + +#: src/jade/popup/modifyOrderError.jade:10 src/jade/popup/unlock.jade:17 +msgid "Close" +msgstr "Chiudi" + #: src/jade/popup/unlock.jade:2 msgid "Unlock account" msgstr "Sblocca account" -#: src/jade/popup/unlock.jade:5 src/jade/tabs/desktop/register.jade:28 -#: src/jade/tabs/login/form.jade:7 src/jade/tabs/recover.jade:33 -#: src/jade/tabs/register.jade:42 src/jade/tabs/security.jade:10 +#: src/jade/popup/unlock.jade:5 src/jade/tabs/login/form.jade:8 +#: src/jade/tabs/recover.jade:38 src/jade/tabs/register.jade:58 +#: src/jade/tabs/security.jade:12 msgid "Password" msgstr "Password" @@ -373,7 +654,7 @@ msgstr "Password" msgid "Please enter your password to show your secret key." msgstr "Prego inserisci la password per vedere la chiave segreta." -#: src/jade/popup/unlock.jade:9 src/jade/tabs/send.jade:195 +#: src/jade/popup/unlock.jade:9 src/jade/tabs/send.jade:205 msgid "Please enter your password to confirm this transaction." msgstr "Per favore inserisci la tua password per confermare questa transazione." @@ -381,52 +662,146 @@ msgstr "Per favore inserisci la tua password per confermare questa transazione." msgid "This password is incorrect, please try again." msgstr "La password non è corretta, riprova." -#: src/jade/popup/unlock.jade:11 +#: src/jade/popup/unlock.jade:13 msgid "Confirming password" msgstr "Conferma password" -#: src/jade/popup/unlock.jade:14 src/jade/tabs/account/public.jade:44 -#: src/jade/tabs/security.jade:133 +#: src/jade/popup/unlock.jade:16 src/jade/tabs/account/public.jade:44 +#: src/jade/tabs/security.jade:146 msgid "Submit" msgstr "Immetti" -#: src/jade/popup/unlock.jade:15 -msgid "Close" -msgstr "Chiudi" - #: src/jade/tabs/2fa/form.jade:3 msgid "Country Code" msgstr "Codice paese" -#: src/jade/tabs/2fa/form.jade:6 src/jade/tabs/kyc.jade:146 +#: src/jade/tabs/2fa/form.jade:6 src/jade/tabs/kyc.jade:162 msgid "Phone Number" msgstr "Numero di telefono" +#: src/jade/tabs/_usd.jade:6 src/jade/tabs/apps.jade:5 +#: src/jade/tabs/balance.jade:5 src/jade/tabs/brl.jade:6 +#: src/jade/tabs/btc.jade:9 src/jade/tabs/eur.jade:6 +#: src/jade/tabs/exchange.jade:6 src/jade/tabs/fund.jade:6 +#: src/jade/tabs/gold.jade:6 src/jade/tabs/history.jade:6 +#: src/jade/tabs/jpy.jade:6 src/jade/tabs/kyc.jade:6 src/jade/tabs/mxn.jade:6 +#: src/jade/tabs/send.jade:6 src/jade/tabs/su.jade:5 +#: src/jade/tabs/trade.jade:7 src/jade/tabs/trust.jade:6 +#: src/jade/tabs/usd.jade:6 src/jade/tabs/withdraw.jade:6 +#: src/jade/tabs/xrp.jade:6 +msgid "You have to be online to see this screen" +msgstr "Devi essere online per vedere questa schermata" + +#: src/jade/tabs/_usd.jade:17 +msgid "USD instant deposit" +msgstr "deposito USD immediato" + +#: src/jade/tabs/_usd.jade:19 src/jade/tabs/_usd.jade:21 +msgid "Step 1 (Amount)" +msgstr "Passo 1 (Ammontare)" + +#: src/jade/tabs/_usd.jade:22 +msgid "Step 2 (Confirmation)" +msgstr "Passo 2 (Conferma)" + +#: src/jade/tabs/_usd.jade:23 +msgid "Step 3 (Complete deposit)" +msgstr "Passo 3 (Completa deposito)" + +#: src/jade/tabs/_usd.jade:26 +msgid "STEP 1: AMOUNT" +msgstr "PASSO 1: AMMONTARE" + +#: src/jade/tabs/_usd.jade:28 +msgid "STEP 2: CONFIRMATION" +msgstr "STEP 2: CONFERMA" + +#: src/jade/tabs/_usd.jade:30 +msgid "STEP 3: COMPLETE DEPOSIT" +msgstr "STEP 3: COMPLETA DEPOSITO" + +#: src/jade/tabs/_usd.jade:34 +msgid "" +"Success! You've completed your USD deposit. Your funds should be available " +"within a few minutes." +msgstr "Fatto! Hai completato il deposito in USD. I tuoi fondi dovrebbero essere disponibili in pochi minuti." + +#: src/jade/tabs/_usd.jade:36 +msgid "You cancelled your deposit." +msgstr "Hai cancellato il tuo deposito." + +#: src/jade/tabs/_usd.jade:38 +msgid "" +"Your deposit failed. Your bank account was not charged. Please contact " +"{{1}}." +msgstr "Il deposito non è riuscito. Non sono state addebitate commissioni sul tuo conto bancario. Per favore contatta {{1}}." + +#: src/jade/tabs/_usd.jade:49 src/jade/tabs/_usd.jade:91 +#: src/jade/tabs/fund.jade:41 src/jade/tabs/history.jade:172 +#: src/jade/tabs/trust.jade:89 +msgid "Amount" +msgstr "Quantità" + +#: src/jade/tabs/_usd.jade:59 src/jade/tabs/_usd.jade:62 +msgid "Select your bank" +msgstr "Seleziona la tua banca" + +#: src/jade/tabs/_usd.jade:77 +msgid "" +"Ripple Trade has partnered with SnapSwap to make USD deposits easier. By " +"continuing, you agree to SnapSwap's {{1}}To contact support, email {{2}}." +msgstr "Ripple Trade ha stretto accordi con SnapSwap per rendere più facili i depositi in USD. Continuando accetti il {{1}} SnapSwap. Per contattare il supporto, email {{2}}." + +#: src/jade/tabs/_usd.jade:93 src/jade/tabs/history.jade:178 +msgid "Fee" +msgstr "Commissione" + +#: src/jade/tabs/_usd.jade:95 +msgid "Total" +msgstr "Totale" + +#: src/jade/tabs/_usd.jade:98 +msgid "Calculating..." +msgstr "Sto calcolando..." + +#: src/jade/tabs/_usd.jade:109 src/jade/tabs/register.jade:126 +#: src/jade/tabs/register.jade:133 +msgid "Back" +msgstr "Indietro" + +#: src/jade/tabs/_usd.jade:111 src/jade/tabs/btc.jade:73 +#: src/jade/tabs/exchange.jade:111 src/jade/tabs/send.jade:213 +#: src/jade/tabs/trade.jade:67 src/jade/tabs/trade.jade:77 +#: src/jade/tabs/trade.jade:248 src/jade/tabs/trade.jade:407 +#: src/jade/tabs/trust.jade:140 +msgid "Confirm" +msgstr "Conferma" + #: src/jade/tabs/account/navbar.jade:2 msgid "Public Information" msgstr "Informazioni pubbliche" -#: src/jade/tabs/account/private.jade:2 +#: src/jade/tabs/account/private.jade:1 msgid "Profile Information" msgstr "Informazioni del profilo" -#: src/jade/tabs/account/private.jade:5 +#: src/jade/tabs/account/private.jade:3 msgid "Identity Information" msgstr "Informazione identità" -#: src/jade/tabs/account/private.jade:8 src/jade/tabs/account/private.jade:19 +#: src/jade/tabs/account/private.jade:8 src/jade/tabs/account/private.jade:17 msgid "Completed" msgstr "Completato" -#: src/jade/tabs/account/private.jade:11 src/jade/tabs/account/private.jade:22 +#: src/jade/tabs/account/private.jade:9 src/jade/tabs/account/private.jade:18 msgid "Incomplete" msgstr "Incompleto" -#: src/jade/tabs/account/private.jade:13 src/jade/tabs/account/private.jade:24 +#: src/jade/tabs/account/private.jade:10 src/jade/tabs/account/private.jade:19 msgid "Complete your profile" msgstr "Completa il tuo profilo" -#: src/jade/tabs/account/private.jade:16 +#: src/jade/tabs/account/private.jade:12 msgid "Identity Questions" msgstr "Domande di Identità" @@ -442,15 +817,17 @@ msgstr "Il tuo nome Ripple è stato modificato correttamente." msgid "Account settings" msgstr "Impostazioni account" -#: src/jade/tabs/account/public.jade:5 src/jade/tabs/login/form.jade:2 +#: src/jade/tabs/account/public.jade:5 src/jade/tabs/fund/menu.jade:2 +#: src/jade/tabs/login/form.jade:3 msgid "Ripple name" msgstr "Nome Ripple" -#: src/jade/tabs/account/public.jade:9 src/jade/tabs/advanced.jade:17 -#: src/jade/tabs/advanced.jade:34 src/jade/tabs/advanced.jade:53 -#: src/jade/tabs/advanced.jade:106 src/jade/tabs/contacts.jade:69 -#: src/jade/tabs/security.jade:107 src/jade/tabs/security.jade:165 -#: src/jade/tabs/trust.jade:219 src/jade/tabs/trust.jade:248 +#: src/jade/tabs/account/public.jade:9 src/jade/tabs/advanced.jade:27 +#: src/jade/tabs/advanced.jade:44 src/jade/tabs/advanced.jade:63 +#: src/jade/tabs/advanced.jade:86 src/jade/tabs/advanced.jade:134 +#: src/jade/tabs/contacts.jade:61 src/jade/tabs/security.jade:120 +#: src/jade/tabs/security.jade:180 src/jade/tabs/trust.jade:191 +#: src/jade/tabs/trust.jade:193 msgid "edit" msgstr "modifica" @@ -458,23 +835,24 @@ msgstr "modifica" msgid "New Ripple name" msgstr "Nuovo nome Ripple" -#: src/jade/tabs/account/public.jade:17 src/jade/tabs/balance.jade:60 +#: src/jade/tabs/account/public.jade:17 src/jade/tabs/register.jade:35 +#: src/jade/tabs/widgets/balances.jade:24 msgid "Available" msgstr "Disponibile" -#: src/jade/tabs/account/public.jade:20 src/jade/tabs/register.jade:30 +#: src/jade/tabs/account/public.jade:20 src/jade/tabs/register.jade:39 msgid "Already taken!" msgstr "Già preso!" -#: src/jade/tabs/account/public.jade:21 src/jade/tabs/register.jade:31 +#: src/jade/tabs/account/public.jade:21 msgid "Reserved for {{usernameReservedFor}}{{1}}{{2}}" msgstr "Riservato per {{usernameReservedFor}}{{1}}{{2}}" -#: src/jade/tabs/account/public.jade:24 src/jade/tabs/register.jade:34 +#: src/jade/tabs/account/public.jade:24 src/jade/tabs/register.jade:45 msgid "Must be at least 2 characters" msgstr "Deve essere di almeno 2 caratteri" -#: src/jade/tabs/account/public.jade:25 src/jade/tabs/register.jade:35 +#: src/jade/tabs/account/public.jade:25 src/jade/tabs/register.jade:47 msgid "Must be at most 20 characters" msgstr "Non deve superare i 20 caratteri" @@ -482,11 +860,11 @@ msgstr "Non deve superare i 20 caratteri" msgid "Only a-z, 0-9 and hyphen (-)" msgstr "Solo a-z, 0-9 e trattino (-)" -#: src/jade/tabs/account/public.jade:27 src/jade/tabs/register.jade:37 +#: src/jade/tabs/account/public.jade:27 src/jade/tabs/register.jade:51 msgid "Cannot start with hyphen (-)" msgstr "Impossibile iniziare con un trattino (-)" -#: src/jade/tabs/account/public.jade:28 src/jade/tabs/register.jade:38 +#: src/jade/tabs/account/public.jade:28 src/jade/tabs/register.jade:53 msgid "Cannot end with hyphen (-)" msgstr "Impossibile finire con un trattino (-)" @@ -494,16 +872,16 @@ msgstr "Impossibile finire con un trattino (-)" msgid "Cannot bundle hyphens (--)" msgstr "Impossibile ripetere i trattini (--)" -#: src/jade/tabs/account/public.jade:30 src/jade/tabs/register.jade:40 +#: src/jade/tabs/account/public.jade:30 src/jade/tabs/register.jade:56 msgid "Checking..." msgstr "Controllo..." -#: src/jade/tabs/account/public.jade:32 src/jade/tabs/security.jade:113 +#: src/jade/tabs/account/public.jade:32 src/jade/tabs/security.jade:126 msgid "Current password" msgstr "Password corrente" -#: src/jade/tabs/account/public.jade:35 src/jade/tabs/security.jade:15 -#: src/jade/tabs/security.jade:20 +#: src/jade/tabs/account/public.jade:35 src/jade/tabs/security.jade:18 +#: src/jade/tabs/security.jade:23 msgid "Entered password is wrong." msgstr "La password inserita è sbagliata." @@ -515,107 +893,135 @@ msgstr "Il tuo nome Ripple è cambiato. Per favore accedi di nuovo." msgid "Couldn't change your Ripple name, please try again later." msgstr "Non è stato possibile cambiare il tuo nome Ripple, per favore riprova più tardi." -#: src/jade/tabs/account/public.jade:47 src/jade/tabs/advanced.jade:26 -#: src/jade/tabs/advanced.jade:43 src/jade/tabs/advanced.jade:67 -#: src/jade/tabs/advanced.jade:96 src/jade/tabs/btc.jade:62 -#: src/jade/tabs/contacts.jade:58 src/jade/tabs/contacts.jade:101 -#: src/jade/tabs/exchange.jade:94 src/jade/tabs/exchange.jade:107 -#: src/jade/tabs/kyc.jade:106 src/jade/tabs/kyc.jade:118 -#: src/jade/tabs/kyc.jade:140 src/jade/tabs/kyc.jade:141 -#: src/jade/tabs/kyc.jade:167 src/jade/tabs/login/form.jade:25 -#: src/jade/tabs/security.jade:71 src/jade/tabs/security.jade:101 -#: src/jade/tabs/security.jade:136 src/jade/tabs/send.jade:205 -#: src/jade/tabs/send.jade:217 src/jade/tabs/send.jade:238 -#: src/jade/tabs/send.jade:268 src/jade/tabs/trade.jade:32 -#: src/jade/tabs/trade.jade:43 src/jade/tabs/trust.jade:177 -#: src/jade/tabs/trust.jade:179 src/jade/tabs/trust.jade:263 -#: src/jade/tabs/trust.jade:296 +#: src/jade/tabs/account/public.jade:47 src/jade/tabs/advanced.jade:36 +#: src/jade/tabs/advanced.jade:53 src/jade/tabs/advanced.jade:77 +#: src/jade/tabs/advanced.jade:94 src/jade/tabs/advanced.jade:124 +#: src/jade/tabs/btc.jade:74 src/jade/tabs/contacts.jade:50 +#: src/jade/tabs/contacts.jade:93 src/jade/tabs/exchange.jade:113 +#: src/jade/tabs/exchange.jade:126 src/jade/tabs/kyc.jade:116 +#: src/jade/tabs/kyc.jade:131 src/jade/tabs/kyc.jade:156 +#: src/jade/tabs/kyc.jade:157 src/jade/tabs/kyc.jade:186 +#: src/jade/tabs/login/form.jade:26 src/jade/tabs/security.jade:79 +#: src/jade/tabs/security.jade:112 src/jade/tabs/security.jade:149 +#: src/jade/tabs/send.jade:215 src/jade/tabs/send.jade:227 +#: src/jade/tabs/send.jade:252 src/jade/tabs/send.jade:286 +#: src/jade/tabs/trade.jade:55 src/jade/tabs/trust.jade:141 +#: src/jade/tabs/trust.jade:143 src/jade/tabs/trust.jade:213 +#: src/jade/tabs/trust.jade:251 msgid "cancel" msgstr "cancella" -#: src/jade/tabs/account/public.jade:49 src/jade/tabs/contacts.jade:7 -#: src/jade/tabs/contacts.jade:34 src/jade/tabs/desktop/register.jade:88 +#: src/jade/tabs/account/public.jade:49 msgid "Ripple address" msgstr "Indirizzo Ripple" +#: src/jade/tabs/advanced.jade:8 +msgid "Your blob vault has been changed successfully." +msgstr "Il tuo blob vault è stato cambiato correttamente." + +#: src/jade/tabs/advanced.jade:9 +msgid "Your bitcoin bridge has been changed successfully." +msgstr "Il tuo ponte bitcoin è stato cambiato correttamente." + +#: src/jade/tabs/advanced.jade:10 +msgid "Trustline advanced settings has been changed successfully." +msgstr "Le impostazioni avanzate sulle linee di fiducia sono state modificate correttamente." + #: src/jade/tabs/advanced.jade:11 +msgid "Maximum network fee has been changed successfully." +msgstr "La commissione massima del network è stata cambiata correttamente." + +#: src/jade/tabs/advanced.jade:12 +msgid "A new server has been successfully added." +msgstr "Un nuovo server è stato aggiunto correttamente." + +#: src/jade/tabs/advanced.jade:13 +msgid "A server has been successfully removed." +msgstr "Un server è stato rimosso correttamente." + +#: src/jade/tabs/advanced.jade:14 +msgid "A server has been changed successfully." +msgstr "Un server è stato cambiato correttamente." + +#: src/jade/tabs/advanced.jade:21 msgid "Blob vault" msgstr "Blob vault" -#: src/jade/tabs/advanced.jade:22 src/jade/tabs/advanced.jade:39 -#: src/jade/tabs/advanced.jade:63 src/jade/tabs/advanced.jade:92 -#: src/jade/tabs/contacts.jade:96 src/jade/tabs/fund.jade:79 -#: src/jade/tabs/security.jade:175 src/jade/tabs/send.jade:237 -#: src/jade/tabs/send.jade:266 src/jade/tabs/trust.jade:156 -#: src/jade/tabs/trust.jade:282 +#: src/jade/tabs/advanced.jade:32 src/jade/tabs/advanced.jade:49 +#: src/jade/tabs/advanced.jade:73 src/jade/tabs/advanced.jade:92 +#: src/jade/tabs/advanced.jade:120 src/jade/tabs/contacts.jade:88 +#: src/jade/tabs/fund.jade:65 src/jade/tabs/security.jade:190 +#: src/jade/tabs/send.jade:251 src/jade/tabs/send.jade:284 +#: src/jade/tabs/trust.jade:119 src/jade/tabs/trust.jade:232 msgid "Save" msgstr "Salva" -#: src/jade/tabs/advanced.jade:24 src/jade/tabs/advanced.jade:41 -#: src/jade/tabs/advanced.jade:65 src/jade/tabs/advanced.jade:94 -#: src/jade/tabs/contacts.jade:99 +#: src/jade/tabs/advanced.jade:34 src/jade/tabs/advanced.jade:51 +#: src/jade/tabs/advanced.jade:75 src/jade/tabs/advanced.jade:122 +#: src/jade/tabs/contacts.jade:91 src/jade/tabs/security.jade:198 msgid "Delete" msgstr "Elimina" -#: src/jade/tabs/advanced.jade:28 +#: src/jade/tabs/advanced.jade:38 msgid "Bitcoin bridge" msgstr "Ponte bitcoin" -#: src/jade/tabs/advanced.jade:45 +#: src/jade/tabs/advanced.jade:55 msgid "Trust line" msgstr "Linea di fiducia" -#: src/jade/tabs/advanced.jade:50 src/jade/tabs/advanced.jade:61 -#: src/jade/tabs/desktop/register.jade:85 src/jade/tabs/security.jade:148 +#: src/jade/tabs/advanced.jade:60 src/jade/tabs/advanced.jade:71 +#: src/jade/tabs/security.jade:162 msgid "Show" msgstr "Visualizza" -#: src/jade/tabs/advanced.jade:51 src/jade/tabs/desktop/register.jade:86 -#: src/jade/tabs/security.jade:149 +#: src/jade/tabs/advanced.jade:61 src/jade/tabs/security.jade:163 msgid "Hide" msgstr "Nascondi" -#: src/jade/tabs/advanced.jade:68 +#: src/jade/tabs/advanced.jade:78 +msgid "Network settings" +msgstr "Impostazioni del network" + +#: src/jade/tabs/advanced.jade:80 +msgid "Maximum network fee" +msgstr "Commissione massima del network" + +#: src/jade/tabs/advanced.jade:96 msgid "Server settings" msgstr "Impostazioni del server" -#: src/jade/tabs/advanced.jade:73 +#: src/jade/tabs/advanced.jade:101 msgid "WebSocket host name" msgstr "Hostname del WebSocket" -#: src/jade/tabs/advanced.jade:75 +#: src/jade/tabs/advanced.jade:103 msgid "Port number" msgstr "Numero della porta" -#: src/jade/tabs/advanced.jade:81 +#: src/jade/tabs/advanced.jade:109 msgid "Socket ip or hostname is invalid." msgstr "Socket ip o hostname non valido." -#: src/jade/tabs/advanced.jade:83 +#: src/jade/tabs/advanced.jade:111 msgid "Port number is invalid." msgstr "Numero della porta non valido." -#: src/jade/tabs/advanced.jade:90 src/jade/tabs/advanced.jade:103 +#: src/jade/tabs/advanced.jade:118 src/jade/tabs/advanced.jade:131 msgid "Secure" msgstr "Sicuro" -#: src/jade/tabs/advanced.jade:104 +#: src/jade/tabs/advanced.jade:132 msgid "Not Secure" msgstr "Non sicuro" -#: src/jade/tabs/advanced.jade:110 +#: src/jade/tabs/advanced.jade:138 msgid "Add new server" msgstr "Aggiungi un nuovo server" -#: src/jade/tabs/apps.jade:5 src/jade/tabs/balance.jade:5 -#: src/jade/tabs/btc.jade:6 src/jade/tabs/exchange.jade:6 -#: src/jade/tabs/fund.jade:6 src/jade/tabs/history.jade:6 -#: src/jade/tabs/kyc.jade:6 src/jade/tabs/send.jade:6 src/jade/tabs/su.jade:5 -#: src/jade/tabs/trade.jade:7 src/jade/tabs/trust.jade:6 -#: src/jade/tabs/usd.jade:6 src/jade/tabs/withdraw.jade:6 -#: src/jade/tabs/xrp.jade:6 -msgid "You have to be online to see this screen" -msgstr "Devi essere online per vedere questa schermata" +#: src/jade/tabs/apps.jade:27 +msgid "App Ripple Address" +msgstr "Indirizzo Ripple di Applicazione" #: src/jade/tabs/apps.jade:29 msgid "Please enter a ripple address." @@ -625,454 +1031,535 @@ msgstr "Per favore inserisci un indirizzo ripple." msgid "Please enter a valid ripple address." msgstr "Per favore inserisci un indirizzo ripple valido." -#: src/jade/tabs/balance.jade:21 -msgid "Total Balance{{1}}" -msgstr "Saldo Totale{{1}}" - -#: src/jade/tabs/balance.jade:22 -msgid "Estimated from latest trade price" -msgstr "Stima in base all'ultimo prezzo di mercato" - -#: src/jade/tabs/balance.jade:29 -msgid "(excluding negative balances)" -msgstr "(escludendo bilanci negativi)" - -#: src/jade/tabs/balance.jade:67 -msgid "Reserve" -msgstr "Riserva" - -#: src/jade/tabs/balance.jade:85 -msgid "Unverified" -msgstr "Non verificato" - -#: src/jade/tabs/balance.jade:92 -msgid "Enter bitcoin address." -msgstr "Inserisci un indirizzo bitcoin." - -#: src/jade/tabs/balance.jade:95 -msgid "Enter amount to withdraw." -msgstr "Inserisci un importo da ritirare." - -#: src/jade/tabs/balance.jade:100 src/jade/tabs/balance.jade:102 -msgid "Enter a valid bitcoin address" -msgstr "Inserisci un indirizzo bitcoin valido" - -#: src/jade/tabs/balance.jade:106 -msgid "Enter a valid amount" -msgstr "Inserisci un importo valido" - -#: src/jade/tabs/balance.jade:113 -msgid "You are sending {{1}} BTC to:" -msgstr "Stai inviando {{1}} BTC a:" - -#: src/jade/tabs/balance.jade:119 src/jade/tabs/balance.jade:134 -#: src/jade/tabs/register.jade:105 src/jade/tabs/register.jade:111 -msgid "Back" -msgstr "Indietro" - -#: src/jade/tabs/balance.jade:122 src/jade/tabs/btc.jade:61 -#: src/jade/tabs/exchange.jade:92 src/jade/tabs/send.jade:203 -#: src/jade/tabs/trade.jade:57 src/jade/tabs/trade.jade:67 -#: src/jade/tabs/trade.jade:241 src/jade/tabs/trust.jade:176 -msgid "Confirm" -msgstr "Conferma" - -#: src/jade/tabs/balance.jade:127 -msgid "Reconnecting to Ripple network" -msgstr "Riconnessione al network Ripple" - -#: src/jade/tabs/balance.jade:128 -msgid "Transaction Successful" -msgstr "Transazione Eseguita" - -#: src/jade/tabs/balance.jade:129 -msgid "Warning" -msgstr "Attenzione" - -#: src/jade/tabs/balance.jade:130 -msgid "Transaction Failed" -msgstr "Transazione non riuscita" - -#: src/jade/tabs/balance.jade:131 -msgid "Message" -msgstr "Messaggio" - #: src/jade/tabs/banner/announcement.jade:2 msgid "Help our team improve Ripple Trade! {{1:Take a quick user survey.}}" msgstr "Aiuta il nostro team a migliorare Ripple Trade!{{1:Compila un breve questionario.}}" #: src/jade/tabs/banner/unfunded.jade:2 msgid "" -"Welcome to Ripple Trade! To activate your account, you'll need at least 20 " -"XRP." -msgstr "Benvenuto in Ripple Trade! Per attivare il tuo account hai bisogno di almeno 20 XRP." +"Welcome to Ripple Trade! Your account needs to be activated. You can " +"activate it in 2 ways:" +msgstr "Benvenuto in Ripple Trade! Il tuo account deve essere attivato. Puoi farlo in 2 modi:" #: src/jade/tabs/banner/unfunded.jade:4 msgid "" "Have another user send XRP to your Ripple name " -"(~{{userCredentials.username}})" -msgstr "Devi avere un altro utente che invii XRP al tuo nome Ripple (~{{userCredentials.username}})" +"(~{{userCredentials.username}}). {{1}}" +msgstr "Devi avere un altro utente che invii XRP al tuo nome Ripple (~{{userCredentials.username}}). {{1}}" -#: src/jade/tabs/banner/unfunded.jade:5 -msgid "" -"Use the {{1}}. A small amount of your first deposit will be used to " -"activate your account." -msgstr "Usa il{{1}}. Un piccolo ammontare del tuo primo deposito sarà usato per attivare il tuo account." +#: src/jade/tabs/brl.jade:24 src/jade/tabs/eur.jade:24 +#: src/jade/tabs/gold.jade:24 src/jade/tabs/jpy.jade:24 +#: src/jade/tabs/mxn.jade:24 src/jade/tabs/trust.jade:42 +#: src/jade/tabs/usd.jade:24 +msgid "There was an error while saving your changes." +msgstr "C'è stato un errore durante il salvataggio delle modifiche." -#: src/jade/tabs/btc.jade:18 -msgid "Bitcoin Deposit" -msgstr "Deposita bitcoin" +#: src/jade/tabs/brl.jade:28 src/jade/tabs/eur.jade:27 +#: src/jade/tabs/gold.jade:27 src/jade/tabs/jpy.jade:28 +#: src/jade/tabs/mxn.jade:28 src/jade/tabs/trust.jade:45 +#: src/jade/tabs/usd.jade:27 +msgid "You must have at least {{1}} to add a new trust line. {{2}}" +msgstr "Devi avere almeno {{1}} per aggiungere una nuova linea di fiducia. {{2}}" -#: src/jade/tabs/btc.jade:26 -msgid "" -"A small amount (~.001 BTC) of your first transfer will be converted to XRP " -"to activate your wallet. {{1:Why?}}" -msgstr "Un piccolo ammontare (~.001 BTC) del tuo primo trasferimento sarà convertito in XRP per attivare il tuo portafoglio. {{1:Perchè?}}" +#: src/jade/tabs/brl.jade:38 +msgid "Brazilian Real Deposit" +msgstr "Deposito in Real brasiliani" -#: src/jade/tabs/btc.jade:30 -msgid "Your current deposit limit is:" -msgstr "Il tuo limite attuale di deposito è:" +#: src/jade/tabs/brl.jade:41 src/jade/tabs/btc.jade:35 +#: src/jade/tabs/eur.jade:38 src/jade/tabs/gold.jade:40 +#: src/jade/tabs/jpy.jade:41 src/jade/tabs/mxn.jade:41 +#: src/jade/tabs/trust.jade:167 src/jade/tabs/usd.jade:38 +msgid "Gateway" +msgstr "Gateway" + +#: src/jade/tabs/brl.jade:42 src/jade/tabs/eur.jade:48 +#: src/jade/tabs/mxn.jade:81 src/jade/tabs/mxn.jade:93 +#: src/jade/tabs/mxn.jade:103 src/jade/tabs/security.jade:49 +msgid "{{1}}{{2}}" +msgstr "{{1}}{{2}}" + +#: src/jade/tabs/brl.jade:43 +msgid "Ripple (~rippex)" +msgstr "Ripple (~rippex)" + +#: src/jade/tabs/brl.jade:46 src/jade/tabs/btc.jade:39 +#: src/jade/tabs/eur.jade:44 src/jade/tabs/gold.jade:44 +#: src/jade/tabs/jpy.jade:45 src/jade/tabs/mxn.jade:46 +#: src/jade/tabs/usd.jade:44 +msgid "Availability" +msgstr "Disponibilità" + +#: src/jade/tabs/brl.jade:47 +msgid "Brazil" +msgstr "Brasile" + +#: src/jade/tabs/brl.jade:49 src/jade/tabs/btc.jade:42 +#: src/jade/tabs/eur.jade:47 src/jade/tabs/gold.jade:47 +#: src/jade/tabs/jpy.jade:48 src/jade/tabs/mxn.jade:49 +#: src/jade/tabs/usd.jade:47 +msgid "Fees" +msgstr "Commissioni" + +#: src/jade/tabs/brl.jade:50 src/jade/tabs/jpy.jade:49 +#: src/jade/tabs/kyc.jade:111 src/jade/tabs/kyc.jade:126 +#: src/jade/tabs/kyc.jade:151 +msgid "{{1}}{{2}}{{3}}" +msgstr "{{1}}{{2}}{{3}}" + +#: src/jade/tabs/brl.jade:51 +msgid "Deposit: 1.50 BRL + 0.5%" +msgstr "Deposito: 1.50 BRL + 0.5%" + +#: src/jade/tabs/brl.jade:52 +msgid "Transfer: 0%" +msgstr "Trasferimento: 0%" + +#: src/jade/tabs/brl.jade:56 src/jade/tabs/btc.jade:45 +#: src/jade/tabs/eur.jade:53 src/jade/tabs/gold.jade:50 +#: src/jade/tabs/jpy.jade:54 src/jade/tabs/mxn.jade:52 +#: src/jade/tabs/usd.jade:50 +msgid "Rating" +msgstr "Valutazione" + +#: src/jade/tabs/brl.jade:62 +msgid "" +"Ripple Trade has partnered with Rippex to provide easy access to BRL. By " +"continuing, you agree with Rippex's {{1}}Following this action will enable " +"Rippex to hold BRL on your behalf." +msgstr "Ripple Trade ha stretto accordi con Rippex per rendere più facili i depositi in BRL. Continuando accetti il {{1}} Rippex. A seguito di ciò Rippex deterrà BRL a tuo nome." + +#: src/jade/tabs/brl.jade:69 +msgid "Add Rippex" +msgstr "Aggiungi Rippex" + +#: src/jade/tabs/brl.jade:70 +msgid "Adding..." +msgstr "Sto aggiungendo..." + +#: src/jade/tabs/brl.jade:71 src/jade/tabs/eur.jade:65 +#: src/jade/tabs/jpy.jade:64 src/jade/tabs/usd.jade:62 +msgid "Hide instructions" +msgstr "Nascondi le istruzioni" + +#: src/jade/tabs/brl.jade:72 src/jade/tabs/eur.jade:66 +#: src/jade/tabs/jpy.jade:65 src/jade/tabs/usd.jade:63 +msgid "Show instructions" +msgstr "Mostra le istruzioni" + +#: src/jade/tabs/brl.jade:75 src/jade/tabs/btc.jade:83 +msgid "{{1}}Not connected" +msgstr "{{1}}Non connesso" + +#: src/jade/tabs/brl.jade:78 src/jade/tabs/btc.jade:86 +msgid "{{1}}Connected" +msgstr "{{1}}Connesso" + +#: src/jade/tabs/brl.jade:81 src/jade/tabs/eur.jade:71 +#: src/jade/tabs/gold.jade:73 src/jade/tabs/jpy.jade:74 +#: src/jade/tabs/mxn.jade:76 src/jade/tabs/usd.jade:68 +msgid "Your account has to be activated before you can add a gateway account." +msgstr "Il tuo account deve essere attivato prima di poter aggiungere un gateway." + +#: src/jade/tabs/brl.jade:84 src/jade/tabs/eur.jade:75 +#: src/jade/tabs/gold.jade:76 src/jade/tabs/jpy.jade:77 +#: src/jade/tabs/mxn.jade:79 src/jade/tabs/usd.jade:72 +msgid "×" +msgstr "×" + +#: src/jade/tabs/brl.jade:85 +msgid "NEW CUSTOMERS- SIGN UP AT RIPPEX" +msgstr "NUOVI CLIENTI - ISCRIVITI A RIPPEX" + +#: src/jade/tabs/brl.jade:86 +msgid "" +"{{1}} at Rippex.net to initiate deposits and withdrawals. You will " +"need:{{2}}" +msgstr "{{1}} a Rippex.net per iniziare a depositare e prelevare. Avrai bisogno di:{{2}}" + +#: src/jade/tabs/brl.jade:90 +msgid "A {{1}}" +msgstr "Un {{1}}" + +#: src/jade/tabs/brl.jade:92 +msgid "A bank account in Brazil." +msgstr "Un conto bancario in Brasile." + +#: src/jade/tabs/brl.jade:96 +msgid "EXISTING RIPPEX CUSTOMERS" +msgstr "ATTUALI CLIENTI RIPPEX" + +#: src/jade/tabs/brl.jade:97 +msgid "If you have a Rippex account, {{1}}" +msgstr "Se hai un account Rippex, {{1}}" + +#: src/jade/tabs/brl.jade:100 +msgid "DEPOSIT INSTRUCTIONS" +msgstr "ISTRUZIONI SUL DEPOSITO" + +#: src/jade/tabs/brl.jade:101 +msgid "Rippex accepts deposits from all Brazilian banks. Instructions {{1}}" +msgstr "Rippex accetta depositi da tutte le banche brasiliane. Istruzioni {{1}}" + +#: src/jade/tabs/btc.jade:19 +msgid "Success! You can deposit BTC via your generated BTC receiving address." +msgstr "Fatto! Ora puoi depositare BTC tramite l'indirizzo BTC di ricezione che hai creato." + +#: src/jade/tabs/btc.jade:21 +msgid "There was an error with your request. {{1}}" +msgstr "C'è stato un errore con la tua richiesta. {{1}}" -#: src/jade/tabs/btc.jade:32 -msgid "Remove Limit" -msgstr "Rimuovi Limite" +#: src/jade/tabs/btc.jade:30 +msgid "Bitcoin Deposit" +msgstr "Deposita bitcoin" #: src/jade/tabs/btc.jade:36 -msgid "Waiting for response from SnapSwap service..." -msgstr "Aspettando il responso dal supporto di SnapSwap..." +msgid "btc2ripple (~snapswap) {{1}}" +msgstr "btc2ripple (~snapswap) {{1}}" + +#: src/jade/tabs/btc.jade:40 src/jade/tabs/gold.jade:45 +#: src/jade/tabs/jpy.jade:46 +msgid "All countries" +msgstr "Tutti i paesi" + +#: src/jade/tabs/btc.jade:43 src/jade/tabs/mxn.jade:50 +msgid "0%" +msgstr "0%" -#: src/jade/tabs/btc.jade:38 +#: src/jade/tabs/btc.jade:50 msgid "" -"To deposit, generate a bitcoin receiving address using the {{1}} service " -"powered by SnapSwap." -msgstr "Per depositare, crea un indirizzo bitcoin usando il {{1}} servizio fornito da SnapSwap." +"Ripple Trade has partnered with btc2ripple to make depositing BTC easier. By" +" proceeding, you agree to the btc2ripple {{1}} Following this action will " +"allow btc2ripple to hold BTC on your behalf." +msgstr "Ripple Trade ha stretto accordi con btc2ripple per rendere più facili i depositi in BTC. Continuando accetti il {{1}} btc2ripple. A seguito di ciò btc2ripple deterrà BTC a tuo nome." -#: src/jade/tabs/btc.jade:45 -msgid "Generate bitcoin address" -msgstr "Crea un indirizzo bitcoin" +#: src/jade/tabs/btc.jade:56 +msgid "Add btc2ripple" +msgstr "Aggiungi btc2ripple" -#: src/jade/tabs/btc.jade:49 src/jade/tabs/security.jade:56 -#: src/jade/tabs/trust.jade:160 +#: src/jade/tabs/btc.jade:60 src/jade/tabs/security.jade:64 +#: src/jade/tabs/trust.jade:123 msgid "Connect" msgstr "Connetti" -#: src/jade/tabs/btc.jade:51 +#: src/jade/tabs/btc.jade:62 msgid "btc2ripple would like to:" msgstr "btc2ripple vorrebbe:" -#: src/jade/tabs/btc.jade:53 -msgid "- Receive your email address{{1}}" -msgstr "- Ricevere il vostro indirizzo email{{1}}" +#: src/jade/tabs/btc.jade:64 +msgid "- Receive your email address {{1}}" +msgstr "- Ricevere il vostro indirizzo email {{1}}" -#: src/jade/tabs/btc.jade:54 +#: src/jade/tabs/btc.jade:65 msgid "({{userBlob.data.email}})" msgstr "({{userBlob.data.email}})" -#: src/jade/tabs/btc.jade:55 +#: src/jade/tabs/btc.jade:66 msgid "- Hold deposited BTC on your behalf" msgstr "- Tenere depositati BTC a vostro nome" -#: src/jade/tabs/btc.jade:56 +#: src/jade/tabs/btc.jade:67 msgid "By proceeding, you agree to the btc2ripple {{1}}" msgstr "Proseguendo, sei d'accordo con btc2ripple {{1}}" -#: src/jade/tabs/btc.jade:63 +#: src/jade/tabs/btc.jade:75 msgid "" "SnapSwap's btc2ripple service is currently unavailable. Please check back " "later." msgstr "Il servizio btc2ripple di SnapSwap non è attualmente disponibile. Per favore riprova più tardi." -#: src/jade/tabs/contacts.jade:6 src/jade/tabs/contacts.jade:26 +#: src/jade/tabs/btc.jade:94 +msgid "Personal Deposit address" +msgstr "Indirizzo personale di Deposito" + +#: src/jade/tabs/btc.jade:96 +msgid "Your account is fully verified." +msgstr "Il tuo account è del tutto verificato." + +#: src/jade/tabs/btc.jade:104 +msgid "Withdrawal instructions" +msgstr "Istruzioni per il prelievo" + +#: src/jade/tabs/btc.jade:105 +msgid "" +"To withdraw to a BTC address, go to the Send tab and enter the BTC address. " +"Using the btc2ripple service, you will be able tosend to that BTC address." +msgstr "Per inviare ad un indirizzo BTC, vai nella sezione Invia e inserisci l'indirizzo BTC. Se usi il servizio btc2ripple, potrai inviare a questo indirizzo BTC." + +#: src/jade/tabs/btc.jade:110 +msgid "Waiting for response from SnapSwap service..." +msgstr "Aspettando il responso dal supporto di SnapSwap..." + +#: src/jade/tabs/btc.jade:112 +msgid "" +"To deposit, generate a bitcoin receiving address using the {{1}} service " +"powered by SnapSwap." +msgstr "Per depositare, crea un indirizzo bitcoin usando il servizio {{1}} fornito da SnapSwap." + +#: src/jade/tabs/contacts.jade:8 +msgid "A new contact has been successfully added." +msgstr "Un nuovo contatto è stato aggiunto correttamente." + +#: src/jade/tabs/contacts.jade:9 +msgid "Your contact has been successfully updated." +msgstr "Il tuo contatto è stato correttamente aggiornato." + +#: src/jade/tabs/contacts.jade:10 +msgid "A contact has been successfully removed." +msgstr "Un contatto è stato rimosso correttamente." + +#: src/jade/tabs/contacts.jade:12 src/jade/tabs/contacts.jade:24 +msgid "Contact" +msgstr "Contatto" + +#: src/jade/tabs/contacts.jade:13 src/jade/tabs/contacts.jade:32 msgid "Ripple name or address" msgstr "Nome o indirizzo Ripple" -#: src/jade/tabs/contacts.jade:9 src/jade/tabs/contacts.jade:13 -#: src/jade/tabs/contacts.jade:56 +#: src/jade/tabs/contacts.jade:15 src/jade/tabs/contacts.jade:19 +#: src/jade/tabs/contacts.jade:48 msgid "Add contact" msgstr "Aggiungi contatto" -#: src/jade/tabs/contacts.jade:18 -msgid "Contact" -msgstr "Contatti" - -#: src/jade/tabs/contacts.jade:21 +#: src/jade/tabs/contacts.jade:27 src/jade/tabs/send.jade:245 +#: src/jade/tabs/send.jade:277 msgid "Please enter a contact." msgstr "Per favore inserisci un contatto." -#: src/jade/tabs/contacts.jade:22 +#: src/jade/tabs/contacts.jade:28 msgid "This contact already exists." msgstr "Contatto già presente." -#: src/jade/tabs/contacts.jade:30 +#: src/jade/tabs/contacts.jade:36 msgid "Please enter a Ripple name." msgstr "Per favore inserisci un nome Ripple." -#: src/jade/tabs/contacts.jade:31 src/jade/tabs/contacts.jade:47 +#: src/jade/tabs/contacts.jade:37 src/jade/tabs/contacts.jade:45 msgid "" "You already have a contact with the same Ripple name and/or the same " "Destination tag." msgstr "Hai già un contatto con lo stesso indirizzo Ripple e/o la stessa etichetta di destinazione." -#: src/jade/tabs/contacts.jade:32 +#: src/jade/tabs/contacts.jade:38 msgid "Not a valid Ripple name or address." msgstr "Nome o indirizzo Ripple non valido." -#: src/jade/tabs/contacts.jade:38 -msgid "Please enter a Ripple address." -msgstr "Per favore inserisci un indirizzo Ripple." - -#: src/jade/tabs/contacts.jade:39 src/jade/tabs/contacts.jade:53 -msgid "" -"You already have a contact with the same Ripple address and/or the same " -"Destination tag." -msgstr "Hai già un contatto con lo stesso indirizzo Ripple e/o la stessa etichetta di destinazione." - -#: src/jade/tabs/contacts.jade:40 -msgid "Not a valid Ripple address." -msgstr "Indirizzo Ripple non valido." - -#: src/jade/tabs/contacts.jade:43 src/jade/tabs/contacts.jade:49 -#: src/jade/tabs/contacts.jade:89 src/jade/tabs/send.jade:49 -#: src/jade/tabs/tx.jade:54 +#: src/jade/tabs/contacts.jade:41 src/jade/tabs/contacts.jade:81 +#: src/jade/tabs/send.jade:42 src/jade/tabs/tx.jade:56 msgid "Destination tag" msgstr "Etichetta destinatario" -#: src/jade/tabs/contacts.jade:46 src/jade/tabs/contacts.jade:52 -#: src/jade/tabs/send.jade:53 +#: src/jade/tabs/contacts.jade:42 +msgid "Leave blank if not applicable" +msgstr "Lascia vuoto se non applicabile" + +#: src/jade/tabs/contacts.jade:44 src/jade/tabs/send.jade:46 msgid "Invalid destination tag" msgstr "Etichetta del destinatario non valida" -#: src/jade/tabs/contacts.jade:80 src/jade/tabs/send.jade:232 -#: src/jade/tabs/send.jade:260 +#: src/jade/tabs/contacts.jade:72 msgid "You already have a contact with the same name." msgstr "Hai già un contatto con lo stesso nome." -#: src/jade/tabs/contacts.jade:86 +#: src/jade/tabs/contacts.jade:78 msgid "You already have this address." msgstr "Hai già questo indirizzo." -#: src/jade/tabs/contacts.jade:87 +#: src/jade/tabs/contacts.jade:79 src/jade/tabs/debug.jade:14 msgid "Not a valid address." msgstr "Indirizzo non valido." -#: src/jade/tabs/contacts.jade:92 +#: src/jade/tabs/contacts.jade:84 msgid "Invalid destination tag." msgstr "Etichetta del destinatario non valida." -#: src/jade/tabs/contacts.jade:102 +#: src/jade/tabs/contacts.jade:94 msgid "" "You don't have any contacts yet. Click on 'Add contact' button in the top " "right corner to add a new contact." msgstr "Non hai ancora contatti. Premi il bottone 'Aggiungi Contatto' nell'angolo in alto a destra per aggiungere un nuovo contatto." -#: src/jade/tabs/desktop/login.jade:3 -msgid "" -"You will not be able to login to the downloadable client using a " -"username/password you create on Ripple Trade or the web version of the " -"Ripple Client. You can only use a secret key to access an existing Ripple " -"account. This is because the downloadable client stores your login " -"information locally on your computer, so your account is as safe as the " -"security of your personal computer." -msgstr "Non potrai fare il login nel client scaricabile usando il nome utente o la password che hai creato su Ripple Trade o sulla versione web del Client Ripple. Puoi solo usare la chiave segreta per accedere ad un account Ripple esistente. Questo è dovuto al fatto che il client scaricabile salva sul tuo computer le informazioni di login, in questo modo il tuo account è sicuro se è sicuro il tuo pc." - -#: src/jade/tabs/desktop/login.jade:12 src/jade/tabs/desktop/login.jade:34 -msgid "Open account" -msgstr "Apri account" - -#: src/jade/tabs/desktop/login.jade:15 src/jade/tabs/desktop/register.jade:5 -#: src/jade/tabs/desktop/register.jade:65 -msgid "Create new account" -msgstr "Crea un nuovo account" - -#: src/jade/tabs/desktop/login.jade:18 -msgid "Select account file {{walletfile}}" -msgstr "Seleziona il file dell'account {{walletfile}}" +#: src/jade/tabs/debug.jade:9 +msgid "Enter a Ripple name or address" +msgstr "Inserisci un nome Ripple o un indirizzo" -#: src/jade/tabs/desktop/login.jade:21 -msgid "Select account file" -msgstr "Seleziona il file dell'account" +#: src/jade/tabs/debug.jade:13 +msgid "Please enter an address." +msgstr "Per favore inserisci un indirizzo." -#: src/jade/tabs/desktop/login.jade:24 -msgid "Account password" -msgstr "Password dell'account" +#: src/jade/tabs/debug.jade:17 +msgid "Turn on debug mode" +msgstr "Attiva modalità di debug" -#: src/jade/tabs/desktop/register.jade:8 -msgid "Open existing account" -msgstr "Apri un account esistente" +#: src/jade/tabs/eur.jade:35 +msgid "Euro Deposit" +msgstr "Deposito in Euro" -#: src/jade/tabs/desktop/register.jade:11 -msgid "Create an empty account" -msgstr "Crea un account vuoto" +#: src/jade/tabs/eur.jade:39 +msgid "SnapSwap EU (~SnapSwap){{1}}{{2}}" +msgstr "SnapSwap EU (~SnapSwap){{1}}{{2}}" -#: src/jade/tabs/desktop/register.jade:14 -msgid "Create a new account with a secret key" -msgstr "Crea un nuovo account con la chiave segreta" +#: src/jade/tabs/eur.jade:45 +msgid "All countries, except USA" +msgstr "Tutti i paesi tranne gli USA" -#: src/jade/tabs/desktop/register.jade:18 -msgid "Create empty account" -msgstr "Crea account vuoto" +#: src/jade/tabs/eur.jade:49 +msgid "€ 0.31 – € 15.00" +msgstr "€ 0.31 – € 15.00" -#: src/jade/tabs/desktop/register.jade:20 -msgid "Encrypt your new account file: {{walletfile}}" -msgstr "Cripta il tuo nuovo file dell'account: {{walletfile}}" - -#: src/jade/tabs/desktop/register.jade:24 -msgid "Wallet file" -msgstr "File del portafoglio" - -#: src/jade/tabs/desktop/register.jade:31 +#: src/jade/tabs/eur.jade:59 msgid "" -"Your password is weak. It is not a mix of letters, numbers and symbols or it" -" is the same as your Ripple name." -msgstr "La tua password è debole. Non è una combinazione di lettere, numeri e simboli o coincide con il tuo nome Ripple." +"Ripple Trade has partnered with SnapSwap to provide easier access to EUR. " +"Following this action will enable SnapSwap to hold EUR on your behalf." +msgstr "Ripple Trade ha stretto accordi con SnapSwap per rendere più facili i depositi in EUR. Continuando permetterai a SnapSwap di detenere EUR a tuo nome." -#: src/jade/tabs/desktop/register.jade:33 src/jade/tabs/recover.jade:40 -#: src/jade/tabs/register.jade:49 src/jade/tabs/security.jade:123 -msgid "Confirm password" -msgstr "Conferma password" +#: src/jade/tabs/eur.jade:69 src/jade/tabs/usd.jade:66 +msgid "Not connected" +msgstr "Non connesso" -#: src/jade/tabs/desktop/register.jade:36 src/jade/tabs/recover.jade:43 -#: src/jade/tabs/register.jade:52 src/jade/tabs/security.jade:126 -msgid "Passwords do not match" -msgstr "Le password non corrispondono" +#: src/jade/tabs/eur.jade:70 src/jade/tabs/usd.jade:67 +msgid "Connected" +msgstr "Connesso" -#: src/jade/tabs/desktop/register.jade:42 -msgid "Encrypt account" -msgstr "Cripta l'account" +#: src/jade/tabs/eur.jade:76 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.EU" +msgstr "NUOVI CLIENTI - ISCRIVITI A SNAPSWAP.EU" -#: src/jade/tabs/desktop/register.jade:44 -msgid "Cancel and delete account file" -msgstr "Cancella ed elimina il file dell'account" +#: src/jade/tabs/eur.jade:77 +msgid "Register and verify your account at SnapSwap EU. You will need: {{1}}" +msgstr "Registra e verifica il tuo account SnapSwap EU. Avrai bisogno di: {{1}}" -#: src/jade/tabs/desktop/register.jade:50 -msgid "Create account with secret key" -msgstr "Crea un account con una chiave segreta" - -#: src/jade/tabs/desktop/register.jade:55 -msgid "Enter your secret key" -msgstr "Inserisci la tua chiave segreta" - -#: src/jade/tabs/desktop/register.jade:62 -msgid "Secret is invalid" -msgstr "Chiave non valida" - -#: src/jade/tabs/desktop/register.jade:67 src/jade/tabs/fund.jade:77 -#: src/jade/tabs/trade.jade:325 -msgid "Cancel" -msgstr "Cancella" - -#: src/jade/tabs/desktop/register.jade:69 src/jade/tabs/register.jade:95 -msgid "Have an account? {{1:Log In}}" -msgstr "Hai un account? {{1:Entra}}" - -#: src/jade/tabs/desktop/register.jade:75 -msgid "Important:" -msgstr "Importante:" - -#: src/jade/tabs/desktop/register.jade:76 +#: src/jade/tabs/eur.jade:81 src/jade/tabs/usd.jade:78 msgid "" -"The secret key below gives access to your money in the unlikely case that " -"you lose your password. In that case your contacts will be lost, but with " -"this secret key alone anyone can retrieve your money. So please store it " -"somewhere PRIVATE AND SAFE. Read more about keys and wallet safety in {{1}}" -msgstr "La chiave segreta di seguito dà accesso al tuo denaro nel caso sfortunato che si sia persa la password. In tal caso i tuoi contatti andranno persi, ma con la chiave segreta chiunque può recuperare il tuo denaro. Per favore salvala in un luogo PRIVATO e SICURO. Informati sulle chiavi e sulla sicurezza del portafoglio in {{1}}" +"A valid government-issued ID: driver license, passport, ID card, or visa " +"stamp." +msgstr "Un documento d'identità: carta d'identità, patente, passaporto, o timbro sul passaporto" -#: src/jade/tabs/desktop/register.jade:79 src/jade/tabs/settings/navbar.jade:2 -msgid "Security" -msgstr "Sicurezza" +#: src/jade/tabs/eur.jade:83 src/jade/tabs/usd.jade:80 +msgid "A proof of address: driver license, utility bill, bank statement, etc." +msgstr "Dimostrare il tuo indirizzo: patente, bolletta della luce, estratto conto, etc." -#: src/jade/tabs/desktop/register.jade:81 -msgid "Passphrase:{{1}}{{2}}{{3}}{{4}}" -msgstr "Password:{{1}}{{2}}{{3}}{{4}}" +#: src/jade/tabs/eur.jade:85 +msgid "EXISTING SNAPSWAP EU CUSTOMERS" +msgstr "ATTUALI CLIENTI SNAPSWAP EU" -#: src/jade/tabs/desktop/register.jade:90 -msgid "Secret key:" -msgstr "Chiave segreta:" +#: src/jade/tabs/eur.jade:89 src/jade/tabs/jpy.jade:94 +#: src/jade/tabs/usd.jade:86 +msgid "Login to your account {{1}}" +msgstr "Entra nel tuo account {{1}}" -#: src/jade/tabs/desktop/register.jade:95 src/jade/tabs/register.jade:150 -msgid "Show secret key" -msgstr "Mostra chiave segreta" +#: src/jade/tabs/eur.jade:92 src/jade/tabs/jpy.jade:96 +msgid "DEPOSITS AND WITHDRAWALS:" +msgstr "DEPOSITI E PRELIEVI:" -#: src/jade/tabs/desktop/register.jade:97 src/jade/tabs/register.jade:151 -msgid "Hide secret key" -msgstr "Nascondi chiave segreta" +#: src/jade/tabs/eur.jade:96 +msgid "Deposit from your bank (2-4 business days)" +msgstr "Deposito dal tuo conto bancario (2-4 giorni lavorativi)" -#: src/jade/tabs/desktop/register.jade:98 -msgid "Have you saved your secret key somewhere safe?" -msgstr "Hai salvato la chiave segreta del tuo account in un luogo sicuro?" +#: src/jade/tabs/eur.jade:98 +msgid "Withdraw to your bank account in SEPA (2-4 business days)" +msgstr "Versamento sul tuo conto bancario in SEPA (2-4 giorni lavorativi)" -#: src/jade/tabs/desktop/register.jade:101 -msgid "Yes, I saved my secret key" -msgstr "Sì, ho salvato la mia chiave segreta" +#: src/jade/tabs/eur.jade:100 +msgid "Withdraw to SmartyCash Card (instant)" +msgstr "Versamento su Carta SmartyCash (istantaneo)" #: src/jade/tabs/exchange.jade:13 msgid "You have to be funded before you can exchange money" msgstr "Devi avere dei fondi prima di poter scambiare denaro" +#: src/jade/tabs/exchange.jade:23 +msgid "Buy (Market Order)" +msgstr "Compra (Ordine di Mercato)" + +#: src/jade/tabs/exchange.jade:24 +msgid "" +"Submit a buy order at the current market rate. Orders will execute " +"instantly." +msgstr "Invia un ordine di acquisto al prezzo di mercato corrente. Gli ordini verranno eseguiti immediatamente." + # Receive (amount) -#: src/jade/tabs/exchange.jade:19 +#: src/jade/tabs/exchange.jade:27 msgid "Receive (amount)" -msgstr "Ricevere" +msgstr "Voglio comprare" + +#: src/jade/tabs/exchange.jade:34 src/jade/tabs/widgets/balances.jade:49 +msgid "add gateway" +msgstr "aggiungi gateway" -#: src/jade/tabs/exchange.jade:26 src/jade/tabs/send.jade:88 +#: src/jade/tabs/exchange.jade:37 src/jade/tabs/send.jade:90 msgid "Please enter an amount." msgstr "Per favore inserisci un importo." -#: src/jade/tabs/exchange.jade:27 src/jade/tabs/send.jade:89 -#: src/jade/tabs/trade.jade:146 src/jade/tabs/trade.jade:161 -#: src/jade/tabs/trade.jade:176 +#: src/jade/tabs/exchange.jade:38 src/jade/tabs/send.jade:91 +#: src/jade/tabs/trade.jade:153 src/jade/tabs/trade.jade:168 +#: src/jade/tabs/trade.jade:183 src/jade/tabs/trust.jade:101 msgid "Not a valid amount." msgstr "Importo non valido." -#: src/jade/tabs/exchange.jade:28 +#: src/jade/tabs/exchange.jade:39 +msgid "" +"You are either trying to convert too little or too much XRP.Minimum amount " +"is 0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "Stai cercando di convertire troppi o troppo pochi XRP. Il minimo è 0.000001 XRP e il massimo è 100 miliardi di XRP." + +#: src/jade/tabs/exchange.jade:42 src/jade/tabs/send.jade:96 +#: src/jade/tabs/trust.jade:103 +msgid "Your amount has too many digits. The max number of digits is 16." +msgstr "L'importo ha troppe cifre. Il numero massimo di cifre è 16." + +#: src/jade/tabs/exchange.jade:43 msgid "Please enter an amount greater than zero." msgstr "Inserire una quantità maggiore di zero." -#: src/jade/tabs/exchange.jade:31 -msgid "Calculating..." -msgstr "Sto calcolando..." +#: src/jade/tabs/exchange.jade:46 +msgid "{{1}} Calculating..." +msgstr "{{1}} Sto calcolando..." -#: src/jade/tabs/exchange.jade:33 +#: src/jade/tabs/exchange.jade:50 msgid "" "Cannot convert to {{exchange.amount}} {{exchange.currency_name}}. Please " "make sure your account has enough funds, and a {{1}} to a " "{{exchange.currency_name}} gateway." msgstr "Impossibile cambiare {{exchange.amount}} {{exchange.currency_name}}. Per favore assicurati che il tuo conto abbia fondi sufficienti, e un {{1}} a un {{exchange.currency_name}} gateway." -#: src/jade/tabs/exchange.jade:37 +#: src/jade/tabs/exchange.jade:54 msgid "" "Sorry! Cannot convert {{exchange.amount}} {{exchange.currency_name}}. Please" " make sure your account has enough funds." msgstr "Spiacenti! Impossibile convertire {{exchange.amount}} {{exchange.currency_name}}. Per favore assicurati che il tuo conto abbia fondi sufficienti." -#: src/jade/tabs/exchange.jade:39 src/jade/tabs/send.jade:133 +#: src/jade/tabs/exchange.jade:56 src/jade/tabs/send.jade:142 msgid "Error while calculating path" msgstr "Errore durante il calcolo del percorso" -#: src/jade/tabs/exchange.jade:55 +#: src/jade/tabs/exchange.jade:60 +msgid "Exchange" +msgstr "Scambia" + +#: src/jade/tabs/exchange.jade:72 msgid "Exchange {{ alt.amount | rpcurrency }} {{1}}" msgstr "Cambia {{ alt.amount | rpcurrency }} {{1}}" -#: src/jade/tabs/exchange.jade:61 src/jade/tabs/send.jade:161 +#: src/jade/tabs/exchange.jade:78 src/jade/tabs/send.jade:170 msgid "Paths last updated {{1}} {{2: seconds}} {{3: second}} ago" msgstr "Ultimo aggiornamento dei percorsi {{1}} {{2: secondi}} {{3: secondo}} fa" -#: src/jade/tabs/exchange.jade:70 +#: src/jade/tabs/exchange.jade:89 msgid "Ripple is calculating a path for your conversion." msgstr "Ripple sta calcolando il percorso per il tuo cambio." -#: src/jade/tabs/exchange.jade:75 +#: src/jade/tabs/exchange.jade:94 msgid "" "{{1:You are exchanging}}{{2}}{{3:to}}{{4}}{{5:You will pay at " "most}}{{6}}{{7:Are you sure?}}" msgstr "{{1:Stai cambiando}}{{2}}{{3:in}}{{4}}{{5:Pagherai al massimo}}{{6}}{{7:Sei sicuro?}}" -#: src/jade/tabs/exchange.jade:116 +#: src/jade/tabs/exchange.jade:139 msgid "Do another conversion" msgstr "Fai un altro cambio" -#: src/jade/tabs/exchange.jade:118 src/jade/tabs/send.jade:243 -#: src/jade/tabs/send.jade:273 +#: src/jade/tabs/exchange.jade:141 src/jade/tabs/send.jade:257 +#: src/jade/tabs/send.jade:291 msgid "Back to balance" msgstr "Torna al saldo" @@ -1080,215 +1567,280 @@ msgstr "Torna al saldo" msgid "Add trust" msgstr "Aggiungi fiducia" -#: src/jade/tabs/fund.jade:33 src/jade/tabs/fund.jade:47 -#: src/jade/tabs/trust.jade:100 src/jade/tabs/trust.jade:121 +#: src/jade/tabs/fund.jade:27 src/jade/tabs/send.jade:26 +msgid "Enter a Ripple name or contact" +msgstr "Inserisci un nome Ripple o un contatto" + +#: src/jade/tabs/fund.jade:33 src/jade/tabs/trust.jade:73 msgid "Account does not meet the minimum XRP reserve." msgstr "Il conto non ha la quantità minima di riserva di XRP." -#: src/jade/tabs/fund.jade:34 src/jade/tabs/fund.jade:48 -#: src/jade/tabs/send.jade:107 src/jade/tabs/trust.jade:101 -#: src/jade/tabs/trust.jade:122 -msgid "More information" -msgstr "Maggiori informazioni" - -#: src/jade/tabs/fund.jade:36 src/jade/tabs/trust.jade:103 +#: src/jade/tabs/fund.jade:36 src/jade/tabs/trust.jade:76 msgid "Please enter a Ripple name, contact, or address." msgstr "Per favore inserisci un nome Ripple, un contatto o un indirizzo." -#: src/jade/tabs/fund.jade:37 src/jade/tabs/fund.jade:51 -#: src/jade/tabs/trust.jade:104 src/jade/tabs/trust.jade:125 +#: src/jade/tabs/fund.jade:37 src/jade/tabs/trust.jade:77 msgid "You've entered your own address." msgstr "Hai inserito il tuo indirizzo." -#: src/jade/tabs/fund.jade:38 src/jade/tabs/trust.jade:105 +#: src/jade/tabs/fund.jade:38 src/jade/tabs/trust.jade:78 msgid "Please enter a valid Ripple name, contact, or address." msgstr "Per favore inserisci un nome Ripple valido, un contatto o un indirizzo." -#: src/jade/tabs/fund.jade:50 src/jade/tabs/trust.jade:124 -msgid "Please enter a Ripple address or contact." -msgstr "Per favore inserisci un indirizzo Ripple o un contatto." - -#: src/jade/tabs/fund.jade:52 src/jade/tabs/trust.jade:126 -msgid "Please enter a valid Ripple address or contact." -msgstr "Per favore inserisci un indirizzo Ripple valido o un contatto." - -#: src/jade/tabs/fund.jade:55 src/jade/tabs/history.jade:190 -#: src/jade/tabs/trade.jade:303 src/jade/tabs/trust.jade:129 -msgid "Amount" -msgstr "Quantità" - -#: src/jade/tabs/fund.jade:62 src/jade/tabs/trust.jade:107 -#: src/jade/tabs/trust.jade:140 +#: src/jade/tabs/fund.jade:48 src/jade/tabs/trust.jade:80 msgid "Amount field is required" msgstr "Il campo quantità è obbligatorio" -#: src/jade/tabs/fund.jade:64 src/jade/tabs/trust.jade:109 -#: src/jade/tabs/trust.jade:142 +#: src/jade/tabs/fund.jade:50 src/jade/tabs/trust.jade:82 +#: src/jade/tabs/trust.jade:105 msgid "" "XRP can be sent without extending trust. If you really want to trust in XRP," " please use XRR currency code." msgstr "Gli XRP possono essere inviati anche senza dare Fiducia. Se vuoi dare Fiducia in XRP, per favore utilizza il codice della valuta XRR." -#: src/jade/tabs/fund.jade:67 src/jade/tabs/trust.jade:112 -#: src/jade/tabs/trust.jade:145 +#: src/jade/tabs/fund.jade:53 src/jade/tabs/trust.jade:85 +#: src/jade/tabs/trust.jade:108 msgid "Currency field is required" msgstr "Il campo valuta è obbligatorio" -#: src/jade/tabs/fund.jade:73 src/jade/tabs/trust.jade:151 +#: src/jade/tabs/fund.jade:59 src/jade/tabs/fund.jade:60 +#: src/jade/tabs/trust.jade:114 src/jade/tabs/trust.jade:115 msgid "Allow Rippling" msgstr "Permetti Rippling" -#: src/jade/tabs/fund/menu.jade:2 -msgid "XRP" -msgstr "XRP" +#: src/jade/tabs/fund.jade:60 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"trust. More " +"information" +msgstr "Permetti che il saldo su questa linea di fiducia possa essere trasferito ad un altro emittente di cui hai fiducia. Maggiori informazioni" + +#: src/jade/tabs/fund.jade:63 +msgid "Cancel" +msgstr "Cancella" #: src/jade/tabs/fund/menu.jade:3 -msgid "BTC" -msgstr "BTC" +msgid "{{1}}XRP" +msgstr "{{1}}XRP" #: src/jade/tabs/fund/menu.jade:6 +msgid "Featured gateways" +msgstr "Principali gateways" + +#: src/jade/tabs/fund/menu.jade:7 +msgid "{{1}}BRL" +msgstr "{{1}}BRL" + +#: src/jade/tabs/fund/menu.jade:10 +msgid "{{1}}BTC" +msgstr "{{1}}BTC" + +#: src/jade/tabs/fund/menu.jade:13 +msgid "{{1}}EUR" +msgstr "{{1}}EUR" + +#: src/jade/tabs/fund/menu.jade:16 +msgid "{{1}}JPY" +msgstr "{{1}}JPY" + +#: src/jade/tabs/fund/menu.jade:19 +msgid "{{1}}MXN" +msgstr "{{1}}MXN" + +#: src/jade/tabs/fund/menu.jade:22 +msgid "{{1}}USD" +msgstr "{{1}}USD" + +#: src/jade/tabs/fund/menu.jade:25 +msgid "{{1}}XAU" +msgstr "{{1}}XAU" + +#: src/jade/tabs/fund/menu.jade:28 +msgid "Add any gateway" +msgstr "Aggiungi un qualsiasi gateway" + +#: src/jade/tabs/fund/menu.jade:30 msgid "Learn more about gateways" -msgstr "Informati di più sui gateways" +msgstr "Per saperne di più sui gateways" + +#: src/jade/tabs/gold.jade:37 +msgid "Gold Deposit" +msgstr "Deposito in Oro" -#: src/jade/tabs/history.jade:9 -msgid "Loading history..." -msgstr "Caricamento della cronologia..." +#: src/jade/tabs/gold.jade:41 +msgid "Gold Bullion International (~gbi) {{1}}" +msgstr "Gold Bullion International (~gbi) {{1}}" + +#: src/jade/tabs/gold.jade:48 +msgid "0.5% per year" +msgstr "0.5% l'anno" + +#: src/jade/tabs/gold.jade:56 +msgid "" +"Ripple Trade has partnered with GBI to provide easy access toXAU. By " +"continuing, you are allowing GBI to hold gold on your behalf." +msgstr "Ripple Trade ha stretto accordi con GBI per rendere più facili i depositi in XAU. Continuando permetterai a GBI di detenere oro a tuo nome." -#: src/jade/tabs/history.jade:14 +#: src/jade/tabs/gold.jade:67 src/jade/tabs/jpy.jade:68 +#: src/jade/tabs/mxn.jade:70 +msgid "{{1}} Not connected" +msgstr "{{1}} Non connesso" + +#: src/jade/tabs/gold.jade:70 src/jade/tabs/jpy.jade:71 +#: src/jade/tabs/mxn.jade:73 +msgid "{{1}} Connected" +msgstr "{{1}} Connesso" + +#: src/jade/tabs/gold.jade:77 +msgid "Deposit" +msgstr "Deposito" + +#: src/jade/tabs/gold.jade:78 +msgid "" +"GBI does not currently support direct deposits. You can {{1}} or {{2}}." +msgstr "Attualmente GBI non permette depositi diretti. Puoi {{1}} oppure {{2}}." + +#: src/jade/tabs/gold.jade:84 +msgid "Withdrawal" +msgstr "Prelievo" + +#: src/jade/tabs/gold.jade:85 +msgid "" +"You can redeem the physical gold in 1 oz increments.To do so, you'll need to" +" {{1}} and arrange to have the gold shipped to you." +msgstr "Puoi riscattare l'oro fisico per incrementi di un'oncia. Per farlo dovrai {{1}} e ti dovrai accordare per la spedizione dell'oro." + +#: src/jade/tabs/history.jade:11 +msgid "Loading History" +msgstr "Caricamento della Cronologia" + +#: src/jade/tabs/history.jade:16 msgid "Your account history is empty" msgstr "La cronologia del tuo account è vuota" -#: src/jade/tabs/history.jade:20 -msgid "Filters" -msgstr "Filtri" - -#: src/jade/tabs/history.jade:23 +#: src/jade/tabs/history.jade:24 msgid "Transaction type{{1}}{{2}}" msgstr "Tipo di transazione{{1}}{{2}}" -#: src/jade/tabs/history.jade:48 +#: src/jade/tabs/history.jade:37 msgid "Date{{1}}{{2}}" msgstr "Data{{1}}{{2}}" -#: src/jade/tabs/history.jade:53 +#: src/jade/tabs/history.jade:42 msgid "Load history for specific date range" msgstr "Carica la cronologia nell'intervallo indicato" -#: src/jade/tabs/history.jade:59 +#: src/jade/tabs/history.jade:48 msgid "From" msgstr "Da" -#: src/jade/tabs/history.jade:65 +#: src/jade/tabs/history.jade:54 msgid "To" msgstr "A" -#: src/jade/tabs/history.jade:68 +#: src/jade/tabs/history.jade:57 msgid "Filter" msgstr "Filtro" -#: src/jade/tabs/history.jade:82 -msgid "Transaction History" -msgstr "Cronologia della transazione" - -#: src/jade/tabs/history.jade:84 -msgid "Export to CSV" -msgstr "Esporta in CSV" - -#: src/jade/tabs/history.jade:88 +#: src/jade/tabs/history.jade:64 msgid "Date" msgstr "Data" -#: src/jade/tabs/history.jade:89 src/jade/tabs/history.jade:188 +#: src/jade/tabs/history.jade:65 src/jade/tabs/history.jade:170 msgid "Description" msgstr "Descrizione" -#: src/jade/tabs/history.jade:90 +#: src/jade/tabs/history.jade:68 src/jade/tabs/history.jade:73 +msgid "Export to CSV" +msgstr "Esporta in CSV" + +#: src/jade/tabs/history.jade:69 msgid "Sorry, no transactions match your current filter." msgstr "Mi dispiace, nessuna transazione corrisponde con il filtro corrente." -#: src/jade/tabs/history.jade:109 +#: src/jade/tabs/history.jade:91 msgid "You sent{{1}}to{{2}}" msgstr "Hai inviato{{1}}a{{2}}" -#: src/jade/tabs/history.jade:115 +#: src/jade/tabs/history.jade:97 msgid "{{1}}sent you{{2}}" msgstr "{{1}}ti ha inviato{{2}}" -#: src/jade/tabs/history.jade:121 +#: src/jade/tabs/history.jade:103 msgid "You requested to exchange{{1}}to{{2}}" msgstr "Hai richiesto di convertire{{1}}in{{2}}" -#: src/jade/tabs/history.jade:127 +#: src/jade/tabs/history.jade:109 msgid "{{1}}now trusts you for{{2}}" msgstr "{{1}}ti sta dando fiducia per{{2}}" -#: src/jade/tabs/history.jade:140 src/jade/tabs/history/effects.jade:45 +#: src/jade/tabs/history.jade:122 src/jade/tabs/history/effects.jade:45 msgid "You created an order to sell{{1}}for{{2}}" msgstr "Hai creato un'offerta per vendere{{1}}per{{2}}" -#: src/jade/tabs/history.jade:144 src/jade/tabs/history/effects.jade:49 +#: src/jade/tabs/history.jade:126 src/jade/tabs/history/effects.jade:49 msgid "You created an order to buy{{1}}for{{2}}" msgstr "Hai creato un'offerta per comprare{{1}}per{{2}}" -#: src/jade/tabs/history.jade:150 +#: src/jade/tabs/history.jade:132 msgid "You cancelled an order accepting {{1}}for{{2}}" msgstr "Hai cancellato un'offerta accettando {{1}}per{{2}}" -#: src/jade/tabs/history.jade:163 +#: src/jade/tabs/history.jade:145 msgid "Unknown transaction" msgstr "Transazione sconosciuta" -#: src/jade/tabs/history.jade:166 +#: src/jade/tabs/history.jade:148 msgid "" "The client failed to parse this transaction. The developers have been " "notified of the issue." msgstr "Il client non è riuscito ad analizzare questa transazione. Gli sviluppatori sono stati informati del problema." -#: src/jade/tabs/history.jade:171 +#: src/jade/tabs/history.jade:153 msgid "{{1}} sent you{{2}} and activated your account!" msgstr "{{1}} ti ha inviato {{2}} e ha attivato il tuo account!" -#: src/jade/tabs/history.jade:178 +#: src/jade/tabs/history.jade:160 msgid "You deposited{{1}} using {{entry.details.app.name}}" msgstr "Hai depositato{{1}} usando {{entry.details.app.name}}" -#: src/jade/tabs/history.jade:186 +#: src/jade/tabs/history.jade:168 msgid "Balance Changes" msgstr "Cambiamenti del Saldo " -#: src/jade/tabs/history.jade:189 +#: src/jade/tabs/history.jade:171 msgid "Issuer" msgstr "Emittente" -#: src/jade/tabs/history.jade:191 +#: src/jade/tabs/history.jade:173 msgid "Final balance" msgstr "Saldo finale" -#: src/jade/tabs/history.jade:194 +#: src/jade/tabs/history.jade:176 msgid "XRP Balance Change" msgstr "Variazione saldo XRP" -#: src/jade/tabs/history.jade:195 +#: src/jade/tabs/history.jade:177 msgid "{{effect.currency}} Balance Change" -msgstr "{{effect.currency}} Cambia Bilancio" - -#: src/jade/tabs/history.jade:196 -msgid "Fee" -msgstr "Commissione" +msgstr "{{effect.currency}} Cambia Saldo" -#: src/jade/tabs/history.jade:201 +#: src/jade/tabs/history.jade:183 msgid "Transaction details" msgstr "Dettagli della transazione" -#: src/jade/tabs/history.jade:202 +#: src/jade/tabs/history.jade:184 msgid "Add {{1}} to contact list" msgstr "Aggiungi {{1}} alla lista dei contatti" -#: src/jade/tabs/history.jade:208 src/jade/tabs/trade.jade:386 +#: src/jade/tabs/history.jade:189 +msgid "{{1}} Loading more" +msgstr "{{1}} Carica di più" + +#: src/jade/tabs/history.jade:192 src/jade/tabs/trade.jade:500 msgid "Load more" msgstr "Carica di più" -#: src/jade/tabs/history.jade:209 +#: src/jade/tabs/history.jade:193 msgid "No more transactions left" msgstr "Nessuna transazione rimasta" @@ -1306,7 +1858,7 @@ msgstr "prezzo" #: src/jade/tabs/history/effects.jade:17 msgid "This order has been filled." -msgstr "L'ordine è stato completato." +msgstr "L'ordine è stato eseguito." #: src/jade/tabs/history/effects.jade:32 msgid "The rest of your order has been cancelled due to lack of funds." @@ -1344,439 +1896,633 @@ msgstr "La Fiducia tra te e{{1}}è stata modificata di{{2}}." msgid "Your balance has been changed by{{1}}." msgstr "Il tuo saldo è cambiato di{{1}}." -#: src/jade/tabs/kyc.jade:16 +#: src/jade/tabs/jpy.jade:38 +msgid "Japanese Yen Deposit" +msgstr "Deposito in Yen giapponesi" + +#: src/jade/tabs/jpy.jade:42 +msgid "Tokyo JPY Issuer (~tokyojpy) {{1}}" +msgstr "Emittente Tokyo JPY (~tokyojpy) {{1}}" + +#: src/jade/tabs/jpy.jade:59 +msgid "" +"Ripple Trade has partnered with Tokyo JPY Issuer to provide easier access to" +" JPY. Following this action will enable Tokyo JPY Issuer to hold JPY on your" +" behalf." +msgstr "Ripple Trade ha stretto accordi con l'emittente Tokyo JPY per rendere più facile l'accesso ai JPY. Continuando permetterai a Tokyo JPY di detenere JPY a tuo nome." + +#: src/jade/tabs/jpy.jade:78 +msgid "NEW CUSTOMERS- SIGN UP AT TOKYO JPY ISSUER" +msgstr "NUOVI CLIENTI - ISCRIVITI ALL'EMITTENTE TOKYO JPY" + +#: src/jade/tabs/jpy.jade:79 +msgid "{{1}}at Tokyo JPY Issuer. You will need:{{2}}" +msgstr "{{1}}all'emittente Tokyo JPY. Avrai bisogno di:{{2}}" + +#: src/jade/tabs/jpy.jade:84 +msgid "A valid government-issued ID." +msgstr "Un documento di identità valido." + +#: src/jade/tabs/jpy.jade:86 +msgid "A proof of address (utility bill, etc)." +msgstr "Dimostrare il tuo indirizzo (bolletta, etc)." + +#: src/jade/tabs/jpy.jade:88 +msgid "A bank account under the same name." +msgstr "Un conto corrente bancario con lo stesso nome." + +#: src/jade/tabs/jpy.jade:90 +msgid "EXISTING TOKYO JPY ISSUER CUSTOMERS" +msgstr "ATTUALI CLIENTI DELL'EMITTENTE TOKYO JPY" + +#: src/jade/tabs/jpy.jade:100 +msgid "" +"Tokyo JPY Issuer accepts deposits and withdrawals via bank transfer. Details" +" {{1}}" +msgstr "L'emittente Tokyo JPY accetta depositi e prelievi tramite bonifico bancario. Dettagli {{1}}" + +#: src/jade/tabs/jpy.jade:103 +msgid "" +"To deposit, you’ll need to first deposit into your Tokyo JPY Issuer account " +"and then initiate a transfer into your Ripple account." +msgstr "Per depositare innanzitutto dovrai farlo nel tuo account Tokyo JPY e quindi, da lì, versare sul tuo conto Ripple." + +#: src/jade/tabs/jpy.jade:105 +msgid "" +"To withdraw to a bank account, you’ll first send money from your Ripple " +"account to your Tokyo JPY Issuer account. Follow instructions on the Tokyo " +"JPY Issuer site to send to your bank account." +msgstr "Se vuoi versare sul tuo conto corrente bancario, innanzitutto invia i soldi dal tuo conto Ripple al tuo account Tokyo JPY. Segui le istruzioni sul sito di Tokyo JPY per inviare denaro sul tuo conto corrente bancario." + +#: src/jade/tabs/kyc.jade:14 +msgid "Profile completion is only available to US residents." +msgstr "Il completamento del profilo è disponibile solo per i residenti USA." + +#: src/jade/tabs/kyc.jade:21 src/jade/tabs/trade.jade:285 msgid "Verifying your information. Please wait..." msgstr "Verifica delle informazioni. Per favore aspetta.." -#: src/jade/tabs/kyc.jade:18 +#: src/jade/tabs/kyc.jade:23 msgid "Your identity information has been verified." msgstr "Le informazioni sulla tua identità sono state verificate." -#: src/jade/tabs/kyc.jade:20 +#: src/jade/tabs/kyc.jade:25 msgid "Your identity questions have been verified." msgstr "Le domande sulla tua identità sono state verificate." -#: src/jade/tabs/kyc.jade:22 +#: src/jade/tabs/kyc.jade:27 msgid "" "Congratulations, you've verified your identity! You will now be redirected " "back to the instant deposit page." msgstr "Congratulazioni, hai verificato la tua identità! Sarai indirizzato alla pagina del deposito." -#: src/jade/tabs/kyc.jade:24 +#: src/jade/tabs/kyc.jade:29 msgid "There was an error with your request. Please try again later." msgstr "C'è stato un errore con la tua richiesta. Per favore riprova più tardi." -#: src/jade/tabs/kyc.jade:26 +#: src/jade/tabs/kyc.jade:31 msgid "" "There was an error with your request. Make sure your phone number is valid " "and try again." msgstr "C'è stato un errore con la tua richiesta. Assicurati che il numero di telefono sia giusto e riprova." -#: src/jade/tabs/kyc.jade:28 +#: src/jade/tabs/kyc.jade:33 msgid "Please check your verification code and try again." msgstr "Per favore controlla il tuo codice di verifica e riprova." -#: src/jade/tabs/kyc.jade:30 +#: src/jade/tabs/kyc.jade:35 msgid "" "There was an error while requesting the verification code. Please try again " "later." msgstr "C'è stato un problema durante la richiesta del codice di verifica. Per favore riprova più tardi." -#: src/jade/tabs/kyc.jade:32 +#: src/jade/tabs/kyc.jade:37 msgid "" "We are unable to validate your identity information. Please check your " "information and try again." msgstr "Non siamo in grado di convalidare le informazioni sulla tua identità. Per favore inserisci le tue informazioni e prova ancora." -#: src/jade/tabs/kyc.jade:34 +#: src/jade/tabs/kyc.jade:39 msgid "" "We are unable to validate your identity questions. Please check your answers" " and try again." msgstr "Non siamo in grado di convalidare le informazioni sulla tua identità. Per favore controlla le tue risposte e riprova." -#: src/jade/tabs/kyc.jade:36 +#: src/jade/tabs/kyc.jade:41 +msgid "" +"Sorry, you've reached your maximum number of verification attempts. Please " +"try again in 24 hours." +msgstr "Spiacenti, hai raggiunto il numero massimo di tentativi di verifica. Per favore riprova tra 24 ore." + +#: src/jade/tabs/kyc.jade:43 msgid "" "We can't verify your identity. Please contact us at support@ripple.com." msgstr "Non possiamo verificare la tua identità. Per favore contattaci support@ripple.com." -#: src/jade/tabs/kyc.jade:41 +#: src/jade/tabs/kyc.jade:48 msgid "Profile Completion" msgstr "Completamento Profilo" -#: src/jade/tabs/kyc.jade:45 +#: src/jade/tabs/kyc.jade:52 msgid "STEP 1: IDENTITY INFORMATION" msgstr "PASSO 1: INFORMAZIONI SULLA IDENTITà" -#: src/jade/tabs/kyc.jade:47 +#: src/jade/tabs/kyc.jade:54 msgid "STEP 2: IDENTITY QUESTIONS" msgstr "PASSO 2: DOMANDE SULLA IDENTITà" -#: src/jade/tabs/kyc.jade:49 +#: src/jade/tabs/kyc.jade:56 msgid "STEP 3: TWO-FACTOR AUTHENTICATION" msgstr "PASSO 3: AUTENTICAZIONE A DUE FATTORI" -#: src/jade/tabs/kyc.jade:56 +#: src/jade/tabs/kyc.jade:63 msgid "First Name" msgstr "Nome" -#: src/jade/tabs/kyc.jade:60 +#: src/jade/tabs/kyc.jade:67 msgid "Last Name" msgstr "Cognome" -#: src/jade/tabs/kyc.jade:64 +#: src/jade/tabs/kyc.jade:71 msgid "Street Address" msgstr "Via e numero civico" -#: src/jade/tabs/kyc.jade:69 +#: src/jade/tabs/kyc.jade:76 msgid "City" msgstr "Città" -#: src/jade/tabs/kyc.jade:73 +#: src/jade/tabs/kyc.jade:80 msgid "State" msgstr "Stato" -#: src/jade/tabs/kyc.jade:77 +#: src/jade/tabs/kyc.jade:84 msgid "ZIP" msgstr "CAP" -#: src/jade/tabs/kyc.jade:81 +#: src/jade/tabs/kyc.jade:88 msgid "Date of Birth" msgstr "Data di nascita" -#: src/jade/tabs/kyc.jade:85 +#: src/jade/tabs/kyc.jade:92 msgid "Month{{1}}" msgstr "Mese{{1}}" -#: src/jade/tabs/kyc.jade:88 +#: src/jade/tabs/kyc.jade:95 msgid "Day{{1}}" msgstr "Giorno{{1}}" -#: src/jade/tabs/kyc.jade:91 +#: src/jade/tabs/kyc.jade:98 msgid "Year{{1}}" msgstr "Anno{{1}}" -#: src/jade/tabs/kyc.jade:104 +#: src/jade/tabs/kyc.jade:113 msgid "Continue to identity questions" msgstr "Continua con le domande sulla identità" -#: src/jade/tabs/kyc.jade:110 +#: src/jade/tabs/kyc.jade:114 src/jade/tabs/kyc.jade:129 +#: src/jade/tabs/kyc.jade:154 src/jade/tabs/kyc.jade:184 +#: src/jade/tabs/login.jade:17 +msgid "Verifying..." +msgstr "Verifica in corso..." + +#: src/jade/tabs/kyc.jade:120 msgid "{{ q.question }}{{1}}" msgstr "{{ q.question }}{{1}}" -#: src/jade/tabs/kyc.jade:113 +#: src/jade/tabs/kyc.jade:123 msgid "{{ a.answer }}" msgstr "{{ a.answer }}" -#: src/jade/tabs/kyc.jade:116 +#: src/jade/tabs/kyc.jade:128 msgid "Continue to two-factor authentication" msgstr "Continua con l'autentificazione a due fattori" -#: src/jade/tabs/kyc.jade:124 +#: src/jade/tabs/kyc.jade:137 msgid "Two-factor authentication provides extra security for your account." msgstr "L'autentificazione a due fattori fornisce una sicurezza maggiore al tuo account." -#: src/jade/tabs/kyc.jade:132 +#: src/jade/tabs/kyc.jade:145 msgid "" "Ripple Trade has partnered with Authy to provide better security for your " "account.By continuing, you agree to Authy's {{1:Terms of Service}}." msgstr "Ripple Trade ha stretto accordi con Authy per rendere più sicuro il tuo account. Continuando tu accetti i {{1:Termini di Servizio}} di Authy." -#: src/jade/tabs/kyc.jade:138 +#: src/jade/tabs/kyc.jade:153 msgid "Verify phone number" msgstr "Verifica numero di telefono" -#: src/jade/tabs/kyc.jade:148 +#: src/jade/tabs/kyc.jade:164 msgid "change" msgstr "modifica" -#: src/jade/tabs/kyc.jade:152 +#: src/jade/tabs/kyc.jade:168 msgid "" "A verification code has been sent to +{{ currentCountryCode }} {{ " "phoneNumber }}." msgstr "Un codice di verifica è stato inviato a +{{ currentCountryCode }} {{ phoneNumber }}." -#: src/jade/tabs/kyc.jade:156 src/jade/tabs/login/form.jade:15 -#: src/jade/tabs/security.jade:88 +#: src/jade/tabs/kyc.jade:172 src/jade/tabs/login/form.jade:16 +#: src/jade/tabs/security.jade:97 msgid "Verification Code" msgstr "Codice di verifica" -#: src/jade/tabs/login.jade:5 src/jade/tabs/login.jade:19 -#: src/jade/tabs/login.jade:83 +#: src/jade/tabs/kyc.jade:183 +msgid "Submit code" +msgstr "Invia codice" + +#: src/jade/tabs/login.jade:4 src/jade/tabs/migrate.jade:4 +#: src/jade/tabs/recover.jade:3 src/jade/tabs/register.jade:5 +#: src/jade/tabs/register.jade:137 src/jade/tabs/register.jade:184 +msgid "Welcome to Ripple Trade" +msgstr "Benvenuto in Ripple Trade" + +#: src/jade/tabs/login.jade:6 src/jade/tabs/migrate.jade:6 +#: src/jade/tabs/recover.jade:5 src/jade/tabs/register.jade:7 +#: src/jade/tabs/register.jade:139 src/jade/tabs/register.jade:186 +msgid "Trade hundreds of assets, from XRP to crypto to gold to fiat." +msgstr "Scambia centinaia di beni, dagli XRP alle crypto, dall'oro alle valute." + +#: src/jade/tabs/login.jade:15 src/jade/tabs/login.jade:31 msgid "Log In" msgstr "Entra" -#: src/jade/tabs/login.jade:7 -msgid "Verifying..." -msgstr "Verifica in corso..." - -#: src/jade/tabs/login.jade:8 +#: src/jade/tabs/login.jade:18 msgid "You have successfully verified your email address." msgstr "Hai verificato con successo il tuo indirizzo email." -#: src/jade/tabs/login.jade:9 +#: src/jade/tabs/login.jade:19 msgid "" "Email verification token is invalid. It has either expired or has been " "resent. Please check your inbox for the most recent verification email." msgstr "Il codice di verifica dell'email non è valido. E' scaduto o ne è stato inviato uno nuovo. Per favore controlla la tua casella di posta per una email di verifica più recente." -#: src/jade/tabs/login.jade:21 +#: src/jade/tabs/login.jade:30 +msgid "Logging in" +msgstr "Entra" + +#: src/jade/tabs/login.jade:34 msgid "Verify" msgstr "Verifica" -#: src/jade/tabs/login.jade:25 src/jade/tabs/login.jade:26 -#: src/jade/tabs/recover.jade:5 -msgid "Account Recovery" -msgstr "Recupero Account" - -#: src/jade/tabs/login.jade:28 src/jade/tabs/register.jade:93 +#: src/jade/tabs/login.jade:36 src/jade/tabs/register.jade:114 msgid "Already have a ripple.com/client account? {{1:Migrate}}" msgstr "Hai già un account ripple.com/client? {{1:Migra}}" -#: src/jade/tabs/login.jade:30 src/jade/tabs/migrate.jade:26 -msgid "New to {{productName}}? {{1:Sign Up}}" -msgstr "Nuovo in {{productName}}? {{1:Registrati}}" +#: src/jade/tabs/login.jade:41 src/jade/tabs/login.jade:42 +#: src/jade/tabs/recover.jade:9 +msgid "Account Recovery" +msgstr "Recupero Account" -#: src/jade/tabs/login.jade:37 +#: src/jade/tabs/login.jade:49 msgid "{{1:You're sending money to}}{{2}}." msgstr "{{1:Stai inviando denaro a}}{{2}}." -#: src/jade/tabs/login.jade:41 +#: src/jade/tabs/login.jade:53 msgid "{{1:You're sending}}{{2}}{{3: to }}{{4}}." msgstr "{{1:Stai inviando}}{{2}}{{3: a }}{{4}}." -#: src/jade/tabs/login.jade:51 +#: src/jade/tabs/login.jade:63 msgid "" "{{1:You're connecting to the gateway}}{{2}}{{3:for{{1}}}}{{4:with a limit " "of{{1}}}}." msgstr "{{1:Ti stai collegando al gateway}}{{2}}{{3:per{{1}}}}{{4:con un limite di{{1}}}}." -#: src/jade/tabs/login.jade:66 +#: src/jade/tabs/login.jade:78 msgid "{{1:You're adding}}{{2}}{{3:to your contacts list}}" msgstr "{{1:Stai aggiungendo}}{{2}}{{3:alla tua lista contatti}}" -#: src/jade/tabs/login.jade:84 +#: src/jade/tabs/login.jade:95 +msgid "{{1}} Log In" +msgstr "{{1}} Entra" + +#: src/jade/tabs/login.jade:98 msgid "You can confirm this transaction on the next page." msgstr "Puoi confermare questa transazione nella prossima pagina." -#: src/jade/tabs/login.jade:85 +#: src/jade/tabs/login.jade:99 msgid "New to {{productName}}? {{1:Create a wallet}}" msgstr "Nuovo in {{productName}}? {{1:Crea un portafoglio}}" -#: src/jade/tabs/login/form.jade:11 src/jade/tabs/security.jade:82 +#: src/jade/tabs/login/form.jade:12 src/jade/tabs/security.jade:91 msgid "" "Please enter the verification code from the SMS message sent to your device:" msgstr "Prego inserisci il codice di verifica inviato attraverso SMS al tuo dispositivo:" -#: src/jade/tabs/login/form.jade:12 src/jade/tabs/security.jade:83 +#: src/jade/tabs/login/form.jade:13 src/jade/tabs/security.jade:92 msgid "" "Please enter the verification code from the Authy app installed on your " "device:" msgstr "Per favore inserisci il codice di verifica dall'app di Authy installata sul tuo dispositivo:" -#: src/jade/tabs/login/form.jade:22 +#: src/jade/tabs/login/form.jade:23 msgid "Resend" msgstr "Reinvia" -#: src/jade/tabs/login/form.jade:23 src/jade/tabs/security.jade:95 +#: src/jade/tabs/login/form.jade:24 src/jade/tabs/security.jade:105 msgid "Send Via SMS" -msgstr "Invia via SMS" +msgstr "Invia tramite SMS" -#: src/jade/tabs/login/form.jade:29 +#: src/jade/tabs/login/form.jade:30 msgid "Remember me on this device for 30 days" msgstr "Ricordami su questo dispositivo per 30 giorni" -#: src/jade/tabs/migrate.jade:5 src/jade/tabs/register.jade:10 -#: src/jade/tabs/register.jade:116 src/jade/tabs/register.jade:159 +#: src/jade/tabs/migrate.jade:10 src/jade/tabs/register.jade:17 +#: src/jade/tabs/register.jade:142 src/jade/tabs/register.jade:189 msgid "Migrate" msgstr "Migrare" -#: src/jade/tabs/migrate.jade:6 +#: src/jade/tabs/migrate.jade:11 msgid "" "To begin migration, enter the name and passphrase used to encrypt your " "ripple.com/client wallet below. After migration, you will no longer be able " "to login on ripple.com/client." msgstr "Per iniziare la migrazione inserisci il nome o la password usata per crittografare il tuo client ripple.com. Dopo la migrazione non potrai più accedere con il client ripple.com." -#: src/jade/tabs/migrate.jade:10 -msgid "Existing ripple.com/client Wallet name" -msgstr " Esistente ripple.com/client nome Portafoglio" +#: src/jade/tabs/migrate.jade:15 +msgid "Existing ripple.com/client Wallet name" +msgstr " Nome portafoglio esistente ripple.com/client" + +#: src/jade/tabs/migrate.jade:18 +msgid "Passphrase" +msgstr "Password" + +#: src/jade/tabs/migrate.jade:31 +msgid "Begin Migration" +msgstr "Inizia Migrazione" + +#: src/jade/tabs/migrate.jade:32 +msgid "New to {{productName}}? {{1:Sign Up}}" +msgstr "Nuovo in {{productName}}? {{1:Registrati}}" + +#: src/jade/tabs/migrate.jade:34 +msgid "Have a {{productName}} account? {{1:Log In}}" +msgstr "Hai {{productName}} account? {{1:Entra}}" + +#: src/jade/tabs/mxn.jade:38 +msgid "Mexican Peso Deposit" +msgstr "Deposito di Pesos messicani" + +#: src/jade/tabs/mxn.jade:42 +msgid "Bitso (~bitso) {{1}}{{2}}" +msgstr "Bitso (~bitso) {{1}}{{2}}" + +#: src/jade/tabs/mxn.jade:47 +msgid "All countries except the US" +msgstr "Tutti i paesi tranne gli USA" + +#: src/jade/tabs/mxn.jade:58 +msgid "" +"Ripple Trade has partnered with Bitso to provide easy access to MXN (Mexican" +" Peso). By continuing, you agree with Bitso’s terms of service. Following " +"this action will enable Bitso to hold MXN on your behalf." +msgstr "Ripple Trade ha stretto accordi con Bitso per rendere più facile l'accesso ai MXN (Pesos Messicani). Continuando, tu accetti i termini di servizio di Bitso. Ciò permetterà a Bitso di detenere MXN a tuo nome." + +#: src/jade/tabs/mxn.jade:80 +msgid "TO FUND/REDEEM MEXICAN PESO:" +msgstr "PER DEPOSITARE/RISCATTARE PESOS MESSICANI:" + +#: src/jade/tabs/mxn.jade:82 +msgid "Register or login at {{1}}to initiate deposits and withdrawals." +msgstr "Registrati o entra in {{1}} per iniziare a depositare e prelevare." + +#: src/jade/tabs/mxn.jade:86 +msgid "" +"A valid, non-US, state-issued ID (passport, driver's license, etc)." +msgstr "Un documento di identità valido, non US (passaporto, patente, etc)." + +#: src/jade/tabs/mxn.jade:87 +msgid "" +"Proof of address (utility bill or other type of bill that has your address " +"on it). Verification is required for peso deposits or withdrawals." +msgstr "Dimostrare il tuo indirizzo (bolletta della luce o un'altra bolletta che contiene il tuo indirizzo). La verifica è necessaria per depositare o prelevare pesos." + +#: src/jade/tabs/mxn.jade:89 +msgid "" +"To fund your Ripple account, see the below options. Once a balance is " +"deposited with Bitso, you can send it to your Ripple account using the Bitso" +" Dashboard." +msgstr "Per depositare sul tuo conto Ripple scegli tra le seguenti opzioni. Quando il saldo sarà depositato con Bitso potrai inviarlo al tuo conto Ripple tramite la Dashboard di Bitso." + +#: src/jade/tabs/mxn.jade:90 +msgid "" +"To withdraw from your Ripple account, click on the 'Redeem from Ripple' " +"button on the Bitso Dashboard." +msgstr "Per prelevare dal tuo conto Ripple clicca sul bottone 'Redeem from Ripple' sulla Bitso Dashboard." + +#: src/jade/tabs/mxn.jade:92 src/jade/tabs/usd.jade:89 +msgid "DEPOSIT OPTIONS" +msgstr "OPZIONI DI DEPOSITO" + +#: src/jade/tabs/mxn.jade:94 +msgid "Bitso accepts deposits by the following methods:" +msgstr "Bitso accetta depositi tramite le seguenti modalità:" + +#: src/jade/tabs/mxn.jade:96 src/jade/tabs/mxn.jade:106 +msgid "Bank Wire" +msgstr "Bonifico Bancario" + +#: src/jade/tabs/mxn.jade:97 src/jade/tabs/mxn.jade:107 +msgid "SPEI (Mexican instant inter-bank transfer)" +msgstr "SPEI (bonifico messicano interbancario)" + +#: src/jade/tabs/mxn.jade:98 src/jade/tabs/mxn.jade:108 +msgid "Bitcoin" +msgstr "Bitcoin" -#: src/jade/tabs/migrate.jade:13 -msgid "Passphrase" -msgstr "Password" +#: src/jade/tabs/mxn.jade:99 +msgid "MXN Cash (at locations across Mexico)" +msgstr "MXN in Contante (presso le filiali messicane)" -#: src/jade/tabs/migrate.jade:25 -msgid "Begin Migration" -msgstr "Inizia Migrazione" +#: src/jade/tabs/mxn.jade:100 +msgid "Pademobile wallet" +msgstr "Portafoglio Pademobile" -#: src/jade/tabs/migrate.jade:28 -msgid "Have a {{productName}} account? {{1:Log In}}" -msgstr "Hai {{productName}} account? {{1:Entra}}" +#: src/jade/tabs/mxn.jade:102 src/jade/tabs/usd.jade:99 +msgid "WITHDRAWAL OPTIONS" +msgstr "OPZIONI DI PRELIEVO" + +#: src/jade/tabs/mxn.jade:104 +msgid "Bitso offers withdrawals via the following methods:" +msgstr "Bitso offre opzioni di prelievo tramite le seguenti modalità:" -#: src/jade/tabs/recover.jade:7 +#: src/jade/tabs/recover.jade:11 msgid "" "You can only recover your Ripple Trade account with a secret key. You will " "recover the account's Ripple name, contacts and other information." msgstr "Puoi solo recuperare il tuo account Ripple Trade con la chiave segreta. Recupererai il nome Ripple, i contatti e altre informazioni relative all'account." -#: src/jade/tabs/recover.jade:9 src/jade/tabs/recover.jade:28 +#: src/jade/tabs/recover.jade:13 src/jade/tabs/recover.jade:33 msgid "Ripple Name" msgstr "Nome Ripple" -#: src/jade/tabs/recover.jade:14 +#: src/jade/tabs/recover.jade:18 msgid "Secret Key" msgstr "Chiave Segreta" -#: src/jade/tabs/recover.jade:17 +#: src/jade/tabs/recover.jade:21 msgid "Unable to recover account." msgstr "Impossibile recuperare l'account." -#: src/jade/tabs/recover.jade:22 src/jade/tabs/register.jade:74 +#: src/jade/tabs/recover.jade:27 src/jade/tabs/register.jade:95 msgid "Recover Account" -msgstr "Recupera Password" +msgstr "Recupera Account" -#: src/jade/tabs/recover.jade:24 src/jade/tabs/recover.jade:50 +#: src/jade/tabs/recover.jade:29 src/jade/tabs/recover.jade:56 msgid "Set Password" msgstr "Imposta Password" -#: src/jade/tabs/recover.jade:26 +#: src/jade/tabs/recover.jade:31 msgid "" "Your account was sucessfully recovered. Please re-encrypt your account with " "a new password." msgstr "Il tuo account è stato ripristinato con successo. Per favore rendi il tuo account più sicuro con una nuova password." -#: src/jade/tabs/recover.jade:36 src/jade/tabs/register.jade:45 -#: src/jade/tabs/security.jade:119 +#: src/jade/tabs/recover.jade:41 src/jade/tabs/register.jade:62 +#: src/jade/tabs/security.jade:132 msgid "" "Your password is weak. It does not contain numbers and symbols or it is too " "short." msgstr "La tua password è debole. Non contiene numeri e simboli oppure è troppo corta." -#: src/jade/tabs/recover.jade:38 src/jade/tabs/register.jade:47 -#: src/jade/tabs/security.jade:121 +#: src/jade/tabs/recover.jade:43 src/jade/tabs/register.jade:65 +#: src/jade/tabs/security.jade:134 msgid "" "Your Ripple name and password cannot match. Please create a new password." msgstr "Il tuo nome Ripple e la password non possono coincidere. Per favore digita una nuova password." -#: src/jade/tabs/recover.jade:45 +#: src/jade/tabs/recover.jade:45 src/jade/tabs/register.jade:67 +#: src/jade/tabs/security.jade:136 +msgid "Confirm password" +msgstr "Conferma password" + +#: src/jade/tabs/recover.jade:48 src/jade/tabs/register.jade:71 +#: src/jade/tabs/security.jade:139 +msgid "Passwords do not match" +msgstr "Le password non corrispondono" + +#: src/jade/tabs/recover.jade:50 msgid "Unable to change your account password." msgstr "Impossibile cambiare la password del tuo account." -#: src/jade/tabs/recover.jade:49 +#: src/jade/tabs/recover.jade:55 msgid "Updating..." msgstr "Aggiornamento in corso..." -#: src/jade/tabs/recover.jade:51 +#: src/jade/tabs/recover.jade:57 msgid "Remember your password? {{1:Log In}}" msgstr "Ricordi la password? {{1:Entra}}" -#: src/jade/tabs/register.jade:5 -msgid "" -"Ripple Trade is the only platform where you can trade between stores of " -"value spanning fiat, crypto, precious metals and more." -msgstr "Ripple Trade è l'unica piattaforma dove puoi scambiare valute diverse, fiat, crypto, metalli preziosi e altro ancora." - -#: src/jade/tabs/register.jade:9 src/jade/tabs/register.jade:90 -#: src/jade/tabs/register.jade:115 src/jade/tabs/register.jade:158 +#: src/jade/tabs/register.jade:13 src/jade/tabs/register.jade:109 +#: src/jade/tabs/register.jade:141 src/jade/tabs/register.jade:188 msgid "Sign Up" msgstr "Registrati" -#: src/jade/tabs/register.jade:12 src/jade/tabs/register.jade:14 -#: src/jade/tabs/register.jade:16 src/jade/tabs/register.jade:120 -#: src/jade/tabs/register.jade:122 src/jade/tabs/register.jade:161 -#: src/jade/tabs/register.jade:163 src/jade/tabs/register.jade:165 +#: src/jade/tabs/register.jade:19 src/jade/tabs/register.jade:21 +#: src/jade/tabs/register.jade:23 src/jade/tabs/register.jade:146 +#: src/jade/tabs/register.jade:148 src/jade/tabs/register.jade:191 +#: src/jade/tabs/register.jade:193 src/jade/tabs/register.jade:195 msgid "Step {{1}}" msgstr "Step {{1}}" -#: src/jade/tabs/register.jade:19 +#: src/jade/tabs/register.jade:26 msgid "Create Ripple name" -msgstr "Crea nome Ripple" +msgstr "Crea un nome Ripple" -#: src/jade/tabs/register.jade:20 +#: src/jade/tabs/register.jade:27 msgid "" "Please choose a Ripple name below. You will use this Ripple name to login to" " Ripple Trade, so remember it! Ripple names are unique and public, like your" " current Ripple address. {{1}}" msgstr "Per favore scegli un nome Ripple qui sotto. Userai questo nome Ripple per accedere a Ripple Trade quindi ricordatelo! I nomi Ripple sono unici e pubblici, così come il tuo indirizzo Ripple. {{1}}" -#: src/jade/tabs/register.jade:21 +#: src/jade/tabs/register.jade:28 msgid "Learn More" msgstr "Più informazioni" -#: src/jade/tabs/register.jade:36 +#: src/jade/tabs/register.jade:41 +msgid "Reserved for {{usernameReservedFor}}" +msgstr "Riservato per {{usernameReservedFor}}" + +#: src/jade/tabs/register.jade:43 +msgid "" +"This name belongs to a high-traffic website and has been reserved to prevent" +" phishing." +msgstr "Questo nome coincide con quello di un sito web noto ed è stato riservato per prevenire il phishing." + +#: src/jade/tabs/register.jade:49 msgid "You can only use the following characters: a-z, 0-9 and hyphens (-)" msgstr "Puoi usare solo i seguenti caratteri: a-z, 0-9 e trattini (-)" -#: src/jade/tabs/register.jade:39 +#: src/jade/tabs/register.jade:55 msgid "Cannot use hyphens in a row (--)" msgstr "Impossibile ripetere i trattini (--)" -#: src/jade/tabs/register.jade:60 +#: src/jade/tabs/register.jade:80 msgid "Email address is invalid" msgstr "Indirizzo email non valido" -#: src/jade/tabs/register.jade:62 src/jade/tabs/security.jade:138 +#: src/jade/tabs/register.jade:82 src/jade/tabs/security.jade:151 msgid "Secret key" msgstr "Chiave segreta" -#: src/jade/tabs/register.jade:63 src/jade/tabs/send.jade:50 -#: src/jade/tabs/trade.jade:331 src/jade/tabs/trade.jade:337 +#: src/jade/tabs/register.jade:83 src/jade/tabs/send.jade:43 +#: src/jade/tabs/trade.jade:441 msgid "hide" msgstr "nascondi" -#: src/jade/tabs/register.jade:67 +#: src/jade/tabs/register.jade:88 msgid "Secret Account Key is invalid" msgstr "La Chiave Segreta dell'Account non è valida" -#: src/jade/tabs/register.jade:69 +#: src/jade/tabs/register.jade:90 msgid "" "The account ~{{1}}{{2}} has already been created using this secret key." msgstr "L'account ~{{1}}{{2}} è già stato creato usando questa chiave segreta." -#: src/jade/tabs/register.jade:75 -msgid "Need to use your secret key? {{1}}" -msgstr "Hai bisogno di utilizzare la tua chiave segreta? {{1}}" - -#: src/jade/tabs/register.jade:77 -msgid "Use key" -msgstr "Usa chiave" - -#: src/jade/tabs/register.jade:80 -msgid "I agree to the {{productName}} {{1:end-user license agreement}}" -msgstr "Accetto {{productName}} {{1:accordo di licenza con l'utente finale}}" +#: src/jade/tabs/register.jade:98 +msgid "I agree to the {{productName}} {{1:Terms of Use}}" +msgstr "Accetto i {{1:Termini di Utilizzo}} di {{productName}}" -#: src/jade/tabs/register.jade:83 +#: src/jade/tabs/register.jade:101 msgid "" "Please see our {{1}} to see how we collect, use and share information about " "you" -msgstr "Per favore controlla il nostro {{1}} per vedere come noi raccogliamo, usiamo e condividiamo le tue informazioni" +msgstr "Per favore controlla le nostre {{1}} per vedere come noi raccogliamo, usiamo e condividiamo le tue informazioni" -#: src/jade/tabs/register.jade:91 +#: src/jade/tabs/register.jade:110 msgid "Migrate Account" msgstr "Migrare Account" -#: src/jade/tabs/register.jade:100 +#: src/jade/tabs/register.jade:111 +msgid "Need to use your secret key? {{1}}" +msgstr "Hai bisogno di utilizzare la tua chiave segreta? {{1}}" + +#: src/jade/tabs/register.jade:113 +msgid "Use key" +msgstr "Usa chiave" + +#: src/jade/tabs/register.jade:121 msgid "An error occurred during registration. Please try again later." msgstr "C'è stato un problema durante la registrazione. Per favore riprova più tardi." -#: src/jade/tabs/register.jade:101 +#: src/jade/tabs/register.jade:122 msgid "The reported error was: {{1}}" msgstr "L'errore è stato il seguente: {{1}}" -#: src/jade/tabs/register.jade:109 +#: src/jade/tabs/register.jade:131 msgid "" "There is already a wallet using this username, please choose a different " "username and try again." msgstr "C'è già un portafoglio con questo nome, per favore scegli un nome differente e prova ancora." -#: src/jade/tabs/register.jade:124 +#: src/jade/tabs/register.jade:150 msgid "" "By proceeding, you understand that Ripple Trade does not provide a password " "or secret key recovery mechanism. If you forget your Ripple name/password " "and secret key, you will be unable to access this Ripple account." -msgstr "Procedendo, prendi atto che Ripple Trade non prevede un meccanismo per il recupero della password o della chiave segreta. Se dimentichi il nome/password di Ripple e la chiave segreta, sarà impossibile accedere all'account Ripple." +msgstr "Procedendo, prendi atto che Ripple Trade non prevede un meccanismo per il recupero della password o della chiave segreta. Se dimentichi il nome/password di Ripple e la chiave segreta, sarà impossibile accedere a questo account Ripple." -#: src/jade/tabs/register.jade:129 +#: src/jade/tabs/register.jade:155 msgid "" "You are now migrating your account- meaning you'll no longer be able to " "access your account from ripple.com/client. You will retain all of your " @@ -1785,906 +2531,1122 @@ msgid "" "continue your migration." msgstr "Ora stai migrando il tuo account; questo significa che non sarai più in grado di accedere al tuo account dal client ripple.com. Continuerai ad avere il tuo saldo, i contatti e la cronologia. Il tuo account avrà la stessa chiave segreta di prima. Se hai già salvato la chiave segreta, per favore continua la migrazione." -#: src/jade/tabs/register.jade:136 +#: src/jade/tabs/register.jade:162 msgid "" "The secret key unlocks access to all your account funds in the event you " "lose your Ripple name or password. Please write it down and store it " "somewhere private and safe. {{1:Read more}} about keys and wallet safety." msgstr "La chiave segreta sblocca l'accesso a tutti i fondi del tuo account anche se hai perso il tuo nome Ripple o la password. Per favore scrivila e salvala in un luogo privato e sicuro. {{1:Leggi di più}} riguardo le chiavi e la sicurezza dell'account." -#: src/jade/tabs/register.jade:141 +#: src/jade/tabs/register.jade:167 msgid "" "If you have not saved your secret key, please write it down and store it " "somewhere private and safe. In the event you lose your Ripple name or " "password, you can use this secret key to recover your funds." msgstr "Se non hai salvato la tua chiave segreta, per favore scrivila e salvala in un luogo privato e sicuro. Se dimentichi il tuo nome Ripple o la password, puoi usare questa chiave per accedere ai tuoi fondi." -#: src/jade/tabs/register.jade:154 +#: src/jade/tabs/register.jade:176 +msgid "Show secret key" +msgstr "Mostra chiave segreta" + +#: src/jade/tabs/register.jade:177 +msgid "Hide secret key" +msgstr "Nascondi chiave segreta" + +#: src/jade/tabs/register.jade:180 msgid "Continue to email verification" msgstr "Procedi alla verifica dell'email" -#: src/jade/tabs/register.jade:167 +#: src/jade/tabs/register.jade:197 msgid "" "We’ve sent an email to {{1}}. To complete registration, click the link in " "the email." msgstr "Abbiamo inviato una email a {{1}}. Per completare la registrazione clicca il link nella email." -#: src/jade/tabs/register.jade:170 +#: src/jade/tabs/register.jade:200 msgid "Email token has been resent." msgstr "L'email con il codice di verifica è stata reinviata." -#: src/jade/tabs/register.jade:173 +#: src/jade/tabs/register.jade:203 msgid "Email Address:" msgstr "Indirizzo email:" -#: src/jade/tabs/register.jade:178 +#: src/jade/tabs/register.jade:210 msgid "Re-send Email" msgstr "Rinvia Email" -#: src/jade/tabs/security.jade:5 +#: src/jade/tabs/security.jade:7 msgid "Active Session Timeout" msgstr "Sessione Scaduta" -#: src/jade/tabs/security.jade:6 +#: src/jade/tabs/security.jade:8 msgid "" "To view or edit your security settings, you must currently have an active " "session." msgstr "Per vedere o modificare le impostazioni si sicurezza, devi avere una sessione attiva." -#: src/jade/tabs/security.jade:13 +#: src/jade/tabs/security.jade:16 msgid "Restore Session" -msgstr "Ripristina sessione" +msgstr "Ripristina Sessione" -#: src/jade/tabs/security.jade:22 +#: src/jade/tabs/security.jade:25 msgid "Your Ripple password has been changed, please login again" msgstr "La tua password di Ripple è stata cambiata, per favore accedi di nuovo." -#: src/jade/tabs/security.jade:24 +#: src/jade/tabs/security.jade:27 msgid "Couldn't change your Ripple password, please try again later." msgstr "Non è stato possibile cambiare la tua password Ripple, per favore riprova più tardi." -#: src/jade/tabs/security.jade:27 +#: src/jade/tabs/security.jade:30 msgid "Changing your Ripple password..." msgstr "Sto cambiando la tua password Ripple.." -#: src/jade/tabs/security.jade:28 +#: src/jade/tabs/security.jade:31 msgid "Your Ripple password has been changed successfully." msgstr "La tua password Ripple è stata cambiata." -#: src/jade/tabs/security.jade:29 +#: src/jade/tabs/security.jade:32 msgid "Unable to load Two-factor authentication settings." msgstr "Impossibile caricare le impostazioni dell'autenticazione a due fattori." -#: src/jade/tabs/security.jade:30 +#: src/jade/tabs/security.jade:33 msgid "Error saving Two-factor authentication settings." msgstr "Errore durante il salvataggio dell'autenticazione a due fattori." -#: src/jade/tabs/security.jade:31 +#: src/jade/tabs/security.jade:34 msgid "The verification code is invalid." msgstr "Il codice di verifica non è valido." -#: src/jade/tabs/security.jade:32 +#: src/jade/tabs/security.jade:36 msgid "Two-factor authentication has been successfully enabled." msgstr "L'autenticazione a due fattori è stata abilitata con successo." -#: src/jade/tabs/security.jade:33 +#: src/jade/tabs/security.jade:37 msgid "Two-factor authentication has been successfully disabled." msgstr "L'autenticazione a due fattori è stata disabilitata con successo." +#: src/jade/tabs/security.jade:38 +msgid "Password protection has been successfully enabled." +msgstr "La protezione con password è stata abilitata con successo." + #: src/jade/tabs/security.jade:39 +msgid "Password protection has been successfully disabled." +msgstr "La protezione con password è stata disabilitata con successo." + +#: src/jade/tabs/security.jade:45 msgid "Security settings" msgstr "Impostazioni di sicurezza" -#: src/jade/tabs/security.jade:44 +#: src/jade/tabs/security.jade:51 msgid "Loading Two-factor authentication settings..." msgstr "Sto caricando le impostazioni dell'autenticazione a due fattori..." -#: src/jade/tabs/security.jade:47 +#: src/jade/tabs/security.jade:55 msgid "Enabled" msgstr "Abilitato" -#: src/jade/tabs/security.jade:48 +#: src/jade/tabs/security.jade:56 msgid "Disabled" msgstr "Disabilitato" -#: src/jade/tabs/security.jade:50 +#: src/jade/tabs/security.jade:58 msgid "disable" msgstr "disabilita" -#: src/jade/tabs/security.jade:52 +#: src/jade/tabs/security.jade:60 msgid "enable" msgstr "abilita" -#: src/jade/tabs/security.jade:58 +#: src/jade/tabs/security.jade:66 msgid "" "Authy is providing two-factor authentication for Ripple Trade. To enable " "two-factor authentication, you must share some information with Authy." msgstr "Authy fornisce l'autenticazione a due fattori in Ripple Trade. Per abilitare l'autenticazione a due fattori, devi condividere delle informazioni con Authy." -#: src/jade/tabs/security.jade:61 +#: src/jade/tabs/security.jade:69 msgid "- Your email address:" msgstr "- Il tuo indirizzo email:" -#: src/jade/tabs/security.jade:64 +#: src/jade/tabs/security.jade:72 msgid "- Your phone number:" msgstr "- Il tuo numero di telefono:" -#: src/jade/tabs/security.jade:66 +#: src/jade/tabs/security.jade:74 msgid "By proceeding, you agree to the Authy {{1: terms of service.}}" msgstr "Proseguendo, sei d'accordo con i {{1: termini di servizio.}} di Authy" -#: src/jade/tabs/security.jade:70 +#: src/jade/tabs/security.jade:78 msgid "Share" msgstr "Condividi" -#: src/jade/tabs/security.jade:75 +#: src/jade/tabs/security.jade:84 msgid "Saving settings..." msgstr "Salvataggio impostazioni..." -#: src/jade/tabs/security.jade:76 +#: src/jade/tabs/security.jade:85 msgid "Disabling Two-factor authentication..." msgstr "Sto disabilitando l'autenticazione a due fattori..." -#: src/jade/tabs/security.jade:77 +#: src/jade/tabs/security.jade:86 msgid "Enabling Two-factor authentication..." msgstr "Sto abilitando l'autenticazione a due fattori..." -#: src/jade/tabs/security.jade:94 +#: src/jade/tabs/security.jade:104 msgid "Resend Code" msgstr "Reinvia il codice" -#: src/jade/tabs/security.jade:99 +#: src/jade/tabs/security.jade:110 msgid "Enable" msgstr "Abilita" -#: src/jade/tabs/security.jade:103 +#: src/jade/tabs/security.jade:114 msgid "Ripple password" msgstr "Password di Ripple" -#: src/jade/tabs/security.jade:116 +#: src/jade/tabs/security.jade:129 msgid "New password" msgstr "Nuova password" -#: src/jade/tabs/security.jade:140 +#: src/jade/tabs/security.jade:153 msgid "" "Your secret key unlocks access to your account funds. Please write it down " "and store it somewhere private and safe. In the event you lose your Ripple " "name or password, you can use this secret key to recover your funds." msgstr "La tua chiave segreta sblocca l'accesso ai fondi del tuo account. Per favore scrivila e salvala in un luogo privato e sicuro. Se dimentichi il tuo nome Ripple o la password, puoi usare questa chiave segreta per recuperare i tuoi fondi." -#: src/jade/tabs/security.jade:150 +#: src/jade/tabs/security.jade:165 msgid "Password protection for transactions" msgstr "Protezione password per le transazioni" -#: src/jade/tabs/security.jade:153 +#: src/jade/tabs/security.jade:168 msgid "" "If you turn off password requests, you’ll still need to enter your password " "after each page refresh." msgstr "Se disabiliti la richiesta della password, dovrai comunque inserire la tua password dopo ogni refresh della pagina." -#: src/jade/tabs/security.jade:161 +#: src/jade/tabs/security.jade:176 msgid "Yes" msgstr "Sì" -#: src/jade/tabs/security.jade:162 +#: src/jade/tabs/security.jade:177 msgid "No" msgstr "No" +#: src/jade/tabs/security.jade:192 +msgid "Delete Ripple Trade account" +msgstr "Elimina l'account Ripple Trade" + +#: src/jade/tabs/security.jade:194 +msgid "" +"This deletes your Ripple Trade account. You will no longer be able to login " +"to Ripple Trade and your account data will be deleted. However, you can " +"still access your funds using your secret key." +msgstr "Ciò cancellerà il tuo account Ripple Trade. Non sarai più in grado di entrare in Ripple Trade e i dati del tuo account saranno cancellati. In ogni caso potrai sempre accedere ai tuoi fondi usando la tua chiave segreta." + #: src/jade/tabs/send.jade:12 msgid "You have to be funded before you can send money" msgstr "Devi avere dei fondi prima di poter inviare denaro" -#: src/jade/tabs/send.jade:19 src/jade/tabs/send.jade:32 +#: src/jade/tabs/send.jade:25 msgid "Recipient" msgstr "Destinatario" -#: src/jade/tabs/send.jade:24 src/jade/tabs/send.jade:37 +#: src/jade/tabs/send.jade:30 msgid "Please enter a recipient." msgstr "Per favore inserisci un destinatario." -#: src/jade/tabs/send.jade:26 +#: src/jade/tabs/send.jade:32 msgid "" "Recipient should be a Ripple name, a contact, or Ripple/Bitcoin address." msgstr "Il destinatario deve essere un nome Ripple, un contatto o un indirizzo Ripple/Bitcoin." -#: src/jade/tabs/send.jade:28 src/jade/tabs/send.jade:41 +#: src/jade/tabs/send.jade:34 msgid "This email address is not Ripple-enabled." msgstr "Questo indirizzo email non è abilitato per Ripple." -#: src/jade/tabs/send.jade:39 -msgid "Recipient should be a contact or Ripple/Bitcoin address." -msgstr "Il destinatario deve essere un contatto o un indirizzo Ripple/Bitcoin." - -#: src/jade/tabs/send.jade:45 +#: src/jade/tabs/send.jade:38 msgid "Show destination tag" msgstr "Visualizza l'etichetta del destinatario" -#: src/jade/tabs/send.jade:54 +#: src/jade/tabs/send.jade:47 msgid "Destination cannot be blank." msgstr "Il destinatario non può essere vuoto." -#: src/jade/tabs/send.jade:55 +#: src/jade/tabs/send.jade:48 msgid "" "Recipient requires a destination tag to be specified for the transaction. If" " you don't know the destination tag, please contact them before doing a " "transaction." msgstr "Il destinatario richiede un'etichetta di destinazione da specificare per la transazione. Se non si conosce l'etichetta di destinazione, si prega di contattarlo prima di fare una transazione." -#: src/jade/tabs/send.jade:60 +#: src/jade/tabs/send.jade:53 msgid "Source tag" msgstr "Etichetta del mittente" -#: src/jade/tabs/send.jade:63 +#: src/jade/tabs/send.jade:56 msgid "Invalid source tag" msgstr "Etichetta del mittente non valida" -#: src/jade/tabs/send.jade:75 +#: src/jade/tabs/send.jade:59 +msgid "Invoice ID" +msgstr "ID fattura" + +#: src/jade/tabs/send.jade:62 +msgid "Invoice ID must not be more than 64 characters long." +msgstr "L'ID della fattura non deve essere lungo più di 64 caratteri." + +#: src/jade/tabs/send.jade:77 msgid "Recipient will receive" msgstr "Il destinatario riceverà" -#: src/jade/tabs/send.jade:86 +#: src/jade/tabs/send.jade:88 msgid "{{send.recipient | rpcontactname}} can't receive this currency." msgstr "{{send.recipient | rpcontactname}} non può ricevere questa valuta." -#: src/jade/tabs/send.jade:90 +#: src/jade/tabs/send.jade:92 src/jade/tabs/trust.jade:102 msgid "Amount must be greater than zero." msgstr "La quantità deve essere maggiore di zero." -#: src/jade/tabs/send.jade:91 +#: src/jade/tabs/send.jade:93 msgid "" -"This transaction exceeds your balance, you can send a max. of " -"{{account.max_spend | rpamount:{rel_precision: 0} }} XRP" -msgstr "Questa transazione supera le tue disponibilità, puoi inviare un massimo di {{account.max_spend | rpamount:{rel_precision: 0} }} XRP" +"You are either trying to send too little or too much XRP.Minimum amount is " +"0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "Stai cercando di inviare troppi o troppo pochi XRP. Il minimo è 0.000001 XRP e il massimo è 100 miliardi di XRP." -#: src/jade/tabs/send.jade:94 +#: src/jade/tabs/send.jade:97 msgid "" "Recipient does not allow XRP payments. Are you sure you want to send XRP " "anyway?" msgstr "Il destinatario non consente pagamenti in XRP. Sei sicuro di voler inviare XRP comunque?" -#: src/jade/tabs/send.jade:96 +#: src/jade/tabs/send.jade:99 msgid "" "{{send.recipient | rpcontactname}}trusts you for {{send.trust_limit | " "rpamount}} {{send.trust_limit | rpcurrency}}." msgstr "{{send.recipient | rpcontactname}}ti sta dando fiducia per {{send.trust_limit | rpamount}} {{send.trust_limit | rpcurrency}}." -#: src/jade/tabs/send.jade:100 +#: src/jade/tabs/send.jade:103 msgid "Send XRP" msgstr "Invia XRP" -#: src/jade/tabs/send.jade:104 +#: src/jade/tabs/send.jade:107 msgid "" "Destination account is unfunded; send at least {{send.xrp_deficiency | " "rpamount}} XRP to fund it.{{1}}" msgstr "L'account del destinatario è senza fondi; invia almeno {{send.xrp_deficiency | rpamount}} XRP per attivarlo.{{1}}" -#: src/jade/tabs/send.jade:109 +#: src/jade/tabs/send.jade:114 msgid "Checking" msgstr "Controllo" -#: src/jade/tabs/send.jade:111 +#: src/jade/tabs/send.jade:117 msgid "Analyzing address" msgstr "Verifico l'indirizzo" -#: src/jade/tabs/send.jade:113 +#: src/jade/tabs/send.jade:120 msgid "Scanning accepted currencies" msgstr "Sto verificando le valute accettate" -#: src/jade/tabs/send.jade:115 +#: src/jade/tabs/send.jade:123 msgid "Requesting quote" msgstr "Richiesta della quotazione in corso" -#: src/jade/tabs/send.jade:117 +#: src/jade/tabs/send.jade:126 msgid "Calculating paths" msgstr "Calcolo dei percorsi" -#: src/jade/tabs/send.jade:119 +#: src/jade/tabs/send.jade:129 msgid "Calculating alternatives" msgstr "Calcolo delle alternative" -#: src/jade/tabs/send.jade:121 +#: src/jade/tabs/send.jade:130 msgid "" "You cannot send {{send.amount}} {{send.currency}} to {{send.recipient}}. " "Either your account has insufficient funds, or {{send.recipient}} doesn't " "accept {{send.currency}}." msgstr "Non puoi inviare {{send.amount}} {{send.currency}} a {{send.recipient}}. Il tuo account non ha fondi sufficienti oppure {{send.recipient}} non accetta {{send.currency}}." -#: src/jade/tabs/send.jade:125 +#: src/jade/tabs/send.jade:134 msgid "" "You cannot send {{send.amount}} {{send.currency}} to{{send.recipient}}. Your" " account has insufficient funds." -msgstr "Non puoi inviare {{send.amount}} {{send.currency}} a{{send.recipient}}. Il tuo account ha fondi insufficienti." +msgstr "Non puoi inviare {{send.amount}} {{send.currency}} a{{send.recipient}}. Il tuo conto non ha fondi sufficienti." -#: src/jade/tabs/send.jade:128 +#: src/jade/tabs/send.jade:137 msgid "There are no valid currency choices for this destination." msgstr "Non ci sono valute valide per questo indirizzo." -#: src/jade/tabs/send.jade:130 +#: src/jade/tabs/send.jade:139 msgid "Error while retrieving quote for outbound payment. {{1}}" msgstr "Errore durante il recupero della quotazione per il pagamento in uscita. {{1}}" -#: src/jade/tabs/send.jade:139 +#: src/jade/tabs/send.jade:148 msgid "You can send" msgstr "Tu puoi inviare" -#: src/jade/tabs/send.jade:141 +#: src/jade/tabs/send.jade:150 msgid "Or you can send" msgstr "O puoi inviare" -#: src/jade/tabs/send.jade:155 +#: src/jade/tabs/send.jade:164 msgid "Send {{ alt.amount | rpcurrency }} {{1}}" msgstr "Invia {{ alt.amount | rpcurrency }} {{1}}" -#: src/jade/tabs/send.jade:170 +#: src/jade/tabs/send.jade:181 msgid "Ripple is calculating a path for your payment." msgstr "Ripple sta calcolando il percorso per il tuo pagamento." -#: src/jade/tabs/send.jade:176 +#: src/jade/tabs/send.jade:186 msgid "You are sending {{1}} to" msgstr "Stai inviando {{1}} a" -#: src/jade/tabs/send.jade:184 +#: src/jade/tabs/send.jade:194 msgid "Destination tag: {{send.dt}}" msgstr "Etichetta del destinatario: {{send.dt}}" -#: src/jade/tabs/send.jade:185 +#: src/jade/tabs/send.jade:195 msgid "They will receive" msgstr "Loro riceveranno" -#: src/jade/tabs/send.jade:188 +#: src/jade/tabs/send.jade:198 msgid "You will pay at most" msgstr "Pagherai al massimo" -#: src/jade/tabs/send.jade:194 +#: src/jade/tabs/send.jade:204 msgid "Are you sure?" msgstr "Sei sicuro?" -#: src/jade/tabs/send.jade:200 +#: src/jade/tabs/send.jade:210 msgid "Password required to unlock wallet" msgstr "Password richiesta per sbloccare il portafoglio." -#: src/jade/tabs/send.jade:224 src/jade/tabs/send.jade:252 +#: src/jade/tabs/send.jade:234 src/jade/tabs/send.jade:266 msgid "Contact saved!" msgstr "Contatto salvato!" -#: src/jade/tabs/send.jade:226 src/jade/tabs/send.jade:254 +#: src/jade/tabs/send.jade:236 src/jade/tabs/send.jade:268 msgid "Add this address to contacts" msgstr "Aggiungi questo indirizzo ai contatti" -#: src/jade/tabs/send.jade:230 src/jade/tabs/send.jade:258 +#: src/jade/tabs/send.jade:242 src/jade/tabs/send.jade:274 msgid "Name this user" msgstr "Nome di questo utente" -#: src/jade/tabs/send.jade:236 src/jade/tabs/send.jade:265 -#: src/jade/tabs/trust.jade:283 +#: src/jade/tabs/send.jade:246 src/jade/tabs/send.jade:278 +msgid "This contact already exists, please choose another name." +msgstr "Questo contatto è già presente, per favore scegli un altro nome." + +#: src/jade/tabs/send.jade:250 src/jade/tabs/send.jade:283 +#: src/jade/tabs/trust.jade:233 msgid "Saving..." msgstr "Sto salvando..." -#: src/jade/tabs/send.jade:241 src/jade/tabs/send.jade:271 +#: src/jade/tabs/send.jade:255 src/jade/tabs/send.jade:289 msgid "Send another payment" msgstr "Invia un altro pagamento" -#: src/jade/tabs/settings/navbar.jade:3 -msgid "Advanced" -msgstr "Avanzate" +#: src/jade/tabs/settings/navbar.jade:2 +msgid "Security" +msgstr "Sicurezza" + +#: src/jade/tabs/settingstrade.jade:12 +msgid "Trade settings" +msgstr "Impostazioni di Scambio" + +#: src/jade/tabs/settingstrade.jade:14 +msgid "Trade currency pairs" +msgstr "Scambia coppie di valute" -#: src/jade/tabs/trade.jade:10 -msgid "Loading order book..." -msgstr "Caricamento del libro..." +#: src/jade/tabs/trade.jade:12 src/jade/tabs/trade.jade:451 +msgid "Loading Order Book" +msgstr "Caricamento del Libro degli Ordini" -#: src/jade/tabs/trade.jade:23 +#: src/jade/tabs/trade.jade:31 src/jade/tabs/widgets/markets.jade:24 msgid "flip" msgstr "rovescia" -#: src/jade/tabs/trade.jade:27 src/jade/tabs/trade.jade:35 -msgid "Base currency" -msgstr "Valuta base" +#: src/jade/tabs/trade.jade:34 +msgid "add pair" +msgstr "aggiungi coppia" + +#: src/jade/tabs/trade.jade:37 +msgid "edit pairs" +msgstr "modifica coppie" + +#: src/jade/tabs/trade.jade:41 +msgid "Base Currency" +msgstr "Valuta di Base" + +#: src/jade/tabs/trade.jade:44 +msgid "Base Gateway" +msgstr "Gateway di Base" + +#: src/jade/tabs/trade.jade:49 +msgid "Counter Currency" +msgstr "Valuta Opposta" -#: src/jade/tabs/trade.jade:30 src/jade/tabs/trade.jade:41 -msgid "Change gateway" -msgstr "Cambia gateway" +#: src/jade/tabs/trade.jade:52 +msgid "Counter Gateway" +msgstr "Gateway Opposto" -#: src/jade/tabs/trade.jade:38 src/jade/tabs/trade.jade:46 -msgid "Counter currency" -msgstr "Valuta corrente" +#: src/jade/tabs/trade.jade:57 +msgid "Add" +msgstr "Aggiungi" -#: src/jade/tabs/trade.jade:50 +#: src/jade/tabs/trade.jade:60 msgid "Base currency issuer ({{order.first_currency | rpcurrency}})" -msgstr "Emittente della valuta base ({{order.first_currency | rpcurrency}})" +msgstr "Emittente della valuta di Base ({{order.first_currency | rpcurrency}})" + +#: src/jade/tabs/trade.jade:63 +msgid "Ripple name or contact" +msgstr "Nome Ripple o contatto" -#: src/jade/tabs/trade.jade:55 +#: src/jade/tabs/trade.jade:65 msgid "Not a valid Ripple address or contact" msgstr "Non è un indirizzo Ripple o un contatto valido" -#: src/jade/tabs/trade.jade:60 +#: src/jade/tabs/trade.jade:70 msgid "Counter currency issuer ({{order.second_currency | rpcurrency}})" -msgstr "Emittente della valuta corrente ({{order.second_currency | rpcurrency}})" +msgstr "Emittente della valuta opposta ({{order.second_currency | rpcurrency}})" -#: src/jade/tabs/trade.jade:65 +#: src/jade/tabs/trade.jade:75 msgid "Not a valid Ripple name or address" msgstr "Nome o indirizzo Ripple non valido" -#: src/jade/tabs/trade.jade:69 +#: src/jade/tabs/trade.jade:79 msgid "" -"You must select a gateway to trade currencies. Click the “Change gateway” " -"link above and enter the gateway's address or Ripple name. {{1:Find a " -"gateway.}}" -msgstr "Devi selezionare un gateway per scambiare valute. Clicca sul link \"Cambia gateway\" e inserisci l'indirizzo del gateway o il suo nome Ripple. {{1:Trova un gateway.}}" +"To show an orderbook, choose from the dropdown above or click \"Add custom " +"pair\"." +msgstr "Per visualizzare il libro degli ordini, scegli dal menù a tendina qui sopra o clicca su \"Aggiungi una coppia personalizzata\"." -#: src/jade/tabs/trade.jade:79 +#: src/jade/tabs/trade.jade:86 msgid "Bid" msgstr "Denaro" -#: src/jade/tabs/trade.jade:84 +#: src/jade/tabs/trade.jade:91 msgid "Ask" msgstr "Lettera" -#: src/jade/tabs/trade.jade:89 +#: src/jade/tabs/trade.jade:96 msgid "Spread" msgstr "Spread" -#: src/jade/tabs/trade.jade:94 +#: src/jade/tabs/trade.jade:101 msgid "Last price" msgstr "Ultimo prezzo" -#: src/jade/tabs/trade.jade:101 +#: src/jade/tabs/trade.jade:108 msgid "You have to be funded before you can trade" msgstr "Devi finanziare il tuo conto prima di poter scambiare" -#: src/jade/tabs/trade.jade:108 +#: src/jade/tabs/trade.jade:115 msgid "Buy {{1}} {{order.first_currency | rpcurrency}}" msgstr "Compra {{1}} {{order.first_currency | rpcurrency}}" -#: src/jade/tabs/trade.jade:111 +#: src/jade/tabs/trade.jade:118 msgid "Sell {{1}} {{order.first_currency | rpcurrency}}" msgstr "Vendi {{1}} {{order.first_currency | rpcurrency}}" -#: src/jade/tabs/trade.jade:114 src/jade/tabs/trade.jade:123 +#: src/jade/tabs/trade.jade:121 src/jade/tabs/trade.jade:130 msgid "{{1}} available" msgstr "{{1}} disponibile" -#: src/jade/tabs/trade.jade:137 +#: src/jade/tabs/trade.jade:144 msgid "Amount To Buy" msgstr "Quantità da comprare" -#: src/jade/tabs/trade.jade:138 +#: src/jade/tabs/trade.jade:145 msgid "Amount To Sell" msgstr "Quantità da vendere" -#: src/jade/tabs/trade.jade:145 src/jade/tabs/trade.jade:160 -#: src/jade/tabs/trade.jade:175 +#: src/jade/tabs/trade.jade:152 src/jade/tabs/trade.jade:167 +#: src/jade/tabs/trade.jade:182 msgid "Required" msgstr "Obbligatorio" -#: src/jade/tabs/trade.jade:147 src/jade/tabs/trade.jade:162 -#: src/jade/tabs/trade.jade:177 +#: src/jade/tabs/trade.jade:154 src/jade/tabs/trade.jade:169 +#: src/jade/tabs/trade.jade:184 msgid "Must be greater than zero" msgstr "Deve essere maggiore di zero" -#: src/jade/tabs/trade.jade:149 src/jade/tabs/trade.jade:164 -#: src/jade/tabs/trade.jade:179 -msgid "Minimum is a drop (0.000001) and maximum is 100 billion XRPs" -msgstr "Il minimo è una frazione (0.000001) e il massimo è 100 miliardi di XRP" +#: src/jade/tabs/trade.jade:156 src/jade/tabs/trade.jade:171 +#: src/jade/tabs/trade.jade:186 +msgid "" +"Minimum amount of XRP you can send is a drop (0.000001) and the maximum is " +"100 billion XRPs." +msgstr "L'ammontare minimo di XRP che puoi inviare è una frazione (0.000001) e il massimo è 100 miliardi di XRP." -#: src/jade/tabs/trade.jade:153 +#: src/jade/tabs/trade.jade:160 msgid "Price of Each" msgstr "Prezzo di Ognuno" -#: src/jade/tabs/trade.jade:168 +#: src/jade/tabs/trade.jade:175 msgid "Order Value (max)" msgstr "Valore Ordine (max)" -#: src/jade/tabs/trade.jade:185 +#: src/jade/tabs/trade.jade:192 msgid "You are wanting to buy {{1}} for {{2}} ({{3}} per {{4}})" msgstr "Vuoi comprare {{1}} per {{2}} ({{3}} a {{4}})" -#: src/jade/tabs/trade.jade:194 +#: src/jade/tabs/trade.jade:201 msgid "You are wanting to sell {{1}} for {{2}} ({{3}} per {{4}})" msgstr "Vuoi vendere {{1}} per {{2}} ({{3}} a {{4}})" -#: src/jade/tabs/trade.jade:206 +#: src/jade/tabs/trade.jade:213 msgid "Buy" msgstr "Compra" -#: src/jade/tabs/trade.jade:207 +#: src/jade/tabs/trade.jade:214 msgid "Sell" msgstr "Vendi" -#: src/jade/tabs/trade.jade:213 +#: src/jade/tabs/trade.jade:220 msgid "You do not have sufficient funds to create an order." msgstr "Non hai abbastanza fondi per creare un ordine." -#: src/jade/tabs/trade.jade:218 -msgid "CAUTION: Your order is far off from the current market price." -msgstr "ATTENZIONE: Il tuo ordine è lontano dal prezzo corrente di mercato." - -#: src/jade/tabs/trade.jade:220 +#: src/jade/tabs/trade.jade:225 msgid "" "You are about to create an order to {{1: buy}} {{2: " -"sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}" -msgstr "Stai creando un ordine per {{1: comprare}} {{2: vendere}}{{3}}{{4:per}}{{5}}{{6}}{{7:Sei sicuro?}}" +"sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}{{8}}" +msgstr "Stai creando un ordine per {{1: comprare}} {{2: vendere}}{{3}}{{4:per}}{{5}}{{6}}{{7:Sei sicuro?}}{{8}}" + +#: src/jade/tabs/trade.jade:242 +msgid "CAUTION: Your order is far off from the current market price." +msgstr "ATTENZIONE: Il tuo ordine è lontano dal prezzo corrente di mercato." -#: src/jade/tabs/trade.jade:239 +#: src/jade/tabs/trade.jade:246 src/jade/tabs/trade.jade:407 msgid "« Back" -msgstr "« Indietro" +msgstr "Indietro" -#: src/jade/tabs/trade.jade:246 +#: src/jade/tabs/trade.jade:255 msgid "Sending order to Ripple network..." msgstr "Invio dell'ordine alla rete Ripple in corso...." -#: src/jade/tabs/trade.jade:252 +#: src/jade/tabs/trade.jade:261 msgid "Your order has been submitted." msgstr "L'ordine è stato inserito." -#: src/jade/tabs/trade.jade:254 +#: src/jade/tabs/trade.jade:263 msgid "Your order is now active." msgstr "Il tuo ordine è attivo." -#: src/jade/tabs/trade.jade:256 -msgid "Your order is filled." +#: src/jade/tabs/trade.jade:265 +msgid "Your order has been filled." msgstr "Il tuo ordine è stato eseguito." -#: src/jade/tabs/trade.jade:258 -msgid "Request has been denied." -msgstr "La richiesta è stata rifiutata." +#: src/jade/tabs/trade.jade:267 +msgid "" +"Your order has been partially filled. The remaining amount is now active." +msgstr "Il tuo ordine è stato eseguito parzialmente. Il rimanente è attivo." -#: src/jade/tabs/trade.jade:259 -msgid "We were unable to submit the request. Please try again later." -msgstr "Non siamo riusciti ad inviare la richiesta. Per favore riprova più tardi." +#: src/jade/tabs/trade.jade:276 +msgid "Submit another order" +msgstr "Invia un altro ordine" -#: src/jade/tabs/trade.jade:261 -msgid "Request is malformed." -msgstr "La richiesta non è valida." +#: src/jade/tabs/trade.jade:278 +msgid "My Orders{{1}}{{2}}" +msgstr "I Miei Ordini{{1}}{{2}}" -#: src/jade/tabs/trade.jade:262 -msgid "" -"Your request is invalid, reason: {{order[type].engine_result}} - " -"{{order[type].engine_result_message}}" -msgstr "La tua richiesta non è valida, motivo: {{order[type].engine_result}} - {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:287 +msgid "Your order has been modified." +msgstr "Il tuo ordine è stato modificato." -#: src/jade/tabs/trade.jade:265 src/jade/tabs/trade.jade:279 -msgid "Transaction failed." -msgstr "Transazione non riuscita." +#: src/jade/tabs/trade.jade:289 +msgid "Your order #{{ cancelOrder.seq }} has been cancelled." +msgstr "Il tuo ordine {{ cancelOrder.seq }} è stato cancellato." -#: src/jade/tabs/trade.jade:267 +#: src/jade/tabs/trade.jade:291 msgid "" -"You do not have enough {{(type == 'buy' ? order.second_currency : " -"order.first_currency) | rpcurrency}} to create this order." -msgstr "Non hai abbastanza {{(type == 'buy' ? order.second_currency : order.first_currency) | rpcurrency}} per creare questo ordine." +"Your order could not be modified and no longer exists. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "Il tuo ordine non può essere modificato e non esiste più. Errore: {{order[editOrder.type].engine_result_message}}" -#: src/jade/tabs/trade.jade:269 -msgid "" -"You must have at least {{account.reserve_to_add_trust | rpamount}} XRP to " -"submit an order. {{1}}" -msgstr "Devi avere almeno {{account.reserve_to_add_trust | rpamount}} XRP per inserire un ordine. {{1}}" +#: src/jade/tabs/trade.jade:293 +msgid "Unable to cancel order as it no longer exists." +msgstr "Impossibile cancellare l'ordine perchè non esiste più." -#: src/jade/tabs/trade.jade:271 -msgid "More information." -msgstr "Maggiori informazioni." +#: src/jade/tabs/trade.jade:295 +msgid "Modifying your order (Placing new order) ..." +msgstr "Sto modificando il tuo ordine (Piazzando un nuovo ordine)..." -#: src/jade/tabs/trade.jade:272 -msgid "Error: {{order[type].engine_result_message}}" -msgstr "Errore: {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:299 +msgid "Current pair only" +msgstr "Solo la coppia corrente" -#: src/jade/tabs/trade.jade:275 -msgid "Trade failed." -msgstr "Scambio non riuscito." +#: src/jade/tabs/trade.jade:313 src/jade/tabs/widgets/orders.jade:24 +msgid "reverse" +msgstr "rovescia" -#: src/jade/tabs/trade.jade:277 -msgid "Trade failed, reason: {{order[type].engine_result_message}}" -msgstr "Scambio non riuscito, motivo: {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:322 src/jade/tabs/widgets/orders.jade:33 +msgid "QTY{{1}}" +msgstr "QTY{{1}}" -#: src/jade/tabs/trade.jade:281 src/jade/tabs/trust.jade:45 -msgid "" -"The particular server you sent the transaction to was too busy to forward or" -" process your transaction at the fee you included in it." -msgstr "Il server cui hai inviato la transazione era troppo occupato per inviare o processare la tua transazione comprensiva delle commissioni che hai incluso." +#: src/jade/tabs/trade.jade:324 src/jade/tabs/widgets/orders.jade:35 +msgid "Base{{1}}" +msgstr "Base{{1}}" -#: src/jade/tabs/trade.jade:290 -msgid "Submit another order" -msgstr "Invia un altro ordine" +#: src/jade/tabs/trade.jade:326 src/jade/tabs/widgets/orders.jade:37 +msgid "Counter{{1}}" +msgstr "Opposto{{1}}" -#: src/jade/tabs/trade.jade:292 -msgid "My Orders{{1}}{{2}}" -msgstr "I Miei Ordini{{1}}{{2}}" +#: src/jade/tabs/trade.jade:328 src/jade/tabs/widgets/orders.jade:39 +msgid "Limit{{1}}" +msgstr "Limite{{1}}" -#: src/jade/tabs/trade.jade:299 -msgid "Type" -msgstr "Tipo" +#: src/jade/tabs/trade.jade:334 +msgid "Action" +msgstr "Azione" -#: src/jade/tabs/trade.jade:300 -msgid "Currencies {{1: (Issuer)}}" -msgstr "Valute {{1: (Emittente)}}" +#: src/jade/tabs/trade.jade:360 src/jade/tabs/trade.jade:424 +msgid "TRADE CONFIRMATION" +msgstr "CONFERMA SCAMBIO" -#: src/jade/tabs/trade.jade:302 -msgid "Price" -msgstr "Prezzo" +#: src/jade/tabs/trade.jade:362 +msgid "{{1:Please confirm that you wish to cancel order #{{entry.seq}}}}" +msgstr "{{1:Per favore conferma che vuoi cancellare l'ordine {{entry.seq}}}}" -#: src/jade/tabs/trade.jade:304 -msgid "Action" -msgstr "Azione" +#: src/jade/tabs/trade.jade:364 +msgid "" +"{{1}} div span.modal-order-type(l10n-inc) FILLED: span filled data div" +" span.modal-order-type(l10n-inc) REMAIN: span remain data div span" +".modal-order-type(l10n-inc) PLACED: span time data" +msgstr "{{1}} div span.modal-order-type(l10n-inc) ESEGUITO: span filled data div span.modal-order-type(l10n-inc) RIMANENTE: span remain data div span.modal-order-type(l10n-inc) PIAZZATO: span time data" -#: src/jade/tabs/trade.jade:313 +#: src/jade/tabs/trade.jade:371 msgid "with" msgstr "con" -#: src/jade/tabs/trade.jade:314 +#: src/jade/tabs/trade.jade:372 msgid "for" msgstr "per" -# You haven't placed any orders. -#: src/jade/tabs/trade.jade:327 -msgid "You haven't placed any orders." -msgstr "Non hai inserito nessun ordine." +#: src/jade/tabs/trade.jade:376 +msgid "at" +msgstr "a" -#: src/jade/tabs/trade.jade:329 -msgid "Unable to cancel order." -msgstr "Impossibile cancellare l'ordine." +#: src/jade/tabs/trade.jade:389 +msgid "Cancel order" +msgstr "Cancella ordine" -#: src/jade/tabs/trade.jade:330 -msgid "Error: {{cancelError}}" -msgstr "Errore: {{cancelError}}" +#: src/jade/tabs/trade.jade:390 src/jade/tabs/trade.jade:431 +msgid "back" +msgstr "indietro" -#: src/jade/tabs/trade.jade:334 -msgid "Orderbook" -msgstr "Libro" +#: src/jade/tabs/trade.jade:407 +msgid "" +"CAUTION: Your new order is far off from the current market price.
Do " +"you still want to replace your order ?" +msgstr "ATTENZIONE: Il tuo nuovo ordine è lontano dal prezzo corrente di mercato.
Vuoi ancora sostituire il tuo ordine?" + +#: src/jade/tabs/trade.jade:410 +msgid "Unable to cancel order. Error: {{entry.errorMsg}}" +msgstr "Impossibile cancellare l'ordine. Errore: {{entry.errorMsg}}" + +#: src/jade/tabs/trade.jade:412 +msgid "" +"Your order amount has been updated by Ripple. Please go back and edit again " +"to modify this order." +msgstr "L'importo del tuo ordine è stato aggiornato da Ripple. Per favore torna indietro e modifica di nuovo questo ordine." + +#: src/jade/tabs/trade.jade:414 +msgid "" +"Your order could not be modified. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "Il tuo ordine non può essere modificato. Errore: {{order[editOrder.type].engine_result_message}}" + +#: src/jade/tabs/trade.jade:415 +msgid "X" +msgstr "X" + +#: src/jade/tabs/trade.jade:420 +msgid "cancel all" +msgstr "cancella tutto" + +#: src/jade/tabs/trade.jade:426 +msgid "{{1:Please confirm that you wish to cancel all orders.}}" +msgstr "{{1:Per favore conferma che vuoi cancellare tutti gli ordini.}}" + +#: src/jade/tabs/trade.jade:430 +msgid "Cancel all orders" +msgstr "Cancella tutti gli ordini" + +#: src/jade/tabs/trade.jade:433 src/jade/tabs/widgets/orders.jade:64 +msgid "No current orders. {{1}}" +msgstr "Nessun ordine attivo. {{1}}" + +#: src/jade/tabs/trade.jade:434 src/jade/tabs/widgets/orders.jade:65 +msgid "View orders history" +msgstr "Visualizza la cronologia degli ordini" -#: src/jade/tabs/trade.jade:336 +#: src/jade/tabs/trade.jade:437 +msgid "Orderbook{{1}}" +msgstr "Libro degli Ordini{{1}}" + +#: src/jade/tabs/trade.jade:440 msgid "show" msgstr "visualizza" -#: src/jade/tabs/trade.jade:344 +#: src/jade/tabs/trade.jade:442 +msgid "Last updated {{1}} {{2: seconds}} {{3: second}} ago" +msgstr "Ultimo aggiornamento {{1}} {{2: secondi}} {{3: secondi}} fa" + +#: src/jade/tabs/trade.jade:458 msgid "Bids" msgstr "Denaro" -#: src/jade/tabs/trade.jade:346 src/jade/tabs/trade.jade:373 +#: src/jade/tabs/trade.jade:460 src/jade/tabs/trade.jade:487 msgid "Sum{{1}}{{2}}" msgstr "Somma{{1}}{{2}}" -#: src/jade/tabs/trade.jade:349 src/jade/tabs/trade.jade:370 +#: src/jade/tabs/trade.jade:463 src/jade/tabs/trade.jade:484 msgid "Size{{1}}{{2}}" msgstr "Dimensione{{1}}{{2}}" -#: src/jade/tabs/trade.jade:352 +#: src/jade/tabs/trade.jade:466 msgid "Bid Price{{1}}{{2}}" msgstr "Prezzo Denaro{{1}}{{2}}" -#: src/jade/tabs/trade.jade:363 +#: src/jade/tabs/trade.jade:477 msgid "There are currently no bids for this pair." msgstr "Non ci sono al momento offerte per questa coppia di valute." -#: src/jade/tabs/trade.jade:365 +#: src/jade/tabs/trade.jade:479 msgid "Asks" msgstr "Lettera" -#: src/jade/tabs/trade.jade:367 +#: src/jade/tabs/trade.jade:481 msgid "Ask Price{{1}}{{2}}" msgstr "Prezzo Lettera{{1}}{{2}}" -#: src/jade/tabs/trade.jade:384 +#: src/jade/tabs/trade.jade:498 msgid "There are currently no asks for this pair." msgstr "Non ci sono al momento domande per questa coppia di valute." -#: src/jade/tabs/trade.jade:387 +#: src/jade/tabs/trade.jade:501 msgid "No more orders" msgstr "Non più ordini" -#: src/jade/tabs/trust.jade:23 -msgid "Connecting a gateway to your Ripple account..." -msgstr "Collegamento del gateway al tuo account Ripple..." - -#: src/jade/tabs/trust.jade:25 -msgid "Gateway connected." -msgstr "Gateway connesso." - -#: src/jade/tabs/trust.jade:27 -msgid "Gateway could not be connected!" -msgstr "Il gateway non può essere collegato!" - -#: src/jade/tabs/trust.jade:28 src/jade/tabs/trust.jade:30 -msgid "There was a problem connecting the gateway. Please try again later." -msgstr "C'è stato un problema di connessione al gateway. Per favore riprova più tardi." +#: src/jade/tabs/trust.jade:29 +msgid "Removing gateway..." +msgstr "Rimozione gateway..." #: src/jade/tabs/trust.jade:31 -msgid "" -"Your request is invalid, reason: {{engine_result}} - " -"{{engine_result_message}}" -msgstr "La tua richiesta non è valida, motivo: {{engine_result}} - {{engine_result_message}}" +msgid "Gateway removed." +msgstr "Gateway rimosso." #: src/jade/tabs/trust.jade:33 -msgid "Gateway connection failed!" -msgstr "Connessione al gateway non riuscita!" +msgid "Your changes have been saved." +msgstr "I cambiamenti sono stati salvati." #: src/jade/tabs/trust.jade:35 -msgid "You have no gateway connected in this currency." -msgstr "Non sei collegato a nessun gateway per questa valuta." - -#: src/jade/tabs/trust.jade:36 -msgid "Insufficient reserve to connect gateway." -msgstr "Riserva insufficiente per connettersi ad un gateway." - -#: src/jade/tabs/trust.jade:37 -msgid "" -"You must have at least {{account.reserve_to_add_trust | rpamount:0}} XRP to " -"connect a gateway. {{1}}" -msgstr "Devi avere almeno {{account.reserve_to_add_trust | rpamount:0}} XRP per connetterti ad un gateway. {{1}}" +msgid "Request failed." +msgstr "Richiesta non riuscita." #: src/jade/tabs/trust.jade:39 -msgid "Read more." -msgstr "Leggi di più." - -#: src/jade/tabs/trust.jade:40 -msgid "Gateway connection failed to clear, reason: {{engine_result_message}}" -msgstr "Il collegamento al gateway non è stato cancellato, motivo: {{engine_result_message}}" - -#: src/jade/tabs/trust.jade:43 -msgid "Transaction failed!" -msgstr "Transazione non riuscita!" - -#: src/jade/tabs/trust.jade:53 -msgid "Saving changes..." -msgstr "Salvataggio delle modifiche..." +msgid "Account unlock failed." +msgstr "Sblocco dell'account non riuscito." #: src/jade/tabs/trust.jade:55 -msgid "Changes saved!" -msgstr "Modifiche salvate!" - -#: src/jade/tabs/trust.jade:57 src/jade/tabs/trust.jade:69 -msgid "There was an error while saving your changes." -msgstr "C'è stato un errore durante il salvataggio delle modifiche." - -#: src/jade/tabs/trust.jade:65 -msgid "Removing gateway..." -msgstr "Rimozione gateway..." - -#: src/jade/tabs/trust.jade:67 -msgid "Gateway removed!" -msgstr "Gateway rimosso!" - -#: src/jade/tabs/trust.jade:72 src/jade/tabs/trust.jade:194 -msgid "You must have at least {{1}} to add a new trust line. {{2}}" -msgstr "Devi avere almeno {{1}} per aggiungere una nuova linea di fiducia. {{2}}" - -#: src/jade/tabs/trust.jade:82 msgid "Name / Address" msgstr "Nome / Indirizzo" -#: src/jade/tabs/trust.jade:84 src/jade/tabs/trust.jade:130 +#: src/jade/tabs/trust.jade:57 src/jade/tabs/trust.jade:90 msgid "Currency" msgstr "Valuta" -#: src/jade/tabs/trust.jade:87 +#: src/jade/tabs/trust.jade:60 msgid "Trust Limit" msgstr "Limite Fiducia" -#: src/jade/tabs/trust.jade:93 +#: src/jade/tabs/trust.jade:66 msgid "Gateway's Ripple name or address" msgstr "Nome o indirizzo Ripple del gateway" -#: src/jade/tabs/trust.jade:162 +#: src/jade/tabs/trust.jade:100 +msgid "Amount field is required." +msgstr "Il campo quantità è obbligatorio." + +#: src/jade/tabs/trust.jade:115 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"connect to. More " +"information" +msgstr "Permetti che il saldo su questa linea di fiducia possa essere trasferito ad un altro emittente cui sei collegato. Maggiori informazioni" + +#: src/jade/tabs/trust.jade:125 msgid "" "{{1:You are connecting a gateway, which means}}{{2:{{ counterparty_address |" " rpripplename:{tilde: true} }} can:}}" msgstr "{{1:Ti stai connettendo ad un gateway, ciò significa}}{{2:{{ counterparty_address | rpripplename:{tilde: true} }} può:}}" -#: src/jade/tabs/trust.jade:165 +#: src/jade/tabs/trust.jade:128 msgid "{{1:- Hold up to }}{{2}} {{3: on your behalf}}" msgstr "{{1:- Possedere fino a }}{{2}} {{3: a tuo nome}}" -#: src/jade/tabs/trust.jade:169 +#: src/jade/tabs/trust.jade:132 msgid "{{1:- Hold }}{{2}} {{3: on your behalf}}" msgstr "{{1:- Possedere }}{{2}} {{3: a tuo nome}}" -#: src/jade/tabs/trust.jade:183 src/jade/tabs/trust.jade:186 -#: src/jade/tabs/trust.jade:189 src/jade/tabs/trust.jade:255 -#: src/jade/tabs/trust.jade:258 src/jade/tabs/trust.jade:261 -#: src/jade/tabs/trust.jade:288 src/jade/tabs/trust.jade:291 -#: src/jade/tabs/trust.jade:294 -msgid "Remove" -msgstr "Rimuovi" - -#: src/jade/tabs/trust.jade:192 +#: src/jade/tabs/trust.jade:148 msgid "Verifying address" msgstr "Verifica dell'indirizzo" -#: src/jade/tabs/trust.jade:201 +#: src/jade/tabs/trust.jade:151 msgid "" "Your account has to be {{1:activated}} before you can add a gateway account." msgstr "Il tuo account deve essere {{1:attivato}} prima di poter aggiungere un gateway." -#: src/jade/tabs/trust.jade:209 +#: src/jade/tabs/trust.jade:159 msgid "Connect gateway" msgstr "Collega gateway" -#: src/jade/tabs/trust.jade:227 -msgid "Gateway" -msgstr "Gateway" - -#: src/jade/tabs/trust.jade:229 src/jade/tabs/trust.jade:271 +#: src/jade/tabs/trust.jade:169 src/jade/tabs/trust.jade:221 msgid "Limit" msgstr "Limite" -#: src/jade/tabs/trust.jade:230 +#: src/jade/tabs/trust.jade:170 msgid "Min" msgstr "Min" -#: src/jade/tabs/trust.jade:232 +#: src/jade/tabs/trust.jade:172 msgid "Edit" msgstr "Modifica" -#: src/jade/tabs/trust.jade:245 +#: src/jade/tabs/trust.jade:188 msgid "Off" msgstr "Off" -#: src/jade/tabs/trust.jade:246 +#: src/jade/tabs/trust.jade:189 msgid "On" msgstr "On" -#: src/jade/tabs/trust.jade:276 +#: src/jade/tabs/trust.jade:192 src/jade/tabs/trust.jade:201 +#: src/jade/tabs/trust.jade:206 src/jade/tabs/trust.jade:210 +#: src/jade/tabs/trust.jade:239 src/jade/tabs/trust.jade:244 +#: src/jade/tabs/trust.jade:248 +msgid "Incoming trust" +msgstr "Fiducia in entrata" + +#: src/jade/tabs/trust.jade:192 +msgid "" +"You can't edit incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "Non puoi modificare le linee di fiducia in entrata. Queste linee compaiono quando altri utenti Ripple ti danno la fiducia." + +#: src/jade/tabs/trust.jade:200 src/jade/tabs/trust.jade:202 +#: src/jade/tabs/trust.jade:205 src/jade/tabs/trust.jade:207 +#: src/jade/tabs/trust.jade:209 src/jade/tabs/trust.jade:211 +#: src/jade/tabs/trust.jade:238 src/jade/tabs/trust.jade:240 +#: src/jade/tabs/trust.jade:243 src/jade/tabs/trust.jade:245 +#: src/jade/tabs/trust.jade:247 src/jade/tabs/trust.jade:249 +msgid "Remove" +msgstr "Rimuovi" + +#: src/jade/tabs/trust.jade:201 src/jade/tabs/trust.jade:206 +#: src/jade/tabs/trust.jade:210 src/jade/tabs/trust.jade:239 +#: src/jade/tabs/trust.jade:244 src/jade/tabs/trust.jade:248 +msgid "" +"You can't delete incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "Non puoi cancellare le linee di fiducia in entrata. Queste linee compaiono quando altri utenti Ripple ti danno la fiducia." + +#: src/jade/tabs/trust.jade:226 msgid "Rippling {{1}}" msgstr "Rippling {{1}}" -#: src/jade/tabs/tx.jade:3 +#: src/jade/tabs/tx.jade:5 msgid "Loading transaction details..." msgstr "Caricamento dei dettagli della transazione..." -#: src/jade/tabs/tx.jade:5 +#: src/jade/tabs/tx.jade:7 msgid "An error occurred while loading the transaction details." msgstr "Si è verificato un errore durante il caricamento dei dettagli della transazione." -#: src/jade/tabs/tx.jade:8 +#: src/jade/tabs/tx.jade:10 msgid "Transaction #" -msgstr "Transazione #" - -#: src/jade/tabs/tx.jade:11 -msgid "Show in graph" -msgstr "Mostra sulla mappa" +msgstr "Transazione" -#: src/jade/tabs/tx.jade:13 +#: src/jade/tabs/tx.jade:15 msgid "Transaction type: {{1}}" msgstr "Tipo di transazione: {{1}}" -#: src/jade/tabs/tx.jade:20 +#: src/jade/tabs/tx.jade:22 msgid "Address sent from" msgstr "Indirizzo di invio" -#: src/jade/tabs/tx.jade:24 +#: src/jade/tabs/tx.jade:26 msgid "Amount sent" msgstr "Quantità inviata" -#: src/jade/tabs/tx.jade:28 +#: src/jade/tabs/tx.jade:30 msgid "Currency sent" msgstr "Valuta inviata" -#: src/jade/tabs/tx.jade:33 +#: src/jade/tabs/tx.jade:35 msgid "Address sent to" msgstr "Indirizzo di ricezione" -#: src/jade/tabs/tx.jade:37 +#: src/jade/tabs/tx.jade:39 msgid "Amount received" msgstr "Quantità ricevuta" -#: src/jade/tabs/tx.jade:41 +#: src/jade/tabs/tx.jade:43 msgid "Currency received" msgstr "Valuta ricevuta" -#: src/jade/tabs/tx.jade:48 +#: src/jade/tabs/tx.jade:50 msgid "Network fee paid" msgstr "Commissioni pagate al network" -#: src/jade/tabs/tx.jade:60 +#: src/jade/tabs/tx.jade:62 msgid "Ledger number" msgstr "Registro numero" -#: src/jade/tabs/tx.jade:66 +#: src/jade/tabs/tx.jade:68 msgid "Address sent from:" msgstr "Indirizzo di invio:" # Sorry, we don't have an info page layout for this transaction type yet. -#: src/jade/tabs/tx.jade:70 +#: src/jade/tabs/tx.jade:72 msgid "" "Sorry, we don't have an info page layout for this transaction type yet." -msgstr "Ci spiace, non abbiamo ancora informazioni relative a questo tipo di transazione." +msgstr "Ci dispiace, non abbiamo ancora informazioni relative a questo tipo di transazione." + +#: src/jade/tabs/usd.jade:35 +msgid "US Dollar Deposit" +msgstr "Deposito in dollari US" + +#: src/jade/tabs/usd.jade:39 +msgid "SnapSwap US (~SnapSwap){{1}}{{2}}" +msgstr "SnapSwap US (~SnapSwap){{1}}{{2}}" + +#: src/jade/tabs/usd.jade:45 +msgid "USA" +msgstr "USA" + +#: src/jade/tabs/usd.jade:48 +msgid "$ 0.31-$ 5.00" +msgstr "$ 0.31-$ 5.00" + +#: src/jade/tabs/usd.jade:56 +msgid "" +"Ripple Trade has partnered with SnapSwap to provide easier access to USD. " +"Following this action will enable SnapSwap to hold USD on your behalf." +msgstr "Ripple Trade ha stretto accordi con SnapSwap per rendere più facile l'accesso agli USD. Continuando permetterai a SnapSwap di detenere USD a tuo nome." + +#: src/jade/tabs/usd.jade:73 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.US" +msgstr "NUOVI CLIENTI - ISCRIVITI A SNAPSWAP.US" + +#: src/jade/tabs/usd.jade:74 +msgid "Register and verify your account at SnapSwap US. You will need: {{1}}" +msgstr "Registra e verifica il tuo account SnapSwap US. Avrai bisogno di: {{1}}" + +#: src/jade/tabs/usd.jade:82 +msgid "EXISTING SNAPSWAP US CUSTOMERS" +msgstr "ATTUALI CLIENTI SNAPSWAP US" + +#: src/jade/tabs/usd.jade:93 +msgid "Deposit instantly via selected banks" +msgstr "Deposito istantaneo tramite le banche selezionate" + +#: src/jade/tabs/usd.jade:95 +msgid "Deposit cash at Bank of America branches (3 business days)" +msgstr "Deposito in contanti presso una filiale Bank of America (3 giorni lavorativi)" + +#: src/jade/tabs/usd.jade:97 +msgid "Deposit via online bank transfer (3 business days)" +msgstr "Deposito tramite bonifico bancario online (3 giorni lavorativi)" + +#: src/jade/tabs/usd.jade:103 +msgid "Directly to your bank account (3-4 business days)" +msgstr "Direttamente sul tuo conto bancario (3-4 giorni lavorativi)" + +#: src/jade/tabs/usd.jade:105 +msgid "Directly to your PayPal account (several minutes)" +msgstr "Direttamente sul tuo conto PayPal (alcuni minuti)" + +#: src/jade/tabs/widgets/assetallocation.jade:3 +msgid "Asset Allocation" +msgstr "Posizione Patrimoniale" + +#: src/jade/tabs/widgets/balances.jade:3 +msgid "Balances" +msgstr "Saldi" + +#: src/jade/tabs/widgets/balances.jade:12 +msgid "Balance
{{ account.Balance | rpamount }} XRP" +msgstr "Saldo
{{ account.Balance | rpamount }} XRP" + +#: src/jade/tabs/widgets/balances.jade:16 +msgid "Reserve" +msgstr "Riserva" + +#: src/jade/tabs/widgets/balances.jade:18 +msgid "Reserve amount" +msgstr "Ammontare della Riserva" + +#: src/jade/tabs/widgets/balances.jade:18 +msgid "" +"Minimum amount of XRP required to fund your account. You cannot spend the " +"reserve." +msgstr "Importo minimo di XRP richiesti per finanziare il tuo account. Non puoi spendere la riserva." + +#: src/jade/tabs/widgets/balances.jade:20 +msgid "Reserve amount
{{ account.reserve | rpamount }} XRP" +msgstr "Importo della Riserva
{{ account.reserve | rpamount }} XRP" + +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Available amount" +msgstr "Importo disponibile" + +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Total amount of XRP in your account minus the reserve amount." +msgstr "Importo totale di XRP nel tuo account meno la riserva." + +#: src/jade/tabs/widgets/balances.jade:28 +msgid "Available amount
{{ account.max_spend | rpamount }} XRP" +msgstr "Importo disponibile
{{ account.max_spend | rpamount }} XRP" + +#: src/jade/tabs/widgets/balances.jade:35 +msgid "" +"Balance
{{ entry.total | rpamount:{precision: 30, hard_precision: true} " +"}} {{ entry.total | rpcurrency }}" +msgstr "Saldo
{{ entry.total | rpamount:{precision: 30, hard_precision: true} }} {{ entry.total | rpcurrency }}" + +#: src/jade/tabs/widgets/balances.jade:43 +msgid "" +"Balance
{{ component | rpamount:{precision: 30, rel_min_precision: -2, " +"hard_precision: true} }} {{ entry.total | rpcurrency }}" +msgstr "Saldo
{{ component | rpamount:{precision: 30, rel_min_precision: -2, hard_precision: true} }} {{ entry.total | rpcurrency }}" + +#: src/jade/tabs/widgets/markets.jade:3 +msgid "Markets" +msgstr "Mercati" + +#: src/jade/tabs/widgets/networth.jade:3 +msgid "Net Worth" +msgstr "Patrimonio Netto" + +#: src/jade/tabs/widgets/networth.jade:8 +msgid "{{1:{{1:In}}}}{{2}}" +msgstr "{{1:{{1:In}}}}{{2}}" + +#: src/jade/tabs/widgets/networth.jade:14 +msgid "Estimated from latest trade price" +msgstr "Stima in base all'ultimo prezzo di mercato" + +#: src/jade/tabs/widgets/networth.jade:23 +msgid "(excluding negative balances)" +msgstr "(escludendo saldi negativi)" + +#: src/jade/tabs/widgets/orders.jade:3 +msgid "My Orders" +msgstr "I Miei Ordini" + +#: src/jade/tabs/widgets/orders.jade:68 +msgid "trade currencies" +msgstr "scambia valute" #: src/jade/tabs/xrp.jade:19 msgid "Ripple name: {{1}}{{2}}{{3}}" @@ -2705,7 +3667,3 @@ msgid "" "full Ripple address, and while we are working to transition to Ripple names," " some gateways may still ask for your full address." msgstr "I nomi Ripple sono una nuova caratteristica di Ripple! Usa il tuo nome Ripple (~{{userCredentials.username}}) per ricevere denaro. Puoi ancora usare il tuo vecchio indirizzo Ripple e, mentre stiamo lavorando per migrare definitivamente ai nomi Ripple, alcuni gateways potrebbero ancora richiedertelo." - -#: src/jade/tabs/xrp.jade:31 -msgid "Ripple address {{1}}" -msgstr "Indirizzo Ripple {{1}}" diff --git a/l10n/ja/messages.po b/l10n/ja/messages.po index 7a4560e1f..80602d2f8 100644 --- a/l10n/ja/messages.po +++ b/l10n/ja/messages.po @@ -1,13 +1,14 @@ # Generated by grunt-jade-l10n-extractor # Translators: # niconico , 2014 -# hideo suguri , 2014 +# hideo suguri , 2014-2015 # jennifermaya , 2014 # びりある , 2014 +# Yuuki Uchida , 2015 msgid "" msgstr "" "Project-Id-Version: Ripple Trade\n" -"PO-Revision-Date: 2014-10-22 03:09+0000\n" +"PO-Revision-Date: 2015-05-05 17:43+0000\n" "Last-Translator: hideo suguri \n" "Language-Team: Japanese (http://www.transifex.com/projects/p/ripple-trade/language/ja/)\n" "MIME-Version: 1.0\n" @@ -16,47 +17,49 @@ msgstr "" "Language: ja\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: src/jade/client/index.jade:5 src/jade/client/navbar.jade:112 -#: src/jade/tabs/trust.jade:86 src/jade/tabs/trust.jade:228 +#: src/jade/client/index.jade:5 src/jade/client/navbar.jade:117 +#: src/jade/tabs/trust.jade:59 src/jade/tabs/trust.jade:168 msgid "Balance" msgstr "残高" -#: src/jade/client/index.jade:7 src/jade/client/navbar.jade:114 +#: src/jade/client/index.jade:7 src/jade/client/navbar.jade:119 msgid "History" msgstr "入出金明細" -#: src/jade/client/index.jade:8 src/jade/client/navbar.jade:116 -#: src/jade/tabs/contacts.jade:5 +#: src/jade/client/index.jade:8 src/jade/client/navbar.jade:121 msgid "Contacts" msgstr "相手先" -#: src/jade/client/index.jade:12 src/jade/client/navbar.jade:13 -#: src/jade/tabs/contacts.jade:73 +#: src/jade/client/index.jade:12 src/jade/client/navbar.jade:21 +#: src/jade/tabs/contacts.jade:65 msgid "Send" msgstr "送金" -#: src/jade/client/index.jade:16 src/jade/client/navbar.jade:123 +#: src/jade/client/index.jade:16 msgid "Convert" msgstr "両替" -#: src/jade/client/index.jade:18 src/jade/client/navbar.jade:121 +#: src/jade/client/index.jade:18 src/jade/client/navbar.jade:23 +#: src/jade/client/navbar.jade:25 src/jade/tabs/settings/navbar.jade:3 msgid "Trade" msgstr "取引" -#: src/jade/client/index.jade:22 src/jade/client/navbar.jade:19 -#: src/jade/client/navbar.jade:128 +#: src/jade/client/index.jade:22 src/jade/client/navbar.jade:27 +#: src/jade/client/navbar.jade:133 msgid "Fund" msgstr "資金" -#: src/jade/client/index.jade:24 src/jade/tabs/fund/menu.jade:5 +#: src/jade/client/index.jade:24 src/jade/tabs/fund/menu.jade:29 msgid "Gateways" msgstr "ゲートウェイ" -#: src/jade/client/index.jade:29 src/jade/tabs/su.jade:12 +#: src/jade/client/index.jade:29 src/jade/client/navbar.jade:107 +#: src/jade/tabs/su.jade:12 msgid "Account" msgstr "アカウント" -#: src/jade/client/index.jade:32 src/jade/tabs/advanced.jade:9 +#: src/jade/client/index.jade:32 src/jade/client/navbar.jade:109 +#: src/jade/tabs/advanced.jade:19 msgid "Settings" msgstr "設定" @@ -64,198 +67,437 @@ msgstr "設定" msgid "Logout" msgstr "ログアウト" -#: src/jade/client/index.jade:41 -msgid "Welcome to {{productName}}, a global value exchange" -msgstr "ようこそ{{productName}}さん、グローバルな価値の取引所へ" - -#: src/jade/client/index.jade:51 +#: src/jade/client/index.jade:61 +msgid "Why Use Ripple Trade?" +msgstr "なぜRipple Tradeを使用しますか?" + +#: src/jade/client/index.jade:66 +msgid "Home of XRP -" +msgstr "XRPの拠点" + +#: src/jade/client/index.jade:67 +msgid "the best place to buy and sell XRP" +msgstr "XRPを売買する最良の場所" + +#: src/jade/client/index.jade:71 +msgid "Free -" +msgstr "無料-" + +#: src/jade/client/index.jade:72 +msgid "no fees to sign up and use Ripple Trade" +msgstr "無料で登録し、Ripple Tradeを使えます" + +#: src/jade/client/index.jade:76 +msgid "No Middlemen -" +msgstr "ブローカー無し" + +#: src/jade/client/index.jade:77 +msgid "" +"When you submit orders, Ripple automatically finds the best available match," +" without a clearinghouse or broker." +msgstr "あなたが注文を出すと、Rippleはクリアリングハウスやブローカーなしで最も良いマッチングを自動的に見つけます。" + +#: src/jade/client/index.jade:81 +msgid "Deposit, trade and withdraw money on Ripple via gateways." +msgstr "ゲートウェイを通してRippleに預金を預けて、トレードして、引出しをしてください。" + +#: src/jade/client/index.jade:89 +msgid "Featured Ripple Gateways" +msgstr "注目のリップルゲートウェイ" + +#: src/jade/client/index.jade:91 +msgid "Ripple's growing gateway network." +msgstr "Rippleの成長するゲートウェイネットワーク" + +#: src/jade/client/index.jade:93 src/jade/client/index.jade:96 +#: src/jade/client/index.jade:99 src/jade/client/index.jade:102 +#: src/jade/client/index.jade:105 src/jade/client/index.jade:108 +#: src/jade/client/index.jade:111 src/jade/client/index.jade:114 +#: src/jade/client/index.jade:117 src/jade/tabs/banner/unfunded.jade:6 +#: src/jade/tabs/brl.jade:53 src/jade/tabs/brl.jade:57 +#: src/jade/tabs/brl.jade:93 src/jade/tabs/btc.jade:46 +#: src/jade/tabs/eur.jade:50 src/jade/tabs/eur.jade:54 +#: src/jade/tabs/eur.jade:86 src/jade/tabs/eur.jade:93 +#: src/jade/tabs/gold.jade:51 src/jade/tabs/jpy.jade:55 +#: src/jade/tabs/jpy.jade:91 src/jade/tabs/jpy.jade:97 +#: src/jade/tabs/mxn.jade:53 src/jade/tabs/send.jade:63 +#: src/jade/tabs/trade.jade:320 src/jade/tabs/usd.jade:51 +#: src/jade/tabs/usd.jade:83 src/jade/tabs/usd.jade:90 +#: src/jade/tabs/usd.jade:100 src/jade/tabs/widgets/orders.jade:31 +msgid "{{1}}" +msgstr "{{1}}" + +#: src/jade/client/index.jade:123 msgid "Version: {{version}}" msgstr "バージョン: {{version}}" -#: src/jade/client/index.jade:55 -msgid "End-User License Agreement" -msgstr "エンドユーザ・ライセンス契約" +#: src/jade/client/index.jade:128 +msgid "Terms of Use" +msgstr "利用規約" -#: src/jade/client/index.jade:56 +#: src/jade/client/index.jade:129 +msgid "Privacy Policy" +msgstr "プライバシーに関する方針" + +#: src/jade/client/index.jade:130 msgid "Support" msgstr "サポート" -#: src/jade/client/index.jade:57 +#: src/jade/client/index.jade:131 msgid "Bug reports" msgstr "エラー報告" -#: src/jade/client/index.jade:64 +#: src/jade/client/index.jade:138 msgid "more..." msgstr "もっと..." -#: src/jade/client/index.jade:68 +#: src/jade/client/index.jade:142 msgid "Select a language" msgstr "言語環境を設定" -#: src/jade/client/navbar.jade:11 +#: src/jade/client/navbar.jade:2 +msgid "" +"You are viewing an account in {{1}} mode. While in this mode, you can view " +"publicly available data, but you cannot initiate any transactions. Click " +"{{2}} to exit." +msgstr "アカウントを {{1}} モードで見ています。 このモードの間、一般公開されているデータを見ることができます、しかし、いかなる取引も始めることができません。 退去するために{{2}}をクリックしてください。" + +#: src/jade/client/navbar.jade:8 +msgid "" +"Warning: this account has over 200 trust lines, so the displayed account " +"balance may not be accurate." +msgstr "警告:このアカウントは200以上のトラストラインを持っているので、表示された口座の残高が正確でない場合があります。" + +#: src/jade/client/navbar.jade:19 msgid "Overview" msgstr "アカウント情報" -#: src/jade/client/navbar.jade:15 src/jade/client/navbar.jade:17 -#: src/jade/tabs/exchange.jade:43 -msgid "Exchange" -msgstr "両替" - -#: src/jade/client/navbar.jade:39 src/jade/tabs/account/public.jade:45 -#: src/jade/tabs/apps.jade:8 src/jade/tabs/balance.jade:8 -#: src/jade/tabs/balance.jade:27 src/jade/tabs/btc.jade:60 -#: src/jade/tabs/exchange.jade:9 src/jade/tabs/history.jade:207 -#: src/jade/tabs/kyc.jade:38 src/jade/tabs/recover.jade:21 -#: src/jade/tabs/security.jade:134 src/jade/tabs/su.jade:8 -#: src/jade/tabs/trust.jade:9 src/jade/tabs/trust.jade:175 +#: src/jade/client/navbar.jade:49 src/jade/tabs/account/private.jade:7 +#: src/jade/tabs/account/private.jade:16 src/jade/tabs/account/public.jade:45 +#: src/jade/tabs/apps.jade:8 src/jade/tabs/btc.jade:72 +#: src/jade/tabs/exchange.jade:9 src/jade/tabs/kyc.jade:45 +#: src/jade/tabs/recover.jade:26 src/jade/tabs/security.jade:147 +#: src/jade/tabs/su.jade:8 src/jade/tabs/trust.jade:9 +#: src/jade/tabs/trust.jade:139 msgid "Loading..." msgstr "ロード中..." -#: src/jade/client/navbar.jade:40 +#: src/jade/client/navbar.jade:50 msgid "There are no recent notifications." msgstr "新着通知はありません。" -#: src/jade/client/navbar.jade:44 +#: src/jade/client/navbar.jade:54 msgid "You sent {{1}} to {{2}}" msgstr "{{2}} さんに {{1}} を送金しました。" -#: src/jade/client/navbar.jade:50 +#: src/jade/client/navbar.jade:60 msgid "{{1}} sent you {{2}}" msgstr "{{1}} が {{2}} を送信しました。" -#: src/jade/client/navbar.jade:58 +#: src/jade/client/navbar.jade:68 msgid "{{entry.transaction.counterparty | rpcontactname}} now trusts you for" msgstr "{{entry.transaction.counterparty | rpcontactname}} は以下の金額のため、信用を与えました。" -#: src/jade/client/navbar.jade:64 src/jade/notification/account.jade:25 -#: src/jade/tabs/history.jade:133 src/jade/tabs/history/effects.jade:63 +#: src/jade/client/navbar.jade:74 src/jade/notification/account.jade:25 +#: src/jade/tabs/history.jade:115 src/jade/tabs/history/effects.jade:63 msgid "You have now connected to the gateway {{1}}{{2: for }}{{3}}." msgstr "あなたは今、ゲートウェイ {{1}}{{2: for }}{{3}}に接続しました" -#: src/jade/client/navbar.jade:75 +#: src/jade/client/navbar.jade:85 msgid "You cancelled an order accepting {{1}} for {{2}}" msgstr "{{1}} を {{2}} で受け取る注文をキャンセルしました。" -#: src/jade/client/navbar.jade:82 src/jade/tabs/history.jade:156 +#: src/jade/client/navbar.jade:92 src/jade/tabs/history.jade:138 msgid "Account details have been changed" msgstr "アカウントの詳細が更新されました" -#: src/jade/client/navbar.jade:85 src/jade/tabs/history.jade:159 -#: src/jade/tabs/trust.jade:231 +#: src/jade/client/navbar.jade:95 src/jade/tabs/history.jade:141 +#: src/jade/tabs/trust.jade:171 msgid "Rippling" msgstr "Rippling" -#: src/jade/client/navbar.jade:87 src/jade/tabs/history.jade:161 +#: src/jade/client/navbar.jade:97 src/jade/tabs/history.jade:143 msgid "Failed transaction" msgstr "取引に失敗しました" -#: src/jade/client/navbar.jade:93 +#: src/jade/client/navbar.jade:103 msgid "View Full History" msgstr "全履歴を見る" -#: src/jade/client/navbar.jade:97 -msgid "{{1}} Account" -msgstr "{{1}} アカウント" +#: src/jade/client/navbar.jade:111 +msgid "Log Out" +msgstr "ログアウト" -#: src/jade/client/navbar.jade:101 -msgid "{{1}} Settings" -msgstr "{{1}}設定" +#: src/jade/client/navbar.jade:126 +msgid "Simple" +msgstr "シンプル" -#: src/jade/client/navbar.jade:105 -msgid "{{1}} Log Out" -msgstr "{{1}} ログアウト" +#: src/jade/client/navbar.jade:128 src/jade/tabs/settings/navbar.jade:4 +msgid "Advanced" +msgstr "詳細" -#: src/jade/client/navbar.jade:130 src/jade/tabs/balance.jade:110 +#: src/jade/client/navbar.jade:135 msgid "Withdraw" msgstr "引き出す" -#: src/jade/client/navbar.jade:132 +#: src/jade/client/navbar.jade:137 msgid "" "Your account was successfully recovered and encrypted with the new password " "you provided!" msgstr "新しいパスワードを使って、アカウントの復元と暗号化に成功しました!" -#: src/jade/client/navbar.jade:133 +#: src/jade/client/navbar.jade:138 msgid "dismiss" msgstr "閉じる" -#: src/jade/directives/transactionerror.jade:5 +#: src/jade/directives/addresspopover.jade:3 +msgid "Ripple address {{ identity }}" +msgstr "Ripple アドレス {{ identity }}" + +#: src/jade/directives/addresspopover.jade:8 src/jade/tabs/tx.jade:13 +msgid "Show in graph" +msgstr "グラフを表示" + +#: src/jade/directives/transactionerror.jade:8 +msgid "Connecting gateway to your account..." +msgstr "あなたのアカウントにゲートウェイを接続する..." + +#: src/jade/directives/transactionerror.jade:10 +msgid "Gateway connected." +msgstr "ゲートウェイを接続しました" + +#: src/jade/directives/transactionerror.jade:12 +msgid "There was a problem connecting to the gateway. Please try again later." +msgstr "ゲートウェイへの接続の際に問題が発生しました。後ほど再度お試しください。" + +#: src/jade/directives/transactionerror.jade:14 +#: src/jade/directives/transactionerror.jade:73 +#: src/jade/directives/transactionerror.jade:158 +#: src/jade/messages/sendconvert/confirmation.jade:13 +msgid "Error code: {{engine_result}} - {{engine_result_message}}" +msgstr "エラーコード: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:19 +#: src/jade/directives/transactionerror.jade:23 +#: src/jade/directives/transactionerror.jade:28 +#: src/jade/directives/transactionerror.jade:33 +#: src/jade/directives/transactionerror.jade:45 +#: src/jade/directives/transactionerror.jade:52 +#: src/jade/directives/transactionerror.jade:156 +#: src/jade/directives/transactionerror.jade:163 +#: src/jade/directives/transactionerror.jade:167 +#: src/jade/directives/transactionerror.jade:172 +#: src/jade/directives/transactionerror.jade:177 +#: src/jade/directives/transactionerror.jade:186 +#: src/jade/directives/transactionerror.jade:193 +msgid "Request failed" +msgstr "リクエストは失敗しました。" + +#: src/jade/directives/transactionerror.jade:21 +#: src/jade/directives/transactionerror.jade:165 +msgid "Your request timed out, please try again." +msgstr "あなたのリクエストはタイムアウトしました、どうか再び試みてください。" + +#: src/jade/directives/transactionerror.jade:25 +#: src/jade/directives/transactionerror.jade:84 +#: src/jade/directives/transactionerror.jade:169 +#: src/jade/messages/sendconvert/confirmation.jade:18 +msgid "Error code: Destination tag needed [tefDST_TAG_NEEDED]." +msgstr "エラーコード:相手先が必要です[tefDST_TAG_NEEDED]" + +#: src/jade/directives/transactionerror.jade:30 +#: src/jade/directives/transactionerror.jade:174 +msgid "" +"Error code: This request failed because it exceeded the maximum network fee," +" please try again later [telINSUF_FEE_P]." +msgstr "エラーコード: ネットワーク手数料の最大値を超過しているため、このリクエストは失敗しました。後ほど再度お試しください[telINSUF_FEE_P]。" + +#: src/jade/directives/transactionerror.jade:35 +msgid "" +"Error code: You have no gateway connected in this currency [terNO_LINE]." +msgstr "エラーコード:この通貨に対してゲートウェイが接続されていません [terNO_LINE]。" + +#: src/jade/directives/transactionerror.jade:37 +msgid "" +"Error code: Insufficient reserve to connect gateway [tecINSUF_RESERVE_LINE]." +msgstr "エラーコード:ゲートウェイに接続するために必要な準備金が不足しています[tecINSUF_RESERVE_LINE]。" + +#: src/jade/directives/transactionerror.jade:39 +msgid "" +"Error code: You have an insufficient reserve amount to connect a gateway " +"[tecNO_LINE_INSUF_RESERVE]. {{1}}" +msgstr "エラーコード:ゲートウェイに接続するために必要な準備金が不足しています [tecNO_LINE_INSUF_RESERVE]。 {{1}}" + +#: src/jade/directives/transactionerror.jade:41 src/jade/tabs/fund.jade:34 +#: src/jade/tabs/send.jade:110 src/jade/tabs/trust.jade:74 +msgid "More information" +msgstr "詳細" + +#: src/jade/directives/transactionerror.jade:42 +#: src/jade/directives/transactionerror.jade:98 +#: src/jade/directives/transactionerror.jade:135 +#: src/jade/directives/transactionerror.jade:183 +#: src/jade/messages/sendconvert/confirmation.jade:27 +msgid "Error: {{engine_result_message}}" +msgstr "エラー:{{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:47 +#: src/jade/directives/transactionerror.jade:103 +#: src/jade/directives/transactionerror.jade:188 +#: src/jade/messages/sendconvert/confirmation.jade:32 +msgid "Error code: You have no trust line in this currency [terNO_LINE]." +msgstr "エラーコード:あなたはこの通貨にトラストラインを持っていません [terNO_LINE]" + +#: src/jade/directives/transactionerror.jade:49 +#: src/jade/directives/transactionerror.jade:190 +msgid "Your request failed: {{engine_result}} - {{engine_result_message}}" +msgstr "支払いは失敗した::{{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:54 +#: src/jade/directives/transactionerror.jade:195 +msgid "Error code: request could not be submitted [tejLost]." +msgstr "エラーコード:リクエストは出すことができませんでした [tejLost]" + +#: src/jade/directives/transactionerror.jade:56 +#: src/jade/directives/transactionerror.jade:197 src/jade/tabs/trust.jade:36 +msgid "" +"This request failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "現在のネットワークフィーがあなたのアカウント設定限界値より高いので、このリクエストは失敗しました。 あなたの最大ネットワークフィーを高度設定の中で調整するか、後で試してください。
エラーコード: ネットワークフィー超過 [tejMaxFeeExceeded]." + +#: src/jade/directives/transactionerror.jade:59 +#: src/jade/directives/transactionerror.jade:200 +msgid "" +"Your request could not be submitted: {{engine_result}} - " +"{{engine_result_message}}" +msgstr "リクエストは送信できませんでした。: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:67 msgid "Payment pending" msgstr "支払いは保留中です。" -#: src/jade/directives/transactionerror.jade:7 +#: src/jade/directives/transactionerror.jade:69 msgid "Payment successful" msgstr "支払は成功しました。" -#: src/jade/directives/transactionerror.jade:9 -#: src/jade/directives/transactionerror.jade:16 -#: src/jade/directives/transactionerror.jade:20 -#: src/jade/directives/transactionerror.jade:25 -#: src/jade/directives/transactionerror.jade:30 -#: src/jade/directives/transactionerror.jade:39 -#: src/jade/directives/transactionerror.jade:46 +#: src/jade/directives/transactionerror.jade:71 +#: src/jade/directives/transactionerror.jade:82 +#: src/jade/directives/transactionerror.jade:87 +#: src/jade/directives/transactionerror.jade:92 +#: src/jade/directives/transactionerror.jade:101 +#: src/jade/directives/transactionerror.jade:108 msgid "Payment failed" msgstr "支払いは失敗しました。" -#: src/jade/directives/transactionerror.jade:11 -#: src/jade/messages/sendconvert/confirmation.jade:13 -msgid "Error code: {{engine_result}} - {{engine_result_message}}" -msgstr "エラーコード: {{engine_result}} - {{engine_result_message}}" +#: src/jade/directives/transactionerror.jade:78 +msgid "Payment failed [tefMAX_LEDGER]." +msgstr "支払いは失敗しました [tefMAX_LEDGER]" -#: src/jade/directives/transactionerror.jade:18 +#: src/jade/directives/transactionerror.jade:80 msgid "Your payment timed out, please try again." msgstr "あなたの支払いはタイムアウトしました、どうか再び試みてください。" -#: src/jade/directives/transactionerror.jade:22 -#: src/jade/messages/sendconvert/confirmation.jade:18 -msgid "Error code: Destination tag needed [tefDST_TAG_NEEDED]." -msgstr "エラーコード:相手先が必要です[tefDST_TAG_NEEDED]" - -#: src/jade/directives/transactionerror.jade:27 +#: src/jade/directives/transactionerror.jade:89 #: src/jade/messages/sendconvert/confirmation.jade:39 msgid "" "Error code: This transaction failed because it exceeded the maximum network " "fee, please try again later [telINSUF_FEE_P]." msgstr "エラーコード: ネットワーク手数料の最大値を超過しているため、このトランザクションは失敗しました。後ほど再度お試しください[telINSUF_FEE_P]。" -#: src/jade/directives/transactionerror.jade:32 +#: src/jade/directives/transactionerror.jade:94 +#: src/jade/directives/transactionerror.jade:179 msgid "Error code: No destination [tecNO_DST]." msgstr "エラーコード:宛先がありません[tecNO_DST]." -#: src/jade/directives/transactionerror.jade:34 +#: src/jade/directives/transactionerror.jade:96 +#: src/jade/directives/transactionerror.jade:181 #: src/jade/messages/sendconvert/confirmation.jade:25 msgid "" "Error code: Insufficient XRP sent to destination [tecNO_DST_INSUF_XRP]." msgstr "エラーコード: 宛先に送金するために必要なXRPが不足しています [tecNO_DST_INSUF_XRP]。" -#: src/jade/directives/transactionerror.jade:36 -#: src/jade/messages/sendconvert/confirmation.jade:27 -msgid "Error: {{engine_result_message}}" -msgstr "エラー:{{engine_result_message}}" - -#: src/jade/directives/transactionerror.jade:41 -#: src/jade/messages/sendconvert/confirmation.jade:32 -msgid "Error code: You have no trust line in this currency [terNO_LINE]." -msgstr "エラーコード:あなたはこの通貨にトラストラインを持っていません [terNO_LINE]" - -#: src/jade/directives/transactionerror.jade:43 +#: src/jade/directives/transactionerror.jade:105 msgid "Your payment failed: {{engine_result}} - {{engine_result_message}}" msgstr "支払いは失敗した:: {{engine_result}} - {{engine_result_message}}" -#: src/jade/directives/transactionerror.jade:48 +#: src/jade/directives/transactionerror.jade:110 msgid "Error code: Transaction could not be submitted [tejLost]." msgstr "エラーコード:取引処理は出すことができませんでした [tejLost]" -#: src/jade/directives/transactionerror.jade:50 -msgid "Error code: Network fee exceeded [tejMaxFeeExceeded]." -msgstr "エラーコード:ネットワークフィーが超過しました [tejMaxFeeExceeded]" +#: src/jade/directives/transactionerror.jade:112 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "現在のネットワークフィーがあなたのアカウント設定限界値より高かったので、この取引は失敗しました。 あなたの最大ネットワークフィーを高度設定の中で調整するか、後で試してください。
エラーコード: ネットワークフィー超過 [tejMaxFeeExceeded]." -#: src/jade/directives/transactionerror.jade:52 +#: src/jade/directives/transactionerror.jade:115 msgid "" "Your payment could not be submitted: {{engine_result}} - " "{{engine_result_message}}" msgstr "支払は送信できませんでした。: {{engine_result}} - {{engine_result_message}}" +#: src/jade/directives/transactionerror.jade:121 +msgid "Request is malformed." +msgstr "要求は不正です。" + +#: src/jade/directives/transactionerror.jade:122 +msgid "" +"Your request is invalid, reason: {{engine_result_message}} - " +"{{engine_result_message}}" +msgstr "リクエストは無効です、理由: {{engine_result_message}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:125 +#: src/jade/directives/transactionerror.jade:142 +msgid "Transaction failed." +msgstr "取引は失敗しました。" + +#: src/jade/directives/transactionerror.jade:127 +msgid "You do not have enough funds to create this order [tecUNFUNDED_ORDER]." +msgstr "注文するのに十分な資金がありません。[tecUNFUNDED_ORDER]" + +#: src/jade/directives/transactionerror.jade:129 +msgid "" +"Insufficient reserve amount to submit an order [tecINSUF_RESERVE_OFFER]." +msgstr "注文を出すのに準備金が不足しています[tecINSUF_RESERVE_OFFER]." + +#: src/jade/directives/transactionerror.jade:131 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]. {{1}}" +msgstr "現在のネットワークフィーがあなたのアカウント設定限界値より高かったので、この取引は失敗しました。 あなたの最大ネットワークフィーを高度設定の中で調整するか、後でもう一度試してください。
エラーコード: ネットワークフィー超過 [tejMaxFeeExceeded].{{1}}" + +#: src/jade/directives/transactionerror.jade:134 +msgid "More information." +msgstr "詳細" + +#: src/jade/directives/transactionerror.jade:138 +msgid "Trade failed." +msgstr "取引は失敗しました。" + +#: src/jade/directives/transactionerror.jade:140 +msgid "Trade failed, reason: {{engine_result_message}}" +msgstr "取引に失敗しました、理由: {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:144 +msgid "" +"The particular server you sent the transaction to was too busy to forward or" +" process your transaction at the fee you included in it [telINSUF_FEE_P]." +msgstr "取引処理を送信したサーバーは処理に追われていた為、処理することができませんでした。 [telINSUF_FEE_P]" + +#: src/jade/directives/transactionerror.jade:152 +msgid "Request pending" +msgstr "リクエストは保留中です。" + +#: src/jade/directives/transactionerror.jade:154 +msgid "Request successful" +msgstr "リクエストは成功しました。" + #: src/jade/messages/sendconvert/confirmation.jade:4 msgid "Transaction pending." msgstr "保留中の取引" @@ -277,8 +519,11 @@ msgstr "取引は成功しました。" msgid "Transaction failed" msgstr "取引は失敗しました。" -#: src/jade/messages/sendconvert/confirmation.jade:9 -#: src/jade/tabs/trust.jade:58 src/jade/tabs/trust.jade:70 +#: src/jade/messages/sendconvert/confirmation.jade:9 src/jade/tabs/brl.jade:25 +#: src/jade/tabs/btc.jade:22 src/jade/tabs/eur.jade:25 +#: src/jade/tabs/gold.jade:25 src/jade/tabs/jpy.jade:25 +#: src/jade/tabs/mxn.jade:25 src/jade/tabs/trust.jade:43 +#: src/jade/tabs/usd.jade:25 msgid "Please try again later." msgstr "後で再実行してください。" @@ -319,6 +564,7 @@ msgid "Account unlock failed" msgstr "アカウントのアンロックに失敗しました。" #: src/jade/messages/sendconvert/localerror.jade:18 +#: src/jade/tabs/trust.jade:40 msgid "Your account could not be unlocked. Please try again later." msgstr "アカウントをアンロックできませんでした。しばらく待ってから再実行してください。" @@ -334,7 +580,7 @@ msgid "" "executed already." msgstr "再実行する前に、取引処理が既に実行されていないかを確認してください。" -#: src/jade/messages/sendconvert/waiting.jade:3 +#: src/jade/messages/sendconvert/waiting.jade:5 msgid "Sending transaction to the Ripple network" msgstr "取引情報をRipple Networkに送信する。" @@ -350,13 +596,49 @@ msgstr "{{tx.counterparty | rpcontactname}}は以下を送金しました。" msgid "{{tx.counterparty | rpcontactname}} now trusts you for" msgstr "{{tx.counterparty | rpcontactname}} は以下の金額のため、信用を与えました。" +#: src/jade/popup/modifyOrderError.jade:2 +msgid "Modify Order Error" +msgstr "注文の誤りを修正してください" + +#: src/jade/popup/modifyOrderError.jade:4 +msgid "Sorry, your order could not be modified." +msgstr "申しわけございません、あなたのオーダーを変更できませんでした。" + +#: src/jade/popup/modifyOrderError.jade:5 +msgid "" +"Your original order was cancelled but the modified order was not placed. " +"
" +msgstr "あなたの当初の注文は取り消され、変更された注文はされませんでした。
" + +#: src/jade/popup/modifyOrderError.jade:6 +msgid "" +"The quantity of your order changed by {{order.qtyChangeAfterCancel | " +"rpamount}} before the order could be modified.

" +msgstr "注文の前で{{order.qtyChangeAfterCancel | rpamount}}によって変更されたあなたの注文金額は修正されました。

" + +#: src/jade/popup/modifyOrderError.jade:7 +msgid "" +"To safeguard against the possibility of overfills a new order has not been " +"placed.
" +msgstr "これは新しい注文で溢れる可能性に対するセーフガードであるため、注文されなかった
" + +#: src/jade/popup/modifyOrderError.jade:8 +msgid "" +"Please check your balance and history before placing the new order manually." +"
" +msgstr "どうぞ、手動で新しい注文をする前に、あなたのバランスと履歴をチェックしてください。" + +#: src/jade/popup/modifyOrderError.jade:10 src/jade/popup/unlock.jade:17 +msgid "Close" +msgstr "閉じる" + #: src/jade/popup/unlock.jade:2 msgid "Unlock account" msgstr "アカウントのロックを解除" -#: src/jade/popup/unlock.jade:5 src/jade/tabs/desktop/register.jade:28 -#: src/jade/tabs/login/form.jade:7 src/jade/tabs/recover.jade:33 -#: src/jade/tabs/register.jade:42 src/jade/tabs/security.jade:10 +#: src/jade/popup/unlock.jade:5 src/jade/tabs/login/form.jade:8 +#: src/jade/tabs/recover.jade:38 src/jade/tabs/register.jade:58 +#: src/jade/tabs/security.jade:12 msgid "Password" msgstr "パスワード" @@ -364,7 +646,7 @@ msgstr "パスワード" msgid "Please enter your password to show your secret key." msgstr "シークレット・キーを表示するには、パスワードを入力してください。" -#: src/jade/popup/unlock.jade:9 src/jade/tabs/send.jade:195 +#: src/jade/popup/unlock.jade:9 src/jade/tabs/send.jade:205 msgid "Please enter your password to confirm this transaction." msgstr "取引を確認するには、パスワードを入力してください。" @@ -372,52 +654,146 @@ msgstr "取引を確認するには、パスワードを入力してください msgid "This password is incorrect, please try again." msgstr "パスワードに誤りがあります。再実行してください。" -#: src/jade/popup/unlock.jade:11 +#: src/jade/popup/unlock.jade:13 msgid "Confirming password" msgstr "パスワードを確認中" -#: src/jade/popup/unlock.jade:14 src/jade/tabs/account/public.jade:44 -#: src/jade/tabs/security.jade:133 +#: src/jade/popup/unlock.jade:16 src/jade/tabs/account/public.jade:44 +#: src/jade/tabs/security.jade:146 msgid "Submit" msgstr "送信" -#: src/jade/popup/unlock.jade:15 -msgid "Close" -msgstr "閉じる" - #: src/jade/tabs/2fa/form.jade:3 msgid "Country Code" msgstr "国コード" -#: src/jade/tabs/2fa/form.jade:6 src/jade/tabs/kyc.jade:146 +#: src/jade/tabs/2fa/form.jade:6 src/jade/tabs/kyc.jade:162 msgid "Phone Number" msgstr "電話番号" +#: src/jade/tabs/_usd.jade:6 src/jade/tabs/apps.jade:5 +#: src/jade/tabs/balance.jade:5 src/jade/tabs/brl.jade:6 +#: src/jade/tabs/btc.jade:9 src/jade/tabs/eur.jade:6 +#: src/jade/tabs/exchange.jade:6 src/jade/tabs/fund.jade:6 +#: src/jade/tabs/gold.jade:6 src/jade/tabs/history.jade:6 +#: src/jade/tabs/jpy.jade:6 src/jade/tabs/kyc.jade:6 src/jade/tabs/mxn.jade:6 +#: src/jade/tabs/send.jade:6 src/jade/tabs/su.jade:5 +#: src/jade/tabs/trade.jade:7 src/jade/tabs/trust.jade:6 +#: src/jade/tabs/usd.jade:6 src/jade/tabs/withdraw.jade:6 +#: src/jade/tabs/xrp.jade:6 +msgid "You have to be online to see this screen" +msgstr "この画面を見るにはオンラインでなければなりません。" + +#: src/jade/tabs/_usd.jade:17 +msgid "USD instant deposit" +msgstr "USDインスタント入金" + +#: src/jade/tabs/_usd.jade:19 src/jade/tabs/_usd.jade:21 +msgid "Step 1 (Amount)" +msgstr "Step 1 (金額)" + +#: src/jade/tabs/_usd.jade:22 +msgid "Step 2 (Confirmation)" +msgstr "Step 2 (確認)" + +#: src/jade/tabs/_usd.jade:23 +msgid "Step 3 (Complete deposit)" +msgstr "Step 3 (入金完了)" + +#: src/jade/tabs/_usd.jade:26 +msgid "STEP 1: AMOUNT" +msgstr "STEP 1: 金額" + +#: src/jade/tabs/_usd.jade:28 +msgid "STEP 2: CONFIRMATION" +msgstr "STEP 2: 確認" + +#: src/jade/tabs/_usd.jade:30 +msgid "STEP 3: COMPLETE DEPOSIT" +msgstr "STEP 3:入金完了" + +#: src/jade/tabs/_usd.jade:34 +msgid "" +"Success! You've completed your USD deposit. Your funds should be available " +"within a few minutes." +msgstr "成功! あなたは、USD入金を完了しました。 資金は、2、3分以内に利用できるでしょう。" + +#: src/jade/tabs/_usd.jade:36 +msgid "You cancelled your deposit." +msgstr "あなたは入金をキャンセルしました。" + +#: src/jade/tabs/_usd.jade:38 +msgid "" +"Your deposit failed. Your bank account was not charged. Please contact " +"{{1}}." +msgstr "入金は失敗しました。 あなたの銀行預金口座には請求されていません。どうか{{1}}と連絡を取ってください。" + +#: src/jade/tabs/_usd.jade:49 src/jade/tabs/_usd.jade:91 +#: src/jade/tabs/fund.jade:41 src/jade/tabs/history.jade:172 +#: src/jade/tabs/trust.jade:89 +msgid "Amount" +msgstr "金額" + +#: src/jade/tabs/_usd.jade:59 src/jade/tabs/_usd.jade:62 +msgid "Select your bank" +msgstr "あなたの銀行を選択" + +#: src/jade/tabs/_usd.jade:77 +msgid "" +"Ripple Trade has partnered with SnapSwap to make USD deposits easier. By " +"continuing, you agree to SnapSwap's {{1}}To contact support, email {{2}}." +msgstr "Ripple Tradeは、USDの簡単な入金をするために、SnapSwapとパートナーになりました。この操作を続けると、SnapSwapの{{1}} に合意することになります。サポートに連絡するために {{2}}にメールしてください。" + +#: src/jade/tabs/_usd.jade:93 src/jade/tabs/history.jade:178 +msgid "Fee" +msgstr "手数料" + +#: src/jade/tabs/_usd.jade:95 +msgid "Total" +msgstr "合計" + +#: src/jade/tabs/_usd.jade:98 +msgid "Calculating..." +msgstr "計算中..." + +#: src/jade/tabs/_usd.jade:109 src/jade/tabs/register.jade:126 +#: src/jade/tabs/register.jade:133 +msgid "Back" +msgstr "戻る" + +#: src/jade/tabs/_usd.jade:111 src/jade/tabs/btc.jade:73 +#: src/jade/tabs/exchange.jade:111 src/jade/tabs/send.jade:213 +#: src/jade/tabs/trade.jade:67 src/jade/tabs/trade.jade:77 +#: src/jade/tabs/trade.jade:248 src/jade/tabs/trade.jade:407 +#: src/jade/tabs/trust.jade:140 +msgid "Confirm" +msgstr "確認" + #: src/jade/tabs/account/navbar.jade:2 msgid "Public Information" msgstr "パブリックインフォメーション" -#: src/jade/tabs/account/private.jade:2 +#: src/jade/tabs/account/private.jade:1 msgid "Profile Information" msgstr "プロフィールインフォーメーション" -#: src/jade/tabs/account/private.jade:5 +#: src/jade/tabs/account/private.jade:3 msgid "Identity Information" msgstr "アイデンティティインフォメーション" -#: src/jade/tabs/account/private.jade:8 src/jade/tabs/account/private.jade:19 +#: src/jade/tabs/account/private.jade:8 src/jade/tabs/account/private.jade:17 msgid "Completed" msgstr "作成しました" -#: src/jade/tabs/account/private.jade:11 src/jade/tabs/account/private.jade:22 +#: src/jade/tabs/account/private.jade:9 src/jade/tabs/account/private.jade:18 msgid "Incomplete" msgstr "作成していません" -#: src/jade/tabs/account/private.jade:13 src/jade/tabs/account/private.jade:24 +#: src/jade/tabs/account/private.jade:10 src/jade/tabs/account/private.jade:19 msgid "Complete your profile" -msgstr "プロフィールを作成しました" +msgstr "プロフィールを作成する" -#: src/jade/tabs/account/private.jade:16 +#: src/jade/tabs/account/private.jade:12 msgid "Identity Questions" msgstr "本人確認の質問" @@ -433,15 +809,17 @@ msgstr "Ripple 名の変更に成功しました。" msgid "Account settings" msgstr "アカウント設定" -#: src/jade/tabs/account/public.jade:5 src/jade/tabs/login/form.jade:2 +#: src/jade/tabs/account/public.jade:5 src/jade/tabs/fund/menu.jade:2 +#: src/jade/tabs/login/form.jade:3 msgid "Ripple name" msgstr "Ripple 名" -#: src/jade/tabs/account/public.jade:9 src/jade/tabs/advanced.jade:17 -#: src/jade/tabs/advanced.jade:34 src/jade/tabs/advanced.jade:53 -#: src/jade/tabs/advanced.jade:106 src/jade/tabs/contacts.jade:69 -#: src/jade/tabs/security.jade:107 src/jade/tabs/security.jade:165 -#: src/jade/tabs/trust.jade:219 src/jade/tabs/trust.jade:248 +#: src/jade/tabs/account/public.jade:9 src/jade/tabs/advanced.jade:27 +#: src/jade/tabs/advanced.jade:44 src/jade/tabs/advanced.jade:63 +#: src/jade/tabs/advanced.jade:86 src/jade/tabs/advanced.jade:134 +#: src/jade/tabs/contacts.jade:61 src/jade/tabs/security.jade:120 +#: src/jade/tabs/security.jade:180 src/jade/tabs/trust.jade:191 +#: src/jade/tabs/trust.jade:193 msgid "edit" msgstr "編集" @@ -449,23 +827,24 @@ msgstr "編集" msgid "New Ripple name" msgstr "新規 Ripple 名" -#: src/jade/tabs/account/public.jade:17 src/jade/tabs/balance.jade:60 +#: src/jade/tabs/account/public.jade:17 src/jade/tabs/register.jade:35 +#: src/jade/tabs/widgets/balances.jade:24 msgid "Available" msgstr "利用可能" -#: src/jade/tabs/account/public.jade:20 src/jade/tabs/register.jade:30 +#: src/jade/tabs/account/public.jade:20 src/jade/tabs/register.jade:39 msgid "Already taken!" msgstr "既に使われています!" -#: src/jade/tabs/account/public.jade:21 src/jade/tabs/register.jade:31 +#: src/jade/tabs/account/public.jade:21 msgid "Reserved for {{usernameReservedFor}}{{1}}{{2}}" msgstr "{{usernameReservedFor}}{{1}}{{2}} のため保留" -#: src/jade/tabs/account/public.jade:24 src/jade/tabs/register.jade:34 +#: src/jade/tabs/account/public.jade:24 src/jade/tabs/register.jade:45 msgid "Must be at least 2 characters" msgstr "2文字以上でなければなりません。" -#: src/jade/tabs/account/public.jade:25 src/jade/tabs/register.jade:35 +#: src/jade/tabs/account/public.jade:25 src/jade/tabs/register.jade:47 msgid "Must be at most 20 characters" msgstr "20文字以下でなければなりません。" @@ -473,11 +852,11 @@ msgstr "20文字以下でなければなりません。" msgid "Only a-z, 0-9 and hyphen (-)" msgstr "半角英数字とハイフン (-) のみ使用できます。" -#: src/jade/tabs/account/public.jade:27 src/jade/tabs/register.jade:37 +#: src/jade/tabs/account/public.jade:27 src/jade/tabs/register.jade:51 msgid "Cannot start with hyphen (-)" msgstr "ハイフン (-) は先頭に設定できません。 " -#: src/jade/tabs/account/public.jade:28 src/jade/tabs/register.jade:38 +#: src/jade/tabs/account/public.jade:28 src/jade/tabs/register.jade:53 msgid "Cannot end with hyphen (-)" msgstr "ハイフン (-) は後尾に設定できません。 " @@ -485,16 +864,16 @@ msgstr "ハイフン (-) は後尾に設定できません。 " msgid "Cannot bundle hyphens (--)" msgstr "ハイフン (--) を羅列して設定できません。" -#: src/jade/tabs/account/public.jade:30 src/jade/tabs/register.jade:40 +#: src/jade/tabs/account/public.jade:30 src/jade/tabs/register.jade:56 msgid "Checking..." msgstr "チェック中..." -#: src/jade/tabs/account/public.jade:32 src/jade/tabs/security.jade:113 +#: src/jade/tabs/account/public.jade:32 src/jade/tabs/security.jade:126 msgid "Current password" msgstr "現在のパスワード" -#: src/jade/tabs/account/public.jade:35 src/jade/tabs/security.jade:15 -#: src/jade/tabs/security.jade:20 +#: src/jade/tabs/account/public.jade:35 src/jade/tabs/security.jade:18 +#: src/jade/tabs/security.jade:23 msgid "Entered password is wrong." msgstr "パスワードに誤りがあります。" @@ -506,107 +885,135 @@ msgstr "Ripple 名は変更されました。再びログインしてくださ msgid "Couldn't change your Ripple name, please try again later." msgstr "Ripple 名を変更することができませんでした。しばらく待ってから再実行してください。" -#: src/jade/tabs/account/public.jade:47 src/jade/tabs/advanced.jade:26 -#: src/jade/tabs/advanced.jade:43 src/jade/tabs/advanced.jade:67 -#: src/jade/tabs/advanced.jade:96 src/jade/tabs/btc.jade:62 -#: src/jade/tabs/contacts.jade:58 src/jade/tabs/contacts.jade:101 -#: src/jade/tabs/exchange.jade:94 src/jade/tabs/exchange.jade:107 -#: src/jade/tabs/kyc.jade:106 src/jade/tabs/kyc.jade:118 -#: src/jade/tabs/kyc.jade:140 src/jade/tabs/kyc.jade:141 -#: src/jade/tabs/kyc.jade:167 src/jade/tabs/login/form.jade:25 -#: src/jade/tabs/security.jade:71 src/jade/tabs/security.jade:101 -#: src/jade/tabs/security.jade:136 src/jade/tabs/send.jade:205 -#: src/jade/tabs/send.jade:217 src/jade/tabs/send.jade:238 -#: src/jade/tabs/send.jade:268 src/jade/tabs/trade.jade:32 -#: src/jade/tabs/trade.jade:43 src/jade/tabs/trust.jade:177 -#: src/jade/tabs/trust.jade:179 src/jade/tabs/trust.jade:263 -#: src/jade/tabs/trust.jade:296 +#: src/jade/tabs/account/public.jade:47 src/jade/tabs/advanced.jade:36 +#: src/jade/tabs/advanced.jade:53 src/jade/tabs/advanced.jade:77 +#: src/jade/tabs/advanced.jade:94 src/jade/tabs/advanced.jade:124 +#: src/jade/tabs/btc.jade:74 src/jade/tabs/contacts.jade:50 +#: src/jade/tabs/contacts.jade:93 src/jade/tabs/exchange.jade:113 +#: src/jade/tabs/exchange.jade:126 src/jade/tabs/kyc.jade:116 +#: src/jade/tabs/kyc.jade:131 src/jade/tabs/kyc.jade:156 +#: src/jade/tabs/kyc.jade:157 src/jade/tabs/kyc.jade:186 +#: src/jade/tabs/login/form.jade:26 src/jade/tabs/security.jade:79 +#: src/jade/tabs/security.jade:112 src/jade/tabs/security.jade:149 +#: src/jade/tabs/send.jade:215 src/jade/tabs/send.jade:227 +#: src/jade/tabs/send.jade:252 src/jade/tabs/send.jade:286 +#: src/jade/tabs/trade.jade:55 src/jade/tabs/trust.jade:141 +#: src/jade/tabs/trust.jade:143 src/jade/tabs/trust.jade:213 +#: src/jade/tabs/trust.jade:251 msgid "cancel" msgstr "キャンセル" -#: src/jade/tabs/account/public.jade:49 src/jade/tabs/contacts.jade:7 -#: src/jade/tabs/contacts.jade:34 src/jade/tabs/desktop/register.jade:88 +#: src/jade/tabs/account/public.jade:49 msgid "Ripple address" msgstr "Ripple アドレス" +#: src/jade/tabs/advanced.jade:8 +msgid "Your blob vault has been changed successfully." +msgstr "Blob vault の変更に成功しました。" + +#: src/jade/tabs/advanced.jade:9 +msgid "Your bitcoin bridge has been changed successfully." +msgstr "ビットコインブリッジの変更に成功しました。" + +#: src/jade/tabs/advanced.jade:10 +msgid "Trustline advanced settings has been changed successfully." +msgstr "トラストライン高度設定の変更に成功しました。" + #: src/jade/tabs/advanced.jade:11 +msgid "Maximum network fee has been changed successfully." +msgstr "最大のネットワークフィーの変更に成功しました。" + +#: src/jade/tabs/advanced.jade:12 +msgid "A new server has been successfully added." +msgstr "新しいサーバーは追加されました。" + +#: src/jade/tabs/advanced.jade:13 +msgid "A server has been successfully removed." +msgstr "サーバーはリムーブされました。" + +#: src/jade/tabs/advanced.jade:14 +msgid "A server has been changed successfully." +msgstr "サーバーは変更されました。" + +#: src/jade/tabs/advanced.jade:21 msgid "Blob vault" msgstr "Blob vault" -#: src/jade/tabs/advanced.jade:22 src/jade/tabs/advanced.jade:39 -#: src/jade/tabs/advanced.jade:63 src/jade/tabs/advanced.jade:92 -#: src/jade/tabs/contacts.jade:96 src/jade/tabs/fund.jade:79 -#: src/jade/tabs/security.jade:175 src/jade/tabs/send.jade:237 -#: src/jade/tabs/send.jade:266 src/jade/tabs/trust.jade:156 -#: src/jade/tabs/trust.jade:282 +#: src/jade/tabs/advanced.jade:32 src/jade/tabs/advanced.jade:49 +#: src/jade/tabs/advanced.jade:73 src/jade/tabs/advanced.jade:92 +#: src/jade/tabs/advanced.jade:120 src/jade/tabs/contacts.jade:88 +#: src/jade/tabs/fund.jade:65 src/jade/tabs/security.jade:190 +#: src/jade/tabs/send.jade:251 src/jade/tabs/send.jade:284 +#: src/jade/tabs/trust.jade:119 src/jade/tabs/trust.jade:232 msgid "Save" msgstr "保存" -#: src/jade/tabs/advanced.jade:24 src/jade/tabs/advanced.jade:41 -#: src/jade/tabs/advanced.jade:65 src/jade/tabs/advanced.jade:94 -#: src/jade/tabs/contacts.jade:99 +#: src/jade/tabs/advanced.jade:34 src/jade/tabs/advanced.jade:51 +#: src/jade/tabs/advanced.jade:75 src/jade/tabs/advanced.jade:122 +#: src/jade/tabs/contacts.jade:91 src/jade/tabs/security.jade:198 msgid "Delete" msgstr "削除" -#: src/jade/tabs/advanced.jade:28 +#: src/jade/tabs/advanced.jade:38 msgid "Bitcoin bridge" msgstr "ビットコインブリッジ" -#: src/jade/tabs/advanced.jade:45 +#: src/jade/tabs/advanced.jade:55 msgid "Trust line" msgstr "与信限度額" -#: src/jade/tabs/advanced.jade:50 src/jade/tabs/advanced.jade:61 -#: src/jade/tabs/desktop/register.jade:85 src/jade/tabs/security.jade:148 +#: src/jade/tabs/advanced.jade:60 src/jade/tabs/advanced.jade:71 +#: src/jade/tabs/security.jade:162 msgid "Show" msgstr "表示" -#: src/jade/tabs/advanced.jade:51 src/jade/tabs/desktop/register.jade:86 -#: src/jade/tabs/security.jade:149 +#: src/jade/tabs/advanced.jade:61 src/jade/tabs/security.jade:163 msgid "Hide" msgstr "隠す" -#: src/jade/tabs/advanced.jade:68 +#: src/jade/tabs/advanced.jade:78 +msgid "Network settings" +msgstr "ネットワーク設定" + +#: src/jade/tabs/advanced.jade:80 +msgid "Maximum network fee" +msgstr "最大ネットワークフィー" + +#: src/jade/tabs/advanced.jade:96 msgid "Server settings" msgstr "サーバー設定" -#: src/jade/tabs/advanced.jade:73 +#: src/jade/tabs/advanced.jade:101 msgid "WebSocket host name" msgstr "WebSocket host名" -#: src/jade/tabs/advanced.jade:75 +#: src/jade/tabs/advanced.jade:103 msgid "Port number" msgstr "ポート・ナンバー" -#: src/jade/tabs/advanced.jade:81 +#: src/jade/tabs/advanced.jade:109 msgid "Socket ip or hostname is invalid." msgstr "Socket IP及びホスト名が無効です。" -#: src/jade/tabs/advanced.jade:83 +#: src/jade/tabs/advanced.jade:111 msgid "Port number is invalid." msgstr "ポートナンバーが無効です。" -#: src/jade/tabs/advanced.jade:90 src/jade/tabs/advanced.jade:103 +#: src/jade/tabs/advanced.jade:118 src/jade/tabs/advanced.jade:131 msgid "Secure" msgstr "安全" -#: src/jade/tabs/advanced.jade:104 +#: src/jade/tabs/advanced.jade:132 msgid "Not Secure" msgstr "安全でない" -#: src/jade/tabs/advanced.jade:110 +#: src/jade/tabs/advanced.jade:138 msgid "Add new server" msgstr "新しいサーバーを追加" -#: src/jade/tabs/apps.jade:5 src/jade/tabs/balance.jade:5 -#: src/jade/tabs/btc.jade:6 src/jade/tabs/exchange.jade:6 -#: src/jade/tabs/fund.jade:6 src/jade/tabs/history.jade:6 -#: src/jade/tabs/kyc.jade:6 src/jade/tabs/send.jade:6 src/jade/tabs/su.jade:5 -#: src/jade/tabs/trade.jade:7 src/jade/tabs/trust.jade:6 -#: src/jade/tabs/usd.jade:6 src/jade/tabs/withdraw.jade:6 -#: src/jade/tabs/xrp.jade:6 -msgid "You have to be online to see this screen" -msgstr "この画面を見るにはオンラインでなければなりません。" +#: src/jade/tabs/apps.jade:27 +msgid "App Ripple Address" +msgstr "Ripple アドレスを追加" #: src/jade/tabs/apps.jade:29 msgid "Please enter a ripple address." @@ -616,454 +1023,535 @@ msgstr "Ripple アドレスを入力してください。" msgid "Please enter a valid ripple address." msgstr "有効な Ripple アドレスを入力してください。" -#: src/jade/tabs/balance.jade:21 -msgid "Total Balance{{1}}" -msgstr "トータル残高{{1}}" - -#: src/jade/tabs/balance.jade:22 -msgid "Estimated from latest trade price" -msgstr "最新のトレード価格から見積る" - -#: src/jade/tabs/balance.jade:29 -msgid "(excluding negative balances)" -msgstr "(マイナス残高を除く)" - -#: src/jade/tabs/balance.jade:67 -msgid "Reserve" -msgstr "準備金" - -#: src/jade/tabs/balance.jade:85 -msgid "Unverified" -msgstr "未認証" +#: src/jade/tabs/banner/announcement.jade:2 +msgid "Help our team improve Ripple Trade! {{1:Take a quick user survey.}}" +msgstr "私達のチームがリップル・トレードを改良するのにご協力ください! {{1:Take a quick user survey.}}" -#: src/jade/tabs/balance.jade:92 -msgid "Enter bitcoin address." -msgstr "ビットコインアドレスを入力してください。" +#: src/jade/tabs/banner/unfunded.jade:2 +msgid "" +"Welcome to Ripple Trade! Your account needs to be activated. You can " +"activate it in 2 ways:" +msgstr "リップルトレードにようこそ! あなたのアカウントは、アクティブにする必要があります。 2つの方法でアクティブにすることができます:" -#: src/jade/tabs/balance.jade:95 -msgid "Enter amount to withdraw." -msgstr "引き出しの金額を入力してください。" +#: src/jade/tabs/banner/unfunded.jade:4 +msgid "" +"Have another user send XRP to your Ripple name " +"(~{{userCredentials.username}}). {{1}}" +msgstr "他のユーザーにあなたの Ripple 名 (~{{userCredentials.username}}) . {{1}}まで XRP の送信をお願いする。" -#: src/jade/tabs/balance.jade:100 src/jade/tabs/balance.jade:102 -msgid "Enter a valid bitcoin address" -msgstr "有効なビットコインアドレスを入力してください。" +#: src/jade/tabs/brl.jade:24 src/jade/tabs/eur.jade:24 +#: src/jade/tabs/gold.jade:24 src/jade/tabs/jpy.jade:24 +#: src/jade/tabs/mxn.jade:24 src/jade/tabs/trust.jade:42 +#: src/jade/tabs/usd.jade:24 +msgid "There was an error while saving your changes." +msgstr "変更点を保存する際にエラーが発生しました。" -#: src/jade/tabs/balance.jade:106 -msgid "Enter a valid amount" -msgstr "有効な金額を入力してください。" +#: src/jade/tabs/brl.jade:28 src/jade/tabs/eur.jade:27 +#: src/jade/tabs/gold.jade:27 src/jade/tabs/jpy.jade:28 +#: src/jade/tabs/mxn.jade:28 src/jade/tabs/trust.jade:45 +#: src/jade/tabs/usd.jade:27 +msgid "You must have at least {{1}} to add a new trust line. {{2}}" +msgstr "新しい与信枠を与えるために最低 {{1}} を所有していなければなりません。{{2}}" -#: src/jade/tabs/balance.jade:113 -msgid "You are sending {{1}} BTC to:" -msgstr "{{1}} BTC の受取人:" +#: src/jade/tabs/brl.jade:38 +msgid "Brazilian Real Deposit" +msgstr "ブラジルレアル入金" -#: src/jade/tabs/balance.jade:119 src/jade/tabs/balance.jade:134 -#: src/jade/tabs/register.jade:105 src/jade/tabs/register.jade:111 -msgid "Back" -msgstr "戻る" +#: src/jade/tabs/brl.jade:41 src/jade/tabs/btc.jade:35 +#: src/jade/tabs/eur.jade:38 src/jade/tabs/gold.jade:40 +#: src/jade/tabs/jpy.jade:41 src/jade/tabs/mxn.jade:41 +#: src/jade/tabs/trust.jade:167 src/jade/tabs/usd.jade:38 +msgid "Gateway" +msgstr "ゲートウェイ" -#: src/jade/tabs/balance.jade:122 src/jade/tabs/btc.jade:61 -#: src/jade/tabs/exchange.jade:92 src/jade/tabs/send.jade:203 -#: src/jade/tabs/trade.jade:57 src/jade/tabs/trade.jade:67 -#: src/jade/tabs/trade.jade:241 src/jade/tabs/trust.jade:176 -msgid "Confirm" -msgstr "確認" +#: src/jade/tabs/brl.jade:42 src/jade/tabs/eur.jade:48 +#: src/jade/tabs/mxn.jade:81 src/jade/tabs/mxn.jade:93 +#: src/jade/tabs/mxn.jade:103 src/jade/tabs/security.jade:49 +msgid "{{1}}{{2}}" +msgstr "{{1}}{{2}}" + +#: src/jade/tabs/brl.jade:43 +msgid "Ripple (~rippex)" +msgstr "Ripple (~rippex)" + +#: src/jade/tabs/brl.jade:46 src/jade/tabs/btc.jade:39 +#: src/jade/tabs/eur.jade:44 src/jade/tabs/gold.jade:44 +#: src/jade/tabs/jpy.jade:45 src/jade/tabs/mxn.jade:46 +#: src/jade/tabs/usd.jade:44 +msgid "Availability" +msgstr "利用可能場所" + +#: src/jade/tabs/brl.jade:47 +msgid "Brazil" +msgstr "ブラジル" + +#: src/jade/tabs/brl.jade:49 src/jade/tabs/btc.jade:42 +#: src/jade/tabs/eur.jade:47 src/jade/tabs/gold.jade:47 +#: src/jade/tabs/jpy.jade:48 src/jade/tabs/mxn.jade:49 +#: src/jade/tabs/usd.jade:47 +msgid "Fees" +msgstr "手数料" -#: src/jade/tabs/balance.jade:127 -msgid "Reconnecting to Ripple network" -msgstr "Ripple networkに再接続しています" +#: src/jade/tabs/brl.jade:50 src/jade/tabs/jpy.jade:49 +#: src/jade/tabs/kyc.jade:111 src/jade/tabs/kyc.jade:126 +#: src/jade/tabs/kyc.jade:151 +msgid "{{1}}{{2}}{{3}}" +msgstr "{{1}}{{2}}{{3}}" + +#: src/jade/tabs/brl.jade:51 +msgid "Deposit: 1.50 BRL + 0.5%" +msgstr "入金: 1.50 BRL + 0.5%" + +#: src/jade/tabs/brl.jade:52 +msgid "Transfer: 0%" +msgstr "送金: 0%" + +#: src/jade/tabs/brl.jade:56 src/jade/tabs/btc.jade:45 +#: src/jade/tabs/eur.jade:53 src/jade/tabs/gold.jade:50 +#: src/jade/tabs/jpy.jade:54 src/jade/tabs/mxn.jade:52 +#: src/jade/tabs/usd.jade:50 +msgid "Rating" +msgstr "レイティング" + +#: src/jade/tabs/brl.jade:62 +msgid "" +"Ripple Trade has partnered with Rippex to provide easy access to BRL. By " +"continuing, you agree with Rippex's {{1}}Following this action will enable " +"Rippex to hold BRL on your behalf." +msgstr "Ripple Tradeは、BRLの簡単なアクセスを提供するために、Rippexとパートナーになりました。この操作を続けると、あなたはRippexの {{1}}に合意することになり、RippexはあなたのBRLを保持することができます。" + +#: src/jade/tabs/brl.jade:69 +msgid "Add Rippex" +msgstr "Rippexを追加" + +#: src/jade/tabs/brl.jade:70 +msgid "Adding..." +msgstr "追加しています..." + +#: src/jade/tabs/brl.jade:71 src/jade/tabs/eur.jade:65 +#: src/jade/tabs/jpy.jade:64 src/jade/tabs/usd.jade:62 +msgid "Hide instructions" +msgstr "説明を隠す" + +#: src/jade/tabs/brl.jade:72 src/jade/tabs/eur.jade:66 +#: src/jade/tabs/jpy.jade:65 src/jade/tabs/usd.jade:63 +msgid "Show instructions" +msgstr "説明を表示" + +#: src/jade/tabs/brl.jade:75 src/jade/tabs/btc.jade:83 +msgid "{{1}}Not connected" +msgstr "{{1}}接続しない" + +#: src/jade/tabs/brl.jade:78 src/jade/tabs/btc.jade:86 +msgid "{{1}}Connected" +msgstr "{{1}}接続" + +#: src/jade/tabs/brl.jade:81 src/jade/tabs/eur.jade:71 +#: src/jade/tabs/gold.jade:73 src/jade/tabs/jpy.jade:74 +#: src/jade/tabs/mxn.jade:76 src/jade/tabs/usd.jade:68 +msgid "Your account has to be activated before you can add a gateway account." +msgstr "ゲートウェイアカウントを追加する前に、あなたのアカウントをアクティブ化する必要があります。" + +#: src/jade/tabs/brl.jade:84 src/jade/tabs/eur.jade:75 +#: src/jade/tabs/gold.jade:76 src/jade/tabs/jpy.jade:77 +#: src/jade/tabs/mxn.jade:79 src/jade/tabs/usd.jade:72 +msgid "×" +msgstr "×" + +#: src/jade/tabs/brl.jade:85 +msgid "NEW CUSTOMERS- SIGN UP AT RIPPEX" +msgstr "新しいカスタマーとしてRIPPEXにサインアップ" + +#: src/jade/tabs/brl.jade:86 +msgid "" +"{{1}} at Rippex.net to initiate deposits and withdrawals. You will " +"need:{{2}}" +msgstr "" -#: src/jade/tabs/balance.jade:128 -msgid "Transaction Successful" -msgstr "取引は成功しました。" +#: src/jade/tabs/brl.jade:90 +msgid "A {{1}}" +msgstr "" -#: src/jade/tabs/balance.jade:129 -msgid "Warning" -msgstr "注意" +#: src/jade/tabs/brl.jade:92 +msgid "A bank account in Brazil." +msgstr "ブラジルの銀行口座" -#: src/jade/tabs/balance.jade:130 -msgid "Transaction Failed" -msgstr "取引は失敗しました。" +#: src/jade/tabs/brl.jade:96 +msgid "EXISTING RIPPEX CUSTOMERS" +msgstr "既存のRIPPEXカスタマー" -#: src/jade/tabs/balance.jade:131 -msgid "Message" -msgstr "メッセージ" +#: src/jade/tabs/brl.jade:97 +msgid "If you have a Rippex account, {{1}}" +msgstr "既にRippexアカウントをお持ちなら、{{1}}" -#: src/jade/tabs/banner/announcement.jade:2 -msgid "Help our team improve Ripple Trade! {{1:Take a quick user survey.}}" -msgstr "私達のチームがリップル・トレードを改良するのにご協力ください! {{1:Take a quick user survey.}}" +#: src/jade/tabs/brl.jade:100 +msgid "DEPOSIT INSTRUCTIONS" +msgstr "入金手順" -#: src/jade/tabs/banner/unfunded.jade:2 -msgid "" -"Welcome to Ripple Trade! To activate your account, you'll need at least 20 " -"XRP." -msgstr "Ripple Trade へようこそ!アカウントをアクティブにするには、最低 20 XRP が必要です。" +#: src/jade/tabs/brl.jade:101 +msgid "Rippex accepts deposits from all Brazilian banks. Instructions {{1}}" +msgstr "Rippexは、すべてのブラジルの銀行から入金を受け入れます。手順 {{1}}" -#: src/jade/tabs/banner/unfunded.jade:4 -msgid "" -"Have another user send XRP to your Ripple name " -"(~{{userCredentials.username}})" -msgstr "他のユーザーにあなたの Ripple 名(~{{userCredentials.username}}) まで XRP の送金をお願いする。" +#: src/jade/tabs/btc.jade:19 +msgid "Success! You can deposit BTC via your generated BTC receiving address." +msgstr "成功! 生成されたBTC受信アドレスによってBTCを入金することができます。" -#: src/jade/tabs/banner/unfunded.jade:5 -msgid "" -"Use the {{1}}. A small amount of your first deposit will be used to " -"activate your account." -msgstr " {{1}}を使用してください。初めての入金の一部がアカウントのアクティベーションに使用されます。" +#: src/jade/tabs/btc.jade:21 +msgid "There was an error with your request. {{1}}" +msgstr "あなたのリクエストにおいてエラーがありました{{1}}" -#: src/jade/tabs/btc.jade:18 +#: src/jade/tabs/btc.jade:30 msgid "Bitcoin Deposit" msgstr "ビットコイン入金" -#: src/jade/tabs/btc.jade:26 -msgid "" -"A small amount (~.001 BTC) of your first transfer will be converted to XRP " -"to activate your wallet. {{1:Why?}}" -msgstr "初めての入金の一部 (~.001 BTC) がウォレットのアクティベーションのため XRP に両替されます。{{1:なぜ?}}" - -#: src/jade/tabs/btc.jade:30 -msgid "Your current deposit limit is:" -msgstr "現在の入金制限:" +#: src/jade/tabs/btc.jade:36 +msgid "btc2ripple (~snapswap) {{1}}" +msgstr "btc2ripple (~snapswap) {{1}}" -#: src/jade/tabs/btc.jade:32 -msgid "Remove Limit" -msgstr "制限を取り除く" +#: src/jade/tabs/btc.jade:40 src/jade/tabs/gold.jade:45 +#: src/jade/tabs/jpy.jade:46 +msgid "All countries" +msgstr "すべての国" -#: src/jade/tabs/btc.jade:36 -msgid "Waiting for response from SnapSwap service..." -msgstr "SnapSwapサービスから応答を待っています" +#: src/jade/tabs/btc.jade:43 src/jade/tabs/mxn.jade:50 +msgid "0%" +msgstr "0%" -#: src/jade/tabs/btc.jade:38 +#: src/jade/tabs/btc.jade:50 msgid "" -"To deposit, generate a bitcoin receiving address using the {{1}} service " -"powered by SnapSwap." -msgstr "入金するには、SnapSwap の {{1}} サービスを利用してビットコイン受信アドレスを作成してください。" +"Ripple Trade has partnered with btc2ripple to make depositing BTC easier. By" +" proceeding, you agree to the btc2ripple {{1}} Following this action will " +"allow btc2ripple to hold BTC on your behalf." +msgstr "Ripple Tradeは、BTCの簡単な入金をするために、btc2rippleとパートナーになりました。この操作を続けると、btc2ripple {{1}} に合意することになり、btc2rippleがあなたの自身のBTCを保持することができます。" -#: src/jade/tabs/btc.jade:45 -msgid "Generate bitcoin address" -msgstr "ビットコインアドレスを作成" +#: src/jade/tabs/btc.jade:56 +msgid "Add btc2ripple" +msgstr "btc2rippleを追加" -#: src/jade/tabs/btc.jade:49 src/jade/tabs/security.jade:56 -#: src/jade/tabs/trust.jade:160 +#: src/jade/tabs/btc.jade:60 src/jade/tabs/security.jade:64 +#: src/jade/tabs/trust.jade:123 msgid "Connect" msgstr "接続" -#: src/jade/tabs/btc.jade:51 +#: src/jade/tabs/btc.jade:62 msgid "btc2ripple would like to:" msgstr "btc2ripple は、以下の情報を受け取ります。" -#: src/jade/tabs/btc.jade:53 -msgid "- Receive your email address{{1}}" -msgstr "- あなたのメールアドレス {{1}}を受信" +#: src/jade/tabs/btc.jade:64 +msgid "- Receive your email address {{1}}" +msgstr "- あなたのメールアドレス {{1}}" -#: src/jade/tabs/btc.jade:54 +#: src/jade/tabs/btc.jade:65 msgid "({{userBlob.data.email}})" msgstr "({{userBlob.data.email}})" -#: src/jade/tabs/btc.jade:55 +#: src/jade/tabs/btc.jade:66 msgid "- Hold deposited BTC on your behalf" msgstr "- あなたにかわっで BTC を入金" -#: src/jade/tabs/btc.jade:56 +#: src/jade/tabs/btc.jade:67 msgid "By proceeding, you agree to the btc2ripple {{1}}" msgstr "続行することによりあなたは、btc2ripple {{1}} に同意します。" -#: src/jade/tabs/btc.jade:63 +#: src/jade/tabs/btc.jade:75 msgid "" "SnapSwap's btc2ripple service is currently unavailable. Please check back " "later." msgstr "現在、SnapSwap の btc2ripple サービスが利用できません。しばらく待ってから再実行してください。" -#: src/jade/tabs/contacts.jade:6 src/jade/tabs/contacts.jade:26 -msgid "Ripple name or address" -msgstr "Ripple 名またはアドレス" +#: src/jade/tabs/btc.jade:94 +msgid "Personal Deposit address" +msgstr "個人の入金アドレス" -#: src/jade/tabs/contacts.jade:9 src/jade/tabs/contacts.jade:13 -#: src/jade/tabs/contacts.jade:56 -msgid "Add contact" -msgstr "相手先を追加" +#: src/jade/tabs/btc.jade:96 +msgid "Your account is fully verified." +msgstr "あなたのアカウントは完全に検証されています。" + +#: src/jade/tabs/btc.jade:104 +msgid "Withdrawal instructions" +msgstr "引き出し手順" + +#: src/jade/tabs/btc.jade:105 +msgid "" +"To withdraw to a BTC address, go to the Send tab and enter the BTC address. " +"Using the btc2ripple service, you will be able tosend to that BTC address." +msgstr "BTCアドレスに引出しをするには、 送信タブに移動し、 BTCアドレスを入力してください。 btc2rippleサービスを使用すると、そのBTCのアドレスに送信することができます。" + +#: src/jade/tabs/btc.jade:110 +msgid "Waiting for response from SnapSwap service..." +msgstr "SnapSwapサービスから応答を待っています" + +#: src/jade/tabs/btc.jade:112 +msgid "" +"To deposit, generate a bitcoin receiving address using the {{1}} service " +"powered by SnapSwap." +msgstr "入金するには、SnapSwap の {{1}} サービスを利用してビットコイン受信アドレスを作成してください。" -#: src/jade/tabs/contacts.jade:18 +#: src/jade/tabs/contacts.jade:8 +msgid "A new contact has been successfully added." +msgstr "新しい相手先は追加されました。" + +#: src/jade/tabs/contacts.jade:9 +msgid "Your contact has been successfully updated." +msgstr "新しい相手先は更新されました。" + +#: src/jade/tabs/contacts.jade:10 +msgid "A contact has been successfully removed." +msgstr "相手先はリムーブされました。" + +#: src/jade/tabs/contacts.jade:12 src/jade/tabs/contacts.jade:24 msgid "Contact" msgstr "相手先" -#: src/jade/tabs/contacts.jade:21 +#: src/jade/tabs/contacts.jade:13 src/jade/tabs/contacts.jade:32 +msgid "Ripple name or address" +msgstr "Ripple名またはアドレス" + +#: src/jade/tabs/contacts.jade:15 src/jade/tabs/contacts.jade:19 +#: src/jade/tabs/contacts.jade:48 +msgid "Add contact" +msgstr "相手先を追加" + +#: src/jade/tabs/contacts.jade:27 src/jade/tabs/send.jade:245 +#: src/jade/tabs/send.jade:277 msgid "Please enter a contact." msgstr "相手先を入力してください。" -#: src/jade/tabs/contacts.jade:22 +#: src/jade/tabs/contacts.jade:28 msgid "This contact already exists." msgstr "この相手先は既に存在します。" -#: src/jade/tabs/contacts.jade:30 +#: src/jade/tabs/contacts.jade:36 msgid "Please enter a Ripple name." msgstr "Ripple 名を入力してください。" -#: src/jade/tabs/contacts.jade:31 src/jade/tabs/contacts.jade:47 +#: src/jade/tabs/contacts.jade:37 src/jade/tabs/contacts.jade:45 msgid "" "You already have a contact with the same Ripple name and/or the same " "Destination tag." msgstr "既に同じRipple名および(または)同じ宛先タグが存在します" -#: src/jade/tabs/contacts.jade:32 +#: src/jade/tabs/contacts.jade:38 msgid "Not a valid Ripple name or address." msgstr "有効な Ripple 名またはアドレスではありません。" -#: src/jade/tabs/contacts.jade:38 -msgid "Please enter a Ripple address." -msgstr "Ripple アドレスを入力してください。" - -#: src/jade/tabs/contacts.jade:39 src/jade/tabs/contacts.jade:53 -msgid "" -"You already have a contact with the same Ripple address and/or the same " -"Destination tag." -msgstr "既に同じRipple アドレスおよび(または)同じ宛先タグが存在します" - -#: src/jade/tabs/contacts.jade:40 -msgid "Not a valid Ripple address." -msgstr "有効な Ripple アドレスではありません。" - -#: src/jade/tabs/contacts.jade:43 src/jade/tabs/contacts.jade:49 -#: src/jade/tabs/contacts.jade:89 src/jade/tabs/send.jade:49 -#: src/jade/tabs/tx.jade:54 +#: src/jade/tabs/contacts.jade:41 src/jade/tabs/contacts.jade:81 +#: src/jade/tabs/send.jade:42 src/jade/tabs/tx.jade:56 msgid "Destination tag" msgstr "宛先タグ" -#: src/jade/tabs/contacts.jade:46 src/jade/tabs/contacts.jade:52 -#: src/jade/tabs/send.jade:53 +#: src/jade/tabs/contacts.jade:42 +msgid "Leave blank if not applicable" +msgstr "適用しない場合は空白のままにします" + +#: src/jade/tabs/contacts.jade:44 src/jade/tabs/send.jade:46 msgid "Invalid destination tag" msgstr "無効な宛先タグ" -#: src/jade/tabs/contacts.jade:80 src/jade/tabs/send.jade:232 -#: src/jade/tabs/send.jade:260 +#: src/jade/tabs/contacts.jade:72 msgid "You already have a contact with the same name." msgstr "既に同じ名前の相手先がいます。" -#: src/jade/tabs/contacts.jade:86 +#: src/jade/tabs/contacts.jade:78 msgid "You already have this address." msgstr "このアドレスは既に保存されています。" -#: src/jade/tabs/contacts.jade:87 +#: src/jade/tabs/contacts.jade:79 src/jade/tabs/debug.jade:14 msgid "Not a valid address." msgstr "有効なアドレスではありません。" -#: src/jade/tabs/contacts.jade:92 +#: src/jade/tabs/contacts.jade:84 msgid "Invalid destination tag." msgstr "無効な宛先タグ" -#: src/jade/tabs/contacts.jade:102 +#: src/jade/tabs/contacts.jade:94 msgid "" "You don't have any contacts yet. Click on 'Add contact' button in the top " "right corner to add a new contact." msgstr "相手先をまだ持っていません。 新しい相手先を加えるには、右上隅の「相手先を加える」ボタンをクリックしてください" -#: src/jade/tabs/desktop/login.jade:3 -msgid "" -"You will not be able to login to the downloadable client using a " -"username/password you create on Ripple Trade or the web version of the " -"Ripple Client. You can only use a secret key to access an existing Ripple " -"account. This is because the downloadable client stores your login " -"information locally on your computer, so your account is as safe as the " -"security of your personal computer." -msgstr "Ripple Trade またはウェブバージョンの Ripple Client で作成したユーザー名・パスワードを使ってダウンロードクライアントにログインすることはできません。既に存在する Ripple アカウントは、シークレット・キーの使用のみでアクセスできます。ダウンロードクライアントはあなたのコンピューターにログイン情報を保管しているので、パーソナルコンピューターがセキュアである限り、アカウントもセキュアです。" - -#: src/jade/tabs/desktop/login.jade:12 src/jade/tabs/desktop/login.jade:34 -msgid "Open account" -msgstr "アカウントを作成" - -#: src/jade/tabs/desktop/login.jade:15 src/jade/tabs/desktop/register.jade:5 -#: src/jade/tabs/desktop/register.jade:65 -msgid "Create new account" -msgstr "新規アカウントを作成" - -#: src/jade/tabs/desktop/login.jade:18 -msgid "Select account file {{walletfile}}" -msgstr "アカウントファイル {{walletfile}} を選択" - -#: src/jade/tabs/desktop/login.jade:21 -msgid "Select account file" -msgstr "アカウントファイルを選択" - -#: src/jade/tabs/desktop/login.jade:24 -msgid "Account password" -msgstr "アカウントパスワード" +#: src/jade/tabs/debug.jade:9 +msgid "Enter a Ripple name or address" +msgstr "Ripple 名またはアドレスを入力してください" -#: src/jade/tabs/desktop/register.jade:8 -msgid "Open existing account" -msgstr "既に存在するアカウントを開く" +#: src/jade/tabs/debug.jade:13 +msgid "Please enter an address." +msgstr "アドレスを入力してください" -#: src/jade/tabs/desktop/register.jade:11 -msgid "Create an empty account" -msgstr "空のアカウントを作成" +#: src/jade/tabs/debug.jade:17 +msgid "Turn on debug mode" +msgstr "デバッグモードをオン" -#: src/jade/tabs/desktop/register.jade:14 -msgid "Create a new account with a secret key" -msgstr "シークレット・キーを利用して新規アカウントを作成する" +#: src/jade/tabs/eur.jade:35 +msgid "Euro Deposit" +msgstr "Euro入金" -#: src/jade/tabs/desktop/register.jade:18 -msgid "Create empty account" -msgstr "空のアカウントを作成" +#: src/jade/tabs/eur.jade:39 +msgid "SnapSwap EU (~SnapSwap){{1}}{{2}}" +msgstr "SnapSwap EU (~SnapSwap){{1}}{{2}}" -#: src/jade/tabs/desktop/register.jade:20 -msgid "Encrypt your new account file: {{walletfile}}" -msgstr "新規アカウントファイルを暗号化する: {{walletfile}}" +#: src/jade/tabs/eur.jade:45 +msgid "All countries, except USA" +msgstr "すべての国(米国以外)" -#: src/jade/tabs/desktop/register.jade:24 -msgid "Wallet file" -msgstr "ウォレットファイル" +#: src/jade/tabs/eur.jade:49 +msgid "€ 0.31 – € 15.00" +msgstr "€ 0.31 – € 15.00" -#: src/jade/tabs/desktop/register.jade:31 +#: src/jade/tabs/eur.jade:59 msgid "" -"Your password is weak. It is not a mix of letters, numbers and symbols or it" -" is the same as your Ripple name." -msgstr "パスワードが脆弱です。文字、数字、シンボルが混合されていないか、またはアカウント名と同じです。" - -#: src/jade/tabs/desktop/register.jade:33 src/jade/tabs/recover.jade:40 -#: src/jade/tabs/register.jade:49 src/jade/tabs/security.jade:123 -msgid "Confirm password" -msgstr "パスワードを確認" - -#: src/jade/tabs/desktop/register.jade:36 src/jade/tabs/recover.jade:43 -#: src/jade/tabs/register.jade:52 src/jade/tabs/security.jade:126 -msgid "Passwords do not match" -msgstr "パスワードが一致しません" - -#: src/jade/tabs/desktop/register.jade:42 -msgid "Encrypt account" -msgstr "アカウントを暗号化" - -#: src/jade/tabs/desktop/register.jade:44 -msgid "Cancel and delete account file" -msgstr "アカウントファイルを削除" +"Ripple Trade has partnered with SnapSwap to provide easier access to EUR. " +"Following this action will enable SnapSwap to hold EUR on your behalf." +msgstr "Ripple Tradeは、EURへの簡単なアクセスを提供するために、SnapSwapとパートナーになりました。この操作を続けると、SnapSwapにあなたの自身のEURを保持することができます。" -#: src/jade/tabs/desktop/register.jade:50 -msgid "Create account with secret key" -msgstr "シークレット・キーを利用してアカウントを作成" +#: src/jade/tabs/eur.jade:69 src/jade/tabs/usd.jade:66 +msgid "Not connected" +msgstr "接続しない" -#: src/jade/tabs/desktop/register.jade:55 -msgid "Enter your secret key" -msgstr "シークレット・キーを入力" - -#: src/jade/tabs/desktop/register.jade:62 -msgid "Secret is invalid" -msgstr "Secret は無効です" - -#: src/jade/tabs/desktop/register.jade:67 src/jade/tabs/fund.jade:77 -#: src/jade/tabs/trade.jade:325 -msgid "Cancel" -msgstr "キャンセル" +#: src/jade/tabs/eur.jade:70 src/jade/tabs/usd.jade:67 +msgid "Connected" +msgstr "接続" -#: src/jade/tabs/desktop/register.jade:69 src/jade/tabs/register.jade:95 -msgid "Have an account? {{1:Log In}}" -msgstr "アカウントを持っていますか? {{1:ログインする}}" +#: src/jade/tabs/eur.jade:76 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.EU" +msgstr "新しいカスタマーとしてSNAPSWAP.EUにサインアップ" -#: src/jade/tabs/desktop/register.jade:75 -msgid "Important:" -msgstr "注意" +#: src/jade/tabs/eur.jade:77 +msgid "Register and verify your account at SnapSwap EU. You will need: {{1}}" +msgstr "" -#: src/jade/tabs/desktop/register.jade:76 +#: src/jade/tabs/eur.jade:81 src/jade/tabs/usd.jade:78 msgid "" -"The secret key below gives access to your money in the unlikely case that " -"you lose your password. In that case your contacts will be lost, but with " -"this secret key alone anyone can retrieve your money. So please store it " -"somewhere PRIVATE AND SAFE. Read more about keys and wallet safety in {{1}}" -msgstr "下記のシークレット・キーは、パスワードを失った際、あなたの金銭にアクセス権を与えます。この場合、相手先も失われます。このシークレット・キーを利用して、誰でもあなたの金銭を取得できますので、必ず安全な場所に保管してください。シークレット・キーおよびウォレットの安全性に関する詳細は {{1}} でお読みください。" +"A valid government-issued ID: driver license, passport, ID card, or visa " +"stamp." +msgstr "" -#: src/jade/tabs/desktop/register.jade:79 src/jade/tabs/settings/navbar.jade:2 -msgid "Security" -msgstr "セキュリティー" +#: src/jade/tabs/eur.jade:83 src/jade/tabs/usd.jade:80 +msgid "A proof of address: driver license, utility bill, bank statement, etc." +msgstr "" -#: src/jade/tabs/desktop/register.jade:81 -msgid "Passphrase:{{1}}{{2}}{{3}}{{4}}" -msgstr "パスワード: {{1}}{{2}}{{3}}{{4}}" +#: src/jade/tabs/eur.jade:85 +msgid "EXISTING SNAPSWAP EU CUSTOMERS" +msgstr "既存のSNAPSWAP EUカスタマー" -#: src/jade/tabs/desktop/register.jade:90 -msgid "Secret key:" -msgstr "シークレット・キー:" +#: src/jade/tabs/eur.jade:89 src/jade/tabs/jpy.jade:94 +#: src/jade/tabs/usd.jade:86 +msgid "Login to your account {{1}}" +msgstr "" -#: src/jade/tabs/desktop/register.jade:95 src/jade/tabs/register.jade:150 -msgid "Show secret key" -msgstr "シークレット・キーを表示" +#: src/jade/tabs/eur.jade:92 src/jade/tabs/jpy.jade:96 +msgid "DEPOSITS AND WITHDRAWALS:" +msgstr "" -#: src/jade/tabs/desktop/register.jade:97 src/jade/tabs/register.jade:151 -msgid "Hide secret key" -msgstr "シークレット・キーを隠す" +#: src/jade/tabs/eur.jade:96 +msgid "Deposit from your bank (2-4 business days)" +msgstr "" -#: src/jade/tabs/desktop/register.jade:98 -msgid "Have you saved your secret key somewhere safe?" -msgstr "シークレット・キーを安全な場所に保管しましたか?" +#: src/jade/tabs/eur.jade:98 +msgid "Withdraw to your bank account in SEPA (2-4 business days)" +msgstr "" -#: src/jade/tabs/desktop/register.jade:101 -msgid "Yes, I saved my secret key" -msgstr "はい、シークレット・キーを保管しました。" +#: src/jade/tabs/eur.jade:100 +msgid "Withdraw to SmartyCash Card (instant)" +msgstr "" #: src/jade/tabs/exchange.jade:13 msgid "You have to be funded before you can exchange money" msgstr "両替する前に資金を供給する必要があります。" +#: src/jade/tabs/exchange.jade:23 +msgid "Buy (Market Order)" +msgstr "" + +#: src/jade/tabs/exchange.jade:24 +msgid "" +"Submit a buy order at the current market rate. Orders will execute " +"instantly." +msgstr "" + # Receive (amount) -#: src/jade/tabs/exchange.jade:19 +#: src/jade/tabs/exchange.jade:27 msgid "Receive (amount)" -msgstr "受け取る" +msgstr "" + +#: src/jade/tabs/exchange.jade:34 src/jade/tabs/widgets/balances.jade:49 +msgid "add gateway" +msgstr "ゲートウェイを追加" -#: src/jade/tabs/exchange.jade:26 src/jade/tabs/send.jade:88 +#: src/jade/tabs/exchange.jade:37 src/jade/tabs/send.jade:90 msgid "Please enter an amount." msgstr "金額を入力してください。" -#: src/jade/tabs/exchange.jade:27 src/jade/tabs/send.jade:89 -#: src/jade/tabs/trade.jade:146 src/jade/tabs/trade.jade:161 -#: src/jade/tabs/trade.jade:176 +#: src/jade/tabs/exchange.jade:38 src/jade/tabs/send.jade:91 +#: src/jade/tabs/trade.jade:153 src/jade/tabs/trade.jade:168 +#: src/jade/tabs/trade.jade:183 src/jade/tabs/trust.jade:101 msgid "Not a valid amount." msgstr "無効な金額です。" -#: src/jade/tabs/exchange.jade:28 +#: src/jade/tabs/exchange.jade:39 +msgid "" +"You are either trying to convert too little or too much XRP.Minimum amount " +"is 0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "換金しようとしているXRPが規定量の範囲外です。最小額は0.000001 XRP、最大額は1000億XRPです。" + +#: src/jade/tabs/exchange.jade:42 src/jade/tabs/send.jade:96 +#: src/jade/tabs/trust.jade:103 +msgid "Your amount has too many digits. The max number of digits is 16." +msgstr "金額は、非常に大きな桁数です。 桁の最大数は、16です。" + +#: src/jade/tabs/exchange.jade:43 msgid "Please enter an amount greater than zero." msgstr "0より大きな金額を入力してください。" -#: src/jade/tabs/exchange.jade:31 -msgid "Calculating..." -msgstr "計算中..." +#: src/jade/tabs/exchange.jade:46 +msgid "{{1}} Calculating..." +msgstr "{{1}}計算中..." -#: src/jade/tabs/exchange.jade:33 +#: src/jade/tabs/exchange.jade:50 msgid "" "Cannot convert to {{exchange.amount}} {{exchange.currency_name}}. Please " "make sure your account has enough funds, and a {{1}} to a " "{{exchange.currency_name}} gateway." msgstr "{{exchange.amount}} {{exchange.currency_name}} に変換できません。あなたのアカウントに十分な残高があること、および {{exchange.currency_name}} ゲートウェイへの {{1}} があることをご確認ください。" -#: src/jade/tabs/exchange.jade:37 +#: src/jade/tabs/exchange.jade:54 msgid "" "Sorry! Cannot convert {{exchange.amount}} {{exchange.currency_name}}. Please" " make sure your account has enough funds." msgstr "申し訳ありません!\n{{convert.amount}}{{convert.currency}}を両替することができません。\nあなたのアカウントに十分な資金があるかを確認してください。" -#: src/jade/tabs/exchange.jade:39 src/jade/tabs/send.jade:133 +#: src/jade/tabs/exchange.jade:56 src/jade/tabs/send.jade:142 msgid "Error while calculating path" msgstr "経路計算中にエラーが発生しました" -#: src/jade/tabs/exchange.jade:55 +#: src/jade/tabs/exchange.jade:60 +msgid "Exchange" +msgstr "両替" + +#: src/jade/tabs/exchange.jade:72 msgid "Exchange {{ alt.amount | rpcurrency }} {{1}}" msgstr "{{ alt.amount | rpcurrency }} {{1}} を交換する" -#: src/jade/tabs/exchange.jade:61 src/jade/tabs/send.jade:161 +#: src/jade/tabs/exchange.jade:78 src/jade/tabs/send.jade:170 msgid "Paths last updated {{1}} {{2: seconds}} {{3: second}} ago" msgstr "{{1}} {{2: seconds}} {{3: second}} 前に経路が更新されました" -#: src/jade/tabs/exchange.jade:70 +#: src/jade/tabs/exchange.jade:89 msgid "Ripple is calculating a path for your conversion." msgstr "交換経路の計算を行っています。" -#: src/jade/tabs/exchange.jade:75 +#: src/jade/tabs/exchange.jade:94 msgid "" "{{1:You are exchanging}}{{2}}{{3:to}}{{4}}{{5:You will pay at " "most}}{{6}}{{7:Are you sure?}}" msgstr "{{2}}を{{4}}{{3:に}}{{1:両替します}}。{{5:最高額は}}{{6}}です。{{7:よろしいですか?}}" -#: src/jade/tabs/exchange.jade:116 +#: src/jade/tabs/exchange.jade:139 msgid "Do another conversion" msgstr "別の両替をする" -#: src/jade/tabs/exchange.jade:118 src/jade/tabs/send.jade:243 -#: src/jade/tabs/send.jade:273 +#: src/jade/tabs/exchange.jade:141 src/jade/tabs/send.jade:257 +#: src/jade/tabs/send.jade:291 msgid "Back to balance" msgstr "残高に戻る" @@ -1071,215 +1559,280 @@ msgstr "残高に戻る" msgid "Add trust" msgstr "与信枠を追加" -#: src/jade/tabs/fund.jade:33 src/jade/tabs/fund.jade:47 -#: src/jade/tabs/trust.jade:100 src/jade/tabs/trust.jade:121 +#: src/jade/tabs/fund.jade:27 src/jade/tabs/send.jade:26 +msgid "Enter a Ripple name or contact" +msgstr "Ripple 名または連絡先を入力" + +#: src/jade/tabs/fund.jade:33 src/jade/tabs/trust.jade:73 msgid "Account does not meet the minimum XRP reserve." msgstr "アカウントは最低 XRP 準備金を満たしていません。" -#: src/jade/tabs/fund.jade:34 src/jade/tabs/fund.jade:48 -#: src/jade/tabs/send.jade:107 src/jade/tabs/trust.jade:101 -#: src/jade/tabs/trust.jade:122 -msgid "More information" -msgstr "詳細" - -#: src/jade/tabs/fund.jade:36 src/jade/tabs/trust.jade:103 +#: src/jade/tabs/fund.jade:36 src/jade/tabs/trust.jade:76 msgid "Please enter a Ripple name, contact, or address." msgstr "Ripple 名、連絡先、またはアドレスを入力してください。" -#: src/jade/tabs/fund.jade:37 src/jade/tabs/fund.jade:51 -#: src/jade/tabs/trust.jade:104 src/jade/tabs/trust.jade:125 +#: src/jade/tabs/fund.jade:37 src/jade/tabs/trust.jade:77 msgid "You've entered your own address." msgstr "ご自分のアドレスを入力しました。" -#: src/jade/tabs/fund.jade:38 src/jade/tabs/trust.jade:105 +#: src/jade/tabs/fund.jade:38 src/jade/tabs/trust.jade:78 msgid "Please enter a valid Ripple name, contact, or address." msgstr "有効な Ripple 名、連絡先、またはアドレスを入力してください。" -#: src/jade/tabs/fund.jade:50 src/jade/tabs/trust.jade:124 -msgid "Please enter a Ripple address or contact." -msgstr "Ripple アドレスまたは連絡先を入力してください。" - -#: src/jade/tabs/fund.jade:52 src/jade/tabs/trust.jade:126 -msgid "Please enter a valid Ripple address or contact." -msgstr "有効な Ripple アドレスまたは相手先を入力してください。" - -#: src/jade/tabs/fund.jade:55 src/jade/tabs/history.jade:190 -#: src/jade/tabs/trade.jade:303 src/jade/tabs/trust.jade:129 -msgid "Amount" -msgstr "金額" - -#: src/jade/tabs/fund.jade:62 src/jade/tabs/trust.jade:107 -#: src/jade/tabs/trust.jade:140 +#: src/jade/tabs/fund.jade:48 src/jade/tabs/trust.jade:80 msgid "Amount field is required" msgstr "金額フィールドは必須です" -#: src/jade/tabs/fund.jade:64 src/jade/tabs/trust.jade:109 -#: src/jade/tabs/trust.jade:142 +#: src/jade/tabs/fund.jade:50 src/jade/tabs/trust.jade:82 +#: src/jade/tabs/trust.jade:105 msgid "" "XRP can be sent without extending trust. If you really want to trust in XRP," " please use XRR currency code." msgstr "XRP は信用を与えなくても送ることができます。XRPを信用したい場合、XRR通貨コードを使ってください。" -#: src/jade/tabs/fund.jade:67 src/jade/tabs/trust.jade:112 -#: src/jade/tabs/trust.jade:145 +#: src/jade/tabs/fund.jade:53 src/jade/tabs/trust.jade:85 +#: src/jade/tabs/trust.jade:108 msgid "Currency field is required" msgstr "通貨フィールドは必須です" -#: src/jade/tabs/fund.jade:73 src/jade/tabs/trust.jade:151 +#: src/jade/tabs/fund.jade:59 src/jade/tabs/fund.jade:60 +#: src/jade/tabs/trust.jade:114 src/jade/tabs/trust.jade:115 msgid "Allow Rippling" msgstr "Ripple の使用を許可" -#: src/jade/tabs/fund/menu.jade:2 -msgid "XRP" -msgstr "XRP" +#: src/jade/tabs/fund.jade:60 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"trust. More " +"information" +msgstr "" + +#: src/jade/tabs/fund.jade:63 +msgid "Cancel" +msgstr "キャンセル" #: src/jade/tabs/fund/menu.jade:3 -msgid "BTC" -msgstr "BTC" +msgid "{{1}}XRP" +msgstr "{{1}}XRP" #: src/jade/tabs/fund/menu.jade:6 +msgid "Featured gateways" +msgstr "注目のゲートウェイ" + +#: src/jade/tabs/fund/menu.jade:7 +msgid "{{1}}BRL" +msgstr "{{1}}BRL" + +#: src/jade/tabs/fund/menu.jade:10 +msgid "{{1}}BTC" +msgstr "{{1}}BTC" + +#: src/jade/tabs/fund/menu.jade:13 +msgid "{{1}}EUR" +msgstr "{{1}}EUR" + +#: src/jade/tabs/fund/menu.jade:16 +msgid "{{1}}JPY" +msgstr "{{1}}JPY" + +#: src/jade/tabs/fund/menu.jade:19 +msgid "{{1}}MXN" +msgstr "{{1}}MXN" + +#: src/jade/tabs/fund/menu.jade:22 +msgid "{{1}}USD" +msgstr "{{1}}USD" + +#: src/jade/tabs/fund/menu.jade:25 +msgid "{{1}}XAU" +msgstr "{{1}}XAU" + +#: src/jade/tabs/fund/menu.jade:28 +msgid "Add any gateway" +msgstr "Add any gateway" + +#: src/jade/tabs/fund/menu.jade:30 msgid "Learn more about gateways" msgstr "ゲートウェイについてより学んでください" -#: src/jade/tabs/history.jade:9 -msgid "Loading history..." -msgstr "履歴を読み込み中..." +#: src/jade/tabs/gold.jade:37 +msgid "Gold Deposit" +msgstr "ゴールド入金" + +#: src/jade/tabs/gold.jade:41 +msgid "Gold Bullion International (~gbi) {{1}}" +msgstr "Gold Bullion International (~gbi) {{1}}" + +#: src/jade/tabs/gold.jade:48 +msgid "0.5% per year" +msgstr "年率0.5%" + +#: src/jade/tabs/gold.jade:56 +msgid "" +"Ripple Trade has partnered with GBI to provide easy access toXAU. By " +"continuing, you are allowing GBI to hold gold on your behalf." +msgstr "Ripple Tradeは、XAUの簡単なアクセスを提供するために、GBIとパートナーになりました。この操作を続けると、GBIが代わりに金を保持することを認めます。" + +#: src/jade/tabs/gold.jade:67 src/jade/tabs/jpy.jade:68 +#: src/jade/tabs/mxn.jade:70 +msgid "{{1}} Not connected" +msgstr "{{1}} 接続しない" + +#: src/jade/tabs/gold.jade:70 src/jade/tabs/jpy.jade:71 +#: src/jade/tabs/mxn.jade:73 +msgid "{{1}} Connected" +msgstr "{{1}}接続" + +#: src/jade/tabs/gold.jade:77 +msgid "Deposit" +msgstr "入金" + +#: src/jade/tabs/gold.jade:78 +msgid "" +"GBI does not currently support direct deposits. You can {{1}} or {{2}}." +msgstr "GBIは現在、ダイレクト入金をサポートしていません。{{1}} 又は {{2}}を利用できます。" + +#: src/jade/tabs/gold.jade:84 +msgid "Withdrawal" +msgstr "引き出し" + +#: src/jade/tabs/gold.jade:85 +msgid "" +"You can redeem the physical gold in 1 oz increments.To do so, you'll need to" +" {{1}} and arrange to have the gold shipped to you." +msgstr "あなたは1オンス単位で実物の金を交換することができます。そうするには、あなたは{{1}}する必要があり、金をあなたに出荷手配する必要があります。" + +#: src/jade/tabs/history.jade:11 +msgid "Loading History" +msgstr "履歴を読み込んでいます" -#: src/jade/tabs/history.jade:14 +#: src/jade/tabs/history.jade:16 msgid "Your account history is empty" msgstr "アカウント履歴はありません。" -#: src/jade/tabs/history.jade:20 -msgid "Filters" -msgstr "フィルター" - -#: src/jade/tabs/history.jade:23 +#: src/jade/tabs/history.jade:24 msgid "Transaction type{{1}}{{2}}" msgstr "取引タイプ: {{1}}{{2}}" -#: src/jade/tabs/history.jade:48 +#: src/jade/tabs/history.jade:37 msgid "Date{{1}}{{2}}" msgstr "日付: {{1}}{{2}}" -#: src/jade/tabs/history.jade:53 +#: src/jade/tabs/history.jade:42 msgid "Load history for specific date range" msgstr "特定の日付範囲内の取引履歴をロードする" -#: src/jade/tabs/history.jade:59 +#: src/jade/tabs/history.jade:48 msgid "From" msgstr "から" -#: src/jade/tabs/history.jade:65 +#: src/jade/tabs/history.jade:54 msgid "To" msgstr "まで" -#: src/jade/tabs/history.jade:68 +#: src/jade/tabs/history.jade:57 msgid "Filter" msgstr "フィルター" -#: src/jade/tabs/history.jade:82 -msgid "Transaction History" -msgstr "取引履歴" - -#: src/jade/tabs/history.jade:84 -msgid "Export to CSV" -msgstr "CSVへエクスポート" - -#: src/jade/tabs/history.jade:88 +#: src/jade/tabs/history.jade:64 msgid "Date" msgstr "日付" -#: src/jade/tabs/history.jade:89 src/jade/tabs/history.jade:188 +#: src/jade/tabs/history.jade:65 src/jade/tabs/history.jade:170 msgid "Description" msgstr "説明" -#: src/jade/tabs/history.jade:90 +#: src/jade/tabs/history.jade:68 src/jade/tabs/history.jade:73 +msgid "Export to CSV" +msgstr "CSVへエクスポート" + +#: src/jade/tabs/history.jade:69 msgid "Sorry, no transactions match your current filter." msgstr "申し訳ありません。現在のフィルターと一致する取引はありません。" -#: src/jade/tabs/history.jade:109 +#: src/jade/tabs/history.jade:91 msgid "You sent{{1}}to{{2}}" msgstr "{{2}} さんに {{1}} を送金しました。" -#: src/jade/tabs/history.jade:115 +#: src/jade/tabs/history.jade:97 msgid "{{1}}sent you{{2}}" msgstr "{{1}} は、あなたに {{2}} を送金しました。" -#: src/jade/tabs/history.jade:121 +#: src/jade/tabs/history.jade:103 msgid "You requested to exchange{{1}}to{{2}}" msgstr "{{1}} を {{2}} に両替するよう要求しました。" -#: src/jade/tabs/history.jade:127 +#: src/jade/tabs/history.jade:109 msgid "{{1}}now trusts you for{{2}}" msgstr "{{1}} は、{{2}} のためにあなたに信用を与えています。" -#: src/jade/tabs/history.jade:140 src/jade/tabs/history/effects.jade:45 +#: src/jade/tabs/history.jade:122 src/jade/tabs/history/effects.jade:45 msgid "You created an order to sell{{1}}for{{2}}" msgstr "{{1}} を {{2}} で売る注文をしました。" -#: src/jade/tabs/history.jade:144 src/jade/tabs/history/effects.jade:49 +#: src/jade/tabs/history.jade:126 src/jade/tabs/history/effects.jade:49 msgid "You created an order to buy{{1}}for{{2}}" msgstr "{{1}} を {{2}} で買う注文をしました。" -#: src/jade/tabs/history.jade:150 +#: src/jade/tabs/history.jade:132 msgid "You cancelled an order accepting {{1}}for{{2}}" msgstr "{{1}} を {{2}} で受け取る注文をキャンセルしました。" -#: src/jade/tabs/history.jade:163 +#: src/jade/tabs/history.jade:145 msgid "Unknown transaction" msgstr "未知の取引" -#: src/jade/tabs/history.jade:166 +#: src/jade/tabs/history.jade:148 msgid "" "The client failed to parse this transaction. The developers have been " "notified of the issue." msgstr "クライアントはこの処理を解析しませんでした。開発者は問題についての通知を受けました。" -#: src/jade/tabs/history.jade:171 +#: src/jade/tabs/history.jade:153 msgid "{{1}} sent you{{2}} and activated your account!" msgstr "{{1}} はあなたに {{2}} を送金し、あなたのアカウントを有効化しました!" -#: src/jade/tabs/history.jade:178 +#: src/jade/tabs/history.jade:160 msgid "You deposited{{1}} using {{entry.details.app.name}}" msgstr "{{1}} を {{entry.details.app.name}} を使って入金しました。" -#: src/jade/tabs/history.jade:186 +#: src/jade/tabs/history.jade:168 msgid "Balance Changes" msgstr "残高変更" -#: src/jade/tabs/history.jade:189 +#: src/jade/tabs/history.jade:171 msgid "Issuer" msgstr "発行者" -#: src/jade/tabs/history.jade:191 +#: src/jade/tabs/history.jade:173 msgid "Final balance" msgstr "最終残高" -#: src/jade/tabs/history.jade:194 +#: src/jade/tabs/history.jade:176 msgid "XRP Balance Change" msgstr "XRP残高変更" -#: src/jade/tabs/history.jade:195 +#: src/jade/tabs/history.jade:177 msgid "{{effect.currency}} Balance Change" msgstr "{{effect.currency}}残高変更" -#: src/jade/tabs/history.jade:196 -msgid "Fee" -msgstr "手数料" - -#: src/jade/tabs/history.jade:201 +#: src/jade/tabs/history.jade:183 msgid "Transaction details" msgstr "取引詳細" -#: src/jade/tabs/history.jade:202 +#: src/jade/tabs/history.jade:184 msgid "Add {{1}} to contact list" msgstr "相手先に {{1}} を追加" -#: src/jade/tabs/history.jade:208 src/jade/tabs/trade.jade:386 +#: src/jade/tabs/history.jade:189 +msgid "{{1}} Loading more" +msgstr "" + +#: src/jade/tabs/history.jade:192 src/jade/tabs/trade.jade:500 msgid "Load more" msgstr "もっと読む" -#: src/jade/tabs/history.jade:209 +#: src/jade/tabs/history.jade:193 msgid "No more transactions left" msgstr "現在、取引予約はありません。" @@ -1335,439 +1888,633 @@ msgstr "あなたと {{1}} の与信バランスは、{{2}} によって変更 msgid "Your balance has been changed by{{1}}." msgstr "残高は {{1}} によって変更されました。" -#: src/jade/tabs/kyc.jade:16 +#: src/jade/tabs/jpy.jade:38 +msgid "Japanese Yen Deposit" +msgstr "日本円入金" + +#: src/jade/tabs/jpy.jade:42 +msgid "Tokyo JPY Issuer (~tokyojpy) {{1}}" +msgstr "Tokyo JPY Issuer (~tokyojpy) {{1}}" + +#: src/jade/tabs/jpy.jade:59 +msgid "" +"Ripple Trade has partnered with Tokyo JPY Issuer to provide easier access to" +" JPY. Following this action will enable Tokyo JPY Issuer to hold JPY on your" +" behalf." +msgstr "Ripple Tradeは、JPYへの簡単なアクセスを提供するために、Tokyo JPYとパートナーになりました。この操作を続けると、Tokyo JPYにあなたの自身のJPYを保持することができます。" + +#: src/jade/tabs/jpy.jade:78 +msgid "NEW CUSTOMERS- SIGN UP AT TOKYO JPY ISSUER" +msgstr "新しいカスタマーとしてTOKYO JPYにサインアップ" + +#: src/jade/tabs/jpy.jade:79 +msgid "{{1}}at Tokyo JPY Issuer. You will need:{{2}}" +msgstr "東京JPY発行所における{{1}} あなたは以下を必要です:{{2}}" + +#: src/jade/tabs/jpy.jade:84 +msgid "A valid government-issued ID." +msgstr "有効な政府発行の身分証明" + +#: src/jade/tabs/jpy.jade:86 +msgid "A proof of address (utility bill, etc)." +msgstr "住所証明(公共料金など)" + +#: src/jade/tabs/jpy.jade:88 +msgid "A bank account under the same name." +msgstr "同じ名前の銀行口座" + +#: src/jade/tabs/jpy.jade:90 +msgid "EXISTING TOKYO JPY ISSUER CUSTOMERS" +msgstr "既存の東京JPY発行所のお客さま" + +#: src/jade/tabs/jpy.jade:100 +msgid "" +"Tokyo JPY Issuer accepts deposits and withdrawals via bank transfer. Details" +" {{1}}" +msgstr "東京JPY発行所は、銀行振込みの入出金を受け付けます。詳細{{1}}" + +#: src/jade/tabs/jpy.jade:103 +msgid "" +"To deposit, you’ll need to first deposit into your Tokyo JPY Issuer account " +"and then initiate a transfer into your Ripple account." +msgstr "入金するために、東京JPY発行所の口座に最初の入金をする必要があり、それから、あなたのRippleのアカウントに転送します。" + +#: src/jade/tabs/jpy.jade:105 +msgid "" +"To withdraw to a bank account, you’ll first send money from your Ripple " +"account to your Tokyo JPY Issuer account. Follow instructions on the Tokyo " +"JPY Issuer site to send to your bank account." +msgstr "銀行口座に出金するには、まず東京JPY発行所アカウントにリップル口座からお金をお送ります。銀行預金口座に送るには東京JPY発行所のサイトの手順に従ってください。" + +#: src/jade/tabs/kyc.jade:14 +msgid "Profile completion is only available to US residents." +msgstr "プロフィールの完成は、米国居住者だけが利用できます。" + +#: src/jade/tabs/kyc.jade:21 src/jade/tabs/trade.jade:285 msgid "Verifying your information. Please wait..." msgstr "あなたの情報の確認をしています。どうかお待ちください..." -#: src/jade/tabs/kyc.jade:18 +#: src/jade/tabs/kyc.jade:23 msgid "Your identity information has been verified." msgstr "あなたの身元情報は確認されました。" -#: src/jade/tabs/kyc.jade:20 +#: src/jade/tabs/kyc.jade:25 msgid "Your identity questions have been verified." msgstr "あなたの身元確認の質問が確認されました。" -#: src/jade/tabs/kyc.jade:22 +#: src/jade/tabs/kyc.jade:27 msgid "" "Congratulations, you've verified your identity! You will now be redirected " "back to the instant deposit page." msgstr "おめでとうございます、あなた身元を確認しました!今、あなたはインスタント入金ページに転送されるでしょう。" -#: src/jade/tabs/kyc.jade:24 +#: src/jade/tabs/kyc.jade:29 msgid "There was an error with your request. Please try again later." msgstr "あなたのリクエストにおいてエラーがありました。後で再び実行してください。" -#: src/jade/tabs/kyc.jade:26 +#: src/jade/tabs/kyc.jade:31 msgid "" "There was an error with your request. Make sure your phone number is valid " "and try again." msgstr "あなたのリクエストにエラーが発生しました。 あなたの電話番号が有効なことを確認して、もう一度ためしてください。" -#: src/jade/tabs/kyc.jade:28 +#: src/jade/tabs/kyc.jade:33 msgid "Please check your verification code and try again." msgstr "あなたの検証コードを確認してから、もう一度お試しください。" -#: src/jade/tabs/kyc.jade:30 +#: src/jade/tabs/kyc.jade:35 msgid "" "There was an error while requesting the verification code. Please try again " "later." msgstr "検証コードを要求している間にエラーが発生しました。後で再び実行してください。" -#: src/jade/tabs/kyc.jade:32 +#: src/jade/tabs/kyc.jade:37 msgid "" "We are unable to validate your identity information. Please check your " "information and try again." msgstr "私達はあなたの身元情報を検証することはできません。あなたの情報を確認してからもう一度お試しください。" -#: src/jade/tabs/kyc.jade:34 +#: src/jade/tabs/kyc.jade:39 msgid "" "We are unable to validate your identity questions. Please check your answers" " and try again." msgstr "私たちはあなたの本人確認の質問を有効にすることができません。 答えをチェックして、再試行してください。" -#: src/jade/tabs/kyc.jade:36 +#: src/jade/tabs/kyc.jade:41 +msgid "" +"Sorry, you've reached your maximum number of verification attempts. Please " +"try again in 24 hours." +msgstr "すみません、あなたはあなたの最大数の検証試みに達しました。 24時間後に再試行してください。" + +#: src/jade/tabs/kyc.jade:43 msgid "" "We can't verify your identity. Please contact us at support@ripple.com." msgstr "私たちはあなたの身元を確認することができません。support@ripple.comで連絡してください。" -#: src/jade/tabs/kyc.jade:41 +#: src/jade/tabs/kyc.jade:48 msgid "Profile Completion" msgstr "プロフィール完成" -#: src/jade/tabs/kyc.jade:45 +#: src/jade/tabs/kyc.jade:52 msgid "STEP 1: IDENTITY INFORMATION" msgstr "STEP 1: 身元情報" -#: src/jade/tabs/kyc.jade:47 +#: src/jade/tabs/kyc.jade:54 msgid "STEP 2: IDENTITY QUESTIONS" msgstr "STEP 2:本人確認の質問" -#: src/jade/tabs/kyc.jade:49 +#: src/jade/tabs/kyc.jade:56 msgid "STEP 3: TWO-FACTOR AUTHENTICATION" msgstr "STEP 3: 2段階認証" -#: src/jade/tabs/kyc.jade:56 +#: src/jade/tabs/kyc.jade:63 msgid "First Name" msgstr "名前" -#: src/jade/tabs/kyc.jade:60 +#: src/jade/tabs/kyc.jade:67 msgid "Last Name" msgstr "氏名" -#: src/jade/tabs/kyc.jade:64 +#: src/jade/tabs/kyc.jade:71 msgid "Street Address" msgstr "番地・建物名" -#: src/jade/tabs/kyc.jade:69 +#: src/jade/tabs/kyc.jade:76 msgid "City" msgstr "市町村名" -#: src/jade/tabs/kyc.jade:73 +#: src/jade/tabs/kyc.jade:80 msgid "State" msgstr "都道府県名" -#: src/jade/tabs/kyc.jade:77 +#: src/jade/tabs/kyc.jade:84 msgid "ZIP" msgstr "郵便番号" -#: src/jade/tabs/kyc.jade:81 +#: src/jade/tabs/kyc.jade:88 msgid "Date of Birth" msgstr "誕生日" -#: src/jade/tabs/kyc.jade:85 +#: src/jade/tabs/kyc.jade:92 msgid "Month{{1}}" msgstr "月{{1}}" -#: src/jade/tabs/kyc.jade:88 +#: src/jade/tabs/kyc.jade:95 msgid "Day{{1}}" msgstr "日{{1}}" -#: src/jade/tabs/kyc.jade:91 +#: src/jade/tabs/kyc.jade:98 msgid "Year{{1}}" msgstr "年{{1}}" -#: src/jade/tabs/kyc.jade:104 +#: src/jade/tabs/kyc.jade:113 msgid "Continue to identity questions" msgstr "本人確認の質問に進みます" -#: src/jade/tabs/kyc.jade:110 +#: src/jade/tabs/kyc.jade:114 src/jade/tabs/kyc.jade:129 +#: src/jade/tabs/kyc.jade:154 src/jade/tabs/kyc.jade:184 +#: src/jade/tabs/login.jade:17 +msgid "Verifying..." +msgstr "確認中..." + +#: src/jade/tabs/kyc.jade:120 msgid "{{ q.question }}{{1}}" msgstr "{{ q.question }}{{1}}" -#: src/jade/tabs/kyc.jade:113 +#: src/jade/tabs/kyc.jade:123 msgid "{{ a.answer }}" msgstr "{{ a.answer }}" -#: src/jade/tabs/kyc.jade:116 +#: src/jade/tabs/kyc.jade:128 msgid "Continue to two-factor authentication" msgstr "2段階認証を続ける" -#: src/jade/tabs/kyc.jade:124 +#: src/jade/tabs/kyc.jade:137 msgid "Two-factor authentication provides extra security for your account." msgstr "2段階認証はあなたのアカウントに格段に優れたセキュリティを提供します。" -#: src/jade/tabs/kyc.jade:132 +#: src/jade/tabs/kyc.jade:145 msgid "" "Ripple Trade has partnered with Authy to provide better security for your " "account.By continuing, you agree to Authy's {{1:Terms of Service}}." msgstr "RippleTradeは、より堅固なセキュリティをあなたのアカウントに提供するために、Authyを利用します。 続けると、あなたはAuthyのセキュリティー{{1:Terms of Service}}に同意します" -#: src/jade/tabs/kyc.jade:138 +#: src/jade/tabs/kyc.jade:153 msgid "Verify phone number" msgstr "電話番号を確認する" -#: src/jade/tabs/kyc.jade:148 +#: src/jade/tabs/kyc.jade:164 msgid "change" msgstr "変更" -#: src/jade/tabs/kyc.jade:152 +#: src/jade/tabs/kyc.jade:168 msgid "" "A verification code has been sent to +{{ currentCountryCode }} {{ " "phoneNumber }}." msgstr "検証コードは、+{{ currentCountryCode }} {{ phoneNumber }}に送信されました" -#: src/jade/tabs/kyc.jade:156 src/jade/tabs/login/form.jade:15 -#: src/jade/tabs/security.jade:88 +#: src/jade/tabs/kyc.jade:172 src/jade/tabs/login/form.jade:16 +#: src/jade/tabs/security.jade:97 msgid "Verification Code" msgstr "検証コード" -#: src/jade/tabs/login.jade:5 src/jade/tabs/login.jade:19 -#: src/jade/tabs/login.jade:83 +#: src/jade/tabs/kyc.jade:183 +msgid "Submit code" +msgstr "コードを送信する" + +#: src/jade/tabs/login.jade:4 src/jade/tabs/migrate.jade:4 +#: src/jade/tabs/recover.jade:3 src/jade/tabs/register.jade:5 +#: src/jade/tabs/register.jade:137 src/jade/tabs/register.jade:184 +msgid "Welcome to Ripple Trade" +msgstr "Ripple Tradeへようこそ" + +#: src/jade/tabs/login.jade:6 src/jade/tabs/migrate.jade:6 +#: src/jade/tabs/recover.jade:5 src/jade/tabs/register.jade:7 +#: src/jade/tabs/register.jade:139 src/jade/tabs/register.jade:186 +msgid "Trade hundreds of assets, from XRP to crypto to gold to fiat." +msgstr "XRPから仮想通貨、金、不換通貨まで何百の資産をトレードしてください" + +#: src/jade/tabs/login.jade:15 src/jade/tabs/login.jade:31 msgid "Log In" msgstr "ログイン" -#: src/jade/tabs/login.jade:7 -msgid "Verifying..." -msgstr "確認中..." - -#: src/jade/tabs/login.jade:8 +#: src/jade/tabs/login.jade:18 msgid "You have successfully verified your email address." msgstr "メールアドレスの確認に成功しました。" -#: src/jade/tabs/login.jade:9 +#: src/jade/tabs/login.jade:19 msgid "" "Email verification token is invalid. It has either expired or has been " "resent. Please check your inbox for the most recent verification email." msgstr "電子メール確認トークンは無効です。 それは期限切れになったか、再送されています。 最近の電子メールの受信箱を確認してください。" -#: src/jade/tabs/login.jade:21 +#: src/jade/tabs/login.jade:30 +msgid "Logging in" +msgstr "ログインする" + +#: src/jade/tabs/login.jade:34 msgid "Verify" msgstr "確認" -#: src/jade/tabs/login.jade:25 src/jade/tabs/login.jade:26 -#: src/jade/tabs/recover.jade:5 -msgid "Account Recovery" -msgstr "アカウント復元" - -#: src/jade/tabs/login.jade:28 src/jade/tabs/register.jade:93 +#: src/jade/tabs/login.jade:36 src/jade/tabs/register.jade:114 msgid "Already have a ripple.com/client account? {{1:Migrate}}" msgstr "既に ripple.com/client アカウントをお持ちですか? {{1:移行する}}" -#: src/jade/tabs/login.jade:30 src/jade/tabs/migrate.jade:26 -msgid "New to {{productName}}? {{1:Sign Up}}" -msgstr "{{productName}} のご使用は初めてですか? {{1:登録}}" +#: src/jade/tabs/login.jade:41 src/jade/tabs/login.jade:42 +#: src/jade/tabs/recover.jade:9 +msgid "Account Recovery" +msgstr "アカウント復元" -#: src/jade/tabs/login.jade:37 +#: src/jade/tabs/login.jade:49 msgid "{{1:You're sending money to}}{{2}}." msgstr "{{2}}へ{{1:お金を送金しています}}。" -#: src/jade/tabs/login.jade:41 +#: src/jade/tabs/login.jade:53 msgid "{{1:You're sending}}{{2}}{{3: to }}{{4}}." msgstr "{{2}}を{{4}}{{3:へ}}{{1:送金してます}}。" -#: src/jade/tabs/login.jade:51 +#: src/jade/tabs/login.jade:63 msgid "" "{{1:You're connecting to the gateway}}{{2}}{{3:for{{1}}}}{{4:with a limit " "of{{1}}}}." msgstr "" -#: src/jade/tabs/login.jade:66 +#: src/jade/tabs/login.jade:78 msgid "{{1:You're adding}}{{2}}{{3:to your contacts list}}" msgstr "{{2}}{{3:を連絡帳に}}{{1:追加しています}}" -#: src/jade/tabs/login.jade:84 +#: src/jade/tabs/login.jade:95 +msgid "{{1}} Log In" +msgstr "{{1}} ログイン" + +#: src/jade/tabs/login.jade:98 msgid "You can confirm this transaction on the next page." msgstr "次のページでこの取引を確認できます。" -#: src/jade/tabs/login.jade:85 +#: src/jade/tabs/login.jade:99 msgid "New to {{productName}}? {{1:Create a wallet}}" msgstr "{{productName}} のご使用は初めてですか? {{1:ウォレットを作成}}" -#: src/jade/tabs/login/form.jade:11 src/jade/tabs/security.jade:82 +#: src/jade/tabs/login/form.jade:12 src/jade/tabs/security.jade:91 msgid "" "Please enter the verification code from the SMS message sent to your device:" msgstr "お使いのデバイスに送信されたSMSメッセージの検証コードを入力してください:" -#: src/jade/tabs/login/form.jade:12 src/jade/tabs/security.jade:83 +#: src/jade/tabs/login/form.jade:13 src/jade/tabs/security.jade:92 msgid "" "Please enter the verification code from the Authy app installed on your " "device:" msgstr "お使いのデバイスにインストールされているAuthyアプリの検証コードを入力してください:" -#: src/jade/tabs/login/form.jade:22 +#: src/jade/tabs/login/form.jade:23 msgid "Resend" msgstr "再送する" -#: src/jade/tabs/login/form.jade:23 src/jade/tabs/security.jade:95 +#: src/jade/tabs/login/form.jade:24 src/jade/tabs/security.jade:105 msgid "Send Via SMS" msgstr "SMS経由で送信" -#: src/jade/tabs/login/form.jade:29 +#: src/jade/tabs/login/form.jade:30 msgid "Remember me on this device for 30 days" msgstr "30日間このデバイス上パスワードを記憶する" -#: src/jade/tabs/migrate.jade:5 src/jade/tabs/register.jade:10 -#: src/jade/tabs/register.jade:116 src/jade/tabs/register.jade:159 +#: src/jade/tabs/migrate.jade:10 src/jade/tabs/register.jade:17 +#: src/jade/tabs/register.jade:142 src/jade/tabs/register.jade:189 msgid "Migrate" msgstr "移行する" -#: src/jade/tabs/migrate.jade:6 +#: src/jade/tabs/migrate.jade:11 msgid "" "To begin migration, enter the name and passphrase used to encrypt your " "ripple.com/client wallet below. After migration, you will no longer be able " "to login on ripple.com/client." msgstr "統合を行うには、ripple.com/client のウォレットの暗号化に使用したユーザ名とパスワードを以下に入力してください。統合を行うと ripple.com/client にログインできなくなります。" -#: src/jade/tabs/migrate.jade:10 +#: src/jade/tabs/migrate.jade:15 msgid "Existing ripple.com/client Wallet name" msgstr "既存の ripple.com/client ウォレット名" -#: src/jade/tabs/migrate.jade:13 +#: src/jade/tabs/migrate.jade:18 msgid "Passphrase" msgstr "パスワード" -#: src/jade/tabs/migrate.jade:25 +#: src/jade/tabs/migrate.jade:31 msgid "Begin Migration" msgstr "移行を開始" -#: src/jade/tabs/migrate.jade:28 +#: src/jade/tabs/migrate.jade:32 +msgid "New to {{productName}}? {{1:Sign Up}}" +msgstr "{{productName}} のご使用は初めてですか? {{1:登録}}" + +#: src/jade/tabs/migrate.jade:34 msgid "Have a {{productName}} account? {{1:Log In}}" msgstr " {{productName}} のアカウントをお持ちですか?{{1:ログイン}}" -#: src/jade/tabs/recover.jade:7 +#: src/jade/tabs/mxn.jade:38 +msgid "Mexican Peso Deposit" +msgstr "メキシコペソ入金" + +#: src/jade/tabs/mxn.jade:42 +msgid "Bitso (~bitso) {{1}}{{2}}" +msgstr "Bitso (~bitso) {{1}}{{2}}" + +#: src/jade/tabs/mxn.jade:47 +msgid "All countries except the US" +msgstr "すべての国(米国以外)" + +#: src/jade/tabs/mxn.jade:58 +msgid "" +"Ripple Trade has partnered with Bitso to provide easy access to MXN (Mexican" +" Peso). By continuing, you agree with Bitso’s terms of service. Following " +"this action will enable Bitso to hold MXN on your behalf." +msgstr "" + +#: src/jade/tabs/mxn.jade:80 +msgid "TO FUND/REDEEM MEXICAN PESO:" +msgstr "" + +#: src/jade/tabs/mxn.jade:82 +msgid "Register or login at {{1}}to initiate deposits and withdrawals." +msgstr "" + +#: src/jade/tabs/mxn.jade:86 +msgid "" +"A valid, non-US, state-issued ID (passport, driver's license, etc)." +msgstr "" + +#: src/jade/tabs/mxn.jade:87 +msgid "" +"Proof of address (utility bill or other type of bill that has your address " +"on it). Verification is required for peso deposits or withdrawals." +msgstr "" + +#: src/jade/tabs/mxn.jade:89 +msgid "" +"To fund your Ripple account, see the below options. Once a balance is " +"deposited with Bitso, you can send it to your Ripple account using the Bitso" +" Dashboard." +msgstr "以下の方法でRippleアカウントに入金可能です。Bitsoに" + +#: src/jade/tabs/mxn.jade:90 +msgid "" +"To withdraw from your Ripple account, click on the 'Redeem from Ripple' " +"button on the Bitso Dashboard." +msgstr "" + +#: src/jade/tabs/mxn.jade:92 src/jade/tabs/usd.jade:89 +msgid "DEPOSIT OPTIONS" +msgstr "入金方法" + +#: src/jade/tabs/mxn.jade:94 +msgid "Bitso accepts deposits by the following methods:" +msgstr "Bitsoへの入金方法:" + +#: src/jade/tabs/mxn.jade:96 src/jade/tabs/mxn.jade:106 +msgid "Bank Wire" +msgstr "銀行振込" + +#: src/jade/tabs/mxn.jade:97 src/jade/tabs/mxn.jade:107 +msgid "SPEI (Mexican instant inter-bank transfer)" +msgstr "SPEI(メキシコ銀行間即時振込)" + +#: src/jade/tabs/mxn.jade:98 src/jade/tabs/mxn.jade:108 +msgid "Bitcoin" +msgstr "Bitcoin" + +#: src/jade/tabs/mxn.jade:99 +msgid "MXN Cash (at locations across Mexico)" +msgstr "MXN Cash (メキシコ各地)" + +#: src/jade/tabs/mxn.jade:100 +msgid "Pademobile wallet" +msgstr "Pademobile wallet" + +#: src/jade/tabs/mxn.jade:102 src/jade/tabs/usd.jade:99 +msgid "WITHDRAWAL OPTIONS" +msgstr "出金方法" + +#: src/jade/tabs/mxn.jade:104 +msgid "Bitso offers withdrawals via the following methods:" +msgstr "Bitsoからの出金方法:" + +#: src/jade/tabs/recover.jade:11 msgid "" "You can only recover your Ripple Trade account with a secret key. You will " "recover the account's Ripple name, contacts and other information." msgstr "Ripple Trade アカウントは、シークレット・キーのみで復元できます。その際、アカウントの Ripple 名や相手先などが復元されます。" -#: src/jade/tabs/recover.jade:9 src/jade/tabs/recover.jade:28 +#: src/jade/tabs/recover.jade:13 src/jade/tabs/recover.jade:33 msgid "Ripple Name" msgstr "Ripple 名" -#: src/jade/tabs/recover.jade:14 +#: src/jade/tabs/recover.jade:18 msgid "Secret Key" msgstr "シークレット・キー" -#: src/jade/tabs/recover.jade:17 +#: src/jade/tabs/recover.jade:21 msgid "Unable to recover account." msgstr "アカウントを復元できませんでした。" -#: src/jade/tabs/recover.jade:22 src/jade/tabs/register.jade:74 +#: src/jade/tabs/recover.jade:27 src/jade/tabs/register.jade:95 msgid "Recover Account" msgstr "アカウントを復元する" -#: src/jade/tabs/recover.jade:24 src/jade/tabs/recover.jade:50 +#: src/jade/tabs/recover.jade:29 src/jade/tabs/recover.jade:56 msgid "Set Password" msgstr "パスワードを設定" -#: src/jade/tabs/recover.jade:26 +#: src/jade/tabs/recover.jade:31 msgid "" "Your account was sucessfully recovered. Please re-encrypt your account with " "a new password." msgstr "アカウントの復元に成功しました。新しいパスワードを入力し、暗号化を再実行してください。" -#: src/jade/tabs/recover.jade:36 src/jade/tabs/register.jade:45 -#: src/jade/tabs/security.jade:119 +#: src/jade/tabs/recover.jade:41 src/jade/tabs/register.jade:62 +#: src/jade/tabs/security.jade:132 msgid "" "Your password is weak. It does not contain numbers and symbols or it is too " "short." msgstr "パスワードが脆弱です。文字、数字、シンボルが混合されていないか、または短すぎます。" -#: src/jade/tabs/recover.jade:38 src/jade/tabs/register.jade:47 -#: src/jade/tabs/security.jade:121 +#: src/jade/tabs/recover.jade:43 src/jade/tabs/register.jade:65 +#: src/jade/tabs/security.jade:134 msgid "" "Your Ripple name and password cannot match. Please create a new password." msgstr "Ripple 名とパスワードは一致してはなりません。別のパスワードを作成してください。" -#: src/jade/tabs/recover.jade:45 +#: src/jade/tabs/recover.jade:45 src/jade/tabs/register.jade:67 +#: src/jade/tabs/security.jade:136 +msgid "Confirm password" +msgstr "パスワードを確認" + +#: src/jade/tabs/recover.jade:48 src/jade/tabs/register.jade:71 +#: src/jade/tabs/security.jade:139 +msgid "Passwords do not match" +msgstr "パスワードが一致しません" + +#: src/jade/tabs/recover.jade:50 msgid "Unable to change your account password." msgstr "アカウントパスワードを変更できませんでした。" -#: src/jade/tabs/recover.jade:49 +#: src/jade/tabs/recover.jade:55 msgid "Updating..." msgstr "更新中..." -#: src/jade/tabs/recover.jade:51 +#: src/jade/tabs/recover.jade:57 msgid "Remember your password? {{1:Log In}}" msgstr "パスワードを思い出しました? {{1:ログイン}}" -#: src/jade/tabs/register.jade:5 -msgid "" -"Ripple Trade is the only platform where you can trade between stores of " -"value spanning fiat, crypto, precious metals and more." -msgstr "Ripple Trade は、法定通貨・暗号通貨・貴金属などに渡る、価値の記録をトレードできる唯一のプラットフォームです。" - -#: src/jade/tabs/register.jade:9 src/jade/tabs/register.jade:90 -#: src/jade/tabs/register.jade:115 src/jade/tabs/register.jade:158 +#: src/jade/tabs/register.jade:13 src/jade/tabs/register.jade:109 +#: src/jade/tabs/register.jade:141 src/jade/tabs/register.jade:188 msgid "Sign Up" msgstr "登録" -#: src/jade/tabs/register.jade:12 src/jade/tabs/register.jade:14 -#: src/jade/tabs/register.jade:16 src/jade/tabs/register.jade:120 -#: src/jade/tabs/register.jade:122 src/jade/tabs/register.jade:161 -#: src/jade/tabs/register.jade:163 src/jade/tabs/register.jade:165 +#: src/jade/tabs/register.jade:19 src/jade/tabs/register.jade:21 +#: src/jade/tabs/register.jade:23 src/jade/tabs/register.jade:146 +#: src/jade/tabs/register.jade:148 src/jade/tabs/register.jade:191 +#: src/jade/tabs/register.jade:193 src/jade/tabs/register.jade:195 msgid "Step {{1}}" msgstr "ステップ {{1}}" -#: src/jade/tabs/register.jade:19 +#: src/jade/tabs/register.jade:26 msgid "Create Ripple name" msgstr "Ripple 名を作成" -#: src/jade/tabs/register.jade:20 +#: src/jade/tabs/register.jade:27 msgid "" "Please choose a Ripple name below. You will use this Ripple name to login to" " Ripple Trade, so remember it! Ripple names are unique and public, like your" " current Ripple address. {{1}}" msgstr "以下から Ripple 名を選択してください。この Ripple 名は Ripple Trade にログインする際に必要となりますので、忘れないようにしてください! Ripple 名は現在の Ripple アドレスのように固有であり、公開されます。 {{1}}" -#: src/jade/tabs/register.jade:21 +#: src/jade/tabs/register.jade:28 msgid "Learn More" msgstr "もっと詳しく" -#: src/jade/tabs/register.jade:36 +#: src/jade/tabs/register.jade:41 +msgid "Reserved for {{usernameReservedFor}}" +msgstr "{{usernameReservedFor}}のため保留" + +#: src/jade/tabs/register.jade:43 +msgid "" +"This name belongs to a high-traffic website and has been reserved to prevent" +" phishing." +msgstr "この名前は通信量が多いウェブサイトに属し、フィッシングを防止するために確保されました。" + +#: src/jade/tabs/register.jade:49 msgid "You can only use the following characters: a-z, 0-9 and hyphens (-)" msgstr "以下の文字のみを利用することができます: a-z, 0-9 およびハイフン (-)" -#: src/jade/tabs/register.jade:39 +#: src/jade/tabs/register.jade:55 msgid "Cannot use hyphens in a row (--)" msgstr "ハイフンを重ねて (--) 使用することはできません" -#: src/jade/tabs/register.jade:60 +#: src/jade/tabs/register.jade:80 msgid "Email address is invalid" msgstr "無効なメールアドレスです。" -#: src/jade/tabs/register.jade:62 src/jade/tabs/security.jade:138 +#: src/jade/tabs/register.jade:82 src/jade/tabs/security.jade:151 msgid "Secret key" msgstr "シークレット・キー" -#: src/jade/tabs/register.jade:63 src/jade/tabs/send.jade:50 -#: src/jade/tabs/trade.jade:331 src/jade/tabs/trade.jade:337 +#: src/jade/tabs/register.jade:83 src/jade/tabs/send.jade:43 +#: src/jade/tabs/trade.jade:441 msgid "hide" msgstr "隠す" -#: src/jade/tabs/register.jade:67 +#: src/jade/tabs/register.jade:88 msgid "Secret Account Key is invalid" msgstr "シークレット・アカウント・キーが無効です。" -#: src/jade/tabs/register.jade:69 +#: src/jade/tabs/register.jade:90 msgid "" "The account ~{{1}}{{2}} has already been created using this secret key." msgstr "アカウント~{{1}}{{2}}は既にこのシークレット・キーを使って作られています。" -#: src/jade/tabs/register.jade:75 -msgid "Need to use your secret key? {{1}}" -msgstr "シークレット・キーを使う必要がありますか?{{1}}" - -#: src/jade/tabs/register.jade:77 -msgid "Use key" -msgstr "キーを使用する" - -#: src/jade/tabs/register.jade:80 -msgid "I agree to the {{productName}} {{1:end-user license agreement}}" -msgstr "{{productName}} {{1:エンドユーザ使用許諾契約}} に同意します。" +#: src/jade/tabs/register.jade:98 +msgid "I agree to the {{productName}} {{1:Terms of Use}}" +msgstr "私は{{productName}} {{1:Terms of Use}}に同意します。" -#: src/jade/tabs/register.jade:83 +#: src/jade/tabs/register.jade:101 msgid "" "Please see our {{1}} to see how we collect, use and share information about " "you" msgstr " 個人情報の取得、利用目的や共有については {{1}} までアクセスしてください。" -#: src/jade/tabs/register.jade:91 +#: src/jade/tabs/register.jade:110 msgid "Migrate Account" msgstr "アカウントを移行する" -#: src/jade/tabs/register.jade:100 +#: src/jade/tabs/register.jade:111 +msgid "Need to use your secret key? {{1}}" +msgstr "シークレット・キーを使う必要がありますか?{{1}}" + +#: src/jade/tabs/register.jade:113 +msgid "Use key" +msgstr "キーを使用する" + +#: src/jade/tabs/register.jade:121 msgid "An error occurred during registration. Please try again later." msgstr "登録中にエラーが発生しました。しばらく待ってから再実行してください。" -#: src/jade/tabs/register.jade:101 +#: src/jade/tabs/register.jade:122 msgid "The reported error was: {{1}}" msgstr "報告されたエラーは {{1}} でした。" -#: src/jade/tabs/register.jade:109 +#: src/jade/tabs/register.jade:131 msgid "" "There is already a wallet using this username, please choose a different " "username and try again." msgstr "既にこのユーザー名を使用しているウォレットがあります。別のユーザー名を入力し、再実行してください。" -#: src/jade/tabs/register.jade:124 +#: src/jade/tabs/register.jade:150 msgid "" "By proceeding, you understand that Ripple Trade does not provide a password " "or secret key recovery mechanism. If you forget your Ripple name/password " "and secret key, you will be unable to access this Ripple account." msgstr "続行する前に、Ripple Trade はパスワードやシークレット・キーの復活機構を提供しないことをご理解ください。もし Ripple 名やパスワード、シークレット・キーを忘れてしまった場合には、この Ripple アカウントにはアクセスできなくなります。" -#: src/jade/tabs/register.jade:129 +#: src/jade/tabs/register.jade:155 msgid "" "You are now migrating your account- meaning you'll no longer be able to " "access your account from ripple.com/client. You will retain all of your " @@ -1776,907 +2523,1123 @@ msgid "" "continue your migration." msgstr "あなたのアカウントを統合する準備ができました ― これは ripple.com/client からあなたのアカウントにアクセスできなくなることを意味しています。口座残高、連絡先、アカウント履歴はすべて維持されます。あなたのアカウントは以前と同じシークレット・キーを利用します。シークレット・キーを既に保存している場合には、統合作業をそのまま続行してください。" -#: src/jade/tabs/register.jade:136 +#: src/jade/tabs/register.jade:162 msgid "" "The secret key unlocks access to all your account funds in the event you " "lose your Ripple name or password. Please write it down and store it " "somewhere private and safe. {{1:Read more}} about keys and wallet safety." msgstr "シークレット・キーにより、Ripple 名やパスワードを失ってしまった場合にアカウントのすべての残高のロックを解除することができます。メモを取り、人目につかない安全な場所に保管してください。キーとウォレットの安全性については{{1:こちらをご覧ください}}。" -#: src/jade/tabs/register.jade:141 +#: src/jade/tabs/register.jade:167 msgid "" "If you have not saved your secret key, please write it down and store it " "somewhere private and safe. In the event you lose your Ripple name or " "password, you can use this secret key to recover your funds." msgstr "シークレット・キーをまだ保存していない場合には、メモを取り、人目につかない安全な場所に保管してください。Ripple 名やパスワードを喪失してしまった場合には、このシークレット・キーを使用して資金を復活させることができます。" -#: src/jade/tabs/register.jade:154 +#: src/jade/tabs/register.jade:176 +msgid "Show secret key" +msgstr "シークレット・キーを表示" + +#: src/jade/tabs/register.jade:177 +msgid "Hide secret key" +msgstr "シークレット・キーを隠す" + +#: src/jade/tabs/register.jade:180 msgid "Continue to email verification" msgstr "メールの検証を続ける" -#: src/jade/tabs/register.jade:167 +#: src/jade/tabs/register.jade:197 msgid "" "We’ve sent an email to {{1}}. To complete registration, click the link in " "the email." msgstr "{{1}} へメールを送信しました。登録を完了するには、メール内のリンクをクリックしてください。" -#: src/jade/tabs/register.jade:170 +#: src/jade/tabs/register.jade:200 msgid "Email token has been resent." msgstr "メールトークンが再送信されました。" -#: src/jade/tabs/register.jade:173 +#: src/jade/tabs/register.jade:203 msgid "Email Address:" msgstr "Eメールアドレス:" -#: src/jade/tabs/register.jade:178 +#: src/jade/tabs/register.jade:210 msgid "Re-send Email" msgstr "メールを再送信" -#: src/jade/tabs/security.jade:5 +#: src/jade/tabs/security.jade:7 msgid "Active Session Timeout" msgstr "アクティブセッションのタイムアウト" -#: src/jade/tabs/security.jade:6 +#: src/jade/tabs/security.jade:8 msgid "" "To view or edit your security settings, you must currently have an active " "session." msgstr "あなたのセキュリティ設定を見るか、編集するためには、あなたには現在、アクティブなセッションを持っていなければなりません" -#: src/jade/tabs/security.jade:13 +#: src/jade/tabs/security.jade:16 msgid "Restore Session" msgstr "セッションの復元" -#: src/jade/tabs/security.jade:22 +#: src/jade/tabs/security.jade:25 msgid "Your Ripple password has been changed, please login again" msgstr "Ripple パスワードは変更されました。再びログインしてください。" -#: src/jade/tabs/security.jade:24 +#: src/jade/tabs/security.jade:27 msgid "Couldn't change your Ripple password, please try again later." msgstr "Rippleパスワードを変更することができませんでした。しばらく待ってから再実行してください。" -#: src/jade/tabs/security.jade:27 +#: src/jade/tabs/security.jade:30 msgid "Changing your Ripple password..." msgstr "あなたのRippleパスワードを変更しています..." -#: src/jade/tabs/security.jade:28 +#: src/jade/tabs/security.jade:31 msgid "Your Ripple password has been changed successfully." msgstr "Ripple パスワードの変更に成功しました。" -#: src/jade/tabs/security.jade:29 +#: src/jade/tabs/security.jade:32 msgid "Unable to load Two-factor authentication settings." msgstr "2段階認証の設定をロードできません。" -#: src/jade/tabs/security.jade:30 +#: src/jade/tabs/security.jade:33 msgid "Error saving Two-factor authentication settings." msgstr "2段階認証の設定保存時のエラー" -#: src/jade/tabs/security.jade:31 +#: src/jade/tabs/security.jade:34 msgid "The verification code is invalid." msgstr "検証コードは無効です。" -#: src/jade/tabs/security.jade:32 +#: src/jade/tabs/security.jade:36 msgid "Two-factor authentication has been successfully enabled." msgstr "2段階認証が正常に有効になりました。" -#: src/jade/tabs/security.jade:33 +#: src/jade/tabs/security.jade:37 msgid "Two-factor authentication has been successfully disabled." msgstr "2段階認証が正常に無効になりました。" +#: src/jade/tabs/security.jade:38 +msgid "Password protection has been successfully enabled." +msgstr "パスワード保護は正常に有効になりました。" + #: src/jade/tabs/security.jade:39 +msgid "Password protection has been successfully disabled." +msgstr "パスワード保護は正常に無効になりました。" + +#: src/jade/tabs/security.jade:45 msgid "Security settings" msgstr "セキュリティー設定" -#: src/jade/tabs/security.jade:44 +#: src/jade/tabs/security.jade:51 msgid "Loading Two-factor authentication settings..." msgstr "2段階認証の設定を読み込んでいます..." -#: src/jade/tabs/security.jade:47 +#: src/jade/tabs/security.jade:55 msgid "Enabled" msgstr "有効" -#: src/jade/tabs/security.jade:48 +#: src/jade/tabs/security.jade:56 msgid "Disabled" msgstr "無効" -#: src/jade/tabs/security.jade:50 +#: src/jade/tabs/security.jade:58 msgid "disable" msgstr "無効化" -#: src/jade/tabs/security.jade:52 +#: src/jade/tabs/security.jade:60 msgid "enable" msgstr "有効化" -#: src/jade/tabs/security.jade:58 +#: src/jade/tabs/security.jade:66 msgid "" "Authy is providing two-factor authentication for Ripple Trade. To enable " "two-factor authentication, you must share some information with Authy." msgstr "Authy は Ripple Trade に対して2段階認証を提供しています。2段階認証を有効化するためには、一部の情報を Authy と共有する必要があります。" -#: src/jade/tabs/security.jade:61 +#: src/jade/tabs/security.jade:69 msgid "- Your email address:" msgstr "- あなたの電子メールアドレス:" -#: src/jade/tabs/security.jade:64 +#: src/jade/tabs/security.jade:72 msgid "- Your phone number:" msgstr "- あなたの電話番号:" -#: src/jade/tabs/security.jade:66 +#: src/jade/tabs/security.jade:74 msgid "By proceeding, you agree to the Authy {{1: terms of service.}}" msgstr "続行すると、Authy の{{1:利用規約}}に同意したことになります。" -#: src/jade/tabs/security.jade:70 +#: src/jade/tabs/security.jade:78 msgid "Share" msgstr "共有" -#: src/jade/tabs/security.jade:75 +#: src/jade/tabs/security.jade:84 msgid "Saving settings..." msgstr "設定を保存しています..." -#: src/jade/tabs/security.jade:76 +#: src/jade/tabs/security.jade:85 msgid "Disabling Two-factor authentication..." msgstr "2段階認証を無効化しています..." -#: src/jade/tabs/security.jade:77 +#: src/jade/tabs/security.jade:86 msgid "Enabling Two-factor authentication..." msgstr "2段階認証を有効化しています..." -#: src/jade/tabs/security.jade:94 +#: src/jade/tabs/security.jade:104 msgid "Resend Code" msgstr "コードを再送する" -#: src/jade/tabs/security.jade:99 +#: src/jade/tabs/security.jade:110 msgid "Enable" msgstr "有効" -#: src/jade/tabs/security.jade:103 +#: src/jade/tabs/security.jade:114 msgid "Ripple password" msgstr "Ripple パスワード" -#: src/jade/tabs/security.jade:116 +#: src/jade/tabs/security.jade:129 msgid "New password" msgstr "新しいパスワード" -#: src/jade/tabs/security.jade:140 +#: src/jade/tabs/security.jade:153 msgid "" "Your secret key unlocks access to your account funds. Please write it down " "and store it somewhere private and safe. In the event you lose your Ripple " "name or password, you can use this secret key to recover your funds." msgstr "シークレット・キーによりあなたの資金へのアクセスを解除することができます。メモを取り、人目につかない安全な場所に保管してください。Ripple 名やパスワードを忘れた場合には、このシークレット・キーを使って資金を復活させることができます。" -#: src/jade/tabs/security.jade:150 +#: src/jade/tabs/security.jade:165 msgid "Password protection for transactions" msgstr "トランザクションに対するパスワード保護" -#: src/jade/tabs/security.jade:153 +#: src/jade/tabs/security.jade:168 msgid "" "If you turn off password requests, you’ll still need to enter your password " "after each page refresh." msgstr "パスワード要求をやめたとしても、ページを新しく読み込んだ場合には毎回パスワードを入力する必要があります。" -#: src/jade/tabs/security.jade:161 +#: src/jade/tabs/security.jade:176 msgid "Yes" msgstr "はい" -#: src/jade/tabs/security.jade:162 +#: src/jade/tabs/security.jade:177 msgid "No" msgstr "いいえ" +#: src/jade/tabs/security.jade:192 +msgid "Delete Ripple Trade account" +msgstr "Ripple Tradeアカウントを削除" + +#: src/jade/tabs/security.jade:194 +msgid "" +"This deletes your Ripple Trade account. You will no longer be able to login " +"to Ripple Trade and your account data will be deleted. However, you can " +"still access your funds using your secret key." +msgstr "これであなたのRipple Tradeアカウントを削除します。 あなたはもはやRipple Tradeにログインできないでしょう、そして、あなたのアカウント・データは削除されます。 しかし、あなたのシークレットキーを使用することによってまだ資金にアクセスすることはできます。" + #: src/jade/tabs/send.jade:12 msgid "You have to be funded before you can send money" msgstr "送金する前に資金を供給する必要があります。" -#: src/jade/tabs/send.jade:19 src/jade/tabs/send.jade:32 +#: src/jade/tabs/send.jade:25 msgid "Recipient" msgstr "相手先" -#: src/jade/tabs/send.jade:24 src/jade/tabs/send.jade:37 +#: src/jade/tabs/send.jade:30 msgid "Please enter a recipient." msgstr "相手先を入力してください。" -#: src/jade/tabs/send.jade:26 +#: src/jade/tabs/send.jade:32 msgid "" "Recipient should be a Ripple name, a contact, or Ripple/Bitcoin address." msgstr "受取人は Ripple 名、相手先、または Ripple か ビットコインアドレスでなければなりません。" -#: src/jade/tabs/send.jade:28 src/jade/tabs/send.jade:41 +#: src/jade/tabs/send.jade:34 msgid "This email address is not Ripple-enabled." msgstr "このメールアドレスは、Ripple に対応していません。" -#: src/jade/tabs/send.jade:39 -msgid "Recipient should be a contact or Ripple/Bitcoin address." -msgstr "受取人は相手先、または Ripple かビットコインアドレスでなければなりません。" - -#: src/jade/tabs/send.jade:45 +#: src/jade/tabs/send.jade:38 msgid "Show destination tag" msgstr "宛先タグを見る" -#: src/jade/tabs/send.jade:54 +#: src/jade/tabs/send.jade:47 msgid "Destination cannot be blank." msgstr "宛先は空欄にできません" -#: src/jade/tabs/send.jade:55 +#: src/jade/tabs/send.jade:48 msgid "" "Recipient requires a destination tag to be specified for the transaction. If" " you don't know the destination tag, please contact them before doing a " "transaction." msgstr "受取人は、処理するために宛先タグが指定される必要があります。\n宛先タグを知らない場合は、取引を行う前に受取人と連絡をとってください。" -#: src/jade/tabs/send.jade:60 +#: src/jade/tabs/send.jade:53 msgid "Source tag" msgstr "ソースタグ" -#: src/jade/tabs/send.jade:63 +#: src/jade/tabs/send.jade:56 msgid "Invalid source tag" msgstr "無効のソースタグ" -#: src/jade/tabs/send.jade:75 +#: src/jade/tabs/send.jade:59 +msgid "Invoice ID" +msgstr "インボイスID" + +#: src/jade/tabs/send.jade:62 +msgid "Invoice ID must not be more than 64 characters long." +msgstr "インボイスIDは長さ64文字以下でなければなりません。" + +#: src/jade/tabs/send.jade:77 msgid "Recipient will receive" msgstr "相手先が受け取る金額" -#: src/jade/tabs/send.jade:86 +#: src/jade/tabs/send.jade:88 msgid "{{send.recipient | rpcontactname}} can't receive this currency." msgstr "{{send.recipient | rpcontactname}} はこの通貨を受け取ることができません。" -#: src/jade/tabs/send.jade:90 +#: src/jade/tabs/send.jade:92 src/jade/tabs/trust.jade:102 msgid "Amount must be greater than zero." msgstr "金額はゼロより大きくなければなりません。" -#: src/jade/tabs/send.jade:91 +#: src/jade/tabs/send.jade:93 msgid "" -"This transaction exceeds your balance, you can send a max. of " -"{{account.max_spend | rpamount:{rel_precision: 0} }} XRP" -msgstr "この取引は、あなたの残高を超えています。最大 {{account.max_spend | rpamount:{rel_precision: 0} }} XRPを送金できます。" +"You are either trying to send too little or too much XRP.Minimum amount is " +"0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "送金しようとしているXRPが規定量の範囲外です。最小送金額は0.000001 XRP、最大送金額は1000億XRPです。" -#: src/jade/tabs/send.jade:94 +#: src/jade/tabs/send.jade:97 msgid "" "Recipient does not allow XRP payments. Are you sure you want to send XRP " "anyway?" msgstr "相手先は、XRP での支払いを許可していません。XRP を送金してもよろしいですか?" -#: src/jade/tabs/send.jade:96 +#: src/jade/tabs/send.jade:99 msgid "" "{{send.recipient | rpcontactname}}trusts you for {{send.trust_limit | " "rpamount}} {{send.trust_limit | rpcurrency}}." msgstr "{{send.recipient | rpcontactname}} は、{{send.trust_limit | rpamount}} {{send.trust_limit | rpcurrency}} のため、あなたに信用を与えています。" -#: src/jade/tabs/send.jade:100 +#: src/jade/tabs/send.jade:103 msgid "Send XRP" msgstr "XRPを送金する" -#: src/jade/tabs/send.jade:104 +#: src/jade/tabs/send.jade:107 msgid "" "Destination account is unfunded; send at least {{send.xrp_deficiency | " "rpamount}} XRP to fund it.{{1}}" msgstr "送金先アカウントには資金がありません。資金を提供するには、最低 {{send.xrp_deficiency | rpamount}} XRPを送金してください。{{1}}" -#: src/jade/tabs/send.jade:109 +#: src/jade/tabs/send.jade:114 msgid "Checking" msgstr "チェック中" -#: src/jade/tabs/send.jade:111 +#: src/jade/tabs/send.jade:117 msgid "Analyzing address" msgstr "アドレスを検証中" -#: src/jade/tabs/send.jade:113 +#: src/jade/tabs/send.jade:120 msgid "Scanning accepted currencies" msgstr "受け取った通貨を読み込んでいます" -#: src/jade/tabs/send.jade:115 +#: src/jade/tabs/send.jade:123 msgid "Requesting quote" msgstr "引用符を要求中" -#: src/jade/tabs/send.jade:117 +#: src/jade/tabs/send.jade:126 msgid "Calculating paths" msgstr "経路を検索中" -#: src/jade/tabs/send.jade:119 +#: src/jade/tabs/send.jade:129 msgid "Calculating alternatives" msgstr "代案を計算中" -#: src/jade/tabs/send.jade:121 +#: src/jade/tabs/send.jade:130 msgid "" "You cannot send {{send.amount}} {{send.currency}} to {{send.recipient}}. " "Either your account has insufficient funds, or {{send.recipient}} doesn't " "accept {{send.currency}}." msgstr "{{send.amount}} {{send.currency}} を {{send.recipient}} へ送金できません。アカウントの残高が不足しているか、{{send.recipient}} は {{send.currency}} を受け付けていません。" -#: src/jade/tabs/send.jade:125 +#: src/jade/tabs/send.jade:134 msgid "" "You cannot send {{send.amount}} {{send.currency}} to{{send.recipient}}. Your" " account has insufficient funds." msgstr "{{send.amount}} {{send.currency}} を {{send.recipient}} へ送金できません。アカウントの残高が不足しています。" -#: src/jade/tabs/send.jade:128 +#: src/jade/tabs/send.jade:137 msgid "There are no valid currency choices for this destination." msgstr "この宛先に対する有効な通貨の選択肢がありません。" -#: src/jade/tabs/send.jade:130 +#: src/jade/tabs/send.jade:139 msgid "Error while retrieving quote for outbound payment. {{1}}" msgstr "送金の引用符を取得する際にエラーが発生しました。{{1}}" -#: src/jade/tabs/send.jade:139 +#: src/jade/tabs/send.jade:148 msgid "You can send" msgstr "以下の金額を送金する" -#: src/jade/tabs/send.jade:141 +#: src/jade/tabs/send.jade:150 msgid "Or you can send" msgstr "もしくは、以下の金額を送金する" -#: src/jade/tabs/send.jade:155 +#: src/jade/tabs/send.jade:164 msgid "Send {{ alt.amount | rpcurrency }} {{1}}" msgstr "{{ alt.amount | rpcurrency }} {{1}} を送金する" -#: src/jade/tabs/send.jade:170 +#: src/jade/tabs/send.jade:181 msgid "Ripple is calculating a path for your payment." msgstr "支払いの経路を計算しています。" -#: src/jade/tabs/send.jade:176 +#: src/jade/tabs/send.jade:186 msgid "You are sending {{1}} to" msgstr "{{1}} の受取人" -#: src/jade/tabs/send.jade:184 +#: src/jade/tabs/send.jade:194 msgid "Destination tag: {{send.dt}}" msgstr "宛先タグ: {{send.dt}}" -#: src/jade/tabs/send.jade:185 +#: src/jade/tabs/send.jade:195 msgid "They will receive" msgstr "相手先が受信する金額" -#: src/jade/tabs/send.jade:188 +#: src/jade/tabs/send.jade:198 msgid "You will pay at most" msgstr "あなたの最大支払金額" -#: src/jade/tabs/send.jade:194 +#: src/jade/tabs/send.jade:204 msgid "Are you sure?" msgstr "続けてもよろしいですか?" -#: src/jade/tabs/send.jade:200 +#: src/jade/tabs/send.jade:210 msgid "Password required to unlock wallet" msgstr "ウォレットをアンロックするにはパスワードが必要です" -#: src/jade/tabs/send.jade:224 src/jade/tabs/send.jade:252 +#: src/jade/tabs/send.jade:234 src/jade/tabs/send.jade:266 msgid "Contact saved!" msgstr "相手先を保存しました!" -#: src/jade/tabs/send.jade:226 src/jade/tabs/send.jade:254 +#: src/jade/tabs/send.jade:236 src/jade/tabs/send.jade:268 msgid "Add this address to contacts" msgstr "相手先にこのアドレスを追加" -#: src/jade/tabs/send.jade:230 src/jade/tabs/send.jade:258 +#: src/jade/tabs/send.jade:242 src/jade/tabs/send.jade:274 msgid "Name this user" msgstr "このユーザーに名を付ける" -#: src/jade/tabs/send.jade:236 src/jade/tabs/send.jade:265 -#: src/jade/tabs/trust.jade:283 +#: src/jade/tabs/send.jade:246 src/jade/tabs/send.jade:278 +msgid "This contact already exists, please choose another name." +msgstr "この相手先は既に存在します。他の名前を使用して下さい。" + +#: src/jade/tabs/send.jade:250 src/jade/tabs/send.jade:283 +#: src/jade/tabs/trust.jade:233 msgid "Saving..." msgstr "保存中..." -#: src/jade/tabs/send.jade:241 src/jade/tabs/send.jade:271 +#: src/jade/tabs/send.jade:255 src/jade/tabs/send.jade:289 msgid "Send another payment" msgstr "別の支払いを送金" -#: src/jade/tabs/settings/navbar.jade:3 -msgid "Advanced" -msgstr "詳細" +#: src/jade/tabs/settings/navbar.jade:2 +msgid "Security" +msgstr "セキュリティー" -#: src/jade/tabs/trade.jade:10 -msgid "Loading order book..." -msgstr "オーダーブックをロード中..." +#: src/jade/tabs/settingstrade.jade:12 +msgid "Trade settings" +msgstr "トレード設定" -#: src/jade/tabs/trade.jade:23 +#: src/jade/tabs/settingstrade.jade:14 +msgid "Trade currency pairs" +msgstr "トレード通貨ペア" + +#: src/jade/tabs/trade.jade:12 src/jade/tabs/trade.jade:451 +msgid "Loading Order Book" +msgstr "オーダーブックを読み込んでいます" + +#: src/jade/tabs/trade.jade:31 src/jade/tabs/widgets/markets.jade:24 msgid "flip" msgstr "反転" -#: src/jade/tabs/trade.jade:27 src/jade/tabs/trade.jade:35 -msgid "Base currency" +#: src/jade/tabs/trade.jade:34 +msgid "add pair" +msgstr "通貨ペアを追加" + +#: src/jade/tabs/trade.jade:37 +msgid "edit pairs" +msgstr "通貨ペアを編集" + +#: src/jade/tabs/trade.jade:41 +msgid "Base Currency" msgstr "基準通貨" -#: src/jade/tabs/trade.jade:30 src/jade/tabs/trade.jade:41 -msgid "Change gateway" -msgstr "ゲートウェイを変更" +#: src/jade/tabs/trade.jade:44 +msgid "Base Gateway" +msgstr "基準ゲートウェイ" -#: src/jade/tabs/trade.jade:38 src/jade/tabs/trade.jade:46 -msgid "Counter currency" -msgstr "決済通貨" +#: src/jade/tabs/trade.jade:49 +msgid "Counter Currency" +msgstr "決済 通貨" -#: src/jade/tabs/trade.jade:50 +#: src/jade/tabs/trade.jade:52 +msgid "Counter Gateway" +msgstr "決済ゲートウェイ" + +#: src/jade/tabs/trade.jade:57 +msgid "Add" +msgstr "追加" + +#: src/jade/tabs/trade.jade:60 msgid "Base currency issuer ({{order.first_currency | rpcurrency}})" msgstr "基準通貨発行者 ({{order.first_currency}})" -#: src/jade/tabs/trade.jade:55 +#: src/jade/tabs/trade.jade:63 +msgid "Ripple name or contact" +msgstr "Ripple名または相手先" + +#: src/jade/tabs/trade.jade:65 msgid "Not a valid Ripple address or contact" msgstr "無効な Ripple アドレスもしくは相手先です。" -#: src/jade/tabs/trade.jade:60 +#: src/jade/tabs/trade.jade:70 msgid "Counter currency issuer ({{order.second_currency | rpcurrency}})" msgstr "決済通貨発行者 ({{order.second_currency}})" -#: src/jade/tabs/trade.jade:65 +#: src/jade/tabs/trade.jade:75 msgid "Not a valid Ripple name or address" msgstr "有効なRipple名やアドレスではありません" -#: src/jade/tabs/trade.jade:69 +#: src/jade/tabs/trade.jade:79 msgid "" -"You must select a gateway to trade currencies. Click the “Change gateway” " -"link above and enter the gateway's address or Ripple name. {{1:Find a " -"gateway.}}" -msgstr "トレードを行う通貨のゲートウェイを選択する必要があります。上の「ゲートウェイを変更する」リンクをクリックし、ゲートウェイのアドレスもしくは Ripple 名を入力してください。 {{1:ゲートウェイを探す}}" +"To show an orderbook, choose from the dropdown above or click \"Add custom " +"pair\"." +msgstr "オーダーブックを表示するには、上記のドロップダウンから選択するか、または「カスタムのペアを追加」をクリックしてください。" -#: src/jade/tabs/trade.jade:79 +#: src/jade/tabs/trade.jade:86 msgid "Bid" msgstr "買う" -#: src/jade/tabs/trade.jade:84 +#: src/jade/tabs/trade.jade:91 msgid "Ask" msgstr "買値" -#: src/jade/tabs/trade.jade:89 +#: src/jade/tabs/trade.jade:96 msgid "Spread" msgstr "スプレッド" -#: src/jade/tabs/trade.jade:94 +#: src/jade/tabs/trade.jade:101 msgid "Last price" msgstr "現在の価格" -#: src/jade/tabs/trade.jade:101 +#: src/jade/tabs/trade.jade:108 msgid "You have to be funded before you can trade" msgstr "取引する前に資金を供給する必要があります。" -#: src/jade/tabs/trade.jade:108 +#: src/jade/tabs/trade.jade:115 msgid "Buy {{1}} {{order.first_currency | rpcurrency}}" msgstr "{{1}} {{order.first_currency | rpcurrency}} を買う" -#: src/jade/tabs/trade.jade:111 +#: src/jade/tabs/trade.jade:118 msgid "Sell {{1}} {{order.first_currency | rpcurrency}}" msgstr "{{1}} {{order.first_currency | rpcurrency}} を売る" -#: src/jade/tabs/trade.jade:114 src/jade/tabs/trade.jade:123 +#: src/jade/tabs/trade.jade:121 src/jade/tabs/trade.jade:130 msgid "{{1}} available" msgstr "{{1}} が利用可能です" -#: src/jade/tabs/trade.jade:137 +#: src/jade/tabs/trade.jade:144 msgid "Amount To Buy" msgstr "購入金額" -#: src/jade/tabs/trade.jade:138 +#: src/jade/tabs/trade.jade:145 msgid "Amount To Sell" msgstr "売却金額" -#: src/jade/tabs/trade.jade:145 src/jade/tabs/trade.jade:160 -#: src/jade/tabs/trade.jade:175 +#: src/jade/tabs/trade.jade:152 src/jade/tabs/trade.jade:167 +#: src/jade/tabs/trade.jade:182 msgid "Required" msgstr "必須" -#: src/jade/tabs/trade.jade:147 src/jade/tabs/trade.jade:162 -#: src/jade/tabs/trade.jade:177 +#: src/jade/tabs/trade.jade:154 src/jade/tabs/trade.jade:169 +#: src/jade/tabs/trade.jade:184 msgid "Must be greater than zero" msgstr "0より大きな数字を入力してください" -#: src/jade/tabs/trade.jade:149 src/jade/tabs/trade.jade:164 -#: src/jade/tabs/trade.jade:179 -msgid "Minimum is a drop (0.000001) and maximum is 100 billion XRPs" -msgstr "最小値は 0.000001XRP 、最大値は1千億 XRP です" +#: src/jade/tabs/trade.jade:156 src/jade/tabs/trade.jade:171 +#: src/jade/tabs/trade.jade:186 +msgid "" +"Minimum amount of XRP you can send is a drop (0.000001) and the maximum is " +"100 billion XRPs." +msgstr "送信できる最小値は、0.000001XRP、最大値は一千億XRPです。" -#: src/jade/tabs/trade.jade:153 +#: src/jade/tabs/trade.jade:160 msgid "Price of Each" msgstr "各々の価格" -#: src/jade/tabs/trade.jade:168 +#: src/jade/tabs/trade.jade:175 msgid "Order Value (max)" msgstr "注文価格(最大)" -#: src/jade/tabs/trade.jade:185 +#: src/jade/tabs/trade.jade:192 msgid "You are wanting to buy {{1}} for {{2}} ({{3}} per {{4}})" msgstr "あなたは {{2}} を {{1}} で買うのを待っています({{4}}あたり{{3}})" -#: src/jade/tabs/trade.jade:194 +#: src/jade/tabs/trade.jade:201 msgid "You are wanting to sell {{1}} for {{2}} ({{3}} per {{4}})" msgstr "あなたは {{2}} を {{1}} で売るのを待っています({{4}}あたり{{3}})" -#: src/jade/tabs/trade.jade:206 +#: src/jade/tabs/trade.jade:213 msgid "Buy" msgstr "買う" -#: src/jade/tabs/trade.jade:207 +#: src/jade/tabs/trade.jade:214 msgid "Sell" msgstr "売る" -#: src/jade/tabs/trade.jade:213 +#: src/jade/tabs/trade.jade:220 msgid "You do not have sufficient funds to create an order." msgstr "注文するのに十分な資金がありません。" -#: src/jade/tabs/trade.jade:218 -msgid "CAUTION: Your order is far off from the current market price." -msgstr "警告: あなたの注文は現在の市場価格から大きく乖離しています。" - -#: src/jade/tabs/trade.jade:220 +#: src/jade/tabs/trade.jade:225 msgid "" "You are about to create an order to {{1: buy}} {{2: " -"sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}" -msgstr " {{3}}を{{5}}{{6}}{{4:で}}{{1: 買う}} {{2: 売る}}注文をします。{{7:よろしいですか?}}" +"sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}{{8}}" +msgstr "" -#: src/jade/tabs/trade.jade:239 +#: src/jade/tabs/trade.jade:242 +msgid "CAUTION: Your order is far off from the current market price." +msgstr "警告: あなたの注文は現在の市場価格から大きく乖離しています。" + +#: src/jade/tabs/trade.jade:246 src/jade/tabs/trade.jade:407 msgid "« Back" msgstr "戻る" -#: src/jade/tabs/trade.jade:246 +#: src/jade/tabs/trade.jade:255 msgid "Sending order to Ripple network..." msgstr "Ripple Network に注文を送信中..." -#: src/jade/tabs/trade.jade:252 +#: src/jade/tabs/trade.jade:261 msgid "Your order has been submitted." msgstr "注文は送信されました。" -#: src/jade/tabs/trade.jade:254 +#: src/jade/tabs/trade.jade:263 msgid "Your order is now active." -msgstr "あなたの注文は有効となりました。" +msgstr "注文が有効となりました。" -#: src/jade/tabs/trade.jade:256 -msgid "Your order is filled." -msgstr "あなたの注文は失敗しました。" +#: src/jade/tabs/trade.jade:265 +msgid "Your order has been filled." +msgstr "注文が決済されました。" -#: src/jade/tabs/trade.jade:258 -msgid "Request has been denied." -msgstr "要求は拒否されました。" +#: src/jade/tabs/trade.jade:267 +msgid "" +"Your order has been partially filled. The remaining amount is now active." +msgstr "注文が一部決済されました。未決済分は引き続き有効です。" -#: src/jade/tabs/trade.jade:259 -msgid "We were unable to submit the request. Please try again later." -msgstr "リクエストは送信できませんでした。しばらく待ってから再実行してください。" +#: src/jade/tabs/trade.jade:276 +msgid "Submit another order" +msgstr "別の注文を送信" -#: src/jade/tabs/trade.jade:261 -msgid "Request is malformed." -msgstr "要求は不正です。" +#: src/jade/tabs/trade.jade:278 +msgid "My Orders{{1}}{{2}}" +msgstr "私の注文{{1}}{{2}}" -#: src/jade/tabs/trade.jade:262 -msgid "" -"Your request is invalid, reason: {{order[type].engine_result}} - " -"{{order[type].engine_result_message}}" -msgstr "この要求は無効です。理由: {{order[type].engine_result}} - {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:287 +msgid "Your order has been modified." +msgstr "注文が修正されました。" -#: src/jade/tabs/trade.jade:265 src/jade/tabs/trade.jade:279 -msgid "Transaction failed." -msgstr "取引は失敗しました。" +#: src/jade/tabs/trade.jade:289 +msgid "Your order #{{ cancelOrder.seq }} has been cancelled." +msgstr "注文 #{{ cancelOrder.seq }} はキャンセルされました。" -#: src/jade/tabs/trade.jade:267 +#: src/jade/tabs/trade.jade:291 msgid "" -"You do not have enough {{(type == 'buy' ? order.second_currency : " -"order.first_currency) | rpcurrency}} to create this order." -msgstr "この注文をするのに十分な {{(type == 'buy' ? order.second_currency : order.first_currency) | rpcurrency}} を持っていません。" +"Your order could not be modified and no longer exists. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "" -#: src/jade/tabs/trade.jade:269 -msgid "" -"You must have at least {{account.reserve_to_add_trust | rpamount}} XRP to " -"submit an order. {{1}}" -msgstr "注文するのに最低 {{account.reserve_to_add_trust | rpamount}} XRP を所有しなければなりません。 {{1}}" +#: src/jade/tabs/trade.jade:293 +msgid "Unable to cancel order as it no longer exists." +msgstr "それはもう存在しないので、注文をキャンセルすることができません。" -#: src/jade/tabs/trade.jade:271 -msgid "More information." -msgstr "詳細" +#: src/jade/tabs/trade.jade:295 +msgid "Modifying your order (Placing new order) ..." +msgstr "ご注文の変更(新規注文) ..." -#: src/jade/tabs/trade.jade:272 -msgid "Error: {{order[type].engine_result_message}}" -msgstr "エラー: {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:299 +msgid "Current pair only" +msgstr "現在のペアのみ" -#: src/jade/tabs/trade.jade:275 -msgid "Trade failed." -msgstr "取引は失敗しました。" +#: src/jade/tabs/trade.jade:313 src/jade/tabs/widgets/orders.jade:24 +msgid "reverse" +msgstr "" -#: src/jade/tabs/trade.jade:277 -msgid "Trade failed, reason: {{order[type].engine_result_message}}" -msgstr "取引に失敗しました。理由: {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:322 src/jade/tabs/widgets/orders.jade:33 +msgid "QTY{{1}}" +msgstr "" -#: src/jade/tabs/trade.jade:281 src/jade/tabs/trust.jade:45 -msgid "" -"The particular server you sent the transaction to was too busy to forward or" -" process your transaction at the fee you included in it." -msgstr "取引処理を送信したサーバーが混雑していたため、処理することができませんでした。" +#: src/jade/tabs/trade.jade:324 src/jade/tabs/widgets/orders.jade:35 +msgid "Base{{1}}" +msgstr "" -#: src/jade/tabs/trade.jade:290 -msgid "Submit another order" -msgstr "別の注文を送信" +#: src/jade/tabs/trade.jade:326 src/jade/tabs/widgets/orders.jade:37 +msgid "Counter{{1}}" +msgstr "" -#: src/jade/tabs/trade.jade:292 -msgid "My Orders{{1}}{{2}}" -msgstr "私の注文{{1}}{{2}}" +#: src/jade/tabs/trade.jade:328 src/jade/tabs/widgets/orders.jade:39 +msgid "Limit{{1}}" +msgstr "" -#: src/jade/tabs/trade.jade:299 -msgid "Type" -msgstr "タイプ" +#: src/jade/tabs/trade.jade:334 +msgid "Action" +msgstr "アクション" -#: src/jade/tabs/trade.jade:300 -msgid "Currencies {{1: (Issuer)}}" -msgstr "通貨 {{1: (発行者)}}" +#: src/jade/tabs/trade.jade:360 src/jade/tabs/trade.jade:424 +msgid "TRADE CONFIRMATION" +msgstr "" -#: src/jade/tabs/trade.jade:302 -msgid "Price" -msgstr "価格" +#: src/jade/tabs/trade.jade:362 +msgid "{{1:Please confirm that you wish to cancel order #{{entry.seq}}}}" +msgstr "" -#: src/jade/tabs/trade.jade:304 -msgid "Action" -msgstr "アクション" +#: src/jade/tabs/trade.jade:364 +msgid "" +"{{1}} div span.modal-order-type(l10n-inc) FILLED: span filled data div" +" span.modal-order-type(l10n-inc) REMAIN: span remain data div span" +".modal-order-type(l10n-inc) PLACED: span time data" +msgstr "" -#: src/jade/tabs/trade.jade:313 +#: src/jade/tabs/trade.jade:371 msgid "with" msgstr "で" -#: src/jade/tabs/trade.jade:314 +#: src/jade/tabs/trade.jade:372 msgid "for" msgstr "で" -# You haven't placed any orders. -#: src/jade/tabs/trade.jade:327 -msgid "You haven't placed any orders." -msgstr "まだ注文をしていません。" +#: src/jade/tabs/trade.jade:376 +msgid "at" +msgstr "" + +#: src/jade/tabs/trade.jade:389 +msgid "Cancel order" +msgstr "" + +#: src/jade/tabs/trade.jade:390 src/jade/tabs/trade.jade:431 +msgid "back" +msgstr "" -#: src/jade/tabs/trade.jade:329 -msgid "Unable to cancel order." -msgstr "注文をキャンセルできませんでした。" +#: src/jade/tabs/trade.jade:407 +msgid "" +"CAUTION: Your new order is far off from the current market price.
Do " +"you still want to replace your order ?" +msgstr "" -#: src/jade/tabs/trade.jade:330 -msgid "Error: {{cancelError}}" -msgstr "エラー: {{cancelError}}" +#: src/jade/tabs/trade.jade:410 +msgid "Unable to cancel order. Error: {{entry.errorMsg}}" +msgstr "" -#: src/jade/tabs/trade.jade:334 -msgid "Orderbook" -msgstr "オーダーブック" +#: src/jade/tabs/trade.jade:412 +msgid "" +"Your order amount has been updated by Ripple. Please go back and edit again " +"to modify this order." +msgstr "" + +#: src/jade/tabs/trade.jade:414 +msgid "" +"Your order could not be modified. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "" + +#: src/jade/tabs/trade.jade:415 +msgid "X" +msgstr "" + +#: src/jade/tabs/trade.jade:420 +msgid "cancel all" +msgstr "" + +#: src/jade/tabs/trade.jade:426 +msgid "{{1:Please confirm that you wish to cancel all orders.}}" +msgstr "" + +#: src/jade/tabs/trade.jade:430 +msgid "Cancel all orders" +msgstr "" + +#: src/jade/tabs/trade.jade:433 src/jade/tabs/widgets/orders.jade:64 +msgid "No current orders. {{1}}" +msgstr "" + +#: src/jade/tabs/trade.jade:434 src/jade/tabs/widgets/orders.jade:65 +msgid "View orders history" +msgstr "" -#: src/jade/tabs/trade.jade:336 +#: src/jade/tabs/trade.jade:437 +msgid "Orderbook{{1}}" +msgstr "" + +#: src/jade/tabs/trade.jade:440 msgid "show" msgstr "開く" -#: src/jade/tabs/trade.jade:344 +#: src/jade/tabs/trade.jade:442 +msgid "Last updated {{1}} {{2: seconds}} {{3: second}} ago" +msgstr "" + +#: src/jade/tabs/trade.jade:458 msgid "Bids" -msgstr "売値" +msgstr "買い注文" -#: src/jade/tabs/trade.jade:346 src/jade/tabs/trade.jade:373 +#: src/jade/tabs/trade.jade:460 src/jade/tabs/trade.jade:487 msgid "Sum{{1}}{{2}}" msgstr "合計{{1}}{{2}}" -#: src/jade/tabs/trade.jade:349 src/jade/tabs/trade.jade:370 +#: src/jade/tabs/trade.jade:463 src/jade/tabs/trade.jade:484 msgid "Size{{1}}{{2}}" msgstr "サイズ{{1}}{{2}}" -#: src/jade/tabs/trade.jade:352 +#: src/jade/tabs/trade.jade:466 msgid "Bid Price{{1}}{{2}}" msgstr "買い値{{1}}{{2}}" -#: src/jade/tabs/trade.jade:363 +#: src/jade/tabs/trade.jade:477 msgid "There are currently no bids for this pair." msgstr "現在、この通貨ペアには入札がありません。" -#: src/jade/tabs/trade.jade:365 +#: src/jade/tabs/trade.jade:479 msgid "Asks" -msgstr "買値" +msgstr "売り注文" -#: src/jade/tabs/trade.jade:367 +#: src/jade/tabs/trade.jade:481 msgid "Ask Price{{1}}{{2}}" msgstr "売り値 {{1}}{{2}}" -#: src/jade/tabs/trade.jade:384 +#: src/jade/tabs/trade.jade:498 msgid "There are currently no asks for this pair." msgstr "現在、この通貨ペアの買値はありません。" -#: src/jade/tabs/trade.jade:387 +#: src/jade/tabs/trade.jade:501 msgid "No more orders" msgstr "これ以上注文はありません" -#: src/jade/tabs/trust.jade:23 -msgid "Connecting a gateway to your Ripple account..." -msgstr "あなたの Ripple アカウントにゲートウェイを接続する..." - -#: src/jade/tabs/trust.jade:25 -msgid "Gateway connected." -msgstr "ゲートウェイを接続しました" - -#: src/jade/tabs/trust.jade:27 -msgid "Gateway could not be connected!" -msgstr "ゲートウェイの接続に失敗しました!" - -#: src/jade/tabs/trust.jade:28 src/jade/tabs/trust.jade:30 -msgid "There was a problem connecting the gateway. Please try again later." -msgstr "ゲートウェイへの接続の際に問題が発生しました。後ほど再度お試しください。" +#: src/jade/tabs/trust.jade:29 +msgid "Removing gateway..." +msgstr "ゲートウェイを削除しています..." #: src/jade/tabs/trust.jade:31 -msgid "" -"Your request is invalid, reason: {{engine_result}} - " -"{{engine_result_message}}" -msgstr "要求は無効です。理由: {{engine_result}} - {{engine_result_message}}" +msgid "Gateway removed." +msgstr "ゲートウェイを削除しました" #: src/jade/tabs/trust.jade:33 -msgid "Gateway connection failed!" -msgstr "ゲートウェイの接続に失敗しました!" +msgid "Your changes have been saved." +msgstr "変更が保存されました" #: src/jade/tabs/trust.jade:35 -msgid "You have no gateway connected in this currency." -msgstr "この通貨に対してゲートウェイが接続されていません。" - -#: src/jade/tabs/trust.jade:36 -msgid "Insufficient reserve to connect gateway." -msgstr "ゲートウェイに接続するために必要な準備金が不足しています。" - -#: src/jade/tabs/trust.jade:37 -msgid "" -"You must have at least {{account.reserve_to_add_trust | rpamount:0}} XRP to " -"connect a gateway. {{1}}" -msgstr "ゲートウェイに接続するためには少なくとも {{account.reserve_to_add_trust | rpamount:0}} XRP を保有していなければなりません。 {{1}}" +msgid "Request failed." +msgstr "リクエストは失敗しました。" #: src/jade/tabs/trust.jade:39 -msgid "Read more." -msgstr "もっと読む" - -#: src/jade/tabs/trust.jade:40 -msgid "Gateway connection failed to clear, reason: {{engine_result_message}}" -msgstr "ゲートウェイ接続の解除に失敗しました。理由: {{engine_result_message}}" - -#: src/jade/tabs/trust.jade:43 -msgid "Transaction failed!" -msgstr "取引処理は失敗しました。" - -#: src/jade/tabs/trust.jade:53 -msgid "Saving changes..." -msgstr "変更点を保存しています..." +msgid "Account unlock failed." +msgstr "アカウントのアンロックに失敗しました。" #: src/jade/tabs/trust.jade:55 -msgid "Changes saved!" -msgstr "変更点を保存しました!" - -#: src/jade/tabs/trust.jade:57 src/jade/tabs/trust.jade:69 -msgid "There was an error while saving your changes." -msgstr "変更点を保存する際にエラーが発生しました。" - -#: src/jade/tabs/trust.jade:65 -msgid "Removing gateway..." -msgstr "ゲートウェイを削除しています..." - -#: src/jade/tabs/trust.jade:67 -msgid "Gateway removed!" -msgstr "ゲートウェイを削除しました!" - -#: src/jade/tabs/trust.jade:72 src/jade/tabs/trust.jade:194 -msgid "You must have at least {{1}} to add a new trust line. {{2}}" -msgstr "新しい与信枠を与えるために最低 {{1}} を所有していなければなりません。{{2}}" - -#: src/jade/tabs/trust.jade:82 msgid "Name / Address" msgstr "名前・アドレス" -#: src/jade/tabs/trust.jade:84 src/jade/tabs/trust.jade:130 +#: src/jade/tabs/trust.jade:57 src/jade/tabs/trust.jade:90 msgid "Currency" msgstr "通貨" -#: src/jade/tabs/trust.jade:87 +#: src/jade/tabs/trust.jade:60 msgid "Trust Limit" msgstr "与信限度額" -#: src/jade/tabs/trust.jade:93 +#: src/jade/tabs/trust.jade:66 msgid "Gateway's Ripple name or address" msgstr "ゲートウェイの Ripple 名またはアドレス" -#: src/jade/tabs/trust.jade:162 +#: src/jade/tabs/trust.jade:100 +msgid "Amount field is required." +msgstr "金額フィールドは必須です" + +#: src/jade/tabs/trust.jade:115 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"connect to. More " +"information" +msgstr "" + +#: src/jade/tabs/trust.jade:125 msgid "" "{{1:You are connecting a gateway, which means}}{{2:{{ counterparty_address |" " rpripplename:{tilde: true} }} can:}}" msgstr "" -#: src/jade/tabs/trust.jade:165 +#: src/jade/tabs/trust.jade:128 msgid "{{1:- Hold up to }}{{2}} {{3: on your behalf}}" -msgstr "" +msgstr "{{3: あなたに代って}}{{2}} {{1:を保管 }}" -#: src/jade/tabs/trust.jade:169 +#: src/jade/tabs/trust.jade:132 msgid "{{1:- Hold }}{{2}} {{3: on your behalf}}" msgstr "{{3: あなたに代って}}{{2}} {{1:を保管 }}" -#: src/jade/tabs/trust.jade:183 src/jade/tabs/trust.jade:186 -#: src/jade/tabs/trust.jade:189 src/jade/tabs/trust.jade:255 -#: src/jade/tabs/trust.jade:258 src/jade/tabs/trust.jade:261 -#: src/jade/tabs/trust.jade:288 src/jade/tabs/trust.jade:291 -#: src/jade/tabs/trust.jade:294 -msgid "Remove" -msgstr "削除" - -#: src/jade/tabs/trust.jade:192 +#: src/jade/tabs/trust.jade:148 msgid "Verifying address" msgstr "アドレスを確認中" -#: src/jade/tabs/trust.jade:201 +#: src/jade/tabs/trust.jade:151 msgid "" "Your account has to be {{1:activated}} before you can add a gateway account." msgstr "ゲートウェイアカウントを追加する前にあなたのアカウントを{{1:有効化}}しなければなりません。" -#: src/jade/tabs/trust.jade:209 +#: src/jade/tabs/trust.jade:159 msgid "Connect gateway" msgstr "ゲートウェイへ接続する" -#: src/jade/tabs/trust.jade:227 -msgid "Gateway" -msgstr "ゲートウェイ" - -#: src/jade/tabs/trust.jade:229 src/jade/tabs/trust.jade:271 +#: src/jade/tabs/trust.jade:169 src/jade/tabs/trust.jade:221 msgid "Limit" msgstr "上限" -#: src/jade/tabs/trust.jade:230 +#: src/jade/tabs/trust.jade:170 msgid "Min" msgstr "下限" -#: src/jade/tabs/trust.jade:232 +#: src/jade/tabs/trust.jade:172 msgid "Edit" msgstr "編集" -#: src/jade/tabs/trust.jade:245 +#: src/jade/tabs/trust.jade:188 msgid "Off" msgstr "オフ" -#: src/jade/tabs/trust.jade:246 +#: src/jade/tabs/trust.jade:189 msgid "On" msgstr "オン" -#: src/jade/tabs/trust.jade:276 +#: src/jade/tabs/trust.jade:192 src/jade/tabs/trust.jade:201 +#: src/jade/tabs/trust.jade:206 src/jade/tabs/trust.jade:210 +#: src/jade/tabs/trust.jade:239 src/jade/tabs/trust.jade:244 +#: src/jade/tabs/trust.jade:248 +msgid "Incoming trust" +msgstr "受信トラスト" + +#: src/jade/tabs/trust.jade:192 +msgid "" +"You can't edit incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "あなたは受信トラストラインを編集できません。受信トラストラインは、他のRippleユーザーがあなたを信頼する時に使います。" + +#: src/jade/tabs/trust.jade:200 src/jade/tabs/trust.jade:202 +#: src/jade/tabs/trust.jade:205 src/jade/tabs/trust.jade:207 +#: src/jade/tabs/trust.jade:209 src/jade/tabs/trust.jade:211 +#: src/jade/tabs/trust.jade:238 src/jade/tabs/trust.jade:240 +#: src/jade/tabs/trust.jade:243 src/jade/tabs/trust.jade:245 +#: src/jade/tabs/trust.jade:247 src/jade/tabs/trust.jade:249 +msgid "Remove" +msgstr "削除" + +#: src/jade/tabs/trust.jade:201 src/jade/tabs/trust.jade:206 +#: src/jade/tabs/trust.jade:210 src/jade/tabs/trust.jade:239 +#: src/jade/tabs/trust.jade:244 src/jade/tabs/trust.jade:248 +msgid "" +"You can't delete incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "あなたは受信トラストラインを削除できません。受信トラストラインは、他のRippleユーザーがあなたを信頼する時に使います。" + +#: src/jade/tabs/trust.jade:226 msgid "Rippling {{1}}" msgstr "リップリング {{1}}" -#: src/jade/tabs/tx.jade:3 +#: src/jade/tabs/tx.jade:5 msgid "Loading transaction details..." msgstr "取引明細をロード中..." -#: src/jade/tabs/tx.jade:5 +#: src/jade/tabs/tx.jade:7 msgid "An error occurred while loading the transaction details." msgstr "取引明細のロード中にエラーが発生しました。" -#: src/jade/tabs/tx.jade:8 +#: src/jade/tabs/tx.jade:10 msgid "Transaction #" msgstr "取引 #" -#: src/jade/tabs/tx.jade:11 -msgid "Show in graph" -msgstr "グラフを表示" - -#: src/jade/tabs/tx.jade:13 +#: src/jade/tabs/tx.jade:15 msgid "Transaction type: {{1}}" msgstr "取引タイプ: {{1}}" -#: src/jade/tabs/tx.jade:20 +#: src/jade/tabs/tx.jade:22 msgid "Address sent from" msgstr "送金アドレス" -#: src/jade/tabs/tx.jade:24 +#: src/jade/tabs/tx.jade:26 msgid "Amount sent" msgstr "送金された金額" -#: src/jade/tabs/tx.jade:28 +#: src/jade/tabs/tx.jade:30 msgid "Currency sent" msgstr "送金された通貨" -#: src/jade/tabs/tx.jade:33 +#: src/jade/tabs/tx.jade:35 msgid "Address sent to" msgstr "受信アドレス" -#: src/jade/tabs/tx.jade:37 +#: src/jade/tabs/tx.jade:39 msgid "Amount received" msgstr "受信した金額" -#: src/jade/tabs/tx.jade:41 +#: src/jade/tabs/tx.jade:43 msgid "Currency received" msgstr "受信した通貨" -#: src/jade/tabs/tx.jade:48 +#: src/jade/tabs/tx.jade:50 msgid "Network fee paid" msgstr "ネットワーク手数料は支払われました。" -#: src/jade/tabs/tx.jade:60 +#: src/jade/tabs/tx.jade:62 msgid "Ledger number" msgstr "元帳番号" -#: src/jade/tabs/tx.jade:66 +#: src/jade/tabs/tx.jade:68 msgid "Address sent from:" msgstr "送金アドレス:" # Sorry, we don't have an info page layout for this transaction type yet. -#: src/jade/tabs/tx.jade:70 +#: src/jade/tabs/tx.jade:72 msgid "" "Sorry, we don't have an info page layout for this transaction type yet." msgstr "申し訳ありません。まだこの取引処理タイプの情報ページは存在しません。" +#: src/jade/tabs/usd.jade:35 +msgid "US Dollar Deposit" +msgstr "USドル入金" + +#: src/jade/tabs/usd.jade:39 +msgid "SnapSwap US (~SnapSwap){{1}}{{2}}" +msgstr "SnapSwap US (~SnapSwap){{1}}{{2}}" + +#: src/jade/tabs/usd.jade:45 +msgid "USA" +msgstr "USA" + +#: src/jade/tabs/usd.jade:48 +msgid "$ 0.31-$ 5.00" +msgstr "$ 0.31-$ 5.00" + +#: src/jade/tabs/usd.jade:56 +msgid "" +"Ripple Trade has partnered with SnapSwap to provide easier access to USD. " +"Following this action will enable SnapSwap to hold USD on your behalf." +msgstr "Ripple Tradeは、USDへの簡単なアクセスを提供するために、SnapSwapとパートナーになりました。この操作を続けると、SnapSwapにあなたの自身のUSDを保持することができます。" + +#: src/jade/tabs/usd.jade:73 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.US" +msgstr "" + +#: src/jade/tabs/usd.jade:74 +msgid "Register and verify your account at SnapSwap US. You will need: {{1}}" +msgstr "" + +#: src/jade/tabs/usd.jade:82 +msgid "EXISTING SNAPSWAP US CUSTOMERS" +msgstr "" + +#: src/jade/tabs/usd.jade:93 +msgid "Deposit instantly via selected banks" +msgstr "" + +#: src/jade/tabs/usd.jade:95 +msgid "Deposit cash at Bank of America branches (3 business days)" +msgstr "" + +#: src/jade/tabs/usd.jade:97 +msgid "Deposit via online bank transfer (3 business days)" +msgstr "" + +#: src/jade/tabs/usd.jade:103 +msgid "Directly to your bank account (3-4 business days)" +msgstr "" + +#: src/jade/tabs/usd.jade:105 +msgid "Directly to your PayPal account (several minutes)" +msgstr "" + +#: src/jade/tabs/widgets/assetallocation.jade:3 +msgid "Asset Allocation" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:3 +msgid "Balances" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:12 +msgid "Balance
{{ account.Balance | rpamount }} XRP" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:16 +msgid "Reserve" +msgstr "準備金" + +#: src/jade/tabs/widgets/balances.jade:18 +msgid "Reserve amount" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:18 +msgid "" +"Minimum amount of XRP required to fund your account. You cannot spend the " +"reserve." +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:20 +msgid "Reserve amount
{{ account.reserve | rpamount }} XRP" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Available amount" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Total amount of XRP in your account minus the reserve amount." +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:28 +msgid "Available amount
{{ account.max_spend | rpamount }} XRP" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:35 +msgid "" +"Balance
{{ entry.total | rpamount:{precision: 30, hard_precision: true} " +"}} {{ entry.total | rpcurrency }}" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:43 +msgid "" +"Balance
{{ component | rpamount:{precision: 30, rel_min_precision: -2, " +"hard_precision: true} }} {{ entry.total | rpcurrency }}" +msgstr "" + +#: src/jade/tabs/widgets/markets.jade:3 +msgid "Markets" +msgstr "" + +#: src/jade/tabs/widgets/networth.jade:3 +msgid "Net Worth" +msgstr "" + +#: src/jade/tabs/widgets/networth.jade:8 +msgid "{{1:{{1:In}}}}{{2}}" +msgstr "" + +#: src/jade/tabs/widgets/networth.jade:14 +msgid "Estimated from latest trade price" +msgstr "最新のトレード価格から見積る" + +#: src/jade/tabs/widgets/networth.jade:23 +msgid "(excluding negative balances)" +msgstr "(マイナス残高を除く)" + +#: src/jade/tabs/widgets/orders.jade:3 +msgid "My Orders" +msgstr "私の注文" + +#: src/jade/tabs/widgets/orders.jade:68 +msgid "trade currencies" +msgstr "トレード通貨" + #: src/jade/tabs/xrp.jade:19 msgid "Ripple name: {{1}}{{2}}{{3}}" msgstr "Ripple 名: {{1}}{{2}}{{3}}" @@ -2696,7 +3659,3 @@ msgid "" "full Ripple address, and while we are working to transition to Ripple names," " some gateways may still ask for your full address." msgstr "Ripple 名は Ripple の新しい機能です!Ripple 名(~{{userCredentials.username}}) を使って送金を受け取ることができます。なお、 Ripple アドレスもまだ使用できます。現在 Ripple 名に移行中なので、フルアドレスを要求するゲートウェイもあるかもしれません。" - -#: src/jade/tabs/xrp.jade:31 -msgid "Ripple address {{1}}" -msgstr "Ripple アドレス {{1}}" diff --git a/l10n/ko/messages.po b/l10n/ko/messages.po new file mode 100644 index 000000000..464d94cf3 --- /dev/null +++ b/l10n/ko/messages.po @@ -0,0 +1,3658 @@ +# Generated by grunt-jade-l10n-extractor +# Translators: +# Jaesoo Kim <181.9cm@gmail.com>, 2015 +# ripko, 2014 +msgid "" +msgstr "" +"Project-Id-Version: Ripple Trade\n" +"PO-Revision-Date: 2015-05-22 08:04+0000\n" +"Last-Translator: Jaesoo Kim <181.9cm@gmail.com>\n" +"Language-Team: Korean (http://www.transifex.com/projects/p/ripple-trade/language/ko/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ko\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/jade/client/index.jade:5 src/jade/client/navbar.jade:117 +#: src/jade/tabs/trust.jade:59 src/jade/tabs/trust.jade:168 +msgid "Balance" +msgstr "잔고" + +#: src/jade/client/index.jade:7 src/jade/client/navbar.jade:119 +msgid "History" +msgstr "거래 내역" + +#: src/jade/client/index.jade:8 src/jade/client/navbar.jade:121 +msgid "Contacts" +msgstr "연락처" + +#: src/jade/client/index.jade:12 src/jade/client/navbar.jade:21 +#: src/jade/tabs/contacts.jade:65 +msgid "Send" +msgstr "송금" + +#: src/jade/client/index.jade:16 +msgid "Convert" +msgstr "환전" + +#: src/jade/client/index.jade:18 src/jade/client/navbar.jade:23 +#: src/jade/client/navbar.jade:25 src/jade/tabs/settings/navbar.jade:3 +msgid "Trade" +msgstr "거래" + +#: src/jade/client/index.jade:22 src/jade/client/navbar.jade:27 +#: src/jade/client/navbar.jade:133 +msgid "Fund" +msgstr "자금" + +#: src/jade/client/index.jade:24 src/jade/tabs/fund/menu.jade:29 +msgid "Gateways" +msgstr "게이트웨이" + +#: src/jade/client/index.jade:29 src/jade/client/navbar.jade:107 +#: src/jade/tabs/su.jade:12 +msgid "Account" +msgstr "지갑" + +#: src/jade/client/index.jade:32 src/jade/client/navbar.jade:109 +#: src/jade/tabs/advanced.jade:19 +msgid "Settings" +msgstr "설정" + +#: src/jade/client/index.jade:35 +msgid "Logout" +msgstr "로그아웃" + +#: src/jade/client/index.jade:61 +msgid "Why Use Ripple Trade?" +msgstr "왜 리플 트레이드를 이용해야 되나요?" + +#: src/jade/client/index.jade:66 +msgid "Home of XRP -" +msgstr "XRP의 홈" + +#: src/jade/client/index.jade:67 +msgid "the best place to buy and sell XRP" +msgstr "XRP를 사고팔기에 최적의 사이트" + +#: src/jade/client/index.jade:71 +msgid "Free -" +msgstr "무료" + +#: src/jade/client/index.jade:72 +msgid "no fees to sign up and use Ripple Trade" +msgstr "회원가입 및 리플트레이를 수수료 없이 이용" + +#: src/jade/client/index.jade:76 +msgid "No Middlemen -" +msgstr "중개인이 없다" + +#: src/jade/client/index.jade:77 +msgid "" +"When you submit orders, Ripple automatically finds the best available match," +" without a clearinghouse or broker." +msgstr "주문시 리플은 가장 적합한 상대를 중개인 및 교환소 없이 자동으로 찾음" + +#: src/jade/client/index.jade:81 +msgid "Deposit, trade and withdraw money on Ripple via gateways." +msgstr "게이트웨이를 통하여 리플에 예탁, 거래, 인출 하기" + +#: src/jade/client/index.jade:89 +msgid "Featured Ripple Gateways" +msgstr "주요 리플 게이트웨이" + +#: src/jade/client/index.jade:91 +msgid "Ripple's growing gateway network." +msgstr "리플의 성장하는 게이트웨이 네트워크" + +#: src/jade/client/index.jade:93 src/jade/client/index.jade:96 +#: src/jade/client/index.jade:99 src/jade/client/index.jade:102 +#: src/jade/client/index.jade:105 src/jade/client/index.jade:108 +#: src/jade/client/index.jade:111 src/jade/client/index.jade:114 +#: src/jade/client/index.jade:117 src/jade/tabs/banner/unfunded.jade:6 +#: src/jade/tabs/brl.jade:53 src/jade/tabs/brl.jade:57 +#: src/jade/tabs/brl.jade:93 src/jade/tabs/btc.jade:46 +#: src/jade/tabs/eur.jade:50 src/jade/tabs/eur.jade:54 +#: src/jade/tabs/eur.jade:86 src/jade/tabs/eur.jade:93 +#: src/jade/tabs/gold.jade:51 src/jade/tabs/jpy.jade:55 +#: src/jade/tabs/jpy.jade:91 src/jade/tabs/jpy.jade:97 +#: src/jade/tabs/mxn.jade:53 src/jade/tabs/send.jade:63 +#: src/jade/tabs/trade.jade:320 src/jade/tabs/usd.jade:51 +#: src/jade/tabs/usd.jade:83 src/jade/tabs/usd.jade:90 +#: src/jade/tabs/usd.jade:100 src/jade/tabs/widgets/orders.jade:31 +msgid "{{1}}" +msgstr "{{1}}" + +#: src/jade/client/index.jade:123 +msgid "Version: {{version}}" +msgstr "버전: {{version}}" + +#: src/jade/client/index.jade:128 +msgid "Terms of Use" +msgstr "서비스 이용약관" + +#: src/jade/client/index.jade:129 +msgid "Privacy Policy" +msgstr "개인정보취급방침" + +#: src/jade/client/index.jade:130 +msgid "Support" +msgstr "고객지원" + +#: src/jade/client/index.jade:131 +msgid "Bug reports" +msgstr "버그 신고" + +#: src/jade/client/index.jade:138 +msgid "more..." +msgstr "추가..." + +#: src/jade/client/index.jade:142 +msgid "Select a language" +msgstr "언어선택" + +#: src/jade/client/navbar.jade:2 +msgid "" +"You are viewing an account in {{1}} mode. While in this mode, you can view " +"publicly available data, but you cannot initiate any transactions. Click " +"{{2}} to exit." +msgstr "{{1}} 모드에서 지갑을 볼 수 있습니다. 현재 모드에있는 동안, 공개 된 데이터를 볼 수 있지만, 거래를 시작할 수 없습니다. {{2}} 클릭해서 종료" + +#: src/jade/client/navbar.jade:8 +msgid "" +"Warning: this account has over 200 trust lines, so the displayed account " +"balance may not be accurate." +msgstr "경고: 이 계정에 200 개 이상의 트러스트 라인이 연결되 있으므로 표시된 계정 잔액이 정확하지 않을 수 있습니다." + +#: src/jade/client/navbar.jade:19 +msgid "Overview" +msgstr "개요" + +#: src/jade/client/navbar.jade:49 src/jade/tabs/account/private.jade:7 +#: src/jade/tabs/account/private.jade:16 src/jade/tabs/account/public.jade:45 +#: src/jade/tabs/apps.jade:8 src/jade/tabs/btc.jade:72 +#: src/jade/tabs/exchange.jade:9 src/jade/tabs/kyc.jade:45 +#: src/jade/tabs/recover.jade:26 src/jade/tabs/security.jade:147 +#: src/jade/tabs/su.jade:8 src/jade/tabs/trust.jade:9 +#: src/jade/tabs/trust.jade:139 +msgid "Loading..." +msgstr "로딩중" + +#: src/jade/client/navbar.jade:50 +msgid "There are no recent notifications." +msgstr "최근 공지 사항이 없습니다." + +#: src/jade/client/navbar.jade:54 +msgid "You sent {{1}} to {{2}}" +msgstr "{{1}}을 {{2}}에게 보냈습니다." + +#: src/jade/client/navbar.jade:60 +msgid "{{1}} sent you {{2}}" +msgstr "{{1}}이 {{2}}를 보냈습니다." + +#: src/jade/client/navbar.jade:68 +msgid "{{entry.transaction.counterparty | rpcontactname}} now trusts you for" +msgstr "{{entry.transaction.counterparty | rpcontactname}}는 사용자에게 다음 긍액과 관련하여 트러스트를 부여합니다. " + +#: src/jade/client/navbar.jade:74 src/jade/notification/account.jade:25 +#: src/jade/tabs/history.jade:115 src/jade/tabs/history/effects.jade:63 +msgid "You have now connected to the gateway {{1}}{{2: for }}{{3}}." +msgstr "게이트웨이와 연결이 되었습니다 {{1}}{{2: for }}{{3}}." + +#: src/jade/client/navbar.jade:85 +msgid "You cancelled an order accepting {{1}} for {{2}}" +msgstr "주문을 취소하였습니다 {{1}} for {{2}}" + +#: src/jade/client/navbar.jade:92 src/jade/tabs/history.jade:138 +msgid "Account details have been changed" +msgstr "계좌 내역이 수정되었습니다." + +#: src/jade/client/navbar.jade:95 src/jade/tabs/history.jade:141 +#: src/jade/tabs/trust.jade:171 +msgid "Rippling" +msgstr "리플링" + +#: src/jade/client/navbar.jade:97 src/jade/tabs/history.jade:143 +msgid "Failed transaction" +msgstr "거래 실패" + +#: src/jade/client/navbar.jade:103 +msgid "View Full History" +msgstr "전체 거래내역 보기" + +#: src/jade/client/navbar.jade:111 +msgid "Log Out" +msgstr "로그아웃" + +#: src/jade/client/navbar.jade:126 +msgid "Simple" +msgstr "간편거래" + +#: src/jade/client/navbar.jade:128 src/jade/tabs/settings/navbar.jade:4 +msgid "Advanced" +msgstr "고급" + +#: src/jade/client/navbar.jade:135 +msgid "Withdraw" +msgstr "인출" + +#: src/jade/client/navbar.jade:137 +msgid "" +"Your account was successfully recovered and encrypted with the new password " +"you provided!" +msgstr "새로운 암호로 지갑이 성공적으로 복구되고 암호화 되었습니다." + +#: src/jade/client/navbar.jade:138 +msgid "dismiss" +msgstr "" + +#: src/jade/directives/addresspopover.jade:3 +msgid "Ripple address {{ identity }}" +msgstr "리플 주소" + +#: src/jade/directives/addresspopover.jade:8 src/jade/tabs/tx.jade:13 +msgid "Show in graph" +msgstr "도표로 보여주기" + +#: src/jade/directives/transactionerror.jade:8 +msgid "Connecting gateway to your account..." +msgstr "게이트웨이 연결중..." + +#: src/jade/directives/transactionerror.jade:10 +msgid "Gateway connected." +msgstr "게이트웨이 연결됨" + +#: src/jade/directives/transactionerror.jade:12 +msgid "There was a problem connecting to the gateway. Please try again later." +msgstr "게이트웨이 연결에 문제가 있습니다. 잠시 후 다시 시도해 주세요." + +#: src/jade/directives/transactionerror.jade:14 +#: src/jade/directives/transactionerror.jade:73 +#: src/jade/directives/transactionerror.jade:158 +#: src/jade/messages/sendconvert/confirmation.jade:13 +msgid "Error code: {{engine_result}} - {{engine_result_message}}" +msgstr "에러 코드: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:19 +#: src/jade/directives/transactionerror.jade:23 +#: src/jade/directives/transactionerror.jade:28 +#: src/jade/directives/transactionerror.jade:33 +#: src/jade/directives/transactionerror.jade:45 +#: src/jade/directives/transactionerror.jade:52 +#: src/jade/directives/transactionerror.jade:156 +#: src/jade/directives/transactionerror.jade:163 +#: src/jade/directives/transactionerror.jade:167 +#: src/jade/directives/transactionerror.jade:172 +#: src/jade/directives/transactionerror.jade:177 +#: src/jade/directives/transactionerror.jade:186 +#: src/jade/directives/transactionerror.jade:193 +msgid "Request failed" +msgstr "요청이 실패했습니다." + +#: src/jade/directives/transactionerror.jade:21 +#: src/jade/directives/transactionerror.jade:165 +msgid "Your request timed out, please try again." +msgstr "요청 시간이 경과 되었습니다. 다시 시도해 주세요." + +#: src/jade/directives/transactionerror.jade:25 +#: src/jade/directives/transactionerror.jade:84 +#: src/jade/directives/transactionerror.jade:169 +#: src/jade/messages/sendconvert/confirmation.jade:18 +msgid "Error code: Destination tag needed [tefDST_TAG_NEEDED]." +msgstr "에러 코드: 대상 태그 필요 [tefDST_TAG_NEEDED]." + +#: src/jade/directives/transactionerror.jade:30 +#: src/jade/directives/transactionerror.jade:174 +msgid "" +"Error code: This request failed because it exceeded the maximum network fee," +" please try again later [telINSUF_FEE_P]." +msgstr "에러 코드: 네트워크 최대 수수료를 초과하였습니다. 요청이 실패하였으니 다시 시도해 주세요 [telINSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:35 +msgid "" +"Error code: You have no gateway connected in this currency [terNO_LINE]." +msgstr "에러 코드: 해당 통화와 연결된 게이트웨이가 없습니다 [terNO_LINE]." + +#: src/jade/directives/transactionerror.jade:37 +msgid "" +"Error code: Insufficient reserve to connect gateway [tecINSUF_RESERVE_LINE]." +msgstr "에러 코드: 게이트웨이 연결에 부족한 저당입니다 [tecINSUF_RESERVE_LINE]." + +#: src/jade/directives/transactionerror.jade:39 +msgid "" +"Error code: You have an insufficient reserve amount to connect a gateway " +"[tecNO_LINE_INSUF_RESERVE]. {{1}}" +msgstr "에러 코드: 게이트웨이 연결에 부족한 저당입니다 [tecNO_LINE_INSUF_RESERVE]. {{1}}" + +#: src/jade/directives/transactionerror.jade:41 src/jade/tabs/fund.jade:34 +#: src/jade/tabs/send.jade:110 src/jade/tabs/trust.jade:74 +msgid "More information" +msgstr "상세 정보" + +#: src/jade/directives/transactionerror.jade:42 +#: src/jade/directives/transactionerror.jade:98 +#: src/jade/directives/transactionerror.jade:135 +#: src/jade/directives/transactionerror.jade:183 +#: src/jade/messages/sendconvert/confirmation.jade:27 +msgid "Error: {{engine_result_message}}" +msgstr "에러: {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:47 +#: src/jade/directives/transactionerror.jade:103 +#: src/jade/directives/transactionerror.jade:188 +#: src/jade/messages/sendconvert/confirmation.jade:32 +msgid "Error code: You have no trust line in this currency [terNO_LINE]." +msgstr "에러 코드: 해당 통화와 연결된 게이트웨이가 없습니다 [terNO_LINE]." + +#: src/jade/directives/transactionerror.jade:49 +#: src/jade/directives/transactionerror.jade:190 +msgid "Your request failed: {{engine_result}} - {{engine_result_message}}" +msgstr "요청이 실패하였습니다: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:54 +#: src/jade/directives/transactionerror.jade:195 +msgid "Error code: request could not be submitted [tejLost]." +msgstr "에러 코드: 요청을 제출할 수 없습니다 [tejLost]." + +#: src/jade/directives/transactionerror.jade:56 +#: src/jade/directives/transactionerror.jade:197 src/jade/tabs/trust.jade:36 +msgid "" +"This request failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "거래가 실패하였습니다. 현재 네트워크 수수료가 지갑 한도를 초과했습니다. 네트워크 최대 수수료를 고급 설정에서 조절하거나, 다음에 다시 시도하십시오. 에러 코드: 네트워크 수수료를 조절하십시오 [tejMaxFeeExceeded]." + +#: src/jade/directives/transactionerror.jade:59 +#: src/jade/directives/transactionerror.jade:200 +msgid "" +"Your request could not be submitted: {{engine_result}} - " +"{{engine_result_message}}" +msgstr "다음과 같은 이유로 거래가 제출되지 않았습니다. {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:67 +msgid "Payment pending" +msgstr "결제 보류중" + +#: src/jade/directives/transactionerror.jade:69 +msgid "Payment successful" +msgstr "결제 완료" + +#: src/jade/directives/transactionerror.jade:71 +#: src/jade/directives/transactionerror.jade:82 +#: src/jade/directives/transactionerror.jade:87 +#: src/jade/directives/transactionerror.jade:92 +#: src/jade/directives/transactionerror.jade:101 +#: src/jade/directives/transactionerror.jade:108 +msgid "Payment failed" +msgstr "결제 실패" + +#: src/jade/directives/transactionerror.jade:78 +msgid "Payment failed [tefMAX_LEDGER]." +msgstr "결제 실패 [tefMAX_LEDGER]." + +#: src/jade/directives/transactionerror.jade:80 +msgid "Your payment timed out, please try again." +msgstr "요청 시간이 경과 되었습니다. 다시 시도해 주세요." + +#: src/jade/directives/transactionerror.jade:89 +#: src/jade/messages/sendconvert/confirmation.jade:39 +msgid "" +"Error code: This transaction failed because it exceeded the maximum network " +"fee, please try again later [telINSUF_FEE_P]." +msgstr "에러 코드: 네트워크 최대 수수료를 초과하였습니다. 요청이 실패하였으니 다시 시도해 주세요. [telINSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:94 +#: src/jade/directives/transactionerror.jade:179 +msgid "Error code: No destination [tecNO_DST]." +msgstr "에러 코드: 대상 없음 [tecNO_DST]." + +#: src/jade/directives/transactionerror.jade:96 +#: src/jade/directives/transactionerror.jade:181 +#: src/jade/messages/sendconvert/confirmation.jade:25 +msgid "" +"Error code: Insufficient XRP sent to destination [tecNO_DST_INSUF_XRP]." +msgstr "에러 코드: 불충분한 XRP 를 보냅니다[tecNO_DST_INSUF_XRP]." + +#: src/jade/directives/transactionerror.jade:105 +msgid "Your payment failed: {{engine_result}} - {{engine_result_message}}" +msgstr "결제가 실패하였습니다: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:110 +msgid "Error code: Transaction could not be submitted [tejLost]." +msgstr "에러 코드: 거래 요청이 이루어지지 않았습니다 [tejLost]." + +#: src/jade/directives/transactionerror.jade:112 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "거래가 실패하였습니다. 현재 네트워크 수수료가 지갑 한도를 초과했습니다. 네트워크 최대 수수료를 고급 설정에서 조절하거나, 다음에 다시 시도하십시오. 에러 코드: 네트워크 수수료를 조절하십시오 [tejMaxFeeExceeded]." + +#: src/jade/directives/transactionerror.jade:115 +msgid "" +"Your payment could not be submitted: {{engine_result}} - " +"{{engine_result_message}}" +msgstr "결제가 이루어지지 않았습니다: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:121 +msgid "Request is malformed." +msgstr "요청이 잘못되었습니다." + +#: src/jade/directives/transactionerror.jade:122 +msgid "" +"Your request is invalid, reason: {{engine_result_message}} - " +"{{engine_result_message}}" +msgstr "다음과 같은 이유로 요청이 유효하지 않습니다: {{engine_result_message}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:125 +#: src/jade/directives/transactionerror.jade:142 +msgid "Transaction failed." +msgstr "결제 실패." + +#: src/jade/directives/transactionerror.jade:127 +msgid "You do not have enough funds to create this order [tecUNFUNDED_ORDER]." +msgstr "거래하기 위한 자금이 부족합니다 [tecUNFUNDED_ORDER]." + +#: src/jade/directives/transactionerror.jade:129 +msgid "" +"Insufficient reserve amount to submit an order [tecINSUF_RESERVE_OFFER]." +msgstr "거래시 필요한 저당이 부족합니다 [tecINSUF_RESERVE_OFFER]." + +#: src/jade/directives/transactionerror.jade:131 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]. {{1}}" +msgstr "거래가 실패하였습니다. 현재 네트워크 수수료가 지갑 한도를 초과했습니다. 네트워크 최대 수수료를 고급 설정에서 조절하거나, 다음에 다시 시도하십시오. 에러 코드: 네트워크 수수료를 조절하십시오 [tejMaxFeeExceeded]." + +#: src/jade/directives/transactionerror.jade:134 +msgid "More information." +msgstr "추가 정보" + +#: src/jade/directives/transactionerror.jade:138 +msgid "Trade failed." +msgstr "거래가 실패했습니다." + +#: src/jade/directives/transactionerror.jade:140 +msgid "Trade failed, reason: {{engine_result_message}}" +msgstr "거래가 실패했습니다: {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:144 +msgid "" +"The particular server you sent the transaction to was too busy to forward or" +" process your transaction at the fee you included in it [telINSUF_FEE_P]." +msgstr "회원님이 거래한 수수료를 포함한 특정 서버가 거래를 전송하거나 처리하기에 매우 바쁜 상태입니다[telINSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:152 +msgid "Request pending" +msgstr "요청 승인중" + +#: src/jade/directives/transactionerror.jade:154 +msgid "Request successful" +msgstr "승인 완료" + +#: src/jade/messages/sendconvert/confirmation.jade:4 +msgid "Transaction pending." +msgstr "거래 승인중" + +#: src/jade/messages/sendconvert/confirmation.jade:6 +msgid "Transaction successful" +msgstr "거래 완료" + +#: src/jade/messages/sendconvert/confirmation.jade:8 +#: src/jade/messages/sendconvert/confirmation.jade:11 +#: src/jade/messages/sendconvert/confirmation.jade:16 +#: src/jade/messages/sendconvert/confirmation.jade:21 +#: src/jade/messages/sendconvert/confirmation.jade:30 +#: src/jade/messages/sendconvert/confirmation.jade:37 +#: src/jade/messages/sendconvert/localerror.jade:5 +#: src/jade/messages/sendconvert/localerror.jade:8 +#: src/jade/messages/sendconvert/localerror.jade:11 +#: src/jade/messages/sendconvert/localerror.jade:14 +msgid "Transaction failed" +msgstr "거래 실패" + +#: src/jade/messages/sendconvert/confirmation.jade:9 src/jade/tabs/brl.jade:25 +#: src/jade/tabs/btc.jade:22 src/jade/tabs/eur.jade:25 +#: src/jade/tabs/gold.jade:25 src/jade/tabs/jpy.jade:25 +#: src/jade/tabs/mxn.jade:25 src/jade/tabs/trust.jade:43 +#: src/jade/tabs/usd.jade:25 +msgid "Please try again later." +msgstr "다시 시도해 주세요." + +#: src/jade/messages/sendconvert/confirmation.jade:23 +msgid "Error code: The destination account does not exist [tecNO_DST]." +msgstr "에러 코드: 대상 지갑이 존재 하지 않습니다 [tecNO_DST]." + +#: src/jade/messages/sendconvert/confirmation.jade:34 +msgid "Your transaction failed: {{engine_result_message}}" +msgstr "거래가 실패했습니다: {{engine_result_message}}" + +#: src/jade/messages/sendconvert/localerror.jade:6 +msgid "" +"Error code: The account you're trying to send to does not exist " +"[noDest]." +msgstr "에러 코드: 보내려는 지갑이 존재하지 않습니다 [noDest]." + +#: src/jade/messages/sendconvert/localerror.jade:9 +msgid "" +"Error code: Ripple was unable to find a path between you and the destination" +" account [noPath]." +msgstr "에러 코드: 대상 지갑 간에 연결된 경로를 찾지 못했습니다 [noPath]." + +#: src/jade/messages/sendconvert/localerror.jade:12 +msgid "" +"Error code: This transaction failed because it exceeded the maximum network " +"fee. [maxfeeExceeded]." +msgstr "에러 코드: 네트워크 최대 수수료를 초과하였습니다. 거래가 실패하였습니다. [maxfeeExceeded]." + +#: src/jade/messages/sendconvert/localerror.jade:15 +msgid "" +"Error code: The transaction was rejected by the Ripple network " +"[invalidTransaction]." +msgstr "에러 코드: 거래가 거절되었습니다 [invalidTransaction]." + +#: src/jade/messages/sendconvert/localerror.jade:17 +msgid "Account unlock failed" +msgstr "지갑 잠금해제 실패" + +#: src/jade/messages/sendconvert/localerror.jade:18 +#: src/jade/tabs/trust.jade:40 +msgid "Your account could not be unlocked. Please try again later." +msgstr "지갑을 열지 못했습니다. 다시 시도해 주십시오." + +#: src/jade/messages/sendconvert/localerror.jade:20 +msgid "" +"Sorry, an error occurred while submitting your transaction.Make sure you are" +" connected to the Internet and try again later." +msgstr "거래 요청 중 에러가 발생했습니다. 인터넷 연결 여부를 확인하시고 다시 시도해 주세요." + +#: src/jade/messages/sendconvert/localerror.jade:22 +msgid "" +"Before trying again, please ensure that the transaction has not been " +"executed already." +msgstr "다시 시도하기 전에 거래가 완료되었는지 한번 더 확인하세요." + +#: src/jade/messages/sendconvert/waiting.jade:5 +msgid "Sending transaction to the Ripple network" +msgstr "거래 내역을 리플 네트워크에 보내는 중" + +#: src/jade/notification/account.jade:3 +msgid "You sent {{1}} {{2}} to {{3}}" +msgstr "{{1}} {{2}}을 {{3}}에게 보냈습니다." + +#: src/jade/notification/account.jade:11 +msgid "{{tx.counterparty | rpcontactname}} sent you" +msgstr "{{tx.counterparty | rpcontactname}}님이 보냈습니다." + +#: src/jade/notification/account.jade:18 +msgid "{{tx.counterparty | rpcontactname}} now trusts you for" +msgstr "{{tx.counterparty | rpcontactname}}는 트러스트 합니다." + +#: src/jade/popup/modifyOrderError.jade:2 +msgid "Modify Order Error" +msgstr "거래 수정 에러" + +#: src/jade/popup/modifyOrderError.jade:4 +msgid "Sorry, your order could not be modified." +msgstr "거래가 수정되지 않았습니다." + +#: src/jade/popup/modifyOrderError.jade:5 +msgid "" +"Your original order was cancelled but the modified order was not placed. " +"
" +msgstr "원거래가 취소되었지만 수정된 거래는 나타나지 않았습니다." + +#: src/jade/popup/modifyOrderError.jade:6 +msgid "" +"The quantity of your order changed by {{order.qtyChangeAfterCancel | " +"rpamount}} before the order could be modified.

" +msgstr "거래량이 수정되었습니다 {{order.qtyChangeAfterCancel | rpamount}} 거래 전 수정됩니다." + +#: src/jade/popup/modifyOrderError.jade:7 +msgid "" +"To safeguard against the possibility of overfills a new order has not been " +"placed.
" +msgstr "지나치게 많은양의 거래를 보호하기 위하여 새 거래가 등록되지 않았습니다." + +#: src/jade/popup/modifyOrderError.jade:8 +msgid "" +"Please check your balance and history before placing the new order manually." +"
" +msgstr "거래 전 거래내역과 잔고를 직접 확인하세요." + +#: src/jade/popup/modifyOrderError.jade:10 src/jade/popup/unlock.jade:17 +msgid "Close" +msgstr "닫기" + +#: src/jade/popup/unlock.jade:2 +msgid "Unlock account" +msgstr "지갑 잠금해제" + +#: src/jade/popup/unlock.jade:5 src/jade/tabs/login/form.jade:8 +#: src/jade/tabs/recover.jade:38 src/jade/tabs/register.jade:58 +#: src/jade/tabs/security.jade:12 +msgid "Password" +msgstr "비밀번호" + +#: src/jade/popup/unlock.jade:8 +msgid "Please enter your password to show your secret key." +msgstr "시크릿 키를 보려면 비밀번호를 입력하세요." + +#: src/jade/popup/unlock.jade:9 src/jade/tabs/send.jade:205 +msgid "Please enter your password to confirm this transaction." +msgstr "해당 거래를 승인하려면 비밀번호를 입력하세요." + +#: src/jade/popup/unlock.jade:10 +msgid "This password is incorrect, please try again." +msgstr "잘못된 비밀번호입니다. 다시 시도해 주세요." + +#: src/jade/popup/unlock.jade:13 +msgid "Confirming password" +msgstr "비밀번호 확인 중" + +#: src/jade/popup/unlock.jade:16 src/jade/tabs/account/public.jade:44 +#: src/jade/tabs/security.jade:146 +msgid "Submit" +msgstr "제출하기" + +#: src/jade/tabs/2fa/form.jade:3 +msgid "Country Code" +msgstr "국가 코드" + +#: src/jade/tabs/2fa/form.jade:6 src/jade/tabs/kyc.jade:162 +msgid "Phone Number" +msgstr "휴대전화 번호" + +#: src/jade/tabs/_usd.jade:6 src/jade/tabs/apps.jade:5 +#: src/jade/tabs/balance.jade:5 src/jade/tabs/brl.jade:6 +#: src/jade/tabs/btc.jade:9 src/jade/tabs/eur.jade:6 +#: src/jade/tabs/exchange.jade:6 src/jade/tabs/fund.jade:6 +#: src/jade/tabs/gold.jade:6 src/jade/tabs/history.jade:6 +#: src/jade/tabs/jpy.jade:6 src/jade/tabs/kyc.jade:6 src/jade/tabs/mxn.jade:6 +#: src/jade/tabs/send.jade:6 src/jade/tabs/su.jade:5 +#: src/jade/tabs/trade.jade:7 src/jade/tabs/trust.jade:6 +#: src/jade/tabs/usd.jade:6 src/jade/tabs/withdraw.jade:6 +#: src/jade/tabs/xrp.jade:6 +msgid "You have to be online to see this screen" +msgstr "해당 화면을 보려면 온라인 상태여야 합니다. " + +#: src/jade/tabs/_usd.jade:17 +msgid "USD instant deposit" +msgstr "USD 즉시 예탁" + +#: src/jade/tabs/_usd.jade:19 src/jade/tabs/_usd.jade:21 +msgid "Step 1 (Amount)" +msgstr "스텝 1 (금액)" + +#: src/jade/tabs/_usd.jade:22 +msgid "Step 2 (Confirmation)" +msgstr "스텝 2 (확인)" + +#: src/jade/tabs/_usd.jade:23 +msgid "Step 3 (Complete deposit)" +msgstr "스텝 3 (예탁하기)" + +#: src/jade/tabs/_usd.jade:26 +msgid "STEP 1: AMOUNT" +msgstr "스텝 1: 금액" + +#: src/jade/tabs/_usd.jade:28 +msgid "STEP 2: CONFIRMATION" +msgstr "스텝 2: 확인" + +#: src/jade/tabs/_usd.jade:30 +msgid "STEP 3: COMPLETE DEPOSIT" +msgstr "스텝 3: 예탁하기" + +#: src/jade/tabs/_usd.jade:34 +msgid "" +"Success! You've completed your USD deposit. Your funds should be available " +"within a few minutes." +msgstr "거래 성공! USD 예탁이 완료되었습니다. 몇 분 내로 자금이 이용가능 합니다." + +#: src/jade/tabs/_usd.jade:36 +msgid "You cancelled your deposit." +msgstr "예탁을 취소하셨습니다." + +#: src/jade/tabs/_usd.jade:38 +msgid "" +"Your deposit failed. Your bank account was not charged. Please contact " +"{{1}}." +msgstr "예탁 실패. 은행 계좌가 부과되지 않았습니다. {{1}} 연결하기" + +#: src/jade/tabs/_usd.jade:49 src/jade/tabs/_usd.jade:91 +#: src/jade/tabs/fund.jade:41 src/jade/tabs/history.jade:172 +#: src/jade/tabs/trust.jade:89 +msgid "Amount" +msgstr "금액" + +#: src/jade/tabs/_usd.jade:59 src/jade/tabs/_usd.jade:62 +msgid "Select your bank" +msgstr "은행 선택" + +#: src/jade/tabs/_usd.jade:77 +msgid "" +"Ripple Trade has partnered with SnapSwap to make USD deposits easier. By " +"continuing, you agree to SnapSwap's {{1}}To contact support, email {{2}}." +msgstr "리플 트레이드는 USD 예탁을 편리하게 하기위해 SnapSwap과 파트너를 맺었습니다. 계속 진행하시려면, SnapSwap의 {{1}} 연결 지원을 승낙하세요, 이메일 {{2}}." + +#: src/jade/tabs/_usd.jade:93 src/jade/tabs/history.jade:178 +msgid "Fee" +msgstr "이용 요금" + +#: src/jade/tabs/_usd.jade:95 +msgid "Total" +msgstr "합계" + +#: src/jade/tabs/_usd.jade:98 +msgid "Calculating..." +msgstr "계산 중" + +#: src/jade/tabs/_usd.jade:109 src/jade/tabs/register.jade:126 +#: src/jade/tabs/register.jade:133 +msgid "Back" +msgstr "뒤로" + +#: src/jade/tabs/_usd.jade:111 src/jade/tabs/btc.jade:73 +#: src/jade/tabs/exchange.jade:111 src/jade/tabs/send.jade:213 +#: src/jade/tabs/trade.jade:67 src/jade/tabs/trade.jade:77 +#: src/jade/tabs/trade.jade:248 src/jade/tabs/trade.jade:407 +#: src/jade/tabs/trust.jade:140 +msgid "Confirm" +msgstr "확인" + +#: src/jade/tabs/account/navbar.jade:2 +msgid "Public Information" +msgstr "공공 정보" + +#: src/jade/tabs/account/private.jade:1 +msgid "Profile Information" +msgstr "프로필 정보" + +#: src/jade/tabs/account/private.jade:3 +msgid "Identity Information" +msgstr "본인 정보" + +#: src/jade/tabs/account/private.jade:8 src/jade/tabs/account/private.jade:17 +msgid "Completed" +msgstr "완료" + +#: src/jade/tabs/account/private.jade:9 src/jade/tabs/account/private.jade:18 +msgid "Incomplete" +msgstr "미완료" + +#: src/jade/tabs/account/private.jade:10 src/jade/tabs/account/private.jade:19 +msgid "Complete your profile" +msgstr "프로필 작성 완료" + +#: src/jade/tabs/account/private.jade:12 +msgid "Identity Questions" +msgstr "본인확인 질문" + +#: src/jade/tabs/account/public.jade:1 +msgid "Changing your Ripple name..." +msgstr "리플 아이디 변경" + +#: src/jade/tabs/account/public.jade:2 +msgid "Your Ripple name has been changed successfully." +msgstr "리플 아이디가 성공적으로 변경되었습니다." + +#: src/jade/tabs/account/public.jade:3 +msgid "Account settings" +msgstr "지갑 설정" + +#: src/jade/tabs/account/public.jade:5 src/jade/tabs/fund/menu.jade:2 +#: src/jade/tabs/login/form.jade:3 +msgid "Ripple name" +msgstr "리플 아이디" + +#: src/jade/tabs/account/public.jade:9 src/jade/tabs/advanced.jade:27 +#: src/jade/tabs/advanced.jade:44 src/jade/tabs/advanced.jade:63 +#: src/jade/tabs/advanced.jade:86 src/jade/tabs/advanced.jade:134 +#: src/jade/tabs/contacts.jade:61 src/jade/tabs/security.jade:120 +#: src/jade/tabs/security.jade:180 src/jade/tabs/trust.jade:191 +#: src/jade/tabs/trust.jade:193 +msgid "edit" +msgstr "편집" + +#: src/jade/tabs/account/public.jade:12 +msgid "New Ripple name" +msgstr "새 리플 아이디" + +#: src/jade/tabs/account/public.jade:17 src/jade/tabs/register.jade:35 +#: src/jade/tabs/widgets/balances.jade:24 +msgid "Available" +msgstr "가능" + +#: src/jade/tabs/account/public.jade:20 src/jade/tabs/register.jade:39 +msgid "Already taken!" +msgstr "이미 사용중!" + +#: src/jade/tabs/account/public.jade:21 +msgid "Reserved for {{usernameReservedFor}}{{1}}{{2}}" +msgstr "{{usernameReservedFor}}{{1}}{{2}} 을 위해 보관 중" + +#: src/jade/tabs/account/public.jade:24 src/jade/tabs/register.jade:45 +msgid "Must be at least 2 characters" +msgstr "최소 2자 이상 설정" + +#: src/jade/tabs/account/public.jade:25 src/jade/tabs/register.jade:47 +msgid "Must be at most 20 characters" +msgstr "최대 20자 이내 설정" + +#: src/jade/tabs/account/public.jade:26 +msgid "Only a-z, 0-9 and hyphen (-)" +msgstr "a-z, 0-9, 하이픈 (-) 이용 가능" + +#: src/jade/tabs/account/public.jade:27 src/jade/tabs/register.jade:51 +msgid "Cannot start with hyphen (-)" +msgstr "하이픈 (-) 으로 시작할 수 없음" + +#: src/jade/tabs/account/public.jade:28 src/jade/tabs/register.jade:53 +msgid "Cannot end with hyphen (-)" +msgstr "하이픈 (-) 으로 끝날 수 없음" + +#: src/jade/tabs/account/public.jade:29 +msgid "Cannot bundle hyphens (--)" +msgstr "하이픈 (--) 연속 사용 불가" + +#: src/jade/tabs/account/public.jade:30 src/jade/tabs/register.jade:56 +msgid "Checking..." +msgstr "검토중" + +#: src/jade/tabs/account/public.jade:32 src/jade/tabs/security.jade:126 +msgid "Current password" +msgstr "현재 비밀번호" + +#: src/jade/tabs/account/public.jade:35 src/jade/tabs/security.jade:18 +#: src/jade/tabs/security.jade:23 +msgid "Entered password is wrong." +msgstr "입력한 비밀번호 오류" + +#: src/jade/tabs/account/public.jade:37 +msgid "Your Ripple name has been changed. Please login again." +msgstr "리플 아이디가 변경되었습니다. 다시 로그인 하세요." + +#: src/jade/tabs/account/public.jade:39 +msgid "Couldn't change your Ripple name, please try again later." +msgstr "리플 아이디를 변경할 수 없습니다. 다시 시도해 주세요." + +#: src/jade/tabs/account/public.jade:47 src/jade/tabs/advanced.jade:36 +#: src/jade/tabs/advanced.jade:53 src/jade/tabs/advanced.jade:77 +#: src/jade/tabs/advanced.jade:94 src/jade/tabs/advanced.jade:124 +#: src/jade/tabs/btc.jade:74 src/jade/tabs/contacts.jade:50 +#: src/jade/tabs/contacts.jade:93 src/jade/tabs/exchange.jade:113 +#: src/jade/tabs/exchange.jade:126 src/jade/tabs/kyc.jade:116 +#: src/jade/tabs/kyc.jade:131 src/jade/tabs/kyc.jade:156 +#: src/jade/tabs/kyc.jade:157 src/jade/tabs/kyc.jade:186 +#: src/jade/tabs/login/form.jade:26 src/jade/tabs/security.jade:79 +#: src/jade/tabs/security.jade:112 src/jade/tabs/security.jade:149 +#: src/jade/tabs/send.jade:215 src/jade/tabs/send.jade:227 +#: src/jade/tabs/send.jade:252 src/jade/tabs/send.jade:286 +#: src/jade/tabs/trade.jade:55 src/jade/tabs/trust.jade:141 +#: src/jade/tabs/trust.jade:143 src/jade/tabs/trust.jade:213 +#: src/jade/tabs/trust.jade:251 +msgid "cancel" +msgstr "취소" + +#: src/jade/tabs/account/public.jade:49 +msgid "Ripple address" +msgstr "리플 계좌번호" + +#: src/jade/tabs/advanced.jade:8 +msgid "Your blob vault has been changed successfully." +msgstr "블랍 금고가 성공적으로 변경되었습니다." + +#: src/jade/tabs/advanced.jade:9 +msgid "Your bitcoin bridge has been changed successfully." +msgstr "비트코인 브릿지 설정이 성공적으로 변경되었습니다." + +#: src/jade/tabs/advanced.jade:10 +msgid "Trustline advanced settings has been changed successfully." +msgstr "트러스트 라인 고급설정이 성공적으로 변경되었습니다." + +#: src/jade/tabs/advanced.jade:11 +msgid "Maximum network fee has been changed successfully." +msgstr "최대 네트워크 수수료가 성공적으로 변경되었습니다." + +#: src/jade/tabs/advanced.jade:12 +msgid "A new server has been successfully added." +msgstr "새로운 서버가 성공적으로 추가되었습니다." + +#: src/jade/tabs/advanced.jade:13 +msgid "A server has been successfully removed." +msgstr "새로운 서버가 성공적으로 제거되었습니다." + +#: src/jade/tabs/advanced.jade:14 +msgid "A server has been changed successfully." +msgstr "새로운 서버가 성공적으로 변경되었습니다." + +#: src/jade/tabs/advanced.jade:21 +msgid "Blob vault" +msgstr "블랍 금고" + +#: src/jade/tabs/advanced.jade:32 src/jade/tabs/advanced.jade:49 +#: src/jade/tabs/advanced.jade:73 src/jade/tabs/advanced.jade:92 +#: src/jade/tabs/advanced.jade:120 src/jade/tabs/contacts.jade:88 +#: src/jade/tabs/fund.jade:65 src/jade/tabs/security.jade:190 +#: src/jade/tabs/send.jade:251 src/jade/tabs/send.jade:284 +#: src/jade/tabs/trust.jade:119 src/jade/tabs/trust.jade:232 +msgid "Save" +msgstr "저장" + +#: src/jade/tabs/advanced.jade:34 src/jade/tabs/advanced.jade:51 +#: src/jade/tabs/advanced.jade:75 src/jade/tabs/advanced.jade:122 +#: src/jade/tabs/contacts.jade:91 src/jade/tabs/security.jade:198 +msgid "Delete" +msgstr "삭제" + +#: src/jade/tabs/advanced.jade:38 +msgid "Bitcoin bridge" +msgstr "비트코인 브릿지" + +#: src/jade/tabs/advanced.jade:55 +msgid "Trust line" +msgstr "트러스트 라인" + +#: src/jade/tabs/advanced.jade:60 src/jade/tabs/advanced.jade:71 +#: src/jade/tabs/security.jade:162 +msgid "Show" +msgstr "보여주기" + +#: src/jade/tabs/advanced.jade:61 src/jade/tabs/security.jade:163 +msgid "Hide" +msgstr "숨기기" + +#: src/jade/tabs/advanced.jade:78 +msgid "Network settings" +msgstr "네트워크 설정" + +#: src/jade/tabs/advanced.jade:80 +msgid "Maximum network fee" +msgstr "네트워크 최대 수수료" + +#: src/jade/tabs/advanced.jade:96 +msgid "Server settings" +msgstr "서버 설정" + +#: src/jade/tabs/advanced.jade:101 +msgid "WebSocket host name" +msgstr "웹소켓 호스트 이름" + +#: src/jade/tabs/advanced.jade:103 +msgid "Port number" +msgstr "포트 번호" + +#: src/jade/tabs/advanced.jade:109 +msgid "Socket ip or hostname is invalid." +msgstr "소켓 IP 혹은 호스트 이름이 유효하지 않습니다." + +#: src/jade/tabs/advanced.jade:111 +msgid "Port number is invalid." +msgstr "포트 번호가 유효하지 않습니다." + +#: src/jade/tabs/advanced.jade:118 src/jade/tabs/advanced.jade:131 +msgid "Secure" +msgstr "보안" + +#: src/jade/tabs/advanced.jade:132 +msgid "Not Secure" +msgstr "미보안" + +#: src/jade/tabs/advanced.jade:138 +msgid "Add new server" +msgstr "새로운 서버를 추가하세요." + +#: src/jade/tabs/apps.jade:27 +msgid "App Ripple Address" +msgstr "새로운 리플 주소를 추가하세요" + +#: src/jade/tabs/apps.jade:29 +msgid "Please enter a ripple address." +msgstr "리플 계좌번호를 입력하세요." + +#: src/jade/tabs/apps.jade:31 +msgid "Please enter a valid ripple address." +msgstr "유효한 리플 계좌번호를 입력하세요." + +#: src/jade/tabs/banner/announcement.jade:2 +msgid "Help our team improve Ripple Trade! {{1:Take a quick user survey.}}" +msgstr "리플 트레이드 개선에 참여하기! {{1:Take a quick user survey.}}" + +#: src/jade/tabs/banner/unfunded.jade:2 +msgid "" +"Welcome to Ripple Trade! Your account needs to be activated. You can " +"activate it in 2 ways:" +msgstr "리플 트레이드에 오신것을 환영합니다! 리플 지갑을 활성화하세요. 2가지 방법으로 가능합니다." + +#: src/jade/tabs/banner/unfunded.jade:4 +msgid "" +"Have another user send XRP to your Ripple name " +"(~{{userCredentials.username}}). {{1}}" +msgstr "다른 유저가 XRP를 보낸적 있습니까, 리플아이디 (~{{userCredentials.username}}). {{1}}" + +#: src/jade/tabs/brl.jade:24 src/jade/tabs/eur.jade:24 +#: src/jade/tabs/gold.jade:24 src/jade/tabs/jpy.jade:24 +#: src/jade/tabs/mxn.jade:24 src/jade/tabs/trust.jade:42 +#: src/jade/tabs/usd.jade:24 +msgid "There was an error while saving your changes." +msgstr "수정사항을 저장하는 중 오류가 발생했습니다." + +#: src/jade/tabs/brl.jade:28 src/jade/tabs/eur.jade:27 +#: src/jade/tabs/gold.jade:27 src/jade/tabs/jpy.jade:28 +#: src/jade/tabs/mxn.jade:28 src/jade/tabs/trust.jade:45 +#: src/jade/tabs/usd.jade:27 +msgid "You must have at least {{1}} to add a new trust line. {{2}}" +msgstr "최소 {{1}} 을 소유해야 새로운 트러스트 라인 {{2}} 를 추가 할 수 있습니다." + +#: src/jade/tabs/brl.jade:38 +msgid "Brazilian Real Deposit" +msgstr "브라질 리얼 예탁" + +#: src/jade/tabs/brl.jade:41 src/jade/tabs/btc.jade:35 +#: src/jade/tabs/eur.jade:38 src/jade/tabs/gold.jade:40 +#: src/jade/tabs/jpy.jade:41 src/jade/tabs/mxn.jade:41 +#: src/jade/tabs/trust.jade:167 src/jade/tabs/usd.jade:38 +msgid "Gateway" +msgstr "게이트웨이" + +#: src/jade/tabs/brl.jade:42 src/jade/tabs/eur.jade:48 +#: src/jade/tabs/mxn.jade:81 src/jade/tabs/mxn.jade:93 +#: src/jade/tabs/mxn.jade:103 src/jade/tabs/security.jade:49 +msgid "{{1}}{{2}}" +msgstr "{{1}}{{2}}" + +#: src/jade/tabs/brl.jade:43 +msgid "Ripple (~rippex)" +msgstr "리플 (~rippex)" + +#: src/jade/tabs/brl.jade:46 src/jade/tabs/btc.jade:39 +#: src/jade/tabs/eur.jade:44 src/jade/tabs/gold.jade:44 +#: src/jade/tabs/jpy.jade:45 src/jade/tabs/mxn.jade:46 +#: src/jade/tabs/usd.jade:44 +msgid "Availability" +msgstr "이용가능지역" + +#: src/jade/tabs/brl.jade:47 +msgid "Brazil" +msgstr "브라질" + +#: src/jade/tabs/brl.jade:49 src/jade/tabs/btc.jade:42 +#: src/jade/tabs/eur.jade:47 src/jade/tabs/gold.jade:47 +#: src/jade/tabs/jpy.jade:48 src/jade/tabs/mxn.jade:49 +#: src/jade/tabs/usd.jade:47 +msgid "Fees" +msgstr "수수료" + +#: src/jade/tabs/brl.jade:50 src/jade/tabs/jpy.jade:49 +#: src/jade/tabs/kyc.jade:111 src/jade/tabs/kyc.jade:126 +#: src/jade/tabs/kyc.jade:151 +msgid "{{1}}{{2}}{{3}}" +msgstr "{{1}}{{2}}{{3}}" + +#: src/jade/tabs/brl.jade:51 +msgid "Deposit: 1.50 BRL + 0.5%" +msgstr "예탁: 1.50 BRL + 0.5%" + +#: src/jade/tabs/brl.jade:52 +msgid "Transfer: 0%" +msgstr "거래: 0%" + +#: src/jade/tabs/brl.jade:56 src/jade/tabs/btc.jade:45 +#: src/jade/tabs/eur.jade:53 src/jade/tabs/gold.jade:50 +#: src/jade/tabs/jpy.jade:54 src/jade/tabs/mxn.jade:52 +#: src/jade/tabs/usd.jade:50 +msgid "Rating" +msgstr "평가" + +#: src/jade/tabs/brl.jade:62 +msgid "" +"Ripple Trade has partnered with Rippex to provide easy access to BRL. By " +"continuing, you agree with Rippex's {{1}}Following this action will enable " +"Rippex to hold BRL on your behalf." +msgstr "리플 트레이드는 BRL을 손쉽게 제공하기 위하여 Rippex와 제휴 하고있습니다. 계속 진행하시려면, Rippex의 {{1}} 이용을 승낙하세요." + +#: src/jade/tabs/brl.jade:69 +msgid "Add Rippex" +msgstr "Rippex 추가" + +#: src/jade/tabs/brl.jade:70 +msgid "Adding..." +msgstr "추가중" + +#: src/jade/tabs/brl.jade:71 src/jade/tabs/eur.jade:65 +#: src/jade/tabs/jpy.jade:64 src/jade/tabs/usd.jade:62 +msgid "Hide instructions" +msgstr " 설명 숨기기" + +#: src/jade/tabs/brl.jade:72 src/jade/tabs/eur.jade:66 +#: src/jade/tabs/jpy.jade:65 src/jade/tabs/usd.jade:63 +msgid "Show instructions" +msgstr "설명 보이기" + +#: src/jade/tabs/brl.jade:75 src/jade/tabs/btc.jade:83 +msgid "{{1}}Not connected" +msgstr "{{1}}연결 되지않음" + +#: src/jade/tabs/brl.jade:78 src/jade/tabs/btc.jade:86 +msgid "{{1}}Connected" +msgstr "{{1}}연결됨" + +#: src/jade/tabs/brl.jade:81 src/jade/tabs/eur.jade:71 +#: src/jade/tabs/gold.jade:73 src/jade/tabs/jpy.jade:74 +#: src/jade/tabs/mxn.jade:76 src/jade/tabs/usd.jade:68 +msgid "Your account has to be activated before you can add a gateway account." +msgstr "게이트웨이를 추가하기 전 지갑이 활성화 되어야 합니다. " + +#: src/jade/tabs/brl.jade:84 src/jade/tabs/eur.jade:75 +#: src/jade/tabs/gold.jade:76 src/jade/tabs/jpy.jade:77 +#: src/jade/tabs/mxn.jade:79 src/jade/tabs/usd.jade:72 +msgid "×" +msgstr "×" + +#: src/jade/tabs/brl.jade:85 +msgid "NEW CUSTOMERS- SIGN UP AT RIPPEX" +msgstr "신규 회원- RIPPEX에 가입하기" + +#: src/jade/tabs/brl.jade:86 +msgid "" +"{{1}} at Rippex.net to initiate deposits and withdrawals. You will " +"need:{{2}}" +msgstr "{{1}} Rippex.net에서 예탁과 인출을 시작합니다. 다음이 요구됩니다:{{2}}" + +#: src/jade/tabs/brl.jade:90 +msgid "A {{1}}" +msgstr "{{1}}" + +#: src/jade/tabs/brl.jade:92 +msgid "A bank account in Brazil." +msgstr "브라질 은행계좌" + +#: src/jade/tabs/brl.jade:96 +msgid "EXISTING RIPPEX CUSTOMERS" +msgstr "기존 RIPPEX 회원" + +#: src/jade/tabs/brl.jade:97 +msgid "If you have a Rippex account, {{1}}" +msgstr "Rippex 계좌가 있다면, {{1}}" + +#: src/jade/tabs/brl.jade:100 +msgid "DEPOSIT INSTRUCTIONS" +msgstr "예탁 설명" + +#: src/jade/tabs/brl.jade:101 +msgid "Rippex accepts deposits from all Brazilian banks. Instructions {{1}}" +msgstr "Rippex는 모든 브라질 은행들과의 제휴로 예탁 가능합니다. 설명 {{1}}" + +#: src/jade/tabs/btc.jade:19 +msgid "Success! You can deposit BTC via your generated BTC receiving address." +msgstr "성공! 기존의 BTC 주소 를 통하여 BTC를 예탁할 수 있습니다." + +#: src/jade/tabs/btc.jade:21 +msgid "There was an error with your request. {{1}}" +msgstr "요청에 오류가 발생했습니다. {{1}}" + +#: src/jade/tabs/btc.jade:30 +msgid "Bitcoin Deposit" +msgstr "비트코인 예탁" + +#: src/jade/tabs/btc.jade:36 +msgid "btc2ripple (~snapswap) {{1}}" +msgstr "btc2ripple (~snapswap) {{1}}" + +#: src/jade/tabs/btc.jade:40 src/jade/tabs/gold.jade:45 +#: src/jade/tabs/jpy.jade:46 +msgid "All countries" +msgstr "모든 국가" + +#: src/jade/tabs/btc.jade:43 src/jade/tabs/mxn.jade:50 +msgid "0%" +msgstr "0%" + +#: src/jade/tabs/btc.jade:50 +msgid "" +"Ripple Trade has partnered with btc2ripple to make depositing BTC easier. By" +" proceeding, you agree to the btc2ripple {{1}} Following this action will " +"allow btc2ripple to hold BTC on your behalf." +msgstr "리플 트레이드는 BTC를 손쉽게 제공하기 위하여 btc2ripple과 제휴 하고있습니다. 계속 진행하시려면, btc2ripple의 {{1}} 이용을 승낙하세요." + +#: src/jade/tabs/btc.jade:56 +msgid "Add btc2ripple" +msgstr "btc2ripple 추가" + +#: src/jade/tabs/btc.jade:60 src/jade/tabs/security.jade:64 +#: src/jade/tabs/trust.jade:123 +msgid "Connect" +msgstr "연결" + +#: src/jade/tabs/btc.jade:62 +msgid "btc2ripple would like to:" +msgstr "btc2ripple은 다음 사항을 시행합니다:" + +#: src/jade/tabs/btc.jade:64 +msgid "- Receive your email address {{1}}" +msgstr "- 이메일 주소 받기 {{1}}" + +#: src/jade/tabs/btc.jade:65 +msgid "({{userBlob.data.email}})" +msgstr "({{userBlob.data.email}})" + +#: src/jade/tabs/btc.jade:66 +msgid "- Hold deposited BTC on your behalf" +msgstr "- 회원을 대신하여 예탁된 BTC를 보관" + +#: src/jade/tabs/btc.jade:67 +msgid "By proceeding, you agree to the btc2ripple {{1}}" +msgstr "진행하시려면, btc2ripple 승낙하기 {{1}}" + +#: src/jade/tabs/btc.jade:75 +msgid "" +"SnapSwap's btc2ripple service is currently unavailable. Please check back " +"later." +msgstr "SnapSwap의 btc2ripple 서비스는 현재 이용불가합니다. 다음에 다시 시도하세요." + +#: src/jade/tabs/btc.jade:94 +msgid "Personal Deposit address" +msgstr "개인 예탁 주소" + +#: src/jade/tabs/btc.jade:96 +msgid "Your account is fully verified." +msgstr "지갑이 확인되었습니다." + +#: src/jade/tabs/btc.jade:104 +msgid "Withdrawal instructions" +msgstr "인출 설명" + +#: src/jade/tabs/btc.jade:105 +msgid "" +"To withdraw to a BTC address, go to the Send tab and enter the BTC address. " +"Using the btc2ripple service, you will be able tosend to that BTC address." +msgstr "BTC 주소에서 인출하기 위해, 보내기 탭에 가서 BTC 주소를 입력하세요. btc2ripple 서비스를 이용하시면, BTC 주소로 보내실 수 있습니다." + +#: src/jade/tabs/btc.jade:110 +msgid "Waiting for response from SnapSwap service..." +msgstr "SnapSwap 서비스 응답 대기중..." + +#: src/jade/tabs/btc.jade:112 +msgid "" +"To deposit, generate a bitcoin receiving address using the {{1}} service " +"powered by SnapSwap." +msgstr "예탁하기, SnapSwap에 의해 구동되는 {{1}} 서비스를 사용하여 비트코인 받을 주소를 만듭니다." + +#: src/jade/tabs/contacts.jade:8 +msgid "A new contact has been successfully added." +msgstr "새로운 연락처가 성공적으로 추가되었습니다." + +#: src/jade/tabs/contacts.jade:9 +msgid "Your contact has been successfully updated." +msgstr "연락처가 성공적으로 업데이트 되었습니다." + +#: src/jade/tabs/contacts.jade:10 +msgid "A contact has been successfully removed." +msgstr "연락처가 성공적으로 제거되었습니다." + +#: src/jade/tabs/contacts.jade:12 src/jade/tabs/contacts.jade:24 +msgid "Contact" +msgstr "연락처" + +#: src/jade/tabs/contacts.jade:13 src/jade/tabs/contacts.jade:32 +msgid "Ripple name or address" +msgstr "리플 사용자 이름 혹은 계좌번호" + +#: src/jade/tabs/contacts.jade:15 src/jade/tabs/contacts.jade:19 +#: src/jade/tabs/contacts.jade:48 +msgid "Add contact" +msgstr "연락처 등록" + +#: src/jade/tabs/contacts.jade:27 src/jade/tabs/send.jade:245 +#: src/jade/tabs/send.jade:277 +msgid "Please enter a contact." +msgstr "연락처를 입력하세요." + +#: src/jade/tabs/contacts.jade:28 +msgid "This contact already exists." +msgstr "해당 연락처는 이미 존재합니다." + +#: src/jade/tabs/contacts.jade:36 +msgid "Please enter a Ripple name." +msgstr "리플 사용자 이름을 입력하세요." + +#: src/jade/tabs/contacts.jade:37 src/jade/tabs/contacts.jade:45 +msgid "" +"You already have a contact with the same Ripple name and/or the same " +"Destination tag." +msgstr "이미 같은 리플 아이디 혹은 지정 태그가 연락처에 등록되어 있습니다." + +#: src/jade/tabs/contacts.jade:38 +msgid "Not a valid Ripple name or address." +msgstr "유효한 리플 사용자 이름 혹은 계좌번호가 아닙니다." + +#: src/jade/tabs/contacts.jade:41 src/jade/tabs/contacts.jade:81 +#: src/jade/tabs/send.jade:42 src/jade/tabs/tx.jade:56 +msgid "Destination tag" +msgstr "목적지 태그" + +#: src/jade/tabs/contacts.jade:42 +msgid "Leave blank if not applicable" +msgstr "해당되지 않으면 빈칸으로 남겨두세요" + +#: src/jade/tabs/contacts.jade:44 src/jade/tabs/send.jade:46 +msgid "Invalid destination tag" +msgstr "존재하지 않은 목적지 태그" + +#: src/jade/tabs/contacts.jade:72 +msgid "You already have a contact with the same name." +msgstr "같은 이름의 연락처가 존재합니다. " + +#: src/jade/tabs/contacts.jade:78 +msgid "You already have this address." +msgstr "같은 계좌번호가 존재합니다." + +#: src/jade/tabs/contacts.jade:79 src/jade/tabs/debug.jade:14 +msgid "Not a valid address." +msgstr "해당 계좌번호는 존재하지 않습니다." + +#: src/jade/tabs/contacts.jade:84 +msgid "Invalid destination tag." +msgstr "존재하지 않은 목적지 태그" + +#: src/jade/tabs/contacts.jade:94 +msgid "" +"You don't have any contacts yet. Click on 'Add contact' button in the top " +"right corner to add a new contact." +msgstr "아직 어떠한 연결도 없습니다. 우측 상단의 '연락처 등록' 버튼을 클릭하여 새로운 연락처 등록하기" + +#: src/jade/tabs/debug.jade:9 +msgid "Enter a Ripple name or address" +msgstr "리플 아이디 혹은 주소 입력" + +#: src/jade/tabs/debug.jade:13 +msgid "Please enter an address." +msgstr "주소를 입력하세요." + +#: src/jade/tabs/debug.jade:17 +msgid "Turn on debug mode" +msgstr "디버그 모드 켜기" + +#: src/jade/tabs/eur.jade:35 +msgid "Euro Deposit" +msgstr "유료 예탁" + +#: src/jade/tabs/eur.jade:39 +msgid "SnapSwap EU (~SnapSwap){{1}}{{2}}" +msgstr "SnapSwap EU (~SnapSwap){{1}}{{2}}" + +#: src/jade/tabs/eur.jade:45 +msgid "All countries, except USA" +msgstr "USA를 제외한, 모든 국가" + +#: src/jade/tabs/eur.jade:49 +msgid "€ 0.31 – € 15.00" +msgstr "€ 0.31 – € 15.00" + +#: src/jade/tabs/eur.jade:59 +msgid "" +"Ripple Trade has partnered with SnapSwap to provide easier access to EUR. " +"Following this action will enable SnapSwap to hold EUR on your behalf." +msgstr "리플 트레이드는 EUR을 손쉽게 제공하기 위하여 SnapSwap과 제휴 하고있습니다. 계속 진행하시려면, SnapSwap의 이용을 승낙 하세요." + +#: src/jade/tabs/eur.jade:69 src/jade/tabs/usd.jade:66 +msgid "Not connected" +msgstr "연결 되지않음" + +#: src/jade/tabs/eur.jade:70 src/jade/tabs/usd.jade:67 +msgid "Connected" +msgstr "연결됨" + +#: src/jade/tabs/eur.jade:76 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.EU" +msgstr "신규 회원- SNAPSWAP.EU에 가입하기" + +#: src/jade/tabs/eur.jade:77 +msgid "Register and verify your account at SnapSwap EU. You will need: {{1}}" +msgstr "SnapSwap EU에 지갑을 등록하고 인증하세요. 다음이 요구됩니다:{{1}}" + +#: src/jade/tabs/eur.jade:81 src/jade/tabs/usd.jade:78 +msgid "" +"A valid government-issued ID: driver license, passport, ID card, or visa " +"stamp." +msgstr "유효한 정부발행 ID와: 운전면허증, 여권, ID 카드, 또는 비자 도장." + +#: src/jade/tabs/eur.jade:83 src/jade/tabs/usd.jade:80 +msgid "A proof of address: driver license, utility bill, bank statement, etc." +msgstr "거주지 증명: 운전면허증, 공과금명세서, 은행거래내역서, 기타 등등" + +#: src/jade/tabs/eur.jade:85 +msgid "EXISTING SNAPSWAP EU CUSTOMERS" +msgstr "기존 SNAPSWAP EU 회원" + +#: src/jade/tabs/eur.jade:89 src/jade/tabs/jpy.jade:94 +#: src/jade/tabs/usd.jade:86 +msgid "Login to your account {{1}}" +msgstr "계정 로그인하기 {{1}}" + +#: src/jade/tabs/eur.jade:92 src/jade/tabs/jpy.jade:96 +msgid "DEPOSITS AND WITHDRAWALS:" +msgstr "예탁, 인출:" + +#: src/jade/tabs/eur.jade:96 +msgid "Deposit from your bank (2-4 business days)" +msgstr "은행에서 예탁 (2-4일 소요)" + +#: src/jade/tabs/eur.jade:98 +msgid "Withdraw to your bank account in SEPA (2-4 business days)" +msgstr "SEPA 계좌에서 인출 (2-4일 소요)" + +#: src/jade/tabs/eur.jade:100 +msgid "Withdraw to SmartyCash Card (instant)" +msgstr "스마티캐쉬 카드로 인출 (즉시)" + +#: src/jade/tabs/exchange.jade:13 +msgid "You have to be funded before you can exchange money" +msgstr "통화를 교환하기 전에 지갑을 충전하세요." + +#: src/jade/tabs/exchange.jade:23 +msgid "Buy (Market Order)" +msgstr "사기 (마켓 주문)" + +#: src/jade/tabs/exchange.jade:24 +msgid "" +"Submit a buy order at the current market rate. Orders will execute " +"instantly." +msgstr "현재 시세로 간편 구매 주문을 합니다. 주문은 즉시 체결됩니다." + +# Receive (amount) +#: src/jade/tabs/exchange.jade:27 +msgid "Receive (amount)" +msgstr "구매 수량" + +#: src/jade/tabs/exchange.jade:34 src/jade/tabs/widgets/balances.jade:49 +msgid "add gateway" +msgstr "게이트웨이 추가" + +#: src/jade/tabs/exchange.jade:37 src/jade/tabs/send.jade:90 +msgid "Please enter an amount." +msgstr "금액을 기재하세요." + +#: src/jade/tabs/exchange.jade:38 src/jade/tabs/send.jade:91 +#: src/jade/tabs/trade.jade:153 src/jade/tabs/trade.jade:168 +#: src/jade/tabs/trade.jade:183 src/jade/tabs/trust.jade:101 +msgid "Not a valid amount." +msgstr "유효한 금액이 아닙니다." + +#: src/jade/tabs/exchange.jade:39 +msgid "" +"You are either trying to convert too little or too much XRP.Minimum amount " +"is 0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "최소가 혹은 최대가로 XRP를 변환하려는 중입니다. 최소가는 0.000001XRP 이며 최고가는 1000억XRP입니다." + +#: src/jade/tabs/exchange.jade:42 src/jade/tabs/send.jade:96 +#: src/jade/tabs/trust.jade:103 +msgid "Your amount has too many digits. The max number of digits is 16." +msgstr "금액에 너무 많은 숫자가 있습니다. 숫자의 최대는 16입니다. " + +#: src/jade/tabs/exchange.jade:43 +msgid "Please enter an amount greater than zero." +msgstr "0 보다 큰 금액을 기재하세요." + +#: src/jade/tabs/exchange.jade:46 +msgid "{{1}} Calculating..." +msgstr "{{1}} 계산중..." + +#: src/jade/tabs/exchange.jade:50 +msgid "" +"Cannot convert to {{exchange.amount}} {{exchange.currency_name}}. Please " +"make sure your account has enough funds, and a {{1}} to a " +"{{exchange.currency_name}} gateway." +msgstr "변환 할 수 없습니다 {{exchange.amount}} {{exchange.currency_name}}. 충분한 자금을 확보해 주시고, {{1}} 에게 {{exchange.currency_name}} . 게이트웨이" + +#: src/jade/tabs/exchange.jade:54 +msgid "" +"Sorry! Cannot convert {{exchange.amount}} {{exchange.currency_name}}. Please" +" make sure your account has enough funds." +msgstr "변환 할 수 없습니다 {{exchange.amount}} {{exchange.currency_name}}. 충분한 자금을 확보해 주세요." + +#: src/jade/tabs/exchange.jade:56 src/jade/tabs/send.jade:142 +msgid "Error while calculating path" +msgstr "경로 계산 중 에러가 발생했습니다." + +#: src/jade/tabs/exchange.jade:60 +msgid "Exchange" +msgstr "교환" + +#: src/jade/tabs/exchange.jade:72 +msgid "Exchange {{ alt.amount | rpcurrency }} {{1}}" +msgstr "교환 {{ alt.amount | rpcurrency }} {{1}}" + +#: src/jade/tabs/exchange.jade:78 src/jade/tabs/send.jade:170 +msgid "Paths last updated {{1}} {{2: seconds}} {{3: second}} ago" +msgstr "마지막 경로 업데이트 {{1}} {{2: seconds}} {{3: second}} 전" + +#: src/jade/tabs/exchange.jade:89 +msgid "Ripple is calculating a path for your conversion." +msgstr "현재 요청하신 환전의 경로를 계산 중입니다." + +#: src/jade/tabs/exchange.jade:94 +msgid "" +"{{1:You are exchanging}}{{2}}{{3:to}}{{4}}{{5:You will pay at " +"most}}{{6}}{{7:Are you sure?}}" +msgstr "{{1:You are exchanging}}{{2}}{{3:to}}{{4}}{{5:You will pay at most}}{{6}}{{7:Are you sure?}}" + +#: src/jade/tabs/exchange.jade:139 +msgid "Do another conversion" +msgstr "환전을 다시 시도해 보세요." + +#: src/jade/tabs/exchange.jade:141 src/jade/tabs/send.jade:257 +#: src/jade/tabs/send.jade:291 +msgid "Back to balance" +msgstr "거래 내역으로 돌아가기" + +#: src/jade/tabs/fund.jade:20 +msgid "Add trust" +msgstr "신탁 추가" + +#: src/jade/tabs/fund.jade:27 src/jade/tabs/send.jade:26 +msgid "Enter a Ripple name or contact" +msgstr "리플 아이디 혹은 연락처 입력" + +#: src/jade/tabs/fund.jade:33 src/jade/tabs/trust.jade:73 +msgid "Account does not meet the minimum XRP reserve." +msgstr "계좌가 최소한의 XRP 예비금을 보유하고 있지 않습니다." + +#: src/jade/tabs/fund.jade:36 src/jade/tabs/trust.jade:76 +msgid "Please enter a Ripple name, contact, or address." +msgstr "리플 아이디, 연락처, 또는 주소를 입력하세요." + +#: src/jade/tabs/fund.jade:37 src/jade/tabs/trust.jade:77 +msgid "You've entered your own address." +msgstr "본인의 주소를 입력하였습니다." + +#: src/jade/tabs/fund.jade:38 src/jade/tabs/trust.jade:78 +msgid "Please enter a valid Ripple name, contact, or address." +msgstr "유효한 리플 아이디, 연락처, 또는 주소를 입력하세요" + +#: src/jade/tabs/fund.jade:48 src/jade/tabs/trust.jade:80 +msgid "Amount field is required" +msgstr "금액은 필수 입력 사항입니다." + +#: src/jade/tabs/fund.jade:50 src/jade/tabs/trust.jade:82 +#: src/jade/tabs/trust.jade:105 +msgid "" +"XRP can be sent without extending trust. If you really want to trust in XRP," +" please use XRR currency code." +msgstr "XRP는 트러스트 라인 확장 없이 보낼 수 있습니다. XRP 트러스트 라인을 형성하려면, XRR 통화 코드를 사용하세요." + +#: src/jade/tabs/fund.jade:53 src/jade/tabs/trust.jade:85 +#: src/jade/tabs/trust.jade:108 +msgid "Currency field is required" +msgstr "통화는 필수 입력 사항입니다." + +#: src/jade/tabs/fund.jade:59 src/jade/tabs/fund.jade:60 +#: src/jade/tabs/trust.jade:114 src/jade/tabs/trust.jade:115 +msgid "Allow Rippling" +msgstr "리플링 허용" + +#: src/jade/tabs/fund.jade:60 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"trust. More " +"information" +msgstr "이 트러스트 라인의 잔고가 다른 트러스트 라인에 전송 될 수 있도록. 더 많은 정보" + +#: src/jade/tabs/fund.jade:63 +msgid "Cancel" +msgstr "취소" + +#: src/jade/tabs/fund/menu.jade:3 +msgid "{{1}}XRP" +msgstr "{{1}}XRP" + +#: src/jade/tabs/fund/menu.jade:6 +msgid "Featured gateways" +msgstr "주요 게이트웨이" + +#: src/jade/tabs/fund/menu.jade:7 +msgid "{{1}}BRL" +msgstr "{{1}}BRL" + +#: src/jade/tabs/fund/menu.jade:10 +msgid "{{1}}BTC" +msgstr "{{1}}BTC" + +#: src/jade/tabs/fund/menu.jade:13 +msgid "{{1}}EUR" +msgstr "{{1}}EUR" + +#: src/jade/tabs/fund/menu.jade:16 +msgid "{{1}}JPY" +msgstr "{{1}}JPY" + +#: src/jade/tabs/fund/menu.jade:19 +msgid "{{1}}MXN" +msgstr "{{1}}MXN" + +#: src/jade/tabs/fund/menu.jade:22 +msgid "{{1}}USD" +msgstr "{{1}}USD" + +#: src/jade/tabs/fund/menu.jade:25 +msgid "{{1}}XAU" +msgstr "{{1}}XAU" + +#: src/jade/tabs/fund/menu.jade:28 +msgid "Add any gateway" +msgstr "게이트웨이 추가" + +#: src/jade/tabs/fund/menu.jade:30 +msgid "Learn more about gateways" +msgstr "게이트웨이에 더 알아보기" + +#: src/jade/tabs/gold.jade:37 +msgid "Gold Deposit" +msgstr "금 예탁" + +#: src/jade/tabs/gold.jade:41 +msgid "Gold Bullion International (~gbi) {{1}}" +msgstr "Gold Bullion International (~gbi) {{1}}" + +#: src/jade/tabs/gold.jade:48 +msgid "0.5% per year" +msgstr "연 0.5%" + +#: src/jade/tabs/gold.jade:56 +msgid "" +"Ripple Trade has partnered with GBI to provide easy access toXAU. By " +"continuing, you are allowing GBI to hold gold on your behalf." +msgstr "리플 트레이드는 XAU를 손쉽게 제공하기 위하여 GBI와 제휴 하고있습니다. 계속 진행하시려면, GBI의 이용을 동의 하세요." + +#: src/jade/tabs/gold.jade:67 src/jade/tabs/jpy.jade:68 +#: src/jade/tabs/mxn.jade:70 +msgid "{{1}} Not connected" +msgstr "{{1}} 연결 되지않음" + +#: src/jade/tabs/gold.jade:70 src/jade/tabs/jpy.jade:71 +#: src/jade/tabs/mxn.jade:73 +msgid "{{1}} Connected" +msgstr "{{1}} 연결됨" + +#: src/jade/tabs/gold.jade:77 +msgid "Deposit" +msgstr "예탁" + +#: src/jade/tabs/gold.jade:78 +msgid "" +"GBI does not currently support direct deposits. You can {{1}} or {{2}}." +msgstr "GBI는 현재 즉시 인출을 지원하지 않습니다. 거래하기: {{1}} 혹은 {{2}}." + +#: src/jade/tabs/gold.jade:84 +msgid "Withdrawal" +msgstr "인출" + +#: src/jade/tabs/gold.jade:85 +msgid "" +"You can redeem the physical gold in 1 oz increments.To do so, you'll need to" +" {{1}} and arrange to have the gold shipped to you." +msgstr "1온스 단위로 실제 금을 상환 할 수 있습니다. 그러기 위하여, 금을 출하 하기 위하여 {{1}} 과 준비가 필요합니다." + +#: src/jade/tabs/history.jade:11 +msgid "Loading History" +msgstr "거래내역 불러오기" + +#: src/jade/tabs/history.jade:16 +msgid "Your account history is empty" +msgstr "계좌 내역이 비어있습니다." + +#: src/jade/tabs/history.jade:24 +msgid "Transaction type{{1}}{{2}}" +msgstr "거래 종류{{1}}{{2}}" + +#: src/jade/tabs/history.jade:37 +msgid "Date{{1}}{{2}}" +msgstr "날짜{{1}}{{2}}" + +#: src/jade/tabs/history.jade:42 +msgid "Load history for specific date range" +msgstr "특정 기간의 내역 로딩하기" + +#: src/jade/tabs/history.jade:48 +msgid "From" +msgstr "보내는 이" + +#: src/jade/tabs/history.jade:54 +msgid "To" +msgstr "받는 이" + +#: src/jade/tabs/history.jade:57 +msgid "Filter" +msgstr "필터" + +#: src/jade/tabs/history.jade:64 +msgid "Date" +msgstr "날짜" + +#: src/jade/tabs/history.jade:65 src/jade/tabs/history.jade:170 +msgid "Description" +msgstr "상세설명" + +#: src/jade/tabs/history.jade:68 src/jade/tabs/history.jade:73 +msgid "Export to CSV" +msgstr "CSV 형식으로 내보내기" + +#: src/jade/tabs/history.jade:69 +msgid "Sorry, no transactions match your current filter." +msgstr "최근 필터에 부합하는 거래가 없습니다." + +#: src/jade/tabs/history.jade:91 +msgid "You sent{{1}}to{{2}}" +msgstr "{{1}}을 {{2}}에게 보냈습니다." + +#: src/jade/tabs/history.jade:97 +msgid "{{1}}sent you{{2}}" +msgstr "{{1}}이 {{2}}를 보냈습니다." + +#: src/jade/tabs/history.jade:103 +msgid "You requested to exchange{{1}}to{{2}}" +msgstr "{{1}} 교환을 {{2}} 로 요청 하였습니다." + +#: src/jade/tabs/history.jade:109 +msgid "{{1}}now trusts you for{{2}}" +msgstr "{{1}} 트러스트 라인 연결 {{2}}" + +#: src/jade/tabs/history.jade:122 src/jade/tabs/history/effects.jade:45 +msgid "You created an order to sell{{1}}for{{2}}" +msgstr "{{1}} 판매 주문을 하였습니다 {{2}}" + +#: src/jade/tabs/history.jade:126 src/jade/tabs/history/effects.jade:49 +msgid "You created an order to buy{{1}}for{{2}}" +msgstr "{{1}} 구매 주문을 하였습니다 {{2}}" + +#: src/jade/tabs/history.jade:132 +msgid "You cancelled an order accepting {{1}}for{{2}}" +msgstr "{{1}} 주문을 취소하였습니다 {{2}}" + +#: src/jade/tabs/history.jade:145 +msgid "Unknown transaction" +msgstr "알 수 없는 거래" + +#: src/jade/tabs/history.jade:148 +msgid "" +"The client failed to parse this transaction. The developers have been " +"notified of the issue." +msgstr "클라이언트는 이 거래를 구문 분석하는 데 실패했습니다.개발자들은 이 문제를 통보하였습니다." + +#: src/jade/tabs/history.jade:153 +msgid "{{1}} sent you{{2}} and activated your account!" +msgstr "{{1}} {{2}} 를 보냄. 지갑이 활성화 되었습니다!" + +#: src/jade/tabs/history.jade:160 +msgid "You deposited{{1}} using {{entry.details.app.name}}" +msgstr "{{1}} 예탁 하였습니다. {{entry.details.app.name}} 사용" + +#: src/jade/tabs/history.jade:168 +msgid "Balance Changes" +msgstr "잔고 변경" + +#: src/jade/tabs/history.jade:171 +msgid "Issuer" +msgstr "발행인" + +#: src/jade/tabs/history.jade:173 +msgid "Final balance" +msgstr "최종 잔고" + +#: src/jade/tabs/history.jade:176 +msgid "XRP Balance Change" +msgstr "XRP 잔고 변경" + +#: src/jade/tabs/history.jade:177 +msgid "{{effect.currency}} Balance Change" +msgstr "{{effect.currency}} 잔고 변경" + +#: src/jade/tabs/history.jade:183 +msgid "Transaction details" +msgstr "거래 상세 내역" + +#: src/jade/tabs/history.jade:184 +msgid "Add {{1}} to contact list" +msgstr "연락처에 {{1}} 추가" + +#: src/jade/tabs/history.jade:189 +msgid "{{1}} Loading more" +msgstr "{{1}} 더 불러오기" + +#: src/jade/tabs/history.jade:192 src/jade/tabs/trade.jade:500 +msgid "Load more" +msgstr "로딩 추가" + +#: src/jade/tabs/history.jade:193 +msgid "No more transactions left" +msgstr "더 이상의 거래 내용이 존재하지 않습니다. " + +#: src/jade/tabs/history/effects.jade:4 src/jade/tabs/history/effects.jade:19 +msgid "You sold{{1}}for{{2}}" +msgstr "{{1}}을 {{2}}에게 판매했습니다" + +#: src/jade/tabs/history/effects.jade:8 src/jade/tabs/history/effects.jade:23 +msgid "You bought{{1}}for{{2}}" +msgstr "{{1}}을 {{2}}에게 구매했습니다." + +#: src/jade/tabs/history/effects.jade:13 src/jade/tabs/history/effects.jade:28 +msgid "price" +msgstr "가격" + +#: src/jade/tabs/history/effects.jade:17 +msgid "This order has been filled." +msgstr "주문이 완료되었습니다." + +#: src/jade/tabs/history/effects.jade:32 +msgid "The rest of your order has been cancelled due to lack of funds." +msgstr "나머지 주문들은 자금부족으로 인하여 취소 되었습니다." + +#: src/jade/tabs/history/effects.jade:33 +msgid "This order has{{1}}remaining." +msgstr "{{1}} 주문이 남아있습니다." + +#: src/jade/tabs/history/effects.jade:39 +msgid "Order ({{1}} for {{2}}) has been cancelled due to lack of funds." +msgstr "주문 ({{1}} for {{2}}) 자금부족으로 인하여 취소 되었습니다." + +#: src/jade/tabs/history/effects.jade:53 +msgid "You bought{{1}}for{{2}}({{3:price}}{{4}})." +msgstr "{{1}} {{2}} ({{3:price}}{{4}}) 구매했습니다." + +#: src/jade/tabs/history/effects.jade:68 +msgid "{{1}}is trusting you for{{2}}." +msgstr "{{1}} 트러스트 라인 연결중 {{2}}" + +#: src/jade/tabs/history/effects.jade:73 +msgid "You have changed {{1}}trust for{{2}}from{{3}}to{{4}}." +msgstr "{{1}} 트러스트 라인 연결 {{2}} {{3}} 에서 {{4}} 로 변경" + +#: src/jade/tabs/history/effects.jade:83 +msgid "{{1}}changed the{{2}}trust from{{3}}to{{4}}." +msgstr "{{1}} 트러스트 라인 연결 변경 {{2}} {{3}} 에서 {{4}}" + +#: src/jade/tabs/history/effects.jade:92 +msgid "Trust balance between you and{{1}}has been changed by{{2}}." +msgstr "트러스트 라인 연결 {{1}} 에서 {{2}} 로 변경." + +#: src/jade/tabs/history/effects.jade:99 +msgid "Your balance has been changed by{{1}}." +msgstr "잔고가 {{1}}로 변경되었습니다." + +#: src/jade/tabs/jpy.jade:38 +msgid "Japanese Yen Deposit" +msgstr "일본 엔화 예탁" + +#: src/jade/tabs/jpy.jade:42 +msgid "Tokyo JPY Issuer (~tokyojpy) {{1}}" +msgstr "도쿄 JPY (~tokyojpy) {{1}}" + +#: src/jade/tabs/jpy.jade:59 +msgid "" +"Ripple Trade has partnered with Tokyo JPY Issuer to provide easier access to" +" JPY. Following this action will enable Tokyo JPY Issuer to hold JPY on your" +" behalf." +msgstr "리플 트레이드는 JPY를 손쉽게 제공하기 위하여 도쿄 JPY와 제휴 하고있습니다. 계속 진행하시려면, 도쿄 JPY의 이용을 승낙 하세요." + +#: src/jade/tabs/jpy.jade:78 +msgid "NEW CUSTOMERS- SIGN UP AT TOKYO JPY ISSUER" +msgstr "신규 회원- 도쿄 JPY에 가입하기" + +#: src/jade/tabs/jpy.jade:79 +msgid "{{1}}at Tokyo JPY Issuer. You will need:{{2}}" +msgstr "{{1}} 도쿄 JPY. 다음이 요구됩니다:{{2}}" + +#: src/jade/tabs/jpy.jade:84 +msgid "A valid government-issued ID." +msgstr "유효한 정부에서 발행된 ID" + +#: src/jade/tabs/jpy.jade:86 +msgid "A proof of address (utility bill, etc)." +msgstr "거주지 증명 (공과금명세서, 기타 등등)" + +#: src/jade/tabs/jpy.jade:88 +msgid "A bank account under the same name." +msgstr "본인 명의 은행계좌" + +#: src/jade/tabs/jpy.jade:90 +msgid "EXISTING TOKYO JPY ISSUER CUSTOMERS" +msgstr "기존 도쿄 JPY 회원" + +#: src/jade/tabs/jpy.jade:100 +msgid "" +"Tokyo JPY Issuer accepts deposits and withdrawals via bank transfer. Details" +" {{1}}" +msgstr "도쿄 JPY는 예탁, 인출을 은행 거래를 통하여 이루어집니다. 자세히 보기 {{1}}" + +#: src/jade/tabs/jpy.jade:103 +msgid "" +"To deposit, you’ll need to first deposit into your Tokyo JPY Issuer account " +"and then initiate a transfer into your Ripple account." +msgstr "예탁하기 위해서는, 도쿄 JPY 계정에 먼저 예탁을 해야 리플 지갑으로 거래 시작이 가능합니다. " + +#: src/jade/tabs/jpy.jade:105 +msgid "" +"To withdraw to a bank account, you’ll first send money from your Ripple " +"account to your Tokyo JPY Issuer account. Follow instructions on the Tokyo " +"JPY Issuer site to send to your bank account." +msgstr "은행 계좌로 인출하기 위해서는, 먼저 리플 지갑의 JPY를 도쿄 JPY 계정으로 돈을 보내드립니다. 도쿄 JPY 사이트에서 은행 계좌로 보내는 지침을 따르십시오." + +#: src/jade/tabs/kyc.jade:14 +msgid "Profile completion is only available to US residents." +msgstr "프로필 완성은 미국 거주자만 가능 합니다." + +#: src/jade/tabs/kyc.jade:21 src/jade/tabs/trade.jade:285 +msgid "Verifying your information. Please wait..." +msgstr "정보를 확인중입니다. 기다려 주세요..." + +#: src/jade/tabs/kyc.jade:23 +msgid "Your identity information has been verified." +msgstr "신원 정보가 확인되었습니다." + +#: src/jade/tabs/kyc.jade:25 +msgid "Your identity questions have been verified." +msgstr "신원확인 질문이 확인되었습니다." + +#: src/jade/tabs/kyc.jade:27 +msgid "" +"Congratulations, you've verified your identity! You will now be redirected " +"back to the instant deposit page." +msgstr "축하합니다, 신원이 확인되었습니다! 바로 예탁 페이지로 이동됩니다." + +#: src/jade/tabs/kyc.jade:29 +msgid "There was an error with your request. Please try again later." +msgstr "요청에 오류가 발생했습니다. 잠시 후 다시 시도해 주세요." + +#: src/jade/tabs/kyc.jade:31 +msgid "" +"There was an error with your request. Make sure your phone number is valid " +"and try again." +msgstr "요청에 오류가 발생했습니다. 유효한 전화번호인지 확인 후 다시 시도해 주세요." + +#: src/jade/tabs/kyc.jade:33 +msgid "Please check your verification code and try again." +msgstr "인증코드를 다시 확인 해 주세요." + +#: src/jade/tabs/kyc.jade:35 +msgid "" +"There was an error while requesting the verification code. Please try again " +"later." +msgstr "인증코드 요청중 오류가 발생했습니다. 다시 시도해 주세요." + +#: src/jade/tabs/kyc.jade:37 +msgid "" +"We are unable to validate your identity information. Please check your " +"information and try again." +msgstr "신원 정보가 식별 불가능합니다. 정보를 다시 확인해 주세요. " + +#: src/jade/tabs/kyc.jade:39 +msgid "" +"We are unable to validate your identity questions. Please check your answers" +" and try again." +msgstr "신원확인 질문이 식별 불가능합니다. 답변을 다시 확인해 주세요." + +#: src/jade/tabs/kyc.jade:41 +msgid "" +"Sorry, you've reached your maximum number of verification attempts. Please " +"try again in 24 hours." +msgstr "신원 확인이 최대치를 초과하였습니다. 24시간 이내 다시 시도해 주세요." + +#: src/jade/tabs/kyc.jade:43 +msgid "" +"We can't verify your identity. Please contact us at support@ripple.com." +msgstr "신원 확인을 할 수 없습니다. support@ripple.com 으로 연락해 주세요." + +#: src/jade/tabs/kyc.jade:48 +msgid "Profile Completion" +msgstr "프로필 완성" + +#: src/jade/tabs/kyc.jade:52 +msgid "STEP 1: IDENTITY INFORMATION" +msgstr "스텝 1: 신원 정보" + +#: src/jade/tabs/kyc.jade:54 +msgid "STEP 2: IDENTITY QUESTIONS" +msgstr "스텝 2: 신원 확인 질문" + +#: src/jade/tabs/kyc.jade:56 +msgid "STEP 3: TWO-FACTOR AUTHENTICATION" +msgstr "스텝 3: 이중인증 설정" + +#: src/jade/tabs/kyc.jade:63 +msgid "First Name" +msgstr "이름" + +#: src/jade/tabs/kyc.jade:67 +msgid "Last Name" +msgstr "성" + +#: src/jade/tabs/kyc.jade:71 +msgid "Street Address" +msgstr "주소" + +#: src/jade/tabs/kyc.jade:76 +msgid "City" +msgstr "시티" + +#: src/jade/tabs/kyc.jade:80 +msgid "State" +msgstr "주" + +#: src/jade/tabs/kyc.jade:84 +msgid "ZIP" +msgstr "ZIP 코드" + +#: src/jade/tabs/kyc.jade:88 +msgid "Date of Birth" +msgstr "생년월일" + +#: src/jade/tabs/kyc.jade:92 +msgid "Month{{1}}" +msgstr "{{1}}월" + +#: src/jade/tabs/kyc.jade:95 +msgid "Day{{1}}" +msgstr "{{1}}일" + +#: src/jade/tabs/kyc.jade:98 +msgid "Year{{1}}" +msgstr "{{1}}년" + +#: src/jade/tabs/kyc.jade:113 +msgid "Continue to identity questions" +msgstr "신원 확인 질문 계속" + +#: src/jade/tabs/kyc.jade:114 src/jade/tabs/kyc.jade:129 +#: src/jade/tabs/kyc.jade:154 src/jade/tabs/kyc.jade:184 +#: src/jade/tabs/login.jade:17 +msgid "Verifying..." +msgstr "인증중..." + +#: src/jade/tabs/kyc.jade:120 +msgid "{{ q.question }}{{1}}" +msgstr "{{ q.question }}{{1}}" + +#: src/jade/tabs/kyc.jade:123 +msgid "{{ a.answer }}" +msgstr "{{ a.answer }}" + +#: src/jade/tabs/kyc.jade:128 +msgid "Continue to two-factor authentication" +msgstr "이중인증 계속" + +#: src/jade/tabs/kyc.jade:137 +msgid "Two-factor authentication provides extra security for your account." +msgstr "이중인증은 지갑에 안전에 안전을 더 해줍니다." + +#: src/jade/tabs/kyc.jade:145 +msgid "" +"Ripple Trade has partnered with Authy to provide better security for your " +"account.By continuing, you agree to Authy's {{1:Terms of Service}}." +msgstr "리플 트레이드는 더 나은 보안을 위해 Authy와 제휴 하고있습니다. 계속 진행하시려면, Authy의 이용을 동의하세요 {{1:Terms of Service}}." + +#: src/jade/tabs/kyc.jade:153 +msgid "Verify phone number" +msgstr "전화번호 인증" + +#: src/jade/tabs/kyc.jade:164 +msgid "change" +msgstr "변경" + +#: src/jade/tabs/kyc.jade:168 +msgid "" +"A verification code has been sent to +{{ currentCountryCode }} {{ " +"phoneNumber }}." +msgstr "인증코드가 +{{ currentCountryCode }} {{ phoneNumber }} 로 전송되었습니다." + +#: src/jade/tabs/kyc.jade:172 src/jade/tabs/login/form.jade:16 +#: src/jade/tabs/security.jade:97 +msgid "Verification Code" +msgstr "인증코드" + +#: src/jade/tabs/kyc.jade:183 +msgid "Submit code" +msgstr "코드 제출" + +#: src/jade/tabs/login.jade:4 src/jade/tabs/migrate.jade:4 +#: src/jade/tabs/recover.jade:3 src/jade/tabs/register.jade:5 +#: src/jade/tabs/register.jade:137 src/jade/tabs/register.jade:184 +msgid "Welcome to Ripple Trade" +msgstr "리플 트레이드에 오신 것을 환영합니다" + +#: src/jade/tabs/login.jade:6 src/jade/tabs/migrate.jade:6 +#: src/jade/tabs/recover.jade:5 src/jade/tabs/register.jade:7 +#: src/jade/tabs/register.jade:139 src/jade/tabs/register.jade:186 +msgid "Trade hundreds of assets, from XRP to crypto to gold to fiat." +msgstr "XRP로 수백가지의 자산, 가상화폐, 금, 모든 종류의 화폐를거래하세요." + +#: src/jade/tabs/login.jade:15 src/jade/tabs/login.jade:31 +msgid "Log In" +msgstr "로그인" + +#: src/jade/tabs/login.jade:18 +msgid "You have successfully verified your email address." +msgstr "성공적으로 이메일 주소가 확인되었습니다." + +#: src/jade/tabs/login.jade:19 +msgid "" +"Email verification token is invalid. It has either expired or has been " +"resent. Please check your inbox for the most recent verification email." +msgstr "유효하지 않은 이메일 인증 코드입니다. 기간이 만료되었거나 재전송 하였습니다. 가장 최신 인증 코드 이메일을 확인하세요." + +#: src/jade/tabs/login.jade:30 +msgid "Logging in" +msgstr "로그인 중" + +#: src/jade/tabs/login.jade:34 +msgid "Verify" +msgstr "인증" + +#: src/jade/tabs/login.jade:36 src/jade/tabs/register.jade:114 +msgid "Already have a ripple.com/client account? {{1:Migrate}}" +msgstr "ripple.com 회원이거나 지갑을 갖고 계신가요? {{1:Migrate}}" + +#: src/jade/tabs/login.jade:41 src/jade/tabs/login.jade:42 +#: src/jade/tabs/recover.jade:9 +msgid "Account Recovery" +msgstr "지갑 되찾기" + +#: src/jade/tabs/login.jade:49 +msgid "{{1:You're sending money to}}{{2}}." +msgstr "{{1:돈을 보냈습니다}}{{2}}." + +#: src/jade/tabs/login.jade:53 +msgid "{{1:You're sending}}{{2}}{{3: to }}{{4}}." +msgstr "{{1:보냈습니다}}{{2}}{{3: 에게 }}{{4}}." + +#: src/jade/tabs/login.jade:63 +msgid "" +"{{1:You're connecting to the gateway}}{{2}}{{3:for{{1}}}}{{4:with a limit " +"of{{1}}}}." +msgstr "{{1:게이트웨이 연결이 되었습니다}}{{2}}{{3:에{{1}}}}{{4:한도{{1}}}}." + +#: src/jade/tabs/login.jade:78 +msgid "{{1:You're adding}}{{2}}{{3:to your contacts list}}" +msgstr "" + +#: src/jade/tabs/login.jade:95 +msgid "{{1}} Log In" +msgstr "{{1}} 로그인" + +#: src/jade/tabs/login.jade:98 +msgid "You can confirm this transaction on the next page." +msgstr "다음 페이지에서 거래 내역을 확인하세요." + +#: src/jade/tabs/login.jade:99 +msgid "New to {{productName}}? {{1:Create a wallet}}" +msgstr "{{productName}}에 첫 방문입니까? {{1:Create a wallet}}" + +#: src/jade/tabs/login/form.jade:12 src/jade/tabs/security.jade:91 +msgid "" +"Please enter the verification code from the SMS message sent to your device:" +msgstr "휴대폰에 온 인증코드를 입력하세요:" + +#: src/jade/tabs/login/form.jade:13 src/jade/tabs/security.jade:92 +msgid "" +"Please enter the verification code from the Authy app installed on your " +"device:" +msgstr "Authy 앱의 인증코드를 입력하세요:" + +#: src/jade/tabs/login/form.jade:23 +msgid "Resend" +msgstr "재전송" + +#: src/jade/tabs/login/form.jade:24 src/jade/tabs/security.jade:105 +msgid "Send Via SMS" +msgstr "SMS로 보내기" + +#: src/jade/tabs/login/form.jade:30 +msgid "Remember me on this device for 30 days" +msgstr "30일동안 인증코드를 기억하도록 하겠습니까?" + +#: src/jade/tabs/migrate.jade:10 src/jade/tabs/register.jade:17 +#: src/jade/tabs/register.jade:142 src/jade/tabs/register.jade:189 +msgid "Migrate" +msgstr "이동" + +#: src/jade/tabs/migrate.jade:11 +msgid "" +"To begin migration, enter the name and passphrase used to encrypt your " +"ripple.com/client wallet below. After migration, you will no longer be able " +"to login on ripple.com/client." +msgstr "" + +#: src/jade/tabs/migrate.jade:15 +msgid "Existing ripple.com/client Wallet name" +msgstr "" + +#: src/jade/tabs/migrate.jade:18 +msgid "Passphrase" +msgstr "" + +#: src/jade/tabs/migrate.jade:31 +msgid "Begin Migration" +msgstr "" + +#: src/jade/tabs/migrate.jade:32 +msgid "New to {{productName}}? {{1:Sign Up}}" +msgstr "" + +#: src/jade/tabs/migrate.jade:34 +msgid "Have a {{productName}} account? {{1:Log In}}" +msgstr "" + +#: src/jade/tabs/mxn.jade:38 +msgid "Mexican Peso Deposit" +msgstr "" + +#: src/jade/tabs/mxn.jade:42 +msgid "Bitso (~bitso) {{1}}{{2}}" +msgstr "" + +#: src/jade/tabs/mxn.jade:47 +msgid "All countries except the US" +msgstr "" + +#: src/jade/tabs/mxn.jade:58 +msgid "" +"Ripple Trade has partnered with Bitso to provide easy access to MXN (Mexican" +" Peso). By continuing, you agree with Bitso’s terms of service. Following " +"this action will enable Bitso to hold MXN on your behalf." +msgstr "" + +#: src/jade/tabs/mxn.jade:80 +msgid "TO FUND/REDEEM MEXICAN PESO:" +msgstr "" + +#: src/jade/tabs/mxn.jade:82 +msgid "Register or login at {{1}}to initiate deposits and withdrawals." +msgstr "" + +#: src/jade/tabs/mxn.jade:86 +msgid "" +"A valid, non-US, state-issued ID (passport, driver's license, etc)." +msgstr "" + +#: src/jade/tabs/mxn.jade:87 +msgid "" +"Proof of address (utility bill or other type of bill that has your address " +"on it). Verification is required for peso deposits or withdrawals." +msgstr "" + +#: src/jade/tabs/mxn.jade:89 +msgid "" +"To fund your Ripple account, see the below options. Once a balance is " +"deposited with Bitso, you can send it to your Ripple account using the Bitso" +" Dashboard." +msgstr "" + +#: src/jade/tabs/mxn.jade:90 +msgid "" +"To withdraw from your Ripple account, click on the 'Redeem from Ripple' " +"button on the Bitso Dashboard." +msgstr "" + +#: src/jade/tabs/mxn.jade:92 src/jade/tabs/usd.jade:89 +msgid "DEPOSIT OPTIONS" +msgstr "" + +#: src/jade/tabs/mxn.jade:94 +msgid "Bitso accepts deposits by the following methods:" +msgstr "" + +#: src/jade/tabs/mxn.jade:96 src/jade/tabs/mxn.jade:106 +msgid "Bank Wire" +msgstr "" + +#: src/jade/tabs/mxn.jade:97 src/jade/tabs/mxn.jade:107 +msgid "SPEI (Mexican instant inter-bank transfer)" +msgstr "" + +#: src/jade/tabs/mxn.jade:98 src/jade/tabs/mxn.jade:108 +msgid "Bitcoin" +msgstr "" + +#: src/jade/tabs/mxn.jade:99 +msgid "MXN Cash (at locations across Mexico)" +msgstr "" + +#: src/jade/tabs/mxn.jade:100 +msgid "Pademobile wallet" +msgstr "" + +#: src/jade/tabs/mxn.jade:102 src/jade/tabs/usd.jade:99 +msgid "WITHDRAWAL OPTIONS" +msgstr "" + +#: src/jade/tabs/mxn.jade:104 +msgid "Bitso offers withdrawals via the following methods:" +msgstr "" + +#: src/jade/tabs/recover.jade:11 +msgid "" +"You can only recover your Ripple Trade account with a secret key. You will " +"recover the account's Ripple name, contacts and other information." +msgstr "" + +#: src/jade/tabs/recover.jade:13 src/jade/tabs/recover.jade:33 +msgid "Ripple Name" +msgstr "" + +#: src/jade/tabs/recover.jade:18 +msgid "Secret Key" +msgstr "비밀키" + +#: src/jade/tabs/recover.jade:21 +msgid "Unable to recover account." +msgstr "" + +#: src/jade/tabs/recover.jade:27 src/jade/tabs/register.jade:95 +msgid "Recover Account" +msgstr "" + +#: src/jade/tabs/recover.jade:29 src/jade/tabs/recover.jade:56 +msgid "Set Password" +msgstr "" + +#: src/jade/tabs/recover.jade:31 +msgid "" +"Your account was sucessfully recovered. Please re-encrypt your account with " +"a new password." +msgstr "" + +#: src/jade/tabs/recover.jade:41 src/jade/tabs/register.jade:62 +#: src/jade/tabs/security.jade:132 +msgid "" +"Your password is weak. It does not contain numbers and symbols or it is too " +"short." +msgstr "" + +#: src/jade/tabs/recover.jade:43 src/jade/tabs/register.jade:65 +#: src/jade/tabs/security.jade:134 +msgid "" +"Your Ripple name and password cannot match. Please create a new password." +msgstr "" + +#: src/jade/tabs/recover.jade:45 src/jade/tabs/register.jade:67 +#: src/jade/tabs/security.jade:136 +msgid "Confirm password" +msgstr "비밀번호 확인" + +#: src/jade/tabs/recover.jade:48 src/jade/tabs/register.jade:71 +#: src/jade/tabs/security.jade:139 +msgid "Passwords do not match" +msgstr "비밀번호가 일치하지 않습니다." + +#: src/jade/tabs/recover.jade:50 +msgid "Unable to change your account password." +msgstr "" + +#: src/jade/tabs/recover.jade:55 +msgid "Updating..." +msgstr "" + +#: src/jade/tabs/recover.jade:57 +msgid "Remember your password? {{1:Log In}}" +msgstr "" + +#: src/jade/tabs/register.jade:13 src/jade/tabs/register.jade:109 +#: src/jade/tabs/register.jade:141 src/jade/tabs/register.jade:188 +msgid "Sign Up" +msgstr "가입하기" + +#: src/jade/tabs/register.jade:19 src/jade/tabs/register.jade:21 +#: src/jade/tabs/register.jade:23 src/jade/tabs/register.jade:146 +#: src/jade/tabs/register.jade:148 src/jade/tabs/register.jade:191 +#: src/jade/tabs/register.jade:193 src/jade/tabs/register.jade:195 +msgid "Step {{1}}" +msgstr "" + +#: src/jade/tabs/register.jade:26 +msgid "Create Ripple name" +msgstr "" + +#: src/jade/tabs/register.jade:27 +msgid "" +"Please choose a Ripple name below. You will use this Ripple name to login to" +" Ripple Trade, so remember it! Ripple names are unique and public, like your" +" current Ripple address. {{1}}" +msgstr "" + +#: src/jade/tabs/register.jade:28 +msgid "Learn More" +msgstr "" + +#: src/jade/tabs/register.jade:41 +msgid "Reserved for {{usernameReservedFor}}" +msgstr "" + +#: src/jade/tabs/register.jade:43 +msgid "" +"This name belongs to a high-traffic website and has been reserved to prevent" +" phishing." +msgstr "" + +#: src/jade/tabs/register.jade:49 +msgid "You can only use the following characters: a-z, 0-9 and hyphens (-)" +msgstr "" + +#: src/jade/tabs/register.jade:55 +msgid "Cannot use hyphens in a row (--)" +msgstr "" + +#: src/jade/tabs/register.jade:80 +msgid "Email address is invalid" +msgstr "" + +#: src/jade/tabs/register.jade:82 src/jade/tabs/security.jade:151 +msgid "Secret key" +msgstr "" + +#: src/jade/tabs/register.jade:83 src/jade/tabs/send.jade:43 +#: src/jade/tabs/trade.jade:441 +msgid "hide" +msgstr "" + +#: src/jade/tabs/register.jade:88 +msgid "Secret Account Key is invalid" +msgstr "" + +#: src/jade/tabs/register.jade:90 +msgid "" +"The account ~{{1}}{{2}} has already been created using this secret key." +msgstr "" + +#: src/jade/tabs/register.jade:98 +msgid "I agree to the {{productName}} {{1:Terms of Use}}" +msgstr "" + +#: src/jade/tabs/register.jade:101 +msgid "" +"Please see our {{1}} to see how we collect, use and share information about " +"you" +msgstr "" + +#: src/jade/tabs/register.jade:110 +msgid "Migrate Account" +msgstr "" + +#: src/jade/tabs/register.jade:111 +msgid "Need to use your secret key? {{1}}" +msgstr "" + +#: src/jade/tabs/register.jade:113 +msgid "Use key" +msgstr "" + +#: src/jade/tabs/register.jade:121 +msgid "An error occurred during registration. Please try again later." +msgstr "" + +#: src/jade/tabs/register.jade:122 +msgid "The reported error was: {{1}}" +msgstr "" + +#: src/jade/tabs/register.jade:131 +msgid "" +"There is already a wallet using this username, please choose a different " +"username and try again." +msgstr "해당 사용자 이름의 지갑이 이미 존재합니다. 다른 사용자 이름으로 다시 시도하세요. " + +#: src/jade/tabs/register.jade:150 +msgid "" +"By proceeding, you understand that Ripple Trade does not provide a password " +"or secret key recovery mechanism. If you forget your Ripple name/password " +"and secret key, you will be unable to access this Ripple account." +msgstr "" + +#: src/jade/tabs/register.jade:155 +msgid "" +"You are now migrating your account- meaning you'll no longer be able to " +"access your account from ripple.com/client. You will retain all of your " +"balances, contacts, and account history. Your account will use the same " +"secret key as before. If you have already saved your secret key, please " +"continue your migration." +msgstr "" + +#: src/jade/tabs/register.jade:162 +msgid "" +"The secret key unlocks access to all your account funds in the event you " +"lose your Ripple name or password. Please write it down and store it " +"somewhere private and safe. {{1:Read more}} about keys and wallet safety." +msgstr "" + +#: src/jade/tabs/register.jade:167 +msgid "" +"If you have not saved your secret key, please write it down and store it " +"somewhere private and safe. In the event you lose your Ripple name or " +"password, you can use this secret key to recover your funds." +msgstr "" + +#: src/jade/tabs/register.jade:176 +msgid "Show secret key" +msgstr "비밀키 보여주기" + +#: src/jade/tabs/register.jade:177 +msgid "Hide secret key" +msgstr "비밀키 숨기기" + +#: src/jade/tabs/register.jade:180 +msgid "Continue to email verification" +msgstr "" + +#: src/jade/tabs/register.jade:197 +msgid "" +"We’ve sent an email to {{1}}. To complete registration, click the link in " +"the email." +msgstr "" + +#: src/jade/tabs/register.jade:200 +msgid "Email token has been resent." +msgstr "" + +#: src/jade/tabs/register.jade:203 +msgid "Email Address:" +msgstr "" + +#: src/jade/tabs/register.jade:210 +msgid "Re-send Email" +msgstr "" + +#: src/jade/tabs/security.jade:7 +msgid "Active Session Timeout" +msgstr "" + +#: src/jade/tabs/security.jade:8 +msgid "" +"To view or edit your security settings, you must currently have an active " +"session." +msgstr "" + +#: src/jade/tabs/security.jade:16 +msgid "Restore Session" +msgstr "" + +#: src/jade/tabs/security.jade:25 +msgid "Your Ripple password has been changed, please login again" +msgstr "" + +#: src/jade/tabs/security.jade:27 +msgid "Couldn't change your Ripple password, please try again later." +msgstr "" + +#: src/jade/tabs/security.jade:30 +msgid "Changing your Ripple password..." +msgstr "" + +#: src/jade/tabs/security.jade:31 +msgid "Your Ripple password has been changed successfully." +msgstr "" + +#: src/jade/tabs/security.jade:32 +msgid "Unable to load Two-factor authentication settings." +msgstr "" + +#: src/jade/tabs/security.jade:33 +msgid "Error saving Two-factor authentication settings." +msgstr "" + +#: src/jade/tabs/security.jade:34 +msgid "The verification code is invalid." +msgstr "" + +#: src/jade/tabs/security.jade:36 +msgid "Two-factor authentication has been successfully enabled." +msgstr "" + +#: src/jade/tabs/security.jade:37 +msgid "Two-factor authentication has been successfully disabled." +msgstr "" + +#: src/jade/tabs/security.jade:38 +msgid "Password protection has been successfully enabled." +msgstr "" + +#: src/jade/tabs/security.jade:39 +msgid "Password protection has been successfully disabled." +msgstr "" + +#: src/jade/tabs/security.jade:45 +msgid "Security settings" +msgstr "" + +#: src/jade/tabs/security.jade:51 +msgid "Loading Two-factor authentication settings..." +msgstr "" + +#: src/jade/tabs/security.jade:55 +msgid "Enabled" +msgstr "" + +#: src/jade/tabs/security.jade:56 +msgid "Disabled" +msgstr "" + +#: src/jade/tabs/security.jade:58 +msgid "disable" +msgstr "" + +#: src/jade/tabs/security.jade:60 +msgid "enable" +msgstr "" + +#: src/jade/tabs/security.jade:66 +msgid "" +"Authy is providing two-factor authentication for Ripple Trade. To enable " +"two-factor authentication, you must share some information with Authy." +msgstr "" + +#: src/jade/tabs/security.jade:69 +msgid "- Your email address:" +msgstr "" + +#: src/jade/tabs/security.jade:72 +msgid "- Your phone number:" +msgstr "" + +#: src/jade/tabs/security.jade:74 +msgid "By proceeding, you agree to the Authy {{1: terms of service.}}" +msgstr "" + +#: src/jade/tabs/security.jade:78 +msgid "Share" +msgstr "" + +#: src/jade/tabs/security.jade:84 +msgid "Saving settings..." +msgstr "" + +#: src/jade/tabs/security.jade:85 +msgid "Disabling Two-factor authentication..." +msgstr "" + +#: src/jade/tabs/security.jade:86 +msgid "Enabling Two-factor authentication..." +msgstr "" + +#: src/jade/tabs/security.jade:104 +msgid "Resend Code" +msgstr "" + +#: src/jade/tabs/security.jade:110 +msgid "Enable" +msgstr "" + +#: src/jade/tabs/security.jade:114 +msgid "Ripple password" +msgstr "" + +#: src/jade/tabs/security.jade:129 +msgid "New password" +msgstr "" + +#: src/jade/tabs/security.jade:153 +msgid "" +"Your secret key unlocks access to your account funds. Please write it down " +"and store it somewhere private and safe. In the event you lose your Ripple " +"name or password, you can use this secret key to recover your funds." +msgstr "" + +#: src/jade/tabs/security.jade:165 +msgid "Password protection for transactions" +msgstr "" + +#: src/jade/tabs/security.jade:168 +msgid "" +"If you turn off password requests, you’ll still need to enter your password " +"after each page refresh." +msgstr "" + +#: src/jade/tabs/security.jade:176 +msgid "Yes" +msgstr "" + +#: src/jade/tabs/security.jade:177 +msgid "No" +msgstr "" + +#: src/jade/tabs/security.jade:192 +msgid "Delete Ripple Trade account" +msgstr "" + +#: src/jade/tabs/security.jade:194 +msgid "" +"This deletes your Ripple Trade account. You will no longer be able to login " +"to Ripple Trade and your account data will be deleted. However, you can " +"still access your funds using your secret key." +msgstr "" + +#: src/jade/tabs/send.jade:12 +msgid "You have to be funded before you can send money" +msgstr "통화를 송금하기 전에 계좌를 충전하세요." + +#: src/jade/tabs/send.jade:25 +msgid "Recipient" +msgstr "받는 사람" + +#: src/jade/tabs/send.jade:30 +msgid "Please enter a recipient." +msgstr "보낼 곳을 입력하세요." + +#: src/jade/tabs/send.jade:32 +msgid "" +"Recipient should be a Ripple name, a contact, or Ripple/Bitcoin address." +msgstr "" + +#: src/jade/tabs/send.jade:34 +msgid "This email address is not Ripple-enabled." +msgstr "리플에서 사용 가능한 이메일 주소가 아닙니다. " + +#: src/jade/tabs/send.jade:38 +msgid "Show destination tag" +msgstr "" + +#: src/jade/tabs/send.jade:47 +msgid "Destination cannot be blank." +msgstr "목적지를 입력해야 합니다." + +#: src/jade/tabs/send.jade:48 +msgid "" +"Recipient requires a destination tag to be specified for the transaction. If" +" you don't know the destination tag, please contact them before doing a " +"transaction." +msgstr "" + +#: src/jade/tabs/send.jade:53 +msgid "Source tag" +msgstr "소스 태그" + +#: src/jade/tabs/send.jade:56 +msgid "Invalid source tag" +msgstr "유효하지 않은 소스 태그" + +#: src/jade/tabs/send.jade:59 +msgid "Invoice ID" +msgstr "" + +#: src/jade/tabs/send.jade:62 +msgid "Invoice ID must not be more than 64 characters long." +msgstr "" + +#: src/jade/tabs/send.jade:77 +msgid "Recipient will receive" +msgstr "보낼 금액" + +#: src/jade/tabs/send.jade:88 +msgid "{{send.recipient | rpcontactname}} can't receive this currency." +msgstr "" + +#: src/jade/tabs/send.jade:92 src/jade/tabs/trust.jade:102 +msgid "Amount must be greater than zero." +msgstr "금액이 0보다 많아야 합니다." + +#: src/jade/tabs/send.jade:93 +msgid "" +"You are either trying to send too little or too much XRP.Minimum amount is " +"0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "" + +#: src/jade/tabs/send.jade:97 +msgid "" +"Recipient does not allow XRP payments. Are you sure you want to send XRP " +"anyway?" +msgstr "수령인이 XRP를 허용하지 않습니다. 그래도 XRP를 보내시겠습니까?" + +#: src/jade/tabs/send.jade:99 +msgid "" +"{{send.recipient | rpcontactname}}trusts you for {{send.trust_limit | " +"rpamount}} {{send.trust_limit | rpcurrency}}." +msgstr "" + +#: src/jade/tabs/send.jade:103 +msgid "Send XRP" +msgstr "XRP 보내기" + +#: src/jade/tabs/send.jade:107 +msgid "" +"Destination account is unfunded; send at least {{send.xrp_deficiency | " +"rpamount}} XRP to fund it.{{1}}" +msgstr "" + +#: src/jade/tabs/send.jade:114 +msgid "Checking" +msgstr "검색 중" + +#: src/jade/tabs/send.jade:117 +msgid "Analyzing address" +msgstr "계좌번호 분석 중" + +#: src/jade/tabs/send.jade:120 +msgid "Scanning accepted currencies" +msgstr "" + +#: src/jade/tabs/send.jade:123 +msgid "Requesting quote" +msgstr "거래 가격 요청 중" + +#: src/jade/tabs/send.jade:126 +msgid "Calculating paths" +msgstr "경로 계산 중" + +#: src/jade/tabs/send.jade:129 +msgid "Calculating alternatives" +msgstr "대안 계산 중" + +#: src/jade/tabs/send.jade:130 +msgid "" +"You cannot send {{send.amount}} {{send.currency}} to {{send.recipient}}. " +"Either your account has insufficient funds, or {{send.recipient}} doesn't " +"accept {{send.currency}}." +msgstr "" + +#: src/jade/tabs/send.jade:134 +msgid "" +"You cannot send {{send.amount}} {{send.currency}} to{{send.recipient}}. Your" +" account has insufficient funds." +msgstr "" + +#: src/jade/tabs/send.jade:137 +msgid "There are no valid currency choices for this destination." +msgstr "" + +#: src/jade/tabs/send.jade:139 +msgid "Error while retrieving quote for outbound payment. {{1}}" +msgstr "" + +#: src/jade/tabs/send.jade:148 +msgid "You can send" +msgstr "보낼 수 있습니다." + +#: src/jade/tabs/send.jade:150 +msgid "Or you can send" +msgstr "혹은 보낼 수 있습니다." + +#: src/jade/tabs/send.jade:164 +msgid "Send {{ alt.amount | rpcurrency }} {{1}}" +msgstr "" + +#: src/jade/tabs/send.jade:181 +msgid "Ripple is calculating a path for your payment." +msgstr "송금액에 대한 경로를 계산 중입니다." + +#: src/jade/tabs/send.jade:186 +msgid "You are sending {{1}} to" +msgstr "" + +#: src/jade/tabs/send.jade:194 +msgid "Destination tag: {{send.dt}}" +msgstr "목적지 태그: {{send.dt}}" + +#: src/jade/tabs/send.jade:195 +msgid "They will receive" +msgstr "받을 금액" + +#: src/jade/tabs/send.jade:198 +msgid "You will pay at most" +msgstr "최대 지불 금액" + +#: src/jade/tabs/send.jade:204 +msgid "Are you sure?" +msgstr "다음 단계로 넘어갑니다." + +#: src/jade/tabs/send.jade:210 +msgid "Password required to unlock wallet" +msgstr "지갑을 열려면 비밀번호가 필요합니다." + +#: src/jade/tabs/send.jade:234 src/jade/tabs/send.jade:266 +msgid "Contact saved!" +msgstr "연락처 저장 완료" + +#: src/jade/tabs/send.jade:236 src/jade/tabs/send.jade:268 +msgid "Add this address to contacts" +msgstr "연락처에 추가" + +#: src/jade/tabs/send.jade:242 src/jade/tabs/send.jade:274 +msgid "Name this user" +msgstr "사용자 이름을 입력하세요." + +#: src/jade/tabs/send.jade:246 src/jade/tabs/send.jade:278 +msgid "This contact already exists, please choose another name." +msgstr "" + +#: src/jade/tabs/send.jade:250 src/jade/tabs/send.jade:283 +#: src/jade/tabs/trust.jade:233 +msgid "Saving..." +msgstr "저장 중..." + +#: src/jade/tabs/send.jade:255 src/jade/tabs/send.jade:289 +msgid "Send another payment" +msgstr "추가 송금" + +#: src/jade/tabs/settings/navbar.jade:2 +msgid "Security" +msgstr "보안" + +#: src/jade/tabs/settingstrade.jade:12 +msgid "Trade settings" +msgstr "" + +#: src/jade/tabs/settingstrade.jade:14 +msgid "Trade currency pairs" +msgstr "" + +#: src/jade/tabs/trade.jade:12 src/jade/tabs/trade.jade:451 +msgid "Loading Order Book" +msgstr "" + +#: src/jade/tabs/trade.jade:31 src/jade/tabs/widgets/markets.jade:24 +msgid "flip" +msgstr "" + +#: src/jade/tabs/trade.jade:34 +msgid "add pair" +msgstr "" + +#: src/jade/tabs/trade.jade:37 +msgid "edit pairs" +msgstr "" + +#: src/jade/tabs/trade.jade:41 +msgid "Base Currency" +msgstr "" + +#: src/jade/tabs/trade.jade:44 +msgid "Base Gateway" +msgstr "" + +#: src/jade/tabs/trade.jade:49 +msgid "Counter Currency" +msgstr "" + +#: src/jade/tabs/trade.jade:52 +msgid "Counter Gateway" +msgstr "" + +#: src/jade/tabs/trade.jade:57 +msgid "Add" +msgstr "" + +#: src/jade/tabs/trade.jade:60 +msgid "Base currency issuer ({{order.first_currency | rpcurrency}})" +msgstr "" + +#: src/jade/tabs/trade.jade:63 +msgid "Ripple name or contact" +msgstr "" + +#: src/jade/tabs/trade.jade:65 +msgid "Not a valid Ripple address or contact" +msgstr "유효한 리플 계좌 혹은 연락처가 아닙니다." + +#: src/jade/tabs/trade.jade:70 +msgid "Counter currency issuer ({{order.second_currency | rpcurrency}})" +msgstr "" + +#: src/jade/tabs/trade.jade:75 +msgid "Not a valid Ripple name or address" +msgstr "" + +#: src/jade/tabs/trade.jade:79 +msgid "" +"To show an orderbook, choose from the dropdown above or click \"Add custom " +"pair\"." +msgstr "" + +#: src/jade/tabs/trade.jade:86 +msgid "Bid" +msgstr "매수" + +#: src/jade/tabs/trade.jade:91 +msgid "Ask" +msgstr "호가" + +#: src/jade/tabs/trade.jade:96 +msgid "Spread" +msgstr "펼치기" + +#: src/jade/tabs/trade.jade:101 +msgid "Last price" +msgstr "종가" + +#: src/jade/tabs/trade.jade:108 +msgid "You have to be funded before you can trade" +msgstr "거래 전에 계좌를 충전하세요." + +#: src/jade/tabs/trade.jade:115 +msgid "Buy {{1}} {{order.first_currency | rpcurrency}}" +msgstr "" + +#: src/jade/tabs/trade.jade:118 +msgid "Sell {{1}} {{order.first_currency | rpcurrency}}" +msgstr "" + +#: src/jade/tabs/trade.jade:121 src/jade/tabs/trade.jade:130 +msgid "{{1}} available" +msgstr "" + +#: src/jade/tabs/trade.jade:144 +msgid "Amount To Buy" +msgstr "" + +#: src/jade/tabs/trade.jade:145 +msgid "Amount To Sell" +msgstr "" + +#: src/jade/tabs/trade.jade:152 src/jade/tabs/trade.jade:167 +#: src/jade/tabs/trade.jade:182 +msgid "Required" +msgstr "필수사항" + +#: src/jade/tabs/trade.jade:154 src/jade/tabs/trade.jade:169 +#: src/jade/tabs/trade.jade:184 +msgid "Must be greater than zero" +msgstr "0 보다 많아야 합니다." + +#: src/jade/tabs/trade.jade:156 src/jade/tabs/trade.jade:171 +#: src/jade/tabs/trade.jade:186 +msgid "" +"Minimum amount of XRP you can send is a drop (0.000001) and the maximum is " +"100 billion XRPs." +msgstr "" + +#: src/jade/tabs/trade.jade:160 +msgid "Price of Each" +msgstr "각각의 금액" + +#: src/jade/tabs/trade.jade:175 +msgid "Order Value (max)" +msgstr "주문가 (최대)" + +#: src/jade/tabs/trade.jade:192 +msgid "You are wanting to buy {{1}} for {{2}} ({{3}} per {{4}})" +msgstr "" + +#: src/jade/tabs/trade.jade:201 +msgid "You are wanting to sell {{1}} for {{2}} ({{3}} per {{4}})" +msgstr "" + +#: src/jade/tabs/trade.jade:213 +msgid "Buy" +msgstr "구매" + +#: src/jade/tabs/trade.jade:214 +msgid "Sell" +msgstr "매도" + +#: src/jade/tabs/trade.jade:220 +msgid "You do not have sufficient funds to create an order." +msgstr "주문서를 작성하기에는 자금이 부족합니다." + +#: src/jade/tabs/trade.jade:225 +msgid "" +"You are about to create an order to {{1: buy}} {{2: " +"sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}{{8}}" +msgstr "" + +#: src/jade/tabs/trade.jade:242 +msgid "CAUTION: Your order is far off from the current market price." +msgstr "" + +#: src/jade/tabs/trade.jade:246 src/jade/tabs/trade.jade:407 +msgid "« Back" +msgstr "« 이전" + +#: src/jade/tabs/trade.jade:255 +msgid "Sending order to Ripple network..." +msgstr "리플 네트워크로 주문을 보내는 중..." + +#: src/jade/tabs/trade.jade:261 +msgid "Your order has been submitted." +msgstr "주문이 제출되었습니다." + +#: src/jade/tabs/trade.jade:263 +msgid "Your order is now active." +msgstr "" + +#: src/jade/tabs/trade.jade:265 +msgid "Your order has been filled." +msgstr "" + +#: src/jade/tabs/trade.jade:267 +msgid "" +"Your order has been partially filled. The remaining amount is now active." +msgstr "" + +#: src/jade/tabs/trade.jade:276 +msgid "Submit another order" +msgstr "추가 주문" + +#: src/jade/tabs/trade.jade:278 +msgid "My Orders{{1}}{{2}}" +msgstr "" + +#: src/jade/tabs/trade.jade:287 +msgid "Your order has been modified." +msgstr "" + +#: src/jade/tabs/trade.jade:289 +msgid "Your order #{{ cancelOrder.seq }} has been cancelled." +msgstr "" + +#: src/jade/tabs/trade.jade:291 +msgid "" +"Your order could not be modified and no longer exists. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "" + +#: src/jade/tabs/trade.jade:293 +msgid "Unable to cancel order as it no longer exists." +msgstr "" + +#: src/jade/tabs/trade.jade:295 +msgid "Modifying your order (Placing new order) ..." +msgstr "" + +#: src/jade/tabs/trade.jade:299 +msgid "Current pair only" +msgstr "" + +#: src/jade/tabs/trade.jade:313 src/jade/tabs/widgets/orders.jade:24 +msgid "reverse" +msgstr "" + +#: src/jade/tabs/trade.jade:322 src/jade/tabs/widgets/orders.jade:33 +msgid "QTY{{1}}" +msgstr "" + +#: src/jade/tabs/trade.jade:324 src/jade/tabs/widgets/orders.jade:35 +msgid "Base{{1}}" +msgstr "" + +#: src/jade/tabs/trade.jade:326 src/jade/tabs/widgets/orders.jade:37 +msgid "Counter{{1}}" +msgstr "" + +#: src/jade/tabs/trade.jade:328 src/jade/tabs/widgets/orders.jade:39 +msgid "Limit{{1}}" +msgstr "" + +#: src/jade/tabs/trade.jade:334 +msgid "Action" +msgstr "동작" + +#: src/jade/tabs/trade.jade:360 src/jade/tabs/trade.jade:424 +msgid "TRADE CONFIRMATION" +msgstr "" + +#: src/jade/tabs/trade.jade:362 +msgid "{{1:Please confirm that you wish to cancel order #{{entry.seq}}}}" +msgstr "" + +#: src/jade/tabs/trade.jade:364 +msgid "" +"{{1}} div span.modal-order-type(l10n-inc) FILLED: span filled data div" +" span.modal-order-type(l10n-inc) REMAIN: span remain data div span" +".modal-order-type(l10n-inc) PLACED: span time data" +msgstr "" + +#: src/jade/tabs/trade.jade:371 +msgid "with" +msgstr "" + +#: src/jade/tabs/trade.jade:372 +msgid "for" +msgstr "" + +#: src/jade/tabs/trade.jade:376 +msgid "at" +msgstr "" + +#: src/jade/tabs/trade.jade:389 +msgid "Cancel order" +msgstr "" + +#: src/jade/tabs/trade.jade:390 src/jade/tabs/trade.jade:431 +msgid "back" +msgstr "" + +#: src/jade/tabs/trade.jade:407 +msgid "" +"CAUTION: Your new order is far off from the current market price.
Do " +"you still want to replace your order ?" +msgstr "" + +#: src/jade/tabs/trade.jade:410 +msgid "Unable to cancel order. Error: {{entry.errorMsg}}" +msgstr "" + +#: src/jade/tabs/trade.jade:412 +msgid "" +"Your order amount has been updated by Ripple. Please go back and edit again " +"to modify this order." +msgstr "" + +#: src/jade/tabs/trade.jade:414 +msgid "" +"Your order could not be modified. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "" + +#: src/jade/tabs/trade.jade:415 +msgid "X" +msgstr "" + +#: src/jade/tabs/trade.jade:420 +msgid "cancel all" +msgstr "" + +#: src/jade/tabs/trade.jade:426 +msgid "{{1:Please confirm that you wish to cancel all orders.}}" +msgstr "" + +#: src/jade/tabs/trade.jade:430 +msgid "Cancel all orders" +msgstr "" + +#: src/jade/tabs/trade.jade:433 src/jade/tabs/widgets/orders.jade:64 +msgid "No current orders. {{1}}" +msgstr "" + +#: src/jade/tabs/trade.jade:434 src/jade/tabs/widgets/orders.jade:65 +msgid "View orders history" +msgstr "" + +#: src/jade/tabs/trade.jade:437 +msgid "Orderbook{{1}}" +msgstr "" + +#: src/jade/tabs/trade.jade:440 +msgid "show" +msgstr "" + +#: src/jade/tabs/trade.jade:442 +msgid "Last updated {{1}} {{2: seconds}} {{3: second}} ago" +msgstr "" + +#: src/jade/tabs/trade.jade:458 +msgid "Bids" +msgstr "매수" + +#: src/jade/tabs/trade.jade:460 src/jade/tabs/trade.jade:487 +msgid "Sum{{1}}{{2}}" +msgstr "총 {{1}}{{2}}" + +#: src/jade/tabs/trade.jade:463 src/jade/tabs/trade.jade:484 +msgid "Size{{1}}{{2}}" +msgstr "규모 {{1}}{{2}}" + +#: src/jade/tabs/trade.jade:466 +msgid "Bid Price{{1}}{{2}}" +msgstr "매수가 {{1}}{{2}}" + +#: src/jade/tabs/trade.jade:477 +msgid "There are currently no bids for this pair." +msgstr "현재 본 건에 대한 입찰이 존재하지 않습니다. " + +#: src/jade/tabs/trade.jade:479 +msgid "Asks" +msgstr "호가" + +#: src/jade/tabs/trade.jade:481 +msgid "Ask Price{{1}}{{2}}" +msgstr "호가 {{1}}{{2}}" + +#: src/jade/tabs/trade.jade:498 +msgid "There are currently no asks for this pair." +msgstr "현재 본 건에 대한 요청이 존재하지 않습니다." + +#: src/jade/tabs/trade.jade:501 +msgid "No more orders" +msgstr "" + +#: src/jade/tabs/trust.jade:29 +msgid "Removing gateway..." +msgstr "" + +#: src/jade/tabs/trust.jade:31 +msgid "Gateway removed." +msgstr "" + +#: src/jade/tabs/trust.jade:33 +msgid "Your changes have been saved." +msgstr "" + +#: src/jade/tabs/trust.jade:35 +msgid "Request failed." +msgstr "" + +#: src/jade/tabs/trust.jade:39 +msgid "Account unlock failed." +msgstr "" + +#: src/jade/tabs/trust.jade:55 +msgid "Name / Address" +msgstr "이름 / 계좌번호" + +#: src/jade/tabs/trust.jade:57 src/jade/tabs/trust.jade:90 +msgid "Currency" +msgstr "통화" + +#: src/jade/tabs/trust.jade:60 +msgid "Trust Limit" +msgstr "신탁 한도" + +#: src/jade/tabs/trust.jade:66 +msgid "Gateway's Ripple name or address" +msgstr "" + +#: src/jade/tabs/trust.jade:100 +msgid "Amount field is required." +msgstr "" + +#: src/jade/tabs/trust.jade:115 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"connect to. More " +"information" +msgstr "" + +#: src/jade/tabs/trust.jade:125 +msgid "" +"{{1:You are connecting a gateway, which means}}{{2:{{ counterparty_address |" +" rpripplename:{tilde: true} }} can:}}" +msgstr "" + +#: src/jade/tabs/trust.jade:128 +msgid "{{1:- Hold up to }}{{2}} {{3: on your behalf}}" +msgstr "" + +#: src/jade/tabs/trust.jade:132 +msgid "{{1:- Hold }}{{2}} {{3: on your behalf}}" +msgstr "" + +#: src/jade/tabs/trust.jade:148 +msgid "Verifying address" +msgstr "계좌를 확인 중" + +#: src/jade/tabs/trust.jade:151 +msgid "" +"Your account has to be {{1:activated}} before you can add a gateway account." +msgstr "" + +#: src/jade/tabs/trust.jade:159 +msgid "Connect gateway" +msgstr "" + +#: src/jade/tabs/trust.jade:169 src/jade/tabs/trust.jade:221 +msgid "Limit" +msgstr "" + +#: src/jade/tabs/trust.jade:170 +msgid "Min" +msgstr "" + +#: src/jade/tabs/trust.jade:172 +msgid "Edit" +msgstr "편집" + +#: src/jade/tabs/trust.jade:188 +msgid "Off" +msgstr "" + +#: src/jade/tabs/trust.jade:189 +msgid "On" +msgstr "" + +#: src/jade/tabs/trust.jade:192 src/jade/tabs/trust.jade:201 +#: src/jade/tabs/trust.jade:206 src/jade/tabs/trust.jade:210 +#: src/jade/tabs/trust.jade:239 src/jade/tabs/trust.jade:244 +#: src/jade/tabs/trust.jade:248 +msgid "Incoming trust" +msgstr "" + +#: src/jade/tabs/trust.jade:192 +msgid "" +"You can't edit incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "" + +#: src/jade/tabs/trust.jade:200 src/jade/tabs/trust.jade:202 +#: src/jade/tabs/trust.jade:205 src/jade/tabs/trust.jade:207 +#: src/jade/tabs/trust.jade:209 src/jade/tabs/trust.jade:211 +#: src/jade/tabs/trust.jade:238 src/jade/tabs/trust.jade:240 +#: src/jade/tabs/trust.jade:243 src/jade/tabs/trust.jade:245 +#: src/jade/tabs/trust.jade:247 src/jade/tabs/trust.jade:249 +msgid "Remove" +msgstr "제거" + +#: src/jade/tabs/trust.jade:201 src/jade/tabs/trust.jade:206 +#: src/jade/tabs/trust.jade:210 src/jade/tabs/trust.jade:239 +#: src/jade/tabs/trust.jade:244 src/jade/tabs/trust.jade:248 +msgid "" +"You can't delete incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "" + +#: src/jade/tabs/trust.jade:226 +msgid "Rippling {{1}}" +msgstr "" + +#: src/jade/tabs/tx.jade:5 +msgid "Loading transaction details..." +msgstr "거래 상세 내역 로딩 중..." + +#: src/jade/tabs/tx.jade:7 +msgid "An error occurred while loading the transaction details." +msgstr "거래 내역 로딩 중 에러가 발생했습니다." + +#: src/jade/tabs/tx.jade:10 +msgid "Transaction #" +msgstr "거래 #" + +#: src/jade/tabs/tx.jade:15 +msgid "Transaction type: {{1}}" +msgstr "거래 종류: {{1}}" + +#: src/jade/tabs/tx.jade:22 +msgid "Address sent from" +msgstr "보낸 곳의 계좌" + +#: src/jade/tabs/tx.jade:26 +msgid "Amount sent" +msgstr "보낸 금액" + +#: src/jade/tabs/tx.jade:30 +msgid "Currency sent" +msgstr "보낸 화폐" + +#: src/jade/tabs/tx.jade:35 +msgid "Address sent to" +msgstr "보낸 계좌번호" + +#: src/jade/tabs/tx.jade:39 +msgid "Amount received" +msgstr "받은 금액" + +#: src/jade/tabs/tx.jade:43 +msgid "Currency received" +msgstr "받은 통화" + +#: src/jade/tabs/tx.jade:50 +msgid "Network fee paid" +msgstr "지불된 네트워크 이용 요금" + +#: src/jade/tabs/tx.jade:62 +msgid "Ledger number" +msgstr "장부 번호" + +#: src/jade/tabs/tx.jade:68 +msgid "Address sent from:" +msgstr "보낸 곳의 계좌번호" + +# Sorry, we don't have an info page layout for this transaction type yet. +#: src/jade/tabs/tx.jade:72 +msgid "" +"Sorry, we don't have an info page layout for this transaction type yet." +msgstr "" + +#: src/jade/tabs/usd.jade:35 +msgid "US Dollar Deposit" +msgstr "US 달러 예탁" + +#: src/jade/tabs/usd.jade:39 +msgid "SnapSwap US (~SnapSwap){{1}}{{2}}" +msgstr "" + +#: src/jade/tabs/usd.jade:45 +msgid "USA" +msgstr "USA" + +#: src/jade/tabs/usd.jade:48 +msgid "$ 0.31-$ 5.00" +msgstr "" + +#: src/jade/tabs/usd.jade:56 +msgid "" +"Ripple Trade has partnered with SnapSwap to provide easier access to USD. " +"Following this action will enable SnapSwap to hold USD on your behalf." +msgstr "" + +#: src/jade/tabs/usd.jade:73 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.US" +msgstr "" + +#: src/jade/tabs/usd.jade:74 +msgid "Register and verify your account at SnapSwap US. You will need: {{1}}" +msgstr "" + +#: src/jade/tabs/usd.jade:82 +msgid "EXISTING SNAPSWAP US CUSTOMERS" +msgstr "" + +#: src/jade/tabs/usd.jade:93 +msgid "Deposit instantly via selected banks" +msgstr "" + +#: src/jade/tabs/usd.jade:95 +msgid "Deposit cash at Bank of America branches (3 business days)" +msgstr "" + +#: src/jade/tabs/usd.jade:97 +msgid "Deposit via online bank transfer (3 business days)" +msgstr "" + +#: src/jade/tabs/usd.jade:103 +msgid "Directly to your bank account (3-4 business days)" +msgstr "" + +#: src/jade/tabs/usd.jade:105 +msgid "Directly to your PayPal account (several minutes)" +msgstr "" + +#: src/jade/tabs/widgets/assetallocation.jade:3 +msgid "Asset Allocation" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:3 +msgid "Balances" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:12 +msgid "Balance
{{ account.Balance | rpamount }} XRP" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:16 +msgid "Reserve" +msgstr "예비금" + +#: src/jade/tabs/widgets/balances.jade:18 +msgid "Reserve amount" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:18 +msgid "" +"Minimum amount of XRP required to fund your account. You cannot spend the " +"reserve." +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:20 +msgid "Reserve amount
{{ account.reserve | rpamount }} XRP" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Available amount" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Total amount of XRP in your account minus the reserve amount." +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:28 +msgid "Available amount
{{ account.max_spend | rpamount }} XRP" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:35 +msgid "" +"Balance
{{ entry.total | rpamount:{precision: 30, hard_precision: true} " +"}} {{ entry.total | rpcurrency }}" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:43 +msgid "" +"Balance
{{ component | rpamount:{precision: 30, rel_min_precision: -2, " +"hard_precision: true} }} {{ entry.total | rpcurrency }}" +msgstr "" + +#: src/jade/tabs/widgets/markets.jade:3 +msgid "Markets" +msgstr "" + +#: src/jade/tabs/widgets/networth.jade:3 +msgid "Net Worth" +msgstr "" + +#: src/jade/tabs/widgets/networth.jade:8 +msgid "{{1:{{1:In}}}}{{2}}" +msgstr "" + +#: src/jade/tabs/widgets/networth.jade:14 +msgid "Estimated from latest trade price" +msgstr "" + +#: src/jade/tabs/widgets/networth.jade:23 +msgid "(excluding negative balances)" +msgstr "(마이너스 잔고를 제거)" + +#: src/jade/tabs/widgets/orders.jade:3 +msgid "My Orders" +msgstr "내 주문" + +#: src/jade/tabs/widgets/orders.jade:68 +msgid "trade currencies" +msgstr "거래 통화들" + +#: src/jade/tabs/xrp.jade:19 +msgid "Ripple name: {{1}}{{2}}{{3}}" +msgstr "리플 사용자 이름: {{1}}{{2}}{{3}}" + +#: src/jade/tabs/xrp.jade:21 +msgid "loading..." +msgstr "로딩중..." + +#: src/jade/tabs/xrp.jade:23 +msgid "Show address" +msgstr "주소 보기" + +#: src/jade/tabs/xrp.jade:25 +msgid "" +"Ripple names are a new feature on Ripple! Use your Ripple name " +"(~{{userCredentials.username}}) to receive money. You can still use your " +"full Ripple address, and while we are working to transition to Ripple names," +" some gateways may still ask for your full address." +msgstr "리플 아이디는 리플의 새로운 기능입니다! 리플 아이디로 (~{{}} userCredentials.username) 돈을 받을 수 있습니다. 리플 전체 주소도 여전히 사용할 수 있습니다, 아이디를 리플로 전환하는 작업을 하는 동안, 몇 게이트웨이는 전체 주소를 요청할 수 있습니다." diff --git a/l10n/languages.json b/l10n/languages.json index ec276b0ce..1ea329e12 100644 --- a/l10n/languages.json +++ b/l10n/languages.json @@ -4,13 +4,15 @@ {"code": "de", "name": "german", "nativeName": "Deutsch"}, {"code": "en", "name": "english", "nativeName": "English"}, {"code": "es", "name": "spanish", "nativeName": "Español"}, + {"code": "fr_FR", "name": "french", "nativeName": "Français"}, {"code": "he_IL", "name": "hebrew_israel", "nativeName": "עברית"}, {"code": "it", "name": "italian", "nativeName": "Italiano"}, {"code": "ja", "name": "japanese", "nativeName": "日本の"}, + {"code": "ko", "name": "korean", "nativeName": "한국말"}, {"code": "nb_NO", "name": "norwegian_bokmal", "nativeName": "Norsk bokmål"}, {"code": "nl_NL", "name": "dutch_netherlands", "nativeName": "Nederlands"}, {"code": "pl", "name": "polish", "nativeName": "Polski"}, - {"code": "pt", "name": "portuguese", "nativeName": "Português"}, + {"code": "pt_BR", "name": "portuguese_brazil", "nativeName": "Português brasileiro"}, {"code": "ro", "name": "romanian", "nativeName": "Român"}, {"code": "ru", "name": "russian", "nativeName": "Русский"}, {"code": "sk", "name": "slovak", "nativeName": "Slovenská"}, diff --git a/l10n/nl_NL/messages.po b/l10n/nl_NL/messages.po index b58e79848..cfa8b7f91 100644 --- a/l10n/nl_NL/messages.po +++ b/l10n/nl_NL/messages.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Ripple Trade\n" -"PO-Revision-Date: 2015-01-07 20:33+0000\n" +"PO-Revision-Date: 2015-01-28 21:16+0000\n" "Last-Translator: Jeroen Werkhoven \n" "Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/ripple-trade/language/nl_NL/)\n" "MIME-Version: 1.0\n" @@ -21,47 +21,49 @@ msgstr "" "Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/jade/client/index.jade:5 src/jade/client/navbar.jade:112 -#: src/jade/tabs/trust.jade:86 src/jade/tabs/trust.jade:228 +#: src/jade/client/index.jade:5 src/jade/client/navbar.jade:117 +#: src/jade/tabs/trust.jade:59 src/jade/tabs/trust.jade:168 msgid "Balance" msgstr "Saldo" -#: src/jade/client/index.jade:7 src/jade/client/navbar.jade:114 +#: src/jade/client/index.jade:7 src/jade/client/navbar.jade:119 msgid "History" msgstr "Geschiedenis" -#: src/jade/client/index.jade:8 src/jade/client/navbar.jade:116 -#: src/jade/tabs/contacts.jade:5 +#: src/jade/client/index.jade:8 src/jade/client/navbar.jade:121 msgid "Contacts" msgstr "Contacten" -#: src/jade/client/index.jade:12 src/jade/client/navbar.jade:13 -#: src/jade/tabs/contacts.jade:73 +#: src/jade/client/index.jade:12 src/jade/client/navbar.jade:21 +#: src/jade/tabs/contacts.jade:65 msgid "Send" -msgstr "Verzenden" +msgstr "Versturen" -#: src/jade/client/index.jade:16 src/jade/client/navbar.jade:123 +#: src/jade/client/index.jade:16 msgid "Convert" msgstr "Converteren" -#: src/jade/client/index.jade:18 src/jade/client/navbar.jade:121 +#: src/jade/client/index.jade:18 src/jade/client/navbar.jade:23 +#: src/jade/client/navbar.jade:25 src/jade/tabs/settings/navbar.jade:3 msgid "Trade" msgstr "Handelen" -#: src/jade/client/index.jade:22 src/jade/client/navbar.jade:19 -#: src/jade/client/navbar.jade:128 +#: src/jade/client/index.jade:22 src/jade/client/navbar.jade:27 +#: src/jade/client/navbar.jade:133 msgid "Fund" msgstr "Financieren" -#: src/jade/client/index.jade:24 src/jade/tabs/fund/menu.jade:5 +#: src/jade/client/index.jade:24 src/jade/tabs/fund/menu.jade:29 msgid "Gateways" msgstr "Gateways" -#: src/jade/client/index.jade:29 src/jade/tabs/su.jade:12 +#: src/jade/client/index.jade:29 src/jade/client/navbar.jade:107 +#: src/jade/tabs/su.jade:12 msgid "Account" -msgstr "Account" +msgstr "Portefeuille" -#: src/jade/client/index.jade:32 src/jade/tabs/advanced.jade:9 +#: src/jade/client/index.jade:32 src/jade/client/navbar.jade:109 +#: src/jade/tabs/advanced.jade:19 msgid "Settings" msgstr "Instellingen" @@ -69,198 +71,437 @@ msgstr "Instellingen" msgid "Logout" msgstr "Uitloggen" -#: src/jade/client/index.jade:41 -msgid "Welcome to {{productName}}, a global value exchange" -msgstr "Welkom op {{productName}}, een wereldwijde marktplaats" - -#: src/jade/client/index.jade:51 +#: src/jade/client/index.jade:61 +msgid "Why Use Ripple Trade?" +msgstr "Waarom Ripple Trade Gebruiken?" + +#: src/jade/client/index.jade:66 +msgid "Home of XRP -" +msgstr "Het thuis van XRP -" + +#: src/jade/client/index.jade:67 +msgid "the best place to buy and sell XRP" +msgstr "de beste plaats voor de koop en verkoop van XRP" + +#: src/jade/client/index.jade:71 +msgid "Free -" +msgstr "Gratis -" + +#: src/jade/client/index.jade:72 +msgid "no fees to sign up and use Ripple Trade" +msgstr "geen heffingen voor aanmelding bij en het gebruik van Ripple Trade" + +#: src/jade/client/index.jade:76 +msgid "No Middlemen -" +msgstr "Geen Tussenpersonen -" + +#: src/jade/client/index.jade:77 +msgid "" +"When you submit orders, Ripple automatically finds the best available match," +" without a clearinghouse or broker." +msgstr "Bij het plaatsen van uw orders vindt Ripple automatisch de best beschikbare tegenpartij, zonder tussenkomst van een clearinghouse of handelaar." + +#: src/jade/client/index.jade:81 +msgid "Deposit, trade and withdraw money on Ripple via gateways." +msgstr "Gebruik gateways om geld te storten, te verhandelen en op te nemen uit Ripple." + +#: src/jade/client/index.jade:89 +msgid "Featured Ripple Gateways" +msgstr "Geselecteerde Ripple-gateways" + +#: src/jade/client/index.jade:91 +msgid "Ripple's growing gateway network." +msgstr "Het groeiende gateway-netwerk van Ripple." + +#: src/jade/client/index.jade:93 src/jade/client/index.jade:96 +#: src/jade/client/index.jade:99 src/jade/client/index.jade:102 +#: src/jade/client/index.jade:105 src/jade/client/index.jade:108 +#: src/jade/client/index.jade:111 src/jade/client/index.jade:114 +#: src/jade/client/index.jade:117 src/jade/tabs/banner/unfunded.jade:6 +#: src/jade/tabs/brl.jade:53 src/jade/tabs/brl.jade:57 +#: src/jade/tabs/brl.jade:93 src/jade/tabs/btc.jade:46 +#: src/jade/tabs/eur.jade:50 src/jade/tabs/eur.jade:54 +#: src/jade/tabs/eur.jade:86 src/jade/tabs/eur.jade:93 +#: src/jade/tabs/gold.jade:51 src/jade/tabs/jpy.jade:55 +#: src/jade/tabs/jpy.jade:91 src/jade/tabs/jpy.jade:97 +#: src/jade/tabs/mxn.jade:53 src/jade/tabs/send.jade:63 +#: src/jade/tabs/trade.jade:320 src/jade/tabs/usd.jade:51 +#: src/jade/tabs/usd.jade:83 src/jade/tabs/usd.jade:90 +#: src/jade/tabs/usd.jade:100 src/jade/tabs/widgets/orders.jade:31 +msgid "{{1}}" +msgstr "{{1}}" + +#: src/jade/client/index.jade:123 msgid "Version: {{version}}" msgstr "Versie: {{version}}" -#: src/jade/client/index.jade:55 -msgid "End-User License Agreement" -msgstr "Licentieovereenkomst Voor Eindgebruikers" +#: src/jade/client/index.jade:128 +msgid "Terms of Use" +msgstr "Gebruiksvoorwaarden" + +#: src/jade/client/index.jade:129 +msgid "Privacy Policy" +msgstr "Privacybeleid" -#: src/jade/client/index.jade:56 +#: src/jade/client/index.jade:130 msgid "Support" msgstr "Ondersteuning" -#: src/jade/client/index.jade:57 +#: src/jade/client/index.jade:131 msgid "Bug reports" msgstr "Foutmeldingen" -#: src/jade/client/index.jade:64 +#: src/jade/client/index.jade:138 msgid "more..." msgstr "meer..." -#: src/jade/client/index.jade:68 +#: src/jade/client/index.jade:142 msgid "Select a language" msgstr "Selecteer een taal" -#: src/jade/client/navbar.jade:11 +#: src/jade/client/navbar.jade:2 +msgid "" +"You are viewing an account in {{1}} mode. While in this mode, you can view " +"publicly available data, but you cannot initiate any transactions. Click " +"{{2}} to exit." +msgstr "Momenteel bekijkt u een account in {{1}}-modus. Dit betekent dat u openbaar toegankelijke data kunt zien, maar geen transacties kunt uitvoeren. Klik op {{2}} om terug te gaan." + +#: src/jade/client/navbar.jade:8 +msgid "" +"Warning: this account has over 200 trust lines, so the displayed account " +"balance may not be accurate." +msgstr "Let op: dit account heeft meer dan 200 kredietlijnen dus het weergegeven accountsaldo is mogelijk niet accuraat." + +#: src/jade/client/navbar.jade:19 msgid "Overview" msgstr "Overzicht" -#: src/jade/client/navbar.jade:15 src/jade/client/navbar.jade:17 -#: src/jade/tabs/exchange.jade:43 -msgid "Exchange" -msgstr "Omwisselen" - -#: src/jade/client/navbar.jade:39 src/jade/tabs/account/public.jade:45 -#: src/jade/tabs/apps.jade:8 src/jade/tabs/balance.jade:8 -#: src/jade/tabs/balance.jade:27 src/jade/tabs/btc.jade:60 -#: src/jade/tabs/exchange.jade:9 src/jade/tabs/history.jade:207 -#: src/jade/tabs/kyc.jade:38 src/jade/tabs/recover.jade:21 -#: src/jade/tabs/security.jade:134 src/jade/tabs/su.jade:8 -#: src/jade/tabs/trust.jade:9 src/jade/tabs/trust.jade:175 +#: src/jade/client/navbar.jade:49 src/jade/tabs/account/private.jade:7 +#: src/jade/tabs/account/private.jade:16 src/jade/tabs/account/public.jade:45 +#: src/jade/tabs/apps.jade:8 src/jade/tabs/btc.jade:72 +#: src/jade/tabs/exchange.jade:9 src/jade/tabs/kyc.jade:45 +#: src/jade/tabs/recover.jade:26 src/jade/tabs/security.jade:147 +#: src/jade/tabs/su.jade:8 src/jade/tabs/trust.jade:9 +#: src/jade/tabs/trust.jade:139 msgid "Loading..." -msgstr "Laden..." +msgstr "Bezig met laden..." -#: src/jade/client/navbar.jade:40 +#: src/jade/client/navbar.jade:50 msgid "There are no recent notifications." -msgstr "Er zijn geen nieuwe meldingen." +msgstr "Er zijn geen recente meldingen." -#: src/jade/client/navbar.jade:44 +#: src/jade/client/navbar.jade:54 msgid "You sent {{1}} to {{2}}" msgstr "U verstuurde {{1}} naar {{2}}" -#: src/jade/client/navbar.jade:50 +#: src/jade/client/navbar.jade:60 msgid "{{1}} sent you {{2}}" -msgstr "{{1}} verstuurt U {{2}}" +msgstr "{{1}} verstuurde U {{2}}" -#: src/jade/client/navbar.jade:58 +#: src/jade/client/navbar.jade:68 msgid "{{entry.transaction.counterparty | rpcontactname}} now trusts you for" -msgstr "{{entry.transaction.counterparty | rpcontactname}} vertrouwt u nu toe voor" +msgstr "{{entry.transaction.counterparty | rpcontactname}} vertrouwt u nu een bedrag toe van" -#: src/jade/client/navbar.jade:64 src/jade/notification/account.jade:25 -#: src/jade/tabs/history.jade:133 src/jade/tabs/history/effects.jade:63 +#: src/jade/client/navbar.jade:74 src/jade/notification/account.jade:25 +#: src/jade/tabs/history.jade:115 src/jade/tabs/history/effects.jade:63 msgid "You have now connected to the gateway {{1}}{{2: for }}{{3}}." msgstr "U bent nu verbonden met de gateway {{1}}{{2: voor }}{{3}}." -#: src/jade/client/navbar.jade:75 +#: src/jade/client/navbar.jade:85 msgid "You cancelled an order accepting {{1}} for {{2}}" msgstr "U heeft een order om {{1}} te accepteren voor {{2}} geannuleerd" -#: src/jade/client/navbar.jade:82 src/jade/tabs/history.jade:156 +#: src/jade/client/navbar.jade:92 src/jade/tabs/history.jade:138 msgid "Account details have been changed" msgstr "De details van uw account zijn gewijzigd" -#: src/jade/client/navbar.jade:85 src/jade/tabs/history.jade:159 -#: src/jade/tabs/trust.jade:231 +#: src/jade/client/navbar.jade:95 src/jade/tabs/history.jade:141 +#: src/jade/tabs/trust.jade:171 msgid "Rippling" msgstr "Rippling" -#: src/jade/client/navbar.jade:87 src/jade/tabs/history.jade:161 +#: src/jade/client/navbar.jade:97 src/jade/tabs/history.jade:143 msgid "Failed transaction" msgstr "Mislukte transactie" -#: src/jade/client/navbar.jade:93 +#: src/jade/client/navbar.jade:103 msgid "View Full History" -msgstr "De volledige geschiedenis weergeven" +msgstr "Volledige Geschiedenis Weergeven" -#: src/jade/client/navbar.jade:97 -msgid "{{1}} Account" -msgstr "{{1}} Account" +#: src/jade/client/navbar.jade:111 +msgid "Log Out" +msgstr "Uitloggen" -#: src/jade/client/navbar.jade:101 -msgid "{{1}} Settings" -msgstr "{{1}} Instellingen" +#: src/jade/client/navbar.jade:126 +msgid "Simple" +msgstr "Eenvoudig" -#: src/jade/client/navbar.jade:105 -msgid "{{1}} Log Out" -msgstr "{{1}} Uitloggen" +#: src/jade/client/navbar.jade:128 src/jade/tabs/settings/navbar.jade:4 +msgid "Advanced" +msgstr "Geavanceerd" -#: src/jade/client/navbar.jade:130 src/jade/tabs/balance.jade:110 +#: src/jade/client/navbar.jade:135 msgid "Withdraw" msgstr "Opnemen" -#: src/jade/client/navbar.jade:132 +#: src/jade/client/navbar.jade:137 msgid "" "Your account was successfully recovered and encrypted with the new password " "you provided!" -msgstr "Uw portefeille is hersteld en versleuteld met het nieuwe wachtwoord dat u heeft opgegeven!" +msgstr "Uw portefeuille is succesvol herkregen en versleuteld met het nieuwe wachtwoord dat u heeft opgegeven!" -#: src/jade/client/navbar.jade:133 +#: src/jade/client/navbar.jade:138 msgid "dismiss" msgstr " verberg" -#: src/jade/directives/transactionerror.jade:5 +#: src/jade/directives/addresspopover.jade:3 +msgid "Ripple address {{ identity }}" +msgstr "Ripple-adres {{ identity }}" + +#: src/jade/directives/addresspopover.jade:8 src/jade/tabs/tx.jade:13 +msgid "Show in graph" +msgstr "Toon in grafiek" + +#: src/jade/directives/transactionerror.jade:8 +msgid "Connecting gateway to your account..." +msgstr "Gateway wordt verbonden met uw account..." + +#: src/jade/directives/transactionerror.jade:10 +msgid "Gateway connected." +msgstr "Gateway verbonden." + +#: src/jade/directives/transactionerror.jade:12 +msgid "There was a problem connecting to the gateway. Please try again later." +msgstr "Bij het verbinden met de gateway is een probleem ontstaan. Probeert u het later nog eens." + +#: src/jade/directives/transactionerror.jade:14 +#: src/jade/directives/transactionerror.jade:73 +#: src/jade/directives/transactionerror.jade:158 +#: src/jade/messages/sendconvert/confirmation.jade:13 +msgid "Error code: {{engine_result}} - {{engine_result_message}}" +msgstr "Foutcode: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:19 +#: src/jade/directives/transactionerror.jade:23 +#: src/jade/directives/transactionerror.jade:28 +#: src/jade/directives/transactionerror.jade:33 +#: src/jade/directives/transactionerror.jade:45 +#: src/jade/directives/transactionerror.jade:52 +#: src/jade/directives/transactionerror.jade:156 +#: src/jade/directives/transactionerror.jade:163 +#: src/jade/directives/transactionerror.jade:167 +#: src/jade/directives/transactionerror.jade:172 +#: src/jade/directives/transactionerror.jade:177 +#: src/jade/directives/transactionerror.jade:186 +#: src/jade/directives/transactionerror.jade:193 +msgid "Request failed" +msgstr "Aanvraag mislukt" + +#: src/jade/directives/transactionerror.jade:21 +#: src/jade/directives/transactionerror.jade:165 +msgid "Your request timed out, please try again." +msgstr "De tijd voor uw aanvraag is verstreken, probeer het later nog eens." + +#: src/jade/directives/transactionerror.jade:25 +#: src/jade/directives/transactionerror.jade:84 +#: src/jade/directives/transactionerror.jade:169 +#: src/jade/messages/sendconvert/confirmation.jade:18 +msgid "Error code: Destination tag needed [tefDST_TAG_NEEDED]." +msgstr "Foutcode: Bestemmingskenmerk vereist. [tefDST_TAG_NEEDED]." + +#: src/jade/directives/transactionerror.jade:30 +#: src/jade/directives/transactionerror.jade:174 +msgid "" +"Error code: This request failed because it exceeded the maximum network fee," +" please try again later [telINSUF_FEE_P]." +msgstr "Foutcode: De transactie is mislukt omdat het de maximale netwerkheffing overschreed, probeer het later nog eens [telINSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:35 +msgid "" +"Error code: You have no gateway connected in this currency [terNO_LINE]." +msgstr "Foutcode: U heeft geen gateway verbonden voor deze valuta [terNO_LINE]." + +#: src/jade/directives/transactionerror.jade:37 +msgid "" +"Error code: Insufficient reserve to connect gateway [tecINSUF_RESERVE_LINE]." +msgstr "Foutcode: Onvoldoende reserve om met de gateway te verbinden [tecINSUF_RESERVE_LINE]." + +#: src/jade/directives/transactionerror.jade:39 +msgid "" +"Error code: You have an insufficient reserve amount to connect a gateway " +"[tecNO_LINE_INSUF_RESERVE]. {{1}}" +msgstr "Foutcode: U heeft onvoldoende reserve om met de gateway te verbinden [tecINSUF_RESERVE_LINE]. {{1}}" + +#: src/jade/directives/transactionerror.jade:41 src/jade/tabs/fund.jade:34 +#: src/jade/tabs/send.jade:110 src/jade/tabs/trust.jade:74 +msgid "More information" +msgstr "Meer informatie" + +#: src/jade/directives/transactionerror.jade:42 +#: src/jade/directives/transactionerror.jade:98 +#: src/jade/directives/transactionerror.jade:135 +#: src/jade/directives/transactionerror.jade:183 +#: src/jade/messages/sendconvert/confirmation.jade:27 +msgid "Error: {{engine_result_message}}" +msgstr "Fout: {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:47 +#: src/jade/directives/transactionerror.jade:103 +#: src/jade/directives/transactionerror.jade:188 +#: src/jade/messages/sendconvert/confirmation.jade:32 +msgid "Error code: You have no trust line in this currency [terNO_LINE]." +msgstr "Foutcode: U heeft geen kredietlijn voor deze valuta [terNO_LINE]." + +#: src/jade/directives/transactionerror.jade:49 +#: src/jade/directives/transactionerror.jade:190 +msgid "Your request failed: {{engine_result}} - {{engine_result_message}}" +msgstr "Uw aanvraag is mislukt: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:54 +#: src/jade/directives/transactionerror.jade:195 +msgid "Error code: request could not be submitted [tejLost]." +msgstr "Foutcode: Aanvraag kon niet worden verzonden [tejLost]." + +#: src/jade/directives/transactionerror.jade:56 +#: src/jade/directives/transactionerror.jade:197 src/jade/tabs/trust.jade:36 +msgid "" +"This request failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "Deze aanvraag is mislukt omdat de huidige netwerkheffing hoger is dan de limiet voor uw account. U kunt de maximum netwerkheffing aanpassen in Instellingen > Geavanceerd, of het later nog eens proberen.
Foutcode: Netwerkheffing overschreden [tejMaxFeeExceeded]." + +#: src/jade/directives/transactionerror.jade:59 +#: src/jade/directives/transactionerror.jade:200 +msgid "" +"Your request could not be submitted: {{engine_result}} - " +"{{engine_result_message}}" +msgstr "Uw aanvraag kon niet worden verzonden: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:67 msgid "Payment pending" msgstr "Betaling in behandeling" -#: src/jade/directives/transactionerror.jade:7 +#: src/jade/directives/transactionerror.jade:69 msgid "Payment successful" msgstr "Betaling succesvol" -#: src/jade/directives/transactionerror.jade:9 -#: src/jade/directives/transactionerror.jade:16 -#: src/jade/directives/transactionerror.jade:20 -#: src/jade/directives/transactionerror.jade:25 -#: src/jade/directives/transactionerror.jade:30 -#: src/jade/directives/transactionerror.jade:39 -#: src/jade/directives/transactionerror.jade:46 +#: src/jade/directives/transactionerror.jade:71 +#: src/jade/directives/transactionerror.jade:82 +#: src/jade/directives/transactionerror.jade:87 +#: src/jade/directives/transactionerror.jade:92 +#: src/jade/directives/transactionerror.jade:101 +#: src/jade/directives/transactionerror.jade:108 msgid "Payment failed" msgstr "Betaling mislukt" -#: src/jade/directives/transactionerror.jade:11 -#: src/jade/messages/sendconvert/confirmation.jade:13 -msgid "Error code: {{engine_result}} - {{engine_result_message}}" -msgstr "Fout code: {{engine_result}} - {{engine_result_message}}" +#: src/jade/directives/transactionerror.jade:78 +msgid "Payment failed [tefMAX_LEDGER]." +msgstr "Betaling mislukt [tefMAX_LEDGER]." -#: src/jade/directives/transactionerror.jade:18 +#: src/jade/directives/transactionerror.jade:80 msgid "Your payment timed out, please try again." -msgstr "De tijd voor uw betaling is verstreken. Probeer u het later nog eens." +msgstr "De tijd voor uw betaling is verstreken. Probeert u het later nog eens." -#: src/jade/directives/transactionerror.jade:22 -#: src/jade/messages/sendconvert/confirmation.jade:18 -msgid "Error code: Destination tag needed [tefDST_TAG_NEEDED]." -msgstr "Foutcode: Bestemmingskenmerk vereist. [tefDST_TAG_NEEDED]." - -#: src/jade/directives/transactionerror.jade:27 +#: src/jade/directives/transactionerror.jade:89 #: src/jade/messages/sendconvert/confirmation.jade:39 msgid "" "Error code: This transaction failed because it exceeded the maximum network " "fee, please try again later [telINSUF_FEE_P]." msgstr "Foutcode: De transactie is mislukt omdat de maximale netwerkheffing is overschreden. Probeert u het later nog eens [telINSUF_FEE_P]." -#: src/jade/directives/transactionerror.jade:32 +#: src/jade/directives/transactionerror.jade:94 +#: src/jade/directives/transactionerror.jade:179 msgid "Error code: No destination [tecNO_DST]." msgstr "Foutcode: Geen bestemming [tecNO_DST]." -#: src/jade/directives/transactionerror.jade:34 +#: src/jade/directives/transactionerror.jade:96 +#: src/jade/directives/transactionerror.jade:181 #: src/jade/messages/sendconvert/confirmation.jade:25 msgid "" "Error code: Insufficient XRP sent to destination [tecNO_DST_INSUF_XRP]." msgstr "Foutcode: Onvoldoende XRP verstuurd naar bestemming [tecNO_DST_INSUF_XRP]." -#: src/jade/directives/transactionerror.jade:36 -#: src/jade/messages/sendconvert/confirmation.jade:27 -msgid "Error: {{engine_result_message}}" -msgstr "Fout: {{engine_result_message}}" - -#: src/jade/directives/transactionerror.jade:41 -#: src/jade/messages/sendconvert/confirmation.jade:32 -msgid "Error code: You have no trust line in this currency [terNO_LINE]." -msgstr "Foutcode: U heeft geen kredietlijn voor deze valuta [terNO_LINE]." - -#: src/jade/directives/transactionerror.jade:43 +#: src/jade/directives/transactionerror.jade:105 msgid "Your payment failed: {{engine_result}} - {{engine_result_message}}" msgstr "Uw betaling is mislukt: {{engine_result}} - {{engine_result_message}}" -#: src/jade/directives/transactionerror.jade:48 +#: src/jade/directives/transactionerror.jade:110 msgid "Error code: Transaction could not be submitted [tejLost]." msgstr "Foutcode: Transactie kon niet worden verzonden [tejLost]." -#: src/jade/directives/transactionerror.jade:50 -msgid "Error code: Network fee exceeded [tejMaxFeeExceeded]." -msgstr "Foutcode: Netwerkheffing overschreden [tejMaxFeeExceeded]." +#: src/jade/directives/transactionerror.jade:112 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "Deze transactie is mislukt omdat de huidige netwerkheffing hoger is dan de limiet voor uw account. U kunt de maximum netwerkheffing aanpassen in Instellingen > Geavanceerd, of het later nog eens proberen.
Foutcode: Netwerkheffing overschreden [tejMaxFeeExceeded]." -#: src/jade/directives/transactionerror.jade:52 +#: src/jade/directives/transactionerror.jade:115 msgid "" "Your payment could not be submitted: {{engine_result}} - " "{{engine_result_message}}" msgstr "Uw betaling kon niet worden verzonden: {{engine_result}} - {{engine_result_message}}" +#: src/jade/directives/transactionerror.jade:121 +msgid "Request is malformed." +msgstr "Verzoek is onjuist samengesteld." + +#: src/jade/directives/transactionerror.jade:122 +msgid "" +"Your request is invalid, reason: {{engine_result_message}} - " +"{{engine_result_message}}" +msgstr "Uw aanvraag is ongeldig, reden: {{engine_result_message}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:125 +#: src/jade/directives/transactionerror.jade:142 +msgid "Transaction failed." +msgstr "Transactie mislukt." + +#: src/jade/directives/transactionerror.jade:127 +msgid "You do not have enough funds to create this order [tecUNFUNDED_ORDER]." +msgstr "U heeft onvoldoende saldo om deze order aan te maken [tecUNFUNDED_ORDER]." + +#: src/jade/directives/transactionerror.jade:129 +msgid "" +"Insufficient reserve amount to submit an order [tecINSUF_RESERVE_OFFER]." +msgstr "Onvoldoende hoeveelheid reserve om een order aan te maken [tecINSUF_RESERVE_OFFER]." + +#: src/jade/directives/transactionerror.jade:131 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]. {{1}}" +msgstr "Deze transactie is mislukt omdat de huidige netwerkheffing hoger is dan de limiet voor uw account. U kunt de maximum netwerkheffing aanpassen in Instellingen > Geavanceerd, of het later nog eens proberen.
Foutcode: Netwerkheffing overschreden [tejMaxFeeExceeded]. {{1}}" + +#: src/jade/directives/transactionerror.jade:134 +msgid "More information." +msgstr "Meer informatie." + +#: src/jade/directives/transactionerror.jade:138 +msgid "Trade failed." +msgstr "Handel mislukt." + +#: src/jade/directives/transactionerror.jade:140 +msgid "Trade failed, reason: {{engine_result_message}}" +msgstr "Handel mislukt, reden: {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:144 +msgid "" +"The particular server you sent the transaction to was too busy to forward or" +" process your transaction at the fee you included in it [telINSUF_FEE_P]." +msgstr "De server waar u de transactie naar verzond was te druk om deze door te sturen of te verwerken tegen de meegegeven heffing [telINSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:152 +msgid "Request pending" +msgstr "Aanvraag in behandeling" + +#: src/jade/directives/transactionerror.jade:154 +msgid "Request successful" +msgstr "Aanvraag succesvol" + #: src/jade/messages/sendconvert/confirmation.jade:4 msgid "Transaction pending." msgstr "Transactie in behandeling." @@ -282,8 +523,11 @@ msgstr "Transactie geslaagd" msgid "Transaction failed" msgstr "Transactie mislukt" -#: src/jade/messages/sendconvert/confirmation.jade:9 -#: src/jade/tabs/trust.jade:58 src/jade/tabs/trust.jade:70 +#: src/jade/messages/sendconvert/confirmation.jade:9 src/jade/tabs/brl.jade:25 +#: src/jade/tabs/btc.jade:22 src/jade/tabs/eur.jade:25 +#: src/jade/tabs/gold.jade:25 src/jade/tabs/jpy.jade:25 +#: src/jade/tabs/mxn.jade:25 src/jade/tabs/trust.jade:43 +#: src/jade/tabs/usd.jade:25 msgid "Please try again later." msgstr "Probeert u het later nog eens." @@ -317,13 +561,14 @@ msgstr "Foutcode: De transactie is mislukt omdat de maximale netwerkheffing is o msgid "" "Error code: The transaction was rejected by the Ripple network " "[invalidTransaction]." -msgstr "Foutcode: De transactie is afgekeurd door het Ripple netwerk [invalidTransaction]." +msgstr "Foutcode: De transactie is afgekeurd door het Ripple-netwerk [invalidTransaction]." #: src/jade/messages/sendconvert/localerror.jade:17 msgid "Account unlock failed" msgstr "Accountontgrendeling is mislukt" #: src/jade/messages/sendconvert/localerror.jade:18 +#: src/jade/tabs/trust.jade:40 msgid "Your account could not be unlocked. Please try again later." msgstr "Uw account kon niet worden ontgrendeld. Probeert u het later nog eens." @@ -331,17 +576,17 @@ msgstr "Uw account kon niet worden ontgrendeld. Probeert u het later nog eens." msgid "" "Sorry, an error occurred while submitting your transaction.Make sure you are" " connected to the Internet and try again later." -msgstr "Onze excuses, er was een fout tijdens het verzenden van uw transactie. Kijk na of u verbonden bent met het internet en probeer het later opnieuw." +msgstr "Onze excuses, er was een fout tijdens het verzenden van uw transactie. Controleer of u met het internet bent verbonden en probeer het later nog eens." #: src/jade/messages/sendconvert/localerror.jade:22 msgid "" "Before trying again, please ensure that the transaction has not been " "executed already." -msgstr "Kijk alstublieft na of de transactie al voltooid is voordat u het opnieuw probeert." +msgstr "Controleer alstublieft of de transactie niet al is uitgevoerd voor u het nogmaals probeert." -#: src/jade/messages/sendconvert/waiting.jade:3 +#: src/jade/messages/sendconvert/waiting.jade:5 msgid "Sending transaction to the Ripple network" -msgstr "De transactie wordt naar het Ripple netwerk verzonden" +msgstr "De transactie wordt naar het Ripple-netwerk verzonden" #: src/jade/notification/account.jade:3 msgid "You sent {{1}} {{2}} to {{3}}" @@ -353,15 +598,51 @@ msgstr "{{tx.counterparty | rpcontactname}} stuurde u" #: src/jade/notification/account.jade:18 msgid "{{tx.counterparty | rpcontactname}} now trusts you for" -msgstr "{{tx.counterparty | rpcontactname}} heeft u toevertrouwd voor" +msgstr " {{tx.counterparty | rpcontactname}} vertrouwt u een bedrag toe van" + +#: src/jade/popup/modifyOrderError.jade:2 +msgid "Modify Order Error" +msgstr "Fout Bij Orderaanpassing" + +#: src/jade/popup/modifyOrderError.jade:4 +msgid "Sorry, your order could not be modified." +msgstr "Sorry, uw order kon niet worden aangepast." + +#: src/jade/popup/modifyOrderError.jade:5 +msgid "" +"Your original order was cancelled but the modified order was not placed. " +"
" +msgstr "Uw oorspronkelijke order is geannuleerd maar de aangepaste order is niet geplaatst.
" + +#: src/jade/popup/modifyOrderError.jade:6 +msgid "" +"The quantity of your order changed by {{order.qtyChangeAfterCancel | " +"rpamount}} before the order could be modified.

" +msgstr "De grootte van uw order verminderde met {{order.qtyChangeAfterCancel | rpamount}} voordat de order kon worden aangepast.

" + +#: src/jade/popup/modifyOrderError.jade:7 +msgid "" +"To safeguard against the possibility of overfills a new order has not been " +"placed.
" +msgstr "Voor de beveiliging tegen overmatige orderplaatsingen is een nieuwe order nog niet geplaatst.
" + +#: src/jade/popup/modifyOrderError.jade:8 +msgid "" +"Please check your balance and history before placing the new order manually." +"
" +msgstr "Controleer alstublieft uw saldo en geschiedenis voor u handmatig een nieuwe order plaatst.
" + +#: src/jade/popup/modifyOrderError.jade:10 src/jade/popup/unlock.jade:17 +msgid "Close" +msgstr "Sluiten" #: src/jade/popup/unlock.jade:2 msgid "Unlock account" -msgstr "Portefeuille vrijmaken" +msgstr "Account ontgrendelen" -#: src/jade/popup/unlock.jade:5 src/jade/tabs/desktop/register.jade:28 -#: src/jade/tabs/login/form.jade:7 src/jade/tabs/recover.jade:33 -#: src/jade/tabs/register.jade:42 src/jade/tabs/security.jade:10 +#: src/jade/popup/unlock.jade:5 src/jade/tabs/login/form.jade:8 +#: src/jade/tabs/recover.jade:38 src/jade/tabs/register.jade:58 +#: src/jade/tabs/security.jade:12 msgid "Password" msgstr "Wachtwoord" @@ -369,7 +650,7 @@ msgstr "Wachtwoord" msgid "Please enter your password to show your secret key." msgstr "Voer uw wachtwoord in om uw beveiligingssleutel te kunnen bekijken." -#: src/jade/popup/unlock.jade:9 src/jade/tabs/send.jade:195 +#: src/jade/popup/unlock.jade:9 src/jade/tabs/send.jade:205 msgid "Please enter your password to confirm this transaction." msgstr "Voer uw wachtwoord in om deze transactie te bevestigen." @@ -377,321 +658,374 @@ msgstr "Voer uw wachtwoord in om deze transactie te bevestigen." msgid "This password is incorrect, please try again." msgstr "Dit wachtwoord is incorrect, probeert u het opnieuw." -#: src/jade/popup/unlock.jade:11 +#: src/jade/popup/unlock.jade:13 msgid "Confirming password" msgstr "Wachtwoord wordt nagekeken" -#: src/jade/popup/unlock.jade:14 src/jade/tabs/account/public.jade:44 -#: src/jade/tabs/security.jade:133 +#: src/jade/popup/unlock.jade:16 src/jade/tabs/account/public.jade:44 +#: src/jade/tabs/security.jade:146 msgid "Submit" msgstr "Versturen" -#: src/jade/popup/unlock.jade:15 -msgid "Close" -msgstr "Sluiten" - #: src/jade/tabs/2fa/form.jade:3 msgid "Country Code" msgstr "Landnummer" -#: src/jade/tabs/2fa/form.jade:6 src/jade/tabs/kyc.jade:146 +#: src/jade/tabs/2fa/form.jade:6 src/jade/tabs/kyc.jade:162 msgid "Phone Number" msgstr "Telefoonnummer" +#: src/jade/tabs/_usd.jade:6 src/jade/tabs/apps.jade:5 +#: src/jade/tabs/balance.jade:5 src/jade/tabs/brl.jade:6 +#: src/jade/tabs/btc.jade:9 src/jade/tabs/eur.jade:6 +#: src/jade/tabs/exchange.jade:6 src/jade/tabs/fund.jade:6 +#: src/jade/tabs/gold.jade:6 src/jade/tabs/history.jade:6 +#: src/jade/tabs/jpy.jade:6 src/jade/tabs/kyc.jade:6 src/jade/tabs/mxn.jade:6 +#: src/jade/tabs/send.jade:6 src/jade/tabs/su.jade:5 +#: src/jade/tabs/trade.jade:7 src/jade/tabs/trust.jade:6 +#: src/jade/tabs/usd.jade:6 src/jade/tabs/withdraw.jade:6 +#: src/jade/tabs/xrp.jade:6 +msgid "You have to be online to see this screen" +msgstr "U moet online zijn om dit scherm te kunnen zien" + +#: src/jade/tabs/_usd.jade:17 +msgid "USD instant deposit" +msgstr "USD directe storting" + +#: src/jade/tabs/_usd.jade:19 src/jade/tabs/_usd.jade:21 +msgid "Step 1 (Amount)" +msgstr "Stap 1 (Bedrag)" + +#: src/jade/tabs/_usd.jade:22 +msgid "Step 2 (Confirmation)" +msgstr "Stap 2 (Bevestiging)" + +#: src/jade/tabs/_usd.jade:23 +msgid "Step 3 (Complete deposit)" +msgstr "Stap 3 (Storting voltooien)" + +#: src/jade/tabs/_usd.jade:26 +msgid "STEP 1: AMOUNT" +msgstr "STAP 1: BEDRAG" + +#: src/jade/tabs/_usd.jade:28 +msgid "STEP 2: CONFIRMATION" +msgstr "STAP 2: BEVESTIGING" + +#: src/jade/tabs/_usd.jade:30 +msgid "STEP 3: COMPLETE DEPOSIT" +msgstr "STAP 3: STORTING VOLTOOIEN" + +#: src/jade/tabs/_usd.jade:34 +msgid "" +"Success! You've completed your USD deposit. Your funds should be available " +"within a few minutes." +msgstr "Geslaagd! Uw USD-storting is voltooid. Uw storting zal binnen enkele minuten beschikbaar zijn. " + +#: src/jade/tabs/_usd.jade:36 +msgid "You cancelled your deposit." +msgstr "U heeft uw storting geannuleerd." + +#: src/jade/tabs/_usd.jade:38 +msgid "" +"Your deposit failed. Your bank account was not charged. Please contact " +"{{1}}." +msgstr "Uw storting is mislukt. Uw bankrekening is niet in rekening gebracht. Gelieve contact op te nemen met {{1}}." + +#: src/jade/tabs/_usd.jade:49 src/jade/tabs/_usd.jade:91 +#: src/jade/tabs/fund.jade:41 src/jade/tabs/history.jade:172 +#: src/jade/tabs/trust.jade:89 +msgid "Amount" +msgstr "Hoeveelheid" + +#: src/jade/tabs/_usd.jade:59 src/jade/tabs/_usd.jade:62 +msgid "Select your bank" +msgstr "Selecteer uw bank" + +#: src/jade/tabs/_usd.jade:77 +msgid "" +"Ripple Trade has partnered with SnapSwap to make USD deposits easier. By " +"continuing, you agree to SnapSwap's {{1}}To contact support, email {{2}}." +msgstr "Ripple Trade werkt samen met SnapSwap om USD-stortingen eenvoudiger te maken. Bij doorklikken gaat u akkoord met de {{1}}van Snapswap. Voor ondersteuning kunt u e-mailen naar: {{2}}." + +#: src/jade/tabs/_usd.jade:93 src/jade/tabs/history.jade:178 +msgid "Fee" +msgstr "Heffing" + +#: src/jade/tabs/_usd.jade:95 +msgid "Total" +msgstr "Totaal" + +#: src/jade/tabs/_usd.jade:98 +msgid "Calculating..." +msgstr "Bezig met berekenen..." + +#: src/jade/tabs/_usd.jade:109 src/jade/tabs/register.jade:126 +#: src/jade/tabs/register.jade:133 +msgid "Back" +msgstr "Terug" + +#: src/jade/tabs/_usd.jade:111 src/jade/tabs/btc.jade:73 +#: src/jade/tabs/exchange.jade:111 src/jade/tabs/send.jade:213 +#: src/jade/tabs/trade.jade:67 src/jade/tabs/trade.jade:77 +#: src/jade/tabs/trade.jade:248 src/jade/tabs/trade.jade:407 +#: src/jade/tabs/trust.jade:140 +msgid "Confirm" +msgstr "Bevestigen" + #: src/jade/tabs/account/navbar.jade:2 msgid "Public Information" msgstr "Publieke Informatie" -#: src/jade/tabs/account/private.jade:2 +#: src/jade/tabs/account/private.jade:1 msgid "Profile Information" msgstr "Profielinformatie" -#: src/jade/tabs/account/private.jade:5 +#: src/jade/tabs/account/private.jade:3 msgid "Identity Information" msgstr "Identiteitsinformatie" -#: src/jade/tabs/account/private.jade:8 src/jade/tabs/account/private.jade:19 +#: src/jade/tabs/account/private.jade:8 src/jade/tabs/account/private.jade:17 msgid "Completed" -msgstr "Afgerond" +msgstr "Voltooid" -#: src/jade/tabs/account/private.jade:11 src/jade/tabs/account/private.jade:22 +#: src/jade/tabs/account/private.jade:9 src/jade/tabs/account/private.jade:18 msgid "Incomplete" msgstr "Incompleet" -#: src/jade/tabs/account/private.jade:13 src/jade/tabs/account/private.jade:24 +#: src/jade/tabs/account/private.jade:10 src/jade/tabs/account/private.jade:19 msgid "Complete your profile" msgstr "Voltooi uw profiel" -#: src/jade/tabs/account/private.jade:16 +#: src/jade/tabs/account/private.jade:12 msgid "Identity Questions" msgstr "Vragen over uw Identiteit" #: src/jade/tabs/account/public.jade:1 msgid "Changing your Ripple name..." -msgstr "Uw Ripple naam aan het veranderen..." +msgstr "Uw Ripple-naam wordt veranderd..." #: src/jade/tabs/account/public.jade:2 msgid "Your Ripple name has been changed successfully." -msgstr "Uw Ripple naam is succesvol gewijzigd." +msgstr "Uw Ripple-naam is succesvol gewijzigd." #: src/jade/tabs/account/public.jade:3 msgid "Account settings" msgstr "Accountinstellingen" -#: src/jade/tabs/account/public.jade:5 src/jade/tabs/login/form.jade:2 +#: src/jade/tabs/account/public.jade:5 src/jade/tabs/fund/menu.jade:2 +#: src/jade/tabs/login/form.jade:3 msgid "Ripple name" -msgstr "Ripple naam" - -#: src/jade/tabs/account/public.jade:9 src/jade/tabs/advanced.jade:17 -#: src/jade/tabs/advanced.jade:34 src/jade/tabs/advanced.jade:53 -#: src/jade/tabs/advanced.jade:106 src/jade/tabs/contacts.jade:69 -#: src/jade/tabs/security.jade:107 src/jade/tabs/security.jade:165 -#: src/jade/tabs/trust.jade:219 src/jade/tabs/trust.jade:248 +msgstr "Ripple-naam" + +#: src/jade/tabs/account/public.jade:9 src/jade/tabs/advanced.jade:27 +#: src/jade/tabs/advanced.jade:44 src/jade/tabs/advanced.jade:63 +#: src/jade/tabs/advanced.jade:86 src/jade/tabs/advanced.jade:134 +#: src/jade/tabs/contacts.jade:61 src/jade/tabs/security.jade:120 +#: src/jade/tabs/security.jade:180 src/jade/tabs/trust.jade:191 +#: src/jade/tabs/trust.jade:193 msgid "edit" msgstr "bewerken" #: src/jade/tabs/account/public.jade:12 msgid "New Ripple name" -msgstr "Nieuwe Ripple naam" +msgstr "Nieuwe Ripple-naam" -#: src/jade/tabs/account/public.jade:17 src/jade/tabs/balance.jade:60 +#: src/jade/tabs/account/public.jade:17 src/jade/tabs/register.jade:35 +#: src/jade/tabs/widgets/balances.jade:24 msgid "Available" msgstr "Verkrijgbaar" -#: src/jade/tabs/account/public.jade:20 src/jade/tabs/register.jade:30 +#: src/jade/tabs/account/public.jade:20 src/jade/tabs/register.jade:39 msgid "Already taken!" msgstr "Al in gebruik!" -#: src/jade/tabs/account/public.jade:21 src/jade/tabs/register.jade:31 +#: src/jade/tabs/account/public.jade:21 msgid "Reserved for {{usernameReservedFor}}{{1}}{{2}}" msgstr "Gereserveerd voor {{usernameReservedFor}}{{1}}{{2}}" -#: src/jade/tabs/account/public.jade:24 src/jade/tabs/register.jade:34 +#: src/jade/tabs/account/public.jade:24 src/jade/tabs/register.jade:45 msgid "Must be at least 2 characters" msgstr "Moet minstens 2 karakters bevatten" -#: src/jade/tabs/account/public.jade:25 src/jade/tabs/register.jade:35 +#: src/jade/tabs/account/public.jade:25 src/jade/tabs/register.jade:47 msgid "Must be at most 20 characters" -msgstr "Moet maximaal 20 karakters bevatten" +msgstr "Mag maximaal 20 karakters bevatten" #: src/jade/tabs/account/public.jade:26 msgid "Only a-z, 0-9 and hyphen (-)" msgstr "Enkel a-z, 0-9 en verbindingsstreepjes (-)" -#: src/jade/tabs/account/public.jade:27 src/jade/tabs/register.jade:37 +#: src/jade/tabs/account/public.jade:27 src/jade/tabs/register.jade:51 msgid "Cannot start with hyphen (-)" msgstr "Kan niet beginnen met een verbindingsstreepje (-)" -#: src/jade/tabs/account/public.jade:28 src/jade/tabs/register.jade:38 +#: src/jade/tabs/account/public.jade:28 src/jade/tabs/register.jade:53 msgid "Cannot end with hyphen (-)" msgstr "Kan niet eindigen met een verbindingsstreepje (-)" #: src/jade/tabs/account/public.jade:29 msgid "Cannot bundle hyphens (--)" -msgstr "Kan niet twee verbindingsstreepjes achter elkaar bevatten (--)" +msgstr "Kan geen twee verbindingsstreepjes achter elkaar bevatten (--)" -#: src/jade/tabs/account/public.jade:30 src/jade/tabs/register.jade:40 +#: src/jade/tabs/account/public.jade:30 src/jade/tabs/register.jade:56 msgid "Checking..." -msgstr "Nakijken..." +msgstr "Bezig met controleren..." -#: src/jade/tabs/account/public.jade:32 src/jade/tabs/security.jade:113 +#: src/jade/tabs/account/public.jade:32 src/jade/tabs/security.jade:126 msgid "Current password" -msgstr "Huidig wachtwoord" +msgstr "Huidige wachtwoord" -#: src/jade/tabs/account/public.jade:35 src/jade/tabs/security.jade:15 -#: src/jade/tabs/security.jade:20 +#: src/jade/tabs/account/public.jade:35 src/jade/tabs/security.jade:18 +#: src/jade/tabs/security.jade:23 msgid "Entered password is wrong." -msgstr "Het opgegeven wachtwoord is verkeerd" +msgstr "Het opgegeven wachtwoord is incorrect." #: src/jade/tabs/account/public.jade:37 msgid "Your Ripple name has been changed. Please login again." -msgstr "Uw Ripple Naam is met succes gewijzigd. Gelieve terug in te loggen" +msgstr "Uw Ripple-naam is succesvol gewijzigd. Gelieve nogmaals in te loggen." #: src/jade/tabs/account/public.jade:39 msgid "Couldn't change your Ripple name, please try again later." -msgstr "Uw Ripple naam kon niet worden gewijzigd, probeer het later opnieuw." - -#: src/jade/tabs/account/public.jade:47 src/jade/tabs/advanced.jade:26 -#: src/jade/tabs/advanced.jade:43 src/jade/tabs/advanced.jade:67 -#: src/jade/tabs/advanced.jade:96 src/jade/tabs/btc.jade:62 -#: src/jade/tabs/contacts.jade:58 src/jade/tabs/contacts.jade:101 -#: src/jade/tabs/exchange.jade:94 src/jade/tabs/exchange.jade:107 -#: src/jade/tabs/kyc.jade:106 src/jade/tabs/kyc.jade:118 -#: src/jade/tabs/kyc.jade:140 src/jade/tabs/kyc.jade:141 -#: src/jade/tabs/kyc.jade:167 src/jade/tabs/login/form.jade:25 -#: src/jade/tabs/security.jade:71 src/jade/tabs/security.jade:101 -#: src/jade/tabs/security.jade:136 src/jade/tabs/send.jade:205 -#: src/jade/tabs/send.jade:217 src/jade/tabs/send.jade:238 -#: src/jade/tabs/send.jade:268 src/jade/tabs/trade.jade:32 -#: src/jade/tabs/trade.jade:43 src/jade/tabs/trust.jade:177 -#: src/jade/tabs/trust.jade:179 src/jade/tabs/trust.jade:263 -#: src/jade/tabs/trust.jade:296 +msgstr "Uw Ripple-naam kon niet worden gewijzigd, probeert u het later nog eens." + +#: src/jade/tabs/account/public.jade:47 src/jade/tabs/advanced.jade:36 +#: src/jade/tabs/advanced.jade:53 src/jade/tabs/advanced.jade:77 +#: src/jade/tabs/advanced.jade:94 src/jade/tabs/advanced.jade:124 +#: src/jade/tabs/btc.jade:74 src/jade/tabs/contacts.jade:50 +#: src/jade/tabs/contacts.jade:93 src/jade/tabs/exchange.jade:113 +#: src/jade/tabs/exchange.jade:126 src/jade/tabs/kyc.jade:116 +#: src/jade/tabs/kyc.jade:131 src/jade/tabs/kyc.jade:156 +#: src/jade/tabs/kyc.jade:157 src/jade/tabs/kyc.jade:186 +#: src/jade/tabs/login/form.jade:26 src/jade/tabs/security.jade:79 +#: src/jade/tabs/security.jade:112 src/jade/tabs/security.jade:149 +#: src/jade/tabs/send.jade:215 src/jade/tabs/send.jade:227 +#: src/jade/tabs/send.jade:252 src/jade/tabs/send.jade:286 +#: src/jade/tabs/trade.jade:55 src/jade/tabs/trust.jade:141 +#: src/jade/tabs/trust.jade:143 src/jade/tabs/trust.jade:213 +#: src/jade/tabs/trust.jade:251 msgid "cancel" msgstr "annuleren" -#: src/jade/tabs/account/public.jade:49 src/jade/tabs/contacts.jade:7 -#: src/jade/tabs/contacts.jade:34 src/jade/tabs/desktop/register.jade:88 +#: src/jade/tabs/account/public.jade:49 msgid "Ripple address" -msgstr "Ripple adres" +msgstr "Ripple-adres" + +#: src/jade/tabs/advanced.jade:8 +msgid "Your blob vault has been changed successfully." +msgstr "Uw blob vault is succesvol gewijzigd." + +#: src/jade/tabs/advanced.jade:9 +msgid "Your bitcoin bridge has been changed successfully." +msgstr "Uw bitcoin-brug is succesvol gewijzigd." + +#: src/jade/tabs/advanced.jade:10 +msgid "Trustline advanced settings has been changed successfully." +msgstr "De geavanceerde instellingen voor kredietlijnen zijn succesvol gewijzigd." #: src/jade/tabs/advanced.jade:11 +msgid "Maximum network fee has been changed successfully." +msgstr "Maximale netwerkheffing is succesvol gewijzigd." + +#: src/jade/tabs/advanced.jade:12 +msgid "A new server has been successfully added." +msgstr "Nieuwe server is succesvol toegevoegd." + +#: src/jade/tabs/advanced.jade:13 +msgid "A server has been successfully removed." +msgstr "Server is succesvol verwijderd." + +#: src/jade/tabs/advanced.jade:14 +msgid "A server has been changed successfully." +msgstr "Server is succesvol gewijzigd." + +#: src/jade/tabs/advanced.jade:21 msgid "Blob vault" msgstr "Blob vault" -#: src/jade/tabs/advanced.jade:22 src/jade/tabs/advanced.jade:39 -#: src/jade/tabs/advanced.jade:63 src/jade/tabs/advanced.jade:92 -#: src/jade/tabs/contacts.jade:96 src/jade/tabs/fund.jade:79 -#: src/jade/tabs/security.jade:175 src/jade/tabs/send.jade:237 -#: src/jade/tabs/send.jade:266 src/jade/tabs/trust.jade:156 -#: src/jade/tabs/trust.jade:282 +#: src/jade/tabs/advanced.jade:32 src/jade/tabs/advanced.jade:49 +#: src/jade/tabs/advanced.jade:73 src/jade/tabs/advanced.jade:92 +#: src/jade/tabs/advanced.jade:120 src/jade/tabs/contacts.jade:88 +#: src/jade/tabs/fund.jade:65 src/jade/tabs/security.jade:190 +#: src/jade/tabs/send.jade:251 src/jade/tabs/send.jade:284 +#: src/jade/tabs/trust.jade:119 src/jade/tabs/trust.jade:232 msgid "Save" msgstr "Opslaan" -#: src/jade/tabs/advanced.jade:24 src/jade/tabs/advanced.jade:41 -#: src/jade/tabs/advanced.jade:65 src/jade/tabs/advanced.jade:94 -#: src/jade/tabs/contacts.jade:99 +#: src/jade/tabs/advanced.jade:34 src/jade/tabs/advanced.jade:51 +#: src/jade/tabs/advanced.jade:75 src/jade/tabs/advanced.jade:122 +#: src/jade/tabs/contacts.jade:91 src/jade/tabs/security.jade:198 msgid "Delete" msgstr "Verwijderen" -#: src/jade/tabs/advanced.jade:28 +#: src/jade/tabs/advanced.jade:38 msgid "Bitcoin bridge" msgstr "Bitcoin brug" -#: src/jade/tabs/advanced.jade:45 +#: src/jade/tabs/advanced.jade:55 msgid "Trust line" msgstr "Kredietlijn" -#: src/jade/tabs/advanced.jade:50 src/jade/tabs/advanced.jade:61 -#: src/jade/tabs/desktop/register.jade:85 src/jade/tabs/security.jade:148 +#: src/jade/tabs/advanced.jade:60 src/jade/tabs/advanced.jade:71 +#: src/jade/tabs/security.jade:162 msgid "Show" msgstr "Toon" -#: src/jade/tabs/advanced.jade:51 src/jade/tabs/desktop/register.jade:86 -#: src/jade/tabs/security.jade:149 +#: src/jade/tabs/advanced.jade:61 src/jade/tabs/security.jade:163 msgid "Hide" msgstr "Verberg" -#: src/jade/tabs/advanced.jade:68 +#: src/jade/tabs/advanced.jade:78 +msgid "Network settings" +msgstr "Netwerkinstellingen" + +#: src/jade/tabs/advanced.jade:80 +msgid "Maximum network fee" +msgstr "Maximale netwerkheffing" + +#: src/jade/tabs/advanced.jade:96 msgid "Server settings" msgstr "Serverinstellingen" -#: src/jade/tabs/advanced.jade:73 +#: src/jade/tabs/advanced.jade:101 msgid "WebSocket host name" msgstr "WebSocket host naam" -#: src/jade/tabs/advanced.jade:75 +#: src/jade/tabs/advanced.jade:103 msgid "Port number" msgstr "Poortnummer" -#: src/jade/tabs/advanced.jade:81 +#: src/jade/tabs/advanced.jade:109 msgid "Socket ip or hostname is invalid." msgstr "Ongeldige ip socket of hostname." -#: src/jade/tabs/advanced.jade:83 +#: src/jade/tabs/advanced.jade:111 msgid "Port number is invalid." -msgstr "Ongeldige poort." +msgstr "Poortnummer is ongeldig." -#: src/jade/tabs/advanced.jade:90 src/jade/tabs/advanced.jade:103 +#: src/jade/tabs/advanced.jade:118 src/jade/tabs/advanced.jade:131 msgid "Secure" msgstr "Veilig" -#: src/jade/tabs/advanced.jade:104 +#: src/jade/tabs/advanced.jade:132 msgid "Not Secure" msgstr "Onveilig" -#: src/jade/tabs/advanced.jade:110 +#: src/jade/tabs/advanced.jade:138 msgid "Add new server" msgstr "Voeg nieuwe server toe" -#: src/jade/tabs/apps.jade:5 src/jade/tabs/balance.jade:5 -#: src/jade/tabs/btc.jade:6 src/jade/tabs/exchange.jade:6 -#: src/jade/tabs/fund.jade:6 src/jade/tabs/history.jade:6 -#: src/jade/tabs/kyc.jade:6 src/jade/tabs/send.jade:6 src/jade/tabs/su.jade:5 -#: src/jade/tabs/trade.jade:7 src/jade/tabs/trust.jade:6 -#: src/jade/tabs/usd.jade:6 src/jade/tabs/withdraw.jade:6 -#: src/jade/tabs/xrp.jade:6 -msgid "You have to be online to see this screen" -msgstr "U moet online zijn om dit scherm te kunnen zien" +#: src/jade/tabs/apps.jade:27 +msgid "App Ripple Address" +msgstr "Ripple-adres van App" #: src/jade/tabs/apps.jade:29 msgid "Please enter a ripple address." -msgstr "Voer een ripple adres in." +msgstr "Voer een Ripple-adres in." #: src/jade/tabs/apps.jade:31 msgid "Please enter a valid ripple address." -msgstr "Voer een geldig ripple adres in." - -#: src/jade/tabs/balance.jade:21 -msgid "Total Balance{{1}}" -msgstr "Totaal Saldo{{1}}" - -#: src/jade/tabs/balance.jade:22 -msgid "Estimated from latest trade price" -msgstr "Geschat op basis van de laatst verhandelde koers" - -#: src/jade/tabs/balance.jade:29 -msgid "(excluding negative balances)" -msgstr "(exclusief negatieve saldo's)" - -#: src/jade/tabs/balance.jade:67 -msgid "Reserve" -msgstr "Reserve" - -#: src/jade/tabs/balance.jade:85 -msgid "Unverified" -msgstr "Niet geverifieerd" - -#: src/jade/tabs/balance.jade:92 -msgid "Enter bitcoin address." -msgstr "Voer bitcoin adres in." - -#: src/jade/tabs/balance.jade:95 -msgid "Enter amount to withdraw." -msgstr "Voer op te nemen hoeveelheid in." - -#: src/jade/tabs/balance.jade:100 src/jade/tabs/balance.jade:102 -msgid "Enter a valid bitcoin address" -msgstr "Voer een geldig bitcoin adres in" - -#: src/jade/tabs/balance.jade:106 -msgid "Enter a valid amount" -msgstr "Voer een geldige hoeveelheid in" - -#: src/jade/tabs/balance.jade:113 -msgid "You are sending {{1}} BTC to:" -msgstr "U verstuurt {{1}} BTC naar:" - -#: src/jade/tabs/balance.jade:119 src/jade/tabs/balance.jade:134 -#: src/jade/tabs/register.jade:105 src/jade/tabs/register.jade:111 -msgid "Back" -msgstr "Terug" - -#: src/jade/tabs/balance.jade:122 src/jade/tabs/btc.jade:61 -#: src/jade/tabs/exchange.jade:92 src/jade/tabs/send.jade:203 -#: src/jade/tabs/trade.jade:57 src/jade/tabs/trade.jade:67 -#: src/jade/tabs/trade.jade:241 src/jade/tabs/trust.jade:176 -msgid "Confirm" -msgstr "Bevestigen" - -#: src/jade/tabs/balance.jade:127 -msgid "Reconnecting to Ripple network" -msgstr "Opnieuw aan het verbinden met het Ripple netwerk" - -#: src/jade/tabs/balance.jade:128 -msgid "Transaction Successful" -msgstr "Transactie Geslaagd" - -#: src/jade/tabs/balance.jade:129 -msgid "Warning" -msgstr "Waarschuwing" - -#: src/jade/tabs/balance.jade:130 -msgid "Transaction Failed" -msgstr "Transactie Mislukt" - -#: src/jade/tabs/balance.jade:131 -msgid "Message" -msgstr "Bericht" +msgstr "Voer een geldig Ripple-adres in." #: src/jade/tabs/banner/announcement.jade:2 msgid "Help our team improve Ripple Trade! {{1:Take a quick user survey.}}" @@ -699,376 +1033,529 @@ msgstr "Help ons team Ripple Trade te verbeteren! {{1:Neem deel aan een kort #: src/jade/tabs/banner/unfunded.jade:2 msgid "" -"Welcome to Ripple Trade! To activate your account, you'll need at least 20 " -"XRP." -msgstr "Welkom bij Ripple Trade! Om uw account te activeren heeft u ten minste 20 XRP nodig." +"Welcome to Ripple Trade! Your account needs to be activated. You can " +"activate it in 2 ways:" +msgstr "Welkom bij Ripple Trade! Uw account dient te worden geactiveerd. Dit kan op 2 manieren:" #: src/jade/tabs/banner/unfunded.jade:4 msgid "" "Have another user send XRP to your Ripple name " -"(~{{userCredentials.username}})" -msgstr "Laat een andere gebruiker XRP sturen naar uw Ripple naam (~{{userCredentials.username}})" +"(~{{userCredentials.username}}). {{1}}" +msgstr "Laat een andere gebruiker XRP sturen naar uw Ripple-naam (~{{userCredentials.username}}). {{1}}" -#: src/jade/tabs/banner/unfunded.jade:5 -msgid "" -"Use the {{1}}. A small amount of your first deposit will be used to " -"activate your account." -msgstr "Gebruik de {{1}}. Een klein bedrag van uw eerste storting zal worden gebruikt om uw account te activeren." +#: src/jade/tabs/brl.jade:24 src/jade/tabs/eur.jade:24 +#: src/jade/tabs/gold.jade:24 src/jade/tabs/jpy.jade:24 +#: src/jade/tabs/mxn.jade:24 src/jade/tabs/trust.jade:42 +#: src/jade/tabs/usd.jade:24 +msgid "There was an error while saving your changes." +msgstr "Een fout is opgetreden bij het opslaan van de wijzigingen." -#: src/jade/tabs/btc.jade:18 -msgid "Bitcoin Deposit" -msgstr "Bitcoin storting" +#: src/jade/tabs/brl.jade:28 src/jade/tabs/eur.jade:27 +#: src/jade/tabs/gold.jade:27 src/jade/tabs/jpy.jade:28 +#: src/jade/tabs/mxn.jade:28 src/jade/tabs/trust.jade:45 +#: src/jade/tabs/usd.jade:27 +msgid "You must have at least {{1}} to add a new trust line. {{2}}" +msgstr "U dient ten minste {{1}} hebben om een nieuwe kredietlijn toe te voegen. {{2}}" -#: src/jade/tabs/btc.jade:26 -msgid "" -"A small amount (~.001 BTC) of your first transfer will be converted to XRP " -"to activate your wallet. {{1:Why?}}" -msgstr "Een kleine hoeveelheid (~ 0,001 BTC) van uw eerste overdracht zal worden omgezet naar XRP om uw portefeuille te activeren. {{1: Waarom?}}" +#: src/jade/tabs/brl.jade:38 +msgid "Brazilian Real Deposit" +msgstr "Braziliaanse Real-storting" -#: src/jade/tabs/btc.jade:30 -msgid "Your current deposit limit is:" -msgstr "Uw huidige stortingslimiet is:" +#: src/jade/tabs/brl.jade:41 src/jade/tabs/btc.jade:35 +#: src/jade/tabs/eur.jade:38 src/jade/tabs/gold.jade:40 +#: src/jade/tabs/jpy.jade:41 src/jade/tabs/mxn.jade:41 +#: src/jade/tabs/trust.jade:167 src/jade/tabs/usd.jade:38 +msgid "Gateway" +msgstr "Gateway" -#: src/jade/tabs/btc.jade:32 -msgid "Remove Limit" -msgstr "Verwijder Limiet" +#: src/jade/tabs/brl.jade:42 src/jade/tabs/eur.jade:48 +#: src/jade/tabs/mxn.jade:81 src/jade/tabs/mxn.jade:93 +#: src/jade/tabs/mxn.jade:103 src/jade/tabs/security.jade:49 +msgid "{{1}}{{2}}" +msgstr "{{1}}{{2}}" + +#: src/jade/tabs/brl.jade:43 +msgid "Ripple (~rippex)" +msgstr "Ripple (~rippex)" + +#: src/jade/tabs/brl.jade:46 src/jade/tabs/btc.jade:39 +#: src/jade/tabs/eur.jade:44 src/jade/tabs/gold.jade:44 +#: src/jade/tabs/jpy.jade:45 src/jade/tabs/mxn.jade:46 +#: src/jade/tabs/usd.jade:44 +msgid "Availability" +msgstr "Beschikbaarheid" + +#: src/jade/tabs/brl.jade:47 +msgid "Brazil" +msgstr "Brazilië" + +#: src/jade/tabs/brl.jade:49 src/jade/tabs/btc.jade:42 +#: src/jade/tabs/eur.jade:47 src/jade/tabs/gold.jade:47 +#: src/jade/tabs/jpy.jade:48 src/jade/tabs/mxn.jade:49 +#: src/jade/tabs/usd.jade:47 +msgid "Fees" +msgstr "Heffingen" + +#: src/jade/tabs/brl.jade:50 src/jade/tabs/jpy.jade:49 +#: src/jade/tabs/kyc.jade:111 src/jade/tabs/kyc.jade:126 +#: src/jade/tabs/kyc.jade:151 +msgid "{{1}}{{2}}{{3}}" +msgstr "{{1}}{{2}}{{3}}" + +#: src/jade/tabs/brl.jade:51 +msgid "Deposit: 1.50 BRL + 0.5%" +msgstr "Storting: 1.50 BRL + 0.5%" + +#: src/jade/tabs/brl.jade:52 +msgid "Transfer: 0%" +msgstr "Versturingen: 0%" + +#: src/jade/tabs/brl.jade:56 src/jade/tabs/btc.jade:45 +#: src/jade/tabs/eur.jade:53 src/jade/tabs/gold.jade:50 +#: src/jade/tabs/jpy.jade:54 src/jade/tabs/mxn.jade:52 +#: src/jade/tabs/usd.jade:50 +msgid "Rating" +msgstr "Beoordeling" + +#: src/jade/tabs/brl.jade:62 +msgid "" +"Ripple Trade has partnered with Rippex to provide easy access to BRL. By " +"continuing, you agree with Rippex's {{1}}Following this action will enable " +"Rippex to hold BRL on your behalf." +msgstr "Ripple Trade werkt samen met Rippex om toegaing tot BRL te vereenvoudigen. Bij doorklikken gaat u akkoord met de {{1}} van Rippex. Dit stelt Rippex in staat om BRL namens u te bewaren." + +#: src/jade/tabs/brl.jade:69 +msgid "Add Rippex" +msgstr "Rippex toevoegen" + +#: src/jade/tabs/brl.jade:70 +msgid "Adding..." +msgstr "Bezig met toevoegen..." + +#: src/jade/tabs/brl.jade:71 src/jade/tabs/eur.jade:65 +#: src/jade/tabs/jpy.jade:64 src/jade/tabs/usd.jade:62 +msgid "Hide instructions" +msgstr "Instructies verbergen" + +#: src/jade/tabs/brl.jade:72 src/jade/tabs/eur.jade:66 +#: src/jade/tabs/jpy.jade:65 src/jade/tabs/usd.jade:63 +msgid "Show instructions" +msgstr "Instructies tonen" + +#: src/jade/tabs/brl.jade:75 src/jade/tabs/btc.jade:83 +msgid "{{1}}Not connected" +msgstr "{{1}}Niet verbonden" + +#: src/jade/tabs/brl.jade:78 src/jade/tabs/btc.jade:86 +msgid "{{1}}Connected" +msgstr "{{1}}Verbonden" + +#: src/jade/tabs/brl.jade:81 src/jade/tabs/eur.jade:71 +#: src/jade/tabs/gold.jade:73 src/jade/tabs/jpy.jade:74 +#: src/jade/tabs/mxn.jade:76 src/jade/tabs/usd.jade:68 +msgid "Your account has to be activated before you can add a gateway account." +msgstr "Uw account dient te worden geactiveerd voor u een gateway-account kunt toevoegen." + +#: src/jade/tabs/brl.jade:84 src/jade/tabs/eur.jade:75 +#: src/jade/tabs/gold.jade:76 src/jade/tabs/jpy.jade:77 +#: src/jade/tabs/mxn.jade:79 src/jade/tabs/usd.jade:72 +msgid "×" +msgstr "×" + +#: src/jade/tabs/brl.jade:85 +msgid "NEW CUSTOMERS- SIGN UP AT RIPPEX" +msgstr "NIEUWE KLANTEN - AANMELDEN BIJ RIPPEX" + +#: src/jade/tabs/brl.jade:86 +msgid "" +"{{1}} at Rippex.net to initiate deposits and withdrawals. You will " +"need:{{2}}" +msgstr "{{1}} bij Rippex.net om stortingen en opnames uit te voeren. U heeft hiervoor nodig:{{2}}" + +#: src/jade/tabs/brl.jade:90 +msgid "A {{1}}" +msgstr "Een {{1}}" + +#: src/jade/tabs/brl.jade:92 +msgid "A bank account in Brazil." +msgstr "Een bankrekening in Brazilië" + +#: src/jade/tabs/brl.jade:96 +msgid "EXISTING RIPPEX CUSTOMERS" +msgstr "BESTAANDE RIPPEX-KLANTEN" + +#: src/jade/tabs/brl.jade:97 +msgid "If you have a Rippex account, {{1}}" +msgstr "Als u een Rippex-account heeft, {{1}}" + +#: src/jade/tabs/brl.jade:100 +msgid "DEPOSIT INSTRUCTIONS" +msgstr "INSTRUCTIES VOOR STORTEN" + +#: src/jade/tabs/brl.jade:101 +msgid "Rippex accepts deposits from all Brazilian banks. Instructions {{1}}" +msgstr "Rippex accepteert stortingen van alle Braziliaanse banken. Instructies {{1}}" + +#: src/jade/tabs/btc.jade:19 +msgid "Success! You can deposit BTC via your generated BTC receiving address." +msgstr "Geslaagd! U kunt BTC storten via uw gegenereerde BTC-ontvangstadres." + +#: src/jade/tabs/btc.jade:21 +msgid "There was an error with your request. {{1}}" +msgstr "Er is een fout opgetreden bij uw verzoek. {{1}}" + +#: src/jade/tabs/btc.jade:30 +msgid "Bitcoin Deposit" +msgstr "Bitcoin-storting" #: src/jade/tabs/btc.jade:36 -msgid "Waiting for response from SnapSwap service..." -msgstr "Wachtende op een reactie van de SnapSwap service..." +msgid "btc2ripple (~snapswap) {{1}}" +msgstr "btc2ripple (~snapswap) {{1}}" + +#: src/jade/tabs/btc.jade:40 src/jade/tabs/gold.jade:45 +#: src/jade/tabs/jpy.jade:46 +msgid "All countries" +msgstr "Alle landen" -#: src/jade/tabs/btc.jade:38 +#: src/jade/tabs/btc.jade:43 src/jade/tabs/mxn.jade:50 +msgid "0%" +msgstr "0%" + +#: src/jade/tabs/btc.jade:50 msgid "" -"To deposit, generate a bitcoin receiving address using the {{1}} service " -"powered by SnapSwap." -msgstr "Alvorens te storten, moet je een bitcoinadres aanmaken met behulp van {{1}} aangedreven door SnapSwap." +"Ripple Trade has partnered with btc2ripple to make depositing BTC easier. By" +" proceeding, you agree to the btc2ripple {{1}} Following this action will " +"allow btc2ripple to hold BTC on your behalf." +msgstr "Ripple Trade werkt samen met btc2ripple om BTC-stortingen makkelijker te maken. Bij doorklikken gaat u akkoord met de {{1}} van btc2ripple. Dit stelt btc2ripple in staat om BTC namens u te bewaren." -#: src/jade/tabs/btc.jade:45 -msgid "Generate bitcoin address" -msgstr "Genereer bitcoin adres" +#: src/jade/tabs/btc.jade:56 +msgid "Add btc2ripple" +msgstr "btc2ripple toevoegen" -#: src/jade/tabs/btc.jade:49 src/jade/tabs/security.jade:56 -#: src/jade/tabs/trust.jade:160 +#: src/jade/tabs/btc.jade:60 src/jade/tabs/security.jade:64 +#: src/jade/tabs/trust.jade:123 msgid "Connect" msgstr "Verbinden" -#: src/jade/tabs/btc.jade:51 +#: src/jade/tabs/btc.jade:62 msgid "btc2ripple would like to:" msgstr "btc2ripple zou graag:" -#: src/jade/tabs/btc.jade:53 -msgid "- Receive your email address{{1}}" -msgstr "- Uw e-mail adres ontvangen{{1}}" +#: src/jade/tabs/btc.jade:64 +msgid "- Receive your email address {{1}}" +msgstr "- Ontvang uw e-mailadres {{1}}" -#: src/jade/tabs/btc.jade:54 +#: src/jade/tabs/btc.jade:65 msgid "({{userBlob.data.email}})" msgstr "({{userBlob.data.email}})" -#: src/jade/tabs/btc.jade:55 +#: src/jade/tabs/btc.jade:66 msgid "- Hold deposited BTC on your behalf" -msgstr "- Gestortte BTC voor u willen bewaren" +msgstr "- Gestorte BTC voor u willen bewaren" -#: src/jade/tabs/btc.jade:56 +#: src/jade/tabs/btc.jade:67 msgid "By proceeding, you agree to the btc2ripple {{1}}" msgstr "Door verder te gaan, accepteert u de btc2ripple {{1}}" -#: src/jade/tabs/btc.jade:63 +#: src/jade/tabs/btc.jade:75 msgid "" "SnapSwap's btc2ripple service is currently unavailable. Please check back " "later." msgstr "SnapSwap's btc2ripple dienst is op dit moment niet beschikbaar. Probeert u het later nog eens." -#: src/jade/tabs/contacts.jade:6 src/jade/tabs/contacts.jade:26 -msgid "Ripple name or address" -msgstr "Ripple naam of adres" +#: src/jade/tabs/btc.jade:94 +msgid "Personal Deposit address" +msgstr "Persoonlijke stortingsadres" -#: src/jade/tabs/contacts.jade:9 src/jade/tabs/contacts.jade:13 -#: src/jade/tabs/contacts.jade:56 -msgid "Add contact" -msgstr "Voeg contact toe" +#: src/jade/tabs/btc.jade:96 +msgid "Your account is fully verified." +msgstr "Uw account is volledig geverifieerd." + +#: src/jade/tabs/btc.jade:104 +msgid "Withdrawal instructions" +msgstr "Instructies voor opname" -#: src/jade/tabs/contacts.jade:18 +#: src/jade/tabs/btc.jade:105 +msgid "" +"To withdraw to a BTC address, go to the Send tab and enter the BTC address. " +"Using the btc2ripple service, you will be able tosend to that BTC address." +msgstr "Om op te nemen naar een BTC-adres gaat u naar het tabblad Versturen en voert u uw BTC-adres in. Het gebruik van btc2ripple stelt u in staat om te versturen naar het opgegeven BTC-adres." + +#: src/jade/tabs/btc.jade:110 +msgid "Waiting for response from SnapSwap service..." +msgstr "Wachten op een reactie van de SnapSwap service..." + +#: src/jade/tabs/btc.jade:112 +msgid "" +"To deposit, generate a bitcoin receiving address using the {{1}} service " +"powered by SnapSwap." +msgstr "Om te kunnen storten dient u een bitcoinadres te genereren door gebruik te maken van de {{1}} service ondersteund door SnapSwap." + +#: src/jade/tabs/contacts.jade:8 +msgid "A new contact has been successfully added." +msgstr "Nieuw contact is succesvol toegevoegd." + +#: src/jade/tabs/contacts.jade:9 +msgid "Your contact has been successfully updated." +msgstr "Uw contact is succesvol geüpdatet." + +#: src/jade/tabs/contacts.jade:10 +msgid "A contact has been successfully removed." +msgstr "Contact is succesvol verwijderd." + +#: src/jade/tabs/contacts.jade:12 src/jade/tabs/contacts.jade:24 msgid "Contact" msgstr "Contact" -#: src/jade/tabs/contacts.jade:21 +#: src/jade/tabs/contacts.jade:13 src/jade/tabs/contacts.jade:32 +msgid "Ripple name or address" +msgstr "Ripple-naam of -adres" + +#: src/jade/tabs/contacts.jade:15 src/jade/tabs/contacts.jade:19 +#: src/jade/tabs/contacts.jade:48 +msgid "Add contact" +msgstr "Voeg contact toe" + +#: src/jade/tabs/contacts.jade:27 src/jade/tabs/send.jade:245 +#: src/jade/tabs/send.jade:277 msgid "Please enter a contact." msgstr "Voer een contact in." -#: src/jade/tabs/contacts.jade:22 +#: src/jade/tabs/contacts.jade:28 msgid "This contact already exists." msgstr "Dit contact bestaat al." -#: src/jade/tabs/contacts.jade:30 +#: src/jade/tabs/contacts.jade:36 msgid "Please enter a Ripple name." -msgstr "Voer een Ripple naam in." +msgstr "Voer een Ripple-naam in." -#: src/jade/tabs/contacts.jade:31 src/jade/tabs/contacts.jade:47 +#: src/jade/tabs/contacts.jade:37 src/jade/tabs/contacts.jade:45 msgid "" "You already have a contact with the same Ripple name and/or the same " "Destination tag." -msgstr "U heeft al een contact met dezelfde Ripple naam en/of hetzelfde bestemmingskenmerk." - -#: src/jade/tabs/contacts.jade:32 -msgid "Not a valid Ripple name or address." -msgstr "Ripple naam of adres is ongeldig." +msgstr "U heeft al een contact met dezelfde Ripple-naam en/of hetzelfde bestemmingskenmerk." #: src/jade/tabs/contacts.jade:38 -msgid "Please enter a Ripple address." -msgstr "Voer een Ripple adres in." - -#: src/jade/tabs/contacts.jade:39 src/jade/tabs/contacts.jade:53 -msgid "" -"You already have a contact with the same Ripple address and/or the same " -"Destination tag." -msgstr "U heeft al een contact met hetzelfde Ripple adres en/of hetzelfde Bestemmingskenmerk." - -#: src/jade/tabs/contacts.jade:40 -msgid "Not a valid Ripple address." -msgstr "Ripple adres is ongeldig." +msgid "Not a valid Ripple name or address." +msgstr "Ripple-naam of -adres is ongeldig." -#: src/jade/tabs/contacts.jade:43 src/jade/tabs/contacts.jade:49 -#: src/jade/tabs/contacts.jade:89 src/jade/tabs/send.jade:49 -#: src/jade/tabs/tx.jade:54 +#: src/jade/tabs/contacts.jade:41 src/jade/tabs/contacts.jade:81 +#: src/jade/tabs/send.jade:42 src/jade/tabs/tx.jade:56 msgid "Destination tag" msgstr "Bestemmingskenmerk" -#: src/jade/tabs/contacts.jade:46 src/jade/tabs/contacts.jade:52 -#: src/jade/tabs/send.jade:53 +#: src/jade/tabs/contacts.jade:42 +msgid "Leave blank if not applicable" +msgstr "Leeglaten indien niet van toepassing" + +#: src/jade/tabs/contacts.jade:44 src/jade/tabs/send.jade:46 msgid "Invalid destination tag" msgstr "Ongeldig bestemmingskenmerk" -#: src/jade/tabs/contacts.jade:80 src/jade/tabs/send.jade:232 -#: src/jade/tabs/send.jade:260 +#: src/jade/tabs/contacts.jade:72 msgid "You already have a contact with the same name." msgstr "U heeft al een contact met deze naam." -#: src/jade/tabs/contacts.jade:86 +#: src/jade/tabs/contacts.jade:78 msgid "You already have this address." msgstr "U heeft dit adres al." -#: src/jade/tabs/contacts.jade:87 +#: src/jade/tabs/contacts.jade:79 src/jade/tabs/debug.jade:14 msgid "Not a valid address." msgstr "Ongeldig adres." -#: src/jade/tabs/contacts.jade:92 +#: src/jade/tabs/contacts.jade:84 msgid "Invalid destination tag." msgstr "Ongeldig bestemmingskenmerk." -#: src/jade/tabs/contacts.jade:102 +#: src/jade/tabs/contacts.jade:94 msgid "" "You don't have any contacts yet. Click on 'Add contact' button in the top " "right corner to add a new contact." msgstr "U heeft nog geen contacten. Klik op de \"Voeg contact toe\" knop in de rechterbovenhoek om een nieuw contact toe te voegen." -#: src/jade/tabs/desktop/login.jade:3 -msgid "" -"You will not be able to login to the downloadable client using a " -"username/password you create on Ripple Trade or the web version of the " -"Ripple Client. You can only use a secret key to access an existing Ripple " -"account. This is because the downloadable client stores your login " -"information locally on your computer, so your account is as safe as the " -"security of your personal computer." -msgstr "U zult niet in staat zijn om in te loggen op de downloadbare client met behulp van een gebruikersnaam en/of wachtwoord dat u aanmaakt op Ripple Trade of op de webversie van de Ripple Client. U kunt alleen gebruik maken van een beveiligingssleutel om toegang te krijgen tot een bestaand Ripple account. Dit komt omdat de downloadbare client uw login-gegevens lokaal op uw computer oplsaat, waardoor uw portefeuille zo veilig is als de beveiliging van uw persoonlijke computer." - -#: src/jade/tabs/desktop/login.jade:12 src/jade/tabs/desktop/login.jade:34 -msgid "Open account" -msgstr "Portefeuille openen" - -#: src/jade/tabs/desktop/login.jade:15 src/jade/tabs/desktop/register.jade:5 -#: src/jade/tabs/desktop/register.jade:65 -msgid "Create new account" -msgstr "Nieuwe portefeuille aanmaken" - -#: src/jade/tabs/desktop/login.jade:18 -msgid "Select account file {{walletfile}}" -msgstr "Selecteer portefeuille-bestand {{walletfile}}" - -#: src/jade/tabs/desktop/login.jade:21 -msgid "Select account file" -msgstr "Selecteer portefeuille-bestand" +#: src/jade/tabs/debug.jade:9 +msgid "Enter a Ripple name or address" +msgstr "Voer een Ripple-naam of -adres in." -#: src/jade/tabs/desktop/login.jade:24 -msgid "Account password" -msgstr "Account wachtwoord" +#: src/jade/tabs/debug.jade:13 +msgid "Please enter an address." +msgstr "Voer een adres in." -#: src/jade/tabs/desktop/register.jade:8 -msgid "Open existing account" -msgstr "Bestaande portefeuille openen" +#: src/jade/tabs/debug.jade:17 +msgid "Turn on debug mode" +msgstr "Debug-modus aanzetten" -#: src/jade/tabs/desktop/register.jade:11 -msgid "Create an empty account" -msgstr "Maak een leeg account aan" +#: src/jade/tabs/eur.jade:35 +msgid "Euro Deposit" +msgstr "Euro-storting" -#: src/jade/tabs/desktop/register.jade:14 -msgid "Create a new account with a secret key" -msgstr "Nieuw account aanmaken met een beveiligingssleutel" +#: src/jade/tabs/eur.jade:39 +msgid "SnapSwap EU (~SnapSwap){{1}}{{2}}" +msgstr "SnapSwap EU (~SnapSwap){{1}}{{2}}" -#: src/jade/tabs/desktop/register.jade:18 -msgid "Create empty account" -msgstr "Leeg account aanmaken" +#: src/jade/tabs/eur.jade:45 +msgid "All countries, except USA" +msgstr "Alle landen behalve de VS" -#: src/jade/tabs/desktop/register.jade:20 -msgid "Encrypt your new account file: {{walletfile}}" -msgstr "Versleutel uw nieuwe portefeuille-bestand: {{walletfile}}" +#: src/jade/tabs/eur.jade:49 +msgid "€ 0.31 – € 15.00" +msgstr "€ 0.31 – € 15.00" -#: src/jade/tabs/desktop/register.jade:24 -msgid "Wallet file" -msgstr "Portefeuille-bestand" - -#: src/jade/tabs/desktop/register.jade:31 +#: src/jade/tabs/eur.jade:59 msgid "" -"Your password is weak. It is not a mix of letters, numbers and symbols or it" -" is the same as your Ripple name." -msgstr "Uw wachtwoord is zwak. Het is geen combinatie van letters, nummers en symbolen of het is gelijk aan uw Ripple naam." - -#: src/jade/tabs/desktop/register.jade:33 src/jade/tabs/recover.jade:40 -#: src/jade/tabs/register.jade:49 src/jade/tabs/security.jade:123 -msgid "Confirm password" -msgstr "Bevestig wachtwoord" - -#: src/jade/tabs/desktop/register.jade:36 src/jade/tabs/recover.jade:43 -#: src/jade/tabs/register.jade:52 src/jade/tabs/security.jade:126 -msgid "Passwords do not match" -msgstr "Wachtwoorden komen niet overeen" +"Ripple Trade has partnered with SnapSwap to provide easier access to EUR. " +"Following this action will enable SnapSwap to hold EUR on your behalf." +msgstr "Ripple Trade werkt samen met SnapSwap om toegang tot EUR te vereenvoudigen. Bij doorklikken stelt u SnapSwap in staat om EUR namens u te bewaren." -#: src/jade/tabs/desktop/register.jade:42 -msgid "Encrypt account" -msgstr "Versleutel portefeuille" +#: src/jade/tabs/eur.jade:69 src/jade/tabs/usd.jade:66 +msgid "Not connected" +msgstr "NIet verbonden" -#: src/jade/tabs/desktop/register.jade:44 -msgid "Cancel and delete account file" -msgstr "Annuleren en portefeuille-bestand verwijderen" - -#: src/jade/tabs/desktop/register.jade:50 -msgid "Create account with secret key" -msgstr "Account aanmaken met beveiligingssleutel" - -#: src/jade/tabs/desktop/register.jade:55 -msgid "Enter your secret key" -msgstr "Voer uw beveiligingssleutel in" - -#: src/jade/tabs/desktop/register.jade:62 -msgid "Secret is invalid" -msgstr "Beveiligingssleutel is ongeldig" - -#: src/jade/tabs/desktop/register.jade:67 src/jade/tabs/fund.jade:77 -#: src/jade/tabs/trade.jade:325 -msgid "Cancel" -msgstr "Annuleren" +#: src/jade/tabs/eur.jade:70 src/jade/tabs/usd.jade:67 +msgid "Connected" +msgstr "Verbonden" -#: src/jade/tabs/desktop/register.jade:69 src/jade/tabs/register.jade:95 -msgid "Have an account? {{1:Log In}}" -msgstr "Heeft u een account? {{1:Log In}}" +#: src/jade/tabs/eur.jade:76 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.EU" +msgstr "NIEUWE KLANTEN - AANMELDEN BIJ SNAPSWAP.EU" -#: src/jade/tabs/desktop/register.jade:75 -msgid "Important:" -msgstr "Belangrijk:" +#: src/jade/tabs/eur.jade:77 +msgid "Register and verify your account at SnapSwap EU. You will need: {{1}}" +msgstr "Registreer en verifieer uw account bij SnapSwap EU. U heeft daarvoor nodig: {{1}}" -#: src/jade/tabs/desktop/register.jade:76 +#: src/jade/tabs/eur.jade:81 src/jade/tabs/usd.jade:78 msgid "" -"The secret key below gives access to your money in the unlikely case that " -"you lose your password. In that case your contacts will be lost, but with " -"this secret key alone anyone can retrieve your money. So please store it " -"somewhere PRIVATE AND SAFE. Read more about keys and wallet safety in {{1}}" -msgstr "De onderstaande beveiligingssleutel geeft u toegang tot uw geld in het onwaarschijnlijke geval dat u uw wachtwoord kwijtraakt. In dat geval zullen uw contacten verloren gaan, maar geeft deze beveiligingssleutel toegang tot al uw geld. Bewaar deze dus op een VEILIGE plek. Lees meer over beveiligingssleutels en portefeuilleveiligheid in {{1}}" +"A valid government-issued ID: driver license, passport, ID card, or visa " +"stamp." +msgstr "Een door een overheidsdienst uitgegeven geldig ID; rijbewijs, paspoort, ID-kaart of visum." -#: src/jade/tabs/desktop/register.jade:79 src/jade/tabs/settings/navbar.jade:2 -msgid "Security" -msgstr "Beveiliging" +#: src/jade/tabs/eur.jade:83 src/jade/tabs/usd.jade:80 +msgid "A proof of address: driver license, utility bill, bank statement, etc." +msgstr "Een bewijs van adres, rijbewijs, rekening van een nutsbedrijf, bankafschrift, etc." -#: src/jade/tabs/desktop/register.jade:81 -msgid "Passphrase:{{1}}{{2}}{{3}}{{4}}" -msgstr "Wachtwoordzin:{{1}}{{2}}{{3}}{{4}}" +#: src/jade/tabs/eur.jade:85 +msgid "EXISTING SNAPSWAP EU CUSTOMERS" +msgstr "BESTAANDE SNAPSWAP EU-KLANTEN" -#: src/jade/tabs/desktop/register.jade:90 -msgid "Secret key:" -msgstr "Beveiligingssleutel:" +#: src/jade/tabs/eur.jade:89 src/jade/tabs/jpy.jade:94 +#: src/jade/tabs/usd.jade:86 +msgid "Login to your account {{1}}" +msgstr "Inloggen op uw account {{1}}" -#: src/jade/tabs/desktop/register.jade:95 src/jade/tabs/register.jade:150 -msgid "Show secret key" -msgstr "Toon beveiligingssleutel" +#: src/jade/tabs/eur.jade:92 src/jade/tabs/jpy.jade:96 +msgid "DEPOSITS AND WITHDRAWALS:" +msgstr "STORTINGEN EN OPNAMES:" -#: src/jade/tabs/desktop/register.jade:97 src/jade/tabs/register.jade:151 -msgid "Hide secret key" -msgstr "Verberg beveiligingssleutel" +#: src/jade/tabs/eur.jade:96 +msgid "Deposit from your bank (2-4 business days)" +msgstr "STORTING VIA BANK (2-4 werkdagen)" -#: src/jade/tabs/desktop/register.jade:98 -msgid "Have you saved your secret key somewhere safe?" -msgstr "Heeft u uw beveiligingssleutel op een veilige plek bewaard?" +#: src/jade/tabs/eur.jade:98 +msgid "Withdraw to your bank account in SEPA (2-4 business days)" +msgstr "Opnemen naar uw bankrekening in SEPA (2-4 werkdagen)" -#: src/jade/tabs/desktop/register.jade:101 -msgid "Yes, I saved my secret key" -msgstr "Ja, ik heb mijn beveiligingssleutel opgeslagen" +#: src/jade/tabs/eur.jade:100 +msgid "Withdraw to SmartyCash Card (instant)" +msgstr "Opnemen naar uw SmartyCash-kaart (direct)" #: src/jade/tabs/exchange.jade:13 msgid "You have to be funded before you can exchange money" -msgstr "Uw account moet gefinancierd zijn voordat u geld kunt converteren" +msgstr "Uw account dient gefinancierd te zijn voordat u geld kunt omwisselen" + +#: src/jade/tabs/exchange.jade:23 +msgid "Buy (Market Order)" +msgstr "Koop (Marktorder)" + +#: src/jade/tabs/exchange.jade:24 +msgid "" +"Submit a buy order at the current market rate. Orders will execute " +"instantly." +msgstr "Plaats een kooporder tegen de huidige koers. Orders worden direct uitgevoerd." # Receive (amount) -#: src/jade/tabs/exchange.jade:19 +#: src/jade/tabs/exchange.jade:27 msgid "Receive (amount)" -msgstr "Ontvang" +msgstr "Ik wil kopen:" + +#: src/jade/tabs/exchange.jade:34 src/jade/tabs/widgets/balances.jade:49 +msgid "add gateway" +msgstr "gateway toevoegen" -#: src/jade/tabs/exchange.jade:26 src/jade/tabs/send.jade:88 +#: src/jade/tabs/exchange.jade:37 src/jade/tabs/send.jade:90 msgid "Please enter an amount." msgstr "Voer een bedrag in." -#: src/jade/tabs/exchange.jade:27 src/jade/tabs/send.jade:89 -#: src/jade/tabs/trade.jade:146 src/jade/tabs/trade.jade:161 -#: src/jade/tabs/trade.jade:176 +#: src/jade/tabs/exchange.jade:38 src/jade/tabs/send.jade:91 +#: src/jade/tabs/trade.jade:153 src/jade/tabs/trade.jade:168 +#: src/jade/tabs/trade.jade:183 src/jade/tabs/trust.jade:101 msgid "Not a valid amount." msgstr "Ongeldig bedrag." -#: src/jade/tabs/exchange.jade:28 +#: src/jade/tabs/exchange.jade:39 +msgid "" +"You are either trying to convert too little or too much XRP.Minimum amount " +"is 0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "U probeert nu ofwel te weinig ofwel te veel XRP te versturen. Het minimumbedrag is 0.000001 XRP en het maximum is 100 miljard XRP." + +#: src/jade/tabs/exchange.jade:42 src/jade/tabs/send.jade:96 +#: src/jade/tabs/trust.jade:103 +msgid "Your amount has too many digits. The max number of digits is 16." +msgstr "Uw bedrag bevat teveel cijfers. Het maximum aantal cijfers is 16." + +#: src/jade/tabs/exchange.jade:43 msgid "Please enter an amount greater than zero." msgstr "Voer een bedrag groter dan nul in." -#: src/jade/tabs/exchange.jade:31 -msgid "Calculating..." -msgstr "Berekenen..." +#: src/jade/tabs/exchange.jade:46 +msgid "{{1}} Calculating..." +msgstr "{{1}} Bezig met rekenen..." -#: src/jade/tabs/exchange.jade:33 +#: src/jade/tabs/exchange.jade:50 msgid "" "Cannot convert to {{exchange.amount}} {{exchange.currency_name}}. Please " "make sure your account has enough funds, and a {{1}} to a " "{{exchange.currency_name}} gateway." msgstr "Kan niet converteren naar {{exchange.amount}} {{exchange.currency_name}}. Zorg er alstublieft voor dat het saldo in uw portefeuille toereikend is en u een {{1}} heeft met een {{exchange.currency_name}} gateway." -#: src/jade/tabs/exchange.jade:37 +#: src/jade/tabs/exchange.jade:54 msgid "" "Sorry! Cannot convert {{exchange.amount}} {{exchange.currency_name}}. Please" " make sure your account has enough funds." -msgstr "Sorry! {{exchange.amount}} {{exchange.currency_name}} kan niet worden geconverteerd. Zorg ervoor dat U genoeg geld in uw portefeille heeft." +msgstr "Sorry! {{exchange.amount}} {{exchange.currency_name}} kan niet worden geconverteerd. Zorg ervoor dat het saldo in uw portefeuille toereikend is." -#: src/jade/tabs/exchange.jade:39 src/jade/tabs/send.jade:133 +#: src/jade/tabs/exchange.jade:56 src/jade/tabs/send.jade:142 msgid "Error while calculating path" -msgstr "Fout tijdens berekenen van pad" +msgstr "Fout bij berekenen van pad" -#: src/jade/tabs/exchange.jade:55 +#: src/jade/tabs/exchange.jade:60 +msgid "Exchange" +msgstr "Omwisselen" + +#: src/jade/tabs/exchange.jade:72 msgid "Exchange {{ alt.amount | rpcurrency }} {{1}}" msgstr "Wissel {{ alt.amount | rpcurrency }} {{1}} om" -#: src/jade/tabs/exchange.jade:61 src/jade/tabs/send.jade:161 +#: src/jade/tabs/exchange.jade:78 src/jade/tabs/send.jade:170 msgid "Paths last updated {{1}} {{2: seconds}} {{3: second}} ago" -msgstr "De paden werden {{1}} {{2: secondes}} {{3: seconde}} geleden aangepast" +msgstr "De paden werden {{1}} {{2: seconden}} {{3: seconde}} geleden aangepast" -#: src/jade/tabs/exchange.jade:70 +#: src/jade/tabs/exchange.jade:89 msgid "Ripple is calculating a path for your conversion." msgstr "Ripple is een pad aan het berekenen voor de conversie." -#: src/jade/tabs/exchange.jade:75 +#: src/jade/tabs/exchange.jade:94 msgid "" "{{1:You are exchanging}}{{2}}{{3:to}}{{4}}{{5:You will pay at " "most}}{{6}}{{7:Are you sure?}}" -msgstr "{{1:U converteert}}{{2}}{{3:naar}}{{4}}{{5:U betaalt maximaal}}{{6}}{{7:Weet U het zeker??}}" +msgstr "{{1:U gaat}}{{2}}{{3:omwisselen naar}}{{4}}{{5:U betaalt daarvoor maximaal}}{{6}}{{7:Weet u dit zeker?}}" -#: src/jade/tabs/exchange.jade:116 +#: src/jade/tabs/exchange.jade:139 msgid "Do another conversion" -msgstr "Maak een andere conversie" +msgstr "Wissel nogmaals geld om" -#: src/jade/tabs/exchange.jade:118 src/jade/tabs/send.jade:243 -#: src/jade/tabs/send.jade:273 +#: src/jade/tabs/exchange.jade:141 src/jade/tabs/send.jade:257 +#: src/jade/tabs/send.jade:291 msgid "Back to balance" msgstr "Terug naar saldo" @@ -1076,215 +1563,280 @@ msgstr "Terug naar saldo" msgid "Add trust" msgstr "Vertrouw krediet toe" -#: src/jade/tabs/fund.jade:33 src/jade/tabs/fund.jade:47 -#: src/jade/tabs/trust.jade:100 src/jade/tabs/trust.jade:121 -msgid "Account does not meet the minimum XRP reserve." -msgstr "Account voldoet niet aan het minimum XRP reserve-saldo." +#: src/jade/tabs/fund.jade:27 src/jade/tabs/send.jade:26 +msgid "Enter a Ripple name or contact" +msgstr "Voer een Ripple-naam of contact in." -#: src/jade/tabs/fund.jade:34 src/jade/tabs/fund.jade:48 -#: src/jade/tabs/send.jade:107 src/jade/tabs/trust.jade:101 -#: src/jade/tabs/trust.jade:122 -msgid "More information" -msgstr "Meer informatie" +#: src/jade/tabs/fund.jade:33 src/jade/tabs/trust.jade:73 +msgid "Account does not meet the minimum XRP reserve." +msgstr "Account voldoet niet aan de minimum XRP reserve." -#: src/jade/tabs/fund.jade:36 src/jade/tabs/trust.jade:103 +#: src/jade/tabs/fund.jade:36 src/jade/tabs/trust.jade:76 msgid "Please enter a Ripple name, contact, or address." -msgstr "Voer een Ripple naam, contact of adres in." +msgstr "Voer een Ripple-naam, -adres of contact in." -#: src/jade/tabs/fund.jade:37 src/jade/tabs/fund.jade:51 -#: src/jade/tabs/trust.jade:104 src/jade/tabs/trust.jade:125 +#: src/jade/tabs/fund.jade:37 src/jade/tabs/trust.jade:77 msgid "You've entered your own address." msgstr "U heeft uw eigen adres ingevoerd." -#: src/jade/tabs/fund.jade:38 src/jade/tabs/trust.jade:105 +#: src/jade/tabs/fund.jade:38 src/jade/tabs/trust.jade:78 msgid "Please enter a valid Ripple name, contact, or address." -msgstr "Voer een geldige Ripple naam, contact of adres in." - -#: src/jade/tabs/fund.jade:50 src/jade/tabs/trust.jade:124 -msgid "Please enter a Ripple address or contact." -msgstr "Voer een Ripple adres of contact in." - -#: src/jade/tabs/fund.jade:52 src/jade/tabs/trust.jade:126 -msgid "Please enter a valid Ripple address or contact." -msgstr "Voer een geldig Ripple adres of contact in." - -#: src/jade/tabs/fund.jade:55 src/jade/tabs/history.jade:190 -#: src/jade/tabs/trade.jade:303 src/jade/tabs/trust.jade:129 -msgid "Amount" -msgstr "Hoeveelheid" +msgstr "Voer een geldige Ripple-naam of een geldig contact of Ripple-adres in." -#: src/jade/tabs/fund.jade:62 src/jade/tabs/trust.jade:107 -#: src/jade/tabs/trust.jade:140 +#: src/jade/tabs/fund.jade:48 src/jade/tabs/trust.jade:80 msgid "Amount field is required" msgstr "Bedrag is een verplicht veld" -#: src/jade/tabs/fund.jade:64 src/jade/tabs/trust.jade:109 -#: src/jade/tabs/trust.jade:142 +#: src/jade/tabs/fund.jade:50 src/jade/tabs/trust.jade:82 +#: src/jade/tabs/trust.jade:105 msgid "" "XRP can be sent without extending trust. If you really want to trust in XRP," " please use XRR currency code." -msgstr "XRP kan ook verzonden worden zonder het toevertrouwen uit te breiden. Als u daadwerkelijk wilt toevertrouwen in XRP, gebruik dan de XRR valuta code." +msgstr "XRP kan verzonden worden zonder krediet toe te vertrouwen. Als u daadwerkelijk krediet wilt toevertrouwen in XRP, gebruik dan de valuta code XRR." -#: src/jade/tabs/fund.jade:67 src/jade/tabs/trust.jade:112 -#: src/jade/tabs/trust.jade:145 +#: src/jade/tabs/fund.jade:53 src/jade/tabs/trust.jade:85 +#: src/jade/tabs/trust.jade:108 msgid "Currency field is required" msgstr "Valuta is een verplicht veld" -#: src/jade/tabs/fund.jade:73 src/jade/tabs/trust.jade:151 +#: src/jade/tabs/fund.jade:59 src/jade/tabs/fund.jade:60 +#: src/jade/tabs/trust.jade:114 src/jade/tabs/trust.jade:115 msgid "Allow Rippling" -msgstr "Sta Rippling toe" +msgstr "Rippling toestaan" -#: src/jade/tabs/fund/menu.jade:2 -msgid "XRP" -msgstr "XRP" +#: src/jade/tabs/fund.jade:60 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"trust. More " +"information" +msgstr "Sta toe dat het saldo van deze kredietlijnen overgedragen kan worden aan een andere verstrekker die u vertrouwt. Meer informatie" + +#: src/jade/tabs/fund.jade:63 +msgid "Cancel" +msgstr "Annuleren" #: src/jade/tabs/fund/menu.jade:3 -msgid "BTC" -msgstr "BTC" +msgid "{{1}}XRP" +msgstr "{{1}}XRP" #: src/jade/tabs/fund/menu.jade:6 +msgid "Featured gateways" +msgstr "Geselecteerde gateways" + +#: src/jade/tabs/fund/menu.jade:7 +msgid "{{1}}BRL" +msgstr "{{1}}BRL" + +#: src/jade/tabs/fund/menu.jade:10 +msgid "{{1}}BTC" +msgstr "{{1}}BTC" + +#: src/jade/tabs/fund/menu.jade:13 +msgid "{{1}}EUR" +msgstr "{{1}}EUR" + +#: src/jade/tabs/fund/menu.jade:16 +msgid "{{1}}JPY" +msgstr "{{1}}JPY" + +#: src/jade/tabs/fund/menu.jade:19 +msgid "{{1}}MXN" +msgstr "{{1}}MXN" + +#: src/jade/tabs/fund/menu.jade:22 +msgid "{{1}}USD" +msgstr "{{1}}USD" + +#: src/jade/tabs/fund/menu.jade:25 +msgid "{{1}}XAU" +msgstr "{{1}}XAU" + +#: src/jade/tabs/fund/menu.jade:28 +msgid "Add any gateway" +msgstr "Een gateway toevoegen" + +#: src/jade/tabs/fund/menu.jade:30 msgid "Learn more about gateways" -msgstr "Lees verder over gateways" +msgstr "Lees meer over gateways" -#: src/jade/tabs/history.jade:9 -msgid "Loading history..." -msgstr "Geschiedenis wordt geladen..." +#: src/jade/tabs/gold.jade:37 +msgid "Gold Deposit" +msgstr "Goud-storting" -#: src/jade/tabs/history.jade:14 -msgid "Your account history is empty" -msgstr "Uw account-geschiedenis is leeg" +#: src/jade/tabs/gold.jade:41 +msgid "Gold Bullion International (~gbi) {{1}}" +msgstr "Gold Bullion International (~gbi) {{1}}" + +#: src/jade/tabs/gold.jade:48 +msgid "0.5% per year" +msgstr "0.5% per jaar" + +#: src/jade/tabs/gold.jade:56 +msgid "" +"Ripple Trade has partnered with GBI to provide easy access toXAU. By " +"continuing, you are allowing GBI to hold gold on your behalf." +msgstr "Ripple Trade werkt samen met GBI om toegang tot XAU te vereenvoudigen. Bij doorklikken staat u GBI toe om goud namens u te bewaren." + +#: src/jade/tabs/gold.jade:67 src/jade/tabs/jpy.jade:68 +#: src/jade/tabs/mxn.jade:70 +msgid "{{1}} Not connected" +msgstr "{{1}} Niet verbonden" + +#: src/jade/tabs/gold.jade:70 src/jade/tabs/jpy.jade:71 +#: src/jade/tabs/mxn.jade:73 +msgid "{{1}} Connected" +msgstr "{{1}} Verbonden" + +#: src/jade/tabs/gold.jade:77 +msgid "Deposit" +msgstr "Storting" + +#: src/jade/tabs/gold.jade:78 +msgid "" +"GBI does not currently support direct deposits. You can {{1}} or {{2}}." +msgstr "GBI ondersteunt momenteel geen directe stortingen. U kunt {{1}} of {{2}}. " + +#: src/jade/tabs/gold.jade:84 +msgid "Withdrawal" +msgstr "Opname" + +#: src/jade/tabs/gold.jade:85 +msgid "" +"You can redeem the physical gold in 1 oz increments.To do so, you'll need to" +" {{1}} and arrange to have the gold shipped to you." +msgstr "U kunt het fyisieke goud opeisen in veelvouden van 1 ounce (31,1 gram). Hiervoor moet u {{1}} en zelf zorg dragen voor verzending naar uw thuisadres." -#: src/jade/tabs/history.jade:20 -msgid "Filters" -msgstr "Filters" +#: src/jade/tabs/history.jade:11 +msgid "Loading History" +msgstr "Geschiedenis wordt geladen" -#: src/jade/tabs/history.jade:23 +#: src/jade/tabs/history.jade:16 +msgid "Your account history is empty" +msgstr "Uw accountgeschiedenis is leeg" + +#: src/jade/tabs/history.jade:24 msgid "Transaction type{{1}}{{2}}" -msgstr "Transactie type {{1}}{{2}}" +msgstr "Transactie-type{{1}}{{2}}" -#: src/jade/tabs/history.jade:48 +#: src/jade/tabs/history.jade:37 msgid "Date{{1}}{{2}}" msgstr "Datum{{1}}{{2}}" -#: src/jade/tabs/history.jade:53 +#: src/jade/tabs/history.jade:42 msgid "Load history for specific date range" msgstr "Toon geschiedenis van specifieke periode" -#: src/jade/tabs/history.jade:59 +#: src/jade/tabs/history.jade:48 msgid "From" msgstr "Van" -#: src/jade/tabs/history.jade:65 +#: src/jade/tabs/history.jade:54 msgid "To" -msgstr "Naar" +msgstr "Tot" -#: src/jade/tabs/history.jade:68 +#: src/jade/tabs/history.jade:57 msgid "Filter" -msgstr "Specificeer" - -#: src/jade/tabs/history.jade:82 -msgid "Transaction History" -msgstr "Transactiegeschiedenis" - -#: src/jade/tabs/history.jade:84 -msgid "Export to CSV" -msgstr "Exporteren naar CSV" +msgstr "Filter" -#: src/jade/tabs/history.jade:88 +#: src/jade/tabs/history.jade:64 msgid "Date" msgstr "Datum" -#: src/jade/tabs/history.jade:89 src/jade/tabs/history.jade:188 +#: src/jade/tabs/history.jade:65 src/jade/tabs/history.jade:170 msgid "Description" msgstr "Omschrijving" -#: src/jade/tabs/history.jade:90 +#: src/jade/tabs/history.jade:68 src/jade/tabs/history.jade:73 +msgid "Export to CSV" +msgstr "Exporteren naar CSV" + +#: src/jade/tabs/history.jade:69 msgid "Sorry, no transactions match your current filter." -msgstr "Sorry, geen transacties passen bij uw huidige specificatie." +msgstr "Sorry, binnen uw huidige filter vallen geen transacties." -#: src/jade/tabs/history.jade:109 +#: src/jade/tabs/history.jade:91 msgid "You sent{{1}}to{{2}}" -msgstr "U verzond{{1}}naar{{2}}" +msgstr "U verstuurde{{1}}naar{{2}}" -#: src/jade/tabs/history.jade:115 +#: src/jade/tabs/history.jade:97 msgid "{{1}}sent you{{2}}" msgstr "{{1}}stuurde U{{2}}" -#: src/jade/tabs/history.jade:121 +#: src/jade/tabs/history.jade:103 msgid "You requested to exchange{{1}}to{{2}}" msgstr "U verzocht{{1}}om te wisselen voor{{2}}" -#: src/jade/tabs/history.jade:127 +#: src/jade/tabs/history.jade:109 msgid "{{1}}now trusts you for{{2}}" -msgstr "{{1}}vertrouwt U toe voor{{2}}" +msgstr "{{1}}vertrouwt u nu {{2}} toe" -#: src/jade/tabs/history.jade:140 src/jade/tabs/history/effects.jade:45 +#: src/jade/tabs/history.jade:122 src/jade/tabs/history/effects.jade:45 msgid "You created an order to sell{{1}}for{{2}}" msgstr "U heeft een order aangemaakt om{{1}}te verkopen voor{{2}}" -#: src/jade/tabs/history.jade:144 src/jade/tabs/history/effects.jade:49 +#: src/jade/tabs/history.jade:126 src/jade/tabs/history/effects.jade:49 msgid "You created an order to buy{{1}}for{{2}}" msgstr "U heeft een order aangemaakt om{{1}}te kopen voor{{2}}" -#: src/jade/tabs/history.jade:150 +#: src/jade/tabs/history.jade:132 msgid "You cancelled an order accepting {{1}}for{{2}}" msgstr "U heeft een order om{{1}}te aanvaarden voor{{2}}geannuleerd" -#: src/jade/tabs/history.jade:163 +#: src/jade/tabs/history.jade:145 msgid "Unknown transaction" msgstr "Onbekende transactie" -#: src/jade/tabs/history.jade:166 +#: src/jade/tabs/history.jade:148 msgid "" "The client failed to parse this transaction. The developers have been " "notified of the issue." msgstr "De client was niet in staat de transactie te analyseren. De ontwikkelaars zijn hiervan op de hoogte gebracht." -#: src/jade/tabs/history.jade:171 +#: src/jade/tabs/history.jade:153 msgid "{{1}} sent you{{2}} and activated your account!" -msgstr "{{1}} stuurde U{{2}} toe en activeerde uw portefeuille!" +msgstr "{{1}} stuurde u{{2}} toe en activeerde uw account!" -#: src/jade/tabs/history.jade:178 +#: src/jade/tabs/history.jade:160 msgid "You deposited{{1}} using {{entry.details.app.name}}" -msgstr "U stortte{{1}}met behulp van {{entry.details.app.name}}" +msgstr "U stortte{{1}} met behulp van {{entry.details.app.name}}" -#: src/jade/tabs/history.jade:186 +#: src/jade/tabs/history.jade:168 msgid "Balance Changes" -msgstr "Saldo-wijzigingen" +msgstr "Saldowijzigingen" -#: src/jade/tabs/history.jade:189 +#: src/jade/tabs/history.jade:171 msgid "Issuer" msgstr "Verstrekker" -#: src/jade/tabs/history.jade:191 +#: src/jade/tabs/history.jade:173 msgid "Final balance" -msgstr "Definitief saldo" +msgstr "Totaal saldo" -#: src/jade/tabs/history.jade:194 +#: src/jade/tabs/history.jade:176 msgid "XRP Balance Change" -msgstr "XRP Saldo Wijziging" +msgstr "XRP Saldowijziging" -#: src/jade/tabs/history.jade:195 +#: src/jade/tabs/history.jade:177 msgid "{{effect.currency}} Balance Change" -msgstr "{{effect.currency}} Saldo Wijziging" +msgstr "{{effect.currency}} Saldowijziging" -#: src/jade/tabs/history.jade:196 -msgid "Fee" -msgstr "Heffing" - -#: src/jade/tabs/history.jade:201 +#: src/jade/tabs/history.jade:183 msgid "Transaction details" -msgstr "Transactie-details" +msgstr "Transactiedetails" -#: src/jade/tabs/history.jade:202 +#: src/jade/tabs/history.jade:184 msgid "Add {{1}} to contact list" -msgstr "Voeg {{1}} aan uw contactenlijst toe" +msgstr "Voeg {{1}} aan uw contacten toe" + +#: src/jade/tabs/history.jade:189 +msgid "{{1}} Loading more" +msgstr "{{1}} Meer aan het laden" -#: src/jade/tabs/history.jade:208 src/jade/tabs/trade.jade:386 +#: src/jade/tabs/history.jade:192 src/jade/tabs/trade.jade:500 msgid "Load more" -msgstr "Laad meer" +msgstr "Meer laden" -#: src/jade/tabs/history.jade:209 +#: src/jade/tabs/history.jade:193 msgid "No more transactions left" msgstr "Geen transacties meer over" @@ -1298,15 +1850,15 @@ msgstr "U kocht{{1}}voor{{2}}" #: src/jade/tabs/history/effects.jade:13 src/jade/tabs/history/effects.jade:28 msgid "price" -msgstr "prijs" +msgstr "koers" #: src/jade/tabs/history/effects.jade:17 msgid "This order has been filled." -msgstr "Dit order is vervuld." +msgstr "Deze order is uitgevoerd." #: src/jade/tabs/history/effects.jade:32 msgid "The rest of your order has been cancelled due to lack of funds." -msgstr "De rest van uw order is geannuleerd wegens een gebrek aan geld." +msgstr "De rest van uw order is geannuleerd wegens een ontoereikend saldo." #: src/jade/tabs/history/effects.jade:33 msgid "This order has{{1}}remaining." @@ -1314,23 +1866,23 @@ msgstr "Deze order heeft{{1}}resterend." #: src/jade/tabs/history/effects.jade:39 msgid "Order ({{1}} for {{2}}) has been cancelled due to lack of funds." -msgstr "Order ({{1}} voor {{2}}) is geannuleerd wegens een gebrek aan geld." +msgstr "Order ({{1}} voor {{2}}) is geannuleerd wegens een ontoereikend saldo." #: src/jade/tabs/history/effects.jade:53 msgid "You bought{{1}}for{{2}}({{3:price}}{{4}})." -msgstr "U kocht{{1}}voor{{2}}({{3:price}}{{4}})." +msgstr "U kocht{{1}}voor{{2}}({{3:koers}}{{4}})." #: src/jade/tabs/history/effects.jade:68 msgid "{{1}}is trusting you for{{2}}." -msgstr "{{1}}vertrouwt u toe voor{{2}}." +msgstr "{{1}}vertrouwt u {{2}} toe." #: src/jade/tabs/history/effects.jade:73 msgid "You have changed {{1}}trust for{{2}}from{{3}}to{{4}}." -msgstr "U heeft {{1}}krediet gewijzigd voor{{2}}, van{{3}}naar{{4}}." +msgstr "U heeft uw kredietvertrouwen in {{1}}voor {{2}}gewijzigd van{{3}}naar{{4}}." #: src/jade/tabs/history/effects.jade:83 msgid "{{1}}changed the{{2}}trust from{{3}}to{{4}}." -msgstr "{{1}}heeft het{{2}}krediet gewijzigd van{{3}}naar{{4}}." +msgstr "{{1}}heeft het{{2}}kredietvertrouwen gewijzigd van{{3}}naar{{4}}." #: src/jade/tabs/history/effects.jade:92 msgid "Trust balance between you and{{1}}has been changed by{{2}}." @@ -1340,1355 +1892,1765 @@ msgstr "Kredietsaldo tussen u en{{1}}is gewijzigd met{{2}}." msgid "Your balance has been changed by{{1}}." msgstr "Uw saldo is gewijzigd met{{1}}." -#: src/jade/tabs/kyc.jade:16 +#: src/jade/tabs/jpy.jade:38 +msgid "Japanese Yen Deposit" +msgstr "Japanse Yen-stroting" + +#: src/jade/tabs/jpy.jade:42 +msgid "Tokyo JPY Issuer (~tokyojpy) {{1}}" +msgstr "Tokyo JPY Issuer (~tokyojpy) {{1}}" + +#: src/jade/tabs/jpy.jade:59 +msgid "" +"Ripple Trade has partnered with Tokyo JPY Issuer to provide easier access to" +" JPY. Following this action will enable Tokyo JPY Issuer to hold JPY on your" +" behalf." +msgstr "Ripple Trade werkt samen met Tokyo JPY Issuer om toegang tot JPY te vereenvoudigen. Bij doorklikken stelt u Tokyo JPY Issuer in staat om JPY namens u te bewaren." + +#: src/jade/tabs/jpy.jade:78 +msgid "NEW CUSTOMERS- SIGN UP AT TOKYO JPY ISSUER" +msgstr "NIEUWE KLANTEN - AANMELDEN BIJ TOKYO JPY ISSUER" + +#: src/jade/tabs/jpy.jade:79 +msgid "{{1}}at Tokyo JPY Issuer. You will need:{{2}}" +msgstr "{{1}}bij Tokyo JPY Issuer. U heeft hiervoor nodig:{{2}}" + +#: src/jade/tabs/jpy.jade:84 +msgid "A valid government-issued ID." +msgstr "Een door een overheidsdienst uitgegeven geldig ID" + +#: src/jade/tabs/jpy.jade:86 +msgid "A proof of address (utility bill, etc)." +msgstr "Een bewijs van adres (rekening van nutsbedrijf, etc)." + +#: src/jade/tabs/jpy.jade:88 +msgid "A bank account under the same name." +msgstr "Een bankrekening op dezelfde naam." + +#: src/jade/tabs/jpy.jade:90 +msgid "EXISTING TOKYO JPY ISSUER CUSTOMERS" +msgstr "BESTAANDE TOKYO JPY ISSUER-KLANTEN" + +#: src/jade/tabs/jpy.jade:100 +msgid "" +"Tokyo JPY Issuer accepts deposits and withdrawals via bank transfer. Details" +" {{1}}" +msgstr "Tokyo JPY Issuer accepteert stortingen en opnames via bankoverdrachten. Details {{1}}" + +#: src/jade/tabs/jpy.jade:103 +msgid "" +"To deposit, you’ll need to first deposit into your Tokyo JPY Issuer account " +"and then initiate a transfer into your Ripple account." +msgstr "Voor een storting dient u eerst geld te storten op uw Tokyo JPY Issuer-rekening om daarna een overdracht te initiëren naar uw Ripple-portefeuille." + +#: src/jade/tabs/jpy.jade:105 +msgid "" +"To withdraw to a bank account, you’ll first send money from your Ripple " +"account to your Tokyo JPY Issuer account. Follow instructions on the Tokyo " +"JPY Issuer site to send to your bank account." +msgstr "Voor een opname dient u eerst geld te sturen van uw Ripple-portefeuille naar uw Tokyo JPY Issuer-rekening. Volg daarna de instructies op de website van Tokyo JPY om uw geld door te sturen naar uw bankrekening." + +#: src/jade/tabs/kyc.jade:14 +msgid "Profile completion is only available to US residents." +msgstr "Profielvoltooiing is alleen beschikbaar voor inwoners van de VS." + +#: src/jade/tabs/kyc.jade:21 src/jade/tabs/trade.jade:285 msgid "Verifying your information. Please wait..." msgstr "Uw informatie wordt geverifieerd. Een moment geduld alstublieft..." -#: src/jade/tabs/kyc.jade:18 +#: src/jade/tabs/kyc.jade:23 msgid "Your identity information has been verified." msgstr "Uw identiteitsinformatie is geverifieerd." -#: src/jade/tabs/kyc.jade:20 +#: src/jade/tabs/kyc.jade:25 msgid "Your identity questions have been verified." msgstr "De vragen omtrent uw identiteit zijn geverifieerd." -#: src/jade/tabs/kyc.jade:22 +#: src/jade/tabs/kyc.jade:27 msgid "" "Congratulations, you've verified your identity! You will now be redirected " "back to the instant deposit page." msgstr "Gefeliciteerd, u heeft uw identiteit geverifieerd! U zal nu worden teruggestuurd naar de pagina voor direct storten." -#: src/jade/tabs/kyc.jade:24 +#: src/jade/tabs/kyc.jade:29 msgid "There was an error with your request. Please try again later." msgstr "Er is een fout opgetreden bij uw verzoek. Probeert u het later nog eens." -#: src/jade/tabs/kyc.jade:26 +#: src/jade/tabs/kyc.jade:31 msgid "" "There was an error with your request. Make sure your phone number is valid " "and try again." msgstr "Er is een fout opgetreden bij uw verzoek. Zorg ervoor dat uw telefoonnummer geldig is en probeer het dan opnieuw." -#: src/jade/tabs/kyc.jade:28 +#: src/jade/tabs/kyc.jade:33 msgid "Please check your verification code and try again." msgstr "Gelieve uw verificatiecode te controleren en het dan opnieuw te proberen." -#: src/jade/tabs/kyc.jade:30 +#: src/jade/tabs/kyc.jade:35 msgid "" "There was an error while requesting the verification code. Please try again " "later." msgstr "Er is een fout opgetreden bij het opvragen van uw verificatiecode. Probeert u het later nog eens." -#: src/jade/tabs/kyc.jade:32 +#: src/jade/tabs/kyc.jade:37 msgid "" "We are unable to validate your identity information. Please check your " "information and try again." msgstr "Wij zijn niet in staat uw identiteitsinformatie te valideren. Gelieve uw informatie te controleren en het dan opnieuw te proberen." -#: src/jade/tabs/kyc.jade:34 +#: src/jade/tabs/kyc.jade:39 msgid "" "We are unable to validate your identity questions. Please check your answers" " and try again." msgstr "Wij zijn niet in staat de vragen omtrent uw identiteit te valideren. Gelieve uw antwoorden te controleren en het dan opnieuw te proberen." -#: src/jade/tabs/kyc.jade:36 +#: src/jade/tabs/kyc.jade:41 +msgid "" +"Sorry, you've reached your maximum number of verification attempts. Please " +"try again in 24 hours." +msgstr "Sorry, u heeft het maximum aantal verificatiepogingen bereikt. Probeert u het over 24 uur nog eens." + +#: src/jade/tabs/kyc.jade:43 msgid "" "We can't verify your identity. Please contact us at support@ripple.com." msgstr "Wij kunnen uw identiteit niet verifieren. Neem alstublieft contact met ons op via support@ripple.com." -#: src/jade/tabs/kyc.jade:41 +#: src/jade/tabs/kyc.jade:48 msgid "Profile Completion" msgstr "Profielvoltooiing" -#: src/jade/tabs/kyc.jade:45 +#: src/jade/tabs/kyc.jade:52 msgid "STEP 1: IDENTITY INFORMATION" msgstr "STAP 1: IDENTITEITSINFORMATIE" -#: src/jade/tabs/kyc.jade:47 +#: src/jade/tabs/kyc.jade:54 msgid "STEP 2: IDENTITY QUESTIONS" msgstr "STAP 2: VRAGEN OMTRENT UW IDENTITEIT" -#: src/jade/tabs/kyc.jade:49 +#: src/jade/tabs/kyc.jade:56 msgid "STEP 3: TWO-FACTOR AUTHENTICATION" msgstr "STEP 3: TWO-FACTOR AUTHENTICATION" -#: src/jade/tabs/kyc.jade:56 +#: src/jade/tabs/kyc.jade:63 msgid "First Name" msgstr "Voornaam" -#: src/jade/tabs/kyc.jade:60 +#: src/jade/tabs/kyc.jade:67 msgid "Last Name" msgstr "Achternaam" -#: src/jade/tabs/kyc.jade:64 +#: src/jade/tabs/kyc.jade:71 msgid "Street Address" -msgstr "Straatadres" +msgstr "Adres" -#: src/jade/tabs/kyc.jade:69 +#: src/jade/tabs/kyc.jade:76 msgid "City" msgstr "Woonplaats" -#: src/jade/tabs/kyc.jade:73 +#: src/jade/tabs/kyc.jade:80 msgid "State" msgstr "Provincie" -#: src/jade/tabs/kyc.jade:77 +#: src/jade/tabs/kyc.jade:84 msgid "ZIP" msgstr "Postcode" -#: src/jade/tabs/kyc.jade:81 +#: src/jade/tabs/kyc.jade:88 msgid "Date of Birth" msgstr "Geboortedatum" -#: src/jade/tabs/kyc.jade:85 +#: src/jade/tabs/kyc.jade:92 msgid "Month{{1}}" msgstr "Maand{{1}}" -#: src/jade/tabs/kyc.jade:88 +#: src/jade/tabs/kyc.jade:95 msgid "Day{{1}}" msgstr "Dag{{1}}" -#: src/jade/tabs/kyc.jade:91 +#: src/jade/tabs/kyc.jade:98 msgid "Year{{1}}" msgstr "Jaar{{1}}" -#: src/jade/tabs/kyc.jade:104 +#: src/jade/tabs/kyc.jade:113 msgid "Continue to identity questions" msgstr "Doorgaan naar de vragen omtrent uw identiteit" -#: src/jade/tabs/kyc.jade:110 +#: src/jade/tabs/kyc.jade:114 src/jade/tabs/kyc.jade:129 +#: src/jade/tabs/kyc.jade:154 src/jade/tabs/kyc.jade:184 +#: src/jade/tabs/login.jade:17 +msgid "Verifying..." +msgstr "Verifiëren..." + +#: src/jade/tabs/kyc.jade:120 msgid "{{ q.question }}{{1}}" msgstr "{{ q.question }}{{1}}" -#: src/jade/tabs/kyc.jade:113 +#: src/jade/tabs/kyc.jade:123 msgid "{{ a.answer }}" msgstr "{{ a.answer }}" -#: src/jade/tabs/kyc.jade:116 +#: src/jade/tabs/kyc.jade:128 msgid "Continue to two-factor authentication" msgstr "Verder naar two-factor authentication" -#: src/jade/tabs/kyc.jade:124 +#: src/jade/tabs/kyc.jade:137 msgid "Two-factor authentication provides extra security for your account." msgstr "Two-factor authentication biedt extra beveiliging voor uw account." -#: src/jade/tabs/kyc.jade:132 +#: src/jade/tabs/kyc.jade:145 msgid "" "Ripple Trade has partnered with Authy to provide better security for your " "account.By continuing, you agree to Authy's {{1:Terms of Service}}." msgstr "Ripple Trade werkt samen met Authy om uw account van betere beveiliging te voorzien. Bij doorklikken gaat u akkoord met de {{1:Algemene Voorwaarden}} van Authy." -#: src/jade/tabs/kyc.jade:138 +#: src/jade/tabs/kyc.jade:153 msgid "Verify phone number" msgstr "Verifieer telefoonnummer" -#: src/jade/tabs/kyc.jade:148 +#: src/jade/tabs/kyc.jade:164 msgid "change" msgstr "wijzig" -#: src/jade/tabs/kyc.jade:152 +#: src/jade/tabs/kyc.jade:168 msgid "" "A verification code has been sent to +{{ currentCountryCode }} {{ " "phoneNumber }}." msgstr "Een verificatiecode is verstuurd naar +{{ currentCountryCode }} {{ phoneNumber }}." -#: src/jade/tabs/kyc.jade:156 src/jade/tabs/login/form.jade:15 -#: src/jade/tabs/security.jade:88 +#: src/jade/tabs/kyc.jade:172 src/jade/tabs/login/form.jade:16 +#: src/jade/tabs/security.jade:97 msgid "Verification Code" msgstr "Verificatiecode" -#: src/jade/tabs/login.jade:5 src/jade/tabs/login.jade:19 -#: src/jade/tabs/login.jade:83 +#: src/jade/tabs/kyc.jade:183 +msgid "Submit code" +msgstr "Code invoeren" + +#: src/jade/tabs/login.jade:4 src/jade/tabs/migrate.jade:4 +#: src/jade/tabs/recover.jade:3 src/jade/tabs/register.jade:5 +#: src/jade/tabs/register.jade:137 src/jade/tabs/register.jade:184 +msgid "Welcome to Ripple Trade" +msgstr "Welkom bij Ripple Trade" + +#: src/jade/tabs/login.jade:6 src/jade/tabs/migrate.jade:6 +#: src/jade/tabs/recover.jade:5 src/jade/tabs/register.jade:7 +#: src/jade/tabs/register.jade:139 src/jade/tabs/register.jade:186 +msgid "Trade hundreds of assets, from XRP to crypto to gold to fiat." +msgstr "Handel in honderden activa, van XRP tot crypto tot goud tot fiatgeld." + +#: src/jade/tabs/login.jade:15 src/jade/tabs/login.jade:31 msgid "Log In" msgstr "Log in" -#: src/jade/tabs/login.jade:7 -msgid "Verifying..." -msgstr "Verifiëren..." - -#: src/jade/tabs/login.jade:8 +#: src/jade/tabs/login.jade:18 msgid "You have successfully verified your email address." msgstr "Uw email adres is nu geverifieerd." -#: src/jade/tabs/login.jade:9 +#: src/jade/tabs/login.jade:19 msgid "" "Email verification token is invalid. It has either expired or has been " "resent. Please check your inbox for the most recent verification email." -msgstr "E-mail verificatie-code is ongeldig. Deze is ofwel verlopen of zij is foutief. Kijk in je inbox voor de meest recente verificatie e-mail." +msgstr "E-mail verificatiecode is ongeldig. Deze is ofwel verlopen of opnieuw verzonden. Kijk in uw inbox voor de meest recente verificatie-e-mail." + +#: src/jade/tabs/login.jade:30 +msgid "Logging in" +msgstr "Bezig met inloggen" -#: src/jade/tabs/login.jade:21 +#: src/jade/tabs/login.jade:34 msgid "Verify" msgstr "Verifiëren" -#: src/jade/tabs/login.jade:25 src/jade/tabs/login.jade:26 -#: src/jade/tabs/recover.jade:5 -msgid "Account Recovery" -msgstr "Portefeuille Herstellen" - -#: src/jade/tabs/login.jade:28 src/jade/tabs/register.jade:93 +#: src/jade/tabs/login.jade:36 src/jade/tabs/register.jade:114 msgid "Already have a ripple.com/client account? {{1:Migrate}}" -msgstr "Heeft U al een ripple.com/client portefeille? {{1:Migreer}}" +msgstr "Heeft u al een ripple.com/client account? {{1:Migreer}}" -#: src/jade/tabs/login.jade:30 src/jade/tabs/migrate.jade:26 -msgid "New to {{productName}}? {{1:Sign Up}}" -msgstr "Nieuw bij {{productName}}? {{1:Meld u aan}}" +#: src/jade/tabs/login.jade:41 src/jade/tabs/login.jade:42 +#: src/jade/tabs/recover.jade:9 +msgid "Account Recovery" +msgstr "Portefeuille Herstellen" -#: src/jade/tabs/login.jade:37 +#: src/jade/tabs/login.jade:49 msgid "{{1:You're sending money to}}{{2}}." msgstr "{{1:U gaat geld versturen naar}}{{2}}." -#: src/jade/tabs/login.jade:41 +#: src/jade/tabs/login.jade:53 msgid "{{1:You're sending}}{{2}}{{3: to }}{{4}}." msgstr "{{1:U gaat}}{{2}}{{3: versturen naar }}{{4}}." -#: src/jade/tabs/login.jade:51 +#: src/jade/tabs/login.jade:63 msgid "" "{{1:You're connecting to the gateway}}{{2}}{{3:for{{1}}}}{{4:with a limit " "of{{1}}}}." msgstr "{{1:U verbindt zich met de gateway}}{{2}}{{3:voor{{1}}}}{{4:met een limiet van{{1}}}}." -#: src/jade/tabs/login.jade:66 +#: src/jade/tabs/login.jade:78 msgid "{{1:You're adding}}{{2}}{{3:to your contacts list}}" msgstr "{{1:U voegt nu}}{{2}}{{3:toe aan uw contacten}}" -#: src/jade/tabs/login.jade:84 +#: src/jade/tabs/login.jade:95 +msgid "{{1}} Log In" +msgstr "{{1}} Log In" + +#: src/jade/tabs/login.jade:98 msgid "You can confirm this transaction on the next page." -msgstr "U kan deze transactie op de volgende pagina bevestigen." +msgstr "U kunt deze transactie op de volgende pagina bevestigen." -#: src/jade/tabs/login.jade:85 +#: src/jade/tabs/login.jade:99 msgid "New to {{productName}}? {{1:Create a wallet}}" msgstr "Nieuw bij {{productName}}? {{1:Maak een portefeuille aan}}" -#: src/jade/tabs/login/form.jade:11 src/jade/tabs/security.jade:82 +#: src/jade/tabs/login/form.jade:12 src/jade/tabs/security.jade:91 msgid "" "Please enter the verification code from the SMS message sent to your device:" -msgstr "Voer hier de verificatiecode in van het SMS bericht dat naar uw apparaat is verzonden:" +msgstr "Voer hier de verificatiecode in van het SMS-bericht dat naar uw apparaat is verzonden:" -#: src/jade/tabs/login/form.jade:12 src/jade/tabs/security.jade:83 +#: src/jade/tabs/login/form.jade:13 src/jade/tabs/security.jade:92 msgid "" "Please enter the verification code from the Authy app installed on your " "device:" -msgstr "Voer hier de verificatiecode in van de Authy app die op uw apparaat is geinstalleerd." +msgstr "Voer hier de verificatiecode in van de Authy app die op uw apparaat is geinstalleerd:" -#: src/jade/tabs/login/form.jade:22 +#: src/jade/tabs/login/form.jade:23 msgid "Resend" msgstr "Opnieuw verzenden" -#: src/jade/tabs/login/form.jade:23 src/jade/tabs/security.jade:95 +#: src/jade/tabs/login/form.jade:24 src/jade/tabs/security.jade:105 msgid "Send Via SMS" msgstr "Via SMS Versturen" -#: src/jade/tabs/login/form.jade:29 -msgid "Remember me on this device for 30 days" -msgstr "Onthoud mij op dit apparaat voor de komende 30 dagen" +#: src/jade/tabs/login/form.jade:30 +msgid "Remember me on this device for 30 days" +msgstr "Onthoud mij op dit apparaat voor de komende 30 dagen" + +#: src/jade/tabs/migrate.jade:10 src/jade/tabs/register.jade:17 +#: src/jade/tabs/register.jade:142 src/jade/tabs/register.jade:189 +msgid "Migrate" +msgstr "Migreren" + +#: src/jade/tabs/migrate.jade:11 +msgid "" +"To begin migration, enter the name and passphrase used to encrypt your " +"ripple.com/client wallet below. After migration, you will no longer be able " +"to login on ripple.com/client." +msgstr "Om te beginnen met migreren voert u hieronder de naam en het wachtwoord in die zijn gebruikt bij het versleutelen van uw ripple.com/client portefeuille. Na migratie zult u niet langer in staat zijn in te loggen op ripple.com/client." + +#: src/jade/tabs/migrate.jade:15 +msgid "Existing ripple.com/client Wallet name" +msgstr "Bestaande ripple.com/client Portefeuille-naam" + +#: src/jade/tabs/migrate.jade:18 +msgid "Passphrase" +msgstr "Wachtwoord" + +#: src/jade/tabs/migrate.jade:31 +msgid "Begin Migration" +msgstr "Start Migratie" + +#: src/jade/tabs/migrate.jade:32 +msgid "New to {{productName}}? {{1:Sign Up}}" +msgstr "Nieuw bij {{productName}}? {{1:Meld u aan}}" + +#: src/jade/tabs/migrate.jade:34 +msgid "Have a {{productName}} account? {{1:Log In}}" +msgstr "Heeft u een {{productName}} account? {{1:Log In}}" + +#: src/jade/tabs/mxn.jade:38 +msgid "Mexican Peso Deposit" +msgstr "Mexicaanse Peso-storting" + +#: src/jade/tabs/mxn.jade:42 +msgid "Bitso (~bitso) {{1}}{{2}}" +msgstr "Bitso (~bitso) {{1}}{{2}}" + +#: src/jade/tabs/mxn.jade:47 +msgid "All countries except the US" +msgstr "Alle landen behalve de VS" + +#: src/jade/tabs/mxn.jade:58 +msgid "" +"Ripple Trade has partnered with Bitso to provide easy access to MXN (Mexican" +" Peso). By continuing, you agree with Bitso’s terms of service. Following " +"this action will enable Bitso to hold MXN on your behalf." +msgstr "Ripple Trade werkt samen met Bitso om toegang tot MXN (Mexicaanse Peso) te vereenvoudigen. Bij doorklikken gaat u akkoord met de algemene voorwaarden van Bitso. Dit stelt Bitso in staat om MXN namens u te bewaren." + +#: src/jade/tabs/mxn.jade:80 +msgid "TO FUND/REDEEM MEXICAN PESO:" +msgstr "OM MEXICAANSE PESOS TE STORTEN/OP TE NEMEN:" + +#: src/jade/tabs/mxn.jade:82 +msgid "Register or login at {{1}}to initiate deposits and withdrawals." +msgstr "Meld u aan of log in bij {{1}}om stortingen en opnames te initiëren." + +#: src/jade/tabs/mxn.jade:86 +msgid "" +"A valid, non-US, state-issued ID (passport, driver's license, etc)." +msgstr "Een door een overheidsdienst uitgegeven, niet-VS, geldig ID (paspoort, rijbewijs, etc)." + +#: src/jade/tabs/mxn.jade:87 +msgid "" +"Proof of address (utility bill or other type of bill that has your address " +"on it). Verification is required for peso deposits or withdrawals." +msgstr "Bewijs van adres (rekening van nutsbedrijf of ander type rekening dat uw adres bevat). Verificatie is vereist voor peso-stortingen en -opnames." + +#: src/jade/tabs/mxn.jade:89 +msgid "" +"To fund your Ripple account, see the below options. Once a balance is " +"deposited with Bitso, you can send it to your Ripple account using the Bitso" +" Dashboard." +msgstr "Zie onderstaande opties om uw Ripple-account te financieren. Zodra u saldo heeft bij Bitso kunt u dit naar uw Ripple-account sturen met behulp van het Bitso Dashboard." + +#: src/jade/tabs/mxn.jade:90 +msgid "" +"To withdraw from your Ripple account, click on the 'Redeem from Ripple' " +"button on the Bitso Dashboard." +msgstr "Voor opnames uit uw Ripple-account klikt u op de knop 'Redeem from Ripple' in het Bitso Dashboard." + +#: src/jade/tabs/mxn.jade:92 src/jade/tabs/usd.jade:89 +msgid "DEPOSIT OPTIONS" +msgstr "OPTIES VOOR STORTEN" + +#: src/jade/tabs/mxn.jade:94 +msgid "Bitso accepts deposits by the following methods:" +msgstr "Bitso accepteert stortingen via de volgende methoden:" + +#: src/jade/tabs/mxn.jade:96 src/jade/tabs/mxn.jade:106 +msgid "Bank Wire" +msgstr "Overschrijving" -#: src/jade/tabs/migrate.jade:5 src/jade/tabs/register.jade:10 -#: src/jade/tabs/register.jade:116 src/jade/tabs/register.jade:159 -msgid "Migrate" -msgstr "Migreren" +#: src/jade/tabs/mxn.jade:97 src/jade/tabs/mxn.jade:107 +msgid "SPEI (Mexican instant inter-bank transfer)" +msgstr "SPEI (Mexicaanse directe inter-bank-overdracht)" -#: src/jade/tabs/migrate.jade:6 -msgid "" -"To begin migration, enter the name and passphrase used to encrypt your " -"ripple.com/client wallet below. After migration, you will no longer be able " -"to login on ripple.com/client." -msgstr "Om te beginnen met migreren voert u hieronder de naam en het wachtwoord in die zijn gebruikt bij het versleutelen van uw ripple.com/client portefeuille. Na migratie zult u niet langer in staat zijn in te loggen op ripple.com/client." +#: src/jade/tabs/mxn.jade:98 src/jade/tabs/mxn.jade:108 +msgid "Bitcoin" +msgstr "Bitcoin" -#: src/jade/tabs/migrate.jade:10 -msgid "Existing ripple.com/client Wallet name" -msgstr "Bestaande ripple.com/client Portefeuille naam" +#: src/jade/tabs/mxn.jade:99 +msgid "MXN Cash (at locations across Mexico)" +msgstr "MXN-Cash (op locaties door Mexico)" -#: src/jade/tabs/migrate.jade:13 -msgid "Passphrase" -msgstr "Wachtwoordzin" +#: src/jade/tabs/mxn.jade:100 +msgid "Pademobile wallet" +msgstr "Pademobile wallet" -#: src/jade/tabs/migrate.jade:25 -msgid "Begin Migration" -msgstr "Start de migratie" +#: src/jade/tabs/mxn.jade:102 src/jade/tabs/usd.jade:99 +msgid "WITHDRAWAL OPTIONS" +msgstr "OPTIES VOOR OPNAME" -#: src/jade/tabs/migrate.jade:28 -msgid "Have a {{productName}} account? {{1:Log In}}" -msgstr "Heeft u een {{productName}} account? {{1:Log In}}" +#: src/jade/tabs/mxn.jade:104 +msgid "Bitso offers withdrawals via the following methods:" +msgstr "Bitso ondersteunt opnames via de volgende methoden:" -#: src/jade/tabs/recover.jade:7 +#: src/jade/tabs/recover.jade:11 msgid "" "You can only recover your Ripple Trade account with a secret key. You will " "recover the account's Ripple name, contacts and other information." -msgstr "U kan uw Ripple Trade portefeuille enkel herstellen met een geheime sleutel. U zal hiermee de Ripple naam, de contacten en alle andere informatie van account terug herstellen." +msgstr "U kunt uw Ripple Trade account enkel herstellen met een beveiligingssleutel. U kunt hiermee de Ripple-naam, de contacten en alle andere informatie van het account recupereren." -#: src/jade/tabs/recover.jade:9 src/jade/tabs/recover.jade:28 +#: src/jade/tabs/recover.jade:13 src/jade/tabs/recover.jade:33 msgid "Ripple Name" -msgstr "Ripple Naam" +msgstr "Ripple-naam" -#: src/jade/tabs/recover.jade:14 +#: src/jade/tabs/recover.jade:18 msgid "Secret Key" msgstr "Beveiligingssleutel" -#: src/jade/tabs/recover.jade:17 +#: src/jade/tabs/recover.jade:21 msgid "Unable to recover account." -msgstr "Het is niet mogelijk om de portefeuille te herstellen." +msgstr "Het is niet mogelijk om de portefeuille te recupereren." -#: src/jade/tabs/recover.jade:22 src/jade/tabs/register.jade:74 +#: src/jade/tabs/recover.jade:27 src/jade/tabs/register.jade:95 msgid "Recover Account" -msgstr "Herstel Portefeuille" +msgstr "Portefeuille Recupereren" -#: src/jade/tabs/recover.jade:24 src/jade/tabs/recover.jade:50 +#: src/jade/tabs/recover.jade:29 src/jade/tabs/recover.jade:56 msgid "Set Password" -msgstr "Stel Wachtwoord in" +msgstr "Wachtwoord Instellen" -#: src/jade/tabs/recover.jade:26 +#: src/jade/tabs/recover.jade:31 msgid "" "Your account was sucessfully recovered. Please re-encrypt your account with " "a new password." -msgstr "Uw portefeuille is met succes hersteld. Gelieve uw portefeuille opnieuw te versleutelen met een nieuw wachtwoord." +msgstr "Uw portefeuille is met succes gerecupereerd. Gelieve uw portefeuille opnieuw te versleutelen met een nieuw wachtwoord." -#: src/jade/tabs/recover.jade:36 src/jade/tabs/register.jade:45 -#: src/jade/tabs/security.jade:119 +#: src/jade/tabs/recover.jade:41 src/jade/tabs/register.jade:62 +#: src/jade/tabs/security.jade:132 msgid "" "Your password is weak. It does not contain numbers and symbols or it is too " "short." msgstr "Uw wachtwoord is zwak. Het bevat geen nummers en symbolen, of is te kort." -#: src/jade/tabs/recover.jade:38 src/jade/tabs/register.jade:47 -#: src/jade/tabs/security.jade:121 +#: src/jade/tabs/recover.jade:43 src/jade/tabs/register.jade:65 +#: src/jade/tabs/security.jade:134 msgid "" "Your Ripple name and password cannot match. Please create a new password." -msgstr "Uw Ripple naam en wachtwoord mogen niet identiek zijn. Kies een ander pastwoord." +msgstr "Uw Ripple-naam en -wachtwoord mogen niet identiek zijn. Kies een ander wachtwoord." + +#: src/jade/tabs/recover.jade:45 src/jade/tabs/register.jade:67 +#: src/jade/tabs/security.jade:136 +msgid "Confirm password" +msgstr "Bevestig wachtwoord" + +#: src/jade/tabs/recover.jade:48 src/jade/tabs/register.jade:71 +#: src/jade/tabs/security.jade:139 +msgid "Passwords do not match" +msgstr "Wachtwoorden komen niet overeen" -#: src/jade/tabs/recover.jade:45 +#: src/jade/tabs/recover.jade:50 msgid "Unable to change your account password." msgstr "Uw wachtwoord kan niet worden gewijzigd." -#: src/jade/tabs/recover.jade:49 +#: src/jade/tabs/recover.jade:55 msgid "Updating..." -msgstr "Updaten..." +msgstr "Bezig met updaten..." -#: src/jade/tabs/recover.jade:51 +#: src/jade/tabs/recover.jade:57 msgid "Remember your password? {{1:Log In}}" -msgstr "Herinner uw wachtwoord? {{1:Log In}}" +msgstr "Herinnert u zich uw wachtwoord? {{1:Log In}}" -#: src/jade/tabs/register.jade:5 -msgid "" -"Ripple Trade is the only platform where you can trade between stores of " -"value spanning fiat, crypto, precious metals and more." -msgstr "Ripple Trade is het enige platform waarop u kunt handelen in verschillende middelen van waarde zoals fiat geld, cryptovaluta, edele metalen en meer." - -#: src/jade/tabs/register.jade:9 src/jade/tabs/register.jade:90 -#: src/jade/tabs/register.jade:115 src/jade/tabs/register.jade:158 +#: src/jade/tabs/register.jade:13 src/jade/tabs/register.jade:109 +#: src/jade/tabs/register.jade:141 src/jade/tabs/register.jade:188 msgid "Sign Up" -msgstr "Registreren" +msgstr "Aanmelden" -#: src/jade/tabs/register.jade:12 src/jade/tabs/register.jade:14 -#: src/jade/tabs/register.jade:16 src/jade/tabs/register.jade:120 -#: src/jade/tabs/register.jade:122 src/jade/tabs/register.jade:161 -#: src/jade/tabs/register.jade:163 src/jade/tabs/register.jade:165 +#: src/jade/tabs/register.jade:19 src/jade/tabs/register.jade:21 +#: src/jade/tabs/register.jade:23 src/jade/tabs/register.jade:146 +#: src/jade/tabs/register.jade:148 src/jade/tabs/register.jade:191 +#: src/jade/tabs/register.jade:193 src/jade/tabs/register.jade:195 msgid "Step {{1}}" msgstr "Stap {{1}}" -#: src/jade/tabs/register.jade:19 +#: src/jade/tabs/register.jade:26 msgid "Create Ripple name" -msgstr "Creëer een Ripple naam" +msgstr "Creëer Ripple-naam" -#: src/jade/tabs/register.jade:20 +#: src/jade/tabs/register.jade:27 msgid "" "Please choose a Ripple name below. You will use this Ripple name to login to" " Ripple Trade, so remember it! Ripple names are unique and public, like your" " current Ripple address. {{1}}" -msgstr "Kies een Ripple naam hieronder. Met deze Ripple naam moet U inloggen in Ripple Trade, U dient deze naam dus te onthouden. Ripple namen zijn uniek en publiek, net als uw huidige Ripple adres. {{1}}" +msgstr "Kies hieronder een Ripple-naam. U gebruikt deze Ripple-naam om in te loggen op Ripple Trade, dus onthoud hem goed! Ripple-namen zijn uniek en publiekelijk, net als uw huidige Ripple-adres. {{1}}" -#: src/jade/tabs/register.jade:21 +#: src/jade/tabs/register.jade:28 msgid "Learn More" -msgstr "Meer info" +msgstr "Meer Lezen" + +#: src/jade/tabs/register.jade:41 +msgid "Reserved for {{usernameReservedFor}}" +msgstr "Gereserveerd voor {{usernameReservedFor}}" + +#: src/jade/tabs/register.jade:43 +msgid "" +"This name belongs to a high-traffic website and has been reserved to prevent" +" phishing." +msgstr "Deze naam behoort tot een drukbezochte website en is gereserveerd om phishing te voorkomen." -#: src/jade/tabs/register.jade:36 +#: src/jade/tabs/register.jade:49 msgid "You can only use the following characters: a-z, 0-9 and hyphens (-)" msgstr "U kunt enkel gebruik maken van de volgende tekens: a-z, 0-9 en afbreekstreepjes (-)" -#: src/jade/tabs/register.jade:39 +#: src/jade/tabs/register.jade:55 msgid "Cannot use hyphens in a row (--)" msgstr "Afbreekstreepjes kunnen elkaar niet opvolgen (--)" -#: src/jade/tabs/register.jade:60 +#: src/jade/tabs/register.jade:80 msgid "Email address is invalid" -msgstr "Email adres is ongeldig." +msgstr "E-mail adres is ongeldig." -#: src/jade/tabs/register.jade:62 src/jade/tabs/security.jade:138 +#: src/jade/tabs/register.jade:82 src/jade/tabs/security.jade:151 msgid "Secret key" -msgstr "Geheime beveiligingssleutel:" +msgstr "Beveiligingssleutel" -#: src/jade/tabs/register.jade:63 src/jade/tabs/send.jade:50 -#: src/jade/tabs/trade.jade:331 src/jade/tabs/trade.jade:337 +#: src/jade/tabs/register.jade:83 src/jade/tabs/send.jade:43 +#: src/jade/tabs/trade.jade:441 msgid "hide" msgstr "verberg" -#: src/jade/tabs/register.jade:67 +#: src/jade/tabs/register.jade:88 msgid "Secret Account Key is invalid" -msgstr "Ongeldige geheime sleutel" +msgstr "Beveiligingssleutel is ongeldig" -#: src/jade/tabs/register.jade:69 +#: src/jade/tabs/register.jade:90 msgid "" "The account ~{{1}}{{2}} has already been created using this secret key." -msgstr "De portefeuille ~ {{1}} {{2}} is reeds aangemaakt met behulp van deze geheime sleutel." - -#: src/jade/tabs/register.jade:75 -msgid "Need to use your secret key? {{1}}" -msgstr "Heeft u uw geheime sleutel nodig? {{1}}" - -#: src/jade/tabs/register.jade:77 -msgid "Use key" -msgstr "Gebruik sleutel" +msgstr "Het account ~{{1}} {{2}} is reeds aangemaakt met behulp van deze beveiligingssleutel." -#: src/jade/tabs/register.jade:80 -msgid "I agree to the {{productName}} {{1:end-user license agreement}}" -msgstr "Ik ga akkoord met de {{productName}} {{1:licentieovereenkomst voor eindgebruikers}}" +#: src/jade/tabs/register.jade:98 +msgid "I agree to the {{productName}} {{1:Terms of Use}}" +msgstr "Ik ga akkoord met de {{productName}} {{1:Gebruiksvoorwaarden}}" -#: src/jade/tabs/register.jade:83 +#: src/jade/tabs/register.jade:101 msgid "" "Please see our {{1}} to see how we collect, use and share information about " "you" msgstr "Lees onze {{1}} om er achter te komen hoe wij informatie over u vergaren, gebruiken en delen" -#: src/jade/tabs/register.jade:91 +#: src/jade/tabs/register.jade:110 msgid "Migrate Account" -msgstr "Migreer Portefeille" +msgstr "Migreer Account" + +#: src/jade/tabs/register.jade:111 +msgid "Need to use your secret key? {{1}}" +msgstr "Heeft u uw beveiligingssleutel nodig? {{1}}" + +#: src/jade/tabs/register.jade:113 +msgid "Use key" +msgstr "Gebruik sleutel" -#: src/jade/tabs/register.jade:100 +#: src/jade/tabs/register.jade:121 msgid "An error occurred during registration. Please try again later." -msgstr "Er trad een fout op tijdens het registreren. Probeert u het later opnieuw." +msgstr "Er is een fout opgetreden bij het registreren. Probeert u het later nog eens." -#: src/jade/tabs/register.jade:101 +#: src/jade/tabs/register.jade:122 msgid "The reported error was: {{1}}" msgstr "De foutmelding betrof: {{1}}" -#: src/jade/tabs/register.jade:109 +#: src/jade/tabs/register.jade:131 msgid "" "There is already a wallet using this username, please choose a different " "username and try again." -msgstr "Er is reeds een portefeuille met deze naam, kies alstublieft een andere naam en probeert u het later opnieuw." +msgstr "Er is reeds een portefeuille met deze naam, kies alstublieft een andere naam en probeer het dan opnieuw." -#: src/jade/tabs/register.jade:124 +#: src/jade/tabs/register.jade:150 msgid "" "By proceeding, you understand that Ripple Trade does not provide a password " "or secret key recovery mechanism. If you forget your Ripple name/password " "and secret key, you will be unable to access this Ripple account." -msgstr "Door verder te gaan, geef je aan te begrijpen dat Ripple Trade niet voorziet in een herstelmechanisme om een wachtwoord of geheime sleutel te recupereren. Als u zowel uw Ripple naam/wachtwoord als de geheime sleutel vergeet, heeft U geen toegang meer tot deze Ripple portefeuille." +msgstr "Door verder te gaan geeft u aan te begrijpen dat Ripple Trade niet voorziet in een herstelmechanisme om een wachtwoord of beveiligingssleutel te herkrijgen. Als u zowel uw Ripple-naam/-wachtwoord als de beveiligingssleutel vergeet, heeft u geen toegang meer tot dit Ripple-account." -#: src/jade/tabs/register.jade:129 +#: src/jade/tabs/register.jade:155 msgid "" "You are now migrating your account- meaning you'll no longer be able to " "access your account from ripple.com/client. You will retain all of your " "balances, contacts, and account history. Your account will use the same " "secret key as before. If you have already saved your secret key, please " "continue your migration." -msgstr "U gaat nu uw portefeuille migreren - Dit betekent dat U niet langer zal in staat zijn om toegang te krijgen tot uw portefeuille vanaf ripple.com/cliënt. U zal na de migratie al uw saldi, contacten, en de portefeuille-geschiedenis behouden. Uw portefeille zal dezelfde geheime sleutel gebruiken als voorheen. Als U uw geheime sleutel reeds heeft opgeslagen, kunt U verder gaan met de migratie." +msgstr "U gaat nu uw account migreren. Dit betekent dat u niet langer toegang houdt tot uw account op ripple.com/client. U zult met de migratie al uw saldi, contacten, en uw gehele accountgeschiedenis behouden. Uw account zal dezelfde beveiligingssleutel gebruiken als voorheen. Als u uw beveiligingssleutel reeds heeft opgeslagen dan kunt u door met migreren." -#: src/jade/tabs/register.jade:136 +#: src/jade/tabs/register.jade:162 msgid "" "The secret key unlocks access to all your account funds in the event you " "lose your Ripple name or password. Please write it down and store it " "somewhere private and safe. {{1:Read more}} about keys and wallet safety." -msgstr "De beveiligingssleutel geeft u toegang tot al uw financiën in het geval dat u uw Ripple naam of wachtwoord kwijtraakt. Schrijf deze op en bewaar het op een veilige plek. {{1:Meer info}} over beveiligingssleutels en portefeuille-beveiliging." +msgstr "De beveiligingssleutel geeft u toegang tot al uw vermogen in het geval u uw Ripple-naam of -wachtwoord bent verloren. Schrijf deze alstublieft op en bewaar hem op een veilige plek. {{1:Lees meer}} over beveiligingssleutels en portefeuillebeveiliging." -#: src/jade/tabs/register.jade:141 +#: src/jade/tabs/register.jade:167 msgid "" "If you have not saved your secret key, please write it down and store it " "somewhere private and safe. In the event you lose your Ripple name or " "password, you can use this secret key to recover your funds." -msgstr "Als U uw geheime sleutel niet heeft opgeslagen, schrijf deze op en bewaar hem ergens privaat en veilig. In het geval U uw Ripple of wachtwoord verliest, kunt u deze geheime sleutel gebruiken om uw portefeuille en uw geld te recupereren." +msgstr "Als u uw beveiligingssleutel niet heeft opgeslagen, schrijf deze dan op en bewaar hem op een veilige plek. In het geval u uw Ripple-naam of -wachtwoord verliest, kunt u deze beveiligingssleutel gebruiken om uw vermogen te herkrijgen." + +#: src/jade/tabs/register.jade:176 +msgid "Show secret key" +msgstr "Toon beveiligingssleutel" + +#: src/jade/tabs/register.jade:177 +msgid "Hide secret key" +msgstr "Verberg beveiligingssleutel" -#: src/jade/tabs/register.jade:154 +#: src/jade/tabs/register.jade:180 msgid "Continue to email verification" -msgstr "Verder naar e-mail verificatie" +msgstr "Verder naar e-mailverificatie" -#: src/jade/tabs/register.jade:167 +#: src/jade/tabs/register.jade:197 msgid "" "We’ve sent an email to {{1}}. To complete registration, click the link in " "the email." -msgstr "We hebben een email gestuurd naar {{1}}. Om uw registratie gereed te maken, klikt u op de link in de email." +msgstr "We hebben een e-mail verzonden naar {{1}}. Klik op de link in de e-mail om de registratie te voltooien." -#: src/jade/tabs/register.jade:170 +#: src/jade/tabs/register.jade:200 msgid "Email token has been resent." -msgstr "E-mail token is opnieuw verzonden" +msgstr "E-mail token is opnieuw verzonden." -#: src/jade/tabs/register.jade:173 +#: src/jade/tabs/register.jade:203 msgid "Email Address:" -msgstr "E-mail Adres" +msgstr "E-mailadres:" -#: src/jade/tabs/register.jade:178 +#: src/jade/tabs/register.jade:210 msgid "Re-send Email" -msgstr "Verstuur de email opnieuw" +msgstr "Verzend e-mail opnieuw" -#: src/jade/tabs/security.jade:5 +#: src/jade/tabs/security.jade:7 msgid "Active Session Timeout" -msgstr "Actieve Sessie Timeout" +msgstr "Actieve Sessie-timeout" -#: src/jade/tabs/security.jade:6 +#: src/jade/tabs/security.jade:8 msgid "" "To view or edit your security settings, you must currently have an active " "session." msgstr "Om uw beveiligingsinstellingen te kunnen zien of bewerken moet u een actieve sessie hebben." -#: src/jade/tabs/security.jade:13 +#: src/jade/tabs/security.jade:16 msgid "Restore Session" msgstr "Sessie Herstellen" -#: src/jade/tabs/security.jade:22 +#: src/jade/tabs/security.jade:25 msgid "Your Ripple password has been changed, please login again" -msgstr "Uw Ripple wachtwoord is met succes gewijzigd." +msgstr "Uw Ripple-wachtwoord is succesvol gewijzigd. Gelieve opnieuw in te loggen." -#: src/jade/tabs/security.jade:24 +#: src/jade/tabs/security.jade:27 msgid "Couldn't change your Ripple password, please try again later." -msgstr "Uw Ripple wachtwoord kon niet worden gewijzigd, probeer het later opnieuw." +msgstr "Uw Ripple-wachtwoord kon niet worden gewijzigd. Probeert u het later nog eens." -#: src/jade/tabs/security.jade:27 +#: src/jade/tabs/security.jade:30 msgid "Changing your Ripple password..." -msgstr "Uw Ripple wachtwoord wordt aangepast..." +msgstr "Uw Ripple-wachtwoord wordt gewijzigd..." -#: src/jade/tabs/security.jade:28 +#: src/jade/tabs/security.jade:31 msgid "Your Ripple password has been changed successfully." -msgstr "Uw Ripple wachtwoord is met succes gewijzigd." +msgstr "Uw Ripple-wachtwoord is succesvol gewijzigd." -#: src/jade/tabs/security.jade:29 +#: src/jade/tabs/security.jade:32 msgid "Unable to load Two-factor authentication settings." msgstr "Instellingen voor Two-factor authentication konden niet worden geladen." -#: src/jade/tabs/security.jade:30 +#: src/jade/tabs/security.jade:33 msgid "Error saving Two-factor authentication settings." msgstr "Er is een fout opgetreden bij het opslaan van de instellingen voor Two-factor authentication." -#: src/jade/tabs/security.jade:31 +#: src/jade/tabs/security.jade:34 msgid "The verification code is invalid." msgstr "De verificatiecode is ongeldig." -#: src/jade/tabs/security.jade:32 +#: src/jade/tabs/security.jade:36 msgid "Two-factor authentication has been successfully enabled." msgstr "Two-factor authentication is succesvol aangezet." -#: src/jade/tabs/security.jade:33 +#: src/jade/tabs/security.jade:37 msgid "Two-factor authentication has been successfully disabled." msgstr "Two-factor authentication is succesvol uitgezet." +#: src/jade/tabs/security.jade:38 +msgid "Password protection has been successfully enabled." +msgstr "Wachtwoordbeveiliging is succesvol aangezet." + #: src/jade/tabs/security.jade:39 +msgid "Password protection has been successfully disabled." +msgstr "Wachtwoordbeveiliging is succesvol uitgezet." + +#: src/jade/tabs/security.jade:45 msgid "Security settings" msgstr "Beveiligingsinstellingen" -#: src/jade/tabs/security.jade:44 +#: src/jade/tabs/security.jade:51 msgid "Loading Two-factor authentication settings..." -msgstr "Bezig met het laden van de instellingen voor Two-factor authentication..." +msgstr "Instellingen voor Two-factor authentication worden geladen..." -#: src/jade/tabs/security.jade:47 +#: src/jade/tabs/security.jade:55 msgid "Enabled" msgstr "Aangezet" -#: src/jade/tabs/security.jade:48 +#: src/jade/tabs/security.jade:56 msgid "Disabled" msgstr "Uitgezet" -#: src/jade/tabs/security.jade:50 +#: src/jade/tabs/security.jade:58 msgid "disable" msgstr "uitzetten" -#: src/jade/tabs/security.jade:52 +#: src/jade/tabs/security.jade:60 msgid "enable" msgstr "aanzetten" -#: src/jade/tabs/security.jade:58 +#: src/jade/tabs/security.jade:66 msgid "" "Authy is providing two-factor authentication for Ripple Trade. To enable " "two-factor authentication, you must share some information with Authy." -msgstr "Two-factor authentication voor Ripple trade wordt mogelijk gemaakt door Authy. Om two-factor authentication aan te zetten moet u bepaalde informatie delen met Authy." +msgstr "Two-factor authentication voor Ripple Trade wordt mogelijk gemaakt door Authy. Om two-factor authentication aan te zetten moet u bepaalde informatie delen met Authy." -#: src/jade/tabs/security.jade:61 +#: src/jade/tabs/security.jade:69 msgid "- Your email address:" -msgstr "- Uw e-mail adres:" +msgstr "- Uw e-mailadres:" -#: src/jade/tabs/security.jade:64 +#: src/jade/tabs/security.jade:72 msgid "- Your phone number:" msgstr "- Uw telefoonnummer" -#: src/jade/tabs/security.jade:66 +#: src/jade/tabs/security.jade:74 msgid "By proceeding, you agree to the Authy {{1: terms of service.}}" msgstr "Door verder te gaan accepteert u de {{1: Algemene voorwaarden}} van Authy" -#: src/jade/tabs/security.jade:70 +#: src/jade/tabs/security.jade:78 msgid "Share" msgstr "Delen" -#: src/jade/tabs/security.jade:75 +#: src/jade/tabs/security.jade:84 msgid "Saving settings..." -msgstr "Bezig met opslaan..." +msgstr "Instellingen worden opgeslagen..." -#: src/jade/tabs/security.jade:76 +#: src/jade/tabs/security.jade:85 msgid "Disabling Two-factor authentication..." msgstr "Two-factor authentication wordt uitgezet..." -#: src/jade/tabs/security.jade:77 +#: src/jade/tabs/security.jade:86 msgid "Enabling Two-factor authentication..." msgstr "Two-factor authentication wordt aangezet..." -#: src/jade/tabs/security.jade:94 +#: src/jade/tabs/security.jade:104 msgid "Resend Code" msgstr "Code Opnieuw Verzenden" -#: src/jade/tabs/security.jade:99 +#: src/jade/tabs/security.jade:110 msgid "Enable" msgstr "Aanzetten" -#: src/jade/tabs/security.jade:103 +#: src/jade/tabs/security.jade:114 msgid "Ripple password" -msgstr "Ripple wachtwoord" +msgstr "Ripple-wachtwoord" -#: src/jade/tabs/security.jade:116 +#: src/jade/tabs/security.jade:129 msgid "New password" msgstr "Nieuw wachtwoord" -#: src/jade/tabs/security.jade:140 +#: src/jade/tabs/security.jade:153 msgid "" "Your secret key unlocks access to your account funds. Please write it down " "and store it somewhere private and safe. In the event you lose your Ripple " "name or password, you can use this secret key to recover your funds." -msgstr "Uw beveligingssleutel biedt toegang tot al uw financiën. Schrijf deze op om op een veilige plek te bewaren. In het geval u uw Ripple naam of wachtwoord verliest, kunt u deze beveiligingssleutel gebruiken om uw financiën te herkrijgen." +msgstr "Uw beveligingssleutel biedt toegang tot al uw vermogen. Schrijf deze op om op een veilige plek te bewaren. In het geval u uw Ripple-naam of -wachtwoord verliest, kunt u deze beveiligingssleutel gebruiken om uw vermogen te herkrijgen." -#: src/jade/tabs/security.jade:150 +#: src/jade/tabs/security.jade:165 msgid "Password protection for transactions" msgstr "Wachtwoordbeveiliging voor transacties" -#: src/jade/tabs/security.jade:153 +#: src/jade/tabs/security.jade:168 msgid "" "If you turn off password requests, you’ll still need to enter your password " "after each page refresh." msgstr "Ook als u wachtwoordverzoeken uitzet dient u telkens na het vernieuwen van de pagina uw wachtwoord in te voeren." -#: src/jade/tabs/security.jade:161 +#: src/jade/tabs/security.jade:176 msgid "Yes" msgstr "Ja" -#: src/jade/tabs/security.jade:162 +#: src/jade/tabs/security.jade:177 msgid "No" msgstr "Nee" +#: src/jade/tabs/security.jade:192 +msgid "Delete Ripple Trade account" +msgstr "Verwijder Ripple Trade-account" + +#: src/jade/tabs/security.jade:194 +msgid "" +"This deletes your Ripple Trade account. You will no longer be able to login " +"to Ripple Trade and your account data will be deleted. However, you can " +"still access your funds using your secret key." +msgstr "Hiermee verwijdert u uw Ripple Trade-account. U zult niet langer in staat zijn in te loggen bij Ripple Trade en uw accountdata zullen worden verwijderd. U houdt echter wel toegang tot uw vermogen met het gebruik van uw beveiligingssleutel." + #: src/jade/tabs/send.jade:12 msgid "You have to be funded before you can send money" -msgstr "Uw account moet gefinancierd zijn voordat u geld kunt verzenden" +msgstr "Uw account moet gefinancierd zijn voordat u geld kunt versturen" -#: src/jade/tabs/send.jade:19 src/jade/tabs/send.jade:32 +#: src/jade/tabs/send.jade:25 msgid "Recipient" msgstr "Ontvanger" -#: src/jade/tabs/send.jade:24 src/jade/tabs/send.jade:37 +#: src/jade/tabs/send.jade:30 msgid "Please enter a recipient." msgstr "Voer een ontvanger in." -#: src/jade/tabs/send.jade:26 +#: src/jade/tabs/send.jade:32 msgid "" "Recipient should be a Ripple name, a contact, or Ripple/Bitcoin address." -msgstr "Ontvanger dient een Ripple naam, contact, of Ripple/Bitcoin adres te zijn." +msgstr "Ontvanger dient een Ripple-naam, contact, of Ripple-/Bitcoinadres te zijn." -#: src/jade/tabs/send.jade:28 src/jade/tabs/send.jade:41 +#: src/jade/tabs/send.jade:34 msgid "This email address is not Ripple-enabled." -msgstr "Dit email-adres heeft geen Ripple functionaliteit." +msgstr "Dit e-mailadres heeft geen Ripple functionaliteit." -#: src/jade/tabs/send.jade:39 -msgid "Recipient should be a contact or Ripple/Bitcoin address." -msgstr "Ontvanger dient een contact of Ripple/Bitcoin adres te zijn." - -#: src/jade/tabs/send.jade:45 +#: src/jade/tabs/send.jade:38 msgid "Show destination tag" -msgstr "Toon bestemmings-etiket" +msgstr "Toon bestemmingskenmerk" -#: src/jade/tabs/send.jade:54 +#: src/jade/tabs/send.jade:47 msgid "Destination cannot be blank." -msgstr "U moet eerst een bestemming kiezen." +msgstr "Bestemming is een verplicht veld." -#: src/jade/tabs/send.jade:55 +#: src/jade/tabs/send.jade:48 msgid "" "Recipient requires a destination tag to be specified for the transaction. If" " you don't know the destination tag, please contact them before doing a " "transaction." msgstr "Ontvanger vereist een bestemmingskenmerk voor de transactie. Als u het bestemmingskenmerk niet weet kunt u contact opnemen met de ontvanger voordat u de transactie uitvoert." -#: src/jade/tabs/send.jade:60 +#: src/jade/tabs/send.jade:53 msgid "Source tag" msgstr "Bron-kenmerk" -#: src/jade/tabs/send.jade:63 +#: src/jade/tabs/send.jade:56 msgid "Invalid source tag" msgstr "Ongeldig bron-kenmerk" -#: src/jade/tabs/send.jade:75 +#: src/jade/tabs/send.jade:59 +msgid "Invoice ID" +msgstr "Factuur ID" + +#: src/jade/tabs/send.jade:62 +msgid "Invoice ID must not be more than 64 characters long." +msgstr "Factuur ID mag maximaal 64 karakters bevatten." + +#: src/jade/tabs/send.jade:77 msgid "Recipient will receive" msgstr "Ontvanger krijgt" -#: src/jade/tabs/send.jade:86 +#: src/jade/tabs/send.jade:88 msgid "{{send.recipient | rpcontactname}} can't receive this currency." msgstr "{{send.recipient | rpcontactname}} kan deze valuta niet ontvangen." -#: src/jade/tabs/send.jade:90 +#: src/jade/tabs/send.jade:92 src/jade/tabs/trust.jade:102 msgid "Amount must be greater than zero." -msgstr "Hoeveelheid moet groter dan nul zijn." +msgstr "Bedrag moet groter zijn dan nul." -#: src/jade/tabs/send.jade:91 +#: src/jade/tabs/send.jade:93 msgid "" -"This transaction exceeds your balance, you can send a max. of " -"{{account.max_spend | rpamount:{rel_precision: 0} }} XRP" -msgstr "Deze transactie overschrijdt uw saldo. U kunt maximaal {{account.max_spend | rpamount:{rel_precision: 0} }} XRP versturen" +"You are either trying to send too little or too much XRP.Minimum amount is " +"0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "U probeert nu ofwel te weinig ofwel te veel XRP te versturen. De minimumbedrag is 0.000001 XRP en het maximum is 100 miljard XRP." -#: src/jade/tabs/send.jade:94 +#: src/jade/tabs/send.jade:97 msgid "" "Recipient does not allow XRP payments. Are you sure you want to send XRP " "anyway?" -msgstr "De ontvanger staat geen betalingen met XRP toe. Weet u zeker dat u toch XRP wilt verzenden?" +msgstr "De ontvanger staat geen betalingen in XRP toe. Weet u zeker dat u toch XRP wilt versturen?" -#: src/jade/tabs/send.jade:96 +#: src/jade/tabs/send.jade:99 msgid "" "{{send.recipient | rpcontactname}}trusts you for {{send.trust_limit | " "rpamount}} {{send.trust_limit | rpcurrency}}." -msgstr "{{send.recipient | rpcontactname}} vertrouwt u toe voor {{send.trust_limit | rpamount}} {{send.trust_limit | rpcurrency}}." +msgstr "{{send.recipient | rpcontactname}} vertrouwt u {{send.trust_limit | rpamount}} {{send.trust_limit | rpcurrency}} toe." -#: src/jade/tabs/send.jade:100 +#: src/jade/tabs/send.jade:103 msgid "Send XRP" -msgstr "Verzend XRP" +msgstr "Verstuur XRP" -#: src/jade/tabs/send.jade:104 +#: src/jade/tabs/send.jade:107 msgid "" "Destination account is unfunded; send at least {{send.xrp_deficiency | " "rpamount}} XRP to fund it.{{1}}" -msgstr "Het account van de ontvanger is niet gefinancierd; verzend tenminste {{send.xrp_deficiency | rpamount}} XRP om het account te financieren.{{1}}" +msgstr "Het account van de ontvanger is niet gefinancierd; verstuur ten minste {{send.xrp_deficiency | rpamount}} XRP om het account te financieren.{{1}}" -#: src/jade/tabs/send.jade:109 +#: src/jade/tabs/send.jade:114 msgid "Checking" -msgstr "Nakijken" +msgstr "Bezig met controleren" -#: src/jade/tabs/send.jade:111 +#: src/jade/tabs/send.jade:117 msgid "Analyzing address" -msgstr "Adres analyseren" +msgstr "Adressen worden geanalyseerd..." -#: src/jade/tabs/send.jade:113 +#: src/jade/tabs/send.jade:120 msgid "Scanning accepted currencies" msgstr "Scannen naar geaccepteerde valuta" -#: src/jade/tabs/send.jade:115 +#: src/jade/tabs/send.jade:123 msgid "Requesting quote" -msgstr "Offerte aan het opvragen" +msgstr "Quote wordt opgevraagd" -#: src/jade/tabs/send.jade:117 +#: src/jade/tabs/send.jade:126 msgid "Calculating paths" -msgstr "Paden aan het berekenen" +msgstr "Paden worden berekend" -#: src/jade/tabs/send.jade:119 +#: src/jade/tabs/send.jade:129 msgid "Calculating alternatives" -msgstr "Alternatieven aan het berekenen" +msgstr "Alternatieven worden berekend" -#: src/jade/tabs/send.jade:121 +#: src/jade/tabs/send.jade:130 msgid "" "You cannot send {{send.amount}} {{send.currency}} to {{send.recipient}}. " "Either your account has insufficient funds, or {{send.recipient}} doesn't " "accept {{send.currency}}." -msgstr "U kan {{send.amount}} {{send.currency}} niet naar {{send.recipient}} verzenden. Of het saldo van uw portefeuille is niet toereikend, of {{send.recipient}} aanvaardt geen {{send.currency}}." +msgstr "U kunt {{send.amount}} {{send.currency}} niet naar {{send.recipient}} versturen. Ofwel het saldo op uw account is niet toereikend, ofwel {{send.recipient}} aanvaardt geen {{send.currency}}." -#: src/jade/tabs/send.jade:125 +#: src/jade/tabs/send.jade:134 msgid "" "You cannot send {{send.amount}} {{send.currency}} to{{send.recipient}}. Your" " account has insufficient funds." -msgstr "U kunt geen {{send.amount}} {{send.currency}} versturen naar {{send.recipient}}. Het saldo in uw portefeuille is ontoereikend." +msgstr "U kunt geen {{send.amount}} {{send.currency}} versturen naar{{send.recipient}}. Het saldo in uw portefeuille is ontoereikend." -#: src/jade/tabs/send.jade:128 +#: src/jade/tabs/send.jade:137 msgid "There are no valid currency choices for this destination." msgstr "Voor deze bestemming zijn geen valutakeuzes beschikbaar." -#: src/jade/tabs/send.jade:130 +#: src/jade/tabs/send.jade:139 msgid "Error while retrieving quote for outbound payment. {{1}}" -msgstr "Fout bij het opvragen van een quote voor te verzenden betaling. {{1}}" +msgstr "Fout bij het opvragen van een quote voor de te verzenden betaling. {{1}}" -#: src/jade/tabs/send.jade:139 +#: src/jade/tabs/send.jade:148 msgid "You can send" -msgstr "U kunt verzenden" +msgstr "U gaat versturen" -#: src/jade/tabs/send.jade:141 +#: src/jade/tabs/send.jade:150 msgid "Or you can send" -msgstr "Of u kunt verzenden" +msgstr "Of u kunt versturen" -#: src/jade/tabs/send.jade:155 +#: src/jade/tabs/send.jade:164 msgid "Send {{ alt.amount | rpcurrency }} {{1}}" msgstr "Verstuur {{ alt.amount | rpcurrency }} {{1}}" -#: src/jade/tabs/send.jade:170 +#: src/jade/tabs/send.jade:181 msgid "Ripple is calculating a path for your payment." msgstr "Ripple berekent een pad voor uw betaling." -#: src/jade/tabs/send.jade:176 +#: src/jade/tabs/send.jade:186 msgid "You are sending {{1}} to" -msgstr "U gaat {{1}} verzenden naar" +msgstr "U gaat {{1}} versturen naar" -#: src/jade/tabs/send.jade:184 +#: src/jade/tabs/send.jade:194 msgid "Destination tag: {{send.dt}}" msgstr "Bestemmingskenmerk: {{send.dt}}" -#: src/jade/tabs/send.jade:185 +#: src/jade/tabs/send.jade:195 msgid "They will receive" -msgstr "Diegene ontvangt" +msgstr "Ontvanger krijgt" -#: src/jade/tabs/send.jade:188 +#: src/jade/tabs/send.jade:198 msgid "You will pay at most" -msgstr "Ten hoogste betaalt u" +msgstr "U betaalt ten hoogste" -#: src/jade/tabs/send.jade:194 +#: src/jade/tabs/send.jade:204 msgid "Are you sure?" -msgstr "Weet u het zeker?" +msgstr "Weet u dit zeker?" -#: src/jade/tabs/send.jade:200 +#: src/jade/tabs/send.jade:210 msgid "Password required to unlock wallet" msgstr "Wachtwoord vereist om de portefeuille te ontgrendelen" -#: src/jade/tabs/send.jade:224 src/jade/tabs/send.jade:252 +#: src/jade/tabs/send.jade:234 src/jade/tabs/send.jade:266 msgid "Contact saved!" msgstr "Contact opgeslagen!" -#: src/jade/tabs/send.jade:226 src/jade/tabs/send.jade:254 +#: src/jade/tabs/send.jade:236 src/jade/tabs/send.jade:268 msgid "Add this address to contacts" msgstr "Voeg dit adres toe aan contacten" -#: src/jade/tabs/send.jade:230 src/jade/tabs/send.jade:258 +#: src/jade/tabs/send.jade:242 src/jade/tabs/send.jade:274 msgid "Name this user" msgstr "Benoem deze gebruiker" -#: src/jade/tabs/send.jade:236 src/jade/tabs/send.jade:265 -#: src/jade/tabs/trust.jade:283 +#: src/jade/tabs/send.jade:246 src/jade/tabs/send.jade:278 +msgid "This contact already exists, please choose another name." +msgstr "Dit contact bestaat al, kies alstublieft een andere naam." + +#: src/jade/tabs/send.jade:250 src/jade/tabs/send.jade:283 +#: src/jade/tabs/trust.jade:233 msgid "Saving..." -msgstr "Aan het opslaan..." +msgstr "Bezig met opslaan..." -#: src/jade/tabs/send.jade:241 src/jade/tabs/send.jade:271 +#: src/jade/tabs/send.jade:255 src/jade/tabs/send.jade:289 msgid "Send another payment" msgstr "Verzend nog een betaling" -#: src/jade/tabs/settings/navbar.jade:3 -msgid "Advanced" -msgstr "Geavanceerd" +#: src/jade/tabs/settings/navbar.jade:2 +msgid "Security" +msgstr "Beveiliging" + +#: src/jade/tabs/settingstrade.jade:12 +msgid "Trade settings" +msgstr "Handelsinstellingen" -#: src/jade/tabs/trade.jade:10 -msgid "Loading order book..." -msgstr "Orderboek aan het laden..." +#: src/jade/tabs/settingstrade.jade:14 +msgid "Trade currency pairs" +msgstr "Handelen in valutaparen" -#: src/jade/tabs/trade.jade:23 +#: src/jade/tabs/trade.jade:12 src/jade/tabs/trade.jade:451 +msgid "Loading Order Book" +msgstr "Orderboek Wordt Geladen" + +#: src/jade/tabs/trade.jade:31 src/jade/tabs/widgets/markets.jade:24 msgid "flip" -msgstr "omdraaien" +msgstr "draai" + +#: src/jade/tabs/trade.jade:34 +msgid "add pair" +msgstr "paar toevoegen" -#: src/jade/tabs/trade.jade:27 src/jade/tabs/trade.jade:35 -msgid "Base currency" +#: src/jade/tabs/trade.jade:37 +msgid "edit pairs" +msgstr "paren wijzigen" + +#: src/jade/tabs/trade.jade:41 +msgid "Base Currency" msgstr "Basisvaluta" -#: src/jade/tabs/trade.jade:30 src/jade/tabs/trade.jade:41 -msgid "Change gateway" -msgstr "Gateway veranderen" +#: src/jade/tabs/trade.jade:44 +msgid "Base Gateway" +msgstr "Basis-gateway" + +#: src/jade/tabs/trade.jade:49 +msgid "Counter Currency" +msgstr "Tegenvaluta" -#: src/jade/tabs/trade.jade:38 src/jade/tabs/trade.jade:46 -msgid "Counter currency" -msgstr "Variabele valuta" +#: src/jade/tabs/trade.jade:52 +msgid "Counter Gateway" +msgstr "Tegen-Gateway" -#: src/jade/tabs/trade.jade:50 +#: src/jade/tabs/trade.jade:57 +msgid "Add" +msgstr "Toevoegen" + +#: src/jade/tabs/trade.jade:60 msgid "Base currency issuer ({{order.first_currency | rpcurrency}})" -msgstr "Basis-valuta verstrekker ({{order.first_currency | rpcurrency}})" +msgstr "Basisvaluta verstrekker ({{order.first_currency | rpcurrency}})" -#: src/jade/tabs/trade.jade:55 +#: src/jade/tabs/trade.jade:63 +msgid "Ripple name or contact" +msgstr "Ripple-naam of contact" + +#: src/jade/tabs/trade.jade:65 msgid "Not a valid Ripple address or contact" msgstr "Ongeldig Ripple-adres of contact" -#: src/jade/tabs/trade.jade:60 +#: src/jade/tabs/trade.jade:70 msgid "Counter currency issuer ({{order.second_currency | rpcurrency}})" -msgstr "Contra-valuta verstrekker ({{order.second_currency | rpcurrency}})" +msgstr "Tegenvaluta verstrekker ({{order.second_currency | rpcurrency}})" -#: src/jade/tabs/trade.jade:65 +#: src/jade/tabs/trade.jade:75 msgid "Not a valid Ripple name or address" -msgstr "Ripple naam of adres is ongeldig" +msgstr "Ripple-naam of -adres is ongeldig" -#: src/jade/tabs/trade.jade:69 +#: src/jade/tabs/trade.jade:79 msgid "" -"You must select a gateway to trade currencies. Click the “Change gateway” " -"link above and enter the gateway's address or Ripple name. {{1:Find a " -"gateway.}}" -msgstr "U moet een gateway selecteren om in valuta te handelen. Klik hierboven op \"Gateway veranderen\" en voer het adres of de Ripple naam van de gateway in. {{1:Vind een gateway.}}" +"To show an orderbook, choose from the dropdown above or click \"Add custom " +"pair\"." +msgstr "Om een orderboek te zien klikt u op het keuzemenu of op de knop \"paar toevoegen\"." -#: src/jade/tabs/trade.jade:79 +#: src/jade/tabs/trade.jade:86 msgid "Bid" -msgstr "Aanbod" +msgstr "Bied" -#: src/jade/tabs/trade.jade:84 +#: src/jade/tabs/trade.jade:91 msgid "Ask" -msgstr "Vraag" +msgstr "Laat" -#: src/jade/tabs/trade.jade:89 +#: src/jade/tabs/trade.jade:96 msgid "Spread" -msgstr "Spreiding" +msgstr "Spread" -#: src/jade/tabs/trade.jade:94 +#: src/jade/tabs/trade.jade:101 msgid "Last price" -msgstr "Meest recente prijs" +msgstr "Laatste koers" -#: src/jade/tabs/trade.jade:101 +#: src/jade/tabs/trade.jade:108 msgid "You have to be funded before you can trade" msgstr "Uw account moet gefinancierd zijn voordat u kunt handelen" -#: src/jade/tabs/trade.jade:108 +#: src/jade/tabs/trade.jade:115 msgid "Buy {{1}} {{order.first_currency | rpcurrency}}" msgstr "Koop {{1}} {{order.first_currency | rpcurrency}}" -#: src/jade/tabs/trade.jade:111 +#: src/jade/tabs/trade.jade:118 msgid "Sell {{1}} {{order.first_currency | rpcurrency}}" msgstr "Verkoop {{1}} {{order.first_currency | rpcurrency}}" -#: src/jade/tabs/trade.jade:114 src/jade/tabs/trade.jade:123 +#: src/jade/tabs/trade.jade:121 src/jade/tabs/trade.jade:130 msgid "{{1}} available" msgstr "{{1}} beschikbaar" -#: src/jade/tabs/trade.jade:137 +#: src/jade/tabs/trade.jade:144 msgid "Amount To Buy" -msgstr "Te kopen hoeveelheid" +msgstr "Te Kopen Hoeveelheid" -#: src/jade/tabs/trade.jade:138 +#: src/jade/tabs/trade.jade:145 msgid "Amount To Sell" -msgstr "Te verkopen hoeveelheid" +msgstr "Te Verkopen Hoeveelheid" -#: src/jade/tabs/trade.jade:145 src/jade/tabs/trade.jade:160 -#: src/jade/tabs/trade.jade:175 +#: src/jade/tabs/trade.jade:152 src/jade/tabs/trade.jade:167 +#: src/jade/tabs/trade.jade:182 msgid "Required" msgstr "Vereist" -#: src/jade/tabs/trade.jade:147 src/jade/tabs/trade.jade:162 -#: src/jade/tabs/trade.jade:177 +#: src/jade/tabs/trade.jade:154 src/jade/tabs/trade.jade:169 +#: src/jade/tabs/trade.jade:184 msgid "Must be greater than zero" msgstr "Moet groter zijn dan nul" -#: src/jade/tabs/trade.jade:149 src/jade/tabs/trade.jade:164 -#: src/jade/tabs/trade.jade:179 -msgid "Minimum is a drop (0.000001) and maximum is 100 billion XRPs" -msgstr "Minimum is een 'drop' (0.000001) en maximum is 100 miljard XRP" +#: src/jade/tabs/trade.jade:156 src/jade/tabs/trade.jade:171 +#: src/jade/tabs/trade.jade:186 +msgid "" +"Minimum amount of XRP you can send is a drop (0.000001) and the maximum is " +"100 billion XRPs." +msgstr "Minimumbedrag dat u kunt versturen is een druppel (0.000001) en het maximum is 100 miljard XRP" -#: src/jade/tabs/trade.jade:153 +#: src/jade/tabs/trade.jade:160 msgid "Price of Each" msgstr "Prijs per stuk" -#: src/jade/tabs/trade.jade:168 +#: src/jade/tabs/trade.jade:175 msgid "Order Value (max)" -msgstr "Waarde order (max)" +msgstr "Orderwaarde (max)" -#: src/jade/tabs/trade.jade:185 +#: src/jade/tabs/trade.jade:192 msgid "You are wanting to buy {{1}} for {{2}} ({{3}} per {{4}})" -msgstr "U wilt kopen {{1}} voor {{2}} ({{3}} per {{4}})" +msgstr "U wilt {{1}} kopen voor {{2}} ({{3}} per {{4}})" -#: src/jade/tabs/trade.jade:194 +#: src/jade/tabs/trade.jade:201 msgid "You are wanting to sell {{1}} for {{2}} ({{3}} per {{4}})" -msgstr "U wil verkopen {{1}} voor {{2}} ({{3}} per {{4}})" +msgstr "U wilt {{1}} verkopen voor {{2}} ({{3}} per {{4}})" -#: src/jade/tabs/trade.jade:206 +#: src/jade/tabs/trade.jade:213 msgid "Buy" msgstr "Kopen" -#: src/jade/tabs/trade.jade:207 +#: src/jade/tabs/trade.jade:214 msgid "Sell" msgstr "Verkopen" -#: src/jade/tabs/trade.jade:213 +#: src/jade/tabs/trade.jade:220 msgid "You do not have sufficient funds to create an order." -msgstr "U heeft niet genoeg saldo om een order te creëren." - -#: src/jade/tabs/trade.jade:218 -msgid "CAUTION: Your order is far off from the current market price." -msgstr "LET OP: Uw order wijkt sterk af van de huidige marktprijs." +msgstr "U heeft niet genoeg saldo om een order aan te maken." -#: src/jade/tabs/trade.jade:220 +#: src/jade/tabs/trade.jade:225 msgid "" "You are about to create an order to {{1: buy}} {{2: " -"sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}" -msgstr "U staat op het punt een order aan te maken om {{3}}{{1: te kopen}} {{2: te verkopen}}{{4:voor}}{{5}}{{6}}{{7:Weet u dit zeker?}}" +"sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}{{8}}" +msgstr "U staat op het punt een order aan te maken voor de {{1: aankoop van}} {{2: verkoop van}}{{3}}{{4:voor}}{{5}}{{6}}{{7:Weet u dit zeker?}}{{8}}" + +#: src/jade/tabs/trade.jade:242 +msgid "CAUTION: Your order is far off from the current market price." +msgstr "LET OP: Uw order wijkt sterk af van de huidige koers." -#: src/jade/tabs/trade.jade:239 +#: src/jade/tabs/trade.jade:246 src/jade/tabs/trade.jade:407 msgid "« Back" msgstr "« Terug" -#: src/jade/tabs/trade.jade:246 +#: src/jade/tabs/trade.jade:255 msgid "Sending order to Ripple network..." -msgstr "De order wordt naar het Ripple netwerk verzonden..." +msgstr "Order wordt naar het Ripple-netwerk verzonden..." -#: src/jade/tabs/trade.jade:252 +#: src/jade/tabs/trade.jade:261 msgid "Your order has been submitted." msgstr "Uw order is geplaatst." -#: src/jade/tabs/trade.jade:254 +#: src/jade/tabs/trade.jade:263 msgid "Your order is now active." msgstr "Uw order is nu actief." -#: src/jade/tabs/trade.jade:256 -msgid "Your order is filled." +#: src/jade/tabs/trade.jade:265 +msgid "Your order has been filled." msgstr "Uw order is uitgevoerd." -#: src/jade/tabs/trade.jade:258 -msgid "Request has been denied." -msgstr "Verzoek is geweigerd." +#: src/jade/tabs/trade.jade:267 +msgid "" +"Your order has been partially filled. The remaining amount is now active." +msgstr "Uw order is gedeeltelijk uitgevoerd. Het resterende bedrag is nu actief." -#: src/jade/tabs/trade.jade:259 -msgid "We were unable to submit the request. Please try again later." -msgstr "We waren niet in staat de aanvraag te versturen. Probeert u het later nog eens." +#: src/jade/tabs/trade.jade:276 +msgid "Submit another order" +msgstr "Voeg nog een order toe" -#: src/jade/tabs/trade.jade:261 -msgid "Request is malformed." -msgstr "Verzoek is onjuist." +#: src/jade/tabs/trade.jade:278 +msgid "My Orders{{1}}{{2}}" +msgstr "Mijn Orders{{1}}{{2}}" -#: src/jade/tabs/trade.jade:262 -msgid "" -"Your request is invalid, reason: {{order[type].engine_result}} - " -"{{order[type].engine_result_message}}" -msgstr "Uw verzoek is ongeldig, reden: {{order[type].engine_result}} - {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:287 +msgid "Your order has been modified." +msgstr "Uw order is aangepast." -#: src/jade/tabs/trade.jade:265 src/jade/tabs/trade.jade:279 -msgid "Transaction failed." -msgstr "Transactie is mislukt." +#: src/jade/tabs/trade.jade:289 +msgid "Your order #{{ cancelOrder.seq }} has been cancelled." +msgstr "Uw order #{{ cancelOrder.seq }} is geannuleerd." -#: src/jade/tabs/trade.jade:267 +#: src/jade/tabs/trade.jade:291 msgid "" -"You do not have enough {{(type == 'buy' ? order.second_currency : " -"order.first_currency) | rpcurrency}} to create this order." -msgstr "U heeft niet genoeg {{(type == 'buy' ? order.second_currency : order.first_currency) | rpcurrency}} om deze order aan te maken." +"Your order could not be modified and no longer exists. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "Uw order kon niet geannuleerd worden en bestaat niet meer. Fout: {{order[editOrder.type].engine_result_message}}" -#: src/jade/tabs/trade.jade:269 -msgid "" -"You must have at least {{account.reserve_to_add_trust | rpamount}} XRP to " -"submit an order. {{1}}" -msgstr "U dient ten minste {{account.reserve_to_add_trust | rpamount}} XRP te hebben om een order aan te maken. {{1}}" +#: src/jade/tabs/trade.jade:293 +msgid "Unable to cancel order as it no longer exists." +msgstr "Order kan niet geannuleerd worden omdat deze niet meer bestaat." -#: src/jade/tabs/trade.jade:271 -msgid "More information." -msgstr "Meer informatie." +#: src/jade/tabs/trade.jade:295 +msgid "Modifying your order (Placing new order) ..." +msgstr "Order wordt aangepast (Nieuw order wordt geplaatst)..." -#: src/jade/tabs/trade.jade:272 -msgid "Error: {{order[type].engine_result_message}}" -msgstr "Fout: {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:299 +msgid "Current pair only" +msgstr "Alleen huidige paar" -#: src/jade/tabs/trade.jade:275 -msgid "Trade failed." -msgstr "Handel is mislukt." +#: src/jade/tabs/trade.jade:313 src/jade/tabs/widgets/orders.jade:24 +msgid "reverse" +msgstr "omkeren" -#: src/jade/tabs/trade.jade:277 -msgid "Trade failed, reason: {{order[type].engine_result_message}}" -msgstr "Handel mislukt, reden: {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:322 src/jade/tabs/widgets/orders.jade:33 +msgid "QTY{{1}}" +msgstr "Aantal{{1}}" -#: src/jade/tabs/trade.jade:281 src/jade/tabs/trust.jade:45 -msgid "" -"The particular server you sent the transaction to was too busy to forward or" -" process your transaction at the fee you included in it." -msgstr "De server waar u de transactie naar verstuurde was te druk om deze door te sturen of te verwerken tegen de heffing die u aan deze transactie heeft meegegeven." +#: src/jade/tabs/trade.jade:324 src/jade/tabs/widgets/orders.jade:35 +msgid "Base{{1}}" +msgstr "Basis{{1}}" -#: src/jade/tabs/trade.jade:290 -msgid "Submit another order" -msgstr "Voeg nog een order toe" +#: src/jade/tabs/trade.jade:326 src/jade/tabs/widgets/orders.jade:37 +msgid "Counter{{1}}" +msgstr "Tegen{{1}}" -#: src/jade/tabs/trade.jade:292 -msgid "My Orders{{1}}{{2}}" -msgstr "Mijn Orders{{1}}{{2}}" +#: src/jade/tabs/trade.jade:328 src/jade/tabs/widgets/orders.jade:39 +msgid "Limit{{1}}" +msgstr "Limiet{{1}}" -#: src/jade/tabs/trade.jade:299 -msgid "Type" -msgstr "Type" +#: src/jade/tabs/trade.jade:334 +msgid "Action" +msgstr "Actie" -#: src/jade/tabs/trade.jade:300 -msgid "Currencies {{1: (Issuer)}}" -msgstr "Valuta's {{1: (Uitgever)}}" +#: src/jade/tabs/trade.jade:360 src/jade/tabs/trade.jade:424 +msgid "TRADE CONFIRMATION" +msgstr "HANDELSBEVESTIGING" -#: src/jade/tabs/trade.jade:302 -msgid "Price" -msgstr "Prijs" +#: src/jade/tabs/trade.jade:362 +msgid "{{1:Please confirm that you wish to cancel order #{{entry.seq}}}}" +msgstr "{{1:Gelieve te bevestigen dat u het volgende order wenst te annuleren: #{{entry.seq}}}}" -#: src/jade/tabs/trade.jade:304 -msgid "Action" -msgstr "Actie" +#: src/jade/tabs/trade.jade:364 +msgid "" +"{{1}} div span.modal-order-type(l10n-inc) FILLED: span filled data div" +" span.modal-order-type(l10n-inc) REMAIN: span remain data div span" +".modal-order-type(l10n-inc) PLACED: span time data" +msgstr "{{1}} div span.modal-order-type(l10n-inc) FILLED: span filled data div span.modal-order-type(l10n-inc) REMAIN: span remain data div span.modal-order-type(l10n-inc) PLACED: span time data" -#: src/jade/tabs/trade.jade:313 +#: src/jade/tabs/trade.jade:371 msgid "with" msgstr "met" -#: src/jade/tabs/trade.jade:314 +#: src/jade/tabs/trade.jade:372 msgid "for" msgstr "voor" -# You haven't placed any orders. -#: src/jade/tabs/trade.jade:327 -msgid "You haven't placed any orders." -msgstr "U heeft nog geen orders geplaatst." +#: src/jade/tabs/trade.jade:376 +msgid "at" +msgstr "bij" -#: src/jade/tabs/trade.jade:329 -msgid "Unable to cancel order." -msgstr "Order kan niet geannuleerd worden." +#: src/jade/tabs/trade.jade:389 +msgid "Cancel order" +msgstr "Order annuleren" -#: src/jade/tabs/trade.jade:330 -msgid "Error: {{cancelError}}" -msgstr "Fout: {{cancelError}}" +#: src/jade/tabs/trade.jade:390 src/jade/tabs/trade.jade:431 +msgid "back" +msgstr "terug" -#: src/jade/tabs/trade.jade:334 -msgid "Orderbook" -msgstr "Orderboek" +#: src/jade/tabs/trade.jade:407 +msgid "" +"CAUTION: Your new order is far off from the current market price.
Do " +"you still want to replace your order ?" +msgstr "LET OP: Uw nieuwe order wijkt sterk af van de huidige koers.
Wilt u nog steeds uw order plaatsen?" + +#: src/jade/tabs/trade.jade:410 +msgid "Unable to cancel order. Error: {{entry.errorMsg}}" +msgstr "Order kon niet geannuleerd worden. Fout: {{entry.errorMsg}}" + +#: src/jade/tabs/trade.jade:412 +msgid "" +"Your order amount has been updated by Ripple. Please go back and edit again " +"to modify this order." +msgstr "Uw orderbedrag is aangepast in Ripple. Gelieve terug te gaan om dit order opnieuw aan te passen." + +#: src/jade/tabs/trade.jade:414 +msgid "" +"Your order could not be modified. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "Uw order kon niet worden aangepast. Fout: {{order[editOrder.type].engine_result_message}}" + +#: src/jade/tabs/trade.jade:415 +msgid "X" +msgstr "X" + +#: src/jade/tabs/trade.jade:420 +msgid "cancel all" +msgstr "allen annuleren" + +#: src/jade/tabs/trade.jade:426 +msgid "{{1:Please confirm that you wish to cancel all orders.}}" +msgstr "{{1:Gelieve te bevestigen dat u alle orders wenst te annuleren.}}" -#: src/jade/tabs/trade.jade:336 +#: src/jade/tabs/trade.jade:430 +msgid "Cancel all orders" +msgstr "Alle orders annuleren" + +#: src/jade/tabs/trade.jade:433 src/jade/tabs/widgets/orders.jade:64 +msgid "No current orders. {{1}}" +msgstr "Geen huidige orders. {{1}}" + +#: src/jade/tabs/trade.jade:434 src/jade/tabs/widgets/orders.jade:65 +msgid "View orders history" +msgstr "Bekijk ordergeschiedenis" + +#: src/jade/tabs/trade.jade:437 +msgid "Orderbook{{1}}" +msgstr "Orderboek{{1}}" + +#: src/jade/tabs/trade.jade:440 msgid "show" msgstr "toon" -#: src/jade/tabs/trade.jade:344 +#: src/jade/tabs/trade.jade:442 +msgid "Last updated {{1}} {{2: seconds}} {{3: second}} ago" +msgstr "Laatst geüpdatet: {{1}} {{2: seconden}} {{3: seconde}} ago" + +#: src/jade/tabs/trade.jade:458 msgid "Bids" msgstr "Biedingen" -#: src/jade/tabs/trade.jade:346 src/jade/tabs/trade.jade:373 +#: src/jade/tabs/trade.jade:460 src/jade/tabs/trade.jade:487 msgid "Sum{{1}}{{2}}" msgstr "Som{{1}}{{2}}" -#: src/jade/tabs/trade.jade:349 src/jade/tabs/trade.jade:370 +#: src/jade/tabs/trade.jade:463 src/jade/tabs/trade.jade:484 msgid "Size{{1}}{{2}}" msgstr "Grootte{{1}}{{2}}" -#: src/jade/tabs/trade.jade:352 +#: src/jade/tabs/trade.jade:466 msgid "Bid Price{{1}}{{2}}" -msgstr "Aanbod prijs{{1}}{{2}}" +msgstr "Aanbodprijs{{1}}{{2}}" -#: src/jade/tabs/trade.jade:363 +#: src/jade/tabs/trade.jade:477 msgid "There are currently no bids for this pair." msgstr "Er zijn op dit moment geen biedingen voor dit paar." -#: src/jade/tabs/trade.jade:365 +#: src/jade/tabs/trade.jade:479 msgid "Asks" msgstr "Vraag" -#: src/jade/tabs/trade.jade:367 +#: src/jade/tabs/trade.jade:481 msgid "Ask Price{{1}}{{2}}" -msgstr "Vraag prijs{{1}}{{2}}" +msgstr "Vraagprijs{{1}}{{2}}" -#: src/jade/tabs/trade.jade:384 +#: src/jade/tabs/trade.jade:498 msgid "There are currently no asks for this pair." msgstr "Er is op dit moment geen vraag naar dit paar." -#: src/jade/tabs/trade.jade:387 +#: src/jade/tabs/trade.jade:501 msgid "No more orders" -msgstr "Geen verdere orders" - -#: src/jade/tabs/trust.jade:23 -msgid "Connecting a gateway to your Ripple account..." -msgstr "Bezig met het verbinden van een gateway met uw Ripple portefeuille..." - -#: src/jade/tabs/trust.jade:25 -msgid "Gateway connected." -msgstr "Gateway verbonden." - -#: src/jade/tabs/trust.jade:27 -msgid "Gateway could not be connected!" -msgstr "Gateway kon niet worden verbonden!" +msgstr "Geen orders meer" -#: src/jade/tabs/trust.jade:28 src/jade/tabs/trust.jade:30 -msgid "There was a problem connecting the gateway. Please try again later." -msgstr "Een fout is opgetreden bij het verbinden met de gateway. Probeert u het later nog eens." +#: src/jade/tabs/trust.jade:29 +msgid "Removing gateway..." +msgstr "Gateway wordt verwijderd..." #: src/jade/tabs/trust.jade:31 -msgid "" -"Your request is invalid, reason: {{engine_result}} - " -"{{engine_result_message}}" -msgstr "Uw aanvraag is ongeldig, reden: {{engine_result}} - {{engine_result_message}}" +msgid "Gateway removed." +msgstr "Gateway verwijderd." #: src/jade/tabs/trust.jade:33 -msgid "Gateway connection failed!" -msgstr "Gateway verbinding is mislukt!" +msgid "Your changes have been saved." +msgstr "Uw wijzigingen zijn opgeslagen." #: src/jade/tabs/trust.jade:35 -msgid "You have no gateway connected in this currency." -msgstr "U heeft geen gateway verbonden voor deze valuta." - -#: src/jade/tabs/trust.jade:36 -msgid "Insufficient reserve to connect gateway." -msgstr "Onvoldoende reserve om met de gateway te verbinden." - -#: src/jade/tabs/trust.jade:37 -msgid "" -"You must have at least {{account.reserve_to_add_trust | rpamount:0}} XRP to " -"connect a gateway. {{1}}" -msgstr "U dient tenminste {{account.reserve_to_add_trust | rpamount:0}} XRP hebben om met een gateway te kunnen verbinden. {{1}}" +msgid "Request failed." +msgstr "Aanvraag mislukt." #: src/jade/tabs/trust.jade:39 -msgid "Read more." -msgstr "Lees meer." - -#: src/jade/tabs/trust.jade:40 -msgid "Gateway connection failed to clear, reason: {{engine_result_message}}" -msgstr "Verbreken van de verbinding met de gateway is mislukt, reden: {{engine_result_message}}" - -#: src/jade/tabs/trust.jade:43 -msgid "Transaction failed!" -msgstr "Transactie mislukt!" - -#: src/jade/tabs/trust.jade:53 -msgid "Saving changes..." -msgstr "Wijzigingen aan het opslaan..." +msgid "Account unlock failed." +msgstr "Accountontgrendeling mislukt." #: src/jade/tabs/trust.jade:55 -msgid "Changes saved!" -msgstr "Wijzigingen opgeslagen!" - -#: src/jade/tabs/trust.jade:57 src/jade/tabs/trust.jade:69 -msgid "There was an error while saving your changes." -msgstr "Een fout is opgetreden bij het opslaan van de wijzigingen." - -#: src/jade/tabs/trust.jade:65 -msgid "Removing gateway..." -msgstr "Bezig met het verwijderen van de gateway..." - -#: src/jade/tabs/trust.jade:67 -msgid "Gateway removed!" -msgstr "Gateway verwijderd!" - -#: src/jade/tabs/trust.jade:72 src/jade/tabs/trust.jade:194 -msgid "You must have at least {{1}} to add a new trust line. {{2}}" -msgstr "U moet tenminste {{1}} hebben om een nieuwe kredietlijn toe te voegen. {{2}}" - -#: src/jade/tabs/trust.jade:82 msgid "Name / Address" msgstr "Naam / Adres" -#: src/jade/tabs/trust.jade:84 src/jade/tabs/trust.jade:130 +#: src/jade/tabs/trust.jade:57 src/jade/tabs/trust.jade:90 msgid "Currency" msgstr "Valuta" -#: src/jade/tabs/trust.jade:87 +#: src/jade/tabs/trust.jade:60 msgid "Trust Limit" -msgstr "Krediet beperkt tot" +msgstr "Kredietlimiet" -#: src/jade/tabs/trust.jade:93 +#: src/jade/tabs/trust.jade:66 msgid "Gateway's Ripple name or address" -msgstr "Ripple naam en adres van de Gateway" +msgstr "Ripple-naam of -adres van de gateway" + +#: src/jade/tabs/trust.jade:100 +msgid "Amount field is required." +msgstr "Bedrag-veld is verplicht." + +#: src/jade/tabs/trust.jade:115 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"connect to. More " +"information" +msgstr "Sta toe dat het saldo van deze kredietlijn overgedragen kan worden aan een andere verstrekker waar u mee verbindt. Meer informatie" -#: src/jade/tabs/trust.jade:162 +#: src/jade/tabs/trust.jade:125 msgid "" "{{1:You are connecting a gateway, which means}}{{2:{{ counterparty_address |" " rpripplename:{tilde: true} }} can:}}" -msgstr "{{1:U verbindt nu met een gateway. Daarmee vertrouwt u}}{{2:{{ counterparty_address | rpripplename:{tilde: true} }} }}" +msgstr "{{1:U gaat nu verbinden met een gateway. Daarmee stelt u}}{{2:{{ counterparty_address | rpripplename:{tilde: true} }} in staat om:}}" -#: src/jade/tabs/trust.jade:165 +#: src/jade/tabs/trust.jade:128 msgid "{{1:- Hold up to }}{{2}} {{3: on your behalf}}" -msgstr "{{1:- maximaal}}{{2}} {{3: toe}}" +msgstr "{{1:- Namens u maximaal}}{{2}} {{3: te bewaren}}" -#: src/jade/tabs/trust.jade:169 +#: src/jade/tabs/trust.jade:132 msgid "{{1:- Hold }}{{2}} {{3: on your behalf}}" -msgstr "{{1:-}}{{2}} {{3: toe}}" +msgstr "{{1:- Namens u }}{{2}} {{3: te bewaren}}" -#: src/jade/tabs/trust.jade:183 src/jade/tabs/trust.jade:186 -#: src/jade/tabs/trust.jade:189 src/jade/tabs/trust.jade:255 -#: src/jade/tabs/trust.jade:258 src/jade/tabs/trust.jade:261 -#: src/jade/tabs/trust.jade:288 src/jade/tabs/trust.jade:291 -#: src/jade/tabs/trust.jade:294 -msgid "Remove" -msgstr "Verwijderen" - -#: src/jade/tabs/trust.jade:192 +#: src/jade/tabs/trust.jade:148 msgid "Verifying address" -msgstr "Adres aan het verifiëren" +msgstr "Adres wordt verifiëren" -#: src/jade/tabs/trust.jade:201 +#: src/jade/tabs/trust.jade:151 msgid "" "Your account has to be {{1:activated}} before you can add a gateway account." msgstr "Uw account dient te worden {{1:geactiveerd}} voor u een gateway account kunt toevoegen." -#: src/jade/tabs/trust.jade:209 +#: src/jade/tabs/trust.jade:159 msgid "Connect gateway" msgstr "Verbinden met gateway" -#: src/jade/tabs/trust.jade:227 -msgid "Gateway" -msgstr "Gateway" - -#: src/jade/tabs/trust.jade:229 src/jade/tabs/trust.jade:271 +#: src/jade/tabs/trust.jade:169 src/jade/tabs/trust.jade:221 msgid "Limit" msgstr "Limiet" -#: src/jade/tabs/trust.jade:230 +#: src/jade/tabs/trust.jade:170 msgid "Min" msgstr "Min" -#: src/jade/tabs/trust.jade:232 +#: src/jade/tabs/trust.jade:172 msgid "Edit" msgstr "Bewerken" -#: src/jade/tabs/trust.jade:245 +#: src/jade/tabs/trust.jade:188 msgid "Off" msgstr "Uit" -#: src/jade/tabs/trust.jade:246 +#: src/jade/tabs/trust.jade:189 msgid "On" msgstr "Aan" -#: src/jade/tabs/trust.jade:276 +#: src/jade/tabs/trust.jade:192 src/jade/tabs/trust.jade:201 +#: src/jade/tabs/trust.jade:206 src/jade/tabs/trust.jade:210 +#: src/jade/tabs/trust.jade:239 src/jade/tabs/trust.jade:244 +#: src/jade/tabs/trust.jade:248 +msgid "Incoming trust" +msgstr "Inkomende kredietlijnen" + +#: src/jade/tabs/trust.jade:192 +msgid "" +"You can't edit incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "U kunt inkomende kredietlijnen niet wijzigen. Inkomende kredietlijnen geven aan dat andere Ripple-gebruikers u vertrouwen." + +#: src/jade/tabs/trust.jade:200 src/jade/tabs/trust.jade:202 +#: src/jade/tabs/trust.jade:205 src/jade/tabs/trust.jade:207 +#: src/jade/tabs/trust.jade:209 src/jade/tabs/trust.jade:211 +#: src/jade/tabs/trust.jade:238 src/jade/tabs/trust.jade:240 +#: src/jade/tabs/trust.jade:243 src/jade/tabs/trust.jade:245 +#: src/jade/tabs/trust.jade:247 src/jade/tabs/trust.jade:249 +msgid "Remove" +msgstr "Verwijderen" + +#: src/jade/tabs/trust.jade:201 src/jade/tabs/trust.jade:206 +#: src/jade/tabs/trust.jade:210 src/jade/tabs/trust.jade:239 +#: src/jade/tabs/trust.jade:244 src/jade/tabs/trust.jade:248 +msgid "" +"You can't delete incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "U kunt inkomende kredietlijnen niet verwijderen. Inkomende kredietlijnen geven aan dat andere Ripple-gebruikers u vertrouwen." + +#: src/jade/tabs/trust.jade:226 msgid "Rippling {{1}}" msgstr "Rippling {{1}}" -#: src/jade/tabs/tx.jade:3 +#: src/jade/tabs/tx.jade:5 msgid "Loading transaction details..." -msgstr "Transactiedetails laden..." +msgstr "Transactiedetails worden geladen..." -#: src/jade/tabs/tx.jade:5 +#: src/jade/tabs/tx.jade:7 msgid "An error occurred while loading the transaction details." msgstr "Er is een fout opgetreden tijdens het laden van de transactiedetails." -#: src/jade/tabs/tx.jade:8 +#: src/jade/tabs/tx.jade:10 msgid "Transaction #" msgstr "Transactie #" -#: src/jade/tabs/tx.jade:11 -msgid "Show in graph" -msgstr "Toon in grafiek" - -#: src/jade/tabs/tx.jade:13 +#: src/jade/tabs/tx.jade:15 msgid "Transaction type: {{1}}" msgstr "Transactie-type: {{1}}" -#: src/jade/tabs/tx.jade:20 +#: src/jade/tabs/tx.jade:22 msgid "Address sent from" msgstr "Adres afzender" -#: src/jade/tabs/tx.jade:24 +#: src/jade/tabs/tx.jade:26 msgid "Amount sent" -msgstr "Verzonden hoeveelheid" +msgstr "Verstuurd bedrag" -#: src/jade/tabs/tx.jade:28 +#: src/jade/tabs/tx.jade:30 msgid "Currency sent" -msgstr "Verzonden valuta" +msgstr "Verstuurde valuta" -#: src/jade/tabs/tx.jade:33 +#: src/jade/tabs/tx.jade:35 msgid "Address sent to" msgstr "Ontvangstadres" -#: src/jade/tabs/tx.jade:37 +#: src/jade/tabs/tx.jade:39 msgid "Amount received" -msgstr "Ontvangen hoeveelheid" +msgstr "Ontvangen bedrag" -#: src/jade/tabs/tx.jade:41 +#: src/jade/tabs/tx.jade:43 msgid "Currency received" msgstr "Ontvangen valuta" -#: src/jade/tabs/tx.jade:48 +#: src/jade/tabs/tx.jade:50 msgid "Network fee paid" -msgstr "Netwerk-heffing betaald" +msgstr "Netwerkheffing betaald" -#: src/jade/tabs/tx.jade:60 +#: src/jade/tabs/tx.jade:62 msgid "Ledger number" -msgstr "Groetboeknummer" +msgstr "Grootboeknummer" -#: src/jade/tabs/tx.jade:66 +#: src/jade/tabs/tx.jade:68 msgid "Address sent from:" -msgstr "Verzonden door:" +msgstr "Verstuurd vanaf adres:" # Sorry, we don't have an info page layout for this transaction type yet. -#: src/jade/tabs/tx.jade:70 +#: src/jade/tabs/tx.jade:72 msgid "" "Sorry, we don't have an info page layout for this transaction type yet." msgstr "Sorry, we hebben op dit moment nog geen informatiepagina voor dit transactietype." +#: src/jade/tabs/usd.jade:35 +msgid "US Dollar Deposit" +msgstr "Amerikaanse Dollar-storting" + +#: src/jade/tabs/usd.jade:39 +msgid "SnapSwap US (~SnapSwap){{1}}{{2}}" +msgstr "SnapSwap US (~SnapSwap){{1}}{{2}}" + +#: src/jade/tabs/usd.jade:45 +msgid "USA" +msgstr "VS" + +#: src/jade/tabs/usd.jade:48 +msgid "$ 0.31-$ 5.00" +msgstr "$ 0.31-$ 5.00" + +#: src/jade/tabs/usd.jade:56 +msgid "" +"Ripple Trade has partnered with SnapSwap to provide easier access to USD. " +"Following this action will enable SnapSwap to hold USD on your behalf." +msgstr "Ripple Trade werkt samen met Snapswap om toegang tot USD te vereenvoudigen. Bij doorklikken stelt u SnapSwap in staat om USD namens u te bewaren." + +#: src/jade/tabs/usd.jade:73 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.US" +msgstr "NIEUWE KLANTEN - AANMELDEN BIJ SNAPSWAP.US" + +#: src/jade/tabs/usd.jade:74 +msgid "Register and verify your account at SnapSwap US. You will need: {{1}}" +msgstr "Registreer en verifieer uw account bij SnapSwap US. U heeft daarvoor nodig: {{1}}" + +#: src/jade/tabs/usd.jade:82 +msgid "EXISTING SNAPSWAP US CUSTOMERS" +msgstr "BESTAANDE SNAPSWAP US-KLANTEN" + +#: src/jade/tabs/usd.jade:93 +msgid "Deposit instantly via selected banks" +msgstr "Stort instantaan via geselecteerde banken." + +#: src/jade/tabs/usd.jade:95 +msgid "Deposit cash at Bank of America branches (3 business days)" +msgstr "Geld storten bij een kantoor van Bank of America (3 werkdagen)" + +#: src/jade/tabs/usd.jade:97 +msgid "Deposit via online bank transfer (3 business days)" +msgstr "Storten via een online bankoverdracht (3 werkdagen)" + +#: src/jade/tabs/usd.jade:103 +msgid "Directly to your bank account (3-4 business days)" +msgstr "Direct naar uw bankrekening (3-4 werkdagen)" + +#: src/jade/tabs/usd.jade:105 +msgid "Directly to your PayPal account (several minutes)" +msgstr "Direct naar uw PayPal-account (enkele minuten)" + +#: src/jade/tabs/widgets/assetallocation.jade:3 +msgid "Asset Allocation" +msgstr "Vermogensallocatie" + +#: src/jade/tabs/widgets/balances.jade:3 +msgid "Balances" +msgstr "Saldo's" + +#: src/jade/tabs/widgets/balances.jade:12 +msgid "Balance
{{ account.Balance | rpamount }} XRP" +msgstr "Saldo
{{ account.Balance | rpamount }} XRP" + +#: src/jade/tabs/widgets/balances.jade:16 +msgid "Reserve" +msgstr "Reserve" + +#: src/jade/tabs/widgets/balances.jade:18 +msgid "Reserve amount" +msgstr "Reservesaldo" + +#: src/jade/tabs/widgets/balances.jade:18 +msgid "" +"Minimum amount of XRP required to fund your account. You cannot spend the " +"reserve." +msgstr "Minimaal XRP-saldo vereist om uw account te financieren. U kunt het reserve-saldo niet uitgeven." + +#: src/jade/tabs/widgets/balances.jade:20 +msgid "Reserve amount
{{ account.reserve | rpamount }} XRP" +msgstr "Reserve-saldo
{{ account.reserve | rpamount }} XRP" + +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Available amount" +msgstr "Beschikbare hoeveelheid" + +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Total amount of XRP in your account minus the reserve amount." +msgstr "Totale hoeveelheid XRP in uw account met aftrek van het benodigde reserve-saldo." + +#: src/jade/tabs/widgets/balances.jade:28 +msgid "Available amount
{{ account.max_spend | rpamount }} XRP" +msgstr "Beschikbare hoeveelheid
{{ account.max_spend | rpamount }} XRP" + +#: src/jade/tabs/widgets/balances.jade:35 +msgid "" +"Balance
{{ entry.total | rpamount:{precision: 30, hard_precision: true} " +"}} {{ entry.total | rpcurrency }}" +msgstr "Saldo
{{ entry.total | rpamount:{precision: 30, hard_precision: true} }} {{ entry.total | rpcurrency }}" + +#: src/jade/tabs/widgets/balances.jade:43 +msgid "" +"Balance
{{ component | rpamount:{precision: 30, rel_min_precision: -2, " +"hard_precision: true} }} {{ entry.total | rpcurrency }}" +msgstr "Saldo
{{ component | rpamount:{precision: 30, rel_min_precision: -2, hard_precision: true} }} {{ entry.total | rpcurrency }}" + +#: src/jade/tabs/widgets/markets.jade:3 +msgid "Markets" +msgstr "Markten" + +#: src/jade/tabs/widgets/networth.jade:3 +msgid "Net Worth" +msgstr "Netto marktwaarde" + +#: src/jade/tabs/widgets/networth.jade:8 +msgid "{{1:{{1:In}}}}{{2}}" +msgstr "{{1:{{1:In}}}}{{2}}" + +#: src/jade/tabs/widgets/networth.jade:14 +msgid "Estimated from latest trade price" +msgstr "Geschat op basis van de laatst verhandelde koers" + +#: src/jade/tabs/widgets/networth.jade:23 +msgid "(excluding negative balances)" +msgstr "(exclusief negatieve saldo's)" + +#: src/jade/tabs/widgets/orders.jade:3 +msgid "My Orders" +msgstr "Mijn Orders" + +#: src/jade/tabs/widgets/orders.jade:68 +msgid "trade currencies" +msgstr "valuta verhandelen" + #: src/jade/tabs/xrp.jade:19 msgid "Ripple name: {{1}}{{2}}{{3}}" -msgstr "Ripple naam: {{1}}{{2}}{{3}}" +msgstr "Ripple-naam: {{1}}{{2}}{{3}}" #: src/jade/tabs/xrp.jade:21 msgid "loading..." -msgstr "laden..." +msgstr "aan het laden..." #: src/jade/tabs/xrp.jade:23 msgid "Show address" @@ -2700,8 +3662,4 @@ msgid "" "(~{{userCredentials.username}}) to receive money. You can still use your " "full Ripple address, and while we are working to transition to Ripple names," " some gateways may still ask for your full address." -msgstr "Ripple naam is nieuw in Ripple! Gebruik je Ripple naam (~ {{userCredentials.username}}) om geld te ontvangen. U kan echter nog altijd uw Ripple adres gebruiken, en in de overgangsfase naar naar de Ripple naam, zullen sommige gateways ook nog steeds vragen naar uw adres." - -#: src/jade/tabs/xrp.jade:31 -msgid "Ripple address {{1}}" -msgstr "Ripple adres {{1}}" +msgstr "Ripple-namen zijn nieuw in Ripple! Gebruik uw Ripple-naam (~ {{userCredentials.username}}) om geld te ontvangen. U kunt echter nog altijd uw Ripple-adres gebruiken en in de overgangsfase naar Ripple-namen zullen sommige gateways ook nog vragen naar uw volledige adres." diff --git a/l10n/pt/messages.po b/l10n/pt/messages.po deleted file mode 100644 index 61f67c6c6..000000000 --- a/l10n/pt/messages.po +++ /dev/null @@ -1,2711 +0,0 @@ -# Generated by grunt-jade-l10n-extractor -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: Ripple Trade\n" -"PO-Revision-Date: 2014-10-08 20:38+0000\n" -"Last-Translator: Jublo Solutions \n" -"Language-Team: Portuguese (http://www.transifex.com/projects/p/ripple-trade/language/pt/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: src/jade/client/index.jade:5 src/jade/client/navbar.jade:112 -#: src/jade/tabs/trust.jade:86 src/jade/tabs/trust.jade:228 -msgid "Balance" -msgstr "" - -#: src/jade/client/index.jade:7 src/jade/client/navbar.jade:114 -msgid "History" -msgstr "" - -#: src/jade/client/index.jade:8 src/jade/client/navbar.jade:116 -#: src/jade/tabs/contacts.jade:5 -msgid "Contacts" -msgstr "" - -#: src/jade/client/index.jade:12 src/jade/client/navbar.jade:13 -#: src/jade/tabs/contacts.jade:97 -msgid "Send" -msgstr "" - -#: src/jade/client/index.jade:16 src/jade/client/navbar.jade:123 -msgid "Convert" -msgstr "" - -#: src/jade/client/index.jade:18 src/jade/client/navbar.jade:121 -msgid "Trade" -msgstr "" - -#: src/jade/client/index.jade:22 src/jade/client/navbar.jade:19 -#: src/jade/client/navbar.jade:128 -msgid "Fund" -msgstr "" - -#: src/jade/client/index.jade:24 src/jade/tabs/fund/menu.jade:5 -msgid "Gateways" -msgstr "" - -#: src/jade/client/index.jade:29 src/jade/tabs/su.jade:12 -msgid "Account" -msgstr "" - -#: src/jade/client/index.jade:32 src/jade/tabs/advanced.jade:9 -msgid "Settings" -msgstr "" - -#: src/jade/client/index.jade:35 -msgid "Logout" -msgstr "" - -#: src/jade/client/index.jade:41 -msgid "Welcome to {{productName}}, a global value exchange" -msgstr "" - -#: src/jade/client/index.jade:51 -msgid "Version: {{version}}" -msgstr "" - -#: src/jade/client/index.jade:55 -msgid "End-User License Agreement" -msgstr "" - -#: src/jade/client/index.jade:56 -msgid "Support" -msgstr "" - -#: src/jade/client/index.jade:57 -msgid "Bug reports" -msgstr "" - -#: src/jade/client/index.jade:64 -msgid "more..." -msgstr "" - -#: src/jade/client/index.jade:68 -msgid "Select a language" -msgstr "" - -#: src/jade/client/navbar.jade:11 -msgid "Overview" -msgstr "" - -#: src/jade/client/navbar.jade:15 src/jade/client/navbar.jade:17 -#: src/jade/tabs/exchange.jade:45 -msgid "Exchange" -msgstr "" - -#: src/jade/client/navbar.jade:39 src/jade/tabs/account/public.jade:45 -#: src/jade/tabs/apps.jade:8 src/jade/tabs/balance.jade:8 -#: src/jade/tabs/balance.jade:27 src/jade/tabs/btc.jade:60 -#: src/jade/tabs/exchange.jade:9 src/jade/tabs/history.jade:206 -#: src/jade/tabs/kyc.jade:38 src/jade/tabs/recover.jade:21 -#: src/jade/tabs/security.jade:134 src/jade/tabs/su.jade:8 -#: src/jade/tabs/trust.jade:9 src/jade/tabs/trust.jade:175 -msgid "Loading..." -msgstr "" - -#: src/jade/client/navbar.jade:40 -msgid "There are no recent notifications." -msgstr "" - -#: src/jade/client/navbar.jade:44 -msgid "You sent {{1}} to {{2}}" -msgstr "" - -#: src/jade/client/navbar.jade:50 -msgid "{{1}} sent you {{2}}" -msgstr "" - -#: src/jade/client/navbar.jade:58 -msgid "{{entry.transaction.counterparty | rpcontactname}} now trusts you for" -msgstr "" - -#: src/jade/client/navbar.jade:64 src/jade/notification/account.jade:25 -#: src/jade/tabs/history.jade:132 src/jade/tabs/history/effects.jade:63 -msgid "You have now connected to the gateway {{1}}{{2: for }}{{3}}." -msgstr "" - -#: src/jade/client/navbar.jade:75 -msgid "You cancelled an order accepting {{1}} for {{2}}" -msgstr "" - -#: src/jade/client/navbar.jade:82 -msgid "Account details have been changed" -msgstr "" - -#: src/jade/client/navbar.jade:85 src/jade/tabs/history.jade:158 -#: src/jade/tabs/trust.jade:231 -msgid "Rippling" -msgstr "" - -#: src/jade/client/navbar.jade:87 src/jade/tabs/history.jade:160 -msgid "Failed transaction" -msgstr "" - -#: src/jade/client/navbar.jade:93 -msgid "View Full History" -msgstr "" - -#: src/jade/client/navbar.jade:97 -msgid "{{1}} Account" -msgstr "" - -#: src/jade/client/navbar.jade:101 -msgid "{{1}} Settings" -msgstr "" - -#: src/jade/client/navbar.jade:105 -msgid "{{1}} Log Out" -msgstr "" - -#: src/jade/client/navbar.jade:130 src/jade/tabs/balance.jade:110 -msgid "Withdraw" -msgstr "" - -#: src/jade/client/navbar.jade:132 -msgid "" -"Your account was successfully recovered and encrypted with the new password " -"you provided!" -msgstr "" - -#: src/jade/client/navbar.jade:133 -msgid "dismiss" -msgstr "" - -#: src/jade/directives/transactionerror.jade:5 -msgid "Payment pending" -msgstr "" - -#: src/jade/directives/transactionerror.jade:7 -msgid "Payment successful" -msgstr "" - -#: src/jade/directives/transactionerror.jade:9 -#: src/jade/directives/transactionerror.jade:16 -#: src/jade/directives/transactionerror.jade:20 -#: src/jade/directives/transactionerror.jade:25 -#: src/jade/directives/transactionerror.jade:30 -#: src/jade/directives/transactionerror.jade:39 -#: src/jade/directives/transactionerror.jade:46 -msgid "Payment failed" -msgstr "" - -#: src/jade/directives/transactionerror.jade:11 -#: src/jade/messages/sendconvert/confirmation.jade:13 -msgid "Error code: {{engine_result}} - {{engine_result_message}}" -msgstr "" - -#: src/jade/directives/transactionerror.jade:18 -msgid "Your payment timed out, please try again." -msgstr "" - -#: src/jade/directives/transactionerror.jade:22 -#: src/jade/messages/sendconvert/confirmation.jade:18 -msgid "Error code: Destination tag needed [tefDST_TAG_NEEDED]." -msgstr "" - -#: src/jade/directives/transactionerror.jade:27 -#: src/jade/messages/sendconvert/confirmation.jade:39 -msgid "" -"Error code: This transaction failed because it exceeded the maximum network " -"fee, please try again later [telINSUF_FEE_P]." -msgstr "" - -#: src/jade/directives/transactionerror.jade:32 -msgid "Error code: No destination [tecNO_DST]." -msgstr "" - -#: src/jade/directives/transactionerror.jade:34 -#: src/jade/messages/sendconvert/confirmation.jade:25 -msgid "" -"Error code: Insufficient XRP sent to destination [tecNO_DST_INSUF_XRP]." -msgstr "" - -#: src/jade/directives/transactionerror.jade:36 -#: src/jade/messages/sendconvert/confirmation.jade:27 -msgid "Error: {{engine_result_message}}" -msgstr "" - -#: src/jade/directives/transactionerror.jade:41 -#: src/jade/messages/sendconvert/confirmation.jade:32 -msgid "Error code: You have no trust line in this currency [terNO_LINE]." -msgstr "" - -#: src/jade/directives/transactionerror.jade:43 -msgid "Your payment failed: {{engine_result}} - {{engine_result_message}}" -msgstr "" - -#: src/jade/directives/transactionerror.jade:48 -msgid "Error code: Transaction could not be submitted [tejLost]." -msgstr "" - -#: src/jade/directives/transactionerror.jade:50 -msgid "Error code: Network fee exceeded [tejMaxFeeExceeded]." -msgstr "" - -#: src/jade/directives/transactionerror.jade:52 -msgid "" -"Your payment could not be submitted: {{engine_result}} - " -"{{engine_result_message}}" -msgstr "" - -#: src/jade/messages/sendconvert/confirmation.jade:4 -msgid "Transaction pending." -msgstr "" - -#: src/jade/messages/sendconvert/confirmation.jade:6 -msgid "Transaction successful" -msgstr "" - -#: src/jade/messages/sendconvert/confirmation.jade:8 -#: src/jade/messages/sendconvert/confirmation.jade:11 -#: src/jade/messages/sendconvert/confirmation.jade:16 -#: src/jade/messages/sendconvert/confirmation.jade:21 -#: src/jade/messages/sendconvert/confirmation.jade:30 -#: src/jade/messages/sendconvert/confirmation.jade:37 -#: src/jade/messages/sendconvert/localerror.jade:5 -#: src/jade/messages/sendconvert/localerror.jade:8 -#: src/jade/messages/sendconvert/localerror.jade:11 -#: src/jade/messages/sendconvert/localerror.jade:14 -msgid "Transaction failed" -msgstr "" - -#: src/jade/messages/sendconvert/confirmation.jade:9 -#: src/jade/tabs/trust.jade:58 src/jade/tabs/trust.jade:70 -msgid "Please try again later." -msgstr "" - -#: src/jade/messages/sendconvert/confirmation.jade:23 -msgid "Error code: The destination account does not exist [tecNO_DST]." -msgstr "" - -#: src/jade/messages/sendconvert/confirmation.jade:34 -msgid "Your transaction failed: {{engine_result_message}}" -msgstr "" - -#: src/jade/messages/sendconvert/localerror.jade:6 -msgid "" -"Error code: The account you're trying to send to does not exist " -"[noDest]." -msgstr "" - -#: src/jade/messages/sendconvert/localerror.jade:9 -msgid "" -"Error code: Ripple was unable to find a path between you and the destination" -" account [noPath]." -msgstr "" - -#: src/jade/messages/sendconvert/localerror.jade:12 -msgid "" -"Error code: This transaction failed because it exceeded the maximum network " -"fee. [maxfeeExceeded]." -msgstr "" - -#: src/jade/messages/sendconvert/localerror.jade:15 -msgid "" -"Error code: The transaction was rejected by the Ripple network " -"[invalidTransaction]." -msgstr "" - -#: src/jade/messages/sendconvert/localerror.jade:17 -msgid "Account unlock failed" -msgstr "" - -#: src/jade/messages/sendconvert/localerror.jade:18 -msgid "Your account could not be unlocked. Please try again later." -msgstr "" - -#: src/jade/messages/sendconvert/localerror.jade:20 -msgid "" -"Sorry, an error occurred while submitting your transaction.Make sure you are" -" connected to the Internet and try again later." -msgstr "" - -#: src/jade/messages/sendconvert/localerror.jade:22 -msgid "" -"Before trying again, please ensure that the transaction has not been " -"executed already." -msgstr "" - -#: src/jade/messages/sendconvert/waiting.jade:3 -msgid "Sending transaction to the Ripple network" -msgstr "" - -#: src/jade/notification/account.jade:3 -msgid "You sent {{1}} {{2}} to {{3}}" -msgstr "" - -#: src/jade/notification/account.jade:11 -msgid "{{tx.counterparty | rpcontactname}} sent you" -msgstr "" - -#: src/jade/notification/account.jade:18 -msgid "{{tx.counterparty | rpcontactname}} now trusts you for" -msgstr "" - -#: src/jade/popup/unlock.jade:2 -msgid "Unlock account" -msgstr "" - -#: src/jade/popup/unlock.jade:5 src/jade/tabs/desktop/register.jade:28 -#: src/jade/tabs/login/form.jade:7 src/jade/tabs/recover.jade:33 -#: src/jade/tabs/register.jade:42 src/jade/tabs/security.jade:10 -msgid "Password" -msgstr "" - -#: src/jade/popup/unlock.jade:8 -msgid "Please enter your password to show your secret key." -msgstr "" - -#: src/jade/popup/unlock.jade:9 src/jade/tabs/send.jade:199 -msgid "Please enter your password to confirm this transaction." -msgstr "" - -#: src/jade/popup/unlock.jade:10 -msgid "This password is incorrect, please try again." -msgstr "" - -#: src/jade/popup/unlock.jade:11 -msgid "Confirming password" -msgstr "" - -#: src/jade/popup/unlock.jade:14 src/jade/tabs/account/public.jade:44 -#: src/jade/tabs/security.jade:133 -msgid "Submit" -msgstr "" - -#: src/jade/popup/unlock.jade:15 -msgid "Close" -msgstr "" - -#: src/jade/tabs/2fa/form.jade:3 -msgid "Country Code" -msgstr "" - -#: src/jade/tabs/2fa/form.jade:6 src/jade/tabs/kyc.jade:143 -msgid "Phone Number" -msgstr "" - -#: src/jade/tabs/account/navbar.jade:2 -msgid "Public Information" -msgstr "" - -#: src/jade/tabs/account/private.jade:2 -msgid "Profile Information" -msgstr "" - -#: src/jade/tabs/account/private.jade:5 -msgid "Identity Information" -msgstr "" - -#: src/jade/tabs/account/private.jade:8 src/jade/tabs/account/private.jade:19 -msgid "Completed" -msgstr "" - -#: src/jade/tabs/account/private.jade:11 src/jade/tabs/account/private.jade:22 -msgid "Incomplete" -msgstr "" - -#: src/jade/tabs/account/private.jade:13 src/jade/tabs/account/private.jade:24 -msgid "Complete your profile" -msgstr "" - -#: src/jade/tabs/account/private.jade:16 -msgid "Identity Questions" -msgstr "" - -#: src/jade/tabs/account/public.jade:1 -msgid "Changing your Ripple name..." -msgstr "" - -#: src/jade/tabs/account/public.jade:2 -msgid "Your Ripple name has been changed successfully." -msgstr "" - -#: src/jade/tabs/account/public.jade:3 -msgid "Account settings" -msgstr "" - -#: src/jade/tabs/account/public.jade:5 src/jade/tabs/login/form.jade:2 -msgid "Ripple name" -msgstr "" - -#: src/jade/tabs/account/public.jade:9 src/jade/tabs/advanced.jade:17 -#: src/jade/tabs/advanced.jade:34 src/jade/tabs/advanced.jade:53 -#: src/jade/tabs/advanced.jade:106 src/jade/tabs/security.jade:107 -#: src/jade/tabs/security.jade:165 src/jade/tabs/trust.jade:219 -#: src/jade/tabs/trust.jade:248 -msgid "edit" -msgstr "" - -#: src/jade/tabs/account/public.jade:12 -msgid "New Ripple name" -msgstr "" - -#: src/jade/tabs/account/public.jade:17 src/jade/tabs/balance.jade:60 -msgid "Available" -msgstr "" - -#: src/jade/tabs/account/public.jade:20 src/jade/tabs/register.jade:30 -msgid "Already taken!" -msgstr "" - -#: src/jade/tabs/account/public.jade:21 src/jade/tabs/register.jade:31 -msgid "Reserved for {{usernameReservedFor}}{{1}}{{2}}" -msgstr "" - -#: src/jade/tabs/account/public.jade:24 src/jade/tabs/register.jade:34 -msgid "Must be at least 2 characters" -msgstr "" - -#: src/jade/tabs/account/public.jade:25 src/jade/tabs/register.jade:35 -msgid "Must be at most 20 characters" -msgstr "" - -#: src/jade/tabs/account/public.jade:26 -msgid "Only a-z, 0-9 and hyphen (-)" -msgstr "" - -#: src/jade/tabs/account/public.jade:27 src/jade/tabs/register.jade:37 -msgid "Cannot start with hyphen (-)" -msgstr "" - -#: src/jade/tabs/account/public.jade:28 src/jade/tabs/register.jade:38 -msgid "Cannot end with hyphen (-)" -msgstr "" - -#: src/jade/tabs/account/public.jade:29 -msgid "Cannot bundle hyphens (--)" -msgstr "" - -#: src/jade/tabs/account/public.jade:30 src/jade/tabs/register.jade:40 -msgid "Checking..." -msgstr "" - -#: src/jade/tabs/account/public.jade:32 src/jade/tabs/security.jade:113 -msgid "Current password" -msgstr "" - -#: src/jade/tabs/account/public.jade:35 src/jade/tabs/security.jade:15 -#: src/jade/tabs/security.jade:20 -msgid "Entered password is wrong." -msgstr "" - -#: src/jade/tabs/account/public.jade:37 -msgid "Your Ripple name has been changed. Please login again." -msgstr "" - -#: src/jade/tabs/account/public.jade:39 -msgid "Couldn't change your Ripple name, please try again later." -msgstr "" - -#: src/jade/tabs/account/public.jade:47 src/jade/tabs/desktop/register.jade:67 -#: src/jade/tabs/fund.jade:77 src/jade/tabs/trade.jade:323 -msgid "Cancel" -msgstr "" - -#: src/jade/tabs/account/public.jade:49 src/jade/tabs/contacts.jade:7 -#: src/jade/tabs/contacts.jade:34 src/jade/tabs/desktop/register.jade:88 -msgid "Ripple address" -msgstr "" - -#: src/jade/tabs/advanced.jade:11 -msgid "Blob vault" -msgstr "" - -#: src/jade/tabs/advanced.jade:22 src/jade/tabs/advanced.jade:39 -#: src/jade/tabs/advanced.jade:63 src/jade/tabs/advanced.jade:92 -#: src/jade/tabs/contacts.jade:86 src/jade/tabs/fund.jade:79 -#: src/jade/tabs/security.jade:175 src/jade/tabs/send.jade:241 -#: src/jade/tabs/send.jade:270 src/jade/tabs/trust.jade:156 -#: src/jade/tabs/trust.jade:282 -msgid "Save" -msgstr "" - -#: src/jade/tabs/advanced.jade:24 src/jade/tabs/advanced.jade:41 -#: src/jade/tabs/advanced.jade:65 src/jade/tabs/advanced.jade:94 -#: src/jade/tabs/contacts.jade:84 -msgid "Delete" -msgstr "" - -#: src/jade/tabs/advanced.jade:26 src/jade/tabs/advanced.jade:43 -#: src/jade/tabs/advanced.jade:67 src/jade/tabs/advanced.jade:96 -#: src/jade/tabs/btc.jade:62 src/jade/tabs/contacts.jade:58 -#: src/jade/tabs/contacts.jade:95 src/jade/tabs/exchange.jade:96 -#: src/jade/tabs/exchange.jade:109 src/jade/tabs/kyc.jade:104 -#: src/jade/tabs/kyc.jade:116 src/jade/tabs/kyc.jade:137 -#: src/jade/tabs/kyc.jade:138 src/jade/tabs/kyc.jade:162 -#: src/jade/tabs/login/form.jade:18 src/jade/tabs/security.jade:71 -#: src/jade/tabs/security.jade:101 src/jade/tabs/security.jade:136 -#: src/jade/tabs/send.jade:209 src/jade/tabs/send.jade:221 -#: src/jade/tabs/send.jade:242 src/jade/tabs/send.jade:272 -#: src/jade/tabs/trade.jade:32 src/jade/tabs/trade.jade:43 -#: src/jade/tabs/trust.jade:177 src/jade/tabs/trust.jade:179 -#: src/jade/tabs/trust.jade:263 src/jade/tabs/trust.jade:296 -msgid "cancel" -msgstr "" - -#: src/jade/tabs/advanced.jade:28 -msgid "Bitcoin bridge" -msgstr "" - -#: src/jade/tabs/advanced.jade:45 -msgid "Trust line" -msgstr "" - -#: src/jade/tabs/advanced.jade:50 src/jade/tabs/advanced.jade:61 -#: src/jade/tabs/desktop/register.jade:85 src/jade/tabs/security.jade:148 -msgid "Show" -msgstr "" - -#: src/jade/tabs/advanced.jade:51 src/jade/tabs/desktop/register.jade:86 -#: src/jade/tabs/security.jade:149 -msgid "Hide" -msgstr "" - -#: src/jade/tabs/advanced.jade:68 -msgid "Server settings" -msgstr "" - -#: src/jade/tabs/advanced.jade:73 -msgid "WebSocket host name" -msgstr "" - -#: src/jade/tabs/advanced.jade:75 -msgid "Port number" -msgstr "" - -#: src/jade/tabs/advanced.jade:81 -msgid "Socket ip or hostname is invalid." -msgstr "" - -#: src/jade/tabs/advanced.jade:83 -msgid "Port number is invalid." -msgstr "" - -#: src/jade/tabs/advanced.jade:90 src/jade/tabs/advanced.jade:103 -msgid "Secure" -msgstr "" - -#: src/jade/tabs/advanced.jade:104 -msgid "Not Secure" -msgstr "" - -#: src/jade/tabs/advanced.jade:110 -msgid "Add new server" -msgstr "" - -#: src/jade/tabs/apps.jade:5 src/jade/tabs/balance.jade:5 -#: src/jade/tabs/btc.jade:6 src/jade/tabs/exchange.jade:6 -#: src/jade/tabs/fund.jade:6 src/jade/tabs/history.jade:6 -#: src/jade/tabs/kyc.jade:6 src/jade/tabs/send.jade:6 src/jade/tabs/su.jade:5 -#: src/jade/tabs/trade.jade:7 src/jade/tabs/trust.jade:6 -#: src/jade/tabs/usd.jade:6 src/jade/tabs/withdraw.jade:6 -#: src/jade/tabs/xrp.jade:6 -msgid "You have to be online to see this screen" -msgstr "" - -#: src/jade/tabs/apps.jade:29 -msgid "Please enter a ripple address." -msgstr "" - -#: src/jade/tabs/apps.jade:31 -msgid "Please enter a valid ripple address." -msgstr "" - -#: src/jade/tabs/balance.jade:21 -msgid "Total Balance{{1}}" -msgstr "" - -#: src/jade/tabs/balance.jade:22 -msgid "Estimated from latest trade price" -msgstr "" - -#: src/jade/tabs/balance.jade:29 -msgid "(excluding negative balances)" -msgstr "" - -#: src/jade/tabs/balance.jade:67 -msgid "Reserve" -msgstr "" - -#: src/jade/tabs/balance.jade:85 -msgid "Unverified" -msgstr "" - -#: src/jade/tabs/balance.jade:92 -msgid "Enter bitcoin address." -msgstr "" - -#: src/jade/tabs/balance.jade:95 -msgid "Enter amount to withdraw." -msgstr "" - -#: src/jade/tabs/balance.jade:100 src/jade/tabs/balance.jade:102 -msgid "Enter a valid bitcoin address" -msgstr "" - -#: src/jade/tabs/balance.jade:106 -msgid "Enter a valid amount" -msgstr "" - -#: src/jade/tabs/balance.jade:113 -msgid "You are sending {{1}} BTC to:" -msgstr "" - -#: src/jade/tabs/balance.jade:119 src/jade/tabs/balance.jade:134 -#: src/jade/tabs/register.jade:105 src/jade/tabs/register.jade:111 -msgid "Back" -msgstr "" - -#: src/jade/tabs/balance.jade:122 src/jade/tabs/btc.jade:61 -#: src/jade/tabs/exchange.jade:94 src/jade/tabs/send.jade:207 -#: src/jade/tabs/trade.jade:57 src/jade/tabs/trade.jade:67 -#: src/jade/tabs/trade.jade:241 src/jade/tabs/trust.jade:176 -msgid "Confirm" -msgstr "" - -#: src/jade/tabs/balance.jade:127 -msgid "Reconnecting to Ripple network" -msgstr "" - -#: src/jade/tabs/balance.jade:128 -msgid "Transaction Successful" -msgstr "" - -#: src/jade/tabs/balance.jade:129 -msgid "Warning" -msgstr "" - -#: src/jade/tabs/balance.jade:130 -msgid "Transaction Failed" -msgstr "" - -#: src/jade/tabs/balance.jade:131 -msgid "Message" -msgstr "" - -#: src/jade/tabs/banner/announcement.jade:2 -msgid "Help our team improve Ripple Trade! {{1:Take a quick user survey.}}" -msgstr "" - -#: src/jade/tabs/banner/announcement.jade:5 -msgid "×" -msgstr "" - -#: src/jade/tabs/banner/unfunded.jade:2 -msgid "" -"Welcome to Ripple Trade! To activate your account, you'll need at least 20 " -"XRP." -msgstr "" - -#: src/jade/tabs/banner/unfunded.jade:4 -msgid "" -"Have another user send XRP to your Ripple name " -"(~{{userCredentials.username}})" -msgstr "" - -#: src/jade/tabs/banner/unfunded.jade:5 -msgid "" -"Use the {{1}}. A small amount of your first deposit will be used to " -"activate your account." -msgstr "" - -#: src/jade/tabs/btc.jade:18 -msgid "Bitcoin Deposit" -msgstr "" - -#: src/jade/tabs/btc.jade:26 -msgid "" -"A small amount (~.001 BTC) of your first transfer will be converted to XRP " -"to activate your wallet. {{1:Why?}}" -msgstr "" - -#: src/jade/tabs/btc.jade:30 -msgid "Your current deposit limit is:" -msgstr "" - -#: src/jade/tabs/btc.jade:32 -msgid "Remove Limit" -msgstr "" - -#: src/jade/tabs/btc.jade:36 -msgid "Waiting for response from SnapSwap service..." -msgstr "" - -#: src/jade/tabs/btc.jade:38 -msgid "" -"To deposit, generate a bitcoin receiving address using the {{1}} service " -"powered by SnapSwap." -msgstr "" - -#: src/jade/tabs/btc.jade:45 -msgid "Generate bitcoin address" -msgstr "" - -#: src/jade/tabs/btc.jade:49 src/jade/tabs/security.jade:56 -#: src/jade/tabs/trust.jade:160 -msgid "Connect" -msgstr "" - -#: src/jade/tabs/btc.jade:51 -msgid "btc2ripple would like to:" -msgstr "" - -#: src/jade/tabs/btc.jade:53 -msgid "- Receive your email address{{1}}" -msgstr "" - -#: src/jade/tabs/btc.jade:54 -msgid "({{userBlob.data.email}})" -msgstr "" - -#: src/jade/tabs/btc.jade:55 -msgid "- Hold deposited BTC on your behalf" -msgstr "" - -#: src/jade/tabs/btc.jade:56 -msgid "By proceeding, you agree to the btc2ripple {{1}}" -msgstr "" - -#: src/jade/tabs/btc.jade:63 -msgid "" -"SnapSwap's btc2ripple service is currently unavailable. Please check back " -"later." -msgstr "" - -#: src/jade/tabs/contacts.jade:6 src/jade/tabs/contacts.jade:26 -msgid "Ripple name or address" -msgstr "" - -#: src/jade/tabs/contacts.jade:9 src/jade/tabs/contacts.jade:13 -#: src/jade/tabs/contacts.jade:56 -msgid "Add contact" -msgstr "" - -#: src/jade/tabs/contacts.jade:18 -msgid "Contact" -msgstr "" - -#: src/jade/tabs/contacts.jade:21 -msgid "Please enter a contact." -msgstr "" - -#: src/jade/tabs/contacts.jade:22 -msgid "This contact already exists." -msgstr "" - -#: src/jade/tabs/contacts.jade:30 -msgid "Please enter a Ripple name." -msgstr "" - -#: src/jade/tabs/contacts.jade:31 src/jade/tabs/contacts.jade:47 -msgid "" -"You already have a contact with the same Ripple name and/or the same " -"Destination tag." -msgstr "" - -#: src/jade/tabs/contacts.jade:32 -msgid "Not a valid Ripple name or address." -msgstr "" - -#: src/jade/tabs/contacts.jade:38 -msgid "Please enter a Ripple address." -msgstr "" - -#: src/jade/tabs/contacts.jade:39 src/jade/tabs/contacts.jade:53 -msgid "" -"You already have a contact with the same Ripple address and/or the same " -"Destination tag." -msgstr "" - -#: src/jade/tabs/contacts.jade:40 -msgid "Not a valid Ripple address." -msgstr "" - -#: src/jade/tabs/contacts.jade:43 src/jade/tabs/contacts.jade:49 -#: src/jade/tabs/contacts.jade:77 src/jade/tabs/send.jade:51 -#: src/jade/tabs/tx.jade:54 -msgid "Destination tag" -msgstr "" - -#: src/jade/tabs/contacts.jade:46 src/jade/tabs/contacts.jade:52 -#: src/jade/tabs/send.jade:57 -msgid "Invalid destination tag" -msgstr "" - -#: src/jade/tabs/contacts.jade:66 src/jade/tabs/send.jade:236 -#: src/jade/tabs/send.jade:264 -msgid "You already have a contact with the same name." -msgstr "" - -#: src/jade/tabs/contacts.jade:74 -msgid "You already have this address." -msgstr "" - -#: src/jade/tabs/contacts.jade:75 -msgid "Not a valid address." -msgstr "" - -#: src/jade/tabs/contacts.jade:80 -msgid "Invalid destination tag." -msgstr "" - -#: src/jade/tabs/contacts.jade:93 src/jade/tabs/trust.jade:232 -msgid "Edit" -msgstr "" - -#: src/jade/tabs/contacts.jade:98 -msgid "" -"You don't have any contacts yet. Click on 'Add contact' button in the top " -"right corner to add a new contact." -msgstr "" - -#: src/jade/tabs/desktop/login.jade:3 -msgid "" -"You will not be able to login to the downloadable client using a " -"username/password you create on Ripple Trade or the web version of the " -"Ripple Client. You can only use a secret key to access an existing Ripple " -"account. This is because the downloadable client stores your login " -"information locally on your computer, so your account is as safe as the " -"security of your personal computer." -msgstr "" - -#: src/jade/tabs/desktop/login.jade:12 src/jade/tabs/desktop/login.jade:34 -msgid "Open account" -msgstr "" - -#: src/jade/tabs/desktop/login.jade:15 src/jade/tabs/desktop/register.jade:5 -#: src/jade/tabs/desktop/register.jade:65 -msgid "Create new account" -msgstr "" - -#: src/jade/tabs/desktop/login.jade:18 -msgid "Select account file {{walletfile}}" -msgstr "" - -#: src/jade/tabs/desktop/login.jade:21 -msgid "Select account file" -msgstr "" - -#: src/jade/tabs/desktop/login.jade:24 -msgid "Account password" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:8 -msgid "Open existing account" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:11 -msgid "Create an empty account" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:14 -msgid "Create a new account with a secret key" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:18 -msgid "Create empty account" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:20 -msgid "Encrypt your new account file: {{walletfile}}" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:24 -msgid "Wallet file" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:31 -msgid "" -"Your password is weak. It is not a mix of letters, numbers and symbols or it" -" is the same as your Ripple name." -msgstr "" - -#: src/jade/tabs/desktop/register.jade:33 src/jade/tabs/recover.jade:40 -#: src/jade/tabs/register.jade:49 src/jade/tabs/security.jade:123 -msgid "Confirm password" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:36 src/jade/tabs/recover.jade:43 -#: src/jade/tabs/register.jade:52 src/jade/tabs/security.jade:126 -msgid "Passwords do not match" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:42 -msgid "Encrypt account" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:44 -msgid "Cancel and delete account file" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:50 -msgid "Create account with secret key" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:55 -msgid "Enter your secret key" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:62 -msgid "Secret is invalid" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:69 src/jade/tabs/register.jade:95 -msgid "Have an account? {{1:Log In}}" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:75 -msgid "Important:" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:76 -msgid "" -"The secret key below gives access to your money in the unlikely case that " -"you lose your password. In that case your contacts will be lost, but with " -"this secret key alone anyone can retrieve your money. So please store it " -"somewhere PRIVATE AND SAFE. Read more about keys and wallet safety in {{1}}" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:79 src/jade/tabs/settings/navbar.jade:2 -msgid "Security" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:81 -msgid "Passphrase:{{1}}{{2}}{{3}}{{4}}" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:90 -msgid "Secret key:" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:95 src/jade/tabs/register.jade:150 -msgid "Show secret key" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:97 src/jade/tabs/register.jade:151 -msgid "Hide secret key" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:98 -msgid "Have you saved your secret key somewhere safe?" -msgstr "" - -#: src/jade/tabs/desktop/register.jade:101 -msgid "Yes, I saved my secret key" -msgstr "" - -#: src/jade/tabs/exchange.jade:13 -msgid "You have to be funded before you can exchange money" -msgstr "" - -#: src/jade/tabs/exchange.jade:18 -msgid "Convert one currency into another." -msgstr "" - -#: src/jade/tabs/exchange.jade:21 -msgid "Receive (amount)" -msgstr "" - -#: src/jade/tabs/exchange.jade:28 src/jade/tabs/send.jade:92 -msgid "Please enter an amount." -msgstr "" - -#: src/jade/tabs/exchange.jade:29 src/jade/tabs/send.jade:93 -#: src/jade/tabs/trade.jade:146 src/jade/tabs/trade.jade:161 -#: src/jade/tabs/trade.jade:176 -msgid "Not a valid amount." -msgstr "" - -#: src/jade/tabs/exchange.jade:30 -msgid "Please enter an amount greater than zero." -msgstr "" - -#: src/jade/tabs/exchange.jade:33 -msgid "Calculating..." -msgstr "" - -#: src/jade/tabs/exchange.jade:35 -msgid "" -"Cannot convert to {{exchange.amount}} {{exchange.currency_name}}. Please " -"make sure your account has enough funds, and a {{1}} to a " -"{{exchange.currency_name}} gateway." -msgstr "" - -#: src/jade/tabs/exchange.jade:39 -msgid "" -"Sorry! Cannot convert {{exchange.amount}} {{exchange.currency_name}}. Please" -" make sure your account has enough funds." -msgstr "" - -#: src/jade/tabs/exchange.jade:41 src/jade/tabs/send.jade:137 -msgid "Error while calculating path" -msgstr "" - -#: src/jade/tabs/exchange.jade:57 -msgid "Exchange {{ alt.amount | rpcurrency }} {{1}}" -msgstr "" - -#: src/jade/tabs/exchange.jade:63 src/jade/tabs/send.jade:165 -msgid "Paths last updated {{1}} {{2: seconds}} {{3: second}} ago" -msgstr "" - -#: src/jade/tabs/exchange.jade:72 -msgid "Ripple is calculating a path for your conversion." -msgstr "" - -#: src/jade/tabs/exchange.jade:77 -msgid "" -"{{1:You are exchanging}}{{2}}{{3:to}}{{4}}{{5:You will pay at " -"most}}{{6}}{{7:Are you sure?}}" -msgstr "" - -#: src/jade/tabs/exchange.jade:118 -msgid "Do another conversion" -msgstr "" - -#: src/jade/tabs/exchange.jade:120 src/jade/tabs/send.jade:247 -#: src/jade/tabs/send.jade:277 -msgid "Back to balance" -msgstr "" - -#: src/jade/tabs/fund.jade:20 -msgid "Add trust" -msgstr "" - -#: src/jade/tabs/fund.jade:33 src/jade/tabs/fund.jade:47 -#: src/jade/tabs/trust.jade:100 src/jade/tabs/trust.jade:121 -msgid "Account does not meet the minimum XRP reserve." -msgstr "" - -#: src/jade/tabs/fund.jade:34 src/jade/tabs/fund.jade:48 -#: src/jade/tabs/send.jade:111 src/jade/tabs/trust.jade:101 -#: src/jade/tabs/trust.jade:122 -msgid "More information" -msgstr "" - -#: src/jade/tabs/fund.jade:36 src/jade/tabs/trust.jade:103 -msgid "Please enter a Ripple name, contact, or address." -msgstr "" - -#: src/jade/tabs/fund.jade:37 src/jade/tabs/fund.jade:51 -#: src/jade/tabs/trust.jade:104 src/jade/tabs/trust.jade:125 -msgid "You've entered your own address." -msgstr "" - -#: src/jade/tabs/fund.jade:38 src/jade/tabs/trust.jade:105 -msgid "Please enter a valid Ripple name, contact, or address." -msgstr "" - -#: src/jade/tabs/fund.jade:50 src/jade/tabs/trust.jade:124 -msgid "Please enter a Ripple address or contact." -msgstr "" - -#: src/jade/tabs/fund.jade:52 src/jade/tabs/trust.jade:126 -msgid "Please enter a valid Ripple address or contact." -msgstr "" - -#: src/jade/tabs/fund.jade:55 src/jade/tabs/history.jade:189 -#: src/jade/tabs/trade.jade:301 src/jade/tabs/trust.jade:129 -msgid "Amount" -msgstr "" - -#: src/jade/tabs/fund.jade:62 src/jade/tabs/trust.jade:107 -#: src/jade/tabs/trust.jade:140 -msgid "Amount field is required" -msgstr "" - -#: src/jade/tabs/fund.jade:64 src/jade/tabs/trust.jade:109 -#: src/jade/tabs/trust.jade:142 -msgid "" -"XRP can be sent without extending trust. If you really want to trust in XRP," -" please use XRR currency code." -msgstr "" - -#: src/jade/tabs/fund.jade:67 src/jade/tabs/trust.jade:112 -#: src/jade/tabs/trust.jade:145 -msgid "Currency field is required" -msgstr "" - -#: src/jade/tabs/fund.jade:73 src/jade/tabs/trust.jade:151 -msgid "Allow Rippling" -msgstr "" - -#: src/jade/tabs/fund/menu.jade:2 -msgid "XRP" -msgstr "" - -#: src/jade/tabs/fund/menu.jade:3 -msgid "BTC" -msgstr "" - -#: src/jade/tabs/fund/menu.jade:6 -msgid "Learn more about gateways" -msgstr "" - -#: src/jade/tabs/history.jade:9 -msgid "Loading history..." -msgstr "" - -#: src/jade/tabs/history.jade:14 -msgid "Your account history is empty" -msgstr "" - -#: src/jade/tabs/history.jade:20 -msgid "Filters" -msgstr "" - -#: src/jade/tabs/history.jade:23 -msgid "Transaction type{{1}}{{2}}" -msgstr "" - -#: src/jade/tabs/history.jade:48 -msgid "Date{{1}}{{2}}" -msgstr "" - -#: src/jade/tabs/history.jade:53 -msgid "Load history for specific date range" -msgstr "" - -#: src/jade/tabs/history.jade:59 -msgid "From" -msgstr "" - -#: src/jade/tabs/history.jade:65 -msgid "To" -msgstr "" - -#: src/jade/tabs/history.jade:68 -msgid "Filter" -msgstr "" - -#: src/jade/tabs/history.jade:81 -msgid "Transaction History" -msgstr "" - -#: src/jade/tabs/history.jade:83 -msgid "Export to CSV" -msgstr "" - -#: src/jade/tabs/history.jade:87 -msgid "Date" -msgstr "" - -#: src/jade/tabs/history.jade:88 src/jade/tabs/history.jade:187 -msgid "Description" -msgstr "" - -#: src/jade/tabs/history.jade:89 -msgid "Sorry, no transactions match your current filter." -msgstr "" - -#: src/jade/tabs/history.jade:108 -msgid "You sent{{1}}to{{2}}" -msgstr "" - -#: src/jade/tabs/history.jade:114 -msgid "{{1}}sent you{{2}}" -msgstr "" - -#: src/jade/tabs/history.jade:120 -msgid "You requested to exchange{{1}}to{{2}}" -msgstr "" - -#: src/jade/tabs/history.jade:126 -msgid "{{1}}now trusts you for{{2}}" -msgstr "" - -#: src/jade/tabs/history.jade:139 src/jade/tabs/history/effects.jade:45 -msgid "You created an order to sell{{1}}for{{2}}" -msgstr "" - -#: src/jade/tabs/history.jade:143 src/jade/tabs/history/effects.jade:49 -msgid "You created an order to buy{{1}}for{{2}}" -msgstr "" - -#: src/jade/tabs/history.jade:149 -msgid "You cancelled an order accepting {{1}}for{{2}}" -msgstr "" - -#: src/jade/tabs/history.jade:155 -msgid "Account details have been Changed" -msgstr "" - -#: src/jade/tabs/history.jade:161 -msgid "{{1}}{{2}}" -msgstr "" - -#: src/jade/tabs/history.jade:162 -msgid "Unknown transaction" -msgstr "" - -#: src/jade/tabs/history.jade:165 -msgid "" -"The client failed to parse this transaction. The developers have been " -"notified of the issue." -msgstr "" - -#: src/jade/tabs/history.jade:170 -msgid "{{1}} sent you{{2}} and activated your account!" -msgstr "" - -#: src/jade/tabs/history.jade:177 -msgid "You deposited{{1}} using {{entry.details.app.name}}" -msgstr "" - -#: src/jade/tabs/history.jade:185 -msgid "Balance Changes" -msgstr "" - -#: src/jade/tabs/history.jade:188 -msgid "Issuer" -msgstr "" - -#: src/jade/tabs/history.jade:190 -msgid "Final balance" -msgstr "" - -#: src/jade/tabs/history.jade:193 -msgid "XRP Balance Change" -msgstr "" - -#: src/jade/tabs/history.jade:194 -msgid "{{effect.currency}} Balance Change" -msgstr "" - -#: src/jade/tabs/history.jade:195 -msgid "Fee" -msgstr "" - -#: src/jade/tabs/history.jade:200 -msgid "Transaction details" -msgstr "" - -#: src/jade/tabs/history.jade:201 -msgid "Add {{1}} to contact list" -msgstr "" - -#: src/jade/tabs/history.jade:207 src/jade/tabs/trade.jade:384 -msgid "Load more" -msgstr "" - -#: src/jade/tabs/history.jade:208 -msgid "No more transactions left" -msgstr "" - -#: src/jade/tabs/history/effects.jade:4 src/jade/tabs/history/effects.jade:19 -msgid "You sold{{1}}for{{2}}" -msgstr "" - -#: src/jade/tabs/history/effects.jade:8 src/jade/tabs/history/effects.jade:23 -msgid "You bought{{1}}for{{2}}" -msgstr "" - -#: src/jade/tabs/history/effects.jade:13 src/jade/tabs/history/effects.jade:28 -msgid "price" -msgstr "" - -#: src/jade/tabs/history/effects.jade:17 -msgid "This order has been filled." -msgstr "" - -#: src/jade/tabs/history/effects.jade:32 -msgid "The rest of your order has been cancelled due to lack of funds." -msgstr "" - -#: src/jade/tabs/history/effects.jade:33 -msgid "This order has{{1}}remaining." -msgstr "" - -#: src/jade/tabs/history/effects.jade:39 -msgid "Order ({{1}} for {{2}}) has been cancelled due to lack of funds." -msgstr "" - -#: src/jade/tabs/history/effects.jade:53 -msgid "You bought{{1}}for{{2}}({{3:price}}{{4}})." -msgstr "" - -#: src/jade/tabs/history/effects.jade:68 -msgid "{{1}}is trusting you for{{2}}." -msgstr "" - -#: src/jade/tabs/history/effects.jade:73 -msgid "You have changed {{1}}trust for{{2}}from{{3}}to{{4}}." -msgstr "" - -#: src/jade/tabs/history/effects.jade:83 -msgid "{{1}}changed the{{2}}trust from{{3}}to{{4}}." -msgstr "" - -#: src/jade/tabs/history/effects.jade:92 -msgid "Trust balance between you and{{1}}has been changed by{{2}}." -msgstr "" - -#: src/jade/tabs/history/effects.jade:99 -msgid "Your balance has been changed by{{1}}." -msgstr "" - -#: src/jade/tabs/kyc.jade:16 -msgid "Verifying your information. Please wait..." -msgstr "" - -#: src/jade/tabs/kyc.jade:18 -msgid "Your identity information has been verified." -msgstr "" - -#: src/jade/tabs/kyc.jade:20 -msgid "Your identity questions have been verified." -msgstr "" - -#: src/jade/tabs/kyc.jade:22 -msgid "" -"Congrats! Your profile is complete. You can now deposit up to $300 per day " -"instantly." -msgstr "" - -#: src/jade/tabs/kyc.jade:24 -msgid "There was an error with your request. Please try again later." -msgstr "" - -#: src/jade/tabs/kyc.jade:26 -msgid "" -"There was an error with your request. Make sure your phone number is valid " -"and try again." -msgstr "" - -#: src/jade/tabs/kyc.jade:28 -msgid "Please check your verification code and try again." -msgstr "" - -#: src/jade/tabs/kyc.jade:30 -msgid "" -"There was an error while requesting the verification code. Please try again " -"later." -msgstr "" - -#: src/jade/tabs/kyc.jade:32 -msgid "" -"We are unable to validate your identity information. Please check your " -"information and try again." -msgstr "" - -#: src/jade/tabs/kyc.jade:34 -msgid "" -"We are unable to validate your identity questions. Please check your answers" -" and try again." -msgstr "" - -#: src/jade/tabs/kyc.jade:36 -msgid "" -"We can't verify your identity. Please contact us at support@ripple.com." -msgstr "" - -#: src/jade/tabs/kyc.jade:41 -msgid "Profile Completion" -msgstr "" - -#: src/jade/tabs/kyc.jade:44 -msgid "STEP 1: IDENTITY INFORMATION" -msgstr "" - -#: src/jade/tabs/kyc.jade:46 -msgid "STEP 2: IDENTITY QUESTIONS" -msgstr "" - -#: src/jade/tabs/kyc.jade:48 -msgid "STEP 3: TWO-FACTOR AUTHENTICATION" -msgstr "" - -#: src/jade/tabs/kyc.jade:55 -msgid "First Name" -msgstr "" - -#: src/jade/tabs/kyc.jade:59 -msgid "Last Name" -msgstr "" - -#: src/jade/tabs/kyc.jade:63 -msgid "Street Address" -msgstr "" - -#: src/jade/tabs/kyc.jade:68 -msgid "City" -msgstr "" - -#: src/jade/tabs/kyc.jade:72 -msgid "State" -msgstr "" - -#: src/jade/tabs/kyc.jade:76 -msgid "ZIP" -msgstr "" - -#: src/jade/tabs/kyc.jade:80 -msgid "Date of Birth" -msgstr "" - -#: src/jade/tabs/kyc.jade:84 -msgid "Month{{1}}" -msgstr "" - -#: src/jade/tabs/kyc.jade:87 -msgid "Day{{1}}" -msgstr "" - -#: src/jade/tabs/kyc.jade:90 -msgid "Year{{1}}" -msgstr "" - -#: src/jade/tabs/kyc.jade:94 -msgid "Last 4 digits of Social Security Number" -msgstr "" - -#: src/jade/tabs/kyc.jade:102 -msgid "Continue to identity questions" -msgstr "" - -#: src/jade/tabs/kyc.jade:108 -msgid "{{ q.question }}{{1}}" -msgstr "" - -#: src/jade/tabs/kyc.jade:111 -msgid "{{ a.answer }}" -msgstr "" - -#: src/jade/tabs/kyc.jade:114 -msgid "Continue to two-factor authentication" -msgstr "" - -#: src/jade/tabs/kyc.jade:122 -msgid "Two-factor authentication provides extra security for your account." -msgstr "" - -#: src/jade/tabs/kyc.jade:129 -msgid "" -"Ripple Trade has partnered with Authy to provide better security for your " -"account.By continuing, you agree to Authy's {{1:Terms of Service}}." -msgstr "" - -#: src/jade/tabs/kyc.jade:135 -msgid "Verify phone number" -msgstr "" - -#: src/jade/tabs/kyc.jade:145 -msgid "change" -msgstr "" - -#: src/jade/tabs/kyc.jade:149 -msgid "" -"A verification code has been sent to +{{ currentCountryCode }} {{ " -"phoneNumber }}." -msgstr "" - -#: src/jade/tabs/kyc.jade:154 src/jade/tabs/login/form.jade:20 -#: src/jade/tabs/security.jade:88 -msgid "Verification Code" -msgstr "" - -#: src/jade/tabs/login.jade:5 src/jade/tabs/login.jade:19 -#: src/jade/tabs/login.jade:83 -msgid "Log In" -msgstr "" - -#: src/jade/tabs/login.jade:7 -msgid "Verifying..." -msgstr "" - -#: src/jade/tabs/login.jade:8 -msgid "You have successfully verified your email address." -msgstr "" - -#: src/jade/tabs/login.jade:9 -msgid "" -"Email verification token is invalid. It has either expired or has been " -"resent. Please check your inbox for the most recent verification email." -msgstr "" - -#: src/jade/tabs/login.jade:21 -msgid "Verify" -msgstr "" - -#: src/jade/tabs/login.jade:25 src/jade/tabs/login.jade:26 -#: src/jade/tabs/recover.jade:5 -msgid "Account Recovery" -msgstr "" - -#: src/jade/tabs/login.jade:28 src/jade/tabs/register.jade:93 -msgid "Already have a ripple.com/client account? {{1:Migrate}}" -msgstr "" - -#: src/jade/tabs/login.jade:30 src/jade/tabs/migrate.jade:26 -msgid "New to {{productName}}? {{1:Sign Up}}" -msgstr "" - -#: src/jade/tabs/login.jade:37 -msgid "{{1:You're sending money to}}{{2}}." -msgstr "" - -#: src/jade/tabs/login.jade:41 -msgid "{{1:You're sending}}{{2}}{{3: to }}{{4}}." -msgstr "" - -#: src/jade/tabs/login.jade:51 -msgid "" -"{{1:You're connecting to the gateway}}{{2}}{{3:for{{1}}}}{{4:with a limit " -"of{{1}}}}." -msgstr "" - -#: src/jade/tabs/login.jade:66 -msgid "{{1:You're adding}}{{2}}{{3:to your contacts list}}" -msgstr "" - -#: src/jade/tabs/login.jade:84 -msgid "You can confirm this transaction on the next page." -msgstr "" - -#: src/jade/tabs/login.jade:85 -msgid "New to {{productName}}? {{1:Create a wallet}}" -msgstr "" - -#: src/jade/tabs/login/form.jade:11 src/jade/tabs/security.jade:82 -msgid "" -"Please enter the verification code from the SMS message sent to your device:" -msgstr "" - -#: src/jade/tabs/login/form.jade:12 src/jade/tabs/security.jade:83 -msgid "" -"Please enter the verification code from the Authy app installed on your " -"device:" -msgstr "" - -#: src/jade/tabs/login/form.jade:16 -msgid "Resend" -msgstr "" - -#: src/jade/tabs/login/form.jade:17 src/jade/tabs/security.jade:95 -msgid "Send Via SMS" -msgstr "" - -#: src/jade/tabs/login/form.jade:24 -msgid "Remember me on this device for 30 days" -msgstr "" - -#: src/jade/tabs/migrate.jade:5 src/jade/tabs/register.jade:10 -#: src/jade/tabs/register.jade:116 src/jade/tabs/register.jade:159 -msgid "Migrate" -msgstr "" - -#: src/jade/tabs/migrate.jade:6 -msgid "" -"To begin migration, enter the name and passphrase used to encrypt your " -"ripple.com/client wallet below. After migration, you will no longer be able " -"to login on ripple.com/client." -msgstr "" - -#: src/jade/tabs/migrate.jade:10 -msgid "Existing ripple.com/client Wallet name" -msgstr "" - -#: src/jade/tabs/migrate.jade:13 -msgid "Passphrase" -msgstr "" - -#: src/jade/tabs/migrate.jade:25 -msgid "Begin Migration" -msgstr "" - -#: src/jade/tabs/migrate.jade:28 -msgid "Have a {{productName}} account? {{1:Log In}}" -msgstr "" - -#: src/jade/tabs/recover.jade:7 -msgid "" -"You can only recover your Ripple Trade account with a secret key. You will " -"recover the account's Ripple name, contacts and other information." -msgstr "" - -#: src/jade/tabs/recover.jade:9 src/jade/tabs/recover.jade:28 -msgid "Ripple Name" -msgstr "" - -#: src/jade/tabs/recover.jade:14 -msgid "Secret Key" -msgstr "" - -#: src/jade/tabs/recover.jade:17 -msgid "Unable to recover account." -msgstr "" - -#: src/jade/tabs/recover.jade:22 src/jade/tabs/register.jade:74 -msgid "Recover Account" -msgstr "" - -#: src/jade/tabs/recover.jade:24 src/jade/tabs/recover.jade:50 -msgid "Set Password" -msgstr "" - -#: src/jade/tabs/recover.jade:26 -msgid "" -"Your account was sucessfully recovered. Please re-encrypt your account with " -"a new password." -msgstr "" - -#: src/jade/tabs/recover.jade:36 src/jade/tabs/register.jade:45 -#: src/jade/tabs/security.jade:119 -msgid "" -"Your password is weak. It does not contain numbers and symbols or it is too " -"short." -msgstr "" - -#: src/jade/tabs/recover.jade:38 src/jade/tabs/register.jade:47 -#: src/jade/tabs/security.jade:121 -msgid "" -"Your Ripple name and password cannot match. Please create a new password." -msgstr "" - -#: src/jade/tabs/recover.jade:45 -msgid "Unable to change your account password." -msgstr "" - -#: src/jade/tabs/recover.jade:49 -msgid "Updating..." -msgstr "" - -#: src/jade/tabs/recover.jade:51 -msgid "Remember your password? {{1:Log In}}" -msgstr "" - -#: src/jade/tabs/register.jade:5 -msgid "" -"Ripple Trade is the only platform where you can trade between stores of " -"value spanning fiat, crypto, precious metals and more." -msgstr "" - -#: src/jade/tabs/register.jade:9 src/jade/tabs/register.jade:90 -#: src/jade/tabs/register.jade:115 src/jade/tabs/register.jade:158 -msgid "Sign Up" -msgstr "" - -#: src/jade/tabs/register.jade:12 src/jade/tabs/register.jade:14 -#: src/jade/tabs/register.jade:16 src/jade/tabs/register.jade:120 -#: src/jade/tabs/register.jade:122 src/jade/tabs/register.jade:161 -#: src/jade/tabs/register.jade:163 src/jade/tabs/register.jade:165 -msgid "Step {{1}}" -msgstr "" - -#: src/jade/tabs/register.jade:19 -msgid "Create Ripple name" -msgstr "" - -#: src/jade/tabs/register.jade:20 -msgid "" -"Please choose a Ripple name below. You will use this Ripple name to login to" -" Ripple Trade, so remember it! Ripple names are unique and public, like your" -" current Ripple address. {{1}}" -msgstr "" - -#: src/jade/tabs/register.jade:21 -msgid "Learn More" -msgstr "" - -#: src/jade/tabs/register.jade:36 -msgid "You can only use the following characters: a-z, 0-9 and hyphens (-)" -msgstr "" - -#: src/jade/tabs/register.jade:39 -msgid "Cannot use hyphens in a row (--)" -msgstr "" - -#: src/jade/tabs/register.jade:60 -msgid "Email address is invalid" -msgstr "" - -#: src/jade/tabs/register.jade:62 src/jade/tabs/security.jade:138 -msgid "Secret key" -msgstr "" - -#: src/jade/tabs/register.jade:63 src/jade/tabs/send.jade:53 -#: src/jade/tabs/trade.jade:329 src/jade/tabs/trade.jade:335 -msgid "hide" -msgstr "" - -#: src/jade/tabs/register.jade:67 -msgid "Secret Account Key is invalid" -msgstr "" - -#: src/jade/tabs/register.jade:69 -msgid "" -"The account ~{{1}}{{2}} has already been created using this secret key." -msgstr "" - -#: src/jade/tabs/register.jade:75 -msgid "Need to use your secret key? {{1}}" -msgstr "" - -#: src/jade/tabs/register.jade:77 -msgid "Use key" -msgstr "" - -#: src/jade/tabs/register.jade:80 -msgid "I agree to the {{productName}} {{1:end-user license agreement}}" -msgstr "" - -#: src/jade/tabs/register.jade:83 -msgid "" -"Please see our {{1}} to see how we collect, use and share information about " -"you" -msgstr "" - -#: src/jade/tabs/register.jade:91 -msgid "Migrate Account" -msgstr "" - -#: src/jade/tabs/register.jade:100 -msgid "An error occurred during registration. Please try again later." -msgstr "" - -#: src/jade/tabs/register.jade:101 -msgid "The reported error was: {{1}}" -msgstr "" - -#: src/jade/tabs/register.jade:109 -msgid "" -"There is already a wallet using this username, please choose a different " -"username and try again." -msgstr "" - -#: src/jade/tabs/register.jade:124 -msgid "" -"By proceeding, you understand that Ripple Trade does not provide a password " -"or secret key recovery mechanism. If you forget your Ripple name/password " -"and secret key, you will be unable to access this Ripple account." -msgstr "" - -#: src/jade/tabs/register.jade:129 -msgid "" -"You are now migrating your account- meaning you'll no longer be able to " -"access your account from ripple.com/client. You will retain all of your " -"balances, contacts, and account history. Your account will use the same " -"secret key as before. If you have already saved your secret key, please " -"continue your migration." -msgstr "" - -#: src/jade/tabs/register.jade:136 -msgid "" -"The secret key unlocks access to all your account funds in the event you " -"lose your Ripple name or password. Please write it down and store it " -"somewhere private and safe. {{1:Read more}} about keys and wallet safety." -msgstr "" - -#: src/jade/tabs/register.jade:141 -msgid "" -"If you have not saved your secret key, please write it down and store it " -"somewhere private and safe. In the event you lose your Ripple name or " -"password, you can use this secret key to recover your funds." -msgstr "" - -#: src/jade/tabs/register.jade:154 -msgid "Continue to email verification" -msgstr "" - -#: src/jade/tabs/register.jade:167 -msgid "" -"We’ve sent an email to {{1}}. To complete registration, click the link in " -"the email." -msgstr "" - -#: src/jade/tabs/register.jade:170 -msgid "Email token has been resent." -msgstr "" - -#: src/jade/tabs/register.jade:173 -msgid "Email Address:" -msgstr "" - -#: src/jade/tabs/register.jade:178 -msgid "Re-send Email" -msgstr "" - -#: src/jade/tabs/security.jade:5 -msgid "Active Session Timeout" -msgstr "" - -#: src/jade/tabs/security.jade:6 -msgid "" -"To view or edit your security settings, you must currently have an active " -"session." -msgstr "" - -#: src/jade/tabs/security.jade:13 -msgid "Restore Session" -msgstr "" - -#: src/jade/tabs/security.jade:22 -msgid "Your Ripple password has been changed, please login again" -msgstr "" - -#: src/jade/tabs/security.jade:24 -msgid "Couldn't change your Ripple password, please try again later." -msgstr "" - -#: src/jade/tabs/security.jade:27 -msgid "Changing your Ripple password..." -msgstr "" - -#: src/jade/tabs/security.jade:28 -msgid "Your Ripple password has been changed successfully." -msgstr "" - -#: src/jade/tabs/security.jade:29 -msgid "Unable to load Two-factor authentication settings." -msgstr "" - -#: src/jade/tabs/security.jade:30 -msgid "Error saving Two-factor authentication settings." -msgstr "" - -#: src/jade/tabs/security.jade:31 -msgid "The verification code is invalid." -msgstr "" - -#: src/jade/tabs/security.jade:32 -msgid "Two-factor authentication has been successfully enabled." -msgstr "" - -#: src/jade/tabs/security.jade:33 -msgid "Two-factor authentication has been successfully disabled." -msgstr "" - -#: src/jade/tabs/security.jade:39 -msgid "Security settings" -msgstr "" - -#: src/jade/tabs/security.jade:44 -msgid "Loading Two-factor authentication settings..." -msgstr "" - -#: src/jade/tabs/security.jade:47 -msgid "Enabled" -msgstr "" - -#: src/jade/tabs/security.jade:48 -msgid "Disabled" -msgstr "" - -#: src/jade/tabs/security.jade:50 -msgid "disable" -msgstr "" - -#: src/jade/tabs/security.jade:52 -msgid "enable" -msgstr "" - -#: src/jade/tabs/security.jade:58 -msgid "" -"Authy is providing two-factor authentication for Ripple Trade. To enable " -"two-factor authentication, you must share some information with Authy." -msgstr "" - -#: src/jade/tabs/security.jade:61 -msgid "- Your email address:" -msgstr "" - -#: src/jade/tabs/security.jade:64 -msgid "- Your phone number:" -msgstr "" - -#: src/jade/tabs/security.jade:66 -msgid "By proceeding, you agree to the Authy {{1: terms of service.}}" -msgstr "" - -#: src/jade/tabs/security.jade:70 -msgid "Share" -msgstr "" - -#: src/jade/tabs/security.jade:75 -msgid "Saving settings..." -msgstr "" - -#: src/jade/tabs/security.jade:76 -msgid "Disabling Two-factor authentication..." -msgstr "" - -#: src/jade/tabs/security.jade:77 -msgid "Enabling Two-factor authentication..." -msgstr "" - -#: src/jade/tabs/security.jade:94 -msgid "Resend Code" -msgstr "" - -#: src/jade/tabs/security.jade:99 -msgid "Enable" -msgstr "" - -#: src/jade/tabs/security.jade:103 -msgid "Ripple password" -msgstr "" - -#: src/jade/tabs/security.jade:116 -msgid "New password" -msgstr "" - -#: src/jade/tabs/security.jade:140 -msgid "" -"Your secret key unlocks access to your account funds. Please write it down " -"and store it somewhere private and safe. In the event you lose your Ripple " -"name or password, you can use this secret key to recover your funds." -msgstr "" - -#: src/jade/tabs/security.jade:150 -msgid "Password protection for transactions" -msgstr "" - -#: src/jade/tabs/security.jade:153 -msgid "" -"If you turn off password requests, you’ll still need to enter your password " -"after each page refresh." -msgstr "" - -#: src/jade/tabs/security.jade:161 -msgid "Yes" -msgstr "" - -#: src/jade/tabs/security.jade:162 -msgid "No" -msgstr "" - -#: src/jade/tabs/send.jade:12 -msgid "You have to be funded before you can send money" -msgstr "" - -#: src/jade/tabs/send.jade:17 -msgid "Send money on the Ripple network." -msgstr "" - -#: src/jade/tabs/send.jade:21 src/jade/tabs/send.jade:34 -msgid "Recipient" -msgstr "" - -#: src/jade/tabs/send.jade:26 src/jade/tabs/send.jade:39 -msgid "Please enter a recipient." -msgstr "" - -#: src/jade/tabs/send.jade:28 -msgid "" -"Recipient should be a Ripple name, a contact, or Ripple/Bitcoin address." -msgstr "" - -#: src/jade/tabs/send.jade:30 src/jade/tabs/send.jade:43 -msgid "This email address is not Ripple-enabled." -msgstr "" - -#: src/jade/tabs/send.jade:41 -msgid "Recipient should be a contact or Ripple/Bitcoin address." -msgstr "" - -#: src/jade/tabs/send.jade:47 -msgid "Show destination tag" -msgstr "" - -#: src/jade/tabs/send.jade:58 -msgid "Destination cannot be blank." -msgstr "" - -#: src/jade/tabs/send.jade:59 -msgid "" -"Recipient requires a destination tag to be specified for the transaction. If" -" you don't know the destination tag, please contact them before doing a " -"transaction." -msgstr "" - -#: src/jade/tabs/send.jade:64 -msgid "Source tag" -msgstr "" - -#: src/jade/tabs/send.jade:67 -msgid "Invalid source tag" -msgstr "" - -#: src/jade/tabs/send.jade:79 -msgid "Recipient will receive" -msgstr "" - -#: src/jade/tabs/send.jade:90 -msgid "{{send.recipient | rpcontactname}} can't receive this currency." -msgstr "" - -#: src/jade/tabs/send.jade:94 -msgid "Amount must be greater than zero." -msgstr "" - -#: src/jade/tabs/send.jade:95 -msgid "" -"This transaction exceeds your balance, you can send a max. of " -"{{account.max_spend | rpamount:{rel_precision: 0} }} XRP" -msgstr "" - -#: src/jade/tabs/send.jade:98 -msgid "" -"Recipient does not allow XRP payments. Are you sure you want to send XRP " -"anyway?" -msgstr "" - -#: src/jade/tabs/send.jade:100 -msgid "" -"{{send.recipient | rpcontactname}}trusts you for {{send.trust_limit | " -"rpamount}} {{send.trust_limit | rpcurrency}}." -msgstr "" - -#: src/jade/tabs/send.jade:104 -msgid "Send XRP" -msgstr "" - -#: src/jade/tabs/send.jade:108 -msgid "" -"Destination account is unfunded; send at least {{send.xrp_deficiency | " -"rpamount}} XRP to fund it.{{1}}" -msgstr "" - -#: src/jade/tabs/send.jade:113 -msgid "Checking" -msgstr "" - -#: src/jade/tabs/send.jade:115 -msgid "Analyzing address" -msgstr "" - -#: src/jade/tabs/send.jade:117 -msgid "Scanning accepted currencies" -msgstr "" - -#: src/jade/tabs/send.jade:119 -msgid "Requesting quote" -msgstr "" - -#: src/jade/tabs/send.jade:121 -msgid "Calculating paths" -msgstr "" - -#: src/jade/tabs/send.jade:123 -msgid "Calculating alternatives" -msgstr "" - -#: src/jade/tabs/send.jade:125 -msgid "" -"You cannot send {{send.amount}} {{send.currency}} to {{send.recipient}}. " -"Either your account has insufficient funds, or {{send.recipient}} doesn't " -"accept {{send.currency}}." -msgstr "" - -#: src/jade/tabs/send.jade:129 -msgid "" -"You cannot send {{send.amount}} {{send.currency}} to{{send.recipient}}. Your" -" account has insufficient funds." -msgstr "" - -#: src/jade/tabs/send.jade:132 -msgid "There are no valid currency choices for this destination." -msgstr "" - -#: src/jade/tabs/send.jade:134 -msgid "Error while retrieving quote for outbound payment. {{1}}" -msgstr "" - -#: src/jade/tabs/send.jade:143 -msgid "You can send" -msgstr "" - -#: src/jade/tabs/send.jade:145 -msgid "Or you can send" -msgstr "" - -#: src/jade/tabs/send.jade:159 -msgid "Send {{ alt.amount | rpcurrency }} {{1}}" -msgstr "" - -#: src/jade/tabs/send.jade:174 -msgid "Ripple is calculating a path for your payment." -msgstr "" - -#: src/jade/tabs/send.jade:180 -msgid "You are sending {{1}} to" -msgstr "" - -#: src/jade/tabs/send.jade:188 -msgid "Destination tag: {{send.dt}}" -msgstr "" - -#: src/jade/tabs/send.jade:189 -msgid "They will receive" -msgstr "" - -#: src/jade/tabs/send.jade:192 -msgid "You will pay at most" -msgstr "" - -#: src/jade/tabs/send.jade:198 -msgid "Are you sure?" -msgstr "" - -#: src/jade/tabs/send.jade:204 -msgid "Password required to unlock wallet" -msgstr "" - -#: src/jade/tabs/send.jade:228 src/jade/tabs/send.jade:256 -msgid "Contact saved!" -msgstr "" - -#: src/jade/tabs/send.jade:230 src/jade/tabs/send.jade:258 -msgid "Add this address to contacts" -msgstr "" - -#: src/jade/tabs/send.jade:234 src/jade/tabs/send.jade:262 -msgid "Name this user" -msgstr "" - -#: src/jade/tabs/send.jade:240 src/jade/tabs/send.jade:269 -#: src/jade/tabs/trust.jade:283 -msgid "Saving..." -msgstr "" - -#: src/jade/tabs/send.jade:245 src/jade/tabs/send.jade:275 -msgid "Send another payment" -msgstr "" - -#: src/jade/tabs/settings/navbar.jade:3 -msgid "Advanced" -msgstr "" - -#: src/jade/tabs/trade.jade:10 -msgid "Loading order book..." -msgstr "" - -#: src/jade/tabs/trade.jade:23 -msgid "flip" -msgstr "" - -#: src/jade/tabs/trade.jade:27 src/jade/tabs/trade.jade:35 -msgid "Base currency" -msgstr "" - -#: src/jade/tabs/trade.jade:30 src/jade/tabs/trade.jade:41 -msgid "Change gateway" -msgstr "" - -#: src/jade/tabs/trade.jade:38 src/jade/tabs/trade.jade:46 -msgid "Counter currency" -msgstr "" - -#: src/jade/tabs/trade.jade:50 -msgid "Base currency issuer ({{order.first_currency | rpcurrency}})" -msgstr "" - -#: src/jade/tabs/trade.jade:55 -msgid "Not a valid Ripple address or contact" -msgstr "" - -#: src/jade/tabs/trade.jade:60 -msgid "Counter currency issuer ({{order.second_currency | rpcurrency}})" -msgstr "" - -#: src/jade/tabs/trade.jade:65 -msgid "Not a valid Ripple name or address" -msgstr "" - -#: src/jade/tabs/trade.jade:69 -msgid "" -"You must select a gateway to trade currencies. Click the “Change gateway” " -"link above and enter the gateway's address or Ripple name. {{1:Find a " -"gateway.}}" -msgstr "" - -#: src/jade/tabs/trade.jade:79 -msgid "Bid" -msgstr "" - -#: src/jade/tabs/trade.jade:84 -msgid "Ask" -msgstr "" - -#: src/jade/tabs/trade.jade:89 -msgid "Spread" -msgstr "" - -#: src/jade/tabs/trade.jade:94 -msgid "Last price" -msgstr "" - -#: src/jade/tabs/trade.jade:101 -msgid "You have to be funded before you can trade" -msgstr "" - -#: src/jade/tabs/trade.jade:108 -msgid "Buy {{1}} {{order.first_currency | rpcurrency}}" -msgstr "" - -#: src/jade/tabs/trade.jade:111 -msgid "Sell {{1}} {{order.first_currency | rpcurrency}}" -msgstr "" - -#: src/jade/tabs/trade.jade:114 src/jade/tabs/trade.jade:123 -msgid "{{1}} available" -msgstr "" - -#: src/jade/tabs/trade.jade:137 -msgid "Amount To Buy" -msgstr "" - -#: src/jade/tabs/trade.jade:138 -msgid "Amount To Sell" -msgstr "" - -#: src/jade/tabs/trade.jade:145 src/jade/tabs/trade.jade:160 -#: src/jade/tabs/trade.jade:175 -msgid "Required" -msgstr "" - -#: src/jade/tabs/trade.jade:147 src/jade/tabs/trade.jade:162 -#: src/jade/tabs/trade.jade:177 -msgid "Must be greater than zero" -msgstr "" - -#: src/jade/tabs/trade.jade:149 src/jade/tabs/trade.jade:164 -#: src/jade/tabs/trade.jade:179 -msgid "Minimum is a drop (0.000001) and maximum is 100 billion XRPs" -msgstr "" - -#: src/jade/tabs/trade.jade:153 -msgid "Price of Each" -msgstr "" - -#: src/jade/tabs/trade.jade:168 -msgid "Order Value (max)" -msgstr "" - -#: src/jade/tabs/trade.jade:185 -msgid "You are wanting to buy {{1}} for {{2}} ({{3}} per {{4}})" -msgstr "" - -#: src/jade/tabs/trade.jade:194 -msgid "You are wanting to sell {{1}} for {{2}} ({{3}} per {{4}})" -msgstr "" - -#: src/jade/tabs/trade.jade:206 -msgid "Buy" -msgstr "" - -#: src/jade/tabs/trade.jade:207 -msgid "Sell" -msgstr "" - -#: src/jade/tabs/trade.jade:213 -msgid "You do not have sufficient funds to create an order." -msgstr "" - -#: src/jade/tabs/trade.jade:218 -msgid "CAUTION: Your order is far off from the current market price." -msgstr "" - -#: src/jade/tabs/trade.jade:220 -msgid "" -"You are about to create an order to {{1: buy}} {{2: " -"sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}" -msgstr "" - -#: src/jade/tabs/trade.jade:239 -msgid "« Back" -msgstr "" - -#: src/jade/tabs/trade.jade:246 -msgid "Sending order to Ripple network..." -msgstr "" - -#: src/jade/tabs/trade.jade:252 -msgid "Your order has been submitted." -msgstr "" - -#: src/jade/tabs/trade.jade:254 -msgid "Your order is now active!" -msgstr "" - -#: src/jade/tabs/trade.jade:256 -msgid "Request has been denied!" -msgstr "" - -#: src/jade/tabs/trade.jade:257 -msgid "We were unable to submit the request. Please try again later." -msgstr "" - -#: src/jade/tabs/trade.jade:259 -msgid "Request is malformed!" -msgstr "" - -#: src/jade/tabs/trade.jade:260 -msgid "" -"Your request is invalid, reason: {{order[type].engine_result}} - " -"{{order[type].engine_result_message}}" -msgstr "" - -#: src/jade/tabs/trade.jade:263 src/jade/tabs/trade.jade:277 -#: src/jade/tabs/trust.jade:43 -msgid "Transaction failed!" -msgstr "" - -#: src/jade/tabs/trade.jade:265 -msgid "" -"You do not have enough {{(type == 'buy' ? order.second_currency : " -"order.first_currency) | rpcurrency}} to create this order." -msgstr "" - -#: src/jade/tabs/trade.jade:267 -msgid "" -"You must have at least {{account.reserve_to_add_trust | rpamount}} XRP to " -"submit an order. {{1}}" -msgstr "" - -#: src/jade/tabs/trade.jade:269 -msgid "More information." -msgstr "" - -#: src/jade/tabs/trade.jade:270 -msgid "Error: {{order[type].engine_result_message}}" -msgstr "" - -#: src/jade/tabs/trade.jade:273 -msgid "Trade failed!" -msgstr "" - -#: src/jade/tabs/trade.jade:275 -msgid "Trade failed, reason: {{order[type].engine_result_message}}" -msgstr "" - -#: src/jade/tabs/trade.jade:279 src/jade/tabs/trust.jade:45 -msgid "" -"The particular server you sent the transaction to was too busy to forward or" -" process your transaction at the fee you included in it." -msgstr "" - -#: src/jade/tabs/trade.jade:288 -msgid "Submit another order" -msgstr "" - -#: src/jade/tabs/trade.jade:290 -msgid "My Orders{{1}}{{2}}" -msgstr "" - -#: src/jade/tabs/trade.jade:297 -msgid "Type" -msgstr "" - -#: src/jade/tabs/trade.jade:298 -msgid "Currencies {{1: (Issuer)}}" -msgstr "" - -#: src/jade/tabs/trade.jade:300 -msgid "Price" -msgstr "" - -#: src/jade/tabs/trade.jade:302 -msgid "Action" -msgstr "" - -#: src/jade/tabs/trade.jade:311 -msgid "with" -msgstr "" - -#: src/jade/tabs/trade.jade:312 -msgid "for" -msgstr "" - -#: src/jade/tabs/trade.jade:325 -msgid "You haven't placed any orders." -msgstr "" - -#: src/jade/tabs/trade.jade:327 -msgid "Unable to cancel order." -msgstr "" - -#: src/jade/tabs/trade.jade:328 -msgid "Error: {{cancelError}}" -msgstr "" - -#: src/jade/tabs/trade.jade:332 -msgid "Orderbook" -msgstr "" - -#: src/jade/tabs/trade.jade:334 -msgid "show" -msgstr "" - -#: src/jade/tabs/trade.jade:342 -msgid "Bids" -msgstr "" - -#: src/jade/tabs/trade.jade:344 src/jade/tabs/trade.jade:371 -msgid "Sum{{1}}{{2}}" -msgstr "" - -#: src/jade/tabs/trade.jade:347 src/jade/tabs/trade.jade:368 -msgid "Size{{1}}{{2}}" -msgstr "" - -#: src/jade/tabs/trade.jade:350 -msgid "Bid Price{{1}}{{2}}" -msgstr "" - -#: src/jade/tabs/trade.jade:361 -msgid "There are currently no bids for this pair." -msgstr "" - -#: src/jade/tabs/trade.jade:363 -msgid "Asks" -msgstr "" - -#: src/jade/tabs/trade.jade:365 -msgid "Ask Price{{1}}{{2}}" -msgstr "" - -#: src/jade/tabs/trade.jade:382 -msgid "There are currently no asks for this pair." -msgstr "" - -#: src/jade/tabs/trade.jade:385 -msgid "No more orders" -msgstr "" - -#: src/jade/tabs/trust.jade:23 -msgid "Connecting a gateway to your Ripple account..." -msgstr "" - -#: src/jade/tabs/trust.jade:25 -msgid "Gateway connected." -msgstr "" - -#: src/jade/tabs/trust.jade:27 -msgid "Gateway could not be connected!" -msgstr "" - -#: src/jade/tabs/trust.jade:28 src/jade/tabs/trust.jade:30 -msgid "There was a problem connecting the gateway. Please try again later." -msgstr "" - -#: src/jade/tabs/trust.jade:31 -msgid "" -"Your request is invalid, reason: {{engine_result}} - " -"{{engine_result_message}}" -msgstr "" - -#: src/jade/tabs/trust.jade:33 -msgid "Gateway connection failed!" -msgstr "" - -#: src/jade/tabs/trust.jade:35 -msgid "You have no gateway connected in this currency." -msgstr "" - -#: src/jade/tabs/trust.jade:36 -msgid "Insufficient reserve to connect gateway." -msgstr "" - -#: src/jade/tabs/trust.jade:37 -msgid "" -"You must have at least {{account.reserve_to_add_trust | rpamount:0}} XRP to " -"connect a gateway. {{1}}" -msgstr "" - -#: src/jade/tabs/trust.jade:39 -msgid "Read more." -msgstr "" - -#: src/jade/tabs/trust.jade:40 -msgid "Gateway connection failed to clear, reason: {{engine_result_message}}" -msgstr "" - -#: src/jade/tabs/trust.jade:53 -msgid "Saving changes..." -msgstr "" - -#: src/jade/tabs/trust.jade:55 -msgid "Changes saved!" -msgstr "" - -#: src/jade/tabs/trust.jade:57 src/jade/tabs/trust.jade:69 -msgid "There was an error while saving your changes." -msgstr "" - -#: src/jade/tabs/trust.jade:65 -msgid "Removing gateway..." -msgstr "" - -#: src/jade/tabs/trust.jade:67 -msgid "Gateway removed!" -msgstr "" - -#: src/jade/tabs/trust.jade:72 src/jade/tabs/trust.jade:194 -msgid "You must have at least {{1}} to add a new trust line. {{2}}" -msgstr "" - -#: src/jade/tabs/trust.jade:82 -msgid "Name / Address" -msgstr "" - -#: src/jade/tabs/trust.jade:84 src/jade/tabs/trust.jade:130 -msgid "Currency" -msgstr "" - -#: src/jade/tabs/trust.jade:87 -msgid "Trust Limit" -msgstr "" - -#: src/jade/tabs/trust.jade:93 -msgid "Gateway's Ripple name or address" -msgstr "" - -#: src/jade/tabs/trust.jade:162 -msgid "" -"{{1:You are connecting a gateway, which means}}{{2:{{ counterparty_address |" -" rpripplename:{tilde: true} }} can:}}" -msgstr "" - -#: src/jade/tabs/trust.jade:165 -msgid "{{1:- Hold up to }}{{2}} {{3: on your behalf}}" -msgstr "" - -#: src/jade/tabs/trust.jade:169 -msgid "{{1:- Hold }}{{2}} {{3: on your behalf}}" -msgstr "" - -#: src/jade/tabs/trust.jade:183 src/jade/tabs/trust.jade:186 -#: src/jade/tabs/trust.jade:189 src/jade/tabs/trust.jade:255 -#: src/jade/tabs/trust.jade:258 src/jade/tabs/trust.jade:261 -#: src/jade/tabs/trust.jade:288 src/jade/tabs/trust.jade:291 -#: src/jade/tabs/trust.jade:294 -msgid "Remove" -msgstr "" - -#: src/jade/tabs/trust.jade:192 -msgid "Verifying address" -msgstr "" - -#: src/jade/tabs/trust.jade:201 -msgid "" -"Your account has to be {{1:activated}} before you can add a gateway account." -msgstr "" - -#: src/jade/tabs/trust.jade:209 -msgid "Connect gateway" -msgstr "" - -#: src/jade/tabs/trust.jade:227 -msgid "Gateway" -msgstr "" - -#: src/jade/tabs/trust.jade:229 src/jade/tabs/trust.jade:271 -msgid "Limit" -msgstr "" - -#: src/jade/tabs/trust.jade:230 -msgid "Min" -msgstr "" - -#: src/jade/tabs/trust.jade:245 -msgid "Off" -msgstr "" - -#: src/jade/tabs/trust.jade:246 -msgid "On" -msgstr "" - -#: src/jade/tabs/trust.jade:276 -msgid "Rippling {{1}}" -msgstr "" - -#: src/jade/tabs/tx.jade:3 -msgid "Loading transaction details..." -msgstr "" - -#: src/jade/tabs/tx.jade:5 -msgid "An error occurred while loading the transaction details." -msgstr "" - -#: src/jade/tabs/tx.jade:8 -msgid "Transaction #" -msgstr "" - -#: src/jade/tabs/tx.jade:11 -msgid "Show in graph" -msgstr "" - -#: src/jade/tabs/tx.jade:13 -msgid "Transaction type: {{1}}" -msgstr "" - -#: src/jade/tabs/tx.jade:20 -msgid "Address sent from" -msgstr "" - -#: src/jade/tabs/tx.jade:24 -msgid "Amount sent" -msgstr "" - -#: src/jade/tabs/tx.jade:28 -msgid "Currency sent" -msgstr "" - -#: src/jade/tabs/tx.jade:33 -msgid "Address sent to" -msgstr "" - -#: src/jade/tabs/tx.jade:37 -msgid "Amount received" -msgstr "" - -#: src/jade/tabs/tx.jade:41 -msgid "Currency received" -msgstr "" - -#: src/jade/tabs/tx.jade:48 -msgid "Network fee paid" -msgstr "" - -#: src/jade/tabs/tx.jade:60 -msgid "Ledger number" -msgstr "" - -#: src/jade/tabs/tx.jade:66 -msgid "Address sent from:" -msgstr "" - -#: src/jade/tabs/tx.jade:70 -msgid "" -"Sorry, we don't have an info page layout for this transaction type yet." -msgstr "" - -#: src/jade/tabs/xrp.jade:19 -msgid "Ripple name: {{1}}{{2}}{{3}}" -msgstr "" - -#: src/jade/tabs/xrp.jade:21 -msgid "loading..." -msgstr "" - -#: src/jade/tabs/xrp.jade:23 -msgid "Show address" -msgstr "" - -#: src/jade/tabs/xrp.jade:25 -msgid "" -"Ripple names are a new feature on Ripple! Use your Ripple name " -"(~{{userCredentials.username}}) to receive money. You can still use your " -"full Ripple address, and while we are working to transition to Ripple names," -" some gateways may still ask for your full address." -msgstr "" - -#: src/jade/tabs/xrp.jade:31 -msgid "Ripple address {{1}}" -msgstr "" diff --git a/l10n/pt_BR/messages.po b/l10n/pt_BR/messages.po new file mode 100644 index 000000000..03b76534c --- /dev/null +++ b/l10n/pt_BR/messages.po @@ -0,0 +1,3658 @@ +# Generated by grunt-jade-l10n-extractor +# Translators: +# miguelvuc , 2014 +# Rafael Pereira , 2013-2015 +msgid "" +msgstr "" +"Project-Id-Version: Ripple Trade\n" +"PO-Revision-Date: 2015-05-27 01:47+0000\n" +"Last-Translator: Rafael Pereira \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/ripple-trade/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: src/jade/client/index.jade:5 src/jade/client/navbar.jade:117 +#: src/jade/tabs/trust.jade:59 src/jade/tabs/trust.jade:168 +msgid "Balance" +msgstr "Saldo" + +#: src/jade/client/index.jade:7 src/jade/client/navbar.jade:119 +msgid "History" +msgstr "Histórico" + +#: src/jade/client/index.jade:8 src/jade/client/navbar.jade:121 +msgid "Contacts" +msgstr "Contatos" + +#: src/jade/client/index.jade:12 src/jade/client/navbar.jade:21 +#: src/jade/tabs/contacts.jade:65 +msgid "Send" +msgstr "Enviar" + +#: src/jade/client/index.jade:16 +msgid "Convert" +msgstr "Converter" + +#: src/jade/client/index.jade:18 src/jade/client/navbar.jade:23 +#: src/jade/client/navbar.jade:25 src/jade/tabs/settings/navbar.jade:3 +msgid "Trade" +msgstr "Negociar" + +#: src/jade/client/index.jade:22 src/jade/client/navbar.jade:27 +#: src/jade/client/navbar.jade:133 +msgid "Fund" +msgstr "Depositar" + +#: src/jade/client/index.jade:24 src/jade/tabs/fund/menu.jade:29 +msgid "Gateways" +msgstr "Gateways" + +#: src/jade/client/index.jade:29 src/jade/client/navbar.jade:107 +#: src/jade/tabs/su.jade:12 +msgid "Account" +msgstr "Conta" + +#: src/jade/client/index.jade:32 src/jade/client/navbar.jade:109 +#: src/jade/tabs/advanced.jade:19 +msgid "Settings" +msgstr "Configurações" + +#: src/jade/client/index.jade:35 +msgid "Logout" +msgstr "Sair" + +#: src/jade/client/index.jade:61 +msgid "Why Use Ripple Trade?" +msgstr "Porque usar o Ripple Trade?" + +#: src/jade/client/index.jade:66 +msgid "Home of XRP -" +msgstr "O lar do XRP -" + +#: src/jade/client/index.jade:67 +msgid "the best place to buy and sell XRP" +msgstr "o melhor lugar para comprar e vender XRP" + +#: src/jade/client/index.jade:71 +msgid "Free -" +msgstr "Gratuito -" + +#: src/jade/client/index.jade:72 +msgid "no fees to sign up and use Ripple Trade" +msgstr "sem taxas para entrar ou usar o Ripple Trade" + +#: src/jade/client/index.jade:76 +msgid "No Middlemen -" +msgstr "Sem intermediários -" + +#: src/jade/client/index.jade:77 +msgid "" +"When you submit orders, Ripple automatically finds the best available match," +" without a clearinghouse or broker." +msgstr "Quando você submete ordens, Ripple encontra automaticamente a melhor oferta disponível, sem corretoras." + +#: src/jade/client/index.jade:81 +msgid "Deposit, trade and withdraw money on Ripple via gateways." +msgstr "No Ripple, deposite, negocie e saque dinheiro usando gateways." + +#: src/jade/client/index.jade:89 +msgid "Featured Ripple Gateways" +msgstr "Gateways Ripple em destaque" + +#: src/jade/client/index.jade:91 +msgid "Ripple's growing gateway network." +msgstr "A rede crescente de gateways do Ripple." + +#: src/jade/client/index.jade:93 src/jade/client/index.jade:96 +#: src/jade/client/index.jade:99 src/jade/client/index.jade:102 +#: src/jade/client/index.jade:105 src/jade/client/index.jade:108 +#: src/jade/client/index.jade:111 src/jade/client/index.jade:114 +#: src/jade/client/index.jade:117 src/jade/tabs/banner/unfunded.jade:6 +#: src/jade/tabs/brl.jade:53 src/jade/tabs/brl.jade:57 +#: src/jade/tabs/brl.jade:93 src/jade/tabs/btc.jade:46 +#: src/jade/tabs/eur.jade:50 src/jade/tabs/eur.jade:54 +#: src/jade/tabs/eur.jade:86 src/jade/tabs/eur.jade:93 +#: src/jade/tabs/gold.jade:51 src/jade/tabs/jpy.jade:55 +#: src/jade/tabs/jpy.jade:91 src/jade/tabs/jpy.jade:97 +#: src/jade/tabs/mxn.jade:53 src/jade/tabs/send.jade:63 +#: src/jade/tabs/trade.jade:320 src/jade/tabs/usd.jade:51 +#: src/jade/tabs/usd.jade:83 src/jade/tabs/usd.jade:90 +#: src/jade/tabs/usd.jade:100 src/jade/tabs/widgets/orders.jade:31 +msgid "{{1}}" +msgstr "{{1}}" + +#: src/jade/client/index.jade:123 +msgid "Version: {{version}}" +msgstr "Versão: {{version}}" + +#: src/jade/client/index.jade:128 +msgid "Terms of Use" +msgstr "Termos de Uso" + +#: src/jade/client/index.jade:129 +msgid "Privacy Policy" +msgstr "Política de Privacidade" + +#: src/jade/client/index.jade:130 +msgid "Support" +msgstr "Suporte" + +#: src/jade/client/index.jade:131 +msgid "Bug reports" +msgstr "Reporte um problema" + +#: src/jade/client/index.jade:138 +msgid "more..." +msgstr "mais..." + +#: src/jade/client/index.jade:142 +msgid "Select a language" +msgstr "Escolha um idioma" + +#: src/jade/client/navbar.jade:2 +msgid "" +"You are viewing an account in {{1}} mode. While in this mode, you can view " +"publicly available data, but you cannot initiate any transactions. Click " +"{{2}} to exit." +msgstr "Você está vendo uma conta em modo {{1}}. Enquanto estiver nesse modo, você pode ver dados que são públicos, mas não pode criar transações. Clique {{2}} para sair." + +#: src/jade/client/navbar.jade:8 +msgid "" +"Warning: this account has over 200 trust lines, so the displayed account " +"balance may not be accurate." +msgstr "Atenção: essa conta possui mais de 200 linhas de confiança, portanto o saldo mostrado pode não ser preciso." + +#: src/jade/client/navbar.jade:19 +msgid "Overview" +msgstr "Visão Geral" + +#: src/jade/client/navbar.jade:49 src/jade/tabs/account/private.jade:7 +#: src/jade/tabs/account/private.jade:16 src/jade/tabs/account/public.jade:45 +#: src/jade/tabs/apps.jade:8 src/jade/tabs/btc.jade:72 +#: src/jade/tabs/exchange.jade:9 src/jade/tabs/kyc.jade:45 +#: src/jade/tabs/recover.jade:26 src/jade/tabs/security.jade:147 +#: src/jade/tabs/su.jade:8 src/jade/tabs/trust.jade:9 +#: src/jade/tabs/trust.jade:139 +msgid "Loading..." +msgstr "Carregando..." + +#: src/jade/client/navbar.jade:50 +msgid "There are no recent notifications." +msgstr "Não há novos alertas." + +#: src/jade/client/navbar.jade:54 +msgid "You sent {{1}} to {{2}}" +msgstr "Você enviou {{1}} para {{2}}" + +#: src/jade/client/navbar.jade:60 +msgid "{{1}} sent you {{2}}" +msgstr "{{1}} lhe enviou {{2}}" + +#: src/jade/client/navbar.jade:68 +msgid "{{entry.transaction.counterparty | rpcontactname}} now trusts you for" +msgstr "{{entry.transaction.counterparty | rpcontactname}} agora confia em você até" + +#: src/jade/client/navbar.jade:74 src/jade/notification/account.jade:25 +#: src/jade/tabs/history.jade:115 src/jade/tabs/history/effects.jade:63 +msgid "You have now connected to the gateway {{1}}{{2: for }}{{3}}." +msgstr "Você se conectou ao gateway {{1}}{{2: para }}{{3}}." + +#: src/jade/client/navbar.jade:85 +msgid "You cancelled an order accepting {{1}} for {{2}}" +msgstr "Você cancelou uma ordem aceitando {{1}} por {{2}}" + +#: src/jade/client/navbar.jade:92 src/jade/tabs/history.jade:138 +msgid "Account details have been changed" +msgstr "Os detalhes da conta foram alterados" + +#: src/jade/client/navbar.jade:95 src/jade/tabs/history.jade:141 +#: src/jade/tabs/trust.jade:171 +msgid "Rippling" +msgstr "Rippling" + +#: src/jade/client/navbar.jade:97 src/jade/tabs/history.jade:143 +msgid "Failed transaction" +msgstr "Transação falha" + +#: src/jade/client/navbar.jade:103 +msgid "View Full History" +msgstr "Ver todo o Histórico" + +#: src/jade/client/navbar.jade:111 +msgid "Log Out" +msgstr "Sair" + +#: src/jade/client/navbar.jade:126 +msgid "Simple" +msgstr "Simples" + +#: src/jade/client/navbar.jade:128 src/jade/tabs/settings/navbar.jade:4 +msgid "Advanced" +msgstr "Avançado" + +#: src/jade/client/navbar.jade:135 +msgid "Withdraw" +msgstr "Sacar" + +#: src/jade/client/navbar.jade:137 +msgid "" +"Your account was successfully recovered and encrypted with the new password " +"you provided!" +msgstr "Sua conta foi recuperada com sucesso e criptografada com a nova senha que você forneceu!" + +#: src/jade/client/navbar.jade:138 +msgid "dismiss" +msgstr "dispensar" + +#: src/jade/directives/addresspopover.jade:3 +msgid "Ripple address {{ identity }}" +msgstr "Endereço Ripple {{ identity }}" + +#: src/jade/directives/addresspopover.jade:8 src/jade/tabs/tx.jade:13 +msgid "Show in graph" +msgstr "Mostrar no graph" + +#: src/jade/directives/transactionerror.jade:8 +msgid "Connecting gateway to your account..." +msgstr "Conectando um gateway à sua conta..." + +#: src/jade/directives/transactionerror.jade:10 +msgid "Gateway connected." +msgstr "Gateway conectado." + +#: src/jade/directives/transactionerror.jade:12 +msgid "There was a problem connecting to the gateway. Please try again later." +msgstr "Houve um problema ao conectar com o gateway. Por favor tente mais tarde." + +#: src/jade/directives/transactionerror.jade:14 +#: src/jade/directives/transactionerror.jade:73 +#: src/jade/directives/transactionerror.jade:158 +#: src/jade/messages/sendconvert/confirmation.jade:13 +msgid "Error code: {{engine_result}} - {{engine_result_message}}" +msgstr "Código do erro: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:19 +#: src/jade/directives/transactionerror.jade:23 +#: src/jade/directives/transactionerror.jade:28 +#: src/jade/directives/transactionerror.jade:33 +#: src/jade/directives/transactionerror.jade:45 +#: src/jade/directives/transactionerror.jade:52 +#: src/jade/directives/transactionerror.jade:156 +#: src/jade/directives/transactionerror.jade:163 +#: src/jade/directives/transactionerror.jade:167 +#: src/jade/directives/transactionerror.jade:172 +#: src/jade/directives/transactionerror.jade:177 +#: src/jade/directives/transactionerror.jade:186 +#: src/jade/directives/transactionerror.jade:193 +msgid "Request failed" +msgstr "O pedido falhou" + +#: src/jade/directives/transactionerror.jade:21 +#: src/jade/directives/transactionerror.jade:165 +msgid "Your request timed out, please try again." +msgstr "O seu pedido expirou, por favor tente de novo." + +#: src/jade/directives/transactionerror.jade:25 +#: src/jade/directives/transactionerror.jade:84 +#: src/jade/directives/transactionerror.jade:169 +#: src/jade/messages/sendconvert/confirmation.jade:18 +msgid "Error code: Destination tag needed [tefDST_TAG_NEEDED]." +msgstr "Código do erro: Tag do destinatário requerida [tefDST_TAG_NEEDED]." + +#: src/jade/directives/transactionerror.jade:30 +#: src/jade/directives/transactionerror.jade:174 +msgid "" +"Error code: This request failed because it exceeded the maximum network fee," +" please try again later [telINSUF_FEE_P]." +msgstr "Código do erro: Esta transação falhou porque excedeu a taxa máxima da rede, por favor tente mais tarde [telINSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:35 +msgid "" +"Error code: You have no gateway connected in this currency [terNO_LINE]." +msgstr "Você não tem um gateway conectado para essa moeda [terNO_LINE]." + +#: src/jade/directives/transactionerror.jade:37 +msgid "" +"Error code: Insufficient reserve to connect gateway [tecINSUF_RESERVE_LINE]." +msgstr "Código do erro: Reserva insuficiente para conectar um gateway [tecINSUF_RESERVE_LINE]." + +#: src/jade/directives/transactionerror.jade:39 +msgid "" +"Error code: You have an insufficient reserve amount to connect a gateway " +"[tecNO_LINE_INSUF_RESERVE]. {{1}}" +msgstr "Código do erro: Reserva insuficiente para conectar um gateway [tecNO_LINE_INSUF_RESERVE]. {{1}}" + +#: src/jade/directives/transactionerror.jade:41 src/jade/tabs/fund.jade:34 +#: src/jade/tabs/send.jade:110 src/jade/tabs/trust.jade:74 +msgid "More information" +msgstr "Mais informações" + +#: src/jade/directives/transactionerror.jade:42 +#: src/jade/directives/transactionerror.jade:98 +#: src/jade/directives/transactionerror.jade:135 +#: src/jade/directives/transactionerror.jade:183 +#: src/jade/messages/sendconvert/confirmation.jade:27 +msgid "Error: {{engine_result_message}}" +msgstr "Erro: {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:47 +#: src/jade/directives/transactionerror.jade:103 +#: src/jade/directives/transactionerror.jade:188 +#: src/jade/messages/sendconvert/confirmation.jade:32 +msgid "Error code: You have no trust line in this currency [terNO_LINE]." +msgstr "Código do erro: Você não tem uma linha de confiança para esta moeda [terNO_LINE]." + +#: src/jade/directives/transactionerror.jade:49 +#: src/jade/directives/transactionerror.jade:190 +msgid "Your request failed: {{engine_result}} - {{engine_result_message}}" +msgstr "O seu pagamento falhou: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:54 +#: src/jade/directives/transactionerror.jade:195 +msgid "Error code: request could not be submitted [tejLost]." +msgstr "Código do erro: A transação não pôde ser submetida [tejLost]." + +#: src/jade/directives/transactionerror.jade:56 +#: src/jade/directives/transactionerror.jade:197 src/jade/tabs/trust.jade:36 +msgid "" +"This request failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "Essa solicitação falhou porque a taxa de rede atual é mais alta do que o limite da sua conta. Você pode ajustar o limite da sua taxa de rede em Configurações > Avançado, ou tentar novamente mais tarde.
Error code: Network fee exceeded [tejMaxFeeExceeded]." + +#: src/jade/directives/transactionerror.jade:59 +#: src/jade/directives/transactionerror.jade:200 +msgid "" +"Your request could not be submitted: {{engine_result}} - " +"{{engine_result_message}}" +msgstr "Sua solicitação não pôde ser submetida: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:67 +msgid "Payment pending" +msgstr "Pagamento pendente" + +#: src/jade/directives/transactionerror.jade:69 +msgid "Payment successful" +msgstr "Pagamento concluído" + +#: src/jade/directives/transactionerror.jade:71 +#: src/jade/directives/transactionerror.jade:82 +#: src/jade/directives/transactionerror.jade:87 +#: src/jade/directives/transactionerror.jade:92 +#: src/jade/directives/transactionerror.jade:101 +#: src/jade/directives/transactionerror.jade:108 +msgid "Payment failed" +msgstr "Pagamento falhou" + +#: src/jade/directives/transactionerror.jade:78 +msgid "Payment failed [tefMAX_LEDGER]." +msgstr "O pagamento falhou [tefMAX_LEDGER]." + +#: src/jade/directives/transactionerror.jade:80 +msgid "Your payment timed out, please try again." +msgstr "O seu pagamento expirou, por favor tente de novo." + +#: src/jade/directives/transactionerror.jade:89 +#: src/jade/messages/sendconvert/confirmation.jade:39 +msgid "" +"Error code: This transaction failed because it exceeded the maximum network " +"fee, please try again later [telINSUF_FEE_P]." +msgstr "Código do erro: Esta transação falhou porque excedeu a taxa máxima da rede, por favor tente mais tarde [telINSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:94 +#: src/jade/directives/transactionerror.jade:179 +msgid "Error code: No destination [tecNO_DST]." +msgstr "Código do erro: Não há destinatário [tecNO_DST]." + +#: src/jade/directives/transactionerror.jade:96 +#: src/jade/directives/transactionerror.jade:181 +#: src/jade/messages/sendconvert/confirmation.jade:25 +msgid "" +"Error code: Insufficient XRP sent to destination [tecNO_DST_INSUF_XRP]." +msgstr "Código do erro: Quantia de XRP enviada é insuficiente [tecNO_DST_INSUF_XRP]." + +#: src/jade/directives/transactionerror.jade:105 +msgid "Your payment failed: {{engine_result}} - {{engine_result_message}}" +msgstr "O seu pagamento falhou: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:110 +msgid "Error code: Transaction could not be submitted [tejLost]." +msgstr "Código do erro: A transação não pôde ser submetida [tejLost]." + +#: src/jade/directives/transactionerror.jade:112 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "Essa solicitação falhou porque a taxa de rede atual é mais alta do que o limite da sua conta. Você pode ajustar o limite da sua taxa de rede em Configurações > Avançado, ou tentar novamente mais tarde.
Error code: Network fee exceeded [tejMaxFeeExceeded]." + +#: src/jade/directives/transactionerror.jade:115 +msgid "" +"Your payment could not be submitted: {{engine_result}} - " +"{{engine_result_message}}" +msgstr "O seu pagamento não pôde ser submetido: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:121 +msgid "Request is malformed." +msgstr "O pedido foi mal formado." + +#: src/jade/directives/transactionerror.jade:122 +msgid "" +"Your request is invalid, reason: {{engine_result_message}} - " +"{{engine_result_message}}" +msgstr "Seu pedido é inválido, motivo: {{engine_result_message}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:125 +#: src/jade/directives/transactionerror.jade:142 +msgid "Transaction failed." +msgstr "A transação falhou." + +#: src/jade/directives/transactionerror.jade:127 +msgid "You do not have enough funds to create this order [tecUNFUNDED_ORDER]." +msgstr "Você não tem fundos suficientes para criar essa ordem [tecUNFUNDED_ORDER]." + +#: src/jade/directives/transactionerror.jade:129 +msgid "" +"Insufficient reserve amount to submit an order [tecINSUF_RESERVE_OFFER]." +msgstr "Reserva insuficiente para criar uma ordem [tecINSUF_RESERVE_OFFER]." + +#: src/jade/directives/transactionerror.jade:131 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]. {{1}}" +msgstr "Essa solicitação falhou porque a taxa de rede atual é mais alta do que o limite da sua conta. Você pode ajustar o limite da sua taxa de rede em Configurações > Avançado, ou tentar novamente mais tarde.
Error code: Network fee exceeded [tejMaxFeeExceeded]. {{1}}" + +#: src/jade/directives/transactionerror.jade:134 +msgid "More information." +msgstr "Mais informações." + +#: src/jade/directives/transactionerror.jade:138 +msgid "Trade failed." +msgstr "A negociação falhou." + +#: src/jade/directives/transactionerror.jade:140 +msgid "Trade failed, reason: {{engine_result_message}}" +msgstr "Negociação falhou, motivo: {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:144 +msgid "" +"The particular server you sent the transaction to was too busy to forward or" +" process your transaction at the fee you included in it [telINSUF_FEE_P]." +msgstr "O servidor ao qual a transação foi enviada estava muito ocupado para encaminhá-la ou processá-la pelo valor da taxa incluída [telINSUF_FEE_P]." + +#: src/jade/directives/transactionerror.jade:152 +msgid "Request pending" +msgstr "Solicitação pendente" + +#: src/jade/directives/transactionerror.jade:154 +msgid "Request successful" +msgstr "Solicitação concluída" + +#: src/jade/messages/sendconvert/confirmation.jade:4 +msgid "Transaction pending." +msgstr "Transação pendente." + +#: src/jade/messages/sendconvert/confirmation.jade:6 +msgid "Transaction successful" +msgstr "Transação concluída" + +#: src/jade/messages/sendconvert/confirmation.jade:8 +#: src/jade/messages/sendconvert/confirmation.jade:11 +#: src/jade/messages/sendconvert/confirmation.jade:16 +#: src/jade/messages/sendconvert/confirmation.jade:21 +#: src/jade/messages/sendconvert/confirmation.jade:30 +#: src/jade/messages/sendconvert/confirmation.jade:37 +#: src/jade/messages/sendconvert/localerror.jade:5 +#: src/jade/messages/sendconvert/localerror.jade:8 +#: src/jade/messages/sendconvert/localerror.jade:11 +#: src/jade/messages/sendconvert/localerror.jade:14 +msgid "Transaction failed" +msgstr "Transação falhou" + +#: src/jade/messages/sendconvert/confirmation.jade:9 src/jade/tabs/brl.jade:25 +#: src/jade/tabs/btc.jade:22 src/jade/tabs/eur.jade:25 +#: src/jade/tabs/gold.jade:25 src/jade/tabs/jpy.jade:25 +#: src/jade/tabs/mxn.jade:25 src/jade/tabs/trust.jade:43 +#: src/jade/tabs/usd.jade:25 +msgid "Please try again later." +msgstr "Por favor tente mais tarde." + +#: src/jade/messages/sendconvert/confirmation.jade:23 +msgid "Error code: The destination account does not exist [tecNO_DST]." +msgstr "Código do erro: A tag do destinatário não existe [tecNO_DST]." + +#: src/jade/messages/sendconvert/confirmation.jade:34 +msgid "Your transaction failed: {{engine_result_message}}" +msgstr "Sua transação falhou: {{engine_result_message}}" + +#: src/jade/messages/sendconvert/localerror.jade:6 +msgid "" +"Error code: The account you're trying to send to does not exist " +"[noDest]." +msgstr "Código do erro: A conta para a qual está tentando enviar não existe [noDest]." + +#: src/jade/messages/sendconvert/localerror.jade:9 +msgid "" +"Error code: Ripple was unable to find a path between you and the destination" +" account [noPath]." +msgstr "Código do erro: Ripple não achou um caminho entre você e a conta destinatária [noPath]." + +#: src/jade/messages/sendconvert/localerror.jade:12 +msgid "" +"Error code: This transaction failed because it exceeded the maximum network " +"fee. [maxfeeExceeded]." +msgstr "Código do erro: Esta transação falhou porque excedeu a taxa de rede máxima. [maxfeeExceeded]." + +#: src/jade/messages/sendconvert/localerror.jade:15 +msgid "" +"Error code: The transaction was rejected by the Ripple network " +"[invalidTransaction]." +msgstr "Código do erro: A transação foi rejeitada pela rede Ripple [invalidTransaction]." + +#: src/jade/messages/sendconvert/localerror.jade:17 +msgid "Account unlock failed" +msgstr "Desbloqueio da conta falhou" + +#: src/jade/messages/sendconvert/localerror.jade:18 +#: src/jade/tabs/trust.jade:40 +msgid "Your account could not be unlocked. Please try again later." +msgstr "Sua conta não pôde ser desbloqueada. Por favor tente de novo mais tarde." + +#: src/jade/messages/sendconvert/localerror.jade:20 +msgid "" +"Sorry, an error occurred while submitting your transaction.Make sure you are" +" connected to the Internet and try again later." +msgstr "Desculpe, ocorreu um erro ao submeter sua transação. Certifique-se que está conectado a internet e tente novamente mais tarde." + +#: src/jade/messages/sendconvert/localerror.jade:22 +msgid "" +"Before trying again, please ensure that the transaction has not been " +"executed already." +msgstr "Antes de tentar novamente, verifique se a sua transação já não foi executada." + +#: src/jade/messages/sendconvert/waiting.jade:5 +msgid "Sending transaction to the Ripple network" +msgstr "Enviando a transação para a rede Ripple" + +#: src/jade/notification/account.jade:3 +msgid "You sent {{1}} {{2}} to {{3}}" +msgstr "Você enviou {{1}} {{2}} para {{3}}" + +#: src/jade/notification/account.jade:11 +msgid "{{tx.counterparty | rpcontactname}} sent you" +msgstr "{{tx.counterparty | rpcontactname}} lhe enviou" + +#: src/jade/notification/account.jade:18 +msgid "{{tx.counterparty | rpcontactname}} now trusts you for" +msgstr "{{tx.counterparty | rpcontactname}} agora confia em você até" + +#: src/jade/popup/modifyOrderError.jade:2 +msgid "Modify Order Error" +msgstr "Modificar Erro de Ordem" + +#: src/jade/popup/modifyOrderError.jade:4 +msgid "Sorry, your order could not be modified." +msgstr "Desculpe, não foi possível modificar sua ordem." + +#: src/jade/popup/modifyOrderError.jade:5 +msgid "" +"Your original order was cancelled but the modified order was not placed. " +"
" +msgstr "Sua ordem original foi cancelada e a ordem modificada não foi criada.
" + +#: src/jade/popup/modifyOrderError.jade:6 +msgid "" +"The quantity of your order changed by {{order.qtyChangeAfterCancel | " +"rpamount}} before the order could be modified.

" +msgstr "A quantia da sua ordem mudou {{order.qtyChangeAfterCancel | rpamount}} antes da ordem ser modificada.

" + +#: src/jade/popup/modifyOrderError.jade:7 +msgid "" +"To safeguard against the possibility of overfills a new order has not been " +"placed.
" +msgstr "Para evitar a possibilidade de extrapolação a nova ordem não foi criada.
" + +#: src/jade/popup/modifyOrderError.jade:8 +msgid "" +"Please check your balance and history before placing the new order manually." +"
" +msgstr "Por favor cheque o seu saldo e histórico antes de criar a nova ordem manualmente.
" + +#: src/jade/popup/modifyOrderError.jade:10 src/jade/popup/unlock.jade:17 +msgid "Close" +msgstr "Fechar" + +#: src/jade/popup/unlock.jade:2 +msgid "Unlock account" +msgstr "Desbloquear conta" + +#: src/jade/popup/unlock.jade:5 src/jade/tabs/login/form.jade:8 +#: src/jade/tabs/recover.jade:38 src/jade/tabs/register.jade:58 +#: src/jade/tabs/security.jade:12 +msgid "Password" +msgstr "Senha" + +#: src/jade/popup/unlock.jade:8 +msgid "Please enter your password to show your secret key." +msgstr "Por favor insira sua senha para ver sua Chave Secreta." + +#: src/jade/popup/unlock.jade:9 src/jade/tabs/send.jade:205 +msgid "Please enter your password to confirm this transaction." +msgstr "Por favor, digite a sua senha para confirmar esta transação." + +#: src/jade/popup/unlock.jade:10 +msgid "This password is incorrect, please try again." +msgstr "A senha está incorreta, por favor, tente novamente." + +#: src/jade/popup/unlock.jade:13 +msgid "Confirming password" +msgstr "Confirmando a senha" + +#: src/jade/popup/unlock.jade:16 src/jade/tabs/account/public.jade:44 +#: src/jade/tabs/security.jade:146 +msgid "Submit" +msgstr "Submeter" + +#: src/jade/tabs/2fa/form.jade:3 +msgid "Country Code" +msgstr "Código do país" + +#: src/jade/tabs/2fa/form.jade:6 src/jade/tabs/kyc.jade:162 +msgid "Phone Number" +msgstr "Número do Telefone" + +#: src/jade/tabs/_usd.jade:6 src/jade/tabs/apps.jade:5 +#: src/jade/tabs/balance.jade:5 src/jade/tabs/brl.jade:6 +#: src/jade/tabs/btc.jade:9 src/jade/tabs/eur.jade:6 +#: src/jade/tabs/exchange.jade:6 src/jade/tabs/fund.jade:6 +#: src/jade/tabs/gold.jade:6 src/jade/tabs/history.jade:6 +#: src/jade/tabs/jpy.jade:6 src/jade/tabs/kyc.jade:6 src/jade/tabs/mxn.jade:6 +#: src/jade/tabs/send.jade:6 src/jade/tabs/su.jade:5 +#: src/jade/tabs/trade.jade:7 src/jade/tabs/trust.jade:6 +#: src/jade/tabs/usd.jade:6 src/jade/tabs/withdraw.jade:6 +#: src/jade/tabs/xrp.jade:6 +msgid "You have to be online to see this screen" +msgstr "Você precisa estar online para ver essa página" + +#: src/jade/tabs/_usd.jade:17 +msgid "USD instant deposit" +msgstr "Depósito instantâneo de USD" + +#: src/jade/tabs/_usd.jade:19 src/jade/tabs/_usd.jade:21 +msgid "Step 1 (Amount)" +msgstr "Passo 1 (Quantia)" + +#: src/jade/tabs/_usd.jade:22 +msgid "Step 2 (Confirmation)" +msgstr "Passo 2 (Confirmação)" + +#: src/jade/tabs/_usd.jade:23 +msgid "Step 3 (Complete deposit)" +msgstr "Passo 3 (Completar depósito)" + +#: src/jade/tabs/_usd.jade:26 +msgid "STEP 1: AMOUNT" +msgstr "PASSO 1: QUANTIA" + +#: src/jade/tabs/_usd.jade:28 +msgid "STEP 2: CONFIRMATION" +msgstr "PASSO 2: CONFIRMAÇÃO" + +#: src/jade/tabs/_usd.jade:30 +msgid "STEP 3: COMPLETE DEPOSIT" +msgstr "PASSO 3: COMPLETAR DEPÓSITO" + +#: src/jade/tabs/_usd.jade:34 +msgid "" +"Success! You've completed your USD deposit. Your funds should be available " +"within a few minutes." +msgstr "Sucesso! Você completou o seu depósito de USD. Seu saldo deve estar disponível em poucos minutos." + +#: src/jade/tabs/_usd.jade:36 +msgid "You cancelled your deposit." +msgstr "Você cancelou o seu depósito." + +#: src/jade/tabs/_usd.jade:38 +msgid "" +"Your deposit failed. Your bank account was not charged. Please contact " +"{{1}}." +msgstr "O seu depósito falhou. Sua conta bancária não foi debitada. Por favor contate {{1}}." + +#: src/jade/tabs/_usd.jade:49 src/jade/tabs/_usd.jade:91 +#: src/jade/tabs/fund.jade:41 src/jade/tabs/history.jade:172 +#: src/jade/tabs/trust.jade:89 +msgid "Amount" +msgstr "Quantia" + +#: src/jade/tabs/_usd.jade:59 src/jade/tabs/_usd.jade:62 +msgid "Select your bank" +msgstr "Selecione o seu banco" + +#: src/jade/tabs/_usd.jade:77 +msgid "" +"Ripple Trade has partnered with SnapSwap to make USD deposits easier. By " +"continuing, you agree to SnapSwap's {{1}}To contact support, email {{2}}." +msgstr "Ripple Trade e SnapSwap fizeram uma parceria para facilitar depósitos em USD. Ao continuar você concorda com os {{1}} do SnapSwap. Para suporte, envie um email para {{2}}." + +#: src/jade/tabs/_usd.jade:93 src/jade/tabs/history.jade:178 +msgid "Fee" +msgstr "Taxa" + +#: src/jade/tabs/_usd.jade:95 +msgid "Total" +msgstr "Total" + +#: src/jade/tabs/_usd.jade:98 +msgid "Calculating..." +msgstr "Calculando..." + +#: src/jade/tabs/_usd.jade:109 src/jade/tabs/register.jade:126 +#: src/jade/tabs/register.jade:133 +msgid "Back" +msgstr "Voltar" + +#: src/jade/tabs/_usd.jade:111 src/jade/tabs/btc.jade:73 +#: src/jade/tabs/exchange.jade:111 src/jade/tabs/send.jade:213 +#: src/jade/tabs/trade.jade:67 src/jade/tabs/trade.jade:77 +#: src/jade/tabs/trade.jade:248 src/jade/tabs/trade.jade:407 +#: src/jade/tabs/trust.jade:140 +msgid "Confirm" +msgstr "Confirmar" + +#: src/jade/tabs/account/navbar.jade:2 +msgid "Public Information" +msgstr "Informação Pública" + +#: src/jade/tabs/account/private.jade:1 +msgid "Profile Information" +msgstr "Informações do Perfil" + +#: src/jade/tabs/account/private.jade:3 +msgid "Identity Information" +msgstr "Informações de Identidade" + +#: src/jade/tabs/account/private.jade:8 src/jade/tabs/account/private.jade:17 +msgid "Completed" +msgstr "Completo" + +#: src/jade/tabs/account/private.jade:9 src/jade/tabs/account/private.jade:18 +msgid "Incomplete" +msgstr "Incompleto" + +#: src/jade/tabs/account/private.jade:10 src/jade/tabs/account/private.jade:19 +msgid "Complete your profile" +msgstr "Complete o seu perfil" + +#: src/jade/tabs/account/private.jade:12 +msgid "Identity Questions" +msgstr "Perguntas de Identidade" + +#: src/jade/tabs/account/public.jade:1 +msgid "Changing your Ripple name..." +msgstr "Mudando o seu nome Ripple" + +#: src/jade/tabs/account/public.jade:2 +msgid "Your Ripple name has been changed successfully." +msgstr "Seu Nome Ripple foi mudado com sucesso." + +#: src/jade/tabs/account/public.jade:3 +msgid "Account settings" +msgstr "Configurações da Conta" + +#: src/jade/tabs/account/public.jade:5 src/jade/tabs/fund/menu.jade:2 +#: src/jade/tabs/login/form.jade:3 +msgid "Ripple name" +msgstr "Nome Ripple" + +#: src/jade/tabs/account/public.jade:9 src/jade/tabs/advanced.jade:27 +#: src/jade/tabs/advanced.jade:44 src/jade/tabs/advanced.jade:63 +#: src/jade/tabs/advanced.jade:86 src/jade/tabs/advanced.jade:134 +#: src/jade/tabs/contacts.jade:61 src/jade/tabs/security.jade:120 +#: src/jade/tabs/security.jade:180 src/jade/tabs/trust.jade:191 +#: src/jade/tabs/trust.jade:193 +msgid "edit" +msgstr "editar" + +#: src/jade/tabs/account/public.jade:12 +msgid "New Ripple name" +msgstr "Novo nome Ripple" + +#: src/jade/tabs/account/public.jade:17 src/jade/tabs/register.jade:35 +#: src/jade/tabs/widgets/balances.jade:24 +msgid "Available" +msgstr "Disponível" + +#: src/jade/tabs/account/public.jade:20 src/jade/tabs/register.jade:39 +msgid "Already taken!" +msgstr "Não disponível!" + +#: src/jade/tabs/account/public.jade:21 +msgid "Reserved for {{usernameReservedFor}}{{1}}{{2}}" +msgstr "Reservado para {{usernameReservedFor}}{{1}}{{2}}" + +#: src/jade/tabs/account/public.jade:24 src/jade/tabs/register.jade:45 +msgid "Must be at least 2 characters" +msgstr "Precisa ter pelo menos 2 caracteres" + +#: src/jade/tabs/account/public.jade:25 src/jade/tabs/register.jade:47 +msgid "Must be at most 20 characters" +msgstr "Precisa ter no máximo 20 caracteres" + +#: src/jade/tabs/account/public.jade:26 +msgid "Only a-z, 0-9 and hyphen (-)" +msgstr "Apenas a-z, 0-9 e hífen (-)" + +#: src/jade/tabs/account/public.jade:27 src/jade/tabs/register.jade:51 +msgid "Cannot start with hyphen (-)" +msgstr "Não pode começar com hífen (-)" + +#: src/jade/tabs/account/public.jade:28 src/jade/tabs/register.jade:53 +msgid "Cannot end with hyphen (-)" +msgstr "Não pode terminar com hífen (-)" + +#: src/jade/tabs/account/public.jade:29 +msgid "Cannot bundle hyphens (--)" +msgstr "Não pode ter 2 hífens seguidos (--)" + +#: src/jade/tabs/account/public.jade:30 src/jade/tabs/register.jade:56 +msgid "Checking..." +msgstr "Checando..." + +#: src/jade/tabs/account/public.jade:32 src/jade/tabs/security.jade:126 +msgid "Current password" +msgstr "Senha atual" + +#: src/jade/tabs/account/public.jade:35 src/jade/tabs/security.jade:18 +#: src/jade/tabs/security.jade:23 +msgid "Entered password is wrong." +msgstr "A senha digitada está errada." + +#: src/jade/tabs/account/public.jade:37 +msgid "Your Ripple name has been changed. Please login again." +msgstr "O seu nome Ripple mudou. Por favor faça novo login." + +#: src/jade/tabs/account/public.jade:39 +msgid "Couldn't change your Ripple name, please try again later." +msgstr "Não foi possível mudar o seu nome Ripple. Tente novamente mais tarde." + +#: src/jade/tabs/account/public.jade:47 src/jade/tabs/advanced.jade:36 +#: src/jade/tabs/advanced.jade:53 src/jade/tabs/advanced.jade:77 +#: src/jade/tabs/advanced.jade:94 src/jade/tabs/advanced.jade:124 +#: src/jade/tabs/btc.jade:74 src/jade/tabs/contacts.jade:50 +#: src/jade/tabs/contacts.jade:93 src/jade/tabs/exchange.jade:113 +#: src/jade/tabs/exchange.jade:126 src/jade/tabs/kyc.jade:116 +#: src/jade/tabs/kyc.jade:131 src/jade/tabs/kyc.jade:156 +#: src/jade/tabs/kyc.jade:157 src/jade/tabs/kyc.jade:186 +#: src/jade/tabs/login/form.jade:26 src/jade/tabs/security.jade:79 +#: src/jade/tabs/security.jade:112 src/jade/tabs/security.jade:149 +#: src/jade/tabs/send.jade:215 src/jade/tabs/send.jade:227 +#: src/jade/tabs/send.jade:252 src/jade/tabs/send.jade:286 +#: src/jade/tabs/trade.jade:55 src/jade/tabs/trust.jade:141 +#: src/jade/tabs/trust.jade:143 src/jade/tabs/trust.jade:213 +#: src/jade/tabs/trust.jade:251 +msgid "cancel" +msgstr "cancelar" + +#: src/jade/tabs/account/public.jade:49 +msgid "Ripple address" +msgstr "Endereço Ripple" + +#: src/jade/tabs/advanced.jade:8 +msgid "Your blob vault has been changed successfully." +msgstr "Seu blob vault foi alterado com sucesso." + +#: src/jade/tabs/advanced.jade:9 +msgid "Your bitcoin bridge has been changed successfully." +msgstr "Sua bridge de bitcoin foi alterada com sucesso." + +#: src/jade/tabs/advanced.jade:10 +msgid "Trustline advanced settings has been changed successfully." +msgstr "Configuração avançada de linha de confiança alterada com sucesso." + +#: src/jade/tabs/advanced.jade:11 +msgid "Maximum network fee has been changed successfully." +msgstr "A taxa máxima de rede foi alterada com sucesso." + +#: src/jade/tabs/advanced.jade:12 +msgid "A new server has been successfully added." +msgstr "Um novo servidor foi adicionado com sucesso." + +#: src/jade/tabs/advanced.jade:13 +msgid "A server has been successfully removed." +msgstr "O servidor foi removido com sucesso." + +#: src/jade/tabs/advanced.jade:14 +msgid "A server has been changed successfully." +msgstr "O servidor foi alterado com sucesso." + +#: src/jade/tabs/advanced.jade:21 +msgid "Blob vault" +msgstr "Blob vault" + +#: src/jade/tabs/advanced.jade:32 src/jade/tabs/advanced.jade:49 +#: src/jade/tabs/advanced.jade:73 src/jade/tabs/advanced.jade:92 +#: src/jade/tabs/advanced.jade:120 src/jade/tabs/contacts.jade:88 +#: src/jade/tabs/fund.jade:65 src/jade/tabs/security.jade:190 +#: src/jade/tabs/send.jade:251 src/jade/tabs/send.jade:284 +#: src/jade/tabs/trust.jade:119 src/jade/tabs/trust.jade:232 +msgid "Save" +msgstr "Salvar" + +#: src/jade/tabs/advanced.jade:34 src/jade/tabs/advanced.jade:51 +#: src/jade/tabs/advanced.jade:75 src/jade/tabs/advanced.jade:122 +#: src/jade/tabs/contacts.jade:91 src/jade/tabs/security.jade:198 +msgid "Delete" +msgstr "Apagar" + +#: src/jade/tabs/advanced.jade:38 +msgid "Bitcoin bridge" +msgstr "Bridge de bitcoin" + +#: src/jade/tabs/advanced.jade:55 +msgid "Trust line" +msgstr "Linha de Confiança" + +#: src/jade/tabs/advanced.jade:60 src/jade/tabs/advanced.jade:71 +#: src/jade/tabs/security.jade:162 +msgid "Show" +msgstr "Mostrar" + +#: src/jade/tabs/advanced.jade:61 src/jade/tabs/security.jade:163 +msgid "Hide" +msgstr "Ocultar" + +#: src/jade/tabs/advanced.jade:78 +msgid "Network settings" +msgstr "Configurações de rede" + +#: src/jade/tabs/advanced.jade:80 +msgid "Maximum network fee" +msgstr "Taxa máxima de rede" + +#: src/jade/tabs/advanced.jade:96 +msgid "Server settings" +msgstr "Configurações de Servidor" + +#: src/jade/tabs/advanced.jade:101 +msgid "WebSocket host name" +msgstr "WebSocket host name" + +#: src/jade/tabs/advanced.jade:103 +msgid "Port number" +msgstr "Número da Porta" + +#: src/jade/tabs/advanced.jade:109 +msgid "Socket ip or hostname is invalid." +msgstr "Ip do socket ou hostname inválido." + +#: src/jade/tabs/advanced.jade:111 +msgid "Port number is invalid." +msgstr "Número de porta inválido." + +#: src/jade/tabs/advanced.jade:118 src/jade/tabs/advanced.jade:131 +msgid "Secure" +msgstr "Seguro" + +#: src/jade/tabs/advanced.jade:132 +msgid "Not Secure" +msgstr "Não seguro" + +#: src/jade/tabs/advanced.jade:138 +msgid "Add new server" +msgstr "Adicionar novo servidor" + +#: src/jade/tabs/apps.jade:27 +msgid "App Ripple Address" +msgstr "Endereço Ripple do App" + +#: src/jade/tabs/apps.jade:29 +msgid "Please enter a ripple address." +msgstr "Por favor insira um endereço ripple." + +#: src/jade/tabs/apps.jade:31 +msgid "Please enter a valid ripple address." +msgstr "Por favor insira um endereço ripple válido." + +#: src/jade/tabs/banner/announcement.jade:2 +msgid "Help our team improve Ripple Trade! {{1:Take a quick user survey.}}" +msgstr "Ajude a nossa equipe a melhorar o Ripple Trade! {{1:Responda uma pesquisa rápida.}}" + +#: src/jade/tabs/banner/unfunded.jade:2 +msgid "" +"Welcome to Ripple Trade! Your account needs to be activated. You can " +"activate it in 2 ways:" +msgstr "Bem-vindo ao Ripple Trade! Sua conta precisa ser ativada. Você pode ativá-la de 2 maneiras:" + +#: src/jade/tabs/banner/unfunded.jade:4 +msgid "" +"Have another user send XRP to your Ripple name " +"(~{{userCredentials.username}}). {{1}}" +msgstr "Pedir a um outro usuário enviar XRP para o seu nome Ripple (~{{userCredentials.username}}). {{1}}" + +#: src/jade/tabs/brl.jade:24 src/jade/tabs/eur.jade:24 +#: src/jade/tabs/gold.jade:24 src/jade/tabs/jpy.jade:24 +#: src/jade/tabs/mxn.jade:24 src/jade/tabs/trust.jade:42 +#: src/jade/tabs/usd.jade:24 +msgid "There was an error while saving your changes." +msgstr "Houve um erro ao salvar as suas alterações." + +#: src/jade/tabs/brl.jade:28 src/jade/tabs/eur.jade:27 +#: src/jade/tabs/gold.jade:27 src/jade/tabs/jpy.jade:28 +#: src/jade/tabs/mxn.jade:28 src/jade/tabs/trust.jade:45 +#: src/jade/tabs/usd.jade:27 +msgid "You must have at least {{1}} to add a new trust line. {{2}}" +msgstr "Você precisa ter pelo menos {{1}} para adicionar uma nova linha de confiança. {{2}}" + +#: src/jade/tabs/brl.jade:38 +msgid "Brazilian Real Deposit" +msgstr "Depósito de Real Brasileiro" + +#: src/jade/tabs/brl.jade:41 src/jade/tabs/btc.jade:35 +#: src/jade/tabs/eur.jade:38 src/jade/tabs/gold.jade:40 +#: src/jade/tabs/jpy.jade:41 src/jade/tabs/mxn.jade:41 +#: src/jade/tabs/trust.jade:167 src/jade/tabs/usd.jade:38 +msgid "Gateway" +msgstr "Gateway" + +#: src/jade/tabs/brl.jade:42 src/jade/tabs/eur.jade:48 +#: src/jade/tabs/mxn.jade:81 src/jade/tabs/mxn.jade:93 +#: src/jade/tabs/mxn.jade:103 src/jade/tabs/security.jade:49 +msgid "{{1}}{{2}}" +msgstr "{{1}}{{2}}" + +#: src/jade/tabs/brl.jade:43 +msgid "Ripple (~rippex)" +msgstr "Ripple (~rippex)" + +#: src/jade/tabs/brl.jade:46 src/jade/tabs/btc.jade:39 +#: src/jade/tabs/eur.jade:44 src/jade/tabs/gold.jade:44 +#: src/jade/tabs/jpy.jade:45 src/jade/tabs/mxn.jade:46 +#: src/jade/tabs/usd.jade:44 +msgid "Availability" +msgstr "Disponibilidade" + +#: src/jade/tabs/brl.jade:47 +msgid "Brazil" +msgstr "Brasil" + +#: src/jade/tabs/brl.jade:49 src/jade/tabs/btc.jade:42 +#: src/jade/tabs/eur.jade:47 src/jade/tabs/gold.jade:47 +#: src/jade/tabs/jpy.jade:48 src/jade/tabs/mxn.jade:49 +#: src/jade/tabs/usd.jade:47 +msgid "Fees" +msgstr "Taxas" + +#: src/jade/tabs/brl.jade:50 src/jade/tabs/jpy.jade:49 +#: src/jade/tabs/kyc.jade:111 src/jade/tabs/kyc.jade:126 +#: src/jade/tabs/kyc.jade:151 +msgid "{{1}}{{2}}{{3}}" +msgstr "{{1}}{{2}}{{3}}" + +#: src/jade/tabs/brl.jade:51 +msgid "Deposit: 1.50 BRL + 0.5%" +msgstr "Depósito: 1.50 BRL + 0.5%" + +#: src/jade/tabs/brl.jade:52 +msgid "Transfer: 0%" +msgstr "Transfer: 0%" + +#: src/jade/tabs/brl.jade:56 src/jade/tabs/btc.jade:45 +#: src/jade/tabs/eur.jade:53 src/jade/tabs/gold.jade:50 +#: src/jade/tabs/jpy.jade:54 src/jade/tabs/mxn.jade:52 +#: src/jade/tabs/usd.jade:50 +msgid "Rating" +msgstr "Avaliação" + +#: src/jade/tabs/brl.jade:62 +msgid "" +"Ripple Trade has partnered with Rippex to provide easy access to BRL. By " +"continuing, you agree with Rippex's {{1}}Following this action will enable " +"Rippex to hold BRL on your behalf." +msgstr "Ripple Trade e Rippex fizeram uma parceria para garantir fácil acesso ao BRL. Ao continuar, você concorda com os {{1}} da Rippex. Essa ação permite que a Rippex custodie BRL para você." + +#: src/jade/tabs/brl.jade:69 +msgid "Add Rippex" +msgstr "Adicionar a Rippex" + +#: src/jade/tabs/brl.jade:70 +msgid "Adding..." +msgstr "Adicionando..." + +#: src/jade/tabs/brl.jade:71 src/jade/tabs/eur.jade:65 +#: src/jade/tabs/jpy.jade:64 src/jade/tabs/usd.jade:62 +msgid "Hide instructions" +msgstr "Ocultar instruções" + +#: src/jade/tabs/brl.jade:72 src/jade/tabs/eur.jade:66 +#: src/jade/tabs/jpy.jade:65 src/jade/tabs/usd.jade:63 +msgid "Show instructions" +msgstr "Mostrar instruções" + +#: src/jade/tabs/brl.jade:75 src/jade/tabs/btc.jade:83 +msgid "{{1}}Not connected" +msgstr "{{1}}Não conectado" + +#: src/jade/tabs/brl.jade:78 src/jade/tabs/btc.jade:86 +msgid "{{1}}Connected" +msgstr "{{1}}Conectado" + +#: src/jade/tabs/brl.jade:81 src/jade/tabs/eur.jade:71 +#: src/jade/tabs/gold.jade:73 src/jade/tabs/jpy.jade:74 +#: src/jade/tabs/mxn.jade:76 src/jade/tabs/usd.jade:68 +msgid "Your account has to be activated before you can add a gateway account." +msgstr "Sua conta precisa ser ativada para poder adicionar um gateway." + +#: src/jade/tabs/brl.jade:84 src/jade/tabs/eur.jade:75 +#: src/jade/tabs/gold.jade:76 src/jade/tabs/jpy.jade:77 +#: src/jade/tabs/mxn.jade:79 src/jade/tabs/usd.jade:72 +msgid "×" +msgstr "×" + +#: src/jade/tabs/brl.jade:85 +msgid "NEW CUSTOMERS- SIGN UP AT RIPPEX" +msgstr "NOVOS USUÁRIOS - CRIE UMA CONTA RIPPEX" + +#: src/jade/tabs/brl.jade:86 +msgid "" +"{{1}} at Rippex.net to initiate deposits and withdrawals. You will " +"need:{{2}}" +msgstr "{{1}} em rippex.net para fazer saques e depósitos. Você vai precisar de:{{2}}" + +#: src/jade/tabs/brl.jade:90 +msgid "A {{1}}" +msgstr "Um {{1}}" + +#: src/jade/tabs/brl.jade:92 +msgid "A bank account in Brazil." +msgstr "Uma conta bancária no Brazil." + +#: src/jade/tabs/brl.jade:96 +msgid "EXISTING RIPPEX CUSTOMERS" +msgstr "USUÁRIOS RIPPEX EXISTENTES" + +#: src/jade/tabs/brl.jade:97 +msgid "If you have a Rippex account, {{1}}" +msgstr "Se você tem uma conta Rippex, {{1}}" + +#: src/jade/tabs/brl.jade:100 +msgid "DEPOSIT INSTRUCTIONS" +msgstr "INSTRUÇÕES DE DEPÓSITO" + +#: src/jade/tabs/brl.jade:101 +msgid "Rippex accepts deposits from all Brazilian banks. Instructions {{1}}" +msgstr "Rippex aceita depósitos de todos os bancos brasileiros. Instruções {{1}}" + +#: src/jade/tabs/btc.jade:19 +msgid "Success! You can deposit BTC via your generated BTC receiving address." +msgstr "Sucesso! Você pode depositar BTC usando o endereço BTC gerado." + +#: src/jade/tabs/btc.jade:21 +msgid "There was an error with your request. {{1}}" +msgstr "Houve um erro com a sua solicitação. {{1}}" + +#: src/jade/tabs/btc.jade:30 +msgid "Bitcoin Deposit" +msgstr "Depósito de Bitcoin" + +#: src/jade/tabs/btc.jade:36 +msgid "btc2ripple (~snapswap) {{1}}" +msgstr "btc2ripple (~snapswap) {{1}}" + +#: src/jade/tabs/btc.jade:40 src/jade/tabs/gold.jade:45 +#: src/jade/tabs/jpy.jade:46 +msgid "All countries" +msgstr "Todos os países" + +#: src/jade/tabs/btc.jade:43 src/jade/tabs/mxn.jade:50 +msgid "0%" +msgstr "0%" + +#: src/jade/tabs/btc.jade:50 +msgid "" +"Ripple Trade has partnered with btc2ripple to make depositing BTC easier. By" +" proceeding, you agree to the btc2ripple {{1}} Following this action will " +"allow btc2ripple to hold BTC on your behalf." +msgstr "Ripple Trade e btc2ripple fizeram uma parceria para criar uma maneira fácil de depositar BTC. Ao continuar, você concorda com os {{1}} da btc2ripple. Essa ação permite que a btc2ripple custodie BTC para você." + +#: src/jade/tabs/btc.jade:56 +msgid "Add btc2ripple" +msgstr "Adicionar btc2ripple" + +#: src/jade/tabs/btc.jade:60 src/jade/tabs/security.jade:64 +#: src/jade/tabs/trust.jade:123 +msgid "Connect" +msgstr "Conectar" + +#: src/jade/tabs/btc.jade:62 +msgid "btc2ripple would like to:" +msgstr "btc2ripple gostaria de:" + +#: src/jade/tabs/btc.jade:64 +msgid "- Receive your email address {{1}}" +msgstr "- Ver o seu endereço de email {{1}}" + +#: src/jade/tabs/btc.jade:65 +msgid "({{userBlob.data.email}})" +msgstr "({{userBlob.data.email}})" + +#: src/jade/tabs/btc.jade:66 +msgid "- Hold deposited BTC on your behalf" +msgstr "- Ser o seu depositário de BTC" + +#: src/jade/tabs/btc.jade:67 +msgid "By proceeding, you agree to the btc2ripple {{1}}" +msgstr "Ao continuar, você concorda com os {{1}} de btc2ripple " + +#: src/jade/tabs/btc.jade:75 +msgid "" +"SnapSwap's btc2ripple service is currently unavailable. Please check back " +"later." +msgstr "O serviço btc2ripple de SnapSwap está indisponível no momento. Por favor, tente mais tarde." + +#: src/jade/tabs/btc.jade:94 +msgid "Personal Deposit address" +msgstr "Endereço Pessoal de Depósito" + +#: src/jade/tabs/btc.jade:96 +msgid "Your account is fully verified." +msgstr "Sua conta está totalmente verificada." + +#: src/jade/tabs/btc.jade:104 +msgid "Withdrawal instructions" +msgstr "Instruções de saque" + +#: src/jade/tabs/btc.jade:105 +msgid "" +"To withdraw to a BTC address, go to the Send tab and enter the BTC address. " +"Using the btc2ripple service, you will be able tosend to that BTC address." +msgstr "Para sacar para um endereço BTC, vá na aba Enviar e coloque o endereço BTC. Usando o serviço do btc2ripple, você poderá enviar para o endereço escolhido." + +#: src/jade/tabs/btc.jade:110 +msgid "Waiting for response from SnapSwap service..." +msgstr "Esperando resposta do SnapSwap..." + +#: src/jade/tabs/btc.jade:112 +msgid "" +"To deposit, generate a bitcoin receiving address using the {{1}} service " +"powered by SnapSwap." +msgstr "Para depositar, gere um endereço para receber Bitcoins usando o {{1}} serviço oferecido por SnapSwap." + +#: src/jade/tabs/contacts.jade:8 +msgid "A new contact has been successfully added." +msgstr "Um novo servidor foi adicionado com sucesso." + +#: src/jade/tabs/contacts.jade:9 +msgid "Your contact has been successfully updated." +msgstr "Seu contato foi alterado com sucesso." + +#: src/jade/tabs/contacts.jade:10 +msgid "A contact has been successfully removed." +msgstr "O contato foi removido com sucesso." + +#: src/jade/tabs/contacts.jade:12 src/jade/tabs/contacts.jade:24 +msgid "Contact" +msgstr "Contato" + +#: src/jade/tabs/contacts.jade:13 src/jade/tabs/contacts.jade:32 +msgid "Ripple name or address" +msgstr "Nome ou endereço Ripple" + +#: src/jade/tabs/contacts.jade:15 src/jade/tabs/contacts.jade:19 +#: src/jade/tabs/contacts.jade:48 +msgid "Add contact" +msgstr "Adicionar contato" + +#: src/jade/tabs/contacts.jade:27 src/jade/tabs/send.jade:245 +#: src/jade/tabs/send.jade:277 +msgid "Please enter a contact." +msgstr "Por favor insira um contato." + +#: src/jade/tabs/contacts.jade:28 +msgid "This contact already exists." +msgstr "Este contato já existe." + +#: src/jade/tabs/contacts.jade:36 +msgid "Please enter a Ripple name." +msgstr "Por favor insira um nome Ripple." + +#: src/jade/tabs/contacts.jade:37 src/jade/tabs/contacts.jade:45 +msgid "" +"You already have a contact with the same Ripple name and/or the same " +"Destination tag." +msgstr "Você já tem um contato com o mesmo nome Ripple e/ou mesma tag do destinatário." + +#: src/jade/tabs/contacts.jade:38 +msgid "Not a valid Ripple name or address." +msgstr "Nome ou endereço ripple inválido." + +#: src/jade/tabs/contacts.jade:41 src/jade/tabs/contacts.jade:81 +#: src/jade/tabs/send.jade:42 src/jade/tabs/tx.jade:56 +msgid "Destination tag" +msgstr "Tag do destinatário" + +#: src/jade/tabs/contacts.jade:42 +msgid "Leave blank if not applicable" +msgstr "Deixar em branco se não aplicável" + +#: src/jade/tabs/contacts.jade:44 src/jade/tabs/send.jade:46 +msgid "Invalid destination tag" +msgstr "Tag do destinatário inválida" + +#: src/jade/tabs/contacts.jade:72 +msgid "You already have a contact with the same name." +msgstr "Você já possui um contato com o mesmo nome." + +#: src/jade/tabs/contacts.jade:78 +msgid "You already have this address." +msgstr "Você já possui este endereço." + +#: src/jade/tabs/contacts.jade:79 src/jade/tabs/debug.jade:14 +msgid "Not a valid address." +msgstr "Não é um endereço válido." + +#: src/jade/tabs/contacts.jade:84 +msgid "Invalid destination tag." +msgstr "Tag do destinatário inválida." + +#: src/jade/tabs/contacts.jade:94 +msgid "" +"You don't have any contacts yet. Click on 'Add contact' button in the top " +"right corner to add a new contact." +msgstr "Você não tem contatos ainda. Clique em \"Adicionar Contato\" no alto à direita para adicionar um contato novo." + +#: src/jade/tabs/debug.jade:9 +msgid "Enter a Ripple name or address" +msgstr "Insira um nome ou endereço Ripple." + +#: src/jade/tabs/debug.jade:13 +msgid "Please enter an address." +msgstr "Por favor insira um endereço." + +#: src/jade/tabs/debug.jade:17 +msgid "Turn on debug mode" +msgstr "Ligar o modo debug" + +#: src/jade/tabs/eur.jade:35 +msgid "Euro Deposit" +msgstr "Depósito em Euro" + +#: src/jade/tabs/eur.jade:39 +msgid "SnapSwap EU (~SnapSwap){{1}}{{2}}" +msgstr "SnapSwap EU (~SnapSwap){{1}}{{2}}" + +#: src/jade/tabs/eur.jade:45 +msgid "All countries, except USA" +msgstr "Todos os países, exceto os Estados Unidos da América" + +#: src/jade/tabs/eur.jade:49 +msgid "€ 0.31 – € 15.00" +msgstr "€ 0.31 – € 15.00" + +#: src/jade/tabs/eur.jade:59 +msgid "" +"Ripple Trade has partnered with SnapSwap to provide easier access to EUR. " +"Following this action will enable SnapSwap to hold EUR on your behalf." +msgstr "Ripple Trade e SnapSwap fizeram uma parceria para criar uma maneira fácil de depositar EUR. Essa ação permite que a SnapSwap custodie EUR para você." + +#: src/jade/tabs/eur.jade:69 src/jade/tabs/usd.jade:66 +msgid "Not connected" +msgstr "Não conectado" + +#: src/jade/tabs/eur.jade:70 src/jade/tabs/usd.jade:67 +msgid "Connected" +msgstr "Conectado" + +#: src/jade/tabs/eur.jade:76 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.EU" +msgstr "NOVOS USUÁRIOS - CRIE UMA CONTA EM SNAPSWAP.EU" + +#: src/jade/tabs/eur.jade:77 +msgid "Register and verify your account at SnapSwap EU. You will need: {{1}}" +msgstr "Crie e verifique sua conta na SnapSwap EU. Você vai precisar de: {{1}}" + +#: src/jade/tabs/eur.jade:81 src/jade/tabs/usd.jade:78 +msgid "" +"A valid government-issued ID: driver license, passport, ID card, or visa " +"stamp." +msgstr "Uma identidade válida emitida por um governo: Carteira de motorista, passaporte, identidade ou carimbo de visto." + +#: src/jade/tabs/eur.jade:83 src/jade/tabs/usd.jade:80 +msgid "A proof of address: driver license, utility bill, bank statement, etc." +msgstr "Um comprovante de endereço: carteira de motorista, conta de luz, extrato bancário, etc" + +#: src/jade/tabs/eur.jade:85 +msgid "EXISTING SNAPSWAP EU CUSTOMERS" +msgstr "USUÁRIOS SNAPSWAP EXISTENTES" + +#: src/jade/tabs/eur.jade:89 src/jade/tabs/jpy.jade:94 +#: src/jade/tabs/usd.jade:86 +msgid "Login to your account {{1}}" +msgstr "Entre em sua conta {{1}}" + +#: src/jade/tabs/eur.jade:92 src/jade/tabs/jpy.jade:96 +msgid "DEPOSITS AND WITHDRAWALS:" +msgstr "DEPÓSITOS E SAQUES:" + +#: src/jade/tabs/eur.jade:96 +msgid "Deposit from your bank (2-4 business days)" +msgstr "Deposite de seu banco (2-4 dias úteis)" + +#: src/jade/tabs/eur.jade:98 +msgid "Withdraw to your bank account in SEPA (2-4 business days)" +msgstr "Saque para sua conta bancária SEPA (2-4 dias úteis)" + +#: src/jade/tabs/eur.jade:100 +msgid "Withdraw to SmartyCash Card (instant)" +msgstr "Saque para o cartão SmartyCash (instantâneo)" + +#: src/jade/tabs/exchange.jade:13 +msgid "You have to be funded before you can exchange money" +msgstr "Sua conta precisa de um saldo mínimo para poder negociar." + +#: src/jade/tabs/exchange.jade:23 +msgid "Buy (Market Order)" +msgstr "Comprar (Ordem ao Mercado)" + +#: src/jade/tabs/exchange.jade:24 +msgid "" +"Submit a buy order at the current market rate. Orders will execute " +"instantly." +msgstr "Criar uma ordem de compra ao valor do mercado. Serão executadas instantaneamente." + +# Receive (amount) +#: src/jade/tabs/exchange.jade:27 +msgid "Receive (amount)" +msgstr "Eu quero comprar" + +#: src/jade/tabs/exchange.jade:34 src/jade/tabs/widgets/balances.jade:49 +msgid "add gateway" +msgstr "adicionar gateway" + +#: src/jade/tabs/exchange.jade:37 src/jade/tabs/send.jade:90 +msgid "Please enter an amount." +msgstr "Por favor digite um valor." + +#: src/jade/tabs/exchange.jade:38 src/jade/tabs/send.jade:91 +#: src/jade/tabs/trade.jade:153 src/jade/tabs/trade.jade:168 +#: src/jade/tabs/trade.jade:183 src/jade/tabs/trust.jade:101 +msgid "Not a valid amount." +msgstr "Valor inválido." + +#: src/jade/tabs/exchange.jade:39 +msgid "" +"You are either trying to convert too little or too much XRP.Minimum amount " +"is 0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "Você está tentando converter muito pouco ou muito XRP. A quantia mínima é 0.000001 XRP e a máxima é 100 bilhões XRP." + +#: src/jade/tabs/exchange.jade:42 src/jade/tabs/send.jade:96 +#: src/jade/tabs/trust.jade:103 +msgid "Your amount has too many digits. The max number of digits is 16." +msgstr "Sua quantia tem muitos dígitos. O número máximo de dígitos é 16." + +#: src/jade/tabs/exchange.jade:43 +msgid "Please enter an amount greater than zero." +msgstr "Por favor digite um valor maior do que zero." + +#: src/jade/tabs/exchange.jade:46 +msgid "{{1}} Calculating..." +msgstr "{{1}} Calculando..." + +#: src/jade/tabs/exchange.jade:50 +msgid "" +"Cannot convert to {{exchange.amount}} {{exchange.currency_name}}. Please " +"make sure your account has enough funds, and a {{1}} to a " +"{{exchange.currency_name}} gateway." +msgstr "Impossível converter {{exchange.amount}} {{exchange.currency_name}}. Por favor certifique-se que sua conta tenha fundos suficientes, e uma {{1}} para um {{exchange.currency_name}} gateway." + +#: src/jade/tabs/exchange.jade:54 +msgid "" +"Sorry! Cannot convert {{exchange.amount}} {{exchange.currency_name}}. Please" +" make sure your account has enough funds." +msgstr "Desculpe! Impossível converter {{exchange.amount}} {{exchange.currency_name}}. Por favor assegure-se que a sua conta tenha fundos suficientes." + +#: src/jade/tabs/exchange.jade:56 src/jade/tabs/send.jade:142 +msgid "Error while calculating path" +msgstr "Erro ao calcular caminho" + +#: src/jade/tabs/exchange.jade:60 +msgid "Exchange" +msgstr "Converter" + +#: src/jade/tabs/exchange.jade:72 +msgid "Exchange {{ alt.amount | rpcurrency }} {{1}}" +msgstr "Negociar {{ alt.amount | rpcurrency }} {{1}}" + +#: src/jade/tabs/exchange.jade:78 src/jade/tabs/send.jade:170 +msgid "Paths last updated {{1}} {{2: seconds}} {{3: second}} ago" +msgstr "Caminhos atualizados {{1}} {{2: segundos}} {{3: sgundo}} atrás" + +#: src/jade/tabs/exchange.jade:89 +msgid "Ripple is calculating a path for your conversion." +msgstr "Ripple está encontrando um caminho para sua conversão." + +#: src/jade/tabs/exchange.jade:94 +msgid "" +"{{1:You are exchanging}}{{2}}{{3:to}}{{4}}{{5:You will pay at " +"most}}{{6}}{{7:Are you sure?}}" +msgstr "{{1:Você irá converter}}{{2}}{{3:em}}{{4}}{{5:Você pagará no máximo}}{{6}}{{7:Tem certeza?}}" + +#: src/jade/tabs/exchange.jade:139 +msgid "Do another conversion" +msgstr "Faça outra conversão" + +#: src/jade/tabs/exchange.jade:141 src/jade/tabs/send.jade:257 +#: src/jade/tabs/send.jade:291 +msgid "Back to balance" +msgstr "Voltar ao saldo" + +#: src/jade/tabs/fund.jade:20 +msgid "Add trust" +msgstr "Adicionar" + +#: src/jade/tabs/fund.jade:27 src/jade/tabs/send.jade:26 +msgid "Enter a Ripple name or contact" +msgstr "Insira um nome ou endereço Ripple." + +#: src/jade/tabs/fund.jade:33 src/jade/tabs/trust.jade:73 +msgid "Account does not meet the minimum XRP reserve." +msgstr "A conta não possui a reserva mínima de XRP." + +#: src/jade/tabs/fund.jade:36 src/jade/tabs/trust.jade:76 +msgid "Please enter a Ripple name, contact, or address." +msgstr "Por favor insira um nome Ripple, contato ou endereço." + +#: src/jade/tabs/fund.jade:37 src/jade/tabs/trust.jade:77 +msgid "You've entered your own address." +msgstr "Você inseriu o seu próprio endereço." + +#: src/jade/tabs/fund.jade:38 src/jade/tabs/trust.jade:78 +msgid "Please enter a valid Ripple name, contact, or address." +msgstr "Por favor insira um nome Ripple válido, contato ou endereço." + +#: src/jade/tabs/fund.jade:48 src/jade/tabs/trust.jade:80 +msgid "Amount field is required" +msgstr "O campo \"Quantia\" é obrigatório" + +#: src/jade/tabs/fund.jade:50 src/jade/tabs/trust.jade:82 +#: src/jade/tabs/trust.jade:105 +msgid "" +"XRP can be sent without extending trust. If you really want to trust in XRP," +" please use XRR currency code." +msgstr "XRP pode ser enviado sem criar uma linha de confiança. Se você realmente quer criar uma linha de confiança para XRP, por favor use o código de moeda XRP." + +#: src/jade/tabs/fund.jade:53 src/jade/tabs/trust.jade:85 +#: src/jade/tabs/trust.jade:108 +msgid "Currency field is required" +msgstr "O campo \"Moeda\" é obrigatório" + +#: src/jade/tabs/fund.jade:59 src/jade/tabs/fund.jade:60 +#: src/jade/tabs/trust.jade:114 src/jade/tabs/trust.jade:115 +msgid "Allow Rippling" +msgstr "Permitir Rippling" + +#: src/jade/tabs/fund.jade:60 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"trust. More " +"information" +msgstr "Permitir que o saldo desta Linha de Confiança seja transferido para outro Emissor de sua confiança. Mais informações" + +#: src/jade/tabs/fund.jade:63 +msgid "Cancel" +msgstr "Cancelar" + +#: src/jade/tabs/fund/menu.jade:3 +msgid "{{1}}XRP" +msgstr "{{1}}XRP" + +#: src/jade/tabs/fund/menu.jade:6 +msgid "Featured gateways" +msgstr "Gateways em destaque" + +#: src/jade/tabs/fund/menu.jade:7 +msgid "{{1}}BRL" +msgstr "{{1}}BRL" + +#: src/jade/tabs/fund/menu.jade:10 +msgid "{{1}}BTC" +msgstr "{{1}}BTC" + +#: src/jade/tabs/fund/menu.jade:13 +msgid "{{1}}EUR" +msgstr "{{1}}EUR" + +#: src/jade/tabs/fund/menu.jade:16 +msgid "{{1}}JPY" +msgstr "{{1}}JPY" + +#: src/jade/tabs/fund/menu.jade:19 +msgid "{{1}}MXN" +msgstr "{{1}}MXN" + +#: src/jade/tabs/fund/menu.jade:22 +msgid "{{1}}USD" +msgstr "{{1}}USD" + +#: src/jade/tabs/fund/menu.jade:25 +msgid "{{1}}XAU" +msgstr "{{1}}XAU" + +#: src/jade/tabs/fund/menu.jade:28 +msgid "Add any gateway" +msgstr "Adicionar qualquer gateway" + +#: src/jade/tabs/fund/menu.jade:30 +msgid "Learn more about gateways" +msgstr "Aprenda mais sobre gateways" + +#: src/jade/tabs/gold.jade:37 +msgid "Gold Deposit" +msgstr "Depósito de Ouro" + +#: src/jade/tabs/gold.jade:41 +msgid "Gold Bullion International (~gbi) {{1}}" +msgstr "Gold Bullion International (~gbi) {{1}}" + +#: src/jade/tabs/gold.jade:48 +msgid "0.5% per year" +msgstr "0.5% por ano" + +#: src/jade/tabs/gold.jade:56 +msgid "" +"Ripple Trade has partnered with GBI to provide easy access toXAU. By " +"continuing, you are allowing GBI to hold gold on your behalf." +msgstr "Ripple Trade e GBI fizeram uma parceria para garantir fácil acesso ao XAU. Essa ação permite que a GBI custodie XAU para você." + +#: src/jade/tabs/gold.jade:67 src/jade/tabs/jpy.jade:68 +#: src/jade/tabs/mxn.jade:70 +msgid "{{1}} Not connected" +msgstr "{{1}}Não conectado" + +#: src/jade/tabs/gold.jade:70 src/jade/tabs/jpy.jade:71 +#: src/jade/tabs/mxn.jade:73 +msgid "{{1}} Connected" +msgstr "{{1}}Conectado" + +#: src/jade/tabs/gold.jade:77 +msgid "Deposit" +msgstr "Depósito" + +#: src/jade/tabs/gold.jade:78 +msgid "" +"GBI does not currently support direct deposits. You can {{1}} or {{2}}." +msgstr "GBI atualmente não permite depósitos diretos. Você pode {{1}} ou {{2}}." + +#: src/jade/tabs/gold.jade:84 +msgid "Withdrawal" +msgstr "Saque" + +#: src/jade/tabs/gold.jade:85 +msgid "" +"You can redeem the physical gold in 1 oz increments.To do so, you'll need to" +" {{1}} and arrange to have the gold shipped to you." +msgstr "Você pode solicitar ouro físico em múltiplos de onças. Para isso, você vai precisar {{1}} e providenciar o frete do ouro." + +#: src/jade/tabs/history.jade:11 +msgid "Loading History" +msgstr "Carregando Histórico" + +#: src/jade/tabs/history.jade:16 +msgid "Your account history is empty" +msgstr "O histórico da sua conta está vazio" + +#: src/jade/tabs/history.jade:24 +msgid "Transaction type{{1}}{{2}}" +msgstr "Tipo de Transação{{1}}{{2}}" + +#: src/jade/tabs/history.jade:37 +msgid "Date{{1}}{{2}}" +msgstr "Data{{1}}{{2}}" + +#: src/jade/tabs/history.jade:42 +msgid "Load history for specific date range" +msgstr "Carregar histórico entre datas específicas" + +#: src/jade/tabs/history.jade:48 +msgid "From" +msgstr "De" + +#: src/jade/tabs/history.jade:54 +msgid "To" +msgstr "Para" + +#: src/jade/tabs/history.jade:57 +msgid "Filter" +msgstr "Filtrar" + +#: src/jade/tabs/history.jade:64 +msgid "Date" +msgstr "Data" + +#: src/jade/tabs/history.jade:65 src/jade/tabs/history.jade:170 +msgid "Description" +msgstr "Descrição" + +#: src/jade/tabs/history.jade:68 src/jade/tabs/history.jade:73 +msgid "Export to CSV" +msgstr "Exportar CSV" + +#: src/jade/tabs/history.jade:69 +msgid "Sorry, no transactions match your current filter." +msgstr "Desculpe, nenhuma transação coincide com os filtros escolhidos." + +#: src/jade/tabs/history.jade:91 +msgid "You sent{{1}}to{{2}}" +msgstr "Você enviou{{1}}para{{2}}" + +#: src/jade/tabs/history.jade:97 +msgid "{{1}}sent you{{2}}" +msgstr "{{1}}lhe enviou{{2}}" + +#: src/jade/tabs/history.jade:103 +msgid "You requested to exchange{{1}}to{{2}}" +msgstr "Você solicitou a conversão de{{1}}para{{2}}" + +#: src/jade/tabs/history.jade:109 +msgid "{{1}}now trusts you for{{2}}" +msgstr "{{1}}agora confia em você até{{2}}" + +#: src/jade/tabs/history.jade:122 src/jade/tabs/history/effects.jade:45 +msgid "You created an order to sell{{1}}for{{2}}" +msgstr "Você criou uma ordem para vender{{1}}por{{2}}" + +#: src/jade/tabs/history.jade:126 src/jade/tabs/history/effects.jade:49 +msgid "You created an order to buy{{1}}for{{2}}" +msgstr "Você criou uma ordem para comprar{{1}}por{{2}}" + +#: src/jade/tabs/history.jade:132 +msgid "You cancelled an order accepting {{1}}for{{2}}" +msgstr "Você cancelou uma ordem aceitando {{1}}por{{2}}" + +#: src/jade/tabs/history.jade:145 +msgid "Unknown transaction" +msgstr "Transação desconhecida" + +#: src/jade/tabs/history.jade:148 +msgid "" +"The client failed to parse this transaction. The developers have been " +"notified of the issue." +msgstr "O aplicativo não pôde analizar essa transação. Os desenvolvedores foram notificados sobre o problema." + +#: src/jade/tabs/history.jade:153 +msgid "{{1}} sent you{{2}} and activated your account!" +msgstr "{{1}} lhe enviou{{2}} e ativou sua conta!" + +#: src/jade/tabs/history.jade:160 +msgid "You deposited{{1}} using {{entry.details.app.name}}" +msgstr "Você depositou{{1}} usando {{entry.details.app.name}}" + +#: src/jade/tabs/history.jade:168 +msgid "Balance Changes" +msgstr "Mudanças no Saldo" + +#: src/jade/tabs/history.jade:171 +msgid "Issuer" +msgstr "Emissor" + +#: src/jade/tabs/history.jade:173 +msgid "Final balance" +msgstr "Saldo final" + +#: src/jade/tabs/history.jade:176 +msgid "XRP Balance Change" +msgstr "Mudança no saldo de XRP" + +#: src/jade/tabs/history.jade:177 +msgid "{{effect.currency}} Balance Change" +msgstr "Mudança no Saldo de {{effect.currency}}" + +#: src/jade/tabs/history.jade:183 +msgid "Transaction details" +msgstr "Detalhes da transação" + +#: src/jade/tabs/history.jade:184 +msgid "Add {{1}} to contact list" +msgstr "Adicionar {{1}} à lista de contatos" + +#: src/jade/tabs/history.jade:189 +msgid "{{1}} Loading more" +msgstr "{{1}} Carregando mais" + +#: src/jade/tabs/history.jade:192 src/jade/tabs/trade.jade:500 +msgid "Load more" +msgstr "Carregar mais" + +#: src/jade/tabs/history.jade:193 +msgid "No more transactions left" +msgstr "Não há mais transações" + +#: src/jade/tabs/history/effects.jade:4 src/jade/tabs/history/effects.jade:19 +msgid "You sold{{1}}for{{2}}" +msgstr "Você nedeu{{1}}por{{2}}" + +#: src/jade/tabs/history/effects.jade:8 src/jade/tabs/history/effects.jade:23 +msgid "You bought{{1}}for{{2}}" +msgstr "Você comprou{{1}}por{{2}}" + +#: src/jade/tabs/history/effects.jade:13 src/jade/tabs/history/effects.jade:28 +msgid "price" +msgstr "preço" + +#: src/jade/tabs/history/effects.jade:17 +msgid "This order has been filled." +msgstr "Esta ordem foi realizada." + +#: src/jade/tabs/history/effects.jade:32 +msgid "The rest of your order has been cancelled due to lack of funds." +msgstr "O restante da sua ordem foi cancelada devido a falta de fundos." + +#: src/jade/tabs/history/effects.jade:33 +msgid "This order has{{1}}remaining." +msgstr "Esta ordem possui{{1}}a realizar." + +#: src/jade/tabs/history/effects.jade:39 +msgid "Order ({{1}} for {{2}}) has been cancelled due to lack of funds." +msgstr "A ordem ({{1}} por {{2}}) foi cancelada por saldo insuficiente." + +#: src/jade/tabs/history/effects.jade:53 +msgid "You bought{{1}}for{{2}}({{3:price}}{{4}})." +msgstr "Você comprou{{1}}por{{2}}({{3:preço}}{{4}})." + +#: src/jade/tabs/history/effects.jade:68 +msgid "{{1}}is trusting you for{{2}}." +msgstr "{{1}}agora confia em você até{{2}}." + +#: src/jade/tabs/history/effects.jade:73 +msgid "You have changed {{1}}trust for{{2}}from{{3}}to{{4}}." +msgstr "Você mudou {{1}}de confiança para{{2}}de{{3}}para{{4}}." + +#: src/jade/tabs/history/effects.jade:83 +msgid "{{1}}changed the{{2}}trust from{{3}}to{{4}}." +msgstr "{{1}}mudou o{{2}}de confiança de{{3}}para{{4}}." + +#: src/jade/tabs/history/effects.jade:92 +msgid "Trust balance between you and{{1}}has been changed by{{2}}." +msgstr "O saldo da linha de confiança entre você e{{1}}mudou em{{2}}." + +#: src/jade/tabs/history/effects.jade:99 +msgid "Your balance has been changed by{{1}}." +msgstr "O seu saldo foi alterado em{{1}}." + +#: src/jade/tabs/jpy.jade:38 +msgid "Japanese Yen Deposit" +msgstr "Depósito de Yen Japonês" + +#: src/jade/tabs/jpy.jade:42 +msgid "Tokyo JPY Issuer (~tokyojpy) {{1}}" +msgstr "Tokyo JPY Issuer (~tokyojpy) {{1}}" + +#: src/jade/tabs/jpy.jade:59 +msgid "" +"Ripple Trade has partnered with Tokyo JPY Issuer to provide easier access to" +" JPY. Following this action will enable Tokyo JPY Issuer to hold JPY on your" +" behalf." +msgstr "Ripple Trade e Tokyo JPY fizeram uma parceria para garantir fácil acesso ao JPY. Essa ação permite que a Tokyo JPY custodie JPY para você." + +#: src/jade/tabs/jpy.jade:78 +msgid "NEW CUSTOMERS- SIGN UP AT TOKYO JPY ISSUER" +msgstr "NOVOS USUÁRIOS - CRIE UMA CONTA EM TOKYO JPY ISSUER" + +#: src/jade/tabs/jpy.jade:79 +msgid "{{1}}at Tokyo JPY Issuer. You will need:{{2}}" +msgstr "{{1}}em Tokyo JPY Issuer. Você vai precisar de:{{2}}" + +#: src/jade/tabs/jpy.jade:84 +msgid "A valid government-issued ID." +msgstr "Uma identidade oficial válida." + +#: src/jade/tabs/jpy.jade:86 +msgid "A proof of address (utility bill, etc)." +msgstr "Um comprovante de endereço (conta de luz, etc)." + +#: src/jade/tabs/jpy.jade:88 +msgid "A bank account under the same name." +msgstr "Uma conta de banco no seu nome." + +#: src/jade/tabs/jpy.jade:90 +msgid "EXISTING TOKYO JPY ISSUER CUSTOMERS" +msgstr "USUÁRIOS TOKYO JPY ISSUER EXISTENTES" + +#: src/jade/tabs/jpy.jade:100 +msgid "" +"Tokyo JPY Issuer accepts deposits and withdrawals via bank transfer. Details" +" {{1}}" +msgstr "Tokyo JPY Issuer aceita depósitos e saques via conta bancária. Detalhes {{1}}" + +#: src/jade/tabs/jpy.jade:103 +msgid "" +"To deposit, you’ll need to first deposit into your Tokyo JPY Issuer account " +"and then initiate a transfer into your Ripple account." +msgstr "Para depositar, você vai precisar primeiro depositar em sua conta Tokyo JPY Issuer para então solicitar uma transferência para sua conta Ripple." + +#: src/jade/tabs/jpy.jade:105 +msgid "" +"To withdraw to a bank account, you’ll first send money from your Ripple " +"account to your Tokyo JPY Issuer account. Follow instructions on the Tokyo " +"JPY Issuer site to send to your bank account." +msgstr "Para sacar para um banco, você deve enviar fundos da sua conta Ripple para sua conta Tokyo JPY Issuer. Então siga as instruções no site da Tokyo JPY Issuer para enviar para sua conta bancária." + +#: src/jade/tabs/kyc.jade:14 +msgid "Profile completion is only available to US residents." +msgstr "Completar o perfil está disponível apenas para residentes dos EUA." + +#: src/jade/tabs/kyc.jade:21 src/jade/tabs/trade.jade:285 +msgid "Verifying your information. Please wait..." +msgstr "Verificando suas informações. Por favor aguarde..." + +#: src/jade/tabs/kyc.jade:23 +msgid "Your identity information has been verified." +msgstr "Suas informações de identidade foram verificadas." + +#: src/jade/tabs/kyc.jade:25 +msgid "Your identity questions have been verified." +msgstr "As perguntas sobre sua identidade foram verificadas." + +#: src/jade/tabs/kyc.jade:27 +msgid "" +"Congratulations, you've verified your identity! You will now be redirected " +"back to the instant deposit page." +msgstr "Parabéns, você verificou sua identidade! Você será redirecionado à página de depósito instantâneo." + +#: src/jade/tabs/kyc.jade:29 +msgid "There was an error with your request. Please try again later." +msgstr "Houve um erro com o seu pedido. Por favor tente de novo mais tarde." + +#: src/jade/tabs/kyc.jade:31 +msgid "" +"There was an error with your request. Make sure your phone number is valid " +"and try again." +msgstr "Houve um erro. Certifique-se que o número do seu telefone é válido e tente do novo." + +#: src/jade/tabs/kyc.jade:33 +msgid "Please check your verification code and try again." +msgstr "Por favor cheque o seu código de verificação e tente de novo." + +#: src/jade/tabs/kyc.jade:35 +msgid "" +"There was an error while requesting the verification code. Please try again " +"later." +msgstr "Houve um erro ao solicitar o seu código de verificação. Por favor, tente mais tarde." + +#: src/jade/tabs/kyc.jade:37 +msgid "" +"We are unable to validate your identity information. Please check your " +"information and try again." +msgstr "Não foi possível verificar as informações da sua identidade. Por favor cheque-as novamente e tente de novo." + +#: src/jade/tabs/kyc.jade:39 +msgid "" +"We are unable to validate your identity questions. Please check your answers" +" and try again." +msgstr "Não foi possível validar as perguntas sobre sua identidade. Cheque suas respostas e tente de novo." + +#: src/jade/tabs/kyc.jade:41 +msgid "" +"Sorry, you've reached your maximum number of verification attempts. Please " +"try again in 24 hours." +msgstr "Desculpe, você atingiu o limite máximo de tentativas de verificação. Tente novamente em 24 horas." + +#: src/jade/tabs/kyc.jade:43 +msgid "" +"We can't verify your identity. Please contact us at support@ripple.com." +msgstr "Não é possível verificar sua identidade. Por favor contate-nos em support@ripple.com." + +#: src/jade/tabs/kyc.jade:48 +msgid "Profile Completion" +msgstr "Conclusão do Perfil" + +#: src/jade/tabs/kyc.jade:52 +msgid "STEP 1: IDENTITY INFORMATION" +msgstr "PASSO 1: INFORMAÇÕES DE IDENTIDADE" + +#: src/jade/tabs/kyc.jade:54 +msgid "STEP 2: IDENTITY QUESTIONS" +msgstr "PASSO 2: PERGUNTAS DE IDENTIDADE" + +#: src/jade/tabs/kyc.jade:56 +msgid "STEP 3: TWO-FACTOR AUTHENTICATION" +msgstr "PASSO3: AUTENTICAÇÃO EM DOIS PASSOS" + +#: src/jade/tabs/kyc.jade:63 +msgid "First Name" +msgstr "Primeiro nome" + +#: src/jade/tabs/kyc.jade:67 +msgid "Last Name" +msgstr "Último Sobrenome" + +#: src/jade/tabs/kyc.jade:71 +msgid "Street Address" +msgstr "Endereço" + +#: src/jade/tabs/kyc.jade:76 +msgid "City" +msgstr "Cidade" + +#: src/jade/tabs/kyc.jade:80 +msgid "State" +msgstr "Estado" + +#: src/jade/tabs/kyc.jade:84 +msgid "ZIP" +msgstr "Código Postal" + +#: src/jade/tabs/kyc.jade:88 +msgid "Date of Birth" +msgstr "Data de Nascimento" + +#: src/jade/tabs/kyc.jade:92 +msgid "Month{{1}}" +msgstr "Mês{{1}}" + +#: src/jade/tabs/kyc.jade:95 +msgid "Day{{1}}" +msgstr "Dia{{1}}" + +#: src/jade/tabs/kyc.jade:98 +msgid "Year{{1}}" +msgstr "Ano{{1}}" + +#: src/jade/tabs/kyc.jade:113 +msgid "Continue to identity questions" +msgstr "Continuar para as perguntas de identidade" + +#: src/jade/tabs/kyc.jade:114 src/jade/tabs/kyc.jade:129 +#: src/jade/tabs/kyc.jade:154 src/jade/tabs/kyc.jade:184 +#: src/jade/tabs/login.jade:17 +msgid "Verifying..." +msgstr "Verificando..." + +#: src/jade/tabs/kyc.jade:120 +msgid "{{ q.question }}{{1}}" +msgstr "{{ p.pergunta }}{{1}}" + +#: src/jade/tabs/kyc.jade:123 +msgid "{{ a.answer }}" +msgstr "{{ r.resposta }}" + +#: src/jade/tabs/kyc.jade:128 +msgid "Continue to two-factor authentication" +msgstr "Continuar para autenticação em dois passos" + +#: src/jade/tabs/kyc.jade:137 +msgid "Two-factor authentication provides extra security for your account." +msgstr "Autenticação em dois passos fornece segurança extra para sua conta." + +#: src/jade/tabs/kyc.jade:145 +msgid "" +"Ripple Trade has partnered with Authy to provide better security for your " +"account.By continuing, you agree to Authy's {{1:Terms of Service}}." +msgstr "Ripple Trade tem uma parceria com Authy para aumentar a segurança da sua conta. Ao continuar, você concorda com os {{1:Termos de uso}} do Authy." + +#: src/jade/tabs/kyc.jade:153 +msgid "Verify phone number" +msgstr "Verifique o seu número de telefone" + +#: src/jade/tabs/kyc.jade:164 +msgid "change" +msgstr "mudar" + +#: src/jade/tabs/kyc.jade:168 +msgid "" +"A verification code has been sent to +{{ currentCountryCode }} {{ " +"phoneNumber }}." +msgstr "Um código de verificação foi enviado para +{{ currentCountryCode }} {{ phoneNumber }}." + +#: src/jade/tabs/kyc.jade:172 src/jade/tabs/login/form.jade:16 +#: src/jade/tabs/security.jade:97 +msgid "Verification Code" +msgstr "Código de Verificação" + +#: src/jade/tabs/kyc.jade:183 +msgid "Submit code" +msgstr "Submeter código" + +#: src/jade/tabs/login.jade:4 src/jade/tabs/migrate.jade:4 +#: src/jade/tabs/recover.jade:3 src/jade/tabs/register.jade:5 +#: src/jade/tabs/register.jade:137 src/jade/tabs/register.jade:184 +msgid "Welcome to Ripple Trade" +msgstr "Bem-vindo ao Ripple Trade" + +#: src/jade/tabs/login.jade:6 src/jade/tabs/migrate.jade:6 +#: src/jade/tabs/recover.jade:5 src/jade/tabs/register.jade:7 +#: src/jade/tabs/register.jade:139 src/jade/tabs/register.jade:186 +msgid "Trade hundreds of assets, from XRP to crypto to gold to fiat." +msgstr "Negocie centenas de ativos, de XRP a criptomoedas, ouro e moedas. " + +#: src/jade/tabs/login.jade:15 src/jade/tabs/login.jade:31 +msgid "Log In" +msgstr "Entrar" + +#: src/jade/tabs/login.jade:18 +msgid "You have successfully verified your email address." +msgstr "Seu email foi verificado com sucesso." + +#: src/jade/tabs/login.jade:19 +msgid "" +"Email verification token is invalid. It has either expired or has been " +"resent. Please check your inbox for the most recent verification email." +msgstr "O código de verificação do email é inválido. Expirou ou foi reenviado. Por favor cheque sua caixa de entrada e procure o email de verificação mais recente." + +#: src/jade/tabs/login.jade:30 +msgid "Logging in" +msgstr "Entrando" + +#: src/jade/tabs/login.jade:34 +msgid "Verify" +msgstr "Verificar" + +#: src/jade/tabs/login.jade:36 src/jade/tabs/register.jade:114 +msgid "Already have a ripple.com/client account? {{1:Migrate}}" +msgstr "Já tem uma conta criada em ripple.com/client? {{1:Migre}}" + +#: src/jade/tabs/login.jade:41 src/jade/tabs/login.jade:42 +#: src/jade/tabs/recover.jade:9 +msgid "Account Recovery" +msgstr "Recuperação de Conta" + +#: src/jade/tabs/login.jade:49 +msgid "{{1:You're sending money to}}{{2}}." +msgstr "{{1:Você enviará dinheiro para}}{{2}}." + +#: src/jade/tabs/login.jade:53 +msgid "{{1:You're sending}}{{2}}{{3: to }}{{4}}." +msgstr "{{1:Você irá enviar}}{{2}}{{3: para }}{{4}}." + +#: src/jade/tabs/login.jade:63 +msgid "" +"{{1:You're connecting to the gateway}}{{2}}{{3:for{{1}}}}{{4:with a limit " +"of{{1}}}}." +msgstr "{{1:Você vai criar uma conexão com o gateway}}{{2}}{{3:para{{1}}}}{{4:com um limite de{{1}}}}." + +#: src/jade/tabs/login.jade:78 +msgid "{{1:You're adding}}{{2}}{{3:to your contacts list}}" +msgstr "{{1:Você vai adicionar}}{{2}}{{3:à sua lista de contatos}}" + +#: src/jade/tabs/login.jade:95 +msgid "{{1}} Log In" +msgstr "{{1}} Entrar" + +#: src/jade/tabs/login.jade:98 +msgid "You can confirm this transaction on the next page." +msgstr "Você pode confirmar esta transação na página seguinte." + +#: src/jade/tabs/login.jade:99 +msgid "New to {{productName}}? {{1:Create a wallet}}" +msgstr "Novo no {{productName}}? {{1:Crie uma carteira}}" + +#: src/jade/tabs/login/form.jade:12 src/jade/tabs/security.jade:91 +msgid "" +"Please enter the verification code from the SMS message sent to your device:" +msgstr "Por favor insira o código de verificação no SMS enviado ao seu dispositivo:" + +#: src/jade/tabs/login/form.jade:13 src/jade/tabs/security.jade:92 +msgid "" +"Please enter the verification code from the Authy app installed on your " +"device:" +msgstr "Por favor, insira o código de verificação do app Authy instalado no seu dispositivo:" + +#: src/jade/tabs/login/form.jade:23 +msgid "Resend" +msgstr "Re-enviar" + +#: src/jade/tabs/login/form.jade:24 src/jade/tabs/security.jade:105 +msgid "Send Via SMS" +msgstr "Enviar SMS" + +#: src/jade/tabs/login/form.jade:30 +msgid "Remember me on this device for 30 days" +msgstr "Lembrar-me nesse dispositivo por 30 dias" + +#: src/jade/tabs/migrate.jade:10 src/jade/tabs/register.jade:17 +#: src/jade/tabs/register.jade:142 src/jade/tabs/register.jade:189 +msgid "Migrate" +msgstr "Migrar" + +#: src/jade/tabs/migrate.jade:11 +msgid "" +"To begin migration, enter the name and passphrase used to encrypt your " +"ripple.com/client wallet below. After migration, you will no longer be able " +"to login on ripple.com/client." +msgstr "Para iniciar a migração, insira abaixo o nome e a senha usadas para encriptar a sua carteira de ripple.com/client. Após a migração, o login em ripple.com/client não estará mais disponível para essa conta." + +#: src/jade/tabs/migrate.jade:15 +msgid "Existing ripple.com/client Wallet name" +msgstr "Nome de carteira de ripple.com/client existente" + +#: src/jade/tabs/migrate.jade:18 +msgid "Passphrase" +msgstr "Senha" + +#: src/jade/tabs/migrate.jade:31 +msgid "Begin Migration" +msgstr "Iniciar Migração" + +#: src/jade/tabs/migrate.jade:32 +msgid "New to {{productName}}? {{1:Sign Up}}" +msgstr "Novo no {{productName}}? {{1:Crie uma conta}}" + +#: src/jade/tabs/migrate.jade:34 +msgid "Have a {{productName}} account? {{1:Log In}}" +msgstr "Já tem uma conta em {{productName}}? {{1:Entre}}" + +#: src/jade/tabs/mxn.jade:38 +msgid "Mexican Peso Deposit" +msgstr "Depósito de Pesos Mexicanos" + +#: src/jade/tabs/mxn.jade:42 +msgid "Bitso (~bitso) {{1}}{{2}}" +msgstr "Bitso (~bitso) {{1}}{{2}}" + +#: src/jade/tabs/mxn.jade:47 +msgid "All countries except the US" +msgstr "Todos os países, exceto os Estados Unidos da América" + +#: src/jade/tabs/mxn.jade:58 +msgid "" +"Ripple Trade has partnered with Bitso to provide easy access to MXN (Mexican" +" Peso). By continuing, you agree with Bitso’s terms of service. Following " +"this action will enable Bitso to hold MXN on your behalf." +msgstr "Ripple Trade e Bitso fizeram uma parceria para garantir fácil acesso ao MXN (Peso Mexicano). Ao continuar, você concorda com os termos de uso da Bitso. Essa ação permite que a Bitso custodie MXN para você." + +#: src/jade/tabs/mxn.jade:80 +msgid "TO FUND/REDEEM MEXICAN PESO:" +msgstr "PARA DEPOSITAR/SACAR PESO MEXICANO" + +#: src/jade/tabs/mxn.jade:82 +msgid "Register or login at {{1}}to initiate deposits and withdrawals." +msgstr "Registre-se ou faça login em {{1}}para iniciar depósitos ou saques." + +#: src/jade/tabs/mxn.jade:86 +msgid "" +"A valid, non-US, state-issued ID (passport, driver's license, etc)." +msgstr "Uma identidade oficial não emitida pelos EUA (passaporte, carteira de motorista, etc)" + +#: src/jade/tabs/mxn.jade:87 +msgid "" +"Proof of address (utility bill or other type of bill that has your address " +"on it). Verification is required for peso deposits or withdrawals." +msgstr "Comprovante de endereço (conta de luz ou outro tipo que contenha seu endereço). Verificação é necessária para fazer depósitos ou saques." + +#: src/jade/tabs/mxn.jade:89 +msgid "" +"To fund your Ripple account, see the below options. Once a balance is " +"deposited with Bitso, you can send it to your Ripple account using the Bitso" +" Dashboard." +msgstr "Para depositar em sua conta Ripple, veja as opções abaixo. Após o depósito na Bitso, você pode enviá-lo para sua conta Ripple usando o Bitso Dashboard." + +#: src/jade/tabs/mxn.jade:90 +msgid "" +"To withdraw from your Ripple account, click on the 'Redeem from Ripple' " +"button on the Bitso Dashboard." +msgstr "Para sacar de sua conta Ripple, clique no botão 'Sacar do Ripple' no Bitso Dashboard." + +#: src/jade/tabs/mxn.jade:92 src/jade/tabs/usd.jade:89 +msgid "DEPOSIT OPTIONS" +msgstr "OPÇÕES DE DEPÓSITO" + +#: src/jade/tabs/mxn.jade:94 +msgid "Bitso accepts deposits by the following methods:" +msgstr "Bitso aceita depósitos pelos seguintes métodos:" + +#: src/jade/tabs/mxn.jade:96 src/jade/tabs/mxn.jade:106 +msgid "Bank Wire" +msgstr "Transferência Bancária" + +#: src/jade/tabs/mxn.jade:97 src/jade/tabs/mxn.jade:107 +msgid "SPEI (Mexican instant inter-bank transfer)" +msgstr "SPEI (Transferência Interbancária Mexicana)" + +#: src/jade/tabs/mxn.jade:98 src/jade/tabs/mxn.jade:108 +msgid "Bitcoin" +msgstr "Bitcoin" + +#: src/jade/tabs/mxn.jade:99 +msgid "MXN Cash (at locations across Mexico)" +msgstr "MXN em dinheiro (em locais no México)" + +#: src/jade/tabs/mxn.jade:100 +msgid "Pademobile wallet" +msgstr "Carteira Pademobile" + +#: src/jade/tabs/mxn.jade:102 src/jade/tabs/usd.jade:99 +msgid "WITHDRAWAL OPTIONS" +msgstr "OPÇÕES DE SAQUE" + +#: src/jade/tabs/mxn.jade:104 +msgid "Bitso offers withdrawals via the following methods:" +msgstr "Bitso aceita saques pelos seguintes métodos:" + +#: src/jade/tabs/recover.jade:11 +msgid "" +"You can only recover your Ripple Trade account with a secret key. You will " +"recover the account's Ripple name, contacts and other information." +msgstr "Você só pode recuperar sua conta Ripple Trade com uma Chave Secreta. Você vai recuperar nome Ripple da conta, contatos e outras informações." + +#: src/jade/tabs/recover.jade:13 src/jade/tabs/recover.jade:33 +msgid "Ripple Name" +msgstr "Nome Ripple" + +#: src/jade/tabs/recover.jade:18 +msgid "Secret Key" +msgstr "Chave Secreta" + +#: src/jade/tabs/recover.jade:21 +msgid "Unable to recover account." +msgstr "Impossível recuperar conta." + +#: src/jade/tabs/recover.jade:27 src/jade/tabs/register.jade:95 +msgid "Recover Account" +msgstr "Recuperar conta" + +#: src/jade/tabs/recover.jade:29 src/jade/tabs/recover.jade:56 +msgid "Set Password" +msgstr "Criar Senha" + +#: src/jade/tabs/recover.jade:31 +msgid "" +"Your account was sucessfully recovered. Please re-encrypt your account with " +"a new password." +msgstr "Sua conta foi recuperada com sucesso . Por favor, re-criptografar sua conta com uma nova senha." + +#: src/jade/tabs/recover.jade:41 src/jade/tabs/register.jade:62 +#: src/jade/tabs/security.jade:132 +msgid "" +"Your password is weak. It does not contain numbers and symbols or it is too " +"short." +msgstr "Sua senha é fraca. Ele não contém números e símbolos ou é muito curta." + +#: src/jade/tabs/recover.jade:43 src/jade/tabs/register.jade:65 +#: src/jade/tabs/security.jade:134 +msgid "" +"Your Ripple name and password cannot match. Please create a new password." +msgstr "Seu nome Ripple e sua senha não podem ser iguais. Por favor crie uma nova senha." + +#: src/jade/tabs/recover.jade:45 src/jade/tabs/register.jade:67 +#: src/jade/tabs/security.jade:136 +msgid "Confirm password" +msgstr "Confirme a senha" + +#: src/jade/tabs/recover.jade:48 src/jade/tabs/register.jade:71 +#: src/jade/tabs/security.jade:139 +msgid "Passwords do not match" +msgstr "Senhas não correspondem" + +#: src/jade/tabs/recover.jade:50 +msgid "Unable to change your account password." +msgstr "Impossível mudar a Senha da sua conta." + +#: src/jade/tabs/recover.jade:55 +msgid "Updating..." +msgstr "Atualizando..." + +#: src/jade/tabs/recover.jade:57 +msgid "Remember your password? {{1:Log In}}" +msgstr "Lembrar sua senha? {{1:Login}}" + +#: src/jade/tabs/register.jade:13 src/jade/tabs/register.jade:109 +#: src/jade/tabs/register.jade:141 src/jade/tabs/register.jade:188 +msgid "Sign Up" +msgstr "Criar Conta" + +#: src/jade/tabs/register.jade:19 src/jade/tabs/register.jade:21 +#: src/jade/tabs/register.jade:23 src/jade/tabs/register.jade:146 +#: src/jade/tabs/register.jade:148 src/jade/tabs/register.jade:191 +#: src/jade/tabs/register.jade:193 src/jade/tabs/register.jade:195 +msgid "Step {{1}}" +msgstr "Passo {{1}}" + +#: src/jade/tabs/register.jade:26 +msgid "Create Ripple name" +msgstr "Crie um Nome Ripple" + +#: src/jade/tabs/register.jade:27 +msgid "" +"Please choose a Ripple name below. You will use this Ripple name to login to" +" Ripple Trade, so remember it! Ripple names are unique and public, like your" +" current Ripple address. {{1}}" +msgstr "Por favor escolha um nome Ripple abaixo. Você vai usar este nome Ripple para fazer login no Ripple Trade, então guarde-o! Nomes Ripple são únicos e públicos, como o seu endereço Ripple atual. {{1}}" + +#: src/jade/tabs/register.jade:28 +msgid "Learn More" +msgstr "Saber Mais" + +#: src/jade/tabs/register.jade:41 +msgid "Reserved for {{usernameReservedFor}}" +msgstr "Reservado para {{usernameReservedFor}}" + +#: src/jade/tabs/register.jade:43 +msgid "" +"This name belongs to a high-traffic website and has been reserved to prevent" +" phishing." +msgstr "Este nome pertence a um website de alto tráfego e foi reservado para prevenir phishing." + +#: src/jade/tabs/register.jade:49 +msgid "You can only use the following characters: a-z, 0-9 and hyphens (-)" +msgstr "Você pode usar somente os seguintes caracteres: a-z, 0-9 and hyphens (-)" + +#: src/jade/tabs/register.jade:55 +msgid "Cannot use hyphens in a row (--)" +msgstr "Não é permitido usar hífens em sequência (--)" + +#: src/jade/tabs/register.jade:80 +msgid "Email address is invalid" +msgstr "Endereço de email inválido" + +#: src/jade/tabs/register.jade:82 src/jade/tabs/security.jade:151 +msgid "Secret key" +msgstr "Chave Secreta" + +#: src/jade/tabs/register.jade:83 src/jade/tabs/send.jade:43 +#: src/jade/tabs/trade.jade:441 +msgid "hide" +msgstr "ocultar" + +#: src/jade/tabs/register.jade:88 +msgid "Secret Account Key is invalid" +msgstr "Chave Secreta inválida" + +#: src/jade/tabs/register.jade:90 +msgid "" +"The account ~{{1}}{{2}} has already been created using this secret key." +msgstr "A conta ~{{1}}{{2}} já foi criada usando essa chave secreta." + +#: src/jade/tabs/register.jade:98 +msgid "I agree to the {{productName}} {{1:Terms of Use}}" +msgstr "Eu concordo com os {{1:Termos de Uso}} de {{productName}} " + +#: src/jade/tabs/register.jade:101 +msgid "" +"Please see our {{1}} to see how we collect, use and share information about " +"you" +msgstr "Por favor, veja a nossa {{1}} para ver como podemos coletar, usar e compartilhar informações sobre você" + +#: src/jade/tabs/register.jade:110 +msgid "Migrate Account" +msgstr "Migrar Conta" + +#: src/jade/tabs/register.jade:111 +msgid "Need to use your secret key? {{1}}" +msgstr "Precisa usar sua Chave Secreta? {{1}}" + +#: src/jade/tabs/register.jade:113 +msgid "Use key" +msgstr "Usar chave" + +#: src/jade/tabs/register.jade:121 +msgid "An error occurred during registration. Please try again later." +msgstr "Houve um erro durante o registro. Por favor tente novamente mais tarde." + +#: src/jade/tabs/register.jade:122 +msgid "The reported error was: {{1}}" +msgstr "O erro informado foi: {{1}}" + +#: src/jade/tabs/register.jade:131 +msgid "" +"There is already a wallet using this username, please choose a different " +"username and try again." +msgstr "Já existe uma carteira de usar este nome de usuário, por favor, escolha um nome de usuário diferente e tente novamente." + +#: src/jade/tabs/register.jade:150 +msgid "" +"By proceeding, you understand that Ripple Trade does not provide a password " +"or secret key recovery mechanism. If you forget your Ripple name/password " +"and secret key, you will be unable to access this Ripple account." +msgstr "Ao prosseguir, você entende que Ripple Trade não fornece uma senha nem um mecanismo de recuperação de chave secreta. Se você esquecer seu nome Ripple / senha e chave secreta, você não será capaz de acessar essa conta Ripple." + +#: src/jade/tabs/register.jade:155 +msgid "" +"You are now migrating your account- meaning you'll no longer be able to " +"access your account from ripple.com/client. You will retain all of your " +"balances, contacts, and account history. Your account will use the same " +"secret key as before. If you have already saved your secret key, please " +"continue your migration." +msgstr "Você está migrando sua conta, ou seja, você não será mais capaz de acessar sua conta em ripple.com/client. Você não vai perder os seus saldos, contatos, e histórico da conta. Sua conta vai usar a mesma chave secreta de antes. Se você já salvou sua chave secreta, por favor, continue a sua migração." + +#: src/jade/tabs/register.jade:162 +msgid "" +"The secret key unlocks access to all your account funds in the event you " +"lose your Ripple name or password. Please write it down and store it " +"somewhere private and safe. {{1:Read more}} about keys and wallet safety." +msgstr "A chave secreta desbloqueia o acesso a todos os fundos do conta no caso de você perder o seu nome Ripple ou senha. Por favor anote-a e guarde-a em algum lugar privado e seguro. {{1:Leia mais}} sobre chaves e segurança da carteira." + +#: src/jade/tabs/register.jade:167 +msgid "" +"If you have not saved your secret key, please write it down and store it " +"somewhere private and safe. In the event you lose your Ripple name or " +"password, you can use this secret key to recover your funds." +msgstr "Se você não salvou sua chave secreta, por favor anote-a e guarde-a em algum lugar privado e seguro. No caso de você perder o seu nome Ripple ou senha, você pode usar essa chave secreta para recuperar seus fundos." + +#: src/jade/tabs/register.jade:176 +msgid "Show secret key" +msgstr "Mostrar Chave Secreta" + +#: src/jade/tabs/register.jade:177 +msgid "Hide secret key" +msgstr "Ocultar Chave Secreta" + +#: src/jade/tabs/register.jade:180 +msgid "Continue to email verification" +msgstr "Continuar para verificação de email" + +#: src/jade/tabs/register.jade:197 +msgid "" +"We’ve sent an email to {{1}}. To complete registration, click the link in " +"the email." +msgstr "Enviamos um e-mail para {{1}}. Para completar o registro, clique no link do e-mail." + +#: src/jade/tabs/register.jade:200 +msgid "Email token has been resent." +msgstr "O token foi re-enviado por email" + +#: src/jade/tabs/register.jade:203 +msgid "Email Address:" +msgstr "Endereço de email" + +#: src/jade/tabs/register.jade:210 +msgid "Re-send Email" +msgstr "Reenviar Email" + +#: src/jade/tabs/security.jade:7 +msgid "Active Session Timeout" +msgstr "Sessão Ativa Expirou" + +#: src/jade/tabs/security.jade:8 +msgid "" +"To view or edit your security settings, you must currently have an active " +"session." +msgstr "Para visualizar ou editar as configurações de segurança, você deve ter uma sessão ativa." + +#: src/jade/tabs/security.jade:16 +msgid "Restore Session" +msgstr "Restaurar Sessão" + +#: src/jade/tabs/security.jade:25 +msgid "Your Ripple password has been changed, please login again" +msgstr "Sua senha Ripple foi alterada, por favor faça novo login." + +#: src/jade/tabs/security.jade:27 +msgid "Couldn't change your Ripple password, please try again later." +msgstr "Não foi possível mudar a sua senha Ripple, tente novamente mais tarde." + +#: src/jade/tabs/security.jade:30 +msgid "Changing your Ripple password..." +msgstr "Mudando sua Senha Ripple..." + +#: src/jade/tabs/security.jade:31 +msgid "Your Ripple password has been changed successfully." +msgstr "Sua senha Ripple foi alterada com sucesso." + +#: src/jade/tabs/security.jade:32 +msgid "Unable to load Two-factor authentication settings." +msgstr "Não é possível carregar as configurações de autenticação em dois passos." + +#: src/jade/tabs/security.jade:33 +msgid "Error saving Two-factor authentication settings." +msgstr "Erro ao salvar as configurações de autenticação em dois passos." + +#: src/jade/tabs/security.jade:34 +msgid "The verification code is invalid." +msgstr "O código de verificação é inválido." + +#: src/jade/tabs/security.jade:36 +msgid "Two-factor authentication has been successfully enabled." +msgstr "Autenticação em dois passos ativada com sucesso." + +#: src/jade/tabs/security.jade:37 +msgid "Two-factor authentication has been successfully disabled." +msgstr "Autenticação em dois passos desativada com sucesso." + +#: src/jade/tabs/security.jade:38 +msgid "Password protection has been successfully enabled." +msgstr "A proteção por senha foi ativada com sucesso." + +#: src/jade/tabs/security.jade:39 +msgid "Password protection has been successfully disabled." +msgstr "A proteção por senha foi desativada com sucesso." + +#: src/jade/tabs/security.jade:45 +msgid "Security settings" +msgstr "Configurações de segurança" + +#: src/jade/tabs/security.jade:51 +msgid "Loading Two-factor authentication settings..." +msgstr "Carregando configurações da autenticação em dois passos..." + +#: src/jade/tabs/security.jade:55 +msgid "Enabled" +msgstr "Ativada" + +#: src/jade/tabs/security.jade:56 +msgid "Disabled" +msgstr "Desativada" + +#: src/jade/tabs/security.jade:58 +msgid "disable" +msgstr "desativar" + +#: src/jade/tabs/security.jade:60 +msgid "enable" +msgstr "ativar" + +#: src/jade/tabs/security.jade:66 +msgid "" +"Authy is providing two-factor authentication for Ripple Trade. To enable " +"two-factor authentication, you must share some information with Authy." +msgstr "Authy está fornecendo autenticação em dois passos para o Ripple Trade. Para habilitar a autenticação em dois passos, você deve compartilhar algumas informações com Authy." + +#: src/jade/tabs/security.jade:69 +msgid "- Your email address:" +msgstr "- Seu email:" + +#: src/jade/tabs/security.jade:72 +msgid "- Your phone number:" +msgstr "- O número do seu telefone:" + +#: src/jade/tabs/security.jade:74 +msgid "By proceeding, you agree to the Authy {{1: terms of service.}}" +msgstr "Ao continuar, você concorda com os {{1: termos de uso}} do Authy." + +#: src/jade/tabs/security.jade:78 +msgid "Share" +msgstr "Compartilhar" + +#: src/jade/tabs/security.jade:84 +msgid "Saving settings..." +msgstr "Salvando configurações..." + +#: src/jade/tabs/security.jade:85 +msgid "Disabling Two-factor authentication..." +msgstr "Desativando autenticação em dois passos..." + +#: src/jade/tabs/security.jade:86 +msgid "Enabling Two-factor authentication..." +msgstr "Ativando autenticação em dois passos..." + +#: src/jade/tabs/security.jade:104 +msgid "Resend Code" +msgstr "Re-enviar Código" + +#: src/jade/tabs/security.jade:110 +msgid "Enable" +msgstr "Ativar" + +#: src/jade/tabs/security.jade:114 +msgid "Ripple password" +msgstr "Senha Ripple" + +#: src/jade/tabs/security.jade:129 +msgid "New password" +msgstr "Nova senha" + +#: src/jade/tabs/security.jade:153 +msgid "" +"Your secret key unlocks access to your account funds. Please write it down " +"and store it somewhere private and safe. In the event you lose your Ripple " +"name or password, you can use this secret key to recover your funds." +msgstr "Sua Chave Secreta dá acesso aos fundos da sua conta. Por favor anote-a e guarde-a em um lugar privado e seguro. No caso de você perder o seu nome Ripple ou senha, você pode usar essa Chave Secreta para recuperar seus fundos." + +#: src/jade/tabs/security.jade:165 +msgid "Password protection for transactions" +msgstr "Solicitar senha para transações" + +#: src/jade/tabs/security.jade:168 +msgid "" +"If you turn off password requests, you’ll still need to enter your password " +"after each page refresh." +msgstr "Se você desativar as solicitações de senha, você ainda precisará digitar sua senha após cada atualização da página." + +#: src/jade/tabs/security.jade:176 +msgid "Yes" +msgstr "Sim" + +#: src/jade/tabs/security.jade:177 +msgid "No" +msgstr "Não" + +#: src/jade/tabs/security.jade:192 +msgid "Delete Ripple Trade account" +msgstr "Apagar a conta Ripple Trade" + +#: src/jade/tabs/security.jade:194 +msgid "" +"This deletes your Ripple Trade account. You will no longer be able to login " +"to Ripple Trade and your account data will be deleted. However, you can " +"still access your funds using your secret key." +msgstr "Isso apaga a sua conta Ripple Trade. Você não será mais capaz de entrar no Ripple Trade e sua conta será apagada. Porém, você ainda poderá acessar os seus fundos usando sua chave secreta." + +#: src/jade/tabs/send.jade:12 +msgid "You have to be funded before you can send money" +msgstr "Você precisa ter fundos antes de enviar dinheiro" + +#: src/jade/tabs/send.jade:25 +msgid "Recipient" +msgstr "Destinatário" + +#: src/jade/tabs/send.jade:30 +msgid "Please enter a recipient." +msgstr "Por favor insira um destinatário." + +#: src/jade/tabs/send.jade:32 +msgid "" +"Recipient should be a Ripple name, a contact, or Ripple/Bitcoin address." +msgstr "Destinatário deve ser um nome Ripple, um contato ou endereço Ripple / Bitcoin." + +#: src/jade/tabs/send.jade:34 +msgid "This email address is not Ripple-enabled." +msgstr "Este endereço de email não está Ripple-ativado." + +#: src/jade/tabs/send.jade:38 +msgid "Show destination tag" +msgstr "Mostrar tag do destinatário" + +#: src/jade/tabs/send.jade:47 +msgid "Destination cannot be blank." +msgstr "Destinatário não pode estar em branco" + +#: src/jade/tabs/send.jade:48 +msgid "" +"Recipient requires a destination tag to be specified for the transaction. If" +" you don't know the destination tag, please contact them before doing a " +"transaction." +msgstr "A conta de destino exige que a tag do destinatário seja especificada para esta transação. Se você não sabe a tag do destinatário, por favor contate-o antes de fazer a transação." + +#: src/jade/tabs/send.jade:53 +msgid "Source tag" +msgstr "Tag do remetente" + +#: src/jade/tabs/send.jade:56 +msgid "Invalid source tag" +msgstr "Tag do remetente inválida" + +#: src/jade/tabs/send.jade:59 +msgid "Invoice ID" +msgstr "Invoice ID" + +#: src/jade/tabs/send.jade:62 +msgid "Invoice ID must not be more than 64 characters long." +msgstr "Invoice ID não pode ter mais de 64 caracteres." + +#: src/jade/tabs/send.jade:77 +msgid "Recipient will receive" +msgstr "Destinatário vai receber" + +#: src/jade/tabs/send.jade:88 +msgid "{{send.recipient | rpcontactname}} can't receive this currency." +msgstr "{{send.recipient | rpcontactname}} não pode receber esta moeda." + +#: src/jade/tabs/send.jade:92 src/jade/tabs/trust.jade:102 +msgid "Amount must be greater than zero." +msgstr "A quantia deve ser maior do que zero" + +#: src/jade/tabs/send.jade:93 +msgid "" +"You are either trying to send too little or too much XRP.Minimum amount is " +"0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "Você está tentando converter muito pouco ou muito XRP. A quantia mínima é 0.000001 XRP e a máxima é 100 bilhões XRP." + +#: src/jade/tabs/send.jade:97 +msgid "" +"Recipient does not allow XRP payments. Are you sure you want to send XRP " +"anyway?" +msgstr "O destinatário não permite pagamentos em XRP. Deseja enviar XRP mesmo assim?" + +#: src/jade/tabs/send.jade:99 +msgid "" +"{{send.recipient | rpcontactname}}trusts you for {{send.trust_limit | " +"rpamount}} {{send.trust_limit | rpcurrency}}." +msgstr "{{send.recipient | rpcontactname}}confia em você até {{send.trust_limit | rpamount}} {{send.trust_limit | rpcurrency}}." + +#: src/jade/tabs/send.jade:103 +msgid "Send XRP" +msgstr "Enviar XRP" + +#: src/jade/tabs/send.jade:107 +msgid "" +"Destination account is unfunded; send at least {{send.xrp_deficiency | " +"rpamount}} XRP to fund it.{{1}}" +msgstr "A conta de destino não foi ativada ainda; envie pelo menos {{send.xrp_deficiency | rpamount}} XRP para ativá-la.{{1}}" + +#: src/jade/tabs/send.jade:114 +msgid "Checking" +msgstr "Checando" + +#: src/jade/tabs/send.jade:117 +msgid "Analyzing address" +msgstr "Analisando endereço" + +#: src/jade/tabs/send.jade:120 +msgid "Scanning accepted currencies" +msgstr "Verificando moedas aceitas" + +#: src/jade/tabs/send.jade:123 +msgid "Requesting quote" +msgstr "Solicitando cotação" + +#: src/jade/tabs/send.jade:126 +msgid "Calculating paths" +msgstr "Calculando caminho" + +#: src/jade/tabs/send.jade:129 +msgid "Calculating alternatives" +msgstr "Calculando alternativas" + +#: src/jade/tabs/send.jade:130 +msgid "" +"You cannot send {{send.amount}} {{send.currency}} to {{send.recipient}}. " +"Either your account has insufficient funds, or {{send.recipient}} doesn't " +"accept {{send.currency}}." +msgstr "Você não pode enviar {{send.amount}} {{send.currency}} para {{send.recipient}}. Ou sua conta não tem fundos suficientes, ou {{send.recipient}} não aceita {{send.currency}}." + +#: src/jade/tabs/send.jade:134 +msgid "" +"You cannot send {{send.amount}} {{send.currency}} to{{send.recipient}}. Your" +" account has insufficient funds." +msgstr "Você não pode enviar {{send.amount}} {{send.currency}} para{{send.recipient}}. Sua conta não tem fundos suficientes." + +#: src/jade/tabs/send.jade:137 +msgid "There are no valid currency choices for this destination." +msgstr "Não há escolhas válidas para esse destinatário." + +#: src/jade/tabs/send.jade:139 +msgid "Error while retrieving quote for outbound payment. {{1}}" +msgstr "Erro ao obter cotação para pagamento de saída. {{1}}" + +#: src/jade/tabs/send.jade:148 +msgid "You can send" +msgstr "Você pode enviar" + +#: src/jade/tabs/send.jade:150 +msgid "Or you can send" +msgstr "Ou você pode enviar" + +#: src/jade/tabs/send.jade:164 +msgid "Send {{ alt.amount | rpcurrency }} {{1}}" +msgstr "Enviar {{ alt.amount | rpcurrency }} {{1}}" + +#: src/jade/tabs/send.jade:181 +msgid "Ripple is calculating a path for your payment." +msgstr "Ripple está calculando um caminho para o seu pagamento." + +#: src/jade/tabs/send.jade:186 +msgid "You are sending {{1}} to" +msgstr "Você vai enviar {{1}} para" + +#: src/jade/tabs/send.jade:194 +msgid "Destination tag: {{send.dt}}" +msgstr "Tag do destinatário: {{send.dt}}" + +#: src/jade/tabs/send.jade:195 +msgid "They will receive" +msgstr "O destinatário receberá" + +#: src/jade/tabs/send.jade:198 +msgid "You will pay at most" +msgstr "Você vai pagar no máximo" + +#: src/jade/tabs/send.jade:204 +msgid "Are you sure?" +msgstr "Tem certeza?" + +#: src/jade/tabs/send.jade:210 +msgid "Password required to unlock wallet" +msgstr "A senha é necessária para destravar a carteira" + +#: src/jade/tabs/send.jade:234 src/jade/tabs/send.jade:266 +msgid "Contact saved!" +msgstr "Contato salvo!" + +#: src/jade/tabs/send.jade:236 src/jade/tabs/send.jade:268 +msgid "Add this address to contacts" +msgstr "Adicionar este endereço aos contatos" + +#: src/jade/tabs/send.jade:242 src/jade/tabs/send.jade:274 +msgid "Name this user" +msgstr "Nomear este usuário" + +#: src/jade/tabs/send.jade:246 src/jade/tabs/send.jade:278 +msgid "This contact already exists, please choose another name." +msgstr "Este contato já existe, por favor escolha outro nome." + +#: src/jade/tabs/send.jade:250 src/jade/tabs/send.jade:283 +#: src/jade/tabs/trust.jade:233 +msgid "Saving..." +msgstr "Salvando..." + +#: src/jade/tabs/send.jade:255 src/jade/tabs/send.jade:289 +msgid "Send another payment" +msgstr "Enviar outro pagamento" + +#: src/jade/tabs/settings/navbar.jade:2 +msgid "Security" +msgstr "Segurança" + +#: src/jade/tabs/settingstrade.jade:12 +msgid "Trade settings" +msgstr "Configurações de negociação" + +#: src/jade/tabs/settingstrade.jade:14 +msgid "Trade currency pairs" +msgstr "Pares de moeda" + +#: src/jade/tabs/trade.jade:12 src/jade/tabs/trade.jade:451 +msgid "Loading Order Book" +msgstr "Carregando negociações" + +#: src/jade/tabs/trade.jade:31 src/jade/tabs/widgets/markets.jade:24 +msgid "flip" +msgstr "virar" + +#: src/jade/tabs/trade.jade:34 +msgid "add pair" +msgstr "adicionar par" + +#: src/jade/tabs/trade.jade:37 +msgid "edit pairs" +msgstr "editar pares" + +#: src/jade/tabs/trade.jade:41 +msgid "Base Currency" +msgstr "Moeda Base" + +#: src/jade/tabs/trade.jade:44 +msgid "Base Gateway" +msgstr "Gateway Base" + +#: src/jade/tabs/trade.jade:49 +msgid "Counter Currency" +msgstr "Moeda Par" + +#: src/jade/tabs/trade.jade:52 +msgid "Counter Gateway" +msgstr "Gateway Par" + +#: src/jade/tabs/trade.jade:57 +msgid "Add" +msgstr "Adicionar" + +#: src/jade/tabs/trade.jade:60 +msgid "Base currency issuer ({{order.first_currency | rpcurrency}})" +msgstr "Emissor da moeda base ({{order.first_currency | rpcurrency}})" + +#: src/jade/tabs/trade.jade:63 +msgid "Ripple name or contact" +msgstr "Nome Ripple ou contato" + +#: src/jade/tabs/trade.jade:65 +msgid "Not a valid Ripple address or contact" +msgstr "Não é um contato ou endereço ripple válido" + +#: src/jade/tabs/trade.jade:70 +msgid "Counter currency issuer ({{order.second_currency | rpcurrency}})" +msgstr "Emissor da moeda par ({{order.second_currency | rpcurrency}})" + +#: src/jade/tabs/trade.jade:75 +msgid "Not a valid Ripple name or address" +msgstr "Não é um Nome Ripple ou endereço válido" + +#: src/jade/tabs/trade.jade:79 +msgid "" +"To show an orderbook, choose from the dropdown above or click \"Add custom " +"pair\"." +msgstr "Para mostrar negociações, escolha do menu dropdown acima ou clique \"Adicionar par\"" + +#: src/jade/tabs/trade.jade:86 +msgid "Bid" +msgstr "Compra" + +#: src/jade/tabs/trade.jade:91 +msgid "Ask" +msgstr "Venda" + +#: src/jade/tabs/trade.jade:96 +msgid "Spread" +msgstr "Spread" + +#: src/jade/tabs/trade.jade:101 +msgid "Last price" +msgstr "Último preço" + +#: src/jade/tabs/trade.jade:108 +msgid "You have to be funded before you can trade" +msgstr "Você precisa ter fundos para poder negociar" + +#: src/jade/tabs/trade.jade:115 +msgid "Buy {{1}} {{order.first_currency | rpcurrency}}" +msgstr "Comprar {{1}} {{order.first_currency | rpcurrency}}" + +#: src/jade/tabs/trade.jade:118 +msgid "Sell {{1}} {{order.first_currency | rpcurrency}}" +msgstr "Vender {{1}} {{order.first_currency | rpcurrency}}" + +#: src/jade/tabs/trade.jade:121 src/jade/tabs/trade.jade:130 +msgid "{{1}} available" +msgstr "{{1}} disponível" + +#: src/jade/tabs/trade.jade:144 +msgid "Amount To Buy" +msgstr "Quantia a ser Comprada" + +#: src/jade/tabs/trade.jade:145 +msgid "Amount To Sell" +msgstr "Quantia a ser Vendida" + +#: src/jade/tabs/trade.jade:152 src/jade/tabs/trade.jade:167 +#: src/jade/tabs/trade.jade:182 +msgid "Required" +msgstr "Obrigatório" + +#: src/jade/tabs/trade.jade:154 src/jade/tabs/trade.jade:169 +#: src/jade/tabs/trade.jade:184 +msgid "Must be greater than zero" +msgstr "Precisa ser maior do que zero" + +#: src/jade/tabs/trade.jade:156 src/jade/tabs/trade.jade:171 +#: src/jade/tabs/trade.jade:186 +msgid "" +"Minimum amount of XRP you can send is a drop (0.000001) and the maximum is " +"100 billion XRPs." +msgstr "O mínimo é um drop (0.000001) e o máximo é 100 bilhões XRP." + +#: src/jade/tabs/trade.jade:160 +msgid "Price of Each" +msgstr "Preço de Cada" + +#: src/jade/tabs/trade.jade:175 +msgid "Order Value (max)" +msgstr "Valor da ordem (máx)" + +#: src/jade/tabs/trade.jade:192 +msgid "You are wanting to buy {{1}} for {{2}} ({{3}} per {{4}})" +msgstr "Você quer comprar {{1}} por {{2}} ({{3}} por cada {{4}})" + +#: src/jade/tabs/trade.jade:201 +msgid "You are wanting to sell {{1}} for {{2}} ({{3}} per {{4}})" +msgstr "Você quer vender {{1}} por {{2}} ({{3}} por cada {{4}})" + +#: src/jade/tabs/trade.jade:213 +msgid "Buy" +msgstr "Comprar" + +#: src/jade/tabs/trade.jade:214 +msgid "Sell" +msgstr "Vender" + +#: src/jade/tabs/trade.jade:220 +msgid "You do not have sufficient funds to create an order." +msgstr "Você não tem fundos suficientes para criar uma ordem" + +#: src/jade/tabs/trade.jade:225 +msgid "" +"You are about to create an order to {{1: buy}} {{2: " +"sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}{{8}}" +msgstr "Você irá criar uma ordem para {{1: comprar}} {{2: vender}}{{3}}{{4:por}}{{5}}{{6}}{{7:Tem certeza?}}{{8}}" + +#: src/jade/tabs/trade.jade:242 +msgid "CAUTION: Your order is far off from the current market price." +msgstr "ATENÇÃO: Sua ordem está muito fora do preço de mercado atual." + +#: src/jade/tabs/trade.jade:246 src/jade/tabs/trade.jade:407 +msgid "« Back" +msgstr "« Voltar" + +#: src/jade/tabs/trade.jade:255 +msgid "Sending order to Ripple network..." +msgstr "Enviando ordem para a rede ripple..." + +#: src/jade/tabs/trade.jade:261 +msgid "Your order has been submitted." +msgstr "Sua ordem foi submetida." + +#: src/jade/tabs/trade.jade:263 +msgid "Your order is now active." +msgstr "Sua ordem está ativa agora." + +#: src/jade/tabs/trade.jade:265 +msgid "Your order has been filled." +msgstr "Esta ordem foi realizada." + +#: src/jade/tabs/trade.jade:267 +msgid "" +"Your order has been partially filled. The remaining amount is now active." +msgstr "Sua ordem foi executada parcialmente. A quantia restante ainda está ativa." + +#: src/jade/tabs/trade.jade:276 +msgid "Submit another order" +msgstr "Submeter outra ordem" + +#: src/jade/tabs/trade.jade:278 +msgid "My Orders{{1}}{{2}}" +msgstr "Minhas Ordens{{1}}{{2}}" + +#: src/jade/tabs/trade.jade:287 +msgid "Your order has been modified." +msgstr "Sua ordem foi modificada." + +#: src/jade/tabs/trade.jade:289 +msgid "Your order #{{ cancelOrder.seq }} has been cancelled." +msgstr "Sua ordem #{{ cancelOrder.seq }} foi cancelada." + +#: src/jade/tabs/trade.jade:291 +msgid "" +"Your order could not be modified and no longer exists. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "Sua ordem não pôde ser modificada e não existe mais. Erro: {{order[editOrder.type].engine_result_message}}" + +#: src/jade/tabs/trade.jade:293 +msgid "Unable to cancel order as it no longer exists." +msgstr "Impossível cancelar ordem pois ela não existe mais." + +#: src/jade/tabs/trade.jade:295 +msgid "Modifying your order (Placing new order) ..." +msgstr "Modificando a sua ordem (criando nova ordem) ..." + +#: src/jade/tabs/trade.jade:299 +msgid "Current pair only" +msgstr "Apenas do par atual" + +#: src/jade/tabs/trade.jade:313 src/jade/tabs/widgets/orders.jade:24 +msgid "reverse" +msgstr "inverter" + +#: src/jade/tabs/trade.jade:322 src/jade/tabs/widgets/orders.jade:33 +msgid "QTY{{1}}" +msgstr "QTD{{1}}" + +#: src/jade/tabs/trade.jade:324 src/jade/tabs/widgets/orders.jade:35 +msgid "Base{{1}}" +msgstr "Base{{1}}" + +#: src/jade/tabs/trade.jade:326 src/jade/tabs/widgets/orders.jade:37 +msgid "Counter{{1}}" +msgstr "Par{{1}}" + +#: src/jade/tabs/trade.jade:328 src/jade/tabs/widgets/orders.jade:39 +msgid "Limit{{1}}" +msgstr "Limite{{1}}" + +#: src/jade/tabs/trade.jade:334 +msgid "Action" +msgstr "Ação" + +#: src/jade/tabs/trade.jade:360 src/jade/tabs/trade.jade:424 +msgid "TRADE CONFIRMATION" +msgstr "CONFIRMAÇÃO DA NEGOCIAÇÃO" + +#: src/jade/tabs/trade.jade:362 +msgid "{{1:Please confirm that you wish to cancel order #{{entry.seq}}}}" +msgstr "{{1:Por favor confirm que você que cancelar a ordem #{{entry.seq}}}}" + +#: src/jade/tabs/trade.jade:364 +msgid "" +"{{1}} div span.modal-order-type(l10n-inc) FILLED: span filled data div" +" span.modal-order-type(l10n-inc) REMAIN: span remain data div span" +".modal-order-type(l10n-inc) PLACED: span time data" +msgstr "{{1}} div span.modal-order-type(l10n-inc) FILLED: span filled data div span.modal-order-type(l10n-inc) REMAIN: span remain data div span.modal-order-type(l10n-inc) PLACED: span time data" + +#: src/jade/tabs/trade.jade:371 +msgid "with" +msgstr "com" + +#: src/jade/tabs/trade.jade:372 +msgid "for" +msgstr "para" + +#: src/jade/tabs/trade.jade:376 +msgid "at" +msgstr "em" + +#: src/jade/tabs/trade.jade:389 +msgid "Cancel order" +msgstr "Cancelar ordem" + +#: src/jade/tabs/trade.jade:390 src/jade/tabs/trade.jade:431 +msgid "back" +msgstr "Voltar" + +#: src/jade/tabs/trade.jade:407 +msgid "" +"CAUTION: Your new order is far off from the current market price.
Do " +"you still want to replace your order ?" +msgstr "ATENÇÃO: Sua ordem está muito fora do preço de mercado atual.
Você ainda quer substituir sua ordem ?" + +#: src/jade/tabs/trade.jade:410 +msgid "Unable to cancel order. Error: {{entry.errorMsg}}" +msgstr "Impossível cancelar ordem. Erro: {{entry.errorMsg}}" + +#: src/jade/tabs/trade.jade:412 +msgid "" +"Your order amount has been updated by Ripple. Please go back and edit again " +"to modify this order." +msgstr "A quantia da sua ordem foi atualizada pelo Ripple. Por favor volte e edite novamente para modificar essa ordem." + +#: src/jade/tabs/trade.jade:414 +msgid "" +"Your order could not be modified. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "Sua ordem não pôde ser modificada. Erro: {{order[editOrder.type].engine_result_message}}" + +#: src/jade/tabs/trade.jade:415 +msgid "X" +msgstr "X" + +#: src/jade/tabs/trade.jade:420 +msgid "cancel all" +msgstr "cancelar todas" + +#: src/jade/tabs/trade.jade:426 +msgid "{{1:Please confirm that you wish to cancel all orders.}}" +msgstr "{{1:Por favor confirme que você quer cancelar todas as ordens}}" + +#: src/jade/tabs/trade.jade:430 +msgid "Cancel all orders" +msgstr "Cancelar todas ordens" + +#: src/jade/tabs/trade.jade:433 src/jade/tabs/widgets/orders.jade:64 +msgid "No current orders. {{1}}" +msgstr "Sem ordens {{1}}" + +#: src/jade/tabs/trade.jade:434 src/jade/tabs/widgets/orders.jade:65 +msgid "View orders history" +msgstr "Ver o histórico de ordens" + +#: src/jade/tabs/trade.jade:437 +msgid "Orderbook{{1}}" +msgstr "Livro de ordens{{1}}" + +#: src/jade/tabs/trade.jade:440 +msgid "show" +msgstr "mostrar" + +#: src/jade/tabs/trade.jade:442 +msgid "Last updated {{1}} {{2: seconds}} {{3: second}} ago" +msgstr "Última atualização {{1}} {{2: segundos}} {{3: segundo}} ago" + +#: src/jade/tabs/trade.jade:458 +msgid "Bids" +msgstr "Compra" + +#: src/jade/tabs/trade.jade:460 src/jade/tabs/trade.jade:487 +msgid "Sum{{1}}{{2}}" +msgstr "Soma{{1}}{{2}}" + +#: src/jade/tabs/trade.jade:463 src/jade/tabs/trade.jade:484 +msgid "Size{{1}}{{2}}" +msgstr "Quantia{{1}}{{2}}" + +#: src/jade/tabs/trade.jade:466 +msgid "Bid Price{{1}}{{2}}" +msgstr "Preço de Compra{{1}}{{2}}" + +#: src/jade/tabs/trade.jade:477 +msgid "There are currently no bids for this pair." +msgstr "Não há ofertas de compra para este par agora." + +#: src/jade/tabs/trade.jade:479 +msgid "Asks" +msgstr "Venda" + +#: src/jade/tabs/trade.jade:481 +msgid "Ask Price{{1}}{{2}}" +msgstr "Preço de Venda{{1}}{{2}}" + +#: src/jade/tabs/trade.jade:498 +msgid "There are currently no asks for this pair." +msgstr "Não há ofertas de venda para este par agora." + +#: src/jade/tabs/trade.jade:501 +msgid "No more orders" +msgstr "Não há mais ordens" + +#: src/jade/tabs/trust.jade:29 +msgid "Removing gateway..." +msgstr "Removendo gateway..." + +#: src/jade/tabs/trust.jade:31 +msgid "Gateway removed." +msgstr "Gateway removido." + +#: src/jade/tabs/trust.jade:33 +msgid "Your changes have been saved." +msgstr "Suas alterações foram salvas." + +#: src/jade/tabs/trust.jade:35 +msgid "Request failed." +msgstr "Solicitação falhou." + +#: src/jade/tabs/trust.jade:39 +msgid "Account unlock failed." +msgstr "Desbloqueio da conta falhou" + +#: src/jade/tabs/trust.jade:55 +msgid "Name / Address" +msgstr "Nome / Endereço" + +#: src/jade/tabs/trust.jade:57 src/jade/tabs/trust.jade:90 +msgid "Currency" +msgstr "Moeda" + +#: src/jade/tabs/trust.jade:60 +msgid "Trust Limit" +msgstr "Saldo máximo permitido" + +#: src/jade/tabs/trust.jade:66 +msgid "Gateway's Ripple name or address" +msgstr "Nome Ripple ou endereço do Gateway" + +#: src/jade/tabs/trust.jade:100 +msgid "Amount field is required." +msgstr "O campo Quantia é obrigatório" + +#: src/jade/tabs/trust.jade:115 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"connect to. More " +"information" +msgstr "Permitir que o saldo desta Linha de Confiança seja transferido para outro Emissor de sua confiança. Mais informações" + +#: src/jade/tabs/trust.jade:125 +msgid "" +"{{1:You are connecting a gateway, which means}}{{2:{{ counterparty_address |" +" rpripplename:{tilde: true} }} can:}}" +msgstr "{{1:Você está se conectando a um Gateway, o que significa que}}{{2:{{ counterparty_address | rpripplename:{tilde: true} }} pode:}}" + +#: src/jade/tabs/trust.jade:128 +msgid "{{1:- Hold up to }}{{2}} {{3: on your behalf}}" +msgstr "{{1:- Custodiar até }}{{2}} {{3: para você}}" + +#: src/jade/tabs/trust.jade:132 +msgid "{{1:- Hold }}{{2}} {{3: on your behalf}}" +msgstr "{{1:- Custodiar }}{{2}} {{3: para você}}" + +#: src/jade/tabs/trust.jade:148 +msgid "Verifying address" +msgstr "Verificando endereço" + +#: src/jade/tabs/trust.jade:151 +msgid "" +"Your account has to be {{1:activated}} before you can add a gateway account." +msgstr "Sua conta precisa ser {{1:ativada}} para poder adicionar um gateway." + +#: src/jade/tabs/trust.jade:159 +msgid "Connect gateway" +msgstr "Conectar gateway" + +#: src/jade/tabs/trust.jade:169 src/jade/tabs/trust.jade:221 +msgid "Limit" +msgstr "Limit" + +#: src/jade/tabs/trust.jade:170 +msgid "Min" +msgstr "Mín" + +#: src/jade/tabs/trust.jade:172 +msgid "Edit" +msgstr "Editar" + +#: src/jade/tabs/trust.jade:188 +msgid "Off" +msgstr "Desligar" + +#: src/jade/tabs/trust.jade:189 +msgid "On" +msgstr "Ligar" + +#: src/jade/tabs/trust.jade:192 src/jade/tabs/trust.jade:201 +#: src/jade/tabs/trust.jade:206 src/jade/tabs/trust.jade:210 +#: src/jade/tabs/trust.jade:239 src/jade/tabs/trust.jade:244 +#: src/jade/tabs/trust.jade:248 +msgid "Incoming trust" +msgstr "Linhas de confiança recebidas" + +#: src/jade/tabs/trust.jade:192 +msgid "" +"You can't edit incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "Você não pode editar linhas de confiança recebidas. Outro usuário as criou confiando em você." + +#: src/jade/tabs/trust.jade:200 src/jade/tabs/trust.jade:202 +#: src/jade/tabs/trust.jade:205 src/jade/tabs/trust.jade:207 +#: src/jade/tabs/trust.jade:209 src/jade/tabs/trust.jade:211 +#: src/jade/tabs/trust.jade:238 src/jade/tabs/trust.jade:240 +#: src/jade/tabs/trust.jade:243 src/jade/tabs/trust.jade:245 +#: src/jade/tabs/trust.jade:247 src/jade/tabs/trust.jade:249 +msgid "Remove" +msgstr "Remover" + +#: src/jade/tabs/trust.jade:201 src/jade/tabs/trust.jade:206 +#: src/jade/tabs/trust.jade:210 src/jade/tabs/trust.jade:239 +#: src/jade/tabs/trust.jade:244 src/jade/tabs/trust.jade:248 +msgid "" +"You can't delete incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "Você não pode editar linhas de confiança recebidas. Outro usuário as criou confiando em você." + +#: src/jade/tabs/trust.jade:226 +msgid "Rippling {{1}}" +msgstr "Rippling {{1}}" + +#: src/jade/tabs/tx.jade:5 +msgid "Loading transaction details..." +msgstr "Carregando detalhes da transação..." + +#: src/jade/tabs/tx.jade:7 +msgid "An error occurred while loading the transaction details." +msgstr "Ocorreu um erro ao carregar detalhes da transação." + +#: src/jade/tabs/tx.jade:10 +msgid "Transaction #" +msgstr "Transação #" + +#: src/jade/tabs/tx.jade:15 +msgid "Transaction type: {{1}}" +msgstr "Tipo de Transação: {{1}}" + +#: src/jade/tabs/tx.jade:22 +msgid "Address sent from" +msgstr "Endereço do remetente" + +#: src/jade/tabs/tx.jade:26 +msgid "Amount sent" +msgstr "Quantia enviada" + +#: src/jade/tabs/tx.jade:30 +msgid "Currency sent" +msgstr "Moeda enviada" + +#: src/jade/tabs/tx.jade:35 +msgid "Address sent to" +msgstr "Endereço do destinatário" + +#: src/jade/tabs/tx.jade:39 +msgid "Amount received" +msgstr "Quantia recebida" + +#: src/jade/tabs/tx.jade:43 +msgid "Currency received" +msgstr "moeda recebida" + +#: src/jade/tabs/tx.jade:50 +msgid "Network fee paid" +msgstr "Taxa de rede paga" + +#: src/jade/tabs/tx.jade:62 +msgid "Ledger number" +msgstr "Número do Ledger" + +#: src/jade/tabs/tx.jade:68 +msgid "Address sent from:" +msgstr "Endereço do remetente:" + +# Sorry, we don't have an info page layout for this transaction type yet. +#: src/jade/tabs/tx.jade:72 +msgid "" +"Sorry, we don't have an info page layout for this transaction type yet." +msgstr "Desculpe, nós ainda não temos uma página de informação para este tipo de transação." + +#: src/jade/tabs/usd.jade:35 +msgid "US Dollar Deposit" +msgstr "Depósito de Dólares Americanos" + +#: src/jade/tabs/usd.jade:39 +msgid "SnapSwap US (~SnapSwap){{1}}{{2}}" +msgstr "SnapSwap US (~SnapSwap){{1}}{{2}}" + +#: src/jade/tabs/usd.jade:45 +msgid "USA" +msgstr "EUA" + +#: src/jade/tabs/usd.jade:48 +msgid "$ 0.31-$ 5.00" +msgstr "$ 0.31-$ 5.00" + +#: src/jade/tabs/usd.jade:56 +msgid "" +"Ripple Trade has partnered with SnapSwap to provide easier access to USD. " +"Following this action will enable SnapSwap to hold USD on your behalf." +msgstr "Ripple Trade e SnapSwap fizeram uma parceria para garantir fácil acesso ao USD. Essa ação permite que a SnapSwap custodie USD para você." + +#: src/jade/tabs/usd.jade:73 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.US" +msgstr "NOVOS USUÁRIOS - CRIE UMA CONTA EM SNAPSWAP.US" + +#: src/jade/tabs/usd.jade:74 +msgid "Register and verify your account at SnapSwap US. You will need: {{1}}" +msgstr "Crie e verifique sua conta na SnapSwap US. Você vai precisar de: {{1}}" + +#: src/jade/tabs/usd.jade:82 +msgid "EXISTING SNAPSWAP US CUSTOMERS" +msgstr "USUÁRIOS SNAPSWAP US EXISTENTES" + +#: src/jade/tabs/usd.jade:93 +msgid "Deposit instantly via selected banks" +msgstr "Deposite instantaneamente via bancos selecionados" + +#: src/jade/tabs/usd.jade:95 +msgid "Deposit cash at Bank of America branches (3 business days)" +msgstr "Deposite dinheiro nas agências do Bank of America (3 dias úteis)" + +#: src/jade/tabs/usd.jade:97 +msgid "Deposit via online bank transfer (3 business days)" +msgstr "Deposite via transferência bancária (3 dias úteis)" + +#: src/jade/tabs/usd.jade:103 +msgid "Directly to your bank account (3-4 business days)" +msgstr "Diretamente á sua conta bancária (3-4 dias úteis)" + +#: src/jade/tabs/usd.jade:105 +msgid "Directly to your PayPal account (several minutes)" +msgstr "Diretamente à sua conta PayPal (alguns minutos)" + +#: src/jade/tabs/widgets/assetallocation.jade:3 +msgid "Asset Allocation" +msgstr "Alocação de Ativos" + +#: src/jade/tabs/widgets/balances.jade:3 +msgid "Balances" +msgstr "Saldos" + +#: src/jade/tabs/widgets/balances.jade:12 +msgid "Balance
{{ account.Balance | rpamount }} XRP" +msgstr "Saldo
{{ account.Balance | rpamount }} XRP" + +#: src/jade/tabs/widgets/balances.jade:16 +msgid "Reserve" +msgstr "Reserva" + +#: src/jade/tabs/widgets/balances.jade:18 +msgid "Reserve amount" +msgstr "Reserva" + +#: src/jade/tabs/widgets/balances.jade:18 +msgid "" +"Minimum amount of XRP required to fund your account. You cannot spend the " +"reserve." +msgstr "Quantia mínima de XRP necessária para ativar sua conta. Você não pode gastar a reserva." + +#: src/jade/tabs/widgets/balances.jade:20 +msgid "Reserve amount
{{ account.reserve | rpamount }} XRP" +msgstr "Quantia de reserva
{{ account.reserve | rpamount }} XRP" + +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Available amount" +msgstr "Quantia disponível" + +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Total amount of XRP in your account minus the reserve amount." +msgstr "A quantia total de XRP em sua conta menos o valor de reserva." + +#: src/jade/tabs/widgets/balances.jade:28 +msgid "Available amount
{{ account.max_spend | rpamount }} XRP" +msgstr "Quantia disponívelt
{{ account.max_spend | rpamount }} XRP" + +#: src/jade/tabs/widgets/balances.jade:35 +msgid "" +"Balance
{{ entry.total | rpamount:{precision: 30, hard_precision: true} " +"}} {{ entry.total | rpcurrency }}" +msgstr "Saldo
{{ entry.total | rpamount:{precision: 30, hard_precision: true} }} {{ entry.total | rpcurrency }}" + +#: src/jade/tabs/widgets/balances.jade:43 +msgid "" +"Balance
{{ component | rpamount:{precision: 30, rel_min_precision: -2, " +"hard_precision: true} }} {{ entry.total | rpcurrency }}" +msgstr "Saldo
{{ component | rpamount:{precision: 30, rel_min_precision: -2, hard_precision: true} }} {{ entry.total | rpcurrency }}" + +#: src/jade/tabs/widgets/markets.jade:3 +msgid "Markets" +msgstr "Mercados" + +#: src/jade/tabs/widgets/networth.jade:3 +msgid "Net Worth" +msgstr "Patrimônio Líquido" + +#: src/jade/tabs/widgets/networth.jade:8 +msgid "{{1:{{1:In}}}}{{2}}" +msgstr "{{1:{{1:In}}}}{{2}}" + +#: src/jade/tabs/widgets/networth.jade:14 +msgid "Estimated from latest trade price" +msgstr "Estimado pelo último preço negociado" + +#: src/jade/tabs/widgets/networth.jade:23 +msgid "(excluding negative balances)" +msgstr "(excluindo saldos negativos)" + +#: src/jade/tabs/widgets/orders.jade:3 +msgid "My Orders" +msgstr "Minhas Ordens" + +#: src/jade/tabs/widgets/orders.jade:68 +msgid "trade currencies" +msgstr "Negociar moedas" + +#: src/jade/tabs/xrp.jade:19 +msgid "Ripple name: {{1}}{{2}}{{3}}" +msgstr "Nome Ripple: {{1}}{{2}}{{3}}" + +#: src/jade/tabs/xrp.jade:21 +msgid "loading..." +msgstr "carregando..." + +#: src/jade/tabs/xrp.jade:23 +msgid "Show address" +msgstr "Mostrar endereço" + +#: src/jade/tabs/xrp.jade:25 +msgid "" +"Ripple names are a new feature on Ripple! Use your Ripple name " +"(~{{userCredentials.username}}) to receive money. You can still use your " +"full Ripple address, and while we are working to transition to Ripple names," +" some gateways may still ask for your full address." +msgstr "Nomes Ripple são um novo recurso no Ripple! Use seu nome Ripple (~{{userCredentials.username}}) para receber dinheiro. Você ainda pode usar seu endereço Ripple completo e, enquanto estamos trabalhando para fazer a transição para nomes Ripple, alguns gateways ainda pode pedir o seu endereço completo." diff --git a/l10n/ru/messages.po b/l10n/ru/messages.po index b37d88eb7..643b8ee5d 100644 --- a/l10n/ru/messages.po +++ b/l10n/ru/messages.po @@ -3,7 +3,7 @@ # Aleksandr Kotov , 2014 # atrach , 2014 # Andrew Vorobyov , 2014 -# Anton Nikolaenko , 2014 +# Anton Nikolaenko , 2014-2015 # Yakimov Sergey , 2014 # MyBe , 2014 # Anton Nikolaenko , 2014 @@ -15,56 +15,58 @@ msgid "" msgstr "" "Project-Id-Version: Ripple Trade\n" -"PO-Revision-Date: 2014-10-11 04:36+0000\n" -"Last-Translator: Aleksandr Kotov \n" +"PO-Revision-Date: 2015-02-25 16:27+0000\n" +"Last-Translator: Anton Nikolaenko \n" "Language-Team: Russian (http://www.transifex.com/projects/p/ripple-trade/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" -#: src/jade/client/index.jade:5 src/jade/client/navbar.jade:112 -#: src/jade/tabs/trust.jade:86 src/jade/tabs/trust.jade:228 +#: src/jade/client/index.jade:5 src/jade/client/navbar.jade:117 +#: src/jade/tabs/trust.jade:59 src/jade/tabs/trust.jade:168 msgid "Balance" msgstr "Баланс" -#: src/jade/client/index.jade:7 src/jade/client/navbar.jade:114 +#: src/jade/client/index.jade:7 src/jade/client/navbar.jade:119 msgid "History" msgstr "История" -#: src/jade/client/index.jade:8 src/jade/client/navbar.jade:116 -#: src/jade/tabs/contacts.jade:5 +#: src/jade/client/index.jade:8 src/jade/client/navbar.jade:121 msgid "Contacts" msgstr "Контакты" -#: src/jade/client/index.jade:12 src/jade/client/navbar.jade:13 -#: src/jade/tabs/contacts.jade:97 +#: src/jade/client/index.jade:12 src/jade/client/navbar.jade:21 +#: src/jade/tabs/contacts.jade:65 msgid "Send" msgstr "Отправить" -#: src/jade/client/index.jade:16 src/jade/client/navbar.jade:123 +#: src/jade/client/index.jade:16 msgid "Convert" msgstr "Конвертация" -#: src/jade/client/index.jade:18 src/jade/client/navbar.jade:121 +#: src/jade/client/index.jade:18 src/jade/client/navbar.jade:23 +#: src/jade/client/navbar.jade:25 src/jade/tabs/settings/navbar.jade:3 msgid "Trade" msgstr "Обмен" -#: src/jade/client/index.jade:22 src/jade/client/navbar.jade:19 -#: src/jade/client/navbar.jade:128 +#: src/jade/client/index.jade:22 src/jade/client/navbar.jade:27 +#: src/jade/client/navbar.jade:133 msgid "Fund" msgstr "Средства" -#: src/jade/client/index.jade:24 src/jade/tabs/fund/menu.jade:5 +#: src/jade/client/index.jade:24 src/jade/tabs/fund/menu.jade:29 msgid "Gateways" msgstr "Шлюзы" -#: src/jade/client/index.jade:29 src/jade/tabs/su.jade:12 +#: src/jade/client/index.jade:29 src/jade/client/navbar.jade:107 +#: src/jade/tabs/su.jade:12 msgid "Account" msgstr "Аккаунт" -#: src/jade/client/index.jade:32 src/jade/tabs/advanced.jade:9 +#: src/jade/client/index.jade:32 src/jade/client/navbar.jade:109 +#: src/jade/tabs/advanced.jade:19 msgid "Settings" msgstr "Настройки" @@ -72,198 +74,437 @@ msgstr "Настройки" msgid "Logout" msgstr "Выход из системы" -#: src/jade/client/index.jade:41 -msgid "Welcome to {{productName}}, a global value exchange" -msgstr "Добро пожаловать в {{productName}}, глобальную ресурсообменную сеть" +#: src/jade/client/index.jade:61 +msgid "Why Use Ripple Trade?" +msgstr "Зачем использовать Ripple Trade?" + +#: src/jade/client/index.jade:66 +msgid "Home of XRP -" +msgstr "" + +#: src/jade/client/index.jade:67 +msgid "the best place to buy and sell XRP" +msgstr "лучшее место для покупки и продажи XRP" + +#: src/jade/client/index.jade:71 +msgid "Free -" +msgstr "Бесплатно - " + +#: src/jade/client/index.jade:72 +msgid "no fees to sign up and use Ripple Trade" +msgstr "не взимается плата за регистрацию и использование Ripple Trade" + +#: src/jade/client/index.jade:76 +msgid "No Middlemen -" +msgstr "Без посредников - " -#: src/jade/client/index.jade:51 +#: src/jade/client/index.jade:77 +msgid "" +"When you submit orders, Ripple automatically finds the best available match," +" without a clearinghouse or broker." +msgstr "" + +#: src/jade/client/index.jade:81 +msgid "Deposit, trade and withdraw money on Ripple via gateways." +msgstr "" + +#: src/jade/client/index.jade:89 +msgid "Featured Ripple Gateways" +msgstr "Избранные шлюзы Ripple" + +#: src/jade/client/index.jade:91 +msgid "Ripple's growing gateway network." +msgstr "Растущая сеть шлюзов Ripple." + +#: src/jade/client/index.jade:93 src/jade/client/index.jade:96 +#: src/jade/client/index.jade:99 src/jade/client/index.jade:102 +#: src/jade/client/index.jade:105 src/jade/client/index.jade:108 +#: src/jade/client/index.jade:111 src/jade/client/index.jade:114 +#: src/jade/client/index.jade:117 src/jade/tabs/banner/unfunded.jade:6 +#: src/jade/tabs/brl.jade:53 src/jade/tabs/brl.jade:57 +#: src/jade/tabs/brl.jade:93 src/jade/tabs/btc.jade:46 +#: src/jade/tabs/eur.jade:50 src/jade/tabs/eur.jade:54 +#: src/jade/tabs/eur.jade:86 src/jade/tabs/eur.jade:93 +#: src/jade/tabs/gold.jade:51 src/jade/tabs/jpy.jade:55 +#: src/jade/tabs/jpy.jade:91 src/jade/tabs/jpy.jade:97 +#: src/jade/tabs/mxn.jade:53 src/jade/tabs/send.jade:63 +#: src/jade/tabs/trade.jade:320 src/jade/tabs/usd.jade:51 +#: src/jade/tabs/usd.jade:83 src/jade/tabs/usd.jade:90 +#: src/jade/tabs/usd.jade:100 src/jade/tabs/widgets/orders.jade:31 +msgid "{{1}}" +msgstr "{{1}}" + +#: src/jade/client/index.jade:123 msgid "Version: {{version}}" msgstr "Версия: {{version}}" -#: src/jade/client/index.jade:55 -msgid "End-User License Agreement" -msgstr "Лицензионное соглашение с конечным пользователем" +#: src/jade/client/index.jade:128 +msgid "Terms of Use" +msgstr "Условия использования" + +#: src/jade/client/index.jade:129 +msgid "Privacy Policy" +msgstr "Политика конфиденциальности" -#: src/jade/client/index.jade:56 +#: src/jade/client/index.jade:130 msgid "Support" msgstr "Поддержка" -#: src/jade/client/index.jade:57 +#: src/jade/client/index.jade:131 msgid "Bug reports" msgstr "Сообщения об ошибках" -#: src/jade/client/index.jade:64 +#: src/jade/client/index.jade:138 msgid "more..." msgstr "подробнее..." -#: src/jade/client/index.jade:68 +#: src/jade/client/index.jade:142 msgid "Select a language" msgstr "Выберите язык" -#: src/jade/client/navbar.jade:11 +#: src/jade/client/navbar.jade:2 +msgid "" +"You are viewing an account in {{1}} mode. While in this mode, you can view " +"publicly available data, but you cannot initiate any transactions. Click " +"{{2}} to exit." +msgstr "Вы просматриваете аккаунт в режиме {{1}}. Находясь в этом режиме, Вы можете просматривать публично доступную информацию, но не можете инициировать какие-либо транзакции. Нажмите {{2}} для выхода." + +#: src/jade/client/navbar.jade:8 +msgid "" +"Warning: this account has over 200 trust lines, so the displayed account " +"balance may not be accurate." +msgstr "Предупреждение: этот аккаунт имеет больше 200 доверительных линий, поэтому отображаемый баланс аккаунта может быть не точен." + +#: src/jade/client/navbar.jade:19 msgid "Overview" msgstr "Обзор" -#: src/jade/client/navbar.jade:15 src/jade/client/navbar.jade:17 -#: src/jade/tabs/exchange.jade:45 -msgid "Exchange" -msgstr "Обмен" - -#: src/jade/client/navbar.jade:39 src/jade/tabs/account/public.jade:45 -#: src/jade/tabs/apps.jade:8 src/jade/tabs/balance.jade:8 -#: src/jade/tabs/balance.jade:27 src/jade/tabs/btc.jade:60 -#: src/jade/tabs/exchange.jade:9 src/jade/tabs/history.jade:206 -#: src/jade/tabs/kyc.jade:38 src/jade/tabs/recover.jade:21 -#: src/jade/tabs/security.jade:134 src/jade/tabs/su.jade:8 -#: src/jade/tabs/trust.jade:9 src/jade/tabs/trust.jade:175 +#: src/jade/client/navbar.jade:49 src/jade/tabs/account/private.jade:7 +#: src/jade/tabs/account/private.jade:16 src/jade/tabs/account/public.jade:45 +#: src/jade/tabs/apps.jade:8 src/jade/tabs/btc.jade:72 +#: src/jade/tabs/exchange.jade:9 src/jade/tabs/kyc.jade:45 +#: src/jade/tabs/recover.jade:26 src/jade/tabs/security.jade:147 +#: src/jade/tabs/su.jade:8 src/jade/tabs/trust.jade:9 +#: src/jade/tabs/trust.jade:139 msgid "Loading..." msgstr "Загрузка..." -#: src/jade/client/navbar.jade:40 +#: src/jade/client/navbar.jade:50 msgid "There are no recent notifications." msgstr "Нет новых уведомлений." -#: src/jade/client/navbar.jade:44 +#: src/jade/client/navbar.jade:54 msgid "You sent {{1}} to {{2}}" msgstr "Вы оправили {{1}} к {{2}}" -#: src/jade/client/navbar.jade:50 +#: src/jade/client/navbar.jade:60 msgid "{{1}} sent you {{2}}" msgstr "{{1}} отправил Вам {{2}}" -#: src/jade/client/navbar.jade:58 +#: src/jade/client/navbar.jade:68 msgid "{{entry.transaction.counterparty | rpcontactname}} now trusts you for" msgstr "{{entry.transaction.counterparty | rpcontactname}} теперь Вам доверяет на" -#: src/jade/client/navbar.jade:64 src/jade/notification/account.jade:25 -#: src/jade/tabs/history.jade:132 src/jade/tabs/history/effects.jade:63 +#: src/jade/client/navbar.jade:74 src/jade/notification/account.jade:25 +#: src/jade/tabs/history.jade:115 src/jade/tabs/history/effects.jade:63 msgid "You have now connected to the gateway {{1}}{{2: for }}{{3}}." msgstr "Теперь вы подключены к шлюзу {{1}}{{2: по }}{{3}}." -#: src/jade/client/navbar.jade:75 +#: src/jade/client/navbar.jade:85 msgid "You cancelled an order accepting {{1}} for {{2}}" msgstr "Вы отменили заказ принимая {{1}} за {{2}}" -#: src/jade/client/navbar.jade:82 +#: src/jade/client/navbar.jade:92 src/jade/tabs/history.jade:138 msgid "Account details have been changed" msgstr "Данные аккаунта были изменены" -#: src/jade/client/navbar.jade:85 src/jade/tabs/history.jade:158 -#: src/jade/tabs/trust.jade:231 +#: src/jade/client/navbar.jade:95 src/jade/tabs/history.jade:141 +#: src/jade/tabs/trust.jade:171 msgid "Rippling" msgstr "Пересылка" -#: src/jade/client/navbar.jade:87 src/jade/tabs/history.jade:160 +#: src/jade/client/navbar.jade:97 src/jade/tabs/history.jade:143 msgid "Failed transaction" msgstr "Неудачная транзакция" -#: src/jade/client/navbar.jade:93 +#: src/jade/client/navbar.jade:103 msgid "View Full History" msgstr "Просмотр всей истории" -#: src/jade/client/navbar.jade:97 -msgid "{{1}} Account" -msgstr "{{1}} Аккаунт" +#: src/jade/client/navbar.jade:111 +msgid "Log Out" +msgstr "Выход" -#: src/jade/client/navbar.jade:101 -msgid "{{1}} Settings" -msgstr "{{1}} Настройки" +#: src/jade/client/navbar.jade:126 +msgid "Simple" +msgstr "Упростить" -#: src/jade/client/navbar.jade:105 -msgid "{{1}} Log Out" -msgstr "{{1}} Выйти" +#: src/jade/client/navbar.jade:128 src/jade/tabs/settings/navbar.jade:4 +msgid "Advanced" +msgstr "Дополнительно" -#: src/jade/client/navbar.jade:130 src/jade/tabs/balance.jade:110 +#: src/jade/client/navbar.jade:135 msgid "Withdraw" msgstr "Обналичить" -#: src/jade/client/navbar.jade:132 +#: src/jade/client/navbar.jade:137 msgid "" "Your account was successfully recovered and encrypted with the new password " "you provided!" msgstr "Ваш аккаунт был успешно восстановлен и зашифрован с помощью Вашего нового пароля!" -#: src/jade/client/navbar.jade:133 +#: src/jade/client/navbar.jade:138 msgid "dismiss" msgstr "отменить" -#: src/jade/directives/transactionerror.jade:5 +#: src/jade/directives/addresspopover.jade:3 +msgid "Ripple address {{ identity }}" +msgstr "Ripple адрес {{ identity }}" + +#: src/jade/directives/addresspopover.jade:8 src/jade/tabs/tx.jade:13 +msgid "Show in graph" +msgstr "Показать на графике" + +#: src/jade/directives/transactionerror.jade:8 +msgid "Connecting gateway to your account..." +msgstr "Подключение шлюза к Вашему аккаунту..." + +#: src/jade/directives/transactionerror.jade:10 +msgid "Gateway connected." +msgstr "Шлюз подключен" + +#: src/jade/directives/transactionerror.jade:12 +msgid "There was a problem connecting to the gateway. Please try again later." +msgstr "Проблема подключения к шлюзу. Попробуйте еще раз позже." + +#: src/jade/directives/transactionerror.jade:14 +#: src/jade/directives/transactionerror.jade:73 +#: src/jade/directives/transactionerror.jade:158 +#: src/jade/messages/sendconvert/confirmation.jade:13 +msgid "Error code: {{engine_result}} - {{engine_result_message}}" +msgstr "Код ошибки: {{engine_result}} - {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:19 +#: src/jade/directives/transactionerror.jade:23 +#: src/jade/directives/transactionerror.jade:28 +#: src/jade/directives/transactionerror.jade:33 +#: src/jade/directives/transactionerror.jade:45 +#: src/jade/directives/transactionerror.jade:52 +#: src/jade/directives/transactionerror.jade:156 +#: src/jade/directives/transactionerror.jade:163 +#: src/jade/directives/transactionerror.jade:167 +#: src/jade/directives/transactionerror.jade:172 +#: src/jade/directives/transactionerror.jade:177 +#: src/jade/directives/transactionerror.jade:186 +#: src/jade/directives/transactionerror.jade:193 +msgid "Request failed" +msgstr "Запрос не удался" + +#: src/jade/directives/transactionerror.jade:21 +#: src/jade/directives/transactionerror.jade:165 +msgid "Your request timed out, please try again." +msgstr "Превышено время ожидания по Вашему запросу. Пожалуйста, попробуйте еще раз." + +#: src/jade/directives/transactionerror.jade:25 +#: src/jade/directives/transactionerror.jade:84 +#: src/jade/directives/transactionerror.jade:169 +#: src/jade/messages/sendconvert/confirmation.jade:18 +msgid "Error code: Destination tag needed [tefDST_TAG_NEEDED]." +msgstr "Код ошибки: Необходим тег назначения [tefDST_TAG_NEEDED]:" + +#: src/jade/directives/transactionerror.jade:30 +#: src/jade/directives/transactionerror.jade:174 +msgid "" +"Error code: This request failed because it exceeded the maximum network fee," +" please try again later [telINSUF_FEE_P]." +msgstr "" + +#: src/jade/directives/transactionerror.jade:35 +msgid "" +"Error code: You have no gateway connected in this currency [terNO_LINE]." +msgstr "Код ошибки: у Вас нет шлюза в этой валюте [terNO_LINE]." + +#: src/jade/directives/transactionerror.jade:37 +msgid "" +"Error code: Insufficient reserve to connect gateway [tecINSUF_RESERVE_LINE]." +msgstr "" + +#: src/jade/directives/transactionerror.jade:39 +msgid "" +"Error code: You have an insufficient reserve amount to connect a gateway " +"[tecNO_LINE_INSUF_RESERVE]. {{1}}" +msgstr "" + +#: src/jade/directives/transactionerror.jade:41 src/jade/tabs/fund.jade:34 +#: src/jade/tabs/send.jade:110 src/jade/tabs/trust.jade:74 +msgid "More information" +msgstr "Дополнительная информация" + +#: src/jade/directives/transactionerror.jade:42 +#: src/jade/directives/transactionerror.jade:98 +#: src/jade/directives/transactionerror.jade:135 +#: src/jade/directives/transactionerror.jade:183 +#: src/jade/messages/sendconvert/confirmation.jade:27 +msgid "Error: {{engine_result_message}}" +msgstr "Ошибка: {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:47 +#: src/jade/directives/transactionerror.jade:103 +#: src/jade/directives/transactionerror.jade:188 +#: src/jade/messages/sendconvert/confirmation.jade:32 +msgid "Error code: You have no trust line in this currency [terNO_LINE]." +msgstr "Код ошибки: У вас нет линии доверия в этой валюте [terNO_LINE]." + +#: src/jade/directives/transactionerror.jade:49 +#: src/jade/directives/transactionerror.jade:190 +msgid "Your request failed: {{engine_result}} - {{engine_result_message}}" +msgstr "" + +#: src/jade/directives/transactionerror.jade:54 +#: src/jade/directives/transactionerror.jade:195 +msgid "Error code: request could not be submitted [tejLost]." +msgstr "Код ошибки: запрос не может быть выполнен [tejLost]." + +#: src/jade/directives/transactionerror.jade:56 +#: src/jade/directives/transactionerror.jade:197 src/jade/tabs/trust.jade:36 +msgid "" +"This request failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "" + +#: src/jade/directives/transactionerror.jade:59 +#: src/jade/directives/transactionerror.jade:200 +msgid "" +"Your request could not be submitted: {{engine_result}} - " +"{{engine_result_message}}" +msgstr "" + +#: src/jade/directives/transactionerror.jade:67 msgid "Payment pending" msgstr "Платеж в обработке" -#: src/jade/directives/transactionerror.jade:7 +#: src/jade/directives/transactionerror.jade:69 msgid "Payment successful" msgstr "Платеж прошел успешно" -#: src/jade/directives/transactionerror.jade:9 -#: src/jade/directives/transactionerror.jade:16 -#: src/jade/directives/transactionerror.jade:20 -#: src/jade/directives/transactionerror.jade:25 -#: src/jade/directives/transactionerror.jade:30 -#: src/jade/directives/transactionerror.jade:39 -#: src/jade/directives/transactionerror.jade:46 +#: src/jade/directives/transactionerror.jade:71 +#: src/jade/directives/transactionerror.jade:82 +#: src/jade/directives/transactionerror.jade:87 +#: src/jade/directives/transactionerror.jade:92 +#: src/jade/directives/transactionerror.jade:101 +#: src/jade/directives/transactionerror.jade:108 msgid "Payment failed" msgstr "Плаеж не удался" -#: src/jade/directives/transactionerror.jade:11 -#: src/jade/messages/sendconvert/confirmation.jade:13 -msgid "Error code: {{engine_result}} - {{engine_result_message}}" -msgstr "Код ошибки: {{engine_result}} - {{engine_result_message}}" +#: src/jade/directives/transactionerror.jade:78 +msgid "Payment failed [tefMAX_LEDGER]." +msgstr "Платеж не удался [tefMAX_LEDGER]." -#: src/jade/directives/transactionerror.jade:18 +#: src/jade/directives/transactionerror.jade:80 msgid "Your payment timed out, please try again." msgstr "Превышено время ожидания по вашему платежу, пожалуйста повторите еще раз." -#: src/jade/directives/transactionerror.jade:22 -#: src/jade/messages/sendconvert/confirmation.jade:18 -msgid "Error code: Destination tag needed [tefDST_TAG_NEEDED]." -msgstr "Код ошибки: Необходим тег назначения [tefDST_TAG_NEEDED]:" - -#: src/jade/directives/transactionerror.jade:27 +#: src/jade/directives/transactionerror.jade:89 #: src/jade/messages/sendconvert/confirmation.jade:39 msgid "" "Error code: This transaction failed because it exceeded the maximum network " "fee, please try again later [telINSUF_FEE_P]." msgstr "Код ошибки: Эта транзакция не удалась, поскольку она превысила максимальную комиссию сети, повторите попытку позже [telINSUF_FEE_P]." -#: src/jade/directives/transactionerror.jade:32 +#: src/jade/directives/transactionerror.jade:94 +#: src/jade/directives/transactionerror.jade:179 msgid "Error code: No destination [tecNO_DST]." msgstr "Код ошибки: Нет назначения [tecNO_DST]." -#: src/jade/directives/transactionerror.jade:34 +#: src/jade/directives/transactionerror.jade:96 +#: src/jade/directives/transactionerror.jade:181 #: src/jade/messages/sendconvert/confirmation.jade:25 msgid "" "Error code: Insufficient XRP sent to destination [tecNO_DST_INSUF_XRP]." msgstr "Код ошибки: Недостаточно XRP отправлено по назначению [tecNO_DST_INSUF_XRP]" -#: src/jade/directives/transactionerror.jade:36 -#: src/jade/messages/sendconvert/confirmation.jade:27 -msgid "Error: {{engine_result_message}}" -msgstr "Ошибка: {{engine_result_message}}" - -#: src/jade/directives/transactionerror.jade:41 -#: src/jade/messages/sendconvert/confirmation.jade:32 -msgid "Error code: You have no trust line in this currency [terNO_LINE]." -msgstr "Код ошибки: У вас нет линии доверия в этой валюте [terNO_LINE]." - -#: src/jade/directives/transactionerror.jade:43 +#: src/jade/directives/transactionerror.jade:105 msgid "Your payment failed: {{engine_result}} - {{engine_result_message}}" msgstr "Ваш платеж не удался: {{engine_result}} - {{engine_result_message}}" -#: src/jade/directives/transactionerror.jade:48 +#: src/jade/directives/transactionerror.jade:110 msgid "Error code: Transaction could not be submitted [tejLost]." msgstr "Код ошибки: Транзакция не может быть соврешена [tejLost]." -#: src/jade/directives/transactionerror.jade:50 -msgid "Error code: Network fee exceeded [tejMaxFeeExceeded]." -msgstr "Код ошибки: Перевышение комисси сети [tejMaxFeeExceeded]." +#: src/jade/directives/transactionerror.jade:112 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]." +msgstr "" -#: src/jade/directives/transactionerror.jade:52 +#: src/jade/directives/transactionerror.jade:115 msgid "" "Your payment could not be submitted: {{engine_result}} - " "{{engine_result_message}}" msgstr "Ваш платеж не может быть выполенен: {{engine_result}} - {{engine_result_message}}" +#: src/jade/directives/transactionerror.jade:121 +msgid "Request is malformed." +msgstr "Запрос некорректен." + +#: src/jade/directives/transactionerror.jade:122 +msgid "" +"Your request is invalid, reason: {{engine_result_message}} - " +"{{engine_result_message}}" +msgstr "" + +#: src/jade/directives/transactionerror.jade:125 +#: src/jade/directives/transactionerror.jade:142 +msgid "Transaction failed." +msgstr "Транзакция не удалась." + +#: src/jade/directives/transactionerror.jade:127 +msgid "You do not have enough funds to create this order [tecUNFUNDED_ORDER]." +msgstr "У Вас не достаточно средств для создания заявки [tecUNFUNDED_ORDER]." + +#: src/jade/directives/transactionerror.jade:129 +msgid "" +"Insufficient reserve amount to submit an order [tecINSUF_RESERVE_OFFER]." +msgstr "" + +#: src/jade/directives/transactionerror.jade:131 +msgid "" +"This transaction failed because the current network fee is higher than your " +"account limit. You can adjust your maximum network fee in Settings > " +"Advanced, or try again later.
Error code: Network fee exceeded " +"[tejMaxFeeExceeded]. {{1}}" +msgstr "" + +#: src/jade/directives/transactionerror.jade:134 +msgid "More information." +msgstr "Дополнительная информация." + +#: src/jade/directives/transactionerror.jade:138 +msgid "Trade failed." +msgstr "Обмен не удался." + +#: src/jade/directives/transactionerror.jade:140 +msgid "Trade failed, reason: {{engine_result_message}}" +msgstr "Обмен не удался, причина: {{engine_result_message}}" + +#: src/jade/directives/transactionerror.jade:144 +msgid "" +"The particular server you sent the transaction to was too busy to forward or" +" process your transaction at the fee you included in it [telINSUF_FEE_P]." +msgstr "" + +#: src/jade/directives/transactionerror.jade:152 +msgid "Request pending" +msgstr "Запрос в обработке" + +#: src/jade/directives/transactionerror.jade:154 +msgid "Request successful" +msgstr "Запрос прошел успешно" + #: src/jade/messages/sendconvert/confirmation.jade:4 msgid "Transaction pending." msgstr "Транзакция в обработке" @@ -285,8 +526,11 @@ msgstr "Транзакция прошла успешно" msgid "Transaction failed" msgstr "Транзакция не удалась" -#: src/jade/messages/sendconvert/confirmation.jade:9 -#: src/jade/tabs/trust.jade:58 src/jade/tabs/trust.jade:70 +#: src/jade/messages/sendconvert/confirmation.jade:9 src/jade/tabs/brl.jade:25 +#: src/jade/tabs/btc.jade:22 src/jade/tabs/eur.jade:25 +#: src/jade/tabs/gold.jade:25 src/jade/tabs/jpy.jade:25 +#: src/jade/tabs/mxn.jade:25 src/jade/tabs/trust.jade:43 +#: src/jade/tabs/usd.jade:25 msgid "Please try again later." msgstr "Пожалуйста, попробуйте еще раз попозже." @@ -327,6 +571,7 @@ msgid "Account unlock failed" msgstr "Разблокировка аккаунта не удалась" #: src/jade/messages/sendconvert/localerror.jade:18 +#: src/jade/tabs/trust.jade:40 msgid "Your account could not be unlocked. Please try again later." msgstr "Ваша аккаунт не может быть разблокирован. Пожалуйста, повторите попытку позже." @@ -342,7 +587,7 @@ msgid "" "executed already." msgstr "Прежде чем попытаться снова, пожалуйста, убедитесь, что транзакция не была выполнена ранее." -#: src/jade/messages/sendconvert/waiting.jade:3 +#: src/jade/messages/sendconvert/waiting.jade:5 msgid "Sending transaction to the Ripple network" msgstr "Отправка транзакции в сеть Ripple" @@ -358,13 +603,49 @@ msgstr "{{tx.counterparty | rpcontactname}} послал Вам" msgid "{{tx.counterparty | rpcontactname}} now trusts you for" msgstr "{{tx.counterparty | rpcontactname}} теперь Вам доверяет на" +#: src/jade/popup/modifyOrderError.jade:2 +msgid "Modify Order Error" +msgstr "Ошибка изменения запроса" + +#: src/jade/popup/modifyOrderError.jade:4 +msgid "Sorry, your order could not be modified." +msgstr "Сожалеем, Ваш запрос не может быть изменен." + +#: src/jade/popup/modifyOrderError.jade:5 +msgid "" +"Your original order was cancelled but the modified order was not placed. " +"
" +msgstr "Ваш первоначльный запрос был отменен, но измененный запрос не был размещен.
" + +#: src/jade/popup/modifyOrderError.jade:6 +msgid "" +"The quantity of your order changed by {{order.qtyChangeAfterCancel | " +"rpamount}} before the order could be modified.

" +msgstr "" + +#: src/jade/popup/modifyOrderError.jade:7 +msgid "" +"To safeguard against the possibility of overfills a new order has not been " +"placed.
" +msgstr "" + +#: src/jade/popup/modifyOrderError.jade:8 +msgid "" +"Please check your balance and history before placing the new order manually." +"
" +msgstr "Пожалуйста, проверьте Ваш баланс и историю, перед размещением нового запроса вручную." + +#: src/jade/popup/modifyOrderError.jade:10 src/jade/popup/unlock.jade:17 +msgid "Close" +msgstr "Закрыть" + #: src/jade/popup/unlock.jade:2 msgid "Unlock account" msgstr "Разблокировать аккаунт" -#: src/jade/popup/unlock.jade:5 src/jade/tabs/desktop/register.jade:28 -#: src/jade/tabs/login/form.jade:7 src/jade/tabs/recover.jade:33 -#: src/jade/tabs/register.jade:42 src/jade/tabs/security.jade:10 +#: src/jade/popup/unlock.jade:5 src/jade/tabs/login/form.jade:8 +#: src/jade/tabs/recover.jade:38 src/jade/tabs/register.jade:58 +#: src/jade/tabs/security.jade:12 msgid "Password" msgstr "Пароль" @@ -372,7 +653,7 @@ msgstr "Пароль" msgid "Please enter your password to show your secret key." msgstr "Введите Ваш пароль, чтобы увидеть ваш секретный ключ." -#: src/jade/popup/unlock.jade:9 src/jade/tabs/send.jade:199 +#: src/jade/popup/unlock.jade:9 src/jade/tabs/send.jade:205 msgid "Please enter your password to confirm this transaction." msgstr "Введите Ваш пароль для подтверждения транзакции." @@ -380,52 +661,146 @@ msgstr "Введите Ваш пароль для подтверждения т msgid "This password is incorrect, please try again." msgstr "Пароль указан неверно, повторите попытку." -#: src/jade/popup/unlock.jade:11 +#: src/jade/popup/unlock.jade:13 msgid "Confirming password" msgstr "Подтверждение пароля" -#: src/jade/popup/unlock.jade:14 src/jade/tabs/account/public.jade:44 -#: src/jade/tabs/security.jade:133 +#: src/jade/popup/unlock.jade:16 src/jade/tabs/account/public.jade:44 +#: src/jade/tabs/security.jade:146 msgid "Submit" msgstr "Подтвердить" -#: src/jade/popup/unlock.jade:15 -msgid "Close" -msgstr "Закрыть" - #: src/jade/tabs/2fa/form.jade:3 msgid "Country Code" msgstr "Код страны" -#: src/jade/tabs/2fa/form.jade:6 src/jade/tabs/kyc.jade:143 +#: src/jade/tabs/2fa/form.jade:6 src/jade/tabs/kyc.jade:162 msgid "Phone Number" msgstr "Номер телефона" +#: src/jade/tabs/_usd.jade:6 src/jade/tabs/apps.jade:5 +#: src/jade/tabs/balance.jade:5 src/jade/tabs/brl.jade:6 +#: src/jade/tabs/btc.jade:9 src/jade/tabs/eur.jade:6 +#: src/jade/tabs/exchange.jade:6 src/jade/tabs/fund.jade:6 +#: src/jade/tabs/gold.jade:6 src/jade/tabs/history.jade:6 +#: src/jade/tabs/jpy.jade:6 src/jade/tabs/kyc.jade:6 src/jade/tabs/mxn.jade:6 +#: src/jade/tabs/send.jade:6 src/jade/tabs/su.jade:5 +#: src/jade/tabs/trade.jade:7 src/jade/tabs/trust.jade:6 +#: src/jade/tabs/usd.jade:6 src/jade/tabs/withdraw.jade:6 +#: src/jade/tabs/xrp.jade:6 +msgid "You have to be online to see this screen" +msgstr "Вы должны быть в режиме онлайн, чтобы прочесть это сообщение" + +#: src/jade/tabs/_usd.jade:17 +msgid "USD instant deposit" +msgstr "" + +#: src/jade/tabs/_usd.jade:19 src/jade/tabs/_usd.jade:21 +msgid "Step 1 (Amount)" +msgstr "Шаг 1 (Количество)" + +#: src/jade/tabs/_usd.jade:22 +msgid "Step 2 (Confirmation)" +msgstr "Шаг 2 (Подтверждение)" + +#: src/jade/tabs/_usd.jade:23 +msgid "Step 3 (Complete deposit)" +msgstr "Шаг 3 (Совершение депозита)" + +#: src/jade/tabs/_usd.jade:26 +msgid "STEP 1: AMOUNT" +msgstr "ШАГ 1: КОЛИЧЕСТВО" + +#: src/jade/tabs/_usd.jade:28 +msgid "STEP 2: CONFIRMATION" +msgstr "ШАГ 2: ПОДТВЕРЖДЕНИЕ" + +#: src/jade/tabs/_usd.jade:30 +msgid "STEP 3: COMPLETE DEPOSIT" +msgstr "ШАГ 3: СОВЕРШЕНИЕ ДЕПОЗИТА" + +#: src/jade/tabs/_usd.jade:34 +msgid "" +"Success! You've completed your USD deposit. Your funds should be available " +"within a few minutes." +msgstr "" + +#: src/jade/tabs/_usd.jade:36 +msgid "You cancelled your deposit." +msgstr "Вы отменили Ваш депозит." + +#: src/jade/tabs/_usd.jade:38 +msgid "" +"Your deposit failed. Your bank account was not charged. Please contact " +"{{1}}." +msgstr "" + +#: src/jade/tabs/_usd.jade:49 src/jade/tabs/_usd.jade:91 +#: src/jade/tabs/fund.jade:41 src/jade/tabs/history.jade:172 +#: src/jade/tabs/trust.jade:89 +msgid "Amount" +msgstr "Количество" + +#: src/jade/tabs/_usd.jade:59 src/jade/tabs/_usd.jade:62 +msgid "Select your bank" +msgstr "Выберите ваш банк" + +#: src/jade/tabs/_usd.jade:77 +msgid "" +"Ripple Trade has partnered with SnapSwap to make USD deposits easier. By " +"continuing, you agree to SnapSwap's {{1}}To contact support, email {{2}}." +msgstr "" + +#: src/jade/tabs/_usd.jade:93 src/jade/tabs/history.jade:178 +msgid "Fee" +msgstr "Комиссия" + +#: src/jade/tabs/_usd.jade:95 +msgid "Total" +msgstr "Всего" + +#: src/jade/tabs/_usd.jade:98 +msgid "Calculating..." +msgstr "Вычисление..." + +#: src/jade/tabs/_usd.jade:109 src/jade/tabs/register.jade:126 +#: src/jade/tabs/register.jade:133 +msgid "Back" +msgstr "Назад" + +#: src/jade/tabs/_usd.jade:111 src/jade/tabs/btc.jade:73 +#: src/jade/tabs/exchange.jade:111 src/jade/tabs/send.jade:213 +#: src/jade/tabs/trade.jade:67 src/jade/tabs/trade.jade:77 +#: src/jade/tabs/trade.jade:248 src/jade/tabs/trade.jade:407 +#: src/jade/tabs/trust.jade:140 +msgid "Confirm" +msgstr "Подтвердить" + #: src/jade/tabs/account/navbar.jade:2 msgid "Public Information" msgstr "Публичная информация" -#: src/jade/tabs/account/private.jade:2 +#: src/jade/tabs/account/private.jade:1 msgid "Profile Information" msgstr "Информация профиля" -#: src/jade/tabs/account/private.jade:5 +#: src/jade/tabs/account/private.jade:3 msgid "Identity Information" msgstr "Информация по идентификации" -#: src/jade/tabs/account/private.jade:8 src/jade/tabs/account/private.jade:19 +#: src/jade/tabs/account/private.jade:8 src/jade/tabs/account/private.jade:17 msgid "Completed" msgstr "Закончен" -#: src/jade/tabs/account/private.jade:11 src/jade/tabs/account/private.jade:22 +#: src/jade/tabs/account/private.jade:9 src/jade/tabs/account/private.jade:18 msgid "Incomplete" msgstr "Незакончен" -#: src/jade/tabs/account/private.jade:13 src/jade/tabs/account/private.jade:24 +#: src/jade/tabs/account/private.jade:10 src/jade/tabs/account/private.jade:19 msgid "Complete your profile" msgstr "Заполните ваш профиль" -#: src/jade/tabs/account/private.jade:16 +#: src/jade/tabs/account/private.jade:12 msgid "Identity Questions" msgstr "Вопросы по идентификации" @@ -441,15 +816,17 @@ msgstr "Ваше Ripple имя было успешно изменено." msgid "Account settings" msgstr "Настройки аккаунта" -#: src/jade/tabs/account/public.jade:5 src/jade/tabs/login/form.jade:2 +#: src/jade/tabs/account/public.jade:5 src/jade/tabs/fund/menu.jade:2 +#: src/jade/tabs/login/form.jade:3 msgid "Ripple name" msgstr "Имя Ripple" -#: src/jade/tabs/account/public.jade:9 src/jade/tabs/advanced.jade:17 -#: src/jade/tabs/advanced.jade:34 src/jade/tabs/advanced.jade:53 -#: src/jade/tabs/advanced.jade:106 src/jade/tabs/security.jade:107 -#: src/jade/tabs/security.jade:165 src/jade/tabs/trust.jade:219 -#: src/jade/tabs/trust.jade:248 +#: src/jade/tabs/account/public.jade:9 src/jade/tabs/advanced.jade:27 +#: src/jade/tabs/advanced.jade:44 src/jade/tabs/advanced.jade:63 +#: src/jade/tabs/advanced.jade:86 src/jade/tabs/advanced.jade:134 +#: src/jade/tabs/contacts.jade:61 src/jade/tabs/security.jade:120 +#: src/jade/tabs/security.jade:180 src/jade/tabs/trust.jade:191 +#: src/jade/tabs/trust.jade:193 msgid "edit" msgstr "править" @@ -457,23 +834,24 @@ msgstr "править" msgid "New Ripple name" msgstr "Новое Ripple Имя" -#: src/jade/tabs/account/public.jade:17 src/jade/tabs/balance.jade:60 +#: src/jade/tabs/account/public.jade:17 src/jade/tabs/register.jade:35 +#: src/jade/tabs/widgets/balances.jade:24 msgid "Available" msgstr "Доступно" -#: src/jade/tabs/account/public.jade:20 src/jade/tabs/register.jade:30 +#: src/jade/tabs/account/public.jade:20 src/jade/tabs/register.jade:39 msgid "Already taken!" msgstr "Уже занято!" -#: src/jade/tabs/account/public.jade:21 src/jade/tabs/register.jade:31 +#: src/jade/tabs/account/public.jade:21 msgid "Reserved for {{usernameReservedFor}}{{1}}{{2}}" msgstr "Зарезервировано {{usernameReservedFor}}{{1}}{{2}}" -#: src/jade/tabs/account/public.jade:24 src/jade/tabs/register.jade:34 +#: src/jade/tabs/account/public.jade:24 src/jade/tabs/register.jade:45 msgid "Must be at least 2 characters" msgstr "Должно быть не менее двух символов" -#: src/jade/tabs/account/public.jade:25 src/jade/tabs/register.jade:35 +#: src/jade/tabs/account/public.jade:25 src/jade/tabs/register.jade:47 msgid "Must be at most 20 characters" msgstr "Должно быть не более 20 символов" @@ -481,11 +859,11 @@ msgstr "Должно быть не более 20 символов" msgid "Only a-z, 0-9 and hyphen (-)" msgstr "Только a-z, 0-9 и дефис (-)" -#: src/jade/tabs/account/public.jade:27 src/jade/tabs/register.jade:37 +#: src/jade/tabs/account/public.jade:27 src/jade/tabs/register.jade:51 msgid "Cannot start with hyphen (-)" msgstr "Не может начинаться с дефиса (-)" -#: src/jade/tabs/account/public.jade:28 src/jade/tabs/register.jade:38 +#: src/jade/tabs/account/public.jade:28 src/jade/tabs/register.jade:53 msgid "Cannot end with hyphen (-)" msgstr "Не может заканчиваться дефисом (-)" @@ -493,16 +871,16 @@ msgstr "Не может заканчиваться дефисом (-)" msgid "Cannot bundle hyphens (--)" msgstr "Нельзя объединять дефисы (--)" -#: src/jade/tabs/account/public.jade:30 src/jade/tabs/register.jade:40 +#: src/jade/tabs/account/public.jade:30 src/jade/tabs/register.jade:56 msgid "Checking..." msgstr "Проверка..." -#: src/jade/tabs/account/public.jade:32 src/jade/tabs/security.jade:113 +#: src/jade/tabs/account/public.jade:32 src/jade/tabs/security.jade:126 msgid "Current password" msgstr "Действующий пароль" -#: src/jade/tabs/account/public.jade:35 src/jade/tabs/security.jade:15 -#: src/jade/tabs/security.jade:20 +#: src/jade/tabs/account/public.jade:35 src/jade/tabs/security.jade:18 +#: src/jade/tabs/security.jade:23 msgid "Entered password is wrong." msgstr "Введен неверный пароль." @@ -514,111 +892,135 @@ msgstr "Ваше Ripple Имя было изменено. Пожалуйста msgid "Couldn't change your Ripple name, please try again later." msgstr "Не удалось сменить ваше Ripple Имя, пожалуйста попробуйте еще раз позднее." -#: src/jade/tabs/account/public.jade:47 src/jade/tabs/desktop/register.jade:67 -#: src/jade/tabs/fund.jade:77 src/jade/tabs/trade.jade:323 -msgid "Cancel" -msgstr "Отмена" +#: src/jade/tabs/account/public.jade:47 src/jade/tabs/advanced.jade:36 +#: src/jade/tabs/advanced.jade:53 src/jade/tabs/advanced.jade:77 +#: src/jade/tabs/advanced.jade:94 src/jade/tabs/advanced.jade:124 +#: src/jade/tabs/btc.jade:74 src/jade/tabs/contacts.jade:50 +#: src/jade/tabs/contacts.jade:93 src/jade/tabs/exchange.jade:113 +#: src/jade/tabs/exchange.jade:126 src/jade/tabs/kyc.jade:116 +#: src/jade/tabs/kyc.jade:131 src/jade/tabs/kyc.jade:156 +#: src/jade/tabs/kyc.jade:157 src/jade/tabs/kyc.jade:186 +#: src/jade/tabs/login/form.jade:26 src/jade/tabs/security.jade:79 +#: src/jade/tabs/security.jade:112 src/jade/tabs/security.jade:149 +#: src/jade/tabs/send.jade:215 src/jade/tabs/send.jade:227 +#: src/jade/tabs/send.jade:252 src/jade/tabs/send.jade:286 +#: src/jade/tabs/trade.jade:55 src/jade/tabs/trust.jade:141 +#: src/jade/tabs/trust.jade:143 src/jade/tabs/trust.jade:213 +#: src/jade/tabs/trust.jade:251 +msgid "cancel" +msgstr "отмена" -#: src/jade/tabs/account/public.jade:49 src/jade/tabs/contacts.jade:7 -#: src/jade/tabs/contacts.jade:34 src/jade/tabs/desktop/register.jade:88 +#: src/jade/tabs/account/public.jade:49 msgid "Ripple address" msgstr "Ripple адрес" +#: src/jade/tabs/advanced.jade:8 +msgid "Your blob vault has been changed successfully." +msgstr "" + +#: src/jade/tabs/advanced.jade:9 +msgid "Your bitcoin bridge has been changed successfully." +msgstr "" + +#: src/jade/tabs/advanced.jade:10 +msgid "Trustline advanced settings has been changed successfully." +msgstr "" + #: src/jade/tabs/advanced.jade:11 +msgid "Maximum network fee has been changed successfully." +msgstr "" + +#: src/jade/tabs/advanced.jade:12 +msgid "A new server has been successfully added." +msgstr "Новый сервер успешно добавлен." + +#: src/jade/tabs/advanced.jade:13 +msgid "A server has been successfully removed." +msgstr "Сервер успешно удален." + +#: src/jade/tabs/advanced.jade:14 +msgid "A server has been changed successfully." +msgstr "Сервер успешно изменен." + +#: src/jade/tabs/advanced.jade:21 msgid "Blob vault" msgstr "Blob-хранилище" -#: src/jade/tabs/advanced.jade:22 src/jade/tabs/advanced.jade:39 -#: src/jade/tabs/advanced.jade:63 src/jade/tabs/advanced.jade:92 -#: src/jade/tabs/contacts.jade:86 src/jade/tabs/fund.jade:79 -#: src/jade/tabs/security.jade:175 src/jade/tabs/send.jade:241 -#: src/jade/tabs/send.jade:270 src/jade/tabs/trust.jade:156 -#: src/jade/tabs/trust.jade:282 +#: src/jade/tabs/advanced.jade:32 src/jade/tabs/advanced.jade:49 +#: src/jade/tabs/advanced.jade:73 src/jade/tabs/advanced.jade:92 +#: src/jade/tabs/advanced.jade:120 src/jade/tabs/contacts.jade:88 +#: src/jade/tabs/fund.jade:65 src/jade/tabs/security.jade:190 +#: src/jade/tabs/send.jade:251 src/jade/tabs/send.jade:284 +#: src/jade/tabs/trust.jade:119 src/jade/tabs/trust.jade:232 msgid "Save" msgstr "Сохранить" -#: src/jade/tabs/advanced.jade:24 src/jade/tabs/advanced.jade:41 -#: src/jade/tabs/advanced.jade:65 src/jade/tabs/advanced.jade:94 -#: src/jade/tabs/contacts.jade:84 +#: src/jade/tabs/advanced.jade:34 src/jade/tabs/advanced.jade:51 +#: src/jade/tabs/advanced.jade:75 src/jade/tabs/advanced.jade:122 +#: src/jade/tabs/contacts.jade:91 src/jade/tabs/security.jade:198 msgid "Delete" msgstr "Удалить" -#: src/jade/tabs/advanced.jade:26 src/jade/tabs/advanced.jade:43 -#: src/jade/tabs/advanced.jade:67 src/jade/tabs/advanced.jade:96 -#: src/jade/tabs/btc.jade:62 src/jade/tabs/contacts.jade:58 -#: src/jade/tabs/contacts.jade:95 src/jade/tabs/exchange.jade:96 -#: src/jade/tabs/exchange.jade:109 src/jade/tabs/kyc.jade:104 -#: src/jade/tabs/kyc.jade:116 src/jade/tabs/kyc.jade:137 -#: src/jade/tabs/kyc.jade:138 src/jade/tabs/kyc.jade:162 -#: src/jade/tabs/login/form.jade:18 src/jade/tabs/security.jade:71 -#: src/jade/tabs/security.jade:101 src/jade/tabs/security.jade:136 -#: src/jade/tabs/send.jade:209 src/jade/tabs/send.jade:221 -#: src/jade/tabs/send.jade:242 src/jade/tabs/send.jade:272 -#: src/jade/tabs/trade.jade:32 src/jade/tabs/trade.jade:43 -#: src/jade/tabs/trust.jade:177 src/jade/tabs/trust.jade:179 -#: src/jade/tabs/trust.jade:263 src/jade/tabs/trust.jade:296 -msgid "cancel" -msgstr "отмена" - -#: src/jade/tabs/advanced.jade:28 +#: src/jade/tabs/advanced.jade:38 msgid "Bitcoin bridge" msgstr "Bitcoin-мост" -#: src/jade/tabs/advanced.jade:45 +#: src/jade/tabs/advanced.jade:55 msgid "Trust line" msgstr "Линии доверия" -#: src/jade/tabs/advanced.jade:50 src/jade/tabs/advanced.jade:61 -#: src/jade/tabs/desktop/register.jade:85 src/jade/tabs/security.jade:148 +#: src/jade/tabs/advanced.jade:60 src/jade/tabs/advanced.jade:71 +#: src/jade/tabs/security.jade:162 msgid "Show" msgstr "Отображать" -#: src/jade/tabs/advanced.jade:51 src/jade/tabs/desktop/register.jade:86 -#: src/jade/tabs/security.jade:149 +#: src/jade/tabs/advanced.jade:61 src/jade/tabs/security.jade:163 msgid "Hide" msgstr "Скрыты" -#: src/jade/tabs/advanced.jade:68 +#: src/jade/tabs/advanced.jade:78 +msgid "Network settings" +msgstr "Настройки сети" + +#: src/jade/tabs/advanced.jade:80 +msgid "Maximum network fee" +msgstr "Максимальная комиссия сети" + +#: src/jade/tabs/advanced.jade:96 msgid "Server settings" msgstr "Настройки Сервера" -#: src/jade/tabs/advanced.jade:73 +#: src/jade/tabs/advanced.jade:101 msgid "WebSocket host name" msgstr "WebSocket имя хоста" -#: src/jade/tabs/advanced.jade:75 +#: src/jade/tabs/advanced.jade:103 msgid "Port number" msgstr "Номер порта" -#: src/jade/tabs/advanced.jade:81 +#: src/jade/tabs/advanced.jade:109 msgid "Socket ip or hostname is invalid." msgstr "Socket ip или имя хоста указаны не верно." -#: src/jade/tabs/advanced.jade:83 +#: src/jade/tabs/advanced.jade:111 msgid "Port number is invalid." msgstr "Номер порта указан не верно." -#: src/jade/tabs/advanced.jade:90 src/jade/tabs/advanced.jade:103 +#: src/jade/tabs/advanced.jade:118 src/jade/tabs/advanced.jade:131 msgid "Secure" msgstr "Безопасное" -#: src/jade/tabs/advanced.jade:104 +#: src/jade/tabs/advanced.jade:132 msgid "Not Secure" msgstr "Не Безопасное" -#: src/jade/tabs/advanced.jade:110 +#: src/jade/tabs/advanced.jade:138 msgid "Add new server" msgstr "Добавить новый сервер" -#: src/jade/tabs/apps.jade:5 src/jade/tabs/balance.jade:5 -#: src/jade/tabs/btc.jade:6 src/jade/tabs/exchange.jade:6 -#: src/jade/tabs/fund.jade:6 src/jade/tabs/history.jade:6 -#: src/jade/tabs/kyc.jade:6 src/jade/tabs/send.jade:6 src/jade/tabs/su.jade:5 -#: src/jade/tabs/trade.jade:7 src/jade/tabs/trust.jade:6 -#: src/jade/tabs/usd.jade:6 src/jade/tabs/withdraw.jade:6 -#: src/jade/tabs/xrp.jade:6 -msgid "You have to be online to see this screen" -msgstr "Вы должны быть в режиме онлайн, чтобы прочесть это сообщение" +#: src/jade/tabs/apps.jade:27 +msgid "App Ripple Address" +msgstr "" #: src/jade/tabs/apps.jade:29 msgid "Please enter a ripple address." @@ -628,460 +1030,535 @@ msgstr "Введите адрес Ripple." msgid "Please enter a valid ripple address." msgstr "Введите действующий адрес Ripple." -#: src/jade/tabs/balance.jade:21 -msgid "Total Balance{{1}}" -msgstr "Общий баланс{{1}}" +#: src/jade/tabs/banner/announcement.jade:2 +msgid "Help our team improve Ripple Trade! {{1:Take a quick user survey.}}" +msgstr "Помогите наша команда улучшить Ripple Trade! {{1:. Пройдите быстрый опрос}}!" -#: src/jade/tabs/balance.jade:22 -msgid "Estimated from latest trade price" -msgstr "Ориентировочно от последней цены на торгах" +#: src/jade/tabs/banner/unfunded.jade:2 +msgid "" +"Welcome to Ripple Trade! Your account needs to be activated. You can " +"activate it in 2 ways:" +msgstr "" -#: src/jade/tabs/balance.jade:29 -msgid "(excluding negative balances)" -msgstr "(без отрицательных балансов)" +#: src/jade/tabs/banner/unfunded.jade:4 +msgid "" +"Have another user send XRP to your Ripple name " +"(~{{userCredentials.username}}). {{1}}" +msgstr "" -#: src/jade/tabs/balance.jade:67 -msgid "Reserve" -msgstr "Резерв" +#: src/jade/tabs/brl.jade:24 src/jade/tabs/eur.jade:24 +#: src/jade/tabs/gold.jade:24 src/jade/tabs/jpy.jade:24 +#: src/jade/tabs/mxn.jade:24 src/jade/tabs/trust.jade:42 +#: src/jade/tabs/usd.jade:24 +msgid "There was an error while saving your changes." +msgstr "При сохранении изменний произошла ошибка ." -#: src/jade/tabs/balance.jade:85 -msgid "Unverified" -msgstr "Неподтвержденно" +#: src/jade/tabs/brl.jade:28 src/jade/tabs/eur.jade:27 +#: src/jade/tabs/gold.jade:27 src/jade/tabs/jpy.jade:28 +#: src/jade/tabs/mxn.jade:28 src/jade/tabs/trust.jade:45 +#: src/jade/tabs/usd.jade:27 +msgid "You must have at least {{1}} to add a new trust line. {{2}}" +msgstr "У Вас должно быть по меньшей мере {{1}} для того, чтобы создать новую линию доверия. {{2}}" -#: src/jade/tabs/balance.jade:92 -msgid "Enter bitcoin address." -msgstr "Введите адрес bitcoin." +#: src/jade/tabs/brl.jade:38 +msgid "Brazilian Real Deposit" +msgstr "" -#: src/jade/tabs/balance.jade:95 -msgid "Enter amount to withdraw." -msgstr "Введите сумму для вывода." +#: src/jade/tabs/brl.jade:41 src/jade/tabs/btc.jade:35 +#: src/jade/tabs/eur.jade:38 src/jade/tabs/gold.jade:40 +#: src/jade/tabs/jpy.jade:41 src/jade/tabs/mxn.jade:41 +#: src/jade/tabs/trust.jade:167 src/jade/tabs/usd.jade:38 +msgid "Gateway" +msgstr "Шлюз" -#: src/jade/tabs/balance.jade:100 src/jade/tabs/balance.jade:102 -msgid "Enter a valid bitcoin address" -msgstr "Введите действующий адрес bitcoin. " +#: src/jade/tabs/brl.jade:42 src/jade/tabs/eur.jade:48 +#: src/jade/tabs/mxn.jade:81 src/jade/tabs/mxn.jade:93 +#: src/jade/tabs/mxn.jade:103 src/jade/tabs/security.jade:49 +msgid "{{1}}{{2}}" +msgstr "" -#: src/jade/tabs/balance.jade:106 -msgid "Enter a valid amount" -msgstr "Введите действительную сумму" +#: src/jade/tabs/brl.jade:43 +msgid "Ripple (~rippex)" +msgstr "Ripple (~rippex)" -#: src/jade/tabs/balance.jade:113 -msgid "You are sending {{1}} BTC to:" -msgstr "Вы посылаете {{1}} BTC:" +#: src/jade/tabs/brl.jade:46 src/jade/tabs/btc.jade:39 +#: src/jade/tabs/eur.jade:44 src/jade/tabs/gold.jade:44 +#: src/jade/tabs/jpy.jade:45 src/jade/tabs/mxn.jade:46 +#: src/jade/tabs/usd.jade:44 +msgid "Availability" +msgstr "Доступность" -#: src/jade/tabs/balance.jade:119 src/jade/tabs/balance.jade:134 -#: src/jade/tabs/register.jade:105 src/jade/tabs/register.jade:111 -msgid "Back" -msgstr "Назад" +#: src/jade/tabs/brl.jade:47 +msgid "Brazil" +msgstr "" -#: src/jade/tabs/balance.jade:122 src/jade/tabs/btc.jade:61 -#: src/jade/tabs/exchange.jade:94 src/jade/tabs/send.jade:207 -#: src/jade/tabs/trade.jade:57 src/jade/tabs/trade.jade:67 -#: src/jade/tabs/trade.jade:241 src/jade/tabs/trust.jade:176 -msgid "Confirm" -msgstr "Подтвердить" +#: src/jade/tabs/brl.jade:49 src/jade/tabs/btc.jade:42 +#: src/jade/tabs/eur.jade:47 src/jade/tabs/gold.jade:47 +#: src/jade/tabs/jpy.jade:48 src/jade/tabs/mxn.jade:49 +#: src/jade/tabs/usd.jade:47 +msgid "Fees" +msgstr "" -#: src/jade/tabs/balance.jade:127 -msgid "Reconnecting to Ripple network" -msgstr "Возобновляем соодинение с сетью Рипл" +#: src/jade/tabs/brl.jade:50 src/jade/tabs/jpy.jade:49 +#: src/jade/tabs/kyc.jade:111 src/jade/tabs/kyc.jade:126 +#: src/jade/tabs/kyc.jade:151 +msgid "{{1}}{{2}}{{3}}" +msgstr "" -#: src/jade/tabs/balance.jade:128 -msgid "Transaction Successful" -msgstr "Транзакция прошла успешно" +#: src/jade/tabs/brl.jade:51 +msgid "Deposit: 1.50 BRL + 0.5%" +msgstr "" -#: src/jade/tabs/balance.jade:129 -msgid "Warning" -msgstr "Предупреждение" +#: src/jade/tabs/brl.jade:52 +msgid "Transfer: 0%" +msgstr "" -#: src/jade/tabs/balance.jade:130 -msgid "Transaction Failed" -msgstr "Транзакция некорректна" +#: src/jade/tabs/brl.jade:56 src/jade/tabs/btc.jade:45 +#: src/jade/tabs/eur.jade:53 src/jade/tabs/gold.jade:50 +#: src/jade/tabs/jpy.jade:54 src/jade/tabs/mxn.jade:52 +#: src/jade/tabs/usd.jade:50 +msgid "Rating" +msgstr "Рейтинг" -#: src/jade/tabs/balance.jade:131 -msgid "Message" -msgstr "Сообщение" +#: src/jade/tabs/brl.jade:62 +msgid "" +"Ripple Trade has partnered with Rippex to provide easy access to BRL. By " +"continuing, you agree with Rippex's {{1}}Following this action will enable " +"Rippex to hold BRL on your behalf." +msgstr "" -#: src/jade/tabs/banner/announcement.jade:2 -msgid "Help our team improve Ripple Trade! {{1:Take a quick user survey.}}" -msgstr "Помогите наша команда улучшить Ripple Trade! {{1:. Пройдите быстрый опрос}}!" +#: src/jade/tabs/brl.jade:69 +msgid "Add Rippex" +msgstr "" -#: src/jade/tabs/banner/announcement.jade:5 +#: src/jade/tabs/brl.jade:70 +msgid "Adding..." +msgstr "" + +#: src/jade/tabs/brl.jade:71 src/jade/tabs/eur.jade:65 +#: src/jade/tabs/jpy.jade:64 src/jade/tabs/usd.jade:62 +msgid "Hide instructions" +msgstr "Скрыть инструкции" + +#: src/jade/tabs/brl.jade:72 src/jade/tabs/eur.jade:66 +#: src/jade/tabs/jpy.jade:65 src/jade/tabs/usd.jade:63 +msgid "Show instructions" +msgstr "Показать инструкции" + +#: src/jade/tabs/brl.jade:75 src/jade/tabs/btc.jade:83 +msgid "{{1}}Not connected" +msgstr "" + +#: src/jade/tabs/brl.jade:78 src/jade/tabs/btc.jade:86 +msgid "{{1}}Connected" +msgstr "" + +#: src/jade/tabs/brl.jade:81 src/jade/tabs/eur.jade:71 +#: src/jade/tabs/gold.jade:73 src/jade/tabs/jpy.jade:74 +#: src/jade/tabs/mxn.jade:76 src/jade/tabs/usd.jade:68 +msgid "Your account has to be activated before you can add a gateway account." +msgstr "Ваш аккаунт должен быть активирован перед подключением шлюза." + +#: src/jade/tabs/brl.jade:84 src/jade/tabs/eur.jade:75 +#: src/jade/tabs/gold.jade:76 src/jade/tabs/jpy.jade:77 +#: src/jade/tabs/mxn.jade:79 src/jade/tabs/usd.jade:72 msgid "×" msgstr "×" -#: src/jade/tabs/banner/unfunded.jade:2 -msgid "" -"Welcome to Ripple Trade! To activate your account, you'll need at least 20 " -"XRP." -msgstr "Добро пожаловать на сайт Ripple Trade! Для активации Вашего аккаунта вам нужно не менее 20 XRP." +#: src/jade/tabs/brl.jade:85 +msgid "NEW CUSTOMERS- SIGN UP AT RIPPEX" +msgstr "" -#: src/jade/tabs/banner/unfunded.jade:4 +#: src/jade/tabs/brl.jade:86 msgid "" -"Have another user send XRP to your Ripple name " -"(~{{userCredentials.username}})" -msgstr "Попросите другого пользователя переслать Вам XRP на Ваше Ripple имя (~{{userCredentials.username}})" +"{{1}} at Rippex.net to initiate deposits and withdrawals. You will " +"need:{{2}}" +msgstr "" -#: src/jade/tabs/banner/unfunded.jade:5 -msgid "" -"Use the {{1}}. A small amount of your first deposit will be used to " -"activate your account." -msgstr "Используйте {{1}}. Небольшое количество средств с первого депозита будет использоваться для активации аккаунта." +#: src/jade/tabs/brl.jade:90 +msgid "A {{1}}" +msgstr "" -#: src/jade/tabs/btc.jade:18 -msgid "Bitcoin Deposit" -msgstr "Bitcoin вклад" +#: src/jade/tabs/brl.jade:92 +msgid "A bank account in Brazil." +msgstr "" -#: src/jade/tabs/btc.jade:26 -msgid "" -"A small amount (~.001 BTC) of your first transfer will be converted to XRP " -"to activate your wallet. {{1:Why?}}" -msgstr "Небольшая сумма (~.001 BTC) из Вашего первого вложения будет конвертирована в XRP для активации Вашего кошелька. {{1:Почему?}}" +#: src/jade/tabs/brl.jade:96 +msgid "EXISTING RIPPEX CUSTOMERS" +msgstr "" -#: src/jade/tabs/btc.jade:30 -msgid "Your current deposit limit is:" -msgstr "Текущий лимит вашего вложения:" +#: src/jade/tabs/brl.jade:97 +msgid "If you have a Rippex account, {{1}}" +msgstr "" -#: src/jade/tabs/btc.jade:32 -msgid "Remove Limit" -msgstr "Удалить лимит " +#: src/jade/tabs/brl.jade:100 +msgid "DEPOSIT INSTRUCTIONS" +msgstr "ИНСТРУКЦИИ ПО ДЕПОЗИТУ" + +#: src/jade/tabs/brl.jade:101 +msgid "Rippex accepts deposits from all Brazilian banks. Instructions {{1}}" +msgstr "" + +#: src/jade/tabs/btc.jade:19 +msgid "Success! You can deposit BTC via your generated BTC receiving address." +msgstr "" + +#: src/jade/tabs/btc.jade:21 +msgid "There was an error with your request. {{1}}" +msgstr "" + +#: src/jade/tabs/btc.jade:30 +msgid "Bitcoin Deposit" +msgstr "Bitcoin вклад" #: src/jade/tabs/btc.jade:36 -msgid "Waiting for response from SnapSwap service..." -msgstr "В ожидании ответа от службы SnapSwap ..." +msgid "btc2ripple (~snapswap) {{1}}" +msgstr "" + +#: src/jade/tabs/btc.jade:40 src/jade/tabs/gold.jade:45 +#: src/jade/tabs/jpy.jade:46 +msgid "All countries" +msgstr "Все страны" -#: src/jade/tabs/btc.jade:38 +#: src/jade/tabs/btc.jade:43 src/jade/tabs/mxn.jade:50 +msgid "0%" +msgstr "0%" + +#: src/jade/tabs/btc.jade:50 msgid "" -"To deposit, generate a bitcoin receiving address using the {{1}} service " -"powered by SnapSwap." -msgstr "Для вложения, создайте адрес получателя bitcoin, используя услуги {{1}} на базе SnapSwap." +"Ripple Trade has partnered with btc2ripple to make depositing BTC easier. By" +" proceeding, you agree to the btc2ripple {{1}} Following this action will " +"allow btc2ripple to hold BTC on your behalf." +msgstr "" -#: src/jade/tabs/btc.jade:45 -msgid "Generate bitcoin address" -msgstr "Сгенерировать адрес bitcoin" +#: src/jade/tabs/btc.jade:56 +msgid "Add btc2ripple" +msgstr "" -#: src/jade/tabs/btc.jade:49 src/jade/tabs/security.jade:56 -#: src/jade/tabs/trust.jade:160 +#: src/jade/tabs/btc.jade:60 src/jade/tabs/security.jade:64 +#: src/jade/tabs/trust.jade:123 msgid "Connect" msgstr "Соединиться" -#: src/jade/tabs/btc.jade:51 +#: src/jade/tabs/btc.jade:62 msgid "btc2ripple would like to:" msgstr "btc2ripple хотел бы:" -#: src/jade/tabs/btc.jade:53 -msgid "- Receive your email address{{1}}" -msgstr "- Получите ваш почтовый адрес{{1}}" +#: src/jade/tabs/btc.jade:64 +msgid "- Receive your email address {{1}}" +msgstr "" -#: src/jade/tabs/btc.jade:54 +#: src/jade/tabs/btc.jade:65 msgid "({{userBlob.data.email}})" msgstr "({{userBlob.data.email}})" -#: src/jade/tabs/btc.jade:55 +#: src/jade/tabs/btc.jade:66 msgid "- Hold deposited BTC on your behalf" msgstr "- Хранить вложенные BTC от вашего имени" -#: src/jade/tabs/btc.jade:56 +#: src/jade/tabs/btc.jade:67 msgid "By proceeding, you agree to the btc2ripple {{1}}" msgstr "Продолжая, вы тем самым соглашаетесь с btc2ripple {{1}}" -#: src/jade/tabs/btc.jade:63 +#: src/jade/tabs/btc.jade:75 msgid "" "SnapSwap's btc2ripple service is currently unavailable. Please check back " "later." msgstr "Сервис SnapSwap's btc2ripple временно недоступен. Пожалуйста, повторите попытку позже." -#: src/jade/tabs/contacts.jade:6 src/jade/tabs/contacts.jade:26 +#: src/jade/tabs/btc.jade:94 +msgid "Personal Deposit address" +msgstr "" + +#: src/jade/tabs/btc.jade:96 +msgid "Your account is fully verified." +msgstr "Ваш аккаунт полностью верифицирован." + +#: src/jade/tabs/btc.jade:104 +msgid "Withdrawal instructions" +msgstr "Инструкции по выводу средств" + +#: src/jade/tabs/btc.jade:105 +msgid "" +"To withdraw to a BTC address, go to the Send tab and enter the BTC address. " +"Using the btc2ripple service, you will be able tosend to that BTC address." +msgstr "" + +#: src/jade/tabs/btc.jade:110 +msgid "Waiting for response from SnapSwap service..." +msgstr "В ожидании ответа от службы SnapSwap ..." + +#: src/jade/tabs/btc.jade:112 +msgid "" +"To deposit, generate a bitcoin receiving address using the {{1}} service " +"powered by SnapSwap." +msgstr "Для вложения, создайте адрес получателя bitcoin, используя услуги {{1}} на базе SnapSwap." + +#: src/jade/tabs/contacts.jade:8 +msgid "A new contact has been successfully added." +msgstr "Новый контакт успешно добавлен." + +#: src/jade/tabs/contacts.jade:9 +msgid "Your contact has been successfully updated." +msgstr "Ваш контакт успешно обновлен." + +#: src/jade/tabs/contacts.jade:10 +msgid "A contact has been successfully removed." +msgstr "Контакт был успешно удален." + +#: src/jade/tabs/contacts.jade:12 src/jade/tabs/contacts.jade:24 +msgid "Contact" +msgstr "Контакт" + +#: src/jade/tabs/contacts.jade:13 src/jade/tabs/contacts.jade:32 msgid "Ripple name or address" msgstr "Имя или адрес Ripple " -#: src/jade/tabs/contacts.jade:9 src/jade/tabs/contacts.jade:13 -#: src/jade/tabs/contacts.jade:56 +#: src/jade/tabs/contacts.jade:15 src/jade/tabs/contacts.jade:19 +#: src/jade/tabs/contacts.jade:48 msgid "Add contact" msgstr "Добавить контакт" -#: src/jade/tabs/contacts.jade:18 -msgid "Contact" -msgstr "Контакт" - -#: src/jade/tabs/contacts.jade:21 +#: src/jade/tabs/contacts.jade:27 src/jade/tabs/send.jade:245 +#: src/jade/tabs/send.jade:277 msgid "Please enter a contact." msgstr "Пожалуйста, введите контакт." -#: src/jade/tabs/contacts.jade:22 +#: src/jade/tabs/contacts.jade:28 msgid "This contact already exists." msgstr "Такой контакт уже существует." -#: src/jade/tabs/contacts.jade:30 +#: src/jade/tabs/contacts.jade:36 msgid "Please enter a Ripple name." msgstr "Пожалуйста, введите имя Ripple." -#: src/jade/tabs/contacts.jade:31 src/jade/tabs/contacts.jade:47 +#: src/jade/tabs/contacts.jade:37 src/jade/tabs/contacts.jade:45 msgid "" "You already have a contact with the same Ripple name and/or the same " "Destination tag." msgstr "У вас уже есть контакт с тем же Ripple адресом и / или же тегом назначения." -#: src/jade/tabs/contacts.jade:32 +#: src/jade/tabs/contacts.jade:38 msgid "Not a valid Ripple name or address." msgstr "Некорректные Ripple имя или адрес." -#: src/jade/tabs/contacts.jade:38 -msgid "Please enter a Ripple address." -msgstr "Пожалуйста, введите Ripple адрес." - -#: src/jade/tabs/contacts.jade:39 src/jade/tabs/contacts.jade:53 -msgid "" -"You already have a contact with the same Ripple address and/or the same " -"Destination tag." -msgstr "У вас уже есть контакт с тем же Ripple адресом и / или же тегом назначения." - -#: src/jade/tabs/contacts.jade:40 -msgid "Not a valid Ripple address." -msgstr "Некорректный Риппл адрес." - -#: src/jade/tabs/contacts.jade:43 src/jade/tabs/contacts.jade:49 -#: src/jade/tabs/contacts.jade:77 src/jade/tabs/send.jade:51 -#: src/jade/tabs/tx.jade:54 +#: src/jade/tabs/contacts.jade:41 src/jade/tabs/contacts.jade:81 +#: src/jade/tabs/send.jade:42 src/jade/tabs/tx.jade:56 msgid "Destination tag" msgstr "Метка назначения" -#: src/jade/tabs/contacts.jade:46 src/jade/tabs/contacts.jade:52 -#: src/jade/tabs/send.jade:57 +#: src/jade/tabs/contacts.jade:42 +msgid "Leave blank if not applicable" +msgstr "Оставьте пустым, если не применимо" + +#: src/jade/tabs/contacts.jade:44 src/jade/tabs/send.jade:46 msgid "Invalid destination tag" msgstr "Неверная метка назначения" -#: src/jade/tabs/contacts.jade:66 src/jade/tabs/send.jade:236 -#: src/jade/tabs/send.jade:264 +#: src/jade/tabs/contacts.jade:72 msgid "You already have a contact with the same name." msgstr "У Вас уже имеется контакт с этим именем." -#: src/jade/tabs/contacts.jade:74 +#: src/jade/tabs/contacts.jade:78 msgid "You already have this address." msgstr "У Вас уже есть этот адрес." -#: src/jade/tabs/contacts.jade:75 +#: src/jade/tabs/contacts.jade:79 src/jade/tabs/debug.jade:14 msgid "Not a valid address." msgstr "Некорректный адрес." -#: src/jade/tabs/contacts.jade:80 +#: src/jade/tabs/contacts.jade:84 msgid "Invalid destination tag." msgstr "Неверная метка назначения" -#: src/jade/tabs/contacts.jade:93 src/jade/tabs/trust.jade:232 -msgid "Edit" -msgstr "Править" - -#: src/jade/tabs/contacts.jade:98 +#: src/jade/tabs/contacts.jade:94 msgid "" "You don't have any contacts yet. Click on 'Add contact' button in the top " "right corner to add a new contact." msgstr "У Вас еще нет контактов. Чтобы добавить конктакт нажмите \"Добавить контакт\" в правом верхнем углу." -#: src/jade/tabs/desktop/login.jade:3 -msgid "" -"You will not be able to login to the downloadable client using a " -"username/password you create on Ripple Trade or the web version of the " -"Ripple Client. You can only use a secret key to access an existing Ripple " -"account. This is because the downloadable client stores your login " -"information locally on your computer, so your account is as safe as the " -"security of your personal computer." -msgstr "Вы не сможете войти в систему скачивоемой программы-клиента, используя имя пользователя/пароль, созданные на Ripple Trade или в Интернет-версии Ripple Client. Для доступа действующего аккаунта Ripple, Вы можете использовать исключительно секретный ключ. Это является результатом того, что скачиваемая программа-клиент хранит Ваши данные для входа в систему на Вашем компьютере локально, в результате чего Ваш аккаунт защищен также надежно, как и Ваш компьютер." - -#: src/jade/tabs/desktop/login.jade:12 src/jade/tabs/desktop/login.jade:34 -msgid "Open account" -msgstr "Открыть аккаунт" - -#: src/jade/tabs/desktop/login.jade:15 src/jade/tabs/desktop/register.jade:5 -#: src/jade/tabs/desktop/register.jade:65 -msgid "Create new account" -msgstr "Создать новый аккаунт" - -#: src/jade/tabs/desktop/login.jade:18 -msgid "Select account file {{walletfile}}" -msgstr "Выбрать тип аккаунта {{walletfile}}" - -#: src/jade/tabs/desktop/login.jade:21 -msgid "Select account file" -msgstr "Выбрать тип аккаунта" - -#: src/jade/tabs/desktop/login.jade:24 -msgid "Account password" -msgstr "Пароль аккаунта" +#: src/jade/tabs/debug.jade:9 +msgid "Enter a Ripple name or address" +msgstr "" -#: src/jade/tabs/desktop/register.jade:8 -msgid "Open existing account" -msgstr "Открыть существующий аккаунт" +#: src/jade/tabs/debug.jade:13 +msgid "Please enter an address." +msgstr "" -#: src/jade/tabs/desktop/register.jade:11 -msgid "Create an empty account" -msgstr "Создать пустой аккаунт" +#: src/jade/tabs/debug.jade:17 +msgid "Turn on debug mode" +msgstr "" -#: src/jade/tabs/desktop/register.jade:14 -msgid "Create a new account with a secret key" -msgstr "Создать новый аккаунт с секретным ключом" +#: src/jade/tabs/eur.jade:35 +msgid "Euro Deposit" +msgstr "" -#: src/jade/tabs/desktop/register.jade:18 -msgid "Create empty account" -msgstr "Создать пустой аккаунт" +#: src/jade/tabs/eur.jade:39 +msgid "SnapSwap EU (~SnapSwap){{1}}{{2}}" +msgstr "" -#: src/jade/tabs/desktop/register.jade:20 -msgid "Encrypt your new account file: {{walletfile}}" -msgstr "Зашифруйте ваш новый аккаунт: {{walletfile}}" +#: src/jade/tabs/eur.jade:45 +msgid "All countries, except USA" +msgstr "" -#: src/jade/tabs/desktop/register.jade:24 -msgid "Wallet file" -msgstr "Тип кошелька" +#: src/jade/tabs/eur.jade:49 +msgid "€ 0.31 – € 15.00" +msgstr "" -#: src/jade/tabs/desktop/register.jade:31 +#: src/jade/tabs/eur.jade:59 msgid "" -"Your password is weak. It is not a mix of letters, numbers and symbols or it" -" is the same as your Ripple name." -msgstr "Ваш пароль слабый. Это не совокупность букв, цифр и символов или пароль совпадает с Вашим Ripple именем." - -#: src/jade/tabs/desktop/register.jade:33 src/jade/tabs/recover.jade:40 -#: src/jade/tabs/register.jade:49 src/jade/tabs/security.jade:123 -msgid "Confirm password" -msgstr "Подтвердить пароль " - -#: src/jade/tabs/desktop/register.jade:36 src/jade/tabs/recover.jade:43 -#: src/jade/tabs/register.jade:52 src/jade/tabs/security.jade:126 -msgid "Passwords do not match" -msgstr "Пароли не совпадают" - -#: src/jade/tabs/desktop/register.jade:42 -msgid "Encrypt account" -msgstr "Зашифровать аккаунт" - -#: src/jade/tabs/desktop/register.jade:44 -msgid "Cancel and delete account file" -msgstr "Отменить и удалить тип аккаунта" - -#: src/jade/tabs/desktop/register.jade:50 -msgid "Create account with secret key" -msgstr "Создать аккаунт с секретным ключом" +"Ripple Trade has partnered with SnapSwap to provide easier access to EUR. " +"Following this action will enable SnapSwap to hold EUR on your behalf." +msgstr "" -#: src/jade/tabs/desktop/register.jade:55 -msgid "Enter your secret key" -msgstr "Введите Ваш секретный ключ" +#: src/jade/tabs/eur.jade:69 src/jade/tabs/usd.jade:66 +msgid "Not connected" +msgstr "" -#: src/jade/tabs/desktop/register.jade:62 -msgid "Secret is invalid" -msgstr "Секретный ключ неверный" +#: src/jade/tabs/eur.jade:70 src/jade/tabs/usd.jade:67 +msgid "Connected" +msgstr "" -#: src/jade/tabs/desktop/register.jade:69 src/jade/tabs/register.jade:95 -msgid "Have an account? {{1:Log In}}" -msgstr "Уже есть аккаунт? {{1:Log In}}" +#: src/jade/tabs/eur.jade:76 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.EU" +msgstr "" -#: src/jade/tabs/desktop/register.jade:75 -msgid "Important:" -msgstr "Важно:" +#: src/jade/tabs/eur.jade:77 +msgid "Register and verify your account at SnapSwap EU. You will need: {{1}}" +msgstr "" -#: src/jade/tabs/desktop/register.jade:76 +#: src/jade/tabs/eur.jade:81 src/jade/tabs/usd.jade:78 msgid "" -"The secret key below gives access to your money in the unlikely case that " -"you lose your password. In that case your contacts will be lost, but with " -"this secret key alone anyone can retrieve your money. So please store it " -"somewhere PRIVATE AND SAFE. Read more about keys and wallet safety in {{1}}" -msgstr "Секретный ключ аккаунта, приведенный ниже, дает Вам доступ к деньгам в том маловероятном случае, если Вы потеряете Ваш пароль. В этом случае Ваши контакты будут утеряны, но с этим секретным ключем аккаунта любой желающий может получить Ваши деньги. Поэтому, пожалуйста, храните его в НАДЕЖНОМ и БЕЗОПАСНОМ месте. Подробнее о ключах и безопасности кошелька Вы можете узнать в {{1}}" +"A valid government-issued ID: driver license, passport, ID card, or visa " +"stamp." +msgstr "" -#: src/jade/tabs/desktop/register.jade:79 src/jade/tabs/settings/navbar.jade:2 -msgid "Security" -msgstr "Безопасность" +#: src/jade/tabs/eur.jade:83 src/jade/tabs/usd.jade:80 +msgid "A proof of address: driver license, utility bill, bank statement, etc." +msgstr "" -#: src/jade/tabs/desktop/register.jade:81 -msgid "Passphrase:{{1}}{{2}}{{3}}{{4}}" -msgstr "Кодовая фраза:{{1}}{{2}}{{3}}{{4}}" +#: src/jade/tabs/eur.jade:85 +msgid "EXISTING SNAPSWAP EU CUSTOMERS" +msgstr "" -#: src/jade/tabs/desktop/register.jade:90 -msgid "Secret key:" -msgstr "Секретный ключ:" +#: src/jade/tabs/eur.jade:89 src/jade/tabs/jpy.jade:94 +#: src/jade/tabs/usd.jade:86 +msgid "Login to your account {{1}}" +msgstr "" -#: src/jade/tabs/desktop/register.jade:95 src/jade/tabs/register.jade:150 -msgid "Show secret key" -msgstr "Показать секретный ключ" +#: src/jade/tabs/eur.jade:92 src/jade/tabs/jpy.jade:96 +msgid "DEPOSITS AND WITHDRAWALS:" +msgstr "" -#: src/jade/tabs/desktop/register.jade:97 src/jade/tabs/register.jade:151 -msgid "Hide secret key" -msgstr "Скрыть секретный ключ" +#: src/jade/tabs/eur.jade:96 +msgid "Deposit from your bank (2-4 business days)" +msgstr "" -#: src/jade/tabs/desktop/register.jade:98 -msgid "Have you saved your secret key somewhere safe?" -msgstr "Вы сохранили Ваш секретный ключ в безопасном месте?" +#: src/jade/tabs/eur.jade:98 +msgid "Withdraw to your bank account in SEPA (2-4 business days)" +msgstr "" -#: src/jade/tabs/desktop/register.jade:101 -msgid "Yes, I saved my secret key" -msgstr "Да, я сохранил мой секретный ключ" +#: src/jade/tabs/eur.jade:100 +msgid "Withdraw to SmartyCash Card (instant)" +msgstr "" #: src/jade/tabs/exchange.jade:13 msgid "You have to be funded before you can exchange money" msgstr "Ваш счет должен быть активирован, прежде чем вы сможете производить обмен денег" -#: src/jade/tabs/exchange.jade:18 -msgid "Convert one currency into another." -msgstr "Конвертировать одну валюту в другую." +#: src/jade/tabs/exchange.jade:23 +msgid "Buy (Market Order)" +msgstr "" + +#: src/jade/tabs/exchange.jade:24 +msgid "" +"Submit a buy order at the current market rate. Orders will execute " +"instantly." +msgstr "" -#: src/jade/tabs/exchange.jade:21 +# Receive (amount) +#: src/jade/tabs/exchange.jade:27 msgid "Receive (amount)" -msgstr "Получить" +msgstr "" + +#: src/jade/tabs/exchange.jade:34 src/jade/tabs/widgets/balances.jade:49 +msgid "add gateway" +msgstr "" -#: src/jade/tabs/exchange.jade:28 src/jade/tabs/send.jade:92 +#: src/jade/tabs/exchange.jade:37 src/jade/tabs/send.jade:90 msgid "Please enter an amount." msgstr "Пожалуйста, введите сумму." -#: src/jade/tabs/exchange.jade:29 src/jade/tabs/send.jade:93 -#: src/jade/tabs/trade.jade:146 src/jade/tabs/trade.jade:161 -#: src/jade/tabs/trade.jade:176 +#: src/jade/tabs/exchange.jade:38 src/jade/tabs/send.jade:91 +#: src/jade/tabs/trade.jade:153 src/jade/tabs/trade.jade:168 +#: src/jade/tabs/trade.jade:183 src/jade/tabs/trust.jade:101 msgid "Not a valid amount." msgstr "Некорректная сумма." -#: src/jade/tabs/exchange.jade:30 +#: src/jade/tabs/exchange.jade:39 +msgid "" +"You are either trying to convert too little or too much XRP.Minimum amount " +"is 0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "" + +#: src/jade/tabs/exchange.jade:42 src/jade/tabs/send.jade:96 +#: src/jade/tabs/trust.jade:103 +msgid "Your amount has too many digits. The max number of digits is 16." +msgstr "" + +#: src/jade/tabs/exchange.jade:43 msgid "Please enter an amount greater than zero." msgstr "Пожалуйста, введите сумму больше нуля." -#: src/jade/tabs/exchange.jade:33 -msgid "Calculating..." -msgstr "Вычисление..." +#: src/jade/tabs/exchange.jade:46 +msgid "{{1}} Calculating..." +msgstr "{{1}} Вычисление..." -#: src/jade/tabs/exchange.jade:35 +#: src/jade/tabs/exchange.jade:50 msgid "" "Cannot convert to {{exchange.amount}} {{exchange.currency_name}}. Please " "make sure your account has enough funds, and a {{1}} to a " "{{exchange.currency_name}} gateway." msgstr "Не удается перевести {{exchange.amount}} {{exchange.currency_name}}. Пожалуйста, убедитесь, что аккаунт имеет достаточно средств, и {{1}} на {{exchange.currency_name}} шлюзе." -#: src/jade/tabs/exchange.jade:39 +#: src/jade/tabs/exchange.jade:54 msgid "" "Sorry! Cannot convert {{exchange.amount}} {{exchange.currency_name}}. Please" " make sure your account has enough funds." msgstr "Сожалеем! Конвертация {{exchange.amount}} {{exchange.currency_name}} невозможна. Пожалуйста, убедитесь, что в вашем кошельке достаточно средств." -#: src/jade/tabs/exchange.jade:41 src/jade/tabs/send.jade:137 +#: src/jade/tabs/exchange.jade:56 src/jade/tabs/send.jade:142 msgid "Error while calculating path" msgstr "Ошибка при вычислении пути" -#: src/jade/tabs/exchange.jade:57 +#: src/jade/tabs/exchange.jade:60 +msgid "Exchange" +msgstr "Обмен" + +#: src/jade/tabs/exchange.jade:72 msgid "Exchange {{ alt.amount | rpcurrency }} {{1}}" msgstr "Обмен {{ alt.amount | rpcurrency }} {{1}}" -#: src/jade/tabs/exchange.jade:63 src/jade/tabs/send.jade:165 +#: src/jade/tabs/exchange.jade:78 src/jade/tabs/send.jade:170 msgid "Paths last updated {{1}} {{2: seconds}} {{3: second}} ago" msgstr "Последнее обновление путей было {{1}} {{2: секунд}} {{3: секунд}} назад" -#: src/jade/tabs/exchange.jade:72 +#: src/jade/tabs/exchange.jade:89 msgid "Ripple is calculating a path for your conversion." msgstr "Ripple рассчитывает путь для Вашего перевода." -#: src/jade/tabs/exchange.jade:77 +#: src/jade/tabs/exchange.jade:94 msgid "" "{{1:You are exchanging}}{{2}}{{3:to}}{{4}}{{5:You will pay at " "most}}{{6}}{{7:Are you sure?}}" msgstr "{{1:Вы обмениваете}}{{2}}{{3:to}}{{4}}{{5:Максимальный платеж составит}}{{6}}{{7:Вы уверены?}}" -#: src/jade/tabs/exchange.jade:118 +#: src/jade/tabs/exchange.jade:139 msgid "Do another conversion" msgstr "Осуществить другой обмен" -#: src/jade/tabs/exchange.jade:120 src/jade/tabs/send.jade:247 -#: src/jade/tabs/send.jade:277 +#: src/jade/tabs/exchange.jade:141 src/jade/tabs/send.jade:257 +#: src/jade/tabs/send.jade:291 msgid "Back to balance" msgstr "Вернуться к баллансу" @@ -1089,223 +1566,280 @@ msgstr "Вернуться к баллансу" msgid "Add trust" msgstr "Создать линию доверия" -#: src/jade/tabs/fund.jade:33 src/jade/tabs/fund.jade:47 -#: src/jade/tabs/trust.jade:100 src/jade/tabs/trust.jade:121 +#: src/jade/tabs/fund.jade:27 src/jade/tabs/send.jade:26 +msgid "Enter a Ripple name or contact" +msgstr "" + +#: src/jade/tabs/fund.jade:33 src/jade/tabs/trust.jade:73 msgid "Account does not meet the minimum XRP reserve." msgstr "Аккаунт не удовлетворяет минимальным требованиям резерва XPR." -#: src/jade/tabs/fund.jade:34 src/jade/tabs/fund.jade:48 -#: src/jade/tabs/send.jade:111 src/jade/tabs/trust.jade:101 -#: src/jade/tabs/trust.jade:122 -msgid "More information" -msgstr "Дополнительная информация" - -#: src/jade/tabs/fund.jade:36 src/jade/tabs/trust.jade:103 +#: src/jade/tabs/fund.jade:36 src/jade/tabs/trust.jade:76 msgid "Please enter a Ripple name, contact, or address." msgstr "Пожалуйста, введите Ripple имя, контакт или адрес." -#: src/jade/tabs/fund.jade:37 src/jade/tabs/fund.jade:51 -#: src/jade/tabs/trust.jade:104 src/jade/tabs/trust.jade:125 +#: src/jade/tabs/fund.jade:37 src/jade/tabs/trust.jade:77 msgid "You've entered your own address." msgstr "Вы ввели ваш собственный адрес." -#: src/jade/tabs/fund.jade:38 src/jade/tabs/trust.jade:105 +#: src/jade/tabs/fund.jade:38 src/jade/tabs/trust.jade:78 msgid "Please enter a valid Ripple name, contact, or address." msgstr "Пожалуйста введите действующие Ripple имя, контакт или адрес." -#: src/jade/tabs/fund.jade:50 src/jade/tabs/trust.jade:124 -msgid "Please enter a Ripple address or contact." -msgstr "Пожалуйста, введите Ripple адрес или контакт." - -#: src/jade/tabs/fund.jade:52 src/jade/tabs/trust.jade:126 -msgid "Please enter a valid Ripple address or contact." -msgstr "Пожалуйста, введите действующий Ripple адрес или контакт." - -#: src/jade/tabs/fund.jade:55 src/jade/tabs/history.jade:189 -#: src/jade/tabs/trade.jade:301 src/jade/tabs/trust.jade:129 -msgid "Amount" -msgstr "Количество" - -#: src/jade/tabs/fund.jade:62 src/jade/tabs/trust.jade:107 -#: src/jade/tabs/trust.jade:140 +#: src/jade/tabs/fund.jade:48 src/jade/tabs/trust.jade:80 msgid "Amount field is required" msgstr "Поле Сумма обязательно" -#: src/jade/tabs/fund.jade:64 src/jade/tabs/trust.jade:109 -#: src/jade/tabs/trust.jade:142 +#: src/jade/tabs/fund.jade:50 src/jade/tabs/trust.jade:82 +#: src/jade/tabs/trust.jade:105 msgid "" "XRP can be sent without extending trust. If you really want to trust in XRP," " please use XRR currency code." msgstr "XRP могут быть отправлены без расширения линии доверия. Если вы хотите создать линию доверия в XRP, используйте код валюты XRR." -#: src/jade/tabs/fund.jade:67 src/jade/tabs/trust.jade:112 -#: src/jade/tabs/trust.jade:145 +#: src/jade/tabs/fund.jade:53 src/jade/tabs/trust.jade:85 +#: src/jade/tabs/trust.jade:108 msgid "Currency field is required" msgstr "Поле Валюта обязательно" -#: src/jade/tabs/fund.jade:73 src/jade/tabs/trust.jade:151 +#: src/jade/tabs/fund.jade:59 src/jade/tabs/fund.jade:60 +#: src/jade/tabs/trust.jade:114 src/jade/tabs/trust.jade:115 msgid "Allow Rippling" msgstr "Разрешить для пересылки" -#: src/jade/tabs/fund/menu.jade:2 -msgid "XRP" -msgstr "XRP" +#: src/jade/tabs/fund.jade:60 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"trust. More " +"information" +msgstr "" + +#: src/jade/tabs/fund.jade:63 +msgid "Cancel" +msgstr "Отмена" #: src/jade/tabs/fund/menu.jade:3 -msgid "BTC" -msgstr "BTC" +msgid "{{1}}XRP" +msgstr "{{1}}XRP" #: src/jade/tabs/fund/menu.jade:6 +msgid "Featured gateways" +msgstr "" + +#: src/jade/tabs/fund/menu.jade:7 +msgid "{{1}}BRL" +msgstr "{{1}}BRL" + +#: src/jade/tabs/fund/menu.jade:10 +msgid "{{1}}BTC" +msgstr "{{1}}BTC" + +#: src/jade/tabs/fund/menu.jade:13 +msgid "{{1}}EUR" +msgstr "{{1}}EUR" + +#: src/jade/tabs/fund/menu.jade:16 +msgid "{{1}}JPY" +msgstr "{{1}}JPY" + +#: src/jade/tabs/fund/menu.jade:19 +msgid "{{1}}MXN" +msgstr "{{1}}MXN" + +#: src/jade/tabs/fund/menu.jade:22 +msgid "{{1}}USD" +msgstr "{{1}}USD" + +#: src/jade/tabs/fund/menu.jade:25 +msgid "{{1}}XAU" +msgstr "{{1}}XAU" + +#: src/jade/tabs/fund/menu.jade:28 +msgid "Add any gateway" +msgstr "" + +#: src/jade/tabs/fund/menu.jade:30 msgid "Learn more about gateways" msgstr "Узнать больше о шлюзах" -#: src/jade/tabs/history.jade:9 -msgid "Loading history..." -msgstr "Загрузка истории..." +#: src/jade/tabs/gold.jade:37 +msgid "Gold Deposit" +msgstr "" + +#: src/jade/tabs/gold.jade:41 +msgid "Gold Bullion International (~gbi) {{1}}" +msgstr "" + +#: src/jade/tabs/gold.jade:48 +msgid "0.5% per year" +msgstr "0.5% за год" + +#: src/jade/tabs/gold.jade:56 +msgid "" +"Ripple Trade has partnered with GBI to provide easy access toXAU. By " +"continuing, you are allowing GBI to hold gold on your behalf." +msgstr "" + +#: src/jade/tabs/gold.jade:67 src/jade/tabs/jpy.jade:68 +#: src/jade/tabs/mxn.jade:70 +msgid "{{1}} Not connected" +msgstr "" + +#: src/jade/tabs/gold.jade:70 src/jade/tabs/jpy.jade:71 +#: src/jade/tabs/mxn.jade:73 +msgid "{{1}} Connected" +msgstr "" + +#: src/jade/tabs/gold.jade:77 +msgid "Deposit" +msgstr "" + +#: src/jade/tabs/gold.jade:78 +msgid "" +"GBI does not currently support direct deposits. You can {{1}} or {{2}}." +msgstr "" + +#: src/jade/tabs/gold.jade:84 +msgid "Withdrawal" +msgstr "Вывод средств" + +#: src/jade/tabs/gold.jade:85 +msgid "" +"You can redeem the physical gold in 1 oz increments.To do so, you'll need to" +" {{1}} and arrange to have the gold shipped to you." +msgstr "" + +#: src/jade/tabs/history.jade:11 +msgid "Loading History" +msgstr "" -#: src/jade/tabs/history.jade:14 +#: src/jade/tabs/history.jade:16 msgid "Your account history is empty" msgstr "История Вашего аккаунта пуста" -#: src/jade/tabs/history.jade:20 -msgid "Filters" -msgstr "Фильтры" - -#: src/jade/tabs/history.jade:23 +#: src/jade/tabs/history.jade:24 msgid "Transaction type{{1}}{{2}}" msgstr "Тип транзакции{{1}}{{2}}" -#: src/jade/tabs/history.jade:48 +#: src/jade/tabs/history.jade:37 msgid "Date{{1}}{{2}}" msgstr "Дата{{1}}{{2}}" -#: src/jade/tabs/history.jade:53 +#: src/jade/tabs/history.jade:42 msgid "Load history for specific date range" msgstr "Загрузить историю за выбранный временной промежуток" -#: src/jade/tabs/history.jade:59 +#: src/jade/tabs/history.jade:48 msgid "From" msgstr "От" -#: src/jade/tabs/history.jade:65 +#: src/jade/tabs/history.jade:54 msgid "To" msgstr "Для" -#: src/jade/tabs/history.jade:68 +#: src/jade/tabs/history.jade:57 msgid "Filter" msgstr "Фильтр" -#: src/jade/tabs/history.jade:81 -msgid "Transaction History" -msgstr "История транзакций" - -#: src/jade/tabs/history.jade:83 -msgid "Export to CSV" -msgstr "Экспорт в CSV" - -#: src/jade/tabs/history.jade:87 +#: src/jade/tabs/history.jade:64 msgid "Date" msgstr "Дата" -#: src/jade/tabs/history.jade:88 src/jade/tabs/history.jade:187 +#: src/jade/tabs/history.jade:65 src/jade/tabs/history.jade:170 msgid "Description" msgstr "Описание" -#: src/jade/tabs/history.jade:89 +#: src/jade/tabs/history.jade:68 src/jade/tabs/history.jade:73 +msgid "Export to CSV" +msgstr "Экспорт в CSV" + +#: src/jade/tabs/history.jade:69 msgid "Sorry, no transactions match your current filter." msgstr "Извините, нет транзакций соответствующих фильтру, указанному Вами." -#: src/jade/tabs/history.jade:108 +#: src/jade/tabs/history.jade:91 msgid "You sent{{1}}to{{2}}" msgstr "Вы оправили{{1}}к{{2}}" -#: src/jade/tabs/history.jade:114 +#: src/jade/tabs/history.jade:97 msgid "{{1}}sent you{{2}}" msgstr "{{1}}отправил Вам{{2}}" -#: src/jade/tabs/history.jade:120 +#: src/jade/tabs/history.jade:103 msgid "You requested to exchange{{1}}to{{2}}" msgstr "Вы запросили обмен{{1}}на{{2}}" -#: src/jade/tabs/history.jade:126 +#: src/jade/tabs/history.jade:109 msgid "{{1}}now trusts you for{{2}}" msgstr "{{1}}теперь доверяет Вам на{{2}}" -#: src/jade/tabs/history.jade:139 src/jade/tabs/history/effects.jade:45 +#: src/jade/tabs/history.jade:122 src/jade/tabs/history/effects.jade:45 msgid "You created an order to sell{{1}}for{{2}}" msgstr "Вы создали шаблон продажи{{1}}за{{2}}" -#: src/jade/tabs/history.jade:143 src/jade/tabs/history/effects.jade:49 +#: src/jade/tabs/history.jade:126 src/jade/tabs/history/effects.jade:49 msgid "You created an order to buy{{1}}for{{2}}" msgstr "Вы создали шаблон покупки{{1}}за{{2}}" -#: src/jade/tabs/history.jade:149 +#: src/jade/tabs/history.jade:132 msgid "You cancelled an order accepting {{1}}for{{2}}" msgstr "Вы отменили заказ принимая {{1}}вместо{{2}}" -#: src/jade/tabs/history.jade:155 -msgid "Account details have been Changed" -msgstr "Данные аккаунта были изменены" - -#: src/jade/tabs/history.jade:161 -msgid "{{1}}{{2}}" -msgstr "{{1}}{{2}}" - -#: src/jade/tabs/history.jade:162 +#: src/jade/tabs/history.jade:145 msgid "Unknown transaction" msgstr "Неопознанная транзакция" -#: src/jade/tabs/history.jade:165 +#: src/jade/tabs/history.jade:148 msgid "" "The client failed to parse this transaction. The developers have been " "notified of the issue." msgstr "Клиент-программа не смогла обработать эту тразсакцию. Разработчики были уведомлены о проблеме." -#: src/jade/tabs/history.jade:170 +#: src/jade/tabs/history.jade:153 msgid "{{1}} sent you{{2}} and activated your account!" msgstr "{{1}} отправил вам{{2}} и активировал ваш аккаунт!" -#: src/jade/tabs/history.jade:177 +#: src/jade/tabs/history.jade:160 msgid "You deposited{{1}} using {{entry.details.app.name}}" msgstr "Вы внесли {{1}} используя{{entry.details.app.name}}" -#: src/jade/tabs/history.jade:185 +#: src/jade/tabs/history.jade:168 msgid "Balance Changes" msgstr "Изменения балансов" -#: src/jade/tabs/history.jade:188 +#: src/jade/tabs/history.jade:171 msgid "Issuer" msgstr "Эмитент" -#: src/jade/tabs/history.jade:190 +#: src/jade/tabs/history.jade:173 msgid "Final balance" msgstr "Окончательный баланс" -#: src/jade/tabs/history.jade:193 +#: src/jade/tabs/history.jade:176 msgid "XRP Balance Change" msgstr "Изменения баланса XRP" -#: src/jade/tabs/history.jade:194 +#: src/jade/tabs/history.jade:177 msgid "{{effect.currency}} Balance Change" msgstr "Изменение Валанса по {{effect.currency}} " -#: src/jade/tabs/history.jade:195 -msgid "Fee" -msgstr "Комиссия" - -#: src/jade/tabs/history.jade:200 +#: src/jade/tabs/history.jade:183 msgid "Transaction details" msgstr "Подробности транзакции" -#: src/jade/tabs/history.jade:201 +#: src/jade/tabs/history.jade:184 msgid "Add {{1}} to contact list" msgstr "Добавить {{1}} в список контактов" -#: src/jade/tabs/history.jade:207 src/jade/tabs/trade.jade:384 +#: src/jade/tabs/history.jade:189 +msgid "{{1}} Loading more" +msgstr "{{1}} Загрузка подробностей" + +#: src/jade/tabs/history.jade:192 src/jade/tabs/trade.jade:500 msgid "Load more" msgstr "Загрузить больше" -#: src/jade/tabs/history.jade:208 +#: src/jade/tabs/history.jade:193 msgid "No more transactions left" msgstr "Транзакций больше нет" @@ -1361,443 +1895,633 @@ msgstr "Баланс линии доверия между Вами и{{1}}изм msgid "Your balance has been changed by{{1}}." msgstr "Ваш баланс изменился на{{1}}." -#: src/jade/tabs/kyc.jade:16 +#: src/jade/tabs/jpy.jade:38 +msgid "Japanese Yen Deposit" +msgstr "" + +#: src/jade/tabs/jpy.jade:42 +msgid "Tokyo JPY Issuer (~tokyojpy) {{1}}" +msgstr "" + +#: src/jade/tabs/jpy.jade:59 +msgid "" +"Ripple Trade has partnered with Tokyo JPY Issuer to provide easier access to" +" JPY. Following this action will enable Tokyo JPY Issuer to hold JPY on your" +" behalf." +msgstr "" + +#: src/jade/tabs/jpy.jade:78 +msgid "NEW CUSTOMERS- SIGN UP AT TOKYO JPY ISSUER" +msgstr "" + +#: src/jade/tabs/jpy.jade:79 +msgid "{{1}}at Tokyo JPY Issuer. You will need:{{2}}" +msgstr "" + +#: src/jade/tabs/jpy.jade:84 +msgid "A valid government-issued ID." +msgstr "" + +#: src/jade/tabs/jpy.jade:86 +msgid "A proof of address (utility bill, etc)." +msgstr "" + +#: src/jade/tabs/jpy.jade:88 +msgid "A bank account under the same name." +msgstr "" + +#: src/jade/tabs/jpy.jade:90 +msgid "EXISTING TOKYO JPY ISSUER CUSTOMERS" +msgstr "" + +#: src/jade/tabs/jpy.jade:100 +msgid "" +"Tokyo JPY Issuer accepts deposits and withdrawals via bank transfer. Details" +" {{1}}" +msgstr "" + +#: src/jade/tabs/jpy.jade:103 +msgid "" +"To deposit, you’ll need to first deposit into your Tokyo JPY Issuer account " +"and then initiate a transfer into your Ripple account." +msgstr "" + +#: src/jade/tabs/jpy.jade:105 +msgid "" +"To withdraw to a bank account, you’ll first send money from your Ripple " +"account to your Tokyo JPY Issuer account. Follow instructions on the Tokyo " +"JPY Issuer site to send to your bank account." +msgstr "" + +#: src/jade/tabs/kyc.jade:14 +msgid "Profile completion is only available to US residents." +msgstr "Заполнение профиля доступно только для жителей США." + +#: src/jade/tabs/kyc.jade:21 src/jade/tabs/trade.jade:285 msgid "Verifying your information. Please wait..." msgstr "Проверка вашей информации. Пожалуйста, подождите ..." -#: src/jade/tabs/kyc.jade:18 +#: src/jade/tabs/kyc.jade:23 msgid "Your identity information has been verified." msgstr "Ваша информация по идентификации была проверена." -#: src/jade/tabs/kyc.jade:20 +#: src/jade/tabs/kyc.jade:25 msgid "Your identity questions have been verified." msgstr "Ваши вопросы по идентификации были проверены." -#: src/jade/tabs/kyc.jade:22 +#: src/jade/tabs/kyc.jade:27 msgid "" -"Congrats! Your profile is complete. You can now deposit up to $300 per day " -"instantly." -msgstr "Поздравляю! Ваша анкета завершена. Теперь вы можете внесить до $ 300 в сутки." +"Congratulations, you've verified your identity! You will now be redirected " +"back to the instant deposit page." +msgstr "" -#: src/jade/tabs/kyc.jade:24 +#: src/jade/tabs/kyc.jade:29 msgid "There was an error with your request. Please try again later." msgstr "С вашим запросом прозошла ошибка. Пожалуйста, повторите попытку позже." -#: src/jade/tabs/kyc.jade:26 +#: src/jade/tabs/kyc.jade:31 msgid "" "There was an error with your request. Make sure your phone number is valid " "and try again." msgstr "С вашим запросом прозошла ошибка. Убедитесь, что ваш телефонный номер и повторите попытку." -#: src/jade/tabs/kyc.jade:28 +#: src/jade/tabs/kyc.jade:33 msgid "Please check your verification code and try again." msgstr "Пожалуйста, проверьте свой ​​код подтверждения и попробуйте еще раз." -#: src/jade/tabs/kyc.jade:30 +#: src/jade/tabs/kyc.jade:35 msgid "" "There was an error while requesting the verification code. Please try again " "later." msgstr "Была ошибка при запросе код подтверждения. Пожалуйста, повторите попытку позже." -#: src/jade/tabs/kyc.jade:32 +#: src/jade/tabs/kyc.jade:37 msgid "" "We are unable to validate your identity information. Please check your " "information and try again." msgstr "Мы не можем подтвердить информацию, удостоверяющий личность. Пожалуйста, проверьте вашу информацию и попробуйте еще раз." -#: src/jade/tabs/kyc.jade:34 +#: src/jade/tabs/kyc.jade:39 msgid "" "We are unable to validate your identity questions. Please check your answers" " and try again." msgstr "Мы не можем проверить ваши вопросы, удостоверяющие личность. Пожалуйста, проверьте свои ответы и попробуйте еще раз." -#: src/jade/tabs/kyc.jade:36 +#: src/jade/tabs/kyc.jade:41 +msgid "" +"Sorry, you've reached your maximum number of verification attempts. Please " +"try again in 24 hours." +msgstr "" + +#: src/jade/tabs/kyc.jade:43 msgid "" "We can't verify your identity. Please contact us at support@ripple.com." msgstr "Мы не можем проверить вашу личность. Пожалуйста, свяжитесь с нами по support@ripple.com." -#: src/jade/tabs/kyc.jade:41 +#: src/jade/tabs/kyc.jade:48 msgid "Profile Completion" msgstr "Заполнение профиля" -#: src/jade/tabs/kyc.jade:44 +#: src/jade/tabs/kyc.jade:52 msgid "STEP 1: IDENTITY INFORMATION" msgstr "ШАГ 1: информация удостворяющия личность" -#: src/jade/tabs/kyc.jade:46 +#: src/jade/tabs/kyc.jade:54 msgid "STEP 2: IDENTITY QUESTIONS" msgstr "ШАГ 2: вопросы удостворяющие личность" -#: src/jade/tabs/kyc.jade:48 +#: src/jade/tabs/kyc.jade:56 msgid "STEP 3: TWO-FACTOR AUTHENTICATION" msgstr "ШАГ 3: двухфакторная проверка подлинности" -#: src/jade/tabs/kyc.jade:55 +#: src/jade/tabs/kyc.jade:63 msgid "First Name" msgstr "Имя" -#: src/jade/tabs/kyc.jade:59 +#: src/jade/tabs/kyc.jade:67 msgid "Last Name" msgstr "Фамилия" -#: src/jade/tabs/kyc.jade:63 +#: src/jade/tabs/kyc.jade:71 msgid "Street Address" msgstr "Улица, дом" -#: src/jade/tabs/kyc.jade:68 +#: src/jade/tabs/kyc.jade:76 msgid "City" msgstr "Город" -#: src/jade/tabs/kyc.jade:72 +#: src/jade/tabs/kyc.jade:80 msgid "State" msgstr "Область" -#: src/jade/tabs/kyc.jade:76 +#: src/jade/tabs/kyc.jade:84 msgid "ZIP" msgstr "Индекс" -#: src/jade/tabs/kyc.jade:80 +#: src/jade/tabs/kyc.jade:88 msgid "Date of Birth" msgstr "Дата рождения" -#: src/jade/tabs/kyc.jade:84 +#: src/jade/tabs/kyc.jade:92 msgid "Month{{1}}" msgstr "Месяц{{1}}" -#: src/jade/tabs/kyc.jade:87 +#: src/jade/tabs/kyc.jade:95 msgid "Day{{1}}" msgstr "День{{1}}" -#: src/jade/tabs/kyc.jade:90 +#: src/jade/tabs/kyc.jade:98 msgid "Year{{1}}" msgstr "Год{{1}}" -#: src/jade/tabs/kyc.jade:94 -msgid "Last 4 digits of Social Security Number" -msgstr "Последние 4 цифры Номера социального страхования" - -#: src/jade/tabs/kyc.jade:102 +#: src/jade/tabs/kyc.jade:113 msgid "Continue to identity questions" msgstr "Продолжить с вопросами, удостоверяющие личность" -#: src/jade/tabs/kyc.jade:108 +#: src/jade/tabs/kyc.jade:114 src/jade/tabs/kyc.jade:129 +#: src/jade/tabs/kyc.jade:154 src/jade/tabs/kyc.jade:184 +#: src/jade/tabs/login.jade:17 +msgid "Verifying..." +msgstr "Проверка..." + +#: src/jade/tabs/kyc.jade:120 msgid "{{ q.question }}{{1}}" msgstr "{{ q.question }}{{1}}" -#: src/jade/tabs/kyc.jade:111 +#: src/jade/tabs/kyc.jade:123 msgid "{{ a.answer }}" msgstr "{{ a.answer }}" -#: src/jade/tabs/kyc.jade:114 +#: src/jade/tabs/kyc.jade:128 msgid "Continue to two-factor authentication" msgstr "Продолжить двухфакторную аутентификацию" -#: src/jade/tabs/kyc.jade:122 +#: src/jade/tabs/kyc.jade:137 msgid "Two-factor authentication provides extra security for your account." msgstr "Двухфакторная аутентификация обеспечивает дополнительную безопасность для вашей учетной записи." -#: src/jade/tabs/kyc.jade:129 +#: src/jade/tabs/kyc.jade:145 msgid "" "Ripple Trade has partnered with Authy to provide better security for your " "account.By continuing, you agree to Authy's {{1:Terms of Service}}." msgstr "Ripple Trade имеет партнерские отношения с Authy лучше обеспечить безопасность для вашего account.By продолжается, вы соглашаетесь с Authy в {{1: Условия предоставления услуг}}." -#: src/jade/tabs/kyc.jade:135 +#: src/jade/tabs/kyc.jade:153 msgid "Verify phone number" msgstr "Проверить номер телефона" -#: src/jade/tabs/kyc.jade:145 +#: src/jade/tabs/kyc.jade:164 msgid "change" msgstr "сменить" -#: src/jade/tabs/kyc.jade:149 +#: src/jade/tabs/kyc.jade:168 msgid "" "A verification code has been sent to +{{ currentCountryCode }} {{ " "phoneNumber }}." msgstr "Код подтверждения был отправлен на +{{ currentCountryCode }} {{ phoneNumber }}." -#: src/jade/tabs/kyc.jade:154 src/jade/tabs/login/form.jade:20 -#: src/jade/tabs/security.jade:88 +#: src/jade/tabs/kyc.jade:172 src/jade/tabs/login/form.jade:16 +#: src/jade/tabs/security.jade:97 msgid "Verification Code" msgstr "Код подтверждения" -#: src/jade/tabs/login.jade:5 src/jade/tabs/login.jade:19 -#: src/jade/tabs/login.jade:83 +#: src/jade/tabs/kyc.jade:183 +msgid "Submit code" +msgstr "" + +#: src/jade/tabs/login.jade:4 src/jade/tabs/migrate.jade:4 +#: src/jade/tabs/recover.jade:3 src/jade/tabs/register.jade:5 +#: src/jade/tabs/register.jade:137 src/jade/tabs/register.jade:184 +msgid "Welcome to Ripple Trade" +msgstr "" + +#: src/jade/tabs/login.jade:6 src/jade/tabs/migrate.jade:6 +#: src/jade/tabs/recover.jade:5 src/jade/tabs/register.jade:7 +#: src/jade/tabs/register.jade:139 src/jade/tabs/register.jade:186 +msgid "Trade hundreds of assets, from XRP to crypto to gold to fiat." +msgstr "" + +#: src/jade/tabs/login.jade:15 src/jade/tabs/login.jade:31 msgid "Log In" msgstr "Вход в систему" -#: src/jade/tabs/login.jade:7 -msgid "Verifying..." -msgstr "Проверка..." - -#: src/jade/tabs/login.jade:8 +#: src/jade/tabs/login.jade:18 msgid "You have successfully verified your email address." msgstr "Вы успешно подтвердили свой адрес электронной почты." -#: src/jade/tabs/login.jade:9 +#: src/jade/tabs/login.jade:19 msgid "" "Email verification token is invalid. It has either expired or has been " "resent. Please check your inbox for the most recent verification email." msgstr "Ключ подтверждения электронной почты не верен. Он либо просрочен или был выслан заново. Пожалуйста проверьте вашу почту на недавние письма подтверждения регистрации." -#: src/jade/tabs/login.jade:21 +#: src/jade/tabs/login.jade:30 +msgid "Logging in" +msgstr "" + +#: src/jade/tabs/login.jade:34 msgid "Verify" msgstr "Проверить" -#: src/jade/tabs/login.jade:25 src/jade/tabs/login.jade:26 -#: src/jade/tabs/recover.jade:5 -msgid "Account Recovery" -msgstr "Восстановление аккаунта" - -#: src/jade/tabs/login.jade:28 src/jade/tabs/register.jade:93 +#: src/jade/tabs/login.jade:36 src/jade/tabs/register.jade:114 msgid "Already have a ripple.com/client account? {{1:Migrate}}" msgstr "У Вас уже есть аккаунт ripple.com? {{1:Перенос}}" -#: src/jade/tabs/login.jade:30 src/jade/tabs/migrate.jade:26 -msgid "New to {{productName}}? {{1:Sign Up}}" -msgstr "Незнакомы с {{productName}}? {{1:Sign Up}}" +#: src/jade/tabs/login.jade:41 src/jade/tabs/login.jade:42 +#: src/jade/tabs/recover.jade:9 +msgid "Account Recovery" +msgstr "Восстановление аккаунта" -#: src/jade/tabs/login.jade:37 +#: src/jade/tabs/login.jade:49 msgid "{{1:You're sending money to}}{{2}}." msgstr "{{1:Вы отправляете деньги к}}{{2}}." -#: src/jade/tabs/login.jade:41 +#: src/jade/tabs/login.jade:53 msgid "{{1:You're sending}}{{2}}{{3: to }}{{4}}." msgstr "{{1:Вы отпавляете}}{{2}}{{3: к }}{{4}}." -#: src/jade/tabs/login.jade:51 +#: src/jade/tabs/login.jade:63 msgid "" "{{1:You're connecting to the gateway}}{{2}}{{3:for{{1}}}}{{4:with a limit " "of{{1}}}}." msgstr "{{1:Вы подключаетесь к шлюзу}}{{2}}{{3:по{{1}}}}{{4:с лимитом в{{1}}}}." -#: src/jade/tabs/login.jade:66 +#: src/jade/tabs/login.jade:78 msgid "{{1:You're adding}}{{2}}{{3:to your contacts list}}" msgstr "{{1:Вы добавляете}}{{2}}{{3:в ваш список контактов}}" -#: src/jade/tabs/login.jade:84 +#: src/jade/tabs/login.jade:95 +msgid "{{1}} Log In" +msgstr "" + +#: src/jade/tabs/login.jade:98 msgid "You can confirm this transaction on the next page." msgstr "Вы сможете подтвердить эту операцию на следующей странице." -#: src/jade/tabs/login.jade:85 +#: src/jade/tabs/login.jade:99 msgid "New to {{productName}}? {{1:Create a wallet}}" msgstr "Незнакомы с {{productName}}? {{1:Create a wallet}}" -#: src/jade/tabs/login/form.jade:11 src/jade/tabs/security.jade:82 +#: src/jade/tabs/login/form.jade:12 src/jade/tabs/security.jade:91 msgid "" "Please enter the verification code from the SMS message sent to your device:" msgstr "Пожалуйста, введите проверочный код, из сообщения SMS, отправленного на ваше устройство:" -#: src/jade/tabs/login/form.jade:12 src/jade/tabs/security.jade:83 +#: src/jade/tabs/login/form.jade:13 src/jade/tabs/security.jade:92 msgid "" "Please enter the verification code from the Authy app installed on your " "device:" msgstr "Пожалуйста, введите проверочный код, из приложения Authy установленного на вашем устройстве:" -#: src/jade/tabs/login/form.jade:16 +#: src/jade/tabs/login/form.jade:23 msgid "Resend" msgstr "Отправить повторно" -#: src/jade/tabs/login/form.jade:17 src/jade/tabs/security.jade:95 +#: src/jade/tabs/login/form.jade:24 src/jade/tabs/security.jade:105 msgid "Send Via SMS" msgstr "Отправить по СМС" -#: src/jade/tabs/login/form.jade:24 +#: src/jade/tabs/login/form.jade:30 msgid "Remember me on this device for 30 days" msgstr "Запомнить меня на этом устройстве в течение 30 дней" -#: src/jade/tabs/migrate.jade:5 src/jade/tabs/register.jade:10 -#: src/jade/tabs/register.jade:116 src/jade/tabs/register.jade:159 +#: src/jade/tabs/migrate.jade:10 src/jade/tabs/register.jade:17 +#: src/jade/tabs/register.jade:142 src/jade/tabs/register.jade:189 msgid "Migrate" msgstr "Перенос" -#: src/jade/tabs/migrate.jade:6 +#: src/jade/tabs/migrate.jade:11 msgid "" "To begin migration, enter the name and passphrase used to encrypt your " "ripple.com/client wallet below. After migration, you will no longer be able " "to login on ripple.com/client." msgstr "Для начала миграции, введите имя и пароль используемые для шифрования кошелька на ripple.com/client . После миграции, вы больше не будете иметь возможность для входа на ripple.com/client." -#: src/jade/tabs/migrate.jade:10 +#: src/jade/tabs/migrate.jade:15 msgid "Existing ripple.com/client Wallet name" msgstr "Действующее ripple.com/client имя кошелька" -#: src/jade/tabs/migrate.jade:13 +#: src/jade/tabs/migrate.jade:18 msgid "Passphrase" msgstr "Пароль пользователя" -#: src/jade/tabs/migrate.jade:25 +#: src/jade/tabs/migrate.jade:31 msgid "Begin Migration" msgstr "Начать перенос" -#: src/jade/tabs/migrate.jade:28 +#: src/jade/tabs/migrate.jade:32 +msgid "New to {{productName}}? {{1:Sign Up}}" +msgstr "Незнакомы с {{productName}}? {{1:Sign Up}}" + +#: src/jade/tabs/migrate.jade:34 msgid "Have a {{productName}} account? {{1:Log In}}" msgstr "Уже есть {{productName}} аккаунт? {{1:Входите}}" -#: src/jade/tabs/recover.jade:7 +#: src/jade/tabs/mxn.jade:38 +msgid "Mexican Peso Deposit" +msgstr "" + +#: src/jade/tabs/mxn.jade:42 +msgid "Bitso (~bitso) {{1}}{{2}}" +msgstr "" + +#: src/jade/tabs/mxn.jade:47 +msgid "All countries except the US" +msgstr "" + +#: src/jade/tabs/mxn.jade:58 +msgid "" +"Ripple Trade has partnered with Bitso to provide easy access to MXN (Mexican" +" Peso). By continuing, you agree with Bitso’s terms of service. Following " +"this action will enable Bitso to hold MXN on your behalf." +msgstr "" + +#: src/jade/tabs/mxn.jade:80 +msgid "TO FUND/REDEEM MEXICAN PESO:" +msgstr "" + +#: src/jade/tabs/mxn.jade:82 +msgid "Register or login at {{1}}to initiate deposits and withdrawals." +msgstr "" + +#: src/jade/tabs/mxn.jade:86 +msgid "" +"A valid, non-US, state-issued ID (passport, driver's license, etc)." +msgstr "" + +#: src/jade/tabs/mxn.jade:87 +msgid "" +"Proof of address (utility bill or other type of bill that has your address " +"on it). Verification is required for peso deposits or withdrawals." +msgstr "" + +#: src/jade/tabs/mxn.jade:89 +msgid "" +"To fund your Ripple account, see the below options. Once a balance is " +"deposited with Bitso, you can send it to your Ripple account using the Bitso" +" Dashboard." +msgstr "" + +#: src/jade/tabs/mxn.jade:90 +msgid "" +"To withdraw from your Ripple account, click on the 'Redeem from Ripple' " +"button on the Bitso Dashboard." +msgstr "" + +#: src/jade/tabs/mxn.jade:92 src/jade/tabs/usd.jade:89 +msgid "DEPOSIT OPTIONS" +msgstr "" + +#: src/jade/tabs/mxn.jade:94 +msgid "Bitso accepts deposits by the following methods:" +msgstr "" + +#: src/jade/tabs/mxn.jade:96 src/jade/tabs/mxn.jade:106 +msgid "Bank Wire" +msgstr "" + +#: src/jade/tabs/mxn.jade:97 src/jade/tabs/mxn.jade:107 +msgid "SPEI (Mexican instant inter-bank transfer)" +msgstr "" + +#: src/jade/tabs/mxn.jade:98 src/jade/tabs/mxn.jade:108 +msgid "Bitcoin" +msgstr "" + +#: src/jade/tabs/mxn.jade:99 +msgid "MXN Cash (at locations across Mexico)" +msgstr "" + +#: src/jade/tabs/mxn.jade:100 +msgid "Pademobile wallet" +msgstr "" + +#: src/jade/tabs/mxn.jade:102 src/jade/tabs/usd.jade:99 +msgid "WITHDRAWAL OPTIONS" +msgstr "" + +#: src/jade/tabs/mxn.jade:104 +msgid "Bitso offers withdrawals via the following methods:" +msgstr "" + +#: src/jade/tabs/recover.jade:11 msgid "" "You can only recover your Ripple Trade account with a secret key. You will " "recover the account's Ripple name, contacts and other information." msgstr "Для восстановления Вашего Ripple Trade аккаунта Вам необходим секретный ключ. Вы сможете восстановить Ripple имя, контакты и другую информацию аккаунта." -#: src/jade/tabs/recover.jade:9 src/jade/tabs/recover.jade:28 +#: src/jade/tabs/recover.jade:13 src/jade/tabs/recover.jade:33 msgid "Ripple Name" msgstr "Имя Ripple" -#: src/jade/tabs/recover.jade:14 +#: src/jade/tabs/recover.jade:18 msgid "Secret Key" msgstr "Секретный ключ" -#: src/jade/tabs/recover.jade:17 +#: src/jade/tabs/recover.jade:21 msgid "Unable to recover account." msgstr "Не удается восстановить аккаунт." -#: src/jade/tabs/recover.jade:22 src/jade/tabs/register.jade:74 +#: src/jade/tabs/recover.jade:27 src/jade/tabs/register.jade:95 msgid "Recover Account" msgstr "Восстановить аккаунт" -#: src/jade/tabs/recover.jade:24 src/jade/tabs/recover.jade:50 +#: src/jade/tabs/recover.jade:29 src/jade/tabs/recover.jade:56 msgid "Set Password" msgstr "Установить пароль" -#: src/jade/tabs/recover.jade:26 +#: src/jade/tabs/recover.jade:31 msgid "" "Your account was sucessfully recovered. Please re-encrypt your account with " "a new password." msgstr "Ваш аккаунт был успешно восстановлен. Пожалуйста, повторно зашифруйте Ваш аккаунт новым паролем." -#: src/jade/tabs/recover.jade:36 src/jade/tabs/register.jade:45 -#: src/jade/tabs/security.jade:119 +#: src/jade/tabs/recover.jade:41 src/jade/tabs/register.jade:62 +#: src/jade/tabs/security.jade:132 msgid "" "Your password is weak. It does not contain numbers and symbols or it is too " "short." msgstr "Ваш пароль слабый. Он не содержит цифр и символов или он слишком короткий." -#: src/jade/tabs/recover.jade:38 src/jade/tabs/register.jade:47 -#: src/jade/tabs/security.jade:121 +#: src/jade/tabs/recover.jade:43 src/jade/tabs/register.jade:65 +#: src/jade/tabs/security.jade:134 msgid "" "Your Ripple name and password cannot match. Please create a new password." msgstr "Ваши Ripple имя и пароль не должны совпадать. Пожалуйста создайте новый пароль." -#: src/jade/tabs/recover.jade:45 +#: src/jade/tabs/recover.jade:45 src/jade/tabs/register.jade:67 +#: src/jade/tabs/security.jade:136 +msgid "Confirm password" +msgstr "Подтвердить пароль " + +#: src/jade/tabs/recover.jade:48 src/jade/tabs/register.jade:71 +#: src/jade/tabs/security.jade:139 +msgid "Passwords do not match" +msgstr "Пароли не совпадают" + +#: src/jade/tabs/recover.jade:50 msgid "Unable to change your account password." msgstr "Не удается изменить пароль Вашего аккаунта." -#: src/jade/tabs/recover.jade:49 +#: src/jade/tabs/recover.jade:55 msgid "Updating..." msgstr "Обновление..." -#: src/jade/tabs/recover.jade:51 +#: src/jade/tabs/recover.jade:57 msgid "Remember your password? {{1:Log In}}" msgstr "Вы помните свой пароль? {{1:Вход в систему}}" -#: src/jade/tabs/register.jade:5 -msgid "" -"Ripple Trade is the only platform where you can trade between stores of " -"value spanning fiat, crypto, precious metals and more." -msgstr "Ripple Trade является единственной платформой, где можно торговать различными ресурсами и средствами, включая, фиатные валюты, крипто, драгоценные металлы и многое другое." - -#: src/jade/tabs/register.jade:9 src/jade/tabs/register.jade:90 -#: src/jade/tabs/register.jade:115 src/jade/tabs/register.jade:158 +#: src/jade/tabs/register.jade:13 src/jade/tabs/register.jade:109 +#: src/jade/tabs/register.jade:141 src/jade/tabs/register.jade:188 msgid "Sign Up" msgstr "Зарегистрироваться" -#: src/jade/tabs/register.jade:12 src/jade/tabs/register.jade:14 -#: src/jade/tabs/register.jade:16 src/jade/tabs/register.jade:120 -#: src/jade/tabs/register.jade:122 src/jade/tabs/register.jade:161 -#: src/jade/tabs/register.jade:163 src/jade/tabs/register.jade:165 +#: src/jade/tabs/register.jade:19 src/jade/tabs/register.jade:21 +#: src/jade/tabs/register.jade:23 src/jade/tabs/register.jade:146 +#: src/jade/tabs/register.jade:148 src/jade/tabs/register.jade:191 +#: src/jade/tabs/register.jade:193 src/jade/tabs/register.jade:195 msgid "Step {{1}}" msgstr "Действие {{1}}" -#: src/jade/tabs/register.jade:19 +#: src/jade/tabs/register.jade:26 msgid "Create Ripple name" msgstr "Создать имя Ripple" -#: src/jade/tabs/register.jade:20 +#: src/jade/tabs/register.jade:27 msgid "" "Please choose a Ripple name below. You will use this Ripple name to login to" " Ripple Trade, so remember it! Ripple names are unique and public, like your" " current Ripple address. {{1}}" msgstr "Пожалуйста выберите Ripple Имя. Вы будете использовать это Ripple Имя для входа в Ripple Trade, так что запомните его! Ripple Имена уникальны и публичны, также как ваш Ripple адрес кошелька. {{1}}" -#: src/jade/tabs/register.jade:21 +#: src/jade/tabs/register.jade:28 msgid "Learn More" msgstr "Узнать больше" -#: src/jade/tabs/register.jade:36 +#: src/jade/tabs/register.jade:41 +msgid "Reserved for {{usernameReservedFor}}" +msgstr "" + +#: src/jade/tabs/register.jade:43 +msgid "" +"This name belongs to a high-traffic website and has been reserved to prevent" +" phishing." +msgstr "" + +#: src/jade/tabs/register.jade:49 msgid "You can only use the following characters: a-z, 0-9 and hyphens (-)" msgstr "Вы можете использовать только следующие символы: AZ, 0-9 и дефис (-)" -#: src/jade/tabs/register.jade:39 +#: src/jade/tabs/register.jade:55 msgid "Cannot use hyphens in a row (--)" msgstr "Нельзя использовать дефисы подряд (--)" -#: src/jade/tabs/register.jade:60 +#: src/jade/tabs/register.jade:80 msgid "Email address is invalid" msgstr "Недействительный адрес электронной почты" -#: src/jade/tabs/register.jade:62 src/jade/tabs/security.jade:138 +#: src/jade/tabs/register.jade:82 src/jade/tabs/security.jade:151 msgid "Secret key" msgstr "Секретный ключ:" -#: src/jade/tabs/register.jade:63 src/jade/tabs/send.jade:53 -#: src/jade/tabs/trade.jade:329 src/jade/tabs/trade.jade:335 +#: src/jade/tabs/register.jade:83 src/jade/tabs/send.jade:43 +#: src/jade/tabs/trade.jade:441 msgid "hide" msgstr "скрыть" -#: src/jade/tabs/register.jade:67 +#: src/jade/tabs/register.jade:88 msgid "Secret Account Key is invalid" msgstr "Секретный ключ аккаунта неверный" -#: src/jade/tabs/register.jade:69 +#: src/jade/tabs/register.jade:90 msgid "" "The account ~{{1}}{{2}} has already been created using this secret key." msgstr "Аккаунт ~{{1}}{{2}} уже был создан с помощью секретного ключа." -#: src/jade/tabs/register.jade:75 -msgid "Need to use your secret key? {{1}}" -msgstr "Нужно использовать ваш секретный ключ? {{1}}" - -#: src/jade/tabs/register.jade:77 -msgid "Use key" -msgstr "Использовать ключ" - -#: src/jade/tabs/register.jade:80 -msgid "I agree to the {{productName}} {{1:end-user license agreement}}" -msgstr "Я согласен/согласна с {{productName}} {{1:end-user license agreement}}" +#: src/jade/tabs/register.jade:98 +msgid "I agree to the {{productName}} {{1:Terms of Use}}" +msgstr "" -#: src/jade/tabs/register.jade:83 +#: src/jade/tabs/register.jade:101 msgid "" "Please see our {{1}} to see how we collect, use and share information about " "you" msgstr "Пожалуйста смотрите наши {{1}}, чтобы узнать как мы собираем, используем и предоставляем информацию о Вас" -#: src/jade/tabs/register.jade:91 +#: src/jade/tabs/register.jade:110 msgid "Migrate Account" msgstr "Перенести аккаунт" -#: src/jade/tabs/register.jade:100 +#: src/jade/tabs/register.jade:111 +msgid "Need to use your secret key? {{1}}" +msgstr "Нужно использовать ваш секретный ключ? {{1}}" + +#: src/jade/tabs/register.jade:113 +msgid "Use key" +msgstr "Использовать ключ" + +#: src/jade/tabs/register.jade:121 msgid "An error occurred during registration. Please try again later." msgstr "Произошла ошибка при регистрации. Пожалуйста, повторите попытку позже." -#: src/jade/tabs/register.jade:101 +#: src/jade/tabs/register.jade:122 msgid "The reported error was: {{1}}" msgstr "Сообщение об ошибке: {{1}}" -#: src/jade/tabs/register.jade:109 +#: src/jade/tabs/register.jade:131 msgid "" "There is already a wallet using this username, please choose a different " "username and try again." msgstr "Кошелек с таким именем пользователя уже существует, пожалуйста выберете иное имя пользователя и повторите попытку." -#: src/jade/tabs/register.jade:124 +#: src/jade/tabs/register.jade:150 msgid "" "By proceeding, you understand that Ripple Trade does not provide a password " "or secret key recovery mechanism. If you forget your Ripple name/password " "and secret key, you will be unable to access this Ripple account." msgstr "Продолжая далее, Вы понимаете что Ripple Trade не обеспечивает механизма восстановления пароля или секретного ключа. Если вы забудете ваши Ripple Имя/пароль и Секретный ключ, то Вы не сможете получить доступ к вашему Ripple аккаунту." -#: src/jade/tabs/register.jade:129 +#: src/jade/tabs/register.jade:155 msgid "" "You are now migrating your account- meaning you'll no longer be able to " "access your account from ripple.com/client. You will retain all of your " @@ -1806,898 +2530,1123 @@ msgid "" "continue your migration." msgstr "Вы сейчас переносите ваш аккаунт - это означает что вы более не сможете получить доступ к аккаунту через ripple.com/client. Вы сохраните все ваши средства, контакты и историю. Ваш аккаунт будет использовать тот же секретный ключ что и раньше. Если Вы уже сохранили ваш секретный ключ, пожалуйста продолжите перенос вашего аккаунта." -#: src/jade/tabs/register.jade:136 +#: src/jade/tabs/register.jade:162 msgid "" "The secret key unlocks access to all your account funds in the event you " "lose your Ripple name or password. Please write it down and store it " "somewhere private and safe. {{1:Read more}} about keys and wallet safety." msgstr "В случае потери Ripple имени или пароля, секретный ключ позволяет восстановить доступ ко всем сбережениям на вашем аккаунте. Пожалуйста, запишите его и храните в наднжном и безопасном месте. {{1:Узнать подробнее}} о ключах и безопасности кошелька." -#: src/jade/tabs/register.jade:141 +#: src/jade/tabs/register.jade:167 msgid "" "If you have not saved your secret key, please write it down and store it " "somewhere private and safe. In the event you lose your Ripple name or " "password, you can use this secret key to recover your funds." msgstr "Если Вы еще не сохранили ваш секретный ключ, пожалуйста запишите его и сохраните в надежном месте. В случае если вы потеряете ваше Ripple Имя или пароль, вы сможете с помощью этого секретного ключа восстановить ваши сдедства." -#: src/jade/tabs/register.jade:154 +#: src/jade/tabs/register.jade:176 +msgid "Show secret key" +msgstr "Показать секретный ключ" + +#: src/jade/tabs/register.jade:177 +msgid "Hide secret key" +msgstr "Скрыть секретный ключ" + +#: src/jade/tabs/register.jade:180 msgid "Continue to email verification" msgstr "Продолжить подтверждение электронной почты" -#: src/jade/tabs/register.jade:167 +#: src/jade/tabs/register.jade:197 msgid "" "We’ve sent an email to {{1}}. To complete registration, click the link in " "the email." msgstr "Мы отправили электронное письмо на {{1}}. Для завершения регистрации, нажмите на ссылку в сообщении электронной почты." -#: src/jade/tabs/register.jade:170 +#: src/jade/tabs/register.jade:200 msgid "Email token has been resent." msgstr "Маркер электронной почты был отправлен повторно." -#: src/jade/tabs/register.jade:173 +#: src/jade/tabs/register.jade:203 msgid "Email Address:" msgstr "Адрес электронной почты:" -#: src/jade/tabs/register.jade:178 +#: src/jade/tabs/register.jade:210 msgid "Re-send Email" msgstr "Повторная отправка электронной почты" -#: src/jade/tabs/security.jade:5 +#: src/jade/tabs/security.jade:7 msgid "Active Session Timeout" msgstr "Время активного сеанса истекло" -#: src/jade/tabs/security.jade:6 +#: src/jade/tabs/security.jade:8 msgid "" "To view or edit your security settings, you must currently have an active " "session." msgstr "Чтобы просмотреть или изменить параметры безопасности, необходимо быть в активном сеансе связи." -#: src/jade/tabs/security.jade:13 +#: src/jade/tabs/security.jade:16 msgid "Restore Session" msgstr "Восстановить сессию" -#: src/jade/tabs/security.jade:22 +#: src/jade/tabs/security.jade:25 msgid "Your Ripple password has been changed, please login again" msgstr "Ваше Ripple пароль был изменен. Пожалуйста войдите снова." -#: src/jade/tabs/security.jade:24 +#: src/jade/tabs/security.jade:27 msgid "Couldn't change your Ripple password, please try again later." msgstr "Не удалось сменить ваш Ripple пароль, пожалуйста попробуйте еще раз позднее." -#: src/jade/tabs/security.jade:27 +#: src/jade/tabs/security.jade:30 msgid "Changing your Ripple password..." msgstr "Изменение вашего пароля Ripple ..." -#: src/jade/tabs/security.jade:28 +#: src/jade/tabs/security.jade:31 msgid "Your Ripple password has been changed successfully." msgstr "Ваше Ripple Имя было успешно изменено." -#: src/jade/tabs/security.jade:29 +#: src/jade/tabs/security.jade:32 msgid "Unable to load Two-factor authentication settings." msgstr "Невозможно загрузить настройки двухфакторной аутентификации." -#: src/jade/tabs/security.jade:30 +#: src/jade/tabs/security.jade:33 msgid "Error saving Two-factor authentication settings." msgstr "Ошибка сохранения настроек двухфакторной аутентификации." -#: src/jade/tabs/security.jade:31 +#: src/jade/tabs/security.jade:34 msgid "The verification code is invalid." msgstr "Код подтверждения недействителен." -#: src/jade/tabs/security.jade:32 +#: src/jade/tabs/security.jade:36 msgid "Two-factor authentication has been successfully enabled." msgstr "Двухфакторная аутентификация успешно включена." -#: src/jade/tabs/security.jade:33 +#: src/jade/tabs/security.jade:37 msgid "Two-factor authentication has been successfully disabled." msgstr "Двухфакторная аутентификация успешно отключена." +#: src/jade/tabs/security.jade:38 +msgid "Password protection has been successfully enabled." +msgstr "" + #: src/jade/tabs/security.jade:39 +msgid "Password protection has been successfully disabled." +msgstr "" + +#: src/jade/tabs/security.jade:45 msgid "Security settings" msgstr "Настройки безопасности" -#: src/jade/tabs/security.jade:44 +#: src/jade/tabs/security.jade:51 msgid "Loading Two-factor authentication settings..." msgstr "Загрузка настроек двухфакторной аутентификации ..." -#: src/jade/tabs/security.jade:47 +#: src/jade/tabs/security.jade:55 msgid "Enabled" msgstr "Выключить" -#: src/jade/tabs/security.jade:48 +#: src/jade/tabs/security.jade:56 msgid "Disabled" msgstr "Выключить" -#: src/jade/tabs/security.jade:50 +#: src/jade/tabs/security.jade:58 msgid "disable" msgstr "выключить" -#: src/jade/tabs/security.jade:52 +#: src/jade/tabs/security.jade:60 msgid "enable" msgstr "включить" -#: src/jade/tabs/security.jade:58 +#: src/jade/tabs/security.jade:66 msgid "" "Authy is providing two-factor authentication for Ripple Trade. To enable " "two-factor authentication, you must share some information with Authy." msgstr "Authy обеспечивает двухфакторную аутентификацию для Ripple Trade. Чтобы включить двухфакторную аутентификацию, вы должны поделиться некоторой информацией с Authy." -#: src/jade/tabs/security.jade:61 +#: src/jade/tabs/security.jade:69 msgid "- Your email address:" msgstr "- Ваш электронный адрес:" -#: src/jade/tabs/security.jade:64 +#: src/jade/tabs/security.jade:72 msgid "- Your phone number:" msgstr "- Ваш номер телефона:" -#: src/jade/tabs/security.jade:66 +#: src/jade/tabs/security.jade:74 msgid "By proceeding, you agree to the Authy {{1: terms of service.}}" msgstr "Запуская, вы соглашаетесь с Authy {{1: terms of service.}}" -#: src/jade/tabs/security.jade:70 +#: src/jade/tabs/security.jade:78 msgid "Share" msgstr "Поделиться" -#: src/jade/tabs/security.jade:75 +#: src/jade/tabs/security.jade:84 msgid "Saving settings..." msgstr "Сохранение настроек ..." -#: src/jade/tabs/security.jade:76 +#: src/jade/tabs/security.jade:85 msgid "Disabling Two-factor authentication..." msgstr "Отключение двухфакторной аутентификации ..." -#: src/jade/tabs/security.jade:77 +#: src/jade/tabs/security.jade:86 msgid "Enabling Two-factor authentication..." msgstr "Включение двухфакторной аутентификации ..." -#: src/jade/tabs/security.jade:94 +#: src/jade/tabs/security.jade:104 msgid "Resend Code" msgstr "Отправить код заново" -#: src/jade/tabs/security.jade:99 +#: src/jade/tabs/security.jade:110 msgid "Enable" msgstr "Включить" -#: src/jade/tabs/security.jade:103 +#: src/jade/tabs/security.jade:114 msgid "Ripple password" msgstr "Ripple пароль" -#: src/jade/tabs/security.jade:116 +#: src/jade/tabs/security.jade:129 msgid "New password" msgstr "Новый пароль" -#: src/jade/tabs/security.jade:140 +#: src/jade/tabs/security.jade:153 msgid "" "Your secret key unlocks access to your account funds. Please write it down " "and store it somewhere private and safe. In the event you lose your Ripple " "name or password, you can use this secret key to recover your funds." msgstr "Ваш Секретный ключ обеспечивает \"аварийный\" доступ к вашим средствам. Пожалуйста, запишите его и храните его в надежном месте. В случае если вы потеряете ваше имя Ripple или пароль, Вы можете использовать этот секретный ключ, чтобы восстановить ваши средства." -#: src/jade/tabs/security.jade:150 +#: src/jade/tabs/security.jade:165 msgid "Password protection for transactions" msgstr "Защита паролем для операций" -#: src/jade/tabs/security.jade:153 +#: src/jade/tabs/security.jade:168 msgid "" "If you turn off password requests, you’ll still need to enter your password " "after each page refresh." msgstr "Если выключить запрос пароля, вы все равно должны ввести пароль после каждого обновления страницы." -#: src/jade/tabs/security.jade:161 +#: src/jade/tabs/security.jade:176 msgid "Yes" msgstr "Да" -#: src/jade/tabs/security.jade:162 +#: src/jade/tabs/security.jade:177 msgid "No" msgstr "Нет" +#: src/jade/tabs/security.jade:192 +msgid "Delete Ripple Trade account" +msgstr "" + +#: src/jade/tabs/security.jade:194 +msgid "" +"This deletes your Ripple Trade account. You will no longer be able to login " +"to Ripple Trade and your account data will be deleted. However, you can " +"still access your funds using your secret key." +msgstr "" + #: src/jade/tabs/send.jade:12 msgid "You have to be funded before you can send money" msgstr "Ваш кошелек должен быть активирован, прежде чем вы сможете отправлять деньги" -#: src/jade/tabs/send.jade:17 -msgid "Send money on the Ripple network." -msgstr "Отправить деньги в сети Ripple." - -#: src/jade/tabs/send.jade:21 src/jade/tabs/send.jade:34 +#: src/jade/tabs/send.jade:25 msgid "Recipient" msgstr "Получатель" -#: src/jade/tabs/send.jade:26 src/jade/tabs/send.jade:39 +#: src/jade/tabs/send.jade:30 msgid "Please enter a recipient." msgstr "Пожалуйста, введите получателя." -#: src/jade/tabs/send.jade:28 +#: src/jade/tabs/send.jade:32 msgid "" "Recipient should be a Ripple name, a contact, or Ripple/Bitcoin address." msgstr "Поле \"Получатель\" должно быть либо Ripple имя, контакт, либо адрес Ripple/Bitcoin." -#: src/jade/tabs/send.jade:30 src/jade/tabs/send.jade:43 +#: src/jade/tabs/send.jade:34 msgid "This email address is not Ripple-enabled." msgstr "Этот адрес электронной почты не подключен к Ripple." -#: src/jade/tabs/send.jade:41 -msgid "Recipient should be a contact or Ripple/Bitcoin address." -msgstr "Поле \"Получатель\" должно быть либо контакт, либо адрес Ripple/Bitcoin." - -#: src/jade/tabs/send.jade:47 +#: src/jade/tabs/send.jade:38 msgid "Show destination tag" msgstr "Показать метку назначения" -#: src/jade/tabs/send.jade:58 +#: src/jade/tabs/send.jade:47 msgid "Destination cannot be blank." msgstr "Назначение не может быть пустым." -#: src/jade/tabs/send.jade:59 +#: src/jade/tabs/send.jade:48 msgid "" "Recipient requires a destination tag to be specified for the transaction. If" " you don't know the destination tag, please contact them before doing a " "transaction." msgstr "Получатель запрашивает наличие метки назначения для транзакции. Если Вы не знаете метки назначения, свяжитесь с получателем перед совершением сделки." -#: src/jade/tabs/send.jade:64 +#: src/jade/tabs/send.jade:53 msgid "Source tag" msgstr "Метка источника" -#: src/jade/tabs/send.jade:67 +#: src/jade/tabs/send.jade:56 msgid "Invalid source tag" msgstr "Неправильная метка источника" -#: src/jade/tabs/send.jade:79 +#: src/jade/tabs/send.jade:59 +msgid "Invoice ID" +msgstr "" + +#: src/jade/tabs/send.jade:62 +msgid "Invoice ID must not be more than 64 characters long." +msgstr "" + +#: src/jade/tabs/send.jade:77 msgid "Recipient will receive" msgstr "Получателю будет зачислено" -#: src/jade/tabs/send.jade:90 +#: src/jade/tabs/send.jade:88 msgid "{{send.recipient | rpcontactname}} can't receive this currency." msgstr "{{send.recipient | rpcontactname}} не может принимать в этой валюте." -#: src/jade/tabs/send.jade:94 +#: src/jade/tabs/send.jade:92 src/jade/tabs/trust.jade:102 msgid "Amount must be greater than zero." msgstr "Сумма должна быть больше нуля." -#: src/jade/tabs/send.jade:95 +#: src/jade/tabs/send.jade:93 msgid "" -"This transaction exceeds your balance, you can send a max. of " -"{{account.max_spend | rpamount:{rel_precision: 0} }} XRP" -msgstr "Эта сделка превышает объём Вашего баланса, максимально вы можете отправить {{account.max_spend | rpamount:{rel_precision: 0} }} XRP" +"You are either trying to send too little or too much XRP.Minimum amount is " +"0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "" -#: src/jade/tabs/send.jade:98 +#: src/jade/tabs/send.jade:97 msgid "" "Recipient does not allow XRP payments. Are you sure you want to send XRP " "anyway?" msgstr "Получатель не разрешает перевод XRP. Вы все равно хотите послать XRP?" -#: src/jade/tabs/send.jade:100 +#: src/jade/tabs/send.jade:99 msgid "" "{{send.recipient | rpcontactname}}trusts you for {{send.trust_limit | " "rpamount}} {{send.trust_limit | rpcurrency}}." msgstr "{{send.recipient | rpcontactname}} доверяет Вам на {{send.trust_limit | rpamount}} {{send.trust_limit | rpcurrency}}." -#: src/jade/tabs/send.jade:104 +#: src/jade/tabs/send.jade:103 msgid "Send XRP" msgstr "Отправить XRP" -#: src/jade/tabs/send.jade:108 +#: src/jade/tabs/send.jade:107 msgid "" "Destination account is unfunded; send at least {{send.xrp_deficiency | " "rpamount}} XRP to fund it.{{1}}" msgstr "Аккаунт получателя не активирован; отправьте по меньшей мере {{send.xrp_deficiency | rpamount}} XRP чтобы активировать его.{{1}}" -#: src/jade/tabs/send.jade:113 +#: src/jade/tabs/send.jade:114 msgid "Checking" msgstr "Проверка" -#: src/jade/tabs/send.jade:115 +#: src/jade/tabs/send.jade:117 msgid "Analyzing address" msgstr "Анализ адреса" -#: src/jade/tabs/send.jade:117 +#: src/jade/tabs/send.jade:120 msgid "Scanning accepted currencies" msgstr "Сканируем принимаемые валюты" -#: src/jade/tabs/send.jade:119 +#: src/jade/tabs/send.jade:123 msgid "Requesting quote" msgstr "Запрос котировки" -#: src/jade/tabs/send.jade:121 +#: src/jade/tabs/send.jade:126 msgid "Calculating paths" msgstr "Вычисление путей" -#: src/jade/tabs/send.jade:123 +#: src/jade/tabs/send.jade:129 msgid "Calculating alternatives" msgstr "Вычисление альтернатив" -#: src/jade/tabs/send.jade:125 +#: src/jade/tabs/send.jade:130 msgid "" "You cannot send {{send.amount}} {{send.currency}} to {{send.recipient}}. " "Either your account has insufficient funds, or {{send.recipient}} doesn't " "accept {{send.currency}}." msgstr "Невозможно отрпавить {{send.amount}} {{send.currency}} для {{send.recipient}}. Либо на Вашем счету не достаточно средств, или {{send.recipient}} не принимает {{send.currency}}." -#: src/jade/tabs/send.jade:129 +#: src/jade/tabs/send.jade:134 msgid "" "You cannot send {{send.amount}} {{send.currency}} to{{send.recipient}}. Your" " account has insufficient funds." msgstr "Вы не можете отправить {{send.amount}} {{send.currency}} к{{send.recipient}}. У вас не достаточно средств." -#: src/jade/tabs/send.jade:132 +#: src/jade/tabs/send.jade:137 msgid "There are no valid currency choices for this destination." msgstr "По этому адресу нет выбора вариантов валют." -#: src/jade/tabs/send.jade:134 +#: src/jade/tabs/send.jade:139 msgid "Error while retrieving quote for outbound payment. {{1}}" msgstr "Ошибка во время получения котировок для исходящего платежа. {{1}}" -#: src/jade/tabs/send.jade:143 +#: src/jade/tabs/send.jade:148 msgid "You can send" msgstr "Вы можете отправить" -#: src/jade/tabs/send.jade:145 +#: src/jade/tabs/send.jade:150 msgid "Or you can send" msgstr "Или вы можете отправить" -#: src/jade/tabs/send.jade:159 +#: src/jade/tabs/send.jade:164 msgid "Send {{ alt.amount | rpcurrency }} {{1}}" msgstr "Отправить {{ alt.amount | rpcurrency }} {{1}}" -#: src/jade/tabs/send.jade:174 +#: src/jade/tabs/send.jade:181 msgid "Ripple is calculating a path for your payment." msgstr "Ripple просчитывает путь для Вашего платежа." -#: src/jade/tabs/send.jade:180 +#: src/jade/tabs/send.jade:186 msgid "You are sending {{1}} to" msgstr "Вы посылаете {{1}} " -#: src/jade/tabs/send.jade:188 +#: src/jade/tabs/send.jade:194 msgid "Destination tag: {{send.dt}}" msgstr "Метка назначения: {{send.dt}}" -#: src/jade/tabs/send.jade:189 +#: src/jade/tabs/send.jade:195 msgid "They will receive" msgstr "Они получат" -#: src/jade/tabs/send.jade:192 +#: src/jade/tabs/send.jade:198 msgid "You will pay at most" msgstr "Вы заплатите не более" -#: src/jade/tabs/send.jade:198 +#: src/jade/tabs/send.jade:204 msgid "Are you sure?" msgstr "Вы уверены?" -#: src/jade/tabs/send.jade:204 +#: src/jade/tabs/send.jade:210 msgid "Password required to unlock wallet" msgstr "Требуется пароль для разблокировки кошелька" -#: src/jade/tabs/send.jade:228 src/jade/tabs/send.jade:256 +#: src/jade/tabs/send.jade:234 src/jade/tabs/send.jade:266 msgid "Contact saved!" msgstr "Контакт сохранен!" -#: src/jade/tabs/send.jade:230 src/jade/tabs/send.jade:258 +#: src/jade/tabs/send.jade:236 src/jade/tabs/send.jade:268 msgid "Add this address to contacts" msgstr "Добавить адрес в контакты" -#: src/jade/tabs/send.jade:234 src/jade/tabs/send.jade:262 +#: src/jade/tabs/send.jade:242 src/jade/tabs/send.jade:274 msgid "Name this user" msgstr "Дать имя пользователю" -#: src/jade/tabs/send.jade:240 src/jade/tabs/send.jade:269 -#: src/jade/tabs/trust.jade:283 +#: src/jade/tabs/send.jade:246 src/jade/tabs/send.jade:278 +msgid "This contact already exists, please choose another name." +msgstr "" + +#: src/jade/tabs/send.jade:250 src/jade/tabs/send.jade:283 +#: src/jade/tabs/trust.jade:233 msgid "Saving..." msgstr "Идёт сохранение..." -#: src/jade/tabs/send.jade:245 src/jade/tabs/send.jade:275 +#: src/jade/tabs/send.jade:255 src/jade/tabs/send.jade:289 msgid "Send another payment" msgstr "Отправить другой платеж" -#: src/jade/tabs/settings/navbar.jade:3 -msgid "Advanced" -msgstr "Дополнительно" +#: src/jade/tabs/settings/navbar.jade:2 +msgid "Security" +msgstr "Безопасность" -#: src/jade/tabs/trade.jade:10 -msgid "Loading order book..." -msgstr "Загружается книга заявок" +#: src/jade/tabs/settingstrade.jade:12 +msgid "Trade settings" +msgstr "" + +#: src/jade/tabs/settingstrade.jade:14 +msgid "Trade currency pairs" +msgstr "" -#: src/jade/tabs/trade.jade:23 +#: src/jade/tabs/trade.jade:12 src/jade/tabs/trade.jade:451 +msgid "Loading Order Book" +msgstr "" + +#: src/jade/tabs/trade.jade:31 src/jade/tabs/widgets/markets.jade:24 msgid "flip" msgstr "поменять" -#: src/jade/tabs/trade.jade:27 src/jade/tabs/trade.jade:35 -msgid "Base currency" -msgstr "Базовая валюта" +#: src/jade/tabs/trade.jade:34 +msgid "add pair" +msgstr "" -#: src/jade/tabs/trade.jade:30 src/jade/tabs/trade.jade:41 -msgid "Change gateway" -msgstr "Сменить шлюз" +#: src/jade/tabs/trade.jade:37 +msgid "edit pairs" +msgstr "" -#: src/jade/tabs/trade.jade:38 src/jade/tabs/trade.jade:46 -msgid "Counter currency" -msgstr "Котируемая валюта" +#: src/jade/tabs/trade.jade:41 +msgid "Base Currency" +msgstr "" + +#: src/jade/tabs/trade.jade:44 +msgid "Base Gateway" +msgstr "" -#: src/jade/tabs/trade.jade:50 +#: src/jade/tabs/trade.jade:49 +msgid "Counter Currency" +msgstr "" + +#: src/jade/tabs/trade.jade:52 +msgid "Counter Gateway" +msgstr "" + +#: src/jade/tabs/trade.jade:57 +msgid "Add" +msgstr "" + +#: src/jade/tabs/trade.jade:60 msgid "Base currency issuer ({{order.first_currency | rpcurrency}})" msgstr "Эмитент базовой валюты ({{order.first_currency | rpcurrency}})" -#: src/jade/tabs/trade.jade:55 +#: src/jade/tabs/trade.jade:63 +msgid "Ripple name or contact" +msgstr "" + +#: src/jade/tabs/trade.jade:65 msgid "Not a valid Ripple address or contact" msgstr "Некорректный Ripple адрес или контакт" -#: src/jade/tabs/trade.jade:60 +#: src/jade/tabs/trade.jade:70 msgid "Counter currency issuer ({{order.second_currency | rpcurrency}})" msgstr "Эмитент котируемой валюты ({{order.second_currency | rpcurrency}})" -#: src/jade/tabs/trade.jade:65 +#: src/jade/tabs/trade.jade:75 msgid "Not a valid Ripple name or address" msgstr "Некорректные Ripple имя или адрес." -#: src/jade/tabs/trade.jade:69 +#: src/jade/tabs/trade.jade:79 msgid "" -"You must select a gateway to trade currencies. Click the “Change gateway” " -"link above and enter the gateway's address or Ripple name. {{1:Find a " -"gateway.}}" -msgstr "Вы должны выбрать шлюз для получения возможности обмена валют. Нажмите выше “Сменить шлюз” и введите адрес шлюза или его Рилп имя. {{1:Найти шлюз.}}" +"To show an orderbook, choose from the dropdown above or click \"Add custom " +"pair\"." +msgstr "" -#: src/jade/tabs/trade.jade:79 +#: src/jade/tabs/trade.jade:86 msgid "Bid" msgstr "Покупка" -#: src/jade/tabs/trade.jade:84 +#: src/jade/tabs/trade.jade:91 msgid "Ask" msgstr "Продажа" -#: src/jade/tabs/trade.jade:89 +#: src/jade/tabs/trade.jade:96 msgid "Spread" msgstr "Спред" -#: src/jade/tabs/trade.jade:94 +#: src/jade/tabs/trade.jade:101 msgid "Last price" msgstr "Последняя цена" -#: src/jade/tabs/trade.jade:101 +#: src/jade/tabs/trade.jade:108 msgid "You have to be funded before you can trade" msgstr "Ваш кошелек должен быть активирован, прежде чем Вы сможете производить обмен" -#: src/jade/tabs/trade.jade:108 +#: src/jade/tabs/trade.jade:115 msgid "Buy {{1}} {{order.first_currency | rpcurrency}}" msgstr "Купить {{1}} {{order.first_currency | rpcurrency}}" -#: src/jade/tabs/trade.jade:111 +#: src/jade/tabs/trade.jade:118 msgid "Sell {{1}} {{order.first_currency | rpcurrency}}" msgstr "Продать {{1}} {{order.first_currency | rpcurrency}}" -#: src/jade/tabs/trade.jade:114 src/jade/tabs/trade.jade:123 +#: src/jade/tabs/trade.jade:121 src/jade/tabs/trade.jade:130 msgid "{{1}} available" msgstr "{{1}} доступно" -#: src/jade/tabs/trade.jade:137 +#: src/jade/tabs/trade.jade:144 msgid "Amount To Buy" msgstr "Объем покупки" -#: src/jade/tabs/trade.jade:138 +#: src/jade/tabs/trade.jade:145 msgid "Amount To Sell" msgstr "Объем продажи" -#: src/jade/tabs/trade.jade:145 src/jade/tabs/trade.jade:160 -#: src/jade/tabs/trade.jade:175 +#: src/jade/tabs/trade.jade:152 src/jade/tabs/trade.jade:167 +#: src/jade/tabs/trade.jade:182 msgid "Required" msgstr "Обязательно к заполнению" -#: src/jade/tabs/trade.jade:147 src/jade/tabs/trade.jade:162 -#: src/jade/tabs/trade.jade:177 +#: src/jade/tabs/trade.jade:154 src/jade/tabs/trade.jade:169 +#: src/jade/tabs/trade.jade:184 msgid "Must be greater than zero" msgstr "Значение должно быть больше нуля" -#: src/jade/tabs/trade.jade:149 src/jade/tabs/trade.jade:164 -#: src/jade/tabs/trade.jade:179 -msgid "Minimum is a drop (0.000001) and maximum is 100 billion XRPs" -msgstr "Минимальный объем равен размеру технической комиссии (0.000001 XRP), а максимальный составляет 100 миллиардов XRP" +#: src/jade/tabs/trade.jade:156 src/jade/tabs/trade.jade:171 +#: src/jade/tabs/trade.jade:186 +msgid "" +"Minimum amount of XRP you can send is a drop (0.000001) and the maximum is " +"100 billion XRPs." +msgstr "" -#: src/jade/tabs/trade.jade:153 +#: src/jade/tabs/trade.jade:160 msgid "Price of Each" msgstr "Цена за единицу" -#: src/jade/tabs/trade.jade:168 +#: src/jade/tabs/trade.jade:175 msgid "Order Value (max)" msgstr "Сумма заявки (макс.)" -#: src/jade/tabs/trade.jade:185 +#: src/jade/tabs/trade.jade:192 msgid "You are wanting to buy {{1}} for {{2}} ({{3}} per {{4}})" msgstr "Вы желаете купить {{1}} за {{2}} ({{3}} за каждые {{4}})" -#: src/jade/tabs/trade.jade:194 +#: src/jade/tabs/trade.jade:201 msgid "You are wanting to sell {{1}} for {{2}} ({{3}} per {{4}})" msgstr "Вы желаете продать {{1}} за {{2}} ({{3}} за каждые {{4}})" -#: src/jade/tabs/trade.jade:206 +#: src/jade/tabs/trade.jade:213 msgid "Buy" msgstr "Купить" -#: src/jade/tabs/trade.jade:207 +#: src/jade/tabs/trade.jade:214 msgid "Sell" msgstr "Продать" -#: src/jade/tabs/trade.jade:213 +#: src/jade/tabs/trade.jade:220 msgid "You do not have sufficient funds to create an order." msgstr "У Вас не достаточно средств для создания заявки." -#: src/jade/tabs/trade.jade:218 -msgid "CAUTION: Your order is far off from the current market price." -msgstr "ПРЕДОСТЕРЕЖЕНИЕ: Ваша заявка значительно отличается от текущей рыночной цены." - -#: src/jade/tabs/trade.jade:220 +#: src/jade/tabs/trade.jade:225 msgid "" "You are about to create an order to {{1: buy}} {{2: " -"sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}" -msgstr "Вы создаете заявку на {{1: покупку}} {{2: продажу}}{{3}}{{4:за}}{{5}}{{6}}{{7:Are you sure?}}" +"sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}{{8}}" +msgstr "" -#: src/jade/tabs/trade.jade:239 +#: src/jade/tabs/trade.jade:242 +msgid "CAUTION: Your order is far off from the current market price." +msgstr "ПРЕДОСТЕРЕЖЕНИЕ: Ваша заявка значительно отличается от текущей рыночной цены." + +#: src/jade/tabs/trade.jade:246 src/jade/tabs/trade.jade:407 msgid "« Back" msgstr "« Назад" -#: src/jade/tabs/trade.jade:246 +#: src/jade/tabs/trade.jade:255 msgid "Sending order to Ripple network..." msgstr "Отправка заявки в сеть Ripple..." -#: src/jade/tabs/trade.jade:252 +#: src/jade/tabs/trade.jade:261 msgid "Your order has been submitted." msgstr "Ваша заявка отправлена." -#: src/jade/tabs/trade.jade:254 -msgid "Your order is now active!" -msgstr "Ваша заявка теперь активна!" - -#: src/jade/tabs/trade.jade:256 -msgid "Request has been denied!" -msgstr "Ваш запрос отклонен!" - -#: src/jade/tabs/trade.jade:257 -msgid "We were unable to submit the request. Please try again later." -msgstr "Мы не смогли отослать запрос. Повторите попытку позже." - -#: src/jade/tabs/trade.jade:259 -msgid "Request is malformed!" -msgstr "Запрос некорректен!" - -#: src/jade/tabs/trade.jade:260 -msgid "" -"Your request is invalid, reason: {{order[type].engine_result}} - " -"{{order[type].engine_result_message}}" -msgstr "Ваш запрос некорректен, причина: {{order[type].engine_result}} - {{order[type].engine_result_message}}" - -#: src/jade/tabs/trade.jade:263 src/jade/tabs/trade.jade:277 -#: src/jade/tabs/trust.jade:43 -msgid "Transaction failed!" -msgstr "Транзакция не удалась!" +#: src/jade/tabs/trade.jade:263 +msgid "Your order is now active." +msgstr "" #: src/jade/tabs/trade.jade:265 -msgid "" -"You do not have enough {{(type == 'buy' ? order.second_currency : " -"order.first_currency) | rpcurrency}} to create this order." -msgstr "У Вас недостаточно {{(type == 'buy' ? order.second_currency : order.first_currency) | rpcurrency}} чтобы создать эту заявку." +msgid "Your order has been filled." +msgstr "" #: src/jade/tabs/trade.jade:267 msgid "" -"You must have at least {{account.reserve_to_add_trust | rpamount}} XRP to " -"submit an order. {{1}}" -msgstr "У Вас должно быть хотя бы {{account.reserve_to_add_trust | rpamount}} XRP для отправки заявки. {{1}}" +"Your order has been partially filled. The remaining amount is now active." +msgstr "" -#: src/jade/tabs/trade.jade:269 -msgid "More information." -msgstr "Дополнительная информация." +#: src/jade/tabs/trade.jade:276 +msgid "Submit another order" +msgstr "Отправить другую заявку" -#: src/jade/tabs/trade.jade:270 -msgid "Error: {{order[type].engine_result_message}}" -msgstr "Ошибка: {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:278 +msgid "My Orders{{1}}{{2}}" +msgstr "Мои заявки{{1}}{{2}}" -#: src/jade/tabs/trade.jade:273 -msgid "Trade failed!" -msgstr "Обмен не произошел!" +#: src/jade/tabs/trade.jade:287 +msgid "Your order has been modified." +msgstr "" -#: src/jade/tabs/trade.jade:275 -msgid "Trade failed, reason: {{order[type].engine_result_message}}" -msgstr "Обмен не произведен, причина: {{order[type].engine_result_message}}" +#: src/jade/tabs/trade.jade:289 +msgid "Your order #{{ cancelOrder.seq }} has been cancelled." +msgstr "" -#: src/jade/tabs/trade.jade:279 src/jade/tabs/trust.jade:45 +#: src/jade/tabs/trade.jade:291 msgid "" -"The particular server you sent the transaction to was too busy to forward or" -" process your transaction at the fee you included in it." -msgstr "Тот сервер, на который была отправлена транзакция, не успел переслать или обработать транзакцию с объемом комиссии, который Вы указали." +"Your order could not be modified and no longer exists. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "" -#: src/jade/tabs/trade.jade:288 -msgid "Submit another order" -msgstr "Отправить другую заявку" +#: src/jade/tabs/trade.jade:293 +msgid "Unable to cancel order as it no longer exists." +msgstr "" -#: src/jade/tabs/trade.jade:290 -msgid "My Orders{{1}}{{2}}" -msgstr "Мои заявки{{1}}{{2}}" +#: src/jade/tabs/trade.jade:295 +msgid "Modifying your order (Placing new order) ..." +msgstr "" + +#: src/jade/tabs/trade.jade:299 +msgid "Current pair only" +msgstr "" + +#: src/jade/tabs/trade.jade:313 src/jade/tabs/widgets/orders.jade:24 +msgid "reverse" +msgstr "" -#: src/jade/tabs/trade.jade:297 -msgid "Type" -msgstr "Тип" +#: src/jade/tabs/trade.jade:322 src/jade/tabs/widgets/orders.jade:33 +msgid "QTY{{1}}" +msgstr "" -#: src/jade/tabs/trade.jade:298 -msgid "Currencies {{1: (Issuer)}}" -msgstr "Валюта {{1: (Issuer)}}" +#: src/jade/tabs/trade.jade:324 src/jade/tabs/widgets/orders.jade:35 +msgid "Base{{1}}" +msgstr "" -#: src/jade/tabs/trade.jade:300 -msgid "Price" -msgstr "Цена" +#: src/jade/tabs/trade.jade:326 src/jade/tabs/widgets/orders.jade:37 +msgid "Counter{{1}}" +msgstr "" -#: src/jade/tabs/trade.jade:302 +#: src/jade/tabs/trade.jade:328 src/jade/tabs/widgets/orders.jade:39 +msgid "Limit{{1}}" +msgstr "" + +#: src/jade/tabs/trade.jade:334 msgid "Action" msgstr "Действие" -#: src/jade/tabs/trade.jade:311 +#: src/jade/tabs/trade.jade:360 src/jade/tabs/trade.jade:424 +msgid "TRADE CONFIRMATION" +msgstr "" + +#: src/jade/tabs/trade.jade:362 +msgid "{{1:Please confirm that you wish to cancel order #{{entry.seq}}}}" +msgstr "" + +#: src/jade/tabs/trade.jade:364 +msgid "" +"{{1}} div span.modal-order-type(l10n-inc) FILLED: span filled data div" +" span.modal-order-type(l10n-inc) REMAIN: span remain data div span" +".modal-order-type(l10n-inc) PLACED: span time data" +msgstr "" + +#: src/jade/tabs/trade.jade:371 msgid "with" msgstr "при помощи" -#: src/jade/tabs/trade.jade:312 +#: src/jade/tabs/trade.jade:372 msgid "for" msgstr "за" -#: src/jade/tabs/trade.jade:325 -msgid "You haven't placed any orders." -msgstr "Вы не разместили ни одной заявки." +#: src/jade/tabs/trade.jade:376 +msgid "at" +msgstr "" -#: src/jade/tabs/trade.jade:327 -msgid "Unable to cancel order." -msgstr "Неудалось отменить заявку." +#: src/jade/tabs/trade.jade:389 +msgid "Cancel order" +msgstr "" -#: src/jade/tabs/trade.jade:328 -msgid "Error: {{cancelError}}" -msgstr "Ошибка: {{cancelError}}" +#: src/jade/tabs/trade.jade:390 src/jade/tabs/trade.jade:431 +msgid "back" +msgstr "" -#: src/jade/tabs/trade.jade:332 -msgid "Orderbook" -msgstr "Заказы" +#: src/jade/tabs/trade.jade:407 +msgid "" +"CAUTION: Your new order is far off from the current market price.
Do " +"you still want to replace your order ?" +msgstr "" -#: src/jade/tabs/trade.jade:334 +#: src/jade/tabs/trade.jade:410 +msgid "Unable to cancel order. Error: {{entry.errorMsg}}" +msgstr "" + +#: src/jade/tabs/trade.jade:412 +msgid "" +"Your order amount has been updated by Ripple. Please go back and edit again " +"to modify this order." +msgstr "" + +#: src/jade/tabs/trade.jade:414 +msgid "" +"Your order could not be modified. Error: " +"{{order[editOrder.type].engine_result_message}}" +msgstr "" + +#: src/jade/tabs/trade.jade:415 +msgid "X" +msgstr "" + +#: src/jade/tabs/trade.jade:420 +msgid "cancel all" +msgstr "" + +#: src/jade/tabs/trade.jade:426 +msgid "{{1:Please confirm that you wish to cancel all orders.}}" +msgstr "" + +#: src/jade/tabs/trade.jade:430 +msgid "Cancel all orders" +msgstr "" + +#: src/jade/tabs/trade.jade:433 src/jade/tabs/widgets/orders.jade:64 +msgid "No current orders. {{1}}" +msgstr "" + +#: src/jade/tabs/trade.jade:434 src/jade/tabs/widgets/orders.jade:65 +msgid "View orders history" +msgstr "" + +#: src/jade/tabs/trade.jade:437 +msgid "Orderbook{{1}}" +msgstr "" + +#: src/jade/tabs/trade.jade:440 msgid "show" msgstr "показать" -#: src/jade/tabs/trade.jade:342 +#: src/jade/tabs/trade.jade:442 +msgid "Last updated {{1}} {{2: seconds}} {{3: second}} ago" +msgstr "" + +#: src/jade/tabs/trade.jade:458 msgid "Bids" msgstr "Спрос" -#: src/jade/tabs/trade.jade:344 src/jade/tabs/trade.jade:371 +#: src/jade/tabs/trade.jade:460 src/jade/tabs/trade.jade:487 msgid "Sum{{1}}{{2}}" msgstr "Сумма{{1}}{{2}}" -#: src/jade/tabs/trade.jade:347 src/jade/tabs/trade.jade:368 +#: src/jade/tabs/trade.jade:463 src/jade/tabs/trade.jade:484 msgid "Size{{1}}{{2}}" msgstr "Количество {{1}}{{2}}" -#: src/jade/tabs/trade.jade:350 +#: src/jade/tabs/trade.jade:466 msgid "Bid Price{{1}}{{2}}" msgstr "Цена покупателя{{1}}{{2}}" -#: src/jade/tabs/trade.jade:361 +#: src/jade/tabs/trade.jade:477 msgid "There are currently no bids for this pair." msgstr "В данный момент нет заявок на покупку для этой пары." -#: src/jade/tabs/trade.jade:363 +#: src/jade/tabs/trade.jade:479 msgid "Asks" msgstr "Предложение" -#: src/jade/tabs/trade.jade:365 +#: src/jade/tabs/trade.jade:481 msgid "Ask Price{{1}}{{2}}" msgstr "Запрашиваемая цена{{1}}{{2}}" -#: src/jade/tabs/trade.jade:382 +#: src/jade/tabs/trade.jade:498 msgid "There are currently no asks for this pair." msgstr "В данный момент нет заявок на продажу для этой пары." -#: src/jade/tabs/trade.jade:385 +#: src/jade/tabs/trade.jade:501 msgid "No more orders" msgstr "Больше нет заказов" -#: src/jade/tabs/trust.jade:23 -msgid "Connecting a gateway to your Ripple account..." -msgstr "Подключение шлюза к вашему Рипл аккаунту" - -#: src/jade/tabs/trust.jade:25 -msgid "Gateway connected." -msgstr "Шлюз подключен" - -#: src/jade/tabs/trust.jade:27 -msgid "Gateway could not be connected!" -msgstr "Шлюз не может быть подключен!" - -#: src/jade/tabs/trust.jade:28 src/jade/tabs/trust.jade:30 -msgid "There was a problem connecting the gateway. Please try again later." -msgstr "Проблема подключения к шлюзу. Попробуйте еще раз позже." +#: src/jade/tabs/trust.jade:29 +msgid "Removing gateway..." +msgstr "Удаляем шлюз ..." #: src/jade/tabs/trust.jade:31 -msgid "" -"Your request is invalid, reason: {{engine_result}} - " -"{{engine_result_message}}" -msgstr "Ваш запрос некорректен, причина: {{engine_result}} - {{engine_result_message}}" +msgid "Gateway removed." +msgstr "" #: src/jade/tabs/trust.jade:33 -msgid "Gateway connection failed!" -msgstr "Подключение к шлюзу не удалось!" +msgid "Your changes have been saved." +msgstr "" #: src/jade/tabs/trust.jade:35 -msgid "You have no gateway connected in this currency." -msgstr "По этой валюте у вас нет подключенных шлюзов." - -#: src/jade/tabs/trust.jade:36 -msgid "Insufficient reserve to connect gateway." -msgstr "Недостаточно резервов для подключения к шлюзу" - -#: src/jade/tabs/trust.jade:37 -msgid "" -"You must have at least {{account.reserve_to_add_trust | rpamount:0}} XRP to " -"connect a gateway. {{1}}" -msgstr "У вас должно быть как минимум {{account.reserve_to_add_trust | rpamount:0}} XRP для подкючения шлюза. {{1}}" +msgid "Request failed." +msgstr "" #: src/jade/tabs/trust.jade:39 -msgid "Read more." -msgstr "Больше информации." - -#: src/jade/tabs/trust.jade:40 -msgid "Gateway connection failed to clear, reason: {{engine_result_message}}" -msgstr "Подключение к шлюзу не удалось по причине: {{engine_result_message}}" - -#: src/jade/tabs/trust.jade:53 -msgid "Saving changes..." -msgstr "Сохранение настроек ..." +msgid "Account unlock failed." +msgstr "" #: src/jade/tabs/trust.jade:55 -msgid "Changes saved!" -msgstr "Изменения сохранены!" - -#: src/jade/tabs/trust.jade:57 src/jade/tabs/trust.jade:69 -msgid "There was an error while saving your changes." -msgstr "При сохранении изменний произошла ошибка ." - -#: src/jade/tabs/trust.jade:65 -msgid "Removing gateway..." -msgstr "Удаляем шлюз ..." - -#: src/jade/tabs/trust.jade:67 -msgid "Gateway removed!" -msgstr "Шлюз удален!" - -#: src/jade/tabs/trust.jade:72 src/jade/tabs/trust.jade:194 -msgid "You must have at least {{1}} to add a new trust line. {{2}}" -msgstr "У Вас должно быть по меньшей мере {{1}} для того, чтобы создать новую линию доверия. {{2}}" - -#: src/jade/tabs/trust.jade:82 msgid "Name / Address" msgstr "Имя / Адрес" -#: src/jade/tabs/trust.jade:84 src/jade/tabs/trust.jade:130 +#: src/jade/tabs/trust.jade:57 src/jade/tabs/trust.jade:90 msgid "Currency" msgstr "Валюта" -#: src/jade/tabs/trust.jade:87 +#: src/jade/tabs/trust.jade:60 msgid "Trust Limit" msgstr "Лимит доверия" -#: src/jade/tabs/trust.jade:93 +#: src/jade/tabs/trust.jade:66 msgid "Gateway's Ripple name or address" msgstr "Ripple имя шлюза или его адрес" -#: src/jade/tabs/trust.jade:162 +#: src/jade/tabs/trust.jade:100 +msgid "Amount field is required." +msgstr "" + +#: src/jade/tabs/trust.jade:115 +msgid "" +"Allow this trust line's balances to be transferred to another issuer you " +"connect to. More " +"information" +msgstr "" + +#: src/jade/tabs/trust.jade:125 msgid "" "{{1:You are connecting a gateway, which means}}{{2:{{ counterparty_address |" " rpripplename:{tilde: true} }} can:}}" msgstr "{{1:Вы подключаете шлюз, что означает}}{{2:{{ counterparty_address | rpripplename:{tilde: true} }} может:}}" -#: src/jade/tabs/trust.jade:165 +#: src/jade/tabs/trust.jade:128 msgid "{{1:- Hold up to }}{{2}} {{3: on your behalf}}" -msgstr "{{1:- Держит до }}{{2}} {{3: от вашего имени}}" +msgstr "{{1:- Держать до }}{{2}} {{3: от вашего имени}}" -#: src/jade/tabs/trust.jade:169 +#: src/jade/tabs/trust.jade:132 msgid "{{1:- Hold }}{{2}} {{3: on your behalf}}" msgstr "{{1:- Держит }}{{2}} {{3: от вашего имени}}" -#: src/jade/tabs/trust.jade:183 src/jade/tabs/trust.jade:186 -#: src/jade/tabs/trust.jade:189 src/jade/tabs/trust.jade:255 -#: src/jade/tabs/trust.jade:258 src/jade/tabs/trust.jade:261 -#: src/jade/tabs/trust.jade:288 src/jade/tabs/trust.jade:291 -#: src/jade/tabs/trust.jade:294 -msgid "Remove" -msgstr "Удалить" - -#: src/jade/tabs/trust.jade:192 +#: src/jade/tabs/trust.jade:148 msgid "Verifying address" msgstr "Проверка адреса" -#: src/jade/tabs/trust.jade:201 +#: src/jade/tabs/trust.jade:151 msgid "" "Your account has to be {{1:activated}} before you can add a gateway account." msgstr "Ваш аккаунт должен быть {{1:активирован}} для подключения шлюза." -#: src/jade/tabs/trust.jade:209 +#: src/jade/tabs/trust.jade:159 msgid "Connect gateway" msgstr "Подключиться к шлюзу" -#: src/jade/tabs/trust.jade:227 -msgid "Gateway" -msgstr "Шлюз" - -#: src/jade/tabs/trust.jade:229 src/jade/tabs/trust.jade:271 +#: src/jade/tabs/trust.jade:169 src/jade/tabs/trust.jade:221 msgid "Limit" msgstr "Лимит" -#: src/jade/tabs/trust.jade:230 +#: src/jade/tabs/trust.jade:170 msgid "Min" msgstr "Минимум" -#: src/jade/tabs/trust.jade:245 +#: src/jade/tabs/trust.jade:172 +msgid "Edit" +msgstr "Править" + +#: src/jade/tabs/trust.jade:188 msgid "Off" msgstr "Выкл" -#: src/jade/tabs/trust.jade:246 +#: src/jade/tabs/trust.jade:189 msgid "On" msgstr "Вкл" -#: src/jade/tabs/trust.jade:276 +#: src/jade/tabs/trust.jade:192 src/jade/tabs/trust.jade:201 +#: src/jade/tabs/trust.jade:206 src/jade/tabs/trust.jade:210 +#: src/jade/tabs/trust.jade:239 src/jade/tabs/trust.jade:244 +#: src/jade/tabs/trust.jade:248 +msgid "Incoming trust" +msgstr "" + +#: src/jade/tabs/trust.jade:192 +msgid "" +"You can't edit incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "" + +#: src/jade/tabs/trust.jade:200 src/jade/tabs/trust.jade:202 +#: src/jade/tabs/trust.jade:205 src/jade/tabs/trust.jade:207 +#: src/jade/tabs/trust.jade:209 src/jade/tabs/trust.jade:211 +#: src/jade/tabs/trust.jade:238 src/jade/tabs/trust.jade:240 +#: src/jade/tabs/trust.jade:243 src/jade/tabs/trust.jade:245 +#: src/jade/tabs/trust.jade:247 src/jade/tabs/trust.jade:249 +msgid "Remove" +msgstr "Удалить" + +#: src/jade/tabs/trust.jade:201 src/jade/tabs/trust.jade:206 +#: src/jade/tabs/trust.jade:210 src/jade/tabs/trust.jade:239 +#: src/jade/tabs/trust.jade:244 src/jade/tabs/trust.jade:248 +msgid "" +"You can't delete incoming trust lines. Incoming trust lines are when other " +"Ripple users trust you." +msgstr "" + +#: src/jade/tabs/trust.jade:226 msgid "Rippling {{1}}" msgstr "Пересылка {{1}}" -#: src/jade/tabs/tx.jade:3 +#: src/jade/tabs/tx.jade:5 msgid "Loading transaction details..." msgstr "Загружаются детали транзакции..." -#: src/jade/tabs/tx.jade:5 +#: src/jade/tabs/tx.jade:7 msgid "An error occurred while loading the transaction details." msgstr "Произошла ошибка при загрузке деталей транзакции." -#: src/jade/tabs/tx.jade:8 +#: src/jade/tabs/tx.jade:10 msgid "Transaction #" msgstr "Транзакция #" -#: src/jade/tabs/tx.jade:11 -msgid "Show in graph" -msgstr "Показать на графике" - -#: src/jade/tabs/tx.jade:13 +#: src/jade/tabs/tx.jade:15 msgid "Transaction type: {{1}}" msgstr "Тип транзакции: {{1}}" -#: src/jade/tabs/tx.jade:20 +#: src/jade/tabs/tx.jade:22 msgid "Address sent from" msgstr "Адрес отправителя" -#: src/jade/tabs/tx.jade:24 +#: src/jade/tabs/tx.jade:26 msgid "Amount sent" msgstr "Отправленное количество" -#: src/jade/tabs/tx.jade:28 +#: src/jade/tabs/tx.jade:30 msgid "Currency sent" msgstr "Отправленная валюта" -#: src/jade/tabs/tx.jade:33 +#: src/jade/tabs/tx.jade:35 msgid "Address sent to" msgstr "Адрес получателя" -#: src/jade/tabs/tx.jade:37 +#: src/jade/tabs/tx.jade:39 msgid "Amount received" msgstr "Полученное количество" -#: src/jade/tabs/tx.jade:41 +#: src/jade/tabs/tx.jade:43 msgid "Currency received" msgstr "Полученная валюта" -#: src/jade/tabs/tx.jade:48 +#: src/jade/tabs/tx.jade:50 msgid "Network fee paid" msgstr "Комиссия сети" -#: src/jade/tabs/tx.jade:60 +#: src/jade/tabs/tx.jade:62 msgid "Ledger number" msgstr "Номер реестра" -#: src/jade/tabs/tx.jade:66 +#: src/jade/tabs/tx.jade:68 msgid "Address sent from:" msgstr "Адрес отправителя:" -#: src/jade/tabs/tx.jade:70 +# Sorry, we don't have an info page layout for this transaction type yet. +#: src/jade/tabs/tx.jade:72 msgid "" "Sorry, we don't have an info page layout for this transaction type yet." msgstr "Извините, мы еще не создали формат отображения для этого типа транзакции." +#: src/jade/tabs/usd.jade:35 +msgid "US Dollar Deposit" +msgstr "" + +#: src/jade/tabs/usd.jade:39 +msgid "SnapSwap US (~SnapSwap){{1}}{{2}}" +msgstr "" + +#: src/jade/tabs/usd.jade:45 +msgid "USA" +msgstr "" + +#: src/jade/tabs/usd.jade:48 +msgid "$ 0.31-$ 5.00" +msgstr "" + +#: src/jade/tabs/usd.jade:56 +msgid "" +"Ripple Trade has partnered with SnapSwap to provide easier access to USD. " +"Following this action will enable SnapSwap to hold USD on your behalf." +msgstr "" + +#: src/jade/tabs/usd.jade:73 +msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.US" +msgstr "" + +#: src/jade/tabs/usd.jade:74 +msgid "Register and verify your account at SnapSwap US. You will need: {{1}}" +msgstr "" + +#: src/jade/tabs/usd.jade:82 +msgid "EXISTING SNAPSWAP US CUSTOMERS" +msgstr "" + +#: src/jade/tabs/usd.jade:93 +msgid "Deposit instantly via selected banks" +msgstr "" + +#: src/jade/tabs/usd.jade:95 +msgid "Deposit cash at Bank of America branches (3 business days)" +msgstr "" + +#: src/jade/tabs/usd.jade:97 +msgid "Deposit via online bank transfer (3 business days)" +msgstr "" + +#: src/jade/tabs/usd.jade:103 +msgid "Directly to your bank account (3-4 business days)" +msgstr "" + +#: src/jade/tabs/usd.jade:105 +msgid "Directly to your PayPal account (several minutes)" +msgstr "" + +#: src/jade/tabs/widgets/assetallocation.jade:3 +msgid "Asset Allocation" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:3 +msgid "Balances" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:12 +msgid "Balance
{{ account.Balance | rpamount }} XRP" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:16 +msgid "Reserve" +msgstr "Резерв" + +#: src/jade/tabs/widgets/balances.jade:18 +msgid "Reserve amount" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:18 +msgid "" +"Minimum amount of XRP required to fund your account. You cannot spend the " +"reserve." +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:20 +msgid "Reserve amount
{{ account.reserve | rpamount }} XRP" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Available amount" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:26 +msgid "Total amount of XRP in your account minus the reserve amount." +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:28 +msgid "Available amount
{{ account.max_spend | rpamount }} XRP" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:35 +msgid "" +"Balance
{{ entry.total | rpamount:{precision: 30, hard_precision: true} " +"}} {{ entry.total | rpcurrency }}" +msgstr "" + +#: src/jade/tabs/widgets/balances.jade:43 +msgid "" +"Balance
{{ component | rpamount:{precision: 30, rel_min_precision: -2, " +"hard_precision: true} }} {{ entry.total | rpcurrency }}" +msgstr "" + +#: src/jade/tabs/widgets/markets.jade:3 +msgid "Markets" +msgstr "" + +#: src/jade/tabs/widgets/networth.jade:3 +msgid "Net Worth" +msgstr "" + +#: src/jade/tabs/widgets/networth.jade:8 +msgid "{{1:{{1:In}}}}{{2}}" +msgstr "" + +#: src/jade/tabs/widgets/networth.jade:14 +msgid "Estimated from latest trade price" +msgstr "Ориентировочно от последней цены на торгах" + +#: src/jade/tabs/widgets/networth.jade:23 +msgid "(excluding negative balances)" +msgstr "(без отрицательных балансов)" + +#: src/jade/tabs/widgets/orders.jade:3 +msgid "My Orders" +msgstr "" + +#: src/jade/tabs/widgets/orders.jade:68 +msgid "trade currencies" +msgstr "" + #: src/jade/tabs/xrp.jade:19 msgid "Ripple name: {{1}}{{2}}{{3}}" msgstr "Ripple имя: {{1}}{{2}}{{3}}" @@ -2717,7 +3666,3 @@ msgid "" "full Ripple address, and while we are working to transition to Ripple names," " some gateways may still ask for your full address." msgstr "Ripple Имена - это новая особенность Ripple! По Вашему Ripple имени (~{{userCredentials.username}}), Вы сможете принимать платежи. Вы можете продолжать использовать Ripple адрес целиком, и, пока мы продолжаем работу над переходом исключительно на Ripple имена, некоторые шлюзы могут затребовать Ваш адрес целиком." - -#: src/jade/tabs/xrp.jade:31 -msgid "Ripple address {{1}}" -msgstr "Ripple адрес {{1}}" diff --git a/l10n/templates/messages.pot b/l10n/templates/messages.pot index 7c348d736..14e7cac0d 100644 --- a/l10n/templates/messages.pot +++ b/l10n/templates/messages.pot @@ -1,4 +1,4 @@ -# Generated by grunt-jade-l10n-extractor +# Generated by gulp-jade-l10n-extractor msgid "" msgstr "" @@ -6,3656 +6,4069 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: src/jade/client/index.jade:5 -#: src/jade/client/navbar.jade:117 -#: src/jade/tabs/trust.jade:59 -#: src/jade/tabs/trust.jade:168 +#: src/templates/client/layout.jade:4 +#: src/templates/client/navbar.jade:141 +#: src/templates/tabs/trust.jade:65 +#: src/templates/tabs/trust.jade:210 msgid "Balance" msgstr "Balance" -#: src/jade/client/index.jade:7 -#: src/jade/client/navbar.jade:119 +#: src/templates/client/layout.jade:6 +#: src/templates/client/navbar.jade:143 msgid "History" msgstr "History" -#: src/jade/client/index.jade:8 -#: src/jade/client/navbar.jade:121 +#: src/templates/client/layout.jade:7 +#: src/templates/client/navbar.jade:145 msgid "Contacts" msgstr "Contacts" -#: src/jade/client/index.jade:12 -#: src/jade/client/navbar.jade:21 -#: src/jade/tabs/contacts.jade:65 +#: src/templates/client/layout.jade:11 +#: src/templates/client/navbar.jade:21 +#: src/templates/tabs/contacts.jade:119 msgid "Send" msgstr "Send" -#: src/jade/client/index.jade:16 -msgid "Convert" -msgstr "Convert" +#: src/templates/client/layout.jade:15 +msgid "Trade (simple)" +msgstr "Trade (simple)" -#: src/jade/client/index.jade:18 -#: src/jade/client/navbar.jade:23 -#: src/jade/client/navbar.jade:25 -#: src/jade/tabs/settings/navbar.jade:3 -msgid "Trade" -msgstr "Trade" +#: src/templates/client/layout.jade:17 +msgid "Trade (advanced)" +msgstr "Trade (advanced)" -#: src/jade/client/index.jade:22 -#: src/jade/client/navbar.jade:27 -#: src/jade/client/navbar.jade:133 -msgid "Fund" -msgstr "Fund" +#: src/templates/client/layout.jade:21 +#: src/templates/client/navbar.jade:157 +msgid "Featured gateways" +msgstr "Featured gateways" -#: src/jade/client/index.jade:24 -#: src/jade/tabs/fund/menu.jade:29 -msgid "Gateways" -msgstr "Gateways" +#: src/templates/client/layout.jade:23 +#: src/templates/client/navbar.jade:159 +msgid "Add any gateway (trust lines)" +msgstr "Add any gateway (trust lines)" -#: src/jade/client/index.jade:29 -#: src/jade/client/navbar.jade:107 -#: src/jade/tabs/su.jade:12 +#: src/templates/client/layout.jade:27 +#: src/templates/client/navbar.jade:131 +#: src/templates/tabs/su.jade:12 msgid "Account" msgstr "Account" -#: src/jade/client/index.jade:32 -#: src/jade/client/navbar.jade:109 -#: src/jade/tabs/advanced.jade:19 +#: src/templates/client/layout.jade:30 +#: src/templates/client/navbar.jade:133 +#: src/templates/tabs/settingsgateway.jade:16 msgid "Settings" msgstr "Settings" -#: src/jade/client/index.jade:35 +#: src/templates/client/layout.jade:33 msgid "Logout" msgstr "Logout" -#: src/jade/client/index.jade:61 +#: src/templates/client/layout.jade:67 msgid "Why Use Ripple Trade?" msgstr "Why Use Ripple Trade?" -#: src/jade/client/index.jade:66 +#: src/templates/client/layout.jade:72 msgid "Home of XRP -" msgstr "Home of XRP -" -#: src/jade/client/index.jade:67 +#: src/templates/client/layout.jade:73 msgid "the best place to buy and sell XRP" msgstr "the best place to buy and sell XRP" -#: src/jade/client/index.jade:71 +#: src/templates/client/layout.jade:77 msgid "Free -" msgstr "Free -" -#: src/jade/client/index.jade:72 +#: src/templates/client/layout.jade:78 msgid "no fees to sign up and use Ripple Trade" msgstr "no fees to sign up and use Ripple Trade" -#: src/jade/client/index.jade:76 +#: src/templates/client/layout.jade:82 msgid "No Middlemen -" msgstr "No Middlemen -" -#: src/jade/client/index.jade:77 +#: src/templates/client/layout.jade:83 msgid "When you submit orders, Ripple automatically finds the best available match, without a clearinghouse or broker." msgstr "When you submit orders, Ripple automatically finds the best available match, without a clearinghouse or broker." -#: src/jade/client/index.jade:81 +#: src/templates/client/layout.jade:87 msgid "Deposit, trade and withdraw money on Ripple via gateways." msgstr "Deposit, trade and withdraw money on Ripple via gateways." -#: src/jade/client/index.jade:89 +#: src/templates/client/layout.jade:95 msgid "Featured Ripple Gateways" msgstr "Featured Ripple Gateways" -#: src/jade/client/index.jade:91 +#: src/templates/client/layout.jade:97 msgid "Ripple's growing gateway network." msgstr "Ripple's growing gateway network." -#: src/jade/client/index.jade:93 -#: src/jade/client/index.jade:96 -#: src/jade/client/index.jade:99 -#: src/jade/client/index.jade:102 -#: src/jade/client/index.jade:105 -#: src/jade/client/index.jade:108 -#: src/jade/client/index.jade:111 -#: src/jade/client/index.jade:114 -#: src/jade/client/index.jade:117 -#: src/jade/tabs/banner/unfunded.jade:6 -#: src/jade/tabs/brl.jade:53 -#: src/jade/tabs/brl.jade:57 -#: src/jade/tabs/brl.jade:93 -#: src/jade/tabs/btc.jade:46 -#: src/jade/tabs/eur.jade:50 -#: src/jade/tabs/eur.jade:54 -#: src/jade/tabs/eur.jade:86 -#: src/jade/tabs/eur.jade:93 -#: src/jade/tabs/gold.jade:51 -#: src/jade/tabs/jpy.jade:55 -#: src/jade/tabs/jpy.jade:91 -#: src/jade/tabs/jpy.jade:97 -#: src/jade/tabs/mxn.jade:53 -#: src/jade/tabs/send.jade:63 -#: src/jade/tabs/trade.jade:320 -#: src/jade/tabs/usd.jade:51 -#: src/jade/tabs/usd.jade:83 -#: src/jade/tabs/usd.jade:90 -#: src/jade/tabs/usd.jade:100 -#: src/jade/tabs/widgets/orders.jade:31 +#: src/templates/client/layout.jade:99 +#: src/templates/client/layout.jade:102 +#: src/templates/client/layout.jade:105 +#: src/templates/client/layout.jade:108 +#: src/templates/client/layout.jade:111 +#: src/templates/client/layout.jade:114 +#: src/templates/client/layout.jade:117 +#: src/templates/client/layout.jade:120 +#: src/templates/client/layout.jade:123 +#: src/templates/tabs/brl.jade:62 +#: src/templates/tabs/brl.jade:66 +#: src/templates/tabs/brl.jade:105 +#: src/templates/tabs/btc.jade:53 +#: src/templates/tabs/btc.jade:152 +#: src/templates/tabs/btc.jade:189 +#: src/templates/tabs/btc.jade:199 +#: src/templates/tabs/eur.jade:59 +#: src/templates/tabs/eur.jade:63 +#: src/templates/tabs/eur.jade:98 +#: src/templates/tabs/eur.jade:105 +#: src/templates/tabs/gold.jade:60 +#: src/templates/tabs/jpy.jade:64 +#: src/templates/tabs/jpy.jade:103 +#: src/templates/tabs/jpy.jade:109 +#: src/templates/tabs/mxn.jade:62 +#: src/templates/tabs/send.jade:100 +#: src/templates/tabs/sgd.jade:59 +#: src/templates/tabs/sgd.jade:63 +#: src/templates/tabs/sgd.jade:104 +#: src/templates/tabs/sgd.jade:110 +#: src/templates/tabs/usd.jade:60 +#: src/templates/tabs/usd.jade:95 +#: src/templates/tabs/usd.jade:102 +#: src/templates/tabs/usd.jade:110 +#: src/templates/tabs/usd.jade:132 +#: src/templates/tabs/usd.jade:169 +#: src/templates/tabs/usd.jade:181 +#: src/templates/tabs/banner/unfunded.jade:6 msgid "{{1}}" msgstr "{{1}}" -#: src/jade/client/index.jade:123 +#: src/templates/client/layout.jade:129 msgid "Version: {{version}}" msgstr "Version: {{version}}" -#: src/jade/client/index.jade:128 +#: src/templates/client/layout.jade:134 msgid "Terms of Use" msgstr "Terms of Use" -#: src/jade/client/index.jade:129 +#: src/templates/client/layout.jade:135 msgid "Privacy Policy" msgstr "Privacy Policy" -#: src/jade/client/index.jade:130 +#: src/templates/client/layout.jade:136 msgid "Support" msgstr "Support" -#: src/jade/client/index.jade:131 +#: src/templates/client/layout.jade:137 msgid "Bug reports" msgstr "Bug reports" -#: src/jade/client/index.jade:138 +#: src/templates/client/layout.jade:144 msgid "more..." msgstr "more..." -#: src/jade/client/index.jade:142 +#: src/templates/client/layout.jade:148 msgid "Select a language" msgstr "Select a language" -#: src/jade/client/navbar.jade:2 +#: src/templates/client/navbar.jade:2 msgid "You are viewing an account in {{1}} mode. While in this mode, you can view publicly available data, but you cannot initiate any transactions. Click {{2}} to exit." msgstr "You are viewing an account in {{1}} mode. While in this mode, you can view publicly available data, but you cannot initiate any transactions. Click {{2}} to exit." -#: src/jade/client/navbar.jade:8 +#: src/templates/client/navbar.jade:8 msgid "Warning: this account has over 200 trust lines, so the displayed account balance may not be accurate." msgstr "Warning: this account has over 200 trust lines, so the displayed account balance may not be accurate." -#: src/jade/client/navbar.jade:19 +#: src/templates/client/navbar.jade:19 msgid "Overview" msgstr "Overview" -#: src/jade/client/navbar.jade:49 -#: src/jade/tabs/account/private.jade:7 -#: src/jade/tabs/account/private.jade:16 -#: src/jade/tabs/account/public.jade:45 -#: src/jade/tabs/apps.jade:8 -#: src/jade/tabs/btc.jade:72 -#: src/jade/tabs/exchange.jade:9 -#: src/jade/tabs/kyc.jade:45 -#: src/jade/tabs/recover.jade:26 -#: src/jade/tabs/security.jade:147 -#: src/jade/tabs/su.jade:8 -#: src/jade/tabs/trust.jade:9 -#: src/jade/tabs/trust.jade:139 +#: src/templates/client/navbar.jade:23 +#: src/templates/client/navbar.jade:25 +#: src/templates/tabs/settings/navbar.jade:3 +msgid "Trade" +msgstr "Trade" + +#: src/templates/client/navbar.jade:27 +msgid "Gateways" +msgstr "Gateways" + +#: src/templates/client/navbar.jade:46 +msgid ""Disconnected from the Ripple network"" +msgstr ""Disconnected from the Ripple network"" + +#: src/templates/client/navbar.jade:49 +msgid ""Network fees are currently higher than your maximum. Fee: {{ fee | rpamount }} XRP. Change fees"" +msgstr ""Network fees are currently higher than your maximum. Fee: {{ fee | rpamount }} XRP. Change fees"" + +#: src/templates/client/navbar.jade:52 +msgid ""'Network fees are currently higher than normal. Fee: {{ fee | rpamount }} XRP'"" +msgstr ""'Network fees are currently higher than normal. Fee: {{ fee | rpamount }} XRP'"" + +#: src/templates/client/navbar.jade:55 +msgid ""Connected to the Ripple network. Fee: {{ fee | rpamount }} XRP"" +msgstr ""Connected to the Ripple network. Fee: {{ fee | rpamount }} XRP"" + +#: src/templates/client/navbar.jade:58 +msgid ""Connected to the Ripple network."" +msgstr ""Connected to the Ripple network."" + +#: src/templates/client/navbar.jade:68 +#: src/templates/tabs/apps.jade:8 +#: src/templates/tabs/balance.jade:10 +#: src/templates/tabs/brl.jade:93 +#: src/templates/tabs/btc.jade:81 +#: src/templates/tabs/btc.jade:104 +#: src/templates/tabs/btc.jade:172 +#: src/templates/tabs/eur.jade:83 +#: src/templates/tabs/exchange.jade:11 +#: src/templates/tabs/gold.jade:85 +#: src/templates/tabs/jpy.jade:86 +#: src/templates/tabs/kyc.jade:50 +#: src/templates/tabs/mxn.jade:88 +#: src/templates/tabs/recover.jade:32 +#: src/templates/tabs/security.jade:164 +#: src/templates/tabs/send.jade:11 +#: src/templates/tabs/sgd.jade:87 +#: src/templates/tabs/su.jade:8 +#: src/templates/tabs/trade.jade:650 +#: src/templates/tabs/trade.jade:690 +#: src/templates/tabs/trust.jade:9 +#: src/templates/tabs/trust.jade:177 +#: src/templates/tabs/usd.jade:80 +#: src/templates/tabs/usd.jade:152 +#: src/templates/tabs/account/private.jade:7 +#: src/templates/tabs/account/private.jade:16 +#: src/templates/tabs/account/public.jade:59 msgid "Loading..." msgstr "Loading..." -#: src/jade/client/navbar.jade:50 +#: src/templates/client/navbar.jade:69 msgid "There are no recent notifications." msgstr "There are no recent notifications." -#: src/jade/client/navbar.jade:54 +#: src/templates/client/navbar.jade:78 msgid "You sent {{1}} to {{2}}" msgstr "You sent {{1}} to {{2}}" -#: src/jade/client/navbar.jade:60 +#: src/templates/client/navbar.jade:84 msgid "{{1}} sent you {{2}}" msgstr "{{1}} sent you {{2}}" -#: src/jade/client/navbar.jade:68 +#: src/templates/client/navbar.jade:92 msgid "{{entry.transaction.counterparty | rpcontactname}} now trusts you for" msgstr "{{entry.transaction.counterparty | rpcontactname}} now trusts you for" -#: src/jade/client/navbar.jade:74 -#: src/jade/notification/account.jade:25 -#: src/jade/tabs/history.jade:115 -#: src/jade/tabs/history/effects.jade:63 +#: src/templates/client/navbar.jade:98 +#: src/templates/tabs/history.jade:121 +#: src/templates/tabs/history/effects.jade:94 msgid "You have now connected to the gateway {{1}}{{2: for }}{{3}}." msgstr "You have now connected to the gateway {{1}}{{2: for }}{{3}}." -#: src/jade/client/navbar.jade:85 +#: src/templates/client/navbar.jade:109 msgid "You cancelled an order accepting {{1}} for {{2}}" msgstr "You cancelled an order accepting {{1}} for {{2}}" -#: src/jade/client/navbar.jade:92 -#: src/jade/tabs/history.jade:138 +#: src/templates/client/navbar.jade:116 +#: src/templates/tabs/history.jade:144 msgid "Account details have been changed" msgstr "Account details have been changed" -#: src/jade/client/navbar.jade:95 -#: src/jade/tabs/history.jade:141 -#: src/jade/tabs/trust.jade:171 +#: src/templates/client/navbar.jade:119 +#: src/templates/tabs/history.jade:147 +#: src/templates/tabs/trust.jade:215 msgid "Rippling" msgstr "Rippling" -#: src/jade/client/navbar.jade:97 -#: src/jade/tabs/history.jade:143 +#: src/templates/client/navbar.jade:121 +#: src/templates/tabs/history.jade:149 msgid "Failed transaction" msgstr "Failed transaction" -#: src/jade/client/navbar.jade:103 +#: src/templates/client/navbar.jade:127 msgid "View Full History" msgstr "View Full History" -#: src/jade/client/navbar.jade:111 +#: src/templates/client/navbar.jade:135 msgid "Log Out" msgstr "Log Out" -#: src/jade/client/navbar.jade:126 +#: src/templates/client/navbar.jade:150 msgid "Simple" msgstr "Simple" -#: src/jade/client/navbar.jade:128 -#: src/jade/tabs/settings/navbar.jade:4 +#: src/templates/client/navbar.jade:152 msgid "Advanced" msgstr "Advanced" -#: src/jade/client/navbar.jade:135 -msgid "Withdraw" -msgstr "Withdraw" - -#: src/jade/client/navbar.jade:137 +#: src/templates/client/navbar.jade:162 msgid "Your account was successfully recovered and encrypted with the new password you provided!" msgstr "Your account was successfully recovered and encrypted with the new password you provided!" -#: src/jade/client/navbar.jade:138 -msgid "dismiss" -msgstr "dismiss" +#: src/templates/client/navbar.jade:164 +msgid "'l10n'" +msgstr "×" -#: src/jade/directives/addresspopover.jade:3 -msgid "Ripple address {{ identity }}" -msgstr "Ripple address {{ identity }}" +#: src/templates/directives/addresspopover.jade:1 +#: src/templates/tabs/account/public.jade:63 +msgid "Ripple address" +msgstr "Ripple address" -#: src/jade/directives/addresspopover.jade:8 -#: src/jade/tabs/tx.jade:13 +#: src/templates/directives/addresspopover.jade:3 +#: src/templates/tabs/tx.jade:13 msgid "Show in graph" msgstr "Show in graph" -#: src/jade/directives/transactionerror.jade:8 +#: src/templates/directives/transactionerror.jade:8 msgid "Connecting gateway to your account..." msgstr "Connecting gateway to your account..." -#: src/jade/directives/transactionerror.jade:10 +#: src/templates/directives/transactionerror.jade:10 msgid "Gateway connected." msgstr "Gateway connected." -#: src/jade/directives/transactionerror.jade:12 +#: src/templates/directives/transactionerror.jade:12 msgid "There was a problem connecting to the gateway. Please try again later." msgstr "There was a problem connecting to the gateway. Please try again later." -#: src/jade/directives/transactionerror.jade:14 -#: src/jade/directives/transactionerror.jade:73 -#: src/jade/directives/transactionerror.jade:158 -#: src/jade/messages/sendconvert/confirmation.jade:13 +#: src/templates/directives/transactionerror.jade:14 +#: src/templates/directives/transactionerror.jade:73 +#: src/templates/directives/transactionerror.jade:158 +#: src/templates/messages/sendconvert/confirmation.jade:13 msgid "Error code: {{engine_result}} - {{engine_result_message}}" msgstr "Error code: {{engine_result}} - {{engine_result_message}}" -#: src/jade/directives/transactionerror.jade:19 -#: src/jade/directives/transactionerror.jade:23 -#: src/jade/directives/transactionerror.jade:28 -#: src/jade/directives/transactionerror.jade:33 -#: src/jade/directives/transactionerror.jade:45 -#: src/jade/directives/transactionerror.jade:52 -#: src/jade/directives/transactionerror.jade:156 -#: src/jade/directives/transactionerror.jade:163 -#: src/jade/directives/transactionerror.jade:167 -#: src/jade/directives/transactionerror.jade:172 -#: src/jade/directives/transactionerror.jade:177 -#: src/jade/directives/transactionerror.jade:186 -#: src/jade/directives/transactionerror.jade:193 +#: src/templates/directives/transactionerror.jade:19 +#: src/templates/directives/transactionerror.jade:23 +#: src/templates/directives/transactionerror.jade:28 +#: src/templates/directives/transactionerror.jade:33 +#: src/templates/directives/transactionerror.jade:45 +#: src/templates/directives/transactionerror.jade:52 +#: src/templates/directives/transactionerror.jade:156 +#: src/templates/directives/transactionerror.jade:163 +#: src/templates/directives/transactionerror.jade:167 +#: src/templates/directives/transactionerror.jade:172 +#: src/templates/directives/transactionerror.jade:177 +#: src/templates/directives/transactionerror.jade:186 +#: src/templates/directives/transactionerror.jade:193 msgid "Request failed" msgstr "Request failed" -#: src/jade/directives/transactionerror.jade:21 -#: src/jade/directives/transactionerror.jade:165 +#: src/templates/directives/transactionerror.jade:21 +#: src/templates/directives/transactionerror.jade:165 msgid "Your request timed out, please try again." msgstr "Your request timed out, please try again." -#: src/jade/directives/transactionerror.jade:25 -#: src/jade/directives/transactionerror.jade:84 -#: src/jade/directives/transactionerror.jade:169 -#: src/jade/messages/sendconvert/confirmation.jade:18 +#: src/templates/directives/transactionerror.jade:25 +#: src/templates/directives/transactionerror.jade:84 +#: src/templates/directives/transactionerror.jade:169 +#: src/templates/messages/sendconvert/confirmation.jade:18 msgid "Error code: Destination tag needed [tefDST_TAG_NEEDED]." msgstr "Error code: Destination tag needed [tefDST_TAG_NEEDED]." -#: src/jade/directives/transactionerror.jade:30 -#: src/jade/directives/transactionerror.jade:174 +#: src/templates/directives/transactionerror.jade:30 +#: src/templates/directives/transactionerror.jade:174 msgid "Error code: This request failed because it exceeded the maximum network fee, please try again later [telINSUF_FEE_P]." msgstr "Error code: This request failed because it exceeded the maximum network fee, please try again later [telINSUF_FEE_P]." -#: src/jade/directives/transactionerror.jade:35 +#: src/templates/directives/transactionerror.jade:35 msgid "Error code: You have no gateway connected in this currency [terNO_LINE]." msgstr "Error code: You have no gateway connected in this currency [terNO_LINE]." -#: src/jade/directives/transactionerror.jade:37 +#: src/templates/directives/transactionerror.jade:37 msgid "Error code: Insufficient reserve to connect gateway [tecINSUF_RESERVE_LINE]." msgstr "Error code: Insufficient reserve to connect gateway [tecINSUF_RESERVE_LINE]." -#: src/jade/directives/transactionerror.jade:39 +#: src/templates/directives/transactionerror.jade:39 msgid "Error code: You have an insufficient reserve amount to connect a gateway [tecNO_LINE_INSUF_RESERVE]. {{1}}" msgstr "Error code: You have an insufficient reserve amount to connect a gateway [tecNO_LINE_INSUF_RESERVE]. {{1}}" -#: src/jade/directives/transactionerror.jade:41 -#: src/jade/tabs/fund.jade:34 -#: src/jade/tabs/send.jade:110 -#: src/jade/tabs/trust.jade:74 +#: src/templates/directives/transactionerror.jade:41 +#: src/templates/tabs/fund.jade:49 msgid "More information" msgstr "More information" -#: src/jade/directives/transactionerror.jade:42 -#: src/jade/directives/transactionerror.jade:98 -#: src/jade/directives/transactionerror.jade:135 -#: src/jade/directives/transactionerror.jade:183 -#: src/jade/messages/sendconvert/confirmation.jade:27 +#: src/templates/directives/transactionerror.jade:42 +#: src/templates/directives/transactionerror.jade:98 +#: src/templates/directives/transactionerror.jade:135 +#: src/templates/directives/transactionerror.jade:183 +#: src/templates/messages/sendconvert/confirmation.jade:27 msgid "Error: {{engine_result_message}}" msgstr "Error: {{engine_result_message}}" -#: src/jade/directives/transactionerror.jade:47 -#: src/jade/directives/transactionerror.jade:103 -#: src/jade/directives/transactionerror.jade:188 -#: src/jade/messages/sendconvert/confirmation.jade:32 +#: src/templates/directives/transactionerror.jade:47 +#: src/templates/directives/transactionerror.jade:103 +#: src/templates/directives/transactionerror.jade:188 +#: src/templates/messages/sendconvert/confirmation.jade:32 msgid "Error code: You have no trust line in this currency [terNO_LINE]." msgstr "Error code: You have no trust line in this currency [terNO_LINE]." -#: src/jade/directives/transactionerror.jade:49 -#: src/jade/directives/transactionerror.jade:190 +#: src/templates/directives/transactionerror.jade:49 +#: src/templates/directives/transactionerror.jade:190 msgid "Your request failed: {{engine_result}} - {{engine_result_message}}" msgstr "Your request failed: {{engine_result}} - {{engine_result_message}}" -#: src/jade/directives/transactionerror.jade:54 -#: src/jade/directives/transactionerror.jade:195 +#: src/templates/directives/transactionerror.jade:54 +#: src/templates/directives/transactionerror.jade:195 msgid "Error code: request could not be submitted [tejLost]." msgstr "Error code: request could not be submitted [tejLost]." -#: src/jade/directives/transactionerror.jade:56 -#: src/jade/directives/transactionerror.jade:197 -#: src/jade/tabs/trust.jade:36 +#: src/templates/directives/transactionerror.jade:56 +#: src/templates/directives/transactionerror.jade:197 +#: src/templates/tabs/trust.jade:45 msgid "This request failed because the current network fee is higher than your account limit. You can adjust your maximum network fee in Settings > Advanced, or try again later.
Error code: Network fee exceeded [tejMaxFeeExceeded]." msgstr "This request failed because the current network fee is higher than your account limit. You can adjust your maximum network fee in Settings > Advanced, or try again later.
Error code: Network fee exceeded [tejMaxFeeExceeded]." -#: src/jade/directives/transactionerror.jade:59 -#: src/jade/directives/transactionerror.jade:200 +#: src/templates/directives/transactionerror.jade:59 +#: src/templates/directives/transactionerror.jade:200 msgid "Your request could not be submitted: {{engine_result}} - {{engine_result_message}}" msgstr "Your request could not be submitted: {{engine_result}} - {{engine_result_message}}" -#: src/jade/directives/transactionerror.jade:67 +#: src/templates/directives/transactionerror.jade:67 msgid "Payment pending" msgstr "Payment pending" -#: src/jade/directives/transactionerror.jade:69 +#: src/templates/directives/transactionerror.jade:69 msgid "Payment successful" msgstr "Payment successful" -#: src/jade/directives/transactionerror.jade:71 -#: src/jade/directives/transactionerror.jade:82 -#: src/jade/directives/transactionerror.jade:87 -#: src/jade/directives/transactionerror.jade:92 -#: src/jade/directives/transactionerror.jade:101 -#: src/jade/directives/transactionerror.jade:108 +#: src/templates/directives/transactionerror.jade:71 +#: src/templates/directives/transactionerror.jade:82 +#: src/templates/directives/transactionerror.jade:87 +#: src/templates/directives/transactionerror.jade:92 +#: src/templates/directives/transactionerror.jade:101 +#: src/templates/directives/transactionerror.jade:108 msgid "Payment failed" msgstr "Payment failed" -#: src/jade/directives/transactionerror.jade:78 +#: src/templates/directives/transactionerror.jade:78 msgid "Payment failed [tefMAX_LEDGER]." msgstr "Payment failed [tefMAX_LEDGER]." -#: src/jade/directives/transactionerror.jade:80 +#: src/templates/directives/transactionerror.jade:80 msgid "Your payment timed out, please try again." msgstr "Your payment timed out, please try again." -#: src/jade/directives/transactionerror.jade:89 -#: src/jade/messages/sendconvert/confirmation.jade:39 +#: src/templates/directives/transactionerror.jade:89 +#: src/templates/messages/sendconvert/confirmation.jade:39 msgid "Error code: This transaction failed because it exceeded the maximum network fee, please try again later [telINSUF_FEE_P]." msgstr "Error code: This transaction failed because it exceeded the maximum network fee, please try again later [telINSUF_FEE_P]." -#: src/jade/directives/transactionerror.jade:94 -#: src/jade/directives/transactionerror.jade:179 +#: src/templates/directives/transactionerror.jade:94 +#: src/templates/directives/transactionerror.jade:179 msgid "Error code: No destination [tecNO_DST]." msgstr "Error code: No destination [tecNO_DST]." -#: src/jade/directives/transactionerror.jade:96 -#: src/jade/directives/transactionerror.jade:181 -#: src/jade/messages/sendconvert/confirmation.jade:25 +#: src/templates/directives/transactionerror.jade:96 +#: src/templates/directives/transactionerror.jade:181 +#: src/templates/messages/sendconvert/confirmation.jade:25 msgid "Error code: Insufficient XRP sent to destination [tecNO_DST_INSUF_XRP]." msgstr "Error code: Insufficient XRP sent to destination [tecNO_DST_INSUF_XRP]." -#: src/jade/directives/transactionerror.jade:105 +#: src/templates/directives/transactionerror.jade:105 msgid "Your payment failed: {{engine_result}} - {{engine_result_message}}" msgstr "Your payment failed: {{engine_result}} - {{engine_result_message}}" -#: src/jade/directives/transactionerror.jade:110 +#: src/templates/directives/transactionerror.jade:110 msgid "Error code: Transaction could not be submitted [tejLost]." msgstr "Error code: Transaction could not be submitted [tejLost]." -#: src/jade/directives/transactionerror.jade:112 +#: src/templates/directives/transactionerror.jade:112 msgid "This transaction failed because the current network fee is higher than your account limit. You can adjust your maximum network fee in Settings > Advanced, or try again later.
Error code: Network fee exceeded [tejMaxFeeExceeded]." msgstr "This transaction failed because the current network fee is higher than your account limit. You can adjust your maximum network fee in Settings > Advanced, or try again later.
Error code: Network fee exceeded [tejMaxFeeExceeded]." -#: src/jade/directives/transactionerror.jade:115 +#: src/templates/directives/transactionerror.jade:115 msgid "Your payment could not be submitted: {{engine_result}} - {{engine_result_message}}" msgstr "Your payment could not be submitted: {{engine_result}} - {{engine_result_message}}" -#: src/jade/directives/transactionerror.jade:121 +#: src/templates/directives/transactionerror.jade:121 msgid "Request is malformed." msgstr "Request is malformed." -#: src/jade/directives/transactionerror.jade:122 +#: src/templates/directives/transactionerror.jade:122 msgid "Your request is invalid, reason: {{engine_result_message}} - {{engine_result_message}}" msgstr "Your request is invalid, reason: {{engine_result_message}} - {{engine_result_message}}" -#: src/jade/directives/transactionerror.jade:125 -#: src/jade/directives/transactionerror.jade:142 +#: src/templates/directives/transactionerror.jade:125 +#: src/templates/directives/transactionerror.jade:142 msgid "Transaction failed." msgstr "Transaction failed." -#: src/jade/directives/transactionerror.jade:127 +#: src/templates/directives/transactionerror.jade:127 msgid "You do not have enough funds to create this order [tecUNFUNDED_ORDER]." msgstr "You do not have enough funds to create this order [tecUNFUNDED_ORDER]." -#: src/jade/directives/transactionerror.jade:129 +#: src/templates/directives/transactionerror.jade:129 msgid "Insufficient reserve amount to submit an order [tecINSUF_RESERVE_OFFER]." msgstr "Insufficient reserve amount to submit an order [tecINSUF_RESERVE_OFFER]." -#: src/jade/directives/transactionerror.jade:131 +#: src/templates/directives/transactionerror.jade:131 msgid "This transaction failed because the current network fee is higher than your account limit. You can adjust your maximum network fee in Settings > Advanced, or try again later.
Error code: Network fee exceeded [tejMaxFeeExceeded]. {{1}}" msgstr "This transaction failed because the current network fee is higher than your account limit. You can adjust your maximum network fee in Settings > Advanced, or try again later.
Error code: Network fee exceeded [tejMaxFeeExceeded]. {{1}}" -#: src/jade/directives/transactionerror.jade:134 +#: src/templates/directives/transactionerror.jade:134 msgid "More information." msgstr "More information." -#: src/jade/directives/transactionerror.jade:138 +#: src/templates/directives/transactionerror.jade:138 msgid "Trade failed." msgstr "Trade failed." -#: src/jade/directives/transactionerror.jade:140 +#: src/templates/directives/transactionerror.jade:140 msgid "Trade failed, reason: {{engine_result_message}}" msgstr "Trade failed, reason: {{engine_result_message}}" -#: src/jade/directives/transactionerror.jade:144 +#: src/templates/directives/transactionerror.jade:144 msgid "The particular server you sent the transaction to was too busy to forward or process your transaction at the fee you included in it [telINSUF_FEE_P]." msgstr "The particular server you sent the transaction to was too busy to forward or process your transaction at the fee you included in it [telINSUF_FEE_P]." -#: src/jade/directives/transactionerror.jade:152 +#: src/templates/directives/transactionerror.jade:152 msgid "Request pending" msgstr "Request pending" -#: src/jade/directives/transactionerror.jade:154 +#: src/templates/directives/transactionerror.jade:154 msgid "Request successful" msgstr "Request successful" -#: src/jade/messages/sendconvert/confirmation.jade:4 -msgid "Transaction pending." -msgstr "Transaction pending." - -#: src/jade/messages/sendconvert/confirmation.jade:6 -msgid "Transaction successful" -msgstr "Transaction successful" - -#: src/jade/messages/sendconvert/confirmation.jade:8 -#: src/jade/messages/sendconvert/confirmation.jade:11 -#: src/jade/messages/sendconvert/confirmation.jade:16 -#: src/jade/messages/sendconvert/confirmation.jade:21 -#: src/jade/messages/sendconvert/confirmation.jade:30 -#: src/jade/messages/sendconvert/confirmation.jade:37 -#: src/jade/messages/sendconvert/localerror.jade:5 -#: src/jade/messages/sendconvert/localerror.jade:8 -#: src/jade/messages/sendconvert/localerror.jade:11 -#: src/jade/messages/sendconvert/localerror.jade:14 -msgid "Transaction failed" -msgstr "Transaction failed" - -#: src/jade/messages/sendconvert/confirmation.jade:9 -#: src/jade/tabs/brl.jade:25 -#: src/jade/tabs/btc.jade:22 -#: src/jade/tabs/eur.jade:25 -#: src/jade/tabs/gold.jade:25 -#: src/jade/tabs/jpy.jade:25 -#: src/jade/tabs/mxn.jade:25 -#: src/jade/tabs/trust.jade:43 -#: src/jade/tabs/usd.jade:25 -msgid "Please try again later." -msgstr "Please try again later." - -#: src/jade/messages/sendconvert/confirmation.jade:23 -msgid "Error code: The destination account does not exist [tecNO_DST]." -msgstr "Error code: The destination account does not exist [tecNO_DST]." - -#: src/jade/messages/sendconvert/confirmation.jade:34 -msgid "Your transaction failed: {{engine_result_message}}" -msgstr "Your transaction failed: {{engine_result_message}}" - -#: src/jade/messages/sendconvert/localerror.jade:6 -msgid "Error code: The account you're trying to send to does not exist [noDest]." -msgstr "Error code: The account you're trying to send to does not exist [noDest]." - -#: src/jade/messages/sendconvert/localerror.jade:9 -msgid "Error code: Ripple was unable to find a path between you and the destination account [noPath]." -msgstr "Error code: Ripple was unable to find a path between you and the destination account [noPath]." - -#: src/jade/messages/sendconvert/localerror.jade:12 -msgid "Error code: This transaction failed because it exceeded the maximum network fee. [maxfeeExceeded]." -msgstr "Error code: This transaction failed because it exceeded the maximum network fee. [maxfeeExceeded]." - -#: src/jade/messages/sendconvert/localerror.jade:15 -msgid "Error code: The transaction was rejected by the Ripple network [invalidTransaction]." -msgstr "Error code: The transaction was rejected by the Ripple network [invalidTransaction]." - -#: src/jade/messages/sendconvert/localerror.jade:17 -msgid "Account unlock failed" -msgstr "Account unlock failed" - -#: src/jade/messages/sendconvert/localerror.jade:18 -#: src/jade/tabs/trust.jade:40 -msgid "Your account could not be unlocked. Please try again later." -msgstr "Your account could not be unlocked. Please try again later." - -#: src/jade/messages/sendconvert/localerror.jade:20 -msgid "Sorry, an error occurred while submitting your transaction.Make sure you are connected to the Internet and try again later." -msgstr "Sorry, an error occurred while submitting your transaction.Make sure you are connected to the Internet and try again later." - -#: src/jade/messages/sendconvert/localerror.jade:22 -msgid "Before trying again, please ensure that the transaction has not been executed already." -msgstr "Before trying again, please ensure that the transaction has not been executed already." - -#: src/jade/messages/sendconvert/waiting.jade:5 -msgid "Sending transaction to the Ripple network" -msgstr "Sending transaction to the Ripple network" - -#: src/jade/notification/account.jade:3 -msgid "You sent {{1}} {{2}} to {{3}}" -msgstr "You sent {{1}} {{2}} to {{3}}" - -#: src/jade/notification/account.jade:11 -msgid "{{tx.counterparty | rpcontactname}} sent you" -msgstr "{{tx.counterparty | rpcontactname}} sent you" - -#: src/jade/notification/account.jade:18 -msgid "{{tx.counterparty | rpcontactname}} now trusts you for" -msgstr "{{tx.counterparty | rpcontactname}} now trusts you for" - -#: src/jade/popup/modifyOrderError.jade:2 +#: src/templates/popup/modifyOrderError.jade:2 msgid "Modify Order Error" msgstr "Modify Order Error" -#: src/jade/popup/modifyOrderError.jade:4 +#: src/templates/popup/modifyOrderError.jade:4 msgid "Sorry, your order could not be modified." msgstr "Sorry, your order could not be modified." -#: src/jade/popup/modifyOrderError.jade:5 +#: src/templates/popup/modifyOrderError.jade:5 msgid "Your original order was cancelled but the modified order was not placed.
" msgstr "Your original order was cancelled but the modified order was not placed.
" -#: src/jade/popup/modifyOrderError.jade:6 +#: src/templates/popup/modifyOrderError.jade:6 msgid "The quantity of your order changed by {{order.qtyChangeAfterCancel | rpamount}} before the order could be modified.

" msgstr "The quantity of your order changed by {{order.qtyChangeAfterCancel | rpamount}} before the order could be modified.

" -#: src/jade/popup/modifyOrderError.jade:7 +#: src/templates/popup/modifyOrderError.jade:7 msgid "To safeguard against the possibility of overfills a new order has not been placed.
" msgstr "To safeguard against the possibility of overfills a new order has not been placed.
" -#: src/jade/popup/modifyOrderError.jade:8 +#: src/templates/popup/modifyOrderError.jade:8 msgid "Please check your balance and history before placing the new order manually.
" msgstr "Please check your balance and history before placing the new order manually.
" -#: src/jade/popup/modifyOrderError.jade:10 -#: src/jade/popup/unlock.jade:17 +#: src/templates/popup/modifyOrderError.jade:10 +#: src/templates/popup/unlock.jade:21 msgid "Close" msgstr "Close" -#: src/jade/popup/unlock.jade:2 +#: src/templates/popup/unlock.jade:2 msgid "Unlock account" msgstr "Unlock account" -#: src/jade/popup/unlock.jade:5 -#: src/jade/tabs/login/form.jade:8 -#: src/jade/tabs/recover.jade:38 -#: src/jade/tabs/register.jade:58 -#: src/jade/tabs/security.jade:12 +#: src/templates/popup/unlock.jade:5 +#: src/templates/tabs/recover.jade:44 +#: src/templates/tabs/register.jade:72 +#: src/templates/tabs/security.jade:12 +#: src/templates/tabs/login/form.jade:9 msgid "Password" msgstr "Password" -#: src/jade/popup/unlock.jade:8 +#: src/templates/popup/unlock.jade:11 msgid "Please enter your password to show your secret key." msgstr "Please enter your password to show your secret key." -#: src/jade/popup/unlock.jade:9 -#: src/jade/tabs/send.jade:205 +#: src/templates/popup/unlock.jade:12 +#: src/templates/tabs/send.jade:292 msgid "Please enter your password to confirm this transaction." msgstr "Please enter your password to confirm this transaction." -#: src/jade/popup/unlock.jade:10 +#: src/templates/popup/unlock.jade:13 msgid "This password is incorrect, please try again." msgstr "This password is incorrect, please try again." -#: src/jade/popup/unlock.jade:13 +#: src/templates/popup/unlock.jade:14 +#: src/templates/messages/sendconvert/localerror.jade:18 +#: src/templates/tabs/account/public.jade:48 +msgid "Your account cannot be accessed at the moment. Please try again later." +msgstr "Your account cannot be accessed at the moment. Please try again later." + +#: src/templates/popup/unlock.jade:17 msgid "Confirming password" msgstr "Confirming password" -#: src/jade/popup/unlock.jade:16 -#: src/jade/tabs/account/public.jade:44 -#: src/jade/tabs/security.jade:146 +#: src/templates/popup/unlock.jade:20 +#: src/templates/tabs/security.jade:163 +#: src/templates/tabs/account/public.jade:58 msgid "Submit" msgstr "Submit" -#: src/jade/tabs/2fa/form.jade:3 -msgid "Country Code" -msgstr "Country Code" - -#: src/jade/tabs/2fa/form.jade:6 -#: src/jade/tabs/kyc.jade:162 -msgid "Phone Number" -msgstr "Phone Number" - -#: src/jade/tabs/_usd.jade:6 -#: src/jade/tabs/apps.jade:5 -#: src/jade/tabs/balance.jade:5 -#: src/jade/tabs/brl.jade:6 -#: src/jade/tabs/btc.jade:9 -#: src/jade/tabs/eur.jade:6 -#: src/jade/tabs/exchange.jade:6 -#: src/jade/tabs/fund.jade:6 -#: src/jade/tabs/gold.jade:6 -#: src/jade/tabs/history.jade:6 -#: src/jade/tabs/jpy.jade:6 -#: src/jade/tabs/kyc.jade:6 -#: src/jade/tabs/mxn.jade:6 -#: src/jade/tabs/send.jade:6 -#: src/jade/tabs/su.jade:5 -#: src/jade/tabs/trade.jade:7 -#: src/jade/tabs/trust.jade:6 -#: src/jade/tabs/usd.jade:6 -#: src/jade/tabs/withdraw.jade:6 -#: src/jade/tabs/xrp.jade:6 -msgid "You have to be online to see this screen" +#: src/templates/tabs/_usd.jade:6 +#: src/templates/tabs/brl.jade:6 +#: src/templates/tabs/btc.jade:9 +#: src/templates/tabs/eur.jade:6 +#: src/templates/tabs/fund.jade:6 +#: src/templates/tabs/gold.jade:6 +#: src/templates/tabs/jpy.jade:6 +#: src/templates/tabs/kyc.jade:6 +#: src/templates/tabs/mxn.jade:6 +#: src/templates/tabs/send.jade:6 +#: src/templates/tabs/sgd.jade:6 +#: src/templates/tabs/usd.jade:6 +#: src/templates/tabs/withdraw.jade:6 +#: src/templates/tabs/xrp.jade:6 +msgid ""err-you-must-be-online-to-see-this-screen"" msgstr "You have to be online to see this screen" -#: src/jade/tabs/_usd.jade:17 +#: src/templates/tabs/_usd.jade:22 msgid "USD instant deposit" msgstr "USD instant deposit" -#: src/jade/tabs/_usd.jade:19 -#: src/jade/tabs/_usd.jade:21 -msgid "Step 1 (Amount)" -msgstr "Step 1 (Amount)" - -#: src/jade/tabs/_usd.jade:22 -msgid "Step 2 (Confirmation)" -msgstr "Step 2 (Confirmation)" - -#: src/jade/tabs/_usd.jade:23 -msgid "Step 3 (Complete deposit)" -msgstr "Step 3 (Complete deposit)" - -#: src/jade/tabs/_usd.jade:26 +#: src/templates/tabs/_usd.jade:26 msgid "STEP 1: AMOUNT" msgstr "STEP 1: AMOUNT" -#: src/jade/tabs/_usd.jade:28 +#: src/templates/tabs/_usd.jade:28 msgid "STEP 2: CONFIRMATION" msgstr "STEP 2: CONFIRMATION" -#: src/jade/tabs/_usd.jade:30 +#: src/templates/tabs/_usd.jade:30 msgid "STEP 3: COMPLETE DEPOSIT" msgstr "STEP 3: COMPLETE DEPOSIT" -#: src/jade/tabs/_usd.jade:34 +#: src/templates/tabs/_usd.jade:34 msgid "Success! You've completed your USD deposit. Your funds should be available within a few minutes." msgstr "Success! You've completed your USD deposit. Your funds should be available within a few minutes." -#: src/jade/tabs/_usd.jade:36 +#: src/templates/tabs/_usd.jade:36 msgid "You cancelled your deposit." msgstr "You cancelled your deposit." -#: src/jade/tabs/_usd.jade:38 +#: src/templates/tabs/_usd.jade:38 msgid "Your deposit failed. Your bank account was not charged. Please contact {{1}}." msgstr "Your deposit failed. Your bank account was not charged. Please contact {{1}}." -#: src/jade/tabs/_usd.jade:49 -#: src/jade/tabs/_usd.jade:91 -#: src/jade/tabs/fund.jade:41 -#: src/jade/tabs/history.jade:172 -#: src/jade/tabs/trust.jade:89 +#: src/templates/tabs/_usd.jade:49 +#: src/templates/tabs/_usd.jade:92 +#: src/templates/tabs/fund.jade:56 +#: src/templates/tabs/history.jade:179 +#: src/templates/tabs/trust.jade:99 msgid "Amount" msgstr "Amount" -#: src/jade/tabs/_usd.jade:59 -#: src/jade/tabs/_usd.jade:62 +#: src/templates/tabs/_usd.jade:60 +#: src/templates/tabs/_usd.jade:63 msgid "Select your bank" msgstr "Select your bank" -#: src/jade/tabs/_usd.jade:77 +#: src/templates/tabs/_usd.jade:78 msgid "Ripple Trade has partnered with SnapSwap to make USD deposits easier. By continuing, you agree to SnapSwap's {{1}}To contact support, email {{2}}." msgstr "Ripple Trade has partnered with SnapSwap to make USD deposits easier. By continuing, you agree to SnapSwap's {{1}}To contact support, email {{2}}." -#: src/jade/tabs/_usd.jade:93 -#: src/jade/tabs/history.jade:178 +#: src/templates/tabs/_usd.jade:94 +#: src/templates/tabs/history.jade:185 msgid "Fee" msgstr "Fee" -#: src/jade/tabs/_usd.jade:95 +#: src/templates/tabs/_usd.jade:96 msgid "Total" msgstr "Total" -#: src/jade/tabs/_usd.jade:98 +#: src/templates/tabs/_usd.jade:99 msgid "Calculating..." msgstr "Calculating..." -#: src/jade/tabs/_usd.jade:109 -#: src/jade/tabs/register.jade:126 -#: src/jade/tabs/register.jade:133 +#: src/templates/tabs/_usd.jade:110 +#: src/templates/tabs/register.jade:160 +#: src/templates/tabs/register.jade:167 msgid "Back" msgstr "Back" -#: src/jade/tabs/_usd.jade:111 -#: src/jade/tabs/btc.jade:73 -#: src/jade/tabs/exchange.jade:111 -#: src/jade/tabs/send.jade:213 -#: src/jade/tabs/trade.jade:67 -#: src/jade/tabs/trade.jade:77 -#: src/jade/tabs/trade.jade:248 -#: src/jade/tabs/trade.jade:407 -#: src/jade/tabs/trust.jade:140 +#: src/templates/tabs/_usd.jade:112 +#: src/templates/tabs/btc.jade:82 +#: src/templates/tabs/exchange.jade:145 +#: src/templates/tabs/send.jade:304 +#: src/templates/tabs/trade.jade:97 +#: src/templates/tabs/trade.jade:115 +#: src/templates/tabs/trade.jade:378 +#: src/templates/tabs/trust.jade:178 msgid "Confirm" msgstr "Confirm" -#: src/jade/tabs/account/navbar.jade:2 -msgid "Public Information" -msgstr "Public Information" - -#: src/jade/tabs/account/private.jade:1 -msgid "Profile Information" -msgstr "Profile Information" - -#: src/jade/tabs/account/private.jade:3 -msgid "Identity Information" -msgstr "Identity Information" - -#: src/jade/tabs/account/private.jade:8 -#: src/jade/tabs/account/private.jade:17 -msgid "Completed" -msgstr "Completed" - -#: src/jade/tabs/account/private.jade:9 -#: src/jade/tabs/account/private.jade:18 -msgid "Incomplete" -msgstr "Incomplete" - -#: src/jade/tabs/account/private.jade:10 -#: src/jade/tabs/account/private.jade:19 -msgid "Complete your profile" -msgstr "Complete your profile" - -#: src/jade/tabs/account/private.jade:12 -msgid "Identity Questions" -msgstr "Identity Questions" - -#: src/jade/tabs/account/public.jade:1 -msgid "Changing your Ripple name..." -msgstr "Changing your Ripple name..." - -#: src/jade/tabs/account/public.jade:2 -msgid "Your Ripple name has been changed successfully." -msgstr "Your Ripple name has been changed successfully." - -#: src/jade/tabs/account/public.jade:3 -msgid "Account settings" -msgstr "Account settings" - -#: src/jade/tabs/account/public.jade:5 -#: src/jade/tabs/fund/menu.jade:2 -#: src/jade/tabs/login/form.jade:3 -msgid "Ripple name" -msgstr "Ripple name" - -#: src/jade/tabs/account/public.jade:9 -#: src/jade/tabs/advanced.jade:27 -#: src/jade/tabs/advanced.jade:44 -#: src/jade/tabs/advanced.jade:63 -#: src/jade/tabs/advanced.jade:86 -#: src/jade/tabs/advanced.jade:134 -#: src/jade/tabs/contacts.jade:61 -#: src/jade/tabs/security.jade:120 -#: src/jade/tabs/security.jade:180 -#: src/jade/tabs/trust.jade:191 -#: src/jade/tabs/trust.jade:193 -msgid "edit" -msgstr "edit" - -#: src/jade/tabs/account/public.jade:12 -msgid "New Ripple name" -msgstr "New Ripple name" - -#: src/jade/tabs/account/public.jade:17 -#: src/jade/tabs/register.jade:35 -#: src/jade/tabs/widgets/balances.jade:24 -msgid "Available" -msgstr "Available" - -#: src/jade/tabs/account/public.jade:20 -#: src/jade/tabs/register.jade:39 -msgid "Already taken!" -msgstr "Already taken!" - -#: src/jade/tabs/account/public.jade:21 -msgid "Reserved for {{usernameReservedFor}}{{1}}{{2}}" -msgstr "Reserved for {{usernameReservedFor}}{{1}}{{2}}" - -#: src/jade/tabs/account/public.jade:24 -#: src/jade/tabs/register.jade:45 -msgid "Must be at least 2 characters" -msgstr "Must be at least 2 characters" - -#: src/jade/tabs/account/public.jade:25 -#: src/jade/tabs/register.jade:47 -msgid "Must be at most 20 characters" -msgstr "Must be at most 20 characters" - -#: src/jade/tabs/account/public.jade:26 -msgid "Only a-z, 0-9 and hyphen (-)" -msgstr "Only a-z, 0-9 and hyphen (-)" - -#: src/jade/tabs/account/public.jade:27 -#: src/jade/tabs/register.jade:51 -msgid "Cannot start with hyphen (-)" -msgstr "Cannot start with hyphen (-)" - -#: src/jade/tabs/account/public.jade:28 -#: src/jade/tabs/register.jade:53 -msgid "Cannot end with hyphen (-)" -msgstr "Cannot end with hyphen (-)" - -#: src/jade/tabs/account/public.jade:29 -msgid "Cannot bundle hyphens (--)" -msgstr "Cannot bundle hyphens (--)" - -#: src/jade/tabs/account/public.jade:30 -#: src/jade/tabs/register.jade:56 -msgid "Checking..." -msgstr "Checking..." - -#: src/jade/tabs/account/public.jade:32 -#: src/jade/tabs/security.jade:126 -msgid "Current password" -msgstr "Current password" - -#: src/jade/tabs/account/public.jade:35 -#: src/jade/tabs/security.jade:18 -#: src/jade/tabs/security.jade:23 -msgid "Entered password is wrong." -msgstr "Entered password is wrong." - -#: src/jade/tabs/account/public.jade:37 -msgid "Your Ripple name has been changed. Please login again." -msgstr "Your Ripple name has been changed. Please login again." - -#: src/jade/tabs/account/public.jade:39 -msgid "Couldn't change your Ripple name, please try again later." -msgstr "Couldn't change your Ripple name, please try again later." - -#: src/jade/tabs/account/public.jade:47 -#: src/jade/tabs/advanced.jade:36 -#: src/jade/tabs/advanced.jade:53 -#: src/jade/tabs/advanced.jade:77 -#: src/jade/tabs/advanced.jade:94 -#: src/jade/tabs/advanced.jade:124 -#: src/jade/tabs/btc.jade:74 -#: src/jade/tabs/contacts.jade:50 -#: src/jade/tabs/contacts.jade:93 -#: src/jade/tabs/exchange.jade:113 -#: src/jade/tabs/exchange.jade:126 -#: src/jade/tabs/kyc.jade:116 -#: src/jade/tabs/kyc.jade:131 -#: src/jade/tabs/kyc.jade:156 -#: src/jade/tabs/kyc.jade:157 -#: src/jade/tabs/kyc.jade:186 -#: src/jade/tabs/login/form.jade:26 -#: src/jade/tabs/security.jade:79 -#: src/jade/tabs/security.jade:112 -#: src/jade/tabs/security.jade:149 -#: src/jade/tabs/send.jade:215 -#: src/jade/tabs/send.jade:227 -#: src/jade/tabs/send.jade:252 -#: src/jade/tabs/send.jade:286 -#: src/jade/tabs/trade.jade:55 -#: src/jade/tabs/trust.jade:141 -#: src/jade/tabs/trust.jade:143 -#: src/jade/tabs/trust.jade:213 -#: src/jade/tabs/trust.jade:251 -msgid "cancel" -msgstr "cancel" - -#: src/jade/tabs/account/public.jade:49 -msgid "Ripple address" -msgstr "Ripple address" +#: src/templates/tabs/advanced.jade:12 +msgid "Your blobvault has been changed successfully." +msgstr "Your blobvault has been changed successfully." -#: src/jade/tabs/advanced.jade:8 -msgid "Your blob vault has been changed successfully." -msgstr "Your blob vault has been changed successfully." +#: src/templates/tabs/advanced.jade:13 +msgid "Send confirmation settings have been changed successfully." +msgstr "Send confirmation settings have been changed successfully." -#: src/jade/tabs/advanced.jade:9 -msgid "Your bitcoin bridge has been changed successfully." -msgstr "Your bitcoin bridge has been changed successfully." +#: src/templates/tabs/advanced.jade:14 +msgid "Simple trade confirmation settings have been changed successfully." +msgstr "Simple trade confirmation settings have been changed successfully." -#: src/jade/tabs/advanced.jade:10 -msgid "Trustline advanced settings has been changed successfully." -msgstr "Trustline advanced settings has been changed successfully." +#: src/templates/tabs/advanced.jade:15 +msgid "Advanced trade confirmation settings have been changed successfully." +msgstr "Advanced trade confirmation settings have been changed successfully." -#: src/jade/tabs/advanced.jade:11 +#: src/templates/tabs/advanced.jade:16 msgid "Maximum network fee has been changed successfully." msgstr "Maximum network fee has been changed successfully." -#: src/jade/tabs/advanced.jade:12 -msgid "A new server has been successfully added." -msgstr "A new server has been successfully added." +#: src/templates/tabs/advanced.jade:17 +msgid "History API has been changed successfully." +msgstr "History API has been changed successfully." -#: src/jade/tabs/advanced.jade:13 +#: src/templates/tabs/advanced.jade:18 +msgid "A server has been successfully added." +msgstr "A server has been successfully added." + +#: src/templates/tabs/advanced.jade:19 msgid "A server has been successfully removed." msgstr "A server has been successfully removed." -#: src/jade/tabs/advanced.jade:14 +#: src/templates/tabs/advanced.jade:20 msgid "A server has been changed successfully." msgstr "A server has been changed successfully." -#: src/jade/tabs/advanced.jade:21 -msgid "Blob vault" -msgstr "Blob vault" - -#: src/jade/tabs/advanced.jade:32 -#: src/jade/tabs/advanced.jade:49 -#: src/jade/tabs/advanced.jade:73 -#: src/jade/tabs/advanced.jade:92 -#: src/jade/tabs/advanced.jade:120 -#: src/jade/tabs/contacts.jade:88 -#: src/jade/tabs/fund.jade:65 -#: src/jade/tabs/security.jade:190 -#: src/jade/tabs/send.jade:251 -#: src/jade/tabs/send.jade:284 -#: src/jade/tabs/trust.jade:119 -#: src/jade/tabs/trust.jade:232 +#: src/templates/tabs/advanced.jade:33 +#: src/templates/tabs/advanced.jade:60 +#: src/templates/tabs/advanced.jade:85 +#: src/templates/tabs/advanced.jade:108 +#: src/templates/tabs/advanced.jade:130 +#: src/templates/tabs/advanced.jade:197 +#: src/templates/tabs/contacts.jade:115 +#: src/templates/tabs/security.jade:127 +#: src/templates/tabs/security.jade:197 +#: src/templates/tabs/settingsgateway.jade:25 +#: src/templates/tabs/settingsgateway.jade:52 +#: src/templates/tabs/settingsgateway.jade:78 +#: src/templates/tabs/trade.jade:535 +#: src/templates/tabs/trust.jade:254 +#: src/templates/tabs/trust.jade:256 +#: src/templates/tabs/account/public.jade:9 +msgid "edit" +msgstr "edit" + +#: src/templates/tabs/advanced.jade:43 +#: src/templates/tabs/advanced.jade:70 +#: src/templates/tabs/advanced.jade:98 +#: src/templates/tabs/advanced.jade:120 +#: src/templates/tabs/advanced.jade:142 +#: src/templates/tabs/advanced.jade:182 +#: src/templates/tabs/contacts.jade:161 +#: src/templates/tabs/fund.jade:99 +#: src/templates/tabs/notifications.jade:53 +#: src/templates/tabs/security.jade:207 +#: src/templates/tabs/send.jade:357 +#: src/templates/tabs/send.jade:398 +#: src/templates/tabs/settingsgateway.jade:35 +#: src/templates/tabs/settingsgateway.jade:63 +#: src/templates/tabs/settingsgateway.jade:89 +#: src/templates/tabs/trust.jade:156 +#: src/templates/tabs/trust.jade:339 +#: src/templates/tabs/trust.jade:352 msgid "Save" msgstr "Save" -#: src/jade/tabs/advanced.jade:34 -#: src/jade/tabs/advanced.jade:51 -#: src/jade/tabs/advanced.jade:75 -#: src/jade/tabs/advanced.jade:122 -#: src/jade/tabs/contacts.jade:91 -#: src/jade/tabs/security.jade:198 +#: src/templates/tabs/advanced.jade:46 +#: src/templates/tabs/advanced.jade:73 +#: src/templates/tabs/advanced.jade:185 +#: src/templates/tabs/contacts.jade:173 +#: src/templates/tabs/security.jade:222 +#: src/templates/tabs/settingsgateway.jade:38 +#: src/templates/tabs/settingsgateway.jade:66 +#: src/templates/tabs/settingsgateway.jade:92 msgid "Delete" msgstr "Delete" -#: src/jade/tabs/advanced.jade:38 -msgid "Bitcoin bridge" -msgstr "Bitcoin bridge" - -#: src/jade/tabs/advanced.jade:55 -msgid "Trust line" -msgstr "Trust line" +#: src/templates/tabs/advanced.jade:48 +#: src/templates/tabs/advanced.jade:75 +#: src/templates/tabs/advanced.jade:100 +#: src/templates/tabs/advanced.jade:122 +#: src/templates/tabs/advanced.jade:144 +#: src/templates/tabs/advanced.jade:187 +#: src/templates/tabs/btc.jade:83 +#: src/templates/tabs/contacts.jade:99 +#: src/templates/tabs/contacts.jade:175 +#: src/templates/tabs/exchange.jade:148 +#: src/templates/tabs/exchange.jade:161 +#: src/templates/tabs/kyc.jade:152 +#: src/templates/tabs/kyc.jade:170 +#: src/templates/tabs/kyc.jade:196 +#: src/templates/tabs/kyc.jade:197 +#: src/templates/tabs/kyc.jade:227 +#: src/templates/tabs/login.jade:35 +#: src/templates/tabs/security.jade:84 +#: src/templates/tabs/security.jade:119 +#: src/templates/tabs/security.jade:166 +#: src/templates/tabs/send.jade:308 +#: src/templates/tabs/send.jade:322 +#: src/templates/tabs/send.jade:358 +#: src/templates/tabs/send.jade:400 +#: src/templates/tabs/settingsgateway.jade:40 +#: src/templates/tabs/trade.jade:79 +#: src/templates/tabs/trade.jade:493 +#: src/templates/tabs/trust.jade:179 +#: src/templates/tabs/trust.jade:182 +#: src/templates/tabs/trust.jade:306 +#: src/templates/tabs/trust.jade:404 +#: src/templates/tabs/account/public.jade:61 +msgid "cancel" +msgstr "cancel" -#: src/jade/tabs/advanced.jade:60 -#: src/jade/tabs/advanced.jade:71 -#: src/jade/tabs/security.jade:162 +#: src/templates/tabs/advanced.jade:56 +#: src/templates/tabs/advanced.jade:68 +#: src/templates/tabs/security.jade:179 +#: src/templates/tabs/settingsgateway.jade:49 +#: src/templates/tabs/settingsgateway.jade:61 msgid "Show" msgstr "Show" -#: src/jade/tabs/advanced.jade:61 -#: src/jade/tabs/security.jade:163 +#: src/templates/tabs/advanced.jade:57 +#: src/templates/tabs/security.jade:180 +#: src/templates/tabs/settingsgateway.jade:50 msgid "Hide" msgstr "Hide" -#: src/jade/tabs/advanced.jade:78 +#: src/templates/tabs/advanced.jade:77 msgid "Network settings" msgstr "Network settings" -#: src/jade/tabs/advanced.jade:80 +#: src/templates/tabs/advanced.jade:79 msgid "Maximum network fee" msgstr "Maximum network fee" -#: src/jade/tabs/advanced.jade:96 +#: src/templates/tabs/advanced.jade:102 +msgid "Send: max deviation from specified amount" +msgstr "Send: max deviation from specified amount" + +#: src/templates/tabs/advanced.jade:124 +msgid "Simple Trade: max deviation from specified amount" +msgstr "Simple Trade: max deviation from specified amount" + +#: src/templates/tabs/advanced.jade:146 +msgid "Confirmation Page settings" +msgstr "Confirmation Page settings" + +#: src/templates/tabs/advanced.jade:151 msgid "Server settings" msgstr "Server settings" -#: src/jade/tabs/advanced.jade:101 +#: src/templates/tabs/advanced.jade:158 msgid "WebSocket host name" msgstr "WebSocket host name" -#: src/jade/tabs/advanced.jade:103 +#: src/templates/tabs/advanced.jade:160 msgid "Port number" msgstr "Port number" -#: src/jade/tabs/advanced.jade:109 -msgid "Socket ip or hostname is invalid." -msgstr "Socket ip or hostname is invalid." +#: src/templates/tabs/advanced.jade:169 +msgid "Socket ip or hostname is invalid or is down." +msgstr "Socket ip or hostname is invalid or is down." -#: src/jade/tabs/advanced.jade:111 +#: src/templates/tabs/advanced.jade:171 msgid "Port number is invalid." msgstr "Port number is invalid." -#: src/jade/tabs/advanced.jade:118 -#: src/jade/tabs/advanced.jade:131 +#: src/templates/tabs/advanced.jade:180 +#: src/templates/tabs/advanced.jade:194 msgid "Secure" msgstr "Secure" -#: src/jade/tabs/advanced.jade:132 +#: src/templates/tabs/advanced.jade:195 msgid "Not Secure" msgstr "Not Secure" -#: src/jade/tabs/advanced.jade:138 +#: src/templates/tabs/advanced.jade:200 msgid "Add new server" msgstr "Add new server" -#: src/jade/tabs/apps.jade:27 -msgid "App Ripple Address" -msgstr "App Ripple Address" +#: src/templates/tabs/apps.jade:5 +#: src/templates/tabs/balance.jade:5 +#: src/templates/tabs/exchange.jade:6 +#: src/templates/tabs/su.jade:5 +#: src/templates/tabs/trade.jade:7 +#: src/templates/tabs/trust.jade:6 +msgid "You have to be online to see this screen" +msgstr "You have to be online to see this screen" + +#: src/templates/tabs/apps.jade:27 +msgid ""App Ripple Address"" +msgstr ""App Ripple Address"" -#: src/jade/tabs/apps.jade:29 +#: src/templates/tabs/apps.jade:33 msgid "Please enter a ripple address." msgstr "Please enter a ripple address." -#: src/jade/tabs/apps.jade:31 +#: src/templates/tabs/apps.jade:35 msgid "Please enter a valid ripple address." msgstr "Please enter a valid ripple address." -#: src/jade/tabs/banner/announcement.jade:2 -msgid "Help our team improve Ripple Trade! {{1:Take a quick user survey.}}" -msgstr "Help our team improve Ripple Trade! {{1:Take a quick user survey.}}" - -#: src/jade/tabs/banner/unfunded.jade:2 -msgid "Welcome to Ripple Trade! Your account needs to be activated. You can activate it in 2 ways:" -msgstr "Welcome to Ripple Trade! Your account needs to be activated. You can activate it in 2 ways:" - -#: src/jade/tabs/banner/unfunded.jade:4 -msgid "Have another user send XRP to your Ripple name (~{{userCredentials.username}}). {{1}}" -msgstr "Have another user send XRP to your Ripple name (~{{userCredentials.username}}). {{1}}" - -#: src/jade/tabs/brl.jade:24 -#: src/jade/tabs/eur.jade:24 -#: src/jade/tabs/gold.jade:24 -#: src/jade/tabs/jpy.jade:24 -#: src/jade/tabs/mxn.jade:24 -#: src/jade/tabs/trust.jade:42 -#: src/jade/tabs/usd.jade:24 +#: src/templates/tabs/brl.jade:33 +#: src/templates/tabs/eur.jade:33 +#: src/templates/tabs/gold.jade:33 +#: src/templates/tabs/jpy.jade:33 +#: src/templates/tabs/mxn.jade:33 +#: src/templates/tabs/sgd.jade:33 +#: src/templates/tabs/trust.jade:51 +#: src/templates/tabs/usd.jade:33 msgid "There was an error while saving your changes." msgstr "There was an error while saving your changes." -#: src/jade/tabs/brl.jade:28 -#: src/jade/tabs/eur.jade:27 -#: src/jade/tabs/gold.jade:27 -#: src/jade/tabs/jpy.jade:28 -#: src/jade/tabs/mxn.jade:28 -#: src/jade/tabs/trust.jade:45 -#: src/jade/tabs/usd.jade:27 +#: src/templates/tabs/brl.jade:34 +#: src/templates/tabs/btc.jade:27 +#: src/templates/tabs/eur.jade:34 +#: src/templates/tabs/gold.jade:34 +#: src/templates/tabs/jpy.jade:34 +#: src/templates/tabs/mxn.jade:34 +#: src/templates/tabs/sgd.jade:34 +#: src/templates/tabs/trust.jade:52 +#: src/templates/tabs/usd.jade:34 +#: src/templates/messages/sendconvert/confirmation.jade:9 +msgid "Please try again later." +msgstr "Please try again later." + +#: src/templates/tabs/brl.jade:37 +#: src/templates/tabs/eur.jade:36 +#: src/templates/tabs/gold.jade:36 +#: src/templates/tabs/jpy.jade:37 +#: src/templates/tabs/mxn.jade:37 +#: src/templates/tabs/sgd.jade:36 +#: src/templates/tabs/trust.jade:54 +#: src/templates/tabs/usd.jade:36 msgid "You must have at least {{1}} to add a new trust line. {{2}}" msgstr "You must have at least {{1}} to add a new trust line. {{2}}" -#: src/jade/tabs/brl.jade:38 +#: src/templates/tabs/brl.jade:47 msgid "Brazilian Real Deposit" msgstr "Brazilian Real Deposit" -#: src/jade/tabs/brl.jade:41 -#: src/jade/tabs/btc.jade:35 -#: src/jade/tabs/eur.jade:38 -#: src/jade/tabs/gold.jade:40 -#: src/jade/tabs/jpy.jade:41 -#: src/jade/tabs/mxn.jade:41 -#: src/jade/tabs/trust.jade:167 -#: src/jade/tabs/usd.jade:38 +#: src/templates/tabs/brl.jade:50 +#: src/templates/tabs/btc.jade:42 +#: src/templates/tabs/btc.jade:139 +#: src/templates/tabs/eur.jade:47 +#: src/templates/tabs/gold.jade:49 +#: src/templates/tabs/jpy.jade:50 +#: src/templates/tabs/mxn.jade:50 +#: src/templates/tabs/sgd.jade:47 +#: src/templates/tabs/trust.jade:207 +#: src/templates/tabs/usd.jade:47 +#: src/templates/tabs/usd.jade:119 msgid "Gateway" msgstr "Gateway" -#: src/jade/tabs/brl.jade:42 -#: src/jade/tabs/eur.jade:48 -#: src/jade/tabs/mxn.jade:81 -#: src/jade/tabs/mxn.jade:93 -#: src/jade/tabs/mxn.jade:103 -#: src/jade/tabs/security.jade:49 +#: src/templates/tabs/brl.jade:51 +#: src/templates/tabs/eur.jade:57 +#: src/templates/tabs/mxn.jade:93 +#: src/templates/tabs/mxn.jade:105 +#: src/templates/tabs/mxn.jade:115 +#: src/templates/tabs/security.jade:54 +#: src/templates/tabs/sgd.jade:57 msgid "{{1}}{{2}}" msgstr "{{1}}{{2}}" -#: src/jade/tabs/brl.jade:43 +#: src/templates/tabs/brl.jade:52 msgid "Ripple (~rippex)" msgstr "Ripple (~rippex)" -#: src/jade/tabs/brl.jade:46 -#: src/jade/tabs/btc.jade:39 -#: src/jade/tabs/eur.jade:44 -#: src/jade/tabs/gold.jade:44 -#: src/jade/tabs/jpy.jade:45 -#: src/jade/tabs/mxn.jade:46 -#: src/jade/tabs/usd.jade:44 +#: src/templates/tabs/brl.jade:55 +#: src/templates/tabs/btc.jade:46 +#: src/templates/tabs/btc.jade:145 +#: src/templates/tabs/eur.jade:53 +#: src/templates/tabs/gold.jade:53 +#: src/templates/tabs/jpy.jade:54 +#: src/templates/tabs/mxn.jade:55 +#: src/templates/tabs/sgd.jade:53 +#: src/templates/tabs/usd.jade:53 +#: src/templates/tabs/usd.jade:125 msgid "Availability" msgstr "Availability" -#: src/jade/tabs/brl.jade:47 +#: src/templates/tabs/brl.jade:56 msgid "Brazil" msgstr "Brazil" -#: src/jade/tabs/brl.jade:49 -#: src/jade/tabs/btc.jade:42 -#: src/jade/tabs/eur.jade:47 -#: src/jade/tabs/gold.jade:47 -#: src/jade/tabs/jpy.jade:48 -#: src/jade/tabs/mxn.jade:49 -#: src/jade/tabs/usd.jade:47 +#: src/templates/tabs/brl.jade:58 +#: src/templates/tabs/btc.jade:49 +#: src/templates/tabs/btc.jade:148 +#: src/templates/tabs/eur.jade:56 +#: src/templates/tabs/gold.jade:56 +#: src/templates/tabs/jpy.jade:57 +#: src/templates/tabs/mxn.jade:58 +#: src/templates/tabs/sgd.jade:56 +#: src/templates/tabs/usd.jade:56 +#: src/templates/tabs/usd.jade:128 msgid "Fees" msgstr "Fees" -#: src/jade/tabs/brl.jade:50 -#: src/jade/tabs/jpy.jade:49 -#: src/jade/tabs/kyc.jade:111 -#: src/jade/tabs/kyc.jade:126 -#: src/jade/tabs/kyc.jade:151 +#: src/templates/tabs/brl.jade:59 +#: src/templates/tabs/jpy.jade:58 +#: src/templates/tabs/kyc.jade:146 +#: src/templates/tabs/kyc.jade:164 +#: src/templates/tabs/kyc.jade:190 msgid "{{1}}{{2}}{{3}}" msgstr "{{1}}{{2}}{{3}}" -#: src/jade/tabs/brl.jade:51 +#: src/templates/tabs/brl.jade:60 msgid "Deposit: 1.50 BRL + 0.5%" msgstr "Deposit: 1.50 BRL + 0.5%" -#: src/jade/tabs/brl.jade:52 +#: src/templates/tabs/brl.jade:61 msgid "Transfer: 0%" msgstr "Transfer: 0%" -#: src/jade/tabs/brl.jade:56 -#: src/jade/tabs/btc.jade:45 -#: src/jade/tabs/eur.jade:53 -#: src/jade/tabs/gold.jade:50 -#: src/jade/tabs/jpy.jade:54 -#: src/jade/tabs/mxn.jade:52 -#: src/jade/tabs/usd.jade:50 +#: src/templates/tabs/brl.jade:65 +#: src/templates/tabs/btc.jade:52 +#: src/templates/tabs/btc.jade:151 +#: src/templates/tabs/eur.jade:62 +#: src/templates/tabs/gold.jade:59 +#: src/templates/tabs/jpy.jade:63 +#: src/templates/tabs/mxn.jade:61 +#: src/templates/tabs/sgd.jade:62 +#: src/templates/tabs/usd.jade:59 +#: src/templates/tabs/usd.jade:131 msgid "Rating" msgstr "Rating" -#: src/jade/tabs/brl.jade:62 +#: src/templates/tabs/brl.jade:71 msgid "Ripple Trade has partnered with Rippex to provide easy access to BRL. By continuing, you agree with Rippex's {{1}}Following this action will enable Rippex to hold BRL on your behalf." msgstr "Ripple Trade has partnered with Rippex to provide easy access to BRL. By continuing, you agree with Rippex's {{1}}Following this action will enable Rippex to hold BRL on your behalf." -#: src/jade/tabs/brl.jade:69 +#: src/templates/tabs/brl.jade:78 msgid "Add Rippex" msgstr "Add Rippex" -#: src/jade/tabs/brl.jade:70 +#: src/templates/tabs/brl.jade:79 +#: src/templates/tabs/btc.jade:91 +#: src/templates/tabs/btc.jade:162 +#: src/templates/tabs/eur.jade:73 +#: src/templates/tabs/gold.jade:71 +#: src/templates/tabs/jpy.jade:72 +#: src/templates/tabs/mxn.jade:74 +#: src/templates/tabs/sgd.jade:73 +#: src/templates/tabs/usd.jade:70 +#: src/templates/tabs/usd.jade:142 msgid "Adding..." msgstr "Adding..." -#: src/jade/tabs/brl.jade:71 -#: src/jade/tabs/eur.jade:65 -#: src/jade/tabs/jpy.jade:64 -#: src/jade/tabs/usd.jade:62 +#: src/templates/tabs/brl.jade:80 +#: src/templates/tabs/btc.jade:92 +#: src/templates/tabs/btc.jade:163 +#: src/templates/tabs/eur.jade:74 +#: src/templates/tabs/gold.jade:72 +#: src/templates/tabs/jpy.jade:73 +#: src/templates/tabs/mxn.jade:75 +#: src/templates/tabs/sgd.jade:74 +#: src/templates/tabs/usd.jade:71 +#: src/templates/tabs/usd.jade:143 msgid "Hide instructions" msgstr "Hide instructions" -#: src/jade/tabs/brl.jade:72 -#: src/jade/tabs/eur.jade:66 -#: src/jade/tabs/jpy.jade:65 -#: src/jade/tabs/usd.jade:63 +#: src/templates/tabs/brl.jade:81 +#: src/templates/tabs/btc.jade:93 +#: src/templates/tabs/btc.jade:164 +#: src/templates/tabs/eur.jade:75 +#: src/templates/tabs/gold.jade:73 +#: src/templates/tabs/jpy.jade:74 +#: src/templates/tabs/mxn.jade:76 +#: src/templates/tabs/sgd.jade:75 +#: src/templates/tabs/usd.jade:72 +#: src/templates/tabs/usd.jade:144 msgid "Show instructions" msgstr "Show instructions" -#: src/jade/tabs/brl.jade:75 -#: src/jade/tabs/btc.jade:83 +#: src/templates/tabs/brl.jade:84 msgid "{{1}}Not connected" msgstr "{{1}}Not connected" -#: src/jade/tabs/brl.jade:78 -#: src/jade/tabs/btc.jade:86 +#: src/templates/tabs/brl.jade:87 msgid "{{1}}Connected" msgstr "{{1}}Connected" -#: src/jade/tabs/brl.jade:81 -#: src/jade/tabs/eur.jade:71 -#: src/jade/tabs/gold.jade:73 -#: src/jade/tabs/jpy.jade:74 -#: src/jade/tabs/mxn.jade:76 -#: src/jade/tabs/usd.jade:68 +#: src/templates/tabs/brl.jade:90 +#: src/templates/tabs/btc.jade:169 +#: src/templates/tabs/eur.jade:80 +#: src/templates/tabs/gold.jade:82 +#: src/templates/tabs/jpy.jade:83 +#: src/templates/tabs/mxn.jade:85 +#: src/templates/tabs/sgd.jade:84 +#: src/templates/tabs/usd.jade:77 +#: src/templates/tabs/usd.jade:149 msgid "Your account has to be activated before you can add a gateway account." msgstr "Your account has to be activated before you can add a gateway account." -#: src/jade/tabs/brl.jade:84 -#: src/jade/tabs/eur.jade:75 -#: src/jade/tabs/gold.jade:76 -#: src/jade/tabs/jpy.jade:77 -#: src/jade/tabs/mxn.jade:79 -#: src/jade/tabs/usd.jade:72 +#: src/templates/tabs/brl.jade:96 +#: src/templates/tabs/btc.jade:176 +#: src/templates/tabs/eur.jade:87 +#: src/templates/tabs/gold.jade:88 +#: src/templates/tabs/jpy.jade:89 +#: src/templates/tabs/mxn.jade:91 +#: src/templates/tabs/sgd.jade:91 +#: src/templates/tabs/usd.jade:84 +#: src/templates/tabs/usd.jade:156 msgid "×" msgstr "×" -#: src/jade/tabs/brl.jade:85 +#: src/templates/tabs/brl.jade:97 msgid "NEW CUSTOMERS- SIGN UP AT RIPPEX" msgstr "NEW CUSTOMERS- SIGN UP AT RIPPEX" -#: src/jade/tabs/brl.jade:86 +#: src/templates/tabs/brl.jade:98 msgid "{{1}} at Rippex.net to initiate deposits and withdrawals. You will need:{{2}}" msgstr "{{1}} at Rippex.net to initiate deposits and withdrawals. You will need:{{2}}" -#: src/jade/tabs/brl.jade:90 +#: src/templates/tabs/brl.jade:102 msgid "A {{1}}" msgstr "A {{1}}" -#: src/jade/tabs/brl.jade:92 +#: src/templates/tabs/brl.jade:104 msgid "A bank account in Brazil." msgstr "A bank account in Brazil." -#: src/jade/tabs/brl.jade:96 +#: src/templates/tabs/brl.jade:108 msgid "EXISTING RIPPEX CUSTOMERS" msgstr "EXISTING RIPPEX CUSTOMERS" -#: src/jade/tabs/brl.jade:97 +#: src/templates/tabs/brl.jade:109 msgid "If you have a Rippex account, {{1}}" msgstr "If you have a Rippex account, {{1}}" -#: src/jade/tabs/brl.jade:100 +#: src/templates/tabs/brl.jade:112 msgid "DEPOSIT INSTRUCTIONS" msgstr "DEPOSIT INSTRUCTIONS" -#: src/jade/tabs/brl.jade:101 +#: src/templates/tabs/brl.jade:113 msgid "Rippex accepts deposits from all Brazilian banks. Instructions {{1}}" msgstr "Rippex accepts deposits from all Brazilian banks. Instructions {{1}}" -#: src/jade/tabs/btc.jade:19 +#: src/templates/tabs/btc.jade:24 msgid "Success! You can deposit BTC via your generated BTC receiving address." msgstr "Success! You can deposit BTC via your generated BTC receiving address." -#: src/jade/tabs/btc.jade:21 +#: src/templates/tabs/btc.jade:26 msgid "There was an error with your request. {{1}}" msgstr "There was an error with your request. {{1}}" -#: src/jade/tabs/btc.jade:30 +#: src/templates/tabs/btc.jade:29 +msgid "There was an error with your request." +msgstr "There was an error with your request." + +#: src/templates/tabs/btc.jade:37 msgid "Bitcoin Deposit" msgstr "Bitcoin Deposit" -#: src/jade/tabs/btc.jade:36 -msgid "btc2ripple (~snapswap) {{1}}" -msgstr "btc2ripple (~snapswap) {{1}}" +#: src/templates/tabs/btc.jade:43 +msgid "btc2ripple (~SnapSwap) {{1}}" +msgstr "btc2ripple (~SnapSwap) {{1}}" -#: src/jade/tabs/btc.jade:40 -#: src/jade/tabs/gold.jade:45 -#: src/jade/tabs/jpy.jade:46 +#: src/templates/tabs/btc.jade:47 +#: src/templates/tabs/btc.jade:146 +#: src/templates/tabs/gold.jade:54 +#: src/templates/tabs/jpy.jade:55 +#: src/templates/tabs/usd.jade:126 msgid "All countries" msgstr "All countries" -#: src/jade/tabs/btc.jade:43 -#: src/jade/tabs/mxn.jade:50 -msgid "0%" -msgstr "0%" +#: src/templates/tabs/btc.jade:50 +msgid "0% for deposits/withdrawals, .2% when transferring" +msgstr "0% for deposits/withdrawals, .2% when transferring" -#: src/jade/tabs/btc.jade:50 +#: src/templates/tabs/btc.jade:57 msgid "Ripple Trade has partnered with btc2ripple to make depositing BTC easier. By proceeding, you agree to the btc2ripple {{1}} Following this action will allow btc2ripple to hold BTC on your behalf." msgstr "Ripple Trade has partnered with btc2ripple to make depositing BTC easier. By proceeding, you agree to the btc2ripple {{1}} Following this action will allow btc2ripple to hold BTC on your behalf." -#: src/jade/tabs/btc.jade:56 +#: src/templates/tabs/btc.jade:63 msgid "Add btc2ripple" msgstr "Add btc2ripple" -#: src/jade/tabs/btc.jade:60 -#: src/jade/tabs/security.jade:64 -#: src/jade/tabs/trust.jade:123 +#: src/templates/tabs/btc.jade:68 +#: src/templates/tabs/security.jade:69 +#: src/templates/tabs/trust.jade:160 msgid "Connect" msgstr "Connect" -#: src/jade/tabs/btc.jade:62 +#: src/templates/tabs/btc.jade:70 msgid "btc2ripple would like to:" msgstr "btc2ripple would like to:" -#: src/jade/tabs/btc.jade:64 +#: src/templates/tabs/btc.jade:72 msgid "- Receive your email address {{1}}" msgstr "- Receive your email address {{1}}" -#: src/jade/tabs/btc.jade:65 +#: src/templates/tabs/btc.jade:73 msgid "({{userBlob.data.email}})" msgstr "({{userBlob.data.email}})" -#: src/jade/tabs/btc.jade:66 +#: src/templates/tabs/btc.jade:74 msgid "- Hold deposited BTC on your behalf" msgstr "- Hold deposited BTC on your behalf" -#: src/jade/tabs/btc.jade:67 +#: src/templates/tabs/btc.jade:75 msgid "By proceeding, you agree to the btc2ripple {{1}}" msgstr "By proceeding, you agree to the btc2ripple {{1}}" -#: src/jade/tabs/btc.jade:75 +#: src/templates/tabs/btc.jade:85 +#: src/templates/tabs/btc.jade:105 msgid "SnapSwap's btc2ripple service is currently unavailable. Please check back later." msgstr "SnapSwap's btc2ripple service is currently unavailable. Please check back later." -#: src/jade/tabs/btc.jade:94 -msgid "Personal Deposit address" -msgstr "Personal Deposit address" +#: src/templates/tabs/btc.jade:88 +#: src/templates/tabs/btc.jade:108 +msgid "You’ve already used this email address to generate a bitcoin receiving address in Ripple Trade.Please contact support@btc2ripple.com if you want to use this Ripple Trade account instead." +msgstr "You’ve already used this email address to generate a bitcoin receiving address in Ripple Trade.Please contact support@btc2ripple.com if you want to use this Ripple Trade account instead." -#: src/jade/tabs/btc.jade:96 -msgid "Your account is fully verified." -msgstr "Your account is fully verified." +#: src/templates/tabs/btc.jade:98 +#: src/templates/tabs/btc.jade:168 +#: src/templates/tabs/eur.jade:79 +#: src/templates/tabs/usd.jade:76 +#: src/templates/tabs/usd.jade:148 +msgid "Connected" +msgstr "Connected" + +#: src/templates/tabs/btc.jade:101 +#: src/templates/tabs/btc.jade:167 +#: src/templates/tabs/eur.jade:78 +#: src/templates/tabs/usd.jade:75 +#: src/templates/tabs/usd.jade:147 +msgid "Not connected" +msgstr "Not connected" + +#: src/templates/tabs/btc.jade:116 +msgid "Personal Bitcoin Deposit address (deposit BTC to your Ripple account by sending BTC to this address)" +msgstr "Personal Bitcoin Deposit address (deposit BTC to your Ripple account by sending BTC to this address)" -#: src/jade/tabs/btc.jade:104 +#: src/templates/tabs/btc.jade:118 +msgid "You can deposit an unlimited amount of BTC." +msgstr "You can deposit an unlimited amount of BTC." + +#: src/templates/tabs/btc.jade:124 msgid "Withdrawal instructions" msgstr "Withdrawal instructions" -#: src/jade/tabs/btc.jade:105 +#: src/templates/tabs/btc.jade:125 msgid "To withdraw to a BTC address, go to the Send tab and enter the BTC address. Using the btc2ripple service, you will be able tosend to that BTC address." msgstr "To withdraw to a BTC address, go to the Send tab and enter the BTC address. Using the btc2ripple service, you will be able tosend to that BTC address." -#: src/jade/tabs/btc.jade:110 +#: src/templates/tabs/btc.jade:130 msgid "Waiting for response from SnapSwap service..." msgstr "Waiting for response from SnapSwap service..." -#: src/jade/tabs/btc.jade:112 +#: src/templates/tabs/btc.jade:132 msgid "To deposit, generate a bitcoin receiving address using the {{1}} service powered by SnapSwap." msgstr "To deposit, generate a bitcoin receiving address using the {{1}} service powered by SnapSwap." -#: src/jade/tabs/contacts.jade:8 +#: src/templates/tabs/btc.jade:140 +#: src/templates/tabs/usd.jade:120 +msgid "Bitstamp (~bitstamp){{1}}{{2}}" +msgstr "Bitstamp (~bitstamp){{1}}{{2}}" + +#: src/templates/tabs/btc.jade:149 +#: src/templates/tabs/usd.jade:129 +msgid "Deposit/withdrawal and when transferring .2%" +msgstr "Deposit/withdrawal and when transferring .2%" + +#: src/templates/tabs/btc.jade:157 +msgid "Ripple Trade has partnered with Bitstamp to provide easier access to BTC. Following this action will enable Bitstamp to hold BTC on your behalf." +msgstr "Ripple Trade has partnered with Bitstamp to provide easier access to BTC. Following this action will enable Bitstamp to hold BTC on your behalf." + +#: src/templates/tabs/btc.jade:161 +#: src/templates/tabs/usd.jade:141 +msgid "Add Bitstamp" +msgstr "Add Bitstamp" + +#: src/templates/tabs/btc.jade:177 +#: src/templates/tabs/usd.jade:157 +msgid "NEW CUSTOMERS- SIGN UP AT BITSTAMP" +msgstr "NEW CUSTOMERS- SIGN UP AT BITSTAMP" + +#: src/templates/tabs/btc.jade:178 +#: src/templates/tabs/usd.jade:158 +msgid "Register and verify your account at {{1}}. You will need: {{2}}" +msgstr "Register and verify your account at {{1}}. You will need: {{2}}" + +#: src/templates/tabs/btc.jade:184 +#: src/templates/tabs/usd.jade:164 +msgid "A valid government-issued ID: driver's license, international passport, or national ID card." +msgstr "A valid government-issued ID: driver's license, international passport, or national ID card." + +#: src/templates/tabs/btc.jade:186 +#: src/templates/tabs/usd.jade:166 +msgid "A proof of residency: tax return, council tax, utility bill, bank statement, certificate of residency issued by a government authority, etc." +msgstr "A proof of residency: tax return, council tax, utility bill, bank statement, certificate of residency issued by a government authority, etc." + +#: src/templates/tabs/btc.jade:188 +#: src/templates/tabs/mxn.jade:104 +#: src/templates/tabs/usd.jade:101 +#: src/templates/tabs/usd.jade:168 +msgid "DEPOSIT OPTIONS" +msgstr "DEPOSIT OPTIONS" + +#: src/templates/tabs/btc.jade:192 +#: src/templates/tabs/usd.jade:172 +msgid "International wire transfer (.05% deposit fee on our side (minimum fee = $7.5) and 2 - 5 business days to credit)" +msgstr "International wire transfer (.05% deposit fee on our side (minimum fee = $7.5) and 2 - 5 business days to credit)" + +#: src/templates/tabs/btc.jade:194 +#: src/templates/tabs/btc.jade:204 +#: src/templates/tabs/usd.jade:186 +msgid "SEPA (1-3 business days)" +msgstr "SEPA (1-3 business days)" + +#: src/templates/tabs/btc.jade:196 +#: src/templates/tabs/usd.jade:176 +msgid "AstroPay (instantly from available countries)" +msgstr "AstroPay (instantly from available countries)" + +#: src/templates/tabs/btc.jade:198 +#: src/templates/tabs/mxn.jade:114 +#: src/templates/tabs/usd.jade:109 +#: src/templates/tabs/usd.jade:180 +msgid "WITHDRAWAL OPTIONS" +msgstr "WITHDRAWAL OPTIONS" + +#: src/templates/tabs/btc.jade:202 +#: src/templates/tabs/usd.jade:184 +msgid "International wire transfer (.09% fee on our side (minimum fee = $15) and 2 - 5 business days)" +msgstr "International wire transfer (.09% fee on our side (minimum fee = $15) and 2 - 5 business days)" + +#: src/templates/tabs/contacts.jade:15 msgid "A new contact has been successfully added." msgstr "A new contact has been successfully added." -#: src/jade/tabs/contacts.jade:9 +#: src/templates/tabs/contacts.jade:17 msgid "Your contact has been successfully updated." msgstr "Your contact has been successfully updated." -#: src/jade/tabs/contacts.jade:10 +#: src/templates/tabs/contacts.jade:19 msgid "A contact has been successfully removed." msgstr "A contact has been successfully removed." -#: src/jade/tabs/contacts.jade:12 -#: src/jade/tabs/contacts.jade:24 -msgid "Contact" -msgstr "Contact" +#: src/templates/tabs/contacts.jade:23 +msgid "Filter contacts" +msgstr "Filter contacts" -#: src/jade/tabs/contacts.jade:13 -#: src/jade/tabs/contacts.jade:32 -msgid "Ripple name or address" -msgstr "Ripple name or address" +#: src/templates/tabs/contacts.jade:28 +msgid "Contact{{1}}" +msgstr "Contact{{1}}" -#: src/jade/tabs/contacts.jade:15 -#: src/jade/tabs/contacts.jade:19 -#: src/jade/tabs/contacts.jade:48 +#: src/templates/tabs/contacts.jade:33 +msgid "Ripple name or address{{1}}" +msgstr "Ripple name or address{{1}}" + +#: src/templates/tabs/contacts.jade:39 +#: src/templates/tabs/contacts.jade:43 +#: src/templates/tabs/contacts.jade:97 msgid "Add contact" msgstr "Add contact" -#: src/jade/tabs/contacts.jade:27 -#: src/jade/tabs/send.jade:245 -#: src/jade/tabs/send.jade:277 +#: src/templates/tabs/contacts.jade:48 +msgid "Contact" +msgstr "Contact" + +#: src/templates/tabs/contacts.jade:57 +#: src/templates/tabs/send.jade:351 +#: src/templates/tabs/send.jade:390 msgid "Please enter a contact." msgstr "Please enter a contact." -#: src/jade/tabs/contacts.jade:28 +#: src/templates/tabs/contacts.jade:58 msgid "This contact already exists." msgstr "This contact already exists." -#: src/jade/tabs/contacts.jade:36 +#: src/templates/tabs/contacts.jade:62 +msgid "Ripple name or address" +msgstr "Ripple name or address" + +#: src/templates/tabs/contacts.jade:77 msgid "Please enter a Ripple name." msgstr "Please enter a Ripple name." -#: src/jade/tabs/contacts.jade:37 -#: src/jade/tabs/contacts.jade:45 +#: src/templates/tabs/contacts.jade:78 +#: src/templates/tabs/contacts.jade:94 msgid "You already have a contact with the same Ripple name and/or the same Destination tag." msgstr "You already have a contact with the same Ripple name and/or the same Destination tag." -#: src/jade/tabs/contacts.jade:38 +#: src/templates/tabs/contacts.jade:79 msgid "Not a valid Ripple name or address." msgstr "Not a valid Ripple name or address." -#: src/jade/tabs/contacts.jade:41 -#: src/jade/tabs/contacts.jade:81 -#: src/jade/tabs/send.jade:42 -#: src/jade/tabs/tx.jade:56 +#: src/templates/tabs/contacts.jade:82 +#: src/templates/tabs/contacts.jade:148 +#: src/templates/tabs/send.jade:66 +#: src/templates/tabs/tx.jade:56 msgid "Destination tag" msgstr "Destination tag" -#: src/jade/tabs/contacts.jade:42 -msgid "Leave blank if not applicable" -msgstr "Leave blank if not applicable" +#: src/templates/tabs/contacts.jade:83 +msgid ""Leave blank if not applicable"" +msgstr ""Leave blank if not applicable"" -#: src/jade/tabs/contacts.jade:44 -#: src/jade/tabs/send.jade:46 +#: src/templates/tabs/contacts.jade:93 +#: src/templates/tabs/send.jade:75 msgid "Invalid destination tag" msgstr "Invalid destination tag" -#: src/jade/tabs/contacts.jade:72 +#: src/templates/tabs/contacts.jade:131 msgid "You already have a contact with the same name." msgstr "You already have a contact with the same name." -#: src/jade/tabs/contacts.jade:78 +#: src/templates/tabs/contacts.jade:145 msgid "You already have this address." msgstr "You already have this address." -#: src/jade/tabs/contacts.jade:79 -#: src/jade/tabs/debug.jade:14 +#: src/templates/tabs/contacts.jade:146 +#: src/templates/tabs/debug.jade:22 msgid "Not a valid address." msgstr "Not a valid address." -#: src/jade/tabs/contacts.jade:84 +#: src/templates/tabs/contacts.jade:157 msgid "Invalid destination tag." msgstr "Invalid destination tag." -#: src/jade/tabs/contacts.jade:94 +#: src/templates/tabs/contacts.jade:176 msgid "You don't have any contacts yet. Click on 'Add contact' button in the top right corner to add a new contact." msgstr "You don't have any contacts yet. Click on 'Add contact' button in the top right corner to add a new contact." -#: src/jade/tabs/debug.jade:9 -msgid "Enter a Ripple name or address" -msgstr "Enter a Ripple name or address" +#: src/templates/tabs/debug.jade:9 +msgid ""Enter a Ripple name or address"" +msgstr ""Enter a Ripple name or address"" -#: src/jade/tabs/debug.jade:13 +#: src/templates/tabs/debug.jade:21 msgid "Please enter an address." msgstr "Please enter an address." -#: src/jade/tabs/debug.jade:17 +#: src/templates/tabs/debug.jade:25 msgid "Turn on debug mode" msgstr "Turn on debug mode" -#: src/jade/tabs/eur.jade:35 +#: src/templates/tabs/eur.jade:44 msgid "Euro Deposit" msgstr "Euro Deposit" -#: src/jade/tabs/eur.jade:39 +#: src/templates/tabs/eur.jade:48 msgid "SnapSwap EU (~SnapSwap){{1}}{{2}}" msgstr "SnapSwap EU (~SnapSwap){{1}}{{2}}" -#: src/jade/tabs/eur.jade:45 +#: src/templates/tabs/eur.jade:54 msgid "All countries, except USA" msgstr "All countries, except USA" -#: src/jade/tabs/eur.jade:49 +#: src/templates/tabs/eur.jade:58 msgid "€ 0.31 – € 15.00" msgstr "€ 0.31 – € 15.00" -#: src/jade/tabs/eur.jade:59 +#: src/templates/tabs/eur.jade:68 msgid "Ripple Trade has partnered with SnapSwap to provide easier access to EUR. Following this action will enable SnapSwap to hold EUR on your behalf." msgstr "Ripple Trade has partnered with SnapSwap to provide easier access to EUR. Following this action will enable SnapSwap to hold EUR on your behalf." -#: src/jade/tabs/eur.jade:69 -#: src/jade/tabs/usd.jade:66 -msgid "Not connected" -msgstr "Not connected" - -#: src/jade/tabs/eur.jade:70 -#: src/jade/tabs/usd.jade:67 -msgid "Connected" -msgstr "Connected" +#: src/templates/tabs/eur.jade:72 +msgid "Add SnapSwap.eu" +msgstr "Add SnapSwap.eu" -#: src/jade/tabs/eur.jade:76 +#: src/templates/tabs/eur.jade:88 msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.EU" msgstr "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.EU" -#: src/jade/tabs/eur.jade:77 +#: src/templates/tabs/eur.jade:89 msgid "Register and verify your account at SnapSwap EU. You will need: {{1}}" msgstr "Register and verify your account at SnapSwap EU. You will need: {{1}}" -#: src/jade/tabs/eur.jade:81 -#: src/jade/tabs/usd.jade:78 +#: src/templates/tabs/eur.jade:93 +#: src/templates/tabs/usd.jade:90 msgid "A valid government-issued ID: driver license, passport, ID card, or visa stamp." msgstr "A valid government-issued ID: driver license, passport, ID card, or visa stamp." -#: src/jade/tabs/eur.jade:83 -#: src/jade/tabs/usd.jade:80 +#: src/templates/tabs/eur.jade:95 +#: src/templates/tabs/usd.jade:92 msgid "A proof of address: driver license, utility bill, bank statement, etc." msgstr "A proof of address: driver license, utility bill, bank statement, etc." -#: src/jade/tabs/eur.jade:85 +#: src/templates/tabs/eur.jade:97 msgid "EXISTING SNAPSWAP EU CUSTOMERS" msgstr "EXISTING SNAPSWAP EU CUSTOMERS" -#: src/jade/tabs/eur.jade:89 -#: src/jade/tabs/jpy.jade:94 -#: src/jade/tabs/usd.jade:86 +#: src/templates/tabs/eur.jade:101 +#: src/templates/tabs/jpy.jade:106 +#: src/templates/tabs/usd.jade:98 msgid "Login to your account {{1}}" msgstr "Login to your account {{1}}" -#: src/jade/tabs/eur.jade:92 -#: src/jade/tabs/jpy.jade:96 +#: src/templates/tabs/eur.jade:104 +#: src/templates/tabs/jpy.jade:108 msgid "DEPOSITS AND WITHDRAWALS:" msgstr "DEPOSITS AND WITHDRAWALS:" -#: src/jade/tabs/eur.jade:96 +#: src/templates/tabs/eur.jade:108 msgid "Deposit from your bank (2-4 business days)" msgstr "Deposit from your bank (2-4 business days)" -#: src/jade/tabs/eur.jade:98 +#: src/templates/tabs/eur.jade:110 msgid "Withdraw to your bank account in SEPA (2-4 business days)" msgstr "Withdraw to your bank account in SEPA (2-4 business days)" -#: src/jade/tabs/eur.jade:100 +#: src/templates/tabs/eur.jade:112 msgid "Withdraw to SmartyCash Card (instant)" msgstr "Withdraw to SmartyCash Card (instant)" -#: src/jade/tabs/exchange.jade:13 -msgid "You have to be funded before you can exchange money" -msgstr "You have to be funded before you can exchange money" +#: src/templates/tabs/exchange.jade:15 +msgid ""err-you-must-be-funded-before-you-can-exchange-money"" +msgstr "You have to be funded before you can submit an order." -#: src/jade/tabs/exchange.jade:23 +#: src/templates/tabs/exchange.jade:30 msgid "Buy (Market Order)" msgstr "Buy (Market Order)" -#: src/jade/tabs/exchange.jade:24 +#: src/templates/tabs/exchange.jade:31 msgid "Submit a buy order at the current market rate. Orders will execute instantly." msgstr "Submit a buy order at the current market rate. Orders will execute instantly." -# Receive (amount) -#: src/jade/tabs/exchange.jade:27 -msgid "Receive (amount)" +#: src/templates/tabs/exchange.jade:34 +msgid ""Receive (amount)"" msgstr "I want to buy" -#: src/jade/tabs/exchange.jade:34 -#: src/jade/tabs/widgets/balances.jade:49 +#: src/templates/tabs/exchange.jade:56 +#: src/templates/tabs/widgets/balances.jade:86 msgid "add gateway" msgstr "add gateway" -#: src/jade/tabs/exchange.jade:37 -#: src/jade/tabs/send.jade:90 +#: src/templates/tabs/exchange.jade:59 +#: src/templates/tabs/send.jade:166 msgid "Please enter an amount." msgstr "Please enter an amount." -#: src/jade/tabs/exchange.jade:38 -#: src/jade/tabs/send.jade:91 -#: src/jade/tabs/trade.jade:153 -#: src/jade/tabs/trade.jade:168 -#: src/jade/tabs/trade.jade:183 -#: src/jade/tabs/trust.jade:101 +#: src/templates/tabs/exchange.jade:60 +#: src/templates/tabs/send.jade:167 +#: src/templates/tabs/trade.jade:219 +#: src/templates/tabs/trade.jade:247 +#: src/templates/tabs/trade.jade:274 +#: src/templates/tabs/trust.jade:131 msgid "Not a valid amount." msgstr "Not a valid amount." -#: src/jade/tabs/exchange.jade:39 -msgid "You are either trying to convert too little or too much XRP.Minimum amount is 0.000001 XRP and maximum amount is 100 billion XRP." -msgstr "You are either trying to convert too little or too much XRP.Minimum amount is 0.000001 XRP and maximum amount is 100 billion XRP." +#: src/templates/tabs/exchange.jade:61 +msgid "You are either trying to buy too little or too much XRP.Minimum amount is 0.000001 XRP and maximum amount is 100 billion XRP." +msgstr "You are either trying to buy too little or too much XRP.Minimum amount is 0.000001 XRP and maximum amount is 100 billion XRP." -#: src/jade/tabs/exchange.jade:42 -#: src/jade/tabs/send.jade:96 -#: src/jade/tabs/trust.jade:103 +#: src/templates/tabs/exchange.jade:64 +#: src/templates/tabs/send.jade:172 +#: src/templates/tabs/trust.jade:133 msgid "Your amount has too many digits. The max number of digits is 16." msgstr "Your amount has too many digits. The max number of digits is 16." -#: src/jade/tabs/exchange.jade:43 +#: src/templates/tabs/exchange.jade:65 msgid "Please enter an amount greater than zero." msgstr "Please enter an amount greater than zero." -#: src/jade/tabs/exchange.jade:46 +#: src/templates/tabs/exchange.jade:68 msgid "{{1}} Calculating..." msgstr "{{1}} Calculating..." -#: src/jade/tabs/exchange.jade:50 -msgid "Cannot convert to {{exchange.amount}} {{exchange.currency_name}}. Please make sure your account has enough funds, and a {{1}} to a {{exchange.currency_name}} gateway." -msgstr "Cannot convert to {{exchange.amount}} {{exchange.currency_name}}. Please make sure your account has enough funds, and a {{1}} to a {{exchange.currency_name}} gateway." +#: src/templates/tabs/exchange.jade:72 +msgid "Cannot buy {{exchange.amount}} {{exchange.currency_name}}. Please make sure your account has enough funds, and a {{1}} to a {{exchange.currency_name}} gateway." +msgstr "Cannot buy {{exchange.amount}} {{exchange.currency_name}}. Please make sure your account has enough funds, and a {{1}} to a {{exchange.currency_name}} gateway." -#: src/jade/tabs/exchange.jade:54 -msgid "Sorry! Cannot convert {{exchange.amount}} {{exchange.currency_name}}. Please make sure your account has enough funds." -msgstr "Sorry! Cannot convert {{exchange.amount}} {{exchange.currency_name}}. Please make sure your account has enough funds." +#: src/templates/tabs/exchange.jade:76 +msgid "Sorry! Cannot buy {{exchange.amount}} {{exchange.currency_name}}. Please make sure your account has enough funds." +msgstr "Sorry! Cannot buy {{exchange.amount}} {{exchange.currency_name}}. Please make sure your account has enough funds." -#: src/jade/tabs/exchange.jade:56 -#: src/jade/tabs/send.jade:142 -msgid "Error while calculating path" -msgstr "Error while calculating path" +#: src/templates/tabs/exchange.jade:78 +msgid "Error while calculating price." +msgstr "Error while calculating price." -#: src/jade/tabs/exchange.jade:60 -msgid "Exchange" -msgstr "Exchange" +#: src/templates/tabs/exchange.jade:82 +#: src/templates/tabs/trade.jade:305 +msgid "Sell" +msgstr "Sell" -#: src/jade/tabs/exchange.jade:72 -msgid "Exchange {{ alt.amount | rpcurrency }} {{1}}" -msgstr "Exchange {{ alt.amount | rpcurrency }} {{1}}" +#: src/templates/tabs/exchange.jade:98 +msgid "Sell {{ alt.amount | rpcurrency }} {{1}}" +msgstr "Sell {{ alt.amount | rpcurrency }} {{1}}" -#: src/jade/tabs/exchange.jade:78 -#: src/jade/tabs/send.jade:170 -msgid "Paths last updated {{1}} {{2: seconds}} {{3: second}} ago" -msgstr "Paths last updated {{1}} {{2: seconds}} {{3: second}} ago" +#: src/templates/tabs/exchange.jade:107 +msgid "Price last updated {{1}} {{2: seconds}} {{3: second}} ago" +msgstr "Price last updated {{1}} {{2: seconds}} {{3: second}} ago" -#: src/jade/tabs/exchange.jade:89 -msgid "Ripple is calculating a path for your conversion." -msgstr "Ripple is calculating a path for your conversion." +#: src/templates/tabs/exchange.jade:118 +msgid "Ripple is calculating the price for your order." +msgstr "Ripple is calculating the price for your order." -#: src/jade/tabs/exchange.jade:94 -msgid "{{1:You are exchanging}}{{2}}{{3:to}}{{4}}{{5:You will pay at most}}{{6}}{{7:Are you sure?}}" -msgstr "{{1:You are exchanging}}{{2}}{{3:to}}{{4}}{{5:You will pay at most}}{{6}}{{7:Are you sure?}}" +#: src/templates/tabs/exchange.jade:123 +msgid "{{1:You are selling}}{{2}}{{3:for}}{{4}}{{5:You will sell at most}}{{6}}{{7}}{{8:Ripple network fee: }}{{9}}{{10}}" +msgstr "{{1:You are selling}}{{2}}{{3:for}}{{4}}{{5:You will sell at most}}{{6}}{{7}}{{8:Ripple network fee: }}{{9}}{{10}}" -#: src/jade/tabs/exchange.jade:139 -msgid "Do another conversion" -msgstr "Do another conversion" +#: src/templates/tabs/exchange.jade:178 +msgid "Submit another buy order" +msgstr "Submit another buy order" -#: src/jade/tabs/exchange.jade:141 -#: src/jade/tabs/send.jade:257 -#: src/jade/tabs/send.jade:291 +#: src/templates/tabs/exchange.jade:180 +#: src/templates/tabs/send.jade:363 +#: src/templates/tabs/send.jade:405 msgid "Back to balance" msgstr "Back to balance" -#: src/jade/tabs/fund.jade:20 +#: src/templates/tabs/fund.jade:25 msgid "Add trust" msgstr "Add trust" -#: src/jade/tabs/fund.jade:27 -#: src/jade/tabs/send.jade:26 -msgid "Enter a Ripple name or contact" -msgstr "Enter a Ripple name or contact" +#: src/templates/tabs/fund.jade:32 +#: src/templates/tabs/send.jade:37 +msgid ""Enter a Ripple name or contact"" +msgstr ""Enter a Ripple name or contact"" -#: src/jade/tabs/fund.jade:33 -#: src/jade/tabs/trust.jade:73 +#: src/templates/tabs/fund.jade:48 msgid "Account does not meet the minimum XRP reserve." msgstr "Account does not meet the minimum XRP reserve." -#: src/jade/tabs/fund.jade:36 -#: src/jade/tabs/trust.jade:76 +#: src/templates/tabs/fund.jade:51 +#: src/templates/tabs/trust.jade:93 msgid "Please enter a Ripple name, contact, or address." msgstr "Please enter a Ripple name, contact, or address." -#: src/jade/tabs/fund.jade:37 -#: src/jade/tabs/trust.jade:77 +#: src/templates/tabs/fund.jade:52 +#: src/templates/tabs/trust.jade:94 msgid "You've entered your own address." msgstr "You've entered your own address." -#: src/jade/tabs/fund.jade:38 -#: src/jade/tabs/trust.jade:78 +#: src/templates/tabs/fund.jade:53 +#: src/templates/tabs/trust.jade:95 msgid "Please enter a valid Ripple name, contact, or address." msgstr "Please enter a valid Ripple name, contact, or address." -#: src/jade/tabs/fund.jade:48 -#: src/jade/tabs/trust.jade:80 +#: src/templates/tabs/fund.jade:75 msgid "Amount field is required" msgstr "Amount field is required" -#: src/jade/tabs/fund.jade:50 -#: src/jade/tabs/trust.jade:82 -#: src/jade/tabs/trust.jade:105 +#: src/templates/tabs/fund.jade:77 +#: src/templates/tabs/trust.jade:135 msgid "XRP can be sent without extending trust. If you really want to trust in XRP, please use XRR currency code." msgstr "XRP can be sent without extending trust. If you really want to trust in XRP, please use XRR currency code." -#: src/jade/tabs/fund.jade:53 -#: src/jade/tabs/trust.jade:85 -#: src/jade/tabs/trust.jade:108 +#: src/templates/tabs/fund.jade:80 +#: src/templates/tabs/trust.jade:138 msgid "Currency field is required" msgstr "Currency field is required" -#: src/jade/tabs/fund.jade:59 -#: src/jade/tabs/fund.jade:60 -#: src/jade/tabs/trust.jade:114 -#: src/jade/tabs/trust.jade:115 +#: src/templates/tabs/fund.jade:88 +#: src/templates/tabs/trust.jade:146 msgid "Allow Rippling" msgstr "Allow Rippling" -#: src/jade/tabs/fund.jade:60 -msgid "Allow this trust line's balances to be transferred to another issuer you trust. More information" -msgstr "Allow this trust line's balances to be transferred to another issuer you trust. More information" +#: src/templates/tabs/fund.jade:89 +#: src/templates/tabs/trust.jade:147 +msgid ""Allow Rippling"" +msgstr ""Allow Rippling"" -#: src/jade/tabs/fund.jade:63 +#: src/templates/tabs/fund.jade:89 +msgid ""Allow this trust line's balances to be transferred to another issuer you trust. More information"" +msgstr ""Allow this trust line's balances to be transferred to another issuer you trust. More information"" + +#: src/templates/tabs/fund.jade:97 msgid "Cancel" msgstr "Cancel" -#: src/jade/tabs/fund/menu.jade:3 -msgid "{{1}}XRP" -msgstr "{{1}}XRP" - -#: src/jade/tabs/fund/menu.jade:6 -msgid "Featured gateways" -msgstr "Featured gateways" - -#: src/jade/tabs/fund/menu.jade:7 -msgid "{{1}}BRL" -msgstr "{{1}}BRL" - -#: src/jade/tabs/fund/menu.jade:10 -msgid "{{1}}BTC" -msgstr "{{1}}BTC" - -#: src/jade/tabs/fund/menu.jade:13 -msgid "{{1}}EUR" -msgstr "{{1}}EUR" - -#: src/jade/tabs/fund/menu.jade:16 -msgid "{{1}}JPY" -msgstr "{{1}}JPY" - -#: src/jade/tabs/fund/menu.jade:19 -msgid "{{1}}MXN" -msgstr "{{1}}MXN" - -#: src/jade/tabs/fund/menu.jade:22 -msgid "{{1}}USD" -msgstr "{{1}}USD" - -#: src/jade/tabs/fund/menu.jade:25 -msgid "{{1}}XAU" -msgstr "{{1}}XAU" - -#: src/jade/tabs/fund/menu.jade:28 -msgid "Add any gateway" -msgstr "Add any gateway" - -#: src/jade/tabs/fund/menu.jade:30 -msgid "Learn more about gateways" -msgstr "Learn more about gateways" - -#: src/jade/tabs/gold.jade:37 +#: src/templates/tabs/gold.jade:46 msgid "Gold Deposit" msgstr "Gold Deposit" -#: src/jade/tabs/gold.jade:41 +#: src/templates/tabs/gold.jade:50 msgid "Gold Bullion International (~gbi) {{1}}" msgstr "Gold Bullion International (~gbi) {{1}}" -#: src/jade/tabs/gold.jade:48 -msgid "0.5% per year" -msgstr "0.5% per year" +#: src/templates/tabs/gold.jade:57 +msgid "0.3%" +msgstr "0.3%" -#: src/jade/tabs/gold.jade:56 +#: src/templates/tabs/gold.jade:65 msgid "Ripple Trade has partnered with GBI to provide easy access toXAU. By continuing, you are allowing GBI to hold gold on your behalf." msgstr "Ripple Trade has partnered with GBI to provide easy access toXAU. By continuing, you are allowing GBI to hold gold on your behalf." -#: src/jade/tabs/gold.jade:67 -#: src/jade/tabs/jpy.jade:68 -#: src/jade/tabs/mxn.jade:70 +#: src/templates/tabs/gold.jade:70 +msgid "Add GBI" +msgstr "Add GBI" + +#: src/templates/tabs/gold.jade:76 +#: src/templates/tabs/jpy.jade:77 +#: src/templates/tabs/mxn.jade:79 +#: src/templates/tabs/sgd.jade:78 msgid "{{1}} Not connected" msgstr "{{1}} Not connected" -#: src/jade/tabs/gold.jade:70 -#: src/jade/tabs/jpy.jade:71 -#: src/jade/tabs/mxn.jade:73 +#: src/templates/tabs/gold.jade:79 +#: src/templates/tabs/jpy.jade:80 +#: src/templates/tabs/mxn.jade:82 +#: src/templates/tabs/sgd.jade:81 msgid "{{1}} Connected" msgstr "{{1}} Connected" -#: src/jade/tabs/gold.jade:77 +#: src/templates/tabs/gold.jade:89 msgid "Deposit" msgstr "Deposit" -#: src/jade/tabs/gold.jade:78 +#: src/templates/tabs/gold.jade:90 msgid "GBI does not currently support direct deposits. You can {{1}} or {{2}}." msgstr "GBI does not currently support direct deposits. You can {{1}} or {{2}}." -#: src/jade/tabs/gold.jade:84 +#: src/templates/tabs/gold.jade:96 msgid "Withdrawal" msgstr "Withdrawal" -#: src/jade/tabs/gold.jade:85 +#: src/templates/tabs/gold.jade:97 msgid "You can redeem the physical gold in 1 oz increments.To do so, you'll need to {{1}} and arrange to have the gold shipped to you." msgstr "You can redeem the physical gold in 1 oz increments.To do so, you'll need to {{1}} and arrange to have the gold shipped to you." -#: src/jade/tabs/history.jade:11 -msgid "Loading History" -msgstr "Loading History" - -#: src/jade/tabs/history.jade:16 +#: src/templates/tabs/history.jade:6 msgid "Your account history is empty" msgstr "Your account history is empty" -#: src/jade/tabs/history.jade:24 -msgid "Transaction type{{1}}{{2}}" -msgstr "Transaction type{{1}}{{2}}" +#: src/templates/tabs/history.jade:19 +msgid "Transaction type" +msgstr "Transaction type" + +#: src/templates/tabs/history.jade:29 +msgid "Date" +msgstr "Date" -#: src/jade/tabs/history.jade:37 -msgid "Date{{1}}{{2}}" -msgstr "Date{{1}}{{2}}" +#: src/templates/tabs/history.jade:35 +msgid "All dates" +msgstr "All dates" -#: src/jade/tabs/history.jade:42 -msgid "Load history for specific date range" -msgstr "Load history for specific date range" +#: src/templates/tabs/history.jade:41 +msgid "Custom date" +msgstr "Custom date" -#: src/jade/tabs/history.jade:48 +#: src/templates/tabs/history.jade:50 msgid "From" msgstr "From" -#: src/jade/tabs/history.jade:54 +#: src/templates/tabs/history.jade:56 msgid "To" msgstr "To" -#: src/jade/tabs/history.jade:57 +#: src/templates/tabs/history.jade:59 msgid "Filter" msgstr "Filter" -#: src/jade/tabs/history.jade:64 -msgid "Date" -msgstr "Date" - -#: src/jade/tabs/history.jade:65 -#: src/jade/tabs/history.jade:170 -msgid "Description" -msgstr "Description" +#: src/templates/tabs/history.jade:64 +msgid "Loading History" +msgstr "Loading History" -#: src/jade/tabs/history.jade:68 -#: src/jade/tabs/history.jade:73 +#: src/templates/tabs/history.jade:71 +#: src/templates/tabs/history.jade:77 msgid "Export to CSV" msgstr "Export to CSV" -#: src/jade/tabs/history.jade:69 -msgid "Sorry, no transactions match your current filter." -msgstr "Sorry, no transactions match your current filter." - -#: src/jade/tabs/history.jade:91 +#: src/templates/tabs/history.jade:97 msgid "You sent{{1}}to{{2}}" msgstr "You sent{{1}}to{{2}}" -#: src/jade/tabs/history.jade:97 +#: src/templates/tabs/history.jade:103 msgid "{{1}}sent you{{2}}" msgstr "{{1}}sent you{{2}}" -#: src/jade/tabs/history.jade:103 +#: src/templates/tabs/history.jade:109 msgid "You requested to exchange{{1}}to{{2}}" msgstr "You requested to exchange{{1}}to{{2}}" -#: src/jade/tabs/history.jade:109 +#: src/templates/tabs/history.jade:115 msgid "{{1}}now trusts you for{{2}}" msgstr "{{1}}now trusts you for{{2}}" -#: src/jade/tabs/history.jade:122 -#: src/jade/tabs/history/effects.jade:45 +#: src/templates/tabs/history.jade:128 +#: src/templates/tabs/history/effects.jade:63 msgid "You created an order to sell{{1}}for{{2}}" msgstr "You created an order to sell{{1}}for{{2}}" -#: src/jade/tabs/history.jade:126 -#: src/jade/tabs/history/effects.jade:49 +#: src/templates/tabs/history.jade:132 +#: src/templates/tabs/history/effects.jade:67 msgid "You created an order to buy{{1}}for{{2}}" msgstr "You created an order to buy{{1}}for{{2}}" -#: src/jade/tabs/history.jade:132 +#: src/templates/tabs/history.jade:138 msgid "You cancelled an order accepting {{1}}for{{2}}" msgstr "You cancelled an order accepting {{1}}for{{2}}" -#: src/jade/tabs/history.jade:145 +#: src/templates/tabs/history.jade:151 msgid "Unknown transaction" msgstr "Unknown transaction" -#: src/jade/tabs/history.jade:148 +#: src/templates/tabs/history.jade:154 msgid "The client failed to parse this transaction. The developers have been notified of the issue." msgstr "The client failed to parse this transaction. The developers have been notified of the issue." -#: src/jade/tabs/history.jade:153 +#: src/templates/tabs/history.jade:160 msgid "{{1}} sent you{{2}} and activated your account!" msgstr "{{1}} sent you{{2}} and activated your account!" -#: src/jade/tabs/history.jade:160 +#: src/templates/tabs/history.jade:167 msgid "You deposited{{1}} using {{entry.details.app.name}}" msgstr "You deposited{{1}} using {{entry.details.app.name}}" -#: src/jade/tabs/history.jade:168 +#: src/templates/tabs/history.jade:175 msgid "Balance Changes" msgstr "Balance Changes" -#: src/jade/tabs/history.jade:171 +#: src/templates/tabs/history.jade:177 +msgid "Description" +msgstr "Description" + +#: src/templates/tabs/history.jade:178 msgid "Issuer" msgstr "Issuer" -#: src/jade/tabs/history.jade:173 +#: src/templates/tabs/history.jade:180 msgid "Final balance" msgstr "Final balance" -#: src/jade/tabs/history.jade:176 +#: src/templates/tabs/history.jade:183 msgid "XRP Balance Change" msgstr "XRP Balance Change" -#: src/jade/tabs/history.jade:177 +#: src/templates/tabs/history.jade:184 msgid "{{effect.currency}} Balance Change" msgstr "{{effect.currency}} Balance Change" -#: src/jade/tabs/history.jade:183 +#: src/templates/tabs/history.jade:196 msgid "Transaction details" msgstr "Transaction details" -#: src/jade/tabs/history.jade:184 +#: src/templates/tabs/history.jade:197 msgid "Add {{1}} to contact list" msgstr "Add {{1}} to contact list" -#: src/jade/tabs/history.jade:189 -msgid "{{1}} Loading more" -msgstr "{{1}} Loading more" - -#: src/jade/tabs/history.jade:192 -#: src/jade/tabs/trade.jade:500 -msgid "Load more" -msgstr "Load more" - -#: src/jade/tabs/history.jade:193 -msgid "No more transactions left" -msgstr "No more transactions left" - -#: src/jade/tabs/history/effects.jade:4 -#: src/jade/tabs/history/effects.jade:19 -msgid "You sold{{1}}for{{2}}" -msgstr "You sold{{1}}for{{2}}" - -#: src/jade/tabs/history/effects.jade:8 -#: src/jade/tabs/history/effects.jade:23 -msgid "You bought{{1}}for{{2}}" -msgstr "You bought{{1}}for{{2}}" - -#: src/jade/tabs/history/effects.jade:13 -#: src/jade/tabs/history/effects.jade:28 -msgid "price" -msgstr "price" - -#: src/jade/tabs/history/effects.jade:17 -msgid "This order has been filled." -msgstr "This order has been filled." - -#: src/jade/tabs/history/effects.jade:32 -msgid "The rest of your order has been cancelled due to lack of funds." -msgstr "The rest of your order has been cancelled due to lack of funds." - -#: src/jade/tabs/history/effects.jade:33 -msgid "This order has{{1}}remaining." -msgstr "This order has{{1}}remaining." - -#: src/jade/tabs/history/effects.jade:39 -msgid "Order ({{1}} for {{2}}) has been cancelled due to lack of funds." -msgstr "Order ({{1}} for {{2}}) has been cancelled due to lack of funds." - -#: src/jade/tabs/history/effects.jade:53 -msgid "You bought{{1}}for{{2}}({{3:price}}{{4}})." -msgstr "You bought{{1}}for{{2}}({{3:price}}{{4}})." - -#: src/jade/tabs/history/effects.jade:68 -msgid "{{1}}is trusting you for{{2}}." -msgstr "{{1}}is trusting you for{{2}}." - -#: src/jade/tabs/history/effects.jade:73 -msgid "You have changed {{1}}trust for{{2}}from{{3}}to{{4}}." -msgstr "You have changed {{1}}trust for{{2}}from{{3}}to{{4}}." - -#: src/jade/tabs/history/effects.jade:83 -msgid "{{1}}changed the{{2}}trust from{{3}}to{{4}}." -msgstr "{{1}}changed the{{2}}trust from{{3}}to{{4}}." - -#: src/jade/tabs/history/effects.jade:92 -msgid "Trust balance between you and{{1}}has been changed by{{2}}." -msgstr "Trust balance between you and{{1}}has been changed by{{2}}." - -#: src/jade/tabs/history/effects.jade:99 -msgid "Your balance has been changed by{{1}}." -msgstr "Your balance has been changed by{{1}}." - -#: src/jade/tabs/jpy.jade:38 +#: src/templates/tabs/jpy.jade:47 msgid "Japanese Yen Deposit" msgstr "Japanese Yen Deposit" -#: src/jade/tabs/jpy.jade:42 +#: src/templates/tabs/jpy.jade:51 msgid "Tokyo JPY Issuer (~tokyojpy) {{1}}" msgstr "Tokyo JPY Issuer (~tokyojpy) {{1}}" -#: src/jade/tabs/jpy.jade:59 +#: src/templates/tabs/jpy.jade:68 msgid "Ripple Trade has partnered with Tokyo JPY Issuer to provide easier access to JPY. Following this action will enable Tokyo JPY Issuer to hold JPY on your behalf." msgstr "Ripple Trade has partnered with Tokyo JPY Issuer to provide easier access to JPY. Following this action will enable Tokyo JPY Issuer to hold JPY on your behalf." -#: src/jade/tabs/jpy.jade:78 +#: src/templates/tabs/jpy.jade:71 +msgid "Add Tokyo JPY" +msgstr "Add Tokyo JPY" + +#: src/templates/tabs/jpy.jade:90 msgid "NEW CUSTOMERS- SIGN UP AT TOKYO JPY ISSUER" msgstr "NEW CUSTOMERS- SIGN UP AT TOKYO JPY ISSUER" -#: src/jade/tabs/jpy.jade:79 +#: src/templates/tabs/jpy.jade:91 msgid "{{1}}at Tokyo JPY Issuer. You will need:{{2}}" msgstr "{{1}}at Tokyo JPY Issuer. You will need:{{2}}" -#: src/jade/tabs/jpy.jade:84 +#: src/templates/tabs/jpy.jade:96 msgid "A valid government-issued ID." msgstr "A valid government-issued ID." -#: src/jade/tabs/jpy.jade:86 +#: src/templates/tabs/jpy.jade:98 msgid "A proof of address (utility bill, etc)." msgstr "A proof of address (utility bill, etc)." -#: src/jade/tabs/jpy.jade:88 +#: src/templates/tabs/jpy.jade:100 msgid "A bank account under the same name." msgstr "A bank account under the same name." -#: src/jade/tabs/jpy.jade:90 +#: src/templates/tabs/jpy.jade:102 msgid "EXISTING TOKYO JPY ISSUER CUSTOMERS" msgstr "EXISTING TOKYO JPY ISSUER CUSTOMERS" -#: src/jade/tabs/jpy.jade:100 +#: src/templates/tabs/jpy.jade:112 msgid "Tokyo JPY Issuer accepts deposits and withdrawals via bank transfer. Details {{1}}" msgstr "Tokyo JPY Issuer accepts deposits and withdrawals via bank transfer. Details {{1}}" -#: src/jade/tabs/jpy.jade:103 +#: src/templates/tabs/jpy.jade:115 msgid "To deposit, you’ll need to first deposit into your Tokyo JPY Issuer account and then initiate a transfer into your Ripple account." msgstr "To deposit, you’ll need to first deposit into your Tokyo JPY Issuer account and then initiate a transfer into your Ripple account." -#: src/jade/tabs/jpy.jade:105 +#: src/templates/tabs/jpy.jade:117 msgid "To withdraw to a bank account, you’ll first send money from your Ripple account to your Tokyo JPY Issuer account. Follow instructions on the Tokyo JPY Issuer site to send to your bank account." msgstr "To withdraw to a bank account, you’ll first send money from your Ripple account to your Tokyo JPY Issuer account. Follow instructions on the Tokyo JPY Issuer site to send to your bank account." -#: src/jade/tabs/kyc.jade:14 +#: src/templates/tabs/kyc.jade:19 msgid "Profile completion is only available to US residents." msgstr "Profile completion is only available to US residents." -#: src/jade/tabs/kyc.jade:21 -#: src/jade/tabs/trade.jade:285 +#: src/templates/tabs/kyc.jade:26 +#: src/templates/tabs/trade.jade:398 msgid "Verifying your information. Please wait..." msgstr "Verifying your information. Please wait..." -#: src/jade/tabs/kyc.jade:23 +#: src/templates/tabs/kyc.jade:28 msgid "Your identity information has been verified." msgstr "Your identity information has been verified." -#: src/jade/tabs/kyc.jade:25 +#: src/templates/tabs/kyc.jade:30 msgid "Your identity questions have been verified." msgstr "Your identity questions have been verified." -#: src/jade/tabs/kyc.jade:27 +#: src/templates/tabs/kyc.jade:32 msgid "Congratulations, you've verified your identity! You will now be redirected back to the instant deposit page." msgstr "Congratulations, you've verified your identity! You will now be redirected back to the instant deposit page." -#: src/jade/tabs/kyc.jade:29 +#: src/templates/tabs/kyc.jade:34 msgid "There was an error with your request. Please try again later." msgstr "There was an error with your request. Please try again later." -#: src/jade/tabs/kyc.jade:31 +#: src/templates/tabs/kyc.jade:36 msgid "There was an error with your request. Make sure your phone number is valid and try again." msgstr "There was an error with your request. Make sure your phone number is valid and try again." -#: src/jade/tabs/kyc.jade:33 +#: src/templates/tabs/kyc.jade:38 msgid "Please check your verification code and try again." msgstr "Please check your verification code and try again." -#: src/jade/tabs/kyc.jade:35 +#: src/templates/tabs/kyc.jade:40 msgid "There was an error while requesting the verification code. Please try again later." msgstr "There was an error while requesting the verification code. Please try again later." -#: src/jade/tabs/kyc.jade:37 +#: src/templates/tabs/kyc.jade:42 msgid "We are unable to validate your identity information. Please check your information and try again." msgstr "We are unable to validate your identity information. Please check your information and try again." -#: src/jade/tabs/kyc.jade:39 +#: src/templates/tabs/kyc.jade:44 msgid "We are unable to validate your identity questions. Please check your answers and try again." msgstr "We are unable to validate your identity questions. Please check your answers and try again." -#: src/jade/tabs/kyc.jade:41 +#: src/templates/tabs/kyc.jade:46 msgid "Sorry, you've reached your maximum number of verification attempts. Please try again in 24 hours." msgstr "Sorry, you've reached your maximum number of verification attempts. Please try again in 24 hours." -#: src/jade/tabs/kyc.jade:43 +#: src/templates/tabs/kyc.jade:48 msgid "We can't verify your identity. Please contact us at support@ripple.com." msgstr "We can't verify your identity. Please contact us at support@ripple.com." -#: src/jade/tabs/kyc.jade:48 +#: src/templates/tabs/kyc.jade:53 msgid "Profile Completion" msgstr "Profile Completion" -#: src/jade/tabs/kyc.jade:52 +#: src/templates/tabs/kyc.jade:57 msgid "STEP 1: IDENTITY INFORMATION" msgstr "STEP 1: IDENTITY INFORMATION" -#: src/jade/tabs/kyc.jade:54 +#: src/templates/tabs/kyc.jade:59 msgid "STEP 2: IDENTITY QUESTIONS" msgstr "STEP 2: IDENTITY QUESTIONS" -#: src/jade/tabs/kyc.jade:56 +#: src/templates/tabs/kyc.jade:61 msgid "STEP 3: TWO-FACTOR AUTHENTICATION" msgstr "STEP 3: TWO-FACTOR AUTHENTICATION" -#: src/jade/tabs/kyc.jade:63 +#: src/templates/tabs/kyc.jade:68 msgid "First Name" msgstr "First Name" -#: src/jade/tabs/kyc.jade:67 +#: src/templates/tabs/kyc.jade:75 msgid "Last Name" msgstr "Last Name" -#: src/jade/tabs/kyc.jade:71 +#: src/templates/tabs/kyc.jade:82 msgid "Street Address" msgstr "Street Address" -#: src/jade/tabs/kyc.jade:76 +#: src/templates/tabs/kyc.jade:90 msgid "City" msgstr "City" -#: src/jade/tabs/kyc.jade:80 +#: src/templates/tabs/kyc.jade:97 msgid "State" msgstr "State" -#: src/jade/tabs/kyc.jade:84 +#: src/templates/tabs/kyc.jade:104 msgid "ZIP" msgstr "ZIP" -#: src/jade/tabs/kyc.jade:88 +#: src/templates/tabs/kyc.jade:111 msgid "Date of Birth" msgstr "Date of Birth" -#: src/jade/tabs/kyc.jade:92 +#: src/templates/tabs/kyc.jade:115 msgid "Month{{1}}" msgstr "Month{{1}}" -#: src/jade/tabs/kyc.jade:95 +#: src/templates/tabs/kyc.jade:121 msgid "Day{{1}}" msgstr "Day{{1}}" -#: src/jade/tabs/kyc.jade:98 +#: src/templates/tabs/kyc.jade:127 msgid "Year{{1}}" msgstr "Year{{1}}" -#: src/jade/tabs/kyc.jade:113 +#: src/templates/tabs/kyc.jade:149 msgid "Continue to identity questions" msgstr "Continue to identity questions" -#: src/jade/tabs/kyc.jade:114 -#: src/jade/tabs/kyc.jade:129 -#: src/jade/tabs/kyc.jade:154 -#: src/jade/tabs/kyc.jade:184 -#: src/jade/tabs/login.jade:17 +#: src/templates/tabs/kyc.jade:150 +#: src/templates/tabs/kyc.jade:168 +#: src/templates/tabs/kyc.jade:194 +#: src/templates/tabs/kyc.jade:225 +#: src/templates/tabs/login.jade:16 msgid "Verifying..." msgstr "Verifying..." -#: src/jade/tabs/kyc.jade:120 +#: src/templates/tabs/kyc.jade:156 msgid "{{ q.question }}{{1}}" msgstr "{{ q.question }}{{1}}" -#: src/jade/tabs/kyc.jade:123 +#: src/templates/tabs/kyc.jade:161 msgid "{{ a.answer }}" msgstr "{{ a.answer }}" -#: src/jade/tabs/kyc.jade:128 +#: src/templates/tabs/kyc.jade:167 msgid "Continue to two-factor authentication" msgstr "Continue to two-factor authentication" -#: src/jade/tabs/kyc.jade:137 +#: src/templates/tabs/kyc.jade:176 msgid "Two-factor authentication provides extra security for your account." msgstr "Two-factor authentication provides extra security for your account." -#: src/jade/tabs/kyc.jade:145 +#: src/templates/tabs/kyc.jade:184 msgid "Ripple Trade has partnered with Authy to provide better security for your account.By continuing, you agree to Authy's {{1:Terms of Service}}." msgstr "Ripple Trade has partnered with Authy to provide better security for your account.By continuing, you agree to Authy's {{1:Terms of Service}}." -#: src/jade/tabs/kyc.jade:153 +#: src/templates/tabs/kyc.jade:193 msgid "Verify phone number" msgstr "Verify phone number" -#: src/jade/tabs/kyc.jade:164 +#: src/templates/tabs/kyc.jade:202 +#: src/templates/tabs/2fa/form.jade:6 +msgid "Phone Number" +msgstr "Phone Number" + +#: src/templates/tabs/kyc.jade:204 msgid "change" msgstr "change" -#: src/jade/tabs/kyc.jade:168 +#: src/templates/tabs/kyc.jade:208 msgid "A verification code has been sent to +{{ currentCountryCode }} {{ phoneNumber }}." msgstr "A verification code has been sent to +{{ currentCountryCode }} {{ phoneNumber }}." -#: src/jade/tabs/kyc.jade:172 -#: src/jade/tabs/login/form.jade:16 -#: src/jade/tabs/security.jade:97 +#: src/templates/tabs/kyc.jade:212 +#: src/templates/tabs/security.jade:103 +#: src/templates/tabs/login/form.jade:21 msgid "Verification Code" msgstr "Verification Code" -#: src/jade/tabs/kyc.jade:183 +#: src/templates/tabs/kyc.jade:224 msgid "Submit code" msgstr "Submit code" -#: src/jade/tabs/login.jade:4 -#: src/jade/tabs/migrate.jade:4 -#: src/jade/tabs/recover.jade:3 -#: src/jade/tabs/register.jade:5 -#: src/jade/tabs/register.jade:137 -#: src/jade/tabs/register.jade:184 +#: src/templates/tabs/login.jade:4 +#: src/templates/tabs/migrate.jade:4 +#: src/templates/tabs/recover.jade:4 +#: src/templates/tabs/register.jade:5 +#: src/templates/tabs/register.jade:171 +#: src/templates/tabs/register.jade:219 msgid "Welcome to Ripple Trade" msgstr "Welcome to Ripple Trade" -#: src/jade/tabs/login.jade:6 -#: src/jade/tabs/migrate.jade:6 -#: src/jade/tabs/recover.jade:5 -#: src/jade/tabs/register.jade:7 -#: src/jade/tabs/register.jade:139 -#: src/jade/tabs/register.jade:186 +#: src/templates/tabs/login.jade:6 +#: src/templates/tabs/migrate.jade:6 +#: src/templates/tabs/recover.jade:6 +#: src/templates/tabs/register.jade:7 +#: src/templates/tabs/register.jade:173 +#: src/templates/tabs/register.jade:221 msgid "Trade hundreds of assets, from XRP to crypto to gold to fiat." msgstr "Trade hundreds of assets, from XRP to crypto to gold to fiat." -#: src/jade/tabs/login.jade:15 -#: src/jade/tabs/login.jade:31 +#: src/templates/tabs/login.jade:13 +#: src/templates/tabs/login.jade:30 +#: src/templates/tabs/login.jade:95 msgid "Log In" msgstr "Log In" -#: src/jade/tabs/login.jade:18 +#: src/templates/tabs/login.jade:17 msgid "You have successfully verified your email address." msgstr "You have successfully verified your email address." -#: src/jade/tabs/login.jade:19 +#: src/templates/tabs/login.jade:18 msgid "Email verification token is invalid. It has either expired or has been resent. Please check your inbox for the most recent verification email." msgstr "Email verification token is invalid. It has either expired or has been resent. Please check your inbox for the most recent verification email." -#: src/jade/tabs/login.jade:30 +#: src/templates/tabs/login.jade:29 msgid "Logging in" msgstr "Logging in" -#: src/jade/tabs/login.jade:34 +#: src/templates/tabs/login.jade:34 msgid "Verify" msgstr "Verify" -#: src/jade/tabs/login.jade:36 -#: src/jade/tabs/register.jade:114 +#: src/templates/tabs/login.jade:37 +#: src/templates/tabs/register.jade:148 msgid "Already have a ripple.com/client account? {{1:Migrate}}" msgstr "Already have a ripple.com/client account? {{1:Migrate}}" -#: src/jade/tabs/login.jade:41 -#: src/jade/tabs/login.jade:42 -#: src/jade/tabs/recover.jade:9 +#: src/templates/tabs/login.jade:42 +#: src/templates/tabs/login.jade:43 +#: src/templates/tabs/recover.jade:10 msgid "Account Recovery" msgstr "Account Recovery" -#: src/jade/tabs/login.jade:49 +#: src/templates/tabs/login.jade:50 msgid "{{1:You're sending money to}}{{2}}." msgstr "{{1:You're sending money to}}{{2}}." -#: src/jade/tabs/login.jade:53 +#: src/templates/tabs/login.jade:54 msgid "{{1:You're sending}}{{2}}{{3: to }}{{4}}." msgstr "{{1:You're sending}}{{2}}{{3: to }}{{4}}." -#: src/jade/tabs/login.jade:63 +#: src/templates/tabs/login.jade:66 msgid "{{1:You're connecting to the gateway}}{{2}}{{3:for{{1}}}}{{4:with a limit of{{1}}}}." msgstr "{{1:You're connecting to the gateway}}{{2}}{{3:for{{1}}}}{{4:with a limit of{{1}}}}." -#: src/jade/tabs/login.jade:78 +#: src/templates/tabs/login.jade:83 msgid "{{1:You're adding}}{{2}}{{3:to your contacts list}}" msgstr "{{1:You're adding}}{{2}}{{3:to your contacts list}}" -#: src/jade/tabs/login.jade:95 +#: src/templates/tabs/login.jade:105 msgid "{{1}} Log In" msgstr "{{1}} Log In" -#: src/jade/tabs/login.jade:98 -msgid "You can confirm this transaction on the next page." -msgstr "You can confirm this transaction on the next page." - -#: src/jade/tabs/login.jade:99 -msgid "New to {{productName}}? {{1:Create a wallet}}" -msgstr "New to {{productName}}? {{1:Create a wallet}}" - -#: src/jade/tabs/login/form.jade:12 -#: src/jade/tabs/security.jade:91 -msgid "Please enter the verification code from the SMS message sent to your device:" -msgstr "Please enter the verification code from the SMS message sent to your device:" - -#: src/jade/tabs/login/form.jade:13 -#: src/jade/tabs/security.jade:92 -msgid "Please enter the verification code from the Authy app installed on your device:" -msgstr "Please enter the verification code from the Authy app installed on your device:" - -#: src/jade/tabs/login/form.jade:23 -msgid "Resend" -msgstr "Resend" - -#: src/jade/tabs/login/form.jade:24 -#: src/jade/tabs/security.jade:105 -msgid "Send Via SMS" -msgstr "Send Via SMS" - -#: src/jade/tabs/login/form.jade:30 -msgid "Remember me on this device for 30 days" -msgstr "Remember me on this device for 30 days" +#: src/templates/tabs/login.jade:108 +msgid "New to {{productName}}? {{1:Create an account}}" +msgstr "New to {{productName}}? {{1:Create an account}}" -#: src/jade/tabs/migrate.jade:10 -#: src/jade/tabs/register.jade:17 -#: src/jade/tabs/register.jade:142 -#: src/jade/tabs/register.jade:189 +#: src/templates/tabs/migrate.jade:10 +#: src/templates/tabs/register.jade:16 +#: src/templates/tabs/register.jade:176 +#: src/templates/tabs/register.jade:224 msgid "Migrate" msgstr "Migrate" -#: src/jade/tabs/migrate.jade:11 +#: src/templates/tabs/migrate.jade:11 msgid "To begin migration, enter the name and passphrase used to encrypt your ripple.com/client wallet below. After migration, you will no longer be able to login on ripple.com/client." msgstr "To begin migration, enter the name and passphrase used to encrypt your ripple.com/client wallet below. After migration, you will no longer be able to login on ripple.com/client." -#: src/jade/tabs/migrate.jade:15 +#: src/templates/tabs/migrate.jade:15 msgid "Existing ripple.com/client Wallet name" msgstr "Existing ripple.com/client Wallet name" -#: src/jade/tabs/migrate.jade:18 +#: src/templates/tabs/migrate.jade:20 msgid "Passphrase" msgstr "Passphrase" -#: src/jade/tabs/migrate.jade:31 +#: src/templates/tabs/migrate.jade:35 msgid "Begin Migration" msgstr "Begin Migration" -#: src/jade/tabs/migrate.jade:32 +#: src/templates/tabs/migrate.jade:36 msgid "New to {{productName}}? {{1:Sign Up}}" msgstr "New to {{productName}}? {{1:Sign Up}}" -#: src/jade/tabs/migrate.jade:34 +#: src/templates/tabs/migrate.jade:38 msgid "Have a {{productName}} account? {{1:Log In}}" msgstr "Have a {{productName}} account? {{1:Log In}}" -#: src/jade/tabs/mxn.jade:38 +#: src/templates/tabs/mxn.jade:47 msgid "Mexican Peso Deposit" msgstr "Mexican Peso Deposit" -#: src/jade/tabs/mxn.jade:42 +#: src/templates/tabs/mxn.jade:51 msgid "Bitso (~bitso) {{1}}{{2}}" msgstr "Bitso (~bitso) {{1}}{{2}}" -#: src/jade/tabs/mxn.jade:47 +#: src/templates/tabs/mxn.jade:56 msgid "All countries except the US" msgstr "All countries except the US" -#: src/jade/tabs/mxn.jade:58 +#: src/templates/tabs/mxn.jade:59 +msgid "0%" +msgstr "0%" + +#: src/templates/tabs/mxn.jade:67 msgid "Ripple Trade has partnered with Bitso to provide easy access to MXN (Mexican Peso). By continuing, you agree with Bitso’s terms of service. Following this action will enable Bitso to hold MXN on your behalf." msgstr "Ripple Trade has partnered with Bitso to provide easy access to MXN (Mexican Peso). By continuing, you agree with Bitso’s terms of service. Following this action will enable Bitso to hold MXN on your behalf." -#: src/jade/tabs/mxn.jade:80 +#: src/templates/tabs/mxn.jade:73 +msgid "Add Bitso" +msgstr "Add Bitso" + +#: src/templates/tabs/mxn.jade:92 msgid "TO FUND/REDEEM MEXICAN PESO:" msgstr "TO FUND/REDEEM MEXICAN PESO:" -#: src/jade/tabs/mxn.jade:82 +#: src/templates/tabs/mxn.jade:94 msgid "Register or login at {{1}}to initiate deposits and withdrawals." msgstr "Register or login at {{1}}to initiate deposits and withdrawals." -#: src/jade/tabs/mxn.jade:86 +#: src/templates/tabs/mxn.jade:98 msgid "A valid, non-US, state-issued ID (passport, driver's license, etc)." msgstr "A valid, non-US, state-issued ID (passport, driver's license, etc)." -#: src/jade/tabs/mxn.jade:87 +#: src/templates/tabs/mxn.jade:99 msgid "Proof of address (utility bill or other type of bill that has your address on it). Verification is required for peso deposits or withdrawals." msgstr "Proof of address (utility bill or other type of bill that has your address on it). Verification is required for peso deposits or withdrawals." -#: src/jade/tabs/mxn.jade:89 +#: src/templates/tabs/mxn.jade:101 msgid "To fund your Ripple account, see the below options. Once a balance is deposited with Bitso, you can send it to your Ripple account using the Bitso Dashboard." msgstr "To fund your Ripple account, see the below options. Once a balance is deposited with Bitso, you can send it to your Ripple account using the Bitso Dashboard." -#: src/jade/tabs/mxn.jade:90 +#: src/templates/tabs/mxn.jade:102 msgid "To withdraw from your Ripple account, click on the 'Redeem from Ripple' button on the Bitso Dashboard." msgstr "To withdraw from your Ripple account, click on the 'Redeem from Ripple' button on the Bitso Dashboard." -#: src/jade/tabs/mxn.jade:92 -#: src/jade/tabs/usd.jade:89 -msgid "DEPOSIT OPTIONS" -msgstr "DEPOSIT OPTIONS" - -#: src/jade/tabs/mxn.jade:94 +#: src/templates/tabs/mxn.jade:106 msgid "Bitso accepts deposits by the following methods:" msgstr "Bitso accepts deposits by the following methods:" -#: src/jade/tabs/mxn.jade:96 -#: src/jade/tabs/mxn.jade:106 +#: src/templates/tabs/mxn.jade:108 +#: src/templates/tabs/mxn.jade:118 msgid "Bank Wire" msgstr "Bank Wire" -#: src/jade/tabs/mxn.jade:97 -#: src/jade/tabs/mxn.jade:107 +#: src/templates/tabs/mxn.jade:109 +#: src/templates/tabs/mxn.jade:119 msgid "SPEI (Mexican instant inter-bank transfer)" msgstr "SPEI (Mexican instant inter-bank transfer)" -#: src/jade/tabs/mxn.jade:98 -#: src/jade/tabs/mxn.jade:108 +#: src/templates/tabs/mxn.jade:110 +#: src/templates/tabs/mxn.jade:120 +#: src/templates/tabs/usd.jade:178 +#: src/templates/tabs/usd.jade:188 msgid "Bitcoin" msgstr "Bitcoin" -#: src/jade/tabs/mxn.jade:99 +#: src/templates/tabs/mxn.jade:111 msgid "MXN Cash (at locations across Mexico)" msgstr "MXN Cash (at locations across Mexico)" -#: src/jade/tabs/mxn.jade:100 +#: src/templates/tabs/mxn.jade:112 msgid "Pademobile wallet" msgstr "Pademobile wallet" -#: src/jade/tabs/mxn.jade:102 -#: src/jade/tabs/usd.jade:99 -msgid "WITHDRAWAL OPTIONS" -msgstr "WITHDRAWAL OPTIONS" - -#: src/jade/tabs/mxn.jade:104 +#: src/templates/tabs/mxn.jade:116 msgid "Bitso offers withdrawals via the following methods:" msgstr "Bitso offers withdrawals via the following methods:" -#: src/jade/tabs/recover.jade:11 +#: src/templates/tabs/notifications.jade:7 +msgid "Your notification settings have been changed successfully." +msgstr "Your notification settings have been changed successfully." + +#: src/templates/tabs/notifications.jade:8 +msgid "Something went wrong, please try again later." +msgstr "Something went wrong, please try again later." + +#: src/templates/tabs/notifications.jade:14 +msgid "Notifications settings" +msgstr "Notifications settings" + +#: src/templates/tabs/notifications.jade:17 +msgid "Notification types" +msgstr "Notification types" + +#: src/templates/tabs/notifications.jade:19 +msgid "Email" +msgstr "Email" + +#: src/templates/tabs/notifications.jade:21 +msgid "Push" +msgstr "Push" + +#: src/templates/tabs/recover.jade:12 msgid "You can only recover your Ripple Trade account with a secret key. You will recover the account's Ripple name, contacts and other information." msgstr "You can only recover your Ripple Trade account with a secret key. You will recover the account's Ripple name, contacts and other information." -#: src/jade/tabs/recover.jade:13 -#: src/jade/tabs/recover.jade:33 +#: src/templates/tabs/recover.jade:14 +#: src/templates/tabs/recover.jade:39 msgid "Ripple Name" msgstr "Ripple Name" -#: src/jade/tabs/recover.jade:18 +#: src/templates/tabs/recover.jade:21 msgid "Secret Key" msgstr "Secret Key" -#: src/jade/tabs/recover.jade:21 +#: src/templates/tabs/recover.jade:26 msgid "Unable to recover account." msgstr "Unable to recover account." -#: src/jade/tabs/recover.jade:27 -#: src/jade/tabs/register.jade:95 +#: src/templates/tabs/recover.jade:33 +#: src/templates/tabs/register.jade:125 msgid "Recover Account" msgstr "Recover Account" -#: src/jade/tabs/recover.jade:29 -#: src/jade/tabs/recover.jade:56 +#: src/templates/tabs/recover.jade:35 +#: src/templates/tabs/recover.jade:69 msgid "Set Password" msgstr "Set Password" -#: src/jade/tabs/recover.jade:31 +#: src/templates/tabs/recover.jade:37 msgid "Your account was sucessfully recovered. Please re-encrypt your account with a new password." msgstr "Your account was sucessfully recovered. Please re-encrypt your account with a new password." -#: src/jade/tabs/recover.jade:41 -#: src/jade/tabs/register.jade:62 -#: src/jade/tabs/security.jade:132 +#: src/templates/tabs/recover.jade:50 +#: src/templates/tabs/register.jade:80 +#: src/templates/tabs/security.jade:144 msgid "Your password is weak. It does not contain numbers and symbols or it is too short." msgstr "Your password is weak. It does not contain numbers and symbols or it is too short." -#: src/jade/tabs/recover.jade:43 -#: src/jade/tabs/register.jade:65 -#: src/jade/tabs/security.jade:134 +#: src/templates/tabs/recover.jade:52 +#: src/templates/tabs/register.jade:83 +#: src/templates/tabs/security.jade:146 msgid "Your Ripple name and password cannot match. Please create a new password." msgstr "Your Ripple name and password cannot match. Please create a new password." -#: src/jade/tabs/recover.jade:45 -#: src/jade/tabs/register.jade:67 -#: src/jade/tabs/security.jade:136 +#: src/templates/tabs/recover.jade:54 +#: src/templates/tabs/register.jade:85 +#: src/templates/tabs/security.jade:148 msgid "Confirm password" msgstr "Confirm password" -#: src/jade/tabs/recover.jade:48 -#: src/jade/tabs/register.jade:71 -#: src/jade/tabs/security.jade:139 +#: src/templates/tabs/recover.jade:60 +#: src/templates/tabs/register.jade:94 +#: src/templates/tabs/security.jade:155 msgid "Passwords do not match" msgstr "Passwords do not match" -#: src/jade/tabs/recover.jade:50 +#: src/templates/tabs/recover.jade:62 msgid "Unable to change your account password." msgstr "Unable to change your account password." -#: src/jade/tabs/recover.jade:55 +#: src/templates/tabs/recover.jade:68 msgid "Updating..." msgstr "Updating..." -#: src/jade/tabs/recover.jade:57 +#: src/templates/tabs/recover.jade:70 msgid "Remember your password? {{1:Log In}}" msgstr "Remember your password? {{1:Log In}}" -#: src/jade/tabs/register.jade:13 -#: src/jade/tabs/register.jade:109 -#: src/jade/tabs/register.jade:141 -#: src/jade/tabs/register.jade:188 +#: src/templates/tabs/register.jade:11 +#: src/templates/tabs/register.jade:143 +#: src/templates/tabs/register.jade:175 +#: src/templates/tabs/register.jade:223 msgid "Sign Up" msgstr "Sign Up" -#: src/jade/tabs/register.jade:19 -#: src/jade/tabs/register.jade:21 -#: src/jade/tabs/register.jade:23 -#: src/jade/tabs/register.jade:146 -#: src/jade/tabs/register.jade:148 -#: src/jade/tabs/register.jade:191 -#: src/jade/tabs/register.jade:193 -#: src/jade/tabs/register.jade:195 +#: src/templates/tabs/register.jade:18 +#: src/templates/tabs/register.jade:20 +#: src/templates/tabs/register.jade:22 +#: src/templates/tabs/register.jade:180 +#: src/templates/tabs/register.jade:182 +#: src/templates/tabs/register.jade:226 +#: src/templates/tabs/register.jade:228 +#: src/templates/tabs/register.jade:230 msgid "Step {{1}}" msgstr "Step {{1}}" -#: src/jade/tabs/register.jade:26 +#: src/templates/tabs/register.jade:25 msgid "Create Ripple name" msgstr "Create Ripple name" -#: src/jade/tabs/register.jade:27 +#: src/templates/tabs/register.jade:26 +msgid ""Ripple names are public and identify you on the Ripple network. Learn more"" +msgstr ""Ripple names are public and identify you on the Ripple network. Learn more"" + +#: src/templates/tabs/register.jade:31 msgid "Please choose a Ripple name below. You will use this Ripple name to login to Ripple Trade, so remember it! Ripple names are unique and public, like your current Ripple address. {{1}}" msgstr "Please choose a Ripple name below. You will use this Ripple name to login to Ripple Trade, so remember it! Ripple names are unique and public, like your current Ripple address. {{1}}" -#: src/jade/tabs/register.jade:28 +#: src/templates/tabs/register.jade:32 msgid "Learn More" msgstr "Learn More" -#: src/jade/tabs/register.jade:41 +#: src/templates/tabs/register.jade:43 +#: src/templates/tabs/account/public.jade:21 +#: src/templates/tabs/widgets/balances.jade:40 +msgid "Available" +msgstr "Available" + +#: src/templates/tabs/register.jade:47 +#: src/templates/tabs/account/public.jade:24 +msgid "Already taken!" +msgstr "Already taken!" + +#: src/templates/tabs/register.jade:49 msgid "Reserved for {{usernameReservedFor}}" msgstr "Reserved for {{usernameReservedFor}}" -#: src/jade/tabs/register.jade:43 -msgid "This name belongs to a high-traffic website and has been reserved to prevent phishing." -msgstr "This name belongs to a high-traffic website and has been reserved to prevent phishing." +#: src/templates/tabs/register.jade:51 +msgid ""This name belongs to a high-traffic website and has been reserved to prevent phishing."" +msgstr ""This name belongs to a high-traffic website and has been reserved to prevent phishing."" + +#: src/templates/tabs/register.jade:59 +#: src/templates/tabs/account/public.jade:34 +msgid "Must be at least 2 characters" +msgstr "Must be at least 2 characters" + +#: src/templates/tabs/register.jade:61 +#: src/templates/tabs/account/public.jade:35 +msgid "Must be at most 20 characters" +msgstr "Must be at most 20 characters" -#: src/jade/tabs/register.jade:49 +#: src/templates/tabs/register.jade:63 msgid "You can only use the following characters: a-z, 0-9 and hyphens (-)" msgstr "You can only use the following characters: a-z, 0-9 and hyphens (-)" -#: src/jade/tabs/register.jade:55 +#: src/templates/tabs/register.jade:65 +#: src/templates/tabs/account/public.jade:37 +msgid "Cannot start with hyphen (-)" +msgstr "Cannot start with hyphen (-)" + +#: src/templates/tabs/register.jade:67 +#: src/templates/tabs/account/public.jade:38 +msgid "Cannot end with hyphen (-)" +msgstr "Cannot end with hyphen (-)" + +#: src/templates/tabs/register.jade:69 msgid "Cannot use hyphens in a row (--)" msgstr "Cannot use hyphens in a row (--)" -#: src/jade/tabs/register.jade:80 +#: src/templates/tabs/register.jade:70 +#: src/templates/tabs/account/public.jade:40 +msgid "Checking..." +msgstr "Checking..." + +#: src/templates/tabs/register.jade:105 msgid "Email address is invalid" msgstr "Email address is invalid" -#: src/jade/tabs/register.jade:82 -#: src/jade/tabs/security.jade:151 +#: src/templates/tabs/register.jade:108 +#: src/templates/tabs/security.jade:168 msgid "Secret key" msgstr "Secret key" -#: src/jade/tabs/register.jade:83 -#: src/jade/tabs/send.jade:43 -#: src/jade/tabs/trade.jade:441 +#: src/templates/tabs/register.jade:109 +#: src/templates/tabs/send.jade:67 msgid "hide" msgstr "hide" -#: src/jade/tabs/register.jade:88 +#: src/templates/tabs/register.jade:118 msgid "Secret Account Key is invalid" msgstr "Secret Account Key is invalid" -#: src/jade/tabs/register.jade:90 -msgid "The account ~{{1}}{{2}} has already been created using this secret key." -msgstr "The account ~{{1}}{{2}} has already been created using this secret key." +#: src/templates/tabs/register.jade:120 +msgid "The account ~ {{1}} span ({{ masterkeyAddress }}) has already been created using this secret key." +msgstr "The account ~ {{1}} span ({{ masterkeyAddress }}) has already been created using this secret key." -#: src/jade/tabs/register.jade:98 +#: src/templates/tabs/register.jade:128 msgid "I agree to the {{productName}} {{1:Terms of Use}}" msgstr "I agree to the {{productName}} {{1:Terms of Use}}" -#: src/jade/tabs/register.jade:101 +#: src/templates/tabs/register.jade:133 msgid "Please see our {{1}} to see how we collect, use and share information about you" msgstr "Please see our {{1}} to see how we collect, use and share information about you" -#: src/jade/tabs/register.jade:110 +#: src/templates/tabs/register.jade:144 msgid "Migrate Account" msgstr "Migrate Account" -#: src/jade/tabs/register.jade:111 +#: src/templates/tabs/register.jade:145 msgid "Need to use your secret key? {{1}}" msgstr "Need to use your secret key? {{1}}" -#: src/jade/tabs/register.jade:113 +#: src/templates/tabs/register.jade:147 msgid "Use key" msgstr "Use key" -#: src/jade/tabs/register.jade:121 +#: src/templates/tabs/register.jade:155 msgid "An error occurred during registration. Please try again later." msgstr "An error occurred during registration. Please try again later." -#: src/jade/tabs/register.jade:122 +#: src/templates/tabs/register.jade:156 msgid "The reported error was: {{1}}" msgstr "The reported error was: {{1}}" -#: src/jade/tabs/register.jade:131 +#: src/templates/tabs/register.jade:165 msgid "There is already a wallet using this username, please choose a different username and try again." msgstr "There is already a wallet using this username, please choose a different username and try again." -#: src/jade/tabs/register.jade:150 +#: src/templates/tabs/register.jade:184 msgid "By proceeding, you understand that Ripple Trade does not provide a password or secret key recovery mechanism. If you forget your Ripple name/password and secret key, you will be unable to access this Ripple account." msgstr "By proceeding, you understand that Ripple Trade does not provide a password or secret key recovery mechanism. If you forget your Ripple name/password and secret key, you will be unable to access this Ripple account." -#: src/jade/tabs/register.jade:155 +#: src/templates/tabs/register.jade:189 msgid "You are now migrating your account- meaning you'll no longer be able to access your account from ripple.com/client. You will retain all of your balances, contacts, and account history. Your account will use the same secret key as before. If you have already saved your secret key, please continue your migration." msgstr "You are now migrating your account- meaning you'll no longer be able to access your account from ripple.com/client. You will retain all of your balances, contacts, and account history. Your account will use the same secret key as before. If you have already saved your secret key, please continue your migration." -#: src/jade/tabs/register.jade:162 +#: src/templates/tabs/register.jade:196 msgid "The secret key unlocks access to all your account funds in the event you lose your Ripple name or password. Please write it down and store it somewhere private and safe. {{1:Read more}} about keys and wallet safety." msgstr "The secret key unlocks access to all your account funds in the event you lose your Ripple name or password. Please write it down and store it somewhere private and safe. {{1:Read more}} about keys and wallet safety." -#: src/jade/tabs/register.jade:167 +#: src/templates/tabs/register.jade:202 msgid "If you have not saved your secret key, please write it down and store it somewhere private and safe. In the event you lose your Ripple name or password, you can use this secret key to recover your funds." msgstr "If you have not saved your secret key, please write it down and store it somewhere private and safe. In the event you lose your Ripple name or password, you can use this secret key to recover your funds." -#: src/jade/tabs/register.jade:176 +#: src/templates/tabs/register.jade:211 msgid "Show secret key" msgstr "Show secret key" -#: src/jade/tabs/register.jade:177 +#: src/templates/tabs/register.jade:212 msgid "Hide secret key" msgstr "Hide secret key" -#: src/jade/tabs/register.jade:180 +#: src/templates/tabs/register.jade:215 msgid "Continue to email verification" msgstr "Continue to email verification" -#: src/jade/tabs/register.jade:197 +#: src/templates/tabs/register.jade:232 msgid "We’ve sent an email to {{1}}. To complete registration, click the link in the email." msgstr "We’ve sent an email to {{1}}. To complete registration, click the link in the email." -#: src/jade/tabs/register.jade:200 +#: src/templates/tabs/register.jade:235 msgid "Email token has been resent." msgstr "Email token has been resent." -#: src/jade/tabs/register.jade:203 +#: src/templates/tabs/register.jade:238 msgid "Email Address:" msgstr "Email Address:" -#: src/jade/tabs/register.jade:210 +#: src/templates/tabs/register.jade:247 msgid "Re-send Email" msgstr "Re-send Email" -#: src/jade/tabs/security.jade:7 +#: src/templates/tabs/security.jade:7 msgid "Active Session Timeout" msgstr "Active Session Timeout" -#: src/jade/tabs/security.jade:8 +#: src/templates/tabs/security.jade:8 msgid "To view or edit your security settings, you must currently have an active session." msgstr "To view or edit your security settings, you must currently have an active session." -#: src/jade/tabs/security.jade:16 +#: src/templates/tabs/security.jade:17 msgid "Restore Session" msgstr "Restore Session" -#: src/jade/tabs/security.jade:25 +#: src/templates/tabs/security.jade:19 +#: src/templates/tabs/security.jade:28 +#: src/templates/tabs/account/public.jade:46 +msgid "Entered password is wrong." +msgstr "Entered password is wrong." + +#: src/templates/tabs/security.jade:30 msgid "Your Ripple password has been changed, please login again" msgstr "Your Ripple password has been changed, please login again" -#: src/jade/tabs/security.jade:27 +#: src/templates/tabs/security.jade:32 msgid "Couldn't change your Ripple password, please try again later." msgstr "Couldn't change your Ripple password, please try again later." -#: src/jade/tabs/security.jade:30 +#: src/templates/tabs/security.jade:35 msgid "Changing your Ripple password..." msgstr "Changing your Ripple password..." -#: src/jade/tabs/security.jade:31 +#: src/templates/tabs/security.jade:36 msgid "Your Ripple password has been changed successfully." msgstr "Your Ripple password has been changed successfully." -#: src/jade/tabs/security.jade:32 +#: src/templates/tabs/security.jade:37 msgid "Unable to load Two-factor authentication settings." msgstr "Unable to load Two-factor authentication settings." -#: src/jade/tabs/security.jade:33 +#: src/templates/tabs/security.jade:38 msgid "Error saving Two-factor authentication settings." msgstr "Error saving Two-factor authentication settings." -#: src/jade/tabs/security.jade:34 +#: src/templates/tabs/security.jade:39 msgid "The verification code is invalid." msgstr "The verification code is invalid." -#: src/jade/tabs/security.jade:36 +#: src/templates/tabs/security.jade:41 msgid "Two-factor authentication has been successfully enabled." msgstr "Two-factor authentication has been successfully enabled." -#: src/jade/tabs/security.jade:37 +#: src/templates/tabs/security.jade:42 msgid "Two-factor authentication has been successfully disabled." msgstr "Two-factor authentication has been successfully disabled." -#: src/jade/tabs/security.jade:38 +#: src/templates/tabs/security.jade:43 msgid "Password protection has been successfully enabled." msgstr "Password protection has been successfully enabled." -#: src/jade/tabs/security.jade:39 +#: src/templates/tabs/security.jade:44 msgid "Password protection has been successfully disabled." msgstr "Password protection has been successfully disabled." -#: src/jade/tabs/security.jade:45 +#: src/templates/tabs/security.jade:50 msgid "Security settings" msgstr "Security settings" -#: src/jade/tabs/security.jade:51 +#: src/templates/tabs/security.jade:56 msgid "Loading Two-factor authentication settings..." msgstr "Loading Two-factor authentication settings..." -#: src/jade/tabs/security.jade:55 +#: src/templates/tabs/security.jade:60 +#: src/templates/tabs/settingsgateway.jade:73 msgid "Enabled" msgstr "Enabled" -#: src/jade/tabs/security.jade:56 +#: src/templates/tabs/security.jade:61 +#: src/templates/tabs/settingsgateway.jade:74 msgid "Disabled" msgstr "Disabled" -#: src/jade/tabs/security.jade:58 +#: src/templates/tabs/security.jade:63 msgid "disable" msgstr "disable" -#: src/jade/tabs/security.jade:60 +#: src/templates/tabs/security.jade:65 msgid "enable" msgstr "enable" -#: src/jade/tabs/security.jade:66 +#: src/templates/tabs/security.jade:71 msgid "Authy is providing two-factor authentication for Ripple Trade. To enable two-factor authentication, you must share some information with Authy." msgstr "Authy is providing two-factor authentication for Ripple Trade. To enable two-factor authentication, you must share some information with Authy." -#: src/jade/tabs/security.jade:69 +#: src/templates/tabs/security.jade:74 msgid "- Your email address:" msgstr "- Your email address:" -#: src/jade/tabs/security.jade:72 +#: src/templates/tabs/security.jade:77 msgid "- Your phone number:" msgstr "- Your phone number:" -#: src/jade/tabs/security.jade:74 +#: src/templates/tabs/security.jade:79 msgid "By proceeding, you agree to the Authy {{1: terms of service.}}" msgstr "By proceeding, you agree to the Authy {{1: terms of service.}}" -#: src/jade/tabs/security.jade:78 +#: src/templates/tabs/security.jade:83 msgid "Share" msgstr "Share" -#: src/jade/tabs/security.jade:84 +#: src/templates/tabs/security.jade:90 msgid "Saving settings..." msgstr "Saving settings..." -#: src/jade/tabs/security.jade:85 +#: src/templates/tabs/security.jade:91 msgid "Disabling Two-factor authentication..." msgstr "Disabling Two-factor authentication..." -#: src/jade/tabs/security.jade:86 +#: src/templates/tabs/security.jade:92 msgid "Enabling Two-factor authentication..." msgstr "Enabling Two-factor authentication..." -#: src/jade/tabs/security.jade:104 +#: src/templates/tabs/security.jade:97 +#: src/templates/tabs/login/form.jade:13 +msgid "Please enter the verification code from the SMS message sent to your device:" +msgstr "Please enter the verification code from the SMS message sent to your device:" + +#: src/templates/tabs/security.jade:98 +#: src/templates/tabs/login/form.jade:14 +msgid "Please enter the verification code from the Authy app installed on your device:" +msgstr "Please enter the verification code from the Authy app installed on your device:" + +#: src/templates/tabs/security.jade:111 msgid "Resend Code" msgstr "Resend Code" -#: src/jade/tabs/security.jade:110 +#: src/templates/tabs/security.jade:112 +#: src/templates/tabs/login/form.jade:19 +msgid "Send Via SMS" +msgstr "Send Via SMS" + +#: src/templates/tabs/security.jade:117 +#: src/templates/tabs/settingsgateway.jade:87 msgid "Enable" msgstr "Enable" -#: src/jade/tabs/security.jade:114 +#: src/templates/tabs/security.jade:121 msgid "Ripple password" msgstr "Ripple password" -#: src/jade/tabs/security.jade:129 +#: src/templates/tabs/security.jade:134 +#: src/templates/tabs/account/public.jade:42 +msgid "Current password" +msgstr "Current password" + +#: src/templates/tabs/security.jade:138 msgid "New password" msgstr "New password" -#: src/jade/tabs/security.jade:153 +#: src/templates/tabs/security.jade:170 msgid "Your secret key unlocks access to your account funds. Please write it down and store it somewhere private and safe. In the event you lose your Ripple name or password, you can use this secret key to recover your funds." msgstr "Your secret key unlocks access to your account funds. Please write it down and store it somewhere private and safe. In the event you lose your Ripple name or password, you can use this secret key to recover your funds." -#: src/jade/tabs/security.jade:165 +#: src/templates/tabs/security.jade:182 msgid "Password protection for transactions" msgstr "Password protection for transactions" -#: src/jade/tabs/security.jade:168 +#: src/templates/tabs/security.jade:185 msgid "If you turn off password requests, you’ll still need to enter your password after each page refresh." msgstr "If you turn off password requests, you’ll still need to enter your password after each page refresh." -#: src/jade/tabs/security.jade:176 +#: src/templates/tabs/security.jade:193 msgid "Yes" msgstr "Yes" -#: src/jade/tabs/security.jade:177 +#: src/templates/tabs/security.jade:194 msgid "No" msgstr "No" -#: src/jade/tabs/security.jade:192 +#: src/templates/tabs/security.jade:210 msgid "Delete Ripple Trade account" msgstr "Delete Ripple Trade account" -#: src/jade/tabs/security.jade:194 +#: src/templates/tabs/security.jade:212 msgid "This deletes your Ripple Trade account. You will no longer be able to login to Ripple Trade and your account data will be deleted. However, you can still access your funds using your secret key." msgstr "This deletes your Ripple Trade account. You will no longer be able to login to Ripple Trade and your account data will be deleted. However, you can still access your funds using your secret key." -#: src/jade/tabs/send.jade:12 -msgid "You have to be funded before you can send money" +#: src/templates/tabs/send.jade:17 +msgid ""err-you-must-be-funded-before-you-can-send-money"" msgstr "You have to be funded before you can send money" -#: src/jade/tabs/send.jade:25 +#: src/templates/tabs/send.jade:36 msgid "Recipient" msgstr "Recipient" -#: src/jade/tabs/send.jade:30 +#: src/templates/tabs/send.jade:49 msgid "Please enter a recipient." msgstr "Please enter a recipient." -#: src/jade/tabs/send.jade:32 +#: src/templates/tabs/send.jade:51 msgid "Recipient should be a Ripple name, a contact, or Ripple/Bitcoin address." msgstr "Recipient should be a Ripple name, a contact, or Ripple/Bitcoin address." -#: src/jade/tabs/send.jade:34 +#: src/templates/tabs/send.jade:53 msgid "This email address is not Ripple-enabled." msgstr "This email address is not Ripple-enabled." -#: src/jade/tabs/send.jade:38 +#: src/templates/tabs/send.jade:55 +msgid "Could not contact {{send.federationURL}}.
Please try again later or contact support." +msgstr "Could not contact {{send.federationURL}}.
Please try again later or contact support." + +#: src/templates/tabs/send.jade:57 +msgid "Cannot use your specified bitcoin bridge. Please go to Settings > Advanced and update your bitcoin bridge URL to btc2ripple.com." +msgstr "Cannot use your specified bitcoin bridge. Please go to Settings > Advanced and update your bitcoin bridge URL to btc2ripple.com." + +#: src/templates/tabs/send.jade:61 msgid "Show destination tag" msgstr "Show destination tag" -#: src/jade/tabs/send.jade:47 +#: src/templates/tabs/send.jade:76 msgid "Destination cannot be blank." msgstr "Destination cannot be blank." -#: src/jade/tabs/send.jade:48 -msgid "Recipient requires a destination tag to be specified for the transaction. If you don't know the destination tag, please contact them before doing a transaction." -msgstr "Recipient requires a destination tag to be specified for the transaction. If you don't know the destination tag, please contact them before doing a transaction." +#: src/templates/tabs/send.jade:77 +msgid "This recipient requires a destination tag. Please contact the recipient if you are unsure what the destination tag should be." +msgstr "This recipient requires a destination tag. Please contact the recipient if you are unsure what the destination tag should be." -#: src/jade/tabs/send.jade:53 +#: src/templates/tabs/send.jade:82 msgid "Source tag" msgstr "Source tag" -#: src/jade/tabs/send.jade:56 +#: src/templates/tabs/send.jade:89 msgid "Invalid source tag" msgstr "Invalid source tag" -#: src/jade/tabs/send.jade:59 +#: src/templates/tabs/send.jade:92 msgid "Invoice ID" msgstr "Invoice ID" -#: src/jade/tabs/send.jade:62 +#: src/templates/tabs/send.jade:99 msgid "Invoice ID must not be more than 64 characters long." msgstr "Invoice ID must not be more than 64 characters long." -#: src/jade/tabs/send.jade:77 +#: src/templates/tabs/send.jade:120 msgid "Recipient will receive" msgstr "Recipient will receive" -#: src/jade/tabs/send.jade:88 +#: src/templates/tabs/send.jade:160 +msgid "The minimum BTC transaction size is .001 BTC. {{1:More info}}" +msgstr "The minimum BTC transaction size is .001 BTC. {{1:More info}}" + +#: src/templates/tabs/send.jade:164 msgid "{{send.recipient | rpcontactname}} can't receive this currency." msgstr "{{send.recipient | rpcontactname}} can't receive this currency." -#: src/jade/tabs/send.jade:92 -#: src/jade/tabs/trust.jade:102 +#: src/templates/tabs/send.jade:168 +#: src/templates/tabs/trust.jade:132 msgid "Amount must be greater than zero." msgstr "Amount must be greater than zero." -#: src/jade/tabs/send.jade:93 +#: src/templates/tabs/send.jade:169 msgid "You are either trying to send too little or too much XRP.Minimum amount is 0.000001 XRP and maximum amount is 100 billion XRP." msgstr "You are either trying to send too little or too much XRP.Minimum amount is 0.000001 XRP and maximum amount is 100 billion XRP." -#: src/jade/tabs/send.jade:97 +#: src/templates/tabs/send.jade:173 msgid "Recipient does not allow XRP payments. Are you sure you want to send XRP anyway?" msgstr "Recipient does not allow XRP payments. Are you sure you want to send XRP anyway?" -#: src/jade/tabs/send.jade:99 +#: src/templates/tabs/send.jade:175 msgid "{{send.recipient | rpcontactname}}trusts you for {{send.trust_limit | rpamount}} {{send.trust_limit | rpcurrency}}." msgstr "{{send.recipient | rpcontactname}}trusts you for {{send.trust_limit | rpamount}} {{send.trust_limit | rpcurrency}}." -#: src/jade/tabs/send.jade:103 +#: src/templates/tabs/send.jade:179 msgid "Send XRP" msgstr "Send XRP" -#: src/jade/tabs/send.jade:107 -msgid "Destination account is unfunded; send at least {{send.xrp_deficiency | rpamount}} XRP to fund it.{{1}}" -msgstr "Destination account is unfunded; send at least {{send.xrp_deficiency | rpamount}} XRP to fund it.{{1}}" +#: src/templates/tabs/send.jade:184 +msgid "Insufficient amount. You need to send at least 20 XRP to fund the account." +msgstr "Insufficient amount. You need to send at least 20 XRP to fund the account." -#: src/jade/tabs/send.jade:114 +#: src/templates/tabs/send.jade:188 msgid "Checking" msgstr "Checking" -#: src/jade/tabs/send.jade:117 +#: src/templates/tabs/send.jade:191 msgid "Analyzing address" msgstr "Analyzing address" -#: src/jade/tabs/send.jade:120 +#: src/templates/tabs/send.jade:194 msgid "Scanning accepted currencies" msgstr "Scanning accepted currencies" -#: src/jade/tabs/send.jade:123 +#: src/templates/tabs/send.jade:197 msgid "Requesting quote" msgstr "Requesting quote" -#: src/jade/tabs/send.jade:126 +#: src/templates/tabs/send.jade:200 msgid "Calculating paths" msgstr "Calculating paths" -#: src/jade/tabs/send.jade:129 +#: src/templates/tabs/send.jade:203 msgid "Calculating alternatives" msgstr "Calculating alternatives" -#: src/jade/tabs/send.jade:130 +#: src/templates/tabs/send.jade:204 msgid "You cannot send {{send.amount}} {{send.currency}} to {{send.recipient}}. Either your account has insufficient funds, or {{send.recipient}} doesn't accept {{send.currency}}." msgstr "You cannot send {{send.amount}} {{send.currency}} to {{send.recipient}}. Either your account has insufficient funds, or {{send.recipient}} doesn't accept {{send.currency}}." -#: src/jade/tabs/send.jade:134 +#: src/templates/tabs/send.jade:208 msgid "You cannot send {{send.amount}} {{send.currency}} to{{send.recipient}}. Your account has insufficient funds." msgstr "You cannot send {{send.amount}} {{send.currency}} to{{send.recipient}}. Your account has insufficient funds." -#: src/jade/tabs/send.jade:137 +#: src/templates/tabs/send.jade:211 msgid "There are no valid currency choices for this destination." msgstr "There are no valid currency choices for this destination." -#: src/jade/tabs/send.jade:139 +#: src/templates/tabs/send.jade:213 msgid "Error while retrieving quote for outbound payment. {{1}}" msgstr "Error while retrieving quote for outbound payment. {{1}}" -#: src/jade/tabs/send.jade:148 +#: src/templates/tabs/send.jade:216 +msgid "Error while calculating path" +msgstr "Error while calculating path" + +#: src/templates/tabs/send.jade:222 msgid "You can send" msgstr "You can send" -#: src/jade/tabs/send.jade:150 +#: src/templates/tabs/send.jade:224 msgid "Or you can send" msgstr "Or you can send" -#: src/jade/tabs/send.jade:164 +#: src/templates/tabs/send.jade:242 msgid "Send {{ alt.amount | rpcurrency }} {{1}}" msgstr "Send {{ alt.amount | rpcurrency }} {{1}}" -#: src/jade/tabs/send.jade:181 +#: src/templates/tabs/send.jade:252 +msgid "Paths last updated {{1}} {{2: seconds}} {{3: second}} ago" +msgstr "Paths last updated {{1}} {{2: seconds}} {{3: second}} ago" + +#: src/templates/tabs/send.jade:263 msgid "Ripple is calculating a path for your payment." msgstr "Ripple is calculating a path for your payment." -#: src/jade/tabs/send.jade:186 +#: src/templates/tabs/send.jade:268 msgid "You are sending {{1}} to" msgstr "You are sending {{1}} to" -#: src/jade/tabs/send.jade:194 +#: src/templates/tabs/send.jade:275 msgid "Destination tag: {{send.dt}}" msgstr "Destination tag: {{send.dt}}" -#: src/jade/tabs/send.jade:195 +#: src/templates/tabs/send.jade:276 msgid "They will receive" msgstr "They will receive" -#: src/jade/tabs/send.jade:198 +#: src/templates/tabs/send.jade:279 msgid "You will pay at most" msgstr "You will pay at most" -#: src/jade/tabs/send.jade:204 +#: src/templates/tabs/send.jade:285 +msgid "Exchange rate:" +msgstr "Exchange rate:" + +#: src/templates/tabs/send.jade:288 +msgid "Ripple network fee:" +msgstr "Ripple network fee:" + +#: src/templates/tabs/send.jade:291 msgid "Are you sure?" msgstr "Are you sure?" -#: src/jade/tabs/send.jade:210 +#: src/templates/tabs/send.jade:301 msgid "Password required to unlock wallet" msgstr "Password required to unlock wallet" -#: src/jade/tabs/send.jade:234 -#: src/jade/tabs/send.jade:266 +#: src/templates/tabs/send.jade:333 +#: src/templates/tabs/send.jade:372 msgid "Contact saved!" msgstr "Contact saved!" -#: src/jade/tabs/send.jade:236 -#: src/jade/tabs/send.jade:268 +#: src/templates/tabs/send.jade:335 +#: src/templates/tabs/send.jade:374 msgid "Add this address to contacts" msgstr "Add this address to contacts" -#: src/jade/tabs/send.jade:242 -#: src/jade/tabs/send.jade:274 +#: src/templates/tabs/send.jade:343 +#: src/templates/tabs/send.jade:382 msgid "Name this user" msgstr "Name this user" -#: src/jade/tabs/send.jade:246 -#: src/jade/tabs/send.jade:278 +#: src/templates/tabs/send.jade:352 +#: src/templates/tabs/send.jade:391 msgid "This contact already exists, please choose another name." msgstr "This contact already exists, please choose another name." -#: src/jade/tabs/send.jade:250 -#: src/jade/tabs/send.jade:283 -#: src/jade/tabs/trust.jade:233 +#: src/templates/tabs/send.jade:356 +#: src/templates/tabs/send.jade:397 +#: src/templates/tabs/trust.jade:340 +#: src/templates/tabs/trust.jade:353 msgid "Saving..." msgstr "Saving..." -#: src/jade/tabs/send.jade:255 -#: src/jade/tabs/send.jade:289 +#: src/templates/tabs/send.jade:361 +#: src/templates/tabs/send.jade:403 msgid "Send another payment" msgstr "Send another payment" -#: src/jade/tabs/settings/navbar.jade:2 -msgid "Security" -msgstr "Security" +#: src/templates/tabs/settingsgateway.jade:8 +msgid "Your bitcoin bridge has been changed successfully." +msgstr "Your bitcoin bridge has been changed successfully." + +#: src/templates/tabs/settingsgateway.jade:9 +msgid "Trustline advanced settings have been changed successfully." +msgstr "Trustline advanced settings have been changed successfully." + +#: src/templates/tabs/settingsgateway.jade:10 +msgid "Updating DefaultRipple flag..." +msgstr "Updating DefaultRipple flag..." + +#: src/templates/tabs/settingsgateway.jade:11 +msgid "DefaultRipple flag updated" +msgstr "DefaultRipple flag updated" + +#: src/templates/tabs/settingsgateway.jade:44 +msgid "Trust line" +msgstr "Trust line" -#: src/jade/tabs/settingstrade.jade:12 +#: src/templates/tabs/settingsgateway.jade:47 +#: src/templates/tabs/settingsgateway.jade:55 +msgid "Advanced settings" +msgstr "Advanced settings" + +#: src/templates/tabs/settingsgateway.jade:68 +msgid "Gateways: Enable if you plan to issue balances" +msgstr "Gateways: Enable if you plan to issue balances" + +#: src/templates/tabs/settingsgateway.jade:71 +#: src/templates/tabs/settingsgateway.jade:81 +msgid "DefaultRipple flag" +msgstr "DefaultRipple flag" + +#: src/templates/tabs/settingstrade.jade:16 msgid "Trade settings" msgstr "Trade settings" -#: src/jade/tabs/settingstrade.jade:14 +#: src/templates/tabs/settingstrade.jade:18 msgid "Trade currency pairs" msgstr "Trade currency pairs" -#: src/jade/tabs/trade.jade:12 -#: src/jade/tabs/trade.jade:451 +#: src/templates/tabs/settingstrade.jade:19 +msgid "No trade pairs in this account. To add a pair, go to the {{1:Trade > Advanced }}section." +msgstr "No trade pairs in this account. To add a pair, go to the {{1:Trade > Advanced }}section." + +#: src/templates/tabs/sgd.jade:44 +msgid "Singapore Dollar Deposit" +msgstr "Singapore Dollar Deposit" + +#: src/templates/tabs/sgd.jade:48 +msgid "Ripple Singapore (~ripplesingapore){{1}}{{2}}" +msgstr "Ripple Singapore (~ripplesingapore){{1}}{{2}}" + +#: src/templates/tabs/sgd.jade:54 +msgid "All countries except US sanctioned countries" +msgstr "All countries except US sanctioned countries" + +#: src/templates/tabs/sgd.jade:58 +msgid "Between S$ 5 - 50" +msgstr "Between S$ 5 - 50" + +#: src/templates/tabs/sgd.jade:68 +msgid "Ripple Trade has partnered with Ripple Singapore to provide easier access to SGD. Following this action will enable Ripple Singapore to hold SGD on your behalf." +msgstr "Ripple Trade has partnered with Ripple Singapore to provide easier access to SGD. Following this action will enable Ripple Singapore to hold SGD on your behalf." + +#: src/templates/tabs/sgd.jade:72 +msgid "Add Ripple Singapore" +msgstr "Add Ripple Singapore" + +#: src/templates/tabs/sgd.jade:92 +msgid "To Initiate Singapore Dollar Deposits and Withdrawals" +msgstr "To Initiate Singapore Dollar Deposits and Withdrawals" + +#: src/templates/tabs/sgd.jade:93 +msgid "Register or login to your Ripple Singapore account. You will need: {{1}}" +msgstr "Register or login to your Ripple Singapore account. You will need: {{1}}" + +#: src/templates/tabs/sgd.jade:97 +msgid "A valid non-US, government-issued ID (passport, driver’s license, etc)" +msgstr "A valid non-US, government-issued ID (passport, driver’s license, etc)" + +#: src/templates/tabs/sgd.jade:99 +msgid "Proof of address" +msgstr "Proof of address" + +#: src/templates/tabs/sgd.jade:101 +msgid "Verification is required for deposits or withdrawals" +msgstr "Verification is required for deposits or withdrawals" + +#: src/templates/tabs/sgd.jade:103 +msgid "Deposit Options" +msgstr "Deposit Options" + +#: src/templates/tabs/sgd.jade:107 +msgid "Users can deposit SGD by entering bank credentials and initiating a bank wire transfer from user’s bank account to Ripple Singapore." +msgstr "Users can deposit SGD by entering bank credentials and initiating a bank wire transfer from user’s bank account to Ripple Singapore." + +#: src/templates/tabs/sgd.jade:109 +msgid "Withdrawal Options" +msgstr "Withdrawal Options" + +#: src/templates/tabs/sgd.jade:113 +msgid "Users can withdraw SGD by sending funds from their Ripple address to Ripple Singapore’s Ripple address. Ripple Singapore will send the funds to a user’s bank account using a bank wire transfer." +msgstr "Users can withdraw SGD by sending funds from their Ripple address to Ripple Singapore’s Ripple address. Ripple Singapore will send the funds to a user’s bank account using a bank wire transfer." + +#: src/templates/tabs/trade.jade:12 +#: src/templates/tabs/trade.jade:606 msgid "Loading Order Book" msgstr "Loading Order Book" -#: src/jade/tabs/trade.jade:31 -#: src/jade/tabs/widgets/markets.jade:24 +#: src/templates/tabs/trade.jade:39 +#: src/templates/tabs/widgets/markets.jade:43 msgid "flip" msgstr "flip" -#: src/jade/tabs/trade.jade:34 +#: src/templates/tabs/trade.jade:43 msgid "add pair" msgstr "add pair" -#: src/jade/tabs/trade.jade:37 +#: src/templates/tabs/trade.jade:47 msgid "edit pairs" msgstr "edit pairs" -#: src/jade/tabs/trade.jade:41 +#: src/templates/tabs/trade.jade:51 msgid "Base Currency" msgstr "Base Currency" -#: src/jade/tabs/trade.jade:44 +#: src/templates/tabs/trade.jade:57 msgid "Base Gateway" msgstr "Base Gateway" -#: src/jade/tabs/trade.jade:49 +#: src/templates/tabs/trade.jade:66 msgid "Counter Currency" msgstr "Counter Currency" -#: src/jade/tabs/trade.jade:52 +#: src/templates/tabs/trade.jade:72 msgid "Counter Gateway" msgstr "Counter Gateway" -#: src/jade/tabs/trade.jade:57 +#: src/templates/tabs/trade.jade:81 msgid "Add" msgstr "Add" -#: src/jade/tabs/trade.jade:60 +#: src/templates/tabs/trade.jade:84 msgid "Base currency issuer ({{order.first_currency | rpcurrency}})" msgstr "Base currency issuer ({{order.first_currency | rpcurrency}})" -#: src/jade/tabs/trade.jade:63 -msgid "Ripple name or contact" -msgstr "Ripple name or contact" +#: src/templates/tabs/trade.jade:87 +msgid ""Ripple name or contact"" +msgstr ""Ripple name or contact"" -#: src/jade/tabs/trade.jade:65 +#: src/templates/tabs/trade.jade:95 msgid "Not a valid Ripple address or contact" msgstr "Not a valid Ripple address or contact" -#: src/jade/tabs/trade.jade:70 +#: src/templates/tabs/trade.jade:102 msgid "Counter currency issuer ({{order.second_currency | rpcurrency}})" msgstr "Counter currency issuer ({{order.second_currency | rpcurrency}})" -#: src/jade/tabs/trade.jade:75 +#: src/templates/tabs/trade.jade:113 msgid "Not a valid Ripple name or address" msgstr "Not a valid Ripple name or address" -#: src/jade/tabs/trade.jade:79 +#: src/templates/tabs/trade.jade:119 msgid "To show an orderbook, choose from the dropdown above or click \"Add custom pair\"." msgstr "To show an orderbook, choose from the dropdown above or click \"Add custom pair\"." -#: src/jade/tabs/trade.jade:86 +#: src/templates/tabs/trade.jade:126 msgid "Bid" msgstr "Bid" -#: src/jade/tabs/trade.jade:91 +#: src/templates/tabs/trade.jade:130 msgid "Ask" msgstr "Ask" -#: src/jade/tabs/trade.jade:96 +#: src/templates/tabs/trade.jade:134 msgid "Spread" msgstr "Spread" -#: src/jade/tabs/trade.jade:101 +#: src/templates/tabs/trade.jade:138 msgid "Last price" msgstr "Last price" -#: src/jade/tabs/trade.jade:108 +#: src/templates/tabs/trade.jade:145 msgid "You have to be funded before you can trade" msgstr "You have to be funded before you can trade" -#: src/jade/tabs/trade.jade:115 +#: src/templates/tabs/trade.jade:154 msgid "Buy {{1}} {{order.first_currency | rpcurrency}}" msgstr "Buy {{1}} {{order.first_currency | rpcurrency}}" -#: src/jade/tabs/trade.jade:118 +#: src/templates/tabs/trade.jade:161 msgid "Sell {{1}} {{order.first_currency | rpcurrency}}" msgstr "Sell {{1}} {{order.first_currency | rpcurrency}}" -#: src/jade/tabs/trade.jade:121 -#: src/jade/tabs/trade.jade:130 +#: src/templates/tabs/trade.jade:168 +#: src/templates/tabs/trade.jade:180 msgid "{{1}} available" msgstr "{{1}} available" -#: src/jade/tabs/trade.jade:144 +#: src/templates/tabs/trade.jade:197 msgid "Amount To Buy" msgstr "Amount To Buy" -#: src/jade/tabs/trade.jade:145 +#: src/templates/tabs/trade.jade:198 msgid "Amount To Sell" msgstr "Amount To Sell" -#: src/jade/tabs/trade.jade:152 -#: src/jade/tabs/trade.jade:167 -#: src/jade/tabs/trade.jade:182 +#: src/templates/tabs/trade.jade:218 +#: src/templates/tabs/trade.jade:246 +#: src/templates/tabs/trade.jade:273 msgid "Required" msgstr "Required" -#: src/jade/tabs/trade.jade:154 -#: src/jade/tabs/trade.jade:169 -#: src/jade/tabs/trade.jade:184 +#: src/templates/tabs/trade.jade:220 +#: src/templates/tabs/trade.jade:248 +#: src/templates/tabs/trade.jade:275 msgid "Must be greater than zero" msgstr "Must be greater than zero" -#: src/jade/tabs/trade.jade:156 -#: src/jade/tabs/trade.jade:171 -#: src/jade/tabs/trade.jade:186 +#: src/templates/tabs/trade.jade:222 +#: src/templates/tabs/trade.jade:250 +#: src/templates/tabs/trade.jade:277 msgid "Minimum amount of XRP you can send is a drop (0.000001) and the maximum is 100 billion XRPs." msgstr "Minimum amount of XRP you can send is a drop (0.000001) and the maximum is 100 billion XRPs." -#: src/jade/tabs/trade.jade:160 +#: src/templates/tabs/trade.jade:226 msgid "Price of Each" msgstr "Price of Each" -#: src/jade/tabs/trade.jade:175 +#: src/templates/tabs/trade.jade:254 +#: src/templates/tabs/trade.jade:371 msgid "Order Value (max)" msgstr "Order Value (max)" -#: src/jade/tabs/trade.jade:192 +#: src/templates/tabs/trade.jade:283 msgid "You are wanting to buy {{1}} for {{2}} ({{3}} per {{4}})" msgstr "You are wanting to buy {{1}} for {{2}} ({{3}} per {{4}})" -#: src/jade/tabs/trade.jade:201 +#: src/templates/tabs/trade.jade:292 msgid "You are wanting to sell {{1}} for {{2}} ({{3}} per {{4}})" msgstr "You are wanting to sell {{1}} for {{2}} ({{3}} per {{4}})" -#: src/jade/tabs/trade.jade:213 +#: src/templates/tabs/trade.jade:304 msgid "Buy" msgstr "Buy" -#: src/jade/tabs/trade.jade:214 -msgid "Sell" -msgstr "Sell" - -#: src/jade/tabs/trade.jade:220 +#: src/templates/tabs/trade.jade:314 msgid "You do not have sufficient funds to create an order." msgstr "You do not have sufficient funds to create an order." -#: src/jade/tabs/trade.jade:225 -msgid "You are about to create an order to {{1: buy}} {{2: sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}{{8}}" -msgstr "You are about to create an order to {{1: buy}} {{2: sell}}{{3}}{{4:for}}{{5}}{{6}}{{7:Are you sure?}}{{8}}" - -#: src/jade/tabs/trade.jade:242 -msgid "CAUTION: Your order is far off from the current market price." -msgstr "CAUTION: Your order is far off from the current market price." - -#: src/jade/tabs/trade.jade:246 -#: src/jade/tabs/trade.jade:407 -msgid "« Back" -msgstr "« Back" - -#: src/jade/tabs/trade.jade:255 -msgid "Sending order to Ripple network..." -msgstr "Sending order to Ripple network..." - -#: src/jade/tabs/trade.jade:261 +#: src/templates/tabs/trade.jade:317 msgid "Your order has been submitted." msgstr "Your order has been submitted." -#: src/jade/tabs/trade.jade:263 +#: src/templates/tabs/trade.jade:319 msgid "Your order is now active." msgstr "Your order is now active." -#: src/jade/tabs/trade.jade:265 +#: src/templates/tabs/trade.jade:321 msgid "Your order has been filled." msgstr "Your order has been filled." -#: src/jade/tabs/trade.jade:267 +#: src/templates/tabs/trade.jade:323 msgid "Your order has been partially filled. The remaining amount is now active." msgstr "Your order has been partially filled. The remaining amount is now active." -#: src/jade/tabs/trade.jade:276 -msgid "Submit another order" -msgstr "Submit another order" +#: src/templates/tabs/trade.jade:336 +msgid "CAUTION: Your order is far off from the market price." +msgstr "CAUTION: Your order is far off from the market price." + +#: src/templates/tabs/trade.jade:342 +msgid "Amount to buy" +msgstr "Amount to buy" + +#: src/templates/tabs/trade.jade:343 +msgid "Amount to sell" +msgstr "Amount to sell" + +#: src/templates/tabs/trade.jade:355 +msgid "Price of each" +msgstr "Price of each" + +#: src/templates/tabs/trade.jade:381 +msgid "« Back" +msgstr "« Back" + +#: src/templates/tabs/trade.jade:389 +msgid "Sending order to Ripple network..." +msgstr "Sending order to Ripple network..." -#: src/jade/tabs/trade.jade:278 +#: src/templates/tabs/trade.jade:391 msgid "My Orders{{1}}{{2}}" msgstr "My Orders{{1}}{{2}}" -#: src/jade/tabs/trade.jade:287 +#: src/templates/tabs/trade.jade:400 msgid "Your order has been modified." msgstr "Your order has been modified." -#: src/jade/tabs/trade.jade:289 +#: src/templates/tabs/trade.jade:402 msgid "Your order #{{ cancelOrder.seq }} has been cancelled." msgstr "Your order #{{ cancelOrder.seq }} has been cancelled." -#: src/jade/tabs/trade.jade:291 +#: src/templates/tabs/trade.jade:404 msgid "Your order could not be modified and no longer exists. Error: {{order[editOrder.type].engine_result_message}}" msgstr "Your order could not be modified and no longer exists. Error: {{order[editOrder.type].engine_result_message}}" -#: src/jade/tabs/trade.jade:293 +#: src/templates/tabs/trade.jade:406 msgid "Unable to cancel order as it no longer exists." msgstr "Unable to cancel order as it no longer exists." -#: src/jade/tabs/trade.jade:295 +#: src/templates/tabs/trade.jade:408 msgid "Modifying your order (Placing new order) ..." msgstr "Modifying your order (Placing new order) ..." -#: src/jade/tabs/trade.jade:299 +#: src/templates/tabs/trade.jade:412 msgid "Current pair only" msgstr "Current pair only" -#: src/jade/tabs/trade.jade:313 -#: src/jade/tabs/widgets/orders.jade:24 +#: src/templates/tabs/trade.jade:427 +#: src/templates/tabs/widgets/orders.jade:26 msgid "reverse" msgstr "reverse" -#: src/jade/tabs/trade.jade:322 -#: src/jade/tabs/widgets/orders.jade:33 -msgid "QTY{{1}}" -msgstr "QTY{{1}}" - -#: src/jade/tabs/trade.jade:324 -#: src/jade/tabs/widgets/orders.jade:35 -msgid "Base{{1}}" -msgstr "Base{{1}}" - -#: src/jade/tabs/trade.jade:326 -#: src/jade/tabs/widgets/orders.jade:37 -msgid "Counter{{1}}" -msgstr "Counter{{1}}" - -#: src/jade/tabs/trade.jade:328 -#: src/jade/tabs/widgets/orders.jade:39 -msgid "Limit{{1}}" -msgstr "Limit{{1}}" - -#: src/jade/tabs/trade.jade:334 +#: src/templates/tabs/trade.jade:441 +#: src/templates/strings/myOrders.jade:4 +#: src/templates/tabs/widgets/orders.jade:40 +msgid "QTY" +msgstr "QTY" + +#: src/templates/tabs/trade.jade:446 +#: src/templates/strings/myOrders.jade:5 +#: src/templates/tabs/widgets/orders.jade:45 +msgid "Base" +msgstr "Base" + +#: src/templates/tabs/trade.jade:451 +#: src/templates/strings/myOrders.jade:6 +#: src/templates/tabs/widgets/orders.jade:50 +msgid "Counter" +msgstr "Counter" + +#: src/templates/tabs/trade.jade:456 +#: src/templates/tabs/widgets/orders.jade:55 +msgid "Limit Price" +msgstr "Limit Price" + +#: src/templates/tabs/trade.jade:461 msgid "Action" msgstr "Action" -#: src/jade/tabs/trade.jade:360 -#: src/jade/tabs/trade.jade:424 +#: src/templates/tabs/trade.jade:464 +#: src/templates/tabs/widgets/orders.jade:64 +msgid ""Type"" +msgstr ""Type"" + +#: src/templates/tabs/trade.jade:467 +#: src/templates/tabs/widgets/orders.jade:67 +msgid ""QTY"" +msgstr ""QTY"" + +#: src/templates/tabs/trade.jade:469 +#: src/templates/tabs/widgets/orders.jade:70 +msgid ""BASE"" +msgstr ""BASE"" + +#: src/templates/tabs/trade.jade:478 +#: src/templates/tabs/widgets/orders.jade:79 +msgid ""Counter"" +msgstr ""Counter"" + +#: src/templates/tabs/trade.jade:487 +#: src/templates/tabs/trust.jade:233 +#: src/templates/tabs/widgets/orders.jade:88 +msgid ""Limit"" +msgstr ""Limit"" + +#: src/templates/tabs/trade.jade:498 +#: src/templates/tabs/trade.jade:582 msgid "TRADE CONFIRMATION" msgstr "TRADE CONFIRMATION" -#: src/jade/tabs/trade.jade:362 +#: src/templates/tabs/trade.jade:500 msgid "{{1:Please confirm that you wish to cancel order #{{entry.seq}}}}" msgstr "{{1:Please confirm that you wish to cancel order #{{entry.seq}}}}" -#: src/jade/tabs/trade.jade:364 -msgid "{{1}} div span.modal-order-type(l10n-inc) FILLED: span filled data div span.modal-order-type(l10n-inc) REMAIN: span remain data div span.modal-order-type(l10n-inc) PLACED: span time data" -msgstr "{{1}} div span.modal-order-type(l10n-inc) FILLED: span filled data div span.modal-order-type(l10n-inc) REMAIN: span remain data div span.modal-order-type(l10n-inc) PLACED: span time data" - -#: src/jade/tabs/trade.jade:371 +#: src/templates/tabs/trade.jade:512 msgid "with" msgstr "with" -#: src/jade/tabs/trade.jade:372 +#: src/templates/tabs/trade.jade:513 msgid "for" msgstr "for" -#: src/jade/tabs/trade.jade:376 +#: src/templates/tabs/trade.jade:520 msgid "at" msgstr "at" -#: src/jade/tabs/trade.jade:389 +#: src/templates/tabs/trade.jade:533 msgid "Cancel order" msgstr "Cancel order" -#: src/jade/tabs/trade.jade:390 -#: src/jade/tabs/trade.jade:431 +#: src/templates/tabs/trade.jade:534 +#: src/templates/tabs/trade.jade:554 +#: src/templates/tabs/trade.jade:589 msgid "back" msgstr "back" -#: src/jade/tabs/trade.jade:407 -msgid "CAUTION: Your new order is far off from the current market price.
Do you still want to replace your order ?" -msgstr "CAUTION: Your new order is far off from the current market price.
Do you still want to replace your order ?" +#: src/templates/tabs/trade.jade:556 +msgid ""CAUTION: Your new order is far off from the current market price.
Do you still want to replace your order ?"" +msgstr ""CAUTION: Your new order is far off from the current market price.
Do you still want to replace your order ?"" + +#: src/templates/tabs/trade.jade:556 +msgid ""Confirm"" +msgstr ""Confirm"" -#: src/jade/tabs/trade.jade:410 +#: src/templates/tabs/trade.jade:556 +msgid ""« Back"" +msgstr ""« Back"" + +#: src/templates/tabs/trade.jade:563 +msgid "submit" +msgstr "submit" + +#: src/templates/tabs/trade.jade:568 msgid "Unable to cancel order. Error: {{entry.errorMsg}}" msgstr "Unable to cancel order. Error: {{entry.errorMsg}}" -#: src/jade/tabs/trade.jade:412 +#: src/templates/tabs/trade.jade:570 msgid "Your order amount has been updated by Ripple. Please go back and edit again to modify this order." msgstr "Your order amount has been updated by Ripple. Please go back and edit again to modify this order." -#: src/jade/tabs/trade.jade:414 +#: src/templates/tabs/trade.jade:572 msgid "Your order could not be modified. Error: {{order[editOrder.type].engine_result_message}}" msgstr "Your order could not be modified. Error: {{order[editOrder.type].engine_result_message}}" -#: src/jade/tabs/trade.jade:415 +#: src/templates/tabs/trade.jade:573 msgid "X" msgstr "X" -#: src/jade/tabs/trade.jade:420 +#: src/templates/tabs/trade.jade:578 msgid "cancel all" msgstr "cancel all" -#: src/jade/tabs/trade.jade:426 +#: src/templates/tabs/trade.jade:584 msgid "{{1:Please confirm that you wish to cancel all orders.}}" msgstr "{{1:Please confirm that you wish to cancel all orders.}}" -#: src/jade/tabs/trade.jade:430 +#: src/templates/tabs/trade.jade:588 msgid "Cancel all orders" msgstr "Cancel all orders" -#: src/jade/tabs/trade.jade:433 -#: src/jade/tabs/widgets/orders.jade:64 +#: src/templates/tabs/trade.jade:591 +#: src/templates/tabs/widgets/orders.jade:93 msgid "No current orders. {{1}}" msgstr "No current orders. {{1}}" -#: src/jade/tabs/trade.jade:434 -#: src/jade/tabs/widgets/orders.jade:65 +#: src/templates/tabs/trade.jade:592 +#: src/templates/tabs/widgets/orders.jade:94 msgid "View orders history" msgstr "View orders history" -#: src/jade/tabs/trade.jade:437 -msgid "Orderbook{{1}}" -msgstr "Orderbook{{1}}" - -#: src/jade/tabs/trade.jade:440 -msgid "show" -msgstr "show" +#: src/templates/tabs/trade.jade:595 +msgid "Orderbook" +msgstr "Orderbook" -#: src/jade/tabs/trade.jade:442 +#: src/templates/tabs/trade.jade:597 msgid "Last updated {{1}} {{2: seconds}} {{3: second}} ago" msgstr "Last updated {{1}} {{2: seconds}} {{3: second}} ago" -#: src/jade/tabs/trade.jade:458 +#: src/templates/tabs/trade.jade:614 msgid "Bids" msgstr "Bids" -#: src/jade/tabs/trade.jade:460 -#: src/jade/tabs/trade.jade:487 +#: src/templates/tabs/trade.jade:616 +#: src/templates/tabs/trade.jade:669 msgid "Sum{{1}}{{2}}" msgstr "Sum{{1}}{{2}}" -#: src/jade/tabs/trade.jade:463 -#: src/jade/tabs/trade.jade:484 +#: src/templates/tabs/trade.jade:623 +#: src/templates/tabs/trade.jade:662 msgid "Size{{1}}{{2}}" msgstr "Size{{1}}{{2}}" -#: src/jade/tabs/trade.jade:466 +#: src/templates/tabs/trade.jade:630 msgid "Bid Price{{1}}{{2}}" msgstr "Bid Price{{1}}{{2}}" -#: src/jade/tabs/trade.jade:477 +#: src/templates/tabs/trade.jade:647 msgid "There are currently no bids for this pair." msgstr "There are currently no bids for this pair." -#: src/jade/tabs/trade.jade:479 +#: src/templates/tabs/trade.jade:653 msgid "Asks" msgstr "Asks" -#: src/jade/tabs/trade.jade:481 +#: src/templates/tabs/trade.jade:655 msgid "Ask Price{{1}}{{2}}" msgstr "Ask Price{{1}}{{2}}" -#: src/jade/tabs/trade.jade:498 +#: src/templates/tabs/trade.jade:687 msgid "There are currently no asks for this pair." msgstr "There are currently no asks for this pair." -#: src/jade/tabs/trade.jade:501 +#: src/templates/tabs/trade.jade:693 +msgid "Load more" +msgstr "Load more" + +#: src/templates/tabs/trade.jade:694 msgid "No more orders" msgstr "No more orders" -#: src/jade/tabs/trust.jade:29 +#: src/templates/tabs/trust.jade:38 msgid "Removing gateway..." msgstr "Removing gateway..." -#: src/jade/tabs/trust.jade:31 +#: src/templates/tabs/trust.jade:40 msgid "Gateway removed." msgstr "Gateway removed." -#: src/jade/tabs/trust.jade:33 +#: src/templates/tabs/trust.jade:42 msgid "Your changes have been saved." msgstr "Your changes have been saved." -#: src/jade/tabs/trust.jade:35 +#: src/templates/tabs/trust.jade:44 msgid "Request failed." msgstr "Request failed." -#: src/jade/tabs/trust.jade:39 +#: src/templates/tabs/trust.jade:48 msgid "Account unlock failed." msgstr "Account unlock failed." -#: src/jade/tabs/trust.jade:55 +#: src/templates/tabs/trust.jade:49 +msgid "Your account could not be unlocked. Please try again later." +msgstr "Your account could not be unlocked. Please try again later." + +#: src/templates/tabs/trust.jade:61 msgid "Name / Address" msgstr "Name / Address" -#: src/jade/tabs/trust.jade:57 -#: src/jade/tabs/trust.jade:90 +#: src/templates/tabs/trust.jade:63 +#: src/templates/tabs/trust.jade:100 msgid "Currency" msgstr "Currency" -#: src/jade/tabs/trust.jade:60 +#: src/templates/tabs/trust.jade:66 msgid "Trust Limit" msgstr "Trust Limit" -#: src/jade/tabs/trust.jade:66 +#: src/templates/tabs/trust.jade:73 msgid "Gateway's Ripple name or address" msgstr "Gateway's Ripple name or address" -#: src/jade/tabs/trust.jade:100 +#: src/templates/tabs/trust.jade:92 +msgid "This account does not meet the minimum XRP reserve, so you cannot use it as a gateway." +msgstr "This account does not meet the minimum XRP reserve, so you cannot use it as a gateway." + +#: src/templates/tabs/trust.jade:96 +msgid "You cannot add an unfunded Ripple account as a gateway." +msgstr "You cannot add an unfunded Ripple account as a gateway." + +#: src/templates/tabs/trust.jade:130 msgid "Amount field is required." msgstr "Amount field is required." -#: src/jade/tabs/trust.jade:115 -msgid "Allow this trust line's balances to be transferred to another issuer you connect to. More information" -msgstr "Allow this trust line's balances to be transferred to another issuer you connect to. More information" +#: src/templates/tabs/trust.jade:147 +msgid ""Allow this trust line's balances to be transferred to another issuer you connect to. More information"" +msgstr ""Allow this trust line's balances to be transferred to another issuer you connect to. More information"" -#: src/jade/tabs/trust.jade:125 +#: src/templates/tabs/trust.jade:162 msgid "{{1:You are connecting a gateway, which means}}{{2:{{ counterparty_address | rpripplename:{tilde: true} }} can:}}" msgstr "{{1:You are connecting a gateway, which means}}{{2:{{ counterparty_address | rpripplename:{tilde: true} }} can:}}" -#: src/jade/tabs/trust.jade:128 +#: src/templates/tabs/trust.jade:165 msgid "{{1:- Hold up to }}{{2}} {{3: on your behalf}}" msgstr "{{1:- Hold up to }}{{2}} {{3: on your behalf}}" -#: src/jade/tabs/trust.jade:132 +#: src/templates/tabs/trust.jade:169 msgid "{{1:- Hold }}{{2}} {{3: on your behalf}}" msgstr "{{1:- Hold }}{{2}} {{3: on your behalf}}" -#: src/jade/tabs/trust.jade:148 +#: src/templates/tabs/trust.jade:187 msgid "Verifying address" msgstr "Verifying address" -#: src/jade/tabs/trust.jade:151 +#: src/templates/tabs/trust.jade:190 msgid "Your account has to be {{1:activated}} before you can add a gateway account." msgstr "Your account has to be {{1:activated}} before you can add a gateway account." -#: src/jade/tabs/trust.jade:159 +#: src/templates/tabs/trust.jade:198 msgid "Connect gateway" msgstr "Connect gateway" -#: src/jade/tabs/trust.jade:169 -#: src/jade/tabs/trust.jade:221 +#: src/templates/tabs/trust.jade:213 +#: src/templates/tabs/trust.jade:321 +#: src/templates/strings/myOrders.jade:7 msgid "Limit" msgstr "Limit" -#: src/jade/tabs/trust.jade:170 +#: src/templates/tabs/trust.jade:214 msgid "Min" msgstr "Min" -#: src/jade/tabs/trust.jade:172 +#: src/templates/tabs/trust.jade:216 msgid "Edit" msgstr "Edit" -#: src/jade/tabs/trust.jade:188 +#: src/templates/tabs/trust.jade:223 +msgid ""Gateway"" +msgstr ""Gateway"" + +#: src/templates/tabs/trust.jade:229 +msgid ""Balance"" +msgstr ""Balance"" + +#: src/templates/tabs/trust.jade:237 +#: src/templates/tabs/trust.jade:241 +msgid ""Min"" +msgstr ""Min"" + +#: src/templates/tabs/trust.jade:247 +msgid ""Rippling"" +msgstr ""Rippling"" + +#: src/templates/tabs/trust.jade:250 msgid "Off" msgstr "Off" -#: src/jade/tabs/trust.jade:189 +#: src/templates/tabs/trust.jade:251 msgid "On" msgstr "On" -#: src/jade/tabs/trust.jade:192 -#: src/jade/tabs/trust.jade:201 -#: src/jade/tabs/trust.jade:206 -#: src/jade/tabs/trust.jade:210 -#: src/jade/tabs/trust.jade:239 -#: src/jade/tabs/trust.jade:244 -#: src/jade/tabs/trust.jade:248 -msgid "Incoming trust" -msgstr "Incoming trust" - -#: src/jade/tabs/trust.jade:192 -msgid "You can't edit incoming trust lines. Incoming trust lines are when other Ripple users trust you." -msgstr "You can't edit incoming trust lines. Incoming trust lines are when other Ripple users trust you." - -#: src/jade/tabs/trust.jade:200 -#: src/jade/tabs/trust.jade:202 -#: src/jade/tabs/trust.jade:205 -#: src/jade/tabs/trust.jade:207 -#: src/jade/tabs/trust.jade:209 -#: src/jade/tabs/trust.jade:211 -#: src/jade/tabs/trust.jade:238 -#: src/jade/tabs/trust.jade:240 -#: src/jade/tabs/trust.jade:243 -#: src/jade/tabs/trust.jade:245 -#: src/jade/tabs/trust.jade:247 -#: src/jade/tabs/trust.jade:249 +#: src/templates/tabs/trust.jade:271 +#: src/templates/tabs/trust.jade:278 +#: src/templates/tabs/trust.jade:288 +#: src/templates/tabs/trust.jade:295 +#: src/templates/tabs/trust.jade:297 +#: src/templates/tabs/trust.jade:304 +#: src/templates/tabs/trust.jade:369 +#: src/templates/tabs/trust.jade:376 +#: src/templates/tabs/trust.jade:386 +#: src/templates/tabs/trust.jade:393 +#: src/templates/tabs/trust.jade:395 +#: src/templates/tabs/trust.jade:402 msgid "Remove" msgstr "Remove" -#: src/jade/tabs/trust.jade:201 -#: src/jade/tabs/trust.jade:206 -#: src/jade/tabs/trust.jade:210 -#: src/jade/tabs/trust.jade:239 -#: src/jade/tabs/trust.jade:244 -#: src/jade/tabs/trust.jade:248 -msgid "You can't delete incoming trust lines. Incoming trust lines are when other Ripple users trust you." -msgstr "You can't delete incoming trust lines. Incoming trust lines are when other Ripple users trust you." - -#: src/jade/tabs/trust.jade:226 +#: src/templates/tabs/trust.jade:272 +#: src/templates/tabs/trust.jade:289 +#: src/templates/tabs/trust.jade:298 +#: src/templates/tabs/trust.jade:370 +#: src/templates/tabs/trust.jade:387 +#: src/templates/tabs/trust.jade:396 +msgid ""Incoming trust"" +msgstr ""Incoming trust"" + +#: src/templates/tabs/trust.jade:272 +#: src/templates/tabs/trust.jade:289 +#: src/templates/tabs/trust.jade:298 +#: src/templates/tabs/trust.jade:370 +#: src/templates/tabs/trust.jade:387 +#: src/templates/tabs/trust.jade:396 +msgid ""You can't delete incoming trust lines. Incoming trust lines are when other Ripple users trust you."" +msgstr ""You can't delete incoming trust lines. Incoming trust lines are when other Ripple users trust you."" + +#: src/templates/tabs/trust.jade:331 msgid "Rippling {{1}}" msgstr "Rippling {{1}}" -#: src/jade/tabs/tx.jade:5 +#: src/templates/tabs/trust.jade:357 +msgid "Removing..." +msgstr "Removing..." + +#: src/templates/tabs/tx.jade:5 msgid "Loading transaction details..." msgstr "Loading transaction details..." -#: src/jade/tabs/tx.jade:7 +#: src/templates/tabs/tx.jade:7 msgid "An error occurred while loading the transaction details." msgstr "An error occurred while loading the transaction details." -#: src/jade/tabs/tx.jade:10 +#: src/templates/tabs/tx.jade:10 msgid "Transaction #" msgstr "Transaction #" -#: src/jade/tabs/tx.jade:15 -msgid "Transaction type: {{1}}" -msgstr "Transaction type: {{1}}" +#: src/templates/tabs/tx.jade:15 +msgid "Transaction type:{{1}}" +msgstr "Transaction type:{{1}}" -#: src/jade/tabs/tx.jade:22 +#: src/templates/tabs/tx.jade:22 msgid "Address sent from" msgstr "Address sent from" -#: src/jade/tabs/tx.jade:26 +#: src/templates/tabs/tx.jade:26 msgid "Amount sent" msgstr "Amount sent" -#: src/jade/tabs/tx.jade:30 +#: src/templates/tabs/tx.jade:30 msgid "Currency sent" msgstr "Currency sent" -#: src/jade/tabs/tx.jade:35 +#: src/templates/tabs/tx.jade:35 msgid "Address sent to" msgstr "Address sent to" -#: src/jade/tabs/tx.jade:39 +#: src/templates/tabs/tx.jade:39 msgid "Amount received" msgstr "Amount received" -#: src/jade/tabs/tx.jade:43 +#: src/templates/tabs/tx.jade:43 msgid "Currency received" msgstr "Currency received" -#: src/jade/tabs/tx.jade:50 +#: src/templates/tabs/tx.jade:50 msgid "Network fee paid" msgstr "Network fee paid" -#: src/jade/tabs/tx.jade:62 +#: src/templates/tabs/tx.jade:62 msgid "Ledger number" msgstr "Ledger number" -#: src/jade/tabs/tx.jade:68 +#: src/templates/tabs/tx.jade:68 msgid "Address sent from:" msgstr "Address sent from:" -# Sorry, we don't have an info page layout for this transaction type yet. -#: src/jade/tabs/tx.jade:72 -msgid "Sorry, we don't have an info page layout for this transaction type yet." +#: src/templates/tabs/tx.jade:72 +msgid ""Sorry, we don't have an info page layout for this transaction type yet."" msgstr "Sorry, we don't have an info page layout for this transaction type yet." -#: src/jade/tabs/usd.jade:35 +#: src/templates/tabs/usd.jade:44 msgid "US Dollar Deposit" msgstr "US Dollar Deposit" -#: src/jade/tabs/usd.jade:39 +#: src/templates/tabs/usd.jade:48 msgid "SnapSwap US (~SnapSwap){{1}}{{2}}" msgstr "SnapSwap US (~SnapSwap){{1}}{{2}}" -#: src/jade/tabs/usd.jade:45 +#: src/templates/tabs/usd.jade:54 msgid "USA" msgstr "USA" -#: src/jade/tabs/usd.jade:48 -msgid "$ 0.31-$ 5.00" -msgstr "$ 0.31-$ 5.00" +#: src/templates/tabs/usd.jade:57 +msgid "$ 0.31-$ 5.00 for deposits/withdrawals, .2% when transferring" +msgstr "$ 0.31-$ 5.00 for deposits/withdrawals, .2% when transferring" -#: src/jade/tabs/usd.jade:56 +#: src/templates/tabs/usd.jade:65 msgid "Ripple Trade has partnered with SnapSwap to provide easier access to USD. Following this action will enable SnapSwap to hold USD on your behalf." msgstr "Ripple Trade has partnered with SnapSwap to provide easier access to USD. Following this action will enable SnapSwap to hold USD on your behalf." -#: src/jade/tabs/usd.jade:73 +#: src/templates/tabs/usd.jade:69 +msgid "Add SnapSwap.us" +msgstr "Add SnapSwap.us" + +#: src/templates/tabs/usd.jade:85 msgid "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.US" msgstr "NEW CUSTOMERS- SIGN UP AT SNAPSWAP.US" -#: src/jade/tabs/usd.jade:74 +#: src/templates/tabs/usd.jade:86 msgid "Register and verify your account at SnapSwap US. You will need: {{1}}" msgstr "Register and verify your account at SnapSwap US. You will need: {{1}}" -#: src/jade/tabs/usd.jade:82 +#: src/templates/tabs/usd.jade:94 msgid "EXISTING SNAPSWAP US CUSTOMERS" msgstr "EXISTING SNAPSWAP US CUSTOMERS" -#: src/jade/tabs/usd.jade:93 +#: src/templates/tabs/usd.jade:105 msgid "Deposit instantly via selected banks" msgstr "Deposit instantly via selected banks" -#: src/jade/tabs/usd.jade:95 -msgid "Deposit cash at Bank of America branches (3 business days)" -msgstr "Deposit cash at Bank of America branches (3 business days)" - -#: src/jade/tabs/usd.jade:97 +#: src/templates/tabs/usd.jade:107 msgid "Deposit via online bank transfer (3 business days)" msgstr "Deposit via online bank transfer (3 business days)" -#: src/jade/tabs/usd.jade:103 +#: src/templates/tabs/usd.jade:113 msgid "Directly to your bank account (3-4 business days)" msgstr "Directly to your bank account (3-4 business days)" -#: src/jade/tabs/usd.jade:105 +#: src/templates/tabs/usd.jade:115 msgid "Directly to your PayPal account (several minutes)" msgstr "Directly to your PayPal account (several minutes)" -#: src/jade/tabs/widgets/assetallocation.jade:3 +#: src/templates/tabs/usd.jade:137 +msgid "Ripple Trade has partnered with Bitstamp to provide easier access to USD. Following this action will enable Bitstamp to hold USD on your behalf." +msgstr "Ripple Trade has partnered with Bitstamp to provide easier access to USD. Following this action will enable Bitstamp to hold USD on your behalf." + +#: src/templates/tabs/usd.jade:174 +msgid "SEPA (All funds transferred in EUR will be converted to USD, free of charge. 1-3 business days)" +msgstr "SEPA (All funds transferred in EUR will be converted to USD, free of charge. 1-3 business days)" + +#: src/templates/tabs/xrp.jade:24 +msgid "Featured Gateways" +msgstr "Featured Gateways" + +#: src/templates/tabs/xrp.jade:25 +msgid "You can fund your account through gateways, which are entry and exit points off the Ripple network.Gateways will accept deposits from you and then issue you balances on the Ripple network in return.In order to hold a balance from a gateway, you must first add or trust the gateway." +msgstr "You can fund your account through gateways, which are entry and exit points off the Ripple network.Gateways will accept deposits from you and then issue you balances on the Ripple network in return.In order to hold a balance from a gateway, you must first add or trust the gateway." + +#: src/templates/strings/myOrders.jade:3 +msgid "Type" +msgstr "Type" + +#: src/templates/messages/sendconvert/confirmation.jade:4 +msgid "Transaction pending." +msgstr "Transaction pending." + +#: src/templates/messages/sendconvert/confirmation.jade:6 +msgid "Transaction successful" +msgstr "Transaction successful" + +#: src/templates/messages/sendconvert/confirmation.jade:8 +#: src/templates/messages/sendconvert/confirmation.jade:11 +#: src/templates/messages/sendconvert/confirmation.jade:16 +#: src/templates/messages/sendconvert/confirmation.jade:21 +#: src/templates/messages/sendconvert/confirmation.jade:30 +#: src/templates/messages/sendconvert/confirmation.jade:37 +#: src/templates/messages/sendconvert/localerror.jade:5 +#: src/templates/messages/sendconvert/localerror.jade:8 +#: src/templates/messages/sendconvert/localerror.jade:11 +#: src/templates/messages/sendconvert/localerror.jade:14 +msgid "Transaction failed" +msgstr "Transaction failed" + +#: src/templates/messages/sendconvert/confirmation.jade:23 +msgid "Error code: The destination account does not exist [tecNO_DST]." +msgstr "Error code: The destination account does not exist [tecNO_DST]." + +#: src/templates/messages/sendconvert/confirmation.jade:34 +msgid "Your transaction failed: {{engine_result_message}}" +msgstr "Your transaction failed: {{engine_result_message}}" + +#: src/templates/messages/sendconvert/localerror.jade:6 +msgid "Error code: The account you're trying to send to does not exist [noDest]." +msgstr "Error code: The account you're trying to send to does not exist [noDest]." + +#: src/templates/messages/sendconvert/localerror.jade:9 +msgid "Error code: Ripple was unable to find a path between you and the destination account [noPath]." +msgstr "Error code: Ripple was unable to find a path between you and the destination account [noPath]." + +#: src/templates/messages/sendconvert/localerror.jade:12 +msgid "Error code: This transaction failed because it exceeded the maximum network fee. [maxfeeExceeded]." +msgstr "Error code: This transaction failed because it exceeded the maximum network fee. [maxfeeExceeded]." + +#: src/templates/messages/sendconvert/localerror.jade:15 +msgid "Error code: The transaction was rejected by the Ripple network [invalidTransaction]." +msgstr "Error code: The transaction was rejected by the Ripple network [invalidTransaction]." + +#: src/templates/messages/sendconvert/localerror.jade:17 +msgid "Account unlock failed" +msgstr "Account unlock failed" + +#: src/templates/messages/sendconvert/localerror.jade:20 +msgid "Sorry, an error occurred while submitting your transaction.Make sure you are connected to the Internet and try again later." +msgstr "Sorry, an error occurred while submitting your transaction.Make sure you are connected to the Internet and try again later." + +#: src/templates/messages/sendconvert/localerror.jade:22 +msgid "Before trying again, please ensure that the transaction has not been executed already." +msgstr "Before trying again, please ensure that the transaction has not been executed already." + +#: src/templates/messages/sendconvert/waiting.jade:5 +msgid "Sending transaction to the Ripple network" +msgstr "Sending transaction to the Ripple network" + +#: src/templates/tabs/2fa/form.jade:3 +msgid "Country Code" +msgstr "Country Code" + +#: src/templates/tabs/account/navbar.jade:2 +msgid "Public Information" +msgstr "Public Information" + +#: src/templates/tabs/account/private.jade:1 +msgid "Profile Information" +msgstr "Profile Information" + +#: src/templates/tabs/account/private.jade:3 +msgid "Identity Information" +msgstr "Identity Information" + +#: src/templates/tabs/account/private.jade:8 +#: src/templates/tabs/account/private.jade:17 +msgid "Completed" +msgstr "Completed" + +#: src/templates/tabs/account/private.jade:9 +#: src/templates/tabs/account/private.jade:18 +msgid "Incomplete" +msgstr "Incomplete" + +#: src/templates/tabs/account/private.jade:10 +#: src/templates/tabs/account/private.jade:19 +msgid "Complete your profile" +msgstr "Complete your profile" + +#: src/templates/tabs/account/private.jade:12 +msgid "Identity Questions" +msgstr "Identity Questions" + +#: src/templates/tabs/account/public.jade:1 +msgid "Changing your Ripple name..." +msgstr "Changing your Ripple name..." + +#: src/templates/tabs/account/public.jade:2 +msgid "Your Ripple name has been changed successfully." +msgstr "Your Ripple name has been changed successfully." + +#: src/templates/tabs/account/public.jade:3 +msgid "Account settings" +msgstr "Account settings" + +#: src/templates/tabs/account/public.jade:5 +#: src/templates/tabs/login/form.jade:3 +msgid "Ripple name" +msgstr "Ripple name" + +#: src/templates/tabs/account/public.jade:13 +msgid "New Ripple name" +msgstr "New Ripple name" + +#: src/templates/tabs/account/public.jade:25 +msgid "Reserved for {{usernameReservedFor}}{{1}}{{2}}" +msgstr "Reserved for {{usernameReservedFor}}{{1}}{{2}}" + +#: src/templates/tabs/account/public.jade:36 +msgid "Only a-z, 0-9 and hyphen (-)" +msgstr "Only a-z, 0-9 and hyphen (-)" + +#: src/templates/tabs/account/public.jade:39 +msgid "Cannot bundle hyphens (--)" +msgstr "Cannot bundle hyphens (--)" + +#: src/templates/tabs/account/public.jade:50 +msgid "Your Ripple name has been changed. Please login again." +msgstr "Your Ripple name has been changed. Please login again." + +#: src/templates/tabs/account/public.jade:52 +msgid "Couldn't change your Ripple name, please try again later." +msgstr "Couldn't change your Ripple name, please try again later." + +#: src/templates/tabs/banner/announcement.jade:2 +msgid "Help our team improve Ripple Trade! {{1:Take a quick user survey.}}" +msgstr "Help our team improve Ripple Trade! {{1:Take a quick user survey.}}" + +#: src/templates/tabs/banner/rtjapan.jade:2 +#: src/templates/tabs/banner/rtjapanrippling.jade:2 +msgid "警告" +msgstr "警告" + +#: src/templates/tabs/banner/rtjapan.jade:3 +msgid "リップルトレードジャパンをゲイトウェイとして使用しないことをお勧めします。最近の出来事から判断しまして、リップルトレードジャパンを使用すると、資金が失われる可能性があります。" +msgstr "リップルトレードジャパンをゲイトウェイとして使用しないことをお勧めします。最近の出来事から判断しまして、リップルトレードジャパンを使用すると、資金が失われる可能性があります。" + +#: src/templates/tabs/banner/rtjapanrippling.jade:3 +msgid "資金を保護するために、リップルトレードジャパンへのリップリングを無効にすることをお勧めします。無効化するには{{1}}をクリックし、与信限度額の「Advanced Settings」が「表示」になっていることを確認して下さい。その後、{{2}}ページで、リップルトレードジャパン(rMAz5ZnK73nyNUL4foAvaxdreczCkG3vA6)との Rippling がオフになっていることをご確認下さい。" +msgstr "資金を保護するために、リップルトレードジャパンへのリップリングを無効にすることをお勧めします。無効化するには{{1}}をクリックし、与信限度額の「Advanced Settings」が「表示」になっていることを確認して下さい。その後、{{2}}ページで、リップルトレードジャパン(rMAz5ZnK73nyNUL4foAvaxdreczCkG3vA6)との Rippling がオフになっていることをご確認下さい。" + +#: src/templates/tabs/banner/unfunded.jade:2 +msgid "Welcome to Ripple Trade! Your account needs to be activated. You can activate it in 2 ways:" +msgstr "Welcome to Ripple Trade! Your account needs to be activated. You can activate it in 2 ways:" + +#: src/templates/tabs/banner/unfunded.jade:4 +msgid "Have another user send XRP to your Ripple name (~{{userCredentials.username}}). {{1}}" +msgstr "Have another user send XRP to your Ripple name (~{{userCredentials.username}}). {{1}}" + +#: src/templates/tabs/fund/menu.jade:2 +msgid "{{1}}BRL" +msgstr "{{1}}BRL" + +#: src/templates/tabs/fund/menu.jade:5 +msgid "{{1}}BTC" +msgstr "{{1}}BTC" + +#: src/templates/tabs/fund/menu.jade:8 +msgid "{{1}}EUR" +msgstr "{{1}}EUR" + +#: src/templates/tabs/fund/menu.jade:11 +msgid "{{1}}JPY" +msgstr "{{1}}JPY" + +#: src/templates/tabs/fund/menu.jade:14 +msgid "{{1}}MXN" +msgstr "{{1}}MXN" + +#: src/templates/tabs/fund/menu.jade:17 +msgid "{{1}}SGD" +msgstr "{{1}}SGD" + +#: src/templates/tabs/fund/menu.jade:20 +msgid "{{1}}USD" +msgstr "{{1}}USD" + +#: src/templates/tabs/fund/menu.jade:23 +msgid "{{1}}XAU" +msgstr "{{1}}XAU" + +#: src/templates/tabs/history/effects.jade:4 +#: src/templates/tabs/history/effects.jade:28 +#: src/templates/tabs/history/effects.jade:83 +msgid "You sold{{1}}for{{2}}({{3:price :}} {{4}}{{5}}per{{6}})." +msgstr "You sold{{1}}for{{2}}({{3:price :}} {{4}}{{5}}per{{6}})." + +#: src/templates/tabs/history/effects.jade:15 +msgid "You bought{{1}}for{{2}}({{3}} {{4}}{{5}}per{{6}})." +msgstr "You bought{{1}}for{{2}}({{3}} {{4}}{{5}}per{{6}})." + +#: src/templates/tabs/history/effects.jade:20 +msgid "price :" +msgstr "price :" + +#: src/templates/tabs/history/effects.jade:26 +msgid "This order has been filled." +msgstr "This order has been filled." + +#: src/templates/tabs/history/effects.jade:39 +#: src/templates/tabs/history/effects.jade:72 +msgid "You bought{{1}}for{{2}}({{3:price :}} {{4}}{{5}}per{{6}})." +msgstr "You bought{{1}}for{{2}}({{3:price :}} {{4}}{{5}}per{{6}})." + +#: src/templates/tabs/history/effects.jade:50 +msgid "The rest of your order has been cancelled due to lack of funds." +msgstr "The rest of your order has been cancelled due to lack of funds." + +#: src/templates/tabs/history/effects.jade:51 +msgid "This order has{{1}}remaining." +msgstr "This order has{{1}}remaining." + +#: src/templates/tabs/history/effects.jade:57 +msgid "Order ({{1}} for{{2}}) has been cancelled due to lack of funds." +msgstr "Order ({{1}} for{{2}}) has been cancelled due to lack of funds." + +#: src/templates/tabs/history/effects.jade:99 +msgid "{{1}}is trusting you for{{2}}." +msgstr "{{1}}is trusting you for{{2}}." + +#: src/templates/tabs/history/effects.jade:104 +msgid "You have changed {{1}}trust for{{2}}from{{3}}to{{4}}." +msgstr "You have changed {{1}}trust for{{2}}from{{3}}to{{4}}." + +#: src/templates/tabs/history/effects.jade:114 +msgid "{{1}}changed the{{2}}trust from{{3}}to{{4}}." +msgstr "{{1}}changed the{{2}}trust from{{3}}to{{4}}." + +#: src/templates/tabs/history/effects.jade:123 +msgid "Trust balance between you and{{1}}has been changed by{{2}}." +msgstr "Trust balance between you and{{1}}has been changed by{{2}}." + +#: src/templates/tabs/history/effects.jade:130 +msgid "Your balance has been changed by{{1}}." +msgstr "Your balance has been changed by{{1}}." + +#: src/templates/tabs/login/form.jade:18 +msgid "Resend" +msgstr "Resend" + +#: src/templates/tabs/login/form.jade:27 +msgid "Remember me on this device for 30 days" +msgstr "Remember me on this device for 30 days" + +#: src/templates/tabs/settings/navbar.jade:2 +msgid "Security" +msgstr "Security" + +#: src/templates/tabs/settings/navbar.jade:4 +msgid "Network and servers" +msgstr "Network and servers" + +#: src/templates/tabs/settings/navbar.jade:5 +msgid "Gateways and trust lines" +msgstr "Gateways and trust lines" + +#: src/templates/tabs/widgets/assetallocation.jade:4 msgid "Asset Allocation" msgstr "Asset Allocation" -#: src/jade/tabs/widgets/balances.jade:3 +#: src/templates/tabs/widgets/balances.jade:4 msgid "Balances" msgstr "Balances" -#: src/jade/tabs/widgets/balances.jade:12 -msgid "Balance
{{ account.Balance | rpamount }} XRP" -msgstr "Balance
{{ account.Balance | rpamount }} XRP" +#: src/templates/tabs/widgets/balances.jade:13 +msgid ""Balance
{{ account.Balance | rpamount }} XRP"" +msgstr ""Balance
{{ account.Balance | rpamount }} XRP"" -#: src/jade/tabs/widgets/balances.jade:16 +#: src/templates/tabs/widgets/balances.jade:22 msgid "Reserve" msgstr "Reserve" -#: src/jade/tabs/widgets/balances.jade:18 -msgid "Reserve amount" -msgstr "Reserve amount" +#: src/templates/tabs/widgets/balances.jade:24 +msgid ""Reserve amount"" +msgstr ""Reserve amount"" -#: src/jade/tabs/widgets/balances.jade:18 -msgid "Minimum amount of XRP required to fund your account. You cannot spend the reserve." -msgstr "Minimum amount of XRP required to fund your account. You cannot spend the reserve." +#: src/templates/tabs/widgets/balances.jade:24 +msgid ""Minimum amount of XRP required to fund your account. You cannot spend the reserve."" +msgstr ""Minimum amount of XRP required to fund your account. You cannot spend the reserve."" -#: src/jade/tabs/widgets/balances.jade:20 -msgid "Reserve amount
{{ account.reserve | rpamount }} XRP" -msgstr "Reserve amount
{{ account.reserve | rpamount }} XRP" +#: src/templates/tabs/widgets/balances.jade:31 +msgid ""Reserve amount
{{ account.reserve | rpamount }} XRP"" +msgstr ""Reserve amount
{{ account.reserve | rpamount }} XRP"" -#: src/jade/tabs/widgets/balances.jade:26 -msgid "Available amount" -msgstr "Available amount" +#: src/templates/tabs/widgets/balances.jade:42 +msgid ""Available amount"" +msgstr ""Available amount"" -#: src/jade/tabs/widgets/balances.jade:26 -msgid "Total amount of XRP in your account minus the reserve amount." -msgstr "Total amount of XRP in your account minus the reserve amount." +#: src/templates/tabs/widgets/balances.jade:42 +msgid ""Total amount of XRP in your account minus the reserve amount."" +msgstr ""Total amount of XRP in your account minus the reserve amount."" -#: src/jade/tabs/widgets/balances.jade:28 -msgid "Available amount
{{ account.max_spend | rpamount }} XRP" -msgstr "Available amount
{{ account.max_spend | rpamount }} XRP" +#: src/templates/tabs/widgets/balances.jade:49 +msgid ""Available amount
{{ account.max_spend | rpamount }} XRP"" +msgstr ""Available amount
{{ account.max_spend | rpamount }} XRP"" -#: src/jade/tabs/widgets/balances.jade:35 -msgid "Balance
{{ entry.total | rpamount:{precision: 30, hard_precision: true} }} {{ entry.total | rpcurrency }}" -msgstr "Balance
{{ entry.total | rpamount:{precision: 30, hard_precision: true} }} {{ entry.total | rpcurrency }}" +#: src/templates/tabs/widgets/balances.jade:65 +msgid ""Balance
{{ entry.total | rpamount:{precision: 30, hard_precision: true} }} {{ entry.total | rpcurrency }}"" +msgstr ""Balance
{{ entry.total | rpamount:{precision: 30, hard_precision: true} }} {{ entry.total | rpcurrency }}"" -#: src/jade/tabs/widgets/balances.jade:43 -msgid "Balance
{{ component | rpamount:{precision: 30, rel_min_precision: -2, hard_precision: true} }} {{ entry.total | rpcurrency }}" -msgstr "Balance
{{ component | rpamount:{precision: 30, rel_min_precision: -2, hard_precision: true} }} {{ entry.total | rpcurrency }}" +#: src/templates/tabs/widgets/balances.jade:78 +msgid ""Balance
{{ component | rpamount:{precision: 30, rel_min_precision: -2, hard_precision: true} }} {{ entry.total | rpcurrency }}"" +msgstr ""Balance
{{ component | rpamount:{precision: 30, rel_min_precision: -2, hard_precision: true} }} {{ entry.total | rpcurrency }}"" -#: src/jade/tabs/widgets/markets.jade:3 +#: src/templates/tabs/widgets/markets.jade:4 msgid "Markets" msgstr "Markets" -#: src/jade/tabs/widgets/networth.jade:3 +#: src/templates/tabs/widgets/networth.jade:4 msgid "Net Worth" msgstr "Net Worth" -#: src/jade/tabs/widgets/networth.jade:8 +#: src/templates/tabs/widgets/networth.jade:9 msgid "{{1:{{1:In}}}}{{2}}" msgstr "{{1:{{1:In}}}}{{2}}" -#: src/jade/tabs/widgets/networth.jade:14 +#: src/templates/tabs/widgets/networth.jade:21 msgid "Estimated from latest trade price" msgstr "Estimated from latest trade price" -#: src/jade/tabs/widgets/networth.jade:23 +#: src/templates/tabs/widgets/networth.jade:30 msgid "(excluding negative balances)" msgstr "(excluding negative balances)" -#: src/jade/tabs/widgets/orders.jade:3 +#: src/templates/tabs/widgets/orders.jade:4 msgid "My Orders" msgstr "My Orders" -#: src/jade/tabs/widgets/orders.jade:68 +#: src/templates/tabs/widgets/orders.jade:14 +msgid "Sort by" +msgstr "Sort by" + +#: src/templates/tabs/widgets/orders.jade:97 msgid "trade currencies" msgstr "trade currencies" - -#: src/jade/tabs/xrp.jade:19 -msgid "Ripple name: {{1}}{{2}}{{3}}" -msgstr "Ripple name: {{1}}{{2}}{{3}}" - -#: src/jade/tabs/xrp.jade:21 -msgid "loading..." -msgstr "loading..." - -#: src/jade/tabs/xrp.jade:23 -msgid "Show address" -msgstr "Show address" - -#: src/jade/tabs/xrp.jade:25 -msgid "Ripple names are a new feature on Ripple! Use your Ripple name (~{{userCredentials.username}}) to receive money. You can still use your full Ripple address, and while we are working to transition to Ripple names, some gateways may still ask for your full address." -msgstr "Ripple names are a new feature on Ripple! Use your Ripple name (~{{userCredentials.username}}) to receive money. You can still use your full Ripple address, and while we are working to transition to Ripple names, some gateways may still ask for your full address." diff --git a/package.json b/package.json index c70598c35..51ab32c39 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ripple-client", - "version": "1.3.4-2", + "version": "1.5.1-1", "description": "Trade client for the Ripple payment network", "author": { "name": "Ripple Labs, Inc.", @@ -8,30 +8,12 @@ "url": "https://ripple.com/" }, "dependencies": { - "async": "~0.2.10", - "extend": "~1.2.1", - "grunt": "~0.4.2", - "grunt-bower-task": "~0.4.0", - "grunt-contrib-concat": "~0.3.0", - "grunt-contrib-connect": "~0.5.0", - "grunt-contrib-copy": "~0.4.1", - "grunt-contrib-cssmin": "^0.12.1", - "grunt-contrib-uglify": "~0.2.7", - "grunt-contrib-watch": "~0.5.3", - "grunt-jade-l10n-extractor": "~0.1.2", - "grunt-preprocess": "~4.0.0", - "grunt-recess": "~0.3.5", - "grunt-shell": "^1.1.1", - "grunt-webfont": "~0.3.4", - "grunt-webpack": "~1.0.5", + "gulp-jade-l10n-extractor": "^1.0.1", "jade": "~0.35.0", "jade-l10n": "0.1.x", "jade-l10n-loader": "0.0.x", "jade-loader": "~0.5.2", - "jsdom": "~0.8.11", - "jshint-loader": "~0.5.0", "json-loader": "~0.5.0", - "node-po": "~0.1.2", "protractor": "~1.4.0", "webpack": "~1.3.7" }, @@ -46,19 +28,41 @@ }, "readmeFilename": "README", "devDependencies": { + "browser-sync": "^2.2.3", "chai": "~1.9.1", "chai-as-promised": "~4.1.1", + "connect-logger": "0.0.1", + "connect-modrewrite": "^0.7.11", "coveralls": "^2.11.2", - "delayed-stream": "0.0.5", - "express": "~4.8.7", - "grunt-jscs": "~1.0.0", - "grunt-lesslint": "~1.1.13", + "del": "^1.1.1", + "gulp": "^3.8.11", + "gulp-bower": "0.0.10", + "gulp-csso": "^1.0.0", + "gulp-if": "^1.2.5", + "gulp-jade": "^1.0.0", + "gulp-jade-find-affected": "^0.2.1", + "gulp-jade-l10n-extractor": "^1.0.0", + "gulp-less": "^3.0.1", + "gulp-load-plugins": "^0.8.1", + "gulp-minify-html": "^1.0.1", + "gulp-ng-annotate": "^0.5.2", + "gulp-preprocess": "^1.2.0", + "gulp-rev": "^3.0.1", + "gulp-rev-replace": "^0.4.0", + "gulp-size": "^1.2.1", + "gulp-sync": "^0.1.4", + "gulp-uglify": "^1.1.0", + "gulp-useref": "^1.1.1", + "gulp-watch": "^4.2.4", + "gulp-webpack": "^1.3.0", + "jade": "^0.35.0", "karma": "~0.12.16", "karma-cli": "0.0.4", "karma-coverage": "^0.2.7", "karma-firefox-launcher": "~0.1.3", "karma-mocha": "~0.1.3", + "karma-ng-html2js-preprocessor": "~0.1", "karma-sinon-chai": "~0.1.6", - "mime": "~1.2.11" + "merge-stream": "^0.1.7" } } diff --git a/res/fonts/stylesheet.css b/res/fonts/stylesheet.css index ab06b5766..d5f02ba4a 100644 --- a/res/fonts/stylesheet.css +++ b/res/fonts/stylesheet.css @@ -2,110 +2,110 @@ @font-face { font-family: 'OpenSansLight'; - src: url('OpenSans-Light-webfont.eot'); - src: url('OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'), - url('OpenSans-Light-webfont.woff2') format('woff2'), - url('OpenSans-Light-webfont.woff') format('woff'), - url('OpenSans-Light-webfont.ttf') format('truetype'); + src: url('/fonts/OpenSans-Light-webfont.eot'); + src: url('/fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'), + url('/fonts/OpenSans-Light-webfont.woff2') format('woff2'), + url('/fonts/OpenSans-Light-webfont.woff') format('woff'), + url('/fonts/OpenSans-Light-webfont.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'OpenSansLightItalic'; - src: url('OpenSans-LightItalic-webfont.eot'); - src: url('OpenSans-LightItalic-webfont.eot?#iefix') format('embedded-opentype'), - url('OpenSans-LightItalic-webfont.woff2') format('woff2'), - url('OpenSans-LightItalic-webfont.woff') format('woff'), - url('OpenSans-LightItalic-webfont.ttf') format('truetype'); + src: url('/fonts/OpenSans-LightItalic-webfont.eot'); + src: url('/fonts/OpenSans-LightItalic-webfont.eot?#iefix') format('embedded-opentype'), + url('/fonts/OpenSans-LightItalic-webfont.woff2') format('woff2'), + url('/fonts/OpenSans-LightItalic-webfont.woff') format('woff'), + url('/fonts/OpenSans-LightItalic-webfont.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'OpenSansRegular'; - src: url('OpenSans-Regular-webfont.eot'); - src: url('OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'), - url('OpenSans-Regular-webfont.woff2') format('woff2'), - url('OpenSans-Regular-webfont.woff') format('woff'), - url('OpenSans-Regular-webfont.ttf') format('truetype'); + src: url('/fonts/OpenSans-Regular-webfont.eot'); + src: url('/fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'), + url('/fonts/OpenSans-Regular-webfont.woff2') format('woff2'), + url('/fonts/OpenSans-Regular-webfont.woff') format('woff'), + url('/fonts/OpenSans-Regular-webfont.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'OpenSansItalic'; - src: url('OpenSans-Italic-webfont.eot'); - src: url('OpenSans-Italic-webfont.eot?#iefix') format('embedded-opentype'), - url('OpenSans-Italic-webfont.woff2') format('woff2'), - url('OpenSans-Italic-webfont.woff') format('woff'), - url('OpenSans-Italic-webfont.ttf') format('truetype'); + src: url('/fonts/OpenSans-Italic-webfont.eot'); + src: url('/fonts/OpenSans-Italic-webfont.eot?#iefix') format('embedded-opentype'), + url('/fonts/OpenSans-Italic-webfont.woff2') format('woff2'), + url('/fonts/OpenSans-Italic-webfont.woff') format('woff'), + url('/fonts/OpenSans-Italic-webfont.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'OpenSansSemibold'; - src: url('OpenSans-Semibold-webfont.eot'); - src: url('OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'), - url('OpenSans-Semibold-webfont.woff2') format('woff2'), - url('OpenSans-Semibold-webfont.woff') format('woff'), - url('OpenSans-Semibold-webfont.ttf') format('truetype'); + src: url('/fonts/OpenSans-Semibold-webfont.eot'); + src: url('/fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'), + url('/fonts/OpenSans-Semibold-webfont.woff2') format('woff2'), + url('/fonts/OpenSans-Semibold-webfont.woff') format('woff'), + url('/fonts/OpenSans-Semibold-webfont.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'OpenSansSemiboldItalic'; - src: url('OpenSans-SemiboldItalic-webfont.eot'); - src: url('OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'), - url('OpenSans-SemiboldItalic-webfont.woff2') format('woff2'), - url('OpenSans-SemiboldItalic-webfont.woff') format('woff'), - url('OpenSans-SemiboldItalic-webfont.ttf') format('truetype'); + src: url('/fonts/OpenSans-SemiboldItalic-webfont.eot'); + src: url('/fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'), + url('/fonts/OpenSans-SemiboldItalic-webfont.woff2') format('woff2'), + url('/fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'), + url('/fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'OpenSansBold'; - src: url('OpenSans-Bold-webfont.eot'); - src: url('OpenSans-Bold-webfont.eot?#iefix') format('embedded-opentype'), - url('OpenSans-Bold-webfont.woff2') format('woff2'), - url('OpenSans-Bold-webfont.woff') format('woff'), - url('OpenSans-Bold-webfont.ttf') format('truetype'); + src: url('/fonts/OpenSans-Bold-webfont.eot'); + src: url('/fonts/OpenSans-Bold-webfont.eot?#iefix') format('embedded-opentype'), + url('/fonts/OpenSans-Bold-webfont.woff2') format('woff2'), + url('/fonts/OpenSans-Bold-webfont.woff') format('woff'), + url('/fonts/OpenSans-Bold-webfont.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'OpenSansBoldItalic'; - src: url('OpenSans-BoldItalic-webfont.eot'); - src: url('OpenSans-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'), - url('OpenSans-BoldItalic-webfont.woff2') format('woff2'), - url('OpenSans-BoldItalic-webfont.woff') format('woff'), - url('OpenSans-BoldItalic-webfont.ttf') format('truetype'); + src: url('/fonts/OpenSans-BoldItalic-webfont.eot'); + src: url('/fonts/OpenSans-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'), + url('/fonts/OpenSans-BoldItalic-webfont.woff2') format('woff2'), + url('/fonts/OpenSans-BoldItalic-webfont.woff') format('woff'), + url('/fonts/OpenSans-BoldItalic-webfont.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'OpenSansExtrabold'; - src: url('OpenSans-ExtraBold-webfont.eot'); - src: url('OpenSans-ExtraBold-webfont.eot?#iefix') format('embedded-opentype'), - url('OpenSans-ExtraBold-webfont.woff2') format('woff2'), - url('OpenSans-ExtraBold-webfont.woff') format('woff'), - url('OpenSans-ExtraBold-webfont.ttf') format('truetype'); + src: url('/fonts/OpenSans-ExtraBold-webfont.eot'); + src: url('/fonts/OpenSans-ExtraBold-webfont.eot?#iefix') format('embedded-opentype'), + url('/fonts/OpenSans-ExtraBold-webfont.woff2') format('woff2'), + url('/fonts/OpenSans-ExtraBold-webfont.woff') format('woff'), + url('/fonts/OpenSans-ExtraBold-webfont.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'OpenSansExtraboldItalic'; - src: url('OpenSans-ExtraBoldItalic-webfont.eot'); - src: url('OpenSans-ExtraBoldItalic-webfont.eot?#iefix') format('embedded-opentype'), - url('OpenSans-ExtraBoldItalic-webfont.woff2') format('woff2'), - url('OpenSans-ExtraBoldItalic-webfont.woff') format('woff'), - url('OpenSans-ExtraBoldItalic-webfont.ttf') format('truetype'); + src: url('/fonts/OpenSans-ExtraBoldItalic-webfont.eot'); + src: url('/fonts/OpenSans-ExtraBoldItalic-webfont.eot?#iefix') format('embedded-opentype'), + url('/fonts/OpenSans-ExtraBoldItalic-webfont.woff2') format('woff2'), + url('/fonts/OpenSans-ExtraBoldItalic-webfont.woff') format('woff'), + url('/fonts/OpenSans-ExtraBoldItalic-webfont.ttf') format('truetype'); font-weight: normal; font-style: normal; } diff --git a/res/fonts/stylesheet.min.css b/res/fonts/stylesheet.min.css deleted file mode 100644 index f1de5b623..000000000 --- a/res/fonts/stylesheet.min.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:OpenSansLight;src:url(OpenSans-Light-webfont.eot);src:url(OpenSans-Light-webfont.eot?#iefix) format('embedded-opentype'),url(OpenSans-Light-webfont.woff2) format('woff2'),url(OpenSans-Light-webfont.woff) format('woff'),url(OpenSans-Light-webfont.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:OpenSansLightItalic;src:url(OpenSans-LightItalic-webfont.eot);src:url(OpenSans-LightItalic-webfont.eot?#iefix) format('embedded-opentype'),url(OpenSans-LightItalic-webfont.woff2) format('woff2'),url(OpenSans-LightItalic-webfont.woff) format('woff'),url(OpenSans-LightItalic-webfont.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:OpenSansRegular;src:url(OpenSans-Regular-webfont.eot);src:url(OpenSans-Regular-webfont.eot?#iefix) format('embedded-opentype'),url(OpenSans-Regular-webfont.woff2) format('woff2'),url(OpenSans-Regular-webfont.woff) format('woff'),url(OpenSans-Regular-webfont.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:OpenSansItalic;src:url(OpenSans-Italic-webfont.eot);src:url(OpenSans-Italic-webfont.eot?#iefix) format('embedded-opentype'),url(OpenSans-Italic-webfont.woff2) format('woff2'),url(OpenSans-Italic-webfont.woff) format('woff'),url(OpenSans-Italic-webfont.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:OpenSansSemibold;src:url(OpenSans-Semibold-webfont.eot);src:url(OpenSans-Semibold-webfont.eot?#iefix) format('embedded-opentype'),url(OpenSans-Semibold-webfont.woff2) format('woff2'),url(OpenSans-Semibold-webfont.woff) format('woff'),url(OpenSans-Semibold-webfont.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:OpenSansSemiboldItalic;src:url(OpenSans-SemiboldItalic-webfont.eot);src:url(OpenSans-SemiboldItalic-webfont.eot?#iefix) format('embedded-opentype'),url(OpenSans-SemiboldItalic-webfont.woff2) format('woff2'),url(OpenSans-SemiboldItalic-webfont.woff) format('woff'),url(OpenSans-SemiboldItalic-webfont.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:OpenSansBold;src:url(OpenSans-Bold-webfont.eot);src:url(OpenSans-Bold-webfont.eot?#iefix) format('embedded-opentype'),url(OpenSans-Bold-webfont.woff2) format('woff2'),url(OpenSans-Bold-webfont.woff) format('woff'),url(OpenSans-Bold-webfont.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:OpenSansBoldItalic;src:url(OpenSans-BoldItalic-webfont.eot);src:url(OpenSans-BoldItalic-webfont.eot?#iefix) format('embedded-opentype'),url(OpenSans-BoldItalic-webfont.woff2) format('woff2'),url(OpenSans-BoldItalic-webfont.woff) format('woff'),url(OpenSans-BoldItalic-webfont.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:OpenSansExtrabold;src:url(OpenSans-ExtraBold-webfont.eot);src:url(OpenSans-ExtraBold-webfont.eot?#iefix) format('embedded-opentype'),url(OpenSans-ExtraBold-webfont.woff2) format('woff2'),url(OpenSans-ExtraBold-webfont.woff) format('woff'),url(OpenSans-ExtraBold-webfont.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:OpenSansExtraboldItalic;src:url(OpenSans-ExtraBoldItalic-webfont.eot);src:url(OpenSans-ExtraBoldItalic-webfont.eot?#iefix) format('embedded-opentype'),url(OpenSans-ExtraBoldItalic-webfont.woff2) format('woff2'),url(OpenSans-ExtraBoldItalic-webfont.woff) format('woff'),url(OpenSans-ExtraBoldItalic-webfont.ttf) format('truetype');font-weight:400;font-style:normal} \ No newline at end of file diff --git a/res/icons/font/icons.less b/res/icons/font/icons.less index dea354bef..941309d0e 100644 --- a/res/icons/font/icons.less +++ b/res/icons/font/icons.less @@ -3,11 +3,11 @@ @font-face { font-family:"icons"; - src:url("../res/icons/font/icons-51c446195575425cef2ecd7189d41eec.eot"); - src:url("../res/icons/font/icons-51c446195575425cef2ecd7189d41eec.eot?#iefix") format("embedded-opentype"), - url("../res/icons/font/icons-51c446195575425cef2ecd7189d41eec.woff") format("woff"), - url("../res/icons/font/icons-51c446195575425cef2ecd7189d41eec.ttf") format("truetype"), - url("../res/icons/font/icons-51c446195575425cef2ecd7189d41eec.svg?#icons") format("svg"); + src:url("/icons/font/icons-51c446195575425cef2ecd7189d41eec.eot"); + src:url("/icons/font/icons-51c446195575425cef2ecd7189d41eec.eot?#iefix") format("embedded-opentype"), + url("/icons/font/icons-51c446195575425cef2ecd7189d41eec.woff") format("woff"), + url("/icons/font/icons-51c446195575425cef2ecd7189d41eec.ttf") format("truetype"), + url("/icons/font/icons-51c446195575425cef2ecd7189d41eec.svg?#icons") format("svg"); font-weight:normal; font-style:normal; } diff --git a/scripts/dummy-bridge.js b/scripts/dummy-bridge.js deleted file mode 100644 index 7e3326459..000000000 --- a/scripts/dummy-bridge.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * This is a simple dummy server for the Bitcoin bridge protocol. - * - * This can be used to do some basic testing against the protocol. - */ - -var express = require('express'), - ripple = require('ripple-lib'), - Amount = ripple.Amount; - -var app = express(); - -app.options('/out', function (req, res) { - res.header("Access-Control-Allow-Origin", "*"); - res.header("Access-Control-Allow-Headers", "X-Requested-With"); - res.end(); -}); - -app.get('/out', function(req, res){ - res.header("Access-Control-Allow-Origin", "*"); - res.header("Access-Control-Allow-Headers", "X-Requested-With"); - - var type = req.query.type; - var amount = Amount.from_json(req.query.amount); - - if (type !== "quote") { - throw new Error("This dummy server only understands quote requests."); - } - - if (!amount.is_valid()) { - throw new Error("Invalid amount"); - } - - if (amount.currency().to_json() !== "BTC") { - throw new Error("Currency must be BTC."); - } - - amount.set_issuer("rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B"); - - res.json({ - "type": "ripple.bridge.out.bitcoin.quote.1", - "quote": { - "send" : [amount.to_json()], - "address": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "bitcoin_amount": amount.to_text(), - "destination_tag": 15, - "expires": Math.floor(new Date().getTime()/1000) + 15 * 60 - }, - "status" : "success" - }); -}); - -app.listen(3000); diff --git a/scripts/livereload.js b/scripts/livereload.js deleted file mode 100644 index 5700e1e0d..000000000 --- a/scripts/livereload.js +++ /dev/null @@ -1,1056 +0,0 @@ -(function() { -var __customevents = {}, __protocol = {}, __connector = {}, __timer = {}, __options = {}, __reloader = {}, __livereload = {}, __less = {}, __startup = {}; - -// customevents -var CustomEvents; -CustomEvents = { - bind: function(element, eventName, handler) { - if (element.addEventListener) { - return element.addEventListener(eventName, handler, false); - } else if (element.attachEvent) { - element[eventName] = 1; - return element.attachEvent('onpropertychange', function(event) { - if (event.propertyName === eventName) { - return handler(); - } - }); - } else { - throw new Error("Attempt to attach custom event " + eventName + " to something which isn't a DOMElement"); - } - }, - fire: function(element, eventName) { - var event; - if (element.addEventListener) { - event = document.createEvent('HTMLEvents'); - event.initEvent(eventName, true, true); - return document.dispatchEvent(event); - } else if (element.attachEvent) { - if (element[eventName]) { - return element[eventName]++; - } - } else { - throw new Error("Attempt to fire custom event " + eventName + " on something which isn't a DOMElement"); - } - } -}; -__customevents.bind = CustomEvents.bind; -__customevents.fire = CustomEvents.fire; - -// protocol -var PROTOCOL_6, PROTOCOL_7, Parser, ProtocolError; -var __indexOf = Array.prototype.indexOf || function(item) { - for (var i = 0, l = this.length; i < l; i++) { - if (this[i] === item) return i; - } - return -1; -}; -__protocol.PROTOCOL_6 = PROTOCOL_6 = 'http://livereload.com/protocols/official-6'; -__protocol.PROTOCOL_7 = PROTOCOL_7 = 'http://livereload.com/protocols/official-7'; -__protocol.ProtocolError = ProtocolError = (function() { - function ProtocolError(reason, data) { - this.message = "LiveReload protocol error (" + reason + ") after receiving data: \"" + data + "\"."; - } - return ProtocolError; -})(); -__protocol.Parser = Parser = (function() { - function Parser(handlers) { - this.handlers = handlers; - this.reset(); - } - Parser.prototype.reset = function() { - return this.protocol = null; - }; - Parser.prototype.process = function(data) { - var command, message, options, _ref; - try { - if (!(this.protocol != null)) { - if (data.match(/^!!ver:([\d.]+)$/)) { - this.protocol = 6; - } else if (message = this._parseMessage(data, ['hello'])) { - if (!message.protocols.length) { - throw new ProtocolError("no protocols specified in handshake message"); - } else if (__indexOf.call(message.protocols, PROTOCOL_7) >= 0) { - this.protocol = 7; - } else if (__indexOf.call(message.protocols, PROTOCOL_6) >= 0) { - this.protocol = 6; - } else { - throw new ProtocolError("no supported protocols found"); - } - } - return this.handlers.connected(this.protocol); - } else if (this.protocol === 6) { - message = JSON.parse(data); - if (!message.length) { - throw new ProtocolError("protocol 6 messages must be arrays"); - } - command = message[0], options = message[1]; - if (command !== 'refresh') { - throw new ProtocolError("unknown protocol 6 command"); - } - return this.handlers.message({ - command: 'reload', - path: options.path, - liveCSS: (_ref = options.apply_css_live) != null ? _ref : true - }); - } else { - message = this._parseMessage(data, ['reload', 'alert']); - return this.handlers.message(message); - } - } catch (e) { - if (e instanceof ProtocolError) { - return this.handlers.error(e); - } else { - throw e; - } - } - }; - Parser.prototype._parseMessage = function(data, validCommands) { - var message, _ref; - try { - message = JSON.parse(data); - } catch (e) { - throw new ProtocolError('unparsable JSON', data); - } - if (!message.command) { - throw new ProtocolError('missing "command" key', data); - } - if (_ref = message.command, __indexOf.call(validCommands, _ref) < 0) { - throw new ProtocolError("invalid command '" + message.command + "', only valid commands are: " + (validCommands.join(', ')) + ")", data); - } - return message; - }; - return Parser; -})(); - -// connector -// Generated by CoffeeScript 1.3.3 -var Connector, Version, _ref; - -_ref = __protocol, Parser = _ref.Parser, PROTOCOL_6 = _ref.PROTOCOL_6, PROTOCOL_7 = _ref.PROTOCOL_7; - -Version = '2.0.8'; - -__connector.Connector = Connector = (function() { - - function Connector(options, WebSocket, Timer, handlers) { - var _this = this; - this.options = options; - this.WebSocket = WebSocket; - this.Timer = Timer; - this.handlers = handlers; - this._uri = "ws://" + this.options.host + ":" + this.options.port + "/livereload"; - this._nextDelay = this.options.mindelay; - this._connectionDesired = false; - this.protocol = 0; - this.protocolParser = new Parser({ - connected: function(protocol) { - _this.protocol = protocol; - _this._handshakeTimeout.stop(); - _this._nextDelay = _this.options.mindelay; - _this._disconnectionReason = 'broken'; - return _this.handlers.connected(protocol); - }, - error: function(e) { - _this.handlers.error(e); - return _this._closeOnError(); - }, - message: function(message) { - return _this.handlers.message(message); - } - }); - this._handshakeTimeout = new Timer(function() { - if (!_this._isSocketConnected()) { - return; - } - _this._disconnectionReason = 'handshake-timeout'; - return _this.socket.close(); - }); - this._reconnectTimer = new Timer(function() { - if (!_this._connectionDesired) { - return; - } - return _this.connect(); - }); - this.connect(); - } - - Connector.prototype._isSocketConnected = function() { - return this.socket && this.socket.readyState === this.WebSocket.OPEN; - }; - - Connector.prototype.connect = function() { - var _this = this; - this._connectionDesired = true; - if (this._isSocketConnected()) { - return; - } - this._reconnectTimer.stop(); - this._disconnectionReason = 'cannot-connect'; - this.protocolParser.reset(); - this.handlers.connecting(); - this.socket = new this.WebSocket(this._uri); - this.socket.onopen = function(e) { - return _this._onopen(e); - }; - this.socket.onclose = function(e) { - return _this._onclose(e); - }; - this.socket.onmessage = function(e) { - return _this._onmessage(e); - }; - return this.socket.onerror = function(e) { - return _this._onerror(e); - }; - }; - - Connector.prototype.disconnect = function() { - this._connectionDesired = false; - this._reconnectTimer.stop(); - if (!this._isSocketConnected()) { - return; - } - this._disconnectionReason = 'manual'; - return this.socket.close(); - }; - - Connector.prototype._scheduleReconnection = function() { - if (!this._connectionDesired) { - return; - } - if (!this._reconnectTimer.running) { - this._reconnectTimer.start(this._nextDelay); - return this._nextDelay = Math.min(this.options.maxdelay, this._nextDelay * 2); - } - }; - - Connector.prototype.sendCommand = function(command) { - if (this.protocol == null) { - return; - } - return this._sendCommand(command); - }; - - Connector.prototype._sendCommand = function(command) { - return this.socket.send(JSON.stringify(command)); - }; - - Connector.prototype._closeOnError = function() { - this._handshakeTimeout.stop(); - this._disconnectionReason = 'error'; - return this.socket.close(); - }; - - Connector.prototype._onopen = function(e) { - var hello; - this.handlers.socketConnected(); - this._disconnectionReason = 'handshake-failed'; - hello = { - command: 'hello', - protocols: [PROTOCOL_6, PROTOCOL_7] - }; - hello.ver = Version; - if (this.options.ext) { - hello.ext = this.options.ext; - } - if (this.options.extver) { - hello.extver = this.options.extver; - } - if (this.options.snipver) { - hello.snipver = this.options.snipver; - } - this._sendCommand(hello); - return this._handshakeTimeout.start(this.options.handshake_timeout); - }; - - Connector.prototype._onclose = function(e) { - this.protocol = 0; - this.handlers.disconnected(this._disconnectionReason, this._nextDelay); - return this._scheduleReconnection(); - }; - - Connector.prototype._onerror = function(e) {}; - - Connector.prototype._onmessage = function(e) { - return this.protocolParser.process(e.data); - }; - - return Connector; - -})(); - -// timer -var Timer; -var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; -__timer.Timer = Timer = (function() { - function Timer(func) { - this.func = func; - this.running = false; - this.id = null; - this._handler = __bind(function() { - this.running = false; - this.id = null; - return this.func(); - }, this); - } - Timer.prototype.start = function(timeout) { - if (this.running) { - clearTimeout(this.id); - } - this.id = setTimeout(this._handler, timeout); - return this.running = true; - }; - Timer.prototype.stop = function() { - if (this.running) { - clearTimeout(this.id); - this.running = false; - return this.id = null; - } - }; - return Timer; -})(); -Timer.start = function(timeout, func) { - return setTimeout(func, timeout); -}; - -// options -var Options; -__options.Options = Options = (function() { - function Options() { - this.host = null; - this.port = 35729; - this.snipver = null; - this.ext = null; - this.extver = null; - this.mindelay = 1000; - this.maxdelay = 60000; - this.handshake_timeout = 5000; - } - Options.prototype.set = function(name, value) { - switch (typeof this[name]) { - case 'undefined': - break; - case 'number': - return this[name] = +value; - default: - return this[name] = value; - } - }; - return Options; -})(); -Options.extract = function(document) { - var element, keyAndValue, m, mm, options, pair, src, _i, _j, _len, _len2, _ref, _ref2; - _ref = document.getElementsByTagName('script'); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - element = _ref[_i]; - if ((src = element.src) && (m = src.match(/^[^:]+:\/\/(.*)\/z?livereload\.js(?:\?(.*))?$/))) { - options = new Options(); - if (mm = m[1].match(/^([^\/:]+)(?::(\d+))?$/)) { - options.host = mm[1]; - if (mm[2]) { - options.port = parseInt(mm[2], 10); - } - } - if (m[2]) { - _ref2 = m[2].split('&'); - for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) { - pair = _ref2[_j]; - if ((keyAndValue = pair.split('=')).length > 1) { - options.set(keyAndValue[0].replace(/-/g, '_'), keyAndValue.slice(1).join('=')); - } - } - } - return options; - } - } - return null; -}; - -// reloader -// Generated by CoffeeScript 1.3.1 -(function() { - var IMAGE_STYLES, Reloader, numberOfMatchingSegments, pathFromUrl, pathsMatch, pickBestMatch, splitUrl; - - splitUrl = function(url) { - var hash, index, params; - if ((index = url.indexOf('#')) >= 0) { - hash = url.slice(index); - url = url.slice(0, index); - } else { - hash = ''; - } - if ((index = url.indexOf('?')) >= 0) { - params = url.slice(index); - url = url.slice(0, index); - } else { - params = ''; - } - return { - url: url, - params: params, - hash: hash - }; - }; - - pathFromUrl = function(url) { - var path; - url = splitUrl(url).url; - if (url.indexOf('file://') === 0) { - path = url.replace(/^file:\/\/(localhost)?/, ''); - } else { - path = url.replace(/^([^:]+:)?\/\/([^:\/]+)(:\d*)?\//, '/'); - } - return decodeURIComponent(path); - }; - - pickBestMatch = function(path, objects, pathFunc) { - var bestMatch, object, score, _i, _len; - bestMatch = { - score: 0 - }; - for (_i = 0, _len = objects.length; _i < _len; _i++) { - object = objects[_i]; - score = numberOfMatchingSegments(path, pathFunc(object)); - if (score > bestMatch.score) { - bestMatch = { - object: object, - score: score - }; - } - } - if (bestMatch.score > 0) { - return bestMatch; - } else { - return null; - } - }; - - numberOfMatchingSegments = function(path1, path2) { - var comps1, comps2, eqCount, len; - path1 = path1.replace(/^\/+/, '').toLowerCase(); - path2 = path2.replace(/^\/+/, '').toLowerCase(); - if (path1 === path2) { - return 10000; - } - comps1 = path1.split('/').reverse(); - comps2 = path2.split('/').reverse(); - len = Math.min(comps1.length, comps2.length); - eqCount = 0; - while (eqCount < len && comps1[eqCount] === comps2[eqCount]) { - ++eqCount; - } - return eqCount; - }; - - pathsMatch = function(path1, path2) { - return numberOfMatchingSegments(path1, path2) > 0; - }; - - IMAGE_STYLES = [ - { - selector: 'background', - styleNames: ['backgroundImage'] - }, { - selector: 'border', - styleNames: ['borderImage', 'webkitBorderImage', 'MozBorderImage'] - } - ]; - - __reloader.Reloader = Reloader = (function() { - - Reloader.name = 'Reloader'; - - function Reloader(window, console, Timer) { - this.window = window; - this.console = console; - this.Timer = Timer; - this.document = this.window.document; - this.importCacheWaitPeriod = 200; - this.plugins = []; - } - - Reloader.prototype.addPlugin = function(plugin) { - return this.plugins.push(plugin); - }; - - Reloader.prototype.analyze = function(callback) { - return results; - }; - - Reloader.prototype.reload = function(path, options) { - var plugin, _base, _i, _len, _ref; - this.options = options; - if ((_base = this.options).stylesheetReloadTimeout == null) { - _base.stylesheetReloadTimeout = 15000; - } - _ref = this.plugins; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - plugin = _ref[_i]; - if (plugin.reload && plugin.reload(path, options)) { - return; - } - } - if (options.liveCSS) { - if (path.match(/\.css$/i)) { - if (this.reloadStylesheet(path)) { - return; - } - } - } - if (options.liveImg) { - if (path.match(/\.(jpe?g|png|gif)$/i)) { - this.reloadImages(path); - return; - } - } - return this.reloadPage(); - }; - - Reloader.prototype.reloadPage = function() { - return this.window.document.location.reload(); - }; - - Reloader.prototype.reloadImages = function(path) { - var expando, img, selector, styleNames, styleSheet, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref, _ref1, _ref2, _ref3, _results; - expando = this.generateUniqueString(); - _ref = this.document.images; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - img = _ref[_i]; - if (pathsMatch(path, pathFromUrl(img.src))) { - img.src = this.generateCacheBustUrl(img.src, expando); - } - } - if (this.document.querySelectorAll) { - for (_j = 0, _len1 = IMAGE_STYLES.length; _j < _len1; _j++) { - _ref1 = IMAGE_STYLES[_j], selector = _ref1.selector, styleNames = _ref1.styleNames; - _ref2 = this.document.querySelectorAll("[style*=" + selector + "]"); - for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) { - img = _ref2[_k]; - this.reloadStyleImages(img.style, styleNames, path, expando); - } - } - } - if (this.document.styleSheets) { - _ref3 = this.document.styleSheets; - _results = []; - for (_l = 0, _len3 = _ref3.length; _l < _len3; _l++) { - styleSheet = _ref3[_l]; - _results.push(this.reloadStylesheetImages(styleSheet, path, expando)); - } - return _results; - } - }; - - Reloader.prototype.reloadStylesheetImages = function(styleSheet, path, expando) { - var rule, rules, styleNames, _i, _j, _len, _len1; - try { - rules = styleSheet != null ? styleSheet.cssRules : void 0; - } catch (e) { - - } - if (!rules) { - return; - } - for (_i = 0, _len = rules.length; _i < _len; _i++) { - rule = rules[_i]; - switch (rule.type) { - case CSSRule.IMPORT_RULE: - this.reloadStylesheetImages(rule.styleSheet, path, expando); - break; - case CSSRule.STYLE_RULE: - for (_j = 0, _len1 = IMAGE_STYLES.length; _j < _len1; _j++) { - styleNames = IMAGE_STYLES[_j].styleNames; - this.reloadStyleImages(rule.style, styleNames, path, expando); - } - break; - case CSSRule.MEDIA_RULE: - this.reloadStylesheetImages(rule, path, expando); - } - } - }; - - Reloader.prototype.reloadStyleImages = function(style, styleNames, path, expando) { - var newValue, styleName, value, _i, _len, - _this = this, _urlMatch; - _urlMatch = function(match, src) { - if (pathsMatch(path, pathFromUrl(src))) { - return "url(" + (_this.generateCacheBustUrl(src, expando)) + ")"; - } else { - return match; - } - }; - for (_i = 0, _len = styleNames.length; _i < _len; _i++) { - styleName = styleNames[_i]; - value = style[styleName]; - if (typeof value === 'string') { - newValue = value.replace(/\burl\s*\(([^)]*)\)/, _urlMatch); - if (newValue !== value) { - style[styleName] = newValue; - } - } - } - }; - - Reloader.prototype.reloadStylesheet = function(path) { - var imported, link, links, match, style, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref, _ref1, - _this = this; - links = (function() { - var _i, _len, _ref, _results; - _ref = this.document.getElementsByTagName('link'); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - link = _ref[_i]; - if (link.rel === 'stylesheet' && !link.__LiveReload_pendingRemoval) { - _results.push(link); - } - } - return _results; - }).call(this); - imported = []; - _ref = this.document.getElementsByTagName('style'); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - style = _ref[_i]; - if (style.sheet) { - this.collectImportedStylesheets(style, style.sheet, imported); - } - } - for (_j = 0, _len1 = links.length; _j < _len1; _j++) { - link = links[_j]; - this.collectImportedStylesheets(link, link.sheet, imported); - } - if (this.window.StyleFix && this.document.querySelectorAll) { - _ref1 = this.document.querySelectorAll('style[data-href]'); - for (_k = 0, _len2 = _ref1.length; _k < _len2; _k++) { - style = _ref1[_k]; - links.push(style); - } - } - this.console.log("LiveReload found " + links.length + " LINKed stylesheets, " + imported.length + " @imported stylesheets"); - match = pickBestMatch(path, links.concat(imported), function(l) { - return pathFromUrl(_this.linkHref(l)); - }); - if (match) { - if (match.object.rule) { - this.console.log("LiveReload is reloading imported stylesheet: " + match.object.href); - this.reattachImportedRule(match.object); - } else { - this.console.log("LiveReload is reloading stylesheet: " + (this.linkHref(match.object))); - this.reattachStylesheetLink(match.object); - } - } else { - this.console.log("LiveReload will reload all stylesheets because path '" + path + "' did not match any specific one"); - for (_l = 0, _len3 = links.length; _l < _len3; _l++) { - link = links[_l]; - this.reattachStylesheetLink(link); - } - } - return true; - }; - - Reloader.prototype.collectImportedStylesheets = function(link, styleSheet, result) { - var index, rule, rules, _i, _len; - try { - rules = styleSheet != null ? styleSheet.cssRules : void 0; - } catch (e) { - - } - if (rules && rules.length) { - for (index = _i = 0, _len = rules.length; _i < _len; index = ++_i) { - rule = rules[index]; - switch (rule.type) { - case CSSRule.CHARSET_RULE: - continue; - case CSSRule.IMPORT_RULE: - result.push({ - link: link, - rule: rule, - index: index, - href: rule.href - }); - this.collectImportedStylesheets(link, rule.styleSheet, result); - break; - default: - break; - } - } - } - }; - - Reloader.prototype.waitUntilCssLoads = function(clone, func) { - var callbackExecuted, executeCallback, poll, - _this = this; - callbackExecuted = false; - executeCallback = function() { - if (callbackExecuted) { - return; - } - callbackExecuted = true; - return func(); - }; - clone.onload = function() { - console.log("onload!"); - _this.knownToSupportCssOnLoad = true; - return executeCallback(); - }; - if (!this.knownToSupportCssOnLoad) { - (poll = function() { - if (clone.sheet) { - console.log("polling!"); - return executeCallback(); - } else { - return _this.Timer.start(50, poll); - } - })(); - } - return this.Timer.start(this.options.stylesheetReloadTimeout, executeCallback); - }; - - Reloader.prototype.linkHref = function(link) { - return link.href || link.getAttribute('data-href'); - }; - - Reloader.prototype.reattachStylesheetLink = function(link) { - var clone, parent, - _this = this; - if (link.__LiveReload_pendingRemoval) { - return; - } - link.__LiveReload_pendingRemoval = true; - if (link.tagName === 'STYLE') { - clone = this.document.createElement('link'); - clone.rel = 'stylesheet'; - clone.media = link.media; - clone.disabled = link.disabled; - } else { - clone = link.cloneNode(false); - } - clone.href = this.generateCacheBustUrl(this.linkHref(link)); - parent = link.parentNode; - if (parent.lastChild === link) { - parent.appendChild(clone); - } else { - parent.insertBefore(clone, link.nextSibling); - } - return this.waitUntilCssLoads(clone, function() { - var additionalWaitingTime; - if (/AppleWebKit/.test(navigator.userAgent)) { - additionalWaitingTime = 5; - } else { - additionalWaitingTime = 200; - } - return _this.Timer.start(additionalWaitingTime, function() { - var _ref; - if (!link.parentNode) { - return; - } - link.parentNode.removeChild(link); - clone.onreadystatechange = null; - return (_ref = _this.window.StyleFix) != null ? _ref.link(clone) : void 0; - }); - }); - }; - - Reloader.prototype.reattachImportedRule = function(_arg) { - var href, index, link, media, newRule, parent, rule, tempLink, - _this = this; - rule = _arg.rule, index = _arg.index, link = _arg.link; - parent = rule.parentStyleSheet; - href = this.generateCacheBustUrl(rule.href); - media = rule.media.length ? [].join.call(rule.media, ', ') : ''; - newRule = "@import url(\"" + href + "\") " + media + ";"; - rule.__LiveReload_newHref = href; - tempLink = this.document.createElement("link"); - tempLink.rel = 'stylesheet'; - tempLink.href = href; - tempLink.__LiveReload_pendingRemoval = true; - if (link.parentNode) { - link.parentNode.insertBefore(tempLink, link); - } - return this.Timer.start(this.importCacheWaitPeriod, function() { - if (tempLink.parentNode) { - tempLink.parentNode.removeChild(tempLink); - } - if (rule.__LiveReload_newHref !== href) { - return; - } - parent.insertRule(newRule, index); - parent.deleteRule(index + 1); - rule = parent.cssRules[index]; - rule.__LiveReload_newHref = href; - return _this.Timer.start(_this.importCacheWaitPeriod, function() { - if (rule.__LiveReload_newHref !== href) { - return; - } - parent.insertRule(newRule, index); - return parent.deleteRule(index + 1); - }); - }); - }; - - Reloader.prototype.generateUniqueString = function() { - return 'livereload=' + Date.now(); - }; - - Reloader.prototype.generateCacheBustUrl = function(url, expando) { - var hash, oldParams, params, _ref; - if (expando == null) { - expando = this.generateUniqueString(); - } - _ref = splitUrl(url), url = _ref.url, hash = _ref.hash, oldParams = _ref.params; - if (this.options.overrideURL) { - if (url.indexOf(this.options.serverURL) < 0) { - url = this.options.serverURL + this.options.overrideURL + "?url=" + encodeURIComponent(url); - } - } - params = oldParams.replace(/(\?|&)livereload=(\d+)/, function(match, sep) { - return "" + sep + expando; - }); - if (params === oldParams) { - if (oldParams.length === 0) { - params = "?" + expando; - } else { - params = "" + oldParams + "&" + expando; - } - } - return url + params + hash; - }; - - return Reloader; - - })(); - -}).call(this); - -// livereload -var Connector, LiveReload, Options, Reloader, Timer; - -Connector = __connector.Connector; - -Timer = __timer.Timer; - -Options = __options.Options; - -Reloader = __reloader.Reloader; - -__livereload.LiveReload = LiveReload = (function() { - - function LiveReload(window) { - var _this = this; - this.window = window; - this.listeners = {}; - this.plugins = []; - this.pluginIdentifiers = {}; - this.console = this.window.location.href.match(/LR-verbose/) && this.window.console && this.window.console.log && this.window.console.error ? this.window.console : { - log: function() {}, - error: function() {} - }; - if (!(this.WebSocket = this.window.WebSocket || this.window.MozWebSocket)) { - console.error("LiveReload disabled because the browser does not seem to support web sockets"); - return; - } - if (!(this.options = Options.extract(this.window.document))) { - console.error("LiveReload disabled because it could not find its own - -
- -
\ No newline at end of file diff --git a/src/index.html b/src/index.html deleted file mode 100644 index 82db8940a..000000000 --- a/src/index.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - Ripple Trade - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - -
[unprocessed]
- -
-

We apologize, but the Ripple Client needs JavaScript and WebSockets in order to function.
- Please refer to this page and download a browser that supports WebSockets. Thank you!
- http://caniuse.com/websockets -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/jade/directives/addresspopover.jade b/src/jade/directives/addresspopover.jade deleted file mode 100644 index d7148fe98..000000000 --- a/src/jade/directives/addresspopover.jade +++ /dev/null @@ -1,8 +0,0 @@ -div - div(ng-show="summ") {{ summ }} - span(l10n, ng-show="type==1 && identity") Ripple address {{ identity }} - div(ng-show="type==2") - div(ng-show="rippleName") {{ rippleName }} - span {{ identity }} - br - a(l10n, target="_blank", href="http://www.ripplecharts.com/#/graph/{{ identity }}") Show in graph diff --git a/src/jade/notification/account.jade b/src/jade/notification/account.jade deleted file mode 100644 index 7ee449bfb..000000000 --- a/src/jade/notification/account.jade +++ /dev/null @@ -1,33 +0,0 @@ -case tx.type - when "sent" - .type-info(l10n) You sent - span.number {{tx.amount | rpamount}} - | - span.currency {{tx.currency}} - | to - span(title="{{tx.counterparty}}") {{tx.counterparty | rpcontactname}} - when "received" - .type-success - span(title="{{tx.counterparty}}", l10n) {{tx.counterparty | rpcontactname}} sent you - | - span.number {{tx.amount | rpamount}} - | - span.currency {{tx.currency}} - when "trusted" - .type-success - span(title="{{tx.counterparty}}", l10n) {{tx.counterparty | rpcontactname}} now trusts you for - | - span.number {{tx.amount | rpamount}} - | - span.currency {{tx.currency}} - when "trusting" - .type-success - span(title="{{tx.counterparty}}", l10n) You have now connected to the gateway - span - | {{tx.counterparty | rpcontactname}} - span(l10n-inc) for - span - span.number {{tx.amount | rpamount}} - | - span.currency {{tx.currency}} - | . diff --git a/src/jade/tabs/2fa/form.jade b/src/jade/tabs/2fa/form.jade deleted file mode 100644 index 79a344a6e..000000000 --- a/src/jade/tabs/2fa/form.jade +++ /dev/null @@ -1,7 +0,0 @@ -.col-xs-12.col-sm-8 - .form-group.authy-control - label(l10n) Country Code - input.authy-countries.form-control(ng-model="countryCode") - .form-group.authy-control - label(l10n) Phone Number - input.form-control(name="phoneNumber", ng-model="phoneNumber", ng-pattern='validation_pattern_phone') \ No newline at end of file diff --git a/src/jade/tabs/404.jade b/src/jade/tabs/404.jade deleted file mode 100644 index 24a290c0c..000000000 --- a/src/jade/tabs/404.jade +++ /dev/null @@ -1,10 +0,0 @@ -section.col-xs-12.content(ng-controller="NotFoundCtrl") - .not-found-wrapper-row.row - .col-xs-12.text-center - h3.not-found-title - | 404 - p.not-found-text - | Page cannot be found - hr - p - a(href=location.pathname) Return to Ripple Trade homepage \ No newline at end of file diff --git a/src/jade/tabs/account/private.jade b/src/jade/tabs/account/private.jade deleted file mode 100644 index d7010c8da..000000000 --- a/src/jade/tabs/account/private.jade +++ /dev/null @@ -1,19 +0,0 @@ -h4(l10n) Profile Information -.section - .descriptor(l10n) Identity Information - .row.public-account-row - .col-xs-12.col-sm-9 - span(ng-switch on="profileStatus") - span(ng-switch-when="loading", l10n) Loading... - span(ng-switch-when="complete", l10n) Completed - span(ng-switch-when="incomplete", l10n) Incomplete - a(ng-switch-when="incomplete", href="#/kyc", l10n) Complete your profile -.section - .descriptor(l10n) Identity Questions - .row.public-account-row - .col-xs-12.col-sm-9 - span(ng-switch on="identityStatus") - span(ng-switch-when="loading", l10n) Loading... - span(ng-switch-when="complete", l10n) Completed - span(ng-switch-when="incomplete", l10n) Incomplete - a(ng-switch-when="incomplete", href="#/kyc", l10n) Complete your profile \ No newline at end of file diff --git a/src/jade/tabs/account/public.jade b/src/jade/tabs/account/public.jade deleted file mode 100644 index 252414b52..000000000 --- a/src/jade/tabs/account/public.jade +++ /dev/null @@ -1,65 +0,0 @@ -.alert.alert-warning(ng-show="loading", l10n) Changing your Ripple name... -.alert.alert-success(ng-show="success", l10n) Your Ripple name has been changed successfully. -h4(l10n) Account settings -.section - .descriptor(l10n) Ripple name - .row.public-account-row - .col-xs-9.col-sm-6.username ~{{userCredentials.username}} - .col-xs-3.col-sm-3.edit-account-btn-wrapper - a.btn.btn-cancel.btn-block(href="", ng-click="openForm=!openForm; success=false" - ng-hide="openForm", l10n) edit - form#renameForm(name="renameForm", ng-show="openForm", ng-submit="rename()") - .form-group#open_name_change - label(for='name', l10n) New Ripple name - .input-group - span.input-group-addon.ripple-addon ~ - input.form-control#username( - name='username', type='text', ng-model="username" - required, rp-focus, autocomplete="off", maxlength="20", rpDest - rp-available-name - rp-available-name-invalid-reason="usernameInvalidReason" - rp-available-name-reserved-for="usernameReservedFor" - rp-loading="usernameLoading") - .errorGroup(rp-errors='username', ng-hide="usernameLoading") - .success(rp-error-valid, l10n) Available - .error(rp-error-on='rpAvailableName') - span(ng-switch on="usernameInvalidReason") - span(ng-switch-when="exists", l10n) Already taken! - span(ng-switch-when="reserved", l10n) Reserved for {{usernameReservedFor}} - span - i.fa.fa-question-circle( - rp-popover - rp-popover-placement="bottom" - rp-popover-title='Reserved domain' - rp-popover-trigger="click" - ng-switch-when="reserved" - data-content='This name belongs to a high-traffic website and has been reserved to prevent phishing.') - span(ng-switch-when="tooshort", l10n) Must be at least 2 characters - span(ng-switch-when="toolong", l10n) Must be at most 20 characters - span(ng-switch-when="charset", l10n) Only a-z, 0-9 and hyphen (-) - span(ng-switch-when="starthyphen", l10n) Cannot start with hyphen (-) - span(ng-switch-when="endhyphen", l10n) Cannot end with hyphen (-) - span(ng-switch-when="multhyphen", l10n) Cannot bundle hyphens (--) - span(ng-show="usernameLoading", l10n) Checking... - .form-group - label(type="password", for='password', l10n) Current password - input.form-control#password(type="password", name="password" - ng-model="password", required) - .alert.alert-danger(ng-show="error", ng-switch on="error") - span(ng-switch-when="wrongpassword", l10n) - | Entered password is wrong. - span(ng-switch-when="cantlogin", l10n) - | Your Ripple name has been changed. Please login again. - span(ng-switch-default, l10n) - | Couldn't change your Ripple name, please try again later. - .row - .col-xs-12.col-sm-6 - button.btn.btn-success.btn-block(type="submit" - ng-disabled="renameForm.$invalid || loading") - span(ng-hide="loading", l10n) Submit - span(ng-show="loading", l10n) Loading... - .col-xs-12.col-sm-6 - a.btn.btn-cancel.btn-block(href="", ng-click="openForm=!openForm", l10n) cancel -.section - .descriptor#address(l10n) Ripple address - div {{address}} diff --git a/src/jade/tabs/aud.jade b/src/jade/tabs/aud.jade deleted file mode 100644 index ddad32ffc..000000000 --- a/src/jade/tabs/aud.jade +++ /dev/null @@ -1,109 +0,0 @@ -section.col-xs-12.content(ng-controller='AudCtrl') - - //- Disconnected - - group.disconnected(ng-hide='connected') - p.literal(l10n="err-you-must-be-online-to-see-this-screen", l10n) - | You have to be online to see this screen - - //- Funding - div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded - - .row(ng-show='connected') - // Transaction errors coming from errors.js & transactionerror.jade - .col-sm-12(ng-show='mode=="error" || mode=="granting" && account.Balance') - group.mode-ripplerror - rp-transaction-status( - rp-engine-result="{{engine_result}}" - rp-engine-result-message="{{engine_result_message}}" - rp-accepted="{{engine_status_accepted}}" - rp-current-tab="trust") - - //- Generic non-tx related messages - .col-sm-12(ng-show='notif !== "clear"', ng-hide="!notif") - group.mode-granted.wide - group(ng-switch on="notif") - group.result-error(ng-switch-when="error") - h2.tx-status(l10n) There was an error while saving your changes. - p(l10n) Please try again later. - .col-sm-12(ng-show='account.Balance && !can_add_trust && !audConnected') - .alert.alert-warning(l10n) You must have at least - strong {{account.reserve_to_add_trust | rpamount:0}} XRP - | to add a new trust line. - a(href="https://ripple.com/wiki/Reserves", target="_blank") More information - - .col-sm-3 - include fund/menu - .col-sm-9.list(ng-hide='debug') - .nameLine(l10n) Australian Dollar Deposit - .gateway.row - .col-md-3 - .title(l10n) Gateway - .description(l10n) - | Coinex (~Coinex) - br - a(href="https://coinexgateway.com", target="_blank") www.coinexgateway.com - .col-md-3 - .title(l10n) Availability - .description(l10n) Australia and New Zealand - .col-md-3 - .title(l10n) Fees - .description(l10n) - p(l10n) .98% for deposits and withdrawals - p(l10n) - a(href="https://coinexgateway.com/Gateway/Fees.html", target="_blank") more details - .col-md-3 - .title(l10n) Rating - .description(l10n) - a(href="https://coinist.co/ripple/gateways/coinex", target="_blank") read reviews - - .row.fund-tab-description - .col-xs-12.col-md-8.col-lg-6 - .descriptor(ng-show="!audConnected", l10n) Ripple Trade has partnered with Ripple Australia to provide easier access to AUD. Following this action will enable Ripple Australia to hold AUD on your behalf. - - .row.fund-tab-description - .col-xs-7.col-sm-5.col-md-4 - button.btn.btn-large(ng-show="!audConnected && !loading", type="submit", ng-click="save_account()", ng-disabled="!account.Balance") Add Coinex AUD - button.btn.btn-large(ng-show="!audConnected && loading", type="submit", ng-disabled="loading") Adding... - button.btn.btn-large(ng-show="showInstructions && audConnected", type="submit", ng-click="toggle_instructions()", l10n) Hide instructions - button.btn.btn-large(ng-show="audConnected && !showInstructions", type="submit", ng-click="toggle_instructions()", l10n) Show instructions - - .connect.col-xs-5.col-sm-7.col-md-8(ng-hide="loading") - .description(ng-show="!audConnected && account.Balance", l10n) - i.fa.fa-times - | Not connected - .description(ng-show="audConnected && account.Balance", l10n) - i.fa.fa-check - | Connected - .description(ng-show="!account.Balance", l10n) Your account has to be activated before you can add a gateway account. - - .row(ng-show="showInstructions && audConnected") - .instructions.col-md-10 - a.dismiss(href="", id="hide", ng-click="toggle_instructions()", l10n) × - .title(l10n) To Initiate Australian Dollar Deposits and Withdrawals - .description(l10n) - | Register or login to your Coinex account. You will need to submit proof of identity. - a(href="https://coinexgateway.com/Gateway/Verification.html", target="_blank") Details here. - - .title(l10n) Deposit Options - .description(l10n) - | Coinex accepts deposits by the following methods: - ul - li - p(l10n) International bank transfer - li - p(l10n) Ripple transaction - li - p(l10n) Stellar transaction - - .title(l10n) Withdrawal Options - .description(l10n) - | Coinex accepts withdrawals by the following methods: - ul - li - p(l10n) Domestic or international bank transfer - li - p(l10n) Ripple transaction - li - p(l10n) Stellar transaction diff --git a/src/jade/tabs/balance.jade b/src/jade/tabs/balance.jade deleted file mode 100644 index e8a50a564..000000000 --- a/src/jade/tabs/balance.jade +++ /dev/null @@ -1,24 +0,0 @@ -section.col-xs-12.content(ng-controller="BalanceCtrl") - //- Disconnected - - group.disconnected(ng-hide="connected") - p.literal(l10n) You have to be online to see this screen - - group.disconnected(ng-hide="!connected || loadState.account") - //img(src="img/sections.png", class="loader", id="section_loader", ng-hide="exchangeRatesNonempty") - - //- Connected - div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded - - group(ng-show="connected && loadState.account") - include banner/announcement - .widgets.row - .col-xs-12.col-sm-4 - include widgets/networth - include widgets/assetallocation - include widgets/balances - - .col-xs-12.col-sm-8 - include widgets/markets - include widgets/orders diff --git a/src/jade/tabs/banner/announcement.jade b/src/jade/tabs/banner/announcement.jade deleted file mode 100644 index 36bc71e40..000000000 --- a/src/jade/tabs/banner/announcement.jade +++ /dev/null @@ -1,6 +0,0 @@ -div.auth-attention.banner(ng-show="showAnnouncement") - h4#announcement(l10n) - | Help our team improve Ripple Trade! - a(href='https://docs.google.com/a/ripple.com/forms/d/1_P0JPl1QOFQ_UMmkpxPFHNXsJTQdDb9yBsqr0RMt85Y/viewform', target="_blank", l10n-inc) Take a quick user survey. - a.dismiss#hide(href="", ng-click="dismissBanner()") × - br diff --git a/src/jade/tabs/btc.jade b/src/jade/tabs/btc.jade deleted file mode 100644 index e6fbc4e40..000000000 --- a/src/jade/tabs/btc.jade +++ /dev/null @@ -1,120 +0,0 @@ -section.col-xs-12.content(ng-controller='BtcCtrl') - //- the ng-states & ng-clicks should be implemented - //- Connected - //- group.connected(ng-show="connected") - - //- Disconnected - - group.disconnected(ng-hide='connected') - p.literal(l10n="err-you-must-be-online-to-see-this-screen", l10n) - | You have to be online to see this screen - - //- Funding - div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded - - group.mode-granted.wide(ng-show='notif !== "clear"', ng-hide='!notif') - group(ng-switch on="notif") - group.result-success(ng-switch-when="success") - h2.tx-status(l10n) Success! You can deposit BTC via your generated BTC receiving address. - group.result-error(ng-switch-when="error") - h2.tx-status(l10n) There was an error with your request. - p(l10n) Please try again later. - - .row(ng-show='connected') - .col-sm-3 - include fund/menu - .col-sm-9.list - div(ng-show='debug') This page is not available in debug mode - .fundBtc(ng-hide='debug') - .nameLine(l10n) Bitcoin Deposit - .B2R-wrap.row - .col-xs-12 - .gateway.row - .col-md-3 - .title(l10n) Gateway - .description(l10n) btc2ripple (~snapswap) - a(href="https://www.btc2ripple.com", target="_blank") www.btc2ripple.com - .col-md-3 - .title(l10n) Availability - .description(l10n) All countries - .col-md-3 - .title(l10n) Fees - .description(l10n) 0% - .col-md-3 - .title(l10n) Rating - .description(l10n) - a(href="https://coinist.co/ripple/assets/btc-btc2ripple", target="_blank") read reviews - .row.fund-tab-description(ng-show="!btcConnected") - .col-xs-12.col-md-8.col-lg-6 - .descriptor(l10n) Ripple Trade has partnered with btc2ripple to make depositing BTC easier. By proceeding, you agree to the btc2ripple - a(href="https://btc2ripple.com/#/terms/of/service", target="_blank") terms of service. - | Following this action will allow btc2ripple to hold BTC on your behalf. - .row.fund-tab-description - .col-xs-7.col-sm-5.col-md-4 - rp-popup - a.btn.btn-success.btn-sm.btn-block.sign(href="", rp-popup-link, - ng-click="openPopup()", ng-show="!btcConnected && !loading", ng-disabled="emailError", ng-hide="btcConnected",l10n) Add btc2ripple - div.connectModal(rp-popup-content) - .modal-header - .navbar-brand.hidden-sm.modal-logo#logo - .modal-title(l10n) Connect - .modal-body - div.modal-prompt(l10n) btc2ripple would like to: - div.grey-focus - div.modal-permissions(l10n) - Receive your email address - span.modal-email(l10n) ({{userBlob.data.email}}) - div.modal-permissions(l10n) - Hold deposited BTC on your behalf - div.modal-agreement(l10n) By proceeding, you agree to the btc2ripple - a(href="https://btc2ripple.com/#/terms/of/service", target="_blank") terms of service. - div.modal-buttons - button.modal-btn.btn.btn-default.btn-success.btn-md(ng-click="B2RSignup()", - ng-disabled="loading") - img(src="img/button-s.png", class="loader", ng-show="loading") - span(class="loading_text", ng-show="loading", l10n) Loading... - span(ng-hide="loading", l10n) Confirm - button.modal-btn.btn.btn-default.btn-link.btn-cancel(data-dismiss="modal" - ng-hide="loading", l10n) cancel - span.modal-error(ng-show="emailError", l10n) - | SnapSwap's btc2ripple service is currently unavailable. - | Please check back later. - button.btn.btn-large(ng-show="!btcConnected && loading", ng-disabled="loading") Adding... - button.btn.btn-block.btn-primary(ng-show="showInstructions && btcConnected", type="submit", ng-click="toggle_instructions()") Hide instructions - button.btn.btn-block.btn-primary(ng-show="btcConnected && !showInstructions", type="submit", ng-click="toggle_instructions()") Show instructions - - .connect.col-md-8.col-sm-7.col-xs-5 - .description(ng-show="!btcConnected", l10n) - i.fa.fa-times - | Not connected - .description(ng-show="btcConnected", l10n) - i.fa.fa-check - | Connected - span.error(ng-show="emailError", l10n) - | SnapSwap's btc2ripple service is currently unavailable. - | Please check back later. - .row(ng-show="btcConnected && showInstructions") - .instructions.col-md-10 - //a.dismiss#hide(href="", ng-click="toggle_instructions()") × - - .active.col-xs-12(ng-show="B2R.active") - .title(l10n) Personal Deposit address - .btc-address {{B2R.instructions.instructionParams[0].value}} - .description(l10n) Your account is fully verified. - div(ng-show="loadState.B2RInstructions") - .description {{B2R.instructions.instruction}} - //.about(ng-hide="account.Balance", l10n) A small amount (~.001 BTC) of your first - | transfer will be converted to XRP to activate your wallet. - a.why(href="https://ripple.com/wiki/Reserves", - target="_blank", l10n-inc) Why? - .title(l10n) Withdrawal instructions - .description(l10n) To withdraw to a BTC address, go to the Send tab and enter the BTC address. Using the btc2ripple service, you will be able to - | send to that BTC address. - div(ng-hide="loadState.B2RInstructions") Loading... - .inactive.col-xs-12(ng-hide="B2R.active") - span(ng-show="loading") - label(l10n) Waiting for response from SnapSwap service... - span(ng-hide="loading") - label(l10n) To deposit, generate a bitcoin receiving address - | using the - a(href="https://btc2ripple.com", target="_blank") btc2ripple - | service powered by SnapSwap. diff --git a/src/jade/tabs/history.jade b/src/jade/tabs/history.jade deleted file mode 100644 index 15ed7f8b9..000000000 --- a/src/jade/tabs/history.jade +++ /dev/null @@ -1,211 +0,0 @@ -section.col-xs-12.content(ng-controller="HistoryCtrl") - - //- Disconnected - - group.disconnected(ng-hide="connected") - p.literal(l10n) You have to be online to see this screen - - group.disconnected(ng-hide="!connected || loadState.transactions || (!loadingAccount && !account.Balance && loadState.account)") - div(id="section_loader") - img(src="img/sections.png", class="loader") - div(class="loading_sections", l10n) Loading History - - //- Account is unfunded - div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded - p.literal(l10n) Your account history is empty - - //- Connected - - group.row(ng-show="connected && loadState.transactions && account.Balance") - .filters.row-padding-small.col-lg-3.col-md-4.col-sm-5.col-xs-12 - .filter.type-filter.row - .col-xs-12.filters-wrapper - a.filter-title(href="", ng-click="showFilterTxTypes=!showFilterTxTypes", l10n) Transaction type - .fa.fa-caret-right(ng-show="showFilterTxTypes") - .fa.fa-caret-down(ng-hide="showFilterTxTypes") - .filter-choices(ng-hide="showFilterTxTypes") - div(ng-repeat="name in orderedTypes") - label(ng-class="{active: types[name].checked}") - i.fa.fa-plus(ng-show="types[name].checked") - i.fa.fa-minus(ng-hide="types[name].checked") - span.name {{name}} - //span.count {{typeUsage[name] || 0}} - input(type="checkbox", name="type-filter", ng-model="types[name].checked") - .filter.date-filter.row - .col-xs-12.filters-wrapper - a.filter-title(href="", ng-click="showFilterDate=!showFilterDate", l10n) Date - .fa.fa-caret-right(ng-show="showFilterDate") - .fa.fa-caret-down(ng-hide="showFilterDate") - div.row(ng-hide="showFilterDate") - .col-xs-12 - .filter-description(l10n) Load history for specific date range - .filter-form-wrapper - form.filter-choices(ng-submit="submitDateRangeForm()") - .input-group.inline-inputs-group - .input-group-addon - i.fa.fa-calendar.fa-fw - span(l10n) From - .input-wrapper - input.form-control(type="text", rp-datepicker, ng-model="dateMinView", readonly) - .input-group.inline-inputs-group - .input-group-addon - i.fa.fa-calendar.fa-fw - span(l10n) To - .input-wrapper - input.form-control(type="text", rp-datepicker, ng-model="dateMaxView", readonly) - button.btn.btn-block.btn-primary.submit(type='submit', l10n) Filter - - .transactions.col-lg-9.col-md-8.col-sm-7.col-xs-12 - .head.row.hidden-xs - .col-md-9.hidden-sm - .type - .i - .dt(l10n) Date - .desc(l10n) Description - .visible-sm.col-sm-5 - .col-md-3.col-sm-7.export-btn-wrapper.text-right - a#csv.btn.btn-primary.btn-block.btn-sm(href='', ng-click='exportCsv()', rp-download='historyCsv', rp-download-csv='true', rp-download-filename='ripple_historic.csv', l10n) Export to CSV - .message(ng-hide="historyState=='loading' || historyShow", l10n) - | Sorry, no transactions match your current filter. - .head.row.visible-xs - .col-xs-12.export-btn-wrapper.text-right - a#csv.btn.btn-primary.btn-block.btn-sm(href='', ng-click='exportCsv()', rp-download='historyCsv', rp-download-csv='true', rp-download-filename='ripple_historic.csv', l10n) Export to CSV - ul - li(class="{{entry.transaction.type}}", ng-repeat="entry in historyShow track by entry.hash" - ng-click='details[entry.hash] = !details[entry.hash]' - ng-class="{open: details[entry.hash]}" - ng-class-odd="'odd'" - rp-pretty-amount-date="entry.dateRaw") - div - span.type   - span.i(ng-hide="entry.details") - i.fa.fa-arrow-down(ng-show="entry.transaction.type=='received'") - i.fa.fa-arrow-up(ng-show="entry.transaction.type=='sent'") - i.fa.fa-download.fa-rotate-90(ng-show="entry.transaction.type=='trusted'") - i.fa.fa-download.fa-rotate-270(ng-show="entry.transaction.type=='trusting'") - i.fa.fa-exchange(ng-show="!entry.transaction.type || entry.transaction.type=='offernew' || entry.transaction.type=='offercancel' || entry.transaction.type=='exchange' || entry.transaction.type=='rippling'") - i.fa.fa-cogs(ng-show="entry.transaction.type=='accountset'") - i.fa.fa-exclamation-triangle(ng-show="entry.transaction.type=='failed'") - span.i(ng-show="entry.details") - i.fa.fa-arrow-down - span.dt {{entry.date | date:'EEE, MMM d, h:mm:ss a'}} - span.desc(ng-hide="entry.details", ng-switch on="entry.transaction.type") - span(ng-switch-when="sent") - span(l10n, rp-span-spacing) You sent - span.amount(rp-pretty-amount-high-precision="entry.transaction.amountSent || entry.transaction.amount", rp-address-popover, rp-address-popover-sum="entry.transaction.amountSent || entry.transaction.amount") - | to - span.address(rp-pretty-identity="entry.transaction.counterparty", rp-address-popover="entry.transaction.counterparty") - != require("./history/effects.jade")() - span(ng-switch-when="received") - span(l10n, rp-span-spacing) - span.address(rp-pretty-identity="entry.transaction.counterparty", rp-address-popover="entry.transaction.counterparty") - | sent you - span.amount(rp-pretty-amount="entry.transaction.amount", rp-address-popover, rp-address-popover-sum="entry.transaction.amount") - != require("./history/effects.jade")() - span(ng-switch-when="exchange") - span(l10n, rp-span-spacing) You requested to exchange - span.amount(rp-pretty-amount="entry.transaction.spent", rp-address-popover, rp-address-popover-sum="entry.transaction.spent") - | to - span.amount(rp-pretty-amount="entry.transaction.amount", rp-address-popover, rp-address-popover-sum="entry.transaction.amount") - != require("./history/effects.jade")() - span(ng-switch-when="trusted") - span(l10n, rp-span-spacing) - span.address(title="{{entry.transaction.counterparty}}") {{entry.transaction.counterparty | rpcontactname}} - | now trusts you for - span.amount(rp-pretty-amount="entry.transaction.amount", rp-address-popover, rp-address-popover-sum="entry.transaction.amount") - != require("./history/effects.jade")() - span(ng-switch-when="trusting") - span(l10n, rp-span-spacing) You have now connected to the gateway - span.address(rp-pretty-identity="entry.transaction.counterparty", rp-address-popover="entry.transaction.counterparty") - span(ng-show="globalOptions.advanced_feature_switch", l10n-inc) for - span.amount(ng-show="globalOptions.advanced_feature_switch", rp-pretty-amount="entry.transaction.amount", rp-address-popover, rp-address-popover-sum="entry.transaction.amount") - | . - != require("./history/effects.jade")() - span(ng-switch-when="offernew") - span(ng-show="entry.transaction.sell", l10n, rp-span-spacing) You created an order to sell - span.amount(rp-pretty-amount-high-precision="entry.transaction.gets", rp-address-popover, rp-address-popover-sum="entry.transaction.gets") - | for - span.amount(rp-pretty-amount-high-precision="entry.transaction.pays", rp-address-popover, rp-address-popover-sum="entry.transaction.pays") - span(ng-hide="entry.transaction.sell", l10n, rp-span-spacing) You created an order to buy - span.amount(rp-pretty-amount-high-precision="entry.transaction.pays", rp-address-popover, rp-address-popover-sum="entry.transaction.pays") - | for - span.amount(rp-pretty-amount-high-precision="entry.transaction.gets", rp-address-popover, rp-address-popover-sum="entry.transaction.gets") - != require("./history/effects.jade")() - span(ng-switch-when="offercancel") - span(l10n, rp-span-spacing) You cancelled an order accepting - span.amount(rp-pretty-amount-high-precision="entry.transaction.pays", rp-address-popover, rp-address-popover-sum="entry.transaction.pays") - | for - span.amount(rp-pretty-amount-high-precision="entry.transaction.gets", rp-address-popover, rp-address-popover-sum="entry.transaction.gets") - != require("./history/effects.jade")() - span(ng-switch-when="accountset") - span(l10n) Account details have been changed - != require("./history/effects.jade")() - span(ng-switch-when="rippling") - span(l10n) Rippling - != require("./history/effects.jade")() - span(ng-switch-when="failed", l10n) Failed transaction - span(ng-switch-when="error") - strong(l10n) Unknown transaction - ul.effects(rp-if="details[entry.hash]") - li - span(l10n) The client failed to parse this transaction. The developers have been notified of the issue. - span(ng-switch-default) - != require("./history/effects.jade")() - span.desc(ng-show="entry.details", ng-switch on="entry.details.type") - span(ng-switch-when="giveaway") - span(l10n, rp-span-spacing) - span {{entry.details.app.name}} - | sent you - span.amount(rp-pretty-amount="entry.transaction.amount", rp-address-popover, rp-address-popover-sum="entry.transaction.amount") - | and activated your account! - != require("./history/effects.jade")() - span(ng-switch-when="deposit") - span(l10n, rp-span-spacing) - | You deposited - span.amount(rp-pretty-amount="entry.transaction.amount", rp-address-popover, rp-address-popover-sum="entry.transaction.amount") - | using {{entry.details.app.name}} - != require("./history/effects.jade")() - - .details(ng-if="details[entry.hash]") - .effects(ng-show="entry.balanceEffects") - .title(l10n) Balance Changes - .effect.header - span.description(l10n) Description - span.issuer(l10n, ng-show="entry.balanceEffects | rpAmountHasIssuer") Issuer - span.amount(l10n) Amount - span.balance(l10n) Final balance - .effect(ng-repeat="effect in entry.balanceEffects") - span.description - span(ng-show="effect.type == 'balance_change'", data-label="Description", l10n) XRP Balance Change - span(ng-show="effect.type == 'trust_change_balance'", data-label="Description", l10n) {{effect.currency}} Balance Change - span(ng-show="effect.type == 'fee'", data-label="Description", l10n) Fee - span.issuer( - ng-show="entry.balanceEffects | rpAmountHasIssuer" - rp-pretty-issuer="effect.amount.issuer().to_json()" - rp-pretty-issuer-contacts="userBlob.data.contacts" - rp-pretty-issuer-default="-" - data-label="Issuer" - ) - span.amount(data-label="Amount", rp-pretty-amount="effect.amount", rp-address-popover, rp-address-popover-sum="effect.amount") - span.balance(data-label="Final balance", rp-pretty-amount="effect.balance", rp-address-popover, rp-address-popover-sum="effect.balance") - .links - a.txLink(rp-link-tx="entry.hash", l10n) Transaction details - a.addLink(href="#/contact?to={{entry.transaction.counterparty}}", rp-no-propagate - ng-show="entry.transaction.counterparty && !(entry.transaction.counterparty | rponlycontactname)", l10n) - | Add - strong {{entry.transaction.counterparty | rpcontactname}} - | to contact list - .foot - div(ng-show="historyState=='loading'", l10n) - img(src="img/button-s.png", class="loader", id="button_loader") - | Loading more - a.loadmore(ng-show="historyState=='ready'", href="", ng-click="loadMore()", l10n) Load more - div(ng-show="historyState=='full'", l10n) No more transactions left - -// TODO filter calendar: High/low limits. -// TODO filter calendar: High limit calculation after the low limit -// TODO we loose history after tab Change -// TODO problem when manually editing date filter input field -// TODO currency filter to work with also trust type -// TODO optimization.. double (triple on load more) update history diff --git a/src/jade/tabs/kyc.jade b/src/jade/tabs/kyc.jade deleted file mode 100644 index 2387f3d7a..000000000 --- a/src/jade/tabs/kyc.jade +++ /dev/null @@ -1,222 +0,0 @@ -section.col-xs-12.content(ng-controller='KycCtrl') - - //- Disconnected - - group.disconnected(ng-hide='connected') - p.literal(l10n="err-you-must-be-online-to-see-this-screen", l10n) - | You have to be online to see this screen - - //- Funding - div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded - - div.auth-attention.banner(ng-hide="hideUsOnlyBanner") - h4#announcement(l10n) Profile completion is only available to US residents. - a.dismiss#hide(href="", ng-click="hideUsOnlyBanner=!hideUsOnlyBanner") × - br - - group.mode-granted.wide(ng-show='notif !== "clear"') - group(ng-switch on="notif") - group.pending(ng-switch-when="verifying") - h2.tx-status(l10n) Verifying your information. Please wait... - group.result-success(ng-switch-when="info_verified") - h2.tx-status(l10n) Your identity information has been verified. - group.result-success(ng-switch-when="questions_verified") - h2.tx-status(l10n) Your identity questions have been verified. - group.result-success(ng-switch-when="2fa_done") - h2.tx-status(l10n) Congratulations, you've verified your identity! You will now be redirected back to the instant deposit page. - group.result-error(ng-switch-when="general_error") - h2.tx-status(l10n) There was an error with your request. Please try again later. - group.result-error(ng-switch-when="phone_error") - h2.tx-status(l10n) There was an error with your request. Make sure your phone number is valid and try again. - group.result-error(ng-switch-when="invalid_token") - h2.tx-status(l10n) Please check your verification code and try again. - group.result-error(ng-switch-when="request_token_error") - h2.tx-status(l10n) There was an error while requesting the verification code. Please try again later. - group.result-error(ng-switch-when="info_error") - h2.tx-status(l10n) We are unable to validate your identity information. Please check your information and try again. - group.result-error(ng-switch-when="questions_error") - h2.tx-status(l10n) We are unable to validate your identity questions. Please check your answers and try again. - group.result-error(ng-switch-when="max_attempts_questions_error") - h2.tx-status(l10n) Sorry, you've reached your maximum number of verification attempts. Please try again in 24 hours. - group.result-error(ng-switch-when="contact_support") - h2.tx-status(l10n) We can't verify your identity. Please contact us at support@ripple.com. - group(ng-switch-when="loading") - h2.tx-status(l10n) Loading... - group(ng-show="connected && loadState.account && notif !== 'loading'") - .row - h3.text-center(l10n) Profile Completion - .col-xs-12 - .row - .col-md-4.text-center.steps - span(ng-class="{ 'selected': currentStep == 'one' }", l10n) STEP 1: IDENTITY INFORMATION - .col-md-4.text-center.steps - span(ng-class="{ 'selected': currentStep == 'two' }", l10n) STEP 2: IDENTITY QUESTIONS - .col-md-4.text-center.steps - span(ng-class="{ 'selected': currentStep == 'three' }", l10n) STEP 3: TWO-FACTOR AUTHENTICATION - hr - group.col-xs-12(ng-switch on="currentStep") - form.row.row-padding-small(name="identityForm", ng-switch-when="one", ng-submit="saveIdentityInfo()") - .col-sm-9 - .row - .col-xs-12.col-sm-6.col-md-6 - label(for="firstName", l10n) First Name - input.form-control.firstName#firstName( - name='firstName', type='text' - ng-model='profile.name.given' - required) - .row - .col-xs-12.col-sm-6.col-md-6 - label(for="lastName", l10n) Last Name - input.form-control.lastName#lastName( - name='lastName', type='text' - ng-model='profile.name.family' - required) - .row - .col-xs-12.col-sm-6.col-md-6 - label(for="address", l10n) Street Address - br - input.form-control.address1#address1( - name='address1', type='text' - ng-model='profile.address.line1' - required) - .row - .col-xs-12.col-sm-6.col-md-6 - label(for="city", l10n) City - input.form-control.city#city( - name='city', type='text' - ng-model='profile.address.locality', ng-pattern='validation_pattern_city' - required) - .row - .col-xs-12.col-sm-6.col-md-6 - label(for="state", l10n) State - input.form-control.state#state( - name='state', type='text', rp-combobox="states", rp-combobox-select, - ng-model='profile.address.region', ng-pattern='validation_pattern_state' - required) - .row - .col-xs-12.col-sm-6.col-md-6 - label(for="zip", l10n) ZIP - input.form-control.zip#zip( - name='zip', type='text' - ng-model='profile.address.postal_code', ng-pattern='validation_pattern_zip' - required) - .row - .col-xs-12.col-sm-6.col-md-6 - label(l10n) Date of Birth - br - .row - .col-xs-12.col-sm-6.col-md-2 - label(for="month", l10n) Month - input.form-control.line1#month( - name='month', type='text', rp-combobox="months", rp-combobox-select, - ng-model='profile.birthdate.month', ng-pattern='validation_pattern_month' - required) - .col-xs-12.col-sm-6.col-md-2 - label(for="date", l10n) Day - input.form-control.line1#date( - name='date', type='text', rp-combobox="dates", rp-combobox-select, - ng-model='profile.birthdate.date', ng-pattern='validation_pattern_date' - required) - .col-xs-12.col-sm-6.col-md-2 - label(for="year", l10n) Year - input.form-control.line1#year( - name='year', type='text', rp-combobox="years", rp-combobox-select, - ng-model='profile.birthdate.year', ng-pattern='validation_pattern_year' - required) - .row - .col-xs-12.col-sm-6.col-md-6 - //- Don't make the following localizable, see RT-1539 - div.security-box-label Last 4 digits of Social Security Number - .row - .col-xs-12.col-sm-6.col-md-2 - div.ssn-hidden ••• - •• - - .col-xs-12.col-sm-6.col-md-2 - input.form-control.ssn#ssn( - name='ssn', type='ssn' - ng-model='profile.ssn_last_4', ng-pattern='validation_pattern_sss' - required) - .row - .col-xs-5 - button.btn.btn-block.btn-primary.submit(type='submit', - ng-disabled='identityForm.$invalid || identityLoading', l10n) - img(src="img/button-s.png", class="loader", ng-show="identityLoading") - span(ng-hide="identityLoading", l10n) Continue to identity questions - span(class="loading_text", ng-show="identityLoading", l10n) Verifying... - .col-xs-5 - a.button.btn.btn-link.btn-cancel(href='#/xrp', l10n) cancel - form.row-padding-small(name="questionsForm", ng-switch-when="two", ng-submit="saveQuestions()") - .row - .col-xs-4 - div.question(ng-repeat="q in questions", l10n) {{ q.question }} - div(ng-repeat="a in q.answers") - input( - id="q{{ q.id }}a{{ a.id }}", name='q{{ q.id }}', value="{{ a.id }}", type='radio', - ng-model='q.answerId', required) - label.answer(for="q{{ q.id }}a{{ a.id }}", l10n) {{ a.answer }} - .row - .col-xs-5 - button.btn.btn-block.btn-primary.submit(type='submit', - ng-disabled='identityForm.$invalid || questionsLoading', l10n) - img(src="img/button-s.png", class="loader", ng-show="questionsLoading") - span(ng-hide="questionsLoading", l10n) Continue to two-factor authentication - span(class="loading_text", ng-show="questionsLoading", l10n) Verifying... - .col-xs-5 - a.button.btn.btn-link.btn-cancel(href='#/xrp', l10n) cancel - group(ng-switch-when="three", ng-controller="TwoFACtrl") - .row.twoFAInfo - .icon-wrapper - i.fa.fa-lock.fa-3x - .col-xs-10.col-sm-4 - span.two-factor-desc(l10n) Two-factor authentication provides extra security for your account. - form.section(name="twoFA", ng-submit="savePhone()", ng-show="twoFAVerify") - .row - .col-xs-12.col-sm-6.col-md-6 - .row - include 2fa/form - .row.kyc-align - .col-xs-12.col-sm-6.col-md-6 - span(l10n) Ripple Trade has partnered with Authy to provide better security for your account. - | By continuing, you agree to Authy's - a(href="https://www.authy.com/terms", target="blank", l10n-inc) Terms of Service - | . - .row.kyc-align - .col-xs-12.col-sm-6.col-md-3 - button.modal-btn.btn.btn-default.btn-primary.btn-md.btn-block(type='submit', - ng-disabled='identityForm.$invalid || phoneLoading', l10n) - img(src="img/button-s.png", class="loader", ng-show="phoneLoading") - span(ng-hide="phoneLoading", l10n) Verify phone number - span(class="loading_text", ng-show="phoneLoading", l10n) Verifying... - .col-xs-12.col-sm-2.col-md-1.text-center - a.button.btn.btn-link.btn-cancel(href='#/xrp', ng-hide="editNum", l10n) cancel - a.button.btn.btn-link.btn-cancel(ng-click="edit_toggle()", ng-show="editNum", l10n) cancel - .section(ng-hide="twoFAVerify") - .row - .col-xs-12.col-sm-4 - .form-group.authy-control - div(l10n) Phone Number - div.phone-number-wrapper +{{ currentCountryCode }} {{ phoneNumber }} - span.btn-link(ng-click="edit_toggle()", l10n) change - .row - .col-xs-12.col-sm-8 - .form-group.authy-control - span(l10n) A verification code has been sent to +{{ currentCountryCode }} {{ phoneNumber }}. - form - .row - .col-xs-12.col-sm-12 - label(l10n) Verification Code - .row - .col-xs-12.col-sm-4 - .form-group - input.form-control(ng-model="verificationCode") - .col-xs-12.col-sm-3 - button.btn.btn-default.btn-md.btn-block(ng-click="requestToken()") Resend Code - .row.kyc-align - .col-xs-12.col-sm-6.col-md-3 - button.modal-btn.btn.btn-default.btn-primary.btn-md.btn-block(ng-click="enable2FA()", - ng-disabled="isVeryifying || phoneLoading") - img(src="img/button-s.png", class="loader", ng-show="phoneLoading") - span(ng-hide="phoneLoading", l10n) Submit code - span(class="loading_text", ng-show="phoneLoading", l10n) Verifying... - .col-xs-12.col-sm-2.col-md-1.text-center - a.button.btn.btn-link.btn-cancel(href='#/xrp', l10n) cancel diff --git a/src/jade/tabs/login.jade b/src/jade/tabs/login.jade deleted file mode 100644 index 47c41331f..000000000 --- a/src/jade/tabs/login.jade +++ /dev/null @@ -1,103 +0,0 @@ -section.col-xs-12.content(ng-controller="LoginCtrl") - .row.auth-form-container(ng-hide="$routeParams.to") - .col-xs-12.col-sm-4.col-md-8.hidden-xs - .welcomeText(l10n) Welcome to Ripple Trade - hr - p.heroText(l10n) Trade hundreds of assets, from XRP to crypto to gold to fiat. - .auth-form-wrapper.col-xs-12.col-sm-6.col-md-4 - .tabAdjust - .signUpWrapper - h2.signUpTop - a(href='#register', l10n-inc) Sign Up - .loginWrapper - h2.loginTop(l10n) Log In - form(name='loginForm', ng-submit='submitForm()') - .auth-attention.text-center.spaceAdjust(ng-show="verifyStatus") - .status(ng-show="'verifying' === verifyStatus", l10n) Verifying... - .status(ng-show="'verified' === verifyStatus", l10n) You have successfully verified your email address. - .status(ng-show="'error' === verifyStatus", l10n) Email verification token is invalid. It has either expired or has been resent. Please check your inbox for the most recent verification email. - include login/form - .text-status(ng-show='status') - span.loggingIn {{status}} - br - .backend.error(ng-repeat="message in backendMessages") - b {{message.backend}} - span.error {{message.message}} - .submit-btn-container - button.btn.btn-submit.btn-block.btn-success#loginBtn(type='submit', - ng-disabled="ajax_loading || loginForm.$invalid", ng-hide="twoFactor") - img(src="img/button-s.png", class="loader", ng-show="ajax_loading") - span(class="loading_text", ng-show="ajax_loading", l10n) Logging in - span(ng-hide="ajax_loading", l10n) Log In - button.btn.btn-submit.btn-block.btn-success(type='submit', - ng-disabled="ajax_loading || !token", ng-show="twoFactor") - img(src="img/button-s.png", class="loader", ng-show="ajax_loading") - span(class="loading_text", l10n) Verify - a.btn.btn-block.btn-cancel(class="2fa-cancel", ng-click="cancel2FA()", ng-show="twoFactor", l10n) cancel - .row.switch-mode-wrapper - .switch-mode-link-container.bottomText(l10n) Already have a ripple.com/client account? - a(href='#migrate', l10n-inc) Migrate - .submit-btn-container-recovery - a.recover-btn(href="#recover/{{username}}", ng-show="showRecover") - button.btn.btn-block.btn-primary(ng-click="") - span(l10n) Account Recovery - button.btn.btn-link.recover(ng-click="goto_recover()", ng-hide="showRecover", l10n) Account Recovery - - - .row.action-login(ng-if="$routeParams.to") - .col-xs-12.col-sm-6.col-md-6 - div.info(ng-show="'send' == $route.current.tabName") - p.literal {{$routeParams.label}} - div(ng-hide="$routeParams.amount", l10n) - p(l10n-inc) You're sending money to - .address {{ $routeParams.to | rpripplename:{tilde:true} }} - | . - div(ng-show="$routeParams.amount", l10n) - p(l10n-inc) You're sending - .amount(ng-show="$routeParams.amount") - span.number {{$routeParams.amount | rpamount:{xrp_human: true} }} - span.currency {{$routeParams.amount | rpcurrency}} - p(l10n-inc) to - .address {{ $routeParams.to | rpripplename:{tilde:true} }} - | . - div.info(ng-show="'trust' == $route.current.tabName") - p.literal {{$routeParams.label}} - div(l10n) - p(l10n-inc) You're connecting to the gateway - .address {{ $routeParams.to | rpripplename:{tilde:true} }} - div(ng-show="$routeParams.currency", l10n-inc) - | for - .amount - span.currency {{$routeParams.currency}} - div(ng-show="$routeParams.amount", l10n-inc) - | with a limit of - .amount - span.currency {{$routeParams.amount | rpamount}} {{$routeParams.amount | rpcurrency}} - | . - - div.info(ng-show="'contacts' == $route.current.tabName") - p.literal {{$routeParams.label}} - span(l10n) - p(l10n-inc) You're adding - .address {{ $routeParams.to | rpripplename:{tilde:true} }} - p(l10n-inc) to your contacts list - - .col-xs-12.col-sm-6.col-md-5.col-lg-4.col-lg-offset-1.auth-form-container - .auth-form-wrapper - form(name='loginForm', ng-submit='submitForm()') - include login/form - .row - .col-xs-12.text-status(ng-show='status') - span {{status}} - br - .backend(ng-repeat="message in backendMessages") - b {{message.backend}} - span {{message.message}} - .row - .col-xs-12 - button.btn.btn-lg.btn-submit.btn-block.btn-primary(type='submit', ng-disabled="loginForm.$invalid || ajax_loading", l10n) - img(src="img/button-s.png", class="loader", ng-show="ajax_loading") - | Log In - p.literal.hint(l10n) You can confirm this transaction on the next page. - p.literal(l10n) New to {{productName}}? - a(href='#/register', l10n-inc) Create a wallet diff --git a/src/jade/tabs/migrate.jade b/src/jade/tabs/migrate.jade deleted file mode 100644 index 75b606e4f..000000000 --- a/src/jade/tabs/migrate.jade +++ /dev/null @@ -1,39 +0,0 @@ -section.col-xs-12.content(ng-controller="MigrateCtrl") - .row.auth-form-container - .col-xs-12.col-sm-4.col-md-8.hidden-xs - .welcomeText(l10n) Welcome to Ripple Trade - hr - p.heroText(l10n) Trade hundreds of assets, from XRP to crypto to gold to fiat. - - .auth-form-wrapper.col-sm-8.col-md-4.col-xs-12 - form(name='loginForm', ng-submit='submitForm()') - h2(l10n) Migrate - .auth-attention(l10n) To begin migration, enter the name and passphrase - | used to encrypt your ripple.com/client wallet below. - | After migration, you will no longer be able to login on ripple.com/client. - .form-group - label(for='login_username', l10n) Existing ripple.com/client Wallet name - input.form-control#login_username(name='login_username', type='text' - ng-model='username', required, autofocus='autofocus' - rp-focus-on-empty, rp-autofill='$routeParams.username') - .form-group - label(for='login_password', l10n) Passphrase - input.form-control#login_password(name='login_password', type='password' - ng-model='password', required, rp-focus) - .text-status(ng-show='status') - span {{status}} - br - span#error {{error}} - br - .backend(ng-repeat="message in backendMessages") - b {{message.backend}} - span {{message.message}} - .submit-btn-container - button.btn.btn-submit.btn-block.btn-success(type='submit' - ng-disabled="ajax_loading || loginForm.$invalid") - img(src="img/button-s.png", class="loader", ng-show="ajax_loading") - span(class="loading_text", l10n) Begin Migration - .switch-mode-link-container.bottomText(l10n) New to {{productName}}? - a(href='#register', l10n-inc) Sign Up - .switch-mode-link-container.bottomText(l10n) Have a {{productName}} account? - a(href='#login', l10n-inc) Log In diff --git a/src/jade/tabs/nzd.jade b/src/jade/tabs/nzd.jade deleted file mode 100644 index c244f62e4..000000000 --- a/src/jade/tabs/nzd.jade +++ /dev/null @@ -1,109 +0,0 @@ -section.col-xs-12.content(ng-controller='NzdCtrl') - - //- Disconnected - - group.disconnected(ng-hide='connected') - p.literal(l10n="err-you-must-be-online-to-see-this-screen", l10n) - | You have to be online to see this screen - - //- Funding - div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded - - .row(ng-show='connected') - // Transaction errors coming from errors.js & transactionerror.jade - .col-sm-12(ng-show='mode=="error" || mode=="granting" && account.Balance') - group.mode-ripplerror - rp-transaction-status( - rp-engine-result="{{engine_result}}" - rp-engine-result-message="{{engine_result_message}}" - rp-accepted="{{engine_status_accepted}}" - rp-current-tab="trust") - - //- Generic non-tx related messages - .col-sm-12(ng-show='notif !== "clear"', ng-hide="!notif") - group.mode-granted.wide - group(ng-switch on="notif") - group.result-error(ng-switch-when="error") - h2.tx-status(l10n) There was an error while saving your changes. - p(l10n) Please try again later. - .col-sm-12(ng-show='account.Balance && !can_add_trust && !nzdConnected') - .alert.alert-warning(l10n) You must have at least - strong {{account.reserve_to_add_trust | rpamount:0}} XRP - | to add a new trust line. - a(href="https://ripple.com/wiki/Reserves", target="_blank") More information - - .col-sm-3 - include fund/menu - .col-sm-9.list(ng-hide='debug') - .nameLine(l10n) New Zealand Dollar Deposit - .gateway.row - .col-md-3 - .title(l10n) Gateway - .description(l10n) - | Coinex (~Coinex) - br - a(href="https://coinexgateway.com", target="_blank") www.coinexgateway.com - .col-md-3 - .title(l10n) Availability - .description(l10n) Australia and New Zealand - .col-md-3 - .title(l10n) Fees - .description(l10n) - p(l10n) .98% for deposits and withdrawals - p(l10n) - a(href="https://coinexgateway.com/Gateway/Fees.html", target="_blank") more details - .col-md-3 - .title(l10n) Rating - .description(l10n) - a(href="https://coinist.co/ripple/gateways/coinex", target="_blank") read reviews - - .row.fund-tab-description - .col-xs-12.col-md-8.col-lg-6 - .descriptor(ng-show="!nzdConnected", l10n) Ripple Trade has partnered with Coinex to provide easier access to NZD. Following this action will enable Coinex to hold NZD on your behalf. - - .row.fund-tab-description - .col-xs-7.col-sm-5.col-md-4 - button.btn.btn-large(ng-show="!nzdConnected && !loading", type="submit", ng-click="save_account()", ng-disabled="!account.Balance") Add Coinex NZD - button.btn.btn-large(ng-show="!nzdConnected && loading", type="submit", ng-disabled="loading") Adding... - button.btn.btn-large(ng-show="showInstructions && nzdConnected", type="submit", ng-click="toggle_instructions()", l10n) Hide instructions - button.btn.btn-large(ng-show="nzdConnected && !showInstructions", type="submit", ng-click="toggle_instructions()", l10n) Show instructions - - .connect.col-xs-5.col-sm-7.col-md-8(ng-hide="loading") - .description(ng-show="!nzdConnected && account.Balance", l10n) - i.fa.fa-times - | Not connected - .description(ng-show="nzdConnected && account.Balance", l10n) - i.fa.fa-check - | Connected - .description(ng-show="!account.Balance", l10n) Your account has to be activated before you can add a gateway account. - - .row(ng-show="showInstructions && nzdConnected") - .instructions.col-md-10 - a.dismiss(href="", id="hide", ng-click="toggle_instructions()", l10n) × - .title(l10n) To Initiate New Zealand Dollar Deposits and Withdrawals - .description(l10n) - | Register or login to your Coinex account. You will need to submit proof of identity. - a(href="https://coinexgateway.com/Gateway/Verification.html", target="_blank") Details here. - - .title(l10n) Deposit Options - .description(l10n) - | Coinex accepts deposits by the following methods: - ul - li - p(l10n) International bank transfer - li - p(l10n) Ripple transaction - li - p(l10n) Stellar transaction - - .title(l10n) Withdrawal Options - .description(l10n) - | Coinex accepts withdrawals by the following methods: - ul - li - p(l10n) Domestic or international bank transfer - li - p(l10n) Ripple transaction - li - p(l10n) Stellar transaction \ No newline at end of file diff --git a/src/jade/tabs/recover.jade b/src/jade/tabs/recover.jade deleted file mode 100644 index 1d5591e26..000000000 --- a/src/jade/tabs/recover.jade +++ /dev/null @@ -1,70 +0,0 @@ -section.col-xs-12.content(ng-controller="RecoverCtrl") - .col-xs-12.col-sm-4.col-md-8.hidden-xs - .welcomeText(l10n) Welcome to Ripple Trade - hr - p.heroText(l10n) Trade hundreds of assets, from XRP to crypto to gold to fiat. - .row.auth-form-container.col-xs-12.col-sm-6.col-md-4 - .auth-form-wrapper - form(name='recoverForm', ng-submit='submitForm()', ng-show="mode === 'recover'") - h2(l10n) Account Recovery - .auth-attention.text-center - .status(l10n) You can only recover your Ripple Trade account with a secret key. You will recover the account's Ripple name, contacts and other information. - .form-group - label(for='recover_username', l10n) Ripple Name - .input-group - span.input-group-addon.ripple-addon ~ - input.form-control#recover_username( - name='recover_username', type='text', ng-model="username" - required, rp-focus, autocomplete="off", maxlength="20", rpDest) - .form-group - label(for='recover_masterkey', l10n) Secret Key - input.form-control#recover_masterkey( - name='recover_masterkey', type='password', autocomplete="off" - required, ng-model="masterkey") - .error.text-center(ng-show="recoverError") - div(l10n) Unable to recover account. - div(ng-bind="recoverError") - .submit-btn-container - button.btn.btn-block.btn-success(type='submit' - ng-disabled='recoverForm.$invalid || submitLoading') - img(src="img/button-s.png", class="loader", ng-show="submitLoading") - span(ng-show="submitLoading", l10n) Loading... - span(ng-hide="submitLoading", l10n) Recover Account - form(name='setPasswordForm', ng-submit='submitForm()', ng-show="mode === 'setPassword'") - h2(l10n) Set Password - .auth-attention.text-center - .status(l10n) Your account was sucessfully recovered. Please re-encrypt your account with a new password. - .form-group - label(l10n) Ripple Name - .rippleName - span ~ - span(ng-bind="username") - .form-group(ng-class="{'field-error': 'weak' === strength || 'match' === strength}") - label(for='password1', l10n) Password - input.form-control#password1( - name='password1', type='password', autocomplete="off" - ng-model="password1" - rp-strong-password, required, rp-focus, rp-same-in-set="passwordSet") - p.error(ng-show="strength=='weak'") - span(l10n) Your password is weak. It does not contain numbers and symbols or it is too short. - p.error(ng-show="strength=='match'") - span(l10n) Your Ripple name and password cannot match. Please create a new password. - .form-group(ng-class="{'field-error': setPasswordForm.password1.$error.rpSameInSet && setPasswordForm.password2.$dirty}") - label(for='password2', l10n) Confirm password - input.form-control#password2( - name='password2', autocomplete="off", type='password' - ng-model="password2" - required, rp-same-in-set="passwordSet") - p.error(ng-show="setPasswordForm.password1.$error.rpSameInSet && setPasswordForm.password2.$dirty") - span(l10n) Passwords do not match - .error.text-center(ng-show="passwordError") - div(l10n) Unable to change your account password. - div(ng-bind="passwordError") - .submit-btn-container - button.btn.btn-block.btn-success(type='submit' - ng-disabled='setPasswordForm.$invalid || submitLoading') - img(src="img/button-s.png", class="loader", ng-show="submitLoading") - span(ng-show="submitLoading", l10n) Updating... - span(ng-hide="submitLoading", l10n) Set Password - .switch-mode-link-container.bottomText(l10n) Remember your password? - a(href='#login', l10n-inc) Log In diff --git a/src/jade/tabs/register.jade b/src/jade/tabs/register.jade deleted file mode 100644 index 58d47a3ca..000000000 --- a/src/jade/tabs/register.jade +++ /dev/null @@ -1,238 +0,0 @@ - -section.col-xs-12.content(ng-controller="RegisterCtrl") - .row.auth-form-container(ng-show='mode=="form"') - .col-xs-12.col-sm-6.col-md-8.hidden-xs - .welcomeText(l10n) Welcome to Ripple Trade - hr - p.heroText(l10n) Trade hundreds of assets, from XRP to crypto to gold to fiat. - .auth-form-wrapper.col-xs-12.col-sm-6.col-md-4 - .tabAdjust(ng-hide="oldUserBlob") - .signUpWrapper - h2.signUpTop(ng-hide="oldUserBlob", l10n) Sign Up - .loginWrapper - h2.loginTop.switch-mode-link-container - a(href='#login', l10n-inc) Log In - form(name='registerForm', ng-submit='submitForm()') - h2(ng-show="oldUserBlob", l10n) Migrate - .sign-up-steps-list - li.active(l10n) Step - span 1 - li(l10n) Step - span 2 - li(l10n) Step - span 3 - .form-group - label(for='register_username', ng-hide="oldUserBlob", l10n) Create Ripple name - .auth-attention(ng-show="oldUserBlob", l10n) Please choose a Ripple name below. You will use this Ripple name to login to Ripple Trade, so remember it! Ripple names are unique and public, like your current Ripple address. - a(href="https://ripple.com/knowledge_center/understanding-ripple-names/", l10n) Learn More - .input-group - span.input-group-addon.ripple-addon ~ - input.form-control#register_username( - name='register_username', type='text', ng-model="username" - required, rp-focus, autocomplete="off", maxlength="20", rpDest - rp-available-name - rp-available-name-invalid-reason="usernameInvalidReason" - rp-available-name-reserved-for="usernameReservedFor" - rp-loading="usernameLoading") - .errorGroup(rp-errors='register_username', ng-hide="usernameLoading") - .success(rp-error-valid) - i.fa.fa-check - span(l10n) Available - .error(rp-error-on='rpAvailableName') - span(ng-switch on="usernameInvalidReason") - i.fa.fa-exclamation-triangle(ng-switch-when="exists") - span.statusText(l10n) Already taken! - i.fa.fa-exclamation-triangle(ng-switch-when="reserved") - span.statusText(l10n) Reserved for {{usernameReservedFor}} - span - i.fa.fa-question-circle( - rp-popover - rp-popover-placement="bottom" - rp-popover-title='Reserved domain' - rp-popover-trigger="click" - ng-switch-when="reserved" - l10n-data-content="This name belongs to a high-traffic website and has been reserved to prevent phishing.") - i.fa.fa-exclamation-triangle(ng-switch-when="tooshort") - span.statusText(l10n) Must be at least 2 characters - i.fa.fa-exclamation-triangle(ng-switch-when="toolong") - span.statusText(l10n) Must be at most 20 characters - i.fa.fa-exclamation-triangle(ng-switch-when="charset") - span.statusText(l10n) You can only use the following characters: a-z, 0-9 and hyphens (-) - i.fa.fa-exclamation-triangle(ng-switch-when="starthyphen") - span.statusText(l10n) Cannot start with hyphen (-) - i.fa.fa-exclamation-triangle(ng-switch-when="endhyphen") - span.statusText(l10n) Cannot end with hyphen (-) - i.fa.fa-exclamation-triangle(ng-switch-when="multhyphen") - span.statusText(l10n) Cannot use hyphens in a row (--) - span.checking(ng-show="usernameLoading", l10n) Checking... - .form-group(ng-class="{'field-error': 'weak' === strength || 'match' === strength}") - label(for='register_password', l10n) Password - input.form-control#register_password( - name='register_password1', type='password', autocomplete="off" - ng-model="password1" - rp-strong-password, required, rp-same-in-set="passwordSet") - p(ng-show="strength=='weak'") - i.fa.fa-exclamation-triangle - span.error.statusText(l10n) Your password is weak. It does not contain numbers and symbols or it is too short. - p(ng-show="strength=='match'") - i.fa.fa-exclamation-triangle - span.error.statusText(l10n) Your Ripple name and password cannot match. Please create a new password. - .form-group(ng-class="{'field-error': registerForm.register_password1.$error.rpSameInSet && registerForm.register_password2.$dirty}") - label(for='register_password2', l10n) Confirm password - input.form-control#register_password2( - name='register_password2', autocomplete="off" - type='password' - ng-model="password2" - required, rp-same-in-set="passwordSet") - p(ng-show="registerForm.register_password1.$error.rpSameInSet && registerForm.register_password2.$dirty") - i.fa.fa-exclamation-triangle - span.error.statusText(l10n) Passwords do not match - div(ng-show="") - .form-group - div(class="strength {{strength}}") {{strength}} - .form-group(ng-class="{'field-error': registerForm.register_email.$error.email && registerForm.register_email.$dirty}") - label(for='register_email') Email - input.form-control#register_email(type="email", name="register_email" - placeholder="", ng-model="email", required) - p(ng-show="registerForm.register_email.$error.email && registerForm.register_email.$dirty") - i.fa.fa-exclamation-triangle - span.error.statusText(l10n) Email address is invalid - .form-group(ng-show="showMasterKeyInput" - ng-class="{'field-error': (registerForm.register_masterkey.$error.rpMasterKey || registerForm.register_masterkey.$error.rpMasterAddressExists) && registerForm.register_masterkey.$dirty}") - label(for='register_masterkey', l10n) Secret key - a.hide-key(href="", ng-click="showMasterKeyInput=false", l10n) hide - div.register_masterkey - input.form-control#register_masterkey(name='register_masterkey', type='password', - autocomplete='off', ng-model="masterkey", rp-master-key, rp-master-address-exists, - rp-focus) - div.inputSpinner(ng-hide="!checkingMasterkey") - img.loader(src="img/sections.png") - p(ng-show="registerForm.register_masterkey.$error.rpMasterKey") - i.fa.fa-exclamation-triangle - span.error.statusText(l10n) Secret Account Key is invalid - .auth-attention(ng-show="registerForm.register_masterkey.$error.rpMasterAddressExists && masterkeyAddress") - div(l10n) - | The account ~ - span {{ masterkeyUsername }} - //- span ({{ masterkeyAddress }}) - | has already been created using this secret key. - a.btn.btn-primary.recovery(ng-href="#/recover/{{masterkeyUsername}}", l10n) Recover Account - .form-group - .checkbox - label(for='terms', l10n) I agree to the {{productName}} - a(href="#tou", target="_blank", l10n-inc) Terms of Use - input#terms(type="checkbox", name="terms", ng-model="terms", required) - .see-privacy-text(l10n) - | Please see our - a(href="#privacypolicy", target="_blank") privacy policy - | to see how we collect, use and share - | information about you - .submit-btn-container - button.btn.btn-block.btn-success(type='submit' - ng-disabled='registerForm.$invalid || submitLoading') - img(src="img/button-s.png", class="loader", ng-show="submitLoading") - span(class="loading_text", ng-hide="oldUserBlob", l10n) Sign Up - span(ng-show="oldUserBlob", l10n) Migrate Account - div.secretKey(ng-hide="showMasterKeyInput || oldUserBlob", l10n) - | Need to use your secret key? - a(href="", ng-click="showMasterKeyInput=true", l10n) Use key - .switch-mode-link-container.migrateTab(ng-hide="$routeParams.action === 'migrate'", l10n) Already have a ripple.com/client account? - a(ng-hide="$routeParams.action === 'migrate'", href='#/migrate', l10n-inc) Migrate - - - .row.mode-masterkeyerror(ng-show='mode=="failed"') - .col-xs-12.col-md-10.col-md-offset-1 - i.fa.fa-exclamation-triangle - p.literal.error(l10n) An error occurred during registration. Please try again later. - p.literal(l10n) The reported error was: - | - span(ng-bind="error_detail") - p - button.btn.btn-primary(ng-click='mode="form"', l10n) Back - - .row.mode-masterkeyerror(ng-show='mode=="alreadyexists"') - .col-xs-12.col-md-10.col-md-offset-1 - i.fa.fa-exclamation-triangle - p.literal.error(l10n) There is already a wallet using this username, please choose a different username and try again. - p - button.btn.btn-primary(ng-click='mode="form"', l10n) Back - - .row.auth-form-container(ng-show='mode=="secret"') - .col-xs-12.col-sm-6.col-md-8.hidden-xs - .welcomeText(l10n) Welcome to Ripple Trade - hr - p.heroText(l10n) Trade hundreds of assets, from XRP to crypto to gold to fiat. - .auth-form-wrapper.col-sm-offset-2.col-sm-6.col-md-offset-3.col-md-4 - h2(ng-hide="oldUserBlob", l10n) Sign Up - h2(ng-show="oldUserBlob", l10n) Migrate - .sign-up-steps-list - li Step - span 1 - li.active(l10n) Step - span 2 - li(l10n) Step - span 3 - .alert.alert-info(ng-hide="oldUserBlob", l10n) - | By proceeding, you understand that Ripple Trade does not provide a - | password or secret key recovery mechanism. If you forget your Ripple - | name/password and secret key, you will be unable to access this - | Ripple account. - .alert.alert-info(ng-show="oldUserBlob", l10n) - | You are now migrating your account- meaning you'll no longer be able - | to access your account from ripple.com/client. You will retain all of - | your balances, contacts, and account history. Your account will use - | the same secret key as before. If you have already saved your secret - | key, please continue your migration. - .secret-key-container - div(ng-hide="oldUserBlob", l10n) The secret key unlocks access to all - | your account funds in the event you lose your Ripple name or password. - | Please write it down and store it somewhere private and safe. - a.secretText(href="https://ripple.com/knowledge_center/password-recovery-and-your-secret-key/" - target="_blank", l10n-inc) Read more - | about keys and wallet safety. - div(ng-show="oldUserBlob", l10n) If you have not saved your secret key, - | please write it down and store it somewhere private and safe. - | In the event you lose your Ripple name or password, you can use - | this secret key to recover your funds. - div.secret-key - span.fa.fa-key - span(ng-hide="showSecret") ••••••••••••••••••••••••••••• - span(ng-show="showSecret") {{keyOpen}} - a.secretText(href="", ng-click="showSecret=!showSecret") - span(ng-hide="showSecret", l10n) Show secret key - span(ng-show="showSecret", l10n) Hide secret key - .submit-btn-container - button.btn.btn-block.btn-success(ng-click='mode="verification"') - span(l10n) Continue to email verification - - .row.auth-form-container.mode-verification(ng-show='mode=="verification"') - .col-xs-12.col-sm-6.col-md-8.hidden-xs - .welcomeText(l10n) Welcome to Ripple Trade - hr - p.heroText(l10n) Trade hundreds of assets, from XRP to crypto to gold to fiat. - .auth-form-wrapper.col-sm-6.col-md-4 - h2(ng-hide="oldUserBlob", l10n) Sign Up - h2(ng-show="oldUserBlob", l10n) Migrate - .sign-up-steps-list - li.completed(l10n) Step - span 1 - li.completed(l10n) Step - span 2 - li.active(l10n) Step - span 3 - .auth-attention(l10n) We’ve sent an email to - span {{userBlob.data.email}} - | . To complete registration, click the link in the email. - .auth-attention(ng-show="resendSuccess", l10n) Email token has been resent. - form(name="resendForm").row - .col-xs-12 - label(l10n) Email Address: - .col-xs-9.col-sm-8 - .change-email-bar - input.form-control(type="email", ng-model="newEmail", placeholder="{{userBlob.data.email}}") - .col-xs-3.col-sm-4 - .reSend(ng-click="resendEmail()", type="submit" - ng-disabled="resendForm.$invalid || resendLoading") - img(src="img/button-s.png", class="loader", ng-show="resendLoading") - div(class="loading_text") - a.btn.btn-cancel(l10n) Re-send Email diff --git a/src/jade/tabs/security.jade b/src/jade/tabs/security.jade deleted file mode 100644 index ca6fb308e..000000000 --- a/src/jade/tabs/security.jade +++ /dev/null @@ -1,218 +0,0 @@ -section.col-xs-12.content(ng-controller="SecurityCtrl") - div(ng-show='debug') This page is not available in debug mode - - .row(ng-show='connected && !debug') - .col-xs-12(ng-hide="isUnlocked") - .auth-attention.sessionUnlock - h5(l10n) Active Session Timeout - .status(l10n) To view or edit your security settings, you must currently have an active session. - .row - .col-xs-12.col-sm-5 - form(ng-submit="restoreSession()") - label(for="sessionPassword", l10n) Password - input.form-control#sessionPassword(type="password", - name="sessionPassword", ng-model="sessionPassword", rp-focus) - button.btn.btn-primary.btn-block(type="submit", ng-disabled="isConfirming") - img(src="img/button-s.png", class="loader", ng-show="isConfirming") - span(l10n) Restore Session - .alert.alert-danger(ng-show="unlockError") - span(l10n) Entered password is wrong. - div.col-xs-12(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded - .col-sm-12.error-wrapper - .alert.alert-danger(ng-show="error", ng-switch on="error") - span(ng-switch-when="wrongpassword", l10n) - | Entered password is wrong. - span(ng-switch-when="cantlogin", l10n) - | Your Ripple password has been changed, please login again - span(ng-switch-default, l10n) - | Couldn't change your Ripple password, please try again later. - .col-sm-12.notification-wrapper - .alert.alert-warning(ng-show="loading", l10n) Changing your Ripple password... - .alert.alert-success(ng-show="success.changePassword", l10n) Your Ripple password has been changed successfully. - .alert.alert-danger(ng-show="errorLoading2FA", l10n) Unable to load Two-factor authentication settings. - .alert.alert-danger(ng-show="error2FA", l10n) Error saving Two-factor authentication settings. - .alert.alert-danger(ng-show="invalidToken", l10n) The verification code is invalid. - .alert.alert-danger(ng-show="errorSetPasswordProtection") Error saving password protection settings. - .alert.alert-success(ng-show="success.enable", l10n) Two-factor authentication has been successfully enabled. - .alert.alert-success(ng-show="success.disable", l10n) Two-factor authentication has been successfully disabled. - .alert.alert-success(ng-show="success.enableRequirePassword", l10n) Password protection has been successfully enabled. - .alert.alert-success(ng-show="success.disableRequirePassword", l10n) Password protection has been successfully disabled. - .col-sm-4.col-md-3.col-xs-12(ng-show="isUnlocked") - include settings/navbar - .col-sm-8.col-md-9.col-xs-12.list(ng-show="isUnlocked") - .show-security(ng-show="settingsPage == 'security'") - div - h4(l10n) Security settings - .section - .descriptor Two-factor authentication - .row(ng-show="loading2FA") - .col-xs-12.col-sm-9(l10n) - img(src="img/button-s.png", class="loader", id="button_loader") - span(class="loading_text", l10n) Loading Two-factor authentication settings... - .row.row-padding-small-xs(ng-hide="loading2FA || errorLoading2FA || mode2FA === 'verifyPhone'") - .col-xs-9.col-sm-8.col-md-6 - .description - span(ng-show="enabled2FA", l10n) Enabled - span(ng-hide="enabled2FA", l10n) Disabled - .col-xs-3.col-sm-4.col-md-6 - a.btn.btn-cancel(href="", ng-show="enabled2FA", ng-click="disable2FA()", l10n) disable - rp-popup(onOpen="open2FA") - a.btn.btn-cancel(href="", rp-popup-link, ng-hide="enabled2FA", l10n) enable - div.connectModal.modal2FA(rp-popup-content) - .modal-header - .navbar-brand.hidden-sm.modal-logo#logo - .modal-title(l10n) Connect - .modal-body - div.modal-prompt(l10n) Authy is providing two-factor authentication for Ripple Trade. To enable two-factor authentication, you must share some information with Authy. - div.grey-focus - .row.modal-permissions - .col-xs-12.col-sm-4(l10n) - Your email address: - .col-xs-12.col-sm-8.email {{userBlob.data.email}} - .row.modal-permissions - .col-xs-12.col-sm-4(l10n) - Your phone number: - include 2fa/form - div.modal-agreement(l10n) By proceeding, you agree to the Authy - a(href="https://www.authy.com/terms", target="_blank", l10n-inc) terms of service. - div.modal-buttons - button.modal-btn.btn.btn-default.btn-primary.btn-md(ng-click="savePhone()", ng-disabled="savingPhone") - span(l10n) Share - button.modal-btn.btn.btn-default.btn-md.btn-link.btn-cancel(data-dismiss="modal" - ng-hide="savingPhone", l10n) cancel - .row.confirm2FA(ng-hide="!mode2FA || mode2FA === 'verifyPhone'") - .col-xs-12.col-sm-9 - .status - img(src="img/button-s.png", class="loader", ng-show="mode2FA === 'savePhone' || mode2FA === 'disable' || mode2FA === 'enable'") - span(class="loading_text", ng-show="mode2FA === 'savePhone'", l10n) Saving settings... - span(class="loading_text", ng-show="mode2FA === 'disable'", l10n) Disabling Two-factor authentication... - span(class="loading_text", ng-show="mode2FA === 'enable'", l10n) Enabling Two-factor authentication... - form.verify2FA(ng-show="mode2FA === 'verifyPhone'") - .row - .col-xs-12 - .status - span(ng-hide="via === 'app'", l10n) Please enter the verification code from the SMS message sent to your device: - span(ng-show="via === 'app'", l10n) Please enter the verification code from the Authy app installed on your device: - span +{{currentCountryCode}} {{currentPhone}} - div(l10n-inc) Enter the code below to complete the process. - .row - .col-xs-12.col-sm-8 - label(for="verifyToken", l10n) Verification Code - .row - .col-xs-9.col-md-5.col-sm-9 - input.form-control#verifyToken(name="verifyToken", ng-model="verifyToken") - .col-xs-3.col-md-3.col-sm-3 - button.btn.btn-cancel.btn-block(type="button", ng-disabled="isRequesting", - ng-click="requestToken()") - img(src="img/button-s.png", class="loader", ng-show="isRequesting") - span(class="loading_text", ng-hide="via === 'app'", l10n) Resend Code - span(class="sms-txt", ng-show="via === 'app'", l10n) Send Via SMS - .row - .col-xs-8.col-sm-3 - button.btn.btn-primary.btn-block(type="button", ng-disabled="isVerifying", ng-click="enable2FA()") - img(src="img/button-s.png", class="loader", ng-show="isVerifying") - span(l10n) Enable - .col-xs-4.col-sm-2 - a.btn.btn-block.btn-cancel(ng-click="cancel2FA()", l10n) cancel - .section - .descriptor(l10n) Ripple password - .row.row-padding-small-xs - .col-xs-9.col-sm-8.col-md-6(ng-hide="openFormPassword") - .description - |***************** - .col-xs-3.col-sm-4.col-md-6 - a.btn.btn-cancel(href="", ng-click="openFormPassword=!openFormPassword" - ng-hide="openFormPassword", l10n) edit - .row - - .auth-form-container.col-xs-12.col-md-8.col-lg-6 - form#renameForm(name="changeForm", ng-show="openFormPassword", ng-submit="changePassword()") - .form-group - label(type="password", for='password', l10n) Current password - input.form-control#password(type="password", name="password" - rp-focus, ng-model="password", required) - .form-group(ng-class="{'field-error': 'weak' === strength || 'match' === strength}") - label(for='change_password', l10n) New password - input.form-control( - name='change_password1', type='password', autocomplete="off" - ng-model="password1" - rp-strong-password, required, rp-same-in-set="passwordSet") - p(ng-show="strength=='weak'") - span(l10n) Your password is weak. It does not contain numbers and symbols or it is too short. - p(ng-show="strength=='match'") - span(l10n) Your Ripple name and password cannot match. Please create a new password. - .form-group(ng-class="{'field-error': changeForm.change_password1.$error.rpSameInSet && changeForm.change_password2.$dirty}") - label(for='change_password2', l10n) Confirm password - input.form-control( - name='change_password2', autocomplete="off" - type='password' - ng-model="password2" - required, rp-same-in-set="passwordSet") - p(ng-show="changeForm.change_password1.$error.rpSameInSet && changeForm.change_password2.$dirty") - span(l10n) Passwords do not match - div(ng-show="") - .form-group - div(class="strength {{strength}}") {{strength}} - .row - .col-xs-6.col-sm-6 - button.btn.btn-success.btn-block(type="submit" - ng-disabled="changeForm.$invalid || loading") - span(ng-hide="loading", l10n) Submit - span(ng-show="loading", l10n) Loading... - .col-xs-6.col-sm-6 - a.btn.btn-block.btn-cancel(href="", ng-click="openFormPassword=!openFormPassword", l10n) cancel - .section - .descriptor(l10n) Secret key - .row - label(l10n) Your secret key unlocks access to your account funds. Please write it down and store it - | somewhere private and safe. In the event you lose your Ripple name or password, you can use this secret - | key to recover your funds. - .row.row-padding-small-xs - .col-xs-9.col-sm-8.col-md-6 - .description - span.value(ng-show="security.master_seed") {{security.master_seed}} - span.value(ng-hide="security.master_seed") •••••••••••••••••••••••••••••••••••••••••••• - .col-xs-3.col-sm-4.col-md-3 - a.btn.btn-cancel(href="", ng-click="unmaskSecret()", ng-hide="security.master_seed", l10n) Show - a.btn.btn-cancel(href="", ng-click="security.master_seed = null", ng-show="security.master_seed", l10n) Hide - .section - .descriptor(l10n) Password protection for transactions - .row.row-padding-small-xs - .col-xs-12 - .description(l10n) If you turn off password requests, you’ll still need to enter your password after each page refresh. - div.helperInput - form(name="persistUnlock", ng-submit="setPasswordProtection()") - .row(ng-hide="editUnlock") - .col-xs-6.col-sm-5.col-md-4 - .description Require password - .col-xs-3.col-sm-3.col-md-2 - div.description - div(ng-show="requirePassword", l10n) Yes - div(ng-hide="requirePassword", l10n) No - .col-xs-3.col-sm-4.col-md-6 - div - a.btn.btn-cancel#edit(href="", ng-click="editUnlock = true", l10n) edit - .row.edit-security-pswd(ng-show="editUnlock") - .col-xs-6.col-sm-5.col-md-4 - .description Require password - .col-xs-6.col-sm-3.col-md-2 - div.helperInput.description - label - input(type="checkbox", name="unlock", ng-checked='requirePassword', ng-click="requirePasswordChanged = true") - .col-xs-12.col-sm-4.col-md-4.save-btn-wrapper - .description - button.btn.btn-block.btn-success.btn-xs.submit#save(type='submit' - ng-disabled='serverForm.$invalid', l10n) Save - .section - .descriptor(l10n) Delete Ripple Trade account - .row.row-padding-small-xs - .col-xs-9.col-sm-8.col-md-6(l10n) This deletes your Ripple Trade account. You will no longer be able to login to Ripple - | Trade and your account data will be deleted. However, you can still access your funds using your secret key. - .col-xs-3.col-sm-4.col-md-3 - rp-confirm( - action-text="Are you sure you want to permanently delete this account? You will lose access to ~{{userCredentials.username}}." - action-button-text="Delete Ripple Trade account ~{{userCredentials.username}}" - action-button-css="btn btn-default btn-danger" - action-function="deleteAccount()" - cancel-button-css="btn btn-cancel" - cancel-button-text="cancel") - a.btn.btn-cancel.danger(href="", l10n) Delete diff --git a/src/jade/tabs/settings/navbar.jade b/src/jade/tabs/settings/navbar.jade deleted file mode 100644 index 87d33390e..000000000 --- a/src/jade/tabs/settings/navbar.jade +++ /dev/null @@ -1,4 +0,0 @@ -.settingPage - a(href="#/security", ng-class="{active: $route.current.tabName == 'security'}", l10n) Security - a(href="#/settingstrade", ng-class="{active: $route.current.tabName == 'settingstrade'}", l10n) Trade - a(href="#/advanced", ng-class="{active: $route.current.tabName == 'advanced'}", l10n) Advanced \ No newline at end of file diff --git a/src/jade/tabs/usd.jade b/src/jade/tabs/usd.jade deleted file mode 100644 index 9bb5966b8..000000000 --- a/src/jade/tabs/usd.jade +++ /dev/null @@ -1,109 +0,0 @@ -section.col-xs-12.content(ng-controller='UsdCtrl') - - //- Disconnected - - group.disconnected(ng-hide='connected') - p.literal(l10n="err-you-must-be-online-to-see-this-screen", l10n) - | You have to be online to see this screen - - //- Funding - div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded - - .row(ng-show='connected') - // Transaction errors coming from errors.js & transactionerror.jade - .col-sm-12(ng-show='mode=="error" || mode=="granting" && account.Balance') - group.mode-ripplerror - rp-transaction-status( - rp-engine-result="{{engine_result}}" - rp-engine-result-message="{{engine_result_message}}" - rp-accepted="{{engine_status_accepted}}" - rp-current-tab="trust") - - //- Generic non-tx related messages - .col-sm-12(ng-show='notif !== "clear"', ng-hide='!notif') - group.mode-granted.wide - group(ng-switch on="notif") - group.result-error(ng-switch-when="error") - h2.tx-status(l10n) There was an error while saving your changes. - p(l10n) Please try again later. - .col-sm-12(ng-show='account.Balance && !can_add_trust && !usdConnected') - .alert.alert-warning(l10n) You must have at least - strong {{account.reserve_to_add_trust | rpamount:0}} XRP - | to add a new trust line. - a(href="https://ripple.com/wiki/Reserves", target="_blank") More information - - .col-sm-3 - include fund/menu - .col-sm-9.list(ng-hide='debug') - .nameLine(l10n) US Dollar Deposit - .gateway.row - .col-md-3 - .title(l10n) Gateway - .description(l10n) - | SnapSwap US (~SnapSwap) - br - a(href="https://snapswap.us", target="_blank") www.snapswap.us - .col-md-3 - .title(l10n) Availability - .description(l10n) USA - .col-md-3 - .title(l10n) Fees - .description(l10n) $ 0.31-$ 5.00 - .col-md-3 - .title(l10n) Rating - .description(l10n) - a(href="https://coinist.co/ripple/assets/usd-snapswap-us", target="_blank") read reviews - - .row.fund-tab-description - .col-xs-12.col-md-8.col-lg-6 - .descriptor(ng-show="!usdConnected", l10n) Ripple Trade has partnered with SnapSwap to provide easier access to USD. Following this action will enable SnapSwap to hold USD on your behalf. - - .row.fund-tab-description - .col-xs-7.col-sm-5.col-md-4 - button.btn.btn-large(ng-show="!usdConnected && !loading", type="submit", ng-click="save_account()", ng-disabled="!account.Balance") Add SnapSwap.us - button.btn.btn-large(ng-show="!usdConnected && loading", type="submit", ng-disabled="loading") Adding... - button.btn.btn-large(ng-show="showInstructions && usdConnected", type="submit", ng-click="toggle_instructions()", l10n) Hide instructions - button.btn.btn-large(ng-show="usdConnected && !showInstructions", type="submit", ng-click="toggle_instructions()", l10n) Show instructions - - .connect.col-xs-5.col-sm-7.col-md-8(ng-hide="loading") - .description.fa.fa-times(ng-show="!usdConnected && account.Balance", l10n) Not connected - .description.fa.fa-check(ng-show="usdConnected && account.Balance", l10n) Connected - .description(ng-show="!account.Balance", l10n) Your account has to be activated before you can add a gateway account. - - .row(ng-show="showInstructions && usdConnected") - .instructions.col-md-10 - a.dismiss(href="", id="hide", ng-click="toggle_instructions()", l10n) × - .title(l10n) NEW CUSTOMERS- SIGN UP AT SNAPSWAP.US - .description(l10n) - | Register and verify your account at SnapSwap US. You will need: - ul - li - p(l10n) A valid government-issued ID: driver license, passport, ID card, or visa stamp. - li - p(l10n) A proof of address: driver license, utility bill, bank statement, etc. - - .title(l10n) EXISTING SNAPSWAP US CUSTOMERS - .description(l10n) - ul - li - p(l10n) Login to your account - a(href="https://snapswap.us/#/signin", target="_blank") here. - - .title(l10n) DEPOSIT OPTIONS - .description(l10n) - ul - li - p(l10n) Deposit instantly via selected banks - li - p(l10n) Deposit cash at Bank of America branches (3 business days) - li - p(l10n) Deposit via online bank transfer (3 business days) - - .title(l10n) WITHDRAWAL OPTIONS - .description(l10n) - ul - li - p(l10n) Directly to your bank account (3-4 business days) - li - p(l10n) Directly to your PayPal account (several minutes) \ No newline at end of file diff --git a/src/jade/tabs/xrp.jade b/src/jade/tabs/xrp.jade deleted file mode 100644 index c3fe98b2f..000000000 --- a/src/jade/tabs/xrp.jade +++ /dev/null @@ -1,30 +0,0 @@ -section.col-xs-12.content(ng-controller='XrpCtrl') - - //- Disconnected - - group.disconnected(ng-hide='connected') - p.literal(l10n="err-you-must-be-online-to-see-this-screen", l10n) - | You have to be online to see this screen - - //- Funding - div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded - - .row(ng-show='connected') - .col-sm-3 - include fund/menu - .col-sm-9.list - .fundXrp(ng-show="fundPage == 'xrp'") - div - .nameLine(l10n) Ripple name: - span.name(ng-show="userCredentials.username") ~{{userCredentials.username}} - span(ng-hide="userCredentials.username", l10n) loading... - .address - a(href="", ng-click="showRippleAddress=true" - ng-hide="showRippleAddress", l10n) Show address - div(ng-show="showRippleAddress") {{address}} - .description(l10n) Ripple names are a new feature on Ripple! Use your - | Ripple name (~{{userCredentials.username}}) to receive money. - | You can still use your full Ripple address, and while we are - | working to transition to Ripple names, some gateways may still - | ask for your full address. \ No newline at end of file diff --git a/src/js/controllers/app.js b/src/js/controllers/app.controller.js similarity index 89% rename from src/js/controllers/app.js rename to src/js/controllers/app.controller.js index 4cba18f74..228bc18e8 100644 --- a/src/js/controllers/app.js +++ b/src/js/controllers/app.controller.js @@ -8,6 +8,7 @@ var util = require('util'), events = require('events'), rewriter = require('../util/jsonrewriter'), genericUtils = require('../util/generic'), + settings = require('../util/settings'), Amount = ripple.Amount; angular @@ -15,10 +16,10 @@ angular .controller('AppCtrl', AppCtrl); AppCtrl.$inject = ['$rootScope', 'rpId', 'rpNetwork', 'rpKeychain', 'rpTxQueue', - 'rpAppManager', 'rpTracker', '$timeout', 'rpHistory']; + 'rpAppManager', 'rpTracker', '$timeout', 'rpHistory', '$templateRequest']; function AppCtrl ($scope, id, net, keychain, txQueue, appManager, rpTracker, - $timeout, rpHistory) + $timeout, rpHistory, $templateRequest) { reset(); @@ -27,7 +28,7 @@ function AppCtrl ($scope, id, net, keychain, txQueue, appManager, rpTracker, // For announcement banner - store.set('announcement', false); + store.set('announcement', true); $scope.showAnnouncement = store.get('announcement'); net.listenId(id); @@ -40,6 +41,8 @@ function AppCtrl ($scope, id, net, keychain, txQueue, appManager, rpTracker, rippleclient.id = id; rippleclient.net = net; rippleclient.keychain = keychain; + // for unit tests + rippleclient.settingsUtils = settings; } function reset() @@ -103,6 +106,7 @@ function AppCtrl ($scope, id, net, keychain, txQueue, appManager, rpTracker, accountObj.on('entry', function(data){ $scope.$apply(function () { $scope.loadingAccount = false; + $scope.noUserHistory = false; myHandleAccountEntry(data); if ($scope.userHistory) return; @@ -115,14 +119,9 @@ function AppCtrl ($scope, id, net, keychain, txQueue, appManager, rpTracker, limit: Options.transactions_per_page }; - $scope.userHistory.getHistory(options, function(err, data){ - if (err) { - handleAccountTxError(err); - return; - } - - handleAccountTx(data); - }); + $scope.userHistory.getHistory(options) + .success(handleAccountTx) + .error(handleAccountTxError) }); }); @@ -130,6 +129,8 @@ function AppCtrl ($scope, id, net, keychain, txQueue, appManager, rpTracker, if (err) { $scope.loadingAccount = false; $scope.loadState.account = true; + $scope.noUserHistory = true; + $scope.userHistory = null; } }); @@ -156,6 +157,7 @@ function AppCtrl ($scope, id, net, keychain, txQueue, appManager, rpTracker, } } + function handleRippleLines(data) { $scope.$apply(function () { @@ -164,16 +166,27 @@ function AppCtrl ($scope, id, net, keychain, txQueue, appManager, rpTracker, for (var n = 0, l = data.lines.length; n < l; n++) { var line = data.lines[n]; - if (isSignificantLine(line)) { + if ($scope.isSignificantLine(line)) { // XXX: This reinterpretation of the server response should be in the // library upstream. line = $.extend({}, line, { limit: ripple.Amount.from_json({value: line.limit, currency: line.currency, issuer: line.account}), - limit_peer: ripple.Amount.from_json({value: line.limit_peer, currency: line.currency, issuer: account}), - balance: ripple.Amount.from_json({value: line.balance, currency: line.currency, issuer: account}) + limit_peer: ripple.Amount.from_json({value: line.limit_peer, currency: line.currency, issuer: line.account}), + balance: ripple.Amount.from_json({value: line.balance, currency: line.currency, issuer: line.account}) }); $scope.lines[line.account + line.currency] = line; + + // TEMPORARY: Check if user has trust to RippleTradeJapan to display banner + $scope.hasRTJapanTrust = false; + $scope.hasRTJapanTrustWithRippling = false; + if (line.account === 'rMAz5ZnK73nyNUL4foAvaxdreczCkG3vA6') { + $scope.hasRTJapanTrust = true; + if (!line.no_ripple || !line.no_ripple_peer) { + $scope.hasRTJapanTrustWithRippling = true; + } + } + updateRippleBalance(line.currency, line.account, line.balance); } } @@ -222,6 +235,10 @@ function AppCtrl ($scope, id, net, keychain, txQueue, appManager, rpTracker, }); } + function calculateReserve(server, ownerCount) { + return Amount.from_json(server._reserve_base + server._reserve_inc * ownerCount) + } + function handleAccountEntry(data) { var remote = net.remote; @@ -233,11 +250,11 @@ function AppCtrl ($scope, id, net, keychain, txQueue, appManager, rpTracker, // As per json wire format convention, real ledger entries are CamelCase, // e.g. OwnerCount, additional convenience fields are lower case, e.g. // reserve, max_spend. + var ownerCount = $scope.account.OwnerCount || 0; - $scope.account.reserve_base = server._reserve(0); - $scope.account.reserve = server._reserve(ownerCount); - $scope.account.reserve_to_add_trust = server._reserve(ownerCount+1); - $scope.account.reserve_low_balance = $scope.account.reserve.product_human(2); + $scope.account.reserve_base = Amount.from_json(server._reserve_base); + $scope.account.reserve = calculateReserve(server, ownerCount); + $scope.account.reserve_to_add_trust = calculateReserve(server, ownerCount + 1); // Maximum amount user can spend var bal = Amount.from_json(data.Balance); @@ -311,7 +328,7 @@ function AppCtrl ($scope, id, net, keychain, txQueue, appManager, rpTracker, } // Show status notification - if (processedTxn.tx_result === "tesSUCCESS" && + if (processedTxn.tx_result === 'tesSUCCESS' && transaction && !is_historic) { @@ -322,7 +339,7 @@ function AppCtrl ($scope, id, net, keychain, txQueue, appManager, rpTracker, } // Add to recent notifications - if (processedTxn.tx_result === "tesSUCCESS" && + if (processedTxn.tx_result === 'tesSUCCESS' && transaction) { var effects = []; @@ -332,7 +349,7 @@ function AppCtrl ($scope, id, net, keychain, txQueue, appManager, rpTracker, case 'exchange': var funded = false; processedTxn.effects.some(function(effect) { - if (_.contains(['offer_bought','offer_funded','offer_partially_funded'], effect.type)) { + if (_.contains(['offer_bought', 'offer_funded', 'offer_partially_funded'], effect.type)) { funded = true; effects.push(effect); return true; @@ -347,7 +364,7 @@ function AppCtrl ($scope, id, net, keychain, txQueue, appManager, rpTracker, case 'received': // Is it unseen? - if (processedTxn.date > ($scope.userBlob.data.lastSeenTxDate || 0)) { + if (processedTxn.date > settings.getSetting($scope.userBlob, 'lastSeenTxDate', 0)) { processedTxn.unseen = true; $scope.unseenNotifications.count++; } @@ -426,16 +443,8 @@ function AppCtrl ($scope, id, net, keychain, txQueue, appManager, rpTracker, $scope.offers[""+offer.seq] = offer; } else { delete $scope.offers[""+offer.seq]; - } - } - // Current user doesn't care about a line where he/she's in a default state, - // limits are zero but the counterparty is not in a default state (has a non default flag) - function isSignificantLine(line) { - var DefaultRipple = $scope.account.Flags & ripple.Remote.flags.account_root.DefaultRipple; - - return line.balance != 0 || line.limit != 0 || line.limit_peer != 0 - || DefaultRipple === line.no_ripple; + } } function updateLines(effects) @@ -557,6 +566,18 @@ function AppCtrl ($scope, id, net, keychain, txQueue, appManager, rpTracker, }); }); } + // Current user doesn't care about a line where he/she's in a default state, + // limits are zero but the counterparty is not in a default state (has a non default flag) + $scope.isSignificantLine = function(line) { + var DefaultRipple = $scope.account.Flags & ripple.Remote.flags.account_root.DefaultRipple; + + if (typeof line.balance === 'object') { + return !line.balance.is_zero() || !line.limit.is_zero() || !line.limit_peer.is_zero() + || $scope.acctDefaultRippleFlag === line.no_ripple; + } + return line.balance !== 0 || line.limit !== 0 || line.limit_peer !== 0 + || DefaultRipple === line.no_ripple; + } /** * Integrations @@ -641,10 +662,11 @@ function AppCtrl ($scope, id, net, keychain, txQueue, appManager, rpTracker, ]; // load strings from jade template - var ordersStringsHtml = $(require('../../jade/strings/myOrders.jade')()); - _.each($scope.ordersSortFieldChoices, function(element, index) { - var localisedNameText = ordersStringsHtml.find('#' + element.value).text(); - element.name = localisedNameText; + $templateRequest('templates/' + lang + '/strings/myOrders.html', true).then(function(ordersStringsHtml) { + _.each($scope.ordersSortFieldChoices, function(element, index) { + var localisedNameText = $(ordersStringsHtml).find('#' + element.value).text(); + element.name = localisedNameText; + }); }); $scope.ordersSortFieldChoicesKeyed = {}; @@ -748,9 +770,14 @@ function AppCtrl ($scope, id, net, keychain, txQueue, appManager, rpTracker, removeFirstConnectionListener(); } - $scope.logout = function () { + $scope.logout = function (redirect_to) { id.logout(); - location.reload(); + + if (!redirect_to) { + redirect_to = Options.ids_url + '/auth/logout?redirect=' + encodeURIComponent(location.href); + } + + location.href = redirect_to; }; $scope.$on('$idRemoteLogout', handleRemoteLogout); diff --git a/src/js/controllers/navbar.js b/src/js/controllers/navbar.controller.js similarity index 75% rename from src/js/controllers/navbar.js rename to src/js/controllers/navbar.controller.js index 8d67dfcc0..2908d444c 100644 --- a/src/js/controllers/navbar.js +++ b/src/js/controllers/navbar.controller.js @@ -5,6 +5,7 @@ */ var Amount = ripple.Amount, + settings = require('../util/settings'), rewriter = require('../util/jsonrewriter'); var module = angular.module('navbar', []); @@ -14,39 +15,56 @@ module.controller('NavbarCtrl', ['$scope', '$element', '$compile', 'rpId', function ($scope, el, $compile, id, network, $location) { + $scope.loading = true; var queue = []; var tickInterval = 4000; var tickUpcoming = false; - var tplAccount = require('../../jade/notification/account.jade'); - // Activate #status panel $scope.toggle_secondary = function () { $scope.show_secondary = !$scope.show_secondary; }; $scope.page_reload = function () { - // Reload - location.reload(); + // Reload + location.reload(); }; + $scope.$watch('connected', function(){ + $scope.fee = network.remote.createTransaction()._computeFee(); + // $scope.currentFee = ripple.Amount.from_json($scope.fee).to_human(); + + if (!$scope.connected && $scope.userCredentials.username) { + $scope.serverStatus = 'disconnected'; + } + else if ($scope.connected && $scope.fee) { + if ((parseFloat(ripple.Amount.from_json($scope.fee).to_human()) > parseFloat(Options.low_load_threshold)) && (parseFloat($scope.fee) < parseFloat(Options.max_tx_network_fee))) { + $scope.serverLoad = 'mediumLoad'; + $scope.serverStatus = 'mediumLoad'; + } else if (parseFloat($scope.fee) >= parseFloat(Options.max_tx_network_fee)) { + $scope.serverLoad = 'highLoad'; + $scope.serverStatus = 'highLoad'; + } else { + $scope.serverLoad = ''; + $scope.serverStatus = 'lowLoad'; + } + } + else { + $scope.serverStatus = 'connected'; + } + }, true); + // Username $scope.$watch('userCredentials', function(){ var username = $scope.userCredentials.username; + if(username) $scope.loading = false; $scope.shortUsername = null; + if(username && username.length > 25) { $scope.shortUsername = username.substring(0,24)+'...'; } }, true); - $scope.$on('$netConnected', function (e) { - setConnectionStatus(true); - }); - - $scope.$on('$netDisconnected', function (e) { - setConnectionStatus(false); - }); - var updateNotifications = function () { if ($scope.events) { $scope.notifications = $scope.events.slice(0,10); @@ -69,9 +87,9 @@ module.controller('NavbarCtrl', ['$scope', '$element', '$compile', 'rpId', $scope.unseen = 0; } - if (($scope.userBlob.data.lastSeenTxDate || 0) < lastTxDate) { + if (settings.getSetting($scope.userBlob, 'lastSeenTxDate', 0) < lastTxDate) { // Remember last seen date - $scope.userBlob.set('/lastSeenTxDate', lastTxDate); + $scope.userBlob.set('/clients/rippletradecom/lastSeenTxDate', lastTxDate); // Reset the counter $scope.unseen = $scope.unseenNotifications.count; @@ -107,25 +125,12 @@ module.controller('NavbarCtrl', ['$scope', '$element', '$compile', 'rpId', // } // }); - function setConnectionStatus(connected) { - if (connected) { - notifyEl.find('.type-offline').remove(); - } else { - notifyEl.append('
OFFLINE
'); - } - } - // A notification might have been queued already before the app was fully // initialized. If so, we display it now. if (queue.length) tick(); var notifyEl = $('
').attr('id', 'notification').insertAfter(el); - // Default to disconnected - setTimeout(function() { - setConnectionStatus($scope.connected); - }, 1000 * 3); - /** * Add the status message to the queue. */ @@ -180,7 +185,6 @@ module.controller('NavbarCtrl', ['$scope', '$element', '$compile', 'rpId', updateNotifications(); // Testing Hooks - this.setConnectionStatus = setConnectionStatus; this.enqueue = enqueue; this.tick = tick; }]); diff --git a/src/js/data/currencies.js b/src/js/data/currencies.js index bcc7470a0..77b8c49b0 100644 --- a/src/js/data/currencies.js +++ b/src/js/data/currencies.js @@ -5,11 +5,13 @@ */ module.exports = [ + // Display used for dropdown menu // XRP - IMPORTANT: XRP must be first entry in this list - {value: 'XRP', name: 'Ripple', custom_trade_currency_dropdown: true, standard_precision: 4, order: 5}, + {value: 'XRP', name: 'Ripples', custom_trade_currency_dropdown: true, standard_precision: 4, order: 5}, // Fiat - Official ISO-4217 - // display used for dropdown menu + // From USD until HKD, the order is based on https://www.bullionvault.com/gold-news/all_the_money_in_the_world_102720093. + // After HKD, the order is alphabetical. {value: 'USD', name: 'US Dollar', display: true, custom_trade_currency_dropdown: true, standard_precision: 2, order: 4}, {value: 'EUR', name: 'Euro', display: true, custom_trade_currency_dropdown: true, standard_precision: 2, order: 3}, {value: 'JPY', name: 'Japanese Yen', display: true, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0}, @@ -27,167 +29,169 @@ module.exports = [ {value: 'PLN', name: 'Polish Zloty', display: true, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0}, {value: 'AUD', name: 'Australian Dollar', display: true, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0}, {value: 'MXN', name: 'Mexican Peso', display: true, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0}, - {value: 'KRW', name: 'South Korean Won', display: true, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0}, + {value: 'KRW', name: 'South Korean Won', display: true, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0}, {value: 'TWD', name: 'New Taiwan Dollar', display: true, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0}, {value: 'HKD', name: 'Hong Kong Dollar', display: true, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0}, - {value: 'KES', name: 'Kenyan Shilling', display: true, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0}, + // Alphabetical from here {value: 'AMD', name: 'Armenian Drams', display: true, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0}, - {value: 'RON', name: 'Romanian Leu', display: true, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0}, + {value: 'KES', name: 'Kenyan Shilling', display: true, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0}, {value: 'NZD', name: 'New Zealand Dollar', display: true, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0}, + {value: 'RON', name: 'Romanian Leu', display: true, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0}, {value: 'TRY', name: 'Turkish Lira', display: true, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0}, // Fiat currencies NOT SHOWN - {value: 'AFN', name: 'Afghan Afghani', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'AFN', name: 'Afghan Afghani', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, {value: 'ALL', name: 'Albanian Lek', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, {value: 'DZD', name: 'Algerian Dinar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'AOA', name: 'Angolan Kwanza Readjustado', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'XCD', name: 'East Caribbean Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'AOA', name: 'Angolan Kwanza Readjustado', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'XCD', name: 'East Caribbean Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, {value: 'ARS', name: 'Argentine peso', display: false, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0 }, - {value: 'AWG', name: 'Aruban Florin', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'AZN', name: 'Azerbaijani Manat', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'AWG', name: 'Aruban Florin', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'AZN', name: 'Azerbaijani Manat', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, {value: 'BSD', name: 'Bahamian Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, {value: 'BHD', name: 'Bahraini Dinar', display: false, custom_trade_currency_dropdown: false, standard_precision: 3, order: 0 }, {value: 'BDT', name: 'Taka', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, {value: 'BBD', name: 'Barbados Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'BYR', name: 'Belarussian Ruble', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, + {value: 'BYR', name: 'Belarussian Ruble', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, {value: 'BZD', name: 'Belize Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'XOF', name: 'CFA Franc BCEAO', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, + {value: 'XOF', name: 'CFA Franc BCEAO', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, {value: 'BMD', name: 'Bermudian Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, {value: 'BTN', name: 'Ngultrum', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, {value: 'BOB', name: 'Boliviano', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'BOV', name: 'Mvdol', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'BAM', name: 'Convertible Mark', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'BOV', name: 'Mvdol', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'BAM', name: 'Convertible Mark', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, {value: 'BWP', name: 'Pula', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, {value: 'BND', name: 'Brunei Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'BGN', name: 'Bulgarian Lev', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'BIF', name: 'Burundi Franc', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, - {value: 'KHR', name: 'Riel', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'XAF', name: 'CFA Franc BEAC', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, - {value: 'CVE', name: 'Cabo Verde Escudo', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'KYD', name: 'Cayman Islands Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'CLF', name: 'Chilean Unidad de Formentos', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, - {value: 'CLP', name: 'Chilean Peso', display: false, custom_trade_currency_dropdown: true, standard_precision: 0, order: 0 }, - {value: 'COP', name: 'Colombian Peso', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'COU', name: 'Unidad de Valor Real', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'KMF', name: 'Comoro Franc', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, - {value: 'CDF', name: 'Congolese Franc', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'CRC', name: 'Costa Rican Colon', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'HRK', name: 'Croatian Kuna', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'CUC', name: 'Peso Convertible', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'CUP', name: 'Cuban Peso', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'ANG', name: 'Netherlands Antillean Guilder', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'DJF', name: 'Djibouti Franc', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, - {value: 'DOP', name: 'Dominican Peso', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'EGP', name: 'Egyptian Pound', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'SVC', name: 'El Salvador Colon', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'ERN', name: 'Nakfa', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'ETB', name: 'Ethiopian Birr', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'FKP', name: 'Falkland Islands Pound', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'FJD', name: 'Fiji Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'XPF', name: 'CFP Franc', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, - {value: 'GMD', name: 'Dalasi', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'GEL', name: 'Lari', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'GHS', name: 'Ghana Cedi', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'GIP', name: 'Gibraltar Pound', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'GTQ', name: 'Quetzal', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'GNF', name: 'Guinea Franc', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, - {value: 'GYD', name: 'Guyana Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'HTG', name: 'Gourde', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'HNL', name: 'Lempira', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'HUF', name: 'Forint', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'ISK', name: 'Iceland Krona', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, - {value: 'IDR', name: 'Indonesia Rupiah', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'IRR', name: 'Iranian Rial', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'IQD', name: 'Iraqi Dinar', display: false, custom_trade_currency_dropdown: false, standard_precision: 3, order: 0 }, - {value: 'ILS', name: 'New Israeli Sheqel', display: false, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0 }, - {value: 'JMD', name: 'Jamaican Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'JOD', name: 'Jordanian Dinar', display: false, custom_trade_currency_dropdown: false, standard_precision: 3, order: 0 }, - {value: 'KZT', name: 'Tenge', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'KPW', name: 'North Korean Won', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'KWD', name: 'Kuwaiti Dinar', display: false, custom_trade_currency_dropdown: false, standard_precision: 3, order: 0 }, - {value: 'KGS', name: 'Som', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'LAK', name: 'Kip', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'LVL', name: 'Latvian Lats', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'LBP', name: 'Lebanese Pound', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'LSL', name: 'Loti', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'ZAR', name: 'Rand', display: true, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0 }, - {value: 'LRD', name: 'Liberian Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'LYD', name: 'Libyan Dinar', display: false, custom_trade_currency_dropdown: false, standard_precision: 3, order: 0 }, - {value: 'LTL', name: 'Lithuanian Litas', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'MOP', name: 'Pataca', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'MKD', name: 'Denar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'MGA', name: 'Malagasy Ariary', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'MWK', name: 'Kwacha', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'MYR', name: 'Malaysian Ringgit', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'MVR', name: 'Rufiyaa', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'MRO', name: 'Ouguiya', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'MUR', name: 'Mauritius Rupee', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'MXV', name: 'Mexican Unidad de Inversion (UDI)', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'MDL', name: 'Moldovan Leu', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'MNT', name: 'Tugrik', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'MAD', name: 'Moroccan Dirham', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'MZN', name: 'Mozambique Metical', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'MMK', name: 'Kyat', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'NAD', name: 'Namibia Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'NPR', name: 'Nepalese Rupee', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'NIO', name: 'Cordoba Oro', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'NGN', name: 'Naira', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'OMR', name: 'Rial Omani', display: false, custom_trade_currency_dropdown: false, standard_precision: 3, order: 0 }, - {value: 'PKR', name: 'Pakistan Rupee', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'PAB', name: 'Balboa', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'PGK', name: 'Kina', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'PYG', name: 'Guarani', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, - {value: 'PEN', name: 'Nuevo Sol', display: false, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0 }, - {value: 'PHP', name: 'Philippine Peso', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'QAR', name: 'Qatari Rial', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'RWF', name: 'Rwanda Franc', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, - {value: 'SHP', name: 'Saint Helena Pound', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'WST', name: 'Tala', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'STD', name: 'Dobra', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'SAR', name: 'Saudi Riyal', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'RSD', name: 'Serbian Dinar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'SCR', name: 'Seychelles Rupee', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'SLL', name: 'Leone', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'SGD', name: 'Singapore Dollar', display: false, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0 }, + {value: 'BGN', name: 'Bulgarian Lev', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'BIF', name: 'Burundi Franc', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, + {value: 'KHR', name: 'Riel', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'XAF', name: 'CFA Franc BEAC', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, + {value: 'CVE', name: 'Cabo Verde Escudo', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'KYD', name: 'Cayman Islands Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'CLF', name: 'Chilean Unidad de Formentos', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, + {value: 'CLP', name: 'Chilean Peso', display: false, custom_trade_currency_dropdown: true, standard_precision: 0, order: 0 }, + {value: 'COP', name: 'Colombian Peso', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'COU', name: 'Unidad de Valor Real', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'KMF', name: 'Comoro Franc', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, + {value: 'CDF', name: 'Congolese Franc', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'CRC', name: 'Costa Rican Colon', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'HRK', name: 'Croatian Kuna', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'CUC', name: 'Peso Convertible', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'CUP', name: 'Cuban Peso', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'ANG', name: 'Netherlands Antillean Guilder', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'DJF', name: 'Djibouti Franc', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, + {value: 'DOP', name: 'Dominican Peso', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'EGP', name: 'Egyptian Pound', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'SVC', name: 'El Salvador Colon', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'ERN', name: 'Nakfa', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'ETB', name: 'Ethiopian Birr', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'FKP', name: 'Falkland Islands Pound', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'FJD', name: 'Fiji Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'XPF', name: 'CFP Franc', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, + {value: 'GMD', name: 'Dalasi', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'GEL', name: 'Lari', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'GHS', name: 'Ghana Cedi', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'GIP', name: 'Gibraltar Pound', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'GTQ', name: 'Quetzal', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'GNF', name: 'Guinea Franc', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, + {value: 'GYD', name: 'Guyana Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'HTG', name: 'Gourde', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'HNL', name: 'Lempira', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'HUF', name: 'Forint', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'ISK', name: 'Iceland Krona', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, + {value: 'IDR', name: 'Indonesia Rupiah', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'IRR', name: 'Iranian Rial', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'IQD', name: 'Iraqi Dinar', display: false, custom_trade_currency_dropdown: false, standard_precision: 3, order: 0 }, + {value: 'ILS', name: 'New Israeli Sheqel', display: false, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0 }, + {value: 'JMD', name: 'Jamaican Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'JOD', name: 'Jordanian Dinar', display: false, custom_trade_currency_dropdown: false, standard_precision: 3, order: 0 }, + {value: 'KZT', name: 'Tenge', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'KPW', name: 'North Korean Won', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'KWD', name: 'Kuwaiti Dinar', display: false, custom_trade_currency_dropdown: false, standard_precision: 3, order: 0 }, + {value: 'KGS', name: 'Som', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'LAK', name: 'Kip', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'LVL', name: 'Latvian Lats', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'LBP', name: 'Lebanese Pound', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'LSL', name: 'Loti', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'ZAR', name: 'Rand', display: true, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0 }, + {value: 'LRD', name: 'Liberian Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'LYD', name: 'Libyan Dinar', display: false, custom_trade_currency_dropdown: false, standard_precision: 3, order: 0 }, + {value: 'LTL', name: 'Lithuanian Litas', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'MOP', name: 'Pataca', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'MKD', name: 'Denar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'MGA', name: 'Malagasy Ariary', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'MWK', name: 'Kwacha', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'MYR', name: 'Malaysian Ringgit', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'MVR', name: 'Rufiyaa', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'MRO', name: 'Ouguiya', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'MUR', name: 'Mauritius Rupee', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'MXV', name: 'Mexican Unidad de Inversion (UDI)', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'MDL', name: 'Moldovan Leu', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'MNT', name: 'Tugrik', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'MAD', name: 'Moroccan Dirham', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'MZN', name: 'Mozambique Metical', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'MMK', name: 'Kyat', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'NAD', name: 'Namibia Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'NPR', name: 'Nepalese Rupee', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'NIO', name: 'Cordoba Oro', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'NGN', name: 'Naira', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'OMR', name: 'Rial Omani', display: false, custom_trade_currency_dropdown: false, standard_precision: 3, order: 0 }, + {value: 'PKR', name: 'Pakistan Rupee', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'PAB', name: 'Balboa', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'PGK', name: 'Kina', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'PYG', name: 'Guarani', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, + {value: 'PEN', name: 'Nuevo Sol', display: false, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0 }, + {value: 'PHP', name: 'Philippine Peso', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'QAR', name: 'Qatari Rial', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'RWF', name: 'Rwanda Franc', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, + {value: 'SHP', name: 'Saint Helena Pound', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'WST', name: 'Tala', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'STD', name: 'Dobra', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'SAR', name: 'Saudi Riyal', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'RSD', name: 'Serbian Dinar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'SCR', name: 'Seychelles Rupee', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'SLL', name: 'Leone', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'SGD', name: 'Singapore Dollar', display: true, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0 }, {value: 'SBD', name: 'Solomon Islands Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'SOS', name: 'Somali Shilling', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'SSP', name: 'South Sudanese Pound', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'LKR', name: 'Sri Lanka Rupee', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'SDG', name: 'Sudanese Pound', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'SRD', name: 'Surinam Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'SZL', name: 'Lilangeni', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'CHE', name: 'WIR Euro', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'CHW', name: 'WIR Franc', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'SYP', name: 'Syrian Pound', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'TJS', name: 'Somoni', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'TZS', name: 'Tanzanian Shilling', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'THB', name: 'Thai Baht', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'TOP', name: 'Pa’anga', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'TTD', name: 'Trinidad and Tobago Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'TND', name: 'Tunisian Dinar', display: false, custom_trade_currency_dropdown: false, standard_precision: 3, order: 0 }, - {value: 'TMT', name: 'Turkmenistan New Manat', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'UGX', name: 'Uganda Shilling', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, - {value: 'UAH', name: 'Hryvnia', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'AED', name: 'UAE Dirham', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'USN', name: 'US Dollar (Next day)', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'USS', name: 'US Dollar (Same day)', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'UYI', name: 'Uruguay Peso en Unidades Indexadas (URUIURUI)', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, - {value: 'UYU', name: 'Peso Uruguayo', display: false, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0 }, - {value: 'UZS', name: 'Uzbekistan Sum', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'VUV', name: 'Vatu', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, - {value: 'VEF', name: 'Bolivar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'VND', name: 'Dong', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, - {value: 'YER', name: 'Yemeni Rial', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, - {value: 'ZMK', name: 'Zambian Kwacha', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'SOS', name: 'Somali Shilling', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'SSP', name: 'South Sudanese Pound', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'LKR', name: 'Sri Lanka Rupee', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'SDG', name: 'Sudanese Pound', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'SRD', name: 'Surinam Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'SZL', name: 'Lilangeni', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'CHE', name: 'WIR Euro', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'CHW', name: 'WIR Franc', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'SYP', name: 'Syrian Pound', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'TJS', name: 'Somoni', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'TZS', name: 'Tanzanian Shilling', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'THB', name: 'Thai Baht', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'TOP', name: 'Pa’anga', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'TTD', name: 'Trinidad and Tobago Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'TND', name: 'Tunisian Dinar', display: false, custom_trade_currency_dropdown: false, standard_precision: 3, order: 0 }, + {value: 'TMT', name: 'Turkmenistan New Manat', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'UGX', name: 'Uganda Shilling', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, + {value: 'UAH', name: 'Hryvnia', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'AED', name: 'UAE Dirham', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'USN', name: 'US Dollar (Next day)', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'USS', name: 'US Dollar (Same day)', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'UYI', name: 'Uruguay Peso en Unidades Indexadas (URUIURUI)', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, + {value: 'UYU', name: 'Peso Uruguayo', display: false, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0 }, + {value: 'UZS', name: 'Uzbekistan Sum', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'VUV', name: 'Vatu', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, + {value: 'VEF', name: 'Bolivar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'VND', name: 'Dong', display: false, custom_trade_currency_dropdown: false, standard_precision: 0, order: 0 }, + {value: 'YER', name: 'Yemeni Rial', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, + {value: 'ZMK', name: 'Zambian Kwacha', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, {value: 'ZWL', name: 'Zimbabwean Dollar', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0 }, // Precious Metals {value: 'XAU', name: 'Gold', display: true, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0}, - {value: 'XAU (-0.5%pa)', name: 'Gold', display: false, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0}, - {value: 'XAG', name: 'Silver', display: false, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0}, - {value: 'XPT', name: 'Platinum', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0}, + {value: 'XAU (-0.5%pa)', name: 'Gold', display: false, custom_trade_currency_dropdown: false, standard_precision: 2, order: 0}, + {value: 'XAG', name: 'Silver', display: true, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0}, + {value: 'XPT', name: 'Platinum', display: true, custom_trade_currency_dropdown: true, standard_precision: 2, order: 0}, // Cryptocurrencies {value: 'BTC', name: 'Bitcoin', display: true, custom_trade_currency_dropdown: true, standard_precision: 4, order: 2}, - {value: 'LTC', name: 'Litecoin', display: true, custom_trade_currency_dropdown: true, standard_precision: 4, order: 1} + {value: 'LTC', name: 'Litecoin', display: true, custom_trade_currency_dropdown: true, standard_precision: 4, order: 1}, + {value: 'STR', name: 'Stellars', display: true, custom_trade_currency_dropdown: true, standard_precision: 0, order: 0} ]; diff --git a/src/js/directives/accountExists.directive.js b/src/js/directives/accountExists.directive.js new file mode 100644 index 000000000..886c5b788 --- /dev/null +++ b/src/js/directives/accountExists.directive.js @@ -0,0 +1,107 @@ + +(function() { + 'use strict'; + +/* global ripple: false, angular: false, _: false, jQuery: false, store: false, Options: false */ + + var webutil = require('../util/web'); + + /** + * Validate a trust destination. + * + * - rp-account-exists-model - If set, loads data to check from here. + * + * Checks with rippled network if account exists. + * According to rippled unfunded accounts do not exist. + */ + angular.module('validators').directive('rpAccountExists', rpAccountExists); + + rpAccountExists.$inject = ['$timeout', '$parse', 'rpNetwork', '$q']; + + function rpAccountExists($timeout, $parse, $network, $q) { + return { + restrict: 'A', + require: '?ngModel', + link: function (scope, elm, attr, ctrl) { + if (!ctrl) return; + + var currentCheckTimeout = null, + currentDefer = null; + + ctrl.$asyncValidators.rpAccountExists = function(value) { + + var strippedValue = webutil.stripRippleAddress(value), + address = ripple.UInt160.from_json(strippedValue); + + if (currentDefer) { + // another check is pending, but it is not needed + currentDefer.resolve(true); + currentDefer = null; + $timeout.cancel(currentCheckTimeout); + currentCheckTimeout = null; + } + + function checkFunded(addressToCheckPromise) { + return addressToCheckPromise.then(function(addressToCheck) { + if (addressToCheck === false) { + // skip check + return $q.when(true); + } + var address2 = ripple.UInt160.from_json(addressToCheck); + if (address2.is_valid()) { + var defer = $q.defer(); + + $network.remote.requestAccountInfo({account: addressToCheck}) + .on('success', function(m) { + defer.resolve(true); + }) + .on('error', function(m) { + if (m && m.remote && m.remote.error === 'actNotFound') { + defer.reject(false); + } else { + console.log('There was an error', m); + defer.resolve(true); + } + }) + .request(); + return defer.promise; + } else { + return $q.when(true); + } + }); + } + + if (address.is_valid()) { + return checkFunded($q.when(value)); + } else if (scope.userBlob && webutil.getContact(scope.userBlob.data.contacts, strippedValue)) { + return checkFunded($q.when(webutil.getContact(scope.userBlob.data.contacts, strippedValue).address)); + } else if (webutil.isRippleName(value)) { + var defer = $q.defer(); + currentDefer = defer; + + currentCheckTimeout = $timeout(function() { + currentCheckTimeout = null; + currentDefer = null; + + rippleVaultClient.AuthInfo.get(Options.domain, value, function(err, info) { + if (info && info.exists && info.address) { + defer.resolve(info.address); + } else { + defer.resolve(false); + } + }); + }, 500); + + return checkFunded(defer.promise); + } + + return $q.when(true); + }; + + attr.$observe('rpAccountExists', function() { + ctrl.$validate(); + }); + } + }; + } +})(); diff --git a/src/js/directives/accountExists.js b/src/js/directives/accountExists.js deleted file mode 100644 index 924e65034..000000000 --- a/src/js/directives/accountExists.js +++ /dev/null @@ -1,113 +0,0 @@ - -(function() { - 'use strict'; - -/* global ripple: false, angular: false, _: false, jQuery: false, store: false, Options: false */ - - var webutil = require('../util/web'); - - /** - * Validate a trust destination. - * - * - rp-account-exists-model - If set, loads data to check from here. - * - * Checks with rippled network if account exists. - * According to rippled unfunded accounts do not exist. - */ - angular.module('validators').directive('rpAccountExists', rpAccountExists); - - rpAccountExists.$inject = ['$timeout', '$parse', 'rpNetwork']; - - function rpAccountExists($timeout, $parse, $network) { - return { - restrict: 'A', - require: '?ngModel', - link: function (scope, elm, attr, ctrl) { - if (!ctrl) return; - - var rpAccountExistsModelGetter; - - function showLoading(doShow) { - if (attr.rpAccountExistsLoading) { - var getterL = $parse(attr.rpAccountExistsLoading); - getterL.assign(scope, doShow); - } - } - - var validator = function(value) { - var valToCheck = rpAccountExistsModelGetter ? rpAccountExistsModelGetter(scope) : value; - - var strippedValue = webutil.stripRippleAddress(valToCheck); - var address = ripple.UInt160.from_json(strippedValue); - - function checkCurrentValue() { - var currentValue = (rpAccountExistsModelGetter) ? rpAccountExistsModelGetter(scope) : ctrl.$viewValue; - var currentAddress = ripple.UInt160.from_json(webutil.stripRippleAddress(currentValue)); - if (strippedValue != currentValue && !currentAddress.is_valid()) { - scope.$apply(function() { - ctrl.$setValidity('rpAccountExists', true); - showLoading(false); - }); - } - return strippedValue != currentValue; - } - - if (address.is_valid()) { - ctrl.$setValidity('rpAccountExists', false); - showLoading(true); - - $network.remote.requestAccountInfo({account: strippedValue}) - .on('success', function(m) { - if (checkCurrentValue()) { - return; - } - scope.$apply(function() { - ctrl.$setValidity('rpAccountExists', true); - showLoading(false); - }); - }) - .on('error', function(m) { - if (checkCurrentValue()) { - return; - } - scope.$apply(function() { - showLoading(false); - if (m && m.remote && m.remote.error_code === 15) { - ctrl.$setValidity('rpAccountExists', false); - } else { - console.log('There was an error', m); - ctrl.$setValidity('rpAccountExists', true); - } - }); - }) - .request(); - return value; - } - - ctrl.$setValidity('rpAccountExists', true); - return value; - }; - - if (attr.rpAccountExistsModel) { - rpAccountExistsModelGetter = $parse(attr.rpAccountExistsModel); - var watcher = scope.$watch(attr.rpAccountExistsModel, function() { - var address = rpAccountExistsModelGetter(scope); - validator(address); - }); - - scope.$on('$destroy', function() { - // Remove watcher - watcher(); - }); - } - - ctrl.$formatters.push(validator); - ctrl.$parsers.unshift(validator); - - attr.$observe('rpAccountExists', function() { - validator(ctrl.$viewValue); - }); - } - }; - } -})(); diff --git a/src/js/directives/addressPopover.directive.js b/src/js/directives/addressPopover.directive.js new file mode 100644 index 000000000..05add70b6 --- /dev/null +++ b/src/js/directives/addressPopover.directive.js @@ -0,0 +1,231 @@ + +(function() { + // 'use strict'; + + /* global ripple: false, angular: false, _: false, jQuery: false, store: false, Options: false */ + + function AddressPopover($timeout, id, $filter, $parse, scope, element, attr) { + this.$timeout = $timeout; + this.$parse = $parse; + this.scope = scope; + this.element = element; + + this.cancelHidePopoverTimeout = null; + this.cancelShowPopoverTimeout = null; + this.tip = null; + this.shown = false; + this.identity = ''; + this.summ = ''; + this.rippleName = ''; + this.rpamountFilter = $filter('rpamount'); + this.popoverCreated = false; + this.rpAddressPopoverSum = attr.rpAddressPopoverSum; + this.rpAddressPopoverSumMinus = attr.rpAddressPopoverSumMinus; + + if (attr.rpAddressPopover && attr.rpAddressPopover != 'rp-address-popover') { + this.identity = $parse(attr.rpAddressPopover)(scope); + } + + this.onPopoverEnterBound = null; + this.onPopoverLeaveBound = null; + this.onElemLeaveBound = null; + this.onElemEnterBound = this.onElemEnter.bind(this); + element.bind('mouseenter', this.onElemEnterBound); + + var _this = this; + if (attr.rpAddressPopoverLinkToCharts) { + id.resolveName(this.identity, { tilde: true }).then(function(name) { + _this.rippleName = name; + if (_this.popoverCreated) { + var data = element.data('popover'); + if (data) { + data.options.content = _this.makeContent(); + data.setContent(); + } + } + }); + } + + // Make sure popover is destroyed and removed. + scope.$on('$destroy', function onDestroyPopover() { + $timeout.cancel(_this.cancelHidePopoverTimeout); + _this.cancelHidePopoverTimeout = null; + $timeout.cancel(_this.cancelShowPopoverTimeout); + _this.cancelShowPopoverTimeout = null; + _this.unbindHanlders(); + if (_this.tip) { + _this.tip.remove(); + _this.tip = null; + } + this.scope = null; + this.element = null; + this.onPopoverEnterBound = null; + this.onPopoverLeaveBound = null; + this.onElemLeaveBound = null; + this.onElemEnterBound = null; + }); + } + + AddressPopover.popupDelay = 800; + AddressPopover.hideDelay = 700; + AddressPopover.summFilterOpts = { force_precision: 100, min_precision: 2 }; + + AddressPopover.prototype.create = function() { + if (this.rpAddressPopoverSum) { + var nowSumm = this.$parse(this.rpAddressPopoverSum)(this.scope); + nowSumm = this.rpamountFilter(nowSumm, AddressPopover.summFilterOpts); + if (nowSumm != this.summ) { + if (this.rpAddressPopoverSumMinus && nowSumm != 'n/a') { + nowSumm = '-' + nowSumm; + } + this.summ = nowSumm; + } + } + + var options = { + content: this.makeContent(), + html: true, + trigger: 'manual', placement: 'top', + container: 'body', + template: '
' + }; + + var popover = this.element.popover(options); + this.tip = this.element.data('popover').tip(); + this.onPopoverEnterBound = this.onPopoverEnter.bind(this); + this.tip.bind('mouseenter', this.onPopoverEnterBound); + this.onPopoverLeaveBound = this.onPopoverLeave.bind(this); + this.tip.bind('mouseleave', this.onPopoverLeaveBound); + this.popoverCreated = true; + } + + AddressPopover.prototype.makeContent = function() { + var htmlContent = ['
']; + if (this.summ) { + htmlContent.push('
', String(this.summ), '
'); + } + + if (this.rippleName) { + if (this.rippleName !== this.identity) { + htmlContent.push('
', this.rippleName, '
'); + } + htmlContent.push('', this.identity, '', '
'); + htmlContent.push('', AddressPopover.textShowInGraph, ''); + } else if (this.identity) { + htmlContent.push(AddressPopover.textRippleAddress, ' ', this.identity); + } + htmlContent.push('
'); + return htmlContent.join(''); + } + + AddressPopover.prototype.showPopover = function() { + if (!this.popoverCreated) { + this.create(); + } + + var _this = this; + // allow $compile to bind values to template + this.$timeout(function() { + _this.element.popover('show'); + _this.shown = true; + }, 10, false); + } + + AddressPopover.prototype.hidePopover = function() { + if (!this.cancelHidePopoverTimeout) { + var _this = this; + this.cancelHidePopoverTimeout = this.$timeout(function() { + _this.element.popover('hide'); + _this.shown = false; + }, AddressPopover.hideDelay, false); + this.cancelHidePopoverTimeout['finally'](function() { + _this.cancelHidePopoverTimeout = null; + }); + } + } + + AddressPopover.prototype.onPopoverEnter = function() { + if (this.cancelShowPopoverTimeout) { + this.$timeout.cancel(this.cancelShowPopoverTimeout); + this.cancelShowPopoverTimeout = null; + } + if (this.cancelHidePopoverTimeout) { + this.$timeout.cancel(this.cancelHidePopoverTimeout); + this.cancelHidePopoverTimeout = null; + } + } + + AddressPopover.prototype.onPopoverLeave = function() { + this.hidePopover(); + } + + AddressPopover.prototype.onElemEnter = function() { + if (!this.onElemLeaveBound) { + this.onElemLeaveBound = this.onElemLeave.bind(this) + this.element.bind('mouseleave', this.onElemLeaveBound); + } + + if (this.cancelHidePopoverTimeout) { + this.$timeout.cancel(this.cancelHidePopoverTimeout); + this.cancelHidePopoverTimeout = null; + } else if (!this.cancelShowPopoverTimeout) { + this.cancelShowPopoverTimeout = this.$timeout(this.showPopover.bind(this), AddressPopover.popupDelay, false); + this.cancelShowPopoverTimeout['finally'](this.onCancelShowPopoverTimeoutFinally.bind(this)); + } + } + + AddressPopover.prototype.onCancelShowPopoverTimeoutFinally = function() { + this.cancelShowPopoverTimeout = null; + } + + AddressPopover.prototype.onElemLeave = function() { + if (this.cancelShowPopoverTimeout) { + this.$timeout.cancel(this.cancelShowPopoverTimeout); + this.cancelShowPopoverTimeout = null; + } else if (this.shown) { + this.hidePopover(); + } + } + + AddressPopover.prototype.unbindHanlders = function() { + this.element.unbind('mouseenter', this.onElemEnterBound); + this.element.unbind('mouseleave', this.onElemLeaveBound); + + if (this.tip) { + this.tip.unbind('mouseenter', this.onPopoverEnterBound); + this.tip.unbind('mouseleave', this.onPopoverLeaveBound); + } + } + + AddressPopover.textRippleAddress = 'span(l10n) Ripple address'; + AddressPopover.textShowInGraph = 'span(l10n) Show in graph'; + + /** + * Special popover to show ripple address with ability to double click on address to select. + * Also can link to www.ripplecharts.com. + * rp-address-popover-link-to-charts - show ling to ripple charts + * rp-address-popover-sum - show full sum of according model in popover + * rp-address-popover-sum-minus - put minus sign before sum + */ + angular.module('directives').directive('rpAddressPopover', rpAddressPopover); + + rpAddressPopover.$inject = ['$timeout', 'rpId', '$filter', '$parse', '$templateRequest']; + + function rpAddressPopover($timeout, id, $filter, $parse, $templateRequest) { + $templateRequest('templates/' + window.lang + '/directives/addresspopover.html', false).then(function(template) { + var texts = template.split('
'); + AddressPopover.textRippleAddress = texts[0]; + AddressPopover.textShowInGraph = texts.length > 1 ? texts[1] : AddressPopover.textShowInGraph; + }); + + return { + restrict: 'A', + replace: false, + compile: function (element, attr, linker) { + return function (scope, element, attr) { + var p = new AddressPopover($timeout, id, $filter, $parse, scope, element, attr); + }; + } + }; + } +})(); diff --git a/src/js/directives/charts.js b/src/js/directives/charts.directive.js similarity index 100% rename from src/js/directives/charts.js rename to src/js/directives/charts.directive.js diff --git a/src/js/directives/datalinks.js b/src/js/directives/datalinks.directive.js similarity index 100% rename from src/js/directives/datalinks.js rename to src/js/directives/datalinks.directive.js diff --git a/src/js/directives/directives.js b/src/js/directives/directives.directive.js similarity index 65% rename from src/js/directives/directives.js rename to src/js/directives/directives.directive.js index 90f41eeb7..309c28d74 100644 --- a/src/js/directives/directives.js +++ b/src/js/directives/directives.directive.js @@ -23,151 +23,6 @@ module.directive('inlineEdit', function() { }; }); -/** - * Group of validation errors for a form field. - * - * @example - * - *
- *
This field is required.
- *
{{recipient}} is a valid destination.
- *
- */ -var RP_ERRORS = 'rp-errors'; -module.directive('rpErrors', [function() { - return { - restrict: 'EA', - compile: function(el, attr, linker) { - var fieldName = attr.rpErrors || attr.on, - errs = {}; - - el.data(RP_ERRORS, errs); - return function(scope, el) { - var formController = el.inheritedData('$formController'); - var formName = formController.$name, - selectedTransclude, - selectedElement, - selectedScope; - - function updateErrorTransclude() { - var field = formController[fieldName]; - - if (!field) return; - - var $error = field && field.$error; - - if (selectedElement) { - selectedScope.$destroy(); - selectedElement.remove(); - selectedElement = selectedScope = null; - } - - // Pristine fields should show neither success nor failure messages - if (field.$pristine) return; - - // Find any error messages defined for current errors - selectedTransclude = false; - $.each(errs, function(validator, transclude) { - if (validator.length <= 1) return; - if ($error && $error[validator.slice(1)]) { - selectedTransclude = transclude; - return false; - } - }); - - // Show message for valid fields - if (!selectedTransclude && errs['+'] && field.$valid) { - selectedTransclude = errs['+']; - } - - // Generic message for invalid fields when there is no specific msg - if (!selectedTransclude && errs['?'] && field.$invalid) { - selectedTransclude = errs['?']; - } - - if (selectedTransclude) { - scope.$eval(attr.change); - selectedScope = scope.$new(); - selectedTransclude(selectedScope, function(errElement) { - selectedElement = errElement; - el.append(errElement); - }); - } - } - - scope.$watch(formName + '.' + fieldName + '.$error', updateErrorTransclude, true); - scope.$watch(formName + '.' + fieldName + '.$pristine', updateErrorTransclude); - }; - } - }; -}]); - -/** - * Error message for validator failure. - * - * Use this directive within a rp-errors block to show a message for a specific - * validation failing. - * - * @example - *
- *
This field is required.
- *
- */ -module.directive('rpErrorOn', [function() { - return { - transclude: 'element', - priority: 500, - compile: function(element, attrs, transclude) { - var errs = element.inheritedData(RP_ERRORS); - if (!errs) return; - errs['!' + attrs.rpErrorOn] = transclude; - } - }; -}]); - -/** - * Message for no matched validator failures. - * - * Use this directive within a rp-errors block to show a message if the field is - * invalid, but there was no error message defined for any of the failing - * validators. - * - * @example - *
- *
This field is required.
- *
Invalid value.
- *
- */ -module.directive('rpErrorUnknown', [function() { - return { - transclude: 'element', - priority: 500, - compile: function(element, attrs, transclude) { - var errs = element.inheritedData(RP_ERRORS); - if (!errs) return; - errs['?'] = transclude; - } - }; -}]); - -/** - * Message for field valid. - * - * Use this directive within a rp-errors block to show a message if the field is - * valid. - */ -module.directive('rpErrorValid', [function() { - return { - transclude: 'element', - priority: 500, - compile: function(element, attrs, transclude) { - var errs = element.inheritedData(RP_ERRORS); - if (!errs) return; - errs['+'] = transclude; - } - }; -}]); - module.directive('rpConfirm', ['rpPopup', '$parse', function(popup, $parse) { return { restrict: 'E', @@ -201,6 +56,16 @@ module.directive('rpPopup', ['rpPopup', '$parse', function(popup, $parse) { a.click(function(e) { e.preventDefault(); + var dismissOnEsc = function($event) { + // esc button + if ($event.which === 27) { + $(document).off('keyup', dismissOnEsc); + popup.close(); + } + }; + + $(document).on('keyup', dismissOnEsc); + // onShow action if (attrs.rpPopupOnOpen) { $parse(attrs.rpPopupOnOpen)(scope); @@ -350,7 +215,7 @@ module.directive('rpPopover', ['$interpolate', function($interpolate) { } options.delay = { show: delay, - hide: 0 + hide: 1000 }; } $(element).popover(options); @@ -365,169 +230,27 @@ module.directive('rpPopover', ['$interpolate', function($interpolate) { }; }]); -/** - * Special popover to show ripple address with ability to double click on address to select. - * Also can link to www.ripplecharts.com. - * rp-address-popover-link-to-charts - show ling to ripple charts - * rp-address-popover-sum - show full sum of according model in popover - * rp-address-popover-sum-minus - put minus sign before sum - */ -module.directive('rpAddressPopover', ['$timeout', '$interpolate', 'rpId', '$filter', '$parse', '$compile', - function($timeout, $interpolate, id, $filter, $parse, $compile) { - var popupDelay = 800; - var hideDelay = 700; - var rpamountFilter = $filter('rpamount'); - var summFilterOpts = { force_precision: 100, min_precision: 2 }; - var myTemplate = require('../../jade/directives/addresspopover.jade'); - - return { - restrict: 'A', - replace: false, - compile: function (element, attr, linker) { - return function (scope, element, attr) { - var cancelHidePopoverTimeout; - var cancelShowPopoverTimeout; - var tip; - var shown = false; - var identity = ''; - var summ = ''; - var rippleName = ''; - - if (attr.rpAddressPopover && attr.rpAddressPopover != 'rp-address-popover') { - identity = $interpolate('{{' + attr.rpAddressPopover + '}}')(scope); - } - - function makeContent() { - var s = scope.$new(true); - s.type = 1; - s.identity = identity; - s.rippleName = rippleName; - s.summ = summ; - if (rippleName) { - s.type = 2; - if (rippleName == identity) { - s.rippleName = ''; - } - } - - var htmlContent = $compile(myTemplate())(s); - return htmlContent; - } - - function showPopover() { - if (attr.rpAddressPopoverSum) { - var nowSumm = $parse(attr.rpAddressPopoverSum)(scope); - nowSumm = rpamountFilter(nowSumm, summFilterOpts); - if (nowSumm != summ && tip) { - if (attr.rpAddressPopoverSumMinus && nowSumm != 'n/a') { - nowSumm = '-' + nowSumm; - } - summ = nowSumm; - - element.data('popover').options.content = makeContent(); - element.data('popover').setContent(); - } - } - // allow $compile to bind values to template - $timeout(function () { - element.popover('show'); - shown = true; - }, 1, false); - } - - function hidePopover() { - if (!cancelHidePopoverTimeout) { - cancelHidePopoverTimeout = $timeout(function() { - element.popover('hide'); - shown = false; - }, hideDelay, false); - cancelHidePopoverTimeout['finally'](function() { - cancelHidePopoverTimeout = null; - }); - } - } - - function onPopoverEnter() { - if (cancelShowPopoverTimeout) { - $timeout.cancel(cancelShowPopoverTimeout); - cancelShowPopoverTimeout = null; - } - if (cancelHidePopoverTimeout) { - $timeout.cancel(cancelHidePopoverTimeout); - cancelHidePopoverTimeout = null; - } - } - - function onPopoverLeave() { - hidePopover(); - } - - function onElemEnter() { - if (cancelHidePopoverTimeout) { - $timeout.cancel(cancelHidePopoverTimeout); - cancelHidePopoverTimeout = null; - } else if (!cancelShowPopoverTimeout) { - cancelShowPopoverTimeout = $timeout(showPopover, popupDelay, false); - cancelShowPopoverTimeout['finally'](function() { cancelShowPopoverTimeout = null; }); - } - } - - function onElemLeave() { - if (cancelShowPopoverTimeout) { - $timeout.cancel(cancelShowPopoverTimeout); - cancelShowPopoverTimeout = null; - } else if (shown) { - hidePopover(); - } - } - - function unbindHanlders() { - element.unbind('mouseenter', onElemEnter); - element.unbind('mouseleave', onElemLeave); - tip.unbind('mouseenter', onPopoverEnter); - tip.bind('mouseleave', onPopoverLeave); - } - - element.popover('destroy'); +module.directive('rpNamePopover', [function(){ + return function(scope, element, attr) { + var options = { + html: true, + placement: attr.rpNamePopoverPlacement, + trigger: 'manual' + } + options.template = '
'; + if (attr.rpPopoverContent) { + options.content = attr.content; + } - var options = { - content: makeContent(), - html: true, - trigger: 'manual', placement: 'top', - container: 'body', - template: '
' - }; + $(element).popover(options); - var popover = element.popover(options); - tip = element.data('popover').tip(); - element.bind('mouseenter', onElemEnter); - element.bind('mouseleave', onElemLeave); - tip.bind('mouseenter', onPopoverEnter); - tip.bind('mouseleave', onPopoverLeave); - - if (attr.rpAddressPopoverLinkToCharts) { - id.resolveName(identity, { tilde: true }).then(function(name) { - rippleName = name; - var data = element.data('popover'); - if (data) { - data.options.content = makeContent(); - data.setContent(); - } - }); - } - // Make sure popover is destroyed and removed. - scope.$on('$destroy', function onDestroyPopover() { - $timeout.cancel(cancelHidePopoverTimeout); - $timeout.cancel(cancelShowPopoverTimeout); - unbindHanlders(); - if (tip) { - tip.remove(); - tip = null; - } - }); - }; - } - }; + $(element).mouseenter(function(){ + $(element).popover('show'); + }); + $('html').click(function(){ + $(element).popover('hide'); + }) + } }]); module.directive('rpAutofill', ['$parse', function($parse) { @@ -543,7 +266,7 @@ module.directive('rpAutofill', ['$parse', function($parse) { if (attr.rpAutofillAmount || attr.rpAutofillCurrency) { // 1 XRP will be interpreted as 1 XRP, not 1 base unit if (value === ("" + parseInt(value, 10))) { - value = value + '.0'; + value += '/XRP'; } var convertCurrency = function(currencyObj) { @@ -569,6 +292,7 @@ module.directive('rpAutofill', ['$parse', function($parse) { value = convertCurrency(amount.currency()); } } + // Maybe a currency? else { var currency = ripple.Currency.from_json(value); @@ -631,21 +355,22 @@ module.directive('rpNoPropagate', [function() { module.directive('rpSpinner', [function() { return { restrict: 'A', - link: function(scope, element, attr) { + require: '^form', + link: function(scope, element, attr, ctrl) { var spinner = null; - attr.$observe('rpSpinner', function(value) { + scope.$watch(ctrl.$name + '.' + element.attr('name') + '.$pending', function(pending) { element.removeClass('spinner'); if (spinner) { spinner.stop(); spinner = null; } - if (value > 0) { + if (pending) { spinner = new Spinner({ lines: 9, // The number of lines to draw length: 3, // The length of each line width: 2, // The line thickness - radius: value, // The radius of the inner circle + radius: 4, // The radius of the inner circle className: 'spinnerInner' }); diff --git a/src/js/directives/effects.js b/src/js/directives/effects.directive.js similarity index 100% rename from src/js/directives/effects.js rename to src/js/directives/effects.directive.js diff --git a/src/js/directives/errors.js b/src/js/directives/errors.directive.js similarity index 77% rename from src/js/directives/errors.js rename to src/js/directives/errors.directive.js index eee2ebaa0..30b4bf698 100644 --- a/src/js/directives/errors.js +++ b/src/js/directives/errors.directive.js @@ -6,13 +6,10 @@ var module = angular.module('errors', []); -/** - * Trust line graph. (Similar to small box plot.) - */ module.directive('rpTransactionStatus', function() { return { restrict: 'E', - template: require('../../jade/directives/transactionerror.jade'), + templateUrl: 'templates/' + lang + '/directives/transactionerror.html', scope: { engine_result: '@rpEngineResult', engine_result_message: '@rpEngineResultMessage', diff --git a/src/js/directives/events.js b/src/js/directives/events.directive.js similarity index 100% rename from src/js/directives/events.js rename to src/js/directives/events.directive.js diff --git a/src/js/directives/fields.js b/src/js/directives/fields.directive.js similarity index 86% rename from src/js/directives/fields.js rename to src/js/directives/fields.directive.js index b08393cc4..3e765eba9 100644 --- a/src/js/directives/fields.js +++ b/src/js/directives/fields.directive.js @@ -144,13 +144,13 @@ module.directive('rpCombobox', [function () { // Escape field value var escaped = webutil.escapeRegExp(match); // Build the regex for completion list lookup - re = new RegExp('('+escaped+')', 'i'); + re = new RegExp('(' + escaped + ')', 'i'); completions = complFn(match, re); } // Value as option - if (attrs.rpComboboxValueAsOption && match.length) { + if (attrs.rpComboboxValueAsOption && match && match.length) { var prefix = attrs.rpComboboxValueAsOptionPrefix; valueOption = (prefix && 0 !== match.indexOf(prefix)) @@ -161,7 +161,7 @@ module.directive('rpCombobox', [function () { } // Value as ripple name - if (attrs.rpComboboxValueAsRippleName && match.length) { // TODO Don't do a client check in validators + if (attrs.rpComboboxValueAsRippleName && match && match.length) { // TODO Don't do a client check in validators valueOption = (0 !== match.indexOf('~')) ? '~' + match : match; @@ -187,7 +187,7 @@ module.directive('rpCombobox', [function () { completions.forEach(function (completion) { var additional = ''; - if ("string" === typeof completion) { + if ('string' === typeof completion) { val = completion; } else { val = completion.name; @@ -257,13 +257,42 @@ module.directive('rpDatepicker', [function() { require: '?ngModel', link: function(scope, element, attr, ngModel) { attr.$observe('rpDatepicker', function() { - var dp = $(element).datepicker(); + var options = { + format: 'mm/dd/yyyy' + }; + + if (attr.rpDatepickerMin) { + var dateMinVal = 0; + options.onRender = function(date) { + return date.valueOf() < dateMinVal ? 'disabled' : ''; + }; + + scope.$watch(attr.rpDatepickerMin, function(v) { + if (v instanceof Date) { + dateMinVal = v.valueOf(); + var viewDate = ngModel.$viewValue.valueOf(); + if (typeof viewDate === 'string') { + viewDate = Date.parse(viewDate).valueOf(); + } + if (dateMinVal > viewDate) { + var newDate = new Date(dateMinVal + 24 * 60 * 60 * 1000); + ngModel.$setViewValue(newDate); + $(element).datepicker('setValue', newDate); + } + // fore re-render + $(element).data('datepicker').fill(); + } + }); + } + + var dp = $(element).datepicker(options); dp.on('changeDate', function(e) { scope.$apply(function () { ngModel.$setViewValue(e.date.getMonth() ? e.date : new Date(e.date)); }); }); - scope.$watch(attr.ngModel,function() { + + scope.$watch(attr.ngModel, function() { var update = ngModel.$viewValue; function falsy(v) {return v == '0' || v == 'false'; } @@ -271,11 +300,8 @@ module.directive('rpDatepicker', [function() { if (!falsy(attr.ignoreInvalidUpdate) && (update == null || (update instanceof Date && isNaN(update.getYear())) )) { - return; - } else { - dp.datepicker('setValue', update) - .datepicker('update'); - } + return; + } }); }); } diff --git a/src/js/directives/formatters.js b/src/js/directives/formatters.directive.js similarity index 91% rename from src/js/directives/formatters.js rename to src/js/directives/formatters.directive.js index cac7a2d7b..1828f2fef 100644 --- a/src/js/directives/formatters.js +++ b/src/js/directives/formatters.directive.js @@ -123,6 +123,27 @@ module.directive('rpPrettyIdentity', [function () { }; }]); +module.directive('rpRippleName', ['rpId', function(id) { + return { + restrict: 'EA', + scope: { + address: '=rpRippleName' + }, + template: '{{name || address}}', + compile: function (element, attr, linker) { + return function (scope, element, attr) { + function update() { + id.resolveName(scope.address, { tilde: true }).then(function(name) { + scope.name = name; + }); + } + scope.$watch('address', update); + update(); + }; + } + }; +}]); + module.directive('rpBindColorAmount', function () { return { restrict: 'A', @@ -161,8 +182,7 @@ module.directive('rpCurrency', function () { currency = amount.currency(); } - //TODO: Delete once Malika pushes her changes for trading pairs - mainText = currency.has_interest() ? currency.to_human().slice(0,3) + ' (-0.5%pa) - Gold' : currency.to_human(); + mainText = currency.to_human(); if (attr.rpCurrencyFull) { var currencyInfo = $.grep(scope.currencies_all, function(e){ return e.value == mainText; })[0]; diff --git a/src/js/directives/marketchart.js b/src/js/directives/marketchart.directive.js similarity index 97% rename from src/js/directives/marketchart.js rename to src/js/directives/marketchart.directive.js index 112e11bc2..0059ae94e 100644 --- a/src/js/directives/marketchart.js +++ b/src/js/directives/marketchart.directive.js @@ -62,6 +62,7 @@ module.directive('rpMarketChart', [function() { type: 'line' }; chart.load(options); + $elem.find('img')[0].src = 'img/sections.png'; }; attrs.$observe('baseCurrency', render); diff --git a/src/js/directives/ticker.js b/src/js/directives/ticker.js deleted file mode 100644 index ed7dee36b..000000000 --- a/src/js/directives/ticker.js +++ /dev/null @@ -1,20 +0,0 @@ -var module = angular.module('app'); - -/** - * Ticker - */ -module.directive('rpTicker', function() { - return { - restrict: 'E', - link: function() { - var ticker = TickerWidget({ - url: API, // TODO not a good idea to have an API global variable - id: "ticker" - }); - - ticker.load({ - markets: Options.ticker.markets - }); - } - }; -}); diff --git a/src/js/directives/validators.js b/src/js/directives/validators.directive.js similarity index 74% rename from src/js/directives/validators.js rename to src/js/directives/validators.directive.js index 1b39c9aab..eceae77f0 100644 --- a/src/js/directives/validators.js +++ b/src/js/directives/validators.directive.js @@ -45,53 +45,46 @@ module.directive('rpMasterKey', function () { * Invalidate duplicate accountId's * consider the masterkey invalid unless the database does not have the derived accountId */ -module.directive('rpMasterAddressExists', function ($http) { +module.directive('rpMasterAddressExists', ['$q', '$timeout', '$http', function ($q, $timeout, $http) { return { restrict: 'A', require: '?ngModel', link: function (scope, elm, attr, ctrl) { if (!ctrl) return; - var validator = function(value) { + ctrl.$asyncValidators.rpMasterAddressExists = function(value) { if (!value || !Base.decode_check(33, value)) { - ctrl.$setValidity('rpMasterAddressExists', true); - return value; - } - else if (value) { - ctrl.$setValidity('rpMasterAddressExists', false); //while checking - scope.checkingMasterkey = true; - var accountId = ripple.Seed.from_json(value).get_key().get_address().to_json(); - - rippleVaultClient.AuthInfo.get(Options.domain, accountId, function(err, data) { - if (err) { - scope.checkingMasterkey = false; - return; - } - - if (data.username) { - scope.masterkeyUsername = data.username; - scope.masterkeyAddress = accountId; - ctrl.$setValidity('rpMasterAddressExists', false); - scope.checkingMasterkey = false; - } else { - ctrl.$setValidity('rpMasterAddressExists', true); - scope.checkingMasterkey = false; - } - }); + return $q.when(true); + } else if (value) { + var accountId = ripple.Seed.from_json(value).get_key().get_address().to_json(), + defer = $q.defer(); + + $timeout(function() { + rippleVaultClient.AuthInfo.get(Options.domain, accountId, function(err, data) { + if (err) { + defer.reject(); + } + + if (data.username) { + scope.masterkeyUsername = data.username; + scope.masterkeyAddress = accountId; + defer.reject(); + } else { + defer.resolve(); + } + }); + }, 500); - return value; + return defer.promise; } }; - ctrl.$formatters.push(validator); - ctrl.$parsers.unshift(validator); - attr.$observe('rpMasterAddressExists', function() { - validator(ctrl.$viewValue); + ctrl.$validate(); }); } }; -}); +}]); /** * Validate a payment destination. @@ -109,145 +102,125 @@ module.directive('rpMasterAddressExists', function ($http) { * If the input can be validly interpreted as one of these types, the validation * will succeed. */ -module.directive('rpDest', ['$timeout', '$parse', 'rpFederation', function ($timeout, $parse, $federation) { +module.directive('rpDest', ['$q', '$timeout', '$parse', 'rpFederation', function ($q, $timeout, $parse, $federation) { var emailRegex = /^\S+@\S+\.[^\s.]+$/; return { restrict: 'A', require: '?ngModel', link: function (scope, elm, attr, ctrl) { if (!ctrl) return; - - function showLoading(doShow) { - if (attr.rpDestLoading) { - var getterL = $parse(attr.rpDestLoading); - getterL.assign(scope,doShow); + + var currentCheckTimeout = null, + currentDefer = null, + getter; + + function setDestModelValue(value) { + if (attr.rpDestModel) { + getter = $parse(attr.rpDestModel); + getter.assign(scope, value); } } - var timeoutPromise, getter; - var validator = function(value) { - var strippedValue = webutil.stripRippleAddress(value); - var address = ripple.UInt160.from_json(strippedValue); + ctrl.$asyncValidators.rpDest = function(value) { + var strippedValue = webutil.stripRippleAddress(value), + address = ripple.UInt160.from_json(strippedValue); + + if (currentDefer) { + // another check is pending, but it is not needed + currentDefer.resolve(true); + currentDefer = null; + $timeout.cancel(currentCheckTimeout); + currentCheckTimeout = null; + } ctrl.rpDestType = null; if (attr.rpDestFederationModel) { getter = $parse(attr.rpDestFederationModel); - getter.assign(scope,null); + getter.assign(scope, null); } + // client-side validation if (attr.rpDestAddress && address.is_valid()) { ctrl.rpDestType = "address"; - ctrl.$setValidity('rpDest', true); - if (attr.rpDestModel) { - getter = $parse(attr.rpDestModel); - getter.assign(scope,value); - } + setDestModelValue(value); - return value; + return $q.when(true); } if (attr.rpDestContact && scope.userBlob && - webutil.getContact(scope.userBlob.data.contacts,strippedValue)) { + webutil.getContact(scope.userBlob.data.contacts, strippedValue)) { ctrl.rpDestType = "contact"; - ctrl.$setValidity('rpDest', true); - if (attr.rpDestModel) { - getter = $parse(attr.rpDestModel); - getter.assign(scope,webutil.getContact(scope.userBlob.data.contacts,strippedValue).address); - } + setDestModelValue(scope, webutil.getContact(scope.userBlob.data.contacts, strippedValue).address); - return value; + return $q.when(true); } if (attr.rpDestBitcoin && !isNaN(Base.decode_check([0, 5], strippedValue, 'bitcoin'))) { ctrl.rpDestType = "bitcoin"; - ctrl.$setValidity('rpDest', true); - if (attr.rpDestModel) { - getter = $parse(attr.rpDestModel); - getter.assign(scope,value); - } + setDestModelValue(value); - return value; + return $q.when(true); } + // server-side validation if (attr.rpDestEmail && emailRegex.test(strippedValue)) { ctrl.rpDestType = "email"; if (attr.rpDestCheckFederation) { - ctrl.$setValidity('rpDest', false); - showLoading(true); - - $federation.check_email(value) + return $federation.check_email(value) .then(function (result) { // Check if this request is still current, exit if not if (value != ctrl.$viewValue) return; - showLoading(false); - ctrl.$setValidity('rpDest', true); - // Check if this request is still current, exit if not - // var now_recipient = send.recipient_address; - // if (recipient !== now_recipient) return; - // ctrl.$viewValue - if (attr.rpDestModel) { - getter = $parse(attr.rpDestModel); - getter.assign(scope,value); - } + setDestModelValue(value); + if (attr.rpDestFederationModel) { getter = $parse(attr.rpDestFederationModel); - getter.assign(scope,result); + getter.assign(scope, result); } - }, function () { - // Check if this request is still current, exit if not - if (value != ctrl.$viewValue) return; - showLoading(false); + return true; + }, function() { + return false; }); } else { - ctrl.$setValidity('rpDest', true); + setDestModelValue(value); - if (attr.rpDestModel) { - getter = $parse(attr.rpDestModel); - getter.assign(scope,value); - } + return $q.when(true); } - return value; } if (((attr.rpDestRippleName && webutil.isRippleName(value)) || - (attr.rpDestRippleNameNoTilde && value && value[0] !== '~' && webutil.isRippleName('~'+value)))) { // TODO Don't do a client check in validators + (attr.rpDestRippleNameNoTilde && value && value[0] !== '~' && webutil.isRippleName('~' + value)))) { // TODO Don't do a client check in validators ctrl.rpDestType = "rippleName"; - if (timeoutPromise) $timeout.cancel(timeoutPromise); + var defer = $q.defer(); + currentDefer = defer; - timeoutPromise = $timeout(function(){ - showLoading(true); + currentCheckTimeout = $timeout(function() { + currentCheckTimeout = null; + currentDefer = null; - rippleVaultClient.AuthInfo.get(Options.domain, value, function(err, info){ + rippleVaultClient.AuthInfo.get(Options.domain, value, function(err, info) { scope.$apply(function(){ - ctrl.$setValidity('rpDest', info.exists); - - if (attr.rpDestModel && info.exists) { - getter = $parse(attr.rpDestModel); - getter.assign(scope,info.address); + if (info.exists) { + setDestModelValue(info.address); + defer.resolve(info.exists); + } else { + defer.reject(); } - - showLoading(false); }); }); }, 500); - - return value; + return defer.promise; } - ctrl.$setValidity('rpDest', false); - return; + return $q.reject(false); }; - ctrl.$formatters.push(validator); - ctrl.$parsers.unshift(validator); - attr.$observe('rpDest', function() { - validator(ctrl.$viewValue); + ctrl.$validate(); }); } }; @@ -256,80 +229,61 @@ module.directive('rpDest', ['$timeout', '$parse', 'rpFederation', function ($tim /** * Check if the ripple name is valid and is available for use */ -module.directive('rpAvailableName', function ($timeout, $parse) { +module.directive('rpAvailableName', ['$q', '$timeout', '$parse', function ($q, $timeout, $parse) { return { restrict: 'A', require: '?ngModel', link: function (scope, elm, attr, ctrl) { if (!ctrl) return; - var timeoutPromise; - - var validator = function(value) { - var getterInvalidReason = $parse(attr.rpAvailableNameInvalidReason); - var getterReserved = $parse(attr.rpAvailableNameReservedFor); - - if (timeoutPromise) $timeout.cancel(timeoutPromise); + ctrl.$asyncValidators.rpAvailableName = function(value) { + scope.usernameInvalidReason = ''; + scope.usernameReservedFor = ''; if (!value) { // No name entered, show nothing, do nothing - getterInvalidReason.assign(scope,false); + return $q.when(true); } else if (value.length < 2) { - getterInvalidReason.assign(scope,'tooshort'); + scope.usernameInvalidReason = 'tooshort'; } else if (value.length > 20) { - getterInvalidReason.assign(scope,'toolong'); + scope.usernameInvalidReason = 'toolong'; } else if (!/^[a-zA-Z0-9\-]+$/.exec(value)) { - getterInvalidReason.assign(scope,'charset'); + scope.usernameInvalidReason = 'charset'; } else if (/^-/.exec(value)) { - getterInvalidReason.assign(scope,'starthyphen'); + scope.usernameInvalidReason = 'starthyphen'; } else if (/-$/.exec(value)) { - getterInvalidReason.assign(scope,'endhyphen'); + scope.usernameInvalidReason = 'endhyphen'; } else if (/--/.exec(value)) { - getterInvalidReason.assign(scope,'multhyphen'); + scope.usernameInvalidReason = 'multhyphen'; } else { - - timeoutPromise = $timeout(function(){ - if (attr.rpLoading) { - var getterL = $parse(attr.rpLoading); - getterL.assign(scope,true); - } - + var defer = $q.defer(); + $timeout(function(){ rippleVaultClient.AuthInfo.get(Options.domain, value, function(err, info){ scope.$apply(function(){ if (info.exists) { - ctrl.$setValidity('rpAvailableName', false); - getterInvalidReason.assign(scope,'exists'); + scope.usernameInvalidReason = 'exists'; + defer.reject('exists'); } else if (info.reserved) { - ctrl.$setValidity('rpAvailableName', false); - getterInvalidReason.assign(scope,'reserved'); - getterReserved.assign(scope,info.reserved); + scope.usernameInvalidReason = 'reserved'; + scope.usernameReservedFor = info.reserved; + defer.reject('reserved'); } else { - ctrl.$setValidity('rpAvailableName', true); - } - - if (attr.rpLoading) { - getterL.assign(scope,false); + defer.resolve(); } }); }); }, 500); - return value; + return defer.promise; } - - ctrl.$setValidity('rpAvailableName', false); - return; + return $q.reject(false); }; - - ctrl.$formatters.push(validator); - ctrl.$parsers.unshift(validator); - - attr.$observe('rpAvailableName', function() { - validator(ctrl.$viewValue); + attr.$observe('rpAvailableName', function(val) { + ctrl.$validate(); }); } }; -}); +}]); /** * Source and destination tags validator @@ -908,7 +862,7 @@ module.directive('rpPortNumber', function () { if (!ctrl) return; var validator = function(value) { - ctrl.$setValidity('rpPortNumber', (parseInt(value,10) == value && value >= 1 && value <= 65535)); + ctrl.$setValidity('rpPortNumber', !value || (parseInt(value, 10) == value && value >= 1 && value <= 65535)); return value; }; @@ -922,65 +876,6 @@ module.directive('rpPortNumber', function () { }; }); -/** - * Hostname validator - * Check if hostname is up and is a valid websocket server - */ -module.directive('rpHostname', function($timeout, $parse) { - return { - restrict: 'A', - require: '?ngModel', - link: function (scope, elm, attr, ctrl) { - if (!ctrl) return; - - var timeoutPromise; - - function showLoading(doShow) { - if (attr.rpServerLoading) { - var getterL = $parse(attr.rpServerLoading); - getterL.assign(scope, doShow); - } - } - - var validator = function(value) { - if (timeoutPromise) $timeout.cancel(timeoutPromise); - - timeoutPromise = $timeout(function() { - showLoading(true); - - var connection = new WebSocket('wss:'+value); - - connection.onopen = function() { - connection.send('{"command": "ping"}'); - }; - connection.onerror = function(e) { - scope.$apply(function() { - ctrl.$setValidity('rpHostname', false); - showLoading(false); - }) - }; - connection.onmessage = function(e) { - var test = JSON.parse(e.data).status === 'success'; - scope.$apply(function() { - ctrl.$setValidity('rpHostname', test); - showLoading(false); - }); - }; - }, 500); - - return value; - }; - - ctrl.$formatters.push(validator); - ctrl.$parsers.unshift(validator); - - attr.$observe('rpHostname', function() { - validator(ctrl.$viewValue); - }); - } - }; -}); - /** * Used for currency selectors */ diff --git a/src/js/entry/web.js b/src/js/entry/web.js index 7e933a576..8dfa448e2 100644 --- a/src/js/entry/web.js +++ b/src/js/entry/web.js @@ -1,48 +1,51 @@ -var types = require('../util/types'); +var types = require('../util/types'), + rewriter = require('../util/jsonrewriter'); // Load app modules -require('../controllers/app'); -require('../controllers/navbar'); -require('../directives/charts'); -require('../directives/fields'); -require('../directives/effects'); -require('../directives/validators'); -require('../directives/accountExists.js'); -require('../directives/events'); -require('../directives/formatters'); -require('../directives/directives'); -require('../directives/datalinks'); -require('../directives/errors'); -require('../directives/marketchart'); -require('../directives/ticker'); -require('../filters/filters'); -require('../filters/amountHasIssuer.js'); -require('../services/globalwrappers'); -require('../services/id'); -require('../services/tracker'); -require('../services/blobRemote'); -require('../services/oldblob'); -require('../services/txqueue'); -require('../services/authflowRemote'); -require('../services/keychain'); -require('../services/network'); -require('../services/books'); -require('../services/popup'); -require('../services/rippletxt'); -require('../services/federation'); -require('../services/domainalias'); -require('../services/history'); - -require('../services/integration/appManager'); -require('../services/integration/profileManager'); -require('../services/integration/account'); -require('../services/integration/history'); -require('../services/integration/trust'); -require('../services/integration/inboundBridge'); +require('../controllers/app.controller.js'); +require('../controllers/navbar.controller.js'); +require('../directives/charts.directive.js'); +require('../directives/fields.directive.js'); +require('../directives/effects.directive.js'); +require('../directives/validators.directive.js'); +require('../directives/accountExists.directive.js'); +require('../directives/events.directive.js'); +require('../directives/formatters.directive.js'); +require('../directives/directives.directive.js'); +require('../directives/addressPopover.directive.js'); +require('../directives/datalinks.directive.js'); +require('../directives/errors.directive.js'); +require('../directives/marketchart.directive.js'); +require('../filters/filters.filter.js'); +require('../filters/amountHasIssuer.filter.js'); +require('../validators/rpWebsocket.directive.js'); +require('../services/globalwrappers.service.js'); +require('../services/id.service.js'); +require('../services/tracker.service.js'); +require('../services/txqueue.service.js'); +require('../services/keychain.service.js'); +require('../services/network.service.js'); +require('../services/books.service.js'); +require('../services/popup.service.js'); +require('../services/rippletxt.service.js'); +require('../services/federation.service.js'); +require('../services/domainalias.service.js'); +require('../services/history.service.js'); +require('../services/notifications.service.js'); + +require('../services/authflow.service.js'); +require('../services/blob.service.js'); + +require('../services/integration/appManager.service.js'); +require('../services/integration/profileManager.service.js'); +require('../services/integration/account.service.js'); +require('../services/integration/history.service.js'); +require('../services/integration/trust.service.js'); +require('../services/integration/inboundBridge.service.js'); // Unused services -// require('../services/ledger'); -// require('../services/transactions'); +// require('../services/ledger.service.js'); +// require('../services/transactions.service.js'); // Angular module dependencies var appDependencies = [ @@ -55,6 +58,10 @@ var appDependencies = [ 'tracker', 'appManager', 'history', + 'notifications', + // ID Service related services + 'blob', + 'authflow', // Directives 'charts', 'effects', @@ -65,6 +72,7 @@ var appDependencies = [ 'validators', 'datalinks', 'errors', + 'ngMessages', // Filters 'filters', 'ui.bootstrap', @@ -73,46 +81,60 @@ var appDependencies = [ // Load tabs var tabdefs = [ - require('../tabs/register'), - require('../tabs/login'), - require('../tabs/migrate'), - require('../tabs/recover'), - require('../tabs/balance'), - require('../tabs/history'), - require('../tabs/contacts'), - require('../tabs/exchange'), - require('../tabs/account'), - require('../tabs/trust'), - require('../tabs/send'), - require('../tabs/trade'), - require('../tabs/advanced'), - require('../tabs/security'), - require('../tabs/kyc'), - require('../tabs/tx'), - require('../tabs/xrp'), - require('../tabs/debug'), - require('../tabs/btc'), - require('../tabs/withdraw'), - require('../tabs/usd'), - require('../tabs/eur'), - require('../tabs/sgd'), - require('../tabs/aud'), - require('../tabs/gold'), - require('../tabs/tou'), - require('../tabs/privacypolicy'), - require('../tabs/twofa'), - require('../tabs/jpy'), - require('../tabs/mxn'), - require('../tabs/nzd'), - require('../tabs/404'), - require('../tabs/brl'), - require('../tabs/settingstrade'), + require('../tabs/login.controller.js'), + require('../tabs/logout.controller.js'), + require('../tabs/balance.controller.js'), + require('../tabs/history.controller.js'), + require('../tabs/contacts.controller.js'), + require('../tabs/exchange.controller.js'), + require('../tabs/account.controller.js'), + require('../tabs/trust.controller.js'), + require('../tabs/send.controller.js'), + require('../tabs/trade.controller.js'), + require('../tabs/advanced.controller.js'), + require('../tabs/security.controller.js'), + require('../tabs/tx.controller.js'), + require('../tabs/xrp.controller.js'), + require('../tabs/debug.controller.js'), + require('../tabs/btc.controller.js'), + require('../tabs/withdraw.controller.js'), + require('../tabs/usd.controller.js'), + require('../tabs/eur.controller.js'), + require('../tabs/sgd.controller.js'), + require('../tabs/cad.controller.js'), + require('../tabs/gold.controller.js'), + require('../tabs/tou.controller.js'), + require('../tabs/privacypolicy.controller.js'), + require('../tabs/jpy.controller.js'), + require('../tabs/mxn.controller.js'), + require('../tabs/404.controller.js'), + require('../tabs/brl.controller.js'), + require('../tabs/settingstrade.controller.js'), + require('../tabs/settingsgateway.controller.js'), + require('../tabs/notifications.controller.js'), // Hidden tabs - require('../tabs/apps'), - require('../tabs/su') + require('../tabs/apps.controller.js'), + require('../tabs/su.controller.js') ]; +// Language +window.lang = (function(){ + var languages = _.pluck(require('../../../l10n/languages.json').active, 'code'); + var resolveLanguage = function(lang) { + if (!lang) return null; + if (languages.indexOf(lang) != -1) return lang; + if (lang.indexOf("_") != -1) { + lang = lang.split("_")[0]; + if (languages.indexOf(lang) != -1) return lang; + } + return null; + }; + return resolveLanguage(store.get('ripple_language')) || + resolveLanguage(window.navigator.userLanguage || window.navigator.language) || + 'en'; +})(); + // Prepare tab modules var tabs = tabdefs.map(function (Tab) { var tab = new Tab(); @@ -135,43 +157,42 @@ var app = angular var rippleclient = window.rippleclient = {}; rippleclient.app = app; rippleclient.types = types; +// for unit tests +rippleclient.rewriter = rewriter; -// Install basic page template -angular.element('body').prepend(require('../../jade/client/index.jade')()); +// for unit tests +rippleclient.tabs = {}; +_.each(tabs, function(tab) { rippleclient.tabs[tab.tabName] = tab; }); Config.$inject = ['$routeProvider', '$injector']; function Config ($routeProvider, $injector) { // Set up routing for tabs _.each(tabs, function (tab) { - if ("function" === typeof tab.generateHtml) { - var template = tab.generateHtml(); - - var config = { - tabName: tab.tabName, - tabClass: 't-'+tab.tabName, - pageMode: 'pm-'+tab.pageMode, - mainMenu: tab.mainMenu, - template: template - }; - - if ('balance' === tab.tabName) { - $routeProvider.when('/', config); - } - - $routeProvider.when('/'+tab.tabName, config); + var config = { + tabName: tab.tabName, + tabClass: 't-' + tab.tabName, + pageMode: 'pm-' + tab.pageMode, + mainMenu: tab.mainMenu, + templateUrl: 'templates/' + lang + '/tabs/' + tab.tabName + '.html' + }; + + if ('balance' === tab.tabName) { + $routeProvider.when('/', config); + } - if (tab.extraRoutes) { - _.each(tab.extraRoutes, function(route) { - $.extend({}, config, route.config); - $routeProvider.when(route.name, config); - }); - } + $routeProvider.when('/' + tab.tabName, config); - _.each(tab.aliases, function (alias) { - $routeProvider.when('/'+alias, config); + if (tab.extraRoutes) { + _.each(tab.extraRoutes, function(route) { + $.extend({}, config, route.config); + $routeProvider.when(route.name, config); }); } + + _.each(tab.aliases, function (alias) { + $routeProvider.when('/' + alias, config); + }); }); // Language switcher @@ -180,7 +201,7 @@ function Config ($routeProvider, $injector) { lang = routeParams.language; if (!store.disabled) { - store.set('ripple_language',lang ? lang : ''); + store.set('ripple_language', lang ? lang : ''); } // problem? @@ -224,6 +245,7 @@ function Run ($rootScope, $route, $routeParams, $location) var scope = $rootScope; $rootScope.$route = $route; $rootScope.$routeParams = $routeParams; + $rootScope.lang = lang; $('#main').data('$scope', scope); // If using the old "amnt" parameter rename it "amount" @@ -236,6 +258,15 @@ function Run ($rootScope, $route, $routeParams, $location) // put Options to rootScope so it can be used in html templates $rootScope.globalOptions = Options; + // Show loading while waiting for the template load + $rootScope.$on('$routeChangeStart', function() { + $rootScope.pageLoading = true; + }); + + $rootScope.$on('$routeChangeSuccess', function() { + $rootScope.pageLoading = false; + }); + // Once the app controller has been instantiated // XXX ST: I think this should be an event instead of a watch scope.$watch("app_loaded", function on_app_loaded(oldval, newval) { diff --git a/src/js/filters/amountHasIssuer.js b/src/js/filters/amountHasIssuer.filter.js similarity index 92% rename from src/js/filters/amountHasIssuer.js rename to src/js/filters/amountHasIssuer.filter.js index 63b8fac61..e580d0041 100644 --- a/src/js/filters/amountHasIssuer.js +++ b/src/js/filters/amountHasIssuer.filter.js @@ -1,5 +1,3 @@ -'use strict'; - angular.module('filters') .filter('rpAmountHasIssuer', rpAmountHasIssuer); diff --git a/src/js/filters/filters.js b/src/js/filters/filters.filter.js similarity index 95% rename from src/js/filters/filters.js rename to src/js/filters/filters.filter.js index d6a9559d7..c1a7685ff 100755 --- a/src/js/filters/filters.js +++ b/src/js/filters/filters.filter.js @@ -12,7 +12,6 @@ var currencies = require('../data/currencies'); */ module.filter('rpamount', function() { return function (input, options) { - var currency; var opts = jQuery.extend(true, {}, options); @@ -27,7 +26,7 @@ module.filter('rpamount', function() { if (!input) return "n/a"; if (opts.xrp_human && input === ("" + parseInt(input, 10))) { - input = input + ".0"; + input += "/XRP"; } var origPrecision = opts.precision; @@ -39,7 +38,7 @@ module.filter('rpamount', function() { } // if hard_precision is true, do not allow precision & min_precision to be overridden - if (! opts.hard_precision && input._is_native) { + if (!opts.hard_precision && input._is_native) { // If XRP, then set standard precision here currency = currencies[0].standard_precision; opts.min_precision = currency; @@ -62,7 +61,7 @@ module.filter('rpamount', function() { return amount.to_human(opts); } - if (! opts.hard_precision) { + if (!opts.hard_precision) { // Currency default precision for (var i = 0; i < currencies.length; i++) { if (currencies[i].value === amount.currency().to_human()) { @@ -82,7 +81,7 @@ module.filter('rpamount', function() { // We attempt to show the entire number, by setting opts.precision to a high number... 100 // opts.precision = 100; // quick fix. Amount.to_human uses Number.toFixed, which throws RangeError for values larger then 20. - opts.precision = 20; + opts.precision = 15; } var cdp = ("undefined" !== typeof currency) ? currency : 4; @@ -262,7 +261,7 @@ module.filter('rpfromnow', function() { * * Shows a ripple name for a given ripple address */ -module.filter("rpripplename", ['$rootScope', '$http', 'rpId', function($scope, $http, id) { +module.filter("rpripplename", ['rpId', function(id) { return function(address, options) { var ripplename = id.resolveNameSync(address, options); if (ripplename !== address) { @@ -275,6 +274,16 @@ module.filter("rpripplename", ['$rootScope', '$http', 'rpId', function($scope, $ } }]); +module.filter("rpripplenamefull", ['rpId', function(id) { + return function(address, options) { + var ripplename = id.resolveNameSync(address, options); + if (ripplename !== address) { + return ripplename; + } + return address; + } +}]); + /** * Show contact name or address */ @@ -555,3 +564,12 @@ module.filter('rpsortcontacts', function() { return arrayCopy; } }); + +module.filter('rprange', function() { + return function(input, total) { + total = parseInt(total, 10); + for (var i = 1; i <= total; i++) + input.push(i); + return input; + }; +}); diff --git a/src/js/services/authflow.service.js b/src/js/services/authflow.service.js new file mode 100644 index 000000000..e116baa00 --- /dev/null +++ b/src/js/services/authflow.service.js @@ -0,0 +1,55 @@ +'use strict'; + +/** + * AUTH FLOW IDS + * + * The auth flow service manages the login, unlock and registration procedures. + */ + +var module = angular.module('authflow', []); + +module.factory('rpAuthFlow', ['$rootScope', function($scope) { + var AuthFlow = {}; + + AuthFlow.exists = function(username, callback) { + var meta = AuthFlow.getVaultClient(username); + meta.client.exists(meta.username, callback); + }; + + AuthFlow.unlock = function(username, password, callback) { + if (!$scope.userBlob) { + $scope.$apply(function() { + callback(new Error('Blob not found')); + }); + return; + } + + var meta = AuthFlow.getVaultClient(username); + var encrypted_secret = $scope.userBlob.encrypted_secret; + meta.client.unlock(meta.username, password, encrypted_secret, function(err, resp) { + setImmediate(function() { + $scope.$apply(function() { + callback(err, resp); + }); + }); + }); + }; + + AuthFlow.getVaultClient = function(username) { + var meta = {username: username, domain: Options.domain}; + + var atSign = username.indexOf('@'); + if (atSign !== -1) { + meta = { + username: username.substring(0, atSign), + domain: username.substring(atSign + 1) + }; + } + + meta.client = new rippleVaultClient.VaultClient(meta.domain); + + return meta; + }; + + return AuthFlow; +}]); diff --git a/src/js/services/authflowLocal.js b/src/js/services/authflowLocal.js deleted file mode 100644 index f2f52bf01..000000000 --- a/src/js/services/authflowLocal.js +++ /dev/null @@ -1,69 +0,0 @@ -/** - * AUTH FLOW - * - * This auth flow service manages the login and registration procedures for the desktop client. - */ - -var module = angular.module('authflow', []); - -module.factory('rpAuthFlow', ['$rootScope', 'rpBlob', - function ($scope, $blob) - { - var AuthFlow = {}; - - /** - * Login - * - * @param {object} opts - * @param {string} opts.password - * @param {string} opts.walletfile - * @param {function} callback - */ - AuthFlow.login = function (opts, callback) { - var password = opts.password; - - $blob.init(opts.walletfile, password, function (err, blob) { - if (err) { - callback(err); - return; - } - - console.log("client: authflow: login succeeded", blob); - callback(null, blob, '', 'local'); - }); - }; - - /** - * Register an account - * - * @param {object} opts - * @param {string} opts.password - * @param {string} opts.account - * @param {string} opts.masterkey - * @param {string} opts.walletfile - * @param {function} callback - */ - AuthFlow.register = function (opts, callback) { - $blob.create({ - 'account': opts.account, - 'password': opts.password, - 'masterkey': opts.masterkey, - 'walletfile': opts.walletfile - }, - function (err, blob) { - if (err) { - callback(err); - return; - } - - console.log("client: authflow: registration succeeded", blob); - callback(null, blob, 'local'); - }); - }; - - AuthFlow.relogin = function (username, keys, callback) { - callback('err'); - }; - - return AuthFlow; - }]); diff --git a/src/js/services/authflowRemote.js b/src/js/services/authflowRemote.js deleted file mode 100644 index a256317af..000000000 --- a/src/js/services/authflowRemote.js +++ /dev/null @@ -1,272 +0,0 @@ -/** - * AUTH FLOW - * - * The auth flow service manages the login, unlock and registration procedures. - */ - -var webutil = require("../util/web"); -var log = require("../util/log"); - -var module = angular.module('authflow', []); - -module.factory('rpAuthFlow', ['$rootScope', - function ($scope) -{ - var AuthFlow = {}; - - AuthFlow.exists = function (username, password, callback) { - var meta = AuthFlow.getVaultClient(username); - meta.client.exists(meta.username, callback); - }; - - AuthFlow.login = function (opts, callback) { - var meta = AuthFlow.getVaultClient(opts.username); - var deviceID = opts.device_id || meta.client.generateDeviceID(); - meta.client.login(meta.username, opts.password, deviceID, function(err, resp) { - if (err) { - $scope.$apply(function(){ - callback(err); - }); - - return; - } - - var keys = { - id : resp.blob.id, - crypt : resp.blob.key - }; - - console.log("client: authflow: login succeeded", resp.blob); - $scope.$apply(function(){ - callback(null, resp.blob, keys, resp.username, resp.verified); - }); - }); - }; - - /** - * Register an account - * - * @param {object} opts - * @param {string} opts.username - * @param {string} opts.password - * @param {string} opts.account - * @param {string} opts.masterkey - * @param {object} opts.oldUserBlob - * @param {function} callback - */ - AuthFlow.register = function (opts, callback) { - opts.activateLink = Options.activate_link; //add the email activation link - opts.domain = Options.domain; - - var meta = AuthFlow.getVaultClient(opts.username); - opts.username = meta.username; - - meta.client.register(opts, function(err, resp) { - if (err) { - $scope.$apply(function(){ - callback(err); - }); - return; - } - - var keys = { - id : resp.blob.id, - crypt : resp.blob.key - }; - - console.log("client: authflow: registration succeeded", resp.blob); - $scope.$apply(function(){ - callback(null, resp.blob, keys, resp.username); - }); - }); - }; - - AuthFlow.verify = function (opts, callback) { - var meta = AuthFlow.getVaultClient(opts.username); - meta.client.verify(meta.username, opts.token, function(err, resp){ - $scope.$apply(function(){ - callback(err, resp); - }); - }); - }; - - AuthFlow.resendEmail = function (opts, callback) { - opts.activateLink = Options.activate_link; - var meta = AuthFlow.getVaultClient(opts.username); - opts.username = meta.username; - meta.client.resendEmail(opts, function(err, resp){ - $scope.$apply(function(){ - callback(err, resp); - }); - }); - }; - - AuthFlow.rename = function (opts, callback) { - var meta = AuthFlow.getVaultClient(opts.username); - meta.client.rename(opts, function(err, resp){ - $scope.$apply(function(){ - callback(err, resp); - }); - }); - }; - - AuthFlow.relogin = function (url, keys, deviceID, callback) { - var meta = AuthFlow.getVaultClient(''); - if (!deviceID) deviceID = meta.client.generateDeviceID(); - meta.client.relogin(url, keys.id, keys.crypt, deviceID, function(err, resp){ - if (err) { - callback(err); - return; - } - - callback(null, resp.blob); - }); - }; - - AuthFlow.unlock = function (username, password, callback) { - if (!$scope.userBlob) { - $scope.$apply(function(){ - callback(new Error("Blob not found")); - }); - return; - } - - var meta = AuthFlow.getVaultClient(username); - var encrypted_secret = $scope.userBlob.encrypted_secret; - meta.client.unlock(meta.username, password, encrypted_secret, function (err, resp){ - setImmediate(function(){ - $scope.$apply(function(){ - callback(err, resp); - }); - }); - }); - }; - - AuthFlow.recoverBlob = function (username, masterkey, callback) { - var meta = AuthFlow.getVaultClient(username); - - meta.client.getAuthInfo(username, function(err, authInfo){ - if (err) { - $scope.$apply(function(){ - callback(err); - }); - - } else if (!authInfo.exists) { - $scope.$apply(function(){ - callback(new Error ("User does not exist.")); - }); - - } else { - var options = { - url : authInfo.blobvault, - username : authInfo.username, //must use actual username - masterkey : masterkey - }; - meta.client.recoverBlob(options, function (err, resp) { - setImmediate(function() { - $scope.$apply(function() { - - //need the actual username for the change password call - if (resp) { - resp.username = authInfo.username; - } - - callback(err, resp); - }); - }); - }); - } - - }); - }; - - AuthFlow.changePassword = function (options, callback) { - var meta = AuthFlow.getVaultClient(options.username); - - meta.client.changePassword(options, function(err, resp){ - $scope.$apply(function(){ - callback(err, resp); - }); - }); - }; - - AuthFlow.requestToken = function (url, id, force_sms, callback) { - var meta = AuthFlow.getVaultClient(''); - meta.client.requestToken(url, id, force_sms, function(err, resp){ - $scope.$apply(function() { - callback(err, resp); - }); - }); - }; - - AuthFlow.verifyToken = function (options, callback) { - var meta = AuthFlow.getVaultClient(''); - if (!options.device_id) { - options.device_id = meta.client.generateDeviceID(); - } - - meta.client.verifyToken(options, function(err, resp){ - $scope.$apply(function() { - callback(err, resp); - }); - }); - }; - - AuthFlow.deleteBlob = function (options, callback) { - var meta = AuthFlow.getVaultClient(''); - - meta.client.deleteBlob(options, function(err, resp) { - $scope.$apply(function() { - callback(err, resp); - }); - }); - }; - - AuthFlow.updateAttestation = function (options, callback) { - var meta = AuthFlow.getVaultClient(''); - - meta.client.updateAttestation(options, function(err, resp) { - $scope.$apply(function() { - callback(err, resp); - }); - }); - }; - - AuthFlow.getAttestation = function(options, callback) { - var meta = AuthFlow.getVaultClient(''); - - meta.client.getAttestation(options, function(err, resp) { - $scope.$apply(function() { - callback(err, resp); - }); - }); - }; - - AuthFlow.getAttestationSummary = function(options, callback) { - var meta = AuthFlow.getVaultClient(''); - - meta.client.getAttestationSummary(options, function(err, resp) { - $scope.$apply(function() { - callback(err, resp); - }); - }); - }; - - AuthFlow.getVaultClient = function(username) { - var meta = { username: username, domain: Options.domain }; - - var atSign = username.indexOf('@'); - if (atSign !== -1) { - meta = { - username: username.substring(0, atSign), - domain: username.substring(atSign+1) - }; - } - - meta.client = new rippleVaultClient.VaultClient(meta.domain); - - return meta; - }; - - return AuthFlow; -}]); diff --git a/src/js/services/blob.service.js b/src/js/services/blob.service.js new file mode 100644 index 000000000..d963ebc97 --- /dev/null +++ b/src/js/services/blob.service.js @@ -0,0 +1,347 @@ +'use strict'; + +var module = angular.module('blob', []); + +module.factory('rpBlob', ['$rootScope', '$http', '$q', function($scope, $http, $q) { + + // Blob object class + function BlobObj() { + this.data = {}; + } + + // Blob operations + // Do NOT change the mapping of existing ops + BlobObj.ops = { + // Special + noop: 0, + + // Simple ops + set: 16, + unset: 17, + extend: 18, + + // Meta ops + push: 32, + pop: 33, + shift: 34, + unshift: 35, + filter: 36 + }; + + BlobObj.opsReverseMap = []; + for (var name in BlobObj.ops) { + BlobObj.opsReverseMap[BlobObj.ops[name]] = name; + } + + // Identity fields + var identityRoot = 'identityVault'; + + /** + * Initialize a new blob object + */ + + BlobObj.prototype.init = function() { + var self = this; + + return $http.get( + Options.backend_url + '/api/blob', { + headers: {'Authorization': 'Bearer ' + store.get('backend_token')}, + timeout: 8000 + }).then(function(response) { + if (!response.data || !response.data.data || !response.data.data.account_id) { + return $q.reject('Could not retrieve blob'); + } + + // TODO assign all fields + self.ripple_name = response.data.ripple_name; + self.identity = response.data.identity; + self.device_id = response.data.device_id; + self.encrypted_secret = response.data.encrypted_secret; + self.data = response.data.data; + + // return with newly assembled blob + return self; + + }, function(response) { + return $q.reject(response.data || 'Could not retrieve blob'); + }); + }; + + /**** Blob updating functions ****/ + + /** + * Set blob element + */ + + BlobObj.prototype.set = function(pointer, value, callback) { + if (pointer === '/' + identityRoot && this.data[identityRoot]) { + return callback(new Error('Cannot overwrite Identity Vault')); + } + + this.applyUpdate('set', pointer, [value]); + this.postUpdate(callback); + }; + + /** + * Remove blob element + */ + + BlobObj.prototype.unset = function(pointer, callback) { + if (pointer === '/' + identityRoot) { + return callback(new Error('Cannot remove Identity Vault')); + } + + this.applyUpdate('unset', pointer, []); + this.postUpdate(callback); + }; + + /** + * Extend blob object + */ + + BlobObj.prototype.extend = function(pointer, value, callback) { + this.applyUpdate('extend', pointer, [value]); + this.postUpdate('extend', pointer, [value], callback); + }; + + /** + * Prepend blob array + */ + + BlobObj.prototype.unshift = function(pointer, value, callback) { + this.applyUpdate('unshift', pointer, [value]); + this.postUpdate(callback); + }; + + /** + * Filter the row(s) from an array. + * + * This method will find any entries from the array stored under `pointer` and + * apply the `subcommands` to each of them. + * + * The subcommands can be any commands with the pointer parameter left out. + */ + + BlobObj.prototype.filter = function(pointer, field, value, subcommands, callback) { + var args = Array.prototype.slice.apply(arguments); + + if (typeof args[args.length - 1] === 'function') { + callback = args.pop(); + } + + args.shift(); + + // Normalize subcommands to minimize the patch size + args = args.slice(0, 2).concat(normalizeSubcommands(args.slice(2), true)); + + this.applyUpdate('filter', pointer, args); + this.postUpdate(callback); + }; + + /** + * Apply udpdate to the blob + */ + + BlobObj.prototype.applyUpdate = function(op, path, params) { + // Exchange from numeric op code to string + if (typeof op === 'number') { + op = BlobObj.opsReverseMap[op]; + } + + if (typeof op !== 'string') { + throw new Error('Blob update op code must be a number or a valid op id string'); + } + + // Separate each step in the 'pointer' + var pointer = path.split('/'); + var first = pointer.shift(); + + if (first !== '') { + throw new Error('Invalid JSON pointer: ' + path); + } + + this._traverse(this.data, pointer, path, op, params); + }; + + // for applyUpdate function + BlobObj.prototype._traverse = function(context, pointer, originalPointer, op, params) { + var _this = this; + var part = _this.unescapeToken(pointer.shift()); + + if (Array.isArray(context)) { + if (part === '-') { + part = context.length; + } else if (part % 1 !== 0 && part >= 0) { + throw new Error('Invalid pointer, array element segments must be a positive integer, zero or \'-\''); + } + } else if (typeof context !== 'object') { + return null; + } else if (!context.hasOwnProperty(part)) { + // Some opcodes create the path as they're going along + if (op === 'set') { + context[part] = {}; + } else if (op === 'unshift') { + context[part] = []; + } else { + return null; + } + } + + if (pointer.length !== 0) { + return this._traverse(context[part], pointer, originalPointer, op, params); + } + + switch (op) { + case 'set': + context[part] = params[0]; + break; + case 'unset': + if (Array.isArray(context)) { + context.splice(part, 1); + } else { + delete context[part]; + } + break; + case 'extend': + if (typeof context[part] !== 'object') { + throw new Error('Tried to extend a non-object'); + } + // extend(true, context[part], params[0]); + $.extend(context[part], params[0]); + break; + case 'unshift': + if (typeof context[part] === 'undefined') { + context[part] = []; + } else if (!Array.isArray(context[part])) { + throw new Error('Operator "unshift" must be applied to an array.'); + } + context[part].unshift(params[0]); + break; + case 'filter': + if (Array.isArray(context[part])) { + context[part].forEach(function(element, i) { + if (typeof element === 'object' && element.hasOwnProperty(params[0]) && element[params[0]] === params[1]) { + var subpointer = originalPointer + '/' + i; + var subcommands = normalizeSubcommands(params.slice(2)); + + subcommands.forEach(function(subcommand) { + var op = subcommand[0]; + var pointer = subpointer + subcommand[1]; + _this.applyUpdate(op, pointer, subcommand.slice(2)); + }); + } + }); + } + break; + default: + throw new Error('Unsupported op ' + op); + } + }; + + BlobObj.prototype.escapeToken = function(token) { + return token.replace(/[~\/]/g, function(key) { + return key === '~' ? '~0' : '~1'; + }); + }; + + BlobObj.prototype.unescapeToken = function(str) { + return str.replace(/~./g, function(m) { + switch (m) { + case '~0': + return '~'; + case '~1': + return '/'; + } + throw new Error('Invalid tilde escape: ' + m); + }); + }; + + /** + * Sumbit update to blob vault + */ + + BlobObj.prototype.postUpdate = function(callback) { + + // Callback is optional + if (typeof callback !== 'function') { + callback = $.noop; + } + + var blobData = {}; + + blobData.ripple_name = this.ripple_name; + blobData.identity = this.identity; + blobData.device_id = this.device_id; + blobData.encrypted_secret = this.encrypted_secret; + blobData.data = this.data; + + return $http.post( + Options.backend_url + '/api/blob', + blobData, { + headers: {'Authorization': 'Bearer ' + store.get('backend_token')}, + timeout: 8000 + }).then(function(response) { + if (!response.data) { + return callback(new Error('Could not save blob')); + } + return callback(null, response.data); + + }, function(response) { + return callback(new Error('Could not save blob')); + } + ); + }; + + /***** helper functions *****/ + + function normalizeSubcommands(subcommands, compress) { + // Normalize parameter structure + if (/(number|string)/.test(typeof subcommands[0])) { + // Case 1: Single subcommand inline + subcommands = [subcommands]; + } else if (subcommands.length === 1 && Array.isArray(subcommands[0]) && /(number|string)/.test(typeof subcommands[0][0])) { + // Case 2: Single subcommand as array + // (nothing to do) + } else if (Array.isArray(subcommands[0])) { + // Case 3: Multiple subcommands as array of arrays + subcommands = subcommands[0]; + } + + // Normalize op name and convert strings to numeric codes + subcommands = subcommands.map(function(subcommand) { + if (typeof subcommand[0] === 'string') { + subcommand[0] = BlobObj.ops[subcommand[0]]; + } + + if (typeof subcommand[0] !== 'number') { + throw new Error('Invalid op in subcommand'); + } + + if (typeof subcommand[1] !== 'string') { + throw new Error('Invalid path in subcommand'); + } + + return subcommand; + }); + + if (compress) { + // Convert to the minimal possible format + if (subcommands.length === 1) { + return subcommands[0]; + } + + return [subcommands]; + + } + + return subcommands; + + } + + /** + * Blob object class + */ + + return BlobObj; + +}]); diff --git a/src/js/services/blobLocal.js b/src/js/services/blobLocal.js deleted file mode 100644 index 751659178..000000000 --- a/src/js/services/blobLocal.js +++ /dev/null @@ -1,379 +0,0 @@ -/** - * BLOB - * - * User blob storage for desktop client - */ - -// TODO build a blobPrototype. -// There's currently a code repetition between blobLocal and blobRemote.. - -var fs = require("fs"); - -var module = angular.module('blob', []); - -module.factory('rpBlob', ['$rootScope', function ($scope) -{ - var cryptConfig = { - // key size - ks: 256, - // iterations (key derivation) - iter: 1000 - }; - - var BlobObj = function (password, walletfile) - { - this.password = password; - this.walletfile = walletfile; - this.data = {}; - }; - - // Blob operations - // Do NOT change the mapping of existing ops - BlobObj.ops = { - // Special - "noop": 0, - - // Simple ops - "set": 16, - "unset": 17, - "extend": 18, - - // Meta ops - "push": 32, - "pop": 33, - "shift": 34, - "unshift": 35, - "filter": 36 - }; - - BlobObj.opsReverseMap = []; - $.each(BlobObj.ops, function (name, code) { - BlobObj.opsReverseMap[code] = name; - }); - - /** - * Attempts to retrieve the blob. - */ - BlobObj.get = function(walletfile, callback) - { - fs.readFile(walletfile, 'utf8', function(err, data){ - if (err) { - callback(err); - return; - } - - callback(null, data); - }); - }; - - /** - * Attempts to retrieve and decrypt the blob. - */ - BlobObj.init = function(walletfile, password, callback) - { - BlobObj.get(walletfile, function (err, data) { - if (err) { - callback(err); - return; - } - - var blob = new BlobObj(password, walletfile); - var decryptedBlob = blob.decrypt(data); - - if (!decryptedBlob) { - callback(new Error("Error while decrypting blob")); - return; - } - - callback(null, decryptedBlob); - }); - }; - - /** - * Create a blob object - * - * @param {object} opts - * @param {string} opts.url - * @param {string} opts.id - * @param opts.crypt - * @param opts.unlock - * @param {string} opts.username - * @param {string} opts.account - * @param {string} opts.masterkey - * @param {object=} opts.oldUserBlob - * @param {function} callback - */ - BlobObj.create = function (opts, callback) - { - var blob = new BlobObj(opts.password, opts.walletfile); - blob.data = { - masterkey: opts.masterkey, - account_id: opts.account, - contacts: [], - created: (new Date()).toJSON() - }; - - blob.persist(callback); - }; - - // Store blob in a file - BlobObj.prototype.persist = function(callback) - { - var blob = this; - - fs.writeFile(this.walletfile, this.encrypt(), function(){ - callback(null, blob); - }); - }; - - BlobObj.prototype.encrypt = function() - { - // Filter Angular metadata before encryption - if ('object' === typeof this.data && - 'object' === typeof this.data.contacts) - this.data.contacts = angular.fromJson(angular.toJson(this.data.contacts)); - - // Encryption - return btoa(sjcl.encrypt(""+this.password.length+'|'+this.password, - JSON.stringify(this.data), { - ks: cryptConfig.ks, - iter: cryptConfig.iter - } - )); - }; - - BlobObj.prototype.decrypt = function (data) - { - var blob = this; - - try { - function decrypt(priv, ciphertext) - { - blob.data = JSON.parse(sjcl.decrypt(priv, ciphertext)); - return blob; - } - - return decrypt(""+this.password.length+'|'+this.password, atob(data)); - } catch (e) { - console.log("client: blob: decryption failed", e.toString()); - console.log(e.stack); - return false; - } - }; - - BlobObj.escapeToken = function (token) { - return token.replace(/[~\/]/g, function (key) { return key === "~" ? "~0" : "~1"; }); - }; - BlobObj.prototype.escapeToken = BlobObj.escapeToken; - - var unescapeToken = function(str) { - return str.replace(/~./g, function(m) { - switch (m) { - case "~0": - return "~"; - case "~1": - return "/"; - } - throw("Invalid tilde escape: " + m); - }); - }; - - BlobObj.prototype.applyUpdate = function (op, path, params) { - // Exchange from numeric op code to string - if ("number" === typeof op) { - op = BlobObj.opsReverseMap[op]; - } - if ("string" !== typeof op) { - throw new Error("Blob update op code must be a number or a valid op id string"); - } - - // Separate each step in the "pointer" - var pointer = path.split("/"); - - var first = pointer.shift(); - if (first !== "") { - throw new Error("Invalid JSON pointer: "+path); - } - - this._traverse(this.data, pointer, path, op, params); - - this.persist(function(){ - console.log('Blob saved'); - }); - }; - - BlobObj.prototype._traverse = function (context, pointer, - originalPointer, op, params) { - var _this = this; - var part = unescapeToken(pointer.shift()); - - if (Array.isArray(context)) { - if (part === '-') { - part = context.length; - } else if (part % 1 !== 0 && part >= 0) { - throw new Error("Invalid pointer, array element segments must be " + - "a positive integer, zero or '-'"); - } - } else if ("object" !== typeof context) { - return null; - } else if (!context.hasOwnProperty(part)) { - // Some opcodes create the path as they're going along - if (op === "set") { - context[part] = {}; - } else if (op === "unshift") { - context[part] = []; - } else { - return null; - } - } - - if (pointer.length !== 0) { - return this._traverse(context[part], pointer, - originalPointer, op, params); - } - - switch (op) { - case "set": - context[part] = params[0]; - break; - case "unset": - if (Array.isArray(context)) { - context.splice(part, 1); - } else { - delete context[part]; - } - break; - case "extend": - if ("object" !== typeof context[part]) { - throw new Error("Tried to extend a non-object"); - } - $.extend(context[part], params[0]); - break; - case "unshift": - if ("undefined" === typeof context[part]) { - context[part] = []; - } else if (!Array.isArray(context[part])) { - throw new Error("Operator 'unshift' must be applied to an array."); - } - context[part].unshift(params[0]); - break; - case "filter": - if (Array.isArray(context[part])) { - context[part].forEach(function (element, i) { - if ("object" === typeof element && - element.hasOwnProperty(params[0]) && - element[params[0]] === params[1]) { - var subpointer = originalPointer+"/"+i; - var subcommands = normalizeSubcommands(params.slice(2)); - - subcommands.forEach(function (subcommand) { - var op = subcommand[0]; - var pointer = subpointer+subcommand[1]; - _this.applyUpdate(op, pointer, subcommand.slice(2)); - }); - } - }); - } - break; - default: - throw new Error("Unsupported op "+op); - } - }; - - BlobObj.prototype.set = function (pointer, value, callback) { - this.applyUpdate('set', pointer, [value]); - }; - - BlobObj.prototype.unset = function (pointer, callback) { - this.applyUpdate('unset', pointer, []); - }; - - BlobObj.prototype.extend = function (pointer, value, callback) { - this.applyUpdate('extend', pointer, [value]); - }; - - /** - * Prepend an entry to an array. - * - * This method adds an entry to the beginning of an array. - */ - BlobObj.prototype.unshift = function (pointer, value, callback) { - this.applyUpdate('unshift', pointer, [value]); - }; - - function normalizeSubcommands(subcommands, compress) { - // Normalize parameter structure - if ("number" === typeof subcommands[0] || - "string" === typeof subcommands[0]) { - // Case 1: Single subcommand inline - subcommands = [subcommands]; - } else if (subcommands.length === 1 && - Array.isArray(subcommands[0]) && - ("number" === typeof subcommands[0][0] || - "string" === typeof subcommands[0][0])) { - // Case 2: Single subcommand as array - // (nothing to do) - } else if (Array.isArray(subcommands[0])) { - // Case 3: Multiple subcommands as array of arrays - subcommands = subcommands[0]; - } - - // Normalize op name and convert strings to numeric codes - subcommands = subcommands.map(function (subcommand) { - if ("string" === typeof subcommand[0]) { - subcommand[0] = BlobObj.ops[subcommand[0]]; - } - if ("number" !== typeof subcommand[0]) { - throw new Error("Invalid op in subcommand"); - } - if ("string" !== typeof subcommand[1]) { - throw new Error("Invalid path in subcommand"); - } - return subcommand; - }); - - if (compress) { - // Convert to the minimal possible format - if (subcommands.length === 1) { - return subcommands[0]; - } else { - return [subcommands]; - } - } else { - return subcommands; - } - } - - /** - * Filter the row(s) from an array. - * - * This method will find any entries from the array stored under `pointer` and - * apply the `subcommands` to each of them. - * - * The subcommands can be any commands with the pointer parameter left out. - */ - BlobObj.prototype.filter = function (pointer, field, value, subcommands, callback) { - var params = Array.prototype.slice.apply(arguments); - if ("function" === typeof params[params.length-1]) { - callback = params.pop(); - } - params.shift(); - - // Normalize subcommands to minimize the patch size - params = params.slice(0, 2).concat(normalizeSubcommands(params.slice(2), true)); - - this.applyUpdate('filter', pointer, params); - }; - - function BlobError(message, backend) { - this.name = "BlobError"; - this.message = message || ""; - this.backend = backend || "generic"; - } - - BlobError.prototype = Error.prototype; - - BlobObj.BlobError = BlobError; - - return BlobObj; -}]); diff --git a/src/js/services/blobRemote.js b/src/js/services/blobRemote.js deleted file mode 100644 index 3a3c214b4..000000000 --- a/src/js/services/blobRemote.js +++ /dev/null @@ -1,768 +0,0 @@ -/** - * BLOB - * - * User blob storage service - */ - -// TODO build a blobPrototype. -// There's currently a code repetition between blobLocal and blobRemote.. - -var webutil = require("../util/web"); - -var module = angular.module('blob', []); - -module.factory('rpBlob', ['$rootScope', '$http', function ($scope, $http) -{ - var BlobObj = function (url, id, key) - { - this.url = url; - this.id = id; - this.key = key; - this.data = {}; - }; - - // Blob operations - // Do NOT change the mapping of existing ops - BlobObj.ops = { - // Special - "noop": 0, - - // Simple ops - "set": 16, - "unset": 17, - "extend": 18, - - // Meta ops - "push": 32, - "pop": 33, - "shift": 34, - "unshift": 35, - "filter": 36 - }; - - BlobObj.opsReverseMap = []; - $.each(BlobObj.ops, function (name, code) { - BlobObj.opsReverseMap[code] = name; - }); - - /** - * Attempts to retrieve the blob. - */ - BlobObj.get = function(url, id, callback) - { - if (url.indexOf("://") === -1) url = "http://" + url; - - $.ajax({ - url: url + '/v1/blob/' + id, - dataType: 'json', - timeout: 8000 - }) - .success(function (data) { - setImmediate(function () { - $scope.$apply(function () { - if (data.result === "success") { - callback(null, data); - } else { - callback(new Error("Incorrect Ripple name or password.")); - } - }); - }); - }) - .error(webutil.getAjaxErrorHandler(callback, "BlobVault GET")); - }; - - /** - * Attempts to retrieve and decrypt the blob. - */ - BlobObj.init = function(url, id, crypt, callback) - { - BlobObj.get(url, id, function (err, data) { - if (err) { - callback(err); - return; - } - - var blob = new BlobObj(url, id, crypt); - - blob.revision = data.revision; - - // HOTFIX: Workaround for blobvault sending encrypted_secret in incorrect format - if (Array.isArray(data.encrypted_secret)) { - data.encrypted_secret = sjcl.codec.utf8String.fromBits(sjcl.codec.bytes.toBits(data.encrypted_secret)); - } - blob.encrypted_secret = data.encrypted_secret; - - if (!blob.decrypt(data.blob)) { - callback(new Error("Error while decrypting blob")); - } - - // Apply patches - if ($.isArray(data.patches) && data.patches.length) { - var successful = true; - $.each(data.patches, function (i, patch) { - successful = successful && blob.applyEncryptedPatch(patch); - }); - - if (successful) blob.consolidate(); - } - - // HOTFIX: Workaround for old staging accounts that have the secret stored in the blob - // This is NOT needed for any production accounts and will be removed in the future. - if (blob.encrypted_secret === "" && - "object" === typeof blob.data && - "string" === typeof blob.data.encrypted_secret) { - blob.encrypted_secret = blob.data.encrypted_secret; - } - - callback(null, blob); - }); - }; - - /** - * Create a blob object - * - * @param {object} opts - * @param {string} opts.url - * @param {string} opts.id - * @param opts.crypt - * @param opts.unlock - * @param {string} opts.username - * @param {string} opts.account - * @param {string} opts.masterkey - * @param {object=} opts.oldUserBlob - * @param {function} callback - */ - BlobObj.create = function (opts, callback) - { - var blob = new BlobObj(opts.url, opts.id, opts.crypt); - var encryptedSecret = blob.encryptSecret(opts.unlock, opts.masterkey); - - blob.revision = 0; - blob.data = { - auth_secret: sjcl.codec.hex.fromBits(sjcl.random.randomWords(8)), - account_id: opts.account, - email: opts.email, - contacts: [], - created: (new Date()).toJSON() - }; - blob.encrypted_secret = encryptedSecret; - - // Migration - if (opts.oldUserBlob) { - blob.data.contacts = opts.oldUserBlob.data.contacts; - } - - var config = { - method: "POST", - url: opts.url + '/v1/user', - data: { - blob_id: opts.id, - username: opts.username, - address: opts.account, - auth_secret: blob.data.auth_secret, - data: blob.encrypt(), - email: opts.email, - hostlink: Options.activate_link, - encrypted_blobdecrypt_key: blob.encryptBlobCrypt(opts.masterkey, opts.crypt), - encrypted_secret: encryptedSecret - } - }; - - $http(BlobObj.signRequestAsymmetric(config, opts.masterkey, opts.account, opts.id)) - .success(function (data) { - if (data.result === "success") { - callback(null, blob, data); - } else { - callback(new Error("Could not create blob")); - } - }) -// .error(webutil.getAjaxErrorHandler(callback, "BlobVault POST /v1/user")); - .error(function(err){ - console.log('err',err); - }); - }; - - BlobObj.verify = function (opts, callback) { - $http({ - method: 'GET', - url: opts.url + '/v1/user/' + opts.username + '/verify/' + opts.token - }) - .success(function(data, status, headers, config) { - if (data.result === "success") { - callback(null, data); - } else { - console.log("client: blob: could not verify:", data); - callback(new Error("Failed to verify the account")); - } - }) - .error(function(data, status, headers, config) { - console.log("client: blob: could not verify: "+status+" - "+data); - callback(new Error("Failed to verify the account - XHR error")); - }); - }; - - BlobObj.prototype.resendEmail = function (opts, callback) { - var config = { - method: 'POST', - url: opts.url + '/v1/user/email', - responseType: 'json', - data: { - blob_id: this.id, - username: opts.username, - email: opts.email, - hostlink: Options.activate_link - } - }; - - $http(BlobObj.signRequestAsymmetric(config, opts.masterkey, this.data.account_id, this.id)) - .success(function(data, status, headers, config) { - if (data.result === "success") { - callback(null, data); - } else { - console.log("client: blob: could not resend the token:", data); - callback(new Error("Failed to resend the token")); - } - }) - .error(function(data, status, headers, config) { - console.log("client: blob: could not resend the token:", data); - callback(new Error("Failed to resend the token")); - }); - }; - - var cryptConfig = { - cipher: "aes", - mode: "ccm", - // tag length - ts: 64, - // key size - ks: 256, - // iterations (key derivation) - iter: 1000 - }; - - function encrypt(key, data) - { - key = sjcl.codec.hex.toBits(key); - - var opts = $.extend({}, cryptConfig); - - var encryptedObj = JSON.parse(sjcl.encrypt(key, data, opts)); - - var version = [sjcl.bitArray.partial(8, 0)]; - var initVector = sjcl.codec.base64.toBits(encryptedObj.iv); - var ciphertext = sjcl.codec.base64.toBits(encryptedObj.ct); - - var encryptedBits = sjcl.bitArray.concat(version, initVector); - encryptedBits = sjcl.bitArray.concat(encryptedBits, ciphertext); - - return sjcl.codec.base64.fromBits(encryptedBits); - } - - function decrypt(key, data) - { - key = sjcl.codec.hex.toBits(key); - var encryptedBits = sjcl.codec.base64.toBits(data); - - var version = sjcl.bitArray.extract(encryptedBits, 0, 8); - - if (version !== 0) { - throw new Error("Unsupported encryption version: "+version); - } - - var encrypted = $.extend({}, cryptConfig, { - iv: sjcl.codec.base64.fromBits(sjcl.bitArray.bitSlice(encryptedBits, 8, 8+128)), - ct: sjcl.codec.base64.fromBits(sjcl.bitArray.bitSlice(encryptedBits, 8+128)) - }); - - return sjcl.decrypt(key, JSON.stringify(encrypted)); - } - - BlobObj.prototype.encrypt = function() - { - // Filter Angular metadata before encryption - if ('object' === typeof this.data && - 'object' === typeof this.data.contacts) - this.data.contacts = angular.fromJson(angular.toJson(this.data.contacts)); - - var key = sjcl.codec.hex.toBits(this.key); - - return encrypt(this.key, JSON.stringify(this.data)); - }; - - BlobObj.prototype.decrypt = function (data) - { - try { - this.data = JSON.parse(decrypt(this.key, data)); - return this; - } catch (e) { - console.log("client: blob: decryption failed", e.toString()); - console.log(e.stack); - return false; - } - }; - - BlobObj.prototype.applyEncryptedPatch = function (patch) - { - try { - var params = JSON.parse(decrypt(this.key, patch)); - var op = params.shift(); - var path = params.shift(); - - this.applyUpdate(op, path, params); - - this.revision++; - - return true; - } catch (err) { - console.log("client: blob: failed to apply patch:", err.toString()); - console.log(err.stack); - return false; - } - }; - - BlobObj.prototype.consolidate = function (callback) { - // Callback is optional - if ("function" !== typeof callback) callback = $.noop; - - console.log("client: blob: consolidation at revision", this.revision); - var encrypted = this.encrypt(); - - var config = { - method: 'POST', - url: this.url + '/v1/blob/consolidate', - responseType: 'json', - data: { - blob_id: this.id, - data: encrypted, - revision: this.revision - } - }; - - $http(BlobObj.signRequestHmac(config, this.data.auth_secret, this.id)) - .success(function(data, status, headers, config) { - if (data.result === "success") { - callback(null, data); - } else { - console.log("client: blob: could not consolidate:", data); - callback(new Error("Failed to consolidate blob")); - } - }) - .error(function(data, status, headers, config) { - console.log("client: blob: could not consolidate: "+status+" - "+data); - - // XXX Add better error information to exception - callback(new Error("Failed to consolidate blob - XHR error")); - }); - }; - - BlobObj.escapeToken = function (token) { - return token.replace(/[~\/]/g, function (key) { return key === "~" ? "~0" : "~1"; }); - }; - BlobObj.prototype.escapeToken = BlobObj.escapeToken; - - var unescapeToken = function(str) { - return str.replace(/~./g, function(m) { - switch (m) { - case "~0": - return "~"; - case "~1": - return "/"; - } - throw("Invalid tilde escape: " + m); - }); - }; - - BlobObj.prototype.applyUpdate = function (op, path, params) { - // Exchange from numeric op code to string - if ("number" === typeof op) { - op = BlobObj.opsReverseMap[op]; - } - if ("string" !== typeof op) { - throw new Error("Blob update op code must be a number or a valid op id string"); - } - - // Separate each step in the "pointer" - var pointer = path.split("/"); - - var first = pointer.shift(); - if (first !== "") { - throw new Error("Invalid JSON pointer: "+path); - } - - this._traverse(this.data, pointer, path, op, params); - }; - - BlobObj.prototype._traverse = function (context, pointer, - originalPointer, op, params) { - var _this = this; - var part = unescapeToken(pointer.shift()); - - if (Array.isArray(context)) { - if (part === '-') { - part = context.length; - } else if (part % 1 !== 0 && part >= 0) { - throw new Error("Invalid pointer, array element segments must be " + - "a positive integer, zero or '-'"); - } - } else if ("object" !== typeof context) { - return null; - } else if (!context.hasOwnProperty(part)) { - // Some opcodes create the path as they're going along - if (op === "set") { - context[part] = {}; - } else if (op === "unshift") { - context[part] = []; - } else { - return null; - } - } - - if (pointer.length !== 0) { - return this._traverse(context[part], pointer, - originalPointer, op, params); - } - - switch (op) { - case "set": - context[part] = params[0]; - break; - case "unset": - if (Array.isArray(context)) { - context.splice(part, 1); - } else { - delete context[part]; - } - break; - case "extend": - if ("object" !== typeof context[part]) { - throw new Error("Tried to extend a non-object"); - } - $.extend(context[part], params[0]); - break; - case "unshift": - if ("undefined" === typeof context[part]) { - context[part] = []; - } else if (!Array.isArray(context[part])) { - throw new Error("Operator 'unshift' must be applied to an array."); - } - context[part].unshift(params[0]); - break; - case "filter": - if (Array.isArray(context[part])) { - context[part].forEach(function (element, i) { - if ("object" === typeof element && - element.hasOwnProperty(params[0]) && - element[params[0]] === params[1]) { - var subpointer = originalPointer+"/"+i; - var subcommands = normalizeSubcommands(params.slice(2)); - - subcommands.forEach(function (subcommand) { - var op = subcommand[0]; - var pointer = subpointer+subcommand[1]; - _this.applyUpdate(op, pointer, subcommand.slice(2)); - }); - } - }); - } - break; - default: - throw new Error("Unsupported op "+op); - } - }; - - function copyObjectWithSortedKeys(object) { - if (jQuery.isPlainObject(object)) { - var newObj = {}; - var keysSorted = Object.keys(object).sort(); - var key; - for (var i in keysSorted) { - key = keysSorted[i]; - if (Object.prototype.hasOwnProperty.call(object, key)) { - newObj[key] = copyObjectWithSortedKeys(object[key]); - } - } - return newObj; - } else if (jQuery.isArray(object)) { - return object.map(copyObjectWithSortedKeys); - } else { - return object; - } - } - - var dateAsIso8601 = (function () { - function pad(n) { - return (n < 0 || n > 9 ? "" : "0") + n; - } - - return function dateAsIso8601() { - var date = new Date(); - return date.getUTCFullYear() + "-" - + pad(date.getUTCMonth() + 1) + "-" - + pad(date.getUTCDate()) + "T" - + pad(date.getUTCHours()) + ":" - + pad(date.getUTCMinutes()) + ":" - + pad(date.getUTCSeconds()) + ".000Z"; - }; - })(); - - BlobObj.getStringToSign = function (config, parser, date, mechanism) { - // XXX This method doesn't handle signing GET requests correctly. The data - // field will be merged into the search string, not the request body. - - // Sort the properties of the JSON object into canonical form - var canonicalData = JSON.stringify(copyObjectWithSortedKeys(config.data)); - - // We're using URL parsing using browser functionality. Unfortunately the - // parsing result slightly differs in IE - it is missing a leading slash. - // XXX Proper fix would be to use a pure JS URL parser. - var pathname = parser.pathname; - - // IE11 Workaround - if (pathname[0] !== '/') pathname = '/' + pathname; - - // Canonical request using Amazon's v4 signature format - // See: http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html - var canonicalRequest = [ - config.method || 'GET', - pathname || '', - parser.search || '', - // XXX Headers signing not supported - '', - '', - sjcl.codec.hex.fromBits(sjcl.hash.sha512.hash(canonicalData)).toLowerCase() - ].join('\n'); - - // String to sign inspired by Amazon's v4 signature format - // See: http://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html - // - // We don't have a credential scope, so we skip it. - // - // But that modifies the format, so the format ID is RIPPLE1, instead of AWS4. - return stringToSign = [ - mechanism, - date, - sjcl.codec.hex.fromBits(sjcl.hash.sha512.hash(canonicalRequest)).toLowerCase() - ].join('\n'); - }; - - BlobObj.signRequestHmac = function (config, auth_secret, blob_id) { - config = $.extend({}, config); - - // Parse URL - var parser = document.createElement('a'); - parser.href = config.url; - - var date = dateAsIso8601(); - var signatureType = 'RIPPLE1-HMAC-SHA512'; - - var stringToSign = BlobObj.getStringToSign(config, parser, date, signatureType); - - var hmac = new sjcl.misc.hmac(sjcl.codec.hex.toBits(auth_secret), sjcl.hash.sha512); - var signature = sjcl.codec.hex.fromBits(hmac.mac(stringToSign)); - - config.url += (parser.search ? "&" : "?") + - 'signature=' + signature + - '&signature_date=' + date + - '&signature_blob_id=' + blob_id + - '&signature_type=' + signatureType; - - return config; - }; - - BlobObj.signRequestAsymmetric = function (config, secretKey, account, blob_id) { - config = $.extend({}, config); - - // Parse URL - var parser = document.createElement('a'); - parser.href = config.url; - - var date = dateAsIso8601(); - var signatureType = 'RIPPLE1-ECDSA-SHA512'; - - var stringToSign = BlobObj.getStringToSign(config, parser, date, signatureType); - - var signature = ripple.Message.signMessage(stringToSign, secretKey); - - config.url += (parser.search ? "&" : "?") + - 'signature='+webutil.base64ToBase64Url(signature)+ - '&signature_date='+date+ - '&signature_blob_id='+blob_id+ - '&signature_account='+account+ - '&signature_type='+signatureType; - - return config; - }; - - BlobObj.prototype.postUpdate = function (op, pointer, params, callback) { - // Callback is optional - if ("function" !== typeof callback) callback = $.noop; - - if ("string" === typeof op) { - op = BlobObj.ops[op]; - } - if ("number" !== typeof op) { - throw new Error("Blob update op code must be a number or a valid op id string"); - } - if (op < 0 || op > 255) { - throw new Error("Blob update op code out of bounds"); - } - - console.log("client: blob: submitting update", BlobObj.opsReverseMap[op], pointer, params); - - params.unshift(pointer); - params.unshift(op); - - var config = { - method: 'POST', - url: this.url + '/v1/blob/patch', - responseType: 'json', - data: { - blob_id: this.id, - patch: encrypt(this.key, JSON.stringify(params)) - } - }; - - $http(BlobObj.signRequestHmac(config, this.data.auth_secret, this.id)) - .success(function(data, status, headers, config) { - if (data.result === "success") { - console.log("client: blob: saved patch as revision", data.revision); - callback(null, data); - } else { - console.log("client: blob: could not save patch:", data); - callback(new Error("Patch could not be saved - bad result")); - } - }) - .error(function(data, status, headers, config) { - console.log("client: blob: could not save patch: "+status+" - "+data); - callback(new Error("Patch could not be saved - XHR error")); - }); - }; - - BlobObj.prototype.set = function (pointer, value, callback) { - this.applyUpdate('set', pointer, [value]); - this.postUpdate('set', pointer, [value], callback); - }; - - BlobObj.prototype.unset = function (pointer, callback) { - this.applyUpdate('unset', pointer, []); - this.postUpdate('unset', pointer, [], callback); - }; - - BlobObj.prototype.extend = function (pointer, value, callback) { - this.applyUpdate('extend', pointer, [value]); - this.postUpdate('extend', pointer, [value], callback); - }; - - /** - * Prepend an entry to an array. - * - * This method adds an entry to the beginning of an array. - */ - BlobObj.prototype.unshift = function (pointer, value, callback) { - this.applyUpdate('unshift', pointer, [value]); - this.postUpdate('unshift', pointer, [value], callback); - }; - - function normalizeSubcommands(subcommands, compress) { - // Normalize parameter structure - if ("number" === typeof subcommands[0] || - "string" === typeof subcommands[0]) { - // Case 1: Single subcommand inline - subcommands = [subcommands]; - } else if (subcommands.length === 1 && - Array.isArray(subcommands[0]) && - ("number" === typeof subcommands[0][0] || - "string" === typeof subcommands[0][0])) { - // Case 2: Single subcommand as array - // (nothing to do) - } else if (Array.isArray(subcommands[0])) { - // Case 3: Multiple subcommands as array of arrays - subcommands = subcommands[0]; - } - - // Normalize op name and convert strings to numeric codes - subcommands = subcommands.map(function (subcommand) { - if ("string" === typeof subcommand[0]) { - subcommand[0] = BlobObj.ops[subcommand[0]]; - } - if ("number" !== typeof subcommand[0]) { - throw new Error("Invalid op in subcommand"); - } - if ("string" !== typeof subcommand[1]) { - throw new Error("Invalid path in subcommand"); - } - return subcommand; - }); - - if (compress) { - // Convert to the minimal possible format - if (subcommands.length === 1) { - return subcommands[0]; - } else { - return [subcommands]; - } - } else { - return subcommands; - } - } - - /** - * Filter the row(s) from an array. - * - * This method will find any entries from the array stored under `pointer` and - * apply the `subcommands` to each of them. - * - * The subcommands can be any commands with the pointer parameter left out. - */ - BlobObj.prototype.filter = function (pointer, field, value, subcommands, callback) { - var params = Array.prototype.slice.apply(arguments); - if ("function" === typeof params[params.length-1]) { - callback = params.pop(); - } - params.shift(); - - // Normalize subcommands to minimize the patch size - params = params.slice(0, 2).concat(normalizeSubcommands(params.slice(2), true)); - - this.applyUpdate('filter', pointer, params); - this.postUpdate('filter', pointer, params, callback); - }; - - BlobObj.prototype.decryptSecret = function (secretUnlockKey) { - return decrypt(secretUnlockKey, this.encrypted_secret); - }; - - BlobObj.prototype.encryptSecret = function (secretUnlockKey, secret) { - return encrypt(secretUnlockKey, secret); - }; - - function deriveRecoveryEncryptionKeyFromSecret(secret) { - var seed = ripple.Seed.from_json(secret).to_bits(); - var hmac = new sjcl.misc.hmac(seed, sjcl.hash.sha512); - var key = hmac.mac("ripple/hmac/recovery_encryption_key/v1"); - key = sjcl.bitArray.bitSlice(key, 0, 256); - return sjcl.codec.hex.fromBits(key); - } - - BlobObj.prototype.decryptBlobCrypt = function (secret) { - var recoveryEncryptionKey = deriveRecoveryEncryptionKeyFromSecret(secret); - return decrypt(recoveryEncryptionKey, this.encrypted_blobdecrypt_key); - }; - - BlobObj.prototype.encryptBlobCrypt = function (secret, blobDecryptKey) { - var recoveryEncryptionKey = deriveRecoveryEncryptionKeyFromSecret(secret); - return encrypt(recoveryEncryptionKey, blobDecryptKey); - }; - - function BlobError(message, backend) { - this.name = "BlobError"; - this.message = message || ""; - this.backend = backend || "generic"; - } - - BlobError.prototype = Error.prototype; - - BlobObj.BlobError = BlobError; - - return BlobObj; -}]); diff --git a/src/js/services/books.js b/src/js/services/books.service.js similarity index 100% rename from src/js/services/books.js rename to src/js/services/books.service.js diff --git a/src/js/services/domainalias.js b/src/js/services/domainalias.service.js similarity index 100% rename from src/js/services/domainalias.js rename to src/js/services/domainalias.service.js diff --git a/src/js/services/federation.js b/src/js/services/federation.service.js similarity index 100% rename from src/js/services/federation.js rename to src/js/services/federation.service.js diff --git a/src/js/services/globalwrappers.js b/src/js/services/globalwrappers.service.js similarity index 100% rename from src/js/services/globalwrappers.js rename to src/js/services/globalwrappers.service.js diff --git a/src/js/services/history.js b/src/js/services/history.js deleted file mode 100644 index 64b674dfb..000000000 --- a/src/js/services/history.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Ripple Transaction History API - */ - -var module = angular.module('history', []); - -module.factory('rpHistory', ['$rootScope', '$http', 'rpNetwork', function ($scope, $http, network) -{ - var rpHistory = function(account){ - this.account = account; - this.accountObj = network.remote.account(this.account); - }; - - rpHistory.prototype.getHistory = function (opts, callback) { - $http({ - url: Options.historyApi + '/accounts/' + this.account + '/transactions', - method: 'GET', - params: opts - }) - .success(function(data) { - callback(null, data); - }) - .error(function(err){ - callback(err); - }); - }; - - rpHistory.prototype.onTransaction = function (callback) { - this.accountObj.on('transaction', callback); - }; - - return rpHistory; -}]); \ No newline at end of file diff --git a/src/js/services/history.service.js b/src/js/services/history.service.js new file mode 100644 index 000000000..c719262cd --- /dev/null +++ b/src/js/services/history.service.js @@ -0,0 +1,49 @@ +/** + * Ripple Transaction History API + */ + +angular + .module('history', []) + .factory('rpHistory', RpHistory); + +RpHistory.$inject = ['$rootScope', '$http', 'rpNetwork']; + +function RpHistory ($scope, $http, network) +{ + var rpHistory = function(account){ + this.account = account; + this.accountObj = network.remote.account(this.account); + }; + + rpHistory.prototype.getHistory = function (opts) { + return $http({ + url: Options.historyApi + '/accounts/' + this.account + '/transactions', + method: 'GET', + params: opts + }) + }; + + rpHistory.prototype.getCount = function (opts) { + opts = jQuery.extend(true, {}, opts); + + delete opts.limit; + delete opts.offset; + + opts.count = true; + + return this.getHistory(opts) + }; + + rpHistory.prototype.getTransaction = function (hash) { + return $http({ + url: Options.historyApi + '/transactions/' + hash, + method: 'GET' + }) + }; + + rpHistory.prototype.onTransaction = function (callback) { + this.accountObj.on('transaction', callback); + }; + + return rpHistory; +} \ No newline at end of file diff --git a/src/js/services/id.js b/src/js/services/id.js deleted file mode 100644 index 943cf6b06..000000000 --- a/src/js/services/id.js +++ /dev/null @@ -1,694 +0,0 @@ -/** - * ID - * - * The id service is used for user identification and authorization. - */ - -var util = require('util'), - webutil = require('../util/web'), - Base58Utils = require('../util/base58'), - RippleAddress = require('../util/types').RippleAddress; - -var module = angular.module('id', ['authflow', 'blob', 'oldblob']); - -module.factory('rpId', ['$rootScope', '$location', '$route', '$routeParams', '$timeout', - 'rpAuthFlow', 'rpBlob', 'rpOldBlob', '$q', '$http', - function($scope, $location, $route, $routeParams, $timeout, - $authflow, $blob, $oldblob, $q, $http) -{ - /** - * Identity manager - * - * This class manages the encrypted blob and all user-specific state. - */ - var Id = function () - { - this.account = null; - this.loginStatus = false; - // name resolution cache - this.resolvedNames = [], - this.serviceInvoked = []; - }; - - // This object defines the minimum structure of the blob. - // - // This is used to ensure that the blob we get from the server has at least - // these fields and that they are of the right types. - Id.minimumBlob = { - data: { - contacts: [], - preferred_issuer: {}, - preferred_second_issuer: {} - }, - meta: [] - }; - - // The default blob is the blob that a new user gets. - // - // Right now this is equal to the minimum blob, but we may define certain - // default values here in the future. - Id.defaultBlob = Id.minimumBlob; - - /** - * Reduce username to standardized form. - * - * This creates the version of the username that is displayed in the UI. - */ - Id.normalizeUsernameForDisplay = function (username) { - username = '' + username; - - // Strips whitespace at beginning and end. - username = username.trim(); - - return username; - }; - - /** - * Reduce username to standardized form. - * - * This version is used in the login system and it's the version sent to - * servers. - */ - Id.normalizeUsernameForInternals = function (username) { - username = '' + username; - - // Strips whitespace at beginning and end. - username = username.trim(); - - // Remove hyphens - username = username.replace(/-/g, ''); - - // All lowercase - username = username.toLowerCase(); - - return username; - }; - - /** - * Reduce username to the oldBlob standardized form. - * - * This version is used in the login system and it's the version sent to - * servers. - */ - Id.normalizeUsernameForOldBlob = function (username) { - // The old blob does not remove hyphens - - username = '' + username; - - // Strips whitespace at beginning and end. - username = username.trim(); - - // All lowercase - username = username.toLowerCase(); - - return username; - }; - - /** - * Reduce password to standardized form. - * - * Strips whitespace at beginning and end. - */ - Id.normalizePassword = function (password) { - password = '' + password; - password = password.trim(); - return password; - }; - - Id.prototype.init = function () - { - var self = this; - - // Initializing sjcl.random doesn't really belong here, but there is no other - // good place for it yet. - for (var i = 0; i < 8; i++) { - sjcl.random.addEntropy(Math.random(), 32, "Math.random()"); - } - - $scope.userBlob = Id.defaultBlob; - $scope.userCredentials = {}; - - $scope.$watch('userBlob', function(){ - // XXX Maybe the blob service should handle this stuff? - $scope.$broadcast('$blobUpdate'); - - // XXX What's the equivalent in the new login API? - /* - if (self.username && self.password) { - $oldblob.set(..., - self.username.toLowerCase(), self.password, - $scope.userBlob,function(){ - $scope.$broadcast('$blobSave'); - }); - } - */ - }, true); - - $scope.$on('$blobUpdate', function(){ - var d = $scope.userBlob.data; - Options.advanced_feature_switch = !!(d.clients && - d.clients.rippletradecom && - d.clients.rippletradecom.trust && - d.clients.rippletradecom.trust.advancedMode); - // Account address - if (!$scope.address && $scope.userBlob.data.account_id) { - $scope.address = $scope.userBlob.data.account_id; - } - }); - - if (!!store.get('ripple_auth')) { - self.relogin(function(err, blob) { - if (!blob) { - self.logout(); - $location.path('/login'); - } - }); - } - - if (store.get('ripple_known')) { - $scope.showRegister = false; - $scope.showLogin = true; - } - else { - $scope.showRegister = true; - $scope.showLogin = false; - } - - $(window).bind('storage', function (e) { - // http://stackoverflow.com/questions/18476564/ie-localstorage-event-misfired - if (document.hasFocus()) return; - - if (e.originalEvent.key == 'ripple_auth' && e.originalEvent.oldValue && !e.originalEvent.newValue) { - $timeout(function(){ $scope.$broadcast('$idRemoteLogout'); }, 0); - } - - if (e.originalEvent.key == 'ripple_auth' && !e.originalEvent.oldValue && e.originalEvent.newValue) { - $timeout(function(){ $scope.$broadcast('$idRemoteLogin'); }, 0); - } - }); - }; - - Id.prototype.setUsername = function (username) - { - this.username = username; - $scope.userCredentials.username = username; - $scope.$broadcast('$idUserChange', {username: username}); - }; - - Id.prototype.setAccount = function (accId) - { - if (this.account !== null) { - $scope.$broadcast('$idAccountUnload', {account: accId}); - } - this.account = accId; - $scope.userCredentials.account = accId; - $scope.$broadcast('$idAccountLoad', {account: accId}); - }; - - Id.prototype.setLoginKeys = function (keys) - { - this.keys = keys; - }; - - Id.prototype.isReturning = function () - { - return !!store.get('ripple_known'); - }; - - Id.prototype.isLoggedIn = function () - { - return this.loginStatus; - }; - - Id.prototype.storeLoginKeys = function (url, username, keys) - { - store.set('ripple_auth', {url:url, username: username, keys: keys}); - }; - - Id.prototype.setDeviceID = function (username, device_id) { - username = Id.normalizeUsernameForInternals(username); - return store.set(username + '|device_id', device_id); - }; - - Id.prototype.getDeviceID = function (username) { - username = Id.normalizeUsernameForInternals(username); - return store.get(username + '|device_id'); - }; - - Id.prototype.removeDeviceID = function (username) { - username = Id.normalizeUsernameForInternals(username); - return store.remove(username + '|device_id'); - }; - - Id.prototype.verify = function (opts, callback) { - $authflow.verify(opts, callback); - }; - - Id.prototype.resendEmail = function (opts, callback) { - $authflow.resendEmail(opts, callback); - }; - - Id.prototype.rename = function (opts, callback) { - opts.blob = $scope.userBlob; - opts.url = $scope.userBlob.url; - opts.username = this.username; - - $authflow.rename(opts, callback); - }; - - Id.prototype.register = function (opts, callback) - { - var self = this; - - // If account master key is not present, generate one - var masterkey = !!opts.masterkey - ? opts.masterkey - : Base58Utils.encode_base_check(33, sjcl.codec.bytes.fromBits(sjcl.random.randomWords(4))); - - // Callback is optional - if ("function" !== typeof callback) callback = $.noop; - - // Username is empty for the desktop client - if (!opts.username) opts.username = 'local'; - - // Blob data - var username = Id.normalizeUsernameForDisplay(opts.username); - var password = Id.normalizePassword(opts.password); - var account = (new RippleAddress(masterkey)).getAddress(); - - $authflow.register({ - 'username': username, - 'password': password, - 'account': account, - 'email': opts.email, - 'masterkey': masterkey, - 'oldUserBlob': opts.oldUserBlob, - 'walletfile': opts.walletfile - }, - function (err, blob, keys) { - if (err) { - console.log("client: id: registration failed:", (err && err.stack) ? err.stack : err); - callback(err); - return; - } - - $scope.userBlob = blob; - - self.setUsername(username); - -// self.setAccount(blob.data.account_id); -// self.setLoginKeys(keys); -// self.storeLoginKeys(username, keys); -// self.loginStatus = true; -// $scope.$broadcast('$blobUpdate'); - - // Remove old blob - if (Options.blobvault) { - $oldblob.remove(['vault', 'local'], opts.oldUsername, opts.oldPassword, function (err, data) { - if (err) { - console.log("Can't delete the old blobvault:", err); - return; - } - - console.log('Old blob has been removed.'); - }); - } - - store.set('ripple_known', true); - callback(null, masterkey); - }); - }; - - Id.prototype.exists = function (username, password, callback) - { - var self = this; - - username = Id.normalizeUsernameForDisplay(username); - password = Id.normalizePassword(password); - - $authflow.exists(Id.normalizeUsernameForInternals(username), password, function (err, data) { - if (!err && data) { - // Blob found, new auth method - callback(null, true); - } else { - // No blob found - callback(null, false); - } - }); - }; - - Id.prototype.oldLogin = function (opts, callback) { - var self = this; - - // Callback is optional - if ("function" !== typeof callback) callback = $.noop; - - var username = Id.normalizeUsernameForDisplay(opts.username); - var password = Id.normalizePassword(opts.password); - var oldBlobUsername = Id.normalizeUsernameForOldBlob(username); - - $oldblob.get(['vault'], oldBlobUsername, password, function (oerr, data) { -// $location.path('/register'); - - if (oerr) { - // Old blob failed - since this was just the fallback report the - // original error - console.log("Old backend reported:", oerr); - callback(oerr); - return; - } - - var blob = $oldblob.decrypt(oldBlobUsername, password, data); - if (!blob) { - // Unable to decrypt blob - var msg = 'Unable to decrypt blob (Username / Password is wrong)'; - callback(new Error(msg)); - } else if (blob.old && !self.allowOldBlob) { - var oldBlobErr = new Error('Old blob format detected'); - oldBlobErr.name = "OldBlobError"; - callback(oldBlobErr); - } else { - // Migration - $scope.oldUserBlob = blob; - $scope.oldUsername = oldBlobUsername; - $scope.oldPassword = password; - $location.path('/register'); - - return; - } - }); - }; - - Id.prototype.login = function (opts, callback) - { - var self = this; - - // Callback is optional - if ("function" !== typeof callback) callback = $.noop; - - var username = Id.normalizeUsernameForDisplay(opts.username); - var password = Id.normalizePassword(opts.password); - var deviceID = opts.device_id || self.getDeviceID(opts.username); - - $authflow.login({ - 'username': Id.normalizeUsernameForInternals(username), - 'password': password, - 'walletfile': opts.walletfile, - 'device_id' : deviceID - }, function (err, blob, keys, actualUsername, emailVerified) { - // handle 2FA - if (err && err.twofactor) { - // request verification token. If they are using the - // app, the request will be ignored. - $authflow.requestToken(err.twofactor.blob_url, err.twofactor.blob_id, false, function(tokenError, tokenResp) { - // keep this for reporting - err.twofactor.tokenError = tokenError; - err.twofactor.tokenResponse = tokenResp; - return callback(err); - }); - } else if (err) { - // New login protocol failed and no fallback configured - callback(err); - } else { - // Ensure certain properties exist - $.extend(true, blob, Id.minimumBlob); - - // Ripple's username system persists the capitalization of the username, - // even though usernames are case-insensitive. That's why we want to use - // the "actualUsername" that the server returned. - // - // However, we want this to never be a source for problems, so we'll - // ensure the actualUsername returned is equivalent to what we expected - // and fall back to what the user entered otherwise. - if ("string" !== typeof actualUsername || - Id.normalizeUsernameForInternals(actualUsername) !== Id.normalizeUsernameForInternals(username)) { - actualUsername = username; - } - - $scope.userBlob = blob; - self.setUsername(actualUsername); - - if (!emailVerified) { - $scope.unverified = true; - $location.path('/register'); - - callback(new Error("Email has not been verified!")); - return; - } - - self.setAccount(blob.data.account_id); - self.setLoginKeys(keys); - self.storeLoginKeys(blob.url, actualUsername, keys); - self.setDeviceID(username, blob.device_id); - self.loginStatus = true; - $scope.loginStatus = true; - $scope.$broadcast('$blobUpdate'); - store.set('ripple_known', true); - - if (blob.data.account_id) { - // Success - callback(null); - } else { - // Invalid blob - callback(new Error("Blob format unrecognized!")); - } - } - }); - }; - Id.prototype.relogin = function (callback) { - var self = this; - var auth = store.get('ripple_auth'); - var deviceID = self.getDeviceID(auth.username); - - if (!auth || !auth.keys) { - return callback(new Error('Missing authentication keys')); - } - // XXX This is technically not correct, since we don't know yet whether - // the login will succeed. But we need to set it now, because the page - // controller will likely query it long before we get a response from - // the login system. - // - // Will work fine as long as any relogin error triggers a logout and - // logouts trigger a full page reload. - self.loginStatus = true; - $scope.loginStatus = true; - $authflow.relogin(auth.url, auth.keys, deviceID, function (err, blob) { - if (err) { - // Failed to relogin - console.log("client: id: failed to relogin:", err.message || err.toString()); - callback(err); - } else { - // Ensure certain properties exist - $.extend(true, blob, Id.minimumBlob); - - $scope.userBlob = blob; - self.setUsername(auth.username); - self.setAccount(blob.data.account_id); - self.setLoginKeys(auth.keys); - self.loginStatus = true; - $scope.loginStatus = true; - $scope.$broadcast('$blobUpdate'); - store.set('ripple_known', true); - callback(null, blob); - } - }); - }; - - Id.prototype.verifyToken = function (options, callback) { - store.set('remember_me', options.remember_me); - $authflow.verifyToken(options, callback); - }; - - Id.prototype.changePassword = function (options, callback) { - var self = this; - $authflow.changePassword(options, function(err, resp) { - if (err) { - return callback(err); - } - // NOTE: the section below changed so that you can recover with 2FA enabled - // We should be checking attestation statuses here also. - - // perform login, so that the email verification is checked - // and the username, blob, and keys get stored. - // self.login(options, callback); - - var keys = {id:options.blob.id, crypt:options.blob.key}; - $scope.userBlob = options.blob; - self.setUsername(options.username); - self.setAccount(options.blob.data.account_id); - self.setLoginKeys(keys); - self.storeLoginKeys(options.blob.url, options.username, keys); - self.setDeviceID(options.username, options.blob.device_id); - self.loginStatus = true; - $scope.loginStatus = true; - $scope.$broadcast('$blobUpdate'); - store.set('ripple_known', true); - callback(); - }); - }; - - Id.prototype.logout = function () - { - // remove deviceID if remember me is not set - if (!store.get('remember_me') && store.get('ripple_auth')) { - var auth = store.get('ripple_auth'); - this.removeDeviceID(auth.username); - } - - store.remove('ripple_auth'); - - // TODO make it better - // this.account = ''; - // this.keys = {}; - // this.loginStatus = false; - // $scope.loginStatus = false; - // this.username = ''; - // $scope.address = ''; -// $location.path('/login'); - - // problem? - // reload will not work, as some pages are also available for guests. - // Logout will show the same page instead of showing login page. - // This line redirects user to root (login) page -// var port = location.port.length > 0 ? ":" + location.port : ""; -// location.href = location.protocol + '//' + location.hostname + port + location.pathname; - }; - - Id.prototype.unlock = function (username, password, callback) - { - var self = this; - - // Callback is optional - if ("function" !== typeof callback) callback = $.noop; - - // username = Id.normalizeUsernameForDisplay(username); - // password = Id.normalizePassword(password); - - $authflow.unlock(username, password, function (err, resp) { - if (err) { - callback(err); - return; - } - callback(null, resp.secret); - }); - }; - - /** - * Go to an identity page. - * - * Redirects the user to a page where they can identify. This could be the - * login or register tab most likely. - */ - Id.prototype.goId = function () { - if (!this.isLoggedIn()) { - if (_.size($routeParams)) { - var tab = $route.current.tabName; - $location.search('tab', tab); - $location.path('/login'); - return; - } - - if (this.isReturning()) { - $location.path('/login'); - } else { - $location.path('/register'); - } - } - }; - - /** - * Find Ripple Name - * - * Find a ripple name for a given ripple address - */ - Id.prototype.resolveNameSync = function (address, options) { - if (!this.resolvedNames[address]) { - if (!this.serviceInvoked[address]) { - this.resolveName(address, options); - } - return address; - } - return this.resolvedNames[address]; - } - - /** - * Find Ripple Name - * - * Find a ripple name for a given ripple address - */ - Id.prototype.resolveName = function (address, options) { - var self = this; - var deferred = $q.defer(); - var strippedValue = webutil.stripRippleAddress(address); - var rpAddress = ripple.UInt160.from_json(strippedValue); - if (!rpAddress.is_valid()) { - deferred.resolve(address); - return deferred.promise; - } - - var opts = jQuery.extend(true, {}, options); - - if (!this.resolvedNames[address]) { - if (!this.serviceInvoked[address]) { - this.serviceInvoked[address] = true; - - // Get the blobvault url - rippleVaultClient.AuthInfo.get(Options.domain, strippedValue, function(err, data) { - if (err) { - deferred.reject(err); - return; - } - - if (data.username) { - if (opts.tilde === true) { - self.resolvedNames[address] = "~".concat(data.username); - } else { - self.resolvedNames[address] = data.username; - } - } else { - // Show the ripple address if there's no name associated with it - self.resolvedNames[address] = address; - } - - deferred.resolve(self.resolvedNames[address]); - }); - } else { - deferred.resolve(address); - } - } else { - deferred.resolve(self.resolvedNames[address]); - } - return deferred.promise; - }; - - $scope.$watch('loginStatus', function (loginStatus){ - if (loginStatus) { - $scope.showLogin = false; - $scope.showRegister = false; - } - }); - - $scope.$on('$routeChangeStart', function (ev, next) { - if (!$scope.loginStatus) { - var tab = next.tabName; - var allTabs = ['login', 'register', 'migrate', 'recover', '404', 'privacypolicy', 'tou']; - if (allTabs.indexOf(tab) !== -1) { - $scope.showLogin = false; - $scope.showRegister = false; - } - else { - if (store.get('ripple_known')) { - $scope.showRegister = false; - $scope.showLogin = true; - } - else { - $scope.showRegister = true; - $scope.showLogin = false; - } - return; - } - } - }); - - return new Id(); -}]); diff --git a/src/js/services/id.service.js b/src/js/services/id.service.js new file mode 100644 index 000000000..9c0cc4dc5 --- /dev/null +++ b/src/js/services/id.service.js @@ -0,0 +1,500 @@ +'use strict'; + +/** + * ID + * + * The id service is used for user identification and authorization. + */ + +var webutil = require('../util/web'), + settings = require('../util/settings'); + +var module = angular.module('id', ['authflow', 'blob']); + +module.factory( + 'rpId', ['$rootScope', '$location', '$route', '$routeParams', '$timeout', 'rpAuthFlow', 'rpBlob', '$q', + function($scope, $location, $route, $routeParams, $timeout, $authflow, $blob, $q) { + /** + * Identity manager + * + * This class manages the encrypted blob and all user-specific state. + */ + var Id = function() { + this.account = null; + this.loginStatus = false; + // name resolution cache + this.resolvedNames = []; + this.serviceInvoked = []; + }; + + // This object defines the minimum structure of the blob. + // + // This is used to ensure that the blob we get from the server has at least + // these fields and that they are of the right types. + Id.minimumBlob = { + data: { + contacts: [], + preferred_issuer: {}, + preferred_second_issuer: {} + }, + meta: [] + }; + + // The default blob is the blob that a new user gets. + // + // Right now this is equal to the minimum blob, but we may define certain + // default values here in the future. + Id.defaultBlob = Id.minimumBlob; + + /** + * Reduce username to standardized form. + * + * This creates the version of the username that is displayed in the UI. + */ + Id.normalizeUsernameForDisplay = function(username) { + username = '' + username; + + // Strips whitespace at beginning and end. + username = username.trim(); + + return username; + }; + + /** + * Reduce username to standardized form. + * + * This version is used in the login system and it's the version sent to + * servers. + */ + Id.normalizeUsernameForInternals = function(username) { + username = '' + username; + + // Strips whitespace at beginning and end. + username = username.trim(); + + // Remove hyphens + username = username.replace(/-/g, ''); + + // All lowercase + username = username.toLowerCase(); + + return username; + }; + + Id.prototype.init = function() { + var self = this; + + // Initializing sjcl.random doesn't really belong here, but there is no other + // good place for it yet. + for (var i = 0; i < 8; i++) { + sjcl.random.addEntropy(Math.random(), 32, 'Math.random()'); + } + + $scope.userBlob = Id.defaultBlob; + $scope.userCredentials = {}; + + $scope.$watch('userBlob', function() { + // XXX Maybe the blob service should handle this stuff? + $scope.$broadcast('$blobUpdate'); + + // XXX What's the equivalent in the new login API? + /* + if (self.username && self.password) { + $oldblob.set(..., + self.username.toLowerCase(), self.password, + $scope.userBlob,function(){ + $scope.$broadcast('$blobSave'); + }); + } + */ + }, true); + + $scope.$on('$blobUpdate', function() { + if (!settings.blobIsValid($scope.userBlob)) { + return; + } + + $scope.ripple_exchange_selection_trade = settings.getSetting($scope.userBlob, 'rippleExchangeSelectionTrade', false); + + var d = $scope.userBlob.data; + Options.advanced_feature_switch = settings.getSetting($scope.userBlob, 'trust.advancedMode', false); + Options.historyApi = settings.getSetting($scope.userBlob, 'historyApi', Options.historyApi).replace(/[\/]*$/, ''); + Options.max_tx_network_fee = settings.getSetting($scope.userBlob, 'maxNetworkFee', Options.max_tx_network_fee); + + // confirmation + // Replace default settings with user settings from blob, if blob is empty, then reuse the original value + Options.confirmation = $.extend(true, {}, settings.getSetting($scope.userBlob, 'confirmation', Options.confirmation)); + + var blobServers = settings.getSetting($scope.userBlob, 'server.servers', []); + if (_.isArray(blobServers) && blobServers.length > 0 && !_.isEqual(blobServers, settings.getClearServers(Options.server.servers))) { + Options.server.servers = blobServers; + // Save in local storage + if (!store.disabled) { + store.set('ripple_settings', JSON.stringify(Options)); + // Reload + // A force reload is necessary here because we have to re-initialize + // the network object with the new server list. + location.reload(); + } + } + + // Account address + if (!$scope.address && d.account_id) { + $scope.address = d.account_id; + } + + // migrate user data to clients.rippletradecom + if (_.has(d, 'advancedFeatureSwitch')) { + if (!settings.hasSetting($scope.userBlob, 'trust.advancedMode')) { + $scope.userBlob.set('/clients/rippletradecom/trust/advancedMode', d.advancedFeatureSwitch); + } + $scope.userBlob.unset('/advancedFeatureSwitch'); + } + + if (_.has(d, 'persistUnlock')) { + $scope.userBlob.set('/clients/rippletradecom/persistUnlock', d.persistUnlock); + $scope.userBlob.unset('/persistUnlock'); + } + + if (_.has(d, 'lastSeenTxDate')) { + $scope.userBlob.set('/clients/rippletradecom/lastSeenTxDate', d.lastSeenTxDate); + $scope.userBlob.unset('/lastSeenTxDate'); + } + + if (_.has(d, 'trade_currency_pairs')) { + $scope.userBlob.set('/clients/rippletradecom/trade_currency_pairs', d.trade_currency_pairs); + $scope.userBlob.unset('/trade_currency_pairs'); + } + + var tradeCurrencyPairs = settings.getSetting($scope.userBlob, 'trade_currency_pairs', []); + if (_.isArray(tradeCurrencyPairs) && tradeCurrencyPairs.length > 0) { + var changed = false; + if (_.find(tradeCurrencyPairs, _.partial(_.has, _, '$$hashKey'))) { + // clear $$hashKey + tradeCurrencyPairs = angular.fromJson(angular.toJson(tradeCurrencyPairs)); + changed = true; + } + var tradeCurrencyPairsUniq = _.uniq(tradeCurrencyPairs, false, function(o) { + return o.name; + }); + if (tradeCurrencyPairsUniq.length !== tradeCurrencyPairs.length) { + tradeCurrencyPairs = tradeCurrencyPairsUniq; + changed = true; + } + + if (changed) { + $scope.userBlob.set('/clients/rippletradecom/trade_currency_pairs', tradeCurrencyPairs); + } + } + + if (_.has(d, 'txQueue')) { + $scope.userBlob.set('/clients/rippletradecom/txQueue', d.txQueue); + $scope.userBlob.unset('/txQueue'); + } + }); + + if (!!store.get('backend_token')) { + self.relogin(function(err, blob) { + if (!blob) { + self.logout(); + $location.path('/login'); + } + }); + } + + $scope.showLogin = true; + + $(window).bind('storage', function(e) { + // http://stackoverflow.com/questions/18476564/ie-localstorage-event-misfired + if (document.hasFocus()) { + return; + } + + if (e.originalEvent.key === 'backend_token' && e.originalEvent.oldValue && !e.originalEvent.newValue) { + $timeout(function() { + $scope.$broadcast('$idRemoteLogout'); + }, 0); + } + + if (e.originalEvent.key === 'backend_token' && !e.originalEvent.oldValue && e.originalEvent.newValue) { + $timeout(function() { + $scope.$broadcast('$idRemoteLogin'); + }, 0); + } + }); + }; + + Id.prototype.setUsername = function(username) { + this.username = username; + $scope.userCredentials.username = username; + $scope.$broadcast('$idUserChange', {username: username}); + }; + + Id.prototype.setAccount = function(accId) { + if (this.account !== null) { + $scope.$broadcast('$idAccountUnload', {account: accId}); + } + this.account = accId; + $scope.userCredentials.account = accId; + $scope.$broadcast('$idAccountLoad', {account: accId}); + }; + + Id.prototype.isReturning = function() { + return !!store.get('ripple_known'); + }; + + Id.prototype.isLoggedIn = function() { + return this.loginStatus; + }; + + Id.prototype.exists = function(username, callback) { + username = Id.normalizeUsernameForDisplay(username); + + $authflow.exists(Id.normalizeUsernameForInternals(username), function(err, data) { + if (!err && data) { + // Blob found, new auth method + callback(null, true); + } else { + // No blob found + callback(null, false); + } + }); + }; + + Id.prototype.login = function(backend_token, callback) { + var self = this; + + // Callback is optional + if (typeof callback !== 'function') { + callback = $.noop; + } + + if (store.disabled) { + callback(new Error('Local storage is disabled, unable to login!')); + return; + } + + store.set('backend_token', backend_token); + + var blobObj = new $blob(); + + // init returns a promise + blobObj.init().then(function(blob) { + // Ensure certain properties exist + $.extend(true, blob, Id.minimumBlob); + + $scope.userBlob = blob; + self.setUsername(blob.ripple_name); + self.setAccount(blob.data.account_id); + self.loginStatus = true; + $scope.loginStatus = true; + $scope.$broadcast('$blobUpdate'); + store.set('ripple_known', true); + + callback(null); + + }, function(err) { + self.logout(); + // $location.path('/login'); + + callback(new Error(err)); + }); + }; + + Id.prototype.relogin = function(callback) { + var self = this; + var backend_token = store.get('backend_token'); + + // Callback is optional + if (typeof callback !== 'function') { + callback = $.noop; + } + + if (!backend_token) { + return callback(new Error('Missing backend token')); + } + // XXX This is technically not correct, since we don't know yet whether + // the login will succeed. But we need to set it now, because the page + // controller will likely query it long before we get a response from + // the login system. + // + // Will work fine as long as any relogin error triggers a logout and + // logouts trigger a full page reload. + // self.loginStatus = true; + // $scope.loginStatus = true; + + var blobObj = new $blob(); + + // init returns a promise + blobObj.init().then(function(blob) { + // Ensure certain properties exist + $.extend(true, blob, Id.minimumBlob); + + $scope.userBlob = blob; + self.setUsername(blob.ripple_name); + self.setAccount(blob.data.account_id); + self.loginStatus = true; + $scope.loginStatus = true; + $scope.$broadcast('$blobUpdate'); + store.set('ripple_known', true); + + callback(null, blob); + + }, function(err) { + callback(new Error(err)); + }); + }; + + Id.prototype.logout = function() { + store.remove('backend_token'); + + // TODO make it better + // this.account = ''; + // this.keys = {}; + // this.loginStatus = false; + // $scope.loginStatus = false; + // this.username = ''; + // $scope.address = ''; + // $location.path('/login'); + + // problem? + // reload will not work, as some pages are also available for guests. + // Logout will show the same page instead of showing login page. + // This line redirects user to root (login) page + // var port = location.port.length > 0 ? ":" + location.port : ""; + // location.href = location.protocol + '//' + location.hostname + port + location.pathname; + }; + + Id.prototype.unlock = function(username, password, callback) { + // Callback is optional + if ('function' !== typeof callback) { + callback = $.noop; + } + + // username = Id.normalizeUsernameForDisplay(username); + // password = Id.normalizePassword(password); + + $authflow.unlock(username, password, function(err, resp) { + if (err) { + callback(err); + return; + } + callback(null, resp.secret); + }); + }; + + /** + * Go to an identity page. + * + * Redirects the user to a page where they can identify. This could be the + * login tab most likely. + */ + Id.prototype.goId = function() { + if (!this.isLoggedIn()) { + if (_.size($routeParams)) { + var tab = $route.current.tabName; + $location.search('tab', tab); + $location.path('/login'); + return; + } + + $location.path('/login'); + } + }; + + /** + * Find Ripple Name + * + * Find a ripple name for a given ripple address + */ + Id.prototype.resolveNameSync = function(address, options) { + if (!this.resolvedNames[address]) { + if (!this.serviceInvoked[address]) { + this.resolveName(address, options); + } + return address; + } + return this.resolvedNames[address]; + }; + + Id.prototype.addressDontHaveName = function(address) { + return this.resolvedNames[address] === address; + }; + + /** + * Find Ripple Name + * + * Find a ripple name for a given ripple address + */ + Id.prototype.resolveName = function(address, options) { + var self = this; + var deferred = $q.defer(); + var strippedValue = webutil.stripRippleAddress(address); + var rpAddress = ripple.UInt160.from_json(strippedValue); + if (!rpAddress.is_valid()) { + deferred.resolve(address); + return deferred.promise; + } + + var opts = jQuery.extend(true, {}, options); + + if (!this.resolvedNames[address]) { + if (!this.serviceInvoked[address]) { + this.serviceInvoked[address] = deferred; + + // Get the blobvault url + rippleVaultClient.AuthInfo.get(Options.domain, strippedValue, function(err, data) { + if (err) { + self.serviceInvoked[address] = false; + deferred.reject(err); + return; + } + + if (data.username) { + self.resolvedNames[address] = data.username; + } else { + // Show the ripple address if there's no name associated with it + self.resolvedNames[address] = address; + } + + self.serviceInvoked[address] = true; + + var result = (self.resolvedNames[address] !== address && opts.tilde) ? '~'.concat(self.resolvedNames[address]) : self.resolvedNames[address]; + deferred.resolve(result); + }); + } else { + if (!_.isBoolean(this.serviceInvoked[address]) && _.isFunction(this.serviceInvoked[address].resolve)) { + return this.serviceInvoked[address].promise; + } else { + deferred.resolve(address); + } + } + } else { + var result = (self.resolvedNames[address] !== address && opts.tilde) ? '~'.concat(self.resolvedNames[address]) : self.resolvedNames[address]; + deferred.resolve(result); + } + return deferred.promise; + }; + + $scope.$watch('loginStatus', function(loginStatus) { + if (loginStatus) { + $scope.showLogin = false; + } + }); + + $scope.$on('$routeChangeStart', function(ev, next) { + if (!$scope.loginStatus) { + var tab = next.tabName; + var allTabs = ['login', 'logout', '404', 'privacypolicy', 'tou']; + if (allTabs.indexOf(tab) !== -1) { + $scope.showLogin = false; + } else { + $scope.showLogin = true; + return; + } + } + }); + + return new Id(); + }] +); diff --git a/src/js/services/integration/account.js b/src/js/services/integration/account.service.js similarity index 100% rename from src/js/services/integration/account.js rename to src/js/services/integration/account.service.js diff --git a/src/js/services/integration/appManager.js b/src/js/services/integration/appManager.service.js similarity index 100% rename from src/js/services/integration/appManager.js rename to src/js/services/integration/appManager.service.js diff --git a/src/js/services/integration/history.js b/src/js/services/integration/history.service.js similarity index 100% rename from src/js/services/integration/history.js rename to src/js/services/integration/history.service.js diff --git a/src/js/services/integration/inboundBridge.js b/src/js/services/integration/inboundBridge.service.js similarity index 95% rename from src/js/services/integration/inboundBridge.js rename to src/js/services/integration/inboundBridge.service.js index 90d7195ed..57ebc93db 100644 --- a/src/js/services/integration/inboundBridge.js +++ b/src/js/services/integration/inboundBridge.service.js @@ -4,6 +4,8 @@ * This is the "InboundBridge" profile implementation */ +var settings = require('../../util/settings'); + var module = angular.module('integrationInboundBridge', []); module.service('rpInboundBridgeProfile', ['$rootScope', 'rpNetwork', 'rpId', '$http', 'rpTxQueue', @@ -48,8 +50,8 @@ module.service('rpInboundBridgeProfile', ['$rootScope', 'rpNetwork', 'rpId', '$h var noNeed; _.each( // Find all trust transactions in queue - _.findWhere($scope.userBlob.data.txQueue, {type: "TrustSet"}), - function(elm,index,txInQueue){ + _.findWhere(settings.getSetting($scope.userBlob, 'txQueue'), {type: "TrustSet"}), + function(elm, index, txInQueue) { // Does this fulfil our needs? noNeed = txInQueue && txInQueue.details.currency === line.currency && txInQueue.details.issuer === line.issuer diff --git a/src/js/services/integration/profileManager.js b/src/js/services/integration/profileManager.service.js similarity index 100% rename from src/js/services/integration/profileManager.js rename to src/js/services/integration/profileManager.service.js diff --git a/src/js/services/integration/trust.js b/src/js/services/integration/trust.service.js similarity index 100% rename from src/js/services/integration/trust.js rename to src/js/services/integration/trust.service.js diff --git a/src/js/services/keychain.js b/src/js/services/keychain.service.js similarity index 73% rename from src/js/services/keychain.js rename to src/js/services/keychain.service.js index f1e6acd51..4d717faa0 100644 --- a/src/js/services/keychain.js +++ b/src/js/services/keychain.service.js @@ -8,13 +8,15 @@ * time. This class manages the timeout when the account will be re-locked. */ -var webutil = require("../util/web"), - log = require("../util/log"); +var webutil = require('../util/web'), + settings = require('../util/settings'), + log = require('../util/log'); var module = angular.module('keychain', ['popup']); module.factory('rpKeychain', ['$rootScope', '$timeout', 'rpPopup', 'rpId', - function ($scope, $timeout, popup, id) + '$interval', '$templateRequest', + function ($scope, $timeout, popup, id, $interval, $templateRequest) { var Keychain = function () { @@ -42,7 +44,7 @@ module.factory('rpKeychain', ['$rootScope', '$timeout', 'rpPopup', 'rpId', Keychain.prototype.requestSecret = function (account, username, purpose, callback) { var _this = this; - if ("function" === typeof purpose) { + if ('function' === typeof purpose) { callback = purpose; purpose = null; } @@ -64,16 +66,31 @@ module.factory('rpKeychain', ['$rootScope', '$timeout', 'rpPopup', 'rpId', password: '', purpose: purpose }; + + popupScope.updater = $interval(function() { + var password = $('input[name="popup_unlock_password"]').val(); + if (typeof password === 'string') { + popupScope.unlockForm.popup_unlock_password.$setViewValue(password); + } + }, 2000); + popupScope.confirm = function () { unlock.isConfirming = true; + unlock.error = null; function handleSecret(err, secret) { if (err) { // XXX More fine-grained error handling would be good. Can we detect // server down? unlock.isConfirming = false; - unlock.error = "password"; + // check for 'Could not query PAKDF server' + if (err instanceof Error && typeof err.message === 'string' && err.message.indexOf('PAKDF') !== -1) { + unlock.error = 'server'; + } else { + unlock.error = 'password'; + } } else { + $interval.cancel(popupScope.updater); popup.close(); callback(null, secret); @@ -83,14 +100,22 @@ module.factory('rpKeychain', ['$rootScope', '$timeout', 'rpPopup', 'rpId', _this.getSecret(account, username, popupScope.unlock.password, handleSecret); }; - popupScope.cancel = function () { - callback("canceled"); //need this for setting password protection + + popupScope.cancel = function() { + $interval.cancel(popupScope.updater); + // need this for setting password protection + callback('canceled'); popup.close(); }; - popupScope.onKeyUp = function ($event) { - if ($event.which === 27) popupScope.cancel(); // esc button + + popupScope.onKeyUp = function($event) { + // esc button + if ($event.which === 27) popupScope.cancel(); }; - popup.blank(require('../../jade/popup/unlock.jade')(), popupScope); + + $templateRequest('templates/' + lang + '/popup/unlock.html', false).then(function(template) { + popup.blank(template, popupScope); + }); }; /** @@ -136,9 +161,9 @@ module.factory('rpKeychain', ['$rootScope', '$timeout', 'rpPopup', 'rpId', * This function will only work if the account is already unlocked. Throws an * error otherwise. */ - Keychain.prototype.getUnlockedSecret = function (account) { + Keychain.prototype.getUnlockedSecret = function(account) { if (!this.isUnlocked(account)) { - throw new Error("Keychain: Tried to get secret for locked account synchronously."); + throw new Error('Keychain: Tried to get secret for locked account synchronously.'); } return this.secrets[account].masterkey; @@ -167,7 +192,7 @@ module.factory('rpKeychain', ['$rootScope', '$timeout', 'rpPopup', 'rpId', function setPasswordProtection (requirePassword, secret, callback) { - $scope.userBlob.set('/persistUnlock', !requirePassword, function(err, resp) { + $scope.userBlob.set('/clients/rippletradecom/persistUnlock', !requirePassword, function(err, resp) { if (err) { return callback(err); } @@ -182,8 +207,8 @@ module.factory('rpKeychain', ['$rootScope', '$timeout', 'rpPopup', 'rpId', Keychain.prototype.expireSecret = function (account) { var _this = this; - $timeout(function(){ - if (_this.secrets[account] && !$scope.userBlob.data.persistUnlock) { + $timeout(function() { + if (_this.secrets[account] && !settings.getSetting($scope.userBlob, 'persistUnlock', false)) { delete _this.secrets[account]; } }, Keychain.unlockDuration); diff --git a/src/js/services/ledger.js b/src/js/services/ledger.service.js similarity index 100% rename from src/js/services/ledger.js rename to src/js/services/ledger.service.js diff --git a/src/js/services/network.js b/src/js/services/network.service.js similarity index 100% rename from src/js/services/network.js rename to src/js/services/network.service.js diff --git a/src/js/services/notifications.service.js b/src/js/services/notifications.service.js new file mode 100644 index 000000000..ec71edf00 --- /dev/null +++ b/src/js/services/notifications.service.js @@ -0,0 +1,32 @@ +'use strict'; + +/** + * Notifications + * Interaction with notifications REST API + */ + +var module = angular.module('notifications', []); + +module.factory('rpNotifications', ['$http', function($http) { + var rpNotifications = {}; + + rpNotifications.getSubscription = function() { + return $http.get( + Options.backend_url + '/api/subscription', + { + headers: {'Authorization': 'Bearer ' + store.get('backend_token')} + }); + }; + + rpNotifications.updateSubscription = function(subscription) { + return $http.put( + Options.backend_url + '/api/subscription', + subscription, + { + headers: {Authorization: 'Bearer ' + store.get('backend_token')} + } + ); + }; + + return rpNotifications; +}]); diff --git a/src/js/services/oldblob.js b/src/js/services/oldblob.js deleted file mode 100644 index a4db5a620..000000000 --- a/src/js/services/oldblob.js +++ /dev/null @@ -1,228 +0,0 @@ -/** - * OLD BLOB - * - * The old blob service that used to manage the user's private information. - */ - -var webutil = require("../util/web"), - log = require("../util/log"); - -var module = angular.module('oldblob', []); - -module.factory('rpOldBlob', ['$rootScope', function ($scope) -{ - var BlobObj = function () - { - this.data = {}; - this.meta = {}; - }; - - function processBackendsParam(backends) - { - if (!Array.isArray(backends)) { - backends = [backends]; - } - - backends = backends.map(function (backend) { - if ("string" === typeof backend) { - return BlobObj.backends[backend]; - } else { - return backend; - } - }); - - return backends; - } - - /** - * Attempts to retrieve the blob from the specified backend. - */ - BlobObj.get = function(backends, user, pass, callback) - { - backends = processBackendsParam(backends); - - var backend = backends.shift(); - - var key = sjcl.codec.hex.fromBits(sjcl.hash.sha256.hash(user + pass)); - try { - backend.get(key, function (err, data) { - $scope.$apply(function () { - if (err) { - handleError(err, backend); - return; - } - - if (data) { - callback(null, data); - } else { - handleError('Wallet not found (Username / Password is wrong)', backend); - } - }); - }); - } catch (err) { - handleError(err, backend); - } - - function handleError(err, backend) { - console.warn("Backend failed:", backend.name, err.toString()); - if ("string" === typeof err) { - err = new BlobError(err, backend.name); - } else if (!(err instanceof BlobError)) { - err = new BlobError(err.message, backend.name); - } - $scope.$broadcast('$blobError', err); - tryNext(err); - } - - function tryNext(err) { - // Do we have more backends to try? - if (backends.length) { - BlobObj.get(backends, user, pass, callback); - } else { - callback(err); - } - } - }; - - BlobObj.enc = function(username,password,bl) - { - // filter out contacts before they are encrypted - if (typeof(bl.data.contacts) === 'object') - bl.data.contacts = angular.fromJson(angular.toJson(bl.data.contacts)); - - var key = ""+username.length+'|'+username+password; - return btoa(sjcl.encrypt(key, JSON.stringify(bl.data), { - iter: 1000, - adata: JSON.stringify(bl.meta), - ks: 256 - })); - }; - - BlobObj.set = function(backends, username, password, bl, callback) - { - // Callback is optional - if ("function" !== typeof callback) callback = $.noop; - - backends = processBackendsParam(backends); - - var hash = sjcl.codec.hex.fromBits(sjcl.hash.sha256.hash(username + password)); - var encData = BlobObj.enc(username, password, bl); - - backends.forEach(function (backend) { - backend.set(hash, encData, callback); - }); - }; - - BlobObj.remove = function(backends, username, password, callback) - { - // Callback is optional - if ("function" !== typeof callback) callback = $.noop; - - backends = processBackendsParam(backends); - - var hash = sjcl.codec.hex.fromBits(sjcl.hash.sha256.hash(username + password)); - - backends.forEach(function (backend) { - backend.set(hash, '.', callback); - }); - }; - - BlobObj.decrypt = function (user, pass, data) - { - function decrypt(priv, ciphertext) - { - var blob = new BlobObj(); - blob.data = JSON.parse(sjcl.decrypt(priv, ciphertext)); - // TODO unescape is deprecated - blob.meta = JSON.parse(unescape(JSON.parse(ciphertext).adata)); - return blob; - } - - var key; - try { - // Try new-style key - key = ""+user.length+'|'+user+pass; - return decrypt(key, atob(data)); - } catch (e1) { - console.log("Blob decryption failed with new-style key:", e1.toString()); - try { - // Try old style key - key = user+pass; - var blob = decrypt(key, atob(data)); - blob.old = true; - return blob; - } catch (e2) { - console.log("Blob decryption failed with old-style key:", e2.toString()); - return false; - } - } - }; - - var VaultBlobBackend = { - name: "Payward", - - get: function (key, callback) { - var url = Options.blobvault; - - if (url.indexOf("://") === -1) url = "http://" + url; - - $.ajax({ - url: url + '/' + key, - timeout: 8000 - }) - .success(function (data) { - callback(null, data); - }) - .error(webutil.getAjaxErrorHandler(callback, "BlobVault GET")); - }, - - set: function (key, value, callback) { - var url = Options.blobvault; - - if (url.indexOf("://") === -1) url = "http://" + url; - - $.post(url + '/' + key, { blob: value }) - .success(function (data) { - callback(null, data); - }) - .error(webutil.getAjaxErrorHandler(callback, "BlobVault SET")); - } - }; - - var LocalBlobBackend = { - name: "Local browser", - - get: function (key, callback) - { - console.log('local get','ripple_blob_' + key); - var blob = store.get('ripple_blob_'+key); - // We use a timeout to simulate this function being asynchronous - callback(null, blob); - }, - - set: function (key, value, callback) - { - if (!store.disabled) { - store.set('ripple_blob_'+key, value); - } - callback(); - } - }; - - BlobObj.backends = { - vault: VaultBlobBackend, - local: LocalBlobBackend - }; - - function BlobError(message, backend) { - this.name = "BlobError"; - this.message = message || ""; - this.backend = backend || "generic"; - } - - BlobError.prototype = Error.prototype; - - BlobObj.BlobError = BlobError; - - return BlobObj; -}]); diff --git a/src/js/services/popup.js b/src/js/services/popup.service.js similarity index 100% rename from src/js/services/popup.js rename to src/js/services/popup.service.js diff --git a/src/js/services/rippletxt.js b/src/js/services/rippletxt.service.js similarity index 100% rename from src/js/services/rippletxt.js rename to src/js/services/rippletxt.service.js diff --git a/src/js/services/tracker.js b/src/js/services/tracker.service.js similarity index 100% rename from src/js/services/tracker.js rename to src/js/services/tracker.service.js diff --git a/src/js/services/transactions.js b/src/js/services/transactions.service.js similarity index 100% rename from src/js/services/transactions.js rename to src/js/services/transactions.service.js diff --git a/src/js/services/txqueue.js b/src/js/services/txqueue.js deleted file mode 100644 index aa1a1d4d6..000000000 --- a/src/js/services/txqueue.js +++ /dev/null @@ -1,109 +0,0 @@ -/** - * Transaction Queue - * - * This is the Transaction Queue service - */ - -angular - .module('txQueue', []) - .service('rpTxQueue', rpTxQueue); - -rpTxQueue.$inject = ['$rootScope', 'rpNetwork', 'rpKeychain', 'rpId']; - -function rpTxQueue($scope, network, keychain, id) -{ - return { - addTransaction: addTransaction, - checkQueue: checkQueue, - emptyQueue: emptyQueue - }; - - /** - * Add (or execute immediately if account is funded) transaction to the txQueue. - * This method will set the secret, sequence number and sign it. - * - * @param tx object - * @param callback function - */ - function addTransaction(tx) { - - // Get user's secret key - keychain.requestSecret(id.account, id.username, function (err, secret) { - if (err) { - console.log("client: txQueue: error while unlocking wallet: ", err); - - return; - } - - var transaction = ripple.Transaction.from_json(tx.tx_json); - - transaction.remote = network.remote; - transaction.secret(secret); - - // If account is funded submit the transaction right away - if ($scope.account.Balance) { - transaction.submit(); - } - - // If not, add it to the queue. - // (Will be submitted as soon as account gets funding) - else { - var item = { - tx_json: tx.tx_json, - type: tx.tx_json.TransactionType - }; - - // Additional details depending on a transaction type - if ('TrustSet' === item.type) { - item.details = tx.tx_json.LimitAmount; - } - - $scope.userBlob.unshift("/txQueue", item); - } - }); - } - - /** - * Check if the account has been funded. - * If yes, submit all the transactions in the queue. - */ - function checkQueue() { - if (!$scope.account.Balance || !$scope.userBlob.data.txQueue) return; - - var self = this; - - // Get user's secret key - keychain.requestSecret(id.account, id.username, function (err, secret) { - if (err) { - console.log("client: txQueue: error while unlocking wallet: ", err); - - return; - } - - $scope.userBlob.data.txQueue.forEach(function(item){ - // Backward compatibility! - // Transactions created by RT version <= 1.0.10-1 - if (item.blob) { - network.remote.requestSubmit() - .txBlob(item.blob) - .request(); - return; - } - - var tx = ripple.Transaction.from_json(item.tx_json); - tx.remote = network.remote; - tx.secret(secret); - tx.submit(); - }); - - self.emptyQueue(); - }); - } - - /** - * Empty transaction queue - */ - function emptyQueue() { - $scope.userBlob.unset('/txQueue'); - } -} diff --git a/src/js/services/txqueue.service.js b/src/js/services/txqueue.service.js new file mode 100644 index 000000000..e5ac669ec --- /dev/null +++ b/src/js/services/txqueue.service.js @@ -0,0 +1,128 @@ +/** + * Transaction Queue + * + * This is the Transaction Queue service + */ + +var settings = require('../util/settings'); + +angular + .module('txQueue', []) + .service('rpTxQueue', rpTxQueue); + +rpTxQueue.$inject = ['$rootScope', 'rpNetwork', 'rpKeychain', 'rpId']; + +function rpTxQueue($scope, network, keychain, id) { + return { + addTransaction: addTransaction, + checkQueue: checkQueue, + emptyQueue: emptyQueue + }; + + /** + * Add (or execute immediately if account is funded) transaction to the txQueue. + * This method will set the secret, sequence number and sign it. + * + * @param tx object + * @param callback function + */ + function addTransaction(tx) { + if (!$scope.account.Balance) { + // if account is unfunded, then there is no need to ask user for a key + // Add transaction to the queue. + // (Will be submitted as soon as account gets funding) + var item = { + tx_json: tx.tx_json, + type: tx.tx_json.TransactionType + }; + + // Additional details depending on a transaction type + if ('TrustSet' === item.type) { + item.details = tx.tx_json.LimitAmount; + } + + var saveTx = function(e1, r1) { + if (e1) { + console.warn(e1); + return; + } + $scope.userBlob.unshift('/clients/rippletradecom/txQueue', item); + } + + if ($scope.userBlob.data && !$scope.userBlob.data.clients) { + // there is bug in RippleLib with unshift operation - if + // there is empty nodes in the path, it tries to create array node, + // and nothing gets created under it, so create '/clients' explicitly + $scope.userBlob.set('/clients', { rippletradecom: {} }, saveTx); + } else if ($scope.userBlob.data && $scope.userBlob.data.clients && _.isArray($scope.userBlob.data.clients)) { + // if '/clients' already set to array, clear it + $scope.userBlob.unset('/clients', function(e, r) { + if (e) return; + $scope.userBlob.set('/clients', { rippletradecom: {} }, saveTx); + }); + } else { + saveTx(); + } + } else { + // Get user's secret key + keychain.requestSecret(id.account, id.username, function(err, secret) { + if (err) { + console.log('client: txQueue: error while unlocking wallet: ', err); + return; + } + + var transaction = ripple.Transaction.from_json(tx.tx_json); + + transaction.remote = network.remote; + transaction.secret(secret); + + // If account is funded submit the transaction right away + transaction.submit(); + }); + } + } + + /** + * Check if the account has been funded. + * If yes, submit all the transactions in the queue. + */ + function checkQueue() { + if (!$scope.account.Balance) return; + if (!settings.hasSetting($scope.userBlob, 'txQueue')) return; + + var self = this; + + // Get user's secret key + keychain.requestSecret(id.account, id.username, function (err, secret) { + if (err) { + console.log('client: txQueue: error while unlocking wallet: ', err); + return; + } + + settings.getSetting($scope.userBlob, 'txQueue').forEach(function(item) { + // Backward compatibility! + // Transactions created by RT version <= 1.0.10-1 + if (item.blob) { + network.remote.requestSubmit() + .txBlob(item.blob) + .request(); + return; + } + + var tx = ripple.Transaction.from_json(item.tx_json); + tx.remote = network.remote; + tx.secret(secret); + tx.submit(); + }); + + self.emptyQueue(); + }); + } + + /** + * Empty transaction queue + */ + function emptyQueue() { + $scope.userBlob.unset('/clients/rippletradecom/txQueue'); + } +} diff --git a/src/js/tabs/404.js b/src/js/tabs/404.controller.js similarity index 79% rename from src/js/tabs/404.js rename to src/js/tabs/404.controller.js index 63c2d218a..8739d5874 100644 --- a/src/js/tabs/404.js +++ b/src/js/tabs/404.controller.js @@ -11,12 +11,6 @@ util.inherits(NotFoundTab, Tab); NotFoundTab.prototype.tabName = '404'; NotFoundTab.prototype.mainMenu = 'none'; -NotFoundTab.prototype.generateHtml = function () -{ - - return require('../../jade/tabs/404.jade')(); -}; - NotFoundTab.prototype.angular = function (module) { module.controller('NotFoundCtrl', ['$scope', function ($scope) diff --git a/src/js/tabs/_usd.js b/src/js/tabs/_usd.js index 4cd0ce76c..3968b1278 100644 --- a/src/js/tabs/_usd.js +++ b/src/js/tabs/_usd.js @@ -1,5 +1,6 @@ var util = require('util'), - Tab = require('../client/tab').Tab; + Tab = require('../client/tab').Tab, + settings = require('../util/settings'); var UsdTab = function () { @@ -11,11 +12,6 @@ util.inherits(UsdTab, Tab); UsdTab.prototype.tabName = 'usd'; UsdTab.prototype.mainMenu = 'fund'; -UsdTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/usd.jade')(); -}; - UsdTab.prototype.extraRoutes = [ { name: '/usd/:result' } ]; @@ -191,8 +187,8 @@ UsdTab.prototype.angular = function (module) var noNeed; _.each( // Find all trust transactions in queue - _.findWhere($scope.userBlob.data.txQueue, {type: "TrustSet"}), - function(elm,index,txInQueue){ + _.findWhere(settings.getSetting($scope.userBlob, 'txQueue'), {type: "TrustSet"}), + function(elm, index, txInQueue) { // Does this fulfil our needs? noNeed = txInQueue && txInQueue.details.currency === currency && txInQueue.details.issuer === issuer diff --git a/src/js/tabs/account.controller.js b/src/js/tabs/account.controller.js new file mode 100644 index 000000000..7f5276c04 --- /dev/null +++ b/src/js/tabs/account.controller.js @@ -0,0 +1,28 @@ +'use strict'; + +var util = require('util'); +var Tab = require('../client/tab').Tab; + +var AccountTab = function() { + Tab.call(this); +}; + +util.inherits(AccountTab, Tab); + +AccountTab.prototype.tabName = 'account'; +AccountTab.prototype.mainMenu = 'account'; + +AccountTab.prototype.extraRoutes = [ + {name: '/account/:route'} +]; + +AccountTab.prototype.angular = function(module) { + module.controller('AccountCtrl', ['$scope', '$routeParams', function($scope, $routeParams) { + if (!$routeParams.route) { + $routeParams.route = 'public'; + } + }] + ); +}; + +module.exports = AccountTab; diff --git a/src/js/tabs/account.js b/src/js/tabs/account.js deleted file mode 100644 index 8343a1cba..000000000 --- a/src/js/tabs/account.js +++ /dev/null @@ -1,102 +0,0 @@ -var util = require('util'); -var Tab = require('../client/tab').Tab; - -var AccountTab = function () -{ - Tab.call(this); -}; - -util.inherits(AccountTab, Tab); - -AccountTab.prototype.tabName = 'account'; -AccountTab.prototype.mainMenu = 'account'; - -AccountTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/account.jade')(); -}; - -AccountTab.prototype.extraRoutes = [ - { name: '/account/:route' } -]; - -AccountTab.prototype.angular = function(module) -{ - module.controller('AccountCtrl', ['$scope', '$timeout', 'rpId', 'rpKeychain', '$routeParams', - function ($scope, $timeout, id, keychain, $routeParams) - { - if (!$routeParams.route) $routeParams.route = 'public'; - - $scope.rename = function() { - $scope.loading = true; - $scope.error = false; - // Get the master key - keychain.getSecret(id.account, id.username, $scope.password, - function (err, masterkey) { - if (err) { - console.log('client: account tab: error while ' + - 'unlocking wallet: ', err); - - $scope.error = 'wrongpassword'; - $scope.loading = false; - return; - } - - // Rename - id.rename({ - new_username: $scope.username, - password: $scope.password, - masterkey: masterkey - }, function(err){ - if (err) { - console.log('client: account tab: error while ' + - 'renaming account: ', err); - $scope.error = true; - $scope.loading = false; - return; - } - - // Re-login - // TODO implement refresh/relogin in ID. - id.login({ - username: $scope.username, - password: $scope.password - }, function (err) { - if (err) { - console.log('client: account tab: error while ' + - 'logging user in: ', err); - $scope.error = 'cantlogin'; - $scope.loading = false; - return; - } - - $scope.success = true; - reset(); - }); - }); - } - ); - }; - - var reset = function() { - $scope.openForm = false; - $scope.username = ''; - $scope.password = ''; - $scope.showPassword = true; - $scope.loading = false; - $scope.error = false; - - if ($scope.renameForm) { - $scope.renameForm.$setPristine(true); - } - - }; - - reset(); - $scope.success = false; - - }] - ); -}; - -module.exports = AccountTab; diff --git a/src/js/tabs/advanced.controller.js b/src/js/tabs/advanced.controller.js new file mode 100644 index 000000000..8d711a937 --- /dev/null +++ b/src/js/tabs/advanced.controller.js @@ -0,0 +1,239 @@ +var util = require('util'), + webutil = require('../util/web'), + Tab = require('../client/tab').Tab, + settings = require('../util/settings'), + Currency = ripple.Currency; + +var AdvancedTab = function () +{ + Tab.call(this); +}; + +util.inherits(AdvancedTab, Tab); + +AdvancedTab.prototype.tabName = 'advanced'; +AdvancedTab.prototype.mainMenu = 'advanced'; + +AdvancedTab.prototype.angular = function(module) +{ + module.controller('AdvancedCtrl', ['$scope', 'rpId', 'rpKeychain', 'rpNetwork', + function ($scope, id, keychain, network) + { + // XRP currency object. + // {name: 'XRP - Ripples', order: 146, value: 'XRP'} + var xrpCurrency = Currency.from_json('XRP'); + + $scope.xrp = { + name: xrpCurrency.to_human({full_name:$scope.currencies_all_keyed.XRP.name}), + code: xrpCurrency.get_iso(), + currency: xrpCurrency + }; + + $scope.options = Options; + $scope.optionsBackup = $.extend(true, {}, Options); + $scope.editConfirmation = { + send: false, + exchange: false, + trade: false + }; + $scope.edit = { + blobvault: false, + maxNetworkFee: false, + historyApi: false, + sendMax: false, + exchangeMax: false + }; + + function readSettings() { + $scope.passwordProtection = !settings.getSetting($scope.userBlob, 'persistUnlock', false); + $scope.sendMaxDeviation = settings.getSetting($scope.userBlob, 'sendMaxDeviation', 0.1); + $scope.exchangeMaxDeviation = settings.getSetting($scope.userBlob, 'exchangeMaxDeviation', 0.1); + } + + if (settings.blobIsValid($scope.userBlob)) { + readSettings(); + } else { + var removeListener = $scope.$on('$blobUpdate', function() { + if (!settings.blobIsValid($scope.userBlob)) return; + readSettings(); + removeListener(); + }); + } + + $scope.max_tx_network_fee_human = ripple.Amount.from_json($scope.options.max_tx_network_fee).to_human(); + + $scope.confirmationChanged = { + send: false, + exchange: false, + trade: false + }; + + // Initialize the notification object + $scope.success = {}; + + $scope.save = function(type) { + switch (type) { + case 'sendMax': + $scope.userBlob.set('/clients/rippletradecom/sendMaxDeviation', $scope.sendMaxDeviation); + case 'exchangeMax': + $scope.userBlob.set('/clients/rippletradecom/exchangeMaxDeviation', $scope.exchangeMaxDeviation); + case 'maxNetworkFee': + $scope.options.max_tx_network_fee = ripple.Amount.from_human($scope.max_tx_network_fee_human).to_json(); + $scope.userBlob.set('/clients/rippletradecom/maxNetworkFee', $scope.options.max_tx_network_fee); + // This has to be updated manually because the network object is not + // recreated unless we do location.reload() + network.remote.max_fee = $scope.options.max_tx_network_fee; + break; + case 'historyApi': + $scope.userBlob.set('/clients/rippletradecom/historyApi', $scope.options.historyApi.replace(/[\/]*$/, '')); + break; + default: + // Save in local storage + if (!store.disabled) { + store.set('ripple_settings', JSON.stringify($scope.options)); + } + } + + $scope.edit[type] = false; + + if (type === 'blobvault') { + location.reload(); + } + + // Notify the user + $scope.success[type] = true; + }; + + $scope.saveConfirmation = function(transactionType) { + // ignore it if we are not going to change anything + if (!$scope.confirmationChanged[transactionType]) { + $scope.editConfirmation[transactionType] = false; + return; + } + $scope.confirmationChanged[transactionType] = false; + + $scope.userBlob.set('/clients/rippletradecom/confirmation', $scope.options.confirmation); + + $scope.editConfirmation[transactionType] = false; + // Notify the user + $scope.success.saveConfirmation[transactionType] = true; + }; + + $scope.deleteUrl = function(type) { + if (type === 'blobvault') { + $scope.options.blobvault = ''; + } + // Save in local storage + if (!store.disabled) { + store.set('ripple_settings', JSON.stringify($scope.options)); + } + }; + + $scope.cancelEdit = function(type) { + $scope.edit[type] = false; + if (type === 'maxNetworkFee') { + $scope.options.max_tx_network_fee = $scope.optionsBackup.max_tx_network_fee; + $scope.max_tx_network_fee_human = ripple.Amount.from_json($scope.options.max_tx_network_fee).to_human(); + } if (type === 'sendMax') { + $scope.sendMaxDeviation = settings.getSetting($scope.userBlob, 'sendMaxDeviation', 0.1); + } if (type === 'exchangeMax') { + $scope.exchangeMaxDeviation = settings.getSetting($scope.userBlob, 'exchangeMaxDeviation', 0.1); + } else { + $scope.options[type] = $scope.optionsBackup[type]; + } + }; + + $scope.cancelEditConfirmation = function(transactionType) { + $scope.editConfirmation[transactionType] = false; + $scope.options.confirmation[transactionType] = $scope.optionsBackup.confirmation[transactionType]; + }; + + $scope.$on('$blobUpdate', function() { + $scope.passwordProtection = !settings.getSetting($scope.userBlob, 'persistUnlock', false); + + // we assume that some fields in Options are updated in rpId service $blobUpdate handler + $scope.optionsBackup = $.extend(true, {}, Options); + + // still assuming that fields in Options have been updated in rpId service $blobUpdate handler + $scope.max_tx_network_fee_human = ripple.Amount.from_json($scope.options.max_tx_network_fee).to_human(); + }); + + // Add a new server + $scope.addServer = function() { + // Create a new server line + if (!$scope.options.server.servers.isEmptyServer) + $scope.options.server.servers.push({isEmptyServer: true, secure: true}); + + // Set editing to true + $scope.editing = true; + + // Notify the user on save later + $scope.success.addServer = true; + }; + }]); + + module.controller('ServerRowCtrl', ['$scope', + function ($scope) { + $scope.editing = $scope.server.isEmptyServer; + + // Delete the server + $scope.remove = function () { + $scope.options.server.servers.splice($scope.index, 1); + + $scope.persist(); + + // Notify the user + $scope.success.removeServer = true; + }; + + $scope.hasRemove = function () { + return !$scope.server.isEmptyServer && $scope.options.server.servers.length !== 1; + }; + + $scope.cancel = function () { + if ($scope.server.isEmptyServer) { + $scope.remove(); + return; + } + + $scope.editing = false; + $scope.server = $.extend({}, $scope.optionsBackup.server.servers[$scope.index]); + }; + + $scope.noCancel = function () { + return $scope.server.isEmptyServer && $scope.options.server.servers.length === 1; + }; + + $scope.save = function () { + $scope.server.isEmptyServer = false; + $scope.editing = false; + + // Determine port if empty + if (!$scope.server.port) { + $scope.server.port = $scope.server.secure ? '443' : '80' + } + + $scope.persist(function() { + // Reload + // A force reload is necessary here because we have to re-initialize + // the network object with the new server list. + location.reload(); + }); + + // Notify the user + $scope.success.saveServer = true; + }; + + $scope.persist = function(cb) { + // Save in local storage + if (!store.disabled) { + store.set('ripple_settings', JSON.stringify($scope.options)); + } + var servers = settings.getClearServers($scope.options.server.servers); + $scope.userBlob.set('/clients/rippletradecom/server/servers', servers, cb); + } + } + ]); +}; + +module.exports = AdvancedTab; diff --git a/src/js/tabs/advanced.js b/src/js/tabs/advanced.js deleted file mode 100644 index a53649ff6..000000000 --- a/src/js/tabs/advanced.js +++ /dev/null @@ -1,278 +0,0 @@ -var util = require('util'), - webutil = require('../util/web'), - Tab = require('../client/tab').Tab, - Currency = ripple.Currency; - -var AdvancedTab = function () -{ - Tab.call(this); -}; - -util.inherits(AdvancedTab, Tab); - -AdvancedTab.prototype.tabName = 'advanced'; -AdvancedTab.prototype.mainMenu = 'advanced'; - -AdvancedTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/advanced.jade')(); -}; - -AdvancedTab.prototype.angular = function(module) -{ - module.controller('AdvancedCtrl', ['$scope', 'rpId', 'rpKeychain', 'rpNetwork', - function ($scope, id, keychain, network) - { - // XRP currency object. - // {name: 'XRP - Ripples', order: 146, value: 'XRP'} - var xrpCurrency = Currency.from_json('XRP'); - - $scope.xrp = { - name: xrpCurrency.to_human({full_name:$scope.currencies_all_keyed.XRP.name}), - code: xrpCurrency.get_iso(), - currency: xrpCurrency - }; - - $scope.options = Options; - $scope.optionsBackup = $.extend(true, {}, Options); - $scope.passwordProtection = !$scope.userBlob.data.persistUnlock; - $scope.editBridge = false; - $scope.editBlob = false; - $scope.editMaxNetworkFee = false; - $scope.editAcctOptions = false; - $scope.editConfirmation = { - send: false, - exchange: false, - trade: false - }; - $scope.max_tx_network_fee_human = ripple.Amount.from_json($scope.options.max_tx_network_fee).to_human(); - $scope.advancedFeatureSwitchChanged = false; - $scope.confirmationChanged = { - send: false, - exchange: false, - trade: false - }; - - // Initialize the notification object - $scope.success = {}; - - // Wait until blob is fully loaded. - $scope.$on('$netConnected', function () { - // For options.confirmation, but will eventually be used for other user settings - var data = $scope.userBlob.data; - if (data && data.clients && data.clients.rippletradecom) { - // Store user blob settings into backup instead of default settings from config.js. - if (data.clients.rippletradecom.confirmation) { - // Replace default settings with user settings from blob - $scope.options.confirmation = $.extend(true, {}, data.clients.rippletradecom.confirmation); - // The same goes for the backup - $scope.optionsBackup.confirmation = $.extend(true, {}, data.clients.rippletradecom.confirmation); - } else { - // if blob is empty, then populate the blob with default settings - $scope.userBlob.set('/clients/rippletradecom/confirmation', $scope.options.confirmation) - } - } - }); - - $scope.saveBlob = function () { - // Save in local storage - if (!store.disabled) { - store.set('ripple_settings', JSON.stringify($scope.options)); - } - - $scope.editBlob = false; - - // Reload - location.reload(); - - // Notify the user - $scope.success.saveBlob = true; - }; - - $scope.saveBridge = function () { - // Save in local storage - if (!store.disabled) { - store.set('ripple_settings', JSON.stringify($scope.options)); - } - - $scope.editBridge = false; - - // Notify the user - $scope.success.saveBridge = true; - }; - - $scope.saveMaxNetworkFee = function () { - // Save in local storage - if (!store.disabled) { - $scope.options.max_tx_network_fee = ripple.Amount.from_human($scope.max_tx_network_fee_human).to_json(); - store.set('ripple_settings', JSON.stringify($scope.options)); - } - // This has to be updated manually because the network object is not - // recreated unless we do location.reload() - network.remote.max_fee = $scope.options.max_tx_network_fee; - - $scope.editMaxNetworkFee = false; - - // Notify the user - $scope.success.saveMaxNetworkFee = true; - }; - - $scope.saveConfirmation = function (transactionType) { - //ignore it if we are not going to change anything - if (!$scope.confirmationChanged[transactionType]) { - $scope.editConfirmation[transactionType] = false; - return; - } - $scope.confirmationChanged[transactionType] = false; - - $scope.userBlob.set('/clients/rippletradecom/confirmation', $scope.options.confirmation) - - $scope.editConfirmation[transactionType] = false; - - // Notify the user - $scope.success.saveConfirmation[transactionType] = true; - }; - - $scope.saveAcctOptions = function () { - //ignore it if we are not going to change anything - if (!$scope.advancedFeatureSwitchChanged) { - return; - } - $scope.advancedFeatureSwitchChanged = false; - - if (!store.disabled) { - // Save in local storage - store.set('ripple_settings', JSON.stringify($scope.options)); - } - - $scope.userBlob.set('/clients/rippletradecom/trust/advancedMode', $scope.options.advanced_feature_switch); - - $scope.editAcctOptions = false; - - // Notify the user - $scope.success.saveAcctOptions = true; - }; - - $scope.deleteBlob = function () { - $scope.options.blobvault = ''; - // Save in local storage - if (!store.disabled) { - store.set('ripple_settings', JSON.stringify($scope.options)); - } - }; - - $scope.deleteBridge = function () { - $scope.options.bridge.out.bitcoin = ''; - // Save in local storage - if (!store.disabled) { - store.set('ripple_settings', JSON.stringify($scope.options)); - } - }; - - $scope.cancelEditBlob = function () { - $scope.editBlob = false; - $scope.options.blobvault = $scope.optionsBackup.blobvault; - }; - - $scope.cancelEditBridge = function () { - $scope.editBridge = false; - $scope.options.bridge.out.bitcoin = $scope.optionsBackup.bridge.out.bitcoin; - }; - - $scope.cancelEditConfirmation = function (transactionType) { - $scope.editConfirmation[transactionType] = false; - $scope.options.confirmation[transactionType] = $scope.optionsBackup.confirmation[transactionType]; - }; - - $scope.cancelEditMaxNetworkFee = function () { - $scope.editMaxNetworkFee = false; - $scope.options.max_tx_network_fee = $scope.optionsBackup.max_tx_network_fee; - $scope.max_tx_network_fee_human = ripple.Amount.from_json($scope.options.max_tx_network_fee).to_human(); - }; - - $scope.cancelEditAcctOptions = function () { - $scope.editAcctOptions = false; - $scope.options.advanced_feature_switch = $scope.optionsBackup.advanced_feature_switch; - }; - - $scope.$on('$blobUpdate', function () { - $scope.passwordProtection = !$scope.userBlob.data.persistUnlock; - $scope.options.confirmation = $scope.userBlob.data.clients.rippletradecom.confirmation; - - // we assume that some fields in Options are updated in rpId service $blobUpdate handler - $scope.optionsBackup = $.extend(true, {}, Options); - }); - - // Add a new server - $scope.addServer = function () { - // Create a new server line - if(!$scope.options.server.servers.isEmptyServer) - $scope.options.server.servers.push({isEmptyServer: true, secure: false}); - - // Set editing to true - $scope.editing = true; - - // Notify the user on save later - $scope.success.addServer = true; - }; - - }]); - - module.controller('ServerRowCtrl', ['$scope', - function ($scope) { - $scope.editing = $scope.server.isEmptyServer; - - // Delete the server - $scope.remove = function () { - $scope.options.server.servers.splice($scope.index,1); - - // Save in local storage - if (!store.disabled) { - store.set('ripple_settings', JSON.stringify($scope.options)); - } - - // Notify the user - $scope.success.removeServer = true; - }; - - $scope.hasRemove = function () { - return !$scope.server.isEmptyServer && $scope.options.server.servers.length !== 1; - }; - - $scope.cancel = function () { - if ($scope.server.isEmptyServer) { - $scope.remove(); - return; - } - - $scope.editing = false; - $scope.server = $.extend({}, $scope.optionsBackup.server.servers[$scope.index]); - - }; - - $scope.noCancel = function () { - return $scope.server.isEmptyServer && $scope.options.server.servers.length === 1; - }; - - $scope.save = function () { - $scope.server.isEmptyServer = false; - $scope.editing = false; - - // Save in local storage - if (!store.disabled) { - store.set('ripple_settings', JSON.stringify($scope.options)); - } - - // Notify the user - $scope.success.saveServer = true; - - // Reload - // A force reload is necessary here because we have to re-initialize - // the network object with the new server list. - location.reload(); - }; - } - ]); -}; - -module.exports = AdvancedTab; diff --git a/src/js/tabs/apps.js b/src/js/tabs/apps.controller.js similarity index 93% rename from src/js/tabs/apps.js rename to src/js/tabs/apps.controller.js index 4e9f19590..3c34e36fb 100644 --- a/src/js/tabs/apps.js +++ b/src/js/tabs/apps.controller.js @@ -14,11 +14,6 @@ util.inherits(AppsTab, Tab); AppsTab.prototype.tabName = 'apps'; AppsTab.prototype.mainMenu = 'apps'; -AppsTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/apps.jade')(); -}; - AppsTab.prototype.angular = function (module) { module.controller('AppsCtrl', ['$scope', 'rpId', 'rpAppManager', diff --git a/src/js/tabs/balance.js b/src/js/tabs/balance.controller.js similarity index 75% rename from src/js/tabs/balance.js rename to src/js/tabs/balance.controller.js index c2742b5bc..e6679be48 100644 --- a/src/js/tabs/balance.js +++ b/src/js/tabs/balance.controller.js @@ -15,15 +15,11 @@ BalanceTab.prototype.tabName = 'balance'; BalanceTab.prototype.mainMenu = 'wallet'; BalanceTab.prototype.angularDeps = Tab.prototype.angularDeps.concat(['marketchart']); -BalanceTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/balance.jade')(); -}; BalanceTab.prototype.angular = function (module) { - module.controller('BalanceCtrl', ['$scope', 'rpId', 'rpNetwork', '$filter', '$http', 'rpAppManager', - function ($scope, id, network, $filter, $http, appManager) + module.controller('BalanceCtrl', ['$scope', 'rpId', 'rpNetwork', '$filter', '$http', 'rpAppManager', '$q', + function ($scope, id, network, $filter, $http, appManager, $q) { // @@ -46,8 +42,6 @@ BalanceTab.prototype.angular = function (module) var history = []; - $scope.selectedTrendSpan = 86400000; - ($scope.selectedValueMetric = store.get('balance')) || ($scope.selectedValueMetric = 'XRP'); /*** My Orders widget */ @@ -121,7 +115,9 @@ BalanceTab.prototype.angular = function (module) $scope.$on('$balancesUpdate', updateExchangeRates); - $scope.$watch('exchangeRates', function(){ + $scope.$watch('exchangeRates', updateNetWorthDropdown, true); + + function updateNetWorthDropdown() { if ($scope.exchangeRates) { var isAmbiguous = {}; var okser = Object.keys($scope.exchangeRates); @@ -138,10 +134,17 @@ BalanceTab.prototype.angular = function (module) } } } - $scope.valueMetrics = okser.map(function(code){ + + var names = []; + + $scope.valueMetrics = okser.map(function(code) { var curIssuer = code.split(':'); + var currencyName = $filter('rpcurrency')(ripple.Amount.from_human('0 ' + curIssuer[0])); // This is really messy var issuerName = curIssuer.length > 1 ? $filter('rpripplename')(curIssuer[1], false) : ''; + if (isAmbiguous[curIssuer[0]] && issuerName.indexOf('…') !== -1 && !id.addressDontHaveName(curIssuer[1])) { + names.push(id.resolveName(curIssuer[1], { tilde: true })); + } return { code: code, name: currencyName + (isAmbiguous[curIssuer[0]] ? '.' + issuerName : ''), @@ -149,9 +152,15 @@ BalanceTab.prototype.angular = function (module) }; }); + if (names.length > 0) { + $q.all(names).then(function() { + updateNetWorthDropdown(); + }); + } + updateAggregateValueAsXrp(); } - }, true); + } // Whenever the XRP balance changes, update the aggregate value, but no need to refresh exchangeRates. // Update the displayed amount. @@ -220,131 +229,6 @@ BalanceTab.prototype.angular = function (module) updateExchangeRates(); } - /** - * Currency value trends, will be needed for red/green colorization - * of balances widget - * TODO: Needs outsourcing to Balances widget controller - */ - - var getDateRangeHistory = function(dateMin, dateMax, callback) - { - if (!id.account) return; - var completed = false; - var history = []; - - var params = { - account: id.account, - ledger_index_min: -1, - binary: false - }; - - getTx(); - - function getTx() { - network.remote.request_account_tx(params, function(err, data) { - if (!data.transactions.length) { - return callback(history); - } - - for (var i = 0;i < data.transactions.length;i++) { - var date = ripple.utils.toTimestamp(data.transactions[i].tx.date); - - if (date < dateMin.getTime()) { - completed = true; - break; - } - - if (date > dateMax.getTime()) { - continue; - } - - // Push - var tx = rewriter.processTxn(data.transactions[i].tx, data.transactions[i].meta, id.account); - if (tx) { - history.push(tx); - } - } - - if (data.marker) { - params.marker = data.marker; - $scope.tx_marker = params.marker; - } else { - // Received all transactions since a marker was not returned - completed = true; - } - - if (completed) { - callback(history); - } else { - getTx(); - } - }); - } - }; - - var changeDateRange = function(dateMin, dateMax) { - history = []; - $scope.trendValueAsPercentage = undefined; - - getDateRangeHistory(dateMin, dateMax, function(hist){ - $scope.$apply(function () { - history = hist; - updateTrend(); - }); - }); - }; - - var updateTrend = function() { - $scope.trendMap = {}; - var trendMap = _.reduce(history, function(map, event) { - _.forEach(event.effects, function(effect){ - switch (effect.type) { - case 'fee': - case 'balance_change': - case 'trust_change_balance': - currency = effect.amount.is_native() ? 'XRP' : (effect.currency + ':' + effect.counterparty); - if (typeof map[currency] === 'undefined') map[currency] = 0; - - map[currency] += effect.amount.is_native() - ? effect.amount.to_number() / 1000000 - : effect.amount.to_number(); - break; - } - }); - return map; - }, {}); - $scope.trendMap = trendMap; - }; - - $scope.changeTrendSpan = function(scope) { - $scope.selectedTrendSpan = scope.selectedTrendSpan; - }; - - var refreshTrend = function() { - changeDateRange(new Date(new Date() - $scope.selectedTrendSpan), new Date()); - }; - - //NOTE: lines below are used for the - //balance trend module, which is not implemented - //uncommenting these lines causes performance problems - - //$scope.$watch('selectedTrendSpan', refreshTrend); - //$scope.$watch('account.Balance', refreshTrend); - - //$scope.$watch('aggregateValueAsXrp', updateTrendValue); - //$scope.$watch('trendMap', updateTrendValue); - - function updateTrendValue() { - if (!$scope.trendMap) return; - var av = $scope.aggregateValueAsXrp; - for (var cur in $scope.trendMap) {if ($scope.trendMap.hasOwnProperty(cur)){ - var rate = ($scope.exchangeRates[cur] || 0); - var sbAsXrp = $scope.trendMap[cur] * rate; - av -= sbAsXrp; - }} - $scope.trendValueAsPercentage = ($scope.aggregateValueAsXrp - av) / av; - } - /** * Market chart widget */ diff --git a/src/js/tabs/brl.js b/src/js/tabs/brl.controller.js similarity index 97% rename from src/js/tabs/brl.js rename to src/js/tabs/brl.controller.js index 636ea15aa..0b4823d6e 100644 --- a/src/js/tabs/brl.js +++ b/src/js/tabs/brl.controller.js @@ -11,11 +11,6 @@ util.inherits(BrlTab, Tab); BrlTab.prototype.tabName = 'brl'; BrlTab.prototype.mainMenu = 'fund'; -BrlTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/brl.jade')(); -}; - BrlTab.prototype.angular = function (module) { module.controller('BrlCtrl', ['$scope', 'rpId', 'rpAppManager', 'rpTracker', '$routeParams', 'rpKeychain', 'rpNetwork', '$timeout', diff --git a/src/js/tabs/btc.controller.js b/src/js/tabs/btc.controller.js new file mode 100644 index 000000000..811e9373e --- /dev/null +++ b/src/js/tabs/btc.controller.js @@ -0,0 +1,242 @@ +var util = require('util'), + Tab = require('../client/tab').Tab; + +var BtcTab = function () +{ + Tab.call(this); +}; + +util.inherits(BtcTab, Tab); + +BtcTab.prototype.tabName = 'btc'; +BtcTab.prototype.mainMenu = 'fund'; + +BtcTab.prototype.angular = function (module) +{ + module.controller('BtcCtrl', ['$scope', 'rpId', 'rpAppManager', 'rpTracker', '$routeParams', 'rpNetwork', 'rpKeychain', + function ($scope, id, appManager, rpTracker, $routeParams, network, keychain) + { + $scope.accountLines = {}; + $scope.showComponent = []; + $scope.showInstructions = false; + $scope.btcConnected = false; + $scope.emailError = false; + $scope.generalError = false; + + $scope.toggle_instructions = function () { + $scope.showInstructions = !$scope.showInstructions; + }; + + $scope.toggle_btc_instructions = function (){ + $scope.showBtcInstructions = !$scope.showBtcInstructions; + } + + $scope.openPopup = function () { + $scope.emailError = false; + $scope.generalError = false; + rpTracker.track('B2R Show Connect'); + }; + + // TODO don't worry, the whole thing needs to be rewritten + var btcwatcher = $scope.$watch('B2R', function(){ + if ($scope.B2R && $scope.B2R.active) { + $scope.btcConnected = true; + + btcwatcher(); + } + }, true); + + // B2R Signup + $scope.B2RSignup = function () { + var issuer = Options.b2rAddress; + var currency = 'BTC'; + var amount = '100000000000'; + + fields = {}; + + fields.rippleAddress = id.account; + fields.email = $scope.userBlob.data.email; + + keychain.requestSecret(id.account, id.username, function (err, secret) { + if (err) { + console.log("client: trust profile: error while " + + "unlocking wallet: ", err); + $scope.mode = "error"; + $scope.error_type = "unlockFailed"; + + return; + } + + var tx = network.remote.transaction(); + tx.rippleLineSet(id.account, amount + '/' + currency + '/' + issuer); + tx.secret(secret); + tx.setFlags('NoRipple'); + tx.tx_json.Sequence = 1; + tx.complete(); + tx.sign(); + fields.txBlob = tx.serialize().to_hex(); + + $scope.B2RApp.findProfile('account').signup(fields, function (err, response) { + if (err) { + console.log('Error', err); + if (err && err.message == 'E-mail address is not accepted') { + $scope.load_notification('emailError'); + $scope.emailError = true; + } else { + $scope.load_notification('error'); + $scope.generalError = true; + } + $scope.btcConnected = false; + + rpTracker.track('B2R SignUp', { + result: 'failed', + message: err.message + }); + return; + } + + $scope.B2RApp.refresh(); + + $scope.B2RSignupResponse = response; + + rpTracker.track('B2R SignUp', { + result: 'success' + }); + + $scope.load_notification('success'); + + $scope.btcConnected = true; + $scope.showInstructions = true; + + }); + }); + + $scope.B2R.progress = true; + + rpTracker.track('B2R Shared Email'); + }; + + $scope.save_btc_account = function (){ + + $scope.btcLoading = true; + + var amount = ripple.Amount.from_human( + Options.gateway_max_limit + ' ' + 'BTC', + {reference_date: new Date(+new Date() + 5*60000)} + ); + + amount.set_issuer("rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B"); + + if (!amount.is_valid()) { + // Invalid amount. Indicates a bug in one of the validators. + console.log('Invalid amount'); + return; + } + + var tx = network.remote.transaction(); + + // Add memo to tx + tx.addMemo('client', 'rt' + $scope.version); + + // Flags + tx + .rippleLineSet(id.account, amount) + .on('proposed', function(res){ + $scope.$apply(function () { + setEngineStatus(res, false); + }); + }) + .on('success', function (res) { + $scope.$apply(function () { + setEngineStatus(res, true); + + $scope.btcLoading = false; + $scope.btcediting = false; + }); + }) + .on('error', function (res) { + setEngineStatus(res, false); + console.log('error', res); + setImmediate(function () { + $scope.$apply(function () { + $scope.btcMode = 'error'; + + $scope.btcLoading = false; + $scope.btcediting = false; + }); + }); + }); + + function setEngineStatus(res, accepted) { + $scope.btc_engine_result = res.engine_result; + $scope.btc_engine_result_message = res.engine_result_message; + $scope.btc_engine_status_accepted = accepted; + + switch (res.engine_result.slice(0, 3)) { + case 'tes': + $scope.btc_tx_result = accepted ? 'cleared' : 'pending'; + break; + case 'tem': + $scope.btc_tx_result = 'malformed'; + break; + case 'ter': + $scope.btc_tx_result = 'failed'; + break; + case 'tec': + $scope.btc_tx_result = 'failed'; + break; + case 'tel': + $scope.btc_tx_result = "local"; + break; + case 'tep': + console.warn('Unhandled engine status encountered!'); + } + if ($scope.btc_tx_result=="cleared"){ + $scope.btc2Connected = true; + $scope.showBtcInstructions = true; + + } + console.log($scope.btc_tx_result); + } + + keychain.requestSecret(id.account, id.username, function (err, secret) { + // XXX Error handling + if (err) { + $scope.btcLoading = false; + console.log(err); + return; + } + + $scope.btcMode = 'granting'; + + tx.secret(secret); + tx.submit(); + + + }); + + }; + + $scope.$watch('lines', function () { + if($scope.lines['rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59BBTC']){ + $scope.btc2Connected = true; + } + else { + $scope.btc2Connected = false; + } + }, true); + + $scope.$watch('account', function() { + $scope.can_add_trust = false; + if ($scope.account.Balance && $scope.account.reserve_to_add_trust) { + if (!$scope.account.reserve_to_add_trust.subtract($scope.account.Balance).is_positive() + || $.isEmptyObject($scope.lines)) + { + $scope.can_add_trust = true; + } + } + }, true); + }]); +}; + +module.exports = BtcTab; diff --git a/src/js/tabs/btc.js b/src/js/tabs/btc.js deleted file mode 100644 index 876480905..000000000 --- a/src/js/tabs/btc.js +++ /dev/null @@ -1,117 +0,0 @@ -var util = require('util'), - Tab = require('../client/tab').Tab; - -var BtcTab = function () -{ - Tab.call(this); -}; - -util.inherits(BtcTab, Tab); - -BtcTab.prototype.tabName = 'btc'; -BtcTab.prototype.mainMenu = 'fund'; - -BtcTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/btc.jade')(); -}; - -BtcTab.prototype.angular = function (module) -{ - module.controller('BtcCtrl', ['$scope', 'rpId', 'rpAppManager', 'rpTracker', '$routeParams', 'rpNetwork', 'rpKeychain', - function ($scope, id, appManager, rpTracker, $routeParams, network, keychain) - { - - $scope.accountLines = {}; - $scope.showComponent = []; - $scope.showInstructions = false; - $scope.btcConnected = false; - $scope.emailError = false; - - $scope.toggle_instructions = function () { - $scope.showInstructions = !$scope.showInstructions; - }; - - $scope.openPopup = function () { - $scope.emailError = false; - rpTracker.track('B2R Show Connect'); - }; - - // TODO don't worry, the whole thing needs to be rewritten - var btcwatcher = $scope.$watch('B2R', function(){ - if ($scope.B2R && $scope.B2R.active) { - $scope.btcConnected = true; - - btcwatcher(); - } - }); - - // B2R Signup - $scope.B2RSignup = function () { - var issuer = Options.b2rAddress; - var currency = 'BTC'; - var amount = '100000000000'; - - fields = {}; - - fields.rippleAddress = id.account; - fields.email = $scope.userBlob.data.email; - - keychain.requestSecret(id.account, id.username, function (err, secret) { - if (err) { - console.log("client: trust profile: error while " + - "unlocking wallet: ", err); - $scope.mode = "error"; - $scope.error_type = "unlockFailed"; - - return; - } - - var tx = network.remote.transaction(); - tx.rippleLineSet(id.account, amount + '/' + currency + '/' + issuer); - tx.secret(secret); - tx.setFlags('NoRipple'); - tx.tx_json.Sequence = 1; - tx.complete(); - tx.sign(); - fields.txBlob = tx.serialize().to_hex(); - - $scope.B2RApp.findProfile('account').signup(fields, function (err, response) { - if (err) { - console.log('Error', err); - $scope.emailError = true; - $scope.btcConnected = false; - $scope.load_notification('error'); - - rpTracker.track('B2R SignUp', { - result: 'failed', - message: err.message - }); - return; - } - - $scope.B2RApp.refresh(); - - $scope.B2RSignupResponse = response; - - rpTracker.track('B2R SignUp', { - result: 'success' - }); - - $scope.load_notification('success'); - - $scope.btcConnected = true; - $scope.showInstructions = true; - - }); - }); - - $scope.B2R.progress = true; - - rpTracker.track('B2R Shared Email'); - }; - - }]); -}; - -module.exports = BtcTab; diff --git a/src/js/tabs/aud.js b/src/js/tabs/cad.controller.js similarity index 78% rename from src/js/tabs/aud.js rename to src/js/tabs/cad.controller.js index b6ecc816c..582967e81 100644 --- a/src/js/tabs/aud.js +++ b/src/js/tabs/cad.controller.js @@ -1,21 +1,17 @@ var util = require('util'), Tab = require('../client/tab').Tab; -var AudTab = function() { +var CadTab = function() { Tab.call(this); }; -util.inherits(AudTab, Tab); +util.inherits(CadTab, Tab); -AudTab.prototype.tabName = 'aud'; -AudTab.prototype.mainMenu = 'fund'; +CadTab.prototype.tabName = 'cad'; +CadTab.prototype.mainMenu = 'fund'; -AudTab.prototype.generateHtml = function() { - return require('../../jade/tabs/aud.jade')(); -}; - -AudTab.prototype.angular = function(module) { - module.controller('AudCtrl', ['$scope', 'rpId', 'rpAppManager', 'rpTracker', '$routeParams', 'rpKeychain', 'rpNetwork', '$timeout', +CadTab.prototype.angular = function(module) { + module.controller('CadCtrl', ['$scope', 'rpId', 'rpAppManager', 'rpTracker', '$routeParams', 'rpKeychain', 'rpNetwork', '$timeout', function($scope, id, appManager, rpTracker, $routeParams, keychain, $network, $timeout) { $scope.toggle_instructions = function() { @@ -26,16 +22,16 @@ AudTab.prototype.angular = function(module) { $scope.loading = true; var amount = ripple.Amount.from_human( - Options.gateway_max_limit + ' ' + 'AUD', { - reference_date: new Date(+new Date() + 5 * 60000) + Options.gateway_max_limit + ' ' + 'CAD', { + reference_date: new Date(+new Date() + 5 * 60000) } ); - amount.set_issuer('rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc'); + amount.set_issuer('raBDVR7JFq3Yho2jf7mcx36sjTwpRJJrGU'); if (!amount.is_valid()) { - // Invalid amount. Indicates a bug in one of the validators. - console.log('Invalid amount'); + // Invalid amount. Indicates a bug in one of the validators. + console.warn('Invalid amount'); return; } @@ -98,17 +94,17 @@ AudTab.prototype.angular = function(module) { console.warn('Unhandled engine status encountered!'); } if ($scope.tx_result == 'cleared') { - $scope.audConnected = true; + $scope.cadConnected = true; $scope.showInstructions = true; } console.log($scope.tx_result); } keychain.requestSecret(id.account, id.username, function(err, secret) { - // XXX Error handling + // XXX Error handling if (err) { $scope.loading = false; - console.log(err); + console.warn(err); return; } $scope.mode = 'granting'; @@ -117,14 +113,14 @@ AudTab.prototype.angular = function(module) { }); }; $scope.$watch('lines', function() { - if ($scope.lines.rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBcAUD) { - $scope.audConnected = true; + if ($scope.lines.raBDVR7JFq3Yho2jf7mcx36sjTwpRJJrGUCAD) { + $scope.cadConnected = true; } else { - $scope.audConnected = false; + $scope.cadConnected = false; } }, true); - // User should be notified if the reserve is insufficient to add a gateway + // User should be notified if the reserve is insufficient to add a gateway $scope.$watch('account', function() { $scope.can_add_trust = false; if ($scope.account.Balance && $scope.account.reserve_to_add_trust) { @@ -137,4 +133,4 @@ AudTab.prototype.angular = function(module) { ]); }; -module.exports = AudTab; +module.exports = CadTab; diff --git a/src/js/tabs/contacts.js b/src/js/tabs/contacts.controller.js similarity index 92% rename from src/js/tabs/contacts.js rename to src/js/tabs/contacts.controller.js index 6ecb0cb09..2325ef13d 100644 --- a/src/js/tabs/contacts.js +++ b/src/js/tabs/contacts.controller.js @@ -15,11 +15,6 @@ ContactsTab.prototype.mainMenu = 'wallet'; // /contact is the way it appears in Ripple URIs ContactsTab.prototype.aliases = ['contact']; -ContactsTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/contacts.jade')(); -}; - ContactsTab.prototype.angular = function (module) { module.controller('ContactsCtrl', ['$scope', 'rpId', 'rpTracker', function ($scope, id, rpTracker) @@ -30,8 +25,6 @@ ContactsTab.prototype.angular = function (module) { reverse: false }; - // Initialize the notification object - $scope.success = {}; $scope.reset_form = function () { @@ -83,7 +76,7 @@ ContactsTab.prototype.angular = function (module) { $scope.reset_form(); // Notify the user - $scope.success.createContact = true; + $scope.load_notification('createContactSuccess'); }; }]); @@ -138,7 +131,7 @@ ContactsTab.prototype.angular = function (module) { $scope.editing = false; // Notify the user - $scope.success.updateContact = true; + $scope.load_notification('updateContactSuccess'); } }; @@ -157,8 +150,7 @@ ContactsTab.prototype.angular = function (module) { 'unset', ''); // Notify the user - $scope.success.removeContact = true; - + $scope.load_notification('removeContactSuccess'); } }; diff --git a/src/js/tabs/debug.js b/src/js/tabs/debug.controller.js similarity index 93% rename from src/js/tabs/debug.js rename to src/js/tabs/debug.controller.js index 71caf3bbb..ac200dd09 100644 --- a/src/js/tabs/debug.js +++ b/src/js/tabs/debug.controller.js @@ -12,11 +12,6 @@ util.inherits(PretendTab, Tab); PretendTab.prototype.tabName = 'debug'; PretendTab.prototype.mainMenu = 'debug'; -PretendTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/debug.jade')(); -}; - PretendTab.prototype.angular = function (module) { module.controller('DebugPretendCtrl', ['$rootScope', '$scope', 'rpId', '$q', diff --git a/src/js/tabs/eur.js b/src/js/tabs/eur.controller.js similarity index 97% rename from src/js/tabs/eur.js rename to src/js/tabs/eur.controller.js index 4dddadce7..f2e5db737 100644 --- a/src/js/tabs/eur.js +++ b/src/js/tabs/eur.controller.js @@ -11,11 +11,6 @@ util.inherits(EurTab, Tab); EurTab.prototype.tabName = 'eur'; EurTab.prototype.mainMenu = 'fund'; -EurTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/eur.jade')(); -}; - EurTab.prototype.angular = function (module) { diff --git a/src/js/tabs/exchange.js b/src/js/tabs/exchange.controller.js similarity index 84% rename from src/js/tabs/exchange.js rename to src/js/tabs/exchange.controller.js index 8c7458d55..94547c55e 100644 --- a/src/js/tabs/exchange.js +++ b/src/js/tabs/exchange.controller.js @@ -1,5 +1,6 @@ var util = require('util'), webutil = require('../util/web'), + settings = require('../util/settings'), Tab = require('../client/tab').Tab, Amount = ripple.Amount, Base = ripple.Base, @@ -16,11 +17,6 @@ util.inherits(ExchangeTab, Tab); ExchangeTab.prototype.tabName = 'exchange'; ExchangeTab.prototype.mainMenu = 'exchange'; -ExchangeTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/exchange.jade')(); -}; - ExchangeTab.prototype.angular = function (module) { module.controller('ExchangeCtrl', ['$scope', '$timeout', '$routeParams', @@ -29,8 +25,21 @@ ExchangeTab.prototype.angular = function (module) { var pathUpdateTimeout; - var timer, pf; + var timer; + var pf = null; + if (settings.blobIsValid($scope.userBlob)) { + if (settings.getSetting($scope.userBlob, 'rippleExchangeSelectionTrade', false)) { + $scope.userBlob.set('/clients/rippletradecom/rippleExchangeSelectionTrade', false); + } + } else { + var removeListener = $scope.$on('$blobUpdate', function() { + if (settings.getSetting($scope.userBlob, 'rippleExchangeSelectionTrade', false)) { + $scope.userBlob.set('/clients/rippletradecom/rippleExchangeSelectionTrade', false); + } + removeListener(); + }); + } // Remember user preference on Convert vs. Trade $rootScope.ripple_exchange_selection_trade = false; @@ -42,11 +51,9 @@ ExchangeTab.prototype.angular = function (module) currency: xrpCurrency }; - $scope.$watch('exchange.amount', function () { - $scope.update_exchange(); - }, true); + $scope.$watch('exchange.amount', runUpdateExchangeIfNeeded, true); - $scope.$watch('exchange.currency_name', function () { + $scope.$watch('exchange.currency_name', function() { var exchange = $scope.exchange; var currency = Currency.from_human($scope.exchange.currency_name ? $scope.exchange.currency_name : 'XRP'); exchange.currency_obj = currency; @@ -54,20 +61,43 @@ ExchangeTab.prototype.angular = function (module) exchange.currency_name = currency.to_human({ full_name: $scope.currencies_all_keyed[currency.get_iso()] ? $scope.currencies_all_keyed[currency.get_iso()].name : null }); - $scope.update_exchange(); + setImmediate(function() { + if ($scope.exchangeForm.amount !== undefined) { + $scope.$apply(function() { + // $scope.exchangeForm.amount.$validate(); + // hack - use of private method. this is because rpAmount and other + // validators not real validators, but parsers. + // and latest angular does not call parsers on $validate. + // when rpAmount and others changed to validators this can be changed + // back to $validate + $scope.exchangeForm.amount.$$parseAndValidate(); + runUpdateExchangeIfNeeded(); + }); + } + }); }, true); + function runUpdateExchangeIfNeeded() { + if ($scope.exchangeForm.$valid) { + $scope.update_exchange(); + } else { + onDestroy(); + $scope.reset_paths(); + $scope.exchange.path_status = 'waiting'; + } + } + $scope.gotoFund = function() { $location.path('/xrp'); }; - $scope.reset_paths = function () { + $scope.reset_paths = function() { var exchange = $scope.exchange; exchange.alternatives = []; }; - $scope.update_exchange = function () { + $scope.update_exchange = function() { var exchange = $scope.exchange; var currency = ripple.Currency.from_human(exchange.currency_name); @@ -119,7 +149,11 @@ ExchangeTab.prototype.angular = function (module) } }; - $scope.update_paths = function () { + $scope.update_paths = function() { + if ($scope.exchangeForm.$invalid) { + // something was changed in form so now it is invalid + return; + } $scope.$apply(function () { $scope.exchange.path_status = 'pending'; var amount = $scope.exchange.amount_feedback; @@ -138,7 +172,11 @@ ExchangeTab.prototype.angular = function (module) var lastUpdate; - pf.on('update', function (upd) { + pf.on('update', function(upd) { + if (pf === null) { + // request came after calling pf.close(); + return; + } // if no paths found and it is first update - skip it, it often wrong if (pathfindJustStarted && (!upd.alternatives || !upd.alternatives.length)) { pathfindJustStarted = false; @@ -166,7 +204,9 @@ ExchangeTab.prototype.angular = function (module) var alt = {}; alt.amount = Amount.from_json(raw.source_amount); alt.rate = alt.amount.ratio_human(amount); - alt.send_max = alt.amount.product_human(Amount.from_json('1.001')); + var exchangeMaxDeviation = settings.getSetting($scope.userBlob, 'exchangeMaxDeviation', 0.1); + alt.send_max = alt.amount.scale(1 + exchangeMaxDeviation / 100); + alt.paths = raw.paths_computed ? raw.paths_computed : raw.paths_canonical; @@ -194,10 +234,16 @@ ExchangeTab.prototype.angular = function (module) } }); }); + pf.on('error', function(res) { + $scope.$apply(function() { + $scope.reset_paths(); + $scope.exchange.path_status = 'waiting'; + }); + }); }); }; - var updateCurrencyOptions = function(){ + var updateCurrencyOptions = function() { // create a list of currency codes from the trust line objects var currencies = _.uniq(_.map($scope.lines, function (line) { return line.currency; @@ -271,6 +317,7 @@ ExchangeTab.prototype.angular = function (module) if (Options.confirmation.exchange) { $scope.mode = 'confirm'; + $scope.exchangeMaxDeviation = settings.getSetting($scope.userBlob, 'exchangeMaxDeviation', 1); } else { $scope.exchange_confirmed(); } @@ -460,12 +507,15 @@ ExchangeTab.prototype.angular = function (module) updateCurrencyOptions(); // Stop the pathfinding when leaving the page - $scope.$on('$destroy', function(){ + $scope.$on('$destroy', onDestroy); + + function onDestroy() { if (pf && 'function' === typeof pf.close) { pf.close(); + pf = null; } clearInterval(timer); - }); + } }]); }; diff --git a/src/js/tabs/gold.js b/src/js/tabs/gold.controller.js similarity index 93% rename from src/js/tabs/gold.js rename to src/js/tabs/gold.controller.js index fbdd74592..2442914c7 100644 --- a/src/js/tabs/gold.js +++ b/src/js/tabs/gold.controller.js @@ -11,11 +11,6 @@ util.inherits(GoldTab, Tab); GoldTab.prototype.tabName = 'gold'; GoldTab.prototype.mainMenu = 'fund'; -GoldTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/gold.jade')(); -}; - GoldTab.prototype.angular = function (module) { module.controller('GoldCtrl', ['$scope', 'rpId', 'rpAppManager', 'rpTracker', '$routeParams', 'rpKeychain', 'rpNetwork', '$timeout', @@ -31,7 +26,7 @@ GoldTab.prototype.angular = function (module) $scope.loading = true; var amount = ripple.Amount.from_human( - Options.gateway_max_limit + ' ' + '0158415500000000C1F76FF6ECB0BAC600000000', + Options.gateway_max_limit + ' ' + 'XAU', {reference_date: new Date(+new Date() + 5*60000)} ); @@ -129,7 +124,7 @@ GoldTab.prototype.angular = function (module) }; $scope.$watch('lines', function () { - if($scope.lines['rrh7rf1gV2pXAoqA8oYbpHd8TKv5ZQeo670158415500000000C1F76FF6ECB0BAC600000000']){ + if($scope.lines['rrh7rf1gV2pXAoqA8oYbpHd8TKv5ZQeo67XAU']){ $scope.gbiConnected = true; } else { diff --git a/src/js/tabs/history.controller.js b/src/js/tabs/history.controller.js new file mode 100644 index 000000000..79907f718 --- /dev/null +++ b/src/js/tabs/history.controller.js @@ -0,0 +1,451 @@ +var util = require('util'), + webUtil = require('../util/web'), + Tab = require('../client/tab').Tab, + rewriter = require('../util/jsonrewriter'), + Amount = ripple.Amount; + +var HistoryTab = function () +{ + Tab.call(this); +}; + +util.inherits(HistoryTab, Tab); + +HistoryTab.prototype.tabName = 'history'; +HistoryTab.prototype.mainMenu = 'wallet'; + +HistoryTab.prototype.angular = function (module) { + module.controller('HistoryCtrl', ['$scope', 'rpId', 'rpNetwork', 'rpTracker', 'rpAppManager', '$routeParams', '$location', + function ($scope, id, network, rpTracker, appManager, $routeParams, $location) + { + // Open/close states of individual history items + $scope.details = []; + $scope.pagination = { + currentPage: $routeParams.page ? $routeParams.page : 1, + transactionsPerPage: Options.transactions_per_page + }; + + $scope.loadingHistory = true; + + // Types + $scope.types = [ + { + name: 'Payments & Orders', + types: ['Payment', 'OfferCreate', 'OfferCancel'], + checked: $routeParams.types && $routeParams.types.indexOf('Payment,OfferCreate,OfferCancel') !== -1 + }, + { + name: 'Gateways', + types: ['TrustSet'], + checked: $routeParams.types && $routeParams.types.indexOf('TrustSet') !== -1 + }, + { + name: 'Other', + types: ['AccountSet'], + checked: $routeParams.types && $routeParams.types.indexOf('AccountSet') !== -1 + } + ]; + + $scope.dateMinView = $routeParams.start ? new Date($routeParams.start) : ''; + $scope.dateMaxView = $routeParams.end ? new Date($routeParams.end) : ''; + $scope.customDate = $scope.dateMinView || $scope.dateMaxView; + + // History collection + $scope.historyShow = []; + $scope.historyCsv = ''; + + // Type filter + $scope.$watch('types', function(newVal, oldVal){ + if (!oldVal || newVal == oldVal) return; + + $location.url($scope.generateUrl()); + }, true); + + // Custom date + $scope.$watch('customDate', function(){ + if (!$scope.customDate && ($scope.dateMinView || $scope.dateMaxView)) { + $scope.dateMinView = null; + $scope.dateMaxView = null; + + $location.url($scope.generateUrl()); + } + }); + + $scope.$watch('pagination.currentPage', function(){ + if ($scope.pagination.currentPage === $routeParams.page) return; + + $location.url($scope.generateUrl()); + }); + + // Initial history load + var initialLoad = $scope.$watch('userHistory', function(){ + if ($scope.noUserHistory) $scope.loadingHistory = false; + if (!$scope.userHistory) return; + + loadHistory(); + initialLoad(); + }); + + $scope.submitDateRangeForm = function() { + $location.url($scope.generateUrl()); + }; + + $scope.generateUrl = function (page) { + var filtersLine = ''; + + // Page + if (!page) + page = $scope.pagination.currentPage; + + // Types + var selectedTypesObjects = _.where($scope.types, {checked: true}); + var selectedTypesString = _.map(selectedTypesObjects, 'types').join(','); + + // select all types if empty + selectedTypesString = selectedTypesString + ? selectedTypesString + : _.map($scope.types, 'types').join(','); + + if (selectedTypesString) filtersLine += '&types=' + selectedTypesString; + + // Date range + if ($scope.dateMinView) { + filtersLine += '&start=' + $scope.dateMinView.toISOString(); + } + + if ($scope.dateMaxView) { + filtersLine += '&end=' + $scope.dateMaxView.toISOString(); + } + + if ($routeParams.types !== selectedTypesString) + page = 1; + + return '/history' + + '?page=' + page + + filtersLine + }; + + function loadHistory() { + if (!$scope.userHistory || !$routeParams.types) return; + + $scope.historyShow = []; + + var options = { + limit: Options.transactions_per_page, + offset: $scope.pagination.currentPage > 1 + ? ($scope.pagination.currentPage - 1) * Options.transactions_per_page + : 0 + }; + + if ($routeParams.types) { + options.type = $routeParams.types; + } + if ($routeParams.start) options.start = $routeParams.start; + if ($routeParams.end) options.end = $routeParams.end; + + // Get history + $scope.userHistory.getHistory(options) + .success(function(data){ + $scope.loadingHistory = false; + updateHistory(data); + }) + .error(function(){ + $scope.loadingHistory = false; + }); + + // Get transaction count + $scope.userHistory.getCount(options) + .success(function(response){ + $scope.pagination.count = response.count; + }); + } + + function updateHistory(data){ + if (!data.transactions.length) return; + + data.transactions.forEach(function(transaction) + { + var event = rewriter.processTxn( + transaction.tx, + transaction.meta, + id.account); + + if (!event) return; + + var effects = []; + var isFundedTrade = false; // Partially / fully funded + var isCancellation = false; + + if (event.effects) { + // Show effects + $.each(event.effects, function(){ + var _this = this; + + switch (_this.type) { + case 'offer_funded': + case 'offer_partially_funded': + case 'offer_bought': + isFundedTrade = true; + /* falls through */ + case 'offer_cancelled': + if (_this.type === 'offer_cancelled') { + isCancellation = true; + if (event.transaction && event.transaction.type === 'offercancel') + return; + } + effects.push(_this); + break; + } + }); + + event.showEffects = effects; + + effects = []; + + // Balance changer effects + $.each(event.effects, function(){ + var _this = this; + + switch (_this.type) { + case 'fee': + case 'balance_change': + case 'trust_change_balance': + effects.push(_this); + break; + } + }); + + event.balanceEffects = effects; + } + + // Push events to history collection + $scope.historyShow.push(event); + }); + } + + var exists = function(pty) { + return typeof pty !== 'undefined'; + }; + + // Change first letter of string to uppercase or lowercase + var capFirst = function(str, caps) { + var first = str.charAt(0); + return (caps ? first.toUpperCase() : first.toLowerCase()) + str.slice(1); + }; + + var rippleName = function(address) { + var name; + if (address !== '') name = webUtil.isContact($scope.userBlob.data.contacts, address); + return name ? name : address; + }; + + var issuerToString = function(issuer) { + var iss = issuer.to_json(); + return typeof iss === 'number' && isNaN(iss) ? '' : iss; + }; + + // Convert Amount value to human-readable format + var formatAmount = function(amount) { + var formatted = ''; + + if (amount instanceof Amount) { + formatted = amount.to_human({group_sep: false, precision: 2}); + + // If amount is very small and only has zeros (ex. 0.0000), raise precision + if (formatted.length > 1 && 0 === +formatted) { + formatted = amount.to_human({group_sep: false, precision: 20, max_sig_digits: 5}); + } + } + + return formatted; + }; + + $scope.exportCsv = function() { + + // Header (1st line) of CSV with name of each field + // Ensure that the field values for each row added in addLineToCsvToCsv() correspond in this order + var csv = 'Date,Time,Ledger Number,Transaction Type,Trust address,' + + 'Address sent from,Amount sent/sold,Currency sent/sold,Issuer of sent/sold ccy,' + + 'Address sent to,Amount received,Currency received,Issuer of received ccy,' + + 'Executed Price,Network Fee paid,Transaction Hash\r\n'; + + var addLineToCsv = function(line) { + // Ensure that the fields match the CSV header initialized in var csv + csv += [ line.Date, line.Time, line.LedgerNum, line.TransType, line.TrustAddr, + line.FromAddr, line.SentAmount, line.SentCcy, line.SentIssuer, + line.ToAddr, line.RecvAmount, line.RecvCcy, line.RecvIssuer, + line.ExecPrice, line.Fee, line.TransHash + ].join(',') + '\r\n'; + }; + + // Convert the fields of interest in buy & sell Amounts to strings in Key/Value pairs + var getOrderDetails = function(keyVal, buy, sell) { + if (buy !== null && buy instanceof Amount) { + keyVal.SentAmount = formatAmount(buy); + keyVal.SentCcy = buy.currency().get_iso(); + keyVal.SentIssuer = rippleName(issuerToString(buy.issuer())); + } + + if (sell !== null && sell instanceof Amount) { + keyVal.RecvAmount = formatAmount(sell); + keyVal.RecvCcy = sell.currency().get_iso(); + keyVal.RecvIssuer = rippleName(issuerToString(sell.issuer())); + } + }; + + // Construct a CSV string by: + // 1) Iterating over each line item in the *displayed* Transaction History + // 2) If the type of Transaction is in scope, convert the relevant fields to strings in Key/Value pairs + // 3) Concatenate the strings extracted in (2) in a comma-delimited line and append this line to the CSV + for (var i = 0; i < $scope.historyShow.length; i++) { + var histLine = $scope.historyShow[i], + transaction = histLine.transaction, + type = histLine.tx_type, + dateTime = moment(histLine.date), + na = 'NA', + line = {}, + lineTemplate = {}, + lineTrust = {}, + linePayment = {}, + lineOffer = {}, + sent; + + // Unsuccessful transactions are excluded from the export + var transType = exists(transaction) ? transaction.type : null; + if (transType === 'failed' || histLine.tx_result !== 'tesSUCCESS') continue; + + // Fields common to all Transaction types + lineTemplate.Date = dateTime.format('YYYY-MM-DD'); + lineTemplate.Time = dateTime.format('HH:mm:ss'); + lineTemplate.LedgerNum = histLine.ledger_index; + lineTemplate.Fee = formatAmount(histLine.fee); + lineTemplate.TransHash = histLine.hash; + + // Default type-specific fields to NA, they will be overridden later if applicable + lineTemplate.TrustAddr = lineTemplate.FromAddr = lineTemplate.ToAddr = na; + lineTemplate.RecvAmount = lineTemplate.RecvCcy = lineTemplate.ExecPrice = na; + + // Include if Payment, Trust, Offer. Otherwise Exclude. + if (type === 'TrustSet') { + // Trust Line (Incoming / Outgoing) + var trust = ''; + + if (transType === 'trusted') trust = 'Incoming '; + else if (transType === 'trusting') trust = 'Outgoing '; + else continue; // unrecognised trust type + + lineTrust.TransType = trust + 'trust line'; + lineTrust.TrustAddr = rippleName(transaction.counterparty); + + lineTrust.SentAmount = formatAmount(transaction.amount); + lineTrust.SentCcy = transaction.currency; //transaction.amount.currency().get_iso(); + + lineTrust.SentIssuer = lineTrust.RecvIssuer = na; + + line = $.extend({}, lineTemplate, lineTrust); + addLineToCsv(line); + } + else if (type === 'Payment' && transType !== null) { + // Payment (Sent / Received) + if (transType === 'sent') sent = true; + else if (transType === 'received') sent = false; + else continue; // unrecognised payment type + + linePayment.TransType = capFirst(transType, true) + ' ' + capFirst(type, false); + + if (sent) { + // If sent, counterparty is Address To + linePayment.ToAddr = rippleName(transaction.counterparty); + linePayment.FromAddr = rippleName(id.account); + } + else { + // If received, counterparty is Address From + linePayment.FromAddr = rippleName(transaction.counterparty); + linePayment.ToAddr = rippleName(id.account); + } + + if (exists(transaction.amountSent)) { + amtSent = transaction.amountSent; + linePayment.SentAmount = exists(amtSent.value) ? amtSent.value : formatAmount(Amount.from_json(amtSent)); + linePayment.SentCcy = exists(amtSent.currency) ? amtSent.currency : 'XRP'; + if (exists(transaction.sendMax)) linePayment.SentIssuer = rippleName(transaction.sendMax.issuer); + } + + linePayment.RecvAmount = formatAmount(transaction.amount); + linePayment.RecvCcy = transaction.currency; + linePayment.RecvIssuer = rippleName(issuerToString(transaction.amount.issuer())); + + line = $.extend({}, lineTemplate, linePayment); + addLineToCsv(line); + } + else if (type === 'Payment' || type === 'OfferCreate' || type === 'OfferCancel') { + // Offers (Created / Cancelled / Executed) + var effect; + + if (transType === 'offernew') { + getOrderDetails(lineOffer, transaction.gets, transaction.pays); + lineOffer.TransType = 'Offer Created'; + + line = $.extend({}, lineTemplate, lineOffer); + addLineToCsv(line); + } + else if (transType === 'offercancel') { + for (var e = 0; e < histLine.effects.length; e++) { + effect = histLine.effects[e]; + + if (effect.type === 'offer_cancelled') { + getOrderDetails(lineOffer, effect.gets, effect.pays); + lineOffer.TransType = 'Offer Cancelled'; + + line = $.extend({}, lineTemplate, lineOffer); + addLineToCsv(line); + + break; + } + } + } + + for (var s = 0; s < histLine.showEffects.length; s++) { + effect = histLine.showEffects[s], + buy = null, + sell = null; + lineOffer = {}; + + switch (effect.type) { + case 'offer_bought': + case 'offer_funded': + case 'offer_partially_funded': + // Order fills (partial or full) + + if (effect.type === 'offer_bought') { + buy = exists(effect.paid) ? effect.paid : effect.pays; + sell = exists(effect.got) ? effect.got : effect.gets; + } + else { + buy = exists(effect.got) ? effect.got : effect.gets; + sell = exists(effect.paid) ? effect.paid : effect.pays; + } + + getOrderDetails(lineOffer, buy, sell); + lineOffer.TransType = 'Executed offer'; + lineOffer.ExecPrice = formatAmount(effect.price); + + line = $.extend({}, lineTemplate, lineOffer); + if (s > 0) line.Fee = ''; // Fee only applies once + addLineToCsv(line); + + break; // end case + } + } + } + // else unrecognised Transaction type hence ignored + } + + // Ensure that historyCsv is set to empty string if there is nothing to download, + // otherwise the file download will be a single line with header and no data + $scope.historyCsv = $scope.historyShow.length ? csv : ''; + }; + }]); +}; + +module.exports = HistoryTab; diff --git a/src/js/tabs/history.js b/src/js/tabs/history.js deleted file mode 100644 index 9684dc785..000000000 --- a/src/js/tabs/history.js +++ /dev/null @@ -1,686 +0,0 @@ -var util = require('util'), - webUtil = require('../util/web'), - Tab = require('../client/tab').Tab, - rewriter = require('../util/jsonrewriter'), - Amount = ripple.Amount; - -var HistoryTab = function () -{ - Tab.call(this); -}; - -util.inherits(HistoryTab, Tab); - -HistoryTab.prototype.tabName = 'history'; -HistoryTab.prototype.mainMenu = 'wallet'; - -HistoryTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/history.jade')(); -}; - -HistoryTab.prototype.angular = function (module) { - module.controller('HistoryCtrl', ['$scope', 'rpId', 'rpNetwork', 'rpTracker', 'rpAppManager', '$routeParams', - function ($scope, id, network, rpTracker, appManager, $routeParams) - { - // Open/close states of individual history items - $scope.details = []; - - var history = []; - - // History collection - $scope.historyShow = []; - $scope.historyCsv = ''; - - // Currencies from history - var historyCurrencies = []; - - // Latest transaction - var latest; - - $scope.orderedTypes = ['sent', 'received', 'gateways', 'trades', 'orders', 'other']; - - $scope.types = { - sent: { - 'types': ['sent'], - 'checked': true - }, - received: { - 'types': ['received'], - 'checked': true - }, - gateways: { - 'types': ['trusting','trusted'], - 'checked': true - }, - trades: { - 'types': ['offernew','exchange'], - 'checked': true - }, - orders: { - 'types': ['offernew','offercancel','exchange'], - 'checked': true - }, - other: { - 'types': ['accountset','failed','rippling'], - 'checked': true - } - }; - - // History states - $scope.$watch('loadState.transactions',function(){ - $scope.historyState = !$scope.loadState.transactions ? 'loading' : 'ready'; - }); - - //$scope.typeUsage = []; - //$scope.currencyUsage = []; - - if (store.get('ripple_history_type_selections')) { - $scope.types = $.extend(true,$scope.types,store.get('ripple_history_type_selections')); - } - - if ($routeParams.f && _.has($scope.types, $routeParams.f)) { - _.each($scope.types, function(value, key) { - value.checked = $routeParams.f == key; - }); - } - - // Filters - if (store.get('ripple_history_filters')) { - $scope.filters = store.get('ripple_history_filters'); - } else { - $scope.filters = { - 'currencies_is_active': false, // we do the currency filter only if this is true, which happens when at least one currency is off - 'currencies': {}, - 'types': ['sent','received','exchange','trusting','trusted','offernew','offercancel','rippling'], - 'minimumAmount': 0.000001 - }; - } - - var getDateRangeHistory = function(dateMin,dateMax,callback) - { - var completed = false; - var history = []; - - var params = { - account: id.account, - ledger_index_min: -1, - limit: 200, - binary: false - }; - - getTx(); - - function getTx() { - network.remote.request_account_tx(params, function(err, data) { - if (!data.transactions.length) { - return callback(history); - } - - for (var i=0;i dateMax.getTime()) { - continue; - } - - // Push - var tx = rewriter.processTxn(data.transactions[i].tx, data.transactions[i].meta, id.account); - if (tx) { - history.push(tx); - } - } - - if (data.marker) { - params.marker = data.marker; - $scope.tx_marker = params.marker; - } else { - // Received all transactions since a marker was not returned - completed = true; - } - - if (completed) { - callback(history); - } else { - getTx(); - } - }); - } - }; - - // DateRange filter form - $scope.submitDateRangeForm = function() { - $scope.dateMaxView.setDate($scope.dateMaxView.getDate() + 1); // Including last date - changeDateRange($scope.dateMinView,$scope.dateMaxView); - }; - - $scope.submitMinimumAmountForm = function() { - updateHistory(); - }; - - var changeDateRange = function(dateMin,dateMax) { - history = []; - $scope.historyState = 'loading'; - - getDateRangeHistory(dateMin,dateMax,function(hist){ - $scope.$apply(function () { - history = hist; - $scope.historyState = 'ready'; - updateHistory(); - }); - }); - }; - - // All the currencies - $scope.$watch('balances', function(){ - updateCurrencies(); - }); - - // Types filter has been changed - $scope.$watch('types', function(){ - var arr = []; - var checked = {}; - _.each($scope.types, function(type,index){ - if (type.checked) { - arr = arr.concat(type.types); - } - - checked[index] = { - checked: !!type.checked - }; - }); - $scope.filters.types = arr; - - if (!store.disabled) { - store.set('ripple_history_type_selections', checked); - } - }, true); - - if (!store.disabled) { - $scope.$watch('filters', function(){ - store.set('ripple_history_filters', $scope.filters); - }, true); - } - - $scope.$watch('filters.types', function(){ - updateHistory(); - }, true); - - // Currency filter has been changed - $scope.$watch('filters.currencies', function(){ - updateCurrencies(); - updateHistory(); - }, true); - - // New transactions - $scope.$watchCollection('history',function(){ - history = $scope.history; - - updateHistory(); - - // Update currencies - if (history.length) - updateCurrencies(); - },true); - - // Updates the history collection - var updateHistory = function (){ - - //$scope.typeUsage = []; - //$scope.currencyUsage = []; - $scope.historyShow = []; - - if (history.length) { - var dateMin, dateMax; - - $scope.minLedger = 0; - - var currencies = _.map($scope.filters.currencies,function(obj,key){return obj.checked ? key : false;}); - history.forEach(function(event) - { - - // Calculate dateMin/dateMax. Used in date filter view - if (!$scope.dateMinView) { - if (!dateMin || dateMin > event.date) - dateMin = event.date; - - if (!dateMax || dateMax < event.date) - dateMax = event.date; - } - - var affectedCurrencies = _.map(event.affectedCurrencies, function (currencyCode) { - return ripple.Currency.from_json(currencyCode).to_human(); - }); - - // Update currencies - historyCurrencies = _.union(historyCurrencies, affectedCurrencies); // TODO put in one large array, then union outside of foreach - - // Calculate min ledger. Used in "load more" - if (!$scope.minLedger || $scope.minLedger > event.ledger_index) - $scope.minLedger = event.ledger_index; - - // Type filter - if (event.transaction && event.transaction.type === 'error') ; // Always show errors - else if (event.transaction && !_.contains($scope.filters.types,event.transaction.type)) - return; - - // Some events don't have transactions.. this is a temporary fix for filtering offers - else if (!event.transaction && !_.contains($scope.filters.types,'offernew')) - return; - - // Currency filter - //if ($scope.filters.currencies_is_active && _.intersection(currencies,event.affectedCurrencies).length <= 0) - // return; - - var effects = []; - var isFundedTrade = false; // Partially/fully funded - var isCancellation = false; - - if (event.effects) { - // Show effects - $.each(event.effects, function(){ - var effect = this; - switch (effect.type) { - case 'offer_funded': - case 'offer_partially_funded': - case 'offer_bought': - isFundedTrade = true; - /* falls through */ - case 'offer_cancelled': - if (effect.type === 'offer_cancelled') { - isCancellation = true; - if (event.transaction && event.transaction.type === 'offercancel') - return; - } - effects.push(effect); - break; - } - }); - - event.showEffects = effects; - - // Trade filter - remove open orders that haven't been filled/partially filled - if (_.contains($scope.filters.types,'exchange') && !_.contains($scope.filters.types,'offercancel')) { - if ((event.transaction && event.transaction.type === 'offernew' && !isFundedTrade) || isCancellation) - return; - } - - effects = [ ]; - - var amount, maxAmount; - var minimumAmount = $scope.filters.minimumAmount; - - // Balance changer effects - $.each(event.effects, function(){ - var effect = this; - switch (effect.type) { - case 'fee': - case 'balance_change': - case 'trust_change_balance': - effects.push(effect); - - // Minimum amount filter - if (effect.type === 'balance_change' || effect.type === 'trust_change_balance') { - amount = effect.amount.abs().is_native() - ? effect.amount.abs().to_number() / 1000000 - : effect.amount.abs().to_number(); - - if (!maxAmount || amount > maxAmount) - maxAmount = amount; - } - break; - } - }); - - // Minimum amount filter - if (maxAmount && minimumAmount > maxAmount) - return; - - event.balanceEffects = effects; - } - - // Don't show sequence update events - if (event.effects && 1 === event.effects.length && event.effects[0].type == 'fee') - return; - - // Push events to history collection - $scope.historyShow.push(event); - - // Type and currency usages - // TODO offers/trusts - //if (event.transaction) - // $scope.typeUsage[event.transaction.type] = $scope.typeUsage[event.transaction.type] ? $scope.typeUsage[event.transaction.type]+1 : 1; - - //event.affectedCurrencies.forEach(function(currency){ - // $scope.currencyUsage[currency] = $scope.currencyUsage[currency]? $scope.currencyUsage[currency]+1 : 1; - //}); - }); - - if ($scope.historyShow.length && !$scope.dateMinView) { - //setValidDateOnScopeOrNullify('dateMinView', dateMin); - //setValidDateOnScopeOrNullify('dateMaxView', dateMax); - } - } - }; - - // Update the currency list - var updateCurrencies = function (){ - if (!$.isEmptyObject($scope.balances)) { - var currencies = _.union( - ['XRP'], - _.map($scope.balances,function(obj,key){return obj.total.currency().to_human();}), - historyCurrencies - ); - - var objCurrencies = {}; - - var firstProcess = $.isEmptyObject($scope.filters.currencies); - - $scope.filters.currencies_is_active = false; - - _.each(currencies, function(currency){ - var checked = ($scope.filters.currencies[currency] && $scope.filters.currencies[currency].checked) || firstProcess; - objCurrencies[currency] = {'checked':checked}; - - if (!checked) - $scope.filters.currencies_is_active = true; - }); - - $scope.filters.currencies = objCurrencies; - } - }; - - var setValidDateOnScopeOrNullify = function(key, value) { - if (isNaN(value) || value == null) { - $scope[key] = null; - } else { - $scope[key] = new Date(value); - } - }; - - $scope.loadMore = function () { - var dateMin = $scope.dateMinView; - var dateMax = $scope.dateMaxView; - - $scope.historyState = 'loading'; - - var limit = 100; // TODO why 100? - - var params = { - account: id.account, - ledger_index_min: -1, - limit: limit, - marker: $scope.tx_marker, - binary: false - }; - - network.remote.request_account_tx(params, function(err, data) { - $scope.$apply(function () { - if (data.transactions.length < limit) { - - } - - $scope.tx_marker = data.marker; - - if (data.transactions) { - var transactions = []; - - data.transactions.forEach(function (e) { - var tx = rewriter.processTxn(e.tx, e.meta, id.account); - if (tx) { - var date = ripple.utils.toTimestamp(tx.date); - - if (dateMin && dateMax) { - if (date < dateMin.getTime() || date > dateMax.getTime()) - return; - } else if (dateMax && date > dateMax.getTime()) { - return; - } else if (dateMin && date < dateMin.getTime()) { - return; - } - transactions.push(tx); - } - }); - - var newHistory = _.uniq(history.concat(transactions),false,function(ev) {return ev.hash;}); - - $scope.historyState = (history.length === newHistory.length) ? 'full' : 'ready'; - history = newHistory; - updateHistory(); - } - }); - }); - }; - - var exists = function(pty) { - return typeof pty !== 'undefined'; - }; - - // Change first letter of string to uppercase or lowercase - var capFirst = function(str, caps) { - var first = str.charAt(0); - return (caps ? first.toUpperCase() : first.toLowerCase()) + str.slice(1); - }; - - var rippleName = function(address) { - var name; - if (address !== '') name = webUtil.isContact($scope.userBlob.data.contacts, address); - return name ? name : address; - }; - - var issuerToString = function(issuer) { - var iss = issuer.to_json(); - return typeof iss === 'number' && isNaN(iss) ? '' : iss; - }; - - // Convert Amount value to human-readable format - var formatAmount = function(amount) { - var formatted = ''; - - if (amount instanceof Amount) { - formatted = amount.to_human({group_sep: false, precision: 2}); - - // If amount is very small and only has zeros (ex. 0.0000), raise precision - if (formatted.length > 1 && 0 === +formatted) { - formatted = amount.to_human({group_sep: false, precision: 20, max_sig_digits: 5}); - } - } - - return formatted; - }; - - $scope.exportCsv = function() { - - // Header (1st line) of CSV with name of each field - // Ensure that the field values for each row added in addLineToCsvToCsv() correspond in this order - var csv = 'Date,Time,Ledger Number,Transaction Type,Trust address,' + - 'Address sent from,Amount sent/sold,Currency sent/sold,Issuer of sent/sold ccy,' + - 'Address sent to,Amount received,Currency received,Issuer of received ccy,' + - 'Executed Price,Network Fee paid,Transaction Hash\r\n'; - - var addLineToCsv = function(line) { - // Ensure that the fields match the CSV header initialized in var csv - csv += [ line.Date, line.Time, line.LedgerNum, line.TransType, line.TrustAddr, - line.FromAddr, line.SentAmount, line.SentCcy, line.SentIssuer, - line.ToAddr, line.RecvAmount, line.RecvCcy, line.RecvIssuer, - line.ExecPrice, line.Fee, line.TransHash - ].join(',') + '\r\n'; - }; - - // Convert the fields of interest in buy & sell Amounts to strings in Key/Value pairs - var getOrderDetails = function(keyVal, buy, sell) { - if (buy !== null && buy instanceof Amount) { - keyVal.SentAmount = formatAmount(buy); - keyVal.SentCcy = buy.currency().get_iso(); - keyVal.SentIssuer = rippleName(issuerToString(buy.issuer())); - } - - if (sell !== null && sell instanceof Amount) { - keyVal.RecvAmount = formatAmount(sell); - keyVal.RecvCcy = sell.currency().get_iso(); - keyVal.RecvIssuer = rippleName(issuerToString(sell.issuer())); - } - }; - - // Construct a CSV string by: - // 1) Iterating over each line item in the *displayed* Transaction History - // 2) If the type of Transaction is in scope, convert the relevant fields to strings in Key/Value pairs - // 3) Concatenate the strings extracted in (2) in a comma-delimited line and append this line to the CSV - for (var i = 0; i < $scope.historyShow.length; i++) { - var histLine = $scope.historyShow[i], - transaction = histLine.transaction, - type = histLine.tx_type, - dateTime = moment(histLine.date), - na = 'NA', - line = {}, - lineTemplate = {}, - lineTrust = {}, - linePayment = {}, - lineOffer = {}, - sent; - - // Unsuccessful transactions are excluded from the export - var transType = exists(transaction) ? transaction.type : null; - if (transType === 'failed' || histLine.tx_result !== 'tesSUCCESS') continue; - - // Fields common to all Transaction types - lineTemplate.Date = dateTime.format('YYYY-MM-DD'); - lineTemplate.Time = dateTime.format('HH:mm:ss'); - lineTemplate.LedgerNum = histLine.ledger_index; - lineTemplate.Fee = formatAmount(Amount.from_json(histLine.fee)); - lineTemplate.TransHash = histLine.hash; - - // Default type-specific fields to NA, they will be overridden later if applicable - lineTemplate.TrustAddr = lineTemplate.FromAddr = lineTemplate.ToAddr = na; - lineTemplate.RecvAmount = lineTemplate.RecvCcy = lineTemplate.ExecPrice = na; - - // Include if Payment, Trust, Offer. Otherwise Exclude. - if (type === 'TrustSet') { - // Trust Line (Incoming / Outgoing) - var trust = ''; - - if (transType === 'trusted') trust = 'Incoming '; - else if (transType === 'trusting') trust = 'Outgoing '; - else continue; // unrecognised trust type - - lineTrust.TransType = trust + 'trust line'; - lineTrust.TrustAddr = rippleName(transaction.counterparty); - - lineTrust.SentAmount = formatAmount(transaction.amount); - lineTrust.SentCcy = transaction.currency; //transaction.amount.currency().get_iso(); - - lineTrust.SentIssuer = lineTrust.RecvIssuer = na; - - line = $.extend({}, lineTemplate, lineTrust); - addLineToCsv(line); - } - else if (type === 'Payment' && transType !== null) { - // Payment (Sent / Received) - if (transType === 'sent') sent = true; - else if (transType === 'received') sent = false; - else continue; // unrecognised payment type - - linePayment.TransType = capFirst(transType, true) + ' ' + capFirst(type, false); - - if (sent) { - // If sent, counterparty is Address To - linePayment.ToAddr = rippleName(transaction.counterparty); - linePayment.FromAddr = rippleName(id.account); - } - else { - // If received, counterparty is Address From - linePayment.FromAddr = rippleName(transaction.counterparty); - linePayment.ToAddr = rippleName(id.account); - } - - if (exists(transaction.amountSent)) { - amtSent = transaction.amountSent; - linePayment.SentAmount = exists(amtSent.value) ? amtSent.value : formatAmount(Amount.from_json(amtSent)); - linePayment.SentCcy = exists(amtSent.currency) ? amtSent.currency : 'XRP'; - if (exists(transaction.sendMax)) linePayment.SentIssuer = rippleName(transaction.sendMax.issuer); - } - - linePayment.RecvAmount = formatAmount(transaction.amount); - linePayment.RecvCcy = transaction.currency; - linePayment.RecvIssuer = rippleName(issuerToString(transaction.amount.issuer())); - - line = $.extend({}, lineTemplate, linePayment); - addLineToCsv(line); - } - else if (type === 'Payment' || type === 'OfferCreate' || type === 'OfferCancel') { - // Offers (Created / Cancelled / Executed) - var effect; - - if (transType === 'offernew') { - getOrderDetails(lineOffer, transaction.gets, transaction.pays); - lineOffer.TransType = 'Offer Created'; - - line = $.extend({}, lineTemplate, lineOffer); - addLineToCsv(line); - } - else if (transType === 'offercancel') { - for (var e = 0; e < histLine.effects.length; e++) { - effect = histLine.effects[e]; - - if (effect.type === 'offer_cancelled') { - getOrderDetails(lineOffer, effect.gets, effect.pays); - lineOffer.TransType = 'Offer Cancelled'; - - line = $.extend({}, lineTemplate, lineOffer); - addLineToCsv(line); - - break; - } - } - } - - for (var s = 0; s < histLine.showEffects.length; s++) { - effect = histLine.showEffects[s], - buy = null, - sell = null; - lineOffer = {}; - - switch (effect.type) { - case 'offer_bought': - case 'offer_funded': - case 'offer_partially_funded': - // Order fills (partial or full) - - if (effect.type === 'offer_bought') { - buy = exists(effect.paid) ? effect.paid : effect.pays; - sell = exists(effect.got) ? effect.got : effect.gets; - } - else { - buy = exists(effect.got) ? effect.got : effect.gets; - sell = exists(effect.paid) ? effect.paid : effect.pays; - } - - getOrderDetails(lineOffer, buy, sell); - lineOffer.TransType = 'Executed offer'; - lineOffer.ExecPrice = formatAmount(effect.price); - - line = $.extend({}, lineTemplate, lineOffer); - if (s > 0) line.Fee = ''; // Fee only applies once - addLineToCsv(line); - - break; // end case - } - } - } - // else unrecognised Transaction type hence ignored - } - - // Ensure that historyCsv is set to empty string if there is nothing to download, - // otherwise the file download will be a single line with header and no data - $scope.historyCsv = $scope.historyShow.length ? csv : ''; - }; - - }]); -}; - -module.exports = HistoryTab; diff --git a/src/js/tabs/jpy.js b/src/js/tabs/jpy.controller.js similarity index 97% rename from src/js/tabs/jpy.js rename to src/js/tabs/jpy.controller.js index 85e566353..2b14397dc 100644 --- a/src/js/tabs/jpy.js +++ b/src/js/tabs/jpy.controller.js @@ -11,11 +11,6 @@ util.inherits(JpyTab, Tab); JpyTab.prototype.tabName = 'jpy'; JpyTab.prototype.mainMenu = 'fund'; -JpyTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/jpy.jade')(); -}; - JpyTab.prototype.angular = function (module) { module.controller('JpyCtrl', ['$scope', 'rpId', 'rpAppManager', 'rpTracker', '$routeParams', 'rpKeychain', 'rpNetwork', '$timeout', diff --git a/src/js/tabs/kyc.js b/src/js/tabs/kyc.js deleted file mode 100644 index 5ff3e749b..000000000 --- a/src/js/tabs/kyc.js +++ /dev/null @@ -1,327 +0,0 @@ -var util = require('util'), - webutil = require('../util/web'); -var Tab = require('../client/tab').Tab; - -var KycTab = function () -{ - Tab.call(this); -}; - -util.inherits(KycTab, Tab); - -KycTab.prototype.tabName = 'kyc'; -KycTab.prototype.mainMenu = 'kyc'; - -KycTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/kyc.jade')(); -}; - -KycTab.prototype.angular = function(module) -{ - module.controller('KycCtrl', ['$scope', 'rpId', 'rpKeychain', 'rpAuthFlow', '$timeout', - function ($scope, id, keychain, authflow, $timeout) - { - if (!$scope.blockscoreError) $scope.blockscoreError = false; - if (!$scope.profile) $scope.profile = {}; - if (!$scope.profileStatus) $scope.profileStatus = 'loading'; - if (!$scope.identityStatus) $scope.identityStatus = 'loading'; - if (!$scope.identityLoading) $scope.identityLoading = false; - if (!$scope.questionsLoading) $scope.questionsLoading = false; - - $scope.load_notification('loading'); - - $scope.$on('$blobUpdate', onBlobUpdate); - onBlobUpdate(); - - function onBlobUpdate() - { - if ("function" === typeof $scope.userBlob.encrypt) { - $scope.enc = $scope.userBlob.encrypt(); - } - - $scope.requirePassword = !$scope.userBlob.data.persistUnlock; - - if (!$scope.loaded2FA && "function" === typeof $scope.userBlob.get2FA) { - $scope.userBlob.get2FA(function(err, resp) { - $scope.$apply(function(){ - if (err) { - console.log('Error: ', err); - return; - } - - $scope.enabled2FA = resp.enabled; - $scope.phoneNumber = resp.phone; - $scope.countryCode = resp.country_code; - }); - }); - } - - // Check what step user is on - they may have partially gone through KYC flow - if ($scope.userBlob.id) { - - $scope.options = { - url : $scope.userBlob.url, - auth_secret : $scope.userBlob.data.auth_secret, - blob_id : $scope.userBlob.id - }; - - authflow.getAttestationSummary($scope.options, function(err, resp) { - - if (err) { - console.log('Error on getAttestationSummary'); - return; - } - - if (resp.decoded.payload.profile_verified === true && resp.decoded.payload.identity_verified === true) { - $scope.currentStep = 'three'; - $scope.profileStatus = 'complete'; - $scope.identityStatus = 'complete'; - } - - else if (resp.decoded.payload.profile_verified === true && resp.decoded.payload.identity_verified === false) { - - $scope.profileStatus = 'complete'; - $scope.identityStatus = 'incomplete'; - - $scope.options.type = 'identity'; - $scope.getQuestions($scope.options, function() { - $scope.currentStep = 'two'; - }); - } - - else if (resp.decoded.payload.profile_verified === false && resp.decoded.payload.identity_verified === false) { - $scope.currentStep = 'one'; - $scope.profileStatus = 'incomplete'; - $scope.identityStatus = 'incomplete'; - } - - else { - console.log('Error: KYC flow route not recognized'); - } - - $scope.load_notification('clear'); - }); - } - } - - - // STEP ONE: IDENTITY INFORMATION - - // $scope.validation_pattern_name = /^[a-zA-Z0-9]{1,}$/; - $scope.validation_pattern_month = /^[a-zA-Z][a-zA-Z][a-zA-Z]$/; - $scope.validation_pattern_date = /^(0[1-9]|[12]\d|3[0-1])$/; - $scope.validation_pattern_year = /^[1-2][0-9][0-9][0-9]$/; - $scope.validation_pattern_city = /^[a-zA-Z]+(?:[\s][a-zA-Z]+)*$/; - $scope.validation_pattern_state = /^[a-zA-Z][a-zA-Z]$/; - $scope.validation_pattern_zip = /(^\d{5}$)|(^\d{5}-\d{4}$)/; - $scope.validation_pattern_sss = /^[0-9]{4}$/; - $scope.validation_pattern_phone = /^[0-9]*$/; - - var genNum = function(start, end) { - var arr = []; - for (var i = start; i <= end; i++) { - arr.push('' + i); - } - return arr; - }; - - var currentYear = new Date().getFullYear(); - - $scope.years = genNum(currentYear - 100, currentYear); - - $scope.dates = - ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', - '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', - '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31']; - - $scope.months = - ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; - - $scope.states = - ['AK', 'AL', 'AR', 'AS', 'AZ', 'CA', 'CO', 'CT', 'DC', 'DE', 'FL', 'GA', - 'GU', 'HI', 'IA', 'ID', 'IL', 'IN', 'KS', 'LA', 'MA', 'MD', 'ME', 'MH', - 'MI', 'MN', 'MO', 'MS', 'MT', 'NC', 'ND', 'NE', 'NH', 'NJ', 'NM', 'NV', - 'NY', 'OH', 'OK', 'OR', 'PA', 'PW', 'RI', 'SC', 'SD', 'TN', 'UT', 'VA', - 'VI', 'VT', 'WA', 'WI', 'WV', 'WY']; - - $scope.saveIdentityInfo = function () { - $scope.identityLoading = true; - webutil.scrollToTop(); - - $scope.load_notification('verifying'); - - // Parse month correctly - $scope.profile.birthdate.month_parsed = $scope.profile.birthdate.month.toLowerCase(); - - switch($scope.profile.birthdate.month_parsed) { - case 'jan': - $scope.profile.birthdate.month_parsed = '01'; - break; - case 'feb': - $scope.profile.birthdate.month_parsed = '02'; - break; - case 'mar': - $scope.profile.birthdate.month_parsed = '03'; - break; - case 'apr': - $scope.profile.birthdate.month_parsed = '04'; - break; - case 'may': - $scope.profile.birthdate.month_parsed = '05'; - break; - case 'jun': - $scope.profile.birthdate.month_parsed = '06'; - break; - case 'jul': - $scope.profile.birthdate.month_parsed = '07'; - break; - case 'aug': - $scope.profile.birthdate.month_parsed = '08'; - break; - case 'sep': - $scope.profile.birthdate.month_parsed = '09'; - break; - case 'oct': - $scope.profile.birthdate.month_parsed = '10'; - break; - case 'nov': - $scope.profile.birthdate.month_parsed = '11'; - break; - case 'dec': - $scope.profile.birthdate.month_parsed = '12'; - break; - } - - var parsedBirthdate = ''.concat($scope.profile.birthdate.year) - .concat('-') - .concat($scope.profile.birthdate.month_parsed) - .concat('-') - .concat($scope.profile.birthdate.date); - - // US only for now - $scope.profile.address.country = 'US'; - - $scope.options.type = 'profile'; - - $scope.options.profile = { - name : { - given : $scope.profile.name.given, - family : $scope.profile.name.family - }, - ssn_last_4 : $scope.profile.ssn_last_4, - birthdate : parsedBirthdate, - address : { - line1 : $scope.profile.address.line1, - locality : $scope.profile.address.locality, - region : $scope.profile.address.region, - postal_code : $scope.profile.address.postal_code, - country : $scope.profile.address.country - } - }; - - authflow.updateAttestation($scope.options, function(err, res) { - if (err) { - console.log("Error in saveIdentityInfo: ", err); - $scope.load_notification('info_error'); - if ($scope.identityForm) $scope.identityForm.$setPristine(true); - $scope.identityLoading = false; - return; - } - - if (res.status === "unverified") { - $scope.load_notification('info_error'); - if ($scope.identityForm) $scope.identityForm.$setPristine(true); - } else { - $scope.load_notification('info_verified'); - $scope.options.type = 'identity'; - - // Retrieve questions from BlockScore after successfully identifying user - $scope.getQuestions($scope.options, function() { - $scope.currentStep = 'two'; - }); - } - - $scope.identityLoading = false; - }); - }; - - // STEP TWO: IDENTITY QUESTIONS - - $scope.getQuestions = function(options, cb) { - - authflow.updateAttestation(options, function(err, res) { - if (err) { - console.log("Error in retrieving questions: ", err); - if (err.message === "attestation error: Max attempts exceeded. Try again in 24 hours.") { - $scope.load_notification('max_attempts_questions_error'); - return; - } else { - $scope.blockscoreError = true; - return; - } - } else { - console.log('response is: ', res); - $scope.questions = res.questions; - if ($scope.questions.length === 0) { - $scope.load_notification('contact_support'); - return; - } - } - - cb(); - }); - }; - - - $scope.saveQuestions = function() { - $scope.questionsLoading = true; - webutil.scrollToTop(); - - $scope.load_notification('verifying'); - - $scope.options.answers = []; - $scope.options.type = 'identity'; - - _.each($scope.questions, function(question) { - $scope.options.answers.push({ question_id : question.id, answer_id : Number(question.answerId) }); - }); - - - authflow.updateAttestation($scope.options, function(err, res) { - if (err) { - console.log("Error in saveQuestions: ", err); - if (err.message === "attestation error: Max attempts exceeded. Try again in 24 hours.") { - $scope.load_notification('max_attempts_questions_error'); - $scope.questionsLoading = false; - return; - } else { - $scope.load_notification('questions_error'); - if ($scope.identityForm) $scope.identityForm.$setPristine(true); - $scope.questionsLoading = false; - return; - } - - } - - if (res.status === "unverified") { - $scope.load_notification('questions_error'); - if ($scope.questionsForm) $scope.questionsForm.$setPristine(true); - } else { - $scope.load_notification('questions_verified'); - $scope.currentStep = 'three'; - } - - $scope.questionsLoading = false; - }); - }; - - // STEP THREE: TWO-FACTOR AUTH - // TODO: Merge twofa.js and kyc.js - // Look at twofa.js - - }] - ); -}; - -module.exports = KycTab; diff --git a/src/js/tabs/login.controller.js b/src/js/tabs/login.controller.js new file mode 100644 index 000000000..547d629e9 --- /dev/null +++ b/src/js/tabs/login.controller.js @@ -0,0 +1,79 @@ +'use strict'; + +var util = require('util'); +var Tab = require('../client/tab').Tab; + +var LoginTab = function() { + Tab.call(this); +}; + +util.inherits(LoginTab, Tab); + +LoginTab.prototype.tabName = 'login'; +LoginTab.prototype.pageMode = 'single'; +LoginTab.prototype.parent = 'main'; + +LoginTab.prototype.extraRoutes = [ + {name: '/login/:callback'} +]; + +LoginTab.prototype.angular = function(module) { + module.controller('LoginCtrl', ['$scope', '$location', '$sce', 'rpTracker', 'rpId', + function($scope, $location, $sce, rpTracker, id) { + + $scope.error = ''; + $scope.loggingIn = false; + $scope.redirectTo = $location.path(); + $scope.backendMessages = []; + $scope.authAction = $sce.trustAsResourceUrl(Options.backend_url + '/auth/login'); + + if (id.loginStatus) { + $location.path('/balance'); + return; + } + + function loginCallback(err) { + $scope.loggingIn = false; + $scope.status = ''; + + if (err) { + $scope.status = 'Login failed:'; + + if (err.name !== 'BlobError') { + $scope.backendMessages.push(err.message); + } + + if (!$scope.$$phase) { + $scope.$apply(); + } + + return; + } + + if ($location.search().redirect_to) { + $location.path($location.search().redirect_to).search(''); + } else { + $location.path('/balance').search(''); + } + + rpTracker.track('Login', { + 'Status': 'success' + }); + } + + $scope.submitForm = function(authAction) { + $scope.redirectTo = $location.path(); + $scope.authAction = $sce.trustAsResourceUrl(Options.backend_url + '/auth/' + authAction); + }; + + // if ($routeParams.callback === 'callback' && $routeParams.token ) { + if ($location.path() === '/login/callback' && $location.search().token) { + $scope.loggingIn = true; + id.login($location.search().token, loginCallback); + } + + }] + ); +}; + +module.exports = LoginTab; diff --git a/src/js/tabs/login.js b/src/js/tabs/login.js deleted file mode 100644 index fc56cd2d5..000000000 --- a/src/js/tabs/login.js +++ /dev/null @@ -1,278 +0,0 @@ -var util = require('util'); -var Tab = require('../client/tab').Tab; - -var LoginTab = function () -{ - Tab.call(this); -}; - -util.inherits(LoginTab, Tab); - -LoginTab.prototype.tabName = 'login'; -LoginTab.prototype.pageMode = 'single'; -LoginTab.prototype.parent = 'main'; - -LoginTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/login.jade')(); -}; - -LoginTab.prototype.angular = function (module) { - module.controller('LoginCtrl', ['$scope', '$element', '$routeParams', - '$location', 'rpId', '$rootScope', - 'rpPopup', '$timeout', 'rpTracker', 'rpAuthFlow', - function ($scope, $element, $routeParams, - $location, id, $rootScope, - popup, $timeout, rpTracker, authflow) - { - $scope.attempts = 0; - $scope.error = ''; - $scope.password = ''; - $scope.token = ''; - $scope.showRecover = false; - $scope.rememberMe = true; - - $scope.loginForm && $scope.loginForm.$setPristine(true); - $scope.backendMessages = []; - - if (id.loginStatus) { - $location.path('/balance'); - return; - } - - $scope.goto_recover = function() { - if($scope.username){ - $location.path('/recover/' + $scope.username); - } - else { - $location.path('/recover'); - } - }; - - //set username and password here so - //that the form will be valid if we are - //only verifying via 2FA - if ($scope.twoFactor && $scope.twoFactor.tokenError) { - $scope.backendMessages.push({'backend': "2FA", 'message': $scope.twoFactor.tokenError.message}); - } - - // Autofill fix - $timeout(function(){ - $scope.$apply(function () { - $scope.username = $element.find('input[name="login_username"]').val(); - $scope.password = $element.find('input[name="login_password"]').val(); - }); - }, 1000); - -// $rootScope.$on("$blobError", function (e, err) { -// console.log("BLOB ERROR", arguments); -// $scope.backendMessages.push({'backend': err.backend, 'message': err.message}); -// }); - - var updateFormFields = function(){ - var username; - var password; - - // There are multiple login forms due to the Ripple URI login feature. - // But only one of them should be visible and that's the one we want. - username = $element.find('input[name="login_username"]:visible').eq(0).val(); - password = $element.find('input[name="login_password"]:visible').eq(0).val(); - - if ("string" === typeof username) { - $scope.loginForm.login_username.$setViewValue(username); - } - if ("string" === typeof password) { - $scope.loginForm.login_password.$setViewValue(password); - } - }; - - // Issues #1024, #1060 - $scope.$watch('username',function(){ - $rootScope.username = $scope.username; - $timeout(function(){ - $scope.$apply(function () { - updateFormFields(); - }); - }, 50); - }); - - // Ok, now try to remove this line and then go write "a" for wallet name, and "a" for passphrase. - // "Open wallet" is still disabled hah? no worries, just enter anything else and it will be activated. - // Probably this is an AngularJS issue. Had no time to check it yet. - $scope.$watch('password'); - - $scope.submitForm = function() - { - if ($scope.ajax_loading) return; - - $scope.backendMessages = []; - - //submitting a verification code - if ($scope.twoFactor) { - var options = { - url : $scope.twoFactor.blob_url, - id : $scope.twoFactor.blob_id, - device_id : $scope.twoFactor.device_id, - token : $scope.token, - remember_me : $scope.rememberMe - }; - - id.verifyToken(options, function(err, resp) { - $scope.ajax_loading = false; - - if (err) { - $scope.status = 'Verification Falied:'; - $scope.backendMessages.push({'backend': "2FA", 'message': err.message}); - - } else { - var username = (""+$scope.username).trim(); - var keys = { - id : $scope.twoFactor.blob_id, - crypt : $scope.twoFactor.blob_key - }; - - //save credentials for login - id.storeLoginKeys($scope.twoFactor.blob_url, username, keys); - id.setUsername(username); - id.setDeviceID(username, $scope.twoFactor.device_id); - setImmediate(login); - } - }); - - $scope.ajax_loading = true; - $scope.error = ''; - $scope.status = 'verifiying...'; - return; - } - - // Issue #36: Password managers may change the form values without - // triggering the events Angular.js listens for. So we simply force - // an update of Angular's model when the form is submitted. - updateFormFields(); - - setImmediate(login); - - $scope.ajax_loading = true; - $scope.error = ''; - $scope.status = 'Logging in...'; - }; - - //initiate the login - function login () { - if ($scope.twoFactor) { - id.relogin(loginCallback); - - } else { - id.login({ - username : $scope.username, - password : $scope.password - }, loginCallback); - } - } - $scope.$on('$idRemoteLogin', function(){ - id.relogin(loginCallback); - }); - - //handle the login results - function loginCallback (err, blob) { - - $scope.ajax_loading = false; - - //blob has 2FA enabled - if (err && err.twofactor) { - if (err.twofactor.tokenError) { - $scope.status = 'Request token:'; - $scope.backendMessages.push({'backend': "2FA", 'message': err.twofactor.tokenError.message}); - return; - } - - $scope.twoFactor = err.twofactor; - $scope.twoFactor.via = '';//TODO remove this from blob response - $scope.status = ''; - $scope.maskedPhone = err.twofactor.masked_phone; - - //TODO: different display if 'ignored' is set, - //meaning the user has the app - if (err.twofactor.tokenResponse) { - $scope.twoFactor.via = err.twofactor.tokenResponse.via; - } - - return; - - //login failed for a different reason - } else if (err) { - if (++$scope.attempts>2) { - $scope.showRecover = true; - } - - $scope.status = 'Login failed:'; - - if (err.name === "OldBlobError") { - popup.confirm("Wallet Upgrade", "Ripple is upgrading the wallet encryption format. After the upgrade, only Ripple clients 0.2.24 or higher can access your wallet.

If you use other clients, please make sure they are upgraded to the current version.", - "OK", "migrateConfirm()", null, - "Abort login", null, null, - $scope, {}); - - $scope.migrateConfirm = function () { - id.allowOldBlob = true; - $scope.submitForm(); - }; - } - - if (err.name !== "BlobError") { - $scope.backendMessages.push({'backend': "ID", 'message': err.message}); - } - - if (!$scope.$$phase) { - $scope.$apply(); - } - return; - } - - rpTracker.track('Login', { - 'Status': 'success' - }); - - $scope.status = ''; - location.hash = '/balance'; - if ($routeParams.tab) { - $location.path('/'+$routeParams.tab); - } - } - - $scope.requestToken = function() { - var force = $scope.twoFactor.via == 'app' ? true : false; - $scope.status = 'requesting token...'; - authflow.requestToken($scope.twoFactor.blob_url, $scope.twoFactor.blob_id, force, function(tokenError, tokenResp) { - if (tokenError) { - $scope.status = 'token request failed...'; - $scope.backendMessages.push({'backend': "2FA", 'message': tokenError.message}); - } else { - $scope.status = 'token resent!'; - } - }); - }; - - $scope.cancel2FA = function() { - $scope.twoFactor = null; - $scope.status = null; - }; - }]); - - /** - * Focus on username input only if it's empty. Otherwise focus on password field - * This directive will not be used anywhere else, that's why it's here. - */ - module.directive('rpFocusOnEmpty', ['$timeout', function($timeout) { - return function($scope, element) { - $timeout(function(){ - $scope.$watch(function () {return element.is(':visible');}, function(newValue) { - if (newValue === true && !element.val()) - element.focus(); - }); - }, 200); - }; - }]); -}; - -module.exports = LoginTab; \ No newline at end of file diff --git a/src/js/tabs/logout.controller.js b/src/js/tabs/logout.controller.js new file mode 100644 index 000000000..a20c6017d --- /dev/null +++ b/src/js/tabs/logout.controller.js @@ -0,0 +1,26 @@ +'use strict'; + +var util = require('util'); +var Tab = require('../client/tab').Tab; + +var LogoutTab = function() { + Tab.call(this); +}; + +util.inherits(LogoutTab, Tab); + +LogoutTab.prototype.tabName = 'logout'; +LogoutTab.prototype.pageMode = 'single'; +LogoutTab.prototype.parent = 'main'; + +LogoutTab.prototype.angular = function(module) { + module.controller('LogoutCtrl', ['$scope', '$location', + function($scope, $location) { + var redirect_to = $location.search().redirect_to ? decodeURI($location.search().redirect_to) : null; + + $scope.logout(redirect_to); + }] + ); +}; + +module.exports = LogoutTab; diff --git a/src/js/tabs/migrate.js b/src/js/tabs/migrate.js deleted file mode 100644 index 56af4d604..000000000 --- a/src/js/tabs/migrate.js +++ /dev/null @@ -1,125 +0,0 @@ -var util = require('util'); -var Tab = require('../client/tab').Tab; - -var MigrateTab = function () -{ - Tab.call(this); -}; - -util.inherits(MigrateTab, Tab); - -MigrateTab.prototype.tabName = 'migrate'; -MigrateTab.prototype.pageMode = 'single'; -MigrateTab.prototype.parent = 'main'; - -MigrateTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/migrate.jade')(); -}; - -MigrateTab.prototype.angular = function (module) { - module.controller('MigrateCtrl', ['$scope', '$element', '$routeParams', - '$location', 'rpId', '$rootScope', - 'rpPopup', '$timeout', 'rpTracker', 'rpAuthFlow', - function ($scope, $element, $routeParams, - $location, id, $rootScope, - popup, $timeout, rpTracker, authflow) - { - - $scope.attempts = 0; - $scope.error = ''; - $scope.password = ''; - $scope.backendMessages = []; - - if (id.loginStatus) { - $location.path('/balance'); - return; - } - - $scope.submitForm = function() - { - if ($scope.ajax_loading) return; - - $scope.backendMessages = []; - - login(); - - $scope.ajax_loading = true; - $scope.error = ''; - $scope.status = 'Logging in...'; - }; - - //initiate the login - function login () { - id.oldLogin({ - username: $scope.username, - password: $scope.password - }, loginCallback); - } - - //handle the login results - function loginCallback (err, blob) { - - $scope.ajax_loading = false; - - if (err) { - // TODO move to template - $scope.status = "Migrate failed:"; - $scope.error = "This username/passphrase combination doesn't exist in ripple.com/client. Please try again."; - - if (err.name === "OldBlobError") { - popup.confirm("Wallet Upgrade", "Ripple is upgrading the wallet encryption format. After the upgrade, only Ripple clients 0.2.24 or higher can access your wallet.

If you use other clients, please make sure they are upgraded to the current version.", - "OK", "migrateConfirm()", null, - "Abort login", null, null, - $scope, {}); - - $scope.migrateConfirm = function () { - id.allowOldBlob = true; - $scope.submitForm(); - }; - } - - if (err.name !== "BlobError") { - $scope.backendMessages.push({'backend': "ID", 'message': err.message}); - } - - if (!$scope.$$phase) { - $scope.$apply(); - } - return; - } - - $scope.error = ''; - $scope.status = ''; - if ($routeParams.tab) { - $location.path('/'+$routeParams.tab); - } else { - if ($rootScope.verifyStatus) { - $rootScope.verifyStatus = ''; - $location.path('/fund'); - } - else { - $location.path('/balance'); - } - } - } - - }]); - - /** - * Focus on username input only if it's empty. Otherwise focus on password field - * This directive will not be used anywhere else, that's why it's here. - */ - module.directive('rpFocusOnEmpty', ['$timeout', function($timeout) { - return function($scope, element) { - $timeout(function(){ - $scope.$watch(function () {return element.is(':visible');}, function(newValue) { - if (newValue === true && !element.val()) - element.focus(); - }); - }, 200); - }; - }]); -}; - -module.exports = MigrateTab; diff --git a/src/js/tabs/mxn.js b/src/js/tabs/mxn.controller.js similarity index 97% rename from src/js/tabs/mxn.js rename to src/js/tabs/mxn.controller.js index 189b134f0..986c5f779 100644 --- a/src/js/tabs/mxn.js +++ b/src/js/tabs/mxn.controller.js @@ -11,11 +11,6 @@ util.inherits(MxnTab, Tab); MxnTab.prototype.tabName = 'mxn'; MxnTab.prototype.mainMenu = 'fund'; -MxnTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/mxn.jade')(); -}; - MxnTab.prototype.angular = function (module) { module.controller('MxnCtrl', ['$scope', 'rpId', 'rpAppManager', 'rpTracker', '$routeParams', 'rpKeychain', 'rpNetwork', '$timeout', diff --git a/src/js/tabs/notifications.controller.js b/src/js/tabs/notifications.controller.js new file mode 100644 index 000000000..2f1a4bc48 --- /dev/null +++ b/src/js/tabs/notifications.controller.js @@ -0,0 +1,140 @@ +'use strict'; + +var util = require('util'); +var Tab = require('../client/tab').Tab; + +var NotificationsTab = function() { + Tab.call(this); +}; + +util.inherits(NotificationsTab, Tab); + +NotificationsTab.prototype.tabName = 'notifications'; +NotificationsTab.prototype.mainMenu = 'notifications'; + +NotificationsTab.prototype.angular = function(module) { + module.controller('NotificationsCtrl', ['$scope', '$window', 'rpId', 'rpNotifications', function($scope, $window, $id, $notifications) { + if (!$id.loginStatus) { + return $id.goId(); + } + + $scope.settingsPage = 'notifications'; + $scope.subscription = {}; + $scope.state = {}; + $scope.state.notificationsChanged = false; + $scope.state.waitingForResponse = false; + $scope.state.alert = ''; + + $scope.notificationTypes = [ + {name: 'sent', title: 'Sent money', correspondingTypes: ['sent'], checked: {email: false, push: false}}, + {name: 'received', title: 'Received money', correspondingTypes: ['received'], checked: {email: false, push: false}}, + {name: 'exchange', title: 'Simple trade executed', correspondingTypes: ['exchange'], checked: {email: false, push: false}}, + {name: 'offernew', title: 'Offer created', correspondingTypes: ['offernew'], checked: {email: false, push: false}}, + {name: 'offer_funded', title: 'Trade executed', correspondingTypes: ['offer_funded', 'offer_partially_funded'], checked: {email: false, push: false}}, + {name: 'trusting', title: 'Gateway added', correspondingTypes: ['trusting'], checked: {email: false, push: false}} + ]; + + $scope.$watch('userBlob.data.email', + function inputLoaded() { + // Sometimes due to watcher initialization listener is called when the watch expression isn't changed, + // so it should be checked. See $watch documentation + if (null == $scope.address || null == $scope.userBlob.data.email || null == $scope.userCredentials.username) { + return; + } + + $notifications.getSubscription().success(function(data) { + + $scope.subscription = data; + + if (data.email || data.push) { + _.invoke($scope.notificationTypes, function() { + var intersection; + + intersection = _.intersection(this.correspondingTypes, data.email); + this.checked.email = false; + if (intersection.length > 0) { + this.checked.email = true; + } + + intersection = _.intersection(this.correspondingTypes, data.push); + this.checked.push = false; + if (intersection.length > 0) { + this.checked.push = true; + } + }); + } + }); + } + ); + + $scope.persistNotifications = function() { + $scope.state.waitingForResponse = true; + $scope.state.alert = ''; + + $scope.subscription = {email: [], push: []}; + + _.each($scope.notificationTypes, function(nType) { + if (nType.checked.email) { + _.each(nType.correspondingTypes, function(cType) { + $scope.subscription.email.push(cType); + }); + } + + if (nType.checked.push) { + _.each(nType.correspondingTypes, function(cType) { + $scope.subscription.push.push(cType); + }); + } + }); + + $notifications.updateSubscription($scope.subscription) + .success(function() { + $scope.state.waitingForResponse = false; + $scope.state.alert = 'saved_successfully'; + $scope.state.notificationsChanged = false; + }) + .error(function() { + $scope.state.waitingForResponse = false; + $scope.state.alert = 'saved_with_errors'; + }); + + // Prompt to send roost push notifications + $window._roost.push(['alias', $scope.userBlob.data.email]); + $window._roost.prompt(); + }; + + $scope.allChecked = function(notificationCategory) { + var checkCount = 0; + + if ('push' !== notificationCategory) { + notificationCategory = 'email'; + } + + _.each($scope.notificationTypes, function(nType) { + if (nType.checked[notificationCategory]) { + checkCount++; + } + }); + + return checkCount === $scope.notificationTypes.length; + }; + + $scope.allClicked = function(notificationCategory) { + if ('push' !== notificationCategory) { + notificationCategory = 'email'; + } + + var newValue = !$scope.allChecked(notificationCategory); + + _.each($scope.notificationTypes, function(nType) { + if (nType.checked[notificationCategory] !== newValue) { + $scope.state.notificationsChanged = true; + } + + nType.checked[notificationCategory] = newValue; + }); + }; + }]); +}; + +module.exports = NotificationsTab; diff --git a/src/js/tabs/nzd.js b/src/js/tabs/nzd.js deleted file mode 100644 index eb49b5ff5..000000000 --- a/src/js/tabs/nzd.js +++ /dev/null @@ -1,139 +0,0 @@ -var util = require('util'), - Tab = require('../client/tab').Tab; - -var NzdTab = function() { - Tab.call(this); -}; - -util.inherits(NzdTab, Tab); - -NzdTab.prototype.tabName = 'nzd'; -NzdTab.prototype.mainMenu = 'fund'; - -NzdTab.prototype.generateHtml = function() { - return require('../../jade/tabs/nzd.jade')(); -}; - -NzdTab.prototype.angular = function(module) { - module.controller('NzdCtrl', ['$scope', 'rpId', 'rpAppManager', 'rpTracker', '$routeParams', 'rpKeychain', 'rpNetwork', '$timeout', - function($scope, id, appManager, rpTracker, $routeParams, keychain, $network, $timeout) - { - $scope.toggle_instructions = function() { - $scope.showInstructions = !$scope.showInstructions; - }; - $scope.save_account = function() { - $scope.loading = true; - - var amount = ripple.Amount.from_human( - Options.gateway_max_limit + ' ' + 'NZD', { - reference_date: new Date(+new Date() + 5 * 60000) - } - ); - - amount.set_issuer('rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc'); - - if (!amount.is_valid()) { - // Invalid amount. Indicates a bug in one of the validators. - console.log('Invalid amount'); - return; - } - - var tx = $network.remote.transaction(); - - // Add memo to tx - tx.addMemo('client', 'rt' + $scope.version); - - // Flags - tx - .rippleLineSet(id.account, amount) - .setFlags('NoRipple') - .on('proposed', function(res) { - $scope.$apply(function() { - setEngineStatus(res, false); - }); - }) - .on('success', function(res) { - $scope.$apply(function() { - setEngineStatus(res, true); - $scope.loading = false; - $scope.editing = false; - }); - }) - .on('error', function(res) { - setEngineStatus(res, false); - console.log('error', res); - setImmediate(function() { - $scope.$apply(function() { - $scope.mode = 'error'; - - $scope.loading = false; - $scope.editing = false; - }); - }); - }); - - function setEngineStatus(res, accepted) { - $scope.engine_result = res.engine_result; - $scope.engine_result_message = res.engine_result_message; - $scope.engine_status_accepted = accepted; - - switch (res.engine_result.slice(0, 3)) { - case 'tes': - $scope.tx_result = accepted ? 'cleared' : 'pending'; - break; - case 'tem': - $scope.tx_result = 'malformed'; - break; - case 'ter': - $scope.tx_result = 'failed'; - break; - case 'tec': - $scope.tx_result = 'failed'; - break; - case 'tel': - $scope.tx_result = 'local'; - break; - case 'tep': - console.warn('Unhandled engine status encountered!'); - } - if ($scope.tx_result == 'cleared') { - $scope.nzdConnected = true; - $scope.showInstructions = true; - } - console.log($scope.tx_result); - } - - keychain.requestSecret(id.account, id.username, function(err, secret) { - // XXX Error handling - if (err) { - $scope.loading = false; - console.log(err); - return; - } - $scope.mode = 'granting'; - tx.secret(secret); - tx.submit(); - }); - }; - $scope.$watch('lines', function() { - if ($scope.lines.rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBcNZD) { - $scope.nzdConnected = true; - } else { - $scope.nzdConnected = false; - } - }, true); - - // User should be notified if the reserve is insufficient to add a gateway - $scope.$watch('account', function() { - $scope.can_add_trust = false; - if ($scope.account.Balance && $scope.account.reserve_to_add_trust) { - if (!$scope.account.reserve_to_add_trust.subtract($scope.account.Balance).is_positive() || $.isEmptyObject($scope.lines)) { - $scope.can_add_trust = true; - } - } - }, true); - } - ]); -}; - -module.exports = NzdTab; diff --git a/src/js/tabs/privacypolicy.js b/src/js/tabs/privacypolicy.controller.js similarity index 82% rename from src/js/tabs/privacypolicy.js rename to src/js/tabs/privacypolicy.controller.js index 52c3e38d2..781474526 100644 --- a/src/js/tabs/privacypolicy.js +++ b/src/js/tabs/privacypolicy.controller.js @@ -12,11 +12,6 @@ PrivacypolicyTab.prototype.tabName = 'privacypolicy'; PrivacypolicyTab.prototype.pageMode = 'single'; PrivacypolicyTab.prototype.parent = 'main'; -PrivacypolicyTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/privacypolicy.jade')(); -}; - PrivacypolicyTab.prototype.angular = function (module) { module.controller('PrivacypolicyCtrl', ['$scope', '$element', function ($scope, $element) diff --git a/src/js/tabs/recover.js b/src/js/tabs/recover.js deleted file mode 100644 index bcd6a758f..000000000 --- a/src/js/tabs/recover.js +++ /dev/null @@ -1,120 +0,0 @@ -var util = require('util'); -var Tab = require('../client/tab').Tab; - -var RecoverTab = function () -{ - Tab.call(this); -}; - -util.inherits(RecoverTab, Tab); - -RecoverTab.prototype.tabName = 'recover'; -RecoverTab.prototype.pageMode = 'single'; -RecoverTab.prototype.parent = 'main'; - -RecoverTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/recover.jade')(); -}; - -RecoverTab.prototype.extraRoutes = [ - { name: '/recover/:username' } -]; - -RecoverTab.prototype.angular = function (module) { - module.controller('RecoverCtrl', ['$scope', '$element', '$routeParams', - '$location', 'rpId', '$rootScope', - 'rpPopup', '$timeout', 'rpTracker', 'rpAuthFlow', - function ($scope, $element, $routeParams, - $location, id, $rootScope, - popup, $timeout, rpTracker, authflow) { - - /** - * User is already logged in - */ - if (id.loginStatus) { - $location.path('/balance'); - return; - } - - var recoveredBlob; - - $scope.username = $routeParams.username; - $scope.masterkey = ''; - $scope.mode = 'recover'; - $scope.submitLoading = false; - $scope.passwordSet = {}; - $scope.password1 = ''; - $scope.password2 = ''; - $scope.recoverError = null; - $scope.passwordError = null; - - $scope.submitForm = function() { - - // Disable submit button - $scope.submitLoading = true; - - if ($scope.mode === 'recover') { - authflow.recoverBlob($scope.username, $scope.masterkey, function (err, blob){ - $scope.submitLoading = false; - - if (err) { - rpTracker.track('Recover Blob', { - 'Status': 'error', - 'Message': err.message - }); - - var message = err.message || err; - if (err.message == 'Invalid ECDSA signature') { - message = 'Please check your secret key '; - } - - $scope.recoverError = message; - return; - } - - rpTracker.track('Recover Blob', { - result: 'success' - }); - - recoveredBlob = blob; - $scope.username = blob.username; - $scope.mode = 'setPassword'; - $scope.recoverError = null; //clear any existing errors - }); - - } else if ($scope.mode === 'setPassword') { - - var options = { - username : $scope.username, - password : $scope.password1, - masterkey : $scope.masterkey, - blob : recoveredBlob - }; - - id.changePassword(options, function(err, resp) { - $scope.submitLoading = false; - - if (err) { - rpTracker.track('Change Password', { - 'Status': 'error', - 'Message': err.message - }); - - $scope.passwordError = err.message || err; - return; - } - - rpTracker.track('Change Password', { - result: 'success' - }); - - $rootScope.recovered = true; - $location.path('/balance'); - }); - } - }; - }]); -}; - -module.exports = RecoverTab; diff --git a/src/js/tabs/register.js b/src/js/tabs/register.js deleted file mode 100644 index 368ac65e4..000000000 --- a/src/js/tabs/register.js +++ /dev/null @@ -1,252 +0,0 @@ -var util = require('util'); -var Tab = require('../client/tab').Tab; - -var RegisterTab = function () -{ - Tab.call(this); -}; - -util.inherits(RegisterTab, Tab); - -RegisterTab.prototype.tabName = 'register'; -RegisterTab.prototype.pageMode = 'single'; -RegisterTab.prototype.parent = 'main'; - -RegisterTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/register.jade')(); -}; - -RegisterTab.prototype.extraRoutes = [ - { name: '/register/activate/:username/:token' } -]; - -RegisterTab.prototype.angular = function (module) { - module.controller('RegisterCtrl', ['$scope', '$rootScope', '$location', '$element', - 'rpId', 'rpTracker', '$routeParams', 'rpKeychain', - function ($scope, $rootScope, $location, $element, - id, rpTracker, $routeParams, keychain) - { - /** - * Email verification - */ - if ($routeParams.token) { - id.verify({ - username: $routeParams.username, - token: $routeParams.token - }, function(err, response){ - if (err) { - $rootScope.verifyStatus = 'error'; - - rpTracker.track('Email verification', { - result: 'failed', - message: err - }); - } - else if ('success' === response.result) { - $rootScope.verifyStatus = 'verified'; - - rpTracker.track('Email verification', { - result: 'success' - }); - } - }); - - $rootScope.verifyStatus = 'verifying'; - $rootScope.username = $routeParams.username; - id.logout(); - $location.path('/login'); - } - - /** - * User is already logged in - */ - if (id.loginStatus) { - $location.path('/balance'); - return; - } - - // Countries list - /* - var lang = store.get('ripple_language') || 'en'; - - $scope.countries = _.sortBy(require('../l10n/countries/' + lang + '.json'), - function(country){ - return country; - } - ); - */ - - $scope.reset = function() - { - $scope.username = ''; - $scope.password = ''; - $scope.passwordSet = {}; - $scope.password1 = ''; - $scope.password2 = ''; - $scope.master = ''; - $scope.key = ''; - $scope.mode = 'form'; - $scope.showMasterKeyInput = false; - $scope.submitLoading = false; - - if ($scope.registerForm) $scope.registerForm.$setPristine(true); - }; - - $scope.register = function() - { - if ($scope.oldUserBlob) { - $scope.masterkey = $scope.oldUserBlob.data.master_seed; - } - - id.register({ - username: $scope.username, - password: $scope.password1, - email: $scope.email, - masterkey: $scope.masterkey, - oldUserBlob: $scope.oldUserBlob, - oldUsername: $scope.oldUsername, - oldPassword: $scope.oldPassword - }, - function(err, key){ - $scope.submitLoading = false; - - if (err) { - $scope.mode = 'failed'; - $scope.error_detail = err.message; - - rpTracker.track('Sign Up', { - 'Used key': !!$scope.masterkey, - 'Password strength': $scope.strength, - Result: 'fail' - }); - - return; - } - $scope.password = new Array($scope.password1.length + 1).join('*'); - $scope.keyOpen = key; - $scope.key = $scope.keyOpen[0] + new Array($scope.keyOpen.length).join('*'); - - $scope.mode = 'secret'; - - rpTracker.track('Sign Up', { - 'Used key': !!$scope.masterkey, - 'Password strength': $scope.strength, - Result: 'success' - }); - }); - }; - - $scope.resendEmail = function() - { - $scope.resendLoading = true; - - keychain.requestSecret(id.account, id.username, - function (err, masterkey) { - if (err) { - console.log('client: register tab: error while ' + - 'unlocking wallet: ', err); - $scope.mode = 'verification'; - return; - } - - id.resendEmail({ - id:$scope.userBlob.id, - url:$scope.userBlob.url, - username: $scope.userCredentials.username, - account_id: $scope.userBlob.data.account_id, - email: $scope.newEmail || $scope.userBlob.data.email, - masterkey: masterkey - }, function(err, response){ - if (err) { - console.log('Error', err); - return; - } - - // Update the blob - $scope.userBlob.set('/email', $scope.newEmail || $scope.userBlob.data.email); - - $scope.resendLoading = false; - $scope.resendSuccess = true; - }); - }); - }; - - var updateFormFields = function() { - var username; - var password1; - var password2; - - username = $element.find('input[name="register_username"]').eq(0).val(); - password1 = $element.find('input[name="register_password1"]').eq(0).val(); - password2 = $element.find('input[name="register_password2"]').eq(0).val(); - - if ('string' === typeof username) { - $scope.registerForm.register_username.$setViewValue(username); - } - if ('string' === typeof password1) { - $scope.registerForm.register_password1.$setViewValue(password1); - } - if ('string' === typeof password2) { - $scope.registerForm.register_password2.$setViewValue(password2); - } - }; - - /** - * Registration cases - * - * -- CASE -- -- ACTION -- - * 1. username or/and password is/are missing ----------------------------- show error - * 2. passwords do not match ---------------------------------------------- show error - * 3. username and password passed the validation - * 3.1 master key is not present - * 3.1.1 account exists - * 3.1.1.1 and we can login ---------------------------------- login - * 3.1.1.2 and we can't login -------------------------------- show error - * 3.1.2 account doesn't exist ------------------------------------- register and generate master key - * 3.3 master key is present - * 3.3.1 account exists, but we can't login ------------------------ show error - * 3.3.2 account exists and it uses the same master key =----------- login - * 3.3.3 account exists, and it uses another master key - * 3.3.2.1 master key is valid ------------------------------- tell him about the situation, and let him decide what to do - * 3.3.2.2 master key is invalid ----------------------------- show error - * 3.3.3 account doesn't exist ------------------------------------- register with given master key - */ - - $scope.submitForm = function() - { - // Disable submit button - $scope.submitLoading = true; - - updateFormFields(); - - var regInProgress; - - // TODO Update this. It cannot exist anymore, 'cause usernames are unique - id.exists($scope.username, $scope.password1, function (error, exists) { - if (!regInProgress) { - if (!exists) { - regInProgress = true; - - if (!store.disabled) { - store.set('ripple_settings', JSON.stringify(Options)); - } - - $scope.register(); - } else { - $scope.mode = 'alreadyexists'; - } - } - }); - }; - - $scope.reset(); - - // Unverified account login - if ($scope.unverified) { - $scope.mode = 'verification'; - } - }]); -}; - -module.exports = RegisterTab; diff --git a/src/js/tabs/security.controller.js b/src/js/tabs/security.controller.js new file mode 100644 index 000000000..3212b8a22 --- /dev/null +++ b/src/js/tabs/security.controller.js @@ -0,0 +1,106 @@ +'use strict'; + +var util = require('util'); +var Tab = require('../client/tab').Tab, + settings = require('../util/settings'); + +var SecurityTab = function() { + Tab.call(this); +}; + +util.inherits(SecurityTab, Tab); + +SecurityTab.prototype.tabName = 'security'; +SecurityTab.prototype.mainMenu = 'security'; + +SecurityTab.prototype.angular = function(module) { + module.controller('SecurityCtrl', ['$scope', 'rpId', 'rpTracker', 'rpKeychain', + function($scope, id, rpTracker, keychain) { + + $scope.settingsPage = 'security'; + + $scope.isUnlocked = true; // hiding the dialog for now + // $scope.isUnlocked = keychain.isUnlocked(id.account); + $scope.requirePasswordChanged = false; + + // Initialize the notification object + $scope.success = {}; + + $scope.security = {}; + + function onBlobUpdate() { + $scope.requirePassword = !settings.getSetting($scope.userBlob, 'persistUnlock'); + } + + $scope.$on('$blobUpdate', onBlobUpdate); + onBlobUpdate(); + + $scope.restoreSession = function() { + + if (!$scope.sessionPassword) { + $scope.unlockError = true; + return; + } + + $scope.isConfirming = true; + $scope.unlockError = null; + + keychain.getSecret(id.account, id.username, $scope.sessionPassword, function(err, secret) { + $scope.isConfirming = false; + $scope.sessionPassword = ''; + + if (err) { + $scope.unlockError = err; + return; + } + + $scope.isUnlocked = keychain.isUnlocked(id.account); + }); + + }; + + $scope.setPasswordProtection = function() { + $scope.editUnlock = false; + + // ignore it if we are not going to change anything + if (!$scope.requirePasswordChanged) { + return; + } + $scope.requirePasswordChanged = false; + $scope.requirePassword = !$scope.requirePassword; + $scope.errorSetPasswordProtection = false; + + keychain.setPasswordProtection($scope.requirePassword, function(err, resp) { + if (err) { + console.log(err); + $scope.requirePassword = !$scope.requirePassword; + + // Notify errors to the user + $scope.errorSetPasswordProtection = true; + } + }); + + // Notify the user + if (!$scope.errorSetPasswordProtection) { + if ($scope.requirePassword) { + $scope.success.enableRequirePassword = true; + $scope.success.disableRequirePassword = false; + } else { + $scope.success.enableRequirePassword = false; + $scope.success.disableRequirePassword = true; + } + } + + }; + + var reset = function() { + $scope.loading = false; + $scope.error = false; + }; + + reset(); + } + ]); +}; + +module.exports = SecurityTab; diff --git a/src/js/tabs/security.js b/src/js/tabs/security.js deleted file mode 100644 index 019d9d280..000000000 --- a/src/js/tabs/security.js +++ /dev/null @@ -1,404 +0,0 @@ -var util = require('util'); -var Tab = require('../client/tab').Tab; - -var SecurityTab = function () -{ - Tab.call(this); -}; - -util.inherits(SecurityTab, Tab); - -SecurityTab.prototype.tabName = 'security'; -SecurityTab.prototype.mainMenu = 'security'; - -SecurityTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/security.jade')(); -}; - -SecurityTab.prototype.angular = function (module) { - module.controller('SecurityCtrl', ['$scope', 'rpId', 'rpOldBlob', 'rpTracker', - 'rpKeychain', '$timeout', 'rpAuthFlow', 'rpPopup', - function ($scope, id, blob, rpTracker, - keychain, $timeout, authflow, popup) - { - $scope.settingsPage = 'security'; - - $scope.showComponent = []; - - - $scope.isUnlocked = true; //hiding the dialog for now - //$scope.isUnlocked = keychain.isUnlocked(id.account); - $scope.loading2FA = false; - $scope.loaded2FA = false; - $scope.errorLoading2FA = false; - $scope.requirePasswordChanged = false; - - $scope.validation_pattern_phone = /^[0-9]*$/; - - // Initialize the notification object - $scope.success = {}; - - $scope.security = {}; - - $scope.$on('$blobUpdate', onBlobUpdate); - onBlobUpdate(); - - function onBlobUpdate() - { - if ("function" === typeof $scope.userBlob.encrypt) { - $scope.enc = $scope.userBlob.encrypt(); - } - - - $scope.requirePassword = !$scope.userBlob.data.persistUnlock; - - if (!$scope.loaded2FA && "function" === typeof $scope.userBlob.get2FA) { - $scope.loading2FA = true; - $scope.errorLoading2FA = false; - $scope.userBlob.get2FA(function(err, resp) { - $scope.$apply(function(){ - $scope.loading2FA = false; - if (err) { - $scope.errorLoading2FA = true; - return; - } - - $scope.loaded2FA = true; - $scope.enabled2FA = resp.enabled; - $scope.currentPhone = resp.phone; - $scope.currentCountryCode = resp.country_code; - }); - }); - } - } - - $scope.restoreSession = function() { - - if (!$scope.sessionPassword) { - $scope.unlockError = true; - return; - } - - $scope.isConfirming = true; - $scope.unlockError = null; - - keychain.getSecret(id.account, id.username, $scope.sessionPassword, function(err, secret) { - $scope.isConfirming = false; - $scope.sessionPassword = ''; - - if (err) { - $scope.unlockError = err; - return; - } - - $scope.isUnlocked = keychain.isUnlocked(id.account); - }); - - }; - - - $scope.unmaskSecret = function () { - keychain.requestSecret(id.account, id.username, 'showSecret', function (err, secret) { - if (err) { - // XXX Handle error - return; - } - - $scope.security.master_seed = secret; - }); - }; - - - $scope.setPasswordProtection = function () { - $scope.editUnlock = false; - - //ignore it if we are not going to change anything - if (!$scope.requirePasswordChanged) return; - $scope.requirePasswordChanged = false; - $scope.requirePassword = !$scope.requirePassword; - $scope.errorSetPasswordProtection = false; - - keychain.setPasswordProtection($scope.requirePassword, function(err, resp){ - if (err) { - console.log(err); - $scope.requirePassword = !$scope.requirePassword; - - // Notify errors to the user - $scope.errorSetPasswordProtection = true; - } - }); - - // Notify the user - if (!$scope.errorSetPasswordProtection) { - if ($scope.requirePassword) { - $scope.success.enableRequirePassword = true; - $scope.success.disableRequirePassword = false; - } else { - $scope.success.enableRequirePassword = false; - $scope.success.disableRequirePassword = true; - } - } - - }; - - $scope.cancelUnlockOptions = function () { - $scope.editUnlock = false; - }; - - $scope.changePassword = function() { - $scope.loading = true; - $scope.error = false; - - // Get the master key - keychain.getSecret(id.account, id.username, $scope.password, - function (err, masterkey) { - if (err) { - console.log("client: account tab: error while " + - "unlocking wallet: ", err); - - $scope.error = 'wrongpassword'; - $scope.loading = false; - return; - } - - // Change password - id.changePassword({ - username: id.username, - password: $scope.password1, - masterkey: masterkey, - blob: $scope.userBlob - }, function(err){ - if (err) { - console.log('client: account tab: error while ' + - 'changing the account password: ', err); - $scope.error = true; - $scope.loading = false; - return; - } - - $scope.success.changePassword = true; - reset(); - }); - } - ); - }; - - $scope.open2FA = function() { - $scope.mode2FA = ''; - $scope.loading = false; - $scope.error2FA = false; - $scope.success.disable = false; - $scope.phoneNumber = $scope.currentPhone; - $scope.countryCode = $scope.currentCountryCode; - window.Authy.UI.instance(true, $scope.countryCode); //enables the authy dropdown - }; - - $scope.savePhone = function() { - $scope.mode2FA = 'savePhone'; - $scope.error2FA = false; - $scope.savingPhone = true; - - keychain.requestSecret(id.account, id.username, function(err, secret) { - if (err) { - $scope.mode2FA = ''; - $scope.savingPhone = false; - return; - } - - var options = { - masterkey : secret, - phone : $scope.phoneNumber, - country_code : $scope.countryCode - }; - - $scope.userBlob.set2FA(options, function(err, resp) { - $scope.$apply(function(){ - $scope.mode2FA = ''; - if (err) { - console.log(err, resp); - $scope.error2FA = true; - $scope.savingPhone = false; - popup.close(); - } else { - - $scope.currentPhone = options.phone; - $scope.currentCountryCode = options.country_code; - - //request verification token - requestToken(false, function(err, resp) { - //TODO: handle error - - $scope.savingPhone = false; - $scope.mode2FA = 'verifyPhone'; - popup.close(); - }); - } - }); - }); - }); - }; - - function requestToken (force, callback) { - - authflow.requestToken($scope.userBlob.url, $scope.userBlob.id, force, function(tokenError, tokenResp) { - if (tokenError) { - $scope.error2FA = true; - } else { - $scope.via = tokenResp.via; - } - - callback(tokenError, tokenResp); - }); - } - - $scope.requestToken = function () { - var force = $scope.via === 'app' ? true : false; - - $scope.isRequesting = true; - requestToken(force, function(err, resp) { - $scope.isRequesting = false; - //TODO: present message of resend success or failure - }); - }; - - - $scope.enable2FA = function() { - - $scope.isVerifying = true; - $scope.invalidToken = false; - - var options = { - url : $scope.userBlob.url, - id : $scope.userBlob.id, - token : $scope.verifyToken, - remember_me : false - }; - - authflow.verifyToken(options, function(err, resp){ - - if (err) { - $scope.invalidToken = true; - $scope.isVerifying = false; - return; - } - - keychain.requestSecret(id.account, id.username, function(err, secret) { - - if (err) { - $scope.mode2FA = ''; - $scope.isVerifying = false; - return; - } - - var options = { - masterkey : secret, - enabled : true - }; - - $scope.userBlob.set2FA(options, function(err, resp) { - $scope.$apply(function() { - $scope.isVerifying = false; - $scope.mode2FA = ''; - - if (err) { - $scope.error2FA = true; - } else { - - //remove old device ID so that - //next login will require 2FA - store.remove('device_id'); - $scope.enabled2FA = true; - $scope.success.enable = true; - } - }); - }); - }); - }); - }; - - $scope.disable2FA = function() { - $scope.mode2FA = 'disable'; - $scope.error2FA = false; - $scope.success.enable = false; - - keychain.requestSecret(id.account, id.username, function(err, secret) { - if (err) { - $scope.mode2FA = ''; - return; - } - - var options = { - masterkey : secret, - enabled : false - }; - - $scope.userBlob.set2FA(options, function(err, resp) { - $scope.$apply(function(){ - $scope.mode2FA = ''; - if (err) { - $scope.error2FA = true; - } else { - $scope.enabled2FA = false; - $scope.success.disable = true; - } - }); - }); - }); - }; - - $scope.cancel2FA = function () { - $scope.mode2FA = ''; - $scope.invalidToken = false; - $scope.error2FA = false; - }; - - /** - * Delete Ripple Account - */ - $scope.deleteAccount = function () { - keychain.requestSecret(id.account, id.username, function (err, secret) { - // XXX Error handling - if (err) return; - - var options = { - url : $scope.userBlob.url, - blob_id : $scope.userBlob.id, - username : id.username, - account_id : id.account, - masterkey : secret - }; - - authflow.deleteBlob(options, function(err){ - if (err) { - console.log('error: account deletion failed', err); - return; - } - - id.logout(); - location.reload(); - }); - }); - }; - - var reset = function() { - - $scope.openFormPassword = false; - $scope.password1 = ''; - $scope.password2 = ''; - $scope.passwordSet = {}; - $scope.loading = false; - $scope.error = false; - - if ($scope.changeForm) { - $scope.changeForm.$setPristine(true); - } - }; - - reset(); - $scope.success.changePassword = false; - - }]); -}; - -module.exports = SecurityTab; diff --git a/src/js/tabs/send.js b/src/js/tabs/send.controller.js similarity index 90% rename from src/js/tabs/send.js rename to src/js/tabs/send.controller.js index 40339a91d..723ae5bd0 100644 --- a/src/js/tabs/send.js +++ b/src/js/tabs/send.controller.js @@ -1,5 +1,6 @@ var util = require('util'), webutil = require('../util/web'), + settings = require('../util/settings'), Tab = require('../client/tab').Tab, Amount = ripple.Amount, Currency = ripple.Currency, @@ -18,22 +19,20 @@ SendTab.prototype.mainMenu = 'send'; SendTab.prototype.angularDeps = Tab.prototype.angularDeps.concat(['federation', 'keychain']); -SendTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/send.jade')(); -}; - SendTab.prototype.angular = function (module) { module.controller('SendCtrl', ['$scope', '$timeout', '$routeParams', 'rpId', 'rpNetwork', 'rpFederation', 'rpTracker', - 'rpKeychain', + 'rpKeychain', '$interval', function ($scope, $timeout, $routeParams, id, network, federation, rpTracker, - keychain) + keychain, $interval) { - var destUpdateTimeout; + var destUpdateTimeout, + passwordUpdater, + passwordUpdaterDestr; + var pathUpdateTimeout; var timer; var xrpCurrency = Currency.from_json('XRP'); @@ -86,12 +85,15 @@ SendTab.prototype.angular = function (module) $scope.update_currency(); setImmediate(function() { - if ($scope.sendForm.send_amount !== undefined) { + if ($scope.sendForm && $scope.sendForm.send_amount !== undefined) { $scope.$apply(function() { - // hack to re-validate input. remove this and uncomment $validate() when upgraded to angularjs 1.3 - $scope.sendForm.send_amount.$modelValue = ''; - $scope.sendForm.send_amount.$setViewValue($scope.send.amount); // $scope.sendForm.send_amount.$validate(); + // hack - use of private method. this is because rpAmount and other + // validators not real validators, but parsers. + // and latest angular does not call parsers on $validate. + // when rpAmount and others changed to validators this can be changed + // back to $validate + $scope.sendForm.send_amount.$$parseAndValidate(); $scope.update_amount(); }); } @@ -109,8 +111,24 @@ SendTab.prototype.angular = function (module) // When the send form is invalid, path finding won't trigger. So if the form // is changed by one of the update_* handlers and becomes valid during the // next digest, we need to manually trigger another update_amount. - $scope.$watch('sendForm.$valid', function () { - $scope.update_amount(); + $scope.$watch('sendForm.$valid', function(v) { + if (v) { + $scope.update_amount(); + } else { + $scope.send.last_recipient = null; + $scope.send.path_status = 'waiting'; + $scope.send.fund_status = 'none'; + + if ($scope.send.pathfind) { + $scope.send.pathfind.close(); + delete $scope.send.pathfind; + } + if (pathUpdateTimeout) { + $timeout.cancel(pathUpdateTimeout); + pathUpdateTimeout = null; + } + $scope.reset_paths(); + } }); // Reset everything that depends on the destination @@ -157,13 +175,13 @@ SendTab.prototype.angular = function (module) send.toBitcoin = false; // Trying to send to a Bitcoin address - if (!isNaN(Base.decode_check([0, 5], recipient, 'bitcoin'))) { - if (Options.bridge.out.bitcoin) { // And there is a default bridge - recipient += '@' + Options.bridge.out.bitcoin; - send.recipient_address = recipient; - send.toBitcoin = true; - } - } + // if (!isNaN(Base.decode_check([0, 5], recipient, 'bitcoin'))) { + // if (Options.bridge.out.bitcoin) { // And there is a default bridge + // recipient += '@' + Options.bridge.out.bitcoin; + // send.recipient_address = recipient; + // send.toBitcoin = true; + // } + // } send.last_recipient = recipient; @@ -246,7 +264,7 @@ SendTab.prototype.angular = function (module) if (recipient !== now_recipient) return; send.path_status = 'waiting'; - if (send.toBitcoin && Options.bridge.out.bitcoin != 'btc2ripple.com') { + if (send.toBitcoin) { $scope.sendForm.send_destination.$setValidity('btcBridgeWrong', false); } else if (error && error.error === 'down') { $scope.sendForm.send_destination.$setValidity('federationDown', false); @@ -272,11 +290,12 @@ SendTab.prototype.angular = function (module) else if (isRecipientValidAddress && send.recipient_address == strippedRecipient) { id.resolveName(strippedRecipient, { tilde: true }).then(function(name) { send.recipient_name = name; - if (send.recipient == name) { + if (send.recipient === name) { // there is no name for this address $scope.check_destination(); } else { // this will trigger update + send.last_recipient = null; send.recipient = name; } }, function(err) { @@ -386,6 +405,7 @@ SendTab.prototype.angular = function (module) // Reset constraints send.currency_choices = $scope.currencies_all; send.currency_force = false; + send.currencyIsBTC = false; send.currency_choices_constraints = {}; @@ -467,7 +487,12 @@ SendTab.prototype.angular = function (module) } else { // The possible currencies are the intersection of all provided currency // constraints. - currencies = _.intersection.apply(_, _.values(send.currency_choices_constraints)); + currencies = _.values(send.currency_choices_constraints); + if (currencies.length == 1) { + currencies = currencies[0]; + } else { + currencies = _.intersection.apply(_, currencies); + } currencies = _.uniq(_.compact(currencies)); // create the display version of the currencies @@ -484,11 +509,13 @@ SendTab.prototype.angular = function (module) if (currencies.length === 1) { send.currency = send.currency_force = currencies[0]; + send.currencyIsBTC = (send.currency_force.indexOf('BTC') === 0); } else if (currencies.length === 0) { send.path_status = 'error-no-currency'; send.currency = ''; } else { send.currency_force = false; + send.currencyIsBTC = false; if (currencies.indexOf(send.currency) === -1) { send.currency = currencies[0]; @@ -527,8 +554,6 @@ SendTab.prototype.angular = function (module) $scope.update_amount(); }; - var pathUpdateTimeout; - $scope.reset_amount_deps = function () { var send = $scope.send; send.sender_insufficient_xrp = false; @@ -615,7 +640,11 @@ SendTab.prototype.angular = function (module) if (total.compareTo(reserve_base) < 0) { send.fund_status = 'insufficient-xrp'; send.xrp_deficiency = reserve_base.subtract(send.recipient_info.Balance); + send.insufficient = true; + return; } + send.insufficient = false; + send.fund_status = 'none'; send.path_status = 'pending'; pathUpdateTimeout = $timeout($scope.update_paths, 500); @@ -658,6 +687,7 @@ SendTab.prototype.angular = function (module) error: function () { setImmediate(function () { $scope.$apply(function () { + $scope.send.pathfind.close(); $scope.send.path_status = 'error-quote'; }); }); @@ -675,6 +705,7 @@ SendTab.prototype.angular = function (module) !(data.result === 'success' || data.status === 'success') || !Array.isArray(data.quote.send) || !data.quote.send.length || !data.quote.address) { + $scope.send.pathfind.close(); $scope.send.path_status = 'error-quote'; $scope.send.quote_error = ''; if (data && data.result === 'error' && @@ -697,7 +728,8 @@ SendTab.prototype.angular = function (module) } }); } catch (e) { - console.error(e.stack ? e.stack : e); + console.error(e.stack || e); + $scope.send.pathfind.close(); $scope.send.path_status = 'error-quote'; } }; @@ -708,8 +740,7 @@ SendTab.prototype.angular = function (module) send.alternatives = []; }; - - $scope.update_paths = function () { + $scope.update_paths = function() { var send = $scope.send; var recipient = send.recipient_actual || send.recipient_address; var amount = send.amount_actual || send.amount_feedback; @@ -720,11 +751,11 @@ SendTab.prototype.angular = function (module) send.path_status = 'pending'; // Determine if we need to update the paths. - if (send.pathfind && - send.pathfind.src_account === id.account && - send.pathfind.dst_account === recipient && - send.pathfind.dst_amount.equals(amount)) - return; + //if (send.pathfind && + // send.pathfind.src_account === id.account && + // send.pathfind.dst_account === recipient && + // send.pathfind.dst_amount.equals(amount)) + // return; // Start path find var pf = network.remote.path_find(id.account, @@ -741,6 +772,10 @@ SendTab.prototype.angular = function (module) var lastUpdate; pf.on('update', function (upd) { + // wrong quote + if ($scope.send.path_status === 'error-quote') + return; + // if no paths found and it is first update - skip it, it often wrong if (send.pathfindJustStarted && (!upd.alternatives || !upd.alternatives.length)) { send.pathfindJustStarted = false; @@ -786,10 +821,9 @@ SendTab.prototype.angular = function (module) var slightlyInFuture = new Date(+new Date() + 5 * 60000); alt.rate = alt.amount.ratio_human(amount, {reference_date: slightlyInFuture}); - alt.send_max = alt.amount.product_human(Amount.from_json('1.001')); - alt.paths = raw.paths_computed - ? raw.paths_computed - : raw.paths_canonical; + var sendMaxDeviation = settings.getSetting($scope.userBlob, 'sendMaxDeviation', 0.1); + alt.send_max = alt.amount.scale(1 + sendMaxDeviation / 100); + alt.paths = raw.paths_computed || raw.paths_canonical; // Selected currency should be the first option if (raw.source_amount.currency) { @@ -891,6 +925,8 @@ SendTab.prototype.angular = function (module) $scope.mode = 'form'; $scope.send.alt = null; + cleanPasswordUpdater(); + // Force pathfinding reset $scope.update_paths(); @@ -918,7 +954,7 @@ SendTab.prototype.angular = function (module) /** * N3. Confirmation page */ - $scope.send_prepared = function () { + $scope.send_prepared = function() { // check if paths are available, if not then it is a direct send $scope.send.indirect = $scope.send.alt ? $scope.send.alt.paths.length : false; @@ -945,19 +981,56 @@ SendTab.prototype.angular = function (module) } rpTracker.track('Send confirmation page', { - 'Currency': $scope.send.currency_code, + Currency: $scope.send.currency_code, 'Address Type': $scope.send.federation ? 'federation' : 'ripple', 'Destination Tag': !!$scope.send.dt, - 'Address': $scope.userBlob.data.account_id + Address: $scope.userBlob.data.account_id }); if (Options.confirmation.send) { $scope.mode = 'confirm'; + $scope.sendMaxDeviation = settings.getSetting($scope.userBlob, 'sendMaxDeviation', 0.1); + + cleanPasswordUpdater(); + + // needed for password managers that don't raise change event on input field + passwordUpdater = $interval(function() { + var password = $('input[name="send_unlock_password"]').val(); + if (typeof password === 'string') { + $scope.sendUnlockForm.send_unlock_password.$setViewValue(password); + } + }, 2000); + + passwordUpdaterDestr = $scope.$on('$destroy', function() { + cleanPasswordUpdater(); + }); } else { - $scope.send_confirmed(); + if (!keychain.isUnlocked(id.account)) { + keychain.requestSecret(id.account, id.username, function (err, secret) { + if (err) { + console.log(err); + return; + } + $scope.send.secret = secret; + $scope.send_confirmed(); + }); + } else { + $scope.send_confirmed(); + } } }; + function cleanPasswordUpdater() { + if (typeof passwordUpdaterDestr === 'function') { + passwordUpdaterDestr(); + } + + if (passwordUpdater) { + $interval.cancel(passwordUpdater); + passwordUpdater = null; + } + } + /** * N4. Waiting for transaction result page */ @@ -1019,6 +1092,8 @@ SendTab.prototype.angular = function (module) $scope.mode = 'sending'; + cleanPasswordUpdater(); + amount.set_issuer(address); var tx = network.remote.transaction(); @@ -1215,9 +1290,6 @@ SendTab.prototype.angular = function (module) if ($routeParams.to && $routeParams.amount) { var amountValue = $routeParams.amount; - if (amountValue === ('' + parseInt(amountValue, 10))) { - amountValue = amountValue + '.0'; - } var amount = ripple.Amount.from_json(amountValue); var currency = amount.currency(); if ($scope.currencies_all_keyed[currency.get_iso()]) { diff --git a/src/js/tabs/settingsgateway.controller.js b/src/js/tabs/settingsgateway.controller.js new file mode 100644 index 000000000..8f61d06ac --- /dev/null +++ b/src/js/tabs/settingsgateway.controller.js @@ -0,0 +1,154 @@ +var util = require('util'), + webutil = require('../util/web'), + Tab = require('../client/tab').Tab, + settings = require('../util/settings'), + Currency = ripple.Currency; + +var SettingsGatewayTab = function () +{ + Tab.call(this); +}; + +util.inherits(SettingsGatewayTab, Tab); + +SettingsGatewayTab.prototype.tabName = 'settingsgateway'; +SettingsGatewayTab.prototype.mainMenu = 'settingsgateway'; + +SettingsGatewayTab.prototype.angular = function(module) +{ + module.controller('SettingsGatewayCtrl', ['$scope', 'rpId', 'rpKeychain', 'rpNetwork', + function ($scope, id, keychain, network) + { + var xrpCurrency = Currency.from_json('XRP'); + + $scope.xrp = { + name: xrpCurrency.to_human({full_name:$scope.currencies_all_keyed.XRP.name}), + code: xrpCurrency.get_iso(), + currency: xrpCurrency + }; + + $scope.options = Options; + $scope.optionsBackup = $.extend(true, {}, Options); + $scope.passwordProtection = !settings.getSetting($scope.userBlob, 'persistUnlock', false); + $scope.editConfirmation = { + send: false, + exchange: false, + trade: false + }; + $scope.edit = { + advanced_feature_switch: false, + bridge: false, + defaultRippleFlag: false, + defaultRippleFlagSaving: false + }; + $scope.max_tx_network_fee_human = ripple.Amount.from_json($scope.options.max_tx_network_fee).to_human(); + $scope.confirmationChanged = { + send: false, + exchange: false, + trade: false + }; + + // Initialize the notification object + $scope.success = {}; + + $scope.save = function(type) { + switch (type) { + case 'advanced_feature_switch': + $scope.userBlob.set('/clients/rippletradecom/trust/advancedMode', $scope.options.advanced_feature_switch); + break; + case 'defaultRippleFlag': + // Need to set flag on account_root only when chosen option is different from current setting + if ($scope.currentDefaultRipplingFlagSetting !== $scope.isDefaultRippleFlagEnabled) { + $scope.edit.defaultRippleFlagSaving = true; + var tx = network.remote.transaction(); + !$scope.isDefaultRippleFlagEnabled ? tx.accountSet(id.account, undefined, 'DefaultRipple') : tx.accountSet(id.account, 'DefaultRipple'); + tx.on('success', function(res) { + $scope.$apply(function() { + $scope.edit.defaultRippleFlagSaving = false; + $scope.load_notification('defaultRippleUpdated'); + }); + }); + tx.on('error', function(res) { + console.warn(res); + $scope.$apply(function() { + $scope.edit.defaultRippleFlagSaving = false; + }); + }); + + keychain.requestSecret(id.account, id.username, function (err, secret) { + if (err) { + console.log('Error: ', err); + $scope.isDefaultRippleFlagEnabled = !$scope.isDefaultRippleFlagEnabled; + $scope.edit.defaultRippleFlagSaving = false; + return; + } + tx.secret(secret); + tx.submit(); + }); + } + break; + default: + // Save in local storage + if (!store.disabled) { + store.set('ripple_settings', JSON.stringify($scope.options)); + } + } + + $scope.edit[type] = false; + + // Notify the user + $scope.success[type] = true; + }; + + $scope.saveConfirmation = function(transactionType) { + // ignore it if we are not going to change anything + if (!$scope.confirmationChanged[transactionType]) { + $scope.editConfirmation[transactionType] = false; + return; + } + $scope.confirmationChanged[transactionType] = false; + + $scope.userBlob.set('/clients/rippletradecom/confirmation', $scope.options.confirmation); + + $scope.editConfirmation[transactionType] = false; + + // Notify the user + $scope.success.saveConfirmation[transactionType] = true; + }; + + $scope.deleteUrl = function(type) { + if (type === 'bridge') { + $scope.options.bridge.out.bitcoin = ''; + } + + // Save in local storage + if (!store.disabled) { + store.set('ripple_settings', JSON.stringify($scope.options)); + } + }; + + $scope.cancelEdit = function(type) { + $scope.edit[type] = false; + if (type === 'bridge') { + $scope.options.bridge.out.bitcoin = $scope.optionsBackup.bridge.out.bitcoin; + + } else { + $scope.options[type] = $scope.optionsBackup[type]; + } + }; + + $scope.cancelEditConfirmation = function(transactionType) { + $scope.editConfirmation[transactionType] = false; + $scope.options.confirmation[transactionType] = $scope.optionsBackup.confirmation[transactionType]; + }; + + $scope.$watch('account', function() { + // Check if account has DefaultRipple flag set + $scope.isDefaultRippleFlagEnabled = !!($scope.account.Flags & ripple.Remote.flags.account_root.DefaultRipple); + $scope.currentDefaultRipplingFlagSetting = $scope.isDefaultRippleFlagEnabled; + }, true); + + }]); +}; + +module.exports = SettingsGatewayTab; diff --git a/src/js/tabs/settingstrade.controller.js b/src/js/tabs/settingstrade.controller.js new file mode 100644 index 000000000..c52462685 --- /dev/null +++ b/src/js/tabs/settingstrade.controller.js @@ -0,0 +1,64 @@ +(function(module) { +'use strict'; + +/* global ripple: false, angular: false, _: false, jQuery: false, store: false, Options: false */ + +var util = require('util'), + webutil = require('../util/web'), + settings = require('../util/settings'), + Tab = require('../client/tab').Tab; + +var SettingsTradeTab = function() { + Tab.call(this); +}; + +util.inherits(SettingsTradeTab, Tab); + +SettingsTradeTab.prototype.tabName = 'settingstrade'; +SettingsTradeTab.prototype.mainMenu = 'settingstrade'; + +SettingsTradeTab.prototype.angular = function(module) { + module.controller('SettingsTradeCtrl', SettingsTradeCtrl); + + SettingsTradeCtrl.$inject = ['$scope', '$timeout']; + + function SettingsTradeCtrl($scope, $timeout) { + if ($scope.userBlob.data && $scope.userCredentials.username) { + $scope.pairs = _.clone(settings.getSetting($scope.userBlob, 'trade_currency_pairs')); + } else { + var removeWatcher = $scope.$on('$blobUpdate', function() { + if (!$scope.userCredentials.username) + return; + $scope.pairs = _.clone(settings.getSetting($scope.userBlob, 'trade_currency_pairs')); + removeWatcher(); + }); + } + + $scope.deletePair = function(index){ + for (var i = 0; i < $scope.pairs.length; i++) { + if ($scope.pairs[i].name === this.entry.name) { + $scope.pairs.splice(i, 1); + $scope.userBlob.unset('/clients/rippletradecom/trade_currency_pairs/' + index); + return; + } + } + } + + $scope.dragControlListeners = { + orderChanged: function(event) { + var direction = event.dest.index < event.source.index ? 1 : -1; + var p = event.dest.index; + var end = event.source.index + direction; + do { + var obj = $scope.pairs[p]; + $scope.userBlob.set('/clients/rippletradecom/trade_currency_pairs/' + p, obj); + p += direction; + } while (p != end); + } + }; + } +}; + +module.exports = SettingsTradeTab; + +})(module); diff --git a/src/js/tabs/settingstrade.js b/src/js/tabs/settingstrade.js deleted file mode 100644 index f53a160ec..000000000 --- a/src/js/tabs/settingstrade.js +++ /dev/null @@ -1,82 +0,0 @@ -(function(module) { -'use strict'; - -/* global ripple: false, angular: false, _: false, jQuery: false, store: false, Options: false */ - -var util = require('util'), - webutil = require('../util/web'), - Tab = require('../client/tab').Tab; - -var SettingsTradeTab = function () -{ - Tab.call(this); -}; - -util.inherits(SettingsTradeTab, Tab); - -SettingsTradeTab.prototype.tabName = 'settingstrade'; -SettingsTradeTab.prototype.mainMenu = 'settingstrade'; - -SettingsTradeTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/settingstrade.jade')(); -}; - -SettingsTradeTab.prototype.angular = function(module) { - module.controller('SettingsTradeCtrl', SettingsTradeCtrl); - - SettingsTradeCtrl.$inject = ['$scope', '$timeout']; - - function SettingsTradeCtrl($scope, $timeout) { - var dirty = false, - saveTimeout; - - if ($scope.userBlob.data && $scope.userCredentials.username) { - $scope.pairs = $scope.userBlob.data.trade_currency_pairs; - } else { - var removeWatcher = $scope.$on('$blobUpdate', function () { - if (!$scope.userCredentials.username) - return; - $scope.pairs = $scope.userBlob.data.trade_currency_pairs; - removeWatcher(); - }); - } - - $scope.deletePair = function(index){ - for (var i = 0; i < $scope.pairs.length; i++) { - if ($scope.pairs[i].$$hashKey === this.entry.$$hashKey) { - saveTradePairs(); - $scope.userBlob.unset('/trade_currency_pairs/' + index); - return; - } - } - } - - $scope.dragControlListeners = { - orderChanged: function(event) { - dirty = true; - if (saveTimeout) { - $timeout.cancel(saveTimeout); - } - saveTimeout = $timeout(saveTradePairs, 2000); - } - }; - - $scope.$on('$destroy', saveTradePairs); - - function saveTradePairs() { - if (dirty) { - $timeout.cancel(saveTimeout); - saveTimeout = null; - // clear $$hashKey - var pairs = angular.fromJson(angular.toJson($scope.pairs)); - $scope.userBlob.set('/trade_currency_pairs', pairs); - dirty = false; - } - } - } -}; - -module.exports = SettingsTradeTab; - -})(module); diff --git a/src/js/tabs/sgd.js b/src/js/tabs/sgd.controller.js similarity index 97% rename from src/js/tabs/sgd.js rename to src/js/tabs/sgd.controller.js index ccbaf0c73..6a4b77f28 100644 --- a/src/js/tabs/sgd.js +++ b/src/js/tabs/sgd.controller.js @@ -10,10 +10,6 @@ util.inherits(SgdTab, Tab); SgdTab.prototype.tabName = 'sgd'; SgdTab.prototype.mainMenu = 'fund'; -SgdTab.prototype.generateHtml = function() { - return require('../../jade/tabs/sgd.jade')(); -}; - SgdTab.prototype.angular = function(module) { module.controller('SgdCtrl', ['$scope', 'rpId', 'rpAppManager', 'rpTracker', '$routeParams', 'rpKeychain', 'rpNetwork', '$timeout', function($scope, id, appManager, rpTracker, $routeParams, keychain, $network, $timeout) diff --git a/src/js/tabs/su.js b/src/js/tabs/su.controller.js similarity index 93% rename from src/js/tabs/su.js rename to src/js/tabs/su.controller.js index 922ec50b8..42019448d 100644 --- a/src/js/tabs/su.js +++ b/src/js/tabs/su.controller.js @@ -14,11 +14,6 @@ util.inherits(SuTab, Tab); SuTab.prototype.tabName = 'su'; SuTab.prototype.mainMenu = 'su'; -SuTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/su.jade')(); -}; - SuTab.prototype.angular = function (module) { module.controller('SuCtrl', ['$scope', '$routeParams', 'rpId', diff --git a/src/js/tabs/tou.js b/src/js/tabs/tou.controller.js similarity index 83% rename from src/js/tabs/tou.js rename to src/js/tabs/tou.controller.js index d37562d7d..b5bea8f87 100644 --- a/src/js/tabs/tou.js +++ b/src/js/tabs/tou.controller.js @@ -12,11 +12,6 @@ TouTab.prototype.tabName = 'tou'; TouTab.prototype.pageMode = 'single'; TouTab.prototype.parent = 'main'; -TouTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/tou.jade')(); -}; - TouTab.prototype.angular = function (module) { module.controller('TouCtrl', ['$scope', '$element', function ($scope, $element) diff --git a/src/js/tabs/trade.js b/src/js/tabs/trade.controller.js similarity index 86% rename from src/js/tabs/trade.js rename to src/js/tabs/trade.controller.js index ae3015ff1..9a21bb8e9 100644 --- a/src/js/tabs/trade.js +++ b/src/js/tabs/trade.controller.js @@ -3,6 +3,7 @@ var util = require('util'); var webutil = require('../util/web'); +var settings = require('../util/settings'); var Tab = require('../client/tab').Tab; var Amount = ripple.Amount; var rewriter = require('../util/jsonrewriter'); @@ -19,11 +20,6 @@ util.inherits(TradeTab, Tab); TradeTab.prototype.tabName = 'trade'; TradeTab.prototype.mainMenu = 'trade'; -TradeTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/trade.jade')(); -}; - TradeTab.prototype.angularDeps = Tab.prototype.angularDeps.concat(['books']); TradeTab.prototype.extraRoutes = [ @@ -37,14 +33,15 @@ TradeTab.prototype.angular = function(module) TradeCtrl.$inject = ['rpBooks', '$scope', 'rpId', 'rpNetwork', '$routeParams', '$location', '$filter', 'rpTracker', 'rpKeychain', '$rootScope', - 'rpPopup', '$anchorScroll', '$timeout']; + 'rpPopup', '$anchorScroll', '$timeout', '$templateRequest']; function TradeCtrl(books, $scope, id, network, $routeParams, $location, $filter, rpTracker, keychain, $rootScope, - popup, $anchorScroll, $timeout) + popup, $anchorScroll, $timeout, $templateRequest) { var timer; + var cancelNotifTimeout = {}; $scope.priceTicker = { bid: 'n/a', @@ -59,6 +56,24 @@ TradeTab.prototype.angular = function(module) reverse: false }; + function onBlobIsValid() { + $scope.pairs_query = settings.getSetting($scope.userBlob, 'trade_currency_pairs'); + // Remember user preference on Convert vs. Trade + if (!settings.getSetting($scope.userBlob, 'rippleExchangeSelectionTrade', false)) { + $scope.userBlob.set('/clients/rippletradecom/rippleExchangeSelectionTrade', true); + } + } + + if (settings.blobIsValid($scope.userBlob)) { + onBlobIsValid(); + } else { + var removeListener = $scope.$on('$blobUpdate', function() { + if (!settings.blobIsValid($scope.userBlob)) return; + onBlobIsValid(); + removeListener(); + }); + } + $scope.sortOptions.sortFieldName = $scope.ordersSortFieldChoicesKeyed[$scope.sortOptions.sortField]; $scope.$watch('sortOptions.sortFieldName', function () { @@ -74,8 +89,6 @@ TradeTab.prototype.angular = function(module) // Remember user preference on Convert vs. Trade $rootScope.ripple_exchange_selection_trade = true; - $scope.pairs_query = $scope.userBlob.data.trade_currency_pairs; - $scope.currencies_all = require('../data/currencies'); $scope.currencies = []; @@ -85,10 +98,6 @@ TradeTab.prototype.angular = function(module) seq: null }; - $scope.visualState = { - hideOrderBook: false - }; - var rpamountFilter = $filter('rpamount'); var lastUpdate; @@ -116,6 +125,8 @@ TradeTab.prototype.angular = function(module) sell_amount: null }; + $scope.notif = {}; + var currencyPairChangedByNonUser = false; //$scope.not_valid_pair = true; @@ -193,11 +204,13 @@ TradeTab.prototype.angular = function(module) // Ensure that the orderbook matches the currency pair of the order being edited, for the user // to reference and to ensure that the Fat Finger check will compare with the correct price. - $scope.editOrder.orderbookReady = false; - if ($scope.goto_order_currency.bind(this)()) { - // Reset Buy and Sell widgets as the currency pair has changed so the price & qty will not be relevant - $scope.reset_widget('buy', true); - $scope.reset_widget('sell', true); + if (getOrderCurrency(this.entry) !== $scope.order.currency_pair) { + $scope.editOrder.orderbookReady = false; + if ($scope.goto_order_currency.bind(this)()) { + // Reset Buy and Sell widgets as the currency pair has changed so the price & qty will not be relevant + $scope.reset_widget('buy', true); + $scope.reset_widget('sell', true); + } } $scope.editOrder.ccyPair = $scope.order.currency_pair; @@ -404,14 +417,15 @@ TradeTab.prototype.angular = function(module) $scope.fill_widget = function (type, order, sum) { $scope.reset_widget(type); - $scope.order[type].price = order.price.to_human().replace(',',''); + $scope.order[type].price = order.price.to_human({group_sep: false}); if (sum) { - $scope.order[type].first = order.sum.to_human().replace(',',''); + $scope.order[type].first = order.sum.to_human({group_sep: false}); $scope.calc_second(type); } scrollToElement('widgetGroup'); }; + function scrollToElement(element) { var el = document.getElementById(element); var yPos = el.getClientRects()[0].top; @@ -424,6 +438,7 @@ TradeTab.prototype.angular = function(module) } },5); } + /** * Happens when user clicks on 'Place Order' button. * @@ -454,12 +469,39 @@ TradeTab.prototype.angular = function(module) } }; + + /** + * Returns orders currency pair, so we can compare it with current pair. + */ + function getOrderCurrency(entry) { + if (!entry) return ''; + var first_currency = entry.first.currency().to_json(); + var first_issuer = entry.first.issuer().to_json(); + var second_currency = entry.second.currency().to_json(); + var second_issuer = entry.second.issuer().to_json(); + + var first = first_currency === 'XRP' + ? 'XRP' + : first_currency + '.' + first_issuer; + + var second = second_currency === 'XRP' + ? 'XRP' + : second_currency + '.' + second_issuer; + + var currency_pair = first + '/' + second; + return currency_pair; + } + /** * Happens when user clicks the currency in 'My Orders'. */ - $scope.goto_order_currency = function() - { + $scope.goto_order_currency = function() { if (!this.entry) return; + if (getOrderCurrency(this.entry) === $scope.order.currency_pair) { + // same pair, do nothing + return; + } + var entry = this.entry; var order = $scope.order; currencyPairChangedByNonUser = true; @@ -468,25 +510,26 @@ TradeTab.prototype.angular = function(module) order.second_currency = this.entry.second.currency().to_json(); order.second_issuer = this.entry.second.issuer().to_json(); - var first = order.first_currency == 'XRP' + var first = order.first_currency === 'XRP' ? 'XRP' : order.first_currency + '.' + order.first_issuer; - var second = order.second_currency == 'XRP' + var second = order.second_currency === 'XRP' ? 'XRP' : order.second_currency + '.' + order.second_issuer; order.currency_pair = first + '/' + second; var changedPair = updateSettings(); - //updateMRU(); - if(changedPair) { + // updateMRU(); + if (changedPair) { $scope.load_orderbook = true; + $scope.reset_widget('buy', true); + $scope.reset_widget('sell', true); } return changedPair; }; - $scope.view_orders_history = function() { $location.url('/history?f=orders'); @@ -587,6 +630,25 @@ TradeTab.prototype.angular = function(module) $scope.editOrder.cancelOrderGone = false; }; + $scope.showNotification = function(type, status) { + if (typeof status !== 'string') { + console.log("You must pass in a string for the status"); + return; + } + + $scope.notif[type] = status; + + if (cancelNotifTimeout[type]) { + $timeout.cancel(cancelNotifTimeout[type]); + cancelNotifTimeout[type] = null; + } + cancelNotifTimeout[type] = $timeout(function() { + $scope.notif[type] = 'clear'; + }, 9000); + cancelNotifTimeout[type]['finally'](function() { cancelNotifTimeout[type] = null; }); + } + + /** * Happens when user clicks 'Confirm' in order confirmation view. * @@ -618,7 +680,7 @@ TradeTab.prototype.angular = function(module) tx.on('success', function(res) { setEngineStatus(res, true, type); - if (!modifying) order.mode = 'done'; + if (!modifying) $scope.reset_widget(type); var tx = rewriter.processTxn(res, res.metadata, id.account); @@ -648,9 +710,9 @@ TradeTab.prototype.angular = function(module) } var eventProp = { - 'Status': 'success', + Status: 'success', 'Currency pair': ccyPair, - 'Address': $scope.userBlob.data.account_id, + Address: $scope.userBlob.data.account_id, 'Transaction ID': res.tx_json.hash, BuyAmount: order.buy_amount.to_number(false), SellAmount: order.sell_amount.to_number(false) @@ -663,7 +725,7 @@ TradeTab.prototype.angular = function(module) tx.on('error', function (err) { setEngineStatus(err, false, type); - if (!modifying) order.mode = 'done'; + if (!modifying) $scope.reset_widget(type);; if (errorCb) errorCb(); @@ -672,10 +734,10 @@ TradeTab.prototype.angular = function(module) } var eventProp = { - 'Status': 'error', - 'Message': err.engine_result, + Status: 'error', + Message: err.engine_result, 'Currency pair': ccyPair, - 'Address': $scope.userBlob.data.account_id + Address: $scope.userBlob.data.account_id }; if (modifying) rpTracker.track(MIXPNL_MODIFY_EVENT, eventProp); @@ -760,7 +822,10 @@ TradeTab.prototype.angular = function(module) popupScope.$destroy(); }; - popup.blank(require('../../jade/popup/modifyOrderError.jade')(), popupScope); + $templateRequest('templates/' + lang + '/popup/modifyOrderError.html', false).then(function(template) { + popup.blank(template, popupScope); + }); + return true; } else return false; @@ -770,16 +835,17 @@ TradeTab.prototype.angular = function(module) * Handle transaction result */ function setEngineStatus(res, accepted, type) { - $scope.engine_result = res.engine_result; - $scope.engine_result_message = res.engine_result_message; + $scope.engine_result = res.engine_result || 'tem'; + $scope.engine_result_message = res.engine_result_message || (res.remote && res.remote.error_exception); $scope.engine_status_accepted = accepted; - if (res.engine_result.slice(0, 3) === 'tes') { + if (res.engine_result && res.engine_result.slice(0, 3) === 'tes') { $scope.tx_result = accepted ? 'cleared' : 'pending'; } else { $scope.tx_result = 'unknown'; console.warn('Unhandled engine status encountered!'); } + $scope.showNotification(type, $scope.tx_result); } $scope.update_first = function (type) { @@ -822,7 +888,7 @@ TradeTab.prototype.angular = function(module) if (type === 'buy') bestPrice = $scope.bookShow.bids[0].showPrice; else if (type === 'sell') bestPrice = $scope.bookShow.asks[0].showPrice; - bestPrice = +bestPrice.replace(',',''); + bestPrice = +bestPrice.replace(/,/g, ''); return (bestPrice && (price > (bestPrice * fatFingerMarginMultiplier) || @@ -842,7 +908,7 @@ TradeTab.prototype.angular = function(module) if (order.price_amount && order.price_amount.is_valid() && order.first_amount && order.first_amount.is_valid()) { order.second_amount = order.price_amount.product_human(order.first_amount); - order.second = +order.second_amount.to_human({group_sep: false}); + order.second = order.second_amount.to_human({group_sep: false}); } }; @@ -860,15 +926,16 @@ TradeTab.prototype.angular = function(module) order.second_amount && order.second_amount.is_valid()) { if (!order.price_amount.is_native()) { - var price = order.price_amount.to_human(); + var price = order.price_amount.to_human({group_sep: false}); var currency = order.price_amount.currency().to_json(); var issuer = order.price_amount.issuer().to_json(); - order.first_amount = Amount.from_json(order.second_amount.to_text_full()).ratio_human(Amount.from_json(price + '/' + currency + '/' + issuer), {reference_date: new Date()}); + // use replace(/,/g,'') until ripple lib fixed + order.first_amount = Amount.from_json(order.second_amount.to_text_full().replace(/,/g, '')).ratio_human(Amount.from_json(price + '/' + currency + '/' + issuer), {reference_date: new Date()}); } else { - order.first_amount = Amount.from_json(order.second_amount.to_text_full()).ratio_human(Amount.from_json(order.price_amount.to_text()), {reference_date: new Date()}); + order.first_amount = Amount.from_json(order.second_amount.to_text_full().replace(/,/g, '')).ratio_human(Amount.from_json(order.price_amount.to_text()), {reference_date: new Date()}); } - order.first = +order.first_amount.to_human({group_sep: false}); + order.first = order.first_amount.to_human({group_sep: false}); } }; @@ -889,17 +956,12 @@ TradeTab.prototype.angular = function(module) updateMRU(); }; - // TODO: Remove all hardcoded GBI code eventually $scope.$watch('first_currency_selected', function () { $scope.first_issuer_selected = ''; if($scope.first_currency_selected == 'XRP') { $scope.gateway_change_form.first_iss.$setValidity('rpDest', true); $scope.disable_first_issuer = true; } - else if($scope.first_currency_selected == 'XAU (-0.5%pa)'){ - $scope.first_iss = {}; - $scope.first_iss['GBI'] = 'GBI'; - } else { $scope.disable_first_issuer = false; $scope.first_iss = {}; @@ -923,10 +985,6 @@ TradeTab.prototype.angular = function(module) $scope.gateway_change_form.second_iss.$setValidity('rpDest', true); $scope.disable_second_issuer = true; } - else if($scope.second_currency_selected == 'XAU (-0.5%pa)'){ - $scope.second_iss = {}; - $scope.second_iss['GBI'] = 'GBI'; - } else { $scope.disable_second_issuer = false; $scope.second_iss = {}; @@ -944,7 +1002,7 @@ TradeTab.prototype.angular = function(module) } }); - $scope.open_custom_currency_selector = function () { + $scope.open_custom_currency_selector = function() { $scope.first_currency_selected = ''; $scope.first_issuer_selected = ''; $scope.second_currency_selected = ''; @@ -952,14 +1010,18 @@ TradeTab.prototype.angular = function(module) $scope.adding_pair = true; } - $scope.add_pair = function () { + $scope.add_pair = function() { var formattedIssuerFirst = $scope.first_currency_selected === 'XRP' ? '' : '.' + $scope.first_issuer_selected; var formattedIssuerSecond = $scope.second_currency_selected === 'XRP' ? '' : '.' + $scope.second_issuer_selected; + if (($scope.second_currency_selected !== 'XRP' && ($scope.second_issuer_selected == null || $scope.second_issuer_selected === '')) || + ($scope.first_currency_selected !== 'XRP' && ($scope.first_issuer_selected == null || $scope.first_issuer_selected === ''))) { + // this could happen if gate is not validated + return; + } $scope.order.currency_pair = $scope.first_currency_selected + formattedIssuerFirst + '/' + $scope.second_currency_selected + formattedIssuerSecond; - $scope.userBlob.unshift('/trade_currency_pairs', {'name': $scope.order.currency_pair}); - $scope.userBlob.set('/trade_currency_pairs', $scope.pairs_query); + $scope.userBlob.unshift('/clients/rippletradecom/trade_currency_pairs', { name: $scope.order.currency_pair }); $scope.adding_pair = false; }; @@ -981,67 +1043,33 @@ TradeTab.prototype.angular = function(module) } if ('string' !== typeof pair) pair = ''; - pair = pair.split('/'); + + if (pair) { + pair = pair.split('/'); + } // Invalid currency pair - if (pair.length != 2 || pair[0].length === 0 || pair[1].length === 0) { + if (!pair || pair.length != 2 || pair[0].length === 0 || pair[1].length === 0) { order.first_currency = Currency.from_json('XRP'); order.second_currency = Currency.from_json('XRP'); order.valid_settings = false; return; } - var first_currency; - var second_currency; - var contact_to_address1; - var contact_to_address2; - - var first_currency_gbi = pair[0].substring(0,13) == 'XAU (-0.5%pa)' - ? true - : false; - - var second_currency_gbi = pair[1].substring(0,13) == 'XAU (-0.5%pa)' - ? true - : false; - - if(first_currency_gbi){ - first_currency = order.first_currency = ripple.Currency.from_json(pair[0].substring(0,13)); - } - else { - first_currency = order.first_currency = ripple.Currency.from_json(pair[0].substring(0,3)); - } + var first_currency = order.first_currency = ripple.Currency.from_json(pair[0].substring(0,3)); - if(second_currency_gbi){ - second_currency = order.second_currency = ripple.Currency.from_json(pair[1].substring(0,13)); - } - else { - second_currency = order.second_currency = ripple.Currency.from_json(pair[1].substring(0,3)); - } + var second_currency = order.second_currency = ripple.Currency.from_json(pair[1].substring(0,3)); if(first_currency.is_native()) { order.first_issuer = ''; } else { - if(pair[0].substring(0,13) == 'XAU (-0.5%pa)'){ - contact_to_address1 = webutil.resolveContact($scope.userBlob.data.contacts, pair[0].substring(14)); - } - else { - contact_to_address1 = webutil.resolveContact($scope.userBlob.data.contacts, pair[0].substring(4)); - } + var contact_to_address1 = webutil.resolveContact($scope.userBlob.data.contacts, pair[0].substring(4)); if (contact_to_address1) { order.first_issuer = contact_to_address1; } else { - if(pair[0].substring(14, 17) == 'GBI') { - rippleVaultClient.AuthInfo.get(Options.domain, '~' + pair[0].substring(14), function (err, response1) { - if (err) return; - $scope.$apply(function () { - order.first_issuer = response1.address; - }); - - }); - } - else if (pair[0].substring(4, 5) == '~') { + if (pair[0].substring(4, 5) == '~') { rippleVaultClient.AuthInfo.get(Options.domain, pair[0].substring(4), function (err, response1) { if (err) return; $scope.$apply(function () { @@ -1068,26 +1096,12 @@ TradeTab.prototype.angular = function(module) order.second_issuer = ''; } else { - if(pair[1].substring(0,13) == 'XAU (-0.5%pa)'){ - contact_to_address2 = webutil.resolveContact($scope.userBlob.data.contacts, pair[1].substring(14)); - } - else { - contact_to_address2 = webutil.resolveContact($scope.userBlob.data.contacts, pair[1].substring(4)); - } + var contact_to_address2 = webutil.resolveContact($scope.userBlob.data.contacts, pair[1].substring(4)); if (contact_to_address2) { order.second_issuer = contact_to_address2; } else { - if(pair[1].substring(14, 17) == 'GBI') { - rippleVaultClient.AuthInfo.get(Options.domain, '~' + pair[1].substring(14), function (err, response1) { - if (err) return; - $scope.$apply(function () { - order.first_issuer = response1.address; - }); - - }); - } - else if (pair[1].substring(4, 5) == '~') { + if (pair[1].substring(4, 5) == '~') { rippleVaultClient.AuthInfo.get(Options.domain, pair[1].substring(4), function (err, response2) { if (err) return; $scope.$apply(function () { @@ -1132,6 +1146,11 @@ TradeTab.prototype.angular = function(module) // Load orderbook if (order.prev_settings !== key) { changedPair = true; + $scope.priceTicker = { + bid: 'n/a', + ask: 'n/a', + spread: 'n/a' + }; loadOffers(); order.prev_settings = key; @@ -1139,7 +1158,7 @@ TradeTab.prototype.angular = function(module) else if ($scope.book.ready) $scope.editOrder.orderbookReady = true; // Update widgets - ['buy','sell'].forEach(function(type){ + ['buy', 'sell'].forEach(function(type) { $scope.update_first(type); $scope.update_price(type); $scope.update_second(type); @@ -1310,7 +1329,7 @@ TradeTab.prototype.angular = function(module) }, $scope.address); $scope.orderbookState = 'ready'; - }; + } $scope.toggleOffers = function() { $scope.hideOffers = !$scope.hideOffers; @@ -1345,22 +1364,28 @@ TradeTab.prototype.angular = function(module) ($scope.lines[second_issuer+($scope.order.second_currency.has_interest() ? $scope.order.second_currency.to_hex() : $scope.order.second_currency.to_json())] && $scope.lines[second_issuer+($scope.order.second_currency.has_interest() ? $scope.order.second_currency.to_hex() : $scope.order.second_currency.to_json())].balance.is_positive()); + canBuy = !second_currency.is_native() || !$scope.account.max_spend ? canBuy : canBuy && $scope.account.max_spend.is_positive(); + var canSell = first_currency.is_native() || first_issuer == $scope.address || ($scope.lines[first_issuer+($scope.order.first_currency.has_interest() ? $scope.order.first_currency.to_hex() : $scope.order.first_currency.to_json())] && $scope.lines[first_issuer+($scope.order.first_currency.has_interest() ? $scope.order.first_currency.to_hex() : $scope.order.first_currency.to_json())].balance.is_positive()); + canSell = !first_currency.is_native() || !$scope.account.max_spend ? canSell : canSell && $scope.account.max_spend.is_positive(); + $scope.order.buy.showWidget = canBuy; $scope.order.sell.showWidget = canSell; }; - var updateTypeBook = function (type) { + var updateTypeBook = function(type) { if ($scope.book && $scope.book[type + 'LastUpdate']) { $scope.load_orderbook = false; } if (!$scope.book || !$scope.book[type] || !$scope.book[type].length) return; + var oldBookShow = $scope.bookShow[type]; + $scope.bookShow[type] = jQuery.extend(true, [], $scope.book[type]); lastUpdate = new Date(); @@ -1375,19 +1400,31 @@ TradeTab.prototype.angular = function(module) var newValuesLength = $scope.bookShow[type].length; + var oldBookShowIndex = _.indexBy(oldBookShow, 'BookDirectory'); + var isUpdate = oldBookShow.length > 0; + for (i = 0; i < newValuesLength; i++) { - $scope.bookShow[type][i].showSum = rpamountFilter($scope.bookShow[type][i].sum, OrderbookFilterOpts); - $scope.bookShow[type][i].showPrice = rpamountFilter($scope.bookShow[type][i].price, OrderbookFilterOpts); + var order = $scope.bookShow[type][i]; + order.showSum = rpamountFilter(order.sum, OrderbookFilterOpts); + order.showPrice = rpamountFilter(order.price, OrderbookFilterOpts); var showValue = type === 'bids' ? 'TakerPays' : 'TakerGets'; - $scope.bookShow[type][i]['show' + showValue] = rpamountFilter($scope.bookShow[type][i][showValue], OrderbookFilterOpts); + order['show' + showValue] = rpamountFilter(order[showValue], OrderbookFilterOpts); + order.isNew = isUpdate && !oldBookShowIndex[order.BookDirectory]; + if (isUpdate && !order.isNew) { + order.isChanged = order['show' + showValue] !== oldBookShowIndex[order.BookDirectory]['show' + showValue] || + order.showPrice !== oldBookShowIndex[order.BookDirectory].showPrice; + } } $scope.priceTicker[type.substring(0, 3)] = rpamountFilter($scope.bookShow[type][0].price, OrderbookTickerFilterOpts); if ($scope.book.ready) { $scope.editOrder.orderbookReady = true; - $scope.priceTicker.spread = rpamountFilter($scope.book.asks[0].price.subtract($scope.book.bids[0].price), OrderbookTickerFilterOpts); + + if ($scope.book.asks[0] && $scope.book.bids[0]) { + $scope.priceTicker.spread = rpamountFilter($scope.book.asks[0].price.subtract($scope.book.bids[0].price), OrderbookTickerFilterOpts); + } } }; @@ -1409,7 +1446,7 @@ TradeTab.prototype.angular = function(module) /** * Watch widget field changes */ - ['buy','sell'].forEach(function(type){ + ['buy', 'sell'].forEach(function(type){ $scope.$watch('order.' + type + '.first', function () { $scope.update_first(type); }, true); @@ -1434,25 +1471,29 @@ TradeTab.prototype.angular = function(module) } $scope.load_orderbook = true; + $scope.reset_widget('buy', true); + $scope.reset_widget('sell', true); + updateSettings(); resetIssuers(false); //updateMRU(); }, true); - function update_pairs(){ - if(!$scope.userBlob.data.trade_currency_pairs){ - $scope.pairs_query = [{'name': 'XRP/USD.SnapSwap'}, - {'name': 'XRP/USD.Bitstamp'}, - {'name': 'XRP/JPY.TokyoJPY'}, - {'name': 'BTC.Bitstamp/XRP'}, - {'name': 'BTC.SnapSwap/XRP'}]; + function update_pairs() { + var d = $scope.userBlob.data; + if (!settings.hasSetting($scope.userBlob, 'trade_currency_pairs')) { + $scope.pairs_query = [{name: 'XRP/USD.SnapSwap' }, + { name: 'XRP/USD.Bitstamp' }, + { name: 'XRP/JPY.TokyoJPY' }, + { name: 'BTC.Bitstamp/XRP' }, + { name: 'BTC.SnapSwap/XRP' }]; } else { - $scope.pairs_query = $scope.userBlob.data.trade_currency_pairs; + $scope.pairs_query = settings.getSetting($scope.userBlob, 'trade_currency_pairs'); } } - if($scope.userBlob.data){ + if ($scope.userBlob.data) { update_pairs(); } @@ -1461,7 +1502,6 @@ TradeTab.prototype.angular = function(module) resetIssuers(false); }); - $scope.$watch('order.type', function () { updateCanBuySell(); }); diff --git a/src/js/tabs/trust.js b/src/js/tabs/trust.controller.js similarity index 92% rename from src/js/tabs/trust.js rename to src/js/tabs/trust.controller.js index 7ee61dc50..7bb2fab45 100644 --- a/src/js/tabs/trust.js +++ b/src/js/tabs/trust.controller.js @@ -15,11 +15,6 @@ util.inherits(TrustTab, Tab); TrustTab.prototype.tabName = 'trust'; TrustTab.prototype.mainMenu = 'fund'; -TrustTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/trust.jade')(); -}; - TrustTab.prototype.angular = function (module) { module.controller('TrustCtrl', ['$scope', 'rpBooks', '$timeout', '$routeParams', 'rpId', @@ -71,6 +66,9 @@ TrustTab.prototype.angular = function (module) // User should not even be able to try granting a trust if the reserve is insufficient $scope.$watch('account', function() { + // Check if account has DefaultRipple flag set + $scope.acctDefaultRippleFlag = ($scope.account.Flags & ripple.Remote.flags.account_root.DefaultRipple); + $scope.can_add_trust = false; if ($scope.account.Balance && $scope.account.reserve_to_add_trust) { if (!$scope.account.reserve_to_add_trust.subtract($scope.account.Balance).is_positive() @@ -327,11 +325,14 @@ TrustTab.prototype.angular = function (module) var obj = {}; _.each($scope.lines, function(line){ - if (!obj[line.currency]) { - obj[line.currency] = { components: [] }; - } - obj[line.currency].components.push(line); + if ($scope.isSignificantLine(line)) { + if (!obj[line.currency]) { + obj[line.currency] = { components: [] }; + } + + obj[line.currency].components.push(line); + } }); $scope.accountLines = obj; @@ -346,7 +347,16 @@ TrustTab.prototype.angular = function (module) module.controller('AccountRowCtrl', ['$scope', 'rpBooks', 'rpNetwork', 'rpId', 'rpKeychain', '$timeout', function ($scope, books, network, id, keychain, $timeout) { - + $scope.minVal = $scope.entry.components[0].limit_peer.to_human({rel_precision: 2}); + // if($scope.minVal % 10 === 0) { + // $scope.minVal = String($scope.minVal) + ".00"; + // console.warn($scope.minVal) + // console.warn($scope.minVal) + // } + if($scope.minVal !== 0) { + $scope.minVal = -(1) * $scope.minVal; + } + $scope.minVal = Number($scope.minVal).toFixed(2); function setEngineStatus(res, accepted) { $scope.engine_result = res.engine_result; $scope.engine_result_message = res.engine_result_message; @@ -377,12 +387,12 @@ TrustTab.prototype.angular = function (module) $scope.editing = false; }; - $scope.edit_account = function() { $scope.editing = true; $scope.trust = {}; - $scope.trust.limit = Number($scope.component.limit.to_json().value); + // edit as string because Chrome shows tiny numbers in e-notation + $scope.trust.limit = String($scope.component.limit.to_json().value); $scope.trust.rippling = !$scope.component.no_ripple; $scope.trust.limit_peer = Number($scope.component.limit_peer.to_json().value); $scope.trust.balance = String($scope.component.balance.to_json().value); @@ -404,6 +414,7 @@ TrustTab.prototype.angular = function (module) { $scope.trust.loading = true; $scope.load_notification('remove_gateway'); + $scope.trust.state = 'removing'; var setSecretAndSubmit = function(tx) { tx @@ -457,16 +468,7 @@ TrustTab.prototype.angular = function (module) tx.trustSet(idAccount, '0' + '/' + lineCurrency + '/' + lineAccount); - var account = network.remote.account(id.account); - // Check if account has DefaultRipple flag set - account.entry(function (e, data) { - if (e) { - console.log('Error: ', e); - } else { - (data.account_data.Flags & ripple.Remote.flags.account_root.DefaultRipple) - ? tx.setFlags('ClearNoRipple') : tx.setFlags('NoRipple'); - } - }); + $scope.acctDefaultRippleFlag ? tx.setFlags('ClearNoRipple') : tx.setFlags('NoRipple'); setSecretAndSubmit(tx); }; @@ -560,6 +562,7 @@ TrustTab.prototype.angular = function (module) $scope.save_account = function () { $scope.trust.loading = true; + $scope.trust.state = 'saving'; var amount = ripple.Amount.from_human( $scope.trust.limit + ' ' + $scope.component.currency, @@ -633,14 +636,25 @@ TrustTab.prototype.angular = function (module) }); }; - $scope.isIncoming = function () { - return $scope.component.limit_peer._value.t !== 0; + $scope.isIncomingOnly = function () { + return ($scope.component.limit.is_zero() && !$scope.component.limit_peer.is_zero()); }; + $scope.ripplingEnabled = function() { + return !$scope.component.no_ripple; + } + + $scope.showEnableRipplingWarningMessage = function() { + return ($scope.isIncomingOnly() && + !$scope.ripplingEnabled() && + $scope.trust.rippling && + $scope.trust.balance !== '0'); + } + }]); }; -module.exports = TrustTab; \ No newline at end of file +module.exports = TrustTab; diff --git a/src/js/tabs/twofa.js b/src/js/tabs/twofa.js deleted file mode 100644 index b30caa855..000000000 --- a/src/js/tabs/twofa.js +++ /dev/null @@ -1,203 +0,0 @@ -var util = require('util'); -var Tab = require('../client/tab').Tab; - -var TwoFATab = function () -{ - Tab.call(this); -}; - -util.inherits(TwoFATab, Tab); - -TwoFATab.prototype.tabName = 'twofa'; -TwoFATab.prototype.mainMenu = 'twofa'; - -TwoFATab.prototype.generateHtml = function () -{ - return; -}; - -TwoFATab.prototype.angular = function(module) -{ - module.controller('TwoFACtrl', ['$scope', 'rpId', 'rpKeychain', 'rpAuthFlow', '$timeout', - function ($scope, id, keychain, authflow, $timeout) - { - - if (!$scope.twoFAVerify) $scope.twoFAVerify = true; - if (!$scope.editNum) $scope.editNum = false; - if (!$scope.verificationCode) $scope.verificationCode = ''; - if (!$scope.editPhone) $scope.editPhone = false; - if (!$scope.phoneLoading) $scope.phoneLoading = false; - - window.Authy.UI.instance(true, $scope.countryCode); - - $scope.validation_pattern_phone = /^[0-9]*$/; - - $scope.$on('$blobUpdate', onBlobUpdate); - onBlobUpdate(); - - function onBlobUpdate() - { - if ("function" === typeof $scope.userBlob.encrypt) { - $scope.enc = $scope.userBlob.encrypt(); - } - - $scope.requirePassword = !$scope.userBlob.data.persistUnlock; - - if (!$scope.loaded2FA && "function" === typeof $scope.userBlob.get2FA) { - $scope.userBlob.get2FA(function(err, resp) { - $scope.$apply(function(){ - if (err) { - console.log('Error: ', err); - return; - } - - $scope.phoneNumber = resp.phone; - $scope.countryCode = resp.country_code; - }); - }); - } - } - - $scope.edit_toggle = function() { - $scope.twoFAVerify = !$scope.twoFAVerify; - $scope.editNum = !$scope.editNum; - }; - - $scope.requestToken = function(force, callback) { - authflow.requestToken($scope.userBlob.url, $scope.userBlob.id, force, function(tokenError, tokenResp) { - if (tokenError) { - $scope.load_notification('request_token_error'); - $scope.phoneLoading = false; - return; - } else { - if (callback) { - callback(tokenError, tokenResp); - } - } - - }); - }; - - $scope.savePhone = function() { - $scope.phoneLoading = true; - $scope.load_notification('loading'); - - $scope.savingPhone = true; - - keychain.requestSecret(id.account, id.username, function(err, secret) { - if (err) { - $scope.savingPhone = false; - $scope.load_notification('general_error'); - console.log('Error: ', err); - $scope.phoneLoading = false; - return; - } - - var options = { - masterkey : secret, - phone : $scope.phoneNumber, - country_code : $scope.countryCode - }; - - $scope.userBlob.set2FA(options, function(err, resp) { - $scope.$apply(function(){ - if (err) { - if (err.message === 'invalid phone') { - $scope.load_notification('phone_error'); - } - - $scope.savingPhone = false; - console.log(err, resp); - $scope.phoneLoading = false; - return; - } else { - - $scope.currentPhone = options.phone; - $scope.currentCountryCode = options.country_code; - - //request verification token - $scope.requestToken(false, function(err, resp) { - if (err) { - $scope.savingPhone = false; - $scope.load_notification('general_error'); - console.log("Error: ", err); - $scope.phoneLoading = false; - return; - } - $scope.load_notification('clear'); - $scope.twoFAVerify = false; - $scope.savingPhone = false; - $scope.phoneLoading = false; - }); - } - }); - }); - }); - }; - - $scope.enable2FA = function() { - - $scope.load_notification('loading'); - $scope.isVerifying = true; - - var options = { - url : $scope.userBlob.url, - id : $scope.userBlob.id, - token : $scope.verificationCode, - remember_me : false - }; - - authflow.verifyToken(options, function(err, resp){ - - if (err) { - $scope.load_notification('invalid_token'); - $scope.isVerifying = false; - console.log('Error: ', err); - return; - } - - keychain.requestSecret(id.account, id.username, function(err, secret) { - - if (err) { - $scope.load_notification('general_error'); - $scope.isVerifying = false; - consoe.log('Error: ', err); - return; - } - - var options = { - masterkey : secret, - enabled : true - }; - - $scope.userBlob.set2FA(options, function(err, resp) { - - $scope.$apply(function() { - $scope.isVerifying = false; - - if (err) { - $scope.load_notification('general_error'); - $scope.error2FA = true; - console.log("Error: ", err); - } else { - $scope.load_notification('2fa_done'); - - //remove old device ID so that - //next login will require 2FA - store.remove('device_id'); - - $timeout(function() { - location.href = "#/usd"; - }, 2000); - } - }); - }); - }); - }); - }; - - }] - ); -}; - -module.exports = TwoFATab; diff --git a/src/js/tabs/tx.controller.js b/src/js/tabs/tx.controller.js new file mode 100644 index 000000000..656ce1975 --- /dev/null +++ b/src/js/tabs/tx.controller.js @@ -0,0 +1,43 @@ +var util = require('util'); +var Tab = require('../client/tab').Tab; +var rewriter = require('../util/jsonrewriter'); + +var TxTab = function () +{ + Tab.call(this); +}; + +util.inherits(TxTab, Tab); + +TxTab.prototype.tabName = 'tx'; + +TxTab.prototype.angular = function (module) +{ + module.controller('TxCtrl', ['$scope', '$routeParams', + function ($scope, $routeParams) + { + $scope.state = 'loading'; + $scope.transaction = { + hash: $routeParams.id + }; + + var initialLoad = $scope.$watch('userHistory', function(){ + if (!$scope.userHistory) return; + + // Get transaction + $scope.userHistory.getTransaction($routeParams.id) + .success(function(data){ + $.extend($scope.transaction, data.transaction.tx); + + $scope.transaction.ledger = data.transaction.ledger_index; + $scope.transaction.amountSent = rewriter.getAmountSent(data.transaction.tx, data.transaction.meta); + $scope.state = 'loaded'; + }) + .error(function(){}); + + initialLoad(); + }); + }]); +}; + +module.exports = TxTab; diff --git a/src/js/tabs/tx.js b/src/js/tabs/tx.js deleted file mode 100644 index 91c54cb68..000000000 --- a/src/js/tabs/tx.js +++ /dev/null @@ -1,61 +0,0 @@ -var util = require('util'); -var Tab = require('../client/tab').Tab; -var rewriter = require('../util/jsonrewriter'); - -var TxTab = function () -{ - Tab.call(this); -}; - -util.inherits(TxTab, Tab); - -TxTab.prototype.tabName = 'tx'; - -TxTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/tx.jade')(); -}; - -TxTab.prototype.angular = function (module) -{ - module.controller('TxCtrl', ['$scope', 'rpNetwork', '$routeParams', 'rpId', '$location', - function ($scope, net, $routeParams, id, $location) - { - $scope.state = 'loading'; - $scope.transaction = { - hash: $routeParams.id - }; - - function loadTx() { - // XXX: Dirty, dirty. But it's going to change soon anyway. - var request = net.remote.request_ledger_hash(); - request.message.command = 'tx'; - request.message.transaction = $routeParams.id; - request.on('success', function (res) { - $scope.$apply(function () { - $scope.state = 'loaded'; - // XXX This is for the upcoming tx RPC call format change. - var tx = res.tx ? res.tx : res; - _.extend($scope.transaction, res); - - $scope.amountSent = rewriter.getAmountSent(tx, tx.meta); - }); - }); - request.on('error', function (res) { - $scope.$apply(function () { - $scope.state = 'error'; - console.log(res); - }); - }); - request.request(); - } - - if (net.connected) loadTx(); - else var removeListener = $scope.$on('$netConnected', function () { - removeListener(); - loadTx(); - }); - }]); -}; - -module.exports = TxTab; diff --git a/src/js/tabs/usd.js b/src/js/tabs/usd.controller.js similarity index 56% rename from src/js/tabs/usd.js rename to src/js/tabs/usd.controller.js index 4d734c5f1..6f260742d 100644 --- a/src/js/tabs/usd.js +++ b/src/js/tabs/usd.controller.js @@ -11,11 +11,6 @@ util.inherits(UsdTab, Tab); UsdTab.prototype.tabName = 'usd'; UsdTab.prototype.mainMenu = 'fund'; -UsdTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/usd.jade')(); -}; - UsdTab.prototype.extraRoutes = [ { name: '/usd/:result' } ]; @@ -30,6 +25,9 @@ UsdTab.prototype.angular = function (module) $scope.showInstructions = !$scope.showInstructions; } + $scope.toggle_usd_instructions = function (){ + $scope.showUsdInstructions = !$scope.showUsdInstructions; + } $scope.save_account = function (){ @@ -132,6 +130,108 @@ UsdTab.prototype.angular = function (module) }; + $scope.save_usd_account = function (){ + + $scope.usdLoading = true; + + var amount = ripple.Amount.from_human( + Options.gateway_max_limit + ' ' + 'USD', + {reference_date: new Date(+new Date() + 5*60000)} + ); + + amount.set_issuer("rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B"); + + if (!amount.is_valid()) { + // Invalid amount. Indicates a bug in one of the validators. + console.log('Invalid amount'); + return; + } + + var tx = network.remote.transaction(); + + // Add memo to tx + tx.addMemo('client', 'rt' + $scope.version); + + // Flags + tx + .rippleLineSet(id.account, amount) + .on('proposed', function(res){ + $scope.$apply(function () { + setEngineStatus(res, false); + }); + }) + .on('success', function (res) { + $scope.$apply(function () { + setEngineStatus(res, true); + + $scope.usdLoading = false; + $scope.usdediting = false; + }); + }) + .on('error', function (res) { + setEngineStatus(res, false); + console.log('error', res); + setImmediate(function () { + $scope.$apply(function () { + $scope.usdMode = 'error'; + + $scope.usdLoading = false; + $scope.usdediting = false; + }); + }); + }); + + function setEngineStatus(res, accepted) { + $scope.usd_engine_result = res.engine_result; + $scope.usd_engine_result_message = res.engine_result_message; + $scope.usd_engine_status_accepted = accepted; + + switch (res.engine_result.slice(0, 3)) { + case 'tes': + $scope.usd_tx_result = accepted ? 'cleared' : 'pending'; + break; + case 'tem': + $scope.usd_tx_result = 'malformed'; + break; + case 'ter': + $scope.usd_tx_result = 'failed'; + break; + case 'tec': + $scope.usd_tx_result = 'failed'; + break; + case 'tel': + $scope.usd_tx_result = "local"; + break; + case 'tep': + console.warn('Unhandled engine status encountered!'); + } + if ($scope.usd_tx_result=="cleared"){ + $scope.usd2Connected = true; + $scope.showUsdInstructions = true; + + } + console.log($scope.usd_tx_result); + } + + keychain.requestSecret(id.account, id.username, function (err, secret) { + // XXX Error handling + if (err) { + $scope.usdLoading = false; + console.log(err); + return; + } + + $scope.usdMode = 'granting'; + + tx.secret(secret); + tx.submit(); + + + }); + + }; + + $scope.$watch('lines', function () { if($scope.lines['rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2qUSD']){ $scope.usdConnected = true; @@ -139,6 +239,12 @@ UsdTab.prototype.angular = function (module) else { $scope.usdConnected = false; } + if($scope.lines['rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59BUSD']){ + $scope.usd2Connected = true; + } + else { + $scope.usd2Connected = false; + } }, true); // User should be notified if the reserve is insufficient to add a gateway diff --git a/src/js/tabs/withdraw.js b/src/js/tabs/withdraw.controller.js similarity index 81% rename from src/js/tabs/withdraw.js rename to src/js/tabs/withdraw.controller.js index 82cdcfe1a..dda780814 100644 --- a/src/js/tabs/withdraw.js +++ b/src/js/tabs/withdraw.controller.js @@ -11,11 +11,6 @@ util.inherits(WithdrawTab, Tab); WithdrawTab.prototype.tabName = 'withdraw'; WithdrawTab.prototype.mainMenu = 'fund'; -WithdrawTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/withdraw.jade')(); -}; - WithdrawTab.prototype.angular = function (module) { module.controller('WithdrawCtrl', ['$rootScope', 'rpId', 'rpAppManager', diff --git a/src/js/tabs/xrp.js b/src/js/tabs/xrp.controller.js similarity index 82% rename from src/js/tabs/xrp.js rename to src/js/tabs/xrp.controller.js index f889987fe..d5ee269ec 100644 --- a/src/js/tabs/xrp.js +++ b/src/js/tabs/xrp.controller.js @@ -11,12 +11,6 @@ util.inherits(XrpTab, Tab); XrpTab.prototype.tabName = 'xrp'; XrpTab.prototype.mainMenu = 'fund'; -XrpTab.prototype.generateHtml = function () -{ - return require('../../jade/tabs/xrp.jade')(); -}; - - XrpTab.prototype.angular = function (module) { module.controller('XrpCtrl', ['$scope', 'rpId', function ($scope, id) diff --git a/src/js/util/jsonrewriter.js b/src/js/util/jsonrewriter.js index 1709dc0c1..e62e36d1f 100644 --- a/src/js/util/jsonrewriter.js +++ b/src/js/util/jsonrewriter.js @@ -26,6 +26,30 @@ var getPrice = function(effect, referenceDate) { return price || 0; }; +var getStraightPrice = function(effect, referenceDate) { + var g = effect.got ? effect.got : effect.gets; + var p = effect.paid ? effect.paid : effect.pays; + var price; + + if (!p.is_zero() && !g.is_zero()) { + price = g.ratio_human(p, {reference_date: referenceDate}); + } + + return price || 0; +}; + +var getInvStraightPrice = function(effect, referenceDate) { + var g = effect.got ? effect.got : effect.gets; + var p = effect.paid ? effect.paid : effect.pays; + var price; + + if (!p.is_zero() && !g.is_zero()) { + price = p.ratio_human(g, {reference_date: referenceDate}); + } + + return price || 0; +}; + /** * Determine if the transaction is a 'rippling' transaction based on effects * @@ -201,6 +225,10 @@ var JsonRewriter = module.exports = { var diff = String(difference); amtSent = cur ? {value: diff, currency : cur} : diff; } + + else { + amtSent = tx.Amount; + } } } @@ -273,7 +301,15 @@ var JsonRewriter = module.exports = { if ('tesSUCCESS' === meta.TransactionResult) { switch (tx.TransactionType) { case 'Payment': - var amount = ripple.Amount.from_json(tx.Amount); + + var amount; + // If partial payment, use delivered amount + if(meta.DeliveredAmount){ + amount = ripple.Amount.from_json(meta.DeliveredAmount); + } + else { + amount = ripple.Amount.from_json(tx.Amount); + } if (tx.Account === account) { if (tx.Destination === account) { @@ -397,19 +433,30 @@ var JsonRewriter = module.exports = { var high = node.fields.HighLimit; var low = node.fields.LowLimit; + var viewHigh = high.issuer === account; + + // old method, because sometimes there is no transaction + var which = viewHigh ? 'HighNoRipple' : 'LowNoRipple'; - var which = high.issuer === account ? 'HighNoRipple' : 'LowNoRipple'; + if (obj.transaction) { + which = obj.transaction.type === 'trusting' ? (viewHigh ? 'HighNoRipple' : 'LowNoRipple') : + (viewHigh ? 'LowNoRipple' : 'HighNoRipple'); + } // New trust line if (node.diffType === 'CreatedNode') { - effect.limit = ripple.Amount.from_json(high.value > 0 ? high : low); - effect.limit_peer = ripple.Amount.from_json(high.value > 0 ? low : high); + effect.limit = ripple.Amount.from_json(viewHigh ? high : low); + effect.limit_peer = ripple.Amount.from_json(viewHigh ? low : high); - if ((high.value > 0 && high.issuer === account) - || (low.value > 0 && low.issuer === account)) { - effect.type = 'trust_create_local'; + if (obj.transaction) { + effect.type = obj.transaction.type === 'trusting' ? 'trust_create_local' : 'trust_create_remote'; } else { - effect.type = 'trust_create_remote'; + if ((high.value > 0 && high.issuer === account) + || (low.value > 0 && low.issuer === account)) { + effect.type = 'trust_create_local'; + } else { + effect.type = 'trust_create_remote'; + } } } @@ -485,6 +532,10 @@ var JsonRewriter = module.exports = { ? ripple.Amount.from_json(node.fields.Balance).negate(true) : ripple.Amount.from_json(node.fields.Balance); + if (effect.balance.is_zero() && effect.balance.is_negative()) { + effect.balance = effect.balance.negate(true); + } + if (obj.transaction && obj.transaction.type === 'trust_change_balance') { obj.transaction.balance = effect.balance; } @@ -498,13 +549,11 @@ var JsonRewriter = module.exports = { // Offer else if (node.entryType === 'Offer') { - // For new and cancelled offers we use 'fields' var fieldSet = node.fields; // Current account offer if (node.fields.Account === account) { - // Partially funded offer [and deleted.. no more funds] /* Offer has been partially funded and deleted (because of the luck of funds) if the node is deleted and the TakerGets/TakerPays field has been changed */ @@ -538,7 +587,6 @@ var JsonRewriter = module.exports = { if (effect.type === 'offer_cancelled' && obj.transaction && obj.transaction.type === 'offercancel') { - // Fill in remaining information about offer obj.transaction.gets = fieldSet.TakerGets; obj.transaction.pays = fieldSet.TakerPays; @@ -549,7 +597,8 @@ var JsonRewriter = module.exports = { } // Another account offer. We care about it only if our transaction changed the offer amount (we bought currency) - else if(tx.Account === account && !$.isEmptyObject(node.fieldsPrev) /* Offer is unfunded if node.fieldsPrev is empty */) { + else if (tx.Account === account && !$.isEmptyObject(node.fieldsPrev) // Offer is unfunded if node.fieldsPrev is empty + && !$.isEmptyObject(node.fieldsPrev.TakerGets) && !$.isEmptyObject(node.fieldsPrev.TakerPays)) { // TakerGets or TakerPays might not be there if the change is smaller then a drop effect.type = 'offer_bought'; } @@ -561,16 +610,16 @@ var JsonRewriter = module.exports = { effect.got = ripple.Amount.from_json(node.fieldsPrev.TakerGets).subtract(node.fields.TakerGets); effect.paid = ripple.Amount.from_json(node.fieldsPrev.TakerPays).subtract(node.fields.TakerPays); } - } - if (effect.gets && effect.pays) { effect.price = getPrice(effect, tx.date); - } + effect.straightPrice = getStraightPrice(effect, tx.date); + effect.invStraightPrice = getInvStraightPrice(effect, tx.date); - // Flags - if (node.fields.Flags) { - effect.flags = node.fields.Flags; - effect.sell = node.fields.Flags & ripple.Remote.flags.offer.Sell; + // Flags + if (node.fields.Flags) { + effect.flags = node.fields.Flags; + effect.sell = node.fields.Flags & ripple.Remote.flags.offer.Sell; + } } } @@ -616,7 +665,7 @@ var JsonRewriter = module.exports = { obj.tx_type = tx.TransactionType; obj.tx_result = meta.TransactionResult; - obj.fee = hasFee ? tx.Fee : 0; + obj.fee = ripple.Amount.from_json(hasFee ? tx.Fee : 0); obj.date = ripple.utils.toTimestamp(tx.date); obj.dateRaw = tx.date; obj.hash = tx.hash; diff --git a/src/js/util/settings.js b/src/js/util/settings.js new file mode 100644 index 000000000..71e89ea17 --- /dev/null +++ b/src/js/util/settings.js @@ -0,0 +1,77 @@ + +/** + * Check if userblob is actual blob class, not just empty dummy object + * + * @param userBlob + */ +exports.blobIsValid = function(userBlob) { + // return userBlob instanceof rippleVaultClient.Blob; + // TODO use instanceof instead of this ugly construction + return typeof userBlob === 'object' && + userBlob.hasOwnProperty('data') && + userBlob.hasOwnProperty('encrypted_secret') && + typeof userBlob.unshift === 'function'; +}; + +/** + * Check if there is such setting in user blob + * use like hasSetting($scope.userBlob, 'trust.advancedMode') + * + * @param userBlob + * @param settingName + */ +exports.hasSetting = function(userBlob, settingName) { + if (!userBlob || !userBlob.data || typeof settingName !== 'string') return false; + var d = userBlob.data; + if (d.clients && d.clients.rippletradecom) { + var parts = settingName.split('.'); + var o = d.clients.rippletradecom; + while (parts.length) { + var part = parts.shift(); + if (_.has(o, part)) { + o = o[part]; + } else { + return false; + } + } + return true; + } + return false; +}; + +/** + * Check if there is such setting in user blob + * use like var s = getSetting($scope.userBlob, 'trust.advancedMode', false); + * + * @param userBlob + * @param settingName + * @param def Default value. Optional. + */ +exports.getSetting = function(userBlob, settingName, def) { + if (!userBlob || !userBlob.data || typeof settingName !== 'string') return def; + var d = userBlob.data; + if (d.clients && d.clients.rippletradecom) { + var parts = settingName.split('.'); + var o = d.clients.rippletradecom; + while (parts.length) { + var part = parts.shift(); + if (_.has(o, part)) { + o = o[part]; + } else { + return def; + } + } + return o; + } + return def; +}; + +exports.getClearServers = function(servers) { + return _.map(servers, function(server) { + var o = _.pick(server, 'host', 'port', 'secure'); + // when edited it comes as string from input, + // so convert to number to be stored in blob in consisten way + o.port = Number(o.port); + return o; + }); +}; diff --git a/src/js/validators/rpWebsocket.directive.js b/src/js/validators/rpWebsocket.directive.js new file mode 100644 index 000000000..2bdb0d6a4 --- /dev/null +++ b/src/js/validators/rpWebsocket.directive.js @@ -0,0 +1,65 @@ +/** + * Websocket validator + */ + +var module = angular.module('validators'); + +module.directive('rpWebsocket', function($q, $timeout, $parse) { + return { + restrict: 'A', + require: '?ngModel', + link: function (scope, elm, attr, ctrl) { + if (!ctrl) return; + + ctrl.$asyncValidators.rpWebsocket = function(value) { + + var defer = $q.defer(), + connection; + + if (!value) return $q.reject(false); + + $timeout(function() { + try { + connection = new WebSocket( + // something like 'wss://host:port' + (attr.rpWebsocketSecure === 'true' ? 'wss' : 'ws') + '://' + + value + + (attr.rpWebsocketPort ? ':' + attr.rpWebsocketPort : '') + ); + } catch (err) {} + + if (!connection) return $q.reject(false); + + connection.onopen = function() { + connection.send('{"command": "ping"}'); + }; + + connection.onerror = function(e) { + defer.reject(); + }; + + connection.onmessage = function(e) { + if (JSON.parse(e.data).status === 'success') { + defer.resolve(); + } else { + defer.reject(); + } + }; + }, 500); + return defer.promise; + }; + + attr.$observe('rpWebsocket', function(val) { + ctrl.$validate(); + }); + + attr.$observe('rpWebsocketPort', function(val) { + ctrl.$validate(); + }); + + attr.$observe('rpWebsocketSecure', function(val) { + ctrl.$validate(); + }); + } + }; +}); diff --git a/src/less/fontawesome/variables.less b/src/less/fontawesome/variables.less index f40a555f0..8beeb50f8 100755 --- a/src/less/fontawesome/variables.less +++ b/src/less/fontawesome/variables.less @@ -1,7 +1,7 @@ // Variables // -------------------------- -@fa-font-path: "../fonts"; +@fa-font-path: "/fonts"; //@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.0.3/fonts"; // for referencing Bootstrap CDN font files directly @fa-css-prefix: fa; @fa-version: "4.0.3"; diff --git a/src/less/ripple/authy.less b/src/less/ripple/authy.less index 976640e3a..e03f4c718 100644 --- a/src/less/ripple/authy.less +++ b/src/less/ripple/authy.less @@ -43,12 +43,12 @@ cursor: pointer; width: 11px; height: 11px; - background: url('../img/authy-close.gif') no-repeat 0 0; + background: url('/img/authy-close.gif') no-repeat 0 0; } #authy-token { padding: 3px 0 3px 25px; - background: url('../img/authy-icon.png') no-repeat 2px center; + background: url('/img/authy-icon.png') no-repeat 2px center; background-size: 18px 18px; } @@ -90,7 +90,7 @@ [class^="flag-"], [class*="flag-"] { - background: url('../img/authy-flags.png') no-repeat; + background: url('/img/authy-flags.png') no-repeat; } .aflag { diff --git a/src/less/ripple/buttons.less b/src/less/ripple/buttons.less index d39bea2f2..d354b2d4b 100644 --- a/src/less/ripple/buttons.less +++ b/src/less/ripple/buttons.less @@ -1,7 +1,7 @@ .btn { // font-family: 'OpenSansLight'; font-size: 14px; - font-family: OpenSansRegular; + font-family: OpenSansRegular; border: none; line-height: 1em; padding-top: 1em; @@ -52,7 +52,6 @@ .btn-success { margin-bottom: 5px; } - .btn.btn-lg.btn-submit { font-size: 16px; line-height: 24px; @@ -68,11 +67,27 @@ padding-left: 10px; padding-right: 10px; } -.btn-nomargin-xs { - @media (max-width: @screen-xs-max) { - margin: 0;  - } + +@media (max-width: @screen-xs-max) { + .btn-nomargin-xs { + margin: 0; + } } + .btn-add-trust { float: right; -} \ No newline at end of file +} + +.custom-btn { + padding-top: 14px; + padding-bottom: 14px; + font-size: 14px; +} + +.btn-danger { + &:disabled { + color: @btn-danger-color; + background: @btn-danger-bg; + border: 1px solid @btn-danger-border; + } +} diff --git a/src/less/ripple/content.less b/src/less/ripple/content.less index d86b1ca74..ec8aadafc 100644 --- a/src/less/ripple/content.less +++ b/src/less/ripple/content.less @@ -2,7 +2,7 @@ // Temporary @media (max-width: @screen-xs-max) { - .t-login, .t-register, .t-migrate, .t-tou, .t-privacypolicy { + .t-login, .t-tou, .t-privacypolicy { header { display: none; } @@ -50,10 +50,6 @@ h1 { font-weight: normal; } -.twoFAInfo { - margin: 50px auto; -} - .connectModal { .grey-focus { background-color: @lightgray; @@ -195,6 +191,11 @@ h1 { p.literal, span.literal, a.literal { font: 16px 'OpenSansRegular'; + &.landing { + font-size: 14px; + color: @landingblue; + } + strong { font-family: 'OpenSansBold'; font-weight: normal; @@ -214,6 +215,7 @@ h1 { p.hint { font-size: 1em; margin-top: 0; + color: @landingblue; } p.lit-small { @@ -222,7 +224,7 @@ h1 { .throbber { min-height: 24px; - background-image: url(../../img/throbber.gif); + background-image: url(/img/throbber.gif); background-repeat: no-repeat; padding-left: 24px + 10px; } @@ -323,10 +325,15 @@ h1 { // Tooltip .tooltip { opacity: 1 !important; + min-width: 150px; + + &.bottom .tooltip-arrow { + border-bottom-color: @midgray; + } .tooltip-inner { background: @white; - border: 1px solid @lightgray; + border: 1px solid @midgray; .border-radius(3px,3px,3px,3px); color: @darkgray; padding: 8px 15px; @@ -367,6 +374,18 @@ h1 { } } +.nav { + .popover { + width: 200px; + padding: 0; + + .popover-content { + font-size: 12px; + line-height: 16px; + } + } +} + // Pagination .pagination li { cursor: pointer; @@ -444,6 +463,7 @@ a.danger { color: @black; text-decoration: none; opacity: 0.2; + cursor: pointer; &:hover { opacity: 0.5; } @@ -503,6 +523,60 @@ a.danger { } } +.warning-attention { + margin-bottom: 20px; + font-size: 13px; + background: @notification-error-background; + color: @notification-error-text; + border: 1px solid @notification-info-border; + padding: 15px; + h4 { + display: inline-block; + margin-top: 0; + } + .close { + display: inline-block; + font-size: 21px; + margin-top: -5px; + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + + } + .rounded(5px); + a{ + text-decoration: underline; + &#hide { + margin-top: -8px; + display: inline-block; + font-size: 21px; + text-decoration: none; + color: #000; + opacity: 0.2; + font-family: "Helvetica Neue Bold"; + font-weight: bold; + &:hover { + opacity: 0.5; + } + } + &:hover { + text-decoration: none; + } + } + ul { + margin-bottom: 0; + padding-left: 18px; + } + span { + font-family: OpenSansBold; + } + #announcement { + font-size: 13px; + font-weight: 400; + margin-bottom: -5px; + padding-left: 5px; + width: 90%; + } +} + .blank { visibility: hidden; } diff --git a/src/less/ripple/icons/currency-icons.less b/src/less/ripple/icons/currency-icons.less new file mode 100644 index 000000000..218f6ce53 --- /dev/null +++ b/src/less/ripple/icons/currency-icons.less @@ -0,0 +1,64 @@ +.currency-xrp i.fa-money { + color: @color-xrp !important; + .icon-ripple-logo; +} + +.currency-usd i { + color: @color-usd-dark !important; +} + +.currency-btc i { + color: @color-btc !important; +} + +.currency-eur i { + color: @color-eur-dark !important; +} + +// Commodity currencies +.currency-xau, .currency-xag, .currency-xpt, .currency-xpd, .currency-xal, +.currency-xcu, .currency-xni, .currency-xzn, .currency-xpb, .currency-xsn { + i { + .icon-metal-bars; + } +} + +.currency-xau i { + color: @color-xau !important; +} + +.currency-xag i { + color: @color-xag !important; +} + +.currency-xpt i { + color: @color-xpt !important; +} + +.currency-xpd i { + color: @color-xpd !important; +} + +.currency-xal i { + color: @color-xal !important; +} + +.currency-xcu i { + color: @color-xcu !important; +} + +.currency-xni i { + color: @color-xni !important; +} + +.currency-xzn i { + color: @color-xzn !important; +} + +.currency-xpb i { + color: @color-xpb !important; +} + +.currency-xsn i { + color: @color-xsn !important; +} \ No newline at end of file diff --git a/src/less/ripple/landing.less b/src/less/ripple/landing.less index 1085e2667..f3e86a55a 100644 --- a/src/less/ripple/landing.less +++ b/src/less/ripple/landing.less @@ -14,21 +14,21 @@ header.loggedOut { .headerWrapper.loggedOut { display: block !important; - position: fixed; - right: 0; - left: 0; - top: 0; - z-index: 99999; - height: 60px; - background: @white; - border-bottom: 1px solid @brand-success; + position: fixed; + right: 0; + left: 0; + top: 0; + z-index: 99999; + height: 60px; + background: @white; + border-bottom: 1px solid @brand-success; } .logo { margin: 15px 0 0 15px; height: 30px !important; width: 154px; - background: url('../../img/img_logo_ripple_trade.svg') no-repeat; + background: url('/img/img_logo_ripple_trade.svg') no-repeat; display: block; } @@ -41,48 +41,40 @@ header.loggedOut { } .landingContainer { - background: url('../../img/bg_title.png'), -webkit-linear-gradient(160.57deg, rgba(67, 147, 184, 1) 0%, rgba(52, 106, 169, 1) 100%); - background: url('../../img/bg_title.png'), -moz-linear-gradient(83.68% 67.94% 160.57deg,rgba(67, 147, 184, 1) 0%,rgba(52, 106, 169, 1) 100%); - background: url('../../img/bg_title.png'), linear-gradient(160.57deg, rgba(67, 147, 184, 1) 0%, rgba(52, 106, 169, 1) 100%); + background: url('/img/bg_title.png'), -webkit-linear-gradient(160.57deg, rgba(67, 147, 184, 1) 0%, rgba(52, 106, 169, 1) 100%); + background: url('/img/bg_title.png'), -moz-linear-gradient(83.68% 67.94% 160.57deg,rgba(67, 147, 184, 1) 0%,rgba(52, 106, 169, 1) 100%); + background: url('/img/bg_title.png'), linear-gradient(160.57deg, rgba(67, 147, 184, 1) 0%, rgba(52, 106, 169, 1) 100%); background-repeat: no-repeat; - background-position: 25% 60%; - background-attachment: fixed; + background-position: 0% 30%; z-index: 1; background-color: #4c8db8; /* Old browsers */ - // height: 880px; height: auto; - min-height: 750px; - - + min-height: 820px; + + // Pixel ratio: 2 @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2) { - background: url('../../img/bg_title_2x.png'), -webkit-linear-gradient(160.57deg, rgba(67, 147, 184, 1) 0%, rgba(52, 106, 169, 1) 100%); - background: url('../../img/bg_title_2x.png'), -moz-linear-gradient(83.68% 67.94% 160.57deg,rgba(67, 147, 184, 1) 0%,rgba(52, 106, 169, 1) 100%); - background: url('../../img/bg_title_2x.png'), linear-gradient(160.57deg, rgba(67, 147, 184, 1) 0%, rgba(52, 106, 169, 1) 100%); + background: url('/img/bg_title_2x.png'), -webkit-linear-gradient(160.57deg, rgba(67, 147, 184, 1) 0%, rgba(52, 106, 169, 1) 100%); + background: url('/img/bg_title_2x.png'), -moz-linear-gradient(83.68% 67.94% 160.57deg,rgba(67, 147, 184, 1) 0%,rgba(52, 106, 169, 1) 100%); + background: url('/img/bg_title_2x.png'), linear-gradient(160.57deg, rgba(67, 147, 184, 1) 0%, rgba(52, 106, 169, 1) 100%); background-repeat: no-repeat; - background-position: 25% 60%; - background-attachment: fixed; + background-position: 0% 30%; z-index: 1; background-size: 100%; - // height: 880px; - height: auto; - min-height: 750px; + height: auto; + min-height: 820px; } - .tickerWrapper { - height: 60px; - background: @lightgray; - } } .loginContainer { height: auto; max-width: 1400px; margin: auto; - + & a { color: @white; - + &:hover { color: @midgray; } @@ -93,14 +85,13 @@ header.loggedOut { text-align: center; font-family: 'OpenSansLight'; } - + .welcomeText { text-align: center; font-family: 'OpenSansLight'; font-size: 60px; color: @white; - margin: 150px auto 70px; - max-width: 400px; + margin: 50px auto 30px; } hr { @@ -145,7 +136,7 @@ header.loggedOut { -webkit-transition:.5s; transition:.5s; padding-top: 20px; - + &:hover { opacity: .7; -o-transition:.5s; @@ -156,38 +147,37 @@ header.loggedOut { } } - #t-register .auth-form-container .auth-form-wrapper, #t-login .auth-form-container .auth-form-wrapper, #t-recover .auth-form-container .auth-form-wrapper, #t-account .auth-form-container .auth-form-wrapper, #t-migrate .auth-form-container .auth-form-wrapper { - float: right; + #t-login .auth-form-container .auth-form-wrapper, #t-account .auth-form-container .auth-form-wrapper { border: none; - background: rgba(76, 141, 184, .8); + background: transparent; border-radius: 5px; } - #t-register .auth-form-container h2, #t-login .auth-form-container h2, #t-recover .auth-form-container h2, #t-account .auth-form-container h2, #t-migrate .auth-form-container h2 { + #t-login .auth-form-container h2, #t-account .auth-form-container h2 { color: @white; width: 100%; margin: 0; } - #t-register .auth-form-container .auth-form-wrapper label, #t-login .auth-form-container .auth-form-wrapper label, #t-recover .auth-form-container .auth-form-wrapper label, #t-account .auth-form-container .auth-form-wrapper label, #t-migrate .auth-form-container .auth-form-wrapper label, #t-register .auth-form-container .see-privacy-text, #t-login .auth-form-container .see-privacy-text, #t-recover .auth-form-container .see-privacy-text, #t-account .auth-form-container .see-privacy-text, #t-migrate .auth-form-container .see-privacy-text { + #t-login .auth-form-container .auth-form-wrapper label, #t-account .auth-form-container .auth-form-wrapper label, #t-login .auth-form-container .see-privacy-text, #t-account .auth-form-container .see-privacy-text { color: @landingblue; } - #t-register .auth-form-container .sign-up-steps-list li.active, #t-login .auth-form-container .sign-up-steps-list li.active, #t-recover .auth-form-container .sign-up-steps-list li.active, #t-account .auth-form-container .sign-up-steps-list li.active, #t-migrate .auth-form-container .sign-up-steps-list li.active { + #t-login .auth-form-container .sign-up-steps-list li.active, #t-account .auth-form-container .sign-up-steps-list li.active { color: @white; border-bottom: 1px solid @white !important; } h2.loginTop { border-bottom: none !important; - padding-bottom: 0px !important; - font-size: 40px; + padding-bottom: 0px !important; + font-size: 35px; } h2.signUpTop { border-bottom: none !important; - padding-bottom: 0px !important; - font-size: 40px; + padding-bottom: 0px !important; + font-size: 35px; & a:hover { text-decoration: none; @@ -210,7 +200,7 @@ header.loggedOut { color: @white; max-width: 600px; margin: auto; - padding: 60px 0 50px; + padding: 20px 0 50px; } .form-group { @@ -229,11 +219,11 @@ header.loggedOut { text-align: left !important; color: @landingblue; } - + .secretText { color: @brand-success !important; } - + .reSend { cursor: pointer; margin-top: 0px; @@ -245,7 +235,7 @@ header.loggedOut { top: 2px; } } - + .loading_text:hover { color: @midgray; text-decoration: underline; @@ -261,7 +251,7 @@ header.loggedOut { background-color: rgba(52,65,77,.4); color: @white; border: none; - + &:focus { -webkit-box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.075), 0 0 8px rgba(255, 255, 255, 0.4); -moz-box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.075), 0 0 8px rgba(255, 255, 255, 0.4); @@ -273,10 +263,6 @@ header.loggedOut { margin-top: 65px; } - .twoFactor { - margin-top: 120px; - } - .signUpWrapper { text-align: center; width: 50%; @@ -295,6 +281,7 @@ header.loggedOut { margin-top: -15px; margin-left: -20px; margin-right: -20px; + white-space: nowrap; } .bottomText { @@ -313,11 +300,31 @@ header.loggedOut { footer.loggedOut { border-top: none; } - + .loggingIn, .error, .success, .fa-exclamation-triangle { color: @white !important; } + .loginOverlay { + position:fixed; + top:0; + left:0; + background:rgba(0,0,0,0.6); + z-index:5; + width:100%; + height:100%; + + .loader { + min-height: 84px; + position: absolute; + top: 50%; + left: 50%; + width: 84px; + height: 84px; + z-index: 10; + } + } + form .checking { color: @landingblue; } @@ -325,13 +332,22 @@ header.loggedOut { .popover h3, .popover-content { color: @black; } - + .popover-content { + a { + color: @black; + text-decoration: underline !important; + &:hover { + text-decoration: underline; + color: #000; + } + } + } .maskedPhone { color: @white; } - + //buttons form.ng-invalid .btn-success { @@ -360,7 +376,7 @@ header.loggedOut { -moz-transition:5s; -webkit-transition:.5s; transition:.5s; - + &:hover { background: rgba(255,255,255,0.4); -o-transition:.5s; @@ -373,7 +389,7 @@ header.loggedOut { text-decoration: none; } } - + } } @@ -385,7 +401,7 @@ header.loggedOut { color: @midgray !important; display: block; background: rgba(0,0,0,0.2); - padding: 23px; + padding: 15px; &:hover { color: @white !important; } @@ -403,31 +419,6 @@ header.loggedOut { } -//register specific -#t-register { - - h2.loginTop a { - color: @midgray !important; - display: block; - background: rgba(0,0,0,0.2); - padding: 23px; - &:hover { - color: @white !important; - } - } - - .tabBg { - background: rgba(0,0,0,.6); - height: 100px; - width: 16%; - position: absolute; - right: 15px !important; - border-top-right-radius: 5px; - cursor: pointer; - } - -} - //privacy policy and tou .t-privacypolicy, .t-tou { @@ -456,7 +447,7 @@ header.loggedOut { h2.signUpTop, h2.loginTop { font-size: 2em !important; } - + .tabBg { height: 85px !important; } @@ -473,11 +464,11 @@ header.loggedOut { .tabBg { width: 48% !important; } - + .t-login .tabBg, .pm-default .tabBg { left: 15px !important; } - + } @@ -488,7 +479,7 @@ header.loggedOut { .tabBg { width: 25% !important; } - + .t-login .tabBg, .pm-default .tabBg { left: 50%; } @@ -500,4 +491,4 @@ header.loggedOut { img.xrpHolder { width: 75%; } - } \ No newline at end of file + } diff --git a/src/less/ripple/layout.less b/src/less/ripple/layout.less index a7f3867c3..d3a44200f 100644 --- a/src/less/ripple/layout.less +++ b/src/less/ripple/layout.less @@ -36,6 +36,16 @@ body { margin-top: 20px; } +#section_loader { + color: @midgray; + text-align: center; + position: absolute; + top: 50%; + left: 50%; + margin-right: -50%; + transform: translate(-50%, -50%); +} + body.loaded #version, body.loaded #versionbranch { display: none; @@ -129,6 +139,11 @@ body.loaded { } } +.pageLoading { + text-align: center; + margin-top: 30px; +} + #logo { color: @white; .icon-ripple-logo(); @@ -317,7 +332,15 @@ header { } } } - +@media (max-width: @screen-sm-max) { + header { + nav.navbar { + ul.nav > li > a { + padding: 20px 10px; + } + } + } +} @sideNavWidth: 150px; #wrapper .container > .main section { @@ -440,11 +463,11 @@ footer { height: 36px; margin: 22px 55px; background-size: 150px 36px; - background-image: url('../../img/logo.png'); + background-image: url('/img/logo.png'); // Pixel ratio: 2 @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) { - background-image: url('../../img/logo_2x.png'); + background-image: url('/img/logo_2x.png'); } } @@ -612,6 +635,18 @@ footer { } } +.serverStatus { + margin: 25px 0; + display: inline-block; + border-radius: 6px; + background: #cccccc; + + span { + padding: 6px; + display: block; + } +} + /* animation for png loader */ @keyframes rotating { from { @@ -653,4 +688,48 @@ footer { animation: rotating 1s linear infinite; } +.animation-keyframes (color-change, #4dae4c, #81d181, online, ease-in-out, 2s, infinite, alternate); +.animation-keyframes (color-change2, #fbdfa0, #feca5d, mediumLoad, ease-in-out, 2s, infinite, alternate); +.animation-keyframes (color-change3, #cb514f, #e38c8f, highLoad, ease-in-out, 2s, infinite, alternate); +.from (color-change, @color) { + background: @color; +} +.to (color-change, @color) { + background: @color; +} + +.keyframes (@name, @from, @to, @vendor:"", @bind:"") { + @keyf: ~"@{bind}@@{vendor}keyframes @{name} { `'\n'`from "; + @{keyf} { + .from(color-change,@from); + } + to { + .to(color-change,@to); + } +} + +// keyframes without any vendor prefix +.animation-keyframes-novendor (@name, @from, @to, @anim-selector) { + .keyframes (@name, @from, @to); + @anim: ~"} `'\n'`.@{anim-selector}"; + @{anim} { + animation-name:@name; + } +} + +// keyframes with vendor prefix +.animation-keyframes (@name, @from, @to, @anim-selector, @func, @duration, @iteration-count, @direction) { + @bind: "} `'\n'`"; + .keyframes (@name, @from, @to, "-moz-"); + .keyframes (@name, @from, @to, "-webkit-", @bind); + .keyframes (@name, @from, @to, "-o-", @bind); + .keyframes (@name, @from, @to, "", @bind); + @anim: ~"} `'\n'`.@{anim-selector}"; + @{anim} { + -moz-animation: @name @func @duration @iteration-count @direction; + -webkit-animation: @name @func @duration @iteration-count @direction; + -o-animation: @name @func @duration @iteration-count @direction; + animation: @name @func @duration @iteration-count @direction; + } +} \ No newline at end of file diff --git a/src/less/ripple/modals/modal.less b/src/less/ripple/modals/modal.less new file mode 100644 index 000000000..084ec97e5 --- /dev/null +++ b/src/less/ripple/modals/modal.less @@ -0,0 +1,64 @@ +.rp-modal { + + // Modal header + // Top section of the modal w/ title and dismiss + .modal-header { + background-color: @midblue; + color: @white; + } + + // Title text within header + .modal-title { + .rp-h4; + margin: 0 1.5em 0 1.7em; + } + + .modal-logo { + margin: -.8em -.1em -.6em -.9em; + } + + .modal-prompt { + .rp-base; + padding-left: 40px; + padding-top: 30px; + margin-bottom: 16px; + @media (max-width: @screen-xs-max) { + padding-left: 30px; + } + } + + .modal-buttons { + text-align: right; + padding: 0px 20px 20px 20px; + } + + .modal-btn { + padding-left: 2em; + padding-right: 2em; + margin-right: 5px; + } + + .modal-order { + background-color: @lightgray; + margin-bottom: 2em; + padding: 1em 20px; + } + + .modal-order-type { + .rp-h4; + width: 70px; + text-transform: uppercase; + text-align: right; + display: inline-block; + margin-right: 10px; + } + + .modal-body { + padding: 0px; + } + + .btn-success { + margin-bottom: 0px; + } + +} diff --git a/src/less/ripple/status.less b/src/less/ripple/status.less index 2c9972957..34e2981fc 100644 --- a/src/less/ripple/status.less +++ b/src/less/ripple/status.less @@ -307,7 +307,7 @@ right: 10px; width: 24px; height: 24px; - background-image: url('../../img/options.png'); + background-image: url('/img/options.png'); span { display: none; } diff --git a/src/less/ripple/tabs.less b/src/less/ripple/tabs.less index 4f4478728..478e1c241 100644 --- a/src/less/ripple/tabs.less +++ b/src/less/ripple/tabs.less @@ -1,3124 +1,198 @@ // TODO all _ or all - -.t-register, .t-login, .t-recover, .t-migrate { - - header nav { - display: none; - } -} - -.loading_text { - padding-left: 5px; -} - -.priceChart { - .loader { - display: none; - } -} - -.loading_sections { - padding-top: 10px; -} - -.fa-bell { - font-size: 0.8em; -} - -.delete-trust { - margin: 1.4em 0; -} - -.custom-btn { - padding-top: 14px; - padding-bottom: 14px; - font-size: 14px; -} - -.banner { - margin: 2% 8.5% 0 8.5%; - margin-right: 0; - margin-left: 0; - margin-bottom: 20px; - margin-top: 0; - - #hide { - float: right; - } -} - -#t-kyc { - .twoFAInfo{ - .icon-wrapper { - display: inline-block; - float: left; - } - } - .form-group { - &.authy-control { - .phone-number-wrapper { - padding-top: 15px; - .btn-link { - display: inline-block; - } - } - } - } - - - .kyc-error { - color: @midred; - } - - .question { - margin: 25px 0; - } - - .answer { - margin: 0 10px - } - - .lock { - margin-left: 50px; - } - .security-box-label { - padding-bottom: 20px; - } - .ssn-hidden { - font-size: 25px; - line-height: 42px; - } - - .kyc-align { - // margin: 15px 0 15px 1px; - margin-top: 15px; - margin-bottom: 15px; - } - - #resend-code-btn { - margin-top: 25px; - } -} - -#t-twofa { - .kyc-align { - margin: 15px 0 15px 1px; - } -} - -#t-register, #t-login, #t-recover, #t-account, #t-migrate { - a { - text-decoration: none; - &:hover, &:focus { - text-decoration: none; - } - } - .rippleName { - font-size: 18px; - color: @white; - } - - button.recover { - text-align: center; - display: block; - font-size: 12px; - margin-right: auto; - margin-left: auto; - text-decoration: none; - &:hover { - color: @midgray; - } - } - - a.recover-btn { - text-decoration: none; - } - - .auth-form-container { - font-family: OpenSansRegular; - padding: 15px; - h2 { - margin: 10px 0 30px 0; - padding: 0 0 30px; - text-align: center; - border-bottom: 1px solid @midgray; - } - - .auth-form-wrapper { - background: @lightgray; - padding: 15px 20px; - border: 1px solid @midgray; - margin-bottom: 5px; - margin: 0 auto 10px; - float: none; - label { - font-weight: 400; - margin-bottom: 3px; - } - .recover-description { - margin-bottom: 15px; - font-size: 13px; - } - - } - .form-group { - p.error-text { - display: none; - } - - .form-control { - margin-bottom: 0; - } - - &.field-ok { - p > span { - padding-top: 3px; - line-height: 15px; - font-size: 12px; - color: @midgreen; - } - - .input-group:after { - content: ""; - position: absolute; - left: 100%; - bottom: 0; - margin-left: 4px; - width: 5px; - height: 100%; - background: @midgreen; - } - } - - &.field-error { - margin-bottom: 15px; - - p > span { - padding-top: 3px; - line-height: 15px; - font-size: 12px; - color: @midred; - } - - .input-group:after { - content: ""; - position: absolute; - left: 100%; - bottom: 0; - margin-left: 4px; - width: 5px; - height: 100%; - background: @midred; - } - } - - &.field-warning { - .input-group:after { - content: ""; - position: absolute; - left: 100%; - bottom: 0; - margin-left: 4px; - width: 5px; - height: 100%; - background: @lightyellow; - } - } - } - .secret-key-container { - margin-bottom: 30px; - background: @lightyellow; - padding: 15px; - border: 1px solid @midgray; - color: @darkyellow; - .rounded(5px); - - .secret-key { - padding-top: 15px; - margin-bottom: 10px; - span { - padding: 0 10px; - } - } - } - .switch-mode-link-container { - text-align: center; - - a { - text-decoration: none; - } - } - - .sign-up-steps-list { - margin-bottom: 15px; - li { - margin-right: 25px; - display: inline-block; - list-style: none; - padding-bottom: 5px; - border-bottom: 5px solid transparent; - &.active { - color: @darkgray; - font-weight: bold; - border-bottom: 5px solid @darkgray; - } - &.completed{ - color: @darkgray; - font-weight: bold; - } - - } - } - .see-privacy-text { - color: @darkgray; - font-size: 13px; - margin-bottom: 15px; - } - - &.mode-verify { - .code { - font-family: OpenSansBold; - font-size: 15px; - margin: 10px 0; - } - .status { - margin: 10px 0; - text-align: center; - } - } - } - - .switch-mode-wrapper { - text-align: center; - font-family: OpenSansRegular; - } - &.recover-form-container { - padding-top: 50px; - } - - .strength { - margin: 38px 0 0 0; - - &.match { - color: @midred; - } - &.weak { - color: @midred; - } - &.medium { - color: #ff8200; - } - &.strong { - color: @darkgreen; - } - } - - .text-error { - color: @midred; - margin: -20px 0 0 0; - } - - .storageinfo strong { - color: @black; - } - - .storageinfo a { - font-size: 0.7em; - } - - .storeChange { - display: block; - } - .auth-form-wrapper { - - .submit-btn-container { - width: 70%; - } - .submit-btn-container-recovery { - text-align: center; - .recover-btn { - display: inline-block; - width: 70%; - } - .btn { - min-height: 60px; - } - } - @media (max-width: @screen-xs-max) { - .submit-btn-container { - width: 100%; - button { - font-size: 14px; - } - } - .submit-btn-container-recovery { - text-align: center; - .recover-btn { - display: inline-block; - width: 100%; - - } - } - } - } -} - -#t-register { - .auth-form-container { - - padding-bottom: 50px; - &.mode-verification { - .auth-form-wrapper { - .btn-cancel { - .loading_text { - text-transform: lowercase; - } - } - } - } - } - .register_masterkey { - position: relative; - - .auth-attention { - margin-top: 30px; - text-align: center; - - .recovery { - margin-top: 10px; - } - } - } - - .welcome-wrapper { - text-align: center; - } - - .platform, h4.new { - max-width: 700px; - margin: auto; - } - - h4.new { - padding: 25px 0; - border-top: 1px solid @midgray; - font-weight: 200; - font-size: 1.1em; - } - - span.currency { - font-weight: 500; - } - - .xrp-xau { - font-size: 1.2em; - } -} - -#t-migrate { - .text-status { - #error{ - font-size: 12px; - color: @midred; - } - } -} - -#t-login { - - .content { - padding-bottom: 50px; - } - @media (max-width: @screen-xs-max) { - .content { - padding-top: 0; - .auth-form-container { - padding: 15px; - padding-bottom: 0; - } - } - } - .text-status { - .backend { - font-size: 12px; - span { - color: @midred; - } - } - } - - .maskedPhone { - font-size:16px; - margin:0 5px; - } - - .rememberMe { - margin: 4px 7px 0 0; - float: left; - } - - .action-login { - .info { - font-family: OpenSansLight; - border-right: 1px solid @midgray; - - @media (max-width: @screen-xs-max) { - border-right: none; - } - - .literal { - font-size: 20px; - } - - p { - padding-left: @grid-gutter-width/2; - padding-right: @grid-gutter-width/2; - - @media (max-width: @screen-sm-max) and (min-width: @screen-xs-max) { - padding-left: 0; - padding-right: 0; - } - - word-break: break-all; - font-size: 18px; - color: @black; - } - - .amount, - .address { - margin-left: -@grid-gutter-width/2; - background-color: @lightgray; - margin-bottom: 30px; - - padding-left: @grid-gutter-width; - padding-right: @grid-gutter-width; - - @media (max-width: @screen-xs-max) { - margin-right: -@grid-gutter-width/2; - } - - @media (max-width: @screen-sm-max) and (min-width: @screen-xs-max) { - padding-left: @grid-gutter-width/2; - padding-right: @grid-gutter-width/2; - } - } - - .amount { - padding-top: 30px; - padding-bottom: 25px; - - .number { - font-weight: bold; - font-size: 30px; - } - .currency { - padding: 0 0 0 5px; - font-size: 20px; - } - } - - .address { - padding-top: 25px; - padding-bottom: 25px; - font: 18px 'OpenSansRegular'; - color: @darkgray; - } - } - } -} - -#t-balance { - - .content { - padding-top: 0; - } - - #welcome { - font: 18px 'OpenSansLight'; - margin: 0 0 10px; - text-align: center; - background: @lightgreen; - padding: 50px; - - .title { - font: 18px 'OpenSansBold'; - } - - .actions { - margin: 40px 0 0 0; - - a,span { - display: inline-block; - width: 190px; - height: 270px; - background-image: url(../img/spritex.png); - margin: 0 15px; - } - .receive { - background-position: -2px -535px; - } - .buy { - background-position: -2px -263px; - } - .giveaway { - background-position: -2px -1079px; - } - .gateway { - background-position: -2px -807px; - } - } - } - - .component, .B2R { - font-family: OpenSansLight; - font-size: 16px; - line-height: 35px; - color: @darkgray; - padding-top: 5px; - padding-bottom: 5px; - border-top: 1px solid @midgray; - - .transfer { - float: right; - - a { - font-size: 12px; - margin: 0 5px; - padding: 0 2px; - border-bottom: 3px solid transparent; - line-height: 16px; - text-decoration: none; - } - - a.selected, a:hover{ - border-color: @darkgray; - cursor: pointer; - } - } - - .inactive { - padding-bottom: 15px; - - label { - font: 14px OpenSansLight; - line-height: 25px; - color: @black; - margin-bottom: 15px; - } - } - - .active { - .limit { - clear: both; - padding: 15px 0; - - .amount { - font-family: OpenSansBold; - margin: 0 15px; - } - - .remove { - font: 11px OpenSansLight; - } - } - - .instruction-value { - margin: 15px 0; - color: @black; - font-size: 16px; - } - } - - .head { - overflow: hidden; - @media (max-width: @screen-xs-max){ - font-size: 12px; - } - .status { - margin: 0 20px; - font: 10px OpenSansRegular; - padding: 3px 20px; - .rounded(2px); - background: @midgray; - border: 1px solid @darkgray; - - &.unverified { - color: @midred; - background: @lightyellow; - border-color: @midgray; - } - } - .balance-text-wrapper { - text-overflow: ellipsis; - overflow: hidden; - } - - } - - .add, .withdraw { - font-size: 14px; - color: @black; - border-top: 1px solid @midgray; - line-height: 20px; - padding: 15px 25px; - font-family: OpenSansRegular; - margin-top: 5px; - - button { - margin: 5px 0; - } - - .message { - margin: 5px 0; - } - - label { - font: 14px OpenSansLight; - line-height: 25px; - } - } - - .withdraw { - - .errorGroups { - min-height: 20px; - } - - .step2 { - - .amount { - font-family: OpenSansBold; - color: @black; - } - - .btc_address { - font: 18px OpenSansRegular; - margin: 10px 0 30px; - } - } - } - } -} - -#t-trust { - @media (max-width: @screen-xs-max) { - input[type="radio"], input[type="checkbox"] { - margin: 2px 0 0; - } - } - #trustForm { - margin-bottom: 20px; - - .verifying { - margin-top: 20px; - margin-bottom: 20px; - } - - .checkbox { - margin-bottom: 20px; - margin-top: -10px; - } - - .allow-rippling{ - & > label, & > i { - float: left; - } - @media (max-width: @screen-xs-max){ - .checkbox { - padding-left: 0; - input { - margin-right: 10px; - } - } - } - & > i { - float: left; - margin: -4px 0 0 5px; - @media (max-width: @screen-xs-max) { - margin: -6px 0 0 5px; - } - } - } - } - - a.disabled { - color: @gray-light; - - &:hover, &:focus { - text-decoration: none; - } - } - - .currencyBox { - margin: 0 0 30px; - } - - .editBox { - background: @lightgray; - margin: 10px 0 0 0; - padding: 20px 0 10px; - - .inputPadding { - padding-top: 10px; - padding-bottom: 10px; - } - .rippling-checkbox { - margin-left: -15px; - margin-right: -15px; - @media (max-width: @screen-xs-max) { - padding-left: 15px; - padding-right: 15px; - } - } - - } - .gateway { - text-overflow: ellipsis; - overflow: hidden; - } - .limit { - text-overflow: ellipsis; - overflow: hidden; - } - .currencyTitle { - font-size: @font-size-big; - - i { - width: 25px; - } - span { - margin: 0 0 0 10px; - } - } - - #divider { - margin-top: 5px; - margin-bottom: 5px; - } - - .head { - margin-top: 10px; - margin-bottom: 10px; - font-weight: bold; - - } - - .lines { - color: @darkgray; - - .line { - padding: 5px 0; - } - } - .trust-menu { - @media (max-width: @screen-xs-max) { - font-size: 10px; - } - } -} - -#t-contacts { - - .head { - padding-top: 10px; - padding-bottom: 10px; - line-height: 30px; - - div i { - padding-top: 10px; - padding-bottom: 10px; - line-height: 10px; - color: @midgray; - float: right; - display: inline-block; - } - - i.sorted { - color: @black; - } - - cursor: pointer; - } - - .addForm { - background: @lightgray; - padding-top: 15px; - padding-bottom: 15px; - margin-top: -10px; - margin-bottom: 10px; - margin-right: 0; - margin-left: 0; - } - - .contact { - padding-top: 10px; - padding-bottom: 10px; - line-height: 40px; - .edit-contact-btn-wrapper { - div { - float: inherit; - display: inline-block; - } - } - &.editing { - background: @lightgray; - margin-right: 0; - margin-left: 0; - margin-bottom: 20px; - input { - margin: 0; - } - label { - line-height: normal; - } - } - .contact-input-wrapper { - .inline-name-form { - display: inline-block; - width: 100%; - margin-bottom: 15px; - } - } - - @media (max-width: @screen-xs-max) { - .name { - font-weight: bold; - } - } - } - - .danger { - line-height: 42px; - } -} - -#t-options { - form .row { - margin-bottom: 10px; - } - .errorGroup { - height: auto; - } - .tracking { - margin: 0 10px 0 0; - } - - .btn-block { - margin-bottom: 20px; - } -} - -#t-history { - #section_loader { - color: @midgray; - text-align: center; - position: absolute; - top: 50%; - left: 50%; - margin-right: -50%; - transform: translate(-50%, -50%); - } - - @bg: @lightgray; - - .filters { - margin: 0; - - .filter { - margin-bottom: 10px; - - .filter-title { - display: block; - color: @darkblue; - font: 16px OpenSansLight; - background: @lightgray; - padding: 10px; - border: 1px solid @lightgray; - - &:hover { - text-decoration: none; - border: 1px solid @midgray; - } - - .fa { - margin-top: 3px; - float: right; - color: @black; - } - } - - .filter-description { - margin-top: 10px; - font: 12px OpenSansLight; - color: @darkgray; - } - - .filter-choices { - margin-top: 10px; - } - - .input-group { - margin: 0 0 10px; - - i.fa-fw { - margin-right: 5px; - } - } - } - } - - .type-filter { - - i { - margin: 0 10px 0 0; - } - - label { - width: 100%; - background: @lightgray; - padding: 6px 10px; - cursor: pointer; - text-transform: capitalize; - color: @darkgray; - font-size: 14px; - border: 1px solid darken(@lightgray,3%); - - .count { - float: right; - margin: -8px -15px; - background: @lightgray; - padding: 8px 12px; - } - - &.active { - color: @black; - background: @lightblue; - border: 1px solid @midgray; - - .count { - float: right; - margin: -8px -15px; - background: @midblue; - padding: 8px 12px; - } - } - - input { - display: none; - } - } - } - - .transactions { - .head { - display: inline-block; - width: 100%; - padding-bottom: 10px; - border-bottom: 1px solid @midgray; - margin-bottom: 30px; - margin-left: 0; - - div{ - float: left; - margin: 0 0 10px; - text-align: left; - } - - .dt { - margin: 0 0 0 23px; - width: 170px; - } - } - .export-btn-wrapper { - padding-right: 0 !important; - @media (max-width: @screen-xs-max) { - padding-left: 0; - margin-bottom: 20px; - } - } - .message { - background-color: @lightgray; - padding: 10px; - } - - & > ul { - list-style-type: none; - margin: 0; - padding: 0; - - & > li { - padding: 0 15px; - margin: 5px 0; - cursor: pointer; - background-color: @lightgray; - - &.open { - - } - - &.odd{ - background-color: @lightgray; - } - - .info { - display: inline-block; - width: 100%; - background-color: @lightgray; - @media (max-width: @screen-xs-max) { - font-size: 11px; - } - & > span { - display: inline-block; - line-height: 22px; - padding: 9px 0; - vertical-align: top; - } - - span.address, span.amount { - font-weight: bold; - } - } - - .type { - width: 8px; - display: block; - margin: 0 0 0 -15px; - background: @midblue; - } - &.sent .type { - background: @midgreen; - } - &.received .type { - background: @midgreen; - } - &.trusted .type { - background: @darkgray; - } - &.trusting .type { - background: @darkgray; - } - &.accountset .type { - background: @midgray; - } - &.failed .type, &.error .type { - background: @midred; - } - - .i { - width: 30px; - display: inline-block; - text-align: center; - } - - .dt { - width: 170px; - } - - .desc { - - } - - .effects > li > span { - font-size: 12px; - } - - .details { - padding: 10px 0; - @media (max-width: @screen-xs-max) { - font-size: 12px; - } - .effects { - border-top: 1px solid @midgray; - border-bottom: 1px solid @midgray; - padding-top: 10px; - padding-bottom: 10px; - margin-bottom: 10px; - - & > .title { - display: block; - margin: 0 0 10px; - } - - .effect { - &.header { - font-weight: bold; - } - & > span { - display: inline-block; - } - - .description { - width: 25%; - } - .issuer { - width: 35%; - } - .amount { - width: 20%; - text-align: right; - } - .balance { - width: 20%; - text-align: right; - } - } - - @media (max-width: 1023px) { - .effect { - padding: 10px 0; - border-top: 1px solid @midgray; - - &.header { - display: none; - } - - span { - display: block; - width: auto !important; - text-align: left !important; - } - span:before { - display: inline-block; - width: 150px; - font-weight: bold; - content: " "attr(data-label); - } - } - } - - @media (max-width: 600px) { - .effect { - span:before { - display: block; - font-weight: bold; - content: " "attr(data-label); - } - } - } - } - - .links { - display: inline-block; - width: 100%; - @media (max-width: @screen-xs-max) { - font-size: 10px; - } - .txLink { - float: left; - } - .addLink { - float: right; - } - - @media (max-width: 600px) { - a { - display: block; - float: none !important; - background: @midgray; - padding: 10px; - margin: 5px 0; - } - } - } - } - } - - .add { - display: none; - } - - .effects { - margin: 0; - padding: 0; - list-style-type: none; - } - } - - } -} - -.foot { - margin: 10px 0 0 0; - clear: both; - padding: 0; - background: @lightgray; - - a,div { - display: block; - padding: 15px 40px; - text-align: center; - color: @darkblue; - border: 1px solid @lightgray; - } - - #button_loader { - display: inline-block; - margin-left: auto; - margin-right: auto; - } - - a { - text-decoration: none; - color: @black; - - &:hover { - background: @lightgray; - border: 1px solid @midgray - } - } -} - -#t-send { - - .rp-combobox { - display: block; - } - - .toggle { - margin-left: 10px; - color: @midblue; - cursor: pointer; - } - - .toggle:hover { - text-decoration: underline; - } - - .mode-form { - .currency_force { - margin-bottom: 20px; - } - - .remote { - margin: 20px 0 0 0; - } - - .tagsLinks { - padding: 0; - list-style-type: none; - } - - label[for=send_dt] { - margin-right: 20px; - } - - .errorGroup { - height: auto; - // margin-bottom: -10px; - } - .form-group { - margin-bottom: 0px; - } - } - - .mode-status { - .address { - font-size: 25px; - font: 34px 'OpenSansLight'; - margin: 0 0 30px; - } - p { - margin: 0 0 40px; - font-size: 16px; - } - .actionLink { - margin-top: 20px; - margin-bottom: 20px; - font-size: 16px; - } - } - - .mode-confirm { - .amount_feedback, .dest_feedback, .sendmax_feedback { - font-size: 26px; - margin: 0; - background-color: @lightgray; - - .extra { - font-size: 18px; - color: @darkgray; - margin-top: 0.5em; - - @media (max-width: 380px) { - font-size: 14px; - } - } - .dt { - font-size: 15px; - margin-top: 1em; - } - } - - .dest_feedback { - padding: 20px; - overflow: hidden; - text-overflow: ellipsis; - } - - .amount_feedback, .sendmax_feedback { - font: 34px 'OpenSansLight'; - padding: 10px 20px; - - .currency { - font-size: 20px; - } - } - } - - .actions { - margin: 60px 0 0 0; - } -} - -.currency_sets { - .label { - margin: 10px 0; - font-size: 18px; - color: @black; - } - .alternatives { - list-style-type: none; - font-family: 'OpenSansLight'; - - & > div { - text-align: center; - padding-top: 10px; - - .am { - padding: 12px 0; - border: 1px solid @midgray; - border-bottom: none; - .border-radius(5px,0,0,5px); - - .amnt { - font-size: 30px; - padding: 0 8px 0 0; - } - .currency { - font-size: 20px; - color: @darkgray; - } - - .ex { - color: @darkgray; - - .pair { - margin-left: 5px; - font-size: 12px; - } - } - } - .btn { - .border-radius(0,5px,5px,0); - margin: 0; - } - } - } - .pathupdate, .orderbookupdate { - font-size: 12px; - color: @darkgray; - margin-top: 10px; - } -} - -.save-address-form { - form { - max-height: 0; - overflow: hidden; - .transition-duration(0.6s); - margin: 0; - - &.show { - max-height: 300px; - } - - input { - width: 300px; - } - - .btn { - width: 150px; - margin: 0 20px 0 0; - } - - hr { - margin: 15px 0 0 0; - } - .add-contact-btns-wrapper { - .btn { - width: 100%; - } - } - } -} - -#t-security { - #button_loader{ - display: inline-block; - } - - .save-btn-wrapper { - float: left; - } - .edit-security-pswd{ - line-height: 45px; - } - .settingPage a { - display: block; - padding: 10px; - border-radius: 2px; - margin: 0 0 3px; - background: @lightgray; - - &:hover, &.active { - color: @lightgray; - text-decoration: none; - background: @midblue; - } - } - - .notices { - list-style-type: none; - margin: 10px 0 0 0; - } - .important { - font-size: 20px; - line-height: 25px; - } - .title { - .clearfix; - margin: 20px 0 0; - - .name { - margin: 0 20px 0 10px; - line-height: 40px; - float: left; - } - .more { - line-height: 40px; - float: left; - } - } - .description { - margin: 11px 0 11px 0; - span.value { - overflow: hidden; - display: inherit; - &.ng-binding { - text-overflow: ellipsis; - } - } - } - - .descriptor { - color: @darkgray; - margin: 0 0 10px; - border-top: 1px solid @midgray; - padding-top: 20px; - } - - div#password.row { - padding-top: 10px; - padding-bottom: 10px; - - } - .infoBox { - .clearfix; - border: 1px solid @midgray; - padding: 20px; - margin-top: 5px; - margin-bottom: 5px; - } - - div.section { - padding-bottom: 20px; - } - - div.part { - padding-top: 10px; - a { - float: right; - } - } - - .show-keys { - margin: 20px 0 0 40px; - } - - .twoFactorSettings { - margin-top:40px; - - .enabled2FA { - margin-right:5px - } - - input:disabled { - opacity:.5; - } - } - - .confirm2FA { - margin:10px 0; - } - - .verify2FA { - margin-bottom:10px; - - .status { - margin:20px 0; - } - - button.spinner { - padding-left:0; - } - .sms-txt { - text-transform: lowercase; - } - } - - .sessionUnlock { - margin-left: 15px; - - label { - margin-top: 15px - } - - button.spinner { - padding-left:0; - } - } - - label[for=persistUnlock]{ - padding-left: 5px; - } - - .note { - font-size:12px; - color:@darkgray; - } - - #renameForm { - // padding-left: 15px; - } - - - .btn-link { - padding-top: 0; - - } - .edit-security-pswd { - #save { - - } - } - .show-security { - a { - vertical-align: top; - text-transform: lowercase; - @media(max-width: @screen-xs-max) { - line-height: 18px; - } - } - } -} - -#t-settingstrade{ - .settingPage a { - display: block; - padding: 10px; - border-radius: 2px; - margin: 0 0 3px; - background: @lightgray; - - &:hover, &.active { - color: @lightgray; - text-decoration: none; - background: @midblue; - } - } - - .descriptor { - color: @darkgray; - margin: 0 0 10px; - border-top: 1px solid @midgray; - padding-top: 20px; - } - - .pair { - background-color: @lightgray; - padding: 10px; - margin: 0; - margin-bottom: 10px; - overflow: hidden; - position: relative; - } - - .grip { - display: inline-block; - position: relative;; - left: -10px; - width: 3px; - height: 9px; - background-repeat: no-repeat; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAJAgMAAACK3X5KAAAACVBMVEUAAAAiIiIiIiIxJsNmAAAAAnRSTlMAGRL4ZfgAAAANSURBVAjXY+hgcEHFACGKA7njBRNQAAAAAElFTkSuQmCC); - } - - .delete { - float: right; - color: @midred; - } - - .as-sortable-item, .as-sortable-placeholder { - min-height: 20px; - margin: 1px 2px 5px 1px; - } - - .as-sortable-placeholder { - border: 1px dashed @darkgray; - background-color: @lightgray; - } - -} - -#t-advanced { - .settingPage a { - display: block; - padding: 10px; - border-radius: 2px; - margin: 0 0 3px; - background: @lightgray; - - &:hover, &.active { - color: @lightgray; - text-decoration: none; - background: @midblue; - } - } - - #serverSettings { - margin-top: 40px; - } - - .description { - margin: 5px 0 5px 0; - font-size: 13px; - - } - - .descriptor { - color: @darkgray; - margin: 0 0 10px; - border-top: 1px solid @midgray; - padding-top: 20px; - } - - .websocket{ - padding-right: 0; - } - - .port{ - padding-left: 0; - } - - .portNumber{ - padding-left: 10px; - @media (max-width: @screen-xs-max) { - padding-left: 0; - } - } - - div.section { - padding-bottom: 20px; - } - - div.part { - padding-top: 10px; - a { - float: right; - } - } - - #save { - margin-top: 0; - } - - #saveBlob { - margin-top: 0; - } - - #saveBridge { - margin-top: 0; - } - - #deleteBlob { - // background-color: @midred; - // border-color: @midred; - margin-top: 0; - } - - #deleteBridge { - // background-color: @midred; - // border-color: @midred; - margin-top: 0; - } - - #delete { - // background-color: @midred; - // border-color: @midred; - margin-top: 0; - } - - #cancel { - margin-top: 0; - } - - #newServer { - width: 100%; - margin-top: 20px; - } - - #servers { - padding-top: 0; - - .trust-line-form { - .edit-trust-line { - line-height: 34px; - } - } - @media (max-width: @screen-xs-max){ - font-size: 12px; - } - .field-edit-row { - padding-bottom: 20px; - } - .advanced-form-row { - line-height: 32px; - margin-bottom: 15px; - @media (max-width: @screen-xs-max) { - line-height: 26px; - } - } - .server-row-form { - border-top: 1px solid #ccccca; - margin-bottom: 10px; - .descriptor { - border: 0; - } - .hostname-wrapper { - padding-right: 0; - } - @media (max-width: @screen-xs-max) { - .port-wrapper { - - padding-left: 0; - - } - } - - } - .helperInput { - line-height: 44px; - } - .edit-btn { - line-height: 28px; - } - - } - - #secureSocket { - padding-left: 0; - padding-right: 0; - @media (max-width: @screen-xs-max) { - padding-left: 15px; - } - &.editable { - line-height: 35px; - // padding-left: 15px; - - } - .helperInput { - // padding-top: 7px; - line-height: 40px; - } - } - - #renameForm { - padding-left: 15px; - - } - - .editButton { - padding-top: 4px; - } - -} - -#t-trade { - #section_loader { - color: @midgray; - text-align: center; - position: absolute; - top: 50%; - left: 50%; - margin-right: -50%; - transform: translate(-50%, -50%); - z-index: 1; - } - .orderbook-wrapper { - position: relative; - #orderbook_loader { - color: @midgray; - text-align: center; - position: absolute; - top: 200px; - left: 50%; - margin-right: -50%; - transform: translate(-50%, -50%); - z-index: 1; - } - } - - .orderbook-hide { - font-size: 85%; - } - - @bg: @white; - - .btn-group { - margin-bottom: -1px; - - .btn { - width: 120px; - } - .btn:first-child { - .border-radius(0, 0, 0, 4px); - } - .btn:last-child { - .border-radius(4px, 0, 0, 0); - } - } - - #add_button, #cancel_button { - float: right; - } - - ul.inline { - margin: 0; - padding: 0; - - .label { - color: @darkgray; - text-align: left; - } - .value { - font-weight: bold; - } - - li { - display: inline-block; - font-size: 12px; - - .icon { - margin: 0 0 0 3px; - } - .up { - color: @darkgreen; - } - .down { - color: @midred; - } - @media (max-width: @screen-xs-max) { - padding-left: 0; - } - @media (max-width: @screen-sm-max) { - padding-left: 0; - } - } - - &.issuers { - .label { - width: 120px; - } - .value { - margin-right: 15px; - @media (max-width: @screen-xs-max) { - margin-right: 0; - padding-right: 15px; - } - } - } - } - - .issuerSelector, .message-select-issuer { - padding: 15px; - border: 1px solid darken(@bg, 10%); - border-top: none; - border-bottom: none; - background: @bg; - } - - .settings { - padding: 15px; - border: 1px solid darken(@bg, 10%); - border-bottom: none; - background-color: darken(@bg, 2%); - .issuers-wrapper { - display: inline-block; - } - button { - &.btn-block { - outline: none; - } - } - } - - .message-select-issuer { - line-height: 25px; - font-size: 16px; - font-family: 'OpenSansRegular'; - text-align: center; - - border-bottom: 1px solid darken(@bg, 10%); - } - - .ticker { - margin: 0 0 30px; - padding: 5px 15px; - border: 1px solid darken(@bg, 10%); - border-top: none; - background-color: darken(@bg, 5%); - list-style-type: none; - @media (max-width: @screen-xs-max) { - font-size: 11px; - } - .value { - font-weight: bold; - } - } - - .slash { - padding-top: 25px; - font-size: 24px; - } - - .order-type { - p.literal { - margin: 0; - line-height: 48px; - } - } - - .trade-widget { - min-height: 430px; - padding: 15px; - border: 1px solid darken(@bg, 10%); - background: darken(@bg, 2%); - - .head { - margin: -15px -15px 15px -15px; - padding: 10px 15px; - background-color: darken(@bg, 5%); - font: 18px 'OpenSansRegular'; - - .available { - font-size: 11px; - color: @darkgray; - padding-left: 10px; - .amount { - font-weight: bold; - &:after { - content: " "; - } - } - } - } - - .input-group { - margin: 0 0 20px; - } - .errorGroup { - position: relative; - } - .order-values { - .value-field { - .input-group { - width: 100%; - .input-group-addon { - width: 33.3333333%; - @media (max-width: @screen-xs-max) { - width: 25%; - } - } - } - } - } - } - - .mode-form { - .order-values { - .sign { - text-align: center; - margin: 40px 0 0 0; - } - .error { - margin-bottom: 0; - height: 0; - overflow: visible; - } - - .input-group-addon { - color: @white; - background-color: @midgray; - padding: 0 10px; - min-width: 70px; - - .issuer { - font-size: 10px; - } - } - } - .message { - color: @midgreen; - height: 40px; - line-height: 20px; - } - .btns-row { - .btns-wrapper { - float: none; - margin: 7px auto; - } - } - } - - .mode-confirm { - text-align: center; - - .title { - margin: 30px 0; - } - - .amount_feedback { - font-size: 30px; - margin: 50px 0 0 0; - } - - .dest_feedback { - font-size: 30px; - margin: 0 0 10px 0; - } - - .rate_feedback { - margin: 0 0 30px 0; - color: @darkgray; - font-size: 18px; - - .pair { - margin-left: 5px; - font-size: 14px; - } - } - } - - .widget-myorders-table(); - - .toggle { - margin-left: 10px; - color: @midblue; - cursor: pointer; - } - - .toggle:hover { - text-decoration: underline; - } - .orderlists { - .transition-duration(0.5s); - } - .listings { - padding: 0 15px; - border: 1px solid darken(@bg, 10%); - background: @bg; - - transition: 0.2s; - max-height: 0; - - .my { - .head { - font-weight: bold; - } - .row:first-child { - border-top: none; - } - .row { - border-top: 1px solid @lightgray; - - &:nth-child(even) { - background-color: darken(@bg, 2%); - } - - & > div { - padding: 8px; - border-right: 1px solid @lightgray; - } - - & > div:last-child { - border-right: none; - } - - .issuer { - color: lighten(@black,70%); - font-size: 11px; - } - - @media (max-width: @screen-xs-max) { - border: none; - padding: 4px; - - & > div { - padding: 4px; - border: none; - } - - div:before { - display: inline-block; - width: 100px; - font-weight: bold; - text-transform: uppercase; - content: " "attr(data-label); - } - } - - .align-right { - text-align: right; - } - - .btn-link { - padding-left: 0px; - padding-right: 0px; - } - - .btn-link[disabled] { - text-decoration: none; - color: #999999; - } - - .form-control { - font-size: 14px; - height: 36px; - padding: 5px 10px; - } - - .form-control.changed { - background-color: #fcf8e3; - } - - .input-group { - margin-bottom: 10px; - } - - .input-group .input-group-addon.inline-inputs-group { - text-align: center; - font-size: 10px; - line-height: 1; - padding: 10px; - @media(max-width: @screen-xs-max) { - &:before { - display: block; - } - } - } - - .action { - padding-left: 0; - padding-right: 0; - } - } - } - - .emptyMessage { - margin: 10px 0; - } - - .alert { - line-height: 1.428571429; - padding: 8px; - float: left; - } - } - - .alert { - line-height: 1; - } - - .alert-danger .dismiss { - margin:0 5px; - color:darken(@midred, 10%); - } - - .alert-danger .dismiss:hover { - color:darken(@midred, 30%); - } - - .listings.offers { - max-height: 1000px; - overflow: auto; - } - .orderlists { - opacity: 1; - &.loading { - opacity: 0; - } - } - .listings.orders { - max-height: 9999px; - overflow: auto; - min-height: 720px; - } - - .orderbookupdate { - padding-top: 15px; - line-height: 68px; - .orderbook-title { - font-family: OpenSansSemibold, "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - font-weight: normal; - text-transform: uppercase; - small { - text-transform: none; - } - } - .last-update { - text-align: right; - } - @media (max-width: @screen-xs-max) { - line-height: 34px; - padding-bottom: 0; - .last-update { - text-align: left; - } - h3 { - margin-bottom: 0; - margin-top: 5px; - } - } - } - - .orderbook { - @media (max-width: @screen-xs-max) { - font-size: 10px; - } - .title { - margin: 0 -15px 15px -15px; - font: bold 15px 'OpenSansRegular'; - text-transform: uppercase; - background: darken(@bg, 5%); - padding: 10px; - text-align: center; - } - .head { - font: 15px 'OpenSansRegular'; - margin-bottom: 10px; - - .currency { - color: @darkgray; - } - } - - .my { - font-weight: bold; - color: @darkgreen; - - .insig { - color: @darkgreen; - font-weight: normal; - } - - .delete { - margin: 0 10px 0 0; - - text-decoration: none; - } - } - - @media (min-width: @screen-md-max) { - .bids { - border-right: 1px solid darken(@bg, 20%); - } - .asks { - border-left: 1px solid darken(@bg, 20%); - } - } - - @media (max-width: @screen-md-max) { - .asks { - border-top: 6px solid @midgray; - padding-top: 10px; - } - } - - .bids, .asks { - .row { - padding: 4px 0; - text-align: right; - - .rpamount { - font-size: 14px; - padding-left: 5px; - padding-right: 5px; - } - - .sum, .size, .price { - padding-left: 5px; - padding-right: 5px; - } - - &:nth-child(odd) { - background-color: darken(@bg, 5%); - } - } - - background-color: darken(@bg, 2%); - } - - a { - color: inherit; - } - - .message { - text-align: center; - padding-bottom: 20px; - } - - .issuer { - font-size: 10px; - color: @darkgray; - } - } - - .cancelling { - color: lighten(@black,70%); - - a { - color: lighten(@black,70%); - } - - .cancelling.changed { - background-color: #fcf8e3; - } - - .action a { - display: none; - } - } - - .btn-cancel-order { - color: @midred; - } - -} - -header nav.navbar .open > .dropdown-menu { - background-color: @lightgray; -} - -.dropdown-menu { - padding: 0; - - > li > a { - color: @midblue; - padding: 12px 20px; - } - li { - a { - i { - width: 20px; - height: 20px; - margin-right: 10px; - background-image: url(../img/icons-dropdown.png); - opacity: .5; - background-repeat: no-repeat; - display: inline-block; - vertical-align: top; - &.icon-profile { - background-position: 0 0; - } - &.icon-settings { - background-position: -20px 0; - - } - &.icon-logout { - background-position: -40px 0; - } - } - &:hover { - i { - &.icon-profile { - // background-position: 0 -20px; - } - &.icon-settings { - //background-position: -20px -20px; - } - &.icon-logout { - //background-position: -40px -20px; - } - } - } - } - } - .divider { - margin: 0; - } -} - -.t-trade header nav ul > .active#nav-advanced > a:after { - border-bottom-color: @lightgray; -} - -#t-exchange { - .nameLine { - font: 28px OpenSansLight; - - .name { - font-weight: bold; - } - } - - .instructions { - border-bottom: 1px solid @midgray; - margin: 0 0 20px; - padding: 0 0 20px; - } - - .no-gateway { - text-align: center; - - .big-icon { - font-size: 70px; - } - } - - .toggle { - margin-left: 10px; - color: @midblue; - cursor: pointer; - } - - .toggle:hover { - text-decoration: underline; - } - - .mode-confirm { - .amount_feedback { - font: 34px 'OpenSansLight'; - margin: 0 0 10px 0; - padding: 20px; - background: @lightgray; - - .extra { - font-size: 18px; - color: @darkgray; - margin-top: 0.5em; - } - - .currency { - font-size: 20px; - } - } - } - #exchangeForm { - button { - &.btn-cancel { - white-space: normal; - } - } - } -} - -#t-fund, #t-xrp, #t-btc, #t-usd, #t-gold, #t-trust, #t-jpy, #t-brl, #t-mxn, #t-eur, #t-sgd, #t-aud, #t-nzd { - - .currencies a { - display: block; - padding: 10px; - border-radius: 2px; - margin: 0 0 3px; - background: @lightgray; - i{ - margin-right: 5px; - width: 13px; - text-align: center; - } - &:hover, &.active { - color: @lightgray; - text-decoration: none; - background: @midblue; - i:before{ - color:@white; - } - } - - } - - .menu_item { - padding-top: 10px; - padding-bottom: 5px; - } - - .first_menu_item { - padding-bottom: 5px; - } -} - -#t-fund, #t-xrp, #t-btc, #t-usd, #t-gold, #t-jpy, #t-brl, #t-mxn, #t-eur, #t-sgd, #t-aud, #t-nzd { - .B2R-wrap { - font-size: 12px; - .dismiss { - float: right; - font-size: 14px; - } - } - .instructions { - display: block; - border-radius: 2px; - background: @lightgray; - margin: 15px; - border: 1px solid @midgray; - padding-top: 10px; - padding-bottom: 10px; - .title { - font-family: OpenSansSemibold; - font-size: 14px; - font-weight: 600; - color: #1e1e1e; - text-transform: uppercase; - } - } - .fund-tab-description { - &.gateway { - padding-left: 15px; - padding-right: 15px; - } - h4 { - font-family: OpenSansSemibold; - font-size: 14px; - font-weight: 600; - color: #1e1e1e; - text-transform: uppercase; - } - .description { - font-size: 14px; - } - .descriptor{ - padding-bottom: 20px; - } - .connect { - line-height: 42px; - font-size: 14px; - i { - padding-right: 4px; - } - @media (max-width: @screen-xs-max) { - line-height: 36px; - } - } - } -} -#t-fund, #t-xrp, #t-btc, #t-usd, #t-gold, #t-brl, #t-jpy, #t-mxn, #t-eur, #t-sgd, #t-aud, #t-nzd { - .currency { - font-size: 18px; - margin: 0 0 0 5px; - color: darken(@darkgray, 15%); - } - - .lbl { - font-size : 1.2em; - font-family : OpenSansBold; - - .desc { - color: @darkgray; - font: 12px OpenSansLight; - } - } - - .amount { - color: @darkblue; - - .fraction { - font-family: OpenSansLight; - color: @lightgreen; - } - - .currency { - font-family: OpenSansLight; - margin-left: 15px; - } - } - - .total { - margin: 10px 0; - font-size: 15px; - - .fraction { - font-size: 30px; - } - - select.currency { - font-size: 20px; - padding-right: 20px; - border: none; - background: transparent url('../../img/dropdown_arrow.svg') no-repeat; - background-position: center right; - appearance: none; - moz-appearance: none; - -webkit-appearance: none; - - } - } - - - .nameLine { - margin: 0 0 20px; - padding: 0 0 20px; - font: 28px OpenSansLight; - border-bottom: 1px solid @midgray; - - .name { - font-weight: bold; - } - } - - - .fundXrp { - .address { - font-size: 14px; - } - } - - .fundBtc { - .action { - margin-top: 20px; - } - } - - .B2R { - border-top: none; - - .instructions { - } - - .btc-address { - font-size: 14px; - font-weight: bold; - color: @black; - } - - .about { - float: left; - padding: 5px 15px; - width: 300px; - line-height: 30px; - } - - .instructions-b2r { - font-size: 12px; - } - .btc-instructions { - font-size: 12px; - } - - .active { - .qr-code { - height: 100px; - width: 100px; - background: @darkgray; - float: left; - } - - .limit { - clear: both; - padding: 15px 0; - - .amount { - font-family: OpenSansBold; - margin: 0 15px; - } - - .remove { - font: 11px OpenSansLight; - } - } - - .instruction-value { - margin: 15px 0; - color: @black; - font-size: 16px; - } - } - } -} - -#t-account, #t-public, #t-private { - - .accountPage a { - display: block; - padding: 10px; - border-radius: 2px; - margin: 0 0 3px; - background: @lightgray; - - &:hover, &.active { - color: @lightgray; - text-decoration: none; - background: @midblue; - } - } - - #open_name_change { - float: left; - padding-left: 20px; - } - - .nameLine { - margin: 0 0 20px; - padding: 0 0 20px; - font: 20px OpenSansLight; - - .name { - font-weight: bold; - } - } - - .descriptor { - color: @darkgray; - margin: 0 0 20px; - border-top: 1px solid @midgray; - padding-top: 20px; - color: @darkgray; - } - - .edit { - padding-top: 0; - } - - .username { - color: @black; - line-height: 42px; - font-family: OpenSansRegular; - @media (max-width: @screen-xs-max) { - line-height: 36px; - } - } - - - - #nameChangeForm { - margin: 10px 0 0 0; - - } - - .auth-form-container { - padding-bottom: 0; - } - .public-account-row { - margin-bottom: 10px; - } - #renameForm { - width: 400px; - padding-top: 20px; - padding-bottom: 30px; +.loading_text { + padding-left: 5px; +} - .form-group { +.loading_sections { + padding-top: 10px; +} +.fa-bell { + font-size: 0.8em; +} - label { - color: @darkgray; - } +.delete-trust { + margin: 1.4em 0; +} - label[for=password]{ - padding-top: 20px; - } - .input-group { - .input-group-addon:first-child { - background: @midblue; - border-color: @midblue; - color: @white; +.banner { + margin: 2% 8.5% 0 8.5%; + margin-right: 0; + margin-left: 0; + margin-bottom: 20px; + margin-top: 0; - } - } - } - @media (max-width: @screen-xs-max) { - width: 100%; - display: inline-block; - padding-right: 15px; - padding-left: 15px; - #open_name_change { - padding-left: 0; - } - } + #hide { + float: right; } +} - .sessionUnlock { - margin-left: 15px; - - label { - margin-top: 15px - } +.foot { + margin: 10px 0 0 0; + clear: both; + padding: 0; + background: @lightgray; - button.spinner { - padding-left:0; - } + a,div { + display: block; + padding: 15px 40px; + text-align: center; + color: @darkblue; + border: 1px solid @lightgray; } - .confirm2FA { - margin-top:20px; - margin-bottom:20px; + #button_loader { + display: inline-block; + margin-left: auto; + margin-right: auto; } - .verify2FA { - margin-bottom:10px; - - .status { - margin:20px 0; - } + a { + text-decoration: none; + color: @black; - button.spinner { - padding-left:0; + &:hover { + background: @lightgray; + border: 1px solid @midgray } } - } - -#t-usd { - .button-group { - text-align: center; - } - button { - text-align: center; - &:disabled { - background-color: @midblue; - color: #fff; - border-color: @midblue; - } +.currency_sets { + .label { + margin: 10px 0; + font-size: 18px; + color: @black; } + .alternatives { + list-style-type: none; + font-family: 'OpenSansLight'; - .description { - padding-bottom: 20px; - - } + & > div { + text-align: center; + padding-top: 10px; - h5 { - font-weight: bold; - } + .am { + padding: 12px 0; + border: 1px solid @midgray; + border-bottom: none; + .border-radius(5px,0,0,5px); - .ssText { - font-size: 14px; - font-family: OpenSansLight; - font-weight: 300; - } + .amnt { + font-size: 30px; + padding: 0 8px 0 0; + } + .currency { + font-size: 20px; + color: @darkgray; + } - .nameLine { - padding: 0 0 20px; - font: 28px OpenSansLight; + .ex { + color: @darkgray; - .name { - font-weight: bold; + .pair { + margin-left: 5px; + font-size: 12px; + } + } + } + .btn { + .border-radius(0,5px,5px,0); + margin: 0; + } } - - } - - #knoxFrame { - height: 600px; - border: 0; + .pathupdate, .orderbookupdate { + font-size: 12px; + color: @darkgray; + margin-top: 10px; } } -#t-gold, #t-jpy, #t-btc, #t-brl, #t-mxn, #t-usd, #t-eur, #t-sgd, #t-aud, #t-nzd { - .title { - font-family: OpenSansSemibold; - font-size: 14px; - color: #1e1e1e; - font-weight: 600; - text-transform: uppercase; - // padding-bottom: 5px; - } - - .description { - font-size: 14px; - padding-bottom: 10px; - //border-right: thin solid @black; - - } - - .descriptor { - font-size: 14px; - } - - button { - text-align: center; - border: 1px solid @midblue; - font-weight: bold; - background: @midblue; - color: @white; - width: 100%; +.save-address-form { + form { + max-height: 0; + overflow: hidden; + .transition-duration(0.6s); + margin: 0; - &:hover, &.active { - background: darken(@midblue, 15%); - border-color: darken(@midblue, 15%); + &.show { + max-height: 300px; } - } - .connect{ - ::before { - padding-right: 5px; + input { + width: 300px; } - } - .dismiss { - float: right; - } - - .gateway { - margin-left: 0; - padding-bottom: 20px; - } - - .tos { - padding-bottom: 20px; - padding-left: 5px; - } -} -#t-jpy, #t-usd, #t-eur, #t-sgd, #t-aud, #t-nzd { - .description { - p { - margin: 0; - } - } -} -#t-404 { - .not-found-wrapper-row { - padding: 70px 0 30px 0; - a { - font-size: 14px; - &:hover { - text-decoration: none; - } - } - .not-found-title { - font-size: 60px; - color: @midblue; - margin: 0.67em 0; - margin-bottom: 11px; - } - .not-found-text { - margin-bottom: 11px; - font-size: 24px; - color: @darkgray; - font-weight: 300; + .btn { + width: 150px; + margin: 0 20px 0 0; } + hr { - margin-top: 22px; - margin-bottom: 22px; + margin: 15px 0 0 0; } - ul { - padding-left: 0; - list-style: 22px; - li { - margin-bottom: 2px; + .add-contact-btns-wrapper { + .btn { + width: 100%; } } } } -#t-brl { - p { - margin: 0; - } - .btc-tab-description { - .connect { - line-height: normal; - } - } +header nav.navbar .open > .dropdown-menu { + background-color: @lightgray; } +.dropdown-menu { + padding: 0; -.modal2FA { - - .email { - font-family:"Helvetica Neue", Helvetica, Arial, sans-serif; - font-weight:bold; - font-size:1.1em; + > li > a { + color: @midblue; + padding: 12px 20px; } + li { + a { + i { + width: 20px; + height: 20px; + margin-right: 10px; + background-image: url(/img/icons-dropdown.png); + opacity: .5; + background-repeat: no-repeat; + display: inline-block; + vertical-align: top; + &.icon-profile { + background-position: 0 0; + } + &.icon-settings { + background-position: -20px 0; - input { - font-family:"Helvetica Neue", Helvetica, Arial, sans-serif; + } + &.icon-logout { + background-position: -40px 0; + } + } + &:hover { + i { + &.icon-profile { + // background-position: 0 -20px; + } + &.icon-settings { + //background-position: -20px -20px; + } + &.icon-logout { + //background-position: -40px -20px; + } + } + } + } } -} - -.currency-xrp i.fa-money { - color: @color-xrp !important; - .icon-ripple-logo; -} - -.currency-usd i { - color: @color-usd-dark !important; -} - -.currency-btc i { - color: @color-btc !important; -} - -.currency-eur i { - color: @color-eur-dark !important; -} - -// Commodity currencies -.currency-xau, .currency-xag, .currency-xpt, .currency-xpd, .currency-xal, -.currency-xcu, .currency-xni, .currency-xzn, .currency-xpb, .currency-xsn { - i { - .icon-metal-bars; + .divider { + margin: 0; } } -.currency-xau i { - color: @color-xau !important; -} - -.currency-xag i { - color: @color-xag !important; -} - -.currency-xpt i { - color: @color-xpt !important; -} - -.currency-xpd i { - color: @color-xpd !important; -} - -.currency-xal i { - color: @color-xal !important; -} - -.currency-xcu i { - color: @color-xcu !important; -} - -.currency-xni i { - color: @color-xni !important; -} - -.currency-xzn i { - color: @color-xzn !important; -} - -.currency-xpb i { - color: @color-xpb !important; -} - -.currency-xsn i { - color: @color-xsn !important; -} - - .rp-h4 { font-family: OpenSansSemibold, "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: normal; @@ -3167,71 +241,6 @@ header nav.navbar .open > .dropdown-menu { } } -.rp-modal { - - // Modal header - // Top section of the modal w/ title and dismiss - .modal-header { - background-color: @midblue; - color: @white; - } - - // Title text within header - .modal-title { - .rp-h4; - margin: 0 1.5em 0 1.7em; - } - - .modal-logo { - margin: -.8em -.1em -.6em -.9em; - } - - .modal-prompt { - .rp-base; - padding-left: 40px; - padding-top: 30px; - margin-bottom: 16px; - @media (max-width: @screen-xs-max) { - padding-left: 30px; - } - } - - .modal-buttons { - text-align: right; - padding: 0px 20px 20px 20px; - } - - .modal-btn { - padding-left: 2em; - padding-right: 2em; - margin-right: 5px; - } - - .modal-order { - background-color: @lightgray; - margin-bottom: 2em; - padding: 1em 20px; - } - - .modal-order-type { - .rp-h4; - width: 70px; - text-transform: uppercase; - text-align: right; - display: inline-block; - margin-right: 10px; - } - - .modal-body { - padding: 0px; - } - - .btn-success { - margin-bottom: 0px; - } - -} - // this taken from bootstrap 3.3.1 .rp-hidden-xs { @media (max-width: @screen-xs-max) { @@ -3253,3 +262,26 @@ header nav.navbar .open > .dropdown-menu { .responsive-invisibility(); } } + +// tabs +@import "tabs/balance.less"; +@import "tabs/history.less"; +@import "tabs/contact.less"; +@import "tabs/send.less"; +@import "tabs/exchange.less"; +@import "tabs/trade.less"; +@import "tabs/security.less"; +@import "tabs/settingsTrade.less"; +@import "tabs/advanced.less"; +@import "tabs/account.less"; +@import "tabs/trust.less"; +@import "tabs/gateways.less"; +@import "tabs/404.less"; +@import "tabs/authorization.less"; +@import "tabs/notifications.less"; + +// modal +@import "modals/modal.less"; + +// icons +@import "icons/currency-icons.less"; diff --git a/src/less/ripple/tabs/404.less b/src/less/ripple/tabs/404.less new file mode 100644 index 000000000..bbb65228b --- /dev/null +++ b/src/less/ripple/tabs/404.less @@ -0,0 +1,34 @@ +#t-404 { + .not-found-wrapper-row { + padding: 70px 0 30px 0; + a { + font-size: 14px; + &:hover { + text-decoration: none; + } + } + .not-found-title { + font-size: 60px; + color: @midblue; + margin: 0.67em 0; + margin-bottom: 11px; + } + .not-found-text { + margin-bottom: 11px; + font-size: 24px; + color: @darkgray; + font-weight: 300; + } + hr { + margin-top: 22px; + margin-bottom: 22px; + } + ul { + padding-left: 0; + list-style: 22px; + li { + margin-bottom: 2px; + } + } + } +} diff --git a/src/less/ripple/tabs/account.less b/src/less/ripple/tabs/account.less new file mode 100644 index 000000000..cadb11ef5 --- /dev/null +++ b/src/less/ripple/tabs/account.less @@ -0,0 +1,113 @@ +#t-account, #t-public, #t-private { + + .accountPage a { + display: block; + padding: 10px; + border-radius: 2px; + margin: 0 0 3px; + background: @lightgray; + + &:hover, &.active { + color: @lightgray; + text-decoration: none; + background: @midblue; + } + } + + #open_name_change { + float: left; + padding-left: 20px; + } + + .nameLine { + margin: 0 0 20px; + padding: 0 0 20px; + font: 20px OpenSansLight; + + .name { + font-weight: bold; + } + } + + .descriptor { + color: @darkgray; + margin: 0 0 20px; + border-top: 1px solid @midgray; + padding-top: 20px; + color: @darkgray; + } + + .edit { + padding-top: 0; + } + + .username { + color: @black; + line-height: 42px; + font-family: OpenSansRegular; + @media (max-width: @screen-xs-max) { + line-height: 36px; + } + } + + + + #nameChangeForm { + margin: 10px 0 0 0; + + } + + .auth-form-container { + padding-bottom: 0; + } + .public-account-row { + margin-bottom: 10px; + } + #renameForm { + width: 400px; + padding-top: 20px; + padding-bottom: 30px; + + .form-group { + + + label { + color: @darkgray; + } + + label[for=password]{ + padding-top: 20px; + } + .input-group { + .input-group-addon:first-child { + background: @midblue; + border-color: @midblue; + color: @white; + + } + } + } + @media (max-width: @screen-xs-max) { + width: 100%; + display: inline-block; + padding-right: 15px; + padding-left: 15px; + #open_name_change { + padding-left: 0; + } + } + } + + .sessionUnlock { + margin-left: 15px; + + label { + margin-top: 15px + } + + button.spinner { + padding-left:0; + } + } + +} diff --git a/src/less/ripple/tabs/advanced.less b/src/less/ripple/tabs/advanced.less new file mode 100644 index 000000000..0c407d696 --- /dev/null +++ b/src/less/ripple/tabs/advanced.less @@ -0,0 +1,152 @@ +#t-advanced, #t-settingsgateway { + .settingPage a { + display: block; + padding: 10px; + border-radius: 2px; + margin: 0 0 3px; + background: @lightgray; + + &:hover, &.active { + color: @lightgray; + text-decoration: none; + background: @midblue; + } + } + + #serverSettings { + margin-top: 40px; + } + + .description { + margin: 5px 0 5px 0; + font-size: 13px; + + } + + .descriptor { + color: @darkgray; + margin: 0 0 10px; + border-top: 1px solid @midgray; + padding-top: 20px; + } + + .websocket{ + padding-right: 0; + } + + .port{ + padding-left: 0; + } + + .portNumber{ + padding-left: 10px; + @media (max-width: @screen-xs-max) { + padding-left: 0; + } + } + + div.section { + padding-bottom: 20px; + } + + div.part { + padding-top: 10px; + a { + float: right; + } + } + + #save { + margin-top: 0; + } + + #delete { + // background-color: @midred; + // border-color: @midred; + margin-top: 0; + } + + #cancel { + margin-top: 0; + } + + #newServer { + width: 100%; + margin-top: 20px; + } + + #servers, #gateways { + padding-top: 0; + + .trust-line-form { + .edit-trust-line { + line-height: 34px; + } + } + @media (max-width: @screen-xs-max){ + font-size: 12px; + } + .field-edit-row { + padding-bottom: 20px; + } + .advanced-form-row { + line-height: 32px; + margin-bottom: 15px; + @media (max-width: @screen-xs-max) { + line-height: 26px; + } + } + .server-row-form { + border-top: 1px solid #ccccca; + margin-bottom: 10px; + .descriptor { + border: 0; + } + .hostname-wrapper { + padding-right: 0; + } + @media (max-width: @screen-xs-max) { + .port-wrapper { + + padding-left: 0; + + } + } + + } + .helperInput { + line-height: 44px; + } + .edit-btn { + line-height: 28px; + } + + } + + #secureSocket { + padding-left: 0; + padding-right: 0; + @media (max-width: @screen-xs-max) { + padding-left: 15px; + } + &.editable { + line-height: 35px; + // padding-left: 15px; + + } + .helperInput { + // padding-top: 7px; + line-height: 40px; + } + } + + #renameForm { + padding-left: 15px; + + } + + .editButton { + padding-top: 4px; + } + +} diff --git a/src/less/ripple/tabs/authorization.less b/src/less/ripple/tabs/authorization.less new file mode 100644 index 000000000..352dac5b9 --- /dev/null +++ b/src/less/ripple/tabs/authorization.less @@ -0,0 +1,343 @@ +.t-login { + header nav { + display: none; + } +} +#t-login, #t-account { + a { + text-decoration: none; + &:hover, &:focus { + text-decoration: none; + } + } + .rippleName { + font-size: 18px; + color: @white; + } + .name-tooltip { + margin-left: 10px; + color: @midgray; + cursor: pointer; + } + button.recover { + text-align: center; + display: block; + font-size: 12px; + margin-right: auto; + margin-left: auto; + text-decoration: none; + &:hover { + color: @midgray; + } + } + a.recover-btn { + text-decoration: none; + } + .auth-form-container { + font-family: OpenSansRegular; + padding: 15px; + h2 { + margin: 10px 0 30px 0; + padding: 0 0 30px; + text-align: center; + border-bottom: 1px solid @midgray; + } + .auth-form-wrapper { + background: @lightgray; + padding: 15px 20px; + border: 1px solid @midgray; + margin-bottom: 5px; + margin: 0 auto 10px; + float: none; + label { + font-weight: 400; + margin-bottom: 3px; + } + .recover-description { + margin-bottom: 15px; + font-size: 13px; + } + } + .form-group { + p.error-text { + display: none; + } + .form-control { + margin-bottom: 0; + } + &.field-ok { + p > span { + padding-top: 3px; + line-height: 15px; + font-size: 12px; + color: @midgreen; + } + .input-group:after { + content: ""; + position: absolute; + left: 100%; + bottom: 0; + margin-left: 4px; + width: 5px; + height: 100%; + background: @midgreen; + } + } + &.field-error { + margin-bottom: 15px; + p > span { + padding-top: 3px; + line-height: 15px; + font-size: 12px; + color: @midred; + } + .input-group:after { + content: ""; + position: absolute; + left: 100%; + bottom: 0; + margin-left: 4px; + width: 5px; + height: 100%; + background: @midred; + } + } + &.field-warning { + .input-group:after { + content: ""; + position: absolute; + left: 100%; + bottom: 0; + margin-left: 4px; + width: 5px; + height: 100%; + background: @lightyellow; + } + } + } + .secret-key-container { + margin-bottom: 30px; + background: @lightyellow; + padding: 15px; + border: 1px solid @midgray; + color: @darkyellow; + .rounded(5px); + .secret-key { + padding-top: 15px; + margin-bottom: 10px; + span { + padding: 0 10px; + } + } + } + .switch-mode-link-container { + text-align: left; + a { + text-decoration: none; + } + } + .sign-up-steps-list { + margin-bottom: 15px; + li { + margin-right: 25px; + display: inline-block; + list-style: none; + padding-bottom: 5px; + border-bottom: 5px solid transparent; + &.active { + color: @darkgray; + font-weight: bold; + border-bottom: 5px solid @darkgray; + } + &.completed { + color: @darkgray; + font-weight: bold; + } + } + } + .see-privacy-text { + color: @darkgray; + font-size: 13px; + margin-bottom: 15px; + } + &.mode-verify { + .code { + font-family: OpenSansBold; + font-size: 15px; + margin: 10px 0; + } + .status { + margin: 10px 0; + text-align: center; + } + } + } + .switch-mode-wrapper { + text-align: center; + font-family: OpenSansRegular; + } + &.recover-form-container { + padding-top: 50px; + } + .strength { + margin: 38px 0 0 0; + &.match { + color: @midred; + } + &.weak { + color: @midred; + } + &.medium { + color: #ff8200; + } + &.strong { + color: @darkgreen; + } + } + .text-error { + color: @midred; + margin: -20px 0 0 0; + } + .storageinfo strong { + color: @black; + } + .storageinfo a { + font-size: 0.7em; + } + .storeChange { + display: block; + } + .auth-form-wrapper { + .submit-btn-container { + width: 70%; + } + .submit-btn-container-recovery { + text-align: center; + .recover-btn { + display: inline-block; + width: 70%; + } + .btn { + min-height: 60px; + } + } + @media (max-width: @screen-xs-max) { + .submit-btn-container { + width: 100%; + button { + font-size: 14px; + } + } + .submit-btn-container-recovery { + text-align: center; + .recover-btn { + display: inline-block; + width: 100%; + } + } + } + } +} + +#t-login { + @media (max-width: @screen-xs-max) { + .content { + padding-top: 0; + .auth-form-container { + padding: 15px; + padding-bottom: 0; + } + } + } + .text-status { + .backend { + font-size: 12px; + span { + color: @midred; + } + } + } + .maskedPhone { + font-size: 16px; + margin: 0 5px; + } + .rememberMe { + margin: 4px 7px 0 0; + float: left; + } + .action-login { + .uri-form-container{ + border-right: 1px solid @midgray; + } + .info { + font-family: OpenSansLight; + + padding: 0 40px; + background: rgba(76, 141, 184, .8); + border-radius: 5px; + @media (max-width: @screen-xs-max) { + border-right: none; + } + .literal { + font-size: 20px; + } + p { + padding-left: @grid-gutter-width/2; + padding-right: @grid-gutter-width/2; + @media (max-width: @screen-sm-max) and (min-width: @screen-xs-max) { + padding-left: 0; + padding-right: 0; + } + word-break: break-all; + font-size: 18px; + color: @landingblue; + } + .amount, .address { + margin-left: -@grid-gutter-width/2; + background-color: @lightgray; + margin-bottom: 30px; + padding-left: @grid-gutter-width; + padding-right: @grid-gutter-width; + @media (max-width: @screen-xs-max) { + margin-right: -@grid-gutter-width/2; + } + @media (max-width: @screen-sm-max) and (min-width: @screen-xs-max) { + padding-left: @grid-gutter-width/2; + padding-right: @grid-gutter-width/2; + } + } + .amount { + padding-top: 30px; + padding-bottom: 25px; + .number { + font-weight: bold; + font-size: 30px; + } + .currency { + padding: 0 0 0 5px; + font-size: 20px; + } + } + .address { + padding-top: 25px; + padding-bottom: 25px; + font: 18px 'OpenSansRegular'; + color: @darkgray; + } + } + } +} +#t-options { + form .row { + margin-bottom: 10px; + } + .errorGroup { + height: auto; + } + .tracking { + margin: 0 10px 0 0; + } + .btn-block { + margin-bottom: 20px; + } +} diff --git a/src/less/ripple/tabs/balance.less b/src/less/ripple/tabs/balance.less new file mode 100644 index 000000000..02543414e --- /dev/null +++ b/src/less/ripple/tabs/balance.less @@ -0,0 +1,172 @@ +#t-balance { + + .content { + padding-top: 0; + } + + #welcome { + font: 18px 'OpenSansLight'; + margin: 0 0 10px; + text-align: center; + background: @lightgreen; + padding: 50px; + + .title { + font: 18px 'OpenSansBold'; + } + + .actions { + margin: 40px 0 0 0; + + a,span { + display: inline-block; + width: 190px; + height: 270px; + background-image: url(/img/spritex.png); + margin: 0 15px; + } + .receive { + background-position: -2px -535px; + } + .buy { + background-position: -2px -263px; + } + .giveaway { + background-position: -2px -1079px; + } + .gateway { + background-position: -2px -807px; + } + } + } + + .component, .B2R { + font-family: OpenSansLight; + font-size: 16px; + line-height: 35px; + color: @darkgray; + padding-top: 5px; + padding-bottom: 5px; + border-top: 1px solid @midgray; + + .transfer { + float: right; + + a { + font-size: 12px; + margin: 0 5px; + padding: 0 2px; + border-bottom: 3px solid transparent; + line-height: 16px; + text-decoration: none; + } + + a.selected, a:hover{ + border-color: @darkgray; + cursor: pointer; + } + } + + .inactive { + padding-bottom: 15px; + + label { + font: 14px OpenSansLight; + line-height: 25px; + color: @black; + margin-bottom: 15px; + } + } + + .active { + .limit { + clear: both; + padding: 15px 0; + + .amount { + font-family: OpenSansBold; + margin: 0 15px; + } + + .remove { + font: 11px OpenSansLight; + } + } + + .instruction-value { + margin: 15px 0; + color: @black; + font-size: 16px; + } + } + + .head { + overflow: hidden; + @media (max-width: @screen-xs-max){ + font-size: 12px; + } + .status { + margin: 0 20px; + font: 10px OpenSansRegular; + padding: 3px 20px; + .rounded(2px); + background: @midgray; + border: 1px solid @darkgray; + + &.unverified { + color: @midred; + background: @lightyellow; + border-color: @midgray; + } + } + .balance-text-wrapper { + text-overflow: ellipsis; + overflow: hidden; + } + + } + + .add, .withdraw { + font-size: 14px; + color: @black; + border-top: 1px solid @midgray; + line-height: 20px; + padding: 15px 25px; + font-family: OpenSansRegular; + margin-top: 5px; + + button { + margin: 5px 0; + } + + .message { + margin: 5px 0; + } + + label { + font: 14px OpenSansLight; + line-height: 25px; + } + } + + .withdraw { + + .errorGroups { + min-height: 20px; + } + + .step2 { + + .amount { + font-family: OpenSansBold; + color: @black; + } + + .btc_address { + font: 18px OpenSansRegular; + margin: 10px 0 30px; + } + } + } + } +} \ No newline at end of file diff --git a/src/less/ripple/tabs/contact.less b/src/less/ripple/tabs/contact.less new file mode 100644 index 000000000..42d85d72a --- /dev/null +++ b/src/less/ripple/tabs/contact.less @@ -0,0 +1,74 @@ +#t-contacts { + + .head { + padding-top: 10px; + padding-bottom: 10px; + line-height: 30px; + + div i { + padding-top: 10px; + padding-bottom: 10px; + line-height: 10px; + color: @midgray; + float: right; + display: inline-block; + } + + i.sorted { + color: @black; + } + + cursor: pointer; + } + + .addForm { + background: @lightgray; + padding-top: 15px; + padding-bottom: 15px; + margin-top: -10px; + margin-bottom: 10px; + margin-right: 0; + margin-left: 0; + } + + .contact { + padding-top: 10px; + padding-bottom: 10px; + line-height: 40px; + .edit-contact-btn-wrapper { + div { + float: inherit; + display: inline-block; + } + } + &.editing { + background: @lightgray; + margin-right: 0; + margin-left: 0; + margin-bottom: 20px; + input { + margin: 0; + } + label { + line-height: normal; + } + } + .contact-input-wrapper { + .inline-name-form { + display: inline-block; + width: 100%; + margin-bottom: 15px; + } + } + + @media (max-width: @screen-xs-max) { + .name { + font-weight: bold; + } + } + } + + .danger { + line-height: 42px; + } +} diff --git a/src/less/ripple/tabs/exchange.less b/src/less/ripple/tabs/exchange.less new file mode 100644 index 000000000..b73690bda --- /dev/null +++ b/src/less/ripple/tabs/exchange.less @@ -0,0 +1,61 @@ + +#t-exchange { + + .nameLine { + font: 28px OpenSansLight; + + .name { + font-weight: bold; + } + } + + .instructions { + border-bottom: 1px solid @midgray; + margin: 0 0 20px; + padding: 0 0 20px; + } + + .no-gateway { + text-align: center; + + .big-icon { + font-size: 70px; + } + } + + .toggle { + margin-left: 10px; + color: @midblue; + cursor: pointer; + } + + .toggle:hover { + text-decoration: underline; + } + + .mode-confirm { + .amount_feedback { + font: 34px 'OpenSansLight'; + margin: 0 0 10px 0; + padding: 20px; + background: @lightgray; + + .extra { + font-size: 18px; + color: @darkgray; + margin-top: 0.5em; + } + + .currency { + font-size: 20px; + } + } + } + #exchangeForm { + button { + &.btn-cancel { + white-space: normal; + } + } + } +} diff --git a/src/less/ripple/tabs/gateways.less b/src/less/ripple/tabs/gateways.less new file mode 100644 index 000000000..9672c5f80 --- /dev/null +++ b/src/less/ripple/tabs/gateways.less @@ -0,0 +1,296 @@ +#t-fund, #t-xrp, #t-btc, #t-usd, #t-gold, #t-trust, #t-jpy, #t-brl, #t-mxn, #t-eur, #t-sgd, #t-aud, #t-nzd, #t-cad { + .currencies a { + display: block; + padding: 10px; + border-radius: 2px; + margin: 0 0 3px; + background: @lightgray; + i { + margin-right: 5px; + width: 13px; + text-align: center; + } + &:hover, &.active { + color: @lightgray; + text-decoration: none; + background: @midblue; + i:before { + color: @white; + } + } + } + .menu_item { + padding-top: 10px; + padding-bottom: 5px; + } + .first_menu_item { + padding-bottom: 5px; + } + .B2R-wrap { + font-size: 12px; + .dismiss { + float: right; + font-size: 14px; + } + } + .instructions { + display: block; + border-radius: 2px; + background: @lightgray; + margin: 15px; + border: 1px solid @midgray; + padding-top: 10px; + padding-bottom: 10px; + .title { + font-family: OpenSansSemibold; + font-size: 14px; + font-weight: 600; + color: #1e1e1e; + text-transform: uppercase; + } + } + .fund-tab-description { + &.gateway { + padding-left: 15px; + padding-right: 15px; + } + h4 { + font-family: OpenSansSemibold; + font-size: 14px; + font-weight: 600; + color: #1e1e1e; + text-transform: uppercase; + } + .description { + font-size: 14px; + } + .descriptor { + padding-bottom: 20px; + } + .connect { + line-height: 42px; + font-size: 14px; + i { + padding-right: 4px; + } + @media (max-width: @screen-xs-max) { + line-height: 36px; + } + } + } + .currency { + font-size: 18px; + margin: 0 0 0 5px; + color: darken(@darkgray, 15%); + } + .lbl { + font-size: 1.2em; + font-family: OpenSansBold; + .desc { + color: @darkgray; + font: 12px OpenSansLight; + } + } + .amount { + color: @darkblue; + .fraction { + font-family: OpenSansLight; + color: @lightgreen; + } + .currency { + font-family: OpenSansLight; + margin-left: 15px; + } + } + .total { + margin: 10px 0; + font-size: 15px; + .fraction { + font-size: 30px; + } + select.currency { + font-size: 20px; + padding-right: 20px; + border: none; + background: transparent url('/img/dropdown_arrow.svg') no-repeat; + background-position: center right; + appearance: none; + moz-appearance: none; + -webkit-appearance: none; + } + } + .nameLine { + margin: 0 0 20px; + padding: 0 0 20px; + font: 28px OpenSansLight; + border-bottom: 1px solid @midgray; + .name { + font-weight: bold; + } + } + .fundXrp { + .address { + font-size: 14px; + } + } + .fundBtc { + .action { + margin-top: 20px; + } + } + .B2R { + border-top: none; + .instructions {} .btc-address { + font-size: 14px; + font-weight: bold; + color: @black; + } + .about { + float: left; + padding: 5px 15px; + width: 300px; + line-height: 30px; + } + .instructions-b2r { + font-size: 12px; + } + .btc-instructions { + font-size: 12px; + } + .active { + .qr-code { + height: 100px; + width: 100px; + background: @darkgray; + float: left; + } + .limit { + clear: both; + padding: 15px 0; + .amount { + font-family: OpenSansBold; + margin: 0 15px; + } + .remove { + font: 11px OpenSansLight; + } + } + .instruction-value { + margin: 15px 0; + color: @black; + font-size: 16px; + } + } + } + .button-group { + text-align: center; + } + button.btn-primary { + text-align: center; + &:disabled { + background-color: @midblue; + color: #fff; + border-color: @midblue; + } + } + .description { + padding-bottom: 20px; + } + h5 { + font-weight: bold; + } + .ssText { + font-size: 14px; + font-family: OpenSansLight; + font-weight: 300; + } + .nameLine { + padding: 0 0 20px; + font: 28px OpenSansLight; + .name { + font-weight: bold; + } + } + #knoxFrame { + height: 600px; + border: 0; + } + + .title { + font-family: OpenSansSemibold; + font-size: 14px; + color: #1e1e1e; + font-weight: 600; + text-transform: uppercase; + // padding-bottom: 5px; + } + + .description { + font-size: 14px; + padding-bottom: 10px; + //border-right: thin solid @black; + } + + .snapswap-support-link { + margin: -10px 0 10px 0; + } + + .descriptor { + font-size: 14px; + } + + button.btn-large { + text-align: center; + font-weight: bold; + width: 100%; + } + + .connect{ + ::before { + padding-right: 5px; + } + } + + .dismiss { + float: right; + } + + .gateway { + margin-left: 0; + padding-bottom: 20px; + } + + .tos { + padding-bottom: 20px; + padding-left: 5px; + } + .description { + p { + margin: 0; + } + } + p { + margin: 0; + } + .btc-tab-description { + .connect { + line-height: normal; + } + } +} + +#t-fund, #t-xrp, #t-btc, #t-usd, #t-gold, #t-jpy, #t-brl, #t-mxn, #t-eur, #t-sgd, #t-aud, #t-nzd, #t-cad { + button { + text-align: center; + border: 1px solid @midblue; + font-weight: bold; + background: @midblue; + color: @white; + width: 100%; + + &:hover, &.active { + background: darken(@midblue, 15%); + border-color: darken(@midblue, 15%); + } + } +} diff --git a/src/less/ripple/tabs/history.less b/src/less/ripple/tabs/history.less new file mode 100644 index 000000000..e697bdf95 --- /dev/null +++ b/src/less/ripple/tabs/history.less @@ -0,0 +1,308 @@ +#t-history { + #section_loader { + color: @midgray; + text-align: center; + margin: 50px 0 0 0; + } + + @bg: @lightgray; + + .filters { + margin: 0; + + .filter { + margin-bottom: 10px; + + .filter-title { + display: block; + font: 16px OpenSansLight; + padding: 10px; + border-bottom: 1px solid @midgray; + text-decoration: none; + } + + .filter-description { + margin-top: 10px; + font: 12px OpenSansLight; + color: @darkgray; + } + + .filter-choices { + margin-top: 10px; + } + + .input-group { + margin: 0 0 10px; + + i.fa-fw { + margin-right: 5px; + } + } + } + } + + .type-filter, .date-filter { + + i { + margin: 0 10px 0 0; + } + + label { + width: 100%; + background: @lightgray; + padding: 6px 10px; + cursor: pointer; + text-transform: capitalize; + color: @darkgray; + font-size: 14px; + border: 1px solid darken(@lightgray,3%); + + .count { + float: right; + margin: -8px -15px; + background: @lightgray; + padding: 8px 12px; + } + + &.active { + color: @black; + background: @lightblue; + border: 1px solid @lightblue; + + .count { + float: right; + margin: -8px -15px; + background: @midblue; + padding: 8px 12px; + } + } + + input { + display: none; + } + } + } + + .transactions { + .emptyHistory { + padding: 10px; + font: 16px OpenSansLight; + text-align: center; + } + + .head { + display: inline-block; + width: 100%; + padding-bottom: 10px; + border-bottom: 1px solid @midgray; + margin-bottom: 30px; + margin-left: 0; + + .dt { + margin: 0 0 0 23px; + width: 170px; + } + } + .export-btn-wrapper { + padding: 6px; + @media (max-width: @screen-xs-max) { + margin-bottom: 20px; + } + } + .message { + background-color: @lightgray; + padding: 10px; + } + + & > div > ul { + list-style-type: none; + margin: 0; + padding: 0; + + & > li { + padding: 0 0 0 5px; + margin: 5px 0; + cursor: pointer; + background-color: @midgray; + + .info { + display: inline-block; + width: 100%; + background-color: @lightgray; + @media (max-width: @screen-xs-max) { + font-size: 11px; + } + & > span { + display: inline-block; + line-height: 22px; + padding: 9px 0; + vertical-align: top; + } + + span.address, span.amount { + font-weight: bold; + } + } + + .cont { + padding: 10px; + background-color: @lightgray; + } + &.sent { + background: @midgreen; + } + &.received { + background: @midgreen; + } + &.trusted { + background: @darkgray; + } + &.trusting { + background: @darkgray; + } + &.accountset { + background: @midgray; + } + &.failed, &.error { + background: @midred; + } + + .i { + padding: 0 10px 0 0; + display: inline-block; + text-align: center; + } + + .top { + overflow: auto; + + .i, .desc { + float: left; + } + .dt { + float: right; + } + } + + .effects > li > span { + font-size: 12px; + } + + .details { + padding: 10px 0 0; + @media (max-width: @screen-xs-max) { + font-size: 12px; + } + .effects { + border-top: 1px solid @midgray; + border-bottom: 1px solid @midgray; + padding-top: 10px; + padding-bottom: 10px; + margin-bottom: 10px; + + & > .title { + display: block; + margin: 0 0 10px; + } + + .effect { + &.header { + font-weight: bold; + } + & > span { + display: inline-block; + } + + .description { + width: 25%; + } + .issuer { + width: 35%; + } + .amount { + width: 20%; + text-align: right; + } + .balance { + width: 20%; + text-align: right; + } + } + + @media (max-width: 1023px) { + .effect { + padding: 10px 0; + border-top: 1px solid @midgray; + + &.header { + display: none; + } + + span { + display: block; + width: auto !important; + text-align: left !important; + } + span:before { + display: inline-block; + width: 150px; + font-weight: bold; + content: " "attr(data-label); + } + } + } + + @media (max-width: 600px) { + .effect { + span:before { + display: block; + font-weight: bold; + content: " "attr(data-label); + } + } + } + } + + .links { + display: inline-block; + width: 100%; + @media (max-width: @screen-xs-max) { + font-size: 10px; + } + .txLink { + float: left; + } + .addLink { + float: right; + } + + @media (max-width: 600px) { + a { + display: block; + float: none !important; + background: @midgray; + padding: 10px; + margin: 5px 0; + } + } + } + } + } + + .add { + display: none; + } + + .effects { + margin: 0; + padding: 0; + list-style-type: none; + } + } + + } + + nav.paging { + text-align: right; + } +} \ No newline at end of file diff --git a/src/less/ripple/tabs/notifications.less b/src/less/ripple/tabs/notifications.less new file mode 100644 index 000000000..ea9279c9c --- /dev/null +++ b/src/less/ripple/tabs/notifications.less @@ -0,0 +1,47 @@ +#t-notifications { + .settingPage a { + display: block; + padding: 10px; + border-radius: 2px; + margin: 0 0 3px; + background: @lightgray; + + &:hover, &.active { + color: @lightgray; + text-decoration: none; + background: @midblue; + } + } + + .description { + margin: 5px 0 5px 0; + font-size: 13px; + + } + + .descriptor { + color: @darkgray; + margin: 0 0 10px; + border-top: 1px solid @midgray; + padding-top: 20px; + } + + div.section { + padding-bottom: 20px; + } + + div.part { + padding-top: 10px; + a { + float: right; + } + } + + #save { + margin-top: 0px; + } + + #cancel { + margin-top: 0px; + } +} \ No newline at end of file diff --git a/src/less/ripple/tabs/security.less b/src/less/ripple/tabs/security.less new file mode 100644 index 000000000..2d1f77b4b --- /dev/null +++ b/src/less/ripple/tabs/security.less @@ -0,0 +1,136 @@ +#t-security { + #button_loader{ + display: inline-block; + } + + .save-btn-wrapper { + float: left; + } + .edit-security-pswd{ + line-height: 45px; + } + .settingPage a { + display: block; + padding: 10px; + border-radius: 2px; + margin: 0 0 3px; + background: @lightgray; + + &:hover, &.active { + color: @lightgray; + text-decoration: none; + background: @midblue; + } + } + + .notices { + list-style-type: none; + margin: 10px 0 0 0; + } + .important { + font-size: 20px; + line-height: 25px; + } + .title { + .clearfix; + margin: 20px 0 0; + + .name { + margin: 0 20px 0 10px; + line-height: 40px; + float: left; + } + .more { + line-height: 40px; + float: left; + } + } + .description { + margin: 11px 0 11px 0; + span.value { + overflow: hidden; + display: inherit; + &.ng-binding { + text-overflow: ellipsis; + } + } + } + + .descriptor { + color: @darkgray; + margin: 0 0 10px; + border-top: 1px solid @midgray; + padding-top: 20px; + } + + div#password.row { + padding-top: 10px; + padding-bottom: 10px; + + } + .infoBox { + .clearfix; + border: 1px solid @midgray; + padding: 20px; + margin-top: 5px; + margin-bottom: 5px; + } + + div.section { + padding-bottom: 20px; + } + + div.part { + padding-top: 10px; + a { + float: right; + } + } + + .show-keys { + margin: 20px 0 0 40px; + } + + .sessionUnlock { + margin-left: 15px; + + label { + margin-top: 15px + } + + button.spinner { + padding-left:0; + } + } + + label[for=persistUnlock]{ + padding-left: 5px; + } + + .note { + font-size:12px; + color:@darkgray; + } + + #renameForm { + // padding-left: 15px; + } + + + .btn-link { + padding-top: 0; + + } + .edit-security-pswd { + #save { + + } + } + .show-security { + a { + @media(max-width: @screen-xs-max) { + line-height: 18px; + } + } + } +} diff --git a/src/less/ripple/tabs/send.less b/src/less/ripple/tabs/send.less new file mode 100644 index 000000000..4f69c30d4 --- /dev/null +++ b/src/less/ripple/tabs/send.less @@ -0,0 +1,118 @@ +#t-send { + .inputSpinner { + top: 20px; + right: 20px; + } + + .rp-combobox { + display: block; + } + + .toggle { + margin-left: 10px; + color: @midblue; + cursor: pointer; + } + + .toggle:hover { + text-decoration: underline; + } + + .mode-form { + .currency_force { + margin-bottom: 20px; + } + + .remote { + margin: 20px 0 0 0; + } + + .tagsLinks { + padding: 0; + list-style-type: none; + } + + label[for=send_dt] { + margin-right: 20px; + } + + .errorGroup { + height: auto; + // margin-bottom: -10px; + } + .form-group { + margin-bottom: 0px; + } + } + + .mode-status { + .address { + font-size: 25px; + font: 34px 'OpenSansLight'; + margin: 0 0 30px; + } + p { + margin: 0 0 40px; + font-size: 16px; + } + .actionLink { + margin-top: 20px; + margin-bottom: 20px; + font-size: 16px; + } + .save-address-form { + form { + input { + width: 100%; + } + .form-wrapper { + width: 300px; + @media (max-width: 767px) { + width: 100%; + } + } + } + } + } + + .mode-confirm { + .amount_feedback, .dest_feedback, .sendmax_feedback { + font-size: 26px; + margin: 0; + background-color: @lightgray; + + .extra { + font-size: 18px; + color: @darkgray; + margin-top: 0.5em; + + @media (max-width: 380px) { + font-size: 14px; + } + } + .dt { + font-size: 15px; + margin-top: 1em; + } + } + + .dest_feedback { + padding: 20px; + overflow: hidden; + text-overflow: ellipsis; + } + + .amount_feedback, .sendmax_feedback { + font: 34px 'OpenSansLight'; + padding: 10px 20px; + + .currency { + font-size: 20px; + } + } + } + + .actions { + margin: 60px 0 0 0; + } +} diff --git a/src/less/ripple/tabs/settingsTrade.less b/src/less/ripple/tabs/settingsTrade.less new file mode 100644 index 000000000..c6de9567d --- /dev/null +++ b/src/less/ripple/tabs/settingsTrade.less @@ -0,0 +1,57 @@ +#t-settingstrade{ + .settingPage a { + display: block; + padding: 10px; + border-radius: 2px; + margin: 0 0 3px; + background: @lightgray; + + &:hover, &.active { + color: @lightgray; + text-decoration: none; + background: @midblue; + } + } + + .descriptor { + color: @darkgray; + margin: 0 0 10px; + border-top: 1px solid @midgray; + padding-top: 20px; + } + + .pair { + background-color: @lightgray; + padding: 10px; + margin: 0; + margin-bottom: 10px; + overflow: hidden; + position: relative; + } + + .grip { + display: inline-block; + position: relative;; + left: -10px; + width: 3px; + height: 9px; + background-repeat: no-repeat; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAJAgMAAACK3X5KAAAACVBMVEUAAAAiIiIiIiIxJsNmAAAAAnRSTlMAGRL4ZfgAAAANSURBVAjXY+hgcEHFACGKA7njBRNQAAAAAElFTkSuQmCC); + } + + .delete { + float: right; + color: @midred; + } + + .as-sortable-item, .as-sortable-placeholder { + min-height: 20px; + margin: 1px 2px 5px 1px; + } + + .as-sortable-placeholder { + border: 1px dashed @darkgray; + background-color: @lightgray; + } + +} \ No newline at end of file diff --git a/src/less/ripple/tabs/trade.less b/src/less/ripple/tabs/trade.less new file mode 100644 index 000000000..9da8fac4c --- /dev/null +++ b/src/less/ripple/tabs/trade.less @@ -0,0 +1,652 @@ +#t-trade { + + .orderbook-wrapper { + position: relative; + #orderbook_loader { + color: @midgray; + text-align: center; + position: absolute; + top: 200px; + left: 50%; + margin-right: -50%; + transform: translate(-50%, -50%); + z-index: 1; + } + } + + .orderbook-hide { + font-size: 85%; + } + + @bg: @white; + + .btn-group { + margin-bottom: -1px; + + .btn { + width: 120px; + } + .btn:first-child { + .border-radius(0, 0, 0, 4px); + } + .btn:last-child { + .border-radius(4px, 0, 0, 0); + } + } + + #add_button, #cancel_button { + float: right; + } + + ul.inline { + margin: 0; + padding: 0; + + .label { + color: @darkgray; + text-align: left; + } + .value { + font-weight: bold; + } + + li { + display: inline-block; + font-size: 12px; + + .icon { + margin: 0 0 0 3px; + } + .up { + color: @darkgreen; + } + .down { + color: @midred; + } + @media (max-width: @screen-xs-max) { + padding-left: 0; + } + @media (max-width: @screen-sm-max) { + padding-left: 0; + } + } + + &.issuers { + .label { + width: 120px; + } + .value { + margin-right: 15px; + @media (max-width: @screen-xs-max) { + margin-right: 0; + padding-right: 15px; + } + } + } + } + + .issuerSelector, .message-select-issuer { + padding: 15px; + border: 1px solid darken(@bg, 10%); + border-top: none; + border-bottom: none; + background: @bg; + } + + .settings { + padding: 15px; + border: 1px solid darken(@bg, 10%); + border-bottom: none; + background-color: darken(@bg, 2%); + .issuers-wrapper { + display: inline-block; + } + button { + &.btn-block { + outline: none; + } + } + } + + .message-select-issuer { + line-height: 25px; + font-size: 16px; + font-family: 'OpenSansRegular'; + text-align: center; + + border-bottom: 1px solid darken(@bg, 10%); + } + + .ticker { + margin: 0 0 30px; + padding: 5px 15px; + border: 1px solid darken(@bg, 10%); + border-top: none; + background-color: darken(@bg, 5%); + list-style-type: none; + @media (max-width: @screen-xs-max) { + font-size: 11px; + } + .value { + font-weight: bold; + } + } + + .send-widgets { + form { + .input-group { + border-spacing: 0; + } + } + } + + .slash { + padding-top: 25px; + font-size: 24px; + } + + .order-type { + p.literal { + margin: 0; + line-height: 48px; + } + } + + .trade-widget { + // min-height: 430px; + padding: 15px; + border: 1px solid darken(@bg, 10%); + background: darken(@bg, 2%); + word-break: break-word; + + .head { + margin: -15px -15px 15px -15px; + padding: 10px 15px; + background-color: darken(@bg, 5%); + font: 18px 'OpenSansRegular'; + + .available { + font-size: 11px; + color: @darkgray; + padding-left: 10px; + .amount { + font-weight: bold; + &:after { + content: " "; + } + } + } + } + + .input-group { + margin: 0 0 20px; + } + .errorGroup { + position: relative; + } + .order-values { + .value-field { + .input-group { + width: 100%; + .input-group-addon { + width: 33.3333333%; + @media (max-width: @screen-xs-max) { + width: 25%; + } + } + } + } + } + } + + .mode-form { + .order-values { + .sign { + text-align: center; + margin: 40px 0 0 0; + } + .error { + margin-bottom: 0; + height: 0; + overflow: visible; + } + + .input-group-addon { + color: @white; + background-color: @midgray; + padding: 0 10px; + min-width: 70px; + + .issuer { + font-size: 10px; + } + } + } + .message { + color: @midgreen; + height: 40px; + line-height: 20px; + } + .btns-row { + .btns-wrapper { + float: none; + margin: 7px auto; + } + } + } + + .mode-confirm { + text-align: left; + font-family: OpenSansLight; + .alert { + margin-bottom: 0; + } + .title { + margin: 30px 0; + } + label { + font-size: 18px; + margin-bottom: 0 + } + sub { + bottom: 0; + font-size: 14px; + font-family: OpenSansRegular; + } + .amount_feedback { + font-size: 18px; + margin: 10px 0 0 0; + .ammount-currency { + font-size: 22px; + } + } + + .dest_feedback { + font-size: 30px; + margin: 0 0 10px 0; + .each-price { + font-size: 22px; + } + } + + .rate_feedback { + margin: 0 0 20px 0; + font-size: 18px; + + .pair { + margin-left: 5px; + font-size: 14px; + } + .max-value { + .rate { + font-size: 22px; + } + } + } + .confirm-text { + font-size: 14px; + margin-bottom: 5px; + } + } + + .widget-myorders-table(); + + .toggle { + margin-left: 10px; + color: @midblue; + cursor: pointer; + } + + .toggle:hover { + text-decoration: underline; + } + .orderlists { + .transition-duration(0.5s); + } + .listings { + padding: 0 15px; + border: 1px solid darken(@bg, 10%); + background: @bg; + + transition: 0.2s; + max-height: 0; + + .my { + .head { + font-weight: bold; + } + .row:first-child { + border-top: none; + } + .row { + border-top: 1px solid @lightgray; + + &:nth-child(even) { + background-color: darken(@bg, 2%); + } + + & > div { + padding: 8px; + border-right: 1px solid @lightgray; + } + + & > div:last-child { + border-right: none; + } + + .issuer { + color: lighten(@black,70%); + font-size: 11px; + } + + @media (max-width: @screen-xs-max) { + border: none; + padding: 4px; + + & > div { + padding: 4px; + border: none; + } + + div:before { + display: inline-block; + width: 100px; + font-weight: bold; + text-transform: uppercase; + content: " "attr(data-label); + } + } + + .align-right { + text-align: right; + } + + .btn-link { + padding-left: 0px; + padding-right: 0px; + } + + .btn-link[disabled] { + text-decoration: none; + color: #999999; + } + + .form-control { + font-size: 14px; + height: 36px; + padding: 5px 10px; + } + + .form-control.changed { + background-color: #fcf8e3; + } + + .input-group { + margin-bottom: 10px; + } + + .input-group .input-group-addon.inline-inputs-group { + text-align: center; + font-size: 10px; + line-height: 1; + padding: 10px; + @media(max-width: @screen-xs-max) { + &:before { + display: block; + } + } + } + + .action { + padding-left: 0; + padding-right: 0; + } + } + } + + .emptyMessage { + margin: 10px 0; + } + + .alert { + line-height: 1.428571429; + padding: 8px; + float: left; + } + } + + .alert { + line-height: 1; + } + + .alert-danger .dismiss { + margin:0 5px; + color:darken(@midred, 10%); + } + + .alert-danger .dismiss:hover { + color:darken(@midred, 30%); + } + + .listings.offers { + max-height: 1000px; + overflow: auto; + } + .orderlists { + opacity: 1; + &.loading { + opacity: 0; + } + } + .listings.orders { + max-height: 9999px; + overflow: auto; + min-height: 720px; + } + + .orderbookupdate { + padding-top: 15px; + line-height: 68px; + .orderbook-title { + font-family: OpenSansSemibold, "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + font-weight: normal; + text-transform: uppercase; + small { + text-transform: none; + } + } + .last-update { + text-align: right; + } + @media (max-width: @screen-xs-max) { + line-height: 34px; + padding-bottom: 0; + .last-update { + text-align: left; + } + h3 { + margin-bottom: 0; + margin-top: 5px; + } + } + } + + .orderbook { + @media (max-width: @screen-xs-max) { + font-size: 10px; + } + .title { + margin: 0 -15px 15px -15px; + font: bold 15px 'OpenSansRegular'; + text-transform: uppercase; + background: darken(@bg, 5%); + padding: 10px; + text-align: center; + } + .head { + font: 15px 'OpenSansRegular'; + margin-bottom: 10px; + + .currency { + color: @darkgray; + } + } + + .my { + font-weight: bold; + color: @darkgreen; + + .insig { + color: @darkgreen; + font-weight: normal; + } + + .delete { + margin: 0 10px 0 0; + + text-decoration: none; + } + } + + .new { + font-weight: normal; + color: @black; + .animation-mixin(newfadeout 5s ease-out 0s); + } + + .changed { + font-weight: normal; + color: @black; + .animation-mixin(changefadeout 5s ease-out 0s); + } + + .keyframes-mixin(newfadeout, { + color: @midgreen; + font-weight: bold; + }, { + color: @black; + font-weight: normal; + }); + .keyframes-mixin(changefadeout, { + color: @midred; + font-weight: bold; + }, { + color: @black; + font-weight: normal; + }); + + @media (min-width: @screen-md-max) { + .bids { + border-right: 1px solid darken(@bg, 20%); + } + .asks { + border-left: 1px solid darken(@bg, 20%); + } + } + + @media (max-width: @screen-md-max) { + .asks { + border-top: 6px solid @midgray; + padding-top: 10px; + } + } + + .bids, .asks { + .row { + padding: 4px 0; + text-align: right; + + .rpamount { + font-size: 14px; + padding-left: 5px; + padding-right: 5px; + } + + .sum, .size, .price { + padding-left: 5px; + padding-right: 5px; + } + + &:nth-child(odd) { + background-color: darken(@bg, 5%); + } + } + + background-color: darken(@bg, 2%); + } + + a { + color: inherit; + } + + .message { + text-align: center; + padding-bottom: 20px; + } + + .issuer { + font-size: 10px; + color: @darkgray; + } + } + + .cancelling { + color: lighten(@black,70%); + + a { + color: lighten(@black,70%); + } + + .cancelling.changed { + background-color: #fcf8e3; + } + + .action a { + display: none; + } + } + + .btn-cancel-order { + color: @midred; + } + +} + +.t-trade header nav ul > .active#nav-advanced > a:after { + border-bottom-color: @lightgray; +} + +.table { + display: table; + margin: 0; + border-collapse: separate; + border-spacing: 15px 0px; + table-layout: fixed; + .grid { + margin-left: -30px; + margin-right: -30px; + } + .table-row { + display: table-row; + .col-cell { + display: table-cell; + vertical-align: top; + float: none; + } + } +} + +.animation-mixin(@arguments) { + -moz-animation: @arguments; + -webkit-animation: @arguments; + -o-animation: @arguments; + animation: @arguments; +} + +.keyframes-mixin(@name, @fromRules, @toRules) { + @-moz-keyframes ~'@{name}' { 0% { @fromRules(); } 100% { @toRules(); } } + @-o-keyframes ~'@{name}' { 0% { @fromRules(); } 100% { @toRules(); } } + @-webkit-keyframes ~'@{name}' { 0% { @fromRules(); } 100% { @toRules(); } } + @keyframes ~'@{name}' { 0% { @fromRules(); } 100% { @toRules(); } } +} diff --git a/src/less/ripple/tabs/trust.less b/src/less/ripple/tabs/trust.less new file mode 100644 index 000000000..a8c8f3841 --- /dev/null +++ b/src/less/ripple/tabs/trust.less @@ -0,0 +1,157 @@ +#t-trust { + @media (max-width: @screen-xs-max) { + .btn-add-trust { + margin: 20px 0; + } + input[type="radio"], input[type="checkbox"] { + margin: 2px 0 0; + } + } + #trustForm { + margin-bottom: 20px; + + .verifying { + margin-top: 20px; + margin-bottom: 20px; + } + + .checkbox { + margin-bottom: 20px; + margin-top: -10px; + } + + .allow-rippling{ + & > label, & > i { + float: left; + } + @media (max-width: @screen-xs-max){ + .checkbox { + padding-left: 0; + input { + margin-right: 10px; + } + } + } + & > i { + float: left; + margin: -4px 0 0 5px; + @media (max-width: @screen-xs-max) { + margin: -6px 0 0 5px; + } + } + } + } + + a.disabled { + color: @gray-light; + + &:hover, &:focus { + text-decoration: none; + } + } + + .currencyBox { + margin: 0 0 30px; + } + + .editBox { + background: @lightgray; + margin: 10px 0 0 0; + padding: 20px 0 10px; + + .inputPadding { + padding-top: 10px; + padding-bottom: 10px; + } + .rippling-checkbox { + margin-left: -15px; + margin-right: -15px; + @media (max-width: @screen-xs-max) { + padding-left: 15px; + padding-right: 15px; + } + } + + } + .gateway { + text-overflow: ellipsis; + overflow: hidden; + } + .limit { + text-overflow: ellipsis; + overflow: hidden; + } + .currencyTitle { + font-size: @font-size-big; + + i { + width: 25px; + } + span { + margin: 0 0 0 10px; + } + } + + #divider { + margin-top: 5px; + margin-bottom: 5px; + } + + .head { + margin-top: 10px; + margin-bottom: 10px; + font-weight: bold; + + } + + .lines { + color: @darkgray; + + .line { + padding: 5px 0; + } + + .ng-hide { + display: none !important; + } + + @media (max-width: @screen-sm-max) { + color: @black; + + .line { + padding: 5px 15px; + } + + .col-xs-full { + div[data-label] { + clear: left; + text-overflow: ellipsis; + padding: 4px 0; + + &:before { + display: inline-block; + min-width: 150px; + width: 34%; + float: left; + font-family: 'OpenSansSemibold'; + text-transform: uppercase; + content: " "attr(data-label); + } + } + + span.visible-xs.visible-sm a.btn.btn-cancel, + span a.disabled { + display: inline-block !important; + margin: 1em 0; + padding: 1em 15px; + } + } + } + } + + @media (max-width: @screen-xs-max) { + .col-xs-full > div[data-label]:before { + min-width: 100px; + } + } +} diff --git a/src/jade/client/index.jade b/src/templates/client/layout.jade old mode 100755 new mode 100644 similarity index 86% rename from src/jade/client/index.jade rename to src/templates/client/layout.jade index 8fcdb1a97..e8075f52a --- a/src/jade/client/index.jade +++ b/src/templates/client/layout.jade @@ -1,4 +1,3 @@ - .mobile-nav(rp-snapper) a.wallet(href="#/balance", ng-class="{active: $route.current.tabName == 'balance'}") span.nav-icon.nav-icon-wallet @@ -19,10 +18,9 @@ a.fund(href="#/xrp", ng-class="{active: $route.current.tabName == 'xrp'}") span.nav-icon.nav-icon-advanced - span(l10n) Fund + span(l10n) Featured gateways //- a.sub(href="#/withdraw", ng-class="{active: $route.current.tabName == 'withdraw'}", l10n) Withdraw - a.sub(href="#/trust", ng-class="{active: $route.current.tabName == 'trust'}", l10n) Gateways - + a.sub(href="#/trust", ng-class="{active: $route.current.tabName == 'trust'}", l10n) Add any gateway (trust lines) a.advanced(href="#/account/public", ng-class="{active: $route.current.tabName == 'account'}") img(src="img/profile-gray.png") @@ -42,27 +40,23 @@ div#wrapper a.logo(href="/") div(ng-if="loginStatus") - != require("./navbar.jade")() + include ../client/navbar.jade + .landingWrapper(ng-class="{ 'loggedOut container-fluid': !loginStatus, 'container': loginStatus }") - + .landingContainer - - .tickerWrapper(ng-if="!loginStatus") - rp-ticker#ticker - + .loginContainer - // Register - .container-fluid.main(ng-if="!showLogin && showRegister", id="t-register", role="main") - include ../tabs/register.jade - // Login - .container-fluid.main(ng-if="showLogin && !showRegister", id="t-login", role="main") + .container-fluid.main(ng-if="showLogin", id="t-login", role="main") include ../tabs/login.jade // Main - .container-fluid.main(ng-if="!showLogin && !showRegister", id="{{$route.current.tabClass}}", role="main", ng-view) - + .container-fluid.main.pageLoading(ng-show="pageLoading") + img(src="img/sections.png", class="loader") + .container-fluid.main(ng-if="!showLogin && !pageLoading", id="{{$route.current.tabClass}}", role="main", ng-view) + //section 1 .whyUse(ng-if="!loginStatus") .container @@ -71,26 +65,26 @@ div#wrapper .col-xs-12.col-sm-4.circleWrap img.circle(src="img/img_feature1.svg") p - span.description(l10n) Home of XRP - + span.description(l10n) Home of XRP - span(l10n) the best place to buy and sell XRP .col-xs-12.col-sm-4.circleWrap img.circle(src="img/img_feature2.svg") p - span.description(l10n) Free - + span.description(l10n) Free - span(l10n) no fees to sign up and use Ripple Trade .col-xs-12.col-sm-4.circleWrap img.circle(src="img/img_feature3.svg") p - span.description(l10n) No Middlemen - + span.description(l10n) No Middlemen - span(l10n) When you submit orders, Ripple automatically finds the best available match, without a clearinghouse or broker. - + //section 2 .gateways.container(ng-if="!loginStatus") h4.sectionTitle(l10n) Deposit, trade and withdraw money on Ripple via gateways. hr .col-md-12 img.img-responsive.gateway(src="img/img_gateway1_new.svg") - + //section 3 .featuredGateways(ng-if="!loginStatus") .container @@ -110,7 +104,7 @@ div#wrapper a(href="https://coinexgateway.com/", target="_blank", l10n) img.img-responsive.gateway(src="img/gateway_logos/gw_coinex.svg") .col-xs-6.col-sm-2.gatewayExample - a(href="https://tokyojpy.com/", target="_blank", l10n) + a(href="https://tokyojpy.com/", target="_blank", l10n) img.img-responsive.gateway(src="img/gateway_logos/gw_jpytokyo.svg") .col-xs-6.col-sm-2.gatewayExample a(href="https://payroutes.com/", target="_blank", l10n) @@ -122,11 +116,11 @@ div#wrapper a(href="https://www.ripplesingapore.com/", target="_blank", l10n) img.img-responsive.gateway(src="img/gateway_logos/gw_ripplesingapore.svg") .col-xs-6.col-sm-2.gatewayExample - a(href="https://www.snapswap.us/", target="_blank", l10n) + a(href="https://snapswap.us/", target="_blank", l10n) img.img-responsive.gateway(src="img/gateway_logos/gw_snapswap.svg") // Footer - footer.container(ng-class="{ 'loggedOut': !loginStatus }") + footer.container(ng-hide="pageLoading", ng-class="{ 'loggedOut': !loginStatus }") .col-xs-12.col-sm-3 a(href="https://github.com/ripple/ripple-client/releases", target="_blank", l10n) | Version: {{version}} @@ -135,7 +129,7 @@ div#wrapper .col-xs-12.col-sm-9.right-links a(href="https://rippletrade.com/#/tou", target="_blank", l10n) Terms of Use a(href="https://rippletrade.com/#/privacypolicy", target="_blank", l10n) Privacy Policy - a(href="https://ripple.com/knowledge-center", target="_blank", l10n) Support + a(href="https://ripple.com/knowledge_categories/use-ripple-trade/", target="_blank", l10n) Support a(href="https://ripplelabs.atlassian.net/browse/WC", target="_blank", l10n) Bug reports a(href="#/lang/en") English a(href="#/lang/zh_CN") 中文 @@ -154,30 +148,34 @@ div#wrapper .col-sm-6 a(href="#/lang/zh_CN") 中文 .col-sm-6 - a(href="#/lang/nl_NL") Nederlands - .col-sm-6 - a(href="#/lang/it") Italiano + a(href="#/lang/ca") Català .col-sm-6 - a(href="#/lang/pl") Polski + a(href="#/lang/de") Deutsch .col-sm-6 a(href="#/lang/es") Español .col-sm-6 - a(href="#/lang/pt") Português + a(href="#/lang/fr_FR") Français .col-sm-6 - a(href="#/lang/de") Deutsch + a(href="#/lang/he_IL") עברית .col-sm-6 - a(href="#/lang/nb_NO") Norsk + a(href="#/lang/it") Italiano .col-sm-6 - a(href="#/lang/sk") Slovenská + a(href="#/lang/ja") 日本語 .col-sm-6 - a(href="#/lang/ca") Català + a(href="#/lang/ko") 한국말 .col-sm-6 - a(href="#/lang/he_IL") עברית + a(href="#/lang/nl_NL") Nederlands .col-sm-6 - a(href="#/lang/ru") Русский + a(href="#/lang/nb_NO") Norsk + .col-sm-6 + a(href="#/lang/pl") Polski + .col-sm-6 + a(href="#/lang/pt_BR") Português brasileiro .col-sm-6 a(href="#/lang/ro") Român .col-sm-6 - a(href="#/lang/ja") 日本語 + a(href="#/lang/ru") Русский + .col-sm-6 + a(href="#/lang/sk") Slovenská .col-sm-6 a(href="#/lang/tr") Türkçe diff --git a/src/jade/client/navbar.jade b/src/templates/client/navbar.jade similarity index 75% rename from src/jade/client/navbar.jade rename to src/templates/client/navbar.jade index 820512958..86bd6c072 100644 --- a/src/jade/client/navbar.jade +++ b/src/templates/client/navbar.jade @@ -24,7 +24,7 @@ nav.navbar(role="navigation", ng-controller="NavbarCtrl") li#nav-exchange(ng-class="{active: $route.current.mainMenu == 'exchange' || $route.current.mainMenu == 'trade'}", ng-show="ripple_exchange_selection_trade") a(href="#/trade", l10n) Trade li#nav-fund(ng-class="{active: $route.current.mainMenu == 'fund'}") - a(href="#/xrp", l10n) Fund + a(href="#/xrp", l10n) Gateways //- li#nav-fund(ng-class="{active: $route.current.mainMenu == 'pretend'}") //- a(href="#/pretend", l10n) Pretend ul.nav.navbar-nav.navbar-right @@ -41,7 +41,25 @@ nav.navbar(role="navigation", ng-controller="NavbarCtrl") //- span.balance {{balance.total | rpamount:{rel_precision: 2} }}  //- span.balance(rp-currency="balance.total", rp-currency-short) li - a(href="#/account/public") ~{{userCredentials.username}} + span(class="serverStatus {{connected ? 'online' : 'offline'}} {{serverLoad}}" + ng-switch='serverStatus') + span(ng-switch-when='disconnected' + rp-popover, rp-popover-placement='bottom', rp-popover-trigger='hover', rp-popover-delay + l10n-rp-popover-content="Disconnected from the Ripple network") + span(ng-switch-when='highLoad' + rp-popover, rp-popover-placement='bottom', rp-popover-trigger='hover', rp-popover-delay + l10n-rp-popover-content="Network fees are currently higher than your maximum. Fee: {{ fee | rpamount }} XRP. Change fees") + span(ng-switch-when='mediumLoad' + rp-popover, rp-popover-placement='bottom', rp-popover-trigger='hover', rp-popover-delay + l10n-rp-popover-content="Network fees are currently higher than normal. Fee: {{ fee | rpamount }} XRP") + span(ng-switch-when='lowLoad' + rp-popover, rp-popover-placement='bottom', rp-popover-trigger='hover', rp-popover-delay + l10n-rp-popover-content="Connected to the Ripple network. Fee: {{ fee | rpamount }} XRP") + span(ng-switch-when='connected' + rp-popover, rp-popover-placement="bottom", rp-popover-trigger="hover", rp-popover-delay + l10n-rp-popover-content="Connected to the Ripple network.") + li + a(href="#/account/public", ng-hide="loading") ~{{userCredentials.username}} li.dropdown.notifications-dropdown(dropdown on-toggle="toggled(open)") a.dropdown-toggle(ng-click="read()", href dropdown-toggle) i.fa.fa-bell @@ -55,27 +73,27 @@ nav.navbar(role="navigation", ng-controller="NavbarCtrl") rp-link-tx="entry.hash" ng-show="notifications.length" ) - .desc(ng-switch on="entry.transaction.type") + .desc(ng-switch="entry.transaction.type") .transaction(ng-switch-when="sent") span(l10n) You sent strong.nowrap {{entry.transaction.amount | rpamount}} {{entry.transaction.amount | rpcurrency}} | to span.address(title="{{entry.transaction.counterparty}}") {{entry.transaction.counterparty | rpcontactnamefull | rpripplename: {tilde: true} }} - != require("../tabs/history/effects.jade")() + include ../tabs/history/effects.jade .transaction(ng-switch-when="received") span.address(title="{{entry.transaction.counterparty}}", l10n) span {{entry.transaction.counterparty | rpcontactnamefull | rpripplename: {tilde: true} }} | sent you strong.nowrap {{entry.transaction.amount | rpamount:{reference_date:entry.dateRaw} }} {{entry.transaction.amount | rpcurrency}} - != require("../tabs/history/effects.jade")() + include ../tabs/history/effects.jade .transaction(ng-switch-when="exchange") - != require("../tabs/history/effects.jade")() + include ../tabs/history/effects.jade .transaction(ng-switch-when="trusted") span.address(title="{{entry.transaction.counterparty}}", l10n) | {{entry.transaction.counterparty | rpcontactname}} now trusts you for strong.nowrap {{entry.transaction.amount | rpamount}} | {{entry.transaction.amount | rpcurrency}} - != require("../tabs/history/effects.jade")() + include ../tabs/history/effects.jade .transaction(ng-switch-when="trusting") span(l10n) You have now connected to the gateway span.address(title="{{entry.transaction.counterparty}}") @@ -84,9 +102,9 @@ nav.navbar(role="navigation", ng-controller="NavbarCtrl") strong.nowrap {{entry.transaction.amount | rpamount:{reference_date:entry.dateRaw} }} | {{entry.transaction.amount | rpcurrency}} | . - != require("../tabs/history/effects.jade")() + include ../tabs/history/effects.jade .transaction(ng-switch-when="offernew") - != require("../tabs/history/effects.jade")() + include ../tabs/history/effects.jade .transaction(ng-switch-when="offercancel") span(l10n) You cancelled an order accepting strong.nowrap {{entry.transaction.pays | rpamount}} @@ -94,16 +112,16 @@ nav.navbar(role="navigation", ng-controller="NavbarCtrl") | for strong.nowrap {{entry.transaction.gets | rpamount}} | {{entry.transaction.gets | rpcurrency}} - != require("../tabs/history/effects.jade")() + include ../tabs/history/effects.jade .transaction(ng-switch-when="accountset", l10n) | Account details have been changed .transaction(ng-switch-when="rippling") span(l10n) Rippling - != require("../tabs/history/effects.jade")() + include ../tabs/history/effects.jade .transaction(ng-switch-when="failed", l10n) | Failed transaction .transaction(ng-switch-default) - != require("../tabs/history/effects.jade")() + include ../tabs/history/effects.jade .date {{entry.date | rpfromnow}} li.history(ng-show="notifications.length") a(href="#/history", l10n) View Full History @@ -132,15 +150,10 @@ nav.navbar(role="navigation", ng-controller="NavbarCtrl") a(href="#/exchange", l10n) Simple li(ng-class="{active: $route.current.tabName == 'trade'}") a(href="#/trade", l10n) Advanced - //- .subnav(ng-show="$route.current.mainMenu == 'fund'") + .subnav(ng-show="$route.current.mainMenu == 'fund'") .container ul li(ng-class="{active: $route.current.tabName == 'xrp'}") - a(href="#/xrp", l10n) Fund - li(ng-class="{active: $route.current.tabName == 'withdraw'}") - a(href="#/withdraw", l10n) Withdraw - .container.recover-status-wrapper.text-center.ng-scope(ng-if='recovered', ng-show='recovered') - .alert.alert-info - h4.tx-status(l10n='l10n') - | Your account was successfully recovered and encrypted with the new password you provided! - a.dismiss(href='#', ng-click='recovered = false', l10n='l10n') × + a(href="#/xrp", l10n) Featured gateways + li(ng-class="{active: $route.current.tabName == 'trust'}") + a(href="#/trust", l10n) Add any gateway (trust lines) diff --git a/src/templates/directives/addresspopover.jade b/src/templates/directives/addresspopover.jade new file mode 100644 index 000000000..d2d005ac8 --- /dev/null +++ b/src/templates/directives/addresspopover.jade @@ -0,0 +1,3 @@ +span(l10n) Ripple address +br +span(l10n) Show in graph diff --git a/src/jade/directives/transactionerror.jade b/src/templates/directives/transactionerror.jade similarity index 84% rename from src/jade/directives/transactionerror.jade rename to src/templates/directives/transactionerror.jade index 384ed52b7..95b65c928 100644 --- a/src/jade/directives/transactionerror.jade +++ b/src/templates/directives/transactionerror.jade @@ -1,8 +1,8 @@ -group(ng-switch on="tab") +group(ng-switch="tab") // All fund -> individual currency tab errors group(ng-switch-when='trust') - .transaction-error(ng-switch on="engine_result | rptruncate:3") + .transaction-error(ng-switch="engine_result | rptruncate:3") group(ng-switch-when='tes') group.pending(ng-hide="accepted") h2.tx-status(l10n) Connecting gateway to your account... @@ -10,28 +10,28 @@ group(ng-switch on="tab") h2.tx-status(l10n) Gateway connected. group.result-malformed(ng-switch-when='tem') h2.tx-status(l10n) There was a problem connecting to the gateway. Please try again later. - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-default, l10n) | Error code: {{engine_result}} - {{engine_result_message}} group.result-malformed(ng-switch-when='tef') - div(ng-switch on="engine_result") - div(ng-switch-when="tefMAX_LEDGER") - h2.tx-status(l10n) Request failed - p(ng-switch on="engine_result") - span(l10n) Your request timed out, please try again. - div(ng-switch-default) - h2.tx-status(l10n) Request failed - p(ng-switch on="engine_result") - span(ng-switch-when="tefDST_TAG_NEEDED", l10n) - | Error code: Destination tag needed [tefDST_TAG_NEEDED]. + div(ng-switch="engine_result") + div(ng-switch-when="tefMAX_LEDGER") + h2.tx-status(l10n) Request failed + p + span(l10n) Your request timed out, please try again. + div(ng-switch-default) + h2.tx-status(l10n) Request failed + p(ng-switch="engine_result") + span(ng-switch-when="tefDST_TAG_NEEDED", l10n) + | Error code: Destination tag needed [tefDST_TAG_NEEDED]. group.result-failed(ng-switch-when='tel') h2.tx-status(l10n) Request failed - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-when="telINSUF_FEE_P", l10n) | Error code: This request failed because it exceeded the maximum network fee, please try again later [telINSUF_FEE_P]. group.result-malformed(ng-switch-when='tec') h2.tx-status(l10n) Request failed - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-when="terNO_LINE", l10n) | Error code: You have no gateway connected in this currency [terNO_LINE]. span(ng-switch-when="tecINSUF_RESERVE_LINE", l10n) @@ -43,14 +43,14 @@ group(ng-switch on="tab") | Error: {{engine_result_message}} group.result-failed(ng-switch-when='ter') h2.tx-status(l10n) Request failed - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-when="terNO_LINE", l10n) | Error code: You have no trust line in this currency [terNO_LINE]. span(ng-switch-default, l10n) | Your request failed: {{engine_result}} - {{engine_result_message}} group.result-failed(ng-switch-when='tej') h2.tx-status(l10n) Request failed - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-when="tejLost", l10n) | Error code: request could not be submitted [tejLost]. span(ng-switch-when="tejMaxFeeExceeded", l10n) @@ -61,7 +61,7 @@ group(ng-switch on="tab") // All send & convert errors group(ng-switch-when='send_convert') - .transaction-error(ng-switch on="engine_result | rptruncate:3") + .transaction-error(ng-switch="engine_result | rptruncate:3") group(ng-switch-when='tes') group.pending(ng-hide="accepted") h2.tx-status(l10n) Payment pending @@ -69,28 +69,28 @@ group(ng-switch on="tab") h2.tx-status(l10n) Payment successful group.result-malformed(ng-switch-when='tem') h2.tx-status(l10n) Payment failed - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-default, l10n) | Error code: {{engine_result}} - {{engine_result_message}} group.result-malformed(ng-switch-when='tef') - div(ng-switch on="engine_result") + div(ng-switch="engine_result") div(ng-switch-when="tefMAX_LEDGER") h2.tx-status(l10n) Payment failed [tefMAX_LEDGER]. - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(l10n) Your payment timed out, please try again. div(ng-switch-default) h2.tx-status(l10n) Payment failed - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-when="tefDST_TAG_NEEDED", l10n) | Error code: Destination tag needed [tefDST_TAG_NEEDED]. group.result-failed(ng-switch-when='tel') h2.tx-status(l10n) Payment failed - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-when="telINSUF_FEE_P", l10n) | Error code: This transaction failed because it exceeded the maximum network fee, please try again later [telINSUF_FEE_P]. group.result-malformed(ng-switch-when='tec') h2.tx-status(l10n) Payment failed - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-when="tecNO_DST", l10n) | Error code: No destination [tecNO_DST]. span(ng-switch-when="tecNO_DST_INSUF_XRP", l10n) @@ -99,14 +99,14 @@ group(ng-switch on="tab") | Error: {{engine_result_message}} group.result-failed(ng-switch-when='ter') h2.tx-status(l10n) Payment failed - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-when="terNO_LINE", l10n) | Error code: You have no trust line in this currency [terNO_LINE]. span(ng-switch-default, l10n) | Your payment failed: {{engine_result}} - {{engine_result_message}} group.result-failed(ng-switch-when='tej') h2.tx-status(l10n) Payment failed - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-when="tejLost", l10n) | Error code: Transaction could not be submitted [tejLost]. span(ng-switch-when="tejMaxFeeExceeded", l10n) @@ -116,14 +116,14 @@ group(ng-switch on="tab") | Your payment could not be submitted: {{engine_result}} - {{engine_result_message}} group(ng-switch-when='trade') - .transaction-error(ng-switch on="engine_result | rptruncate:3") + .transaction-error(ng-switch="engine_result | rptruncate:3") group.result-malformed(ng-switch-when="tem") h2.tx-status(l10n) Request is malformed. p(l10n) Your request is invalid, reason: {{engine_result_message}} | - {{engine_result_message}} group.result-malformed(ng-switch-when"tec") h2.tx-status(l10n) Transaction failed. - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-when="tecUNFUNDED_ORDER", l10n) | You do not have enough funds to create this order [tecUNFUNDED_ORDER]. span(ng-switch-when="tecINSUF_RESERVE_OFFER", l10n) @@ -136,17 +136,17 @@ group(ng-switch on="tab") | Error: {{engine_result_message}} group.result-failed(ng-switch-when='ter') h2.tx-status(l10n) Trade failed. - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-default, l10n) Trade failed, reason: {{engine_result_message}} group.result-failed(ng-switch-when="tel") h2.tx-status(l10n) Transaction failed. - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-when="telINSUF_FEE_P", l10n) | The particular server you sent the transaction to was too busy to forward or process | your transaction at the fee you included in it [telINSUF_FEE_P]. group(ng-switch-default) - .transaction-error(ng-switch on="engine_result | rptruncate:3") + .transaction-error(ng-switch="engine_result | rptruncate:3") group(ng-switch-when='tes') group.pending(ng-hide="accepted") h2.tx-status(l10n) Request pending @@ -154,28 +154,28 @@ group(ng-switch on="tab") h2.tx-status(l10n) Request successful group.result-malformed(ng-switch-when='tem') h2.tx-status(l10n) Request failed - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-default, l10n) | Error code: {{engine_result}} - {{engine_result_message}} group.result-malformed(ng-switch-when='tef') - div(ng-switch on="engine_result") + div(ng-switch="engine_result") div(ng-switch-when="tefMAX_LEDGER") h2.tx-status(l10n) Request failed - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(l10n) Your request timed out, please try again. div(ng-switch-default) h2.tx-status(l10n) Request failed - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-when="tefDST_TAG_NEEDED", l10n) | Error code: Destination tag needed [tefDST_TAG_NEEDED]. group.result-failed(ng-switch-when='tel') h2.tx-status(l10n) Request failed - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-when="telINSUF_FEE_P", l10n) | Error code: This request failed because it exceeded the maximum network fee, please try again later [telINSUF_FEE_P]. group.result-malformed(ng-switch-when='tec') h2.tx-status(l10n) Request failed - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-when="tecNO_DST", l10n) | Error code: No destination [tecNO_DST]. span(ng-switch-when="tecNO_DST_INSUF_XRP", l10n) @@ -184,14 +184,14 @@ group(ng-switch on="tab") | Error: {{engine_result_message}} group.result-failed(ng-switch-when='ter') h2.tx-status(l10n) Request failed - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-when="terNO_LINE", l10n) | Error code: You have no trust line in this currency [terNO_LINE]. span(ng-switch-default, l10n) | Your request failed: {{engine_result}} - {{engine_result_message}} group.result-failed(ng-switch-when='tej') h2.tx-status(l10n) Request failed - p(ng-switch on="engine_result") + p(ng-switch="engine_result") span(ng-switch-when="tejLost", l10n) | Error code: request could not be submitted [tejLost]. span(ng-switch-when="tejMaxFeeExceeded", l10n) diff --git a/src/templates/index.jade b/src/templates/index.jade new file mode 100644 index 000000000..c3548f2c6 --- /dev/null +++ b/src/templates/index.jade @@ -0,0 +1,130 @@ +doctype + + + + + +html.no-js(ng-app='rp', ng-controller='AppCtrl', ng-class='[$route.current.tabClass, $route.current.pageMode]', lang='en') + + +html(ng-app='rp', ng-controller='AppCtrl', ng-class='[$route.current.tabClass, $route.current.pageMode]') + head + meta(charset='utf-8') + title Ripple Trade + meta(name='description', content='Ripple Trade: the only platform where you can trade between fiat, crypto, gold and more. When placing an order, the P2P Ripple network instantly finds the best match - no 3rd parties involved.') + meta(name='google', value='notranslate') + meta(property='og:description', content='Ripple Trade: the only platform where you can trade between fiat, crypto, gold and more. When placing an order, the P2P Ripple network instantly finds the best match - no 3rd parties involved.') + meta(name='apple-mobile-web-app-capable', ,='', content='yes') + meta(name='apple-mobile-web-app-title', content='Ripple Trade') + meta(name='mobile-web-app-capable', ,='', content='yes') + meta(name='mobile-web-app-title', ,='', content='Ripple Trade') + link(rel='apple-touch-icon', href='/img/mobile/icon60.png') + link(rel='apple-touch-icon', sizes='76x76', href='/img/mobile/icon76.png') + link(rel='apple-touch-icon', sizes='120x120', href='/img/mobile/icon120.png') + link(rel='apple-touch-icon', sizes='152x152', href='/img/mobile/icon152.png') + link(rel='icon', sizes='196x196', href='/img/mobile/icon196.png') + link(rel='icon', sizes='128x128', href='/img/mobile/icon128.png') + meta(name='viewport', content='width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no') + // build:css /css/web.css + link(href='../../res/fonts/stylesheet.css', rel='stylesheet') + link(href='../dev/css/web.css', rel='stylesheet') + // endbuild + // FAVICON + link(rel='shortcut icon', href='/img/favicon.ico', type='image/x-icon') + link(rel='icon', href='/img/favicon.ico', type='image/x-icon') + // END FAVICON + // build:js /js/head.js + script(src='../../deps/js/modernizr.js') + // endbuild + base(href='/') + + body(ng-class='app_loaded') + div(ng-include="'templates/' + lang + '/client/layout.html'") + + #appLoading + img.loader(src='img/main.png', alt='', title='') + // VERSION + #version[unprocessed] + #noWebSockets + p We apologize, but the Ripple Client needs JavaScript and WebSockets in order to function. + br + | Please refer to this page and download a browser that supports WebSockets. Thank you! + br + a(href='http://caniuse.com/websockets') http://caniuse.com/websockets + + // JAVASCRIPT + + + // build:js /js/vendor.js + script(src='../../deps/js/jquery/dist/jquery.js') + script(src='../../deps/js/authy.js') + script(src='../../deps/js/swfobject.js') + script(src='../../deps/js/setImmediate.js') + script(src='../../deps/js/downloadify.js') + script(src='../../deps/js/angular/angular.js') + script(src='../../deps/js/angular-route/angular-route.js') + script(src='../../deps/js/angular-messages/angular-messages.js') + script(src='../../deps/js/store.js/store.js') + script(src='../../deps/js/d3/d3.js') + script(src='../../deps/js/ripple/ripple-debug.js') + script(src='../../deps/js/ripple-sjcl.js') + script(src='../../deps/js/moment/moment.js') + script(src='../../deps/js/ripple-vault-client/ripple-vault-client-debug.js') + script(src='../../deps/js/bootstrap-modal.js') + script(src='../../deps/js/bootstrap-tooltip.js') + script(src='../../deps/js/bootstrap-popover.js') + script(src='../../deps/js/angular-bootstrap/ui-bootstrap-tpls.js') + script(src='../../deps/js/bootstrap-datepicker.js') + script(src='../../deps/js/spin.js/spin.js') + script(src='../../deps/js/snapjs/snap.js') + script(src='../../deps/js/ng-sortable/dist/ng-sortable.js') + script(src='../../deps/js/charts/pricechart.js') + script(src='../../deps/js/underscore/underscore.js') + script(src='../../deps/js/roost.min.js') + // endbuild + + // build:js /config.js + script(src='../../config.js') + // endbuild + + script. + window.name = 'NG_DEFER_BOOTSTRAP!'; + + + script(type='text/javascript'). + $.getScript('js/app.js'); + + + + script(type='text/javascript'). + $.ajaxSetup({ + cache: true + }); + var version = ''; + $.getScript('js/app.js?v=' + version); + + + // start Mixpanel + script(type='text/javascript'). + if (Options.mixpanel && Options.mixpanel.track) { (function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src='/mixpanel.js';f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f);b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!== + typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");for(g=0;gNOTICE: Ripple Trade encourages customer identification but it is optional until August 30, 2015. Existing users have through August 30, 2015 to verify their identity details in order to access Ripple Trade. We are pausing account sign-ups until further notice. For more information, please visit the + a(href='https://ripple.com/knowledge_center/ripple-trade-launches-identity-verification', target="_blank", l10n-inc) Knowledge Center. + br + br + | リップルトレードでは、セキュリティー強化の為、本人確認を推奨致します(ただし、2015年8月30日までは、必須ではありません)。 既存のユーザー様は、リップルトレードを引き続きご利用されるためには、8月30日までに個人情報を登録していただきます。新規ユーザー様の登録は、現在行っておりません。今後の通知をお待ち下さい。詳細は + a(href='https://ripple.com/knowledge_center/ripple-trade-launches-identity-verification', target="_blank", l10n-inc) ノレッジセンター + | に記載されております。 + br + br + | Ripple Trade 실명제 도입으로, 다음번 공지까지 신규회원가입이 일시중단됩니다. 기존회원님들께선 2015년 8월 30일까지 실명확인을 해주셔야 합니다. 자세한 내용은 + a(href='https://ripple.com/knowledge_center/ripple-trade-launches-identity-verification', target="_blank", l10n-inc) 지식센터 + | 에서 확인하여 주시기 바랍니다. + //a.dismiss#hide(href="", ng-click="dismissBanner()") × + br diff --git a/src/templates/tabs/banner/rtjapan.jade b/src/templates/tabs/banner/rtjapan.jade new file mode 100644 index 000000000..a3a692a13 --- /dev/null +++ b/src/templates/tabs/banner/rtjapan.jade @@ -0,0 +1,4 @@ +div.warning-attention.banner + h4(l10n) 警告 + p(l10n) リップルトレードジャパンをゲイトウェイとして使用しないことをお勧めします。 + | 最近の出来事から判断しまして、リップルトレードジャパンを使用すると、資金が失われる可能性があります。 diff --git a/src/templates/tabs/banner/rtjapanrippling.jade b/src/templates/tabs/banner/rtjapanrippling.jade new file mode 100644 index 000000000..f16778985 --- /dev/null +++ b/src/templates/tabs/banner/rtjapanrippling.jade @@ -0,0 +1,8 @@ +div.warning-attention.banner + h4(l10n) 警告 + p(l10n) 資金を保護するために、リップルトレードジャパンへのリップリングを無効にすることをお勧めします。 + | 無効化するには + a(href='#/advanced') 設定 > 詳細 + | をクリックし、与信限度額の「Advanced Settings」が「表示」になっていることを確認して下さい。その後、 + a(href='#/trust') 資金 > ゲイトウェイ + | ページで、リップルトレードジャパン(rMAz5ZnK73nyNUL4foAvaxdreczCkG3vA6)との Rippling がオフになっていることをご確認下さい。 \ No newline at end of file diff --git a/src/jade/tabs/banner/unfunded.jade b/src/templates/tabs/banner/unfunded.jade similarity index 79% rename from src/jade/tabs/banner/unfunded.jade rename to src/templates/tabs/banner/unfunded.jade index a676782a7..43754a5b9 100644 --- a/src/jade/tabs/banner/unfunded.jade +++ b/src/templates/tabs/banner/unfunded.jade @@ -4,4 +4,4 @@ div.auth-attention.banner li(l10n) Have another user send XRP to your Ripple name (~{{userCredentials.username}}). a(href="https://ripple.com/knowledge_center/activating-your-wallet/", target="_blank") Suggestions for getting XRP. li(l10n) - a(href="#/btc") Deposit BTC + a(href="#/btc") Deposit BTC (only the btc2ripple option works for activating accounts). diff --git a/src/jade/tabs/brl.jade b/src/templates/tabs/brl.jade similarity index 77% rename from src/jade/tabs/brl.jade rename to src/templates/tabs/brl.jade index 1485aa120..1bb8b9ab5 100644 --- a/src/jade/tabs/brl.jade +++ b/src/templates/tabs/brl.jade @@ -3,12 +3,17 @@ section.col-xs-12.content(ng-controller='BrlCtrl') //- Disconnected group.disconnected(ng-hide='connected') - p.literal(l10n="err-you-must-be-online-to-see-this-screen", l10n) + p.literal(l10n="err-you-must-be-online-to-see-this-screen") | You have to be online to see this screen //- Funding div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded + include ../tabs/banner/unfunded + + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling .row(ng-show='connected') // Transaction errors coming from errors.js & transactionerror.jade @@ -23,7 +28,7 @@ section.col-xs-12.content(ng-controller='BrlCtrl') //- Generic non-tx related messages .col-sm-12(ng-show='notif !== "clear"', ng-hide='!notif') group.mode-granted.wide - group(ng-switch on="notif") + group(ng-switch="notif") group.result-error(ng-switch-when="error") h2.tx-status(l10n) There was an error while saving your changes. p(l10n) Please try again later. @@ -35,7 +40,7 @@ section.col-xs-12.content(ng-controller='BrlCtrl') a(href="https://ripple.com/wiki/Reserves", target="_blank") More information .col-sm-3 - include fund/menu + include ../tabs/fund/menu .col-sm-9.list(ng-show='debug') div This page is not available in debug mode .col-sm-9.list(ng-hide='debug') @@ -69,20 +74,23 @@ section.col-xs-12.content(ng-controller='BrlCtrl') .row.fund-tab-description .col-xs-7.col-sm-5.col-md-4.action-btn-wrapper - button.btn.btn-large(type="submit",ng-click="save_account()", ng-hide="brlConnected", ng-disabled="loading || !account.Balance") + button#t-brl-add-rippex.btn.btn-large.btn-primary(type="submit",ng-click="save_account()", ng-hide="brlConnected || !loadState.account", ng-disabled="loading || !account.Balance || !can_add_trust") span(ng-show="!loading", l10n) Add Rippex span(ng-show="loading", l10n) Adding... - button.btn.btn-large(ng-show="showInstructions && brlConnected", type="submit", ng-click="toggle_instructions()", l10n) Hide instructions - button.btn.btn-large(ng-show="!showInstructions && brlConnected ", type="submit", ng-click="toggle_instructions()", l10n) Show instructions + button.btn.btn-large.btn-primary(ng-show="showInstructions && brlConnected", type="submit", ng-click="toggle_instructions()", l10n) Hide instructions + button.btn.btn-large.btn-primary(ng-show="!showInstructions && brlConnected ", type="submit", ng-click="toggle_instructions()", l10n) Show instructions .connect.col-xs-5.col-sm-7.col-md-8 - .description(ng-show="!brlConnected && account.Balance", l10n) + .description(ng-show="!brlConnected && account.Balance && !loadingAccount", l10n) i.fa.fa-times | Not connected - .description(ng-show="brlConnected && account.Balance", l10n) + .description(ng-show="brlConnected && account.Balance && !loadingAccount", l10n) i.fa.fa-check | Connected - .description(ng-show="!account.Balance", l10n) Your account has to be activated before you can add a gateway account. + .description(ng-show="!account.Balance && loadState.account", l10n) Your account has to be activated before you can add a gateway account. + .description(ng-show="!loadState.account") + img(src="img/button-s.png", class="loader") + span(class="loading_text", l10n) Loading... .row.fund-tab-description(ng-show="showInstructions && brlConnected") .instructions.col-md-10 a.dismiss(href="", id="hide", ng-click="toggle_instructions()", l10n) × diff --git a/src/templates/tabs/btc.jade b/src/templates/tabs/btc.jade new file mode 100644 index 000000000..98666e1ce --- /dev/null +++ b/src/templates/tabs/btc.jade @@ -0,0 +1,210 @@ +section.col-xs-12.content(ng-controller='BtcCtrl') + //- the ng-states & ng-clicks should be implemented + //- Connected + //- group.connected(ng-show="connected") + + //- Disconnected + + group.disconnected(ng-hide='connected') + p.literal(l10n="err-you-must-be-online-to-see-this-screen") + | You have to be online to see this screen + + //- Funding + div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") + include ../tabs/banner/unfunded + + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling + + group.mode-granted.wide(ng-show='notif !== "clear"', ng-hide='!notif') + group(ng-switch="notif") + group.result-success(ng-switch-when="success") + h2.tx-status(l10n) Success! You can deposit BTC via your generated BTC receiving address. + group.result-error(ng-switch-when="error") + h2.tx-status(l10n) There was an error with your request. + p(l10n) Please try again later. + group.result-error(ng-switch-when="emailError") + h2.tx-status(l10n) There was an error with your request. + + .row(ng-show='connected') + .col-sm-3 + include ../tabs/fund/menu + .col-sm-9.list + div(ng-show='debug') This page is not available in debug mode + .fundBtc(ng-hide='debug') + .nameLine(l10n) Bitcoin Deposit + .B2R-wrap.row + .col-xs-12 + .gateway.row + .col-md-3 + .title(l10n) Gateway + .description(l10n) btc2ripple (~SnapSwap) + a(href="https://www.btc2ripple.com", target="_blank") www.btc2ripple.com + .col-md-3 + .title(l10n) Availability + .description(l10n) All countries + .col-md-3 + .title(l10n) Fees + .description(l10n) 0% for deposits/withdrawals, .2% when transferring + .col-md-3 + .title(l10n) Rating + .description(l10n) + a(href="https://coinist.co/ripple/assets/btc-btc2ripple", target="_blank") read reviews + .row.fund-tab-description(ng-show="!btcConnected") + .col-xs-12.col-md-8.col-lg-6 + .descriptor(l10n) Ripple Trade has partnered with btc2ripple to make depositing BTC easier. By proceeding, you agree to the btc2ripple + a(href="https://btc2ripple.com/terms", target="_blank") terms of service. + | Following this action will allow btc2ripple to hold BTC on your behalf. + .row.fund-tab-description + .col-xs-7.col-sm-5.col-md-4 + rp-popup + a.btn.btn-success.btn-sm.btn-block.sign(href="", rp-popup-link, + ng-click="openPopup()", ng-show="!btcConnected && !loading && !loadingAccount && loadState.B2RApp", ng-disabled="emailError", ng-hide="btcConnected",l10n) Add btc2ripple + div.connectModal(rp-popup-content) + .modal-header + .navbar-brand.hidden-sm.modal-logo#logo + .modal-title(l10n) Connect + .modal-body + div.modal-prompt(l10n) btc2ripple would like to: + div.grey-focus + div.modal-permissions(l10n) - Receive your email address + span.modal-email(l10n) ({{userBlob.data.email}}) + div.modal-permissions(l10n) - Hold deposited BTC on your behalf + div.modal-agreement(l10n) By proceeding, you agree to the btc2ripple + a(href="https://btc2ripple.com/#/terms/of/service", target="_blank") terms of service. + div.modal-buttons + button.modal-btn.btn.btn-default.btn-success.btn-md(ng-click="B2RSignup()", + ng-disabled="loading") + img(src="img/button-s.png", class="loader", ng-show="loading") + span(class="loading_text", ng-show="loading", l10n) Loading... + span(ng-hide="loading", l10n) Confirm + button.modal-btn.btn.btn-default.btn-link.btn-cancel(data-dismiss="modal" + ng-hide="loading", l10n) cancel + span.modal-error(ng-show="generalError", l10n) + | SnapSwap's btc2ripple service is currently unavailable. + | Please check back later. + div.modal-error(ng-show="emailError", l10n) + | You’ve already used this email address to generate a bitcoin receiving address in Ripple Trade. + | Please contact support@btc2ripple.com if you want to use this Ripple Trade account instead. + button.btn.btn-primary(ng-show="!btcConnected && loading", ng-disabled="loading", l10n) Adding... + button.btn.btn-block.btn-primary(ng-show="showInstructions && btcConnected", type="submit", ng-click="toggle_instructions()", l10n) Hide instructions + button.btn.btn-block.btn-primary(ng-show="btcConnected && !showInstructions", type="submit", ng-click="toggle_instructions()", l10n) Show instructions + + .connect.col-md-8.col-sm-7.col-xs-5 + .description(ng-show="!loadingAccount && btcConnected && loadState.B2RApp") + i.fa.fa-check + span(l10n) Connected + .description(ng-hide="loadingAccount || btcConnected || !loadState.B2RApp") + i.fa.fa-times + span(l10n) Not connected + .description(ng-show="loadingAccount || !loadState.B2RApp") + img(src="img/button-s.png", class="loader") + span(class="loading_text", l10n) Loading... + span.error(ng-show="generalError", l10n) + | SnapSwap's btc2ripple service is currently unavailable. + | Please check back later. + span.error(ng-show="emailError", l10n) + | You’ve already used this email address to generate a bitcoin receiving address in Ripple Trade. + | Please contact support@btc2ripple.com if you want to use this Ripple Trade account instead. + .row(ng-show="btcConnected && showInstructions") + .instructions.col-md-10 + //a.dismiss#hide(href="", ng-click="toggle_instructions()") × + + .active.col-xs-12(ng-show="B2R.active") + .title(l10n) Personal Bitcoin Deposit address (deposit BTC to your Ripple account by sending BTC to this address) + .btc-address(ng-bind="B2R.instructions.instructionParams[0].value") + .description(l10n) You can deposit an unlimited amount of BTC. + div(ng-show="loadState.B2RInstructions") + .description(ng-bind="B2R.instructions.instruction") + .snapswap-support-link + a(href="https://b2r.uservoice.com/knowledgebase/articles/466148" target="_blank") More information + //.about(ng-hide="account.Balance", l10n) A small amount (~.001 BTC) of your first + | transfer will be converted to XRP to activate your wallet. + a.why(href="https://ripple.com/wiki/Reserves", + target="_blank", l10n-inc) Why? + .title(l10n) Withdrawal instructions + .description(l10n) To withdraw to a BTC address, go to the Send tab and enter the BTC address. Using the btc2ripple service, you will be able to + | send to that BTC address. + div(ng-hide="loadState.B2RInstructions") Loading... + .inactive.col-xs-12(ng-hide="B2R.active") + span(ng-show="loading") + label(l10n) Waiting for response from SnapSwap service... + span(ng-hide="loading") + label(l10n) To deposit, generate a bitcoin receiving address + | using the + a(href="https://btc2ripple.com", target="_blank") btc2ripple + | service powered by SnapSwap. + br + .gateway.row + .col-md-3 + .title(l10n) Gateway + .description(l10n) + | Bitstamp (~bitstamp) + br + a(href="https://www.bitstamp.net", target="_blank") www.bitstamp.net + .col-md-3 + .title(l10n) Availability + .description(l10n) All countries + .col-md-3 + .title(l10n) Fees + .description(l10n) Deposit/withdrawal and when transferring .2% + .col-md-3 + .title(l10n) Rating + .description(l10n) + a(href="https://coinist.co/ripple/gateways/bitstamp", target="_blank") read reviews + + .row.fund-tab-description + .col-xs-12.col-md-8.col-lg-6 + .descriptor(ng-show="!btc2Connected", l10n) Ripple Trade has partnered with Bitstamp to provide easier access to BTC. Following this action will enable Bitstamp to hold BTC on your behalf. + + .row.fund-tab-description + .col-xs-7.col-sm-5.col-md-4 + button.btn.btn-large.btn-primary(ng-show="!btc2Connected && !btcLoading && loadState.account", type="submit", ng-click="save_btc_account()", ng-disabled="!account.Balance || !can_add_trust", l10n) Add Bitstamp + button.btn.btn-large.btn-primary(ng-show="!btc2Connected && btcLoading", type="submit", ng-disabled="btcLoading", l10n) Adding... + button.btn.btn-large.btn-primary(ng-show="showBtcInstructions && btc2Connected", type="submit", ng-click="toggle_btc_instructions()", l10n) Hide instructions + button.btn.btn-large.btn-primary(ng-show="btc2Connected && !showBtcInstructions", type="submit", ng-click="toggle_btc_instructions()", l10n) Show instructions + + .connect.col-xs-5.col-sm-7.col-md-8(ng-hide="btcLoading") + .description.fa.fa-times(ng-show="!btc2Connected && account.Balance", l10n) Not connected + .description.fa.fa-check(ng-show="btc2Connected && account.Balance", l10n) Connected + .description(ng-show="!account.Balance && loadState.account", l10n) Your account has to be activated before you can add a gateway account. + .description(ng-show="!loadState.account") + img(src="img/button-s.png", class="loader") + span(class="loading_text", l10n) Loading... + + .row(ng-show="showBtcInstructions && btc2Connected") + .instructions.col-md-10 + a.dismiss(href="", id="hide", ng-click="toggle_btc_instructions()", l10n) × + .title(l10n) NEW CUSTOMERS- SIGN UP AT BITSTAMP + .description(l10n) + | Register and verify your account at + a(href="https://www.bitstamp.net", target="_blank") www.bitstamp.net + | . You will need: + ul + li + p(l10n) A valid government-issued ID: driver's license, international passport, or national ID card. + li + p(l10n) A proof of residency: tax return, council tax, utility bill, bank statement, certificate of residency issued by a government authority, etc. + + .title(l10n) DEPOSIT OPTIONS + .description(l10n) + ul + li + p(l10n) International wire transfer (.05% deposit fee on our side (minimum fee = $7.5) and 2 - 5 business days to credit) + li + p(l10n) SEPA (1-3 business days) + li + p(l10n) AstroPay (instantly from available countries) + + .title(l10n) WITHDRAWAL OPTIONS + .description(l10n) + ul + li + p(l10n) International wire transfer (.09% fee on our side (minimum fee = $15) and 2 - 5 business days) + li + p(l10n) SEPA (1-3 business days) + + .description If you have any questions, please feel free to contact Bitstamp at + a(href="support@bitstamp.net", target="_blank") support@bitstamp.net diff --git a/src/templates/tabs/cad.jade b/src/templates/tabs/cad.jade new file mode 100644 index 000000000..c7903eaca --- /dev/null +++ b/src/templates/tabs/cad.jade @@ -0,0 +1,113 @@ +section.col-xs-12.content(ng-controller='CadCtrl') + + //- Disconnected + + group.disconnected(ng-hide='connected') + p.literal(l10n="err-you-must-be-online-to-see-this-screen") + | You have to be online to see this screen + + //- Funding + div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") + include ../tabs/banner/unfunded + + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling + + .row(ng-show='connected') + // Transaction errors coming from errors.js & transactionerror.jade + .col-sm-12(ng-show='mode=="error" || mode=="granting" && account.Balance') + group.mode-ripplerror + rp-transaction-status( + rp-engine-result="{{engine_result}}" + rp-engine-result-message="{{engine_result_message}}" + rp-accepted="{{engine_status_accepted}}" + rp-current-tab="trust") + + //- Generic non-tx related messages + .col-sm-12(ng-show='notif !== "clear"', ng-hide="!notif") + group.mode-granted.wide + group(ng-switch="notif") + group.result-error(ng-switch-when="error") + h2.tx-status(l10n) There was an error while saving your changes. + p(l10n) Please try again later. + .col-sm-12(ng-show='account.Balance && !can_add_trust && !cadConnected') + .alert.alert-warning(l10n) You must have at least + strong {{account.reserve_to_add_trust | rpamount:0}} XRP + | to add a new trust line. + a(href="https://ripple.com/wiki/Reserves", target="_blank") More information + + .col-sm-3 + include ../tabs/fund/menu + .col-sm-9.list(ng-hide='debug') + .nameLine(l10n) Canadian Dollar Deposit + .gateway.row + .col-md-3 + .title(l10n) Gateway + .description(l10n) + | Bluzelle CAD Issuer (~bluzelle) + br + a(href="http://bluzelle.com", target="_blank") bluzelle.com + .col-md-3 + .title(l10n) Availability + .description(l10n) All countries + .col-md-6 + .title(l10n) Fees + .description + p(l10n) Deposit: $1 + 1.5% Max $5. Deposits available during business hours. + p(l10n) Withdrawal: $1.50. Withdrawals available during business hours. + p(l10n) Trading: 0.1% when transferring. + //- .col-md-3 + //- .title(l10n) Rating + //- .description(l10n) + //- a(href="https://coinist.co/ripple/gateways/ripple-singapore", target="_blank") read reviews + + .row.fund-tab-description + .col-xs-12.col-md-8.col-lg-6 + .descriptor(ng-show="!cadConnected", l10n) Ripple Trade has partnered with Bluzelle to provide easier access to CAD. Following this action will enable Bluzelle to hold CAD on your behalf. + + .row.fund-tab-description + .col-xs-7.col-sm-5.col-md-4(ng-hide="cadConnected") + button.btn.btn-large.btn-primary(ng-show="!cadConnected && !loading && loadState.account", type="submit", ng-click="save_account()", ng-disabled="!account.Balance || !can_add_trust", l10n) Add Bluzelle + button.btn.btn-large.btn-primary(ng-show="!cadConnected && loading", type="submit", ng-disabled="loading", l10n) Adding... + //- button.btn.btn-large.btn-primary(ng-show="showInstructions && cadConnected", type="submit", ng-click="toggle_instructions()", l10n) Hide instructions + //- button.btn.btn-large.btn-primary(ng-show="cadConnected && !showInstructions", type="submit", ng-click="toggle_instructions()", l10n) Show instructions + + .connect.col-xs-5.col-sm-7.col-md-8(ng-hide="loading") + .description(ng-show="!cadConnected && account.Balance", l10n) + i.fa.fa-times + | Not connected + .description(ng-show="cadConnected && account.Balance", l10n) + i.fa.fa-check + | Connected + .description(ng-show="!account.Balance && loadState.account", l10n) Your account has to be activated before you can add a gateway account. + .description(ng-show="!loadState.account") + img(src="img/button-s.png", class="loader") + span(class="loading_text", l10n) Loading... + + //- .row(ng-show="showInstructions && cadConnected") + //- .instructions.col-md-10 + //- a.dismiss(href="", id="hide", ng-click="toggle_instructions()", l10n) × + //- .title(l10n) To Initiate Canadian Dollar Deposits and Withdrawals + //- .description(l10n) + //- | Register or login to your Bluzelle account. You will need: + //- ul + //- li + //- p(l10n) A valid non-US, government-issued ID (passport, driver’s license, etc) + //- li + //- p(l10n) Proof of address + //- li + //- p(l10n) Verification is required for deposits or withdrawals + + //- .title(l10n) Deposit Options + //- .description(l10n) + //- ul + //- li + //- p(l10n) Users can deposit CAD by entering bank credentials and initiating a bank wire transfer from user’s bank account to Bluzelle. + + //- .title(l10n) Withdrawal Options + //- .description(l10n) + //- ul + //- li + //- p(l10n) Users can withdraw CAD by sending funds from their Ripple address to Bluzelle’s Ripple address. Bluzelle will send the funds to a user’s bank account using a bank wire transfer. diff --git a/src/jade/tabs/contacts.jade b/src/templates/tabs/contacts.jade similarity index 74% rename from src/jade/tabs/contacts.jade rename to src/templates/tabs/contacts.jade index e81d226c3..3e9a68b57 100644 --- a/src/jade/tabs/contacts.jade +++ b/src/templates/tabs/contacts.jade @@ -2,13 +2,21 @@ section.col-xs-12.content(ng-controller="ContactsCtrl") div(ng-show='debug') This page is not available in debug mode div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected && !debug") - include banner/unfunded + include ../tabs/banner/unfunded + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling div(ng-hide='debug') .row - .col-sm-12.notification-wrapper - .alert.alert-success(ng-show="success.createContact", l10n) A new contact has been successfully added. - .alert.alert-success(ng-show="success.updateContact", l10n) Your contact has been successfully updated. - .alert.alert-success(ng-show="success.removeContact", l10n) A contact has been successfully removed. + group.col-sm-12.notification-wrapper(ng-show='notif !== "clear"') + group(ng-switch="notif") + group.result-success(ng-switch-when="createContactSuccess") + h2.tx-status(l10n) A new contact has been successfully added. + group.result-success(ng-switch-when="updateContactSuccess") + h2.tx-status(l10n) Your contact has been successfully updated. + group.result-success(ng-switch-when="removeContactSuccess") + h2.tx-status(l10n) A contact has been successfully removed. form.row-padding-small .row.form-group .col-xs-12.col-sm-8.col-md-6 @@ -45,9 +53,9 @@ section.col-xs-12.content(ng-controller="ContactsCtrl") rp-autofill='$routeParams.name', rp-autofill-on='addform_visible = true' required rp-focus) - .errorGroup(rp-errors='name') - .error(rp-error-on='required', l10n) Please enter a contact. - .error(rp-error-on='rpUnique', l10n) + .errorGroup(ng-messages='addForm.name.$dirty && addForm.name.$error') + .error(ng-message='required', l10n) Please enter a contact. + .error(ng-message='rpUnique', l10n) | This contact already exists. .form-group div @@ -58,17 +66,17 @@ section.col-xs-12.content(ng-controller="ContactsCtrl") ng-model='contact.view' rp-dest, rp-dest-address, rp-dest-bitcoin, rp-dest-ripple-name, rp-dest-ripple-name-no-tilde rp-dest-email, rp-dest-check-federation, rp-dest-federation-model="contact.federation" - rp-dest-model="contact.address", rp-dest-loading="address_loading" + rp-dest-model="contact.address" rp-unique='userBlob.data.contacts' rp-unique-field='address' rp-unique-group='address-dt-web' - rp-spinner="{{address_loading ? 4 : null}}" + rp-spinner rp-autofill='$routeParams.to', rp-autofill-on='addform_visible = true' required) - .errorGroup(rp-errors='address_web') - .error(rp-error-on='required', l10n) Please enter a Ripple name. - .error(rp-error-on='rpUnique', l10n) You already have a contact with the same Ripple name and/or the same Destination tag. - .error(rp-error-on='rpDest', l10n) Not a valid Ripple name or address. + .errorGroup(ng-messages='addForm.address_web.$dirty && addForm.address_web.$error') + .error(ng-message='required', l10n) Please enter a Ripple name. + .error(ng-message='rpUnique', l10n) You already have a contact with the same Ripple name and/or the same Destination tag. + .error(ng-message='rpDest', l10n) Not a valid Ripple name or address. .form-group div(ng-hide='contact.federation') label(for='dt_web', l10n) Destination tag @@ -81,12 +89,12 @@ section.col-xs-12.content(ng-controller="ContactsCtrl") rp-unique-group='address-dt-web' rp-stdt rp-autofill='$routeParams.dt') - .errorGroup(rp-errors='dt_web') - .error(rp-error-on='rpStdt', l10n) Invalid destination tag - .error(rp-error-on='rpUnique', l10n) You already have a contact with the same Ripple name and/or the same Destination tag. + .errorGroup(ng-messages='addForm.dt_web.$error') + .error(ng-message='rpStdt', l10n) Invalid destination tag + .error(ng-message='rpUnique', l10n) You already have a contact with the same Ripple name and/or the same Destination tag. .row .col-xs-8.col-sm-8.col-md-9.text-left - button.btn.btn-success.btn-block.submit.custom-btn(type='submit', ng-disabled='addForm.$invalid', l10n) Add contact + button.btn.btn-success.btn-block.submit.custom-btn(type='submit', ng-disabled='addForm.$invalid || addForm.$pending', l10n) Add contact .col-xs-4.col-sm-4.col-md-3.text-center button.btn.btn-default.btn-block.custom-btn.btn-cancel(type='button', ng-click='addform_visible = false', l10n) cancel @@ -96,10 +104,11 @@ section.col-xs-12.content(ng-controller="ContactsCtrl") ng-controller="ContactRowCtrl" ng-show='!debug') .col-xs-3.col-md-3.col-sm-3(ng-hide='editing') - span.name(ng-hide='editing') {{entry.name}} + span.name(ng-hide='editing', ng-bind="entry.name") .col-xs-12.col-sm-6.col-md-6(ng-hide='editing') - div - b.hidden-xs {{entry.address | rpaddressorigin}}: {{entry.address}} + div.hidden-xs + b {{entry.address | rpaddressorigin}}: + b(rp-ripple-name="entry.address") ??? .col-xs-6.col-sm-3.col-md-3.text-right.pull-right(ng-hide='editing') .row .col-xs-4.col-md-4.col-sm-4(ng-hide='editing') @@ -118,8 +127,8 @@ section.col-xs-12.content(ng-controller="ContactsCtrl") rp-unique-field='name' rp-unique-orig='entry.name' ng-enter="update($index)") - .errorGroup(rp-errors='editname') - .error(rp-error-on='rpUnique', l10n) + .errorGroup(ng-messages='inlineName.editname.$error') + .error(ng-message='rpUnique', l10n) | You already have a contact with the same name. div.col-md-4.col-sm-4.col-xs-12.address-wrapper ng-form(name='inlineAddress') @@ -132,9 +141,9 @@ section.col-xs-12.content(ng-controller="ContactsCtrl") rp-dest, rp-dest-address, rp-dest-bitcoin rp-dest-email, rp-dest-check-federation, rp-dest-federation-model="entry.federation" ng-enter="update($index)") - .errorGroup(rp-errors='editaddress') - .error(rp-error-on='rpUnique', l10n) You already have this address. - .error(rp-error-on='rpDest', l10n) Not a valid address. + .errorGroup(ng-messages='inlineAddress.editaddress.$error') + .error(ng-message='rpUnique', l10n) You already have this address. + .error(ng-message='rpDest', l10n) Not a valid address. .form-group(ng-hide='entry.federation') label(for="contact_dt", l10n) Destination tag input.form-control.dt.inline#contact_dt( @@ -144,15 +153,13 @@ section.col-xs-12.content(ng-controller="ContactsCtrl") rp-stdt rp-autofill='$routeParams.dt' ng-enter="update($index)") - .errorGroup(rp-errors='dt') - .error(rp-error-on='rpStdt', l10n) Invalid destination tag. + .errorGroup(ng-messages='inlineAddress.dt.$error') + .error(ng-message='rpStdt', l10n) Invalid destination tag. div.col-md-5.col-sm-4.col-xs-12 .row .col-xs-4.col-md-4 button.save.btn.btn-block.btn-success( - ng-disabled="inlineAddress.editaddress.$error.rpUnique" - ng-disabled="inlineName.editname.$error.rpUnique" - ng-disabled="inlineAddress.editaddress.$error.rpDest" + ng-disabled="inlineAddress.editaddress.$error.rpUnique || inlineName.editname.$error.rpUnique || inlineAddress.editaddress.$error.rpDest" ng-click='update($index)', l10n) Save .col-xs-4.col-md-4 rp-confirm( diff --git a/src/jade/tabs/debug.jade b/src/templates/tabs/debug.jade similarity index 66% rename from src/jade/tabs/debug.jade rename to src/templates/tabs/debug.jade index 3dbf0cf2b..b2b82515c 100644 --- a/src/jade/tabs/debug.jade +++ b/src/templates/tabs/debug.jade @@ -10,20 +10,18 @@ section.col-xs-12.content(ng-controller='DebugPretendCtrl') name='pretendAddr', type='text' rp-combobox="pretend_query" rp-combobox-value-as-ripple-name - rp-dest-loading="pretend_loading" l10n-placeholder="Enter a Ripple name or address" ng-model='pretend.pretendAs' required rp-dest, rp-dest-address, rp-dest-ripple-name, rp-dest-contact - rp-spinner="{{pretend_loading ? 4 : null}}" + rp-spinner ) - .errorGroup(rp-errors='pretendAddr') - .success(rp-error-valid ng-show='pretend.pretendAs != pretend.address') - | {{pretend.address}} - .error(rp-error-on='required', l10n) Please enter an address. - .error(rp-error-on='rpDest', l10n) Not a valid address. + .errorGroup(ng-messages='debugPretendForm.pretendAddr.$error') + .success(ng-show='debugPretendForm.pretendAddr.$valid && pretend.pretendAs != pretend.address', ng-bind='pretend.address') + .error(ng-message='required', l10n) Please enter an address. + .error(ng-message='rpDest', l10n) Not a valid address. .row.row-padding-small.amount .col-xs-12.col-sm-9.col-md-6 - button.btn.btn-block.btn-success(type="submit", ng-disabled='debugPretendForm.$invalid', l10n) + button.btn.btn-block.btn-success(type="submit", ng-disabled='debugPretendForm.$invalid || debugPretendForm.$pending', l10n) | Turn on debug mode diff --git a/src/jade/tabs/eur.jade b/src/templates/tabs/eur.jade similarity index 72% rename from src/jade/tabs/eur.jade rename to src/templates/tabs/eur.jade index 13821e5f6..91c952399 100644 --- a/src/jade/tabs/eur.jade +++ b/src/templates/tabs/eur.jade @@ -3,12 +3,17 @@ section.col-xs-12.content(ng-controller='EurCtrl') //- Disconnected group.disconnected(ng-hide='connected') - p.literal(l10n="err-you-must-be-online-to-see-this-screen", l10n) + p.literal(l10n="err-you-must-be-online-to-see-this-screen") | You have to be online to see this screen //- Funding div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded + include ../tabs/banner/unfunded + + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling .row(ng-show='connected') // Transaction errors coming from errors.js & transactionerror.jade @@ -23,7 +28,7 @@ section.col-xs-12.content(ng-controller='EurCtrl') //- Generic non-tx related messages .col-sm-12(ng-show='notif !== "clear"', ng-hide="!notif") group.mode-granted.wide - group(ng-switch on="notif") + group(ng-switch="notif") group.result-error(ng-switch-when="error") h2.tx-status(l10n) There was an error while saving your changes. p(l10n) Please try again later. @@ -34,7 +39,7 @@ section.col-xs-12.content(ng-controller='EurCtrl') a(href="https://ripple.com/wiki/Reserves", target="_blank") More information .col-sm-3 - include fund/menu + include ../tabs/fund/menu .col-sm-9.list(ng-hide='debug') .nameLine(l10n) Euro Deposit .gateway.row @@ -52,7 +57,7 @@ section.col-xs-12.content(ng-controller='EurCtrl') .description(l10n) p(l10n) € 0.31 – € 15.00 p(l10n) - a(href='https://snapswap.eu/#/fees', target="_blank") more details + a(href='https://snapswap.eu/fees', target="_blank") more details .col-md-3 .title(l10n) Rating .description(l10n) @@ -64,15 +69,18 @@ section.col-xs-12.content(ng-controller='EurCtrl') .row.fund-tab-description .col-xs-7.col-sm-5.col-md-4 - button.btn.btn-large(ng-show="!eurConnected && !loading", type="submit", ng-click="save_account()", ng-disabled="!account.Balance") Add SnapSwap.eu - button.btn.btn-large(ng-show="!eurConnected && loading", type="submit", ng-disabled="loading") Adding... - button.btn.btn-large(ng-show="showInstructions && eurConnected", type="submit", ng-click="toggle_instructions()", l10n) Hide instructions - button.btn.btn-large(ng-show="eurConnected && !showInstructions", type="submit", ng-click="toggle_instructions()", l10n) Show instructions + button.btn.btn-large.btn-primary(ng-show="!eurConnected && !loading && loadState.account", type="submit", ng-click="save_account()", ng-disabled="!account.Balance || !can_add_trust", l10n) Add SnapSwap.eu + button.btn.btn-large.btn-primary(ng-show="!eurConnected && loading", type="submit", ng-disabled="loading", l10n) Adding... + button.btn.btn-large.btn-primary(ng-show="showInstructions && eurConnected", type="submit", ng-click="toggle_instructions()", l10n) Hide instructions + button.btn.btn-large.btn-primary(ng-show="eurConnected && !showInstructions", type="submit", ng-click="toggle_instructions()", l10n) Show instructions .connect.col-xs-5.col-sm-7.col-md-8(ng-hide="loading") .description.fa.fa-times(ng-show="!eurConnected && account.Balance", l10n) Not connected .description.fa.fa-check(ng-show="eurConnected && account.Balance", l10n) Connected - .description(ng-show="!account.Balance", l10n) Your account has to be activated before you can add a gateway account. + .description(ng-show="!account.Balance && loadState.account", l10n) Your account has to be activated before you can add a gateway account. + .description(ng-show="!loadState.account") + img(src="img/button-s.png", class="loader") + span(class="loading_text", l10n) Loading... .row(ng-show="showInstructions && eurConnected") .instructions.col-md-10 @@ -91,7 +99,7 @@ section.col-xs-12.content(ng-controller='EurCtrl') ul li p(l10n) Login to your account - a(href="https://snapswap.eu/#/signin", target="_blank") here. + a(href="https://snapswap.eu/signin", target="_blank") here. .title(l10n) DEPOSITS AND WITHDRAWALS: .description(l10n) diff --git a/src/jade/tabs/exchange.jade b/src/templates/tabs/exchange.jade similarity index 79% rename from src/jade/tabs/exchange.jade rename to src/templates/tabs/exchange.jade index 5f19aa6ee..d0c9295ce 100644 --- a/src/jade/tabs/exchange.jade +++ b/src/templates/tabs/exchange.jade @@ -6,23 +6,30 @@ section.col-xs-12.content(ng-controller="ExchangeCtrl") p.literal(l10n) You have to be online to see this screen group.disconnected(ng-hide="!connected || loadState.account") - p.literal(l10n) Loading... + div(id="section_loader") + img(src="img/sections.png", class="loader") + div(class="loading_sections", l10n) Loading... div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded - p.literal(l10n="err-you-must-be-funded-before-you-can-exchange-money", l10n) You have to be funded before you can submit an order. + include ../tabs/banner/unfunded + p.literal(l10n="err-you-must-be-funded-before-you-can-exchange-money") You have to be funded before you can submit an order. + + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling div(ng-show='debug') This page is not available in debug mode //- Connected - .row(ng-show='connected && !debug') + .row(ng-show='connected && !debug && account.Balance') .widgets.hidden-xs.col-sm-4.col-md-4.col-lg-3 - include widgets/balances + include ../tabs/widgets/balances .col-xs-12.col-sm-8.col-md-8.col-lg-9 .nameLine(l10n) Buy (Market Order) .instructions(l10n) Submit a buy order at the current market rate. Orders will execute instantly. - form.mode-form#exchangeForm(name="exchangeForm", ng-show='mode=="form" && account.Balance', ng-submit='exchange_prepared()') + form.mode-form#exchangeForm(name="exchangeForm", ng-show='mode=="form"', ng-submit='exchange_prepared()') .form-group label(for='amount', l10n="Receive (amount)") I want to buy .row.row-padding-small.amount @@ -48,14 +55,14 @@ section.col-xs-12.content(ng-controller="ExchangeCtrl") .col-sm-3.col-md-3.col-xs-12 button.btn.btn-cancel.btn-block(ng-click="gotoFund()", l10n) | add gateway - .errorGroup(rp-errors='amount') - .error(rp-error-on='required', l10n) Please enter an amount. - .error(rp-error-on='rpAmount', l10n) Not a valid amount. - .error(rp-error-on='rpAmountXrpLimit', l10n) + .errorGroup(ng-messages='exchangeForm.amount.$dirty && exchangeForm.amount.$error') + .error(ng-message='required', l10n) Please enter an amount. + .error(ng-message='rpAmount', l10n) Not a valid amount. + .error(ng-message='rpAmountXrpLimit', l10n) | You are either trying to buy too little or too much XRP. | Minimum amount is 0.000001 XRP and maximum amount is 100 billion XRP. - .error(rp-error-on='rpMaxDigits', l10n) Your amount has too many digits. The max number of digits is 16. - .error(rp-error-on='rpAmountPositive', l10n) + .error(ng-message='rpMaxDigits', l10n) Your amount has too many digits. The max number of digits is 16. + .error(ng-message='rpAmountPositive', l10n) | Please enter an amount greater than zero. p.literal(ng-show="exchange.path_status == 'waiting'") p.literal(ng-show="exchange.path_status == 'pending'", l10n) @@ -86,8 +93,8 @@ section.col-xs-12.content(ng-controller="ExchangeCtrl") rp-pretty-issuer-or-short) .ex ( span.rate {{alt.rate | rpamount:{rel_precision: 4} }} - span.pair {{exchange.currency_code}}/{{alt.amount | rpcurrency}} - ) + span.pair {{alt.amount | rpcurrency}}/{{exchange.currency_code}} + | ) button.btn.btn-block.btn-success(type="submit", ng-disabled='exchangeForm.$invalid', ng-click="exchange.alt = alt", l10n) | Sell {{ alt.amount | rpcurrency }} span(ng-hide="alt.amount.is_native() || alt.amount.issuer().to_json() == account.Account") ( @@ -97,8 +104,8 @@ section.col-xs-12.content(ng-controller="ExchangeCtrl") rp-pretty-issuer-or-short) | ) .row.pathupdate(ng-show="exchange.alternatives.length && lastUpdate") - .col-xs-12(l10n) Price last updated - span {{lastUpdate}} + .col-xs-12(l10n) Price last updated + span(ng-bind='lastUpdate') span(ng-show="lastUpdate > '1'", l10n-inc) seconds span(ng-show="lastUpdate == '1'", l10n-inc) second | ago @@ -116,19 +123,21 @@ section.col-xs-12.content(ng-controller="ExchangeCtrl") span(l10n) p.literal(l10n-inc) You are selling p.amount_feedback - span.value {{exchange.alt.amount | rpamount}} + span.value {{exchange.alt.amount | rpamount}} span.currency {{exchange.alt.amount | rpcurrency}} p.literal(l10n-inc) for - p.amount_feedback - span.value {{exchange.amount_feedback | rpamount}} - span.currency {{exchange.amount_feedback | rpcurrency}} + p.amount_feedback(rp-pretty-amount='exchange.amount_feedback') p.literal(l10n-inc) You will sell at most p.amount_feedback - span.value {{exchange.alt.amount | rpamount}} + span.value {{exchange.alt.amount | rpamount}} span.currency {{exchange.alt.amount | rpcurrency}} - span + .1% - span.literal(l10n-inc) Ripple network fee: - span.literal(rp-pretty-amount='networkFee') + span + {{exchangeMaxDeviation}}% + p + span.literal(l10n-inc) Exchange rate: + span.value {{exchange.alt.rate | rpamount:{rel_precision: 4} }} + span.currency {{exchange.alt.amount | rpcurrency}} per {{exchange.currency_code}} + span.literal(l10n-inc) Ripple network fee: + span.currency(rp-pretty-amount='networkFee') form.call-to-action(ng-submit='exchange_confirmed()') p.literal(l10n-inc) Are you sure? .row.row-padding-small diff --git a/src/jade/tabs/fund.jade b/src/templates/tabs/fund.jade similarity index 75% rename from src/jade/tabs/fund.jade rename to src/templates/tabs/fund.jade index b125d29ed..c3f57d5ee 100644 --- a/src/jade/tabs/fund.jade +++ b/src/templates/tabs/fund.jade @@ -3,16 +3,21 @@ section.col-xs-12.content(ng-controller='FundCtrl') //- Disconnected group.disconnected(ng-hide='connected') - p.literal(l10n="err-you-must-be-online-to-see-this-screen", l10n) + p.literal(l10n="err-you-must-be-online-to-see-this-screen") | You have to be online to see this screen //- Funding div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded + include ../tabs/banner/unfunded + + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling .row(ng-show='connected') .col-sm-3 - include fund/menu + include ../tabs/fund/menu .col-sm-9.list .fundAcct(ng-show="currencyPage == 'accounts'", ng-controller='TrustCtrl') .row @@ -23,7 +28,7 @@ section.col-xs-12.content(ng-controller='FundCtrl') form.row-padding-small#trustForm(name='trustForm', ng-submit='grant()') .row .col-xs-12.form-group - label(for='trust_counterparty', ng-show="edituser") {{ edituser }} + label(for='trust_counterparty', ng-show="edituser", ng-bind="edituser") input.form-control#trust_counterparty( name='trust_counterparty', type='text', rp-combobox="counterparty_query" rp-combobox-value-as-ripple-name @@ -31,23 +36,21 @@ section.col-xs-12.content(ng-controller='FundCtrl') ng-model='counterparty_view' rp-dest, rp-dest-address, rp-dest-contact, rp-not-me, rp-dest-email rp-dest-ripple-name, rp-dest-model="counterparty" - rp-dest-loading="counterparty_loading" required rp-autofill='$routeParams.to' rp-autofill-counterparty_view rp-autofill-on='addform_visible = true' - rp-focus, rp-spinner="{{counterparty_loading ? 4 : null}}") - .errorGroup(rp-errors='trust_counterparty') - div(rp-error-valid) - .success(ng-show='counterparty != counterparty_address && counterparty_name && !error_account_reserve') - | {{counterparty_address}} + rp-focus, rp-spinner) + .errorGroup(ng-messages='trustForm.trust_counterparty.$dirty && trustForm.trust_counterparty.$error') + div(ng-show='trustForm.trust_counterparty.$valid') + .success(ng-show='counterparty != counterparty_address && counterparty_name && !error_account_reserve', ng-bind="counterparty_address") .error(ng-show='error_account_reserve') span(l10n) Account does not meet the minimum XRP reserve. a(href="https://ripple.com/wiki/Account_Creation", target="_blank", l10n) | More information - .error(rp-error-on='required', l10n) Please enter a Ripple name, contact, or address. - .error(rp-error-on='rpNotMe', l10n) You've entered your own address. - .error(rp-error-on='rpDest', l10n) Please enter a valid Ripple name, contact, or address. + .error(ng-message='required', l10n) Please enter a Ripple name, contact, or address. + .error(ng-message='rpNotMe', l10n) You've entered your own address. + .error(ng-message='rpDest', l10n) Please enter a valid Ripple name, contact, or address. .row .col-xs-12.form-group label(for='trust_amount', l10n) Amount @@ -68,13 +71,13 @@ section.col-xs-12.content(ng-controller='FundCtrl') rp-autofill-on='addform_visible = true' rp-not-xrp required) - .errorGroup(rp-errors='trust_amount') - .error(rp-error-on='required', l10n) Amount field is required - .errorGroup(rp-errors='trust_amount_currency') - .error(rp-error-on='rpNotXrp', l10n) + .errorGroup(ng-messages='trustForm.trust_amount.$dirty && trustForm.trust_amount.$error') + .error(ng-message='required', l10n) Amount field is required + .errorGroup(ng-messages='trustForm.trust_amount_currency.$dirty && trustForm.trust_amount_currency.$error') + .error(ng-message='rpNotXrp', l10n) | XRP can be sent without extending trust. If you really want | to trust in XRP, please use XRR currency code. - .error(rp-error-on='required', l10n) + .error(ng-message='required', l10n) | Currency field is required .row .col-xs-12.allow-rippling diff --git a/src/jade/tabs/fund/menu.jade b/src/templates/tabs/fund/menu.jade similarity index 59% rename from src/jade/tabs/fund/menu.jade rename to src/templates/tabs/fund/menu.jade index b5db51855..21feb221e 100644 --- a/src/jade/tabs/fund/menu.jade +++ b/src/templates/tabs/fund/menu.jade @@ -1,18 +1,13 @@ .currencies.fund-menu - .first_menu_item(l10n) Ripple name - a(href="#/xrp", ng-class="{active: $route.current.tabName == 'xrp'}", class="currency-xrp", l10n) - i.icon.fa.fa-money.fa-xrp - | XRP - .menu_item(l10n) Featured gateways - a(href="#/aud", ng-class="{active: $route.current.tabName == 'aud'}", class="currency-aud", l10n) - i.icon.fa.fa-money.fa-aud - | AUD a(href="#/brl", ng-class="{active: $route.current.tabName == 'brl'}", class="currency-brl", l10n) i.icon.fa.fa-money.fa-brl | BRL a(href="#/btc", ng-class="{active: $route.current.tabName == 'btc'}", class="currency-btc", l10n) i.icon.fa.fa-money.fa-btc | BTC + a(href="#/cad", ng-class="{active: $route.current.tabName == 'cad'}", class="currency-cad", l10n) + i.icon.fa.fa-money.fa-cad + | CAD a(href="#/eur", ng-class="{active: $route.current.tabName == 'eur'}", l10n) i.icon.fa.fa-money.fa-eur | EUR @@ -22,9 +17,6 @@ a(href="#/mxn", ng-class="{active: $route.current.tabName == 'mxn'}", class="currency-mxn", l10n) i.icon.fa.fa-money.fa-mxn | MXN - a(href="#/nzd", ng-class="{active: $route.current.tabName == 'nzd'}", class="currency-nzd", l10n) - i.icon.fa.fa-money.fa-nzd - | NZD a(href="#/sgd", ng-class="{active: $route.current.tabName == 'sgd'}", class="currency-sgd", l10n) i.icon.fa.fa-money.fa-sgd | SGD @@ -33,7 +25,4 @@ | USD a(href="#/gold", ng-class="{active: $route.current.tabName == 'gold'}", class="currency-xau", l10n) i.icon.fa.fa-money.fa-xau - | XAU - .menu_item(l10n) Add any gateway - a(href="#/trust", ng-class="{active: $route.current.tabName == 'trust'}", l10n) Gateways -a(href="https://ripple.com/knowledge_center/gateway-information", target="_blank", l10n) Learn more about gateways + | XAU \ No newline at end of file diff --git a/src/jade/tabs/gold.jade b/src/templates/tabs/gold.jade similarity index 72% rename from src/jade/tabs/gold.jade rename to src/templates/tabs/gold.jade index dc74d56d1..7c625e6dc 100644 --- a/src/jade/tabs/gold.jade +++ b/src/templates/tabs/gold.jade @@ -3,12 +3,17 @@ section.col-xs-12.content(ng-controller='GoldCtrl') //- Disconnected group.disconnected(ng-hide='connected') - p.literal(l10n="err-you-must-be-online-to-see-this-screen", l10n) + p.literal(l10n="err-you-must-be-online-to-see-this-screen") | You have to be online to see this screen //- Funding div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded + include ../tabs/banner/unfunded + + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling .row(ng-show='connected') // Transaction errors coming from errors.js & transactionerror.jade @@ -23,7 +28,7 @@ section.col-xs-12.content(ng-controller='GoldCtrl') //- Generic non-tx related messages .col-sm-12(ng-show='notif !== "clear"', ng-hide='!notif') group.mode-granted.wide - group(ng-switch on="notif") + group(ng-switch="notif") group.result-error(ng-switch-when="error") h2.tx-status(l10n) There was an error while saving your changes. p(l10n) Please try again later. @@ -34,7 +39,7 @@ section.col-xs-12.content(ng-controller='GoldCtrl') a(href="https://ripple.com/wiki/Reserves", target="_blank") More information .col-sm-3 - include fund/menu + include ../tabs/fund/menu .col-sm-9.list(ng-show='debug') div This page is not available in debug mode .col-sm-9.list(ng-hide='debug') @@ -49,7 +54,7 @@ section.col-xs-12.content(ng-controller='GoldCtrl') .description(l10n) All countries .col-md-3 .title(l10n) Fees - .description(l10n) 0.5% per year + .description(l10n) 0.3% .col-md-3 .title(l10n) Rating .description(l10n) @@ -62,10 +67,10 @@ section.col-xs-12.content(ng-controller='GoldCtrl') .row.fund-tab-description .col-xs-7.col-sm-5.col-md-4 - button.btn.btn-large(ng-show="!gbiConnected && !loading", type="submit", ng-click="save_account()", ng-disabled="!account.Balance") Add GBI - button.btn.btn-large(ng-show="!gbiConnected && loading", type="submit", ng-disabled="loading") Adding... - button.btn.btn-large(ng-show="showInstructions && gbiConnected", type="submit", ng-click="toggle_instructions()") Hide instructions - button.btn.btn-large(ng-show="gbiConnected && !showInstructions", type="submit", ng-click="toggle_instructions()") Show instructions + button.btn.btn-large.btn-primary(ng-show="!gbiConnected && !loading && loadState.account", type="submit", ng-click="save_account()", ng-disabled="!account.Balance || !can_add_trust", l10n) Add GBI + button.btn.btn-large.btn-primary(ng-show="!gbiConnected && loading", type="submit", ng-disabled="loading", l10n) Adding... + button.btn.btn-large.btn-primary(ng-show="showInstructions && gbiConnected", type="submit", ng-click="toggle_instructions()", l10n) Hide instructions + button.btn.btn-large.btn-primary(ng-show="gbiConnected && !showInstructions", type="submit", ng-click="toggle_instructions()", l10n) Show instructions .connect.col-xs-5.col-sm-7.col-md-8(ng-hide="loading") .description(ng-show="!gbiConnected && account.Balance", l10n) @@ -74,13 +79,16 @@ section.col-xs-12.content(ng-controller='GoldCtrl') .description(ng-show="gbiConnected && account.Balance", l10n) i.fa.fa-check | Connected - .description(ng-show="!account.Balance", l10n) Your account has to be activated before you can add a gateway account. + .description(ng-show="!account.Balance && loadState.account", l10n) Your account has to be activated before you can add a gateway account. + .description(ng-show="!loadState.account") + img(src="img/button-s.png", class="loader") + span(class="loading_text", l10n) Loading... .row(ng-show="showInstructions && gbiConnected") .instructions.col-md-10 a.dismiss#hide(href="", ng-click="toggle_instructions()", l10n) × .title(l10n) Deposit .description(l10n) GBI does not currently support direct deposits. You can - a(href="#/trade") trade XAU(-.5%pa) + a(href="#/trade") trade XAU | or a(href="#/exchange") convert some of your current holdings | . diff --git a/src/templates/tabs/history.jade b/src/templates/tabs/history.jade new file mode 100644 index 000000000..06fb93396 --- /dev/null +++ b/src/templates/tabs/history.jade @@ -0,0 +1,212 @@ +section.col-xs-12.content(ng-controller="HistoryCtrl") + + //- Account is unfunded + div(ng-show="loadState.transactions && !account.Balance") + include ../tabs/banner/unfunded + p.literal(l10n) Your account history is empty + + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling + + //- Connected + + group.row + .filters.row-padding-small.col-lg-3.col-md-4.col-sm-5.col-xs-12 + .filter.type-filter.row + .col-xs-12.filters-wrapper + .filter-title(l10n) Transaction type + .filter-choices + div(ng-repeat="type in types") + label(ng-class="{active: type.checked}") + i.fa.fa-plus(ng-show="type.checked") + i.fa.fa-minus(ng-hide="type.checked") + span.name(ng-bind="type.name") + input(type="checkbox", name="type-filter", ng-model="type.checked") + .filter.date-filter.row + .col-xs-12.filters-wrapper + .filter-title(l10n) Date + .filter-choices + div + label(ng-class="{active: !customDate}") + i.fa.fa-plus(ng-hide="customDate") + i.fa.fa-minus(ng-show="customDate") + span.name(l10n) All dates + input(type="radio", name="date-filter", ng-model="customDate", value="") + div + label(ng-class="{active: customDate}") + i.fa.fa-plus(ng-show="customDate") + i.fa.fa-minus(ng-hide="customDate") + span.name(l10n) Custom date + input(type="radio", name="date-filter", ng-model="customDate", value="1") + div.row(ng-show="customDate") + .col-xs-12 + .filter-form-wrapper + form.filter-choices(ng-submit="submitDateRangeForm()") + .input-group.inline-inputs-group + .input-group-addon + i.fa.fa-calendar.fa-fw + span(l10n) From + .input-wrapper + input.form-control(type="text", rp-datepicker, ng-model="dateMinView", readonly) + .input-group.inline-inputs-group + .input-group-addon + i.fa.fa-calendar.fa-fw + span(l10n) To + .input-wrapper + input.form-control(type="text", rp-datepicker, ng-model="dateMaxView", rp-datepicker-min="dateMinView", readonly) + button.btn.btn-block.btn-primary.submit(type='submit', l10n) Filter + + .transactions.col-lg-9.col-md-8.col-sm-7.col-xs-12 + div(ng-show="loadingHistory", id="section_loader") + img(src="img/sections.png", class="loader") + div(class="loading_sections", l10n) Loading History + div.emptyHistory(ng-show="!loadingHistory && !historyShow.length") + | Sorry, no transactions match your current filter. + + div(ng-show="historyShow.length") + .head.row.hidden-xs + .col-md-12.export-btn-wrapper.text-right + a#csv(href='', ng-click='exportCsv()' + rp-download='historyCsv', + rp-download-csv='true', + rp-download-filename='ripple_historic.csv', l10n) Export to CSV + .head.row.visible-xs + .col-xs-12.export-btn-wrapper.text-right + a#csv.btn.btn-primary.btn-sm(href='', ng-click='exportCsv()', rp-download='historyCsv', rp-download-csv='true', rp-download-filename='ripple_historic.csv', l10n) Export to CSV + ul + li(class="{{entry.transaction.type}}", ng-repeat="entry in historyShow track by entry.hash" + ng-click='details[entry.hash] = !details[entry.hash]' + ng-class="{open: details[entry.hash]}" + rp-pretty-amount-date="entry.dateRaw") + .cont + .top + span.i(ng-hide="entry.details") + i.fa.fa-arrow-down(ng-show="entry.transaction.type=='received'") + i.fa.fa-arrow-up(ng-show="entry.transaction.type=='sent'") + i.fa.fa-download.fa-rotate-90(ng-show="entry.transaction.type=='trusted'") + i.fa.fa-download.fa-rotate-270(ng-show="entry.transaction.type=='trusting'") + i.fa.fa-exchange(ng-show="!entry.transaction.type || entry.transaction.type=='offernew' || entry.transaction.type=='offercancel' || entry.transaction.type=='exchange' || entry.transaction.type=='rippling'") + i.fa.fa-cogs(ng-show="entry.transaction.type=='accountset'") + i.fa.fa-exclamation-triangle(ng-show="entry.transaction.type=='failed'") + span.i(ng-show="entry.details") + i.fa.fa-arrow-down + span.desc(ng-hide="entry.details", ng-switch="entry.transaction.type") + span(ng-switch-when="sent") + span(l10n, rp-span-spacing) You sent + span.amount(rp-pretty-amount-high-precision="entry.transaction.amountSent || entry.transaction.amount") + | to + span.address(rp-pretty-identity="entry.transaction.counterparty", rp-address-popover="entry.transaction.counterparty") + include ../tabs/history/effects.jade + span(ng-switch-when="received") + span(l10n, rp-span-spacing) + span.address(rp-pretty-identity="entry.transaction.counterparty", rp-address-popover="entry.transaction.counterparty") + | sent you + span.amount(rp-pretty-amount="entry.transaction.amount") + include ../tabs/history/effects.jade + span(ng-switch-when="exchange") + span(l10n, rp-span-spacing) You requested to exchange + span.amount(rp-pretty-amount="entry.transaction.spent") + | to + span.amount(rp-pretty-amount="entry.transaction.amount") + include ../tabs/history/effects.jade + span(ng-switch-when="trusted") + span(l10n, rp-span-spacing) + span.address(title="{{entry.transaction.counterparty}}") {{entry.transaction.counterparty | rpcontactname}} + | now trusts you for + span.amount(rp-pretty-amount="entry.transaction.amount") + include ../tabs/history/effects.jade + span(ng-switch-when="trusting") + span(l10n, rp-span-spacing) You have now connected to the gateway + span.address(rp-pretty-identity="entry.transaction.counterparty", rp-address-popover="entry.transaction.counterparty") + span(ng-show="globalOptions.advanced_feature_switch", l10n-inc) for + span.amount(ng-show="globalOptions.advanced_feature_switch", rp-pretty-amount="entry.transaction.amount") + | . + include ../tabs/history/effects.jade + span(ng-switch-when="offernew") + span(ng-show="entry.transaction.sell", l10n, rp-span-spacing) You created an order to sell + span.amount(rp-pretty-amount-high-precision="entry.transaction.gets") + | for + span.amount(rp-pretty-amount-high-precision="entry.transaction.pays") + span(ng-hide="entry.transaction.sell", l10n, rp-span-spacing) You created an order to buy + span.amount(rp-pretty-amount-high-precision="entry.transaction.pays") + | for + span.amount(rp-pretty-amount-high-precision="entry.transaction.gets") + include ../tabs/history/effects.jade + span(ng-switch-when="offercancel") + span(l10n, rp-span-spacing) You cancelled an order accepting + span.amount(rp-pretty-amount-high-precision="entry.transaction.pays") + | for + span.amount(rp-pretty-amount-high-precision="entry.transaction.gets") + include ../tabs/history/effects.jade + span(ng-switch-when="accountset") + span(l10n) Account details have been changed + include ../tabs/history/effects.jade + span(ng-switch-when="rippling") + span(l10n) Rippling + include ../tabs/history/effects.jade + span(ng-switch-when="failed", l10n) Failed transaction + span(ng-switch-when="error") + strong(l10n) Unknown transaction + ul.effects(rp-if="details[entry.hash]") + li + span(l10n) The client failed to parse this transaction. The developers have been notified of the issue. + span(ng-switch-default) + include ../tabs/history/effects.jade + span.dt {{entry.date | date:'EEE, MMM d, h:mm:ss a'}} + span.desc(ng-show="entry.details", ng-switch="entry.details.type") + span(ng-switch-when="giveaway") + span(l10n, rp-span-spacing) + span {{entry.details.app.name}} + | sent you + span.amount(rp-pretty-amount="entry.transaction.amount") + | and activated your account! + include ../tabs/history/effects.jade + span(ng-switch-when="deposit") + span(l10n, rp-span-spacing) + | You deposited + span.amount(rp-pretty-amount="entry.transaction.amount") + | using {{entry.details.app.name}} + include ../tabs/history/effects.jade + + .details(ng-if="details[entry.hash]") + .effects(ng-show="entry.balanceEffects") + .title(l10n) Balance Changes + .effect.header + span.description(l10n) Description + span.issuer(l10n, ng-show="entry.balanceEffects | rpAmountHasIssuer") Issuer + span.amount(l10n) Amount + span.balance(l10n) Final balance + .effect(ng-repeat="effect in entry.balanceEffects") + span.description + span(ng-show="effect.type == 'balance_change'", data-label="Description", l10n) XRP Balance Change + span(ng-show="effect.type == 'trust_change_balance'", data-label="Description", l10n) {{effect.currency}} Balance Change + span(ng-show="effect.type == 'fee'", data-label="Description", l10n) Fee + span.issuer( + ng-show="entry.balanceEffects | rpAmountHasIssuer" + rp-pretty-issuer="effect.amount.issuer().to_json()" + rp-pretty-issuer-contacts="userBlob.data.contacts" + rp-pretty-issuer-default="-" + data-label="Issuer" + ) + span.amount(data-label="Amount", rp-pretty-amount="effect.amount") + span.balance(data-label="Final balance", rp-pretty-amount="effect.balance") + .links + a.txLink(rp-link-tx="entry.hash", l10n) Transaction details + a.addLink(href="#/contact?to={{entry.transaction.counterparty}}", rp-no-propagate + ng-show="entry.transaction.counterparty && !(entry.transaction.counterparty | rponlycontactname)", l10n) + | Add + strong {{entry.transaction.counterparty | rpcontactname}} + | to contact list + nav.paging(ng-if="pagination.count") + pagination.pagination-sm(total-items="pagination.count" + ng-model="pagination.currentPage", items-per-page="pagination.transactionsPerPage" + max-size="10", boundary-links="true") + +// TODO filter calendar: High/low limits. +// TODO filter calendar: High limit calculation after the low limit +// TODO we loose history after tab Change +// TODO problem when manually editing date filter input field +// TODO currency filter to work with also trust type +// TODO optimization.. double (triple on load more) update history diff --git a/src/jade/tabs/history/effects.jade b/src/templates/tabs/history/effects.jade similarity index 60% rename from src/jade/tabs/history/effects.jade rename to src/templates/tabs/history/effects.jade index fa8f56670..c433bcb93 100644 --- a/src/jade/tabs/history/effects.jade +++ b/src/templates/tabs/history/effects.jade @@ -1,74 +1,105 @@ ul.effects(ng-show="entry.effects") - li(ng-repeat="effect in entry.showEffects", ng-switch on="effect.type") + li(ng-repeat="effect in entry.showEffects", ng-switch="effect.type") span(ng-switch-when="offer_funded") span(ng-show="effect.sell", l10n, rp-span-spacing) You sold - span.amount(rp-pretty-amount-high-precision="effect.gets", rp-address-popover, rp-address-popover-sum="effect.gets") + span.amount(rp-pretty-amount-high-precision="effect.gets") | for - span.amount(rp-pretty-amount-high-precision="effect.pays", rp-address-popover, rp-address-popover-sum="effect.pays") + span.amount(rp-pretty-amount-high-precision="effect.pays") + | ( + span(l10n-inc) price : + strong(rp-address-popover, rp-address-popover-sum="effect.invStraightPrice") {{effect.invStraightPrice | rpamount:{abs_precision: 6} }} + span {{ effect.pays | rpcurrency }} + | per + span {{ effect.gets | rpcurrency }} + | ). span(ng-hide="effect.sell", l10n, rp-span-spacing) You bought - span.amount(rp-pretty-amount-high-precision="effect.pays", rp-address-popover, rp-address-popover-sum="effect.pays") + span.amount(rp-pretty-amount-high-precision="effect.pays") | for - span.amount(rp-pretty-amount-high-precision="effect.gets", rp-address-popover, rp-address-popover-sum="effect.gets") - | ( - span(l10n) price - span : - strong(rp-address-popover, rp-address-popover-sum="effect.price") {{effect.price | rpamount:{abs_precision: 4} }} - | ). + span.amount(rp-pretty-amount-high-precision="effect.gets") + | ( + span(l10n) price : + strong(rp-address-popover, rp-address-popover-sum="effect.straightPrice") {{effect.straightPrice | rpamount:{abs_precision: 6} }} + span {{ effect.gets | rpcurrency }} + | per + span {{ effect.pays | rpcurrency }} + | ). span(l10n) This order has been filled. span(ng-switch-when="offer_partially_funded") span(ng-show="effect.sell", l10n, rp-span-spacing) You sold - span.amount(rp-pretty-amount-high-precision="effect.got", rp-address-popover, rp-address-popover-sum="effect.got") + span.amount(rp-pretty-amount-high-precision="effect.got") | for - span.amount(rp-pretty-amount-high-precision="effect.paid", rp-address-popover, rp-address-popover-sum="effect.paid") + span.amount(rp-pretty-amount-high-precision="effect.paid") + | ( + span(l10n-inc) price : + strong(rp-address-popover, rp-address-popover-sum="effect.invStraightPrice") {{effect.invStraightPrice | rpamount:{abs_precision: 6} }} + span {{ effect.paid | rpcurrency }} + | per + span {{ effect.got | rpcurrency }} + | ). span(ng-hide="effect.sell", l10n, rp-span-spacing) You bought - span.amount(rp-pretty-amount-high-precision="effect.paid", rp-address-popover, rp-address-popover-sum="effect.paid") + span.amount(rp-pretty-amount-high-precision="effect.paid") | for - span.amount(rp-pretty-amount-high-precision="effect.got", rp-address-popover, rp-address-popover-sum="effect.got") - | ( - span(l10n) price - span : - strong(rp-address-popover, rp-address-popover-sum="effect.price") {{effect.price | rpamount:{abs_precision: 4} }} - | ). + span.amount(rp-pretty-amount-high-precision="effect.got") + | ( + span(l10n-inc) price : + strong(rp-address-popover, rp-address-popover-sum="effect.straightPrice") {{effect.straightPrice | rpamount:{abs_precision: 6} }} + span {{ effect.got | rpcurrency }} + | per + span {{ effect.paid | rpcurrency }} + | ). span(ng-show="effect.cancelled", l10n) The rest of your order has been cancelled due to lack of funds. span(ng-hide="effect.deleted", l10n, rp-span-spacing) This order has - span(rp-pretty-amount-high-precision="effect.remaining", rp-address-popover, rp-address-popover-sum="effect.remaining") + span(rp-pretty-amount-high-precision="effect.remaining") | remaining. //- We don't show this if it's an offer_cancel transaction. //- Instead we show it if the order has been cancelled because of luck of //- funds by some other non related transaction. - span(ng-switch-when="offer_cancelled", l10n) Order ( - span.amount(rp-pretty-amount-high-precision="effect.pays", rp-address-popover, rp-address-popover-sum="effect.pays") - | for - span.amount(rp-pretty-amount-high-precision="effect.gets", rp-address-popover, rp-address-popover-sum="effect.gets") + span(ng-switch-when="offer_cancelled", l10n, rp-span-spacing) Order ( + span.amount(rp-pretty-amount-high-precision="effect.pays") + | for + span.amount(rp-pretty-amount-high-precision="effect.gets") | ) has been cancelled due to lack of funds. span(ng-switch-when="offer_created") span(ng-show="effect.sell", l10n, rp-span-spacing) You created an order to sell - span.amount(rp-pretty-amount-high-precision="effect.pays", rp-address-popover, rp-address-popover-sum="effect.pays") + span.amount(rp-pretty-amount-high-precision="effect.pays") | for - span.amount(rp-pretty-amount-high-precision="effect.pays", rp-address-popover, rp-address-popover-sum="effect.pays") + span.amount(rp-pretty-amount-high-precision="effect.pays") span(ng-hide="effect.sell", l10n, rp-span-spacing) You created an order to buy - span.amount(rp-pretty-amount-high-precision="effect.pays", rp-address-popover, rp-address-popover-sum="effect.pays") + span.amount(rp-pretty-amount-high-precision="effect.pays") | for - span.amount(rp-pretty-amount-high-precision="effect.pays", rp-address-popover, rp-address-popover-sum="effect.pays") - span(ng-switch-when="offer_bought", l10n, rp-span-spacing) You bought - span.amount(rp-pretty-amount-high-precision="effect.got", rp-address-popover, rp-address-popover-sum="effect.got") - | for - span.amount(rp-pretty-amount-high-precision="effect.paid", rp-address-popover, rp-address-popover-sum="effect.paid") - | ( - span(l10n-inc) price - span : - strong(rp-address-popover, rp-address-popover-sum="effect.price") {{effect.price | rpamount:{abs_precision: 6} }} - | ). - + span.amount(rp-pretty-amount-high-precision="effect.pays") + span(ng-switch-when="offer_bought",) + span(ng-hide="entry.transaction.sell", l10n, rp-span-spacing) You bought + span.amount(rp-pretty-amount-high-precision="effect.got") + | for + span.amount(rp-pretty-amount-high-precision="effect.paid") + | ( + span(l10n-inc) price : + strong(rp-address-popover, rp-address-popover-sum="effect.invStraightPrice") {{effect.invStraightPrice | rpamount:{abs_precision: 6} }} + span {{ effect.paid | rpcurrency }} + | per + span {{ effect.got | rpcurrency }} + | ). + span(ng-show="entry.transaction.sell", l10n, rp-span-spacing) You sold + span.amount(rp-pretty-amount-high-precision="effect.paid") + | for + span.amount(rp-pretty-amount-high-precision="effect.got") + | ( + span(l10n-inc) price : + strong(rp-address-popover, rp-address-popover-sum="effect.straightPrice") {{effect.straightPrice | rpamount:{abs_precision: 6} }} + span {{ effect.got | rpcurrency }} + | per + span {{ effect.paid | rpcurrency }} + | ). span(ng-switch-when="trust_create_local", l10n) You have now connected to the gateway span(rp-pretty-identity="effect.counterparty", rp-address-popover="effect.counterparty") span(l10n-inc) for - span(rp-pretty-amount="effect.limit", rp-address-popover, rp-address-popover-sum="effect.limit") + span(rp-pretty-amount="effect.limit") | . span(ng-switch-when="trust_create_remote", l10n, rp-span-spacing) span(rp-pretty-identity="effect.counterparty", rp-address-popover="effect.counterparty") | is trusting you for - span(rp-pretty-amount="effect.limit", rp-address-popover, rp-address-popover-sum="effect.limit") + span(rp-pretty-amount="effect.limit") | . span(ng-switch-when="trust_change_local", l10n, rp-span-spacing) | You have changed @@ -93,9 +124,9 @@ ul.effects(ng-show="entry.effects") | Trust balance between you and span(rp-pretty-identity="effect.counterparty", rp-address-popover="effect.counterparty") | has been changed by - span(rp-pretty-amount="effect.amount", rp-address-popover, rp-address-popover-sum="effect.amount") + span(rp-pretty-amount="effect.amount") | . span(ng-switch-when="balance_change", l10n, rp-span-spacing) Your balance has been changed by - span(rp-pretty-amount="effect.amount", rp-address-popover, rp-address-popover-sum="effect.amount") + span(rp-pretty-amount="effect.amount") | . diff --git a/src/jade/tabs/jpy.jade b/src/templates/tabs/jpy.jade similarity index 78% rename from src/jade/tabs/jpy.jade rename to src/templates/tabs/jpy.jade index 20b65cb9e..c6e368b8b 100644 --- a/src/jade/tabs/jpy.jade +++ b/src/templates/tabs/jpy.jade @@ -3,12 +3,17 @@ section.col-xs-12.content(ng-controller='JpyCtrl') //- Disconnected group.disconnected(ng-hide='connected') - p.literal(l10n="err-you-must-be-online-to-see-this-screen", l10n) + p.literal(l10n="err-you-must-be-online-to-see-this-screen") | You have to be online to see this screen //- Funding div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded + include ../tabs/banner/unfunded + + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling .row(ng-show='connected') // Transaction errors coming from errors.js & transactionerror.jade @@ -23,7 +28,7 @@ section.col-xs-12.content(ng-controller='JpyCtrl') //- Generic non-tx related messages .col-sm-12(ng-show='notif !== "clear"', ng-hide='!notif') group.mode-granted.wide - group(ng-switch on="notif") + group(ng-switch="notif") group.result-error(ng-switch-when="error") h2.tx-status(l10n) There was an error while saving your changes. p(l10n) Please try again later. @@ -35,7 +40,7 @@ section.col-xs-12.content(ng-controller='JpyCtrl') a(href="https://ripple.com/wiki/Reserves", target="_blank") More information .col-sm-3 - include fund/menu + include ../tabs/fund/menu .col-sm-9.list(ng-show='debug') div This page is not available in debug mode .col-sm-9.list(ng-hide='debug') @@ -63,10 +68,10 @@ section.col-xs-12.content(ng-controller='JpyCtrl') .descriptor(ng-show="!jpyConnected", l10n) Ripple Trade has partnered with Tokyo JPY Issuer to provide easier access to JPY. Following this action will enable Tokyo JPY Issuer to hold JPY on your behalf. .row.fund-tab-description .col-xs-7.col-sm-5.col-md-4 - button.btn.btn-large(ng-show="!jpyConnected && !loading", type="submit", ng-click="save_account()", ng-disabled="!account.Balance") Add Tokyo JPY - button.btn.btn-large(ng-show="!jpyConnected && loading", type="submit", ng-disabled="loading") Adding... - button.btn.btn-large(ng-show="showInstructions && jpyConnected", type="submit", ng-click="toggle_instructions()", l10n) Hide instructions - button.btn.btn-large(ng-show="jpyConnected && !showInstructions", type="submit", ng-click="toggle_instructions()", l10n) Show instructions + button.btn.btn-large.btn-primary(ng-show="!jpyConnected && !loading && loadState.account", type="submit", ng-click="save_account()", ng-disabled="!account.Balance || !can_add_trust", l10n) Add Tokyo JPY + button.btn.btn-large.btn-primary(ng-show="!jpyConnected && loading", type="submit", ng-disabled="loading", l10n) Adding... + button.btn.btn-large.btn-primary(ng-show="showInstructions && jpyConnected", type="submit", ng-click="toggle_instructions()", l10n) Hide instructions + button.btn.btn-large.btn-primary(ng-show="jpyConnected && !showInstructions", type="submit", ng-click="toggle_instructions()", l10n) Show instructions .connect.col-xs-5.col-sm-7.col-md-8(ng-hide="loading") .description(ng-show="!jpyConnected && account.Balance", l10n) @@ -75,7 +80,10 @@ section.col-xs-12.content(ng-controller='JpyCtrl') .description(ng-show="jpyConnected && account.Balance", l10n) i.fa.fa-check | Connected - .description(ng-show="!account.Balance", l10n) Your account has to be activated before you can add a gateway account. + .description(ng-show="!account.Balance && loadState.account", l10n) Your account has to be activated before you can add a gateway account. + .description(ng-show="!loadState.account") + img(src="img/button-s.png", class="loader") + span(class="loading_text", l10n) Loading... .row(ng-show="showInstructions && jpyConnected") .instructions.col-md-10 a.dismiss(href="", id="hide", ng-click="toggle_instructions()", l10n) × diff --git a/src/templates/tabs/login.jade b/src/templates/tabs/login.jade new file mode 100644 index 000000000..16db571c3 --- /dev/null +++ b/src/templates/tabs/login.jade @@ -0,0 +1,85 @@ +section.col-xs-12.content(ng-controller="LoginCtrl") + include ../tabs/banner/announcement + .row.auth-form-container(ng-hide="$routeParams.to") + .col-xs-12.hidden-xs + .welcomeText(l10n) Welcome to Ripple Trade + hr + p.heroText(l10n) Trade hundreds of assets, from XRP to crypto to gold to fiat. + .auth-form-wrapper.col-xs-12.col-sm-6.col-md-4 + .loginOverlay(ng-show='loggingIn') + img.loader(src='img/main.png', alt='', title='') + .text-status(ng-show='status') + span.loggingIn(ng-bind="status") + br + .backend.error(ng-repeat="message in backendMessages") + span.error(ng-bind="message") + form(name='loginForm' action='{{authAction}}') + .submit-btn-container + button.btn.btn-submit.btn-block.btn-success#loginBtn(type="submit" ng-click="submitForm('login')") + span(l10n) Sign In + input(name='redirect_to', type='hidden', value='{{redirectTo}}') + + .row.action-login(ng-if="$routeParams.to") + .col-xs-12.col-sm-6.col-md-6.uri-form-container + div.info(ng-show="'send' == $route.current.tabName") + p.literal(ng-bind="$routeParams.label") + div(ng-hide="$routeParams.amount", l10n) + p(l10n-inc) You're sending money to + .address {{ $routeParams.to | rpripplenamefull:{tilde:true} }} + | . + div(ng-show="$routeParams.amount", l10n) + p(l10n-inc) You're sending + .amount(ng-show="$routeParams.amount") + span.number {{$routeParams.amount | rpamount:{xrp_human: true} }} + span.currency {{$routeParams.amount | rpcurrency}} + p(l10n-inc) to + .address {{ $routeParams.to | rpripplenamefull:{tilde:true} }} + | . + p(l10n-inc) Log in to your Ripple Trade account to continue. You + | will be able to confirm this transaction on the next page. + div.info(ng-show="'trust' == $route.current.tabName") + p.literal {{$routeParams.label}} + div(l10n) + p(l10n-inc) You're connecting to the gateway + .address {{ $routeParams.to | rpripplenamefull:{tilde:true} }} + div(ng-show="$routeParams.currency", l10n-inc) + | for + .amount + span.currency(ng-bind="$routeParams.currency") + div(ng-show="$routeParams.amount", l10n-inc) + | with a limit of + .amount + span.currency {{$routeParams.amount | rpamount}} {{$routeParams.amount | rpcurrency}} + | . + p(l10n-inc) Log in to your Ripple Trade account to continue. You + | will be able to confirm this transaction on the next page. + + div.info(ng-show="'contacts' == $route.current.tabName") + p.literal(ng-bind="$routeParams.label") + span(l10n) + p(l10n-inc) You're adding + .address {{ $routeParams.to | rpripplenamefull:{tilde:true} }} + p(l10n-inc) to your contacts list + p(l10n-inc) Log in to your Ripple Trade account to continue. You + | will be able to confirm this transaction on the next page. + + + .col-xs-12.col-sm-6.col-md-5.col-lg-4.col-lg-offset-1.auth-form-container + .auth-form-wrapper + form(name='loginForm', ng-submit='submitForm()') + .loginWrapper + h2.loginTop(l10n) Log In + include ../tabs/login/form + .row + .col-xs-12.text-status(ng-show='status') + span(ng-bind="status") + br + .backend(ng-repeat="message in backendMessages") + span(ng-bind="message") + .row + .col-xs-12 + button.btn.btn-lg.btn-submit.btn-block.btn-primary(type='submit', ng-disabled="loginForm.$invalid || ajax_loading", l10n) + img(src="img/button-s.png", class="loader", ng-show="ajax_loading") + | Log In + p.literal.landing(l10n) New to {{productName}}? + a(href='#/register', l10n-inc) Create an account diff --git a/src/jade/tabs/login/form.jade b/src/templates/tabs/login/form.jade similarity index 94% rename from src/jade/tabs/login/form.jade rename to src/templates/tabs/login/form.jade index d6d5ba308..d44809cba 100644 --- a/src/jade/tabs/login/form.jade +++ b/src/templates/tabs/login/form.jade @@ -4,7 +4,7 @@ .input-group span.input-group-addon.ripple-addon ~ input.form-control#login_username(name='login_username', type='text', ng-model='username', required, - rp-focus-on-empty, rp-autofill='$routeParams.username') + rp-focus-on-empty, rp-autofill='$routeParams.username', ng-disabled="ajax_loading") .form-group(ng-hide="twoFactor || 'verifying' === verifyStatus") label(for='login_password', l10n) Password input.form-control#login_password(name='login_password', type='password', ng-model='password', required, rp-focus) diff --git a/src/templates/tabs/logout.jade b/src/templates/tabs/logout.jade new file mode 100644 index 000000000..316069328 --- /dev/null +++ b/src/templates/tabs/logout.jade @@ -0,0 +1 @@ +section.col-xs-12.content(ng-controller="LogoutCtrl") diff --git a/src/jade/tabs/mxn.jade b/src/templates/tabs/mxn.jade similarity index 78% rename from src/jade/tabs/mxn.jade rename to src/templates/tabs/mxn.jade index 14c79d5b8..2c40097c1 100644 --- a/src/jade/tabs/mxn.jade +++ b/src/templates/tabs/mxn.jade @@ -3,12 +3,17 @@ section.col-xs-12.content(ng-controller='MxnCtrl') //- Disconnected group.disconnected(ng-hide='connected') - p.literal(l10n="err-you-must-be-online-to-see-this-screen", l10n) + p.literal(l10n="err-you-must-be-online-to-see-this-screen") | You have to be online to see this screen //- Funding div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded + include ../tabs/banner/unfunded + + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling .row(ng-show='connected') // Transaction errors coming from errors.js & transactionerror.jade @@ -23,7 +28,7 @@ section.col-xs-12.content(ng-controller='MxnCtrl') //- Generic non-tx related messages .col-sm-12(ng-show='notif !== "clear"', ng-hide='!notif') group.mode-granted.wide - group(ng-switch on="notif") + group(ng-switch="notif") group.result-error(ng-switch-when="error") h2.tx-status(l10n) There was an error while saving your changes. p(l10n) Please try again later. @@ -35,7 +40,7 @@ section.col-xs-12.content(ng-controller='MxnCtrl') a(href="https://ripple.com/wiki/Reserves", target="_blank") More information .col-sm-3 - include fund/menu + include ../tabs/fund/menu .col-sm-9.list(ng-show='debug') div This page is not available in debug mode .col-sm-9.list(ng-hide='debug') @@ -65,10 +70,10 @@ section.col-xs-12.content(ng-controller='MxnCtrl') .row.fund-tab-description .col-xs-7.col-sm-5.col-md-4 - button.btn.btn-large(ng-show="!mxnConnected && !loading", type="submit", ng-click="save_account()", ng-disabled="!account.Balance") Add Bitso - button.btn.btn-large(ng-show="!mxnConnected && loading", type="submit", ng-disabled="loading") Adding... - button.btn.btn-large(ng-show="showInstructions && mxnConnected", type="submit", ng-click="toggle_instructions()") Hide instructions - button.btn.btn-large(ng-show="mxnConnected && !showInstructions", type="submit", ng-click="toggle_instructions()") Show instructions + button.btn.btn-large.btn-primary(ng-show="!mxnConnected && !loading && loadState.account", type="submit", ng-click="save_account()", ng-disabled="!account.Balance || !can_add_trust", l10n) Add Bitso + button.btn.btn-large.btn-primary(ng-show="!mxnConnected && loading", type="submit", ng-disabled="loading", l10n) Adding... + button.btn.btn-large.btn-primary(ng-show="showInstructions && mxnConnected", type="submit", ng-click="toggle_instructions()", l10n) Hide instructions + button.btn.btn-large.btn-primary(ng-show="mxnConnected && !showInstructions", type="submit", ng-click="toggle_instructions()", l10n) Show instructions .connect.col-xs-5.col-sm-7.col-md-8(ng-hide="loading") .description(ng-show="!mxnConnected && account.Balance", l10n) @@ -77,7 +82,10 @@ section.col-xs-12.content(ng-controller='MxnCtrl') .description(ng-show="mxnConnected && account.Balance", l10n) i.fa.fa-check | Connected - .description(ng-show="!account.Balance", l10n) Your account has to be activated before you can add a gateway account. + .description(ng-show="!account.Balance && loadState.account", l10n) Your account has to be activated before you can add a gateway account. + .description(ng-show="!loadState.account") + img(src="img/button-s.png", class="loader") + span(class="loading_text", l10n) Loading... .row(ng-show="showInstructions && mxnConnected") .instructions.col-md-10 a.dismiss#hide(href="", ng-click="toggle_instructions()", l10n) × diff --git a/src/templates/tabs/notifications.jade b/src/templates/tabs/notifications.jade new file mode 100644 index 000000000..650d22ca4 --- /dev/null +++ b/src/templates/tabs/notifications.jade @@ -0,0 +1,58 @@ +section.col-xs-12.content(ng-controller="NotificationsCtrl") + .row(ng-show='connected') + div.col-xs-12(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") + include ../tabs/banner/unfunded + .row(ng-show='connected') + .col-sm-12.notification-wrapper + .alert.alert-success(ng-show="state.alert == 'saved_successfully'", l10n) Your notification settings have been changed successfully. + .alert.alert-danger(ng-show="state.alert == 'saved_with_errors'", l10n) Something went wrong, please try again later. + .col-sm-4.col-md-3.col-xs-12(ng-show="connected") + include ../tabs/settings/navbar + .col-sm-8.col-md-9.col-xs-12.list(ng-show="connected") + .showSecurity(ng-show="settingsPage == 'notifications'") + div + h4(l10n) Notifications settings + .row + .col-xs-4.col-sm-3.col-md-5 + .descriptor(l10n) Notification types + .col-xs-4.col-sm-2.col-md-2 + .descriptor(l10n) Email + .col-xs-4.col-sm-2.col-md-2 + .descriptor(l10n) Push + .row + .col-xs-12 + div.helperInput + form(name="persistNotificationsForm", ng-submit="persistNotifications()") + ng-form(name="serverForm") + .row(class="edit-all") + .col-xs-4.col-sm-4.col-md-5 + .description Enable/disable all + .col-xs-4.col-sm-2.col-md-2 + div.helperInput.description + label + input(type="checkbox", name="all", ng-checked="allChecked('email')", ng-click="allClicked('email')") + .col-xs-4.col-sm-2.col-md-2 + div.helperInput.description + label + input(type="checkbox", name="all", ng-checked="allChecked('push')", ng-click="allClicked('push')") + + .row(ng-repeat="nType in notificationTypes") + .col-xs-4.col-sm-4.col-md-5 + .description {{nType.title}} + .col-xs-4.col-sm-2.col-md-2 + div.helperInput.description + label + input(type="checkbox", name="{{nType.name}}", ng-model="nType.checked.email", ng-click="state.notificationsChanged = true") + .col-xs-4.col-sm-2.col-md-2 + div.helperInput.description + label + input(type="checkbox", name="{{nType.name}}", ng-model="nType.checked.push", ng-click="state.notificationsChanged = true") + .row + .col-xs-12.col-sm-4.col-md-4.save-btn-wrapper + .description + button.btn.btn-block.btn-success.btn-xs.submit(id='save', type='submit' + ng-disabled='!state.notificationsChanged || !serverForm.$valid || state.waitingForResponse', + l10n) Save + .row + .col-xs-12.col-sm-4.col-md-4.save-btn-wrapper + .description diff --git a/src/jade/tabs/privacypolicy.jade b/src/templates/tabs/privacypolicy.jade similarity index 84% rename from src/jade/tabs/privacypolicy.jade rename to src/templates/tabs/privacypolicy.jade index a1d749d0b..9ea5430b7 100644 --- a/src/jade/tabs/privacypolicy.jade +++ b/src/templates/tabs/privacypolicy.jade @@ -2,21 +2,22 @@ section.content(ng-controller="PrivacypolicyCtrl") header h2 Ripple Trade Privacy Policy hr - p Last Updated: October 23, 2014 - p This Privacy Policy explains how information about you is collected, used and disclosed by XRP II, + p Last Updated: June 30, 2015 + p This Privacy Policy explains how information about you is collected, used and disclosed by Ripple Trade, | LLC (“Company,” “we” or “us”). This Privacy Policy - | applies to information we collect when you use our website (www.rippletrade.com) - | and the online services made available via our website (collectively, - | “Ripple Trade”). Ripple Trade allows you to interact directly with the decentralized + | applies to information we collect when you use our websites (www.rippletrade.com and www.id.ripple.com) + | and the online services made available via our websites (collectively, “Ripple Trade”). Ripple Trade allows you to interact directly with the decentralized | Ripple transaction protocol payment network (“Ripple Protocol”) to create a - | Ripple Protocol wallet (“Ripple Wallet”) + | Ripple Protocol wallet (“Ripple Wallet”). For your information, www.id.ripple.com is an interface + | through which we collect your personally identifiable information (“PII”) for the purpose of identity verification. + p We may change this Privacy Policy from time to time. If we make changes, we will notify you by revising the date | at the top of the policy and, in some cases, we may provide you with additional notice (such as by | adding a statement to the homepage of our website or by sending you a notification). br h4 Collection of Information p Information You Provide to Us - p The information you provide via Ripple Trade is stored in a hosted data storage service + p The information you provide to us is stored in a hosted data storage service | (“Blobvault”). The Blobvault has three separate components: p (1) a public storage component, which contains the Ripple name you create when setting up a Ripple | Wallet via Ripple Trade; @@ -25,15 +26,15 @@ section.content(ng-controller="PrivacypolicyCtrl") p (3) an ID storage component, which includes contact and other identifiable information you provide about yourself | via Ripple Trade, including the email address you provide when first setting up a Ripple Wallet and any | information you submit for identity verification purposes. - p Information We Collect Automatically via Ripple Trade - p When you use Ripple Trade, we automatically collect information about you, including: + p Information We Collect Automatically + p When you use our service, we automatically collect information about you, including: li Log Information: We collect log files that contain the type of browser you use, access times, pages | viewed, your IP address and the page you visited before navigating to our websites. br li Information Collected by Cookies and Other Tracking Technologies: We and our service providers use | various technologies to collect information about you when you use Ripple Trade, including cookies. Cookies are small | data files stored on your hard drive or in device memory. For information about how to disable cookies, please see “Your - | Choices” below. Through these technologies, we may collect information about your interactions with Ripple Trade, + | Choices” below. Through these technologies, we may collect information about your interactions with us, | including Ripple Protocol transactions you submit via Ripple Trade. For instance, we may collect the currency | involved in a transaction, the time and date of a transaction, your approximate location based on your IP address at the | time of a transaction and other related information. @@ -43,13 +44,13 @@ section.content(ng-controller="PrivacypolicyCtrl") | public storage component and the private key is automatically added to the Blobvault restricted storage component. br p Information We Collect From Other Sources - p We may also obtain information from other sources and combine that with information we collect through Ripple Trade. + p We may also obtain information from other sources and combine that with information you enter on www.rippletrade.com or www.id.ripple.com. | For instance, when you submit information for identity verification purposes, we may receive information about you from | our fraud prevention service providers, including information about you and the results of any identity verification check. br h4 Use of Information p We may use information about you for various purposes, including to: - li Provide, maintain and improve Ripple Trade; + li Provide, maintain and improve our services; br li Provide and deliver the services you request, facilitate Ripple Protocol transactions and send you related | information, including confirmations and informational notifications; @@ -63,7 +64,7 @@ section.content(ng-controller="PrivacypolicyCtrl") li Communicate with you about products, services, offers, promotions, rewards, and events offered by Company and others, | and provide news and information we think will be of interest to you; br - li Analyze Ripple Trade trends and usage; + li Analyze Company services trends and usage; br li Process and deliver contest entries and rewards; br @@ -79,7 +80,7 @@ section.content(ng-controller="PrivacypolicyCtrl") | Ripple Protocol public ledger; and br li At your direction, we will share information from the Blobvault ID storage component with other parties. For instance, - | you may direct us to send this information to a Ripple Protocol gateway or other third-party service accessible via Ripple Trade. + | you may direct us to send this information to a Ripple Protocol gateway or other third-party service. | Use of your information by these third parties will be subject to their privacy policies. br p Other Important Sharing @@ -96,13 +97,13 @@ section.content(ng-controller="PrivacypolicyCtrl") li In connection with, or during negotiations of, any merger, sale of company assets, financing or acquisition of all | or a portion of our business to another company; and br - li With your consent or at your direction, including if we notify you through Ripple Trade that the information you + li With your consent or at your direction, including if we notify you that the information you | provide will be shared in a particular manner and you provide such information. p We may also share aggregated or de-identified information, which cannot reasonably be used to identify you. br h4 Your Choices p Blobvault Data - p You may correct or delete information maintained in the Blobvault ID storage component at any time by logging into + p You may correct or delete certain information maintained in the Blobvault ID storage component at any time by logging into | Ripple Trade. Please note that we may retain deleted information to comply with applicable laws and for our | legitimate business purposes. p Promotional Communications @@ -111,7 +112,7 @@ section.content(ng-controller="PrivacypolicyCtrl") p Cookies p Most web browsers are set to accept cookies by default. If you prefer, you can usually choose to set your browser to | remove or reject browser cookies. Please note that if you choose to remove or reject cookies, this could affect - | the availability and functionality of Ripple Trade. + | the availability and functionality of our services. br h4 Contact Us p If you have any questions about this Privacy Policy, please contact us at support@ripple.com. diff --git a/src/templates/tabs/security.jade b/src/templates/tabs/security.jade new file mode 100644 index 000000000..a2ffba5aa --- /dev/null +++ b/src/templates/tabs/security.jade @@ -0,0 +1,84 @@ +section.col-xs-12.content(ng-controller="SecurityCtrl") + div(ng-show='debug') This page is not available in debug mode + + .row(ng-show='!debug') + .col-xs-12(ng-hide="isUnlocked") + .auth-attention.sessionUnlock + h5(l10n) Active Session Timeout + .status(l10n) To view or edit your security settings, you must currently have an active session. + .row + .col-xs-12.col-sm-5 + form(ng-submit="restoreSession()") + label(for="sessionPassword", l10n) Password + input.form-control#sessionPassword(type="password", + name="sessionPassword", ng-model="sessionPassword", rp-focus) + button.btn.btn-primary.btn-block(type="submit", ng-disabled="isConfirming") + img(src="img/button-s.png", class="loader", ng-show="isConfirming") + span(l10n) Restore Session + .alert.alert-danger(ng-show="unlockError") + span(l10n) Entered password is wrong. + div.col-xs-12(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") + include ../tabs/banner/unfunded + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling + .col-sm-12.notification-wrapper + .alert.alert-danger(ng-show="errorSetPasswordProtection") Error saving password protection settings. + .alert.alert-success(ng-show="success.enableRequirePassword", l10n) Password protection has been successfully enabled. + .alert.alert-success(ng-show="success.disableRequirePassword", l10n) Password protection has been successfully disabled. + .col-sm-4.col-md-3.col-xs-12(ng-show="isUnlocked") + include ../tabs/settings/navbar + .col-sm-8.col-md-9.col-xs-12.list(ng-show="isUnlocked") + .show-security(ng-show="settingsPage == 'security'") + div + h4(l10n) Security settings + .section + .descriptor(l10n) Identity Verification + .row + label(l10n) Ripple Trade will verify you by matching information from your + | online account to an official ID or through third party agents.  + a(href="https://ripple.com/knowledge_center/ripple-trade-launches-identity-verification", target="_blank", l10n) Learn more. + .row.row-padding-small-xs + .col-xs-0.col-sm-4.col-md-6 + .col-xs-12.col-sm-8.col-md-6.save-btn-wrapper + .description + a.btn.btn-block.btn-success.btn-xs.submit(href="{{globalOptions.ids_url}}/identity", + target="_blank", l10n) Verify or Check Status of Identity + .section + .descriptor(l10n) Security settings + .row + label(l10n) You can now manage your security settings such as secret key, + | password, and two-factor authentication by clicking edit. + .row.row-padding-small-xs + .col-xs-9.col-sm-8.col-md-8 + .col-xs-3.col-sm-4.col-md-4 + a.btn.btn-cancel.btn-block(href="{{globalOptions.ids_url}}/identity", target="_blank", l10n) edit + .section + .descriptor(l10n) Password protection for transactions + .row.row-padding-small-xs + .col-xs-12 + .description(l10n) If you turn off password requests, you’ll still need to enter your password after each page refresh. + div.helperInput + form(name="persistUnlock", ng-submit="setPasswordProtection()") + .row(ng-hide="editUnlock") + .col-xs-6.col-sm-5.col-md-4 + .description Require password + .col-xs-3.col-sm-3.col-md-4 + div.description + div(ng-show="requirePassword", l10n) Yes + div(ng-hide="requirePassword", l10n) No + .col-xs-3.col-sm-4.col-md-4 + div + a.btn.btn-cancel.btn-block#edit(href="", ng-click="editUnlock = true", l10n) edit + .row.edit-security-pswd(ng-show="editUnlock") + .col-xs-6.col-sm-5.col-md-4 + .description Require password + .col-xs-6.col-sm-3.col-md-2 + div.helperInput.description + label + input(type="checkbox", name="unlock", ng-checked='requirePassword', ng-click="requirePasswordChanged = true") + .col-xs-12.col-sm-4.col-md-4.save-btn-wrapper + .description + button.btn.btn-block.btn-success.btn-xs.submit#save(type='submit' + ng-disabled='serverForm.$invalid', l10n) Save \ No newline at end of file diff --git a/src/jade/tabs/send.jade b/src/templates/tabs/send.jade similarity index 68% rename from src/jade/tabs/send.jade rename to src/templates/tabs/send.jade index add40dff6..af58cae1a 100644 --- a/src/jade/tabs/send.jade +++ b/src/templates/tabs/send.jade @@ -3,19 +3,28 @@ section.col-xs-12.content(ng-controller='SendCtrl') //- Disconnected group.disconnected(ng-hide='connected') - p.literal(l10n="err-you-must-be-online-to-see-this-screen", l10n) You have to be online to see this screen + p.literal(l10n="err-you-must-be-online-to-see-this-screen") You have to be online to see this screen + + group.disconnected(ng-hide="!connected || loadState.account") + div(id="section_loader") + img(src="img/sections.png", class="loader") + div(class="loading_sections", l10n) Loading... //- Account is unfunded div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded - p.literal(l10n="err-you-must-be-funded-before-you-can-send-money", l10n) You have to be funded before you can send money + include ../tabs/banner/unfunded + p.literal(l10n="err-you-must-be-funded-before-you-can-send-money") You have to be funded before you can send money + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling div(ng-show='debug') This page is not available in debug mode - .row(ng-show='connected && !debug') + .row(ng-show='connected && !debug && account.Balance') .widgets.hidden-xs.col-sm-4.col-md-4.col-lg-3 - include widgets/balances + include ../tabs/widgets/balances .col-xs-12.col-sm-8.col-md-8.col-lg-9 //- 1. Send form @@ -23,38 +32,37 @@ section.col-xs-12.content(ng-controller='SendCtrl') ng-show='mode=="form" && account.Balance' ng-submit='send_prepared()') .row.form-group - .col-xs-12.col-sm-8.col-md-6 + .col-xs-12.col-sm-9.col-md-9 label(for='send_destination', l10n) Recipient input.form-control#send_destination( name='send_destination', type='text' rp-combobox="recipient_query", rp-combobox-value-as-ripple-name l10n-placeholder="Enter a Ripple name or contact" - ng-model='send.recipient' - rp-dest, rp-dest-address, rp-dest-contact, rp-dest-bitcoin - rp-dest-email, rp-dest-ripple-name, rp-dest-loading="recipient_loading" + ng-model='send.recipient', ng-model-options='{debounce: 500}' + rp-dest, rp-dest-address, rp-dest-contact + rp-dest-email, rp-dest-ripple-name required rp-autofill='$routeParams.to' - rp-focus, rp-spinner="{{recipient_loading ? 4 : null}}") - .errorGroup(rp-errors='send_destination') - .success(rp-error-valid ng-show='send.recipient != send.recipient_address') - | {{send.recipient_address}} - .error(rp-error-on='required', l10n) + rp-focus, rp-spinner) + .errorGroup(ng-messages='sendForm.send_destination.$dirty && sendForm.send_destination.$error') + .success(ng-show='sendForm.send_destination.$valid && send.recipient != send.recipient_address', ng-bind='send.recipient_address') + .error(ng-message='required', l10n) | Please enter a recipient. - .error(rp-error-on='rpDest', l10n) - | Recipient should be a Ripple name, a contact, or Ripple/Bitcoin address. - .error(rp-error-on='federation', l10n) + .error(ng-message='rpDest', l10n) + | Recipient should be a Ripple name, a contact, or Ripple address. + .error(ng-message='federation', l10n) | This email address is not Ripple-enabled. - .error(rp-error-on='federationDown', l10n) + .error(ng-message='federationDown', l10n) | Could not contact {{send.federationURL}}.
Please try again later or contact support. - .error(rp-error-on='btcBridgeWrong', l10n) - | Cannot use your specified bitcoin bridge. Please go to Settings > Advanced and update your bitcoin bridge URL to btc2ripple.com. + .error(ng-message='btcBridgeWrong', l10n) + | You cannot send to a BTC address. ul.tagsLinks li a(href="", ng-click="send.show_dt_field = true" ng-hide="send.show_dt_field || send.bitcoin || send.federation", l10n) | Show destination tag .row.form-group(ng-show='send.show_dt_field') - .col-xs-12.col-sm-8.col-md-6 + .col-xs-12.col-sm-9.col-md-9 label(for='send_dt', l10n) Destination tag a(href="", ng-click="send.show_dt_field = false", l10n) hide input.form-control#send_dt( @@ -62,10 +70,10 @@ section.col-xs-12.content(ng-controller='SendCtrl') ng-model='send.dt' rp-stdt rp-autofill='$routeParams.dt' - ng-required="send.recipient_info.dest_tag_required") - .errorGroup(rp-errors='send_dt') - .error(rp-error-on='rpStdt', l10n) Invalid destination tag - .error(rp-error-on='required', l10n) Destination cannot be blank. + ng-required='send.recipient_info.dest_tag_required') + .errorGroup(ng-messages='sendForm.send_dt.$dirty && sendForm.send_dt.$error') + .error(ng-message='rpStdt', l10n) Invalid destination tag + .error(ng-message='required', l10n) Destination cannot be blank. div(ng-show="send.recipient_info.dest_tag_required", l10n) | This recipient requires a destination tag. Please contact the recipient | if you are unsure what the destination tag should be. @@ -77,8 +85,8 @@ section.col-xs-12.content(ng-controller='SendCtrl') ng-model='send.st' rp-stdt rp-autofill='$routeParams.st') - .errorGroup(rp-errors='send_st') - .error(rp-error-on='rpStdt', l10n) Invalid source tag + .errorGroup(ng-messages='sendForm.send_st.$error') + .error(ng-message='rpStdt', l10n) Invalid source tag .row.form-group(ng-show='$routeParams.invoiceid && !send.quote.invoice_id') .col-xs-12.col-sm-6.col-md-5 label(for='send_invoiceid', l10n) Invoice ID @@ -87,8 +95,8 @@ section.col-xs-12.content(ng-controller='SendCtrl') ng-model='send.invoice_id' rp-invoice-id rp-autofill='$routeParams.invoiceid') - .errorGroup(rp-errors='send_invoiceid') - .error(rp-error-on='rpInvoiceId', l10n) Invoice ID must not be more than 64 characters long. + .errorGroup(ng-messages='sendForm.send_invoiceid.$error') + .error(ng-message='rpInvoiceId', l10n) Invoice ID must not be more than 64 characters long. .row(ng-show="send.quote.invoice_id && $routeParams.invoiceid", l10n) div | The invoice ID from the quote will be used instead of the one specified in the URI. @@ -111,7 +119,7 @@ section.col-xs-12.content(ng-controller='SendCtrl') .form-group(ng-show="send.currency_choices.length") label(for='send_amount', l10n) Recipient will receive .row.amount(ng-if="!send.currency_force") - .col-xs-3.col-sm-3.col-md-3 + .col-xs-4.col-sm-3.col-md-3 input.form-control#send_amount( name='send_amount', type='text' ng-model='send.amount' @@ -123,7 +131,7 @@ section.col-xs-12.content(ng-controller='SendCtrl') rp-amount-xrp-limit rp-amount-currency='{{send.currency}}' rp-max-digits) - .col-xs-9.col-sm-6.col-md-4 + .col-xs-8.col-sm-6.col-md-6 input.form-control.currency#send_amount_currency( name='send_amount_currency', type='text' rp-combobox="{{send.currency_choices}}", rp-combobox-select @@ -147,32 +155,34 @@ section.col-xs-12.content(ng-controller='SendCtrl') rp-amount-currency='{{send.currency}}' rp-max-digits) span.input-group-addon(ng-bind="send.currency_force") - .errorGroup(rp-errors='send_amount_currency') - .error(rp-error-on='rpRestrictCurrencies', l10n) {{send.recipient | rpcontactname}} can't receive this currency. - .errorGroup(rp-errors='send_amount') - .error(rp-error-on='required', l10n) Please enter an amount. - .error(rp-error-on='rpAmount', l10n) Not a valid amount. - .error(rp-error-on='rpAmountPositive', l10n) Amount must be greater than zero. - .error(rp-error-on='rpAmountXrpLimit', l10n) + .row(ng-if="send.currencyIsBTC") + .col-xs-12.col-sm-6.col-md-6 + .alert.alert-warning(l10n) + | The minimum BTC transaction size is .001 BTC. + a(href="https://b2r.uservoice.com/knowledgebase/articles/393152-is-there-a-minimum-transaction-size", target="_blank", l10n-inc) More info + .errorGroup(ng-messages='sendForm.send_amount_currency.$error') + .error(ng-message='rpRestrictCurrencies', l10n) {{send.recipient | rpcontactname}} can't receive this currency. + .errorGroup(ng-messages='sendForm.send_amount.$dirty && sendForm.send_amount.$error') + .error(ng-message='required', l10n) Please enter an amount. + .error(ng-message='rpAmount', l10n) Not a valid amount. + .error(ng-message='rpAmountPositive', l10n) Amount must be greater than zero. + .error(ng-message='rpAmountXrpLimit', l10n) | You are either trying to send too little or too much XRP. | Minimum amount is 0.000001 XRP and maximum amount is 100 billion XRP. - .error(rp-error-on='rpMaxDigits', l10n) Your amount has too many digits. The max number of digits is 16. - .error(ng-show="send.recipient_info.disallow_xrp && send.currency_code=='XRP'", l10n) + .error(ng-message='rpMaxDigits', l10n) Your amount has too many digits. The max number of digits is 16. + .notice(ng-show="send.recipient_info.disallow_xrp && send.currency_code=='XRP'", l10n) | Recipient does not allow XRP payments. Are you sure you want to send XRP anyway? .notice(ng-show="send.trust_limit", l10n) {{send.recipient | rpcontactname}} | trusts you for {{send.trust_limit | rpamount}} {{send.trust_limit | rpcurrency}}. .row .col-xs-12.col-sm-6.col-md-4(ng-show="send.currency_code == 'XRP'") button#sendXrpButton.btn.btn-block.btn-success.submit(type='submit' - ng-disabled='sendForm.$invalid || send.self || !send.recipient_resolved || account.max_spend.to_number() < send.amount * 1000000', l10n) + ng-disabled='sendForm.$invalid || sendForm.$pending || send.self || send.insufficient || !send.recipient_resolved || account.max_spend.to_number() < send.amount * 1000000', l10n) | Send XRP .remote //- Messages p.literal(ng-show="send.fund_status == 'insufficient-xrp'", l10n) - | Destination account is unfunded; send at least - | {{send.xrp_deficiency | rpamount}} XRP to fund it. - a(href="https://ripple.com/wiki/Reserves", target="_blank", l10n) - | More information + | Insufficient amount. You need to send at least 20 XRP to fund the account. p.literal(ng-show="send.path_status == 'checking'") img(src="img/button-s.png", class="loader") span(class="loading_text", l10n) Checking @@ -227,10 +237,10 @@ section.col-xs-12.content(ng-controller='SendCtrl') rp-pretty-issuer-or-short) .ex ( span.rate {{alt.rate | rpamount:{rel_precision: 4} }} - span.pair {{send.currency_code}}/{{alt.amount | rpcurrency}} + span.pair {{alt.amount | rpcurrency}}/{{send.currency_code}} | ) button.btn.btn-block.btn-success(type="submit" - ng-disabled='sendForm.$invalid', ng-click="send.alt = alt", l10n) + ng-disabled='sendForm.$invalid || sendForm.$pending', ng-click="send.alt = alt", l10n) | Send {{ alt.amount | rpcurrency }} span(ng-hide="alt.amount.is_native() || alt.amount.issuer().to_json() == account.Account") ( span.issuer( @@ -239,8 +249,8 @@ section.col-xs-12.content(ng-controller='SendCtrl') rp-pretty-issuer-or-short) | ) .row.row-padding-small.pathupdate(ng-show="send.alternatives.length && lastUpdate") - .col-xs-12(l10n) Paths last updated - span {{lastUpdate}} + .col-xs-12(l10n) Paths last updated + span(ng-bind='lastUpdate') span(ng-show="lastUpdate > '1'", l10n-inc) seconds span(ng-show="lastUpdate == '1'", l10n-inc) second | ago @@ -259,31 +269,36 @@ section.col-xs-12.content(ng-controller='SendCtrl') span {{ (send.alt.amount || send.currency) | rpcurrency}} | to .dest_feedback - .recipient(ng-show='send.recipient_name') {{send.recipient_name}} - .recipient(ng-hide='send.recipient_name') {{send.recipient_address}} - .extra(href='', ng-show='send.recipient != send.recipient_address || send.recipient_name') - | {{send.recipient_address}} + .recipient(ng-show='send.recipient_name', ng-bind='send.recipient_name') + .recipient(ng-hide='send.recipient_name', ng-bind='send.recipient_address') + .extra(href='', ng-show='send.recipient != send.recipient_address || send.recipient_name', ng-bind='send.recipient_address') .dt(ng-show='send.dt', l10n) Destination tag: {{send.dt}} p.literal(l10n) They will receive p.amount_feedback(rp-pretty-amount='send.amount_feedback') group(ng-show='send.indirect') p.literal(l10n) You will pay at most p.sendmax_feedback - span.value {{send.alt.amount | rpamount}} + span.value {{send.alt.amount | rpamount}} span.currency {{send.alt.amount | rpcurrency}} - span + .1% - span.literal(l10n) Ripple network fee: - span.literal(rp-pretty-amount='networkFee') - form.call-to-action(ng-submit="send_confirmed()") + span + {{sendMaxDeviation}}% + p(ng-hide="!send.alt") + span.literal(l10n) Exchange rate: + span.value {{send.alt.rate | rpamount:{rel_precision: 4} }} + span.currency {{send.alt.amount | rpcurrency}} per {{send.currency_code}} + span.literal(l10n) Ripple network fee: + span.currency(rp-pretty-amount='networkFee') + form.call-to-action(name="sendUnlockForm", ng-submit="send_confirmed()") p.literal(ng-show="send.secret", l10n) Are you sure? p.literal(ng-hide="send.secret", l10n) Please enter your password to confirm this transaction. .row.row-padding-small(ng-if="!send.secret") .col-xs-12.col-sm-8.col-md-6 input.form-control#send_unlock_password( - name='send_unlock_password', type='password', required + name='send_unlock_password' + type='password' + required ng-model='send.unlock_password') - .errorGroup(rp-errors='send_unlock_password') - .error(rp-error-on='required', l10n) Password required to unlock wallet + .errorGroup(ng-messages='sendUnlockForm.send_unlock_password.$dirty && sendConfirmedForm.send_unlock_password.$error') + .error(ng-message='required', l10n) Password required to unlock wallet .row.row-padding-small .col-xs-8.col-sm-4.col-md-3.col-lg-3 button#confirmButton.btn.btn-block.btn-success.submit( @@ -322,9 +337,9 @@ section.col-xs-12.content(ng-controller='SendCtrl') form(name="saveAddressForm" ng-class="{ show: show_save_address_form }" ng-submit='saveAddress()') - .name(ng-show="send.federation") {{send.recipient}} - .address(ng-show="send.recipient_name") {{send.recipient_name}} - .address(ng-hide="send.recipient_name") {{send.recipient_address}} + .name(ng-show="send.federation", ng-bind="send.recipient") + .address(ng-show="send.recipient_name", ng-bind="send.recipient_name") + .address(ng-hide="send.recipient_name", ng-bind="send.recipient_address") label(for='save_address_name', l10n) Name this user input.form-control#contact_name( name='save_address_name', type="text" @@ -332,9 +347,9 @@ section.col-xs-12.content(ng-controller='SendCtrl') rp-unique='userBlob.data.contacts' rp-unique-field='name' rp-autofill='$routeParams.name') - .errorGroup(rp-errors='save_address_name') - .error(rp-error-on='required', l10n) Please enter a contact. - .error(rp-error-on='rpUnique', l10n, ng-hide="addressSaving || addressSaved") + .errorGroup(ng-messages='saveAddressForm.save_address_name.$dirty && saveAddressForm.save_address_name.$error') + .error(ng-message='required', l10n) Please enter a contact. + .error(ng-message='rpUnique', l10n, ng-hide="addressSaving || addressSaved") | This contact already exists, please choose another name. div button.btn.btn-success(type='submit', ng-disabled='addressSaving') @@ -360,28 +375,29 @@ section.col-xs-12.content(ng-controller='SendCtrl') | Add this address to contacts form(name="saveAddressForm", ng-class="{ show: show_save_address_form }" ng-submit='saveAddress()') - .name(ng-show="send.federation") {{send.recipient}} - .address(ng-show="send.recipient_name") {{send.recipient_name}} - .address(ng-hide="send.recipient_name") {{send.recipient_address}} - label(for='save_address_name', l10n) Name this user - input.form-control#contact_name( - name='save_address_name', type="text" - ng-model='saveAddressName', required - rp-unique='userBlob.data.contacts' - rp-unique-field='name' - rp-autofill='$routeParams.name') - .errorGroup(rp-errors='save_address_name') - .error(rp-error-on='required', l10n) Please enter a contact. - .error(rp-error-on='rpUnique', l10n, ng-hide="addressSaving || addressSaved") - | This contact already exists, please choose another name. - div.row.add-contact-btns-wrapper - div.col-md-3.col-sm-4.col-xs-8 - button.btn.btn-success.btn-block(type='submit' - ng-disabled='addressSaving || saveAddressForm.$invalid') - span(ng-show='addressSaving', l10n) Saving... - span(ng-hide='addressSaving', l10n) Save - div.col-md-1.col-sm-2.col-xs-4 - a.btn.btn-block(href="", ng-click='show_save_address_form = false', l10n) cancel + .form-wrapper + .name(ng-show="send.federation", ng-bind="send.recipient") + .address(ng-show="send.recipient_name", ng-bind="send.recipient_name") + .address(ng-hide="send.recipient_name", ng-bind="send.recipient_address") + label(for='save_address_name', l10n) Name this user + input.form-control#contact_name( + name='save_address_name', type="text" + ng-model='saveAddressName', required + rp-unique='userBlob.data.contacts' + rp-unique-field='name' + rp-autofill='$routeParams.name') + .errorGroup(ng-messages='saveAddressForm.save_address_name.$dirty && saveAddressForm.save_address_name.$error') + .error(ng-message='required', l10n) Please enter a contact. + .error(ng-message='rpUnique', l10n, ng-hide="addressSaving || addressSaved") + | This contact already exists, please choose another name. + div.row.add-contact-btns-wrapper.row-padding-small + div.col-xs-6.col-md-8 + button.btn.btn-success.btn-block(type='submit' + ng-disabled='addressSaving || saveAddressForm.$invalid') + span(ng-show='addressSaving', l10n) Saving... + span(ng-hide='addressSaving', l10n) Save + div.col-xs-6.col-md-4 + a.btn.btn-cancel(href="", ng-click='show_save_address_form = false', l10n) cancel hr div(class="actionLink") a(href="", ng-click="reset()", l10n) Send another payment diff --git a/src/templates/tabs/settings/navbar.jade b/src/templates/tabs/settings/navbar.jade new file mode 100644 index 000000000..a02412930 --- /dev/null +++ b/src/templates/tabs/settings/navbar.jade @@ -0,0 +1,6 @@ +.settingPage + a(href="#/security", ng-class="{active: $route.current.tabName == 'security'}", l10n) Security + a(href="#/settingstrade", ng-class="{active: $route.current.tabName == 'settingstrade'}", l10n) Trade + a(href="#/advanced", ng-class="{active: $route.current.tabName == 'advanced'}", l10n) Network and servers + a(href="#/settingsgateway", ng-class="{active: $route.current.tabName == 'settingsgateway'}", l10n) Gateways and trust lines + //- a(href="#/notifications", ng-class="{active: $route.current.tabName == 'notifications'}", l10n) Notifications diff --git a/src/templates/tabs/settingsgateway.jade b/src/templates/tabs/settingsgateway.jade new file mode 100644 index 000000000..8ec5e28f6 --- /dev/null +++ b/src/templates/tabs/settingsgateway.jade @@ -0,0 +1,92 @@ +section.col-xs-12.content(ng-controller="SettingsGatewayCtrl") + div(ng-show='debug') This page is not available in debug mode + + div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected && !debug") + include ../tabs/banner/unfunded + .row(ng-show='!debug') + .col-sm-12.notification-wrapper + .alert.alert-success(ng-show="success.bridge", l10n) Your bitcoin bridge has been changed successfully. + .alert.alert-success(ng-show="success.advanced_feature_switch", l10n) Trustline advanced settings have been changed successfully. + .alert.alert-info(ng-show="edit.defaultRippleFlagSaving", l10n) Updating DefaultRipple flag... + .alert.alert-success(ng-show="notif == 'defaultRippleUpdated'", l10n) DefaultRipple flag updated + .col-sm-3 + include ../tabs/settings/navbar + .col-sm-9.list + section.content#gateways + h4(l10n) Settings + //- mixin urlForm(urlType, formName, formDescriptor, description, inputName, hasDelete) + //- form(name=formName, ng-submit='save("'+urlType+'")') + //- .descriptor(l10n)= formDescriptor + //- .row.advanced-form-row(ng-hide='edit.'+urlType) + //- .col-xs-9.col-sm-8.col-md-6 + //- .description(l10n)= description.url + //- .col-xs-1 + //- .col-xs-3.col-sm-3.col-md-2 + //- a.btn.btn-block.btn-cancel(href="", ng-click='edit.'+urlType+' = true', l10n) edit + //- .row.row-padding-small.field-edit-row(ng-show='edit.'+urlType) + //- .col-xs-12.col-sm-9.col-md-6 + //- input.form-control( + //- class=inputName + //- id=inputName + //- name=inputName, type='text' + //- ng-model=description.ngModel + //- required) + //- .col-xs-6.col-sm-6.col-md-3 + //- button.btn.btn-block.btn-success.btn-xs.submit#save(type='submit', ng-disabled=formName+'.$invalid', l10n) Save + //- if hasDelete + //- .col-xs-3.col-sm-3.col-md-2 + //- button.btn.btn-block.btn-danger.btn-xs.submit#delete(type="button", ng-click='deleteUrl("'+urlType+'")', l10n) Delete + //- .col-xs-3.col-sm-3.col-md-1.text-center#cancel + //- a.btn.btn-cancel.btn-block(href="", ng-click='cancelEdit("'+urlType+'")', l10n) cancel + //- +urlForm('bridge', 'bridgeForm', 'Bitcoin bridge', {url: '{{options.bridge.out.bitcoin}}', ngModel: 'options.bridge.out.bitcoin'}, 'btcDomain', true) + + form.trust-line-form(name="accountsAdvForm", ng-submit='save("advanced_feature_switch")') + .descriptor(l10n) Trust line + .row.advanced-form-row(ng-hide="edit.advanced_feature_switch") + .col-xs-6.col-sm-5.col-md-3 + .description(l10n) Advanced settings + .col-xs-3.col-sm-4.col-md-4 + .description(ng-show="options.advanced_feature_switch", l10n) Show + .description(ng-hide="options.advanced_feature_switch", l10n) Hide + .col-xs-3.col-sm-3.col-md-2 + a.btn.btn-cancel.btn-block(href="", ng-click="edit.advanced_feature_switch = true", l10n) edit + .row.row-padding-small.edit-trust-line(ng-show="edit.advanced_feature_switch") + .col-xs-6.col-sm-5.col-md-3 + .description(l10n) Advanced settings + .col-xs-4.col-sm-4.col-md-3 + div.helperInput + label + input(type="checkbox", name="acct_adv" + ng-model="options.advanced_feature_switch") + span(l10n) Show + .col-xs-12.col-sm-4.col-md-4 + button.btn.btn-block.btn-success.btn-xs.submit#save(type='submit' + ng-disabled='serverForm.$invalid', l10n) Save + .col-xs-6(ng-show="hasRemove()") + button.btn.btn-block.btn-danger.btn-xs.submit#delete(type="button", ng-click="remove()", ng-show="hasRemove()", l10n) Delete + form.trust-line-form(name="accountsAdvForm", ng-submit='save("defaultRippleFlag")') + .descriptor(l10n) Gateways: Enable if you plan to issue balances + .row.advanced-form-row(ng-hide="edit.defaultRippleFlag") + .col-xs-6.col-sm-5.col-md-3 + .description(l10n) DefaultRipple flag + .col-xs-3.col-sm-4.col-md-4 + .description(ng-show="currentDefaultRipplingFlagSetting && !edit.defaultRippleFlagSaving", l10n) Enabled + .description(ng-hide="currentDefaultRipplingFlagSetting || edit.defaultRippleFlagSaving", l10n) Disabled + .description(ng-show="edit.defaultRippleFlagSaving") + img(src="img/button-s.png", class="loader") + .col-xs-3.col-sm-3.col-md-2 + a.btn.btn-cancel.btn-block(href="", ng-click="edit.defaultRippleFlag = true", ng-hide="edit.defaultRippleFlagSaving", l10n) edit + .row.row-padding-small.edit-trust-line(ng-show="edit.defaultRippleFlag") + .col-xs-6.col-sm-5.col-md-3 + .description(l10n) DefaultRipple flag + .col-xs-4.col-sm-4.col-md-3 + div.helperInput + label + input(type="checkbox", name="acct_adv" + ng-model="isDefaultRippleFlagEnabled") + span(l10n) Enable + .col-xs-12.col-sm-4.col-md-4 + button.btn.btn-block.btn-success.btn-xs.submit#save(type='submit' + ng-disabled='serverForm.$invalid', l10n) Save + .col-xs-3(ng-show="hasRemove()") + button.btn.btn-block.btn-danger.btn-xs.submit#delete(type="button", ng-click="remove()", ng-show="hasRemove()", l10n) Delete diff --git a/src/jade/tabs/settingstrade.jade b/src/templates/tabs/settingstrade.jade similarity index 69% rename from src/jade/tabs/settingstrade.jade rename to src/templates/tabs/settingstrade.jade index f3febd3cf..d18c2754d 100644 --- a/src/jade/tabs/settingstrade.jade +++ b/src/templates/tabs/settingstrade.jade @@ -2,11 +2,15 @@ section.col-xs-12.content(ng-controller="SettingsTradeCtrl") div(ng-show='debug') This page is not available in debug mode div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected && !debug") - include banner/unfunded - .row(ng-show='connected && !debug') + include ../tabs/banner/unfunded + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling + .row(ng-show='!debug') .col-sm-12 .col-sm-3 - include settings/navbar + include ../tabs/settings/navbar .col-sm-9.list section h4(l10n) Trade settings @@ -18,9 +22,9 @@ section.col-xs-12.content(ng-controller="SettingsTradeCtrl") | section. div(ng-if="pairs") div(as-sortable="dragControlListeners", ng-model="pairs") - div.pair(ng-repeat="entry in pairs", as-sortable-item) + div.pair(ng-repeat="entry in pairs track by entry.name", as-sortable-item) .col-xs-12(as-sortable-item-handle) i.grip - span.description {{entry.name}} + span.description(ng-bind="entry.name") a(href="", ng-click="deletePair($index)") span.delete remove diff --git a/src/jade/tabs/sgd.jade b/src/templates/tabs/sgd.jade similarity index 76% rename from src/jade/tabs/sgd.jade rename to src/templates/tabs/sgd.jade index 1557beae4..06ad5c412 100644 --- a/src/jade/tabs/sgd.jade +++ b/src/templates/tabs/sgd.jade @@ -3,12 +3,17 @@ section.col-xs-12.content(ng-controller='SgdCtrl') //- Disconnected group.disconnected(ng-hide='connected') - p.literal(l10n="err-you-must-be-online-to-see-this-screen", l10n) + p.literal(l10n="err-you-must-be-online-to-see-this-screen") | You have to be online to see this screen //- Funding div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded + include ../tabs/banner/unfunded + + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling .row(ng-show='connected') // Transaction errors coming from errors.js & transactionerror.jade @@ -23,7 +28,7 @@ section.col-xs-12.content(ng-controller='SgdCtrl') //- Generic non-tx related messages .col-sm-12(ng-show='notif !== "clear"', ng-hide="!notif") group.mode-granted.wide - group(ng-switch on="notif") + group(ng-switch="notif") group.result-error(ng-switch-when="error") h2.tx-status(l10n) There was an error while saving your changes. p(l10n) Please try again later. @@ -34,7 +39,7 @@ section.col-xs-12.content(ng-controller='SgdCtrl') a(href="https://ripple.com/wiki/Reserves", target="_blank") More information .col-sm-3 - include fund/menu + include ../tabs/fund/menu .col-sm-9.list(ng-hide='debug') .nameLine(l10n) Singapore Dollar Deposit .gateway.row @@ -64,10 +69,10 @@ section.col-xs-12.content(ng-controller='SgdCtrl') .row.fund-tab-description .col-xs-7.col-sm-5.col-md-4 - button.btn.btn-large(ng-show="!sgdConnected && !loading", type="submit", ng-click="save_account()", ng-disabled="!account.Balance") Add Ripple Singapore - button.btn.btn-large(ng-show="!sgdConnected && loading", type="submit", ng-disabled="loading") Adding... - button.btn.btn-large(ng-show="showInstructions && sgdConnected", type="submit", ng-click="toggle_instructions()", l10n) Hide instructions - button.btn.btn-large(ng-show="sgdConnected && !showInstructions", type="submit", ng-click="toggle_instructions()", l10n) Show instructions + button.btn.btn-large.btn-primary(ng-show="!sgdConnected && !loading && loadState.account", type="submit", ng-click="save_account()", ng-disabled="!account.Balance || !can_add_trust", l10n) Add Ripple Singapore + button.btn.btn-large.btn-primary(ng-show="!sgdConnected && loading", type="submit", ng-disabled="loading", l10n) Adding... + button.btn.btn-large.btn-primary(ng-show="showInstructions && sgdConnected", type="submit", ng-click="toggle_instructions()", l10n) Hide instructions + button.btn.btn-large.btn-primary(ng-show="sgdConnected && !showInstructions", type="submit", ng-click="toggle_instructions()", l10n) Show instructions .connect.col-xs-5.col-sm-7.col-md-8(ng-hide="loading") .description(ng-show="!sgdConnected && account.Balance", l10n) @@ -76,7 +81,10 @@ section.col-xs-12.content(ng-controller='SgdCtrl') .description(ng-show="sgdConnected && account.Balance", l10n) i.fa.fa-check | Connected - .description(ng-show="!account.Balance", l10n) Your account has to be activated before you can add a gateway account. + .description(ng-show="!account.Balance && loadState.account", l10n) Your account has to be activated before you can add a gateway account. + .description(ng-show="!loadState.account") + img(src="img/button-s.png", class="loader") + span(class="loading_text", l10n) Loading... .row(ng-show="showInstructions && sgdConnected") .instructions.col-md-10 diff --git a/src/jade/tabs/su.jade b/src/templates/tabs/su.jade similarity index 100% rename from src/jade/tabs/su.jade rename to src/templates/tabs/su.jade diff --git a/src/jade/tabs/tou.jade b/src/templates/tabs/tou.jade similarity index 94% rename from src/jade/tabs/tou.jade rename to src/templates/tabs/tou.jade index 38e93c3a5..0a1b160eb 100644 --- a/src/jade/tabs/tou.jade +++ b/src/templates/tabs/tou.jade @@ -2,15 +2,12 @@ section.content(ng-controller="TouCtrl") header h2 Ripple Trade Terms of Use hr - p Last Updated: October 28, 2014 - p Welcome to the Ripple Trade site and services - | provided by XRP II, LLC, Inc. (“we” or “us”). Ripple Trade is a hosted version of the open source + p Last Updated: June 30, 2015 + p Welcome to the Ripple Trade site and services (rippletrade.com and id.ripple.com) + | provided by Ripple Trade, LLC, Inc. (“we” or “us”). Ripple Trade is a hosted version of the open source | Ripple software client that allows users to access the decentralized Ripple transaction protocol | payment network ("Ripple Protocol"). Ripple Trade also provides a data storage service (“Blobvault”) - | that facilitates Ripple Trade transactions and allows users to store and share information with gateways - | and other users of the Ripple Protocol. Source code for Ripple Trade and related software is - | developed by Ripple Labs, Inc. and available - | free of charge under open source software license agreements at https://github.com/ripple. We hope + | that facilitates Ripple Trade transactions and stores information about the user. We hope | you find Ripple Trade to be useful as a tool to access and use the Ripple Protocol. p Please read these Terms of Use "Terms" carefully as they explain your and | our respective rights and responsibilities associated with your access to, and use of, Ripple Trade. @@ -33,7 +30,7 @@ section.content(ng-controller="TouCtrl") | custody documented on the Ripple Protocol public ledger (“The Ledger”). You acknowledge and agree | that we have no control, responsibility or authority over such third parties. Ripple Trade merely | interoperates with such entities via the Ripple Protocol. For more information about the Ripple - | Protocol, including Ripple Protocol transaction fees, please visit the Ripple Wiki. You further + | Protocol, including Ripple Protocol transaction fees, please visit the Ripple Knowledge Center. You further | acknowledge and agree that transactions you initiate within the Ripple Protocol will be available to | the public on the Internet via The Ledger. Ripple Trade allows you to view the public payments data | posted for Ripple Wallets – including your own Ripple Wallet. Once data is shared to the Ripple @@ -46,7 +43,7 @@ section.content(ng-controller="TouCtrl") | Wallet and the contact field information of any recipient of a balance sent via Ripple Trade | (such as the Ripple name or Ripple public address of the recipient); and (c) an identification | database, which includes personal information about the Ripple Trade user (such as email address - | provided when registering for Ripple Trade and any personal information submitted via Ripple Trade + | provided when registering for Ripple Trade and any personal information submitted via Ripple Trade and id.ripple.com | for identity verification purposes). For information about how we collect, use and share | Blobvault data, please refer to the Ripple Trade Privacy Policy. p 2. THIRD-PARTY SERVICES. You may be able to access and use third-party content and diff --git a/src/jade/tabs/trade.jade b/src/templates/tabs/trade.jade similarity index 60% rename from src/jade/tabs/trade.jade rename to src/templates/tabs/trade.jade index da242bbd2..704fc9fa8 100644 --- a/src/jade/tabs/trade.jade +++ b/src/templates/tabs/trade.jade @@ -16,13 +16,18 @@ section.col-xs-12.content(ng-controller="TradeCtrl") //- Connected div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected && !debug") - include banner/unfunded + include ../tabs/banner/unfunded - .row(ng-show='connected && !debug') + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling + + .row(ng-show='connected && !debug && loadState.offers') .widgets.hidden-xs.col-sm-4.col-md-4.col-lg-3 - include widgets/balances + include ../tabs/widgets/balances .col-xs-12.col-sm-8.col-md-8.col-lg-9 - group(ng-show="loadState.offers") + group .settings .row .col-sm-10.col-md-9.col-lg-7.col-xs-10.currency-config @@ -73,7 +78,7 @@ section.col-xs-12.content(ng-controller="TradeCtrl") .col-sm-4.col-lg-2.col-xs-6#cancel_button button.btn.btn-cancel.btn-block(type="button", ng-click="adding_pair = false", l10n) cancel .col-sm-4.col-lg-2.col-xs-6#add_button - button.btn.btn-success.btn-block.submit(type="submit", ng-disabled="gateway_change_form.$invalid", l10n) Add + button.btn.btn-success.btn-block.submit(type="submit", ng-disabled="gateway_change_form.$invalid || gateway_change_form.$pending", l10n) Add form.issuerSelector.first-issuer(name='first_issuer_form', ng-show='show_issuer_form == "first"') label(for='first_issuer', l10n) Base currency issuer ({{order.first_currency | rpcurrency}}) @@ -86,8 +91,8 @@ section.col-xs-12.content(ng-controller="TradeCtrl") ng-model="order.first_issuer_edit_name" rp-dest, rp-dest-address, rp-dest-contact, rp-dest-ripple-name rp-dest-model="order.first_issuer_edit") - .errorGroup(rp-errors='first_issuer') - .error(rp-error-on='rpDest', l10n) Not a valid Ripple address or contact + .errorGroup(ng-messages='first_issuer_form.first_issuer.$error') + .error(ng-message='rpDest', l10n) Not a valid Ripple address or contact .col-xs-12.col-sm-4.col-md-2 button.btn.btn-block.btn-success.submit(type='submit', ng-click='save_first_issuer()', @@ -104,8 +109,8 @@ section.col-xs-12.content(ng-controller="TradeCtrl") ng-model='order.second_issuer_edit_name' rp-dest, rp-dest-address, rp-dest-contact, rp-dest-ripple-name rp-dest-model="order.second_issuer_edit") - .errorGroup(rp-errors='second_issuer') - .error(rp-error-on='rpDest', l10n) Not a valid Ripple name or address + .errorGroup(ng-messages='second_issuer_form.second_issuer.$error') + .error(ng-message='rpDest', l10n) Not a valid Ripple name or address .col-xs-3.col-sm-2.col-md-2 button.btn.btn-block.btn-success.submit(type='submit', ng-click='save_second_issuer()', @@ -120,18 +125,15 @@ section.col-xs-12.content(ng-controller="TradeCtrl") li.col-xs-6.col-sm-3 span(l10n) Bid span = - span.value - | {{ priceTicker.bid }} + span.value(ng-bind="priceTicker.bid") li.col-xs-6.col-sm-3 span(l10n) Ask span = - span.value - | {{ priceTicker.ask }} + span.value(ng-bind="priceTicker.ask") li.col-xs-6.col-sm-3 span(l10n) Spread span = - span.value - | {{ priceTicker.spread }} + span.value(ng-bind="priceTicker.spread") li.col-xs-6.col-sm-3 span(l10n) Last price span = @@ -143,248 +145,255 @@ section.col-xs-12.content(ng-controller="TradeCtrl") p.literal(l10n) You have to be funded before you can trade //- 1. Order widgets - group.row.send-widgets#widgetGroup(ng-show="account.Balance") - .col-xs-12.col-md-6(ng-repeat="type in ['buy','sell']") - .trade-widget(ng-switch="order[type].mode") - .head - span(ng-show="type == 'buy'", l10n) Buy - span.issuer( - ng-hide="order.first_currency.is_native()" - rp-pretty-issuer="order.first_issuer" - rp-pretty-issuer-contacts="userBlob.data.contacts" - rp-pretty-issuer-or-short) - | {{order.first_currency | rpcurrency}} - span(ng-show="type == 'sell'", l10n) Sell - span.issuer( - ng-hide="order.first_currency.is_native()" - rp-pretty-issuer="order.first_issuer" - rp-pretty-issuer-contacts="userBlob.data.contacts" - rp-pretty-issuer-or-short) - | {{order.first_currency | rpcurrency}} - span.available(ng-show="type == 'buy'", l10n) - span.amount - span(ng-show="order.second_currency.is_native()") - | {{account.Balance | rpamount}} XRP - span(ng-hide="order.second_currency.is_native()") - | {{lines[order.second_issuer+order.second_currency.to_json()].balance || "0" | rpamount}} - span( - rp-pretty-issuer="order.second_issuer" + div.row.send-widgets#widgetGroup.table(ng-show="account.Balance") + .grid + .table-row + .col-xs-12.col-md-6.col-cell.trade-widget(ng-repeat="type in ['buy','sell']") + div(ng-switch="order[type].mode") + .head + span(ng-show="type == 'buy'", l10n) Buy + span.issuer( + ng-hide="order.first_currency.is_native()" + rp-pretty-issuer="order.first_issuer" rp-pretty-issuer-contacts="userBlob.data.contacts" rp-pretty-issuer-or-short) - | {{order.second_currency | rpcurrency}} - | available - span.available(ng-show="type == 'sell'", l10n) - span.amount - span(ng-show="order.first_currency.is_native()") - | {{account.Balance | rpamount}} XRP - span(ng-hide="order.first_currency.is_native()") - | {{lines[order.first_issuer+order.first_currency.to_json()].balance || "0" | rpamount}} - span( + | {{order.first_currency | rpcurrency}} + span(ng-show="type == 'sell'", l10n) Sell + span.issuer( + ng-hide="order.first_currency.is_native()" rp-pretty-issuer="order.first_issuer" rp-pretty-issuer-contacts="userBlob.data.contacts" rp-pretty-issuer-or-short) | {{order.first_currency | rpcurrency}} - | available - div(ng-switch-when='trade') - form.mode-form(name="tradeForm", ng-submit='place_order(type)', ng-show="order[type].showWidget") - .row.order-values - .col-xs-12 - .value-field - label(ng-show="type == 'buy'", l10n) Amount To Buy - label(ng-show="type == 'sell'", l10n) Amount To Sell - .input-group - input.form-control(name='amount', type='text' - input-type="{{type}}" - ng-model='order[type].first', ng-change='calc_second(type)' - rp-autofill='$routeParams.type == type && $routeParams.amount' - rp-autofill-amount - rp-amount - rp-amount-positive - rp-amount-xrp-limit - rp-amount-currency="{{order.first_currency}}" - required) - .input-group-addon - | {{order.first_currency | rpcurrency}} - .issuer( - ng-hide="order.first_currency.is_native()" - rp-pretty-issuer="order.first_issuer" - rp-pretty-issuer-contacts="userBlob.data.contacts" - rp-pretty-issuer-or-short) - .errorGroup(rp-errors='amount') - .error(rp-error-on='required', l10n) Required - .error(rp-error-on='rpAmount', l10n) Not a valid amount. - .error(rp-error-on='rpAmountPositive', l10n) - | Must be greater than zero - .error(rp-error-on='rpAmountXrpLimit', l10n) - | Minimum amount of XRP you can send is a drop (0.000001) and the maximum is 100 billion XRPs. - .col-xs-12 - .value-field - label(l10n) Price of Each - .input-group - input.form-control(name='price', type='text' - input-type="{{type}}" - ng-model='order[type].price', ng-change='calc_second(type)' - rp-autofill='$routeParams.type == type && $routeParams.price' - rp-autofill-amount - rp-amount - rp-amount-positive - rp-amount-xrp-limit - rp-amount-currency="{{order.second_currency}}" - required) - .input-group-addon - | {{order.second_currency | rpcurrency}} - .issuer( - ng-hide="order.second_currency.is_native()" - rp-pretty-issuer="order.second_issuer" - rp-pretty-issuer-contacts="userBlob.data.contacts" - rp-pretty-issuer-or-short) - .errorGroup(rp-errors='price') - .error(rp-error-on='required', l10n) Required - .error(rp-error-on='rpAmount', l10n) Not a valid amount. - .error(rp-error-on='rpAmountPositive', l10n) - | Must be greater than zero - .error(rp-error-on='rpAmountXrpLimit', l10n) - | Minimum amount of XRP you can send is a drop (0.000001) and the maximum is 100 billion XRPs. - .col-xs-12 - .value-field - label(l10n) Order Value (max) - .input-group - input.form-control(name='value', type='text' - ng-model='order[type].second', ng-change='calc_first(type)' - rp-autofill='$routeParams.type == type && $routeParams.max' - rp-autofill-amount - rp-amount - rp-amount-positive - rp-amount-xrp-limit - rp-amount-currency="{{order.second_currency}}" - required) - .input-group-addon - | {{order.second_currency | rpcurrency}} - .issuer( - ng-hide="order.second_currency.is_native()" - rp-pretty-issuer="order.second_issuer" - rp-pretty-issuer-contacts="userBlob.data.contacts" - rp-pretty-issuer-or-short) - .errorGroup(rp-errors='value') - .error(rp-error-on='required', l10n) Required - .error(rp-error-on='rpAmount', l10n) Not a valid amount. - .error(rp-error-on='rpAmountPositive', l10n) - | Must be greater than zero - .error(rp-error-on='rpAmountXrpLimit', l10n) - | Minimum amount of XRP you can send is a drop (0.000001) and the maximum is 100 billion XRPs. - .message - //- Having two very similar blocks just because of - //- translation related issues. (Cannot use the same format for - //- chinese translation) - p(ng-show="tradeForm.$valid && type == 'buy'", l10n) You are wanting to buy - span {{order[type].first_amount | rpamount:{abs_precision: 6} }} {{order[type].first_amount | rpcurrency}} - | for - span {{order[type].second_amount | rpamount:{abs_precision: 6} }} {{order[type].second_amount | rpcurrency}} - | ( - span {{order[type].price_amount | rpamount:{abs_precision: 6} }} {{order[type].second_amount | rpcurrency}} - | per - span {{order[type].first_amount | rpcurrency}} - | ) - p(ng-show="tradeForm.$valid && type == 'sell'", l10n) You are wanting to sell - span {{order[type].first_amount | rpamount:{abs_precision: 6} }} {{order[type].first_amount | rpcurrency}} - | for - span {{order[type].second_amount | rpamount:{abs_precision: 6} }} {{order[type].second_amount | rpcurrency}} - | ( - span {{order[type].price_amount | rpamount:{abs_precision: 6} }} {{order[type].second_amount | rpcurrency}} - | per - span {{order[type].first_amount | rpcurrency}} - | ) - .row.btns-row - .col-xs-12.col-md-6.col-sm-8.btns-wrapper - button.btn.btn-success.btn-block.submit(type='submit', ng-disabled='tradeForm.$invalid', btn-type="{{type}}") - span(ng-show="type == 'buy'", l10n) Buy - span(ng-show="type == 'sell'", l10n) Sell - | {{order.first_currency | rpcurrency}} - span(ng-hide="order.first_currency.is_native()") ( - span.issuer( + span.available(ng-show="type == 'buy'", l10n) + span.amount + span(ng-show="order.second_currency.is_native()") + | {{account.max_spend | rpamount}} XRP + span(ng-hide="order.second_currency.is_native()") + | {{lines[order.second_issuer+order.second_currency.to_json()].balance || "0" | rpamount}} + span( + rp-pretty-issuer="order.second_issuer" + rp-pretty-issuer-contacts="userBlob.data.contacts" + rp-pretty-issuer-or-short) + | {{order.second_currency | rpcurrency}} + | available + span.available(ng-show="type == 'sell'", l10n) + span.amount + span(ng-show="order.first_currency.is_native()") + | {{account.max_spend | rpamount}} XRP + span(ng-hide="order.first_currency.is_native()") + | {{lines[order.first_issuer+order.first_currency.to_json()].balance || "0" | rpamount}} + span( rp-pretty-issuer="order.first_issuer" rp-pretty-issuer-contacts="userBlob.data.contacts" rp-pretty-issuer-or-short) + | {{order.first_currency | rpcurrency}} + | available + div(ng-switch-when='trade') + form.mode-form(name="tradeForm", ng-submit='place_order(type)', ng-show="order[type].showWidget") + .row.order-values + .col-xs-12 + .value-field + label(ng-show="type == 'buy'", l10n) Amount To Buy + label(ng-show="type == 'sell'", l10n) Amount To Sell + .input-group + input.form-control(name='amount', type='text' + input-type="{{type}}" + ng-model='order[type].first', ng-change='calc_second(type)' + rp-autofill='$routeParams.type == type && $routeParams.amount' + rp-autofill-amount + rp-amount + rp-amount-positive + rp-amount-xrp-limit + rp-amount-currency="{{order.first_currency}}" + required) + .input-group-addon + | {{order.first_currency | rpcurrency}} + .issuer( + ng-hide="order.first_currency.is_native()" + rp-pretty-issuer="order.first_issuer" + rp-pretty-issuer-contacts="userBlob.data.contacts" + rp-pretty-issuer-or-short) + .errorGroup(ng-messages='tradeForm.amount.$dirty && tradeForm.amount.$error') + .error(ng-message='required', l10n) Required + .error(ng-message='rpAmount', l10n) Not a valid amount. + .error(ng-message='rpAmountPositive', l10n) + | Must be greater than zero + .error(ng-message='rpAmountXrpLimit', l10n) + | Minimum amount of XRP you can send is a drop (0.000001) and the maximum is 100 billion XRPs. + .col-xs-12 + .value-field + label(l10n) Price of Each + .input-group + input.form-control(name='price', type='text' + input-type="{{type}}" + ng-model='order[type].price', ng-change='calc_second(type)' + rp-autofill='$routeParams.type == type && $routeParams.price' + rp-autofill-amount + rp-amount + rp-amount-positive + rp-amount-xrp-limit + rp-amount-currency="{{order.second_currency}}" + required) + .input-group-addon + | {{order.second_currency | rpcurrency}} + .issuer( + ng-hide="order.second_currency.is_native()" + rp-pretty-issuer="order.second_issuer" + rp-pretty-issuer-contacts="userBlob.data.contacts" + rp-pretty-issuer-or-short) + .errorGroup(ng-messages='tradeForm.price.$dirty && tradeForm.price.$error') + .error(ng-message='required', l10n) Required + .error(ng-message='rpAmount', l10n) Not a valid amount. + .error(ng-message='rpAmountPositive', l10n) + | Must be greater than zero + .error(ng-message='rpAmountXrpLimit', l10n) + | Minimum amount of XRP you can send is a drop (0.000001) and the maximum is 100 billion XRPs. + .col-xs-12 + .value-field + label(l10n) Order Value (max) + .input-group + input.form-control(name='value', type='text' + ng-model='order[type].second', ng-change='calc_first(type)' + rp-autofill='$routeParams.type == type && $routeParams.max' + rp-autofill-amount + rp-amount + rp-amount-positive + rp-amount-xrp-limit + rp-amount-currency="{{order.second_currency}}" + required) + .input-group-addon + | {{order.second_currency | rpcurrency}} + .issuer( + ng-hide="order.second_currency.is_native()" + rp-pretty-issuer="order.second_issuer" + rp-pretty-issuer-contacts="userBlob.data.contacts" + rp-pretty-issuer-or-short) + .errorGroup(ng-messages='tradeForm.value.$dirty && tradeForm.value.$error') + .error(ng-message='required', l10n) Required + .error(ng-message='rpAmount', l10n) Not a valid amount. + .error(ng-message='rpAmountPositive', l10n) + | Must be greater than zero + .error(ng-message='rpAmountXrpLimit', l10n) + | Minimum amount of XRP you can send is a drop (0.000001) and the maximum is 100 billion XRPs. + .message + //- Having two very similar blocks just because of + //- translation related issues. (Cannot use the same format for + //- chinese translation) + p(ng-show="tradeForm.$valid && type == 'buy'", l10n) You are wanting to buy + span {{order[type].first_amount | rpamount:{abs_precision: 6} }} {{order[type].first_amount | rpcurrency}} + | for + span {{order[type].second_amount | rpamount:{abs_precision: 6} }} {{order[type].second_amount | rpcurrency}} + | ( + span {{order[type].price_amount | rpamount:{abs_precision: 6} }} {{order[type].second_amount | rpcurrency}} + | per + span {{order[type].first_amount | rpcurrency}} | ) - div(ng-hide="order[type].showWidget") - p.literal(l10n) You do not have sufficient funds to create an order. - - //- 2. Confirmation - form.mode-confirm(ng-switch-when='confirm', ng-submit="order_confirmed(type, order.currency_pair)") - p.title.literal - span(l10n) You are about to create an order to - span(ng-show="type == 'buy'", l10n-inc) buy - span(ng-show="type == 'sell'", l10n-inc) sell - .amount_feedback - span.value {{order[type].first_amount | rpamount: {abs_precision: 6} }} - span.issuer( - ng-show="(order[type].first_amount | rpcurrency) !== 'XRP'" - rp-pretty-issuer="order[type].first_amount | rpissuer" - rp-pretty-issuer-contacts="userBlob.data.contacts" - rp-pretty-issuer-or-short) - span.currency {{order[type].first_amount | rpcurrency}} - .literal(l10n-inc) for - .dest_feedback - span.value {{order[type].second_amount | rpamount: {abs_precision: 6} }} - span.issuer( - ng-show="(order[type].second_amount | rpcurrency) !== 'XRP'" - rp-pretty-issuer="order[type].second_amount | rpissuer" - rp-pretty-issuer-contacts="userBlob.data.contacts" - rp-pretty-issuer-or-short) - span.currency {{order[type].second_amount | rpcurrency}} - .rate_feedback ( - span.rate {{order[type].price}} - span.pair {{order[type].first_amount | rpcurrency}}/{{order[type].second_amount | rpcurrency}} - | ) - p.literal(l10n-inc) Are you sure? - p.order-warning(ng-show="fatFingerErr", l10n) - | CAUTION: Your order is far off from the current market price. - .row.row-padding-small - .col-xs-6.col-sm-offset-2.col-sm-4.col-md-offset-3.col-md-3 - button.btn.btn-block.btn-default.back(type='button' - ng-click="order[type].mode = 'trade'", l10n) « Back - .col-xs-6.col-sm-4.col-md-3 - button.btn.btn-block.btn-success.submit(type='submit' - ng-disabled='confirm_wait', l10n) Confirm + p(ng-show="tradeForm.$valid && type == 'sell'", l10n) You are wanting to sell + span {{order[type].first_amount | rpamount:{abs_precision: 6} }} {{order[type].first_amount | rpcurrency}} + | for + span {{order[type].second_amount | rpamount:{abs_precision: 6} }} {{order[type].second_amount | rpcurrency}} + | ( + span {{order[type].price_amount | rpamount:{abs_precision: 6} }} {{order[type].second_amount | rpcurrency}} + | per + span {{order[type].first_amount | rpcurrency}} + | ) + .row.btns-row + .col-xs-12.col-md-6.col-sm-8.btns-wrapper + button.btn.btn-success.btn-block.submit(type='submit', ng-disabled='tradeForm.$invalid', btn-type="{{type}}") + span(ng-show="type == 'buy'", l10n) Buy + span(ng-show="type == 'sell'", l10n) Sell + | {{order.first_currency | rpcurrency}} + span(ng-hide="order.first_currency.is_native()") ( + span.issuer( + rp-pretty-issuer="order.first_issuer" + rp-pretty-issuer-contacts="userBlob.data.contacts" + rp-pretty-issuer-or-short) + | ) + div(ng-hide="order[type].showWidget") + p.literal(l10n) You do not have sufficient funds to create an order. - //- 3. Sending + group.pending(ng-show='notif[type]=="pending"') + h2.tx-status(l10n) Your order has been submitted. + group.result-success(ng-show="notif[type]=='cleared' && executedOnOfferCreate=='none'") + h2.tx-status(l10n) Your order is now active. + group.result-success(ng-show="notif[type]=='cleared' && executedOnOfferCreate=='all'") + h2.tx-status(l10n) Your order has been filled. + group.result-success(ng-show="notif[type]=='cleared' && executedOnOfferCreate=='partial'") + h2.tx-status(l10n) Your order has been partially filled. The remaining amount is now active. - group.mode-sending(ng-switch-when='sending') - p.literal - img(src="img/button-s.png", class="loader") - span(class="loading_text", l10n) Sending order to Ripple network... + //- 4a. Ripple error page + group.mode-ripplerror(ng-show='notif[type]=="unknown"') + rp-transaction-status( + rp-engine-result="{{engine_result}}" + rp-engine-result-message="{{engine_result_message}}" + rp-accepted="{{engine_status_accepted}}" + rp-current-tab="trade") - //- 4. Done - - group.mode-done(ng-switch-when='done') - group.pending(ng-show='tx_result=="pending"') - h2.tx-status(l10n) Your order has been submitted. - group.result-success(ng-show="tx_result=='cleared' && executedOnOfferCreate=='none'") - h2.tx-status(l10n) Your order is now active. - group.result-success(ng-show="tx_result=='cleared' && executedOnOfferCreate=='all'") - h2.tx-status(l10n) Your order has been filled. - group.result-success(ng-show="tx_result=='cleared' && executedOnOfferCreate=='partial'") - h2.tx-status(l10n) Your order has been partially filled. The remaining amount is now active. + //- 2. Confirmation + form.mode-confirm(ng-switch-when='confirm', ng-submit="order_confirmed(type, order.currency_pair)") + div.alert.alert-warning(ng-show="fatFingerErr") + p(l10n) CAUTION: Your order is far off from the market price. + //- p.title.literal + //- span(l10n) You are about to create an order to + //- span(ng-show="type == 'buy'", l10n-inc) buy + //- span(ng-show="type == 'sell'", l10n-inc) sell + .amount_feedback + label(ng-show="type == 'buy'", l10n) Amount to buy + label(ng-show="type == 'sell'", l10n) Amount to sell + div.ammount-currency + span.value {{order[type].first_amount | rpamount: {abs_precision: 6} }} + //- span.issuer( + //- ng-show="(order[type].first_amount | rpcurrency) !== 'XRP'" + //- rp-pretty-issuer="order[type].first_amount | rpissuer" + //- rp-pretty-issuer-contacts="userBlob.data.contacts" + //- rp-pretty-issuer-or-short) + span.currency + sub {{order[type].first_amount._currency._iso_code}} + //- .literal(l10n-inc) for + .dest_feedback + label(l10n) Price of each + div.each-price + span.value {{order[type].price}} + sub + span.currency {{order[type].second_amount | rpcurrency}} per {{order[type].first_amount | rpcurrency}} + //- span.currency {{order[type].second_amount | rpcurrency}} / + //- span.issuer( + //- ng-show="(order[type].second_amount | rpcurrency) !== 'XRP'" + //- rp-pretty-issuer="order[type].second_amount | rpissuer" + //- rp-pretty-issuer-contacts="userBlob.data.contacts" + //- rp-pretty-issuer-or-short) + //- ( + //- span.rate {{order[type].price}} + //- span.pair {{order[type].second_amount | rpcurrency}} per {{order[type].first_amount | rpcurrency}} + //- | ) + .rate_feedback + label(l10n) Order Value (max) + div.max-value + span.rate {{order[type].second_amount | rpamount: {abs_precision: 6} }} + sub.pair {{order[type].second_amount | rpcurrency}} + p.literal.confirm-text(l10n-inc) Are you sure? + .row.row-padding-small + .col-xs-6.col-sm-4.col-md-3 + button.btn.btn-block.btn-success.submit(type='submit' + ng-disabled='confirm_wait', l10n) Confirm + .col-xs-6.col-sm-4.col-md-3 + button.btn.btn-block.btn-cancel.back(type='button' + ng-click="order[type].mode = 'trade'", l10n) « Back - //- 4a. Ripple error page + //- 3. - group.mode-ripplerror(ng-show='tx_result=="unknown"') - rp-transaction-status( - rp-engine-result="{{engine_result}}" - rp-engine-result-message="{{engine_result_message}}" - rp-accepted="{{engine_status_accepted}}" - rp-current-tab="trade") - - hr - .actionLink - a(href="#trade", ng-click="reset_widget(type)", l10n) Submit another order + group.mode-sending(ng-switch-when='') + p.literal + img(src="img/button-s.png", class="loader") + span(class="loading_text", l10n) Sending order to the Ripple network... .my-orders-title(l10n) My Orders span ({{offersCount}}) small.toggle(ng-hide="isEmpty(offers)", ng-click="hideOffers = !hideOffers") {{hideOffers ? "show" : "hide"}} div#myOrdersMsg group.mode-granted.wide(ng-show='notif !== "clear"') - group(ng-switch on="notif") + group(ng-switch="notif") group.pending(ng-switch-when="verifying") h2.tx-status(l10n) Verifying your information. Please wait... group.result-success(ng-switch-when="replace_success") @@ -441,10 +450,10 @@ section.col-xs-12.content(ng-controller="TradeCtrl") rp-sort-header-field="counter") span(l10n) Counter i.fa.fa-fw.fa-caret-down - .col-md-2(rp-sort-header="sortOptions.sortField", + .col-md-2(rp-sort-header="sortOptions.sortField", rp-sort-header-reverse="sortOptions.reverse", rp-sort-header-field="limit") - span(l10n) Limit + span(l10n) Limit Price i.fa.fa-fw.fa-caret-down //- .col-md-2(l10n, rp-sort-header="sortOptions.sortField", //- rp-sort-header-reverse="sortOptions.reverse", @@ -455,7 +464,7 @@ section.col-xs-12.content(ng-controller="TradeCtrl") .col-md-1.type(l10n-data-label="Type") span.rp-hidden-md.rp-hidden-lg {{entry.type | rpucfirst}} span.rp-hidden-xs.rp-hidden-sm {{entry.type | rptruncate:1}} - .col-md-2.amount.rpamount(l10n-data-label="QTY", + .col-md-2.amount.rpamount(l10n-data-label="QTY" ng-hide="editOrder.seq == entry.seq") {{entry.first | rpamount:{hard_precision: true, precision: 6, tiny_precision: 6} }} .col-md-2(l10n-data-label="BASE", ng-hide="editOrder.seq == entry.seq") a(href="",ng-click="goto_order_currency()") @@ -475,7 +484,7 @@ section.col-xs-12.content(ng-controller="TradeCtrl") rp-pretty-issuer="entry.second.issuer().to_json()" rp-pretty-issuer-contacts="userBlob.data.contacts" ) ??? - .col-md-2.price.rpamount(l10n-data-label="Limit", + .col-md-2.price.rpamount(l10n-data-label="Limit" ng-hide="editOrder.seq == entry.seq") {{entry.second | rpamountratio:entry.first | rpamount:{hard_precision: true, precision: 6, tiny_precision: 6} }} //- .col-md-2.action(l10n-data-label="Time placed(UTC)", ng-hide="editOrder.seq == entry.seq") ... .col-md-3.action(ng-hide="editOrder.seq == entry.seq") @@ -490,8 +499,8 @@ section.col-xs-12.content(ng-controller="TradeCtrl") .modal-body .modal-prompt(l10n) div(l10n-inc) Please confirm that you wish to cancel order #{{entry.seq}} - .modal-order(l10n) - div + .modal-order + div(rp-span-spacing) span.modal-order-type {{entry.type}}: span {{entry.first | rpamount:{hard_precision: true, precision: 6, tiny_precision: 6} }} span {{entry.first | rpcurrency}} @@ -585,11 +594,8 @@ section.col-xs-12.content(ng-controller="TradeCtrl") .col-xs-12.col-sm-6 div.orderbook-title(l10n) | Orderbook - small.toggle.orderbook-hide(ng-click="visualState.hideOrderBook = !visualState.hideOrderBook") - span(ng-show="visualState.hideOrderBook", l10n) show - span(ng-hide="visualState.hideOrderBook", l10n) hide - .col-xs-12.col-sm-6.last-update(l10n, ng-show="lastUpdate") Last updated - span {{lastUpdate}} + .col-xs-12.col-sm-6.last-update(l10n, ng-show="lastUpdate") Last updated + span(ng-bind="lastUpdate") span(ng-show="lastUpdate > '1'", l10n-inc) seconds span(ng-show="lastUpdate == '1'", l10n-inc) second | ago @@ -629,8 +635,8 @@ section.col-xs-12.content(ng-controller="TradeCtrl") rp-pretty-issuer-contacts="userBlob.data.contacts" rp-pretty-issuer-or-short) - .row(ng-repeat='order in bookShow.bids track by order.index' - ng-class="{my: order.my, cancelling: cancelling}") + .row(ng-repeat='order in bookShow.bids track by order.BookDirectory' + ng-class="{my: order.my, cancelling: cancelling, new: order.isNew, changed: order.isChanged}") .col-xs-4.rpamount.sum a(href="", ng-click="fill_widget('sell', order, true)") span(rp-bind-color-amount="order.showSum") @@ -638,7 +644,10 @@ section.col-xs-12.content(ng-controller="TradeCtrl") .col-xs-4.rpamount.price a(href="", ng-click="fill_widget('sell', order, true)", ng-bind="order.showPrice") - .message(ng-show='!bookShow.bids.length', l10n) There are currently no bids for this pair. + .message(ng-show='!bookShow.bids.length && book.ready', l10n) There are currently no bids for this pair. + .message(ng-show="!book.ready && !bookShow.bids.length") + img(src="img/button-s.png", class="loader") + span(class="loading_text", l10n) Loading... .asks.col-xs-12.col-lg-6 .title(l10n) Asks @@ -665,8 +674,8 @@ section.col-xs-12.content(ng-controller="TradeCtrl") rp-pretty-issuer-contacts="userBlob.data.contacts" rp-pretty-issuer-or-short) - .row(ng-repeat='order in bookShow.asks track by order.index' - ng-class="{my: order.my, cancelling: cancelling}") + .row(ng-repeat='order in bookShow.asks track by order.BookDirectory' + ng-class="{my: order.my, cancelling: cancelling, new: order.isNew, changed: order.isChanged}") .col-xs-4.rpamount.price a(href="", ng-click="fill_widget('buy', order, true)", ng-bind="order.showPrice") .col-xs-4.rpamount.size(rp-bind-color-amount="order.showTakerGets") @@ -675,7 +684,11 @@ section.col-xs-12.content(ng-controller="TradeCtrl") ng-click="fill_widget('buy', order, true)") span(rp-bind-color-amount="order.showSum") - .message(ng-show='!bookShow.asks.length', l10n) There are currently no asks for this pair. + .message(ng-show='!bookShow.asks.length && book.ready', l10n) There are currently no asks for this pair. + .message(ng-show="!book.ready && !bookShow.asks.length") + img(src="img/button-s.png", class="loader") + span(class="loading_text", l10n) Loading... + .foot a.loadmore(ng-show="orderbookState=='ready' && (bookShow.asks.length || bookShow.bids.length)", href="", ng-click="loadMore()", l10n) Load more div(ng-show="orderbookState=='full'", l10n) No more orders diff --git a/src/jade/tabs/trust.jade b/src/templates/tabs/trust.jade similarity index 61% rename from src/jade/tabs/trust.jade rename to src/templates/tabs/trust.jade index a4ffa8c16..add2ac082 100644 --- a/src/jade/tabs/trust.jade +++ b/src/templates/tabs/trust.jade @@ -12,7 +12,12 @@ section.col-xs-12.content(ng-controller="TrustCtrl") group(ng-show="connected && loadState.lines") div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") - include banner/unfunded + include ../tabs/banner/unfunded + + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling //- N1. Trust form .row @@ -28,7 +33,7 @@ section.col-xs-12.content(ng-controller="TrustCtrl") //- N5. Notifications for edit/removing account .col-sm-12(ng-show='notif !== "clear"', ng-hide='!notif') group.mode-granted.wide - group(ng-switch on="notif") + group(ng-switch="notif") group.pending(ng-switch-when="remove_gateway") h2.tx-status(l10n) Removing gateway... group.result-success(ng-switch-when="gateway_removed") @@ -51,10 +56,7 @@ section.col-xs-12.content(ng-controller="TrustCtrl") | to add a new trust line. a(href="https://ripple.com/wiki/Reserves", target="_blank") More information .row(ng-show='connected') - - .col-sm-3 - include fund/menu - .col-sm-9.trust-menu + .trust-menu .row.row-padding-small.head(ng-hide='true') .col-sm-5(l10n) Name / Address .col-sm-2 @@ -74,8 +76,6 @@ section.col-xs-12.content(ng-controller="TrustCtrl") rp-combobox-value-as-ripple-name ng-model='counterparty_view' rp-account-exists - rp-account-exists-model="counterparty_address" - rp-account-exists-loading="counterparty_loading" rp-dest, rp-dest-address, rp-dest-contact, rp-not-me, rp-dest-email rp-dest-ripple-name, rp-dest-model="counterparty" rp-dest-loading="counterparty_loading" @@ -84,26 +84,16 @@ section.col-xs-12.content(ng-controller="TrustCtrl") rp-autofill-counterparty_view rp-autofill-on='addform_visible = true' rp-focus, rp-spinner="{{counterparty_loading ? 4 : null}}") - .errorGroup(rp-errors='trust_counterparty') - div(rp-error-valid) + .errorGroup(ng-messages='trustForm.trust_counterparty.$dirty && trustForm.trust_counterparty.$error') + div(ng-show='trustForm.trust_counterparty.$valid') .success(ng-show='counterparty != counterparty_address && counterparty_name && !error_account_reserve') | {{counterparty_address}} .error(ng-show='error_account_reserve') - span(l10n) Account does not meet the minimum XRP reserve. - a(href="https://ripple.com/wiki/Account_Creation", target="_blank", l10n) - | More information - .error(rp-error-on='required', l10n) Please enter a Ripple name, contact, or address. - .error(rp-error-on='rpNotMe', l10n) You've entered your own address. - .error(rp-error-on='rpDest', l10n) Please enter a valid Ripple name, contact, or address. - .error(rp-error-on='rpAccountExists', l10n) You cannot add an unfunded Ripple account as a gateway. - .errorGroup(rp-errors='trust_amount') - .error(rp-error-on='required', l10n) Amount field is required - .errorGroup(rp-errors='trust_amount_currency') - .error(rp-error-on='rpNotXrp', l10n) - | XRP can be sent without extending trust. If you really want - | to trust in XRP, please use XRR currency code. - .error(rp-error-on='required', l10n) - | Currency field is required + span(l10n) This account does not meet the minimum XRP reserve, so you cannot use it as a gateway. + .error(ng-message='required', l10n) Please enter a Ripple name, contact, or address. + .error(ng-message='rpNotMe', l10n) You've entered your own address. + .error(ng-message='rpDest', l10n) Please enter a valid Ripple name, contact, or address. + .error(ng-message='rpAccountExists', l10n) You cannot add an unfunded Ripple account as a gateway. .row .col-xs-12.form-group label(for='trust_amount', ng-show="globalOptions.advanced_feature_switch", l10n) Amount @@ -136,16 +126,16 @@ section.col-xs-12.content(ng-controller="TrustCtrl") rp-autofill-on='addform_visible = true' rp-not-xrp required) - .errorGroup(rp-errors='trust_amount') - .error(rp-error-on='required', l10n) Amount field is required. - .error(rp-error-on='rpAmount', l10n) Not a valid amount. - .error(rp-error-on='rpAmountPositive', l10n) Amount must be greater than zero. - .error(rp-error-on='rpMaxDigits', l10n) Your amount has too many digits. The max number of digits is 16. - .errorGroup(rp-errors='trust_amount_currency') - .error(rp-error-on='rpNotXrp', l10n) + .errorGroup(ng-messages='trustForm.trust_amount.$dirty && trustForm.trust_amount.$error') + .error(ng-message='required', l10n) Amount field is required. + .error(ng-message='rpAmount', l10n) Not a valid amount. + .error(ng-message='rpAmountPositive', l10n) Amount must be greater than zero. + .error(ng-message='rpMaxDigits', l10n) Your amount has too many digits. The max number of digits is 16. + .errorGroup(ng-messages='trustForm.trust_amount_currency.$dirty && trustForm.trust_amount_currency.$error') + .error(ng-message='rpNotXrp', l10n) | XRP can be sent without extending trust. If you really want | to trust in XRP, please use XRR currency code. - .error(rp-error-on='required', l10n) + .error(ng-message='required', l10n) | Currency field is required .row(ng-show="globalOptions.advanced_feature_switch") .col-xs-12.allow-rippling @@ -163,7 +153,7 @@ section.col-xs-12.content(ng-controller="TrustCtrl") .row .col-xs-8.col-sm-7.col-md-6 rp-popup(rp-popup-on-open="grant()") - a.btn.btn-block.btn-primary.submit(href="", rp-popup-link, ng-disabled='trustForm.$invalid || verifying', l10n) Save + a.btn.btn-block.btn-primary.submit(href="", rp-popup-link, ng-disabled='trustForm.$invalid || trustForm.$pending || verifying', l10n) Save div.connectModal(rp-popup-content) .modal-header .navbar-brand.hidden-sm.modal-logo#logo @@ -213,99 +203,112 @@ section.col-xs-12.content(ng-controller="TrustCtrl") .col-xs-12 i(class="icon fa fa-money", ng-class="'fa-' + (entry.components[0].currency | lowercase)") span.currency(rp-currency="entry.components[0].limit", rp-currency-full) - .row.head + .row.head.hidden-xs.hidden-sm div( - ng-class="{ 'col-sm-3 col-xs-2': globalOptions.advanced_feature_switch, 'col-sm-4 col-xs-4 col-md-5': !globalOptions.advanced_feature_switch }" + ng-class="{ 'col-md-2': globalOptions.advanced_feature_switch, 'col-md-5': !globalOptions.advanced_feature_switch }" l10n) Gateway div( - ng-class="{ 'col-xs-2 col-sm-2': globalOptions.advanced_feature_switch, 'col-xs-4': !globalOptions.advanced_feature_switch }" + ng-class="{ 'col-md-2': globalOptions.advanced_feature_switch, 'col-md-4': !globalOptions.advanced_feature_switch }" l10n) Balance - div(ng-show="globalOptions.advanced_feature_switch", ng-class="{ 'col-xs-2': globalOptions.advanced_feature_switch }", l10n) Limit - div.col-xs-2.col-sm-1(ng-show="globalOptions.advanced_feature_switch", l10n) Min - div.col-xs-2(ng-show="globalOptions.advanced_feature_switch", l10n) Rippling - div(ng-class="{'col-xs-2' : globalOptions.advanced_feature_switch, 'col-xs-4 col-md-3': !globalOptions.advanced_feature_switch }" + div.col-md-3(ng-show="globalOptions.advanced_feature_switch", l10n) Limit + div.col-md-1(ng-show="globalOptions.advanced_feature_switch", l10n) Min + div.col-md-2(ng-show="globalOptions.advanced_feature_switch", l10n) Rippling + div(ng-class="{'col-md-2' : globalOptions.advanced_feature_switch, 'col-md-3': !globalOptions.advanced_feature_switch }" l10n) Edit hr#divider .lines .line(ng-controller="AccountRowCtrl", ng-repeat="component in entry.components") .row(ng-class="{ 'frozen-account': component.freeze_peer }") - .gateway(ng-class="{ 'col-sm-3 col-xs-2': globalOptions.advanced_feature_switch, 'col-md-5 col-sm-4 col-xs-4': !globalOptions.advanced_feature_switch }") - span(rp-pretty-identity="component.account", rp-pretty-identity-filters="rpcontactnamefull | rpripplename: {tilde: true}", - rp-address-popover="component.account" + .col-xs-full + .gateway(ng-class="{ 'col-md-2': globalOptions.advanced_feature_switch, 'col-md-5': !globalOptions.advanced_feature_switch }", + l10n-data-label="Gateway" ) - div(ng-class="{ 'col-xs-2 col-sm-2': globalOptions.advanced_feature_switch, 'col-xs-4': !globalOptions.advanced_feature_switch }") - span(rp-address-popover, rp-address-popover-sum="component.balance") {{ component.balance | rpamount:{rel_precision: 2} }} - .col-xs-2(ng-show="globalOptions.advanced_feature_switch", ng-class="{ 'col-xs-1': globalOptions.advanced_feature_switch }") - span(rp-address-popover, rp-address-popover-sum="component.limit") {{ component.limit | rpamount }} - .col-sm-1.col-xs-2(ng-show="globalOptions.advanced_feature_switch && component.limit_peer._offset == '-100'") - span(rp-address-popover, rp-address-popover-sum="component.limit_peer") {{ component.limit_peer | rpamount }} - .col-sm-1.col-xs-2(ng-show="globalOptions.advanced_feature_switch && component.limit_peer._offset !== '-100'", - ng-hide="component.limit_peer._offset == '-100' || !globalOptions.advanced_feature_switch") - span(rp-address-popover, rp-address-popover-sum="component.limit_peer", rp-address-popover-sum-minus) -{{ component.limit_peer | rpamount }} - .col-sm-2.col-xs-2(ng-show="globalOptions.advanced_feature_switch") - div(ng-show="component.no_ripple", l10n) Off - div(ng-hide="component.no_ripple", l10n) On - div(ng-hide="component.freeze_peer", ng-class="{ 'col-xs-2': globalOptions.advanced_feature_switch, 'col-xs-4 col-md-3': !globalOptions.advanced_feature_switch }") - a(href="", ng-hide="editing || isIncoming()", ng-click="edit_account()" - l10n) edit - span( - ng-show="isIncoming()" - rp-popover - rp-popover-placement="bottom" - rp-popover-trigger="hover" - l10n-rp-popover-title="Incoming trust" - l10n-data-content="This is an incoming trust line. Incoming trust lines are when other Ripple users trust you. You can only edit the rippling on or off option for incoming trust lines.") - a(href="", ng-click="editing || edit_account()", l10n) edit - span(ng-show="editing && !globalOptions.advanced_feature_switch") - span(ng-hide="trust.loading") - div.row.row-padding-small - .col-md-7.col-sm-7.col-xs-6 - span(ng-show='trust.balance !== "0" && orderbookStatus === "exists"') - rp-confirm( - action-text="Are you sure you want to remove this gateway? Ripple Trade will attempt to convert the remaining balance of {{ trust.balance }} {{ trust.currency }} into XRP. This action can't be undone." - action-button-text="Convert balance and remove" - action-button-css="btn btn-default btn-danger custom-btn" - action-function="delete_account()" - cancel-button-css="btn btn-cancel" - cancel-button-text="cancel" - ng-hide="showPassword==true") - button.btn.btn-block.btn-danger.submit(type="button", ng-click="load_orderbook()", ng-show="!isIncoming()", l10n) Remove - span( - rp-popover - rp-popover-placement="bottom" - rp-popover-trigger="hover" - l10n-rp-popover-title="Incoming trust" - l10n-data-content="You can't delete incoming trust lines. Incoming trust lines are when other Ripple users trust you.") - button.btn.btn-block.btn-danger.submit(type="button", ng-click="load_orderbook()", ng-show="isIncoming()", disabled, l10n) Remove - span(ng-show='trust.balance !== "0" && orderbookStatus === "not"') - rp-confirm( - action-text="Are you sure you want to remove this gateway? Ripple Trade will return the balance of {{ trust.balance }} {{ trust.currency }} to the issuer. This action can't be undone." - action-button-text="Return balance and remove" - action-button-css="btn btn-default btn-danger custom-btn" - action-function="delete_account()" - cancel-button-css="btn btn-cancel" - cancel-button-text="cancel" - ng-hide="showPassword==true") - button.btn.btn-block.btn-danger.submit(type="button", ng-click="load_orderbook()", ng-show="!isIncoming()", l10n) Remove + span(rp-pretty-identity="component.account", rp-pretty-identity-filters="rpcontactnamefull | rpripplename: {tilde: true}", + rp-address-popover="component.account" + ) + div(ng-class="{ 'col-md-2': globalOptions.advanced_feature_switch, 'col-md-4': !globalOptions.advanced_feature_switch }", + l10n-data-label="Balance" + ) + span(rp-address-popover, rp-address-popover-sum="component.balance") {{ component.balance | rpamount:{rel_precision: 2} }} + .col-md-3(ng-show="globalOptions.advanced_feature_switch", + l10n-data-label="Limit" + ) + span(rp-address-popover, rp-address-popover-sum="component.limit") {{ component.limit | rpamount }} + .col-md-1(ng-show="globalOptions.advanced_feature_switch && component.limit_peer.is_zero()", + l10n-data-label="Min" + ) + span(rp-address-popover, rp-address-popover-sum="component.limit_peer") {{ component.limit_peer | rpamount }} + .col-md-1( + ng-show="globalOptions.advanced_feature_switch && !component.limit_peer.is_zero()", + ng-hide="component.limit_peer.is_zero() || !globalOptions.advanced_feature_switch", + l10n-data-label="Min" + ) + span(rp-address-popover, rp-address-popover-sum="component.limit_peer", rp-address-popover-sum-minus) -{{ component.limit_peer | rpamount }} + .col-md-2(ng-show="globalOptions.advanced_feature_switch", + l10n-data-label="Rippling" + ) + div(ng-show="component.no_ripple", l10n) Off + div(ng-hide="component.no_ripple", l10n) On + div(ng-hide="component.freeze_peer", ng-class="{ 'col-md-2': globalOptions.advanced_feature_switch, 'col-md-3': !globalOptions.advanced_feature_switch }") + span.visible-xs.visible-sm(ng-hide="editing") + a.btn.btn-cancel(href="", ng-click="edit_account()" + l10n) edit + a.hidden-xs.hidden-sm(href="", ng-hide="editing", ng-click="edit_account()" + l10n) edit + span(ng-show="editing && !globalOptions.advanced_feature_switch") + .col-xs-6.col-sm-5(ng-show="trust.loading && trust.state==='removing'") + .row + .col-xs-16 + button.btn.btn-block.btn-danger(disabled, l10n) Removing... + span(ng-hide="trust.loading") + div.row.row-padding-small + .col-md-7.col-sm-7.col-xs-6 + span(ng-show='trust.balance !== "0" && orderbookStatus === "exists"') + rp-confirm( + action-text="Are you sure you want to remove this gateway? Ripple Trade will attempt to convert the remaining balance of {{ trust.balance }} {{ trust.currency }} into XRP. This action can't be undone." + action-button-text="Convert balance and remove" + action-button-css="btn btn-default btn-danger custom-btn" + action-function="delete_account()" + cancel-button-css="btn btn-cancel" + cancel-button-text="cancel" + ng-hide="showPassword==true") + button.btn.btn-block.btn-danger.submit(type="button", ng-click="load_orderbook()", ng-show="!isIncomingOnly()", l10n) Remove + span( + rp-popover + rp-popover-placement="bottom" + rp-popover-trigger="hover" + l10n-rp-popover-title="Incoming trust" + l10n-data-content="You can't delete incoming trust lines. Incoming trust lines are when other Ripple users trust you.") + button.btn.btn-block.btn-danger.submit(type="button", ng-click="load_orderbook()", ng-show="isIncomingOnly()", disabled, l10n) Remove + span(ng-show='trust.balance !== "0" && orderbookStatus === "not"') + rp-confirm( + action-text="Are you sure you want to remove this gateway? Ripple Trade will return the balance of {{ trust.balance }} {{ trust.currency }} to the issuer. This action can't be undone." + action-button-text="Return balance and remove" + action-button-css="btn btn-default btn-danger custom-btn" + action-function="delete_account()" + cancel-button-css="btn btn-cancel" + cancel-button-text="cancel" + ng-hide="showPassword==true") + button.btn.btn-block.btn-danger.submit(type="button", ng-click="load_orderbook()", ng-show="!isIncomingOnly()", l10n) Remove + span( + rp-popover + rp-popover-placement="bottom" + rp-popover-trigger="hover" + l10n-rp-popover-title="Incoming trust" + l10n-data-content="You can't delete incoming trust lines. Incoming trust lines are when other Ripple users trust you.") + button.btn.btn-block.btn-danger.submit(type="button", ng-click="load_orderbook()", ng-show="isIncomingOnly()", disabled, l10n) Remove + span(ng-show='trust.balance === "0"') + button.btn.btn-block.btn-danger.submit(type="button", ng-click="delete_account()", ng-show="!isIncomingOnly()", l10n) Remove span( rp-popover rp-popover-placement="bottom" rp-popover-trigger="hover" l10n-rp-popover-title="Incoming trust" l10n-data-content="You can't delete incoming trust lines. Incoming trust lines are when other Ripple users trust you.") - button.btn.btn-block.btn-danger.submit(type="button", ng-click="load_orderbook()", ng-show="component.limit._value.t === 0", disabled, l10n) Remove - span(ng-show='trust.balance === "0"') - button.btn.btn-block.btn-danger.submit(type="button", ng-click="delete_account()", ng-show="!isIncoming()", l10n) Remove - span( - rp-popover - rp-popover-placement="bottom" - rp-popover-trigger="hover" - l10n-rp-popover-title="Incoming trust" - l10n-data-content="You can't delete incoming trust lines. Incoming trust lines are when other Ripple users trust you.") - button.btn.btn-block.btn-danger.submit(type="button", ng-click="delete_account()", ng-show="isIncoming()", disabled, l10n) Remove - .col-md-5.col-sm-5.col-xs-6 - a.btn.btn-block.btn-cancel(href="", ng-click="cancel()" - ng-disabled="trust.loading", l10n) cancel + button.btn.btn-block.btn-danger.submit(type="button", ng-click="delete_account()", ng-show="isIncomingOnly()", disabled, l10n) Remove + .col-md-5.col-sm-5.col-xs-6 + a.btn.btn-block.btn-cancel(href="", ng-click="cancel()" + ng-disabled="trust.loading", l10n) cancel //- Account Freeze div.col-xs-2(ng-show="component.freeze_peer") @@ -326,18 +329,36 @@ section.col-xs-12.content(ng-controller="TrustCtrl") rp-amount rp-max-digits rp-amount-currency='{{trust.limit}}' - ng-disabled='trust.loading || isIncoming()', required) + ng-disabled='trust.loading', required) .col-sm-2.col-md-2.inputPadding div.rippling-checkbox label(l10n) Rippling - input(name='rippling', type='checkbox', ng-model='trust.rippling', ng-disabled='trust.loading') + input(name='rippling', type='checkbox', ng-model='trust.rippling', ng-disabled='trust.balance !== "0" && isIncomingOnly() && ripplingEnabled()') .col-sm-7.col-md-6 .row.row-padding-small - .col-xs-6.col-sm-5 - button.btn.btn-block.btn-primary#save(type='submit' - ng-disabled='accountForm.$invalid || trust.loading') - span(ng-hide="trust.loading", l10n) Save - span(ng-show="trust.loading", l10n) Saving... + div(ng-hide="trust.loading && trust.state==='removing'") + .col-xs-6.col-sm-5(ng-hide='showEnableRipplingWarningMessage()') + button.btn.btn-block.btn-primary#save(type='submit' + ng-disabled='accountForm.$invalid || trust.loading') + span(ng-hide="trust.loading", l10n) Save + span(ng-show="trust.loading && trust.state==='saving'", l10n) Saving... + .col-xs-6.col-sm-5(ng-show='showEnableRipplingWarningMessage()') + rp-confirm( + action-text="Are you sure you want to enable rippling? This is an incoming trust line with a balance. If you enable rippling, you will not be able to disable it." + action-button-text="Enable rippling and save" + action-button-css="btn btn-default btn-danger" + action-function="save_account()" + cancel-button-css="btn btn-cancel" + cancel-button-text="cancel" + ng-hide="showPassword==true") + button.btn.btn-block.btn-primary#save(type='submit' + ng-disabled='accountForm.$invalid || trust.loading') + span(ng-hide="trust.loading", l10n) Save + span(ng-show="trust.loading && trust.state==='saving'", l10n) Saving... + .col-xs-6.col-sm-5(ng-show="trust.loading && trust.state==='removing'") + .row + .col-xs-12 + button.btn.btn-block.btn-danger(disabled, l10n) Removing... .col-xs-3.col-sm-4.col-md-3(ng-hide="trust.loading") .row.text-right .col-xs-12(ng-show='trust.balance !== "0" && orderbookStatus === "exists"') @@ -349,14 +370,14 @@ section.col-xs-12.content(ng-controller="TrustCtrl") cancel-button-css="btn btn-cancel" cancel-button-text="cancel" ng-hide="showPassword==true") - button.btn.btn-block.btn-danger.btn-xs.submit(type="button", ng-click="load_orderbook()", ng-show="!isIncoming()", l10n) Remove + button.btn.btn-block.btn-danger.btn-xs.submit(type="button", ng-click="load_orderbook()", ng-show="!isIncomingOnly()", l10n) Remove span( rp-popover rp-popover-placement="bottom" rp-popover-trigger="hover" l10n-rp-popover-title="Incoming trust" l10n-data-content="You can't delete incoming trust lines. Incoming trust lines are when other Ripple users trust you.") - button.btn.btn-block.btn-danger.btn-xs.submit(type="button", ng-click="load_orderbook()", ng-show="isIncoming()", disabled, l10n) Remove + button.btn.btn-block.btn-danger.btn-xs.submit(type="button", ng-click="load_orderbook()", ng-show="isIncomingOnly()", disabled, l10n) Remove .col-xs-12(ng-show='trust.balance !== "0" && orderbookStatus === "not"') rp-confirm( action-text="Are you sure you want to remove this gateway? Ripple Trade will return the balance of {{ trust.balance }} {{ trust.currency }} to the issuer. This action can't be undone." @@ -366,23 +387,23 @@ section.col-xs-12.content(ng-controller="TrustCtrl") cancel-button-css="btn btn-link" cancel-button-text="cancel" ng-hide="showPassword==true") - button.btn.btn-block.btn-danger.btn-xs.submit(type="button", ng-click="load_orderbook()", ng-show="!isIncoming()", l10n) Remove + button.btn.btn-block.btn-danger.btn-xs.submit(type="button", ng-click="load_orderbook()", ng-show="!isIncomingOnly()", l10n) Remove span( rp-popover rp-popover-placement="bottom" rp-popover-trigger="hover" l10n-rp-popover-title="Incoming trust" l10n-data-content="You can't delete incoming trust lines. Incoming trust lines are when other Ripple users trust you.") - button.btn.btn-block.btn-danger.btn-xs.submit(type="button", ng-click="load_orderbook()", ng-show="isIncoming()", disabled, l10n) Remove + button.btn.btn-block.btn-danger.btn-xs.submit(type="button", ng-click="load_orderbook()", ng-show="isIncomingOnly()", disabled, l10n) Remove .col-xs-12(ng-show='trust.balance === "0"') - button.btn.btn-block.btn-danger.btn-xs.submit(type="button", ng-click="delete_account()", ng-show="!isIncoming()", l10n) Remove + button.btn.btn-block.btn-danger.btn-xs.submit(type="button", ng-click="delete_account()", ng-show="!isIncomingOnly()", l10n) Remove span( rp-popover rp-popover-placement="bottom" rp-popover-trigger="hover" l10n-rp-popover-title="Incoming trust" l10n-data-content="You can't delete incoming trust lines. Incoming trust lines are when other Ripple users trust you.") - button.btn.btn-block.btn-danger.btn-xs.submit(type="button", ng-click="delete_account()", ng-show="isIncoming()", disabled, l10n) Remove + button.btn.btn-block.btn-danger.btn-xs.submit(type="button", ng-click="delete_account()", ng-show="isIncomingOnly()", disabled, l10n) Remove .col-xs-3 a.btn.btn-block.btn-cancel(href="", ng-click="cancel()" ng-disabled="trust.loading", l10n) cancel diff --git a/src/jade/tabs/tx.jade b/src/templates/tabs/tx.jade similarity index 79% rename from src/jade/tabs/tx.jade rename to src/templates/tabs/tx.jade index 2af00c630..8801bc067 100644 --- a/src/jade/tabs/tx.jade +++ b/src/templates/tabs/tx.jade @@ -1,4 +1,4 @@ -section.single.ddpage.content(ng-controller="TxCtrl", ng-switch on="state") +section.single.ddpage.content(ng-controller="TxCtrl", ng-switch="state") group(ng-switch-when="loading") p.literal img(src="img/button-s.png", class="loader") @@ -8,28 +8,28 @@ section.single.ddpage.content(ng-controller="TxCtrl", ng-switch on="state") group(ng-switch-when="loaded") p.literal.hash span(l10n) Transaction # - span {{transaction.hash}} + span(ng-bind="transaction.hash") div a(href="{{'https://ripplecharts.com/#/graph/' + transaction.hash}}", target="_blank", l10n) Show in graph hr p.literal.type(l10n) Transaction type: - strong {{transaction.TransactionType}} - group(ng-switch on="transaction.TransactionType") + strong(ng-bind="transaction.TransactionType") + group(ng-switch="transaction.TransactionType") group(ng-switch-when="Payment") group.clearfix dl.details.half dt span(l10n) Address sent from span : - dd {{transaction.Account}} + dd(ng-bind="transaction.Account") dt span(l10n) Amount sent span : - dd {{amountSent | rpamount}} {{amountSent | rpcurrency}} + dd {{transaction.amountSent | rpamount}} {{transaction.amountSent | rpcurrency}} dt span(l10n) Currency sent span : - dd {{amountSent | rpcurrencyfull}} + dd {{transaction.amountSent | rpcurrencyfull}} dl.details.half dt span(l10n) Address sent to @@ -55,18 +55,18 @@ section.single.ddpage.content(ng-controller="TxCtrl", ng-switch on="state") dt span(l10n) Destination tag span : - dd {{transaction.DestinationTag}} + dd(ng-bind="transaction.DestinationTag") hr dl.details dt span(l10n) Ledger number span : - dd {{transaction.inLedger}} + dd(ng-bind="transaction.ledger") group(ng-switch-default) group.clearfix dl.details.half dt(l10n) Address sent from: - dd {{transaction.Account}} + dd(ng-bind="transaction.Account") dl.details.half hr p.literal(l10n="Sorry, we don't have an info page layout for this transaction type yet.") diff --git a/src/templates/tabs/usd.jade b/src/templates/tabs/usd.jade new file mode 100644 index 000000000..cc1d241cc --- /dev/null +++ b/src/templates/tabs/usd.jade @@ -0,0 +1,191 @@ +section.col-xs-12.content(ng-controller='UsdCtrl') + + //- Disconnected + + group.disconnected(ng-hide='connected') + p.literal(l10n="err-you-must-be-online-to-see-this-screen") + | You have to be online to see this screen + + //- Funding + div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") + include ../tabs/banner/unfunded + + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling + + .row(ng-show='connected') + // Transaction errors coming from errors.js & transactionerror.jade + .col-sm-12(ng-show='mode=="error" || mode=="granting" && account.Balance') + group.mode-ripplerror + rp-transaction-status( + rp-engine-result="{{engine_result}}" + rp-engine-result-message="{{engine_result_message}}" + rp-accepted="{{engine_status_accepted}}" + rp-current-tab="trust") + + //- Generic non-tx related messages + .col-sm-12(ng-show='notif !== "clear"', ng-hide='!notif') + group.mode-granted.wide + group(ng-switch="notif") + group.result-error(ng-switch-when="error") + h2.tx-status(l10n) There was an error while saving your changes. + p(l10n) Please try again later. + .col-sm-12(ng-show='account.Balance && !can_add_trust && !usdConnected') + .alert.alert-warning(l10n) You must have at least + strong {{account.reserve_to_add_trust | rpamount:0}} XRP + | to add a new trust line. + a(href="https://ripple.com/wiki/Reserves", target="_blank") More information + + .col-sm-3 + include ../tabs/fund/menu + .col-sm-9.list(ng-hide='debug') + .nameLine(l10n) US Dollar Deposit + .gateway.row + .col-md-3 + .title(l10n) Gateway + .description(l10n) + | SnapSwap US (~SnapSwap) + br + a(href="https://snapswap.us", target="_blank") www.snapswap.us + .col-md-3 + .title(l10n) Availability + .description(l10n) USA + .col-md-3 + .title(l10n) Fees + .description(l10n) $ 0.31-$ 5.00 for deposits/withdrawals, .2% when transferring + .col-md-3 + .title(l10n) Rating + .description(l10n) + a(href="https://coinist.co/ripple/assets/usd-snapswap-us", target="_blank") read reviews + + .row.fund-tab-description + .col-xs-12.col-md-8.col-lg-6 + .descriptor(ng-show="!usdConnected", l10n) Ripple Trade has partnered with SnapSwap to provide easier access to USD. Following this action will enable SnapSwap to hold USD on your behalf. + + .row.fund-tab-description + .col-xs-7.col-sm-5.col-md-4 + button.btn.btn-large.btn-primary(ng-show="!usdConnected && !loading && loadState.account", type="submit", ng-click="save_account()", ng-disabled="!account.Balance || !can_add_trust", l10n) Add SnapSwap.us + button.btn.btn-large.btn-primary(ng-show="!usdConnected && loading", type="submit", ng-disabled="loading", l10n) Adding... + button.btn.btn-large.btn-primary(ng-show="showInstructions && usdConnected", type="submit", ng-click="toggle_instructions()", l10n) Hide instructions + button.btn.btn-large.btn-primary(ng-show="usdConnected && !showInstructions", type="submit", ng-click="toggle_instructions()", l10n) Show instructions + + .connect.col-xs-5.col-sm-7.col-md-8(ng-hide="loading") + .description.fa.fa-times(ng-show="!usdConnected && account.Balance", l10n) Not connected + .description.fa.fa-check(ng-show="usdConnected && account.Balance", l10n) Connected + .description(ng-show="!account.Balance && loadState.account", l10n) Your account has to be activated before you can add a gateway account. + .description(ng-show="!loadState.account") + img(src="img/button-s.png", class="loader") + span(class="loading_text", l10n) Loading... + + .row(ng-show="showInstructions && usdConnected") + .instructions.col-md-10 + a.dismiss(href="", id="hide", ng-click="toggle_instructions()", l10n) × + .title(l10n) NEW CUSTOMERS- SIGN UP AT SNAPSWAP.US + .description(l10n) + | Register and verify your account at SnapSwap US. You will need: + ul + li + p(l10n) A valid government-issued ID: driver license, passport, ID card, or visa stamp. + li + p(l10n) A proof of address: driver license, utility bill, bank statement, etc. + + .title(l10n) EXISTING SNAPSWAP US CUSTOMERS + .description(l10n) + ul + li + p(l10n) Login to your account + a(href="https://snapswap.us/signin", target="_blank") here. + + .title(l10n) DEPOSIT OPTIONS + .description(l10n) + ul + li + p(l10n) Deposit instantly via selected banks + li + p(l10n) Deposit via online bank transfer (3 business days) + + .title(l10n) WITHDRAWAL OPTIONS + .description(l10n) + ul + li + p(l10n) Directly to your bank account (3-4 business days) + li + p(l10n) Directly to your PayPal account (several minutes) + br + .gateway.row + .col-md-3 + .title(l10n) Gateway + .description(l10n) + | Bitstamp (~bitstamp) + br + a(href="https://www.bitstamp.net", target="_blank") www.bitstamp.net + .col-md-3 + .title(l10n) Availability + .description(l10n) All countries + .col-md-3 + .title(l10n) Fees + .description(l10n) Deposit/withdrawal and when transferring .2% + .col-md-3 + .title(l10n) Rating + .description(l10n) + a(href="https://coinist.co/ripple/gateways/bitstamp", target="_blank") read reviews + + .row.fund-tab-description + .col-xs-12.col-md-8.col-lg-6 + .descriptor(ng-show="!usd2Connected", l10n) Ripple Trade has partnered with Bitstamp to provide easier access to USD. Following this action will enable Bitstamp to hold USD on your behalf. + + .row.fund-tab-description + .col-xs-7.col-sm-5.col-md-4 + button.btn.btn-large.btn-primary(ng-show="!usd2Connected && !usdLoading && loadState.account", type="submit", ng-click="save_usd_account()", ng-disabled="!account.Balance || !can_add_trust", l10n) Add Bitstamp + button.btn.btn-large.btn-primary(ng-show="!usd2Connected && usdLoading", type="submit", ng-disabled="usdLoading", l10n) Adding... + button.btn.btn-large.btn-primary(ng-show="showUsdInstructions && usd2Connected", type="submit", ng-click="toggle_usd_instructions()", l10n) Hide instructions + button.btn.btn-large.btn-primary(ng-show="usd2Connected && !showUsdInstructions", type="submit", ng-click="toggle_usd_instructions()", l10n) Show instructions + + .connect.col-xs-5.col-sm-7.col-md-8(ng-hide="usdLoading") + .description.fa.fa-times(ng-show="!usd2Connected && account.Balance", l10n) Not connected + .description.fa.fa-check(ng-show="usd2Connected && account.Balance", l10n) Connected + .description(ng-show="!account.Balance && loadState.account", l10n) Your account has to be activated before you can add a gateway account. + .description(ng-show="!loadState.account") + img(src="img/button-s.png", class="loader") + span(class="loading_text", l10n) Loading... + + .row(ng-show="showUsdInstructions && usd2Connected") + .instructions.col-md-10 + a.dismiss(href="", id="hide", ng-click="toggle_usd_instructions()", l10n) × + .title(l10n) NEW CUSTOMERS- SIGN UP AT BITSTAMP + .description(l10n) + | Register and verify your account at + a(href="https://www.bitstamp.net", target="_blank") www.bitstamp.net + | . You will need: + ul + li + p(l10n) A valid government-issued ID: driver's license, international passport, or national ID card. + li + p(l10n) A proof of residency: tax return, council tax, utility bill, bank statement, certificate of residency issued by a government authority, etc. + + .title(l10n) DEPOSIT OPTIONS + .description(l10n) + ul + li + p(l10n) International wire transfer (.05% deposit fee on our side (minimum fee = $7.5) and 2 - 5 business days to credit) + li + p(l10n) SEPA (All funds transferred in EUR will be converted to USD, free of charge. 1-3 business days) + li + p(l10n) AstroPay (instantly from available countries) + li + p(l10n) Bitcoin + + .title(l10n) WITHDRAWAL OPTIONS + .description(l10n) + ul + li + p(l10n) International wire transfer (.09% fee on our side (minimum fee = $15) and 2 - 5 business days) + li + p(l10n) SEPA (1-3 business days) + li + p(l10n) Bitcoin + .description If you have any questions, please feel free to contact Bitstamp at + a(href="support@bitstamp.net", target="_blank") support@bitstamp.net + diff --git a/src/jade/tabs/widgets/assetallocation.jade b/src/templates/tabs/widgets/assetallocation.jade similarity index 100% rename from src/jade/tabs/widgets/assetallocation.jade rename to src/templates/tabs/widgets/assetallocation.jade diff --git a/src/jade/tabs/widgets/balances.jade b/src/templates/tabs/widgets/balances.jade similarity index 91% rename from src/jade/tabs/widgets/balances.jade rename to src/templates/tabs/widgets/balances.jade index f801fdfb4..31f1e8b88 100644 --- a/src/jade/tabs/widgets/balances.jade +++ b/src/templates/tabs/widgets/balances.jade @@ -6,7 +6,7 @@ div(rp-slide='showWidgetBalances') ul.fa-ul(ng-class="{'blank': !balances}") - li.currency-xrp(ng-click="entry.show=!entry.show") + li.currency-xrp(ng-click="entry.show=!entry.show", ng-init="entry.show=true") i.fa-li.fa-money h5 XRP div(ng-show="account.Balance") @@ -15,7 +15,7 @@ rp-popover-trigger="hover" rp-popover-delay l10n-rp-popover-content="Balance
{{ account.Balance | rpamount }} XRP" - ) {{ account.Balance | rpamount:{abs_precision: 2} }} + ) {{ account.Balance | rpamount:{abs_precision: 4} }} div(ng-hide="account.Balance") 0.00 dl(rp-slide="entry.show") dt @@ -33,7 +33,7 @@ rp-popover-trigger="hover" rp-popover-delay l10n-rp-popover-content="Reserve amount
{{ account.reserve | rpamount }} XRP" - ) {{ account.reserve | rpamount:{abs_precision: 2} }} + ) {{ account.reserve | rpamount:{abs_precision: 4} }} dd(ng-hide="account.reserve") 0.00 dt @@ -51,7 +51,7 @@ rp-popover-trigger="hover" rp-popover-delay l10n-rp-popover-content="Available amount
{{ account.max_spend | rpamount }} XRP" - ) {{ account.max_spend | rpamount:{abs_precision: 2} }} + ) {{ account.max_spend | rpamount:{abs_precision: 4} }} dd(ng-hide="account.max_spend") 0.00 li( @@ -82,8 +82,5 @@ l10n-rp-popover-content="Balance
{{ component | rpamount:{precision: 30, rel_min_precision: -2, hard_precision: true} }} {{ entry.total | rpcurrency }}" ) {{ component | rpamount:{tiny_precision: 3} }} - div.widget_loader(ng-show="showWidgetBalances && !balances") - img(src="img/sections.png", class="loader") - p(ng-show="$route.current.tabName == 'balance'") - a.btn.btn-cancel(href="#/trust", l10n) add gateway + a.btn.btn-cancel(href="#/xrp", l10n) add gateway diff --git a/src/jade/tabs/widgets/markets.jade b/src/templates/tabs/widgets/markets.jade similarity index 93% rename from src/jade/tabs/widgets/markets.jade rename to src/templates/tabs/widgets/markets.jade index 04bab0574..e86d509da 100644 --- a/src/jade/tabs/widgets/markets.jade +++ b/src/templates/tabs/widgets/markets.jade @@ -50,6 +50,3 @@ counter-currency="{{ secondCurrencySelected }}" counter-currency-issuer="{{ issuerNameToAddress(secondIssuerSelected, secondCurrencySelected) }}" ) - - div.widget_loader(ng-show="showWidgetAssetAllocation && !exchangeRatesNonempty") - img(src="img/sections.png", class="loader") diff --git a/src/jade/tabs/widgets/networth.jade b/src/templates/tabs/widgets/networth.jade similarity index 100% rename from src/jade/tabs/widgets/networth.jade rename to src/templates/tabs/widgets/networth.jade diff --git a/src/jade/tabs/widgets/orders.jade b/src/templates/tabs/widgets/orders.jade similarity index 96% rename from src/jade/tabs/widgets/orders.jade rename to src/templates/tabs/widgets/orders.jade index 6b9418a7f..06347277f 100644 --- a/src/jade/tabs/widgets/orders.jade +++ b/src/templates/tabs/widgets/orders.jade @@ -52,7 +52,7 @@ .col-md-3(rp-sort-header="sortOptions.sortField", rp-sort-header-reverse="sortOptions.reverse", rp-sort-header-field="limit") - span(l10n) Limit + span(l10n) Limit Price i.fa.fa-fw.fa-caret-down //- .col-md-2(l10n, rp-sort-header="sortOptions.sortField", //- rp-sort-header-reverse="sortOptions.reverse", @@ -62,8 +62,8 @@ .row(ng-repeat="entry in offers | rpcurrentpair:sortOptions.currentPairOnly:order.prev_settings | rpvalues | rpsortmyorders:sortOptions.sortField:sortOptions.reverse track by entry.seq", ng-hide="entry.isZero") .col-md-1.type(l10n-data-label="Type") - span.rp-hidden-md.rp-hidden-lg{{entry.type | rpucfirst}} - span.rp-hidden-xs.rp-hidden-sm{{entry.type | rptruncate:1}} + span.rp-hidden-md.rp-hidden-lg {{entry.type | rpucfirst}} + span.rp-hidden-xs.rp-hidden-sm {{entry.type | rptruncate:1}} .col-md-3.amount.rpamount(l10n-data-label="QTY" rp-address-popover, rp-address-popover-sum="entry.first" ) {{entry.first | rpamount:{hard_precision: true, precision: 6, tiny_precision: 6} }} diff --git a/src/jade/tabs/withdraw.jade b/src/templates/tabs/withdraw.jade similarity index 58% rename from src/jade/tabs/withdraw.jade rename to src/templates/tabs/withdraw.jade index e084a1d40..919e499e3 100644 --- a/src/jade/tabs/withdraw.jade +++ b/src/templates/tabs/withdraw.jade @@ -3,7 +3,7 @@ section.single.content(ng-controller='WithdrawCtrl') //- Disconnected group.disconnected(ng-hide='connected') - p.literal(l10n="err-you-must-be-online-to-see-this-screen", l10n) You have to be online to see this screen + p.literal(l10n="err-you-must-be-online-to-see-this-screen") You have to be online to see this screen //- Withdraw diff --git a/src/templates/tabs/xrp.jade b/src/templates/tabs/xrp.jade new file mode 100644 index 000000000..4015b1aa5 --- /dev/null +++ b/src/templates/tabs/xrp.jade @@ -0,0 +1,28 @@ +section.col-xs-12.content(ng-controller='XrpCtrl') + + //- Disconnected + + group.disconnected(ng-hide='connected') + p.literal(l10n="err-you-must-be-online-to-see-this-screen") + | You have to be online to see this screen + + //- Funding + div(ng-show="!loadingAccount && !account.Balance && loadState.account && connected") + include ../tabs/banner/unfunded + + div(ng-show='hasRTJapanTrust') + include banner/rtjapan + div(ng-show='hasRTJapanTrustWithRippling') + include banner/rtjapanrippling + + .row(ng-show='connected') + .col-sm-3 + include ../tabs/fund/menu + .col-sm-9.list + .fundXrp(ng-show="fundPage == 'xrp'") + div + .nameLine(l10n) Featured Gateways + .description(l10n) You can fund your account through gateways, which are entry and exit points off the Ripple network. + | Gateways will accept deposits from you and then issue you balances on the Ripple network in return. + | In order to hold a balance from a gateway, you must first add or trust the gateway. + a(href="https://ripple.com/knowledge_center/gateway-information/") Learn more about gateways. \ No newline at end of file diff --git a/test/e2e/accountPublic.js b/test/e2e/accountPublic.js deleted file mode 100644 index 4e4a93c5f..000000000 --- a/test/e2e/accountPublic.js +++ /dev/null @@ -1,91 +0,0 @@ -'use strict'; - -// Chai is a BDD / TDD assertion library -var chai = require('chai'); -var chaiAsPromised = require('chai-as-promised'); -var config = require('./protractor.conf.js').config; - -var helperForms = require('./utils/forms'); -var helperBrowser = require('./utils/browser'); - - -chai.use(chaiAsPromised); -var expect = chai.expect; - - -describe('public account', function() { - - before(function(){ - helperForms.login(config.user.username,config.user.password); - }); - - - function pressRenameSubmit() { - return $("form[name='renameForm'] button[type='submit']") - .click().then( - helperBrowser.waitForElementToDisplay.bind(this, $("div.showPublic div.alert-success")) - ); - } - - function waitForRenameSubmitButtonBecameAvailable() { - return helperBrowser.waitForElementToBecameAvailable($("form[name='renameForm'] button[type='submit']")); - } - - it('should show public account page', function(done) { - browser.get('#/account/public'); - - // Wait for the page to render - helperBrowser.waitForElementToDisplay($('#address')); - - expect($('.username').getText()).to.eventually.equal('~' + config.user.username) - .and.notify(done); - }); - - it('should show rename user controls', function(done) { - $('div.edit-account-btn-wrapper a').click(); - - expect($('#renameForm').isDisplayed()) - .to.eventually.be.true; - - expect($('#address').isDisplayed()) - .to.eventually.be.true - .and.notify(done); - }); - - - it('should allow to rename user', function(done) { - $('#username').sendKeys(config.user.username + '-E2E'); - $('#password').sendKeys(config.user.password); - - waitForRenameSubmitButtonBecameAvailable(); - - expect($("form[name='renameForm'] button[type='submit']").getAttribute('disabled')) - .to.eventually.be.null - .and.notify(done); - }); - - - it('should rename user', function(done) { - protractor.getInstance().ignoreSynchronization = true; - - pressRenameSubmit(); - - expect($('.username').getText()).to.eventually.equal('~' + config.user.username + '-E2E') - .and.notify(done); - }); - - it('should rename user back', function(done) { - $('div.edit-account-btn-wrapper a').click(); - - $('#username').sendKeys(config.user.username); - $('#password').sendKeys(config.user.password); - - waitForRenameSubmitButtonBecameAvailable(); - - pressRenameSubmit(); - - expect($('.username').getText()).to.eventually.equal('~' + config.user.username) - .and.notify(done); - }); - -}); diff --git a/test/e2e/gatewayAdvanced.js b/test/e2e/gatewayAdvanced.js deleted file mode 100644 index 9a7e4ccad..000000000 --- a/test/e2e/gatewayAdvanced.js +++ /dev/null @@ -1,126 +0,0 @@ -'use strict'; - -// Chai is a BDD / TDD assertion library -var chai = require('chai'); -var chaiAsPromised = require('chai-as-promised'); -var config = require('./protractor.conf.js').config; - -var helperForms = require('./utils/forms'); -var helperBrowser = require('./utils/browser'); -var TrustPage = require('./pages/trustPage.js'); -var AdvancedPage = require('./pages/advancedPage.js'); - - -chai.use(chaiAsPromised); -var expect = chai.expect; - -describe('gateway advanced', function() { - - var trustPage; - var advancedPage; - - before(function(){ - helperForms.login(config.user.username,config.user.password); - trustPage = new TrustPage(); - advancedPage = new AdvancedPage(); - advancedPage.goTo(); - }); - - it('should show advanced settings page', function(done) { - helperBrowser.waitForElementToDisplay(advancedPage.editAdvancedSettingsButton).then(done); - }); - - it('should show trust line advanced settings edit control', function(done) { - advancedPage.editAdvancedSettingsButton.click(). - then(helperBrowser.waitForElementToDisplay.bind(this, advancedPage.showAdvancedOptionsInput)). - then(done); - }); - - it('should save trust line advanced settings show on', function(done) { - advancedPage.showAdvancedOptionsInput.click(). - then(advancedPage.saveAdvancedSettingsButton.click). - then(helperBrowser.waitForElementToDisplay.bind(this, advancedPage.advancedSettingsShowHolder)). - then(done); - }); - - it('should show gateways page', function(done) { - trustPage.goTo(); - - helperBrowser.waitForElementToDisplay(trustPage.connectGatewayButton).then(done); - }); - - it('should show add gateway user controls', function(done) { - trustPage.connectGatewayButton.click(); - - expect(trustPage.gatewayAddressInput.isDisplayed()) - .to.eventually.be.true - .and.notify(done); - }); - - it('should show trust amount input field', function(done) { - expect(trustPage.gatewayTrustAmountInput.isDisplayed()) - .to.eventually.be.true - .and.notify(done); - }); - - it('should connect a gateway using Ripple address', function(done) { - var self = this; - trustPage.putAddressAdvanced(config.gateway.address, 'USD', "1000"). - then(trustPage.connectGatewaySubmit.bind(trustPage, config.user.password)). - then(done); - }); - - it('should show gateway', function(done) { - expect(trustPage.usdGatewayTitle).to.eventually.equal('USD - US Dollar') - .and.notify(done); - }); - - it('should show edit limit input', function(done) { - trustPage.usdGatewayEditButton.click(). - then(helperBrowser.waitForElementToDisplay.bind(this, trustPage.editLimitInput)). - then(done); - }); - - it('should show new limit', function(done) { - trustPage.editLimitInput.clear(). - then(function () { - trustPage.editLimitInput.sendKeys('200'); - }). - then(function() { - protractor.getInstance().ignoreSynchronization = true; - return trustPage.usdGatewaySaveButton.click(); - }).then(helperBrowser.waitForElement.bind(this, trustPage.changesSavedHolder)). - then(function() { - expect(trustPage.usdGatewayLimitHolder.getText()).to.eventually.equal('200.00') - .and.notify(done); - }); - }); - - it('should remove a gateway', function(done) { - trustPage.usdGatewayEditButton.click(). - then(trustPage.usdGatewayAdvancedDeleteButton.click). - then(helperBrowser.waitForElement.bind(this, trustPage.gatewayRemovedHolder)). - then(function() { - advancedPage.goTo(); - done(); - }); - }); - - it('should show advanced settings page 2', function(done) { - helperBrowser.waitForElementToDisplay(advancedPage.editAdvancedSettingsButton).then(done); - }); - - it('should show trust line advanced settings edit control 2', function(done) { - advancedPage.editAdvancedSettingsButton.click(). - then(helperBrowser.waitForElementToDisplay.bind(this, advancedPage.showAdvancedOptionsInput)). - then(done); - }); - - it('should save trust line advanced settings show off', function(done) { - advancedPage.showAdvancedOptionsInput.click(). - then(advancedPage.saveAdvancedSettingsButton.click). - then(helperBrowser.waitForElementToDisplay.bind(this, advancedPage.advancedSettingsHideHolder)). - then(done); - }); - -}); diff --git a/test/e2e/gatewaySimple.js b/test/e2e/gatewaySimple.js deleted file mode 100644 index f228d18e7..000000000 --- a/test/e2e/gatewaySimple.js +++ /dev/null @@ -1,101 +0,0 @@ -'use strict'; - -// Chai is a BDD / TDD assertion library -var chai = require('chai'); -var chaiAsPromised = require('chai-as-promised'); -var config = require('./protractor.conf.js').config; - -var helperForms = require('./utils/forms'); -var helperBrowser = require('./utils/browser'); -var TrustPage = require('./pages/trustPage.js'); - - -chai.use(chaiAsPromised); -var expect = chai.expect; - -describe('gateway simple', function() { - - var page; - - before(function(){ - helperForms.login(config.user.username,config.user.password); - page = new TrustPage(); - page.goTo(); - }); - - it('should show gateways page', function(done) { - helperBrowser.waitForElementToDisplay(page.connectGatewayButton).then(done); - // hack. check if trust line advanced settings is on - than gatewayAdvanced - // $('#trust_counterparty').evaluate('advanced_feature_switch').then(function(on) { - // if (on) { - // $('#trust_counterparty').evaluate('advanced_feature_switch = true;'); - // } - // }); - }); - - it('should show add gateway user controls', function(done) { - page.connectGatewayButton.click(); - - // $('#trust_counterparty').evaluate('advanced_feature_switch').then(function(r) { }); - expect(page.gatewayAddressInput.isDisplayed()) - .to.eventually.be.true - .and.notify(done); - }); - - it('should connect a gateway using Ripple address', function(done) { - page.connectGateway(config.gateway.address, 'USD', config.user.password).then(done); - }); - - it('should show gateway', function(done) { - // protractor.getInstance().ignoreSynchronization = false; - expect(page.usdGatewayTitle).to.eventually.equal('USD - US Dollar') - .and.notify(done); - }); - - it('should remove a gateway', function(done) { - page.removeGateway('USD').then(done); - }); - - it('should show add gateway user controls (by name)', function(done) { - page.connectGatewayButton.click(); - - expect(page.gatewayAddressInput.isDisplayed()) - .to.eventually.be.true - .and.notify(done); - }); - - it('should connect a gateway using Ripple name', function(done) { - page.connectGateway(config.gateway.name, 'USD', config.user.password).then(done); - }); - - it('should show USD gateway', function(done) { - expect(page.usdGatewayTitle).to.eventually.equal('USD - US Dollar') - .and.notify(done); - }); - - it('should remove a USD gateway', function(done) { - page.removeGateway('USD').then(done); - }); - - it('should show add gateway user controls (fake currency)', function(done) { - page.connectGatewayButton.click().then(function() { - expect(page.gatewayAddressInput.isDisplayed()) - .to.eventually.be.true - .and.notify(done); - }); - }); - - it('should connect a gateway with fake currency', function(done) { - page.connectGateway(config.gateway.address, config.gateway.fakeCurrency, config.user.password).then(done); - }); - - it('should show gateway with fake currency', function(done) { - expect(page.gatewayTitle(config.gateway.fakeCurrency)).to.eventually.equal(config.gateway.fakeCurrency) - .and.notify(done); - }); - - it('should remove a fake currency gateway', function(done) { - page.removeGateway(config.gateway.fakeCurrency).then(done); - }); - -}); diff --git a/test/e2e/login.js b/test/e2e/login.js deleted file mode 100644 index 73c39a47e..000000000 --- a/test/e2e/login.js +++ /dev/null @@ -1,97 +0,0 @@ -'use strict'; - -// Chai is a BDD / TDD assertion library -var chai = require('chai'); -var chaiAsPromised = require('chai-as-promised'); -var config = require('./protractor.conf.js').config; - -var helperForms = require('./utils/forms'); -var helperBrowser = require('./utils/browser'); - -chai.use(chaiAsPromised); -var expect = chai.expect; - -describe('bootstrap', function() { - before(function() { - browser.get('/#'); - }); - - it('should automatically redirect to /register when location hash/fragment is empty', function(done) { - helperBrowser.waitForNavigation('/#'); - expect(browser.getCurrentUrl()) - .to.eventually - .contain('/register') - .and.notify(done); - }); -}); - -describe('migration', function() { - - before(function(){ - browser.get('#/migrate'); - }); - - it('should render migrate when user navigates to /migrate', function(done) { - expect($("form[name='loginForm']").getText()) - .to.exist - .and.notify(done); - }); - - it('should take old user to registration page', function(done) { - helperForms.migrate(config.oldUser.username,config.oldUser.password); - - // Check if it takes to the register page - expect(browser.getCurrentUrl()) - .to.eventually - .contain('/register') - .and.notify(done); - }); - -}); - -describe('login', function() { - - before(function(){ - browser.get('#/login'); - }); - - it('should render login when user navigates to /login', function(done) { - expect($("form[name='loginForm']").getText()) - .to.exist - .and.notify(done); - }); - - it('should login a user then change route to /balance', function(done) { - helperForms.login(config.user.username,config.user.password); - - // Check if it takes to the balance page (success login) - expect(browser.getCurrentUrl()) - .to.eventually - .contain('/balance') - .and.notify(done); - }); - - it('should not login a user with wrong password', function(done) { - helperForms.logout(); - browser.get('#/login'); - browser.getCurrentUrl() - .then(function(url){ - // It's already logged in if the page is other then login or register - if (url.match('login') || url.match('register')){ - browser.get('#/login'); - - $(".auth-form-container #login_username").sendKeys(config.user.username); - $(".auth-form-container #login_password").sendKeys("wrongpassword"); - $("#loginBtn").click() - .then(function(){ - var errorMessage = $("form[name='loginForm'] .text-status .backend b"); - helperBrowser.waitForElement(errorMessage); - expect(errorMessage.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - } - }); - }); - -}); diff --git a/test/e2e/myOrders.js b/test/e2e/myOrders.js deleted file mode 100644 index af1a82b0d..000000000 --- a/test/e2e/myOrders.js +++ /dev/null @@ -1,156 +0,0 @@ -'use strict'; - -// Chai is a BDD / TDD assertion library -var chai = require('chai'); -var chaiAsPromised = require('chai-as-promised'); -var config = require('./protractor.conf.js').config; - -var helperForms = require('./utils/forms'); -var helperBrowser = require('./utils/browser'); -var TradePage = require('./pages/tradePage.js'); - - -chai.use(chaiAsPromised); -var expect = chai.expect; - -describe('My Orders', function() { - - var page; - - before(function(){ - helperForms.login(config.user.username,config.user.password); - page = new TradePage(); - page.goTo(); - }); - - it('should show trade page', function(done) { - helperBrowser.waitForElement(page.myOrdersMsgHolder).then(done); - }); - - it('should set currency pair to XRP/USD.SnapSwap', function(done) { - page.setCurrencyPair('XRP/USD.SnapSwap').then(function() { - helperBrowser.waitForElement(page.sellXRPButton).then(done); - }); - }); - - it('should enable sell button', function(done) { - page.enterOrder(0.0001, 987).then(function () { - helperBrowser.waitForElementToBecameAvailable(page.sellXRPButton).then(done); - }); - }); - - it('should confirm fat finger', function(done) { - page.sellXRPButton.click().then(function () { - helperBrowser.waitForElementToBecameAvailable(page.confirmFatButton).then(done); - }); - }); - - it('should confirm show order', function(done) { - page.confirmOrder(config.user.password).then(done); - }); - - it('should enable sell button 2', function(done) { - page.enterOrder(0.0002, 907).then(function () { - helperBrowser.waitForElementToBecameAvailable(page.sellXRPButton).then(done); - }); - }); - - it('should confirm fat finger 2', function(done) { - page.sellXRPButton.click().then(function () { - helperBrowser.waitForElementToBecameAvailable(page.confirmFatButton).then(done); - }); - }); - - it('should confirm show order 2', function(done) { - page.confirmOrder(config.user.password).then(done); - }); - - it('should sort qty desc', function(done) { - var self = this; - page.qtyHead.click(). - then(browser.sleep.bind(this, 1000)). - then(function () { - page.qty.then(function(items) { - expect(items.length).to.equal(2); - expect(items[0].getText()).to.eventually.equal('0.0002'); - }); - }); - }); - - it('should sort qty asc', function(done) { - page.qtyHead.click(). - then(browser.sleep.bind(this, 1000)). - then(function () { - page.qty.then(function(items) { - expect(items[0].getText()).to.eventually.equal('0.0001'); - }); - }); - }); - - it('should sort limit desc', function(done) { - page.limitHead.click(). - then(browser.sleep.bind(this, 1000)). - then(function () { - page.limit.then(function(items) { - expect(items[0].getText()).to.eventually.equal('987'); - }); - }); - }); - - it('should sort limit asc', function(done) { - page.limitHead.click(). - then(browser.sleep.bind(this, 1000)). - then(function () { - page.limit.then(function(items) { - expect(items[0].getText()).to.eventually.equal('907'); - }); - }); - }); - - it('should set currency pair to XRP/USD.Bitstamp', function(done) { - page.setCurrencyPair('XRP/USD.Bitstamp').then(function() { - helperBrowser.waitForElement(page.sellXRPButton).then(done); - }); - }); - - it('should show current pairs only', function(done) { - helperBrowser.waitForElementToDisplay(page.currentPairOnly). - then(page.currentPairOnly.click). - then(browser.sleep.bind(this, 100)). - then(function() { - page.qty.then(function(items) { - expect(items.length).to.equal(0); - }); - }); - }); - - it('should show orders back', function(done) { - helperBrowser.waitForElementToDisplay(page.currentPairOnly). - then(page.currentPairOnly.click). - then(browser.sleep.bind(this, 100)). - then(function() { - page.qty.then(function(items) { - expect(items.length).to.equal(2); - }); - }); - }); - - it('should cancel all orders', function(done) { - function checkCount() { - page.limit.count().then(function(len) { - if (len == 0) { - done() - } else { - checkCount(); - } - }); - } - - page.cancelAllOrders(config.user.password). - then(browser.sleep.bind(this, 100)). - then(function() { - checkCount(); - }); - }); - -}); diff --git a/test/e2e/pages/advancedPage.js b/test/e2e/pages/advancedPage.js deleted file mode 100644 index c2b9d31ad..000000000 --- a/test/e2e/pages/advancedPage.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var AdvancedPage = function () { - this.editAdvancedSettingsButton = $('form[name="accountsAdvForm"] div[ng-hide="editAcctOptions"] a.btn-cancel'); - this.showAdvancedOptionsInput = $('input[name="acct_adv"]'); - this.saveAdvancedSettingsButton = $('form[name="accountsAdvForm"] #save'); - this.advancedSettingsShowHolder = $('form[name="accountsAdvForm"] div[ng-show="advanced_feature_switch"]'); - this.advancedSettingsHideHolder = $('form[name="accountsAdvForm"] div[ng-hide="advanced_feature_switch"]'); -}; - -AdvancedPage.prototype.goTo = function () { - browser.get('#/advanced'); -} - - -module.exports = AdvancedPage; diff --git a/test/e2e/pages/tradePage.js b/test/e2e/pages/tradePage.js deleted file mode 100644 index 5ae80861e..000000000 --- a/test/e2e/pages/tradePage.js +++ /dev/null @@ -1,99 +0,0 @@ -'use strict'; - -var helperBrowser = require('../utils/browser'); - -var TradePage = function () { - this.myOrdersMsgHolder = $('#myOrdersMsg'); - this.currencyPairInput = $('#currency_pair'); - this.sellXRPButton = $('form[name="tradeForm"] button[btn-type="sell"]'); - this.sellAmountInput = $('form[name="tradeForm"] input[name="amount"][input-type="sell"]'); - this.sellPriceInput = $('form[name="tradeForm"] input[name="price"][input-type="sell"]'); - this.confirmFatButton = $('form.mode-confirm button.submit'); - this.unlockPasswordInput = $("div.modal-dialog #popup_unlock_password"); - this.unlockPasswordButton = $("div.modal-dialog div.unlock-btns-wrapper button.modal-submit-btn"); - - this.orderIsActiveMsg = $("group.result-success[ng-show=\"tx_result=='cleared' && executedOnOfferCreate=='none'\"]"); - this.submitAnotherButton = $("a[ng-click=\"reset_widget(type)\"]"); - this.qtyHead = $('div[rp-sort-header-field="qty"]'); - this.limitHead = $('div[rp-sort-header-field="limit"]'); - this.qty = $$("div[data-label='QTY']"); - this.limit = $$("div[data-label='Limit']"); - this.currentPairOnly = $('input[name="current_pair_only"]'); - this.cancelAll = $('.listings .my .row rp-popup a.btn-cancel.btn-a'); - this.cancelAllConfirm = $('body div.modal button[ng-click="cancel_all_orders()"]'); -}; - -TradePage.prototype.goTo = function () { - browser.get('#/trade'); -} - -TradePage.prototype.setCurrencyPair = function (pair) { - var self = this; - return this.currencyPairInput.clear(). - then(function() { - return self.currencyPairInput.sendKeys(pair, protractor.Key.ENTER); - }); -} - -TradePage.prototype.enterOrder = function (amount, price) { - var self = this; - return helperBrowser.waitForElement(this.sellAmountInput). - then(this.sellAmountInput.clear). - then(function() { - return self.sellAmountInput.sendKeys(amount); - }). - then(this.sellPriceInput.clear). - then(function() { - return self.sellPriceInput.sendKeys(price); - }); -} - -TradePage.prototype.confirmOrder = function (password) { - var self = this; - - return helperBrowser.waitForElementToBecameAvailable(this.confirmFatButton). - then(this.confirmFatButton.click). - then(browser.sleep.bind(self, 1000)). - then(function() { - return self.unlockPasswordInput.isDisplayed(); - }). - then(function(isUnlockDisplayed) { - /// it should show password input - if (isUnlockDisplayed) { - return self.unlockPasswordInput.sendKeys(password).then(function() { - protractor.getInstance().ignoreSynchronization = true; - return self.unlockPasswordButton.click(); - }); - } else { - return protractor.promise.fulfilled(true); - } - }). - then(helperBrowser.waitForElement.bind(self, this.orderIsActiveMsg)). - then(this.submitAnotherButton.click); -} - -TradePage.prototype.cancelAllOrders = function (password) { - var self = this; - - return helperBrowser.waitForElementToDisplay(this.cancelAll). - then(this.cancelAll.click). - then(browser.sleep.bind(self, 10)). - then(this.cancelAllConfirm.click). - then(function() { - return self.unlockPasswordInput.isPresent(); - }). - then(function(isUnlockDisplayed) { - /// it should show password input - if (isUnlockDisplayed) { - return self.unlockPasswordInput.sendKeys(password).then(function() { - protractor.getInstance().ignoreSynchronization = true; - return self.unlockPasswordButton.click(); - }); - } else { - return protractor.promise.fulfilled(true); - } - }); -} - - -module.exports = TradePage; diff --git a/test/e2e/pages/trustPage.js b/test/e2e/pages/trustPage.js deleted file mode 100644 index 0b4478439..000000000 --- a/test/e2e/pages/trustPage.js +++ /dev/null @@ -1,108 +0,0 @@ -'use strict'; - -var helperBrowser = require('../utils/browser'); - -var TrustPage = function () { - this.connectGatewayButton = element(by.css('.btn-add-trust a')); - this.gatewayAddressInput = element(by.css('#trust_counterparty')); - this.trustFormSubmitButton = element(by.css("form[name='trustForm'] a.btn.btn-primary.submit")); - this.currencyInput = element(by.css('form[name="trustForm"] div[ng-hide="advanced_feature_switch"] #trust_amount_currency')); - this.confirmGatewayButton = element(by.css("div.modal-dialog button.btn-default.btn-success")); - this.unlockPasswordInput = element(by.css("div.modal-dialog #popup_unlock_password")); - this.unlockPasswordButton = element(by.css("div.modal-dialog div.unlock-btns-wrapper button.modal-submit-btn")); - this.gatewayAddedHolder = element(by.css('group.result-success[ng-show=\'tx_result=="cleared"\'] h2')); -// this.usdGatewayTitle = element(by.css('div.currency-usd span.currency')).getText(); - this.usdGatewayEditButton = element(by.css('div.currency-usd div.lines a[ng-click="edit_account()"]')); - this.usdGatewayDeleteButton = element(by.css('div.currency-usd div.lines span[ng-show="editing && !advanced_feature_switch"] button[ng-click="delete_account()"]')); - this.gatewayRemovedHolder = element(by.css('group[on="notif"] group.result-success[ng-switch-when="gateway_removed"]')); - - // for gateway advanced test - this.gatewayTrustAmountInput = element(by.css('#trust_amount')); - this.advancedCurrencyInput = element(by.css('form[name="trustForm"] div[ng-show="advanced_feature_switch"] #trust_amount_currency')); - // editLimitInput = element(by.model('trust.limit')); - this.editLimitInput = element(by.css('div.currency-usd input[name="limit"]')); - this.usdGatewaySaveButton = element(by.css('div.currency-usd div.lines div[ng-show="editing && advanced_feature_switch"] #save')); - this.changesSavedHolder = element(by.css('group[on="notif"] group.result-success[ng-switch-when="success"]')); - // exactBinding not working - protractor is too old :( - // usdGatewayLimitHolder = element(by.css('div.currency-usd div.lines ')).element(by.exactBinding('component.limit')); - this.usdGatewayLimitHolder = element(by.css('div.currency-usd div.lines div[ng-show="advanced_feature_switch"] div.ng-binding')); - this.usdGatewayAdvancedDeleteButton = element(by.css('div.currency-usd div.lines div[ng-show="editing && advanced_feature_switch"] button[ng-click="delete_account()"]')); -}; - -Object.defineProperty(TrustPage.prototype, 'usdGatewayTitle', { - get: function() { - return ($('div.currency-usd span.currency')).getText(); - } -}); - -TrustPage.prototype.goTo = function () { - browser.get('#/trust'); -} - -TrustPage.prototype.gatewayTitle = function (currency) { - return $('div.currency-' + currency.toLowerCase() + ' span.currency').getText(); -} - -TrustPage.prototype.putAddress = function (address, currency) { - var self = this; - return this.gatewayAddressInput.sendKeys(address). - then(this.currencyInput.clear). - then(function() { - return self.currencyInput.sendKeys(currency); - }); -} - -TrustPage.prototype.connectGateway = function (addressOrName, currency, password) { - return this.putAddress(addressOrName, currency).then(this.connectGatewaySubmit.bind(this, password)); -} - -TrustPage.prototype.connectGatewaySubmit = function (password) { - var self = this; - - return helperBrowser.waitForElementToBecameAvailable(this.trustFormSubmitButton). - then(this.trustFormSubmitButton.click). - then(helperBrowser.waitForElementToDisplay.bind(self, this.confirmGatewayButton)). - then(this.confirmGatewayButton.click). - then(browser.sleep.bind(self, 1000)). - then(function() { - return self.unlockPasswordInput.isPresent(); - }). - then(function(isUnlockDisplayed) { - /// it should show password input - if (isUnlockDisplayed) { - return self.unlockPasswordInput.sendKeys(password).then(function() { - protractor.getInstance().ignoreSynchronization = true; - return self.unlockPasswordButton.click(); - }); - } else { - return protractor.promise.fulfilled(true); - } - }). - then(helperBrowser.waitForElementToDisplay.bind(self, this.gatewayAddedHolder)); -} - -TrustPage.prototype.removeGateway = function (currency) { - var self = this; - return $('div.currency-' + currency.toLowerCase() + ' div.lines a[ng-click="edit_account()"]').click(). - then(browser.sleep.bind(this, 30)). - then($('div.currency-' + currency.toLowerCase() + ' div.lines span[ng-show="editing && !advanced_feature_switch"] button[ng-click="delete_account()"]').click). - then(helperBrowser.waitForElement.bind(self, self.gatewayRemovedHolder)). - then(browser.sleep.bind(this, 1000)); -} - - -// for gateway advanced test -TrustPage.prototype.putAddressAdvanced = function (address, currency, amount) { - var self = this; - return this.gatewayAddressInput.sendKeys(address). - then(this.advancedCurrencyInput.clear). - then(function () { - self.advancedCurrencyInput.sendKeys(currency); - }). - then(this.gatewayTrustAmountInput.clear). - then(function () { - self.gatewayTrustAmountInput.sendKeys(amount); - }); -} - -module.exports = TrustPage; diff --git a/test/e2e/protractor.conf-example.js b/test/e2e/protractor.conf-example.js deleted file mode 100644 index f5121e663..000000000 --- a/test/e2e/protractor.conf-example.js +++ /dev/null @@ -1,36 +0,0 @@ -exports.config = { - seleniumAddress: 'http://localhost:4444/wd/hub', - framework: 'mocha', - mochaOpts: { - timeout: 20000 - }, - specs: ['*.js'], - capabilities: { - browserName: 'chrome' - }, - baseUrl: 'http://local.rippletrade.com/index_debug.html', - - // Credentials of a funded test account - user: { - username: '', - password: '', - secret: '' - }, - - // OldBlob user credentials for testing the migration - oldUser: { - username: '', - password: '', - secret: '' - }, - - // gateway test - gateway : { - address: 'rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q', - name: '~snapswap', - fakeCurrency: '111' - }, - - // Ripple address to send xrp to - counterparty: '' -}; diff --git a/test/e2e/register.js b/test/e2e/register.js deleted file mode 100644 index f1f571d75..000000000 --- a/test/e2e/register.js +++ /dev/null @@ -1,282 +0,0 @@ -'use strict'; - -// Chai is a BDD / TDD assertion library -var chai = require('chai'); -var chaiAsPromised = require('chai-as-promised'); -var config = require('./protractor.conf.js').config; - -var helperForms = require('./utils/forms'); -var helperBrowser = require('./utils/browser'); - -chai.use(chaiAsPromised); -var expect = chai.expect; - -describe('register form', function() { - - beforeEach(function(){ - browser.get('#/register'); - }); - - it('should render the register form', function(done) { - expect($("form[name='registerForm']").getText()) - .to.exist - .and.notify(done); - }); -}); - -describe('user name field', function() { - - beforeEach(function(){ - browser.get('#/register'); - }); - - it('should accept a non-existing user name', function(done) { - $(".auth-form-wrapper #register_username") - .sendKeys(config.user.username + "-new") - .then(function(){ - var message = $("form[name='registerForm'] .success[rp-error-valid]"); - helperBrowser.waitForElement(message); - expect(message.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - }); - - it('should deny an existing user name', function(done) { - $(".auth-form-wrapper #register_username") - .sendKeys(config.user.username) - .then(function(){ - var message = $("form[name='registerForm'] .errorGroup[rp-errors='register_username'] span[ng-switch-when='exists']"); - helperBrowser.waitForElement(message); - expect(message.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - }); - - it('should deny a reserved user name', function(done) { - $(".auth-form-wrapper #register_username") - .sendKeys("google") - .then(function(){ - var message = $("form[name='registerForm'] .errorGroup[rp-errors='register_username'] span[ng-switch-when='reserved']"); - helperBrowser.waitForElement(message); - expect(message.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - }); - - it('should deny a too short user name', function(done) { - $(".auth-form-wrapper #register_username") - .sendKeys("xy") - .then(function(){ - var message = $("form[name='registerForm'] .errorGroup[rp-errors='register_username'] span[ng-switch-when='tooshort']"); - expect(message.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - }); - - it('should deny a user name with a wrong charset', function(done) { - $(".auth-form-wrapper #register_username") - .sendKeys(config.user.username + "ä") - .then(function(){ - var message = $("form[name='registerForm'] .errorGroup[rp-errors='register_username'] span[ng-switch-when='charset']"); - expect(message.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - }); - - it('should deny a user name starting with a hyphen', function(done) { - $(".auth-form-wrapper #register_username") - .sendKeys("-" + config.user.username) - .then(function(){ - var message = $("form[name='registerForm'] .errorGroup[rp-errors='register_username'] span[ng-switch-when='starthyphen']"); - expect(message.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - }); - - it('should deny a user name ending with a hyphen', function(done) { - $(".auth-form-wrapper #register_username") - .sendKeys(config.user.username + "-") - .then(function(){ - var message = $("form[name='registerForm'] .errorGroup[rp-errors='register_username'] span[ng-switch-when='endhyphen']"); - expect(message.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - }); - - it('should deny a user name with multiple hyphens', function(done) { - $(".auth-form-wrapper #register_username") - .sendKeys(config.user.username + "--x") - .then(function(){ - var message = $("form[name='registerForm'] .errorGroup[rp-errors='register_username'] span[ng-switch-when='multhyphen']"); - expect(message.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - }); -}); - -describe('password field', function() { - - beforeEach(function(){ - browser.get('#/register'); - }); - - it('should deny a weak password', function(done) { - $(".auth-form-wrapper #register_password") - .sendKeys("123456") - .then(function(){ - var message = $(".ng-invalid-rp-strong-password#register_password"); - expect(message.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - }); - - it('should accept a strong password', function(done) { - $(".auth-form-wrapper #register_password") - .sendKeys("73571n6.") - .then(function(){ - var message = $(".ng-valid-rp-strong-password#register_password"); - expect(message.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - }); - - it('should deny non-matching passwords', function(done) { - $(".auth-form-wrapper #register_password").sendKeys("73571n6."); - $(".auth-form-wrapper #register_password2").sendKeys("73571n6") - .then(function(){ - var message = $(".ng-invalid-rp-same-in-set#register_password"); - expect(message.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - }); - - it('should accept matching passwords', function(done) { - $(".auth-form-wrapper #register_password").sendKeys("73571n6."); - $(".auth-form-wrapper #register_password2").sendKeys("73571n6.") - .then(function(){ - var message = $(".ng-valid-rp-same-in-set#register_password"); - expect(message.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - }); -}); - -describe('email field', function() { - - beforeEach(function(){ - browser.get('#/register'); - }); - - it('should deny an invalid email', function(done) { - $(".auth-form-wrapper #register_email").sendKeys("e2e-test") - .then(function(){ - var message = $(".ng-invalid-email#register_email"); - expect(message.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - }); - - it('should accept a valid email', function(done) { - $(".auth-form-wrapper #register_email").sendKeys("e2e-test+index@example.com") - .then(function(){ - var message = $(".ng-valid-email#register_email"); - expect(message.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - }); -}); - -describe('secret field', function() { - - beforeEach(function(){ - browser.get('#/register'); - }); - - it('should deny an invalid secret', function(done) { - $(".auth-form-wrapper a[ng-click='showMasterKeyInput=true']").click(); - $(".auth-form-wrapper #register_masterkey").sendKeys("test-invalid-key") - .then(function(){ - var message = $(".ng-invalid-rp-master-key#register_masterkey"); - expect(message.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - }); - - it('should accept a valid secret', function(done) { - $(".auth-form-wrapper a[ng-click='showMasterKeyInput=true']").click(); - $(".auth-form-wrapper #register_masterkey").sendKeys(config.oldUser.secret) - .then(function(){ - var message = $(".ng-valid-rp-master-key#register_masterkey"); - expect(message.isPresent()) - .to.eventually.be.true; - message = $(".ng-valid-rp-master-address-exists#register_masterkey"); - helperBrowser.waitForElement(message); - expect(message.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - }); - - it('should deny a valid secret that already has an account', function(done) { - $(".auth-form-wrapper a[ng-click='showMasterKeyInput=true']").click(); - $(".auth-form-wrapper #register_masterkey").sendKeys(config.user.secret) - .then(function(){ - var message = $(".register_masterkey .auth-attention:not(.ng-hide)"); - helperBrowser.waitForElement(message); - expect(message.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - }); -}); - -describe('register button', function() { - - var username = "e2e-test-reg-" + Math.floor(Math.random() * 1000000); - - before(function(){ - browser.get('#/register'); - $(".auth-form-wrapper #register_username").sendKeys(username); - $(".auth-form-wrapper #register_password").sendKeys(config.user.password); - $(".auth-form-wrapper #register_password2").sendKeys(config.user.password); - $(".auth-form-wrapper #register_email").sendKeys("test@example.com"); - $(".auth-form-wrapper #terms").click() - .then(function(){ - var message = $("form[name='registerForm'] .success[rp-error-valid]"); - helperBrowser.waitForElement(message); - }); - }); - - it('should be active', function(done) { - expect($(".submit-btn-container button").getAttribute('disabled')) - .to.eventually.not.equal('disabled') - .and.notify(done); - }); - - it('click should register the user', function(done) { - $(".submit-btn-container button").click() - .then(function () { - var message = $("form[name='resendForm']"); - helperBrowser.waitForElement(message); - expect(message.isPresent()) - .to.eventually.be.true - .and.notify(done); - }); - }); - -}); diff --git a/test/e2e/security.js b/test/e2e/security.js deleted file mode 100644 index 9b4054b42..000000000 --- a/test/e2e/security.js +++ /dev/null @@ -1,94 +0,0 @@ -'use strict'; - -// Chai is a BDD / TDD assertion library -var chai = require('chai'); -var chaiAsPromised = require('chai-as-promised'); -var config = require('./protractor.conf.js').config; - -var helperForms = require('./utils/forms'); - -chai.use(chaiAsPromised); -var expect = chai.expect; - -describe('password setting', function() { - - // security page object - var SecurityPage = function() { - this.changePasswordButton = $('a[ng-hide="openFormPassword"][l10n]'); - this.passwordForm = $('#renameForm'); - this.passwordNotification = $('.alert.alert-success[ng-show=success.changePassword]'); - - this.get = function() { - browser.get('#/security'); - browser.wait($('.showSecurity').isDisplayed); - }; - - this.changePassword = function(oldpassword, newpassword) { - $('input[name=password]').sendKeys(oldpassword); - $('input[name=change_password1]').sendKeys(newpassword); - $('input[name=change_password2]').sendKeys(newpassword); - return $('#renameForm button[type=submit]').click(); - }; - }; - var securityPage = new SecurityPage(); - - before(function(){ - helperForms.login(config.user.username, config.user.password); - }); - - it('should render the security page', function(done) { - // Go to send page - securityPage.get(); - - // Wait for the security page to render - expect(securityPage.changePasswordButton.isDisplayed()) - .to.eventually.be.true - .and.notify(done); - }); - - it('should render the password form', function(done) { - securityPage.changePasswordButton.click(); - expect(securityPage.passwordForm.isDisplayed()) - .to.eventually.be.true - .and.notify(done); - }); - - var tempPassword = config.user.password + '-e2e'; - protractor.getInstance().ignoreSynchronization = true; - - it('should change the password', function(done) { - securityPage.changePassword(config.user.password, tempPassword); - expect(securityPage.passwordNotification.isDisplayed()) - .to.eventually.be.true - .and.notify(done); - }); - - it('should login with the new password', function(done) { - helperForms.login(config.user.username, tempPassword); - }); - - it('should render the security page again', function(done) { - // sleep for 2s - browser.sleep(2000); - // Wait for the security page to render - securityPage.get(); - expect(securityPage.changePasswordButton.isDisplayed()) - .to.eventually.be.true - .and.notify(done); - }); - - it('should render the password form', function(done) { - securityPage.changePasswordButton.click(); - expect(securityPage.passwordForm.isDisplayed()) - .to.eventually.be.true - .and.notify(done); - }); - - it('should change the password back', function(done) { - - securityPage.changePassword(tempPassword, config.user.password); - expect(securityPage.passwordNotification.isDisplayed()) - .to.eventually.be.true - .and.notify(done); - }); -}); diff --git a/test/e2e/send.js b/test/e2e/send.js deleted file mode 100644 index 9308e9f10..000000000 --- a/test/e2e/send.js +++ /dev/null @@ -1,145 +0,0 @@ -'use strict'; - -// Chai is a BDD / TDD assertion library -var chai = require('chai'); -var chaiAsPromised = require('chai-as-promised'); -var config = require('./protractor.conf.js').config; - -var helperForms = require('./utils/forms'); -var helperBrowser = require('./utils/browser'); - -chai.use(chaiAsPromised); -var expect = chai.expect; - -describe('send', function() { - - before(function(){ - helperForms.login(config.user.username,config.user.password); - }); - - it('should render the send page', function(done) { - // Go to send page - browser.get('#/send'); - - // Wait for the send form to render - browser.wait(function() { - return $('#sendForm').isDisplayed().then(function(result) { - return result; - }); - }); - - // Assuming that everything's ok if the #send_destination is present - expect($('#send_destination').isDisplayed()) - .to.eventually.be.true - .and.notify(done); - }); - - describe('recipient', function() { - - var input = $('#send_destination'); - - beforeEach(function(){ - input.clear(); - }); - - it('should not accept an invalid ripple address', function(done) { - input.sendKeys('invalidrippleaddress'); - expect(input.getAttribute('class')) - .to.eventually.contain('ng-invalid') - .and.notify(done); - }); - - it('should accept a valid ripple address', function(done) { - input.sendKeys(config.counterparty); - expect(input.getAttribute('class')) - .to.eventually.not.contain('ng-invalid') - .and.notify(done); - }); - - // TODO should accept a contact name - // TODO should accept a ripple name - - }); - - describe('amount', function() { - - var input = $('#send_amount'); - - beforeEach(function(){ - input.clear(); - }); - - it('should not accept an invalid amount', function(done) { - input.sendKeys('123a'); - expect(input.getAttribute('class')) - .to.eventually.contain('ng-invalid') - .and.notify(done); - }); - - it('should accept a valid amount', function(done) { - input.sendKeys('0.000001'); - expect(input.getAttribute('class')) - .to.eventually.not.contain('ng-invalid') - .and.notify(done); - }); - - }); - - // TODO test destination tag - // TODO test source tag - - describe('send xrp button', function() { - - var input = $('#sendXrpButton'); - - it('should be active', function(done) { - expect(input.getAttribute('disabled')) - .to.eventually.not.equal('disabled') - .and.notify(done); - }); - - it('should take to the confirmation screen', function(done) { - input.click(); - expect($('.mode-confirm').isDisplayed()) - .to.eventually.be.true - .and.notify(done); - }); - - }); - - // TODO test alternate payments (with pathfinding) - - describe('confirm', function() { - - // TODO test the wrong password case - - it('button click should confirm the transaction', function(done) { - $('#send_unlock_password').sendKeys(config.user.password); - $('#confirmButton').click(); - - browser.wait(function() { - return $('.mode-status').isDisplayed().then(function(result) { - return result; - }); - }); - - expect($('.mode-status .pending').isDisplayed()) - .to.eventually.be.true - .and.notify(done); - }); - - it('should succeed', function(done) { - browser.wait(function() { - return $('.mode-status .pending').isDisplayed().then(function(result) { - return !result; - }); - }); - - expect($('.mode-status .result-success').isDisplayed()) - .to.eventually.be.true - .and.notify(done); - }); - - }); - -}); diff --git a/test/e2e/utils/browser.js b/test/e2e/utils/browser.js deleted file mode 100644 index 21286513c..000000000 --- a/test/e2e/utils/browser.js +++ /dev/null @@ -1,30 +0,0 @@ -exports.waitForNavigation = function (part) { - return browser.wait(function () { - return browser.driver.getCurrentUrl().then(function (url) { - return !!url.match(part); - }); - }); -}; - -exports.waitForElement = function (part) { - return browser.wait(function () { - return part.isPresent(); - }); -}; - -exports.waitForElementToDisplay = function (part) { - return browser.wait(function () { - return part.isPresent(); - }).then(function() { - return browser.wait(part.isDisplayed); - }); -}; - -exports.waitForElementToBecameAvailable = function (part) { - return browser.wait(function () { - return part.getAttribute('disabled').then(function (isDisabled) { - return !isDisabled; - }); - }); -}; - diff --git a/test/e2e/utils/forms.js b/test/e2e/utils/forms.js deleted file mode 100644 index 3d0d59028..000000000 --- a/test/e2e/utils/forms.js +++ /dev/null @@ -1,53 +0,0 @@ -var helpers = require('./browser'); - -/* - add these 2 lines to the top of your it block to force a logout and log back in - - forms.logout(); - - forms.login(config.user.username,config.user.password); - */ - -exports.login = function (username,password) { - browser.get('#/login'); - browser.getCurrentUrl() - .then(function(url){ - // It's already logged in if the page is other then login or register - if (url.match('login') || url.match('register')){ - browser.get('#/login'); - - $(".auth-form-container #login_username").sendKeys(username); - $(".auth-form-container #login_password").sendKeys(password); - $("#loginBtn").click() - .then(function(){ - helpers.waitForNavigation('#/balance'); - }) - } - }) -}; - -exports.migrate = function (username,password) { - browser.get('#/migrate'); - - $(".auth-form-container #login_username").sendKeys(username); - $(".auth-form-container #login_password").sendKeys(password); - $(".auth-form-container .submit-btn-container button").click() - .then(function(){ - helpers.waitForNavigation('#/register'); - }) -}; - -exports.logout = function () { - browser.getCurrentUrl() - .then(function(url){ - if (!url.match('login')){ - $(".mainnav .settings").click() - .then(function(){ - $(".mainnav .settings .dropdown-menu .logout").click() - .then(function(){ - helpers.waitForNavigation('#/login'); - }) - }) - } else { - browser.get('#/login'); - } - }); -}; diff --git a/test/joinPrivateTests.js b/test/joinPrivateTests.js new file mode 100644 index 000000000..da933ff1b --- /dev/null +++ b/test/joinPrivateTests.js @@ -0,0 +1,46 @@ +/** + * + * + */ + +(function() { + 'use strict'; + + var fs = require('fs'); + var privateDevPath = 'selenium/tests-private-dev'; + var privatePath = 'selenium/tests-private/PrivateTests'; + + function dump(contObj, num) { + var resStr = JSON.stringify(contObj, null, 2); + fs.writeFileSync(privatePath + num + '.json', resStr); + } + + function main() { + var dirs = fs.readdirSync(privateDevPath); + //console.log(dirs); + var resObj = null; + var c = 0; + var x = 0; + for (var i = 0; i < dirs.length; i++) { + console.log(dirs[i]); + var content = fs.readFileSync(privateDevPath + '/' + dirs[i]); + var obj = JSON.parse(content); + if (resObj === null) { + resObj = obj; + } else { + resObj.steps = resObj.steps.concat(obj.steps); + } + if (++c == 4) { + c = 0; + dump(resObj, x++); + resObj = null; + } + } + if (resObj) { + dump(resObj, x++); + } + } + + main(); + +})(); diff --git a/test/karma.conf.js b/test/karma.conf.js index 1b31c1086..d919963f6 100644 --- a/test/karma.conf.js +++ b/test/karma.conf.js @@ -4,11 +4,12 @@ module.exports = function(config) { basePath: '../', files: [ - 'build/dist/deps-debug.js', + 'build/dist/js/vendor-*.js', 'deps/js/angular-mocks/angular-mocks.js', - 'src/js/config.js', - 'build/dist/web/ripple-client-debug.js', - 'test/unit/**/*.js' + 'config.js', + 'build/dist/js/app.js', + 'test/unit/**/*.js', + 'build/dist/templates/**/*.html' ], browsers: ['Chrome', 'Firefox'], @@ -20,7 +21,18 @@ module.exports = function(config) { reporters: ['progress'], preprocessors: { - 'src/js/**/*.js': ['coverage'] + 'src/js/**/*.js': ['coverage'], + 'build/dist/templates/**/*.html': ['ng-html2js'] + }, + + ngHtml2JsPreprocessor: { + // If your build process changes the path to your templates, + // use stripPrefix and prependPrefix to adjust it. + stripPrefix: 'build/dist/', + // prependPrefix: 'build/dist/', + + // the name of the Angular module to create + moduleName: 'my.templates' }, coverageReporter: { diff --git a/test/sauce/launch_connect.js b/test/sauce/launch_connect.js new file mode 100644 index 000000000..43ee63d61 --- /dev/null +++ b/test/sauce/launch_connect.js @@ -0,0 +1,53 @@ + +var fs = require("fs"); +var sauceConnectLauncher = require('sauce-connect-launcher'); + +var options = { + username: 'tonga', + accessKey: '1553f141-1258-4319-b20d-7743def99fbb', + verbose: true, + noProxyCaching: true, + noSslBumpDomains: 'ripp.site,ripple.com,s-east.ripple.com,s-west.ripple.com', + tunnelDomains: 'ripp.site', + logger: console.log +}; + +if (process.env.TRAVIS_JOB_NUMBER) { + options.tunnelIdentifier = process.env.TRAVIS_JOB_NUMBER; +} + +if (process.env.SAUCE_USERNAME) { + options.username = process.env.SAUCE_USERNAME; +} + + +if (process.env.SAUCE_ACCESS_KEY) { + options.accessKey = process.env.SAUCE_ACCESS_KEY; +} + + +process.env.SAUCE_USERNAME = options.username; +process.env.SAUCE_ACCESS_KEY = options.accessKey; + + +sauceConnectLauncher(options, function (err, sauceConnectProcess) { + console.log("Started Sauce Connect Process", err, sauceConnectProcess != null); + if (err) { + process.exit(1); + } else { + // keep sc running in background + //console.log('keep sc running in background'); + //sauceConnectProcess.unref(); + //process.exit(0); + console.log('gut'); + fs.writeFile('./sc-launcher-readyfile.tmp', '', function(err) { + if (err) console.log('error writing to sc-launcher-readyfile.tmp', err); + //if (err) throw err; + }); + } + /* + sauceConnectProcess.close(function () { + console.log("Closed Sauce Connect process"); + }); + */ +}); diff --git a/test/sauce/package.json b/test/sauce/package.json new file mode 100644 index 000000000..41a15b7fd --- /dev/null +++ b/test/sauce/package.json @@ -0,0 +1,20 @@ +{ + "name": "sauce-connect-launcher-cmd", + "version": "0.1.2", + "description": "launch sauce connect", + "author": { + "name": "Ivan Tivonenko", + "email": "darkdarkdragon@gmail.com" + }, + "dependencies": { + "sauce-connect-launcher": "*" + }, + "license": "MIT", + "scripts": {}, + "repository": { + "type": "git", + "url": "git@github.com:darkdarkdragon/travis-test.git" + }, + "readmeFilename": "README.md", + "devDependencies": {} +} diff --git a/test/sauce/wait_for_browser_provider.sh b/test/sauce/wait_for_browser_provider.sh new file mode 100755 index 000000000..4eebdd632 --- /dev/null +++ b/test/sauce/wait_for_browser_provider.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -v + +# Wait for Connect to be ready before exiting +while [ ! -f "$TRAVIS_BUILD_DIR/test/sauce/sc-launcher-readyfile.tmp" ]; do + sleep .5 +done diff --git a/test/selenium/interpreter_config.json b/test/selenium/interpreter_config.json new file mode 100644 index 000000000..281c80493 --- /dev/null +++ b/test/selenium/interpreter_config.json @@ -0,0 +1,26 @@ +{ + "type": "interpreter-config", + "configurations": [ + { + "settings": [ + { + "driverOptions": { + "host": "localhost", + "port": 4445 + }, + "browserOptions": { + "browserName": "googlechrome", + "username": "${SAUCE_USERNAME}", + "accessKey": "${SAUCE_ACCESS_KEY}", + "tunnel-identifier": "${TRAVIS_JOB_NUMBER}", + "build": "${TRAVIS_BUILD_NUMBER}", + "tags": "${TRAVIS_BRANCH}" + } + } + ], + "scripts": [ + "test/selenium/tests/*" + ] + } + ] +} diff --git a/test/selenium/interpreter_config_private.json b/test/selenium/interpreter_config_private.json new file mode 100644 index 000000000..d9ee58704 --- /dev/null +++ b/test/selenium/interpreter_config_private.json @@ -0,0 +1,54 @@ +{ + "type": "interpreter-config", + "configurations": [ + { + "settings": [ + { + "driverOptions": { + "host": "localhost", + "port": 4445 + }, + "browserOptions": { + "browserName": "firefox", + "username": "${SAUCE_USERNAME}", + "accessKey": "${SAUCE_ACCESS_KEY}", + "tunnel-identifier": "${TRAVIS_JOB_NUMBER}", + "build": "${TRAVIS_BUILD_NUMBER}", + "tags": "${TRAVIS_BRANCH}" + } + }, + { + "driverOptions": { + "host": "localhost", + "port": 4445 + }, + "browserOptions": { + "browserName": "googlechrome", + "username": "${SAUCE_USERNAME}", + "accessKey": "${SAUCE_ACCESS_KEY}", + "tunnel-identifier": "${TRAVIS_JOB_NUMBER}", + "build": "${TRAVIS_BUILD_NUMBER}", + "tags": "${TRAVIS_BRANCH}" + } + }, + { + "driverOptions": { + "host": "localhost", + "port": 4445 + }, + "browserOptions": { + "browserName": "safari", + "username": "${SAUCE_USERNAME}", + "accessKey": "${SAUCE_ACCESS_KEY}", + "tunnel-identifier": "${TRAVIS_JOB_NUMBER}", + "build": "${TRAVIS_BUILD_NUMBER}", + "tags": "${TRAVIS_BRANCH}" + } + } + ], + "scripts": [ + "test/selenium/tests-private/*" + ] + } + ] +} diff --git a/test/selenium/interpreter_config_public.json b/test/selenium/interpreter_config_public.json new file mode 100644 index 000000000..3ebdcf945 --- /dev/null +++ b/test/selenium/interpreter_config_public.json @@ -0,0 +1,54 @@ +{ + "type": "interpreter-config", + "configurations": [ + { + "settings": [ + { + "driverOptions": { + "host": "localhost", + "port": 4445 + }, + "browserOptions": { + "browserName": "googlechrome", + "username": "${SAUCE_USERNAME}", + "accessKey": "${SAUCE_ACCESS_KEY}", + "tunnel-identifier": "${TRAVIS_JOB_NUMBER}", + "build": "${TRAVIS_BUILD_NUMBER}", + "tags": "${TRAVIS_BRANCH}" + } + }, + { + "driverOptions": { + "host": "localhost", + "port": 4445 + }, + "browserOptions": { + "browserName": "firefox", + "username": "${SAUCE_USERNAME}", + "accessKey": "${SAUCE_ACCESS_KEY}", + "tunnel-identifier": "${TRAVIS_JOB_NUMBER}", + "build": "${TRAVIS_BUILD_NUMBER}", + "tags": "${TRAVIS_BRANCH}" + } + }, + { + "driverOptions": { + "host": "localhost", + "port": 4445 + }, + "browserOptions": { + "browserName": "safari", + "username": "${SAUCE_USERNAME}", + "accessKey": "${SAUCE_ACCESS_KEY}", + "tunnel-identifier": "${TRAVIS_JOB_NUMBER}", + "build": "${TRAVIS_BUILD_NUMBER}", + "tags": "${TRAVIS_BRANCH}" + } + } + ], + "scripts": [ + "test/selenium/tests-public/*" + ] + } + ] +} diff --git a/test/selenium/tests-private-dev/AddTrust.json b/test/selenium/tests-private-dev/AddTrust.json new file mode 100644 index 000000000..78af0ad73 --- /dev/null +++ b/test/selenium/tests-private-dev/AddTrust.json @@ -0,0 +1,229 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-fund a" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Gateways" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Add any gateway (trust lines)" + } + }, + { + "type": "waitForTextPresent", + "text": "Connect" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Connect gateway" + } + }, + { + "type": "waitForTextPresent", + "text": "address" + }, + { + "type": "verifyElementPresent", + "locator": { + "type": "id", + "value": "trust_counterparty" + } + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "trust_counterparty" + }, + "text": "~snapswap" + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "setElementText", + "locator": { + "type": "xpath", + "value": "//form[@id='trustForm']/div[2]/div/div[2]/div/div/input" + }, + "text": "USD" + }, + { + "type": "sendKeysToElement", + "locator": { + "type": "xpath", + "value": "//form[@id='trustForm']/div[2]/div/div[2]/div/div/input" + }, + "text": "\n" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "link text", + "value": "Save" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Save" + } + }, + { + "type": "waitForTextPresent", + "text": "Confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='modal-content']//button[.='Loading...Confirm']" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "connected" + }, + { + "type": "waitForTextPresent", + "text": "edit" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "waitForTextPresent", + "text": "Remove" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button.btn.submit[ng-click='delete_account()']:not(.ng-hide):not(.btn-xs)" + } + }, + { + "type": "waitForTextPresent", + "text": "SnapSwap", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} diff --git a/test/selenium/tests-private-dev/SendBTC.json b/test/selenium/tests-private-dev/SendBTC.json new file mode 100644 index 000000000..f54bc4d6c --- /dev/null +++ b/test/selenium/tests-private-dev/SendBTC.json @@ -0,0 +1,116 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-send > a" + } + }, + { + "type": "waitForTextPresent", + "text": "Recipient" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_destination" + }, + "text": "1F1tAaz5x1HUXrCNLbtMDqcw6o5GNn4xqX" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "css selector", + "value": "span[ng-bind='send.currency_force']" + } + }, + { + "type": "verifyText", + "text": "BTC - Bitcoin", + "locator": { + "type": "css selector", + "value": "span[ng-bind='send.currency_force']" + } + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "0.00001" + }, + { + "type": "waitForTextPresent", + "text": "Send XRP" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} diff --git a/test/selenium/tests-private-dev/SendFederation.json b/test/selenium/tests-private-dev/SendFederation.json new file mode 100644 index 000000000..adb0bfb98 --- /dev/null +++ b/test/selenium/tests-private-dev/SendFederation.json @@ -0,0 +1,144 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-send > a" + } + }, + { + "type": "waitForTextPresent", + "text": "Recipient" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_destination" + }, + "text": "kate@snapswap.eu" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "css selector", + "value": "span[ng-bind='send.currency_force']" + } + }, + { + "type": "verifyText", + "text": "EUR - Euro", + "locator": { + "type": "css selector", + "value": "span[ng-bind='send.currency_force']" + } + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "0.01" + }, + { + "type": "waitForTextPresent", + "text": "Send XRP" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_destination" + }, + "text": "#kate@snapswap.eu" + }, + { + "type": "waitForTextPresent", + "text": "Dollar" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "css selector", + "value": "span[ng-bind='send.currency_force']" + } + }, + { + "type": "verifyText", + "text": "USD - US Dollar", + "locator": { + "type": "css selector", + "value": "span[ng-bind='send.currency_force']" + } + }, + + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} diff --git a/test/selenium/tests-private-dev/SendLimits.json b/test/selenium/tests-private-dev/SendLimits.json new file mode 100644 index 000000000..570a1e474 --- /dev/null +++ b/test/selenium/tests-private-dev/SendLimits.json @@ -0,0 +1,195 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME2}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD2}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-send > a" + } + }, + { + "type": "waitForTextPresent", + "text": "Recipient" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_destination" + }, + "text": "~vakula" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "id", + "value": "send_amount_currency" + } + }, + { + "type": "print", + "text": "------- waiting 5 sec" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "0.0000001" + }, + { + "type": "waitForTextPresent", + "text": "too much" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "0.000001" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "id", + "value": "sendXrpButton" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "1000000000000" + }, + { + "type": "waitForTextPresent", + "text": "too much" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount_currency" + }, + "text": "USD" + }, + { + "type": "waitForTextPresent", + "text": "insufficient" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "10000000000000000" + }, + { + "type": "waitForTextPresent", + "text": "too many" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": ".000000000000001" + }, + { + "type": "waitForTextPresent", + "text": "Send USD" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": ".0000000000000001" + }, + { + "type": "waitForTextPresent", + "text": "too many" + }, + + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} diff --git a/test/selenium/tests-private-dev/SendUSD.json b/test/selenium/tests-private-dev/SendUSD.json new file mode 100644 index 000000000..076dc58bf --- /dev/null +++ b/test/selenium/tests-private-dev/SendUSD.json @@ -0,0 +1,138 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME2}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD2}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-send > a" + } + }, + { + "type": "waitForTextPresent", + "text": "Recipient" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_destination" + }, + "text": "~vakula" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "id", + "value": "send_amount_currency" + } + }, + { + "type": "print", + "text": "------- waiting 5 sec" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount_currency" + }, + "text": "USD" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "0.00001" + }, + + { + "type": "waitForTextPresent", + "text": "Send USD" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount_currency" + }, + "text": "BTC" + }, + { + "type": "waitForTextPresent", + "text": "Send XRP" + }, + + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} diff --git a/test/selenium/tests-private-dev/SendXrp.json b/test/selenium/tests-private-dev/SendXrp.json new file mode 100644 index 000000000..c3e4a5e95 --- /dev/null +++ b/test/selenium/tests-private-dev/SendXrp.json @@ -0,0 +1,162 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-send a" + } + }, + { + "type": "waitForTextPresent", + "text": "Recipient" + }, + { + "type": "verifyElementPresent", + "locator": { + "type": "id", + "value": "send_destination" + } + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_destination" + }, + "text": "~appsteamaccount1" + }, + { + "type": "waitForTextPresent", + "text": "receive" + }, + { + "type": "verifyElementPresent", + "locator": { + "type": "id", + "value": "send_amount" + } + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "0.0001" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "id", + "value": "sendXrpButton" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "sendXrpButton" + } + }, + { + "type": "waitForTextPresent", + "text": "confirm" + }, + { + "type": "verifyElementPresent", + "locator": { + "type": "id", + "value": "send_unlock_password" + } + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "confirmButton" + } + }, + { + "type": "waitForTextPresent", + "text": "successful" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} diff --git a/test/selenium/tests-private-dev/TradeNonXRP.json b/test/selenium/tests-private-dev/TradeNonXRP.json new file mode 100644 index 000000000..e9d542036 --- /dev/null +++ b/test/selenium/tests-private-dev/TradeNonXRP.json @@ -0,0 +1,423 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME2}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD2}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "waitForTextPresent", + "text": "add pair" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "currency_pair" + }, + "text": "WRONG" + }, + { + "type": "waitForTextPresent", + "text": "show" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "currency_pair" + }, + "text": "USD.Bitstamp/USD.Snapswap" + }, + { + "type": "pause", + "waitTime": "1000" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "wrapper" + } + }, + { + "type": "waitForTextPresent", + "text": "BIDS" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "setElementText", + "locator": { + "type": "css selector", + "value": "input[input-type='sell'][name='amount']" + }, + "text": "0.00001" + }, + { + "type": "setElementText", + "locator": { + "type": "css selector", + "value": "input[input-type='sell'][name='price']" + }, + "text": "1234" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button[btn-type='sell']" + } + }, + { + "type": "waitForTextPresent", + "text": "sure" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button[ng-disabled='confirm_wait']" + } + }, + + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD2}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "cancel" + }, + { + "type": "verifyText", + "text": "0.00001", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='QTY']" + } + }, + { + "type": "verifyText", + "text": "1,234", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='Limit']" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "print", + "text": "------- waiting 5 sec" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "back" + } + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "waitForTextPresent", + "text": "n/a", + "negated": true + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "editPrice" + }, + "text": "1233" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "submit" + } + }, + { + "type": "waitForTextPresent", + "text": "Confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='actions']//button[.='Confirm']" + } + }, + + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "cancel" + } + }, + + { + "type": "verifyText", + "text": "1,233", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='Limit']" + } + }, + { + "type": "verifyText", + "text": "0.00001", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='QTY']" + } + }, + + + + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "print", + "text": "------- waiting 5 sec" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "editQuantity" + }, + "text": "0.00002" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "submit" + } + }, + { + "type": "waitForTextPresent", + "text": "Confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='actions']//button[.='Confirm']" + } + }, + + + + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "cancel" + } + }, + { + "type": "verifyText", + "text": "0.00002", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='QTY']" + } + }, + { + "type": "verifyText", + "text": "1,233", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='Limit']" + } + }, + + + + + + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "cancel" + } + }, + { + "type": "waitForTextPresent", + "text": "confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "div.modal-content button[ng-click='cancel_order()']" + } + }, + { + "type": "waitForTextPresent", + "text": "cancel all", + "negated": true + }, + + + + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} diff --git a/test/selenium/tests-private-dev/TradePairsAddress.json b/test/selenium/tests-private-dev/TradePairsAddress.json new file mode 100644 index 000000000..b3d676c80 --- /dev/null +++ b/test/selenium/tests-private-dev/TradePairsAddress.json @@ -0,0 +1,167 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "waitForTextPresent", + "text": "add pair" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-trade']//button[.='add pair']" + } + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "first_currency" + }, + "text": "GBP" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "first_iss" + }, + "text": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "second_currency" + }, + "text": "XRP" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='add_button']//button[.='Add']" + } + }, + { + "type": "waitForTextPresent", + "text": "edit pairs" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-trade']//button[.='edit pairs']" + } + }, + { + "type": "waitForTextPresent", + "text": "GBP.rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q/XRP" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='section']//span[.='remove']" + } + }, + { + "type": "waitForTextPresent", + "text": "GBP.rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q/XRP", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} diff --git a/test/selenium/tests-private-dev/TradePairsName.json b/test/selenium/tests-private-dev/TradePairsName.json new file mode 100644 index 000000000..45ac2e03d --- /dev/null +++ b/test/selenium/tests-private-dev/TradePairsName.json @@ -0,0 +1,191 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "waitForTextPresent", + "text": "add pair" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-trade']//button[.='add pair']" + } + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "first_currency" + }, + "text": "EUR" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "first_iss" + }, + "text": "~Bitstamp" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "second_currency" + }, + "text": "XRP" + }, + { + "type": "print", + "text": "------- waiting 5 sec" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='add_button']//button[.='Add']" + } + }, + { + "type": "waitForTextPresent", + "text": "edit pairs" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-trade']//button[.='edit pairs']" + } + }, + { + "type": "waitForTextPresent", + "text": "EUR.~Bitstamp/XRP" + }, + { + "type": "print", + "text": "------- waiting 5 sec" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='section']//span[.='remove']" + } + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "waitForTextPresent", + "text": "EUR.~Bitstamp/XRP", + "negated": true + }, + { + "type": "pause", + "waitTime": "8000" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} diff --git a/test/selenium/tests-private-dev/TradeXRP.json b/test/selenium/tests-private-dev/TradeXRP.json new file mode 100644 index 000000000..c5583bfc5 --- /dev/null +++ b/test/selenium/tests-private-dev/TradeXRP.json @@ -0,0 +1,380 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "waitForTextPresent", + "text": "add pair" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "currency_pair" + }, + "text": "WRONG" + }, + { + "type": "waitForTextPresent", + "text": "show" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "currency_pair" + }, + "text": "XRP/USD.Bitstamp" + }, + { + "type": "waitForTextPresent", + "text": "BIDS" + }, + { + "type": "setElementText", + "locator": { + "type": "css selector", + "value": "input[input-type='sell'][name='amount']" + }, + "text": "0.001" + }, + { + "type": "setElementText", + "locator": { + "type": "css selector", + "value": "input[input-type='sell'][name='price']" + }, + "text": "1234" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button[btn-type='sell']" + } + }, + { + "type": "waitForTextPresent", + "text": "sure" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button[ng-disabled='confirm_wait']" + } + }, + + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "cancel" + }, + { + "type": "verifyText", + "text": "0.001", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='QTY']" + } + }, + { + "type": "verifyText", + "text": "1,234", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='Limit']" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "waitForTextPresent", + "text": "n/a", + "negated": true + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "editPrice" + }, + "text": "12334" + }, + + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "submit" + } + }, + { + "type": "waitForTextPresent", + "text": "Confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='actions']//button[.='Confirm']" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "cancel" + } + }, + + { + "type": "verifyText", + "text": "12,334", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='Limit']" + } + }, + { + "type": "verifyText", + "text": "0.001", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='QTY']" + } + }, + + + + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "waitForTextPresent", + "text": "n/a", + "negated": true + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "editQuantity" + }, + "text": "0.002" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "submit" + } + }, + { + "type": "waitForTextPresent", + "text": "Confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='actions']//button[.='Confirm']" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "cancel" + } + }, + { + "type": "verifyText", + "text": "0.002", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='QTY']" + } + }, + { + "type": "verifyText", + "text": "12,334", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='Limit']" + } + }, + + + + + + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "cancel" + } + }, + { + "type": "waitForTextPresent", + "text": "confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "div.modal-content button[ng-click='cancel_order()']" + } + }, + { + "type": "waitForTextPresent", + "text": "cancel all", + "negated": true + }, + + + + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} diff --git a/test/selenium/tests-private.1/PrivateTests0.json b/test/selenium/tests-private.1/PrivateTests0.json new file mode 100644 index 000000000..0927071b1 --- /dev/null +++ b/test/selenium/tests-private.1/PrivateTests0.json @@ -0,0 +1,980 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-fund a" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Gateways" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Add any gateway (trust lines)" + } + }, + { + "type": "waitForTextPresent", + "text": "Connect" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Connect gateway" + } + }, + { + "type": "waitForTextPresent", + "text": "address" + }, + { + "type": "verifyElementPresent", + "locator": { + "type": "id", + "value": "trust_counterparty" + } + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "trust_counterparty" + }, + "text": "~snapswap" + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "setElementText", + "locator": { + "type": "xpath", + "value": "//form[@id='trustForm']/div[2]/div/div[2]/div/div/input" + }, + "text": "USD" + }, + { + "type": "sendKeysToElement", + "locator": { + "type": "xpath", + "value": "//form[@id='trustForm']/div[2]/div/div[2]/div/div/input" + }, + "text": "\n" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "link text", + "value": "Save" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Save" + } + }, + { + "type": "waitForTextPresent", + "text": "Confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='modal-content']//button[.='Loading...Confirm']" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "connected" + }, + { + "type": "waitForTextPresent", + "text": "edit" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "waitForTextPresent", + "text": "Remove" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button.btn.submit[ng-click='delete_account()']:not(.ng-hide):not(.btn-xs)" + } + }, + { + "type": "waitForTextPresent", + "text": "SnapSwap", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-fund a" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "BRL" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "BRL" + } + }, + { + "type": "waitForTextPresent", + "text": "Brazil" + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-brl']//button[.=' Add Rippex Adding...']" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "connected" + }, + { + "type": "waitForTextPresent", + "text": "Hide" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-fund a" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Add any gateway (trust lines)" + } + }, + { + "type": "waitForTextPresent", + "text": "edit" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "waitForTextPresent", + "text": "Remove" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button.btn.submit[ng-click='delete_account()']:not(.ng-hide):not(.btn-xs)" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "pause", + "waitTime": "1000" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "Real", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-fund a" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "EUR" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "EUR" + } + }, + { + "type": "waitForTextPresent", + "text": "Euro" + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-eur']//button[.='Add SnapSwap.eu']" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "connected" + }, + { + "type": "waitForTextPresent", + "text": "Hide" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-fund a" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Add any gateway (trust lines)" + } + }, + { + "type": "waitForTextPresent", + "text": "edit" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "waitForTextPresent", + "text": "Remove" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button.btn.submit[ng-click='delete_account()']:not(.ng-hide):not(.btn-xs)" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "Euro", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-fund a" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "JPY" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "JPY" + } + }, + { + "type": "waitForTextPresent", + "text": "Tokyo" + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-jpy']//button[.='Add Tokyo JPY']" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "connected" + }, + { + "type": "waitForTextPresent", + "text": "Hide" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-fund a" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Add any gateway (trust lines)" + } + }, + { + "type": "waitForTextPresent", + "text": "edit" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "waitForTextPresent", + "text": "Remove" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button.btn.submit[ng-click='delete_account()']:not(.ng-hide):not(.btn-xs)" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "Japanese", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} \ No newline at end of file diff --git a/test/selenium/tests-private.1/PrivateTests1.json b/test/selenium/tests-private.1/PrivateTests1.json new file mode 100644 index 000000000..7e9338c94 --- /dev/null +++ b/test/selenium/tests-private.1/PrivateTests1.json @@ -0,0 +1,1009 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-fund a" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "MXN" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "MXN" + } + }, + { + "type": "waitForTextPresent", + "text": "Mexican" + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-mxn']//button[.='Add Bitso']" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "connected" + }, + { + "type": "waitForTextPresent", + "text": "Hide" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-fund a" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Add any gateway (trust lines)" + } + }, + { + "type": "waitForTextPresent", + "text": "edit" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "waitForTextPresent", + "text": "Remove" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button.btn.submit[ng-click='delete_account()']:not(.ng-hide):not(.btn-xs)" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "Mexican", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-fund a" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "SGD" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "SGD" + } + }, + { + "type": "waitForTextPresent", + "text": "Singapore" + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-sgd']//button[.='Add Ripple Singapore']" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "connected" + }, + { + "type": "waitForTextPresent", + "text": "Hide" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-fund a" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Add any gateway (trust lines)" + } + }, + { + "type": "waitForTextPresent", + "text": "edit" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "waitForTextPresent", + "text": "Remove" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button.btn.submit[ng-click='delete_account()']:not(.ng-hide):not(.btn-xs)" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "Singapore", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-fund a" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "USD" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "USD" + } + }, + { + "type": "waitForTextPresent", + "text": "USA" + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-usd']//button[.='Add SnapSwap.us']" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "connected" + }, + { + "type": "waitForTextPresent", + "text": "Hide" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-fund a" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Add any gateway (trust lines)" + } + }, + { + "type": "waitForTextPresent", + "text": "edit" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "waitForTextPresent", + "text": "Remove" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button.btn.submit[ng-click='delete_account()']:not(.ng-hide):not(.btn-xs)" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "Dollar", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-fund a" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "XAU" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "XAU" + } + }, + { + "type": "waitForTextPresent", + "text": "Gold" + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-gold']//button[.='Add GBI']" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "connected" + }, + { + "type": "waitForTextPresent", + "text": "Hide" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-fund a" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Add any gateway (trust lines)" + } + }, + { + "type": "waitForTextPresent", + "text": "edit" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "waitForTextPresent", + "text": "Remove" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button.btn.submit[ng-click='delete_account()']:not(.ng-hide):not(.btn-xs)" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "Gold", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} \ No newline at end of file diff --git a/test/selenium/tests-private.1/PrivateTests2.json b/test/selenium/tests-private.1/PrivateTests2.json new file mode 100644 index 000000000..0f6b474c7 --- /dev/null +++ b/test/selenium/tests-private.1/PrivateTests2.json @@ -0,0 +1,550 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-send > a" + } + }, + { + "type": "waitForTextPresent", + "text": "Recipient" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_destination" + }, + "text": "1F1tAaz5x1HUXrCNLbtMDqcw6o5GNn4xqX" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "css selector", + "value": "span[ng-bind='send.currency_force']" + } + }, + { + "type": "verifyText", + "text": "BTC - Bitcoin", + "locator": { + "type": "css selector", + "value": "span[ng-bind='send.currency_force']" + } + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "0.00001" + }, + { + "type": "waitForTextPresent", + "text": "Send XRP" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-send > a" + } + }, + { + "type": "waitForTextPresent", + "text": "Recipient" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_destination" + }, + "text": "kate@snapswap.eu" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "css selector", + "value": "span[ng-bind='send.currency_force']" + } + }, + { + "type": "verifyText", + "text": "EUR - Euro", + "locator": { + "type": "css selector", + "value": "span[ng-bind='send.currency_force']" + } + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "0.01" + }, + { + "type": "waitForTextPresent", + "text": "Send XRP" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_destination" + }, + "text": "#kate@snapswap.eu" + }, + { + "type": "waitForTextPresent", + "text": "Dollar" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "css selector", + "value": "span[ng-bind='send.currency_force']" + } + }, + { + "type": "verifyText", + "text": "USD - US Dollar", + "locator": { + "type": "css selector", + "value": "span[ng-bind='send.currency_force']" + } + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME2}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD2}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-send > a" + } + }, + { + "type": "waitForTextPresent", + "text": "Recipient" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_destination" + }, + "text": "~vakula" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "id", + "value": "send_amount_currency" + } + }, + { + "type": "print", + "text": "------- waiting 5 sec" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "0.0000001" + }, + { + "type": "waitForTextPresent", + "text": "too much" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "0.000001" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "id", + "value": "sendXrpButton" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "1000000000000" + }, + { + "type": "waitForTextPresent", + "text": "too much" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount_currency" + }, + "text": "USD" + }, + { + "type": "waitForTextPresent", + "text": "insufficient" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "10000000000000000" + }, + { + "type": "waitForTextPresent", + "text": "too many" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": ".000000000000001" + }, + { + "type": "waitForTextPresent", + "text": "Send USD" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": ".0000000000000001" + }, + { + "type": "waitForTextPresent", + "text": "too many" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME2}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD2}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-send > a" + } + }, + { + "type": "waitForTextPresent", + "text": "Recipient" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_destination" + }, + "text": "~vakula" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "id", + "value": "send_amount_currency" + } + }, + { + "type": "print", + "text": "------- waiting 5 sec" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount_currency" + }, + "text": "USD" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "0.00001" + }, + { + "type": "waitForTextPresent", + "text": "Send USD" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount_currency" + }, + "text": "BTC" + }, + { + "type": "waitForTextPresent", + "text": "Send XRP" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} \ No newline at end of file diff --git a/test/selenium/tests-private.1/PrivateTests3.json b/test/selenium/tests-private.1/PrivateTests3.json new file mode 100644 index 000000000..e72286d46 --- /dev/null +++ b/test/selenium/tests-private.1/PrivateTests3.json @@ -0,0 +1,845 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-send a" + } + }, + { + "type": "waitForTextPresent", + "text": "Recipient" + }, + { + "type": "verifyElementPresent", + "locator": { + "type": "id", + "value": "send_destination" + } + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_destination" + }, + "text": "~appsteamaccount1" + }, + { + "type": "waitForTextPresent", + "text": "receive" + }, + { + "type": "verifyElementPresent", + "locator": { + "type": "id", + "value": "send_amount" + } + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "0.0001" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "id", + "value": "sendXrpButton" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "sendXrpButton" + } + }, + { + "type": "waitForTextPresent", + "text": "confirm" + }, + { + "type": "verifyElementPresent", + "locator": { + "type": "id", + "value": "send_unlock_password" + } + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "confirmButton" + } + }, + { + "type": "waitForTextPresent", + "text": "successful" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME2}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD2}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "waitForTextPresent", + "text": "add pair" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "currency_pair" + }, + "text": "WRONG" + }, + { + "type": "waitForTextPresent", + "text": "show" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "currency_pair" + }, + "text": "USD.Bitstamp/USD.Snapswap" + }, + { + "type": "pause", + "waitTime": "1000" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "wrapper" + } + }, + { + "type": "waitForTextPresent", + "text": "BIDS" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "setElementText", + "locator": { + "type": "css selector", + "value": "input[input-type='sell'][name='amount']" + }, + "text": "0.00001" + }, + { + "type": "setElementText", + "locator": { + "type": "css selector", + "value": "input[input-type='sell'][name='price']" + }, + "text": "1234" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button[btn-type='sell']" + } + }, + { + "type": "waitForTextPresent", + "text": "sure" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button[ng-disabled='confirm_wait']" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD2}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "cancel" + }, + { + "type": "verifyText", + "text": "0.00001", + "locator": { + "type": "css selector", + "value": "div[data-label='QTY']" + } + }, + { + "type": "verifyText", + "text": "1,234", + "locator": { + "type": "css selector", + "value": "div[data-label='Limit']" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "print", + "text": "------- waiting 5 sec" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "editPrice" + }, + "text": "1233" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "submit" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "cancel" + } + }, + { + "type": "verifyText", + "text": "1,233", + "locator": { + "type": "css selector", + "value": "div[data-label='Limit']" + } + }, + { + "type": "verifyText", + "text": "0.00001", + "locator": { + "type": "css selector", + "value": "div[data-label='QTY']" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "print", + "text": "------- waiting 5 sec" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "editQuantity" + }, + "text": "0.00002" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "submit" + } + }, + { + "type": "waitForTextPresent", + "text": "Confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='actions']//button[.='Confirm']" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "cancel" + } + }, + { + "type": "verifyText", + "text": "0.00002", + "locator": { + "type": "css selector", + "value": "div[data-label='QTY']" + } + }, + { + "type": "verifyText", + "text": "1,233", + "locator": { + "type": "css selector", + "value": "div[data-label='Limit']" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "cancel" + } + }, + { + "type": "waitForTextPresent", + "text": "confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "div.modal-content button[ng-click='cancel_order()']" + } + }, + { + "type": "waitForTextPresent", + "text": "cancel all", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "waitForTextPresent", + "text": "add pair" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-trade']//button[.='add pair']" + } + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "first_currency" + }, + "text": "GBP" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "first_iss" + }, + "text": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "second_currency" + }, + "text": "XRP" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='add_button']//button[.='Add']" + } + }, + { + "type": "waitForTextPresent", + "text": "edit pairs" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-trade']//button[.='edit pairs']" + } + }, + { + "type": "waitForTextPresent", + "text": "GBP.rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q/XRP" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='section']//span[.='remove']" + } + }, + { + "type": "waitForTextPresent", + "text": "GBP.rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q/XRP", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "waitForTextPresent", + "text": "add pair" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-trade']//button[.='add pair']" + } + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "first_currency" + }, + "text": "EUR" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "first_iss" + }, + "text": "~Bitstamp" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "second_currency" + }, + "text": "XRP" + }, + { + "type": "print", + "text": "------- waiting 5 sec" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='add_button']//button[.='Add']" + } + }, + { + "type": "waitForTextPresent", + "text": "edit pairs" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-trade']//button[.='edit pairs']" + } + }, + { + "type": "waitForTextPresent", + "text": "EUR.~Bitstamp/XRP" + }, + { + "type": "print", + "text": "------- waiting 5 sec" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='section']//span[.='remove']" + } + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "waitForTextPresent", + "text": "EUR.~Bitstamp/XRP", + "negated": true + }, + { + "type": "pause", + "waitTime": "8000" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} \ No newline at end of file diff --git a/test/selenium/tests-private.1/PrivateTests4.json b/test/selenium/tests-private.1/PrivateTests4.json new file mode 100644 index 000000000..b2e6d56f4 --- /dev/null +++ b/test/selenium/tests-private.1/PrivateTests4.json @@ -0,0 +1,366 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "waitForTextPresent", + "text": "add pair" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "currency_pair" + }, + "text": "WRONG" + }, + { + "type": "waitForTextPresent", + "text": "show" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "currency_pair" + }, + "text": "XRP/USD.Bitstamp" + }, + { + "type": "waitForTextPresent", + "text": "BIDS" + }, + { + "type": "setElementText", + "locator": { + "type": "css selector", + "value": "input[input-type='sell'][name='amount']" + }, + "text": "0.001" + }, + { + "type": "setElementText", + "locator": { + "type": "css selector", + "value": "input[input-type='sell'][name='price']" + }, + "text": "1234" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button[btn-type='sell']" + } + }, + { + "type": "waitForTextPresent", + "text": "sure" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button[ng-disabled='confirm_wait']" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "cancel" + }, + { + "type": "verifyText", + "text": "0.001", + "locator": { + "type": "css selector", + "value": "div[data-label='QTY']" + } + }, + { + "type": "verifyText", + "text": "1,234", + "locator": { + "type": "css selector", + "value": "div[data-label='Limit']" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "waitForTextPresent", + "text": "n/a", + "negated": true + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "editPrice" + }, + "text": "12334" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "submit" + } + }, + { + "type": "waitForTextPresent", + "text": "Confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='actions']//button[.='Confirm']" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "cancel" + } + }, + { + "type": "verifyText", + "text": "12,334", + "locator": { + "type": "css selector", + "value": "div[data-label='Limit']" + } + }, + { + "type": "verifyText", + "text": "0.001", + "locator": { + "type": "css selector", + "value": "div[data-label='QTY']" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "waitForTextPresent", + "text": "n/a", + "negated": true + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "editQuantity" + }, + "text": "0.002" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "submit" + } + }, + { + "type": "waitForTextPresent", + "text": "Confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='actions']//button[.='Confirm']" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "cancel" + } + }, + { + "type": "verifyText", + "text": "0.002", + "locator": { + "type": "css selector", + "value": "div[data-label='QTY']" + } + }, + { + "type": "verifyText", + "text": "12,334", + "locator": { + "type": "css selector", + "value": "div[data-label='Limit']" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "cancel" + } + }, + { + "type": "waitForTextPresent", + "text": "confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "div.modal-content button[ng-click='cancel_order()']" + } + }, + { + "type": "waitForTextPresent", + "text": "cancel all", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} \ No newline at end of file diff --git a/test/selenium/tests-private/PrivateTests0.json b/test/selenium/tests-private/PrivateTests0.json new file mode 100644 index 000000000..941d7dbe7 --- /dev/null +++ b/test/selenium/tests-private/PrivateTests0.json @@ -0,0 +1,643 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-fund a" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Gateways" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Add any gateway (trust lines)" + } + }, + { + "type": "waitForTextPresent", + "text": "Connect" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Connect gateway" + } + }, + { + "type": "waitForTextPresent", + "text": "address" + }, + { + "type": "verifyElementPresent", + "locator": { + "type": "id", + "value": "trust_counterparty" + } + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "trust_counterparty" + }, + "text": "~snapswap" + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "setElementText", + "locator": { + "type": "xpath", + "value": "//form[@id='trustForm']/div[2]/div/div[2]/div/div/input" + }, + "text": "USD" + }, + { + "type": "sendKeysToElement", + "locator": { + "type": "xpath", + "value": "//form[@id='trustForm']/div[2]/div/div[2]/div/div/input" + }, + "text": "\n" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "link text", + "value": "Save" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Save" + } + }, + { + "type": "waitForTextPresent", + "text": "Confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='modal-content']//button[.='Loading...Confirm']" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "connected" + }, + { + "type": "waitForTextPresent", + "text": "edit" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "waitForTextPresent", + "text": "Remove" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button.btn.submit[ng-click='delete_account()']:not(.ng-hide):not(.btn-xs)" + } + }, + { + "type": "waitForTextPresent", + "text": "SnapSwap", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-send > a" + } + }, + { + "type": "waitForTextPresent", + "text": "Recipient" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_destination" + }, + "text": "1F1tAaz5x1HUXrCNLbtMDqcw6o5GNn4xqX" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "css selector", + "value": "span[ng-bind='send.currency_force']" + } + }, + { + "type": "verifyText", + "text": "BTC - Bitcoin", + "locator": { + "type": "css selector", + "value": "span[ng-bind='send.currency_force']" + } + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "0.00001" + }, + { + "type": "waitForTextPresent", + "text": "Send XRP" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-send > a" + } + }, + { + "type": "waitForTextPresent", + "text": "Recipient" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_destination" + }, + "text": "kate@snapswap.eu" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "css selector", + "value": "span[ng-bind='send.currency_force']" + } + }, + { + "type": "verifyText", + "text": "EUR - Euro", + "locator": { + "type": "css selector", + "value": "span[ng-bind='send.currency_force']" + } + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "0.01" + }, + { + "type": "waitForTextPresent", + "text": "Send XRP" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_destination" + }, + "text": "#kate@snapswap.eu" + }, + { + "type": "waitForTextPresent", + "text": "Dollar" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "css selector", + "value": "span[ng-bind='send.currency_force']" + } + }, + { + "type": "verifyText", + "text": "USD - US Dollar", + "locator": { + "type": "css selector", + "value": "span[ng-bind='send.currency_force']" + } + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME2}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD2}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-send > a" + } + }, + { + "type": "waitForTextPresent", + "text": "Recipient" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_destination" + }, + "text": "~vakula" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "id", + "value": "send_amount_currency" + } + }, + { + "type": "print", + "text": "------- waiting 5 sec" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "0.0000001" + }, + { + "type": "waitForTextPresent", + "text": "too much" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "0.000001" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "id", + "value": "sendXrpButton" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "1000000000000" + }, + { + "type": "waitForTextPresent", + "text": "too much" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount_currency" + }, + "text": "USD" + }, + { + "type": "waitForTextPresent", + "text": "insufficient" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "10000000000000000" + }, + { + "type": "waitForTextPresent", + "text": "too many" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": ".000000000000001" + }, + { + "type": "waitForTextPresent", + "text": "Send USD" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": ".0000000000000001" + }, + { + "type": "waitForTextPresent", + "text": "too many" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} \ No newline at end of file diff --git a/test/selenium/tests-private/PrivateTests1.json b/test/selenium/tests-private/PrivateTests1.json new file mode 100644 index 000000000..34012c99b --- /dev/null +++ b/test/selenium/tests-private/PrivateTests1.json @@ -0,0 +1,832 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME2}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD2}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-send > a" + } + }, + { + "type": "waitForTextPresent", + "text": "Recipient" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_destination" + }, + "text": "~vakula" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "id", + "value": "send_amount_currency" + } + }, + { + "type": "print", + "text": "------- waiting 5 sec" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount_currency" + }, + "text": "USD" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "0.00001" + }, + { + "type": "waitForTextPresent", + "text": "Send USD" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount_currency" + }, + "text": "BTC" + }, + { + "type": "waitForTextPresent", + "text": "Send XRP" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "#nav-send a" + } + }, + { + "type": "waitForTextPresent", + "text": "Recipient" + }, + { + "type": "verifyElementPresent", + "locator": { + "type": "id", + "value": "send_destination" + } + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_destination" + }, + "text": "~appsteamaccount1" + }, + { + "type": "waitForTextPresent", + "text": "receive" + }, + { + "type": "verifyElementPresent", + "locator": { + "type": "id", + "value": "send_amount" + } + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_amount" + }, + "text": "0.0001" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "id", + "value": "sendXrpButton" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "sendXrpButton" + } + }, + { + "type": "waitForTextPresent", + "text": "confirm" + }, + { + "type": "verifyElementPresent", + "locator": { + "type": "id", + "value": "send_unlock_password" + } + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "send_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "confirmButton" + } + }, + { + "type": "waitForTextPresent", + "text": "successful" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME2}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD2}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "waitForTextPresent", + "text": "add pair" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "currency_pair" + }, + "text": "WRONG" + }, + { + "type": "waitForTextPresent", + "text": "show" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "currency_pair" + }, + "text": "USD.Bitstamp/USD.Snapswap" + }, + { + "type": "pause", + "waitTime": "1000" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "wrapper" + } + }, + { + "type": "waitForTextPresent", + "text": "BIDS" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "setElementText", + "locator": { + "type": "css selector", + "value": "input[input-type='sell'][name='amount']" + }, + "text": "0.00001" + }, + { + "type": "setElementText", + "locator": { + "type": "css selector", + "value": "input[input-type='sell'][name='price']" + }, + "text": "1234" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button[btn-type='sell']" + } + }, + { + "type": "waitForTextPresent", + "text": "sure" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button[ng-disabled='confirm_wait']" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD2}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "cancel" + }, + { + "type": "verifyText", + "text": "0.00001", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='QTY']" + } + }, + { + "type": "verifyText", + "text": "1,234", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='Limit']" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "print", + "text": "------- waiting 5 sec" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "back" + } + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "waitForTextPresent", + "text": "n/a", + "negated": true + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "editPrice" + }, + "text": "1233" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "submit" + } + }, + { + "type": "waitForTextPresent", + "text": "Confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='actions']//button[.='Confirm']" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "cancel" + } + }, + { + "type": "verifyText", + "text": "1,233", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='Limit']" + } + }, + { + "type": "verifyText", + "text": "0.00001", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='QTY']" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "print", + "text": "------- waiting 5 sec" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "editQuantity" + }, + "text": "0.00002" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "submit" + } + }, + { + "type": "waitForTextPresent", + "text": "Confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='actions']//button[.='Confirm']" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "cancel" + } + }, + { + "type": "verifyText", + "text": "0.00002", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='QTY']" + } + }, + { + "type": "verifyText", + "text": "1,233", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='Limit']" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "cancel" + } + }, + { + "type": "waitForTextPresent", + "text": "confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "div.modal-content button[ng-click='cancel_order()']" + } + }, + { + "type": "waitForTextPresent", + "text": "cancel all", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "waitForTextPresent", + "text": "add pair" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-trade']//button[.='add pair']" + } + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "first_currency" + }, + "text": "GBP" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "first_iss" + }, + "text": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "second_currency" + }, + "text": "XRP" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='add_button']//button[.='Add']" + } + }, + { + "type": "waitForTextPresent", + "text": "edit pairs" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-trade']//button[.='edit pairs']" + } + }, + { + "type": "waitForTextPresent", + "text": "GBP.rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q/XRP" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='section']//span[.='remove']" + } + }, + { + "type": "waitForTextPresent", + "text": "GBP.rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q/XRP", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} \ No newline at end of file diff --git a/test/selenium/tests-private/PrivateTests2.json b/test/selenium/tests-private/PrivateTests2.json new file mode 100644 index 000000000..aa8795fca --- /dev/null +++ b/test/selenium/tests-private/PrivateTests2.json @@ -0,0 +1,544 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "waitForTextPresent", + "text": "add pair" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-trade']//button[.='add pair']" + } + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "first_currency" + }, + "text": "EUR" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "first_iss" + }, + "text": "~Bitstamp" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "second_currency" + }, + "text": "XRP" + }, + { + "type": "print", + "text": "------- waiting 5 sec" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='add_button']//button[.='Add']" + } + }, + { + "type": "waitForTextPresent", + "text": "edit pairs" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@id='t-trade']//button[.='edit pairs']" + } + }, + { + "type": "waitForTextPresent", + "text": "EUR.~Bitstamp/XRP" + }, + { + "type": "print", + "text": "------- waiting 5 sec" + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='section']//span[.='remove']" + } + }, + { + "type": "pause", + "waitTime": "5000" + }, + { + "type": "waitForTextPresent", + "text": "EUR.~Bitstamp/XRP", + "negated": true + }, + { + "type": "pause", + "waitTime": "8000" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_username" + }, + "text": "${FUNDED_USER_NAME}" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "login_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "verifyTextPresent", + "text": "BALANCES" + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Trade" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Advanced" + } + }, + { + "type": "waitForTextPresent", + "text": "add pair" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "currency_pair" + }, + "text": "WRONG" + }, + { + "type": "waitForTextPresent", + "text": "show" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "currency_pair" + }, + "text": "XRP/USD.Bitstamp" + }, + { + "type": "waitForTextPresent", + "text": "BIDS" + }, + { + "type": "setElementText", + "locator": { + "type": "css selector", + "value": "input[input-type='sell'][name='amount']" + }, + "text": "0.001" + }, + { + "type": "setElementText", + "locator": { + "type": "css selector", + "value": "input[input-type='sell'][name='price']" + }, + "text": "1234" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button[btn-type='sell']" + } + }, + { + "type": "waitForTextPresent", + "text": "sure" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button[ng-disabled='confirm_wait']" + } + }, + { + "type": "waitForTextPresent", + "text": "Password" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "popup_unlock_password" + }, + "text": "${FUNDED_USER_PASSWORD}" + }, + { + "type": "waitForElementAttribute", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + }, + "attributeName": "disabled", + "value": "disabled", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".modal-submit-btn" + } + }, + { + "type": "waitForTextPresent", + "text": "cancel" + }, + { + "type": "verifyText", + "text": "0.001", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='QTY']" + } + }, + { + "type": "verifyText", + "text": "1,234", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='Limit']" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "waitForTextPresent", + "text": "n/a", + "negated": true + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "editPrice" + }, + "text": "12334" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "submit" + } + }, + { + "type": "waitForTextPresent", + "text": "Confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='actions']//button[.='Confirm']" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "cancel" + } + }, + { + "type": "verifyText", + "text": "12,334", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='Limit']" + } + }, + { + "type": "verifyText", + "text": "0.001", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='QTY']" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "edit" + } + }, + { + "type": "waitForTextPresent", + "text": "n/a", + "negated": true + }, + { + "type": "pause", + "waitTime": "3000" + }, + { + "type": "setElementText", + "locator": { + "type": "name", + "value": "editQuantity" + }, + "text": "0.002" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "submit" + } + }, + { + "type": "waitForTextPresent", + "text": "Confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "xpath", + "value": "//div[@class='actions']//button[.='Confirm']" + } + }, + { + "type": "waitForElementPresent", + "locator": { + "type": "link text", + "value": "cancel" + } + }, + { + "type": "verifyText", + "text": "0.002", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='QTY']" + } + }, + { + "type": "verifyText", + "text": "12,334", + "locator": { + "type": "css selector", + "value": ".my .row:nth-child(2) div[data-label='Limit']" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "cancel" + } + }, + { + "type": "waitForTextPresent", + "text": "confirm" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "div.modal-content button[ng-click='cancel_order()']" + } + }, + { + "type": "waitForTextPresent", + "text": "cancel all", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} \ No newline at end of file diff --git a/test/selenium/tests-public/LoginRT.json b/test/selenium/tests-public/LoginRT.json new file mode 100644 index 000000000..66a23bd0d --- /dev/null +++ b/test/selenium/tests-public/LoginRT.json @@ -0,0 +1,89 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/#/login" + }, + { + "type": "waitForTextPresent", + "text": "Welcome to Ripple Trade" + }, + { + "type": "clickElement", + "locator": { + "type": "id", + "value": "loginBtn" + } + }, + { + "type": "waitForTextPresent", + "text": "RIPPLE NAME" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "identity" + }, + "text": "ivegotnobalances" + }, + { + "type": "setElementText", + "locator": { + "type": "id", + "value": "password" + }, + "text": "password123" + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": "button[type='submit']" + } + }, + { + "type": "waitForTextPresent", + "text": "skip preliminary setup" + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "skip preliminary setup" + } + }, + { + "type": "waitForTextPresent", + "text": "BALANCES" + }, + { + "type": "waitForTextPresent", + "text": "Connected to BrowserSync", + "negated": true + }, + { + "type": "clickElement", + "locator": { + "type": "css selector", + "value": ".fa-cog" + } + }, + { + "type": "clickElement", + "locator": { + "type": "link text", + "value": "Log Out" + } + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 420 +} diff --git a/test/selenium/tests-public/openRT.json b/test/selenium/tests-public/openRT.json new file mode 100644 index 000000000..ba23a61b3 --- /dev/null +++ b/test/selenium/tests-public/openRT.json @@ -0,0 +1,25 @@ +{ + "type": "script", + "seleniumVersion": "2", + "formatVersion": 2, + "steps": [ + { + "type": "get", + "url": "http://ripp.site:3000/" + }, + { + "type": "waitForTextPresent", + "text": "XRP" + }, + { + "type": "verifyTextPresent", + "text": "Trade hundreds of assets, from XRP to crypto to gold to fiat." + } + ], + "data": { + "configs": {}, + "source": "none" + }, + "inputs": [], + "timeoutSeconds": 60 +} diff --git a/test/travis-run.sh b/test/travis-run.sh new file mode 100755 index 000000000..da20eca6b --- /dev/null +++ b/test/travis-run.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -ev +gulp dist +npm run test-travis +gulp serve:dist & +se-interpreter test/selenium/interpreter_config_public.json +if [ "${TRAVIS_SECURE_ENV_VARS}" = "true" ]; then + se-interpreter --hideSetTexValue true test/selenium/interpreter_config_private.json +fi + diff --git a/src/js/config-example.js b/test/travis/config-travis.js similarity index 95% rename from src/js/config-example.js rename to test/travis/config-travis.js index d35ca9ef5..f5c7b80af 100644 --- a/src/js/config-example.js +++ b/test/travis/config-travis.js @@ -5,13 +5,12 @@ */ var Options = { // Local domain - // // Which domain should ripple-client consider native? - domain: 'local.ripple.com', + domain: 'ripp.site:3000', // Rippled to connect server: { - trace: true, + trace: false, trusted: true, local_signing: true, @@ -20,8 +19,7 @@ var Options = { { host: 's-east.ripple.com', port: 443, secure: true } ], - connection_offset: 0, - allow_partial_history: false + connection_offset: 0 }, // DEPRECATED: Blobvault server (old blob protocol) @@ -85,6 +83,11 @@ var Options = { // Default gateway max trust amount under 'simplfied' view ie when advanced_feature_switch is false in trust/gateway page gateway_max_limit: 1000000000, + // Ripple trade backend URL + backend_url: 'http://54.68.38.81:8081', + ids_url: 'http://idripple.com', + + ticker: { markets: [ { diff --git a/test/travis/ripple-travis.txt b/test/travis/ripple-travis.txt new file mode 100644 index 000000000..ed7f418db --- /dev/null +++ b/test/travis/ripple-travis.txt @@ -0,0 +1,2 @@ +[authinfo_url] +https://id.ripple.com/v1/authinfo diff --git a/test/unit/controllers/appControllerSpec.js b/test/unit/controllers/app.controller.spec.js similarity index 100% rename from test/unit/controllers/appControllerSpec.js rename to test/unit/controllers/app.controller.spec.js diff --git a/test/unit/controllers/navbarControllerSpec.js b/test/unit/controllers/navbar.controller.spec.js similarity index 92% rename from test/unit/controllers/navbarControllerSpec.js rename to test/unit/controllers/navbar.controller.spec.js index 3a9ce98c5..7889ca9ab 100644 --- a/test/unit/controllers/navbarControllerSpec.js +++ b/test/unit/controllers/navbar.controller.spec.js @@ -64,11 +64,6 @@ describe('NavbarCtrl', function(){ describe('private functions', function() { - it('should set the connection status', function (done) { - assert.isFunction(ctrl.setConnectionStatus); - run(scope,done); - }); - it('should enqueue', function (done) { assert.isFunction(ctrl.enqueue); run(scope,done); diff --git a/test/unit/directivesSpec.js b/test/unit/directives.directive.spec.js similarity index 100% rename from test/unit/directivesSpec.js rename to test/unit/directives.directive.spec.js diff --git a/test/unit/tabs/exchange.controller.spec.js b/test/unit/tabs/exchange.controller.spec.js new file mode 100644 index 000000000..b106c8f03 --- /dev/null +++ b/test/unit/tabs/exchange.controller.spec.js @@ -0,0 +1,135 @@ +'use strict'; + +var lang = 'en'; + +describe('ExchangeCtrl', function() { + var scope, ctrl, network; + + beforeEach(module("my.templates")); + beforeEach(module('rp')); + beforeEach(inject(function ($rootScope, $controller, rpNetwork, $compile, $document, rpId, $templateCache) { + scope = $rootScope.$new(); + network = rpNetwork; + + scope.currencies_all = [ + { name: 'Ripples', value: 'XRP'}, + { name: 'US Dollar', value: 'USD'} + ]; + + scope.currencies_all_keyed = { + XRP: { + value: 'XRP', + name: 'Ripples', + order: 5 + }, + USD: { + value: 'USD', + name: 'US Dollar', + order: 4 + }, + BTC: { + value: 'BTC', + name: 'Bitcoin', + order: 2 + }, + XAU: { + value: 'XAU', + name: 'Gold', + order: 0 + } + }; + + rpId.loginStatus = true; + rpId.account = 'r4EwBWxrx5HxYRyisfGzMto3AT8FZiYdWk'; + + var templ = $templateCache.get('templates/en/tabs/exchange.html'); + var element = $compile(templ)(scope); + scope = element.scope(); + })); + + it('should be initialized with defaults', function(done) { + assert.isObject(scope.xrp); + assert.strictEqual(scope.xrp.name, 'XRP - Ripples'); + assert.strictEqual(scope.xrp.code, 'XRP'); + assert.isObject(scope.xrp.currency); + done(); + }); + + it('should update currency_choices after setting trust lines', function(done) { + scope.lines = { + rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59BUSD: { + account: 'rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B', + currency: 'USD' + }, + rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2qUSD: { + account: 'rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q', + currency: 'USD' + }, + rhXzSyt1q9J8uiFXpK3qSugAAPJKXLtnrFUSD: { + account: 'rhXzSyt1q9J8uiFXpK3qSugAAPJKXLtnrF', + currency: 'USD' + }, + rs9M85karFkCRjvc6KMWn8Coigm9cbcgcx015841551A748AD2C1F76FF6ECB0CCCD00000000: { + account: 'rs9M85karFkCRjvc6KMWn8Coigm9cbcgcx', + currency: '015841551A748AD2C1F76FF6ECB0CCCD00000000' + } + }; + + // kicks off watches + scope.$apply(); + + assert.strictEqual(scope.currency_choices[0], 'XRP - Ripples'); + + done(); + }); + + it('should update paths after entering 2 as amount for XRP', function(done) { + scope.exchange.amount = '2'; + + var spy = sinon.spy(scope, 'reset_paths'); + scope.$apply(); + + setTimeout(function() { + assert(spy.called, 'reset_paths not called'); + assert.strictEqual(scope.exchange.alternatives.length, 0, 'paths not empty'); + assert.strictEqual(scope.exchange.amount_feedback && scope.exchange.amount_feedback.to_text_full(), '2/XRP', 'name wrong'); + + done(); + }, 100); + }); + + it('should update paths after changing currency choice', function(done) { + var spy = sinon.spy(scope, 'update_exchange'); + scope.exchange.amount = '2'; + scope.exchange.currency_name = 'USD'; + + scope.$apply(); + + setTimeout(function() { + assert(spy.called, 'update_exchange not called'); + + assert.isObject(scope.exchange.currency_obj, 'currency_obj not object'); + assert.strictEqual(scope.exchange.currency_code, 'USD', 'currency_code not USD'); + assert.strictEqual(scope.exchange.currency_name, 'USD - US Dollar', 'currency_name not USD'); + + assert.strictEqual(scope.exchange.path_status, 'pending', 'path_status to pending'); + + done(); + }, 100); + }); + + it('should update paths after entering 2 as amount for XRP', function(done) { + scope.exchange.amount = '0.001'; + scope.exchange.currency_name = 'USD'; + var spy = sinon.spy(scope, 'reset_paths'); + scope.$apply(); + + setTimeout(function() { + assert(spy.called, 'reset_paths not called for USD'); + assert.strictEqual(scope.exchange.alternatives.length, 0, 'paths not null'); + assert.strictEqual(scope.exchange.amount_feedback.to_text_full(), '0.001/USD/r4EwBWxrx5HxYRyisfGzMto3AT8FZiYdWk', 'feedback invalid'); + + done(); + }, 100); + }); +}); diff --git a/test/unit/tabs/exchangeTabSpec.js b/test/unit/tabs/exchangeTabSpec.js deleted file mode 100644 index c670af4d0..000000000 --- a/test/unit/tabs/exchangeTabSpec.js +++ /dev/null @@ -1,138 +0,0 @@ -'use strict'; - -describe('ExchangeCtrl', function() { - var scope, dependencies, ctrl, network; - - beforeEach(module("rp")); - beforeEach(inject(function ($rootScope, $controller, rpNetwork) { - scope = $rootScope.$new(); - network = rpNetwork; - - scope.currencies_all = [ - { name: 'Ripples', value: 'XRP'}, - { name: 'US Dollar', value: 'USD'} - ]; - - scope.currencies_all_keyed = { - "XRP": { - "value": "XRP", - "name": "Ripples", - "order": 5 - }, - "USD": { - "value": "USD", - "name": "US Dollar", - "order": 4 - }, - "BTC": { - "value": "BTC", - "name": "Bitcoin", - "order": 2 - }, - "XAU": { - "value": "XAU", - "name": "Gold", - "order": 0 - } - }; - - dependencies = { - $scope: scope, - $element: null, - $network: rpNetwork, - rpId: { - loginStatus: true, - account: 'r4EwBWxrx5HxYRyisfGzMto3AT8FZiYdWk' - } - }; - - - ctrl = $controller("ExchangeCtrl", dependencies); - })); - - it('should be initialized with defaults', function (done) { - assert.isObject(scope.xrp); - assert.strictEqual(scope.xrp.name, 'XRP - Ripples'); - assert.strictEqual(scope.xrp.code, 'XRP'); - assert.isObject(scope.xrp.currency); - done(); - }); - - it('should update currency_choices after setting trust lines', function(done) { - - scope.lines = { - "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59BUSD": { - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "currency": "USD" - }, - "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2qUSD": { - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "currency": "USD" - }, - "rhXzSyt1q9J8uiFXpK3qSugAAPJKXLtnrFUSD": { - "account": "rhXzSyt1q9J8uiFXpK3qSugAAPJKXLtnrF", - "currency": "USD" - }, - "rs9M85karFkCRjvc6KMWn8Coigm9cbcgcx015841551A748AD2C1F76FF6ECB0CCCD00000000": { - "account": "rs9M85karFkCRjvc6KMWn8Coigm9cbcgcx", - "currency": "015841551A748AD2C1F76FF6ECB0CCCD00000000" - } - }; - - // kicks off watches - scope.$apply(); - - assert.strictEqual(scope.currency_choices[0], 'XRP - Ripples'); - - done(); - }); - - it('should update paths after entering 2 as amount for XRP', function(done) { - - scope.exchange.amount = "2"; - var spy = sinon.spy(scope, 'reset_paths'); - scope.$apply(); - - assert(spy.called); - assert.strictEqual(scope.exchange.alternatives.length, 0); - assert.strictEqual(scope.exchange.amount_feedback.to_text_full(), "2/XRP"); - - done(); - }); - - it('should update paths after changing currency choice', function(done) { - - var spy = sinon.spy(scope, 'update_exchange'); - scope.exchange.currency_name = "USD"; - - scope.$apply(); - - assert(spy.called); - - assert.isObject(scope.exchange.currency_obj); - assert.strictEqual(scope.exchange.currency_code, 'USD'); - assert.strictEqual(scope.exchange.currency_name, 'USD - US Dollar'); - - assert.strictEqual(scope.exchange.path_status, 'waiting'); - - done(); - }); - - - it('should update paths after entering 2 as amount for XRP', function(done) { - - scope.exchange.amount = "0.001"; - scope.exchange.currency_name = "USD"; - var spy = sinon.spy(scope, 'reset_paths'); - scope.$apply(); - - assert(spy.called); - assert.strictEqual(scope.exchange.alternatives.length, 0); - assert.strictEqual(scope.exchange.amount_feedback.to_text_full(), "0.001/USD/r4EwBWxrx5HxYRyisfGzMto3AT8FZiYdWk"); - - done(); - }); - - - -}); \ No newline at end of file diff --git a/test/unit/tabs/sendTabSpec.js b/test/unit/tabs/send.controller.spec.js similarity index 99% rename from test/unit/tabs/sendTabSpec.js rename to test/unit/tabs/send.controller.spec.js index a4c848e4f..812fc2424 100644 --- a/test/unit/tabs/sendTabSpec.js +++ b/test/unit/tabs/send.controller.spec.js @@ -3,6 +3,7 @@ describe('SendCtrl', function(){ var scope, dependencies, ctrl, network; + beforeEach(module("my.templates")); beforeEach(module("rp")); beforeEach(inject(function($rootScope, $controller, rpNetwork) { scope = $rootScope.$new(); diff --git a/test/unit/util/jsonRewriterSpec.js b/test/unit/util/jsonRewriterSpec.js new file mode 100644 index 000000000..d436af8e7 --- /dev/null +++ b/test/unit/util/jsonRewriterSpec.js @@ -0,0 +1,25 @@ +'use strict'; + +describe('JsonRewriter', function() { + var rewriter = window.rippleclient.rewriter, + account = 'rfXK4fN2AAqH7H5Uo94JQwT88qQkv69pqR', + data = {engine_result: 'tesSUCCESS', engine_result_code: 0, engine_result_message: 'The transaction was applied. Only final in a validated ledger.', ledger_hash: '3A42FDDA268818463C360402FB37A1D95F4C7463C3C8568535C65358A9AFCFE2', ledger_index: 11412348, meta: { AffectedNodes: [{CreatedNode: {LedgerEntryType: 'RippleState', LedgerIndex: '40865600F1D8928F756718AF147BA726784A6C76317C08F9FB0A0530F38F48CE', NewFields: { Balance: { currency: 'TST', issuer: 'rrrrrrrrrrrrrrrrrrrrBZbvji', value: '0'}, Flags: 1114112, HighLimit: { currency: 'TST', issuer: 'rfXK4fN2AAqH7H5Uo94JQwT88qQkv69pqR', value: '0'}, LowLimit: { currency: 'TST', issuer: 'rp8rJYTpodf8qbSCHVTNacf8nSW8mRakFw', value: '541'}}}}, { ModifiedNode: { FinalFields: { Account: 'rp8rJYTpodf8qbSCHVTNacf8nSW8mRakFw', Balance: '71363800', Flags: 0, OwnerCount: 9, Sequence: 54}, LedgerEntryType: 'AccountRoot', LedgerIndex: '8B24E55376A65D68542C17F3BF446231AC7062CB43BED28817570128A1849819', PreviousFields:{ Balance: '71375800', OwnerCount: 8, Sequence: 53 }, PreviousTxnID: '8E194F430FF573C4BC748FA4B73A0CBA778A50A1855E8677FADBAE16E595CD4E', PreviousTxnLgrSeq: 11412343}}, { ModifiedNode: { FinalFields: { Flags: 0, Owner: 'rp8rJYTpodf8qbSCHVTNacf8nSW8mRakFw', RootIndex: 'D7198895F90CB2FBCA3D7DEECABA4104FB92287E8B8B1F26DB94525A5ABC3808'}, LedgerEntryType: 'DirectoryNode', LedgerIndex: 'D7198895F90CB2FBCA3D7DEECABA4104FB92287E8B8B1F26DB94525A5ABC3808'}}, { ModifiedNode: { FinalFields: { Account: 'rfXK4fN2AAqH7H5Uo94JQwT88qQkv69pqR', Balance: '118407447', Flags: 0, OwnerCount: 7, Sequence: 560 }, LedgerEntryType: 'AccountRoot', LedgerIndex: 'E47087B762FD22F5F36E8B7188BEA18659F443092041684A6C0C757609E1DF86', PreviousTxnID: '8E194F430FF573C4BC748FA4B73A0CBA778A50A1855E8677FADBAE16E595CD4E', PreviousTxnLgrSeq: 11412343}}, { ModifiedNode: { FinalFields: { Flags: 0, Owner: 'rfXK4fN2AAqH7H5Uo94JQwT88qQkv69pqR', RootIndex: 'F9F86D42EBA6096BE7FF953C60572E68D430D760CAD4F78BD04F2EE1450EA6B5'}, LedgerEntryType: 'DirectoryNode', LedgerIndex: 'F9F86D42EBA6096BE7FF953C60572E68D430D760CAD4F78BD04F2EE1450EA6B5'}}], TransactionIndex: 12, TransactionResult: 'tesSUCCESS'}, status: 'closed', transaction: { Account: 'rp8rJYTpodf8qbSCHVTNacf8nSW8mRakFw', Fee: '12000', Flags: 2147614720, LastLedgerSequence: 11412350, LimitAmount: { currency: 'TST', issuer: 'rfXK4fN2AAqH7H5Uo94JQwT88qQkv69pqR', value: '541'}, Memos: [{ Memo: { MemoFormat: '7274312E322E312D3234392D67323830353539302D64697274792D6465627567202D2048454144', 'MemoType': '636C69656E74'}}], Sequence: 53, SigningPubKey: '023DF3A034F5C7F4FE9F247ECCD7ABAC5DC3F2819F3C62AD9B9D2E9690DBAA84EB', TransactionType: 'TrustSet', TxnSignature: '3044022043D7C2F7256819CE61D3F22658A452116A7FC9919B01A07F4C937AD660C976C2022076E3090C3861A9F6FC9758FCA03270213579AF1F0F97D922F9AE46E5C4F46BFB', date: 475897740, hash: '72B496AF54ECD1D6E8B8BA91931BB2A99FD541835B5668F9AA2095BF97BB8352'}, type: 'transaction', validated: true}; + + it('should parse incoming trust line right', function(done) { + var tx = rewriter.processTxn(data.transaction, data.meta, account); + expect(tx).to.be.an('object'); + expect(tx.transaction).to.be.an('object'); + expect(tx.transaction.type).to.equal('trusted'); + expect(tx.transaction.currency).to.equal('TST'); + expect(tx.transaction.counterparty).to.equal('rp8rJYTpodf8qbSCHVTNacf8nSW8mRakFw'); + expect(tx.effects).to.be.an.instanceof(Array); + expect(tx.effects).to.have.length(1); + expect(tx.effects[0].type).to.equal('trust_create_remote'); + expect(tx.effects[0].currency).to.equal('TST'); + expect(tx.effects[0].noRipple).to.be.true; + assert.equal(tx.effects[0].limit.to_number(), 0); + assert.equal(tx.effects[0].limit_peer.to_number(), 541); + + done(); + }); +}); diff --git a/test/unit/util/settingsSpec.js b/test/unit/util/settingsSpec.js new file mode 100644 index 000000000..2433b54f6 --- /dev/null +++ b/test/unit/util/settingsSpec.js @@ -0,0 +1,81 @@ +'use strict'; + +var expect = chai.expect; + +describe('settings utils', function() { + + it('should check invalid', function(done) { + expect(rippleclient.settingsUtils.blobIsValid({})).to.be.false; + done(); + }); + + it('should be false', function(done) { + expect(rippleclient.settingsUtils.hasSetting()).to.be.false; + done(); + }); + + it('should be false 2', function(done) { + expect(rippleclient.settingsUtils.hasSetting({}, 's')).to.be.false; + done(); + }); + + it('should be false 3', function(done) { + expect(rippleclient.settingsUtils.hasSetting({ data : {} }, 's')).to.be.false; + done(); + }); + + it('should be false 4', function(done) { + expect(rippleclient.settingsUtils.hasSetting({ data : { clients : {} } }, 's')).to.be.false; + done(); + }); + + it('should be false 4', function(done) { + expect(rippleclient.settingsUtils.hasSetting({ data : { clients : false } }, 's')).to.be.false; + done(); + }); + + it('should be false 5', function(done) { + expect(rippleclient.settingsUtils.hasSetting({ data : { clients : { rippletradecom : {} } } }, 's')).to.be.false; + done(); + }); + + it('should be false 6', function(done) { + expect(rippleclient.settingsUtils.hasSetting({ data : { clients : { rippletradecom : { s: { } } } } }, 's.x')).to.be.false; + done(); + }); + + it('should be true', function(done) { + expect(rippleclient.settingsUtils.hasSetting({ data : { clients : { rippletradecom : { s: false } } } }, 's')).to.be.true; + done(); + }); + + it('should be true 2', function(done) { + expect(rippleclient.settingsUtils.hasSetting({ data : { clients : { rippletradecom : { s: { x : 'f' } } } } }, 's.x')).to.be.true; + done(); + }); + + it('should be true 3', function(done) { + expect(rippleclient.settingsUtils.hasSetting({ data : { clients : { rippletradecom : { s: { x : undefined } } } } }, 's.x')).to.be.true; + done(); + }); + + it('should get settings', function(done) { + expect(rippleclient.settingsUtils.getSetting({ data : { clients : { rippletradecom : { s: 'got it' } } } }, 's')).to.equal('got it'); + done(); + }); + + it('should get settings 2', function(done) { + expect(rippleclient.settingsUtils.getSetting({ data : { clients : { rippletradecom : { s: { x : 'got it'} } } } }, 's.x')).to.equal('got it'); + done(); + }); + + it('should get settings 3', function(done) { + expect(rippleclient.settingsUtils.getSetting({ data : { clients : { rippletradecom : { s: { x : 'got it'} } } } }, 's.x', 'it is default')).to.equal('got it'); + done(); + }); + + it('should get settings 4', function(done) { + expect(rippleclient.settingsUtils.getSetting({ data : { clients : { rippletradecom : { s: { y : 'got it'} } } } }, 's.x', 'it is default')).to.equal('it is default'); + done(); + }); +});