├── .electron-vue ├── build.js ├── dev-client.js ├── dev-runner.js ├── webpack.main.config.js ├── webpack.renderer.config.js └── webpack.web.config.js ├── .gitignore ├── README.md ├── TODO.md ├── appveyor.yml ├── demo-img ├── 1001.png ├── 1002.png ├── 1003.png ├── 2001.png ├── 2002.png ├── 2003.png ├── 2004.png ├── 2005.png ├── 3001.png ├── 4001.png ├── 4002.png ├── 5001.png ├── 6001.png ├── 6002.png └── 6003.png ├── dist ├── electron │ └── .gitkeep └── web │ └── .gitkeep ├── gulpfile.js ├── help.md ├── i18n ├── config.js ├── languges_conf.js └── tap-i18n.json ├── package.json ├── src ├── datastore │ └── index.js ├── index.ejs ├── main │ ├── index.dev.js │ └── index.js └── renderer │ ├── App.vue │ ├── assets │ ├── .gitkeep │ ├── css │ │ ├── element-ui.css │ │ └── reset.scss │ └── logo.png │ ├── components │ ├── Account │ │ └── Account.vue │ ├── Contacts │ │ └── Contacts.vue │ ├── Header │ │ └── Header.vue │ ├── Home │ │ └── Home.vue │ ├── Setting │ │ └── Setting.vue │ └── Transfer │ │ └── Transfer.vue │ ├── i18n │ ├── af.json │ ├── am.json │ ├── ar.json │ ├── az.json │ ├── be.json │ ├── bg.json │ ├── bn.json │ ├── bs.json │ ├── ca.json │ ├── ceb.json │ ├── co.json │ ├── cs.json │ ├── cy.json │ ├── da.json │ ├── de.json │ ├── el.json │ ├── en.json │ ├── eo.json │ ├── es.json │ ├── et.json │ ├── eu.json │ ├── fa.json │ ├── fi.json │ ├── fr.json │ ├── fy.json │ ├── ga.json │ ├── gd.json │ ├── gl.json │ ├── gu.json │ ├── ha.json │ ├── haw.json │ ├── hi.json │ ├── hmn.json │ ├── hr.json │ ├── ht.json │ ├── hu.json │ ├── hy.json │ ├── id.json │ ├── ig.json │ ├── is.json │ ├── it.json │ ├── iw.json │ ├── ja.json │ ├── jw.json │ ├── ka.json │ ├── kk.json │ ├── km.json │ ├── kn.json │ ├── ko.json │ ├── ku.json │ ├── ky.json │ ├── la.json │ ├── lb.json │ ├── lo.json │ ├── lv.json │ ├── mg.json │ ├── mi.json │ ├── mk.json │ ├── ml.json │ ├── mn.json │ ├── mr.json │ ├── ms.json │ ├── mt.json │ ├── my.json │ ├── ne.json │ ├── nl.json │ ├── no.json │ ├── ny.json │ ├── pa.json │ ├── pl.json │ ├── ps.json │ ├── pt.json │ ├── ro.json │ ├── ru.json │ ├── sd.json │ ├── si.json │ ├── sk.json │ ├── sl.json │ ├── sm.json │ ├── sn.json │ ├── so.json │ ├── sq.json │ ├── sr.json │ ├── st.json │ ├── su.json │ ├── sv.json │ ├── sw.json │ ├── ta.json │ ├── te.json │ ├── tg.json │ ├── th.json │ ├── tl.json │ ├── tr.json │ ├── uk.json │ ├── ur.json │ ├── uz.json │ ├── vi.json │ ├── xh.json │ ├── yi.json │ ├── yo.json │ ├── zh-CN.json │ ├── zh-TW.json │ └── zu.json │ ├── main.js │ ├── router │ └── index.js │ └── store │ ├── index.js │ └── modules │ ├── Counter.js │ └── index.js ├── static ├── .gitkeep └── icons │ ├── 256x256.png │ ├── icon.icns │ ├── icon.ico │ └── logo.png └── web-read.md /.electron-vue/build.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | process.env.NODE_ENV = 'production' 4 | 5 | const { say } = require('cfonts') 6 | const chalk = require('chalk') 7 | const del = require('del') 8 | const { spawn } = require('child_process') 9 | const webpack = require('webpack') 10 | const Multispinner = require('multispinner') 11 | 12 | 13 | const mainConfig = require('./webpack.main.config') 14 | const rendererConfig = require('./webpack.renderer.config') 15 | const webConfig = require('./webpack.web.config') 16 | 17 | const doneLog = chalk.bgGreen.white(' DONE ') + ' ' 18 | const errorLog = chalk.bgRed.white(' ERROR ') + ' ' 19 | const okayLog = chalk.bgBlue.white(' OKAY ') + ' ' 20 | const isCI = process.env.CI || false 21 | 22 | if (process.env.BUILD_TARGET === 'clean') clean() 23 | else if (process.env.BUILD_TARGET === 'web') web() 24 | else build() 25 | 26 | function clean () { 27 | del.sync(['build/*', '!build/icons', '!build/icons/icon.*']) 28 | console.log(`\n${doneLog}\n`) 29 | process.exit() 30 | } 31 | 32 | function build () { 33 | greeting() 34 | 35 | del.sync(['dist/electron/*', '!.gitkeep']) 36 | 37 | const tasks = ['main', 'renderer'] 38 | const m = new Multispinner(tasks, { 39 | preText: 'building', 40 | postText: 'process' 41 | }) 42 | 43 | let results = '' 44 | 45 | m.on('success', () => { 46 | process.stdout.write('\x1B[2J\x1B[0f') 47 | console.log(`\n\n${results}`) 48 | console.log(`${okayLog}take it away ${chalk.yellow('`electron-builder`')}\n`) 49 | process.exit() 50 | }) 51 | 52 | pack(mainConfig).then(result => { 53 | results += result + '\n\n' 54 | m.success('main') 55 | }).catch(err => { 56 | m.error('main') 57 | console.log(`\n ${errorLog}failed to build main process`) 58 | console.error(`\n${err}\n`) 59 | process.exit(1) 60 | }) 61 | 62 | pack(rendererConfig).then(result => { 63 | results += result + '\n\n' 64 | m.success('renderer') 65 | }).catch(err => { 66 | m.error('renderer') 67 | console.log(`\n ${errorLog}failed to build renderer process`) 68 | console.error(`\n${err}\n`) 69 | process.exit(1) 70 | }) 71 | } 72 | 73 | function pack (config) { 74 | return new Promise((resolve, reject) => { 75 | webpack(config, (err, stats) => { 76 | if (err) reject(err.stack || err) 77 | else if (stats.hasErrors()) { 78 | let err = '' 79 | 80 | stats.toString({ 81 | chunks: false, 82 | colors: true 83 | }) 84 | .split(/\r?\n/) 85 | .forEach(line => { 86 | err += ` ${line}\n` 87 | }) 88 | 89 | reject(err) 90 | } else { 91 | resolve(stats.toString({ 92 | chunks: false, 93 | colors: true 94 | })) 95 | } 96 | }) 97 | }) 98 | } 99 | 100 | function web () { 101 | del.sync(['dist/web/*', '!.gitkeep']) 102 | webpack(webConfig, (err, stats) => { 103 | if (err || stats.hasErrors()) console.log(err) 104 | 105 | console.log(stats.toString({ 106 | chunks: false, 107 | colors: true 108 | })) 109 | 110 | process.exit() 111 | }) 112 | } 113 | 114 | function greeting () { 115 | const cols = process.stdout.columns 116 | let text = '' 117 | 118 | if (cols > 85) text = 'lets-build' 119 | else if (cols > 60) text = 'lets-|build' 120 | else text = false 121 | 122 | if (text && !isCI) { 123 | say(text, { 124 | colors: ['yellow'], 125 | font: 'simple3d', 126 | space: false 127 | }) 128 | } else console.log(chalk.yellow.bold('\n lets-build')) 129 | console.log() 130 | } 131 | -------------------------------------------------------------------------------- /.electron-vue/dev-client.js: -------------------------------------------------------------------------------- 1 | const hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true') 2 | 3 | hotClient.subscribe(event => { 4 | /** 5 | * Reload browser when HTMLWebpackPlugin emits a new index.html 6 | * 7 | * Currently disabled until jantimon/html-webpack-plugin#680 is resolved. 8 | * https://github.com/SimulatedGREG/electron-vue/issues/437 9 | * https://github.com/jantimon/html-webpack-plugin/issues/680 10 | */ 11 | // if (event.action === 'reload') { 12 | // window.location.reload() 13 | // } 14 | 15 | /** 16 | * Notify `mainWindow` when `main` process is compiling, 17 | * giving notice for an expected reload of the `electron` process 18 | */ 19 | if (event.action === 'compiling') { 20 | document.body.innerHTML += ` 21 | 34 | 35 |
36 | Compiling Main Process... 37 |
38 | ` 39 | } 40 | }) 41 | -------------------------------------------------------------------------------- /.electron-vue/dev-runner.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const chalk = require('chalk') 4 | const electron = require('electron') 5 | const path = require('path') 6 | const { say } = require('cfonts') 7 | const { spawn } = require('child_process') 8 | const webpack = require('webpack') 9 | const WebpackDevServer = require('webpack-dev-server') 10 | const webpackHotMiddleware = require('webpack-hot-middleware') 11 | 12 | const mainConfig = require('./webpack.main.config') 13 | const rendererConfig = require('./webpack.renderer.config') 14 | 15 | let electronProcess = null 16 | let manualRestart = false 17 | let hotMiddleware 18 | 19 | function logStats (proc, data) { 20 | let log = '' 21 | 22 | log += chalk.yellow.bold(`┏ ${proc} Process ${new Array((19 - proc.length) + 1).join('-')}`) 23 | log += '\n\n' 24 | 25 | if (typeof data === 'object') { 26 | data.toString({ 27 | colors: true, 28 | chunks: false 29 | }).split(/\r?\n/).forEach(line => { 30 | log += ' ' + line + '\n' 31 | }) 32 | } else { 33 | log += ` ${data}\n` 34 | } 35 | 36 | log += '\n' + chalk.yellow.bold(`┗ ${new Array(28 + 1).join('-')}`) + '\n' 37 | 38 | console.log(log) 39 | } 40 | 41 | function startRenderer () { 42 | return new Promise((resolve, reject) => { 43 | rendererConfig.entry.renderer = [path.join(__dirname, 'dev-client')].concat(rendererConfig.entry.renderer) 44 | 45 | const compiler = webpack(rendererConfig) 46 | hotMiddleware = webpackHotMiddleware(compiler, { 47 | log: false, 48 | heartbeat: 2500 49 | }) 50 | 51 | compiler.plugin('compilation', compilation => { 52 | compilation.plugin('html-webpack-plugin-after-emit', (data, cb) => { 53 | hotMiddleware.publish({ action: 'reload' }) 54 | cb() 55 | }) 56 | }) 57 | 58 | compiler.plugin('done', stats => { 59 | logStats('Renderer', stats) 60 | }) 61 | 62 | const server = new WebpackDevServer( 63 | compiler, 64 | { 65 | contentBase: path.join(__dirname, '../'), 66 | quiet: true, 67 | before (app, ctx) { 68 | app.use(hotMiddleware) 69 | ctx.middleware.waitUntilValid(() => { 70 | resolve() 71 | }) 72 | } 73 | } 74 | ) 75 | 76 | server.listen(9080) 77 | }) 78 | } 79 | 80 | function startMain () { 81 | return new Promise((resolve, reject) => { 82 | mainConfig.entry.main = [path.join(__dirname, '../src/main/index.dev.js')].concat(mainConfig.entry.main) 83 | 84 | const compiler = webpack(mainConfig) 85 | 86 | compiler.plugin('watch-run', (compilation, done) => { 87 | logStats('Main', chalk.white.bold('compiling...')) 88 | hotMiddleware.publish({ action: 'compiling' }) 89 | done() 90 | }) 91 | 92 | compiler.watch({}, (err, stats) => { 93 | if (err) { 94 | console.log(err) 95 | return 96 | } 97 | 98 | logStats('Main', stats) 99 | 100 | if (electronProcess && electronProcess.kill) { 101 | manualRestart = true 102 | process.kill(electronProcess.pid) 103 | electronProcess = null 104 | startElectron() 105 | 106 | setTimeout(() => { 107 | manualRestart = false 108 | }, 5000) 109 | } 110 | 111 | resolve() 112 | }) 113 | }) 114 | } 115 | 116 | function startElectron () { 117 | electronProcess = spawn(electron, ['--inspect=5858', path.join(__dirname, '../dist/electron/main.js')]) 118 | 119 | electronProcess.stdout.on('data', data => { 120 | electronLog(data, 'blue') 121 | }) 122 | electronProcess.stderr.on('data', data => { 123 | electronLog(data, 'red') 124 | }) 125 | 126 | electronProcess.on('close', () => { 127 | if (!manualRestart) process.exit() 128 | }) 129 | } 130 | 131 | function electronLog (data, color) { 132 | let log = '' 133 | data = data.toString().split(/\r?\n/) 134 | data.forEach(line => { 135 | log += ` ${line}\n` 136 | }) 137 | if (/[0-9A-z]+/.test(log)) { 138 | console.log( 139 | chalk[color].bold('┏ Electron -------------------') + 140 | '\n\n' + 141 | log + 142 | chalk[color].bold('┗ ----------------------------') + 143 | '\n' 144 | ) 145 | } 146 | } 147 | 148 | function greeting () { 149 | const cols = process.stdout.columns 150 | let text = '' 151 | 152 | if (cols > 104) text = 'electron-vue' 153 | else if (cols > 76) text = 'electron-|vue' 154 | else text = false 155 | 156 | if (text) { 157 | say(text, { 158 | colors: ['yellow'], 159 | font: 'simple3d', 160 | space: false 161 | }) 162 | } else console.log(chalk.yellow.bold('\n electron-vue')) 163 | console.log(chalk.blue(' getting ready...') + '\n') 164 | } 165 | 166 | function init () { 167 | greeting() 168 | 169 | Promise.all([startRenderer(), startMain()]) 170 | .then(() => { 171 | startElectron() 172 | }) 173 | .catch(err => { 174 | console.error(err) 175 | }) 176 | } 177 | 178 | init() 179 | -------------------------------------------------------------------------------- /.electron-vue/webpack.main.config.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | process.env.BABEL_ENV = 'main' 4 | 5 | const path = require('path') 6 | const { dependencies } = require('../package.json') 7 | const webpack = require('webpack') 8 | 9 | const BabiliWebpackPlugin = require('babili-webpack-plugin') 10 | 11 | let mainConfig = { 12 | entry: { 13 | main: path.join(__dirname, '../src/main/index.js') 14 | }, 15 | externals: [ 16 | ...Object.keys(dependencies || {}) 17 | ], 18 | module: { 19 | rules: [ 20 | { 21 | test: /\.js$/, 22 | use: 'babel-loader', 23 | exclude: /node_modules/ 24 | }, 25 | { 26 | test: /\.node$/, 27 | use: 'node-loader' 28 | } 29 | ] 30 | }, 31 | node: { 32 | __dirname: process.env.NODE_ENV !== 'production', 33 | __filename: process.env.NODE_ENV !== 'production' 34 | }, 35 | output: { 36 | filename: '[name].js', 37 | libraryTarget: 'commonjs2', 38 | path: path.join(__dirname, '../dist/electron') 39 | }, 40 | plugins: [ 41 | new webpack.NoEmitOnErrorsPlugin() 42 | ], 43 | resolve: { 44 | extensions: ['.js', '.json', '.node'] 45 | }, 46 | target: 'electron-main' 47 | } 48 | 49 | /** 50 | * Adjust mainConfig for development settings 51 | */ 52 | if (process.env.NODE_ENV !== 'production') { 53 | mainConfig.plugins.push( 54 | new webpack.DefinePlugin({ 55 | '__static': `"${path.join(__dirname, '../static').replace(/\\/g, '\\\\')}"` 56 | }) 57 | ) 58 | } 59 | 60 | /** 61 | * Adjust mainConfig for production settings 62 | */ 63 | if (process.env.NODE_ENV === 'production') { 64 | mainConfig.plugins.push( 65 | new BabiliWebpackPlugin(), 66 | new webpack.DefinePlugin({ 67 | 'process.env.NODE_ENV': '"production"' 68 | }) 69 | ) 70 | } 71 | 72 | module.exports = mainConfig 73 | -------------------------------------------------------------------------------- /.electron-vue/webpack.renderer.config.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | process.env.BABEL_ENV = 'renderer' 4 | 5 | const path = require('path') 6 | const { dependencies } = require('../package.json') 7 | const webpack = require('webpack') 8 | 9 | const BabiliWebpackPlugin = require('babili-webpack-plugin') 10 | const CopyWebpackPlugin = require('copy-webpack-plugin') 11 | const ExtractTextPlugin = require('extract-text-webpack-plugin') 12 | const HtmlWebpackPlugin = require('html-webpack-plugin') 13 | 14 | /** 15 | * List of node_modules to include in webpack bundle 16 | * 17 | * Required for specific packages like Vue UI libraries 18 | * that provide pure *.vue files that need compiling 19 | * https://simulatedgreg.gitbooks.io/electron-vue/content/en/webpack-configurations.html#white-listing-externals 20 | */ 21 | let whiteListedModules = ['vue'] 22 | 23 | let rendererConfig = { 24 | devtool: '#cheap-module-eval-source-map', 25 | entry: { 26 | renderer: path.join(__dirname, '../src/renderer/main.js') 27 | }, 28 | externals: [ 29 | ...Object.keys(dependencies || {}).filter(d => !whiteListedModules.includes(d)) 30 | ], 31 | module: { 32 | rules: [ 33 | { 34 | test: /\.css$/, 35 | use: ExtractTextPlugin.extract({ 36 | fallback: 'style-loader', 37 | use: 'css-loader' 38 | }) 39 | }, 40 | { 41 | test: /\.html$/, 42 | use: 'vue-html-loader' 43 | }, 44 | { 45 | test: /\.js$/, 46 | use: 'babel-loader', 47 | exclude: /node_modules/ 48 | }, 49 | { 50 | test: /\.node$/, 51 | use: 'node-loader' 52 | }, 53 | { 54 | test: /\.vue$/, 55 | use: { 56 | loader: 'vue-loader', 57 | options: { 58 | extractCSS: process.env.NODE_ENV === 'production', 59 | loaders: { 60 | sass: 'vue-style-loader!css-loader!sass-loader?indentedSyntax=1', 61 | scss: 'vue-style-loader!css-loader!sass-loader' 62 | } 63 | } 64 | } 65 | }, 66 | { 67 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, 68 | use: { 69 | loader: 'url-loader', 70 | query: { 71 | limit: 10000, 72 | name: 'imgs/[name]--[folder].[ext]' 73 | } 74 | } 75 | }, 76 | { 77 | test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, 78 | loader: 'url-loader', 79 | options: { 80 | limit: 10000, 81 | name: 'media/[name]--[folder].[ext]' 82 | } 83 | }, 84 | { 85 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, 86 | use: { 87 | loader: 'url-loader', 88 | query: { 89 | limit: 10000, 90 | name: 'fonts/[name]--[folder].[ext]' 91 | } 92 | } 93 | } 94 | ] 95 | }, 96 | node: { 97 | __dirname: process.env.NODE_ENV !== 'production', 98 | __filename: process.env.NODE_ENV !== 'production' 99 | }, 100 | plugins: [ 101 | new ExtractTextPlugin('styles.css'), 102 | new HtmlWebpackPlugin({ 103 | filename: 'index.html', 104 | template: path.resolve(__dirname, '../src/index.ejs'), 105 | minify: { 106 | collapseWhitespace: true, 107 | removeAttributeQuotes: true, 108 | removeComments: true 109 | }, 110 | nodeModules: process.env.NODE_ENV !== 'production' 111 | ? path.resolve(__dirname, '../node_modules') 112 | : false 113 | }), 114 | new webpack.HotModuleReplacementPlugin(), 115 | new webpack.NoEmitOnErrorsPlugin() 116 | ], 117 | output: { 118 | filename: '[name].js', 119 | libraryTarget: 'commonjs2', 120 | path: path.join(__dirname, '../dist/electron') 121 | }, 122 | resolve: { 123 | alias: { 124 | '@': path.join(__dirname, '../src/renderer'), 125 | 'vue$': 'vue/dist/vue.esm.js' 126 | }, 127 | extensions: ['.js', '.vue', '.json', '.css', '.node'] 128 | }, 129 | target: 'electron-renderer' 130 | } 131 | 132 | /** 133 | * Adjust rendererConfig for development settings 134 | */ 135 | if (process.env.NODE_ENV !== 'production') { 136 | rendererConfig.plugins.push( 137 | new webpack.DefinePlugin({ 138 | '__static': `"${path.join(__dirname, '../static').replace(/\\/g, '\\\\')}"` 139 | }) 140 | ) 141 | } 142 | 143 | /** 144 | * Adjust rendererConfig for production settings 145 | */ 146 | if (process.env.NODE_ENV === 'production') { 147 | rendererConfig.devtool = '' 148 | 149 | rendererConfig.plugins.push( 150 | new BabiliWebpackPlugin(), 151 | new CopyWebpackPlugin([ 152 | { 153 | from: path.join(__dirname, '../static'), 154 | to: path.join(__dirname, '../dist/electron/static'), 155 | ignore: ['.*'] 156 | } 157 | ]), 158 | new webpack.DefinePlugin({ 159 | 'process.env.NODE_ENV': '"production"' 160 | }), 161 | new webpack.LoaderOptionsPlugin({ 162 | minimize: true 163 | }) 164 | ) 165 | } 166 | 167 | module.exports = rendererConfig 168 | -------------------------------------------------------------------------------- /.electron-vue/webpack.web.config.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | process.env.BABEL_ENV = 'web' 4 | 5 | const path = require('path') 6 | const webpack = require('webpack') 7 | 8 | const BabiliWebpackPlugin = require('babili-webpack-plugin') 9 | const CopyWebpackPlugin = require('copy-webpack-plugin') 10 | const ExtractTextPlugin = require('extract-text-webpack-plugin') 11 | const HtmlWebpackPlugin = require('html-webpack-plugin') 12 | 13 | let webConfig = { 14 | devtool: '#cheap-module-eval-source-map', 15 | entry: { 16 | web: path.join(__dirname, '../src/renderer/main.js') 17 | }, 18 | module: { 19 | rules: [ 20 | { 21 | test: /\.css$/, 22 | use: ExtractTextPlugin.extract({ 23 | fallback: 'style-loader', 24 | use: 'css-loader' 25 | }) 26 | }, 27 | { 28 | test: /\.html$/, 29 | use: 'vue-html-loader' 30 | }, 31 | { 32 | test: /\.js$/, 33 | use: 'babel-loader', 34 | include: [ path.resolve(__dirname, '../src/renderer') ], 35 | exclude: /node_modules/ 36 | }, 37 | { 38 | test: /\.vue$/, 39 | use: { 40 | loader: 'vue-loader', 41 | options: { 42 | extractCSS: true, 43 | loaders: { 44 | sass: 'vue-style-loader!css-loader!sass-loader?indentedSyntax=1', 45 | scss: 'vue-style-loader!css-loader!sass-loader' 46 | } 47 | } 48 | } 49 | }, 50 | { 51 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, 52 | use: { 53 | loader: 'url-loader', 54 | query: { 55 | limit: 10000, 56 | name: 'imgs/[name].[ext]' 57 | } 58 | } 59 | }, 60 | { 61 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, 62 | use: { 63 | loader: 'url-loader', 64 | query: { 65 | limit: 10000, 66 | name: 'fonts/[name].[ext]' 67 | } 68 | } 69 | } 70 | ] 71 | }, 72 | plugins: [ 73 | new ExtractTextPlugin('styles.css'), 74 | new HtmlWebpackPlugin({ 75 | filename: 'index.html', 76 | template: path.resolve(__dirname, '../src/index.ejs'), 77 | minify: { 78 | collapseWhitespace: true, 79 | removeAttributeQuotes: true, 80 | removeComments: true 81 | }, 82 | nodeModules: false 83 | }), 84 | new webpack.DefinePlugin({ 85 | 'process.env.IS_WEB': 'true' 86 | }), 87 | new webpack.HotModuleReplacementPlugin(), 88 | new webpack.NoEmitOnErrorsPlugin() 89 | ], 90 | output: { 91 | filename: '[name].js', 92 | path: path.join(__dirname, '../dist/web') 93 | }, 94 | resolve: { 95 | alias: { 96 | '@': path.join(__dirname, '../src/renderer'), 97 | 'vue$': 'vue/dist/vue.esm.js' 98 | }, 99 | extensions: ['.js', '.vue', '.json', '.css'] 100 | }, 101 | target: 'web' 102 | } 103 | 104 | /** 105 | * Adjust webConfig for production settings 106 | */ 107 | if (process.env.NODE_ENV === 'production') { 108 | webConfig.devtool = '' 109 | 110 | webConfig.plugins.push( 111 | new BabiliWebpackPlugin(), 112 | new CopyWebpackPlugin([ 113 | { 114 | from: path.join(__dirname, '../static'), 115 | to: path.join(__dirname, '../dist/web/static'), 116 | ignore: ['.*'] 117 | } 118 | ]), 119 | new webpack.DefinePlugin({ 120 | 'process.env.NODE_ENV': '"production"' 121 | }), 122 | new webpack.LoaderOptionsPlugin({ 123 | minimize: true 124 | }) 125 | ) 126 | } 127 | 128 | module.exports = webConfig 129 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | dist/electron/* 3 | dist/web/* 4 | build/* 5 | !build/icons 6 | node_modules/ 7 | npm-debug.log 8 | npm-debug.log.* 9 | thumbs.db 10 | !.gitkeep 11 | .idea -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### 使用 2 | 3 | - electron (跨平台、使用版本V8.4.0) 4 | - vue (路由/SPA) 5 | - webpack (构建) 6 | - node/npm 7 | - lowdb (本地存储) 8 | 9 | # 依赖 10 | 11 | 需要Geth,我用的是 ganache-cli 来模拟测试的; 12 | 13 | https://github.com/trufflesuite/ganache-cli 14 | 15 | 启动步骤 16 | 17 | > geth --syncmode "fast" --rpc --rpccorsdomain "http://localhost:9080" --rpcapi personal,web3,eth,net 18 | 19 | 20 | ``` bash 21 | # install dependencies 22 | - npm install -g ganache-cli 23 | 24 | # 命令行输入下面命令,并且保持运行状态; 25 | - ganache-cli 26 | ``` 27 | 28 | 如果不启动,使用`infura.io`提供的接口 29 | 30 | #### Build Setup 31 | 32 | ``` bash 33 | # cd 34 | 35 | # install dependencies 36 | npm install 37 | 38 | # serve with hot reload at localhost:9080 39 | npm run dev 40 | 41 | # build electron application for production 42 | npm run build 43 | 44 | 45 | ``` 46 | 47 | #### 页面如下; 48 | 49 | 这个项目是打算简单的熟悉以太的逻辑后,再切到做CZR的项目的(CZR是我所在公司做的一个公链项目); 50 | 51 | 所以这个钱包中,货币的单位`Eth`,使用的是`CZR`(为了切换方便的,其实单位是以太), 52 | 53 | 后续的开发都在:[CanonChain钱包](https://github.com/canonchain/canonchain-wallet); 54 | 55 | 本项目实现功能: 56 | - 创建ETH地址 57 | - 导入ETH地址 58 | - 通过file文件导入地址 59 | - 通过私钥导入 60 | - 删除地址 61 | - 创建联系人 62 | - 删除联系人 63 | - 语言设置 64 | - 转账 65 | - 地址详情 66 | 67 | ![](./demo-img/1001.png) 68 | ![](./demo-img/1002.png) 69 | ![](./demo-img/1003.png) 70 | ![](./demo-img/2001.png) 71 | ![](./demo-img/2002.png) 72 | ![](./demo-img/2003.png) 73 | ![](./demo-img/2004.png) 74 | ![](./demo-img/2005.png) 75 | ![](./demo-img/3001.png) 76 | ![](./demo-img/4001.png) 77 | ![](./demo-img/4002.png) 78 | ![](./demo-img/5001.png) 79 | ![](./demo-img/6001.png) 80 | ![](./demo-img/6002.png) 81 | ![](./demo-img/6003.png) 82 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- 1 | # TODO LIST 2 | - 导入账号 3 | - from 私钥文件导入 4 | - to 复制到目标文件夹 5 | - 创建账号 6 | - form 密码 7 | - to 私钥文件/地址 8 | - 移除账号 9 | - form address 10 | - to DEL 11 | 12 | - geth打包、下载、重启 13 | 14 | - geth端口冲突时候,弹窗提示; 15 | -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- 1 | version: 0.1.{build} 2 | 3 | branches: 4 | only: 5 | - master 6 | 7 | image: Visual Studio 2017 8 | platform: 9 | - x64 10 | 11 | cache: 12 | - node_modules 13 | - '%APPDATA%\npm-cache' 14 | - '%USERPROFILE%\.electron' 15 | - '%USERPROFILE%\AppData\Local\Yarn\cache' 16 | 17 | init: 18 | - git config --global core.autocrlf input 19 | 20 | install: 21 | - ps: Install-Product node 8 x64 22 | - choco install yarn --ignore-dependencies 23 | - git reset --hard HEAD 24 | - yarn 25 | - node --version 26 | 27 | build_script: 28 | - yarn build 29 | 30 | test: off 31 | -------------------------------------------------------------------------------- /demo-img/1001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/demo-img/1001.png -------------------------------------------------------------------------------- /demo-img/1002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/demo-img/1002.png -------------------------------------------------------------------------------- /demo-img/1003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/demo-img/1003.png -------------------------------------------------------------------------------- /demo-img/2001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/demo-img/2001.png -------------------------------------------------------------------------------- /demo-img/2002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/demo-img/2002.png -------------------------------------------------------------------------------- /demo-img/2003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/demo-img/2003.png -------------------------------------------------------------------------------- /demo-img/2004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/demo-img/2004.png -------------------------------------------------------------------------------- /demo-img/2005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/demo-img/2005.png -------------------------------------------------------------------------------- /demo-img/3001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/demo-img/3001.png -------------------------------------------------------------------------------- /demo-img/4001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/demo-img/4001.png -------------------------------------------------------------------------------- /demo-img/4002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/demo-img/4002.png -------------------------------------------------------------------------------- /demo-img/5001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/demo-img/5001.png -------------------------------------------------------------------------------- /demo-img/6001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/demo-img/6001.png -------------------------------------------------------------------------------- /demo-img/6002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/demo-img/6002.png -------------------------------------------------------------------------------- /demo-img/6003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/demo-img/6003.png -------------------------------------------------------------------------------- /dist/electron/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/dist/electron/.gitkeep -------------------------------------------------------------------------------- /dist/web/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/dist/web/.gitkeep -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Translate Chinese json files into other language json files 3 | * language : https://cloud.google.com/translate/docs/languages 4 | */ 5 | const gulp = require('gulp'), 6 | i18n = require('./i18n/config'), 7 | // languges = require('./i18n/languges'), 8 | languges = require('./i18n/languges_conf'), 9 | rename = require('gulp-rename'); 10 | // The task of translating files 11 | gulp.task('default', function () { 12 | for (const languge in languges) { 13 | // console.log(languge,languges[languge]) 14 | gulp.src('./i18n/tap-i18n.json') 15 | .pipe( 16 | // The specific logic of translation 17 | i18n('', languge) 18 | ) 19 | .pipe(rename({ 20 | dirname: "i18n", 21 | basename: languge, 22 | extname: ".json" 23 | })) 24 | // Post-translation file output file path 25 | .pipe(gulp.dest('./src/renderer/')); 26 | } 27 | }); 28 | 29 | gulp.task('watch', function () { 30 | gulp.watch('i18n/tap-i18n.json', ['default']); 31 | }) 32 | -------------------------------------------------------------------------------- /help.md: -------------------------------------------------------------------------------- 1 | ## 生成环境下无法使用复制粘贴的问题 2 | 3 | //解决生产环境无法使用复制粘贴 4 | 5 | const createMenu = () => { 6 | if (process.env.NODE_ENV !== 'development') { 7 | const template = [{ 8 | label: 'Edit', 9 | submenu: [ 10 | { label: 'Undo', accelerator: 'CmdOrCtrl+Z', selector: 'undo:' }, 11 | { label: 'Redo', accelerator: 'Shift+CmdOrCtrl+Z', selector: 'redo:' }, 12 | { type: 'separator' }, 13 | { label: 'Cut', accelerator: 'CmdOrCtrl+X', selector: 'cut:' }, 14 | { label: 'Copy', accelerator: 'CmdOrCtrl+C', selector: 'copy:' }, 15 | { label: 'Paste', accelerator: 'CmdOrCtrl+V', selector: 'paste:' }, 16 | { label: 'Select All', accelerator: 'CmdOrCtrl+A', selector: 'selectAll:' }, 17 | { 18 | label: 'Quit', 19 | accelerator: 'CmdOrCtrl+Q', 20 | click () { 21 | app.quit() 22 | } 23 | } 24 | ] 25 | }] 26 | menu = Menu.buildFromTemplate(template) 27 | Menu.setApplicationMenu(menu) 28 | } 29 | } 30 | 31 | ### CSS设置虚线的密度 32 | 33 | ### vuejs 18国语言的实际构建 34 | 35 | https://github.com/zhubangbang/translation-by-gulp 36 | 37 | 38 | ### Computed property "defaultGas" was assigned to but it has no setter. 39 | 40 | https://github.com/ElemeFE/mint-ui/issues/1000 41 | 42 | ### Invalid prop: type check failed for prop "value". Expected Number, Array, got String. 43 | 44 | vue的model 通过computed来设置的了 45 | 46 | 47 |
48 | 56 | 57 |
58 | 预估手续费:{{ defaultGas }} CZR 59 |
60 | 61 | #### this.$refs 第一次undefind的解决 62 | 63 | 64 | #### lowdb vue 无法自动动刷新 65 | -------------------------------------------------------------------------------- /i18n/config.js: -------------------------------------------------------------------------------- 1 | const { youdao, baidu, google } = require('translation.js'); 2 | 3 | let through = require('through2'), 4 | gutil = require('gulp-util'); 5 | PluginError = gutil.PluginError; 6 | 7 | // Constants, error prompts for use 8 | const PLUGIN_NAME = 'gulp-i18n'; 9 | 10 | /** 11 | * Convert json language 12 | * @param from Translate source data 13 | * @param to Translation language 14 | * @returns {*} 15 | */ 16 | function i18n(from, to) { 17 | // Create a stream channel to allow each file to pass 18 | let stream = through.obj(function (file, enc, cb) { 19 | // console.log(JSON.stringify(file)) 20 | if (file.isStream()) { 21 | this.emit('error', new PluginError(PLUGIN_NAME, 'Streams are not supported!')); 22 | return cb(); 23 | } 24 | if (file.isBuffer()) { 25 | let json = JSON.parse(file.contents.toString()); 26 | let tJson = ''; 27 | // Get the data to be translated in the json file 28 | for (let v in json) { 29 | if (json[v] instanceof Object) { 30 | tJson = getText(json[v], tJson); 31 | } 32 | else { 33 | tJson += json[v] + "\n"; 34 | } 35 | } 36 | if (tJson.length > 2000) 37 | this.emit('error', new PluginError(PLUGIN_NAME, 'Source file is greater than 2000 words')); 38 | //Google Translate 39 | google.translate({ 40 | text: tJson, 41 | from: from, 42 | to: to 43 | }).then(result => { 44 | // console.log("to:"+to,result.result,result) // The data structure of result is shown below 45 | 46 | /* 47 | * esult.result = [ 'Nastavení', 48 | 'CZR', 49 | 'Domů', 50 | 'Přenos', 51 | 'Kontakty', 52 | 'Nastavení', 53 | 'Celkem', 54 | 'Nastavení' ] 55 | * */ 56 | // let result=result; 57 | // console.log("内容是",file.contents.toString()) 58 | let content = file.contents.toString().replace(/(:\s*")(\S+)(")/gi, function (match, p1, p2, p3, offset, string) { 59 | /* console.log( 60 | // result.raw.sentences, 61 | "【match=>"+match+"】", 62 | "【p1=>"+p1+"】", 63 | "【p2=>"+p2+"】", 64 | "【p3=>"+p3+"】", 65 | "【offset=>"+offset+"】", 66 | "【string=>"+string+"】", 67 | )*/ 68 | 69 | /* 70 | result.raw.sentences :[ 71 | { trans: 'Setting\n', orig: 'Setting\n', backend: 3 }, 72 | { trans: 'CZR\n', orig: 'CZR\n', backend: 3 }, 73 | { trans: 'Home\n', orig: '首页\n', backend: 3 }, 74 | { trans: 'Transfer\n', orig: '转账\n', backend: 3 }, 75 | { trans: 'Contacts\n', orig: '联系人\n', backend: 3 }, 76 | { trans: 'Settings\n', orig: '设置\n', backend: 3 }, 77 | { trans: 'total\n', orig: '合计\n', backend: 2 }, 78 | { trans: 'Settings', orig: '设置', backend: 3 } ] ' 79 | 80 | 【match=>:"设置"】' 81 | '【p1=>:"】' 82 | '【p2=>设置】' 83 | '【p3=>"】' 84 | '【offset=>270】' 85 | '【string=>{\n "lang": {\n "browse": "Setting"\n },\n "unit":{\n "czr":"CZR"\n },\n "model_header":{\n "home":"首页",\n "transfer":"转账",\n "contacts":"联系人",\n "setting":"设置",\n "total":"合计"\n },\n "page_setting":{\n "tit":"设置"\n }\n}】' 86 | 87 | 88 | 89 | */ 90 | for (let i = 0; i < result.raw.sentences.length; i++) { 91 | // console.log(result.raw.sentences[i].orig == p2, , match, p2) 92 | let sourcesStr = result.raw.sentences[i].orig.replace("\n", ''); 93 | let targetStr = result.raw.sentences[i].trans.replace("\n", ''); 94 | if (sourcesStr == p2) { 95 | return ':"' + targetStr + '"' 96 | } 97 | 98 | } 99 | return match 100 | }) 101 | 102 | file.contents = new Buffer(content); 103 | // Make sure the file goes to the next gulp plugin 104 | this.push(file); 105 | // Tell the stream engine that we have finished processing this file 106 | cb(); 107 | 108 | }) 109 | } 110 | }); 111 | // return stream file 112 | return stream; 113 | } 114 | 115 | /** 116 | * Get data to translate 117 | * @param src 118 | * @param dst 119 | * @returns {*} 120 | */ 121 | function getText(src, dst) { 122 | for (let k in src) { 123 | if (src[k] instanceof Object) { 124 | dst = getText(src[k], dst); 125 | } 126 | else { 127 | dst += src[k] + "\n"; 128 | } 129 | } 130 | return dst; 131 | } 132 | 133 | module.exports = i18n; -------------------------------------------------------------------------------- /i18n/languges_conf.js: -------------------------------------------------------------------------------- 1 | const languges = { 2 | 3 | 'af': "Burry (Afrikaans)",//布尔语(南非荷兰语) Burry (Afrikaans) 4 | 'sq': "shqiptar",//阿尔巴尼亚语 shqiptar 5 | 'am': "አማርኛ",//阿姆哈拉语 አማርኛ 6 | 'ar': "عربي",//阿拉伯语 عربي 7 | 'hy': "Հայերեն",//亚美尼亚语 Հայերեն 8 | 'az': "Azərbaycan",//阿塞拜疆语 Azərbaycan 9 | 'eu': "Euskal",//巴斯克语 Euskal 10 | 'be': "беларускі",//白俄罗斯语 беларускі 11 | 'bn': "বাংলা ভাষার",//孟加拉语 বাংলা ভাষার 12 | 'bs': "Bosanski",//波斯尼亚语 Bosanski 13 | 14 | 'bg': "български",//保加利亚语 български 15 | 'ca': "Català",//加泰罗尼亚语 Català 16 | 'ceb': "Sugbo",//宿务语 Sugbo 17 | 'zh-CN': "中文(简体)",//中文(简体) 18 | 'zh-TW': "中文(繁體)",//中文(繁體) 19 | 'co': "Corsa",//科西嘉语 Corsa 20 | 'hr': "Croata",//克罗地亚语 Croata 21 | 'cs': "Česky",//捷克语 Česky 22 | 'da': "dansk",//丹麦语 dansk 23 | 'nl': "Nederlands",//荷兰语 Nederlands 24 | 25 | 'en': "English",//英语 English 26 | 'eo': "Esperanto",//世界语 Esperanto 27 | 'et': "Eesti keel",//爱沙尼亚语 Eesti keel 28 | 'fi': "suomalainen",//芬兰语 suomalainen 29 | 'fr': "Français",//法国语 Français 30 | 'fy': "Frysk",//弗里西语 Frysk 31 | 'gl': "Galego",//加利西亚语 Galego 32 | 'ka': "ქართული",//格鲁吉亚语 ქართული 33 | 'de': "Deutsche Sprache",//德语 Deutsche Sprache 34 | 'el': "Ελληνικά",//希腊语 Ελληνικά 35 | 36 | 'gu': "ગુજરાતી",//古吉拉特语 ગુજરાતી 37 | 'ht': "Kreyòl Ayisyen",//海地克里奥尔语 Kreyòl Ayisyen 38 | 'ha': "Hausa",//豪萨语 Hausa 39 | 'haw': "Hawaiian",//夏威夷语 Hawaiian 40 | 'iw': "עברית",//希伯来语 עברית 41 | 'hi': "बात मत करो",//印地语 बात मत करो 42 | 'hmn': "Miao",//苗语 Miao 43 | 'hu': "magyar",//匈牙利语 magyar 44 | 'is': "Íslensku",//冰岛语 Íslensku 45 | 'ig': "Asụsụ Ibo",//伊博语 Asụsụ Ibo 46 | 47 | 'id': "Bahasa indonesia",//印尼语 Bahasa indonesia 48 | 'ga': "Gaeilge",//爱尔兰语 Gaeilge 49 | 'it': "lingua italiana",//意大利语 lingua italiana 50 | 'ja': "日本語",//日语 日本語 51 | 'jw': "Wong Jawa",//印尼爪哇语 Wong Jawa 52 | 'kn': "ಕನ್ನಡ",//卡纳达语 ಕನ್ನಡ 53 | 'kk': "Қазақша",//哈萨克语 Қазақша 54 | 'km': "ភាសាខ្មែរ",//高棉语 ភាសាខ្មែរ 55 | 'ko': "한국어",//韩语 한국어 56 | 'ku': "Kurdî",//库尔德语 Kurdî 57 | 58 | 'ky': "Кыргыз тили",//吉尔吉斯语 Кыргыз тили 59 | 'lo': "ລາວ",//老挝语 ລາວ 60 | 'la': "Latine",//拉丁语 Latine 61 | 'lv': "Latviešu",//拉脱维亚语 Latviešu 62 | // 'lt': "Lietuviškai",//立陶宛语 Lietuviškai 63 | 'lb': "Lëtzebuergesch",//卢森堡语 Lëtzebuergesch 64 | 'mk': "Македонски",//马其顿语 Македонски 65 | 'mg': "Malagasy",//马尔加什语 Malagasy 66 | 'ms': "Melayu",//马来语 Melayu 67 | 'ml': "മലയാളം",//马拉雅拉姆语 മലയാളം 68 | 69 | 'mt': "Malti",//马耳他语 Malti 70 | 'mi': "Maori",//毛利语 Maori 71 | 'mr': "मराठी",//马拉地语 मराठी 72 | 'mn': "Монгол хэл",//蒙古语 Монгол хэл 73 | 'my': "မြန်မာ",//缅甸语 မြန်မာ 74 | 'ne': "नेपाली",//尼泊尔语 नेपाली 75 | 'no': "norsk språk",//挪威语 norsk språk 76 | 'ny': "Chichewa",//齐切瓦语 Chichewa 77 | 'ps': "پښتو",//普什图语 پښتو 78 | 'fa': "فارسی",//波斯语 فارسی 79 | 80 | 'pl': "Polski",//波兰语 Polski 81 | 'pt': "Português",//葡萄牙语 Português 82 | 'pa': "ਪੰਜਾਬੀ",//旁遮普语 ਪੰਜਾਬੀ 83 | 'ro': "românesc",//罗马尼亚语 românesc 84 | 'ru': "Русский язык",//俄语 Русский язык 85 | 'sm': "Samoa",//萨摩亚语 Samoa 86 | 'gd': "Gàidhlig na h-Alba",//苏格兰盖尔语 Gàidhlig na h-Alba 87 | 'sr': "Српски",//塞尔维亚语 Српски 88 | 'st': "Sesotho",//塞索托语 Sesotho 89 | 'sn': "Shinra",//修纳语 Shinra 90 | 91 | 'sd': "سنڌي",//信德语 سنڌي 92 | 'si': "සිංහල",//僧伽罗语 සිංහල 93 | 'sk': "slovenského jazyk",//斯洛伐克语 slovenského jazyk 94 | 'sl': "Slovenščina",//斯洛文尼亚语 Slovenščina 95 | 'so': "Somali",//索马里语 Somali 96 | 'es': "Español",//西班牙语 Español 97 | 'su': "Sunda Indonesian",//印尼巽他语 Sunda Indonesian 98 | 'sw': "Kiswahili",//斯瓦希里语 Kiswahili 99 | 'sv': "Svenska",//瑞典语 Svenska 100 | 'tl': "Filipino",//菲律宾语 Filipino 101 | 102 | 'tg': "Тоҷикӣ",//塔吉克语 Тоҷикӣ 103 | 'ta': "தமிழ் மொழி",//泰米尔语 தமிழ் மொழி 104 | 'te': "తెలుగు",//泰卢固语 తెలుగు 105 | 'th': "ไทย",//泰语 ไทย 106 | 'tr': "Türk dili",//土耳其语 Türk dili 107 | 'uk': "Українська",//乌克兰语 Українська 108 | 'ur': "اردو",//乌尔都语 اردو 109 | 'uz': "O'zbek",//乌兹别克语 O'zbek 110 | 'vi': "Tiếng Việt",//越南语 Tiếng Việt 111 | 'cy': "Cymraeg",//威尔士语 Cymraeg 112 | 113 | 'xh': "IsiXhosa saseMzantsi Afrika",//南非科萨语 IsiXhosa saseMzantsi Afrika 114 | 'yi': "ייִדיש",//意第绪语 ייִדיש 115 | 'yo': "Yorùbá",//约鲁巴语 Yorùbá 116 | 'zu': "I-South African Zulu"//祖鲁语 I-South African Zulu 117 | }; 118 | 119 | module.exports = languges; -------------------------------------------------------------------------------- /i18n/tap-i18n.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm": "确认", 3 | "cancel": "取消", 4 | "dialog_tit":"提示", 5 | "close":"关闭", 6 | "confirm_you_active": "请确认您的操作", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"首页", 12 | "transfer":"转账", 13 | "contacts":"联系人", 14 | "setting":"设置", 15 | "total":"合计" 16 | }, 17 | "page_setting":{ 18 | "tit":"设置", 19 | "lang": "语言", 20 | "select":"请选择" 21 | }, 22 | "page_contacts":{ 23 | "tit":"联系人", 24 | "add_dialog":"添加联系人", 25 | 26 | "add_cont":{ 27 | "tit":"输入联系人信息", 28 | "tag":"标签", 29 | "address":"联系人", 30 | "tag_placeholder":"请输入联系人的备注标签", 31 | "address_placeholder":"请输入联系人账户" 32 | }, 33 | "delete_dialog":{ 34 | "title":"您正在移除" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"请输入账户名称", 38 | "no_address":"请输入账户地址", 39 | "exist":"联系人已经存在," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"转出", 44 | "to_address":"转入", 45 | "amount":"金额", 46 | "send_all":"发送全部", 47 | "remark":"备注", 48 | "fees":"手续费", 49 | "total":"合计", 50 | "select":"请选择", 51 | "no_account_info":"暂无账号,请创建或者导入账号", 52 | "contacts_dig":{ 53 | "select_placeholder":"请选择" 54 | }, 55 | "confirm_dia":{ 56 | "title":"请确认", 57 | "enter_passworld_tit":"请输入密码", 58 | "enter_passworld_place":"请输入密码" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"钱包解析失败,可能是密码错误", 62 | "send_success":"发送成功", 63 | "send_error":"交易失败:请检查是否有足量余额和矿工费" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"交易记录", 68 | "transfer_log_null":"暂无交易记录", 69 | 70 | "active_icon":{ 71 | "go_transfer":"发起转账", 72 | "import_keystore":"Keystore", 73 | "qrcode":"二维码" 74 | }, 75 | "edit_dia":{ 76 | "tit":"修改备注", 77 | "subtit":"为您的账户标记一个备注" 78 | }, 79 | "keystore":{ 80 | "tit":"备份keystore", 81 | "copy":"复制", 82 | "download":"下载keystore" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"地址已经复制", 86 | "key_copy_success":"复制成功" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"导入账号", 91 | "add_account":"新建账号", 92 | "acc":"账户", 93 | "create_dia":{ 94 | "create_tit":"创建账户", 95 | "backup_tit":"备份您的新账户", 96 | 97 | "create_tag":"账户名称", 98 | "create_pwd":"设置密码", 99 | "create_repwd":"确认密码", 100 | 101 | "placeholder_tag":"请设置账户名称", 102 | "placeholder_pwd":"请设置账户密码", 103 | "placeholder_repwd":"请确认账户密码", 104 | "strong_password":"输入一个强密码,至少8位", 105 | 106 | "account_address":"账户", 107 | "account_privateKey":"私钥", 108 | "account_download_keystore":"下载keystore文件" 109 | }, 110 | "import_dia":{ 111 | "tit":"导入账户", 112 | "select_type":"请选择导入方式", 113 | "type_private":"私钥", 114 | "type_keystore":"keystore", 115 | 116 | "placeholder_private":"请将私钥粘贴在此处", 117 | "placeholder_keystore":"请将keystore文件拖入此处", 118 | 119 | "input_pwd":"输入密码", 120 | "placeholder_pwd":"请输入账户密码" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"你确定要移除吗?", 125 | "remove_confrim":"我确定移除", 126 | "backup":"请确定该账号已经备份,避免财产损失" 127 | }, 128 | "msg_info":{ 129 | "exist":"此账户已经存在,名称是", 130 | "enter_password":"请输入密码", 131 | "incons_password":"两次输入的密码不一致", 132 | "error":"错误:", 133 | "imported_success":"导入文件成功", 134 | "enter_private":"请输入密钥", 135 | "error_private":"账户导入失败,可能是密钥错误", 136 | "enter_keystore":"请先导入keystore文件", 137 | "error_password":"账户导入失败,可能是密码错误", 138 | "remove_success":"移除成功", 139 | "create_success":"创建成功", 140 | "save":"请保存你的keystore或者私钥,不要分享给任何人!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "czr-wallet", 3 | "productName": "czr-wallet", 4 | "version": "1.0.0", 5 | "keywords": [ 6 | "block-wallet" 7 | ], 8 | "author": "CZR_DEV", 9 | "description": "This project is a wallet of CZR , wetsite is http://www.canonchain.com/", 10 | "license": null, 11 | "main": "./dist/electron/main.js", 12 | "scripts": { 13 | "build": "node .electron-vue/build.js && electron-builder", 14 | "build:dir": "node .electron-vue/build.js && electron-builder --dir", 15 | "build:clean": "cross-env BUILD_TARGET=clean node .electron-vue/build.js", 16 | "build:web": "cross-env BUILD_TARGET=web node .electron-vue/build.js", 17 | "dev": "node .electron-vue/dev-runner.js", 18 | "pack": "npm run pack:main && npm run pack:renderer", 19 | "pack:main": "cross-env NODE_ENV=production webpack --progress --colors --config .electron-vue/webpack.main.config.js", 20 | "pack:renderer": "cross-env NODE_ENV=production webpack --progress --colors --config .electron-vue/webpack.renderer.config.js", 21 | "postinstall": "" 22 | }, 23 | "build": { 24 | "productName": "CZR-Wallet", 25 | "appId": "org.simulatedgreg.electron-vue", 26 | "directories": { 27 | "output": "build" 28 | }, 29 | "files": [ 30 | "dist/electron/**/*" 31 | ], 32 | "dmg": { 33 | "contents": [ 34 | { 35 | "x": 410, 36 | "y": 150, 37 | "type": "link", 38 | "path": "/Applications" 39 | }, 40 | { 41 | "x": 130, 42 | "y": 150, 43 | "type": "file" 44 | } 45 | ] 46 | }, 47 | "mac": { 48 | "icon": "static/icons/icon.icns" 49 | }, 50 | "win": { 51 | "icon": "static/icons/icon.ico" 52 | }, 53 | "linux": { 54 | "icon": "static/icons" 55 | } 56 | }, 57 | "dependencies": { 58 | "axios": "^0.16.1", 59 | "element-ui": "^2.3.3", 60 | "fs-extra": "^5.0.0", 61 | "lodash-id": "^0.14.0", 62 | "lowdb": "^1.0.0", 63 | "qrcode": "^1.2.0", 64 | "vue": "^2.3.3", 65 | "vue-electron": "^1.0.6", 66 | "vue-i18n": "^7.6.0", 67 | "vue-router": "^2.5.3", 68 | "vuex": "^2.3.1", 69 | "web3": "^1.0.0-beta.30" 70 | }, 71 | "devDependencies": { 72 | "babel-core": "^6.25.0", 73 | "babel-loader": "^7.1.1", 74 | "babel-plugin-transform-runtime": "^6.23.0", 75 | "babel-preset-env": "^1.6.0", 76 | "babel-preset-stage-0": "^6.24.1", 77 | "babel-register": "^6.24.1", 78 | "babili-webpack-plugin": "^0.1.2", 79 | "cfonts": "^1.1.3", 80 | "chalk": "^2.1.0", 81 | "copy-webpack-plugin": "^4.0.1", 82 | "cross-env": "^5.0.5", 83 | "css-loader": "^0.28.4", 84 | "del": "^3.0.0", 85 | "devtron": "^1.4.0", 86 | "electron": "^1.7.5", 87 | "electron-builder": "^19.19.1", 88 | "electron-debug": "^1.4.0", 89 | "electron-devtools-installer": "^2.2.0", 90 | "extract-text-webpack-plugin": "^3.0.0", 91 | "file-loader": "^0.11.2", 92 | "html-webpack-plugin": "^2.30.1", 93 | "multispinner": "^0.2.1", 94 | "node-loader": "^0.6.0", 95 | "node-sass": "^4.8.3", 96 | "sass-loader": "^6.0.7", 97 | "style-loader": "^0.18.2", 98 | "url-loader": "^0.5.9", 99 | "vue-html-loader": "^1.2.4", 100 | "vue-loader": "^13.0.5", 101 | "vue-style-loader": "^3.0.1", 102 | "vue-template-compiler": "^2.4.2", 103 | "webpack": "^3.5.2", 104 | "webpack-dev-server": "^2.7.1", 105 | "gulp": "^3.9.1", 106 | "gulp-rename": "^1.2.2", 107 | "gulp-util": "^3.0.8", 108 | "md5": "^2.2.1", 109 | "request": "^2.85.0", 110 | "through2": "^2.0.3", 111 | "translation.js": "^0.7.3", 112 | "webpack-hot-middleware": "^2.18.2" 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /src/datastore/index.js: -------------------------------------------------------------------------------- 1 | import fs from 'fs-extra' 2 | import path from 'path' 3 | // Introduce the remote module to run both in the main process and in the renderer process 4 | import { remote, app } from 'electron' 5 | 6 | import Datastore from 'lowdb' 7 | //Automatically add a unique ID field to each newly added data 8 | import LodashId from 'lodash-id' 9 | import FileSync from 'lowdb/adapters/FileSync' 10 | 11 | const languges = require('../../i18n/languges_conf'); 12 | 13 | // Get the electron application's user directory 14 | const APP = process.type === 'renderer' ? remote.app : app 15 | const STORE_PATH = APP.getPath('userData') 16 | 17 | //Production mode initialization path 18 | if (process.type !== 'renderer') { 19 | if (!fs.pathExistsSync(STORE_PATH)) { 20 | fs.mkdirpSync(STORE_PATH) 21 | } 22 | } 23 | 24 | // Initialize lowdb read and write json file name and storage path 25 | const adapter = new FileSync(path.join(STORE_PATH, '/czr_data.json')) 26 | 27 | // Lowdb takes over the file 28 | const db = Datastore(adapter) 29 | db._.mixin(LodashId) 30 | 31 | // Initialize data, pre-specify the basic structure of the database 32 | if (!db.read().has('czr_accounts').value()) { 33 | db.set('czr_accounts', []).write() 34 | } 35 | if (!db.has('czr_contacts').value()) { 36 | db.set('czr_contacts', {}).write() 37 | } 38 | if (!db.has('czr_setting').value()) { 39 | db.set('czr_setting', {}).write() 40 | db.set('czr_setting.lang', getLanguage()).write() 41 | db.set('czr_setting.lang_conf', languges).write() 42 | 43 | } 44 | 45 | //Get user browser preference language 46 | function getLanguage() { 47 | let language 48 | if (navigator.language) { 49 | language = navigator.language; 50 | } else { 51 | language = navigator.browserLanguage; 52 | } 53 | language = language ? language : 'zh-CN' 54 | console.log("language",language) 55 | return language; 56 | } 57 | 58 | 59 | export default db -------------------------------------------------------------------------------- /src/index.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Canonchain-Wallet 6 | 7 | 8 | <% if (htmlWebpackPlugin.options.nodeModules) { %> 9 | 10 | 13 | <% } %> 14 | 15 | 16 |
17 | 18 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/main/index.dev.js: -------------------------------------------------------------------------------- 1 | /** 2 | * This file is used specifically and only for development. It installs 3 | * `electron-debug` & `vue-devtools`. There shouldn't be any need to 4 | * modify this file, but it can be used to extend your development 5 | * environment. 6 | */ 7 | 8 | /* eslint-disable */ 9 | 10 | // Set environment for development 11 | process.env.NODE_ENV = 'development' 12 | 13 | // Install `electron-debug` with `devtron` 14 | require('electron-debug')({ showDevTools: true }) 15 | 16 | // Install `vue-devtools` 17 | require('electron').app.on('ready', () => { 18 | let installExtension = require('electron-devtools-installer') 19 | installExtension.default(installExtension.VUEJS_DEVTOOLS) 20 | .then(() => {}) 21 | .catch(err => { 22 | console.log('Unable to install `vue-devtools`: \n', err) 23 | }) 24 | }) 25 | 26 | // Require `main` process to boot app 27 | require('./index') 28 | -------------------------------------------------------------------------------- /src/main/index.js: -------------------------------------------------------------------------------- 1 | import { app, BrowserWindow ,Menu} from 'electron' 2 | // import { app, BrowserWindow, Tray, Menu, Notification, clipboard, ipcMain, globalShortcut, dialog } from 'electron' 3 | 4 | let menu; 5 | // const path = require('path'); 6 | // const url = require('url'); 7 | 8 | 9 | /** 10 | * Set `__static` path to static files in production 11 | * https://simulatedgreg.gitbooks.io/electron-vue/content/en/using-static-assets.html 12 | */ 13 | if (process.env.NODE_ENV !== 'development') { 14 | global.__static = require('path').join(__dirname, '/static').replace(/\\/g, '\\\\') 15 | } 16 | 17 | let mainWindow;// Preserve the global reference of a window object 18 | 19 | const winURL = process.env.NODE_ENV === 'development' 20 | ? `http://localhost:9080` 21 | : `file://${__dirname}/index.html` 22 | 23 | const winWidth=process.env.NODE_ENV === 'development' ? (810+580) : 810; 24 | 25 | app.on('ready', createWindow);// Called when Electron finishes, initializes and prepares to create a browser window. Some APIs can only be used after this event occurs. 26 | app.on('window-all-closed', windowAllClose);// Exit when all windows are closed. 27 | app.on('activate', activateFn);//On OS X, when you click the Dock icon and no other window is open, a window is usually recreated in the application. 28 | 29 | 30 | function createWindow () { 31 | // Create browser window 32 | mainWindow = new BrowserWindow({ 33 | width: winWidth, 34 | height: 600, 35 | icon:"./static/icons/logo.png", 36 | title:"CZR Walleti Default", 37 | resizable:false, 38 | fullscreenable:false, 39 | useContentSize:true 40 | }); 41 | 42 | mainWindow.loadURL(winURL); 43 | 44 | // mainWindow.webContents.openDevTools(); 45 | 46 | 47 | // Fired when the window closes 48 | mainWindow.on('closed', function () { 49 | /* 50 | Unreferences the window object. If your application supports multiple windows, you will usually store the window in an array. Click Close to remove the corresponding element. 51 | */ 52 | mainWindow = null 53 | }) 54 | 55 | createMenu() 56 | } 57 | 58 | function windowAllClose() { 59 | if (process.platform !== 'darwin') { 60 | app.quit() 61 | } 62 | } 63 | function activateFn() { 64 | if (mainWindow === null) { 65 | createWindow() 66 | } 67 | } 68 | 69 | //Solve the production environment can not use copy and paste 70 | const createMenu = () => { 71 | if (process.env.NODE_ENV !== 'development') { 72 | const template = [{ 73 | label: 'Edit', 74 | submenu: [ 75 | { label: 'Undo', accelerator: 'CmdOrCtrl+Z', selector: 'undo:' }, 76 | { label: 'Redo', accelerator: 'Shift+CmdOrCtrl+Z', selector: 'redo:' }, 77 | { type: 'separator' }, 78 | { label: 'Cut', accelerator: 'CmdOrCtrl+X', selector: 'cut:' }, 79 | { label: 'Copy', accelerator: 'CmdOrCtrl+C', selector: 'copy:' }, 80 | { label: 'Paste', accelerator: 'CmdOrCtrl+V', selector: 'paste:' }, 81 | { label: 'Select All', accelerator: 'CmdOrCtrl+A', selector: 'selectAll:' }, 82 | { 83 | label: 'Quit', 84 | accelerator: 'CmdOrCtrl+Q', 85 | click () { 86 | app.quit() 87 | } 88 | } 89 | ] 90 | }] 91 | menu = Menu.buildFromTemplate(template) 92 | Menu.setApplicationMenu(menu) 93 | } 94 | } 95 | 96 | /** 97 | * Auto Updater 98 | * 99 | * Uncomment the following code below and install `electron-updater` to 100 | * support auto updating. Code Signing with a valid certificate is required. 101 | * https://simulatedgreg.gitbooks.io/electron-vue/content/en/using-electron-builder.html#auto-updating 102 | */ 103 | 104 | /* 105 | import { autoUpdater } from 'electron-updater' 106 | 107 | autoUpdater.on('update-downloaded', () => { 108 | autoUpdater.quitAndInstall() 109 | }) 110 | 111 | app.on('ready', () => { 112 | if (process.env.NODE_ENV === 'production') autoUpdater.checkForUpdates() 113 | }) 114 | */ 115 | -------------------------------------------------------------------------------- /src/renderer/App.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 19 | 20 | 33 | -------------------------------------------------------------------------------- /src/renderer/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/src/renderer/assets/.gitkeep -------------------------------------------------------------------------------- /src/renderer/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/src/renderer/assets/logo.png -------------------------------------------------------------------------------- /src/renderer/components/Header/Header.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 65 | 66 | 100 | 101 | -------------------------------------------------------------------------------- /src/renderer/components/Setting/Setting.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 58 | 59 | 60 | 85 | -------------------------------------------------------------------------------- /src/renderer/i18n/am.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"ማረጋገጫ", 3 | "cancel":"ስረዛ", 4 | "dialog_tit":"አስገራሚ", 5 | "close":"ተዘግቷል", 6 | "confirm_you_active":"እባክዎ የእርስዎን ክወና ያረጋግጡ", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"ቤት", 12 | "transfer":"ዝውውር", 13 | "contacts":"እውቂያዎች", 14 | "setting":"ቅንብሮች", 15 | "total":"ጠቅላላ" 16 | }, 17 | "page_setting":{ 18 | "tit":"ቅንብሮች", 19 | "lang":"ቋንቋ", 20 | "select":"እባክዎ ይምረጡ" 21 | }, 22 | "page_contacts":{ 23 | "tit":"እውቂያዎች", 24 | "add_dialog":"እውቂያ አክል", 25 | 26 | "add_cont":{ 27 | "tit":"የእውቂያ መረጃን ያስገቡ", 28 | "tag":"መለያዎች", 29 | "address":"እውቂያዎች", 30 | "tag_placeholder":"እባክህ የእውቂያውን የአመልካች መለያ ስም አስገባ", 31 | "address_placeholder":"እባክዎ የእውቂያ መለያውን ያስገቡ" 32 | }, 33 | "delete_dialog":{ 34 | "title":"እያስወገድክ ነው" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"እባክዎ የመለያ ስም ያስገቡ", 38 | "no_address":"እባክዎ የመለያውን አድራሻ ያስገቡ", 39 | "exist":"እውቅያው አስቀድሞም ይገኛል," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"አስተላልፍ", 44 | "to_address":"ወደ ውስጥ", 45 | "amount":"መጠን", 46 | "send_all":"ሁሉንም ላክ", 47 | "remark":"ማስታወሻ", 48 | "fees":"ክፍያዎች", 49 | "total":"ጠቅላላ", 50 | "select":"እባክዎ ይምረጡ", 51 | "no_account_info":"መለያ የለም, እባክህ መለያ ፍጠር ወይም አስገባ", 52 | "contacts_dig":{ 53 | "select_placeholder":"እባክዎ ይምረጡ" 54 | }, 55 | "confirm_dia":{ 56 | "title":"እባክዎ ያረጋግጡ", 57 | "enter_passworld_tit":"እባክዎ የይለፍ ቃልዎን ያስገቡ", 58 | "enter_passworld_place":"እባክዎ የይለፍ ቃልዎን ያስገቡ" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"Wallet መተንተን አልተሳካም የይለፍ ቃል ስህተት ሊሆን ይችላል", 62 | "send_success":"ስኬት ላክ", 63 | "send_error":"ግብይቱ አልተሳካም: እባክዎ በቂ ሚዛን እና የአሠሪዎች ክፍያ ካለ ያረጋግጡ" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"የግብይት ታሪክ", 68 | "transfer_log_null":"ምንም የግብይት ታሪክ የለም", 69 | 70 | "active_icon":{ 71 | "go_transfer":"ዝውውር ጀምር", 72 | "import_keystore":"የቁልፍ መደብር", 73 | "qrcode":"QR ኮድ" 74 | }, 75 | "edit_dia":{ 76 | "tit":"ማስታወሻን ያሻሽሉ", 77 | "subtit":"ለመለያዎ ማስታወሻ ያመልክቱ" 78 | }, 79 | "keystore":{ 80 | "tit":"የቁልፍ መደብርን ምትኬ አስቀምጥ", 81 | "copy":"የተባዛ", 82 | "download":"የቁልፍ መደብር ያውርዱ" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"አድራሻው ተቀድቷል", 86 | "key_copy_success":"በተሳካ ሁኔታ ተቀድቷል" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"መለያ አስገባ", 91 | "add_account":"አዲስ መለያ", 92 | "acc":"መለያ", 93 | "create_dia":{ 94 | "create_tit":"መለያ ይፍጠሩ", 95 | "backup_tit":"አዲሱን መለያዎን ምትኬ ያስቀምጡ", 96 | 97 | "create_tag":"የመለያ ስም", 98 | "create_pwd":"የይለፍ ቃል አዘጋጅ", 99 | "create_repwd":"የይለፍ ቃል አረጋግጥ", 100 | 101 | "placeholder_tag":"እባክዎ የመለያ ስም ያዘጋጁ", 102 | "placeholder_pwd":"እባክዎ የመለያ የይለፍ ቃል ያዘጋጁ", 103 | "placeholder_repwd":"እባክዎ የመለያውን ይለፍ ቃል ያረጋግጡ", 104 | "strong_password":"ቢያንስ 8 ዲጂት ጠንካራ የይለፍ ቃል ያስገቡ", 105 | 106 | "account_address":"መለያ", 107 | "account_privateKey":"የግል ቁልፍ", 108 | "account_download_keystore":"የቁልፍ ማከማቻ ፋይል አውርድ" 109 | }, 110 | "import_dia":{ 111 | "tit":"መለያ አስገባ", 112 | "select_type":"እባክዎ የመግቢያ ዘዴ ይምረጡ", 113 | "type_private":"የግል ቁልፍ", 114 | "type_keystore":"የቁልፍ መደብር", 115 | 116 | "placeholder_private":"እባክዎን የግል ቁልፉን እዚህ ይለጥፉ", 117 | "placeholder_keystore":"እባክዎ የቁልፍ ማከማቻ ፋይል እዚህ ይጎትቱት", 118 | 119 | "input_pwd":"የይለፍ ቃል ያስገቡ", 120 | "placeholder_pwd":"እባክዎ የመለያዎ የይለፍ ቃል ያስገቡ" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"እርግጠኛ ነዎት እሱን ማስወገድ ይፈልጋሉ?", 125 | "remove_confrim":"ማስወገድ እርግጠኛ ነኝ", 126 | "backup":"እባክዎ የንብረት ጉዳት እንዳይደርስበት ሂሳቡ እንደተቀመጠ እርግጠኛ ይሁኑ" 127 | }, 128 | "msg_info":{ 129 | "exist":"ይህ መለያ አስቀድሞም ይገኛል, ስሙ", 130 | "enter_password":"እባክዎ የይለፍ ቃልዎን ያስገቡ", 131 | "incons_password":"ሁለት ጊዜ የተገባው የይለፍ ቃል ወጥነት የለውም", 132 | "error":"ስህተት:", 133 | "imported_success":"ፋይል በተሳካ ሁኔታ አስመጣ", 134 | "enter_private":"እባክዎ ቁልፉን ያስገቡ", 135 | "error_private":"መለያውን ማስመጣት አልተሳካም, ምናልባት የተሳሳተ ቁልፍ ሊሆን ይችላል", 136 | "enter_keystore":"እባክዎ መጀመሪያ የቁልፍ ማከማቻ ፋይልን ያስኪጁ", 137 | "error_password":"መለያውን ማስመጣት አልተሳካም, ምናልባት የተሳሳተ የይለፍ ቃል ሊሆን ይችላል", 138 | "remove_success":"በተሳካ ሁኔታ ተወግዷል", 139 | "create_success":"በተሳካ ሁኔታ ተፈጥሯል", 140 | "save":"እባክዎ የቁልፍ መደብርዎን ወይም የግል ቁልፍዎን ያስቀምጡና ከማንም ጋር እንዳያጋሩት!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/ar.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"أكد", 3 | "cancel":"ألغيت", 4 | "dialog_tit":"موجه", 5 | "close":"قريب", 6 | "confirm_you_active":"يرجى تأكيد العملية الخاصة بك", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"منزل", 12 | "transfer":"نقل", 13 | "contacts":"اتصال", 14 | "setting":"نصب", 15 | "total":"مجموع" 16 | }, 17 | "page_setting":{ 18 | "tit":"نصب", 19 | "lang":"لغة", 20 | "select":"يرجى الاختيار" 21 | }, 22 | "page_contacts":{ 23 | "tit":"اتصال", 24 | "add_dialog":"إضافة جهة اتصال", 25 | 26 | "add_cont":{ 27 | "tit":"أدخل معلومات الاتصال", 28 | "tag":"بطاقة", 29 | "address":"اتصال", 30 | "tag_placeholder":"يرجى إدخال علامة تعليق جهة الاتصال", 31 | "address_placeholder":"يرجى إدخال حساب جهة الاتصال" 32 | }, 33 | "delete_dialog":{ 34 | "title":"أنت تزيل" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"يرجى إدخال اسم الحساب", 38 | "no_address":"يرجى إدخال عنوان الحساب", 39 | "exist":"جهة الاتصال موجودة بالفعل ،" 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"انقل", 44 | "to_address":"إلى", 45 | "amount":"نقود", 46 | "send_all":"إرسال الكل", 47 | "remark":"تعليق", 48 | "fees":"رسوم", 49 | "total":"مجموع", 50 | "select":"يرجى الاختيار", 51 | "no_account_info":"لا يوجد حساب ، يرجى إنشاء أو استيراد حساب", 52 | "contacts_dig":{ 53 | "select_placeholder":"يرجى الاختيار" 54 | }, 55 | "confirm_dia":{ 56 | "title":"يرجى تأكيد", 57 | "enter_passworld_tit":"يرجى إدخال كلمة المرور الخاصة بك", 58 | "enter_passworld_place":"يرجى إدخال كلمة المرور الخاصة بك" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"فشل تحليل المحفظة ، قد يكون خطأ كلمة مرور", 62 | "send_success":"ارسل النجاح", 63 | "send_error":"فشلت المعاملة: الرجاء التحقق مما إذا كان هناك رصيد كافٍ ورسوم عامل منجم" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"سجل المعاملات", 68 | "transfer_log_null":"لا يوجد سجل المعاملات", 69 | 70 | "active_icon":{ 71 | "go_transfer":"بدء النقل", 72 | "import_keystore":"تخزين المفاتيح", 73 | "qrcode":"رمز الاستجابة السريعة" 74 | }, 75 | "edit_dia":{ 76 | "tit":"تعديل الملاحظة", 77 | "subtit":"ضع علامة على ملاحظة لحسابك" 78 | }, 79 | "keystore":{ 80 | "tit":"قم بعمل نسخة احتياطية من ملف المفاتيح", 81 | "copy":"نسخة", 82 | "download":"تحميل keystore" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"تم نسخ العنوان", 86 | "key_copy_success":"تم النسخ بنجاح" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"حساب الاستيراد", 91 | "add_account":"حساب جديد", 92 | "acc":"حساب", 93 | "create_dia":{ 94 | "create_tit":"قم بإنشاء حساب", 95 | "backup_tit":"قم بعمل نسخة احتياطية من حسابك الجديد", 96 | 97 | "create_tag":"اسم الحساب", 98 | "create_pwd":"ضبط كلمة المرور", 99 | "create_repwd":"تأكيد كلمة المرور", 100 | 101 | "placeholder_tag":"يرجى تحديد اسم الحساب", 102 | "placeholder_pwd":"يرجى تعيين كلمة مرور الحساب", 103 | "placeholder_repwd":"يرجى تأكيد كلمة مرور الحساب", 104 | "strong_password":"أدخل كلمة مرور قوية ، على الأقل 8 أرقام", 105 | 106 | "account_address":"حساب", 107 | "account_privateKey":"مفتاح خاص", 108 | "account_download_keystore":"قم بتنزيل ملف تخزين المفاتيح" 109 | }, 110 | "import_dia":{ 111 | "tit":"حساب الاستيراد", 112 | "select_type":"يرجى تحديد طريقة الاستيراد", 113 | "type_private":"مفتاح خاص", 114 | "type_keystore":"تخزين المفاتيح", 115 | 116 | "placeholder_private":"يرجى لصق المفتاح الخاص هنا", 117 | "placeholder_keystore":"يرجى سحب ملف تخزين المفاتيح هنا", 118 | 119 | "input_pwd":"أدخل كلمة المرور", 120 | "placeholder_pwd":"يرجى إدخال كلمة مرور حسابك" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"هل أنت متأكد من أنك تريد إزالته؟", 125 | "remove_confrim":"أنا متأكد من إزالة", 126 | "backup":"يرجى التأكد من الاحتفاظ بنسخة احتياطية من الحساب لتجنب حدوث ضرر بالممتلكات" 127 | }, 128 | "msg_info":{ 129 | "exist":"هذا الحساب موجود بالفعل ، والاسم هو", 130 | "enter_password":"يرجى إدخال كلمة المرور الخاصة بك", 131 | "incons_password":"كلمة المرور التي تم إدخالها مرتين غير متناسقة", 132 | "error":"خطأ:", 133 | "imported_success":"استيراد الملف بنجاح", 134 | "enter_private":"يرجى إدخال المفتاح", 135 | "error_private":"أخفق استيراد الحساب ، فقد يكون المفتاح الخطأ", 136 | "enter_keystore":"الرجاء استيراد ملف تخزين المفاتيح أولاً", 137 | "error_password":"فشل استيراد حساب ، قد يكون كلمة مرور خاطئة", 138 | "remove_success":"تمت إزالته بنجاح", 139 | "create_success":"تم الإنشاء بنجاح", 140 | "save":"الرجاء حفظ ملف المفاتيح أو المفتاح الخاص ولا تشاركه مع أي شخص!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/cs.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"Potvrzení", 3 | "cancel":"Zrušení", 4 | "dialog_tit":"Prompt", 5 | "close":"Zavřeno", 6 | "confirm_you_active":"Potvrďte svou činnost", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"Domů", 12 | "transfer":"Přenos", 13 | "contacts":"Kontakty", 14 | "setting":"Nastavení", 15 | "total":"Celkem" 16 | }, 17 | "page_setting":{ 18 | "tit":"Nastavení", 19 | "lang":"Jazyk", 20 | "select":"Vyberte prosím" 21 | }, 22 | "page_contacts":{ 23 | "tit":"Kontakty", 24 | "add_dialog":"Přidat kontakt", 25 | 26 | "add_cont":{ 27 | "tit":"Zadejte kontaktní informace", 28 | "tag":"Tagy", 29 | "address":"Kontakty", 30 | "tag_placeholder":"Zadejte značku komentářů kontaktu", 31 | "address_placeholder":"Zadejte konto kontaktu" 32 | }, 33 | "delete_dialog":{ 34 | "title":"Odstraňujete" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"Zadejte název účtu", 38 | "no_address":"Zadejte adresu účtu", 39 | "exist":"Kontakt již existuje," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"Přejděte ven", 44 | "to_address":"Into", 45 | "amount":"Částka", 46 | "send_all":"Pošlete vše", 47 | "remark":"Poznámka:", 48 | "fees":"Poplatky", 49 | "total":"Celkem", 50 | "select":"Vyberte prosím", 51 | "no_account_info":"Žádný účet, prosím, vytvořte nebo importujte účet", 52 | "contacts_dig":{ 53 | "select_placeholder":"Vyberte prosím" 54 | }, 55 | "confirm_dia":{ 56 | "title":"Potvrďte prosím", 57 | "enter_passworld_tit":"Zadejte své heslo", 58 | "enter_passworld_place":"Zadejte své heslo" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"Analýza peněženky se nezdařila, může to být chyba hesla", 62 | "send_success":"Pošlete úspěch", 63 | "send_error":"Transakce se nezdařila: Zkontrolujte prosím, zda je dostatečný zůstatek a hornický poplatek" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"Historie transakcí", 68 | "transfer_log_null":"Žádná historie transakcí", 69 | 70 | "active_icon":{ 71 | "go_transfer":"Zahajte převod", 72 | "import_keystore":"Keystore", 73 | "qrcode":"QR kód" 74 | }, 75 | "edit_dia":{ 76 | "tit":"Upravit poznámku", 77 | "subtit":"Označte poznámku k účtu" 78 | }, 79 | "keystore":{ 80 | "tit":"Zálohujte úložiště klíčů", 81 | "copy":"Duplikovat", 82 | "download":"Stáhněte si klíčenku" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"Adresa byla zkopírována", 86 | "key_copy_success":"Úspěšně zkopírován" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"Importní účet", 91 | "add_account":"Nový účet", 92 | "acc":"Účet", 93 | "create_dia":{ 94 | "create_tit":"Vytvořte si účet", 95 | "backup_tit":"Zálohujte nový účet", 96 | 97 | "create_tag":"Název účtu", 98 | "create_pwd":"Nastavte heslo", 99 | "create_repwd":"Potvrďte heslo", 100 | 101 | "placeholder_tag":"Nastavte prosím název účtu", 102 | "placeholder_pwd":"Nastavte prosím heslo účtu", 103 | "placeholder_repwd":"Potvrďte heslo účtu", 104 | "strong_password":"Zadejte silné heslo, nejméně 8 číslic", 105 | 106 | "account_address":"Účet", 107 | "account_privateKey":"Soukromý klíč", 108 | "account_download_keystore":"Stáhněte si soubor úložiště klíčů" 109 | }, 110 | "import_dia":{ 111 | "tit":"Importní účet", 112 | "select_type":"Vyberte prosím metodu importu", 113 | "type_private":"Soukromý klíč", 114 | "type_keystore":"Keystore", 115 | 116 | "placeholder_private":"Zde vložte soukromý klíč", 117 | "placeholder_keystore":"Zde prosím přetáhněte soubor úložiště klíčů", 118 | 119 | "input_pwd":"Zadejte heslo", 120 | "placeholder_pwd":"Zadejte heslo svého účtu" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"Opravdu ji chcete odstranit?", 125 | "remove_confrim":"Určitě odstraním", 126 | "backup":"Ujistěte se, že byl účet zálohován, aby nedošlo k poškození majetku" 127 | }, 128 | "msg_info":{ 129 | "exist":"Tento účet již existuje, název je", 130 | "enter_password":"Zadejte své heslo", 131 | "incons_password":"Zadané heslo dvakrát je nekonzistentní", 132 | "error":"Chyba:", 133 | "imported_success":"Importovat soubor úspěšně", 134 | "enter_private":"Zadejte klíč", 135 | "error_private":"Nepodařilo se importovat účet, může to být nesprávný klíč", 136 | "enter_keystore":"Nejprve importujte soubor úložiště klíčů", 137 | "error_password":"Nemožno importovat účet, může to být nesprávné heslo", 138 | "remove_success":"Úspěšně byla odebrána", 139 | "create_success":"Vytvořeno úspěšně", 140 | "save":"Uložte prosím svůj klíčový nebo soukromý klíč a nesdílejte ho nikomu!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"confirm", 3 | "cancel":"cancel", 4 | "dialog_tit":"prompt", 5 | "close":"shut down", 6 | "confirm_you_active":"Please confirm your operation", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"Home", 12 | "transfer":"Transfer", 13 | "contacts":"Contacts", 14 | "setting":"Settings", 15 | "total":"total" 16 | }, 17 | "page_setting":{ 18 | "tit":"Settings", 19 | "lang":"Language", 20 | "select":"please choose" 21 | }, 22 | "page_contacts":{ 23 | "tit":"Contacts", 24 | "add_dialog":"Add contacts", 25 | 26 | "add_cont":{ 27 | "tit":"Enter contact information", 28 | "tag":"label", 29 | "address":"Contacts", 30 | "tag_placeholder":"Please enter the contact's comment tag", 31 | "address_placeholder":"Please enter the contact account" 32 | }, 33 | "delete_dialog":{ 34 | "title":"You are removing" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"Please enter the account name", 38 | "no_address":"Please enter the account address", 39 | "exist":"The contact already exists," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"Transfer out", 44 | "to_address":"Into", 45 | "amount":"Amount", 46 | "send_all":"Send all", 47 | "remark":"Note", 48 | "fees":"Fees", 49 | "total":"total", 50 | "select":"please choose", 51 | "no_account_info":"No account, please create or import account", 52 | "contacts_dig":{ 53 | "select_placeholder":"please choose" 54 | }, 55 | "confirm_dia":{ 56 | "title":"please confirm", 57 | "enter_passworld_tit":"Please enter your password", 58 | "enter_passworld_place":"Please enter your password" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"Wallet parsing failed, may be a password error", 62 | "send_success":"Sent successfully", 63 | "send_error":"Transaction failed: Please check if there is sufficient balance and miner’s fee" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"Transaction Record", 68 | "transfer_log_null":"No transaction history", 69 | 70 | "active_icon":{ 71 | "go_transfer":"Initiate transfer", 72 | "import_keystore":"Keystore", 73 | "qrcode":"QR code" 74 | }, 75 | "edit_dia":{ 76 | "tit":"Modify note", 77 | "subtit":"Mark a note for your account" 78 | }, 79 | "keystore":{ 80 | "tit":"Back up the keystore", 81 | "copy":"copy", 82 | "download":"Download keystore" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"Address has been copied", 86 | "key_copy_success":"Successfully copied" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"Import account", 91 | "add_account":"New account", 92 | "acc":"Account", 93 | "create_dia":{ 94 | "create_tit":"create Account", 95 | "backup_tit":"Back up your new account", 96 | 97 | "create_tag":"account name", 98 | "create_pwd":"set password", 99 | "create_repwd":"confirm password", 100 | 101 | "placeholder_tag":"Please set account name", 102 | "placeholder_pwd":"Please set account password", 103 | "placeholder_repwd":"Please confirm the account password", 104 | "strong_password":"Enter a strong password, at least 8 digits", 105 | 106 | "account_address":"Account", 107 | "account_privateKey":"Private key", 108 | "account_download_keystore":"Download the keystore file" 109 | }, 110 | "import_dia":{ 111 | "tit":"Import account", 112 | "select_type":"Please select import method", 113 | "type_private":"Private key", 114 | "type_keystore":"Keystore", 115 | 116 | "placeholder_private":"Please paste the private key here", 117 | "placeholder_keystore":"Please drag the keystore file here", 118 | 119 | "input_pwd":"enter password", 120 | "placeholder_pwd":"Please enter your account password" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"Are you sure you want to remove it?", 125 | "remove_confrim":"I am sure to remove", 126 | "backup":"Please make sure the account has been backed up to avoid property damage" 127 | }, 128 | "msg_info":{ 129 | "exist":"This account already exists, the name is", 130 | "enter_password":"Please enter your password", 131 | "incons_password":"The password entered twice is inconsistent", 132 | "error":"error:", 133 | "imported_success":"Import file successfully", 134 | "enter_private":"Please enter the key", 135 | "error_private":"Failed to import the account, it may be the wrong key", 136 | "enter_keystore":"Please import the keystore file first", 137 | "error_password":"Failed to import account, it may be a wrong password", 138 | "remove_success":"Removed successfully", 139 | "create_success":"Created successfully", 140 | "save":"Please save your keystore or private key and don't share it with anyone!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/et.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"Kinnitus", 3 | "cancel":"Tühistamine", 4 | "dialog_tit":"Küsi", 5 | "close":"Suletud", 6 | "confirm_you_active":"Palun kinnitage oma toiming", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"Kodu", 12 | "transfer":"Üleandmine", 13 | "contacts":"Kontaktid", 14 | "setting":"Seaded", 15 | "total":"Kokku" 16 | }, 17 | "page_setting":{ 18 | "tit":"Seaded", 19 | "lang":"Keel", 20 | "select":"Palun vali" 21 | }, 22 | "page_contacts":{ 23 | "tit":"Kontaktid", 24 | "add_dialog":"Lisage kontakt", 25 | 26 | "add_cont":{ 27 | "tit":"Sisestage kontaktandmed", 28 | "tag":"Sildid", 29 | "address":"Kontaktid", 30 | "tag_placeholder":"Sisestage kontakti kommentaarimärk", 31 | "address_placeholder":"Palun sisestage kontaktisik" 32 | }, 33 | "delete_dialog":{ 34 | "title":"Te eemaldate" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"Palun sisestage konto nimi", 38 | "no_address":"Palun sisestage konto aadress", 39 | "exist":"Kontakti on juba olemas" 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"Üle kanda", 44 | "to_address":"Into", 45 | "amount":"Summa", 46 | "send_all":"Saada kõik", 47 | "remark":"Märkus", 48 | "fees":"Tasud", 49 | "total":"Kokku", 50 | "select":"Palun vali", 51 | "no_account_info":"Konto pole, looge või importige konto", 52 | "contacts_dig":{ 53 | "select_placeholder":"Palun vali" 54 | }, 55 | "confirm_dia":{ 56 | "title":"Palun kinnitage", 57 | "enter_passworld_tit":"Palun sisesta oma parool", 58 | "enter_passworld_place":"Palun sisesta oma parool" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"Rahakoti parsing ebaõnnestus, võib olla parooli viga", 62 | "send_success":"Saada edu", 63 | "send_error":"Tehing ebaõnnestus: kontrollige, kas on piisavalt tasakaalu ja kaevandamise tasu" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"Tehinguajalugu", 68 | "transfer_log_null":"Tehingute ajalugu pole", 69 | 70 | "active_icon":{ 71 | "go_transfer":"Käivita üleandmine", 72 | "import_keystore":"Keystore", 73 | "qrcode":"QR-kood" 74 | }, 75 | "edit_dia":{ 76 | "tit":"Muuda märkmeid", 77 | "subtit":"Märkige märkus oma konto jaoks" 78 | }, 79 | "keystore":{ 80 | "tit":"Varundage võtmehoidja", 81 | "copy":"Duplicate", 82 | "download":"Laadi võtmestik alla" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"Aadress on kopeeritud", 86 | "key_copy_success":"Edukalt kopeeritud" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"Impordi konto", 91 | "add_account":"Uus konto", 92 | "acc":"Konto", 93 | "create_dia":{ 94 | "create_tit":"Loo konto", 95 | "backup_tit":"Varundage oma uus konto", 96 | 97 | "create_tag":"Konto nimi", 98 | "create_pwd":"Määra parool", 99 | "create_repwd":"Kinnitage parool", 100 | 101 | "placeholder_tag":"Palun määra konto nimi", 102 | "placeholder_pwd":"Palun määrake konto parool", 103 | "placeholder_repwd":"Kinnitage konto parool", 104 | "strong_password":"Sisestage tugev parool, vähemalt 8 numbrit", 105 | 106 | "account_address":"Konto", 107 | "account_privateKey":"Privaatvõti", 108 | "account_download_keystore":"Laadige võtmehoidla fail alla" 109 | }, 110 | "import_dia":{ 111 | "tit":"Impordi konto", 112 | "select_type":"Palun valige importimise meetod", 113 | "type_private":"Privaatvõti", 114 | "type_keystore":"Keystore", 115 | 116 | "placeholder_private":"Palun kleepige privaatvõtme siia", 117 | "placeholder_keystore":"Palun lohistage võtmehoidja fail siit", 118 | 119 | "input_pwd":"Sisestage parool", 120 | "placeholder_pwd":"Palun sisesta oma konto parool" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"Kas olete kindel, et soovite selle eemaldada?", 125 | "remove_confrim":"Ma kindlasti eemaldan", 126 | "backup":"Veenduge, et konto on varundatud, et vältida varakahju" 127 | }, 128 | "msg_info":{ 129 | "exist":"See konto on juba olemas, nimi on", 130 | "enter_password":"Palun sisesta oma parool", 131 | "incons_password":"Kahe korraga sisestatud parool on vastuoluline", 132 | "error":"Viga:", 133 | "imported_success":"Impordi fail edukalt", 134 | "enter_private":"Palun sisestage võti", 135 | "error_private":"Konto importimine ebaõnnestus, see võib olla vale võti", 136 | "enter_keystore":"Palun importige esmalt võtmesalvestusfail", 137 | "error_password":"Konto importimine ebaõnnestus, see võib olla vale parool", 138 | "remove_success":"Eemaldati edukalt", 139 | "create_success":"Loodud edukalt", 140 | "save":"Palun salvestage oma võtmehoidja või privaatvõti ja ärge seda kellelgigi jagage!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/fi.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"vahvistaa", 3 | "cancel":"peruttu", 4 | "dialog_tit":"nopea", 5 | "close":"lähellä", 6 | "confirm_you_active":"Vahvista toiminto", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"koti", 12 | "transfer":"siirto", 13 | "contacts":"kosketus", 14 | "setting":"perustettu", 15 | "total":"kokonais-" 16 | }, 17 | "page_setting":{ 18 | "tit":"perustettu", 19 | "lang":"kieli", 20 | "select":"Valitse" 21 | }, 22 | "page_contacts":{ 23 | "tit":"kosketus", 24 | "add_dialog":"Lisää yhteystieto", 25 | 26 | "add_cont":{ 27 | "tit":"Anna yhteystiedot", 28 | "tag":"tag", 29 | "address":"kosketus", 30 | "tag_placeholder":"Anna yhteyshenkilön kommenttikoodi", 31 | "address_placeholder":"Anna yhteystili" 32 | }, 33 | "delete_dialog":{ 34 | "title":"Poistat" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"Anna tilin nimi", 38 | "no_address":"Anna tilin osoite", 39 | "exist":"Yhteys on jo olemassa," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"Siirrä ulos", 44 | "to_address":"osaksi", 45 | "amount":"raha", 46 | "send_all":"Lähetä kaikki", 47 | "remark":"huomautus", 48 | "fees":"palkkiot", 49 | "total":"kokonais-", 50 | "select":"Valitse", 51 | "no_account_info":"Ei tiliä, luo tili tai luo tili", 52 | "contacts_dig":{ 53 | "select_placeholder":"Valitse" 54 | }, 55 | "confirm_dia":{ 56 | "title":"Vahvista", 57 | "enter_passworld_tit":"Anna salasanasi", 58 | "enter_passworld_place":"Anna salasanasi" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"Lompakon jäsentely epäonnistui, voi olla salasanavirhe", 62 | "send_success":"Lähetä menestys", 63 | "send_error":"Tapahtuma epäonnistui: tarkista, onko riittävä saldo ja kaivostyöntekijän maksu" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"Tapahtumahistoria", 68 | "transfer_log_null":"Ei tapahtumahistoriaa", 69 | 70 | "active_icon":{ 71 | "go_transfer":"Käynnistä siirto", 72 | "import_keystore":"keystore", 73 | "qrcode":"QR-koodi" 74 | }, 75 | "edit_dia":{ 76 | "tit":"Muokkaa huomautusta", 77 | "subtit":"Merkitse tiliisi merkintä" 78 | }, 79 | "keystore":{ 80 | "tit":"Varmuuskopioi näppäimistö", 81 | "copy":"kopio", 82 | "download":"Lataa näppäimistö" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"Osoite on kopioitu", 86 | "key_copy_success":"Kopioitiin onnistuneesti" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"Tuo tili", 91 | "add_account":"Uusi tili", 92 | "acc":"tili", 93 | "create_dia":{ 94 | "create_tit":"Luo tili", 95 | "backup_tit":"Varmuuskopioi uusi tili", 96 | 97 | "create_tag":"Tilin nimi", 98 | "create_pwd":"Aseta salasana", 99 | "create_repwd":"Vahvista salasana", 100 | 101 | "placeholder_tag":"Aseta tilin nimi", 102 | "placeholder_pwd":"Aseta salasanasi", 103 | "placeholder_repwd":"Vahvista tilin salasana", 104 | "strong_password":"Anna vahva salasana, vähintään 8 numeroa", 105 | 106 | "account_address":"tili", 107 | "account_privateKey":"Yksityinen avain", 108 | "account_download_keystore":"Lataa avainasematiedosto" 109 | }, 110 | "import_dia":{ 111 | "tit":"Tuo tili", 112 | "select_type":"Valitse tuontimenetelmä", 113 | "type_private":"Yksityinen avain", 114 | "type_keystore":"keystore", 115 | 116 | "placeholder_private":"Liitä yksityinen avain tähän", 117 | "placeholder_keystore":"Vedä avainniedosto täältä", 118 | 119 | "input_pwd":"Anna salasana", 120 | "placeholder_pwd":"Anna tilin salasana" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"Haluatko varmasti poistaa sen?", 125 | "remove_confrim":"Olen varma poistaa", 126 | "backup":"Varmista, että tilillä on varmuuskopioitu omaisuusvahinkoja" 127 | }, 128 | "msg_info":{ 129 | "exist":"Tämä tili on jo olemassa ja nimi on", 130 | "enter_password":"Anna salasanasi", 131 | "incons_password":"Kahdesti syötetty salasana on epäjohdonmukainen", 132 | "error":"Virhe:", 133 | "imported_success":"Tuo tiedosto onnistuneesti", 134 | "enter_private":"Anna avain", 135 | "error_private":"Tilin tuominen epäonnistui, se voi olla väärä avain", 136 | "enter_keystore":"Ole hyvä ja syötä ensin keystore-tiedosto", 137 | "error_password":"Tilin tuominen epäonnistui, se voi olla väärä salasana", 138 | "remove_success":"Poistettu onnistuneesti", 139 | "create_success":"Luotu onnistuneesti", 140 | "save":"Tallenna avainpohja tai yksityinen avain ja älä jakaa sitä kenenkään kanssa!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/hi.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"की पुष्टि करें", 3 | "cancel":"रद्द", 4 | "dialog_tit":"शीघ्र", 5 | "close":"पास", 6 | "confirm_you_active":"कृपया अपने ऑपरेशन की पुष्टि करें", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"घर", 12 | "transfer":"स्थानांतरण", 13 | "contacts":"संपर्क", 14 | "setting":"सेट करें", 15 | "total":"संपूर्ण" 16 | }, 17 | "page_setting":{ 18 | "tit":"सेट करें", 19 | "lang":"भाषा", 20 | "select":"कृपया चुनें" 21 | }, 22 | "page_contacts":{ 23 | "tit":"संपर्क", 24 | "add_dialog":"एक संपर्क जोड़ें", 25 | 26 | "add_cont":{ 27 | "tit":"संपर्क जानकारी दर्ज करें", 28 | "tag":"टैग", 29 | "address":"संपर्क", 30 | "tag_placeholder":"कृपया संपर्क का टिप्पणी टैग दर्ज करें", 31 | "address_placeholder":"कृपया संपर्क खाता दर्ज करें" 32 | }, 33 | "delete_dialog":{ 34 | "title":"आप हटा रहे हैं" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"कृपया खाता नाम दर्ज करें", 38 | "no_address":"कृपया खाता पता दर्ज करें", 39 | "exist":"संपर्क पहले से मौजूद है," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"बाहर स्थानांतरण", 44 | "to_address":"में", 45 | "amount":"पैसा", 46 | "send_all":"सभी भेजें", 47 | "remark":"टिप्पणी", 48 | "fees":"फीस", 49 | "total":"संपूर्ण", 50 | "select":"कृपया चुनें", 51 | "no_account_info":"कोई खाता नहीं, कृपया खाता बनाएं या आयात करें", 52 | "contacts_dig":{ 53 | "select_placeholder":"कृपया चुनें" 54 | }, 55 | "confirm_dia":{ 56 | "title":"कृपया पुष्टि करें", 57 | "enter_passworld_tit":"कृपया अपना पासवर्ड दर्ज करें", 58 | "enter_passworld_place":"कृपया अपना पासवर्ड दर्ज करें" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"वॉलेट पार्सिंग विफल, पासवर्ड त्रुटि हो सकती है", 62 | "send_success":"सफलता भेजें", 63 | "send_error":"लेनदेन विफल: कृपया जांचें कि पर्याप्त शेष राशि और खनिक का शुल्क है या नहीं" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"लेनदेन इतिहास", 68 | "transfer_log_null":"कोई लेनदेन इतिहास नहीं", 69 | 70 | "active_icon":{ 71 | "go_transfer":"स्थानांतरण शुरू करें", 72 | "import_keystore":"कुंजीस्टोर", 73 | "qrcode":"क्यूआर कोड" 74 | }, 75 | "edit_dia":{ 76 | "tit":"नोट संशोधित करें", 77 | "subtit":"अपने खाते के लिए एक नोट चिह्नित करें" 78 | }, 79 | "keystore":{ 80 | "tit":"कीस्टोर का बैक अप लें", 81 | "copy":"प्रतिलिपि", 82 | "download":"कीस्टोर डाउनलोड करें" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"पता कॉपी किया गया है", 86 | "key_copy_success":"सफलतापूर्वक कॉपी किया गया" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"खाता आयात करें", 91 | "add_account":"नया खाता", 92 | "acc":"खाता", 93 | "create_dia":{ 94 | "create_tit":"खाता बनाएं", 95 | "backup_tit":"अपने नए खाते का बैकअप लें", 96 | 97 | "create_tag":"खाता नाम", 98 | "create_pwd":"पासवर्ड सेट करें", 99 | "create_repwd":"पासवर्ड की पुष्टि करें", 100 | 101 | "placeholder_tag":"कृपया खाता नाम सेट करें", 102 | "placeholder_pwd":"कृपया खाता पासवर्ड सेट करें", 103 | "placeholder_repwd":"कृपया खाता पासवर्ड की पुष्टि करें", 104 | "strong_password":"एक मजबूत पासवर्ड दर्ज करें, कम से कम 8 अंक", 105 | 106 | "account_address":"खाता", 107 | "account_privateKey":"निजी कुंजी", 108 | "account_download_keystore":"कीस्टोर फ़ाइल डाउनलोड करें" 109 | }, 110 | "import_dia":{ 111 | "tit":"खाता आयात करें", 112 | "select_type":"कृपया आयात विधि का चयन करें", 113 | "type_private":"निजी कुंजी", 114 | "type_keystore":"कुंजीस्टोर", 115 | 116 | "placeholder_private":"कृपया यहां निजी कुंजी पेस्ट करें", 117 | "placeholder_keystore":"कृपया कीस्टोर फ़ाइल को यहां खींचें", 118 | 119 | "input_pwd":"पासवर्ड दर्ज करें", 120 | "placeholder_pwd":"कृपया अपना खाता पासवर्ड दर्ज करें" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"क्या आप वाकई इसे हटाना चाहते हैं?", 125 | "remove_confrim":"मुझे यकीन है कि निकालना है", 126 | "backup":"कृपया सुनिश्चित करें कि संपत्ति क्षति से बचने के लिए खाते का बैक अप लिया गया है" 127 | }, 128 | "msg_info":{ 129 | "exist":"यह खाता पहले से मौजूद है, नाम है", 130 | "enter_password":"कृपया अपना पासवर्ड दर्ज करें", 131 | "incons_password":"दो बार दर्ज पासवर्ड असंगत है", 132 | "error":"त्रुटि:", 133 | "imported_success":"फ़ाइल सफलतापूर्वक आयात करें", 134 | "enter_private":"कृपया कुंजी दर्ज करें", 135 | "error_private":"खाता आयात करने में विफल, यह गलत कुंजी हो सकती है", 136 | "enter_keystore":"कृपया पहले कीस्टोर फ़ाइल आयात करें", 137 | "error_password":"खाता आयात करने में विफल, यह एक गलत पासवर्ड हो सकता है", 138 | "remove_success":"सफलतापूर्वक हटा दिया गया", 139 | "create_success":"सफलतापूर्वक बनाया गया", 140 | "save":"कृपया अपनी कीस्टोर या निजी कुंजी को सहेजें और इसे किसी के साथ साझा न करें!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/hr.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"potvrditi", 3 | "cancel":"otkazan", 4 | "dialog_tit":"brz", 5 | "close":"blizu", 6 | "confirm_you_active":"Potvrdite svoju operaciju", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"dom", 12 | "transfer":"prijenos", 13 | "contacts":"kontakt", 14 | "setting":"postaviti", 15 | "total":"ukupno" 16 | }, 17 | "page_setting":{ 18 | "tit":"postaviti", 19 | "lang":"jezik", 20 | "select":"Molimo odaberite" 21 | }, 22 | "page_contacts":{ 23 | "tit":"kontakt", 24 | "add_dialog":"Dodajte kontakt", 25 | 26 | "add_cont":{ 27 | "tit":"Unesite podatke o kontaktu", 28 | "tag":"oznaka", 29 | "address":"kontakt", 30 | "tag_placeholder":"Unesite oznaku komentara kontakta", 31 | "address_placeholder":"Unesite kontakt račun" 32 | }, 33 | "delete_dialog":{ 34 | "title":"Uklanjate" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"Unesite naziv računa", 38 | "no_address":"Unesite adresu računa", 39 | "exist":"Kontakt već postoji," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"Prijenos", 44 | "to_address":"u", 45 | "amount":"novac", 46 | "send_all":"Pošalji sve", 47 | "remark":"primjedba", 48 | "fees":"naknade", 49 | "total":"ukupno", 50 | "select":"Molimo odaberite", 51 | "no_account_info":"Nema računa, izradite ili uvezite račun", 52 | "contacts_dig":{ 53 | "select_placeholder":"Molimo odaberite" 54 | }, 55 | "confirm_dia":{ 56 | "title":"Potvrdite", 57 | "enter_passworld_tit":"Unesite zaporku", 58 | "enter_passworld_place":"Unesite zaporku" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"Analiza novčanika nije uspjela, može biti pogreška u zaporci", 62 | "send_success":"Pošaljite uspjeh", 63 | "send_error":"Transakcija nije uspjela: provjerite ima li dovoljno ravnoteže i naknadu rudara" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"Povijest transakcija", 68 | "transfer_log_null":"Nema povijesti transakcija", 69 | 70 | "active_icon":{ 71 | "go_transfer":"Pokrenite prijenos", 72 | "import_keystore":"ključeva", 73 | "qrcode":"QR kod" 74 | }, 75 | "edit_dia":{ 76 | "tit":"Izmijenite bilješku", 77 | "subtit":"Označite bilješku za svoj račun" 78 | }, 79 | "keystore":{ 80 | "tit":"Izradite sigurnosnu kopiju ključeve", 81 | "copy":"kopija", 82 | "download":"Preuzmite ključnu poštu" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"Adresa je kopirana", 86 | "key_copy_success":"Uspješno kopirano" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"Uvoz računa", 91 | "add_account":"Novi račun", 92 | "acc":"račun", 93 | "create_dia":{ 94 | "create_tit":"Stvorite račun", 95 | "backup_tit":"Izradite sigurnosnu kopiju svog novog računa", 96 | 97 | "create_tag":"Naziv računa", 98 | "create_pwd":"Postavi lozinku", 99 | "create_repwd":"Potvrdite lozinku", 100 | 101 | "placeholder_tag":"Postavite naziv računa", 102 | "placeholder_pwd":"Postavite zaporku računa", 103 | "placeholder_repwd":"Potvrdite zaporku računa", 104 | "strong_password":"Unesite snažnu lozinku, najmanje 8 znamenaka", 105 | 106 | "account_address":"račun", 107 | "account_privateKey":"Privatni ključ", 108 | "account_download_keystore":"Preuzmite datoteku ključa" 109 | }, 110 | "import_dia":{ 111 | "tit":"Uvoz računa", 112 | "select_type":"Odaberite način uvoza", 113 | "type_private":"Privatni ključ", 114 | "type_keystore":"ključeva", 115 | 116 | "placeholder_private":"Ovdje zalijepite privatni ključ", 117 | "placeholder_keystore":"Ovdje povucite datoteku ključa", 118 | 119 | "input_pwd":"Unesite lozinku", 120 | "placeholder_pwd":"Unesite zaporku svog računa" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"Jeste li sigurni da ga želite ukloniti?", 125 | "remove_confrim":"Sigurno ću ukloniti", 126 | "backup":"Pobrinite se da račun bude sigurnosno kopiran kako bi izbjegli oštećenje imovine" 127 | }, 128 | "msg_info":{ 129 | "exist":"Taj račun već postoji, naziv je", 130 | "enter_password":"Unesite zaporku", 131 | "incons_password":"Unosom lozinke dvaput nije konzistentan", 132 | "error":"pogreška:", 133 | "imported_success":"Uvezi datoteku uspješno", 134 | "enter_private":"Unesite ključ", 135 | "error_private":"Uvoz računa nije uspio, možda je pogrešan ključ", 136 | "enter_keystore":"Najprije uvezite datoteku za ključeve", 137 | "error_password":"Uvoz računa nije uspio, možda je pogrešna lozinka", 138 | "remove_success":"Uklonjeno je uspješno", 139 | "create_success":"Izrađeno je uspješno", 140 | "save":"Spremite ključnu poštu ili privatni ključ i nemojte ga dijeliti nikome!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/ht.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"Konfimasyon", 3 | "cancel":"Anilasyon", 4 | "dialog_tit":"Èd memwa", 5 | "close":"Fèmen", 6 | "confirm_you_active":"Tanpri konfime operasyon ou", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"Kay", 12 | "transfer":"Transfè", 13 | "contacts":"Kontak", 14 | "setting":"Anviwònman", 15 | "total":"Total" 16 | }, 17 | "page_setting":{ 18 | "tit":"Anviwònman", 19 | "lang":"Lang", 20 | "select":"Tanpri chwazi" 21 | }, 22 | "page_contacts":{ 23 | "tit":"Kontak", 24 | "add_dialog":"Add yon kontak", 25 | 26 | "add_cont":{ 27 | "tit":"Mete enfòmasyon kontak", 28 | "tag":"Tags", 29 | "address":"Kontak", 30 | "tag_placeholder":"Tanpri antre nan kòmantè kòmantè kontak la", 31 | "address_placeholder":"Tanpri antre kont kontak la" 32 | }, 33 | "delete_dialog":{ 34 | "title":"Ou yo retire" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"Tanpri antre non kont lan", 38 | "no_address":"Tanpri antre adrès la kont", 39 | "exist":"Kontak la deja egziste," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"Transfè soti", 44 | "to_address":"Nan", 45 | "amount":"Kantite lajan", 46 | "send_all":"Voye tout", 47 | "remark":"Remak", 48 | "fees":"Frè", 49 | "total":"Total", 50 | "select":"Tanpri chwazi", 51 | "no_account_info":"Pa gen kont, tanpri kreye oswa enpòte kont", 52 | "contacts_dig":{ 53 | "select_placeholder":"Tanpri chwazi" 54 | }, 55 | "confirm_dia":{ 56 | "title":"Tanpri konfime", 57 | "enter_passworld_tit":"Tanpri antre modpas ou", 58 | "enter_passworld_place":"Tanpri antre modpas ou" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"Bous koule echwe, kapab yon erè modpas", 62 | "send_success":"Voye siksè", 63 | "send_error":"Tranzaksyon echwe: Tanpri tcheke si gen ase balans ak frè minè a" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"Istwa tranzaksyon", 68 | "transfer_log_null":"Pa gen istwa tranzaksyon", 69 | 70 | "active_icon":{ 71 | "go_transfer":"Inisye transfè", 72 | "import_keystore":"Keystore", 73 | "qrcode":"QR kòd" 74 | }, 75 | "edit_dia":{ 76 | "tit":"Modifye nòt", 77 | "subtit":"Make yon nòt pou kont ou" 78 | }, 79 | "keystore":{ 80 | "tit":"Tounen moute keystore la", 81 | "copy":"Diplikata", 82 | "download":"Download keystore" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"Adrès ki te kopye", 86 | "key_copy_success":"Siksè kopye" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"Enpòte kont", 91 | "add_account":"Nouvo kont", 92 | "acc":"Kont", 93 | "create_dia":{ 94 | "create_tit":"Kreye yon kont", 95 | "backup_tit":"Tounen moute nouvo kont ou", 96 | 97 | "create_tag":"Non kont", 98 | "create_pwd":"Mete modpas", 99 | "create_repwd":"Konfime modpas", 100 | 101 | "placeholder_tag":"Tanpri mete non kont", 102 | "placeholder_pwd":"Tanpri mete modpas kont", 103 | "placeholder_repwd":"Tanpri konfime modpas kont la", 104 | "strong_password":"Mete yon modpas fò, omwen 8 chif", 105 | 106 | "account_address":"Kont", 107 | "account_privateKey":"Prive kle", 108 | "account_download_keystore":"Download dosye a Keystore" 109 | }, 110 | "import_dia":{ 111 | "tit":"Enpòte kont", 112 | "select_type":"Tanpri chwazi metòd enpòte", 113 | "type_private":"Prive kle", 114 | "type_keystore":"Keystore", 115 | 116 | "placeholder_private":"Tanpri kole kle a prive isit la", 117 | "placeholder_keystore":"Tanpri, trennen dosye kle a isit la", 118 | 119 | "input_pwd":"Mete modpas", 120 | "placeholder_pwd":"Tanpri antre modpas kont ou" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"Èske ou sèten ou vle retire li?", 125 | "remove_confrim":"Mwen asire w ke yo retire", 126 | "backup":"Tanpri, asire w ke kont la te apiye moute pou fè pou evite domaj nan pwopriyete" 127 | }, 128 | "msg_info":{ 129 | "exist":"Kont sa a deja egziste, non an se", 130 | "enter_password":"Tanpri antre modpas ou", 131 | "incons_password":"Modpas la antre nan de fwa se konsistan", 132 | "error":"Erè:", 133 | "imported_success":"Import dosye avèk siksè", 134 | "enter_private":"Tanpri antre kle a", 135 | "error_private":"Echwe pou enpòte kont lan, li ka kle a mal", 136 | "enter_keystore":"Tanpri enpòte dosye a kle premye", 137 | "error_password":"Fayit enpòte kont, li ka yon modpas mal", 138 | "remove_success":"Retire siksè", 139 | "create_success":"Kreye avèk siksè", 140 | "save":"Tanpri, sove keystore ou oswa kle prive epi pa pataje li avèk nenpòt moun!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/id.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"Konfirmasi", 3 | "cancel":"Pembatalan", 4 | "dialog_tit":"Prompt", 5 | "close":"Tertutup", 6 | "confirm_you_active":"Harap konfirmasi operasi Anda", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"Rumah", 12 | "transfer":"Transfer", 13 | "contacts":"Kontak", 14 | "setting":"Pengaturan", 15 | "total":"Total" 16 | }, 17 | "page_setting":{ 18 | "tit":"Pengaturan", 19 | "lang":"Bahasa", 20 | "select":"Silakan pilih" 21 | }, 22 | "page_contacts":{ 23 | "tit":"Kontak", 24 | "add_dialog":"Tambahkan kontak", 25 | 26 | "add_cont":{ 27 | "tit":"Masukkan informasi kontak", 28 | "tag":"Tag", 29 | "address":"Kontak", 30 | "tag_placeholder":"Silakan masukkan tag komentar kontak", 31 | "address_placeholder":"Silakan masukkan akun kontak" 32 | }, 33 | "delete_dialog":{ 34 | "title":"Anda menghapus" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"Silakan masukkan nama akun", 38 | "no_address":"Silakan masukkan alamat akun", 39 | "exist":"Kontak sudah ada," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"Transfer keluar", 44 | "to_address":"Ke", 45 | "amount":"Jumlah", 46 | "send_all":"Kirim semua", 47 | "remark":"Catatan", 48 | "fees":"Biaya", 49 | "total":"Total", 50 | "select":"Silakan pilih", 51 | "no_account_info":"Tanpa akun, silakan buat atau impor akun", 52 | "contacts_dig":{ 53 | "select_placeholder":"Silakan pilih" 54 | }, 55 | "confirm_dia":{ 56 | "title":"Tolong konfirmasi", 57 | "enter_passworld_tit":"Silakan masukkan kata sandi Anda", 58 | "enter_passworld_place":"Silakan masukkan kata sandi Anda" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"Gagal menguraikan dompet, mungkin merupakan kesalahan kata sandi", 62 | "send_success":"Kirim sukses", 63 | "send_error":"Transaksi gagal: Silakan periksa apakah ada saldo yang cukup dan biaya penambang" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"Riwayat transaksi", 68 | "transfer_log_null":"Tidak ada riwayat transaksi", 69 | 70 | "active_icon":{ 71 | "go_transfer":"Mulai transfer", 72 | "import_keystore":"Keystore", 73 | "qrcode":"Kode QR" 74 | }, 75 | "edit_dia":{ 76 | "tit":"Ubah catatan", 77 | "subtit":"Tandai catatan untuk akun Anda" 78 | }, 79 | "keystore":{ 80 | "tit":"Cadangkan keystore", 81 | "copy":"Duplikat", 82 | "download":"Unduh keystore" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"Alamat telah disalin", 86 | "key_copy_success":"Berhasil disalin" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"Impor akun", 91 | "add_account":"Akun baru", 92 | "acc":"Akun", 93 | "create_dia":{ 94 | "create_tit":"Buat akun", 95 | "backup_tit":"Cadangkan akun baru Anda", 96 | 97 | "create_tag":"Nama akun", 98 | "create_pwd":"Setel kata sandi", 99 | "create_repwd":"Konfirmasi kata sandi", 100 | 101 | "placeholder_tag":"Silakan tentukan nama akun", 102 | "placeholder_pwd":"Silakan atur kata sandi akun", 103 | "placeholder_repwd":"Silakan konfirmasi kata sandi akun", 104 | "strong_password":"Masukkan kata sandi yang kuat, minimal 8 digit", 105 | 106 | "account_address":"Akun", 107 | "account_privateKey":"Kunci pribadi", 108 | "account_download_keystore":"Unduh file keystore" 109 | }, 110 | "import_dia":{ 111 | "tit":"Impor akun", 112 | "select_type":"Silakan pilih metode impor", 113 | "type_private":"Kunci pribadi", 114 | "type_keystore":"Keystore", 115 | 116 | "placeholder_private":"Silakan tempelkan kunci pribadi di sini", 117 | "placeholder_keystore":"Harap seret file keystore di sini", 118 | 119 | "input_pwd":"Masukkan kata sandi", 120 | "placeholder_pwd":"Silakan masukkan kata sandi akun Anda" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"Anda yakin ingin menghapusnya?", 125 | "remove_confrim":"Saya yakin untuk menghapus", 126 | "backup":"Harap pastikan akun telah dicadangkan untuk menghindari kerusakan properti" 127 | }, 128 | "msg_info":{ 129 | "exist":"Akun ini sudah ada, namanya", 130 | "enter_password":"Silakan masukkan kata sandi Anda", 131 | "incons_password":"Kata sandi yang dimasukkan dua kali tidak konsisten", 132 | "error":"Galat:", 133 | "imported_success":"Impor file berhasil", 134 | "enter_private":"Silakan masukkan kunci", 135 | "error_private":"Gagal mengimpor akun, itu mungkin kunci yang salah", 136 | "enter_keystore":"Harap impor file keystore terlebih dahulu", 137 | "error_password":"Gagal mengimpor akun, itu mungkin kata sandi yang salah", 138 | "remove_success":"Berhasil dihapus", 139 | "create_success":"Berhasil dibuat", 140 | "save":"Simpan kunci keystore atau pribadi Anda dan jangan bagikan dengan siapa pun!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/ig.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"Nkwenye", 3 | "cancel":"Ịkagbu", 4 | "dialog_tit":"Mee ngwa ngwa", 5 | "close":"Emechiri", 6 | "confirm_you_active":"Biko gosi ọrụ gị", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"Home", 12 | "transfer":"Nyefee", 13 | "contacts":"Ndi ana-akpo", 14 | "setting":"Ntọala", 15 | "total":"Ọnụ" 16 | }, 17 | "page_setting":{ 18 | "tit":"Ntọala", 19 | "lang":"Asụsụ", 20 | "select":"Biko họrọ" 21 | }, 22 | "page_contacts":{ 23 | "tit":"Ndi ana-akpo", 24 | "add_dialog":"Tinye kọntaktị", 25 | 26 | "add_cont":{ 27 | "tit":"Tinye ozi kọntaktị", 28 | "tag":"Tags", 29 | "address":"Ndi ana-akpo", 30 | "tag_placeholder":"Biko tinye aha mkpado nke kọntaktị ahụ", 31 | "address_placeholder":"Biko tinye akaụntụ nnabata" 32 | }, 33 | "delete_dialog":{ 34 | "title":"Ị na-ewepụ" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"Biko tinye aha akaụntụ", 38 | "no_address":"Biko tinye adreesị akaụntụ", 39 | "exist":"Kpọtụrụ onye ahụ," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"Nyefee", 44 | "to_address":"Banye", 45 | "amount":"Ọnụ", 46 | "send_all":"Ziga niile", 47 | "remark":"Rịba ama", 48 | "fees":"Ụgwọ", 49 | "total":"Ọnụ", 50 | "select":"Biko họrọ", 51 | "no_account_info":"Enweghị akaụntụ, biko mepụta ma ọ bụ bubata akaụntụ", 52 | "contacts_dig":{ 53 | "select_placeholder":"Biko họrọ" 54 | }, 55 | "confirm_dia":{ 56 | "title":"Biko gosi", 57 | "enter_passworld_tit":"Biko tinye paswọọdụ gị", 58 | "enter_passworld_place":"Biko tinye paswọọdụ gị" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"Ikwusi obere akpa wuru, nwere ike ịbụ njehie paswọọdụ", 62 | "send_success":"Zipụ ihe ịga nke ọma", 63 | "send_error":"Azụmahịa ejirila: Biko lelee ma ọ bụrụ na ego zuru oke na ego onye na-egwuputa ego" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"Akụkọ azụmahịa", 68 | "transfer_log_null":"Ọ dịghị akụkọ ihe mere eme", 69 | 70 | "active_icon":{ 71 | "go_transfer":"Buru ụzọ nyefee", 72 | "import_keystore":"Keystore", 73 | "qrcode":"QR koodu" 74 | }, 75 | "edit_dia":{ 76 | "tit":"Gbanwee ederede", 77 | "subtit":"Dee ederede maka akaụntụ gị" 78 | }, 79 | "keystore":{ 80 | "tit":"Weghachite isi ihe", 81 | "copy":"Ntughari", 82 | "download":"Download keystore" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"E depụtala adreesị", 86 | "key_copy_success":"E depụtaghachiri nke ọma" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"Bubata akaụntụ", 91 | "add_account":"Akaụntụ ọhụrụ", 92 | "acc":"Akaụntụ", 93 | "create_dia":{ 94 | "create_tit":"Mepụta akaụntụ", 95 | "backup_tit":"Debe akaụntụ ọhụrụ gị", 96 | 97 | "create_tag":"Aha aha", 98 | "create_pwd":"Debe paswọọdụ", 99 | "create_repwd":"Kwenye paswọọdụ", 100 | 101 | "placeholder_tag":"Biko debe aha akaụntụ", 102 | "placeholder_pwd":"Biko debe paswọọdụ akaụntụ", 103 | "placeholder_repwd":"Biko gosipụta paswọọdụ akaụntụ", 104 | "strong_password":"Tinye paswọọdụ siri ike, ọbụlagodi 8 digit", 105 | 106 | "account_address":"Akaụntụ", 107 | "account_privateKey":"Igodo nkeonwe", 108 | "account_download_keystore":"Wepu faịlụ ntinye aka" 109 | }, 110 | "import_dia":{ 111 | "tit":"Bubata akaụntụ", 112 | "select_type":"Biko họrọ usoro mbubata", 113 | "type_private":"Igodo nkeonwe", 114 | "type_keystore":"Keystore", 115 | 116 | "placeholder_private":"Biko kpoo igodo nkeonwe ebe a", 117 | "placeholder_keystore":"Biko wepu faịlụ nchekwa ihe a ebe a", 118 | 119 | "input_pwd":"Tinye paswọọdụ", 120 | "placeholder_pwd":"Biko tinye paswọọdụ akaụntụ gị" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"Ị ji n'aka na ịchọrọ iwepụ ya?", 125 | "remove_confrim":"Enwere m n'aka iwepụ", 126 | "backup":"Biko jide n'aka na akwadola akaụntụ ahụ iji zere mmebi ihe onwunwe" 127 | }, 128 | "msg_info":{ 129 | "exist":"Ihe ndekọ a adịlarị, aha ahụ bụ", 130 | "enter_password":"Biko tinye paswọọdụ gị", 131 | "incons_password":"Okwuntughe abanye ugboro abuo ekwenyeghi", 132 | "error":"Njehie:", 133 | "imported_success":"Nbunye faịlụ na-aga nke ọma", 134 | "enter_private":"Biko tinye igodo", 135 | "error_private":"Emezighi ibubata akaụntụ ahụ, ọ nwere ike ịbụ igodo na-ezighị ezi", 136 | "enter_keystore":"Biko bubata faịlụ keystore ozugbo", 137 | "error_password":"Emezughị ibubata akaụntụ, ọ nwere ike ịbụ paswọọdụ na-ezighị ezi", 138 | "remove_success":"Wepụ ya nke ọma", 139 | "create_success":"Ejiri nke ọma", 140 | "save":"Biko chekwaa isi ụlọ ọrụ gị ma ọ bụ igodo onwe gị ma ghara ịkekọrịta ya na onye ọ bụla!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/iw.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"אישור", 3 | "cancel":"ביטול", 4 | "dialog_tit":"הפקודה", 5 | "close":"סגור", 6 | "confirm_you_active":"אשר את הפעולה שלך", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"בית", 12 | "transfer":"העברה", 13 | "contacts":"מגעים", 14 | "setting":"הגדרות", 15 | "total":"סך הכל" 16 | }, 17 | "page_setting":{ 18 | "tit":"הגדרות", 19 | "lang":"שפה", 20 | "select":"בחר" 21 | }, 22 | "page_contacts":{ 23 | "tit":"מגעים", 24 | "add_dialog":"הוסף איש קשר", 25 | 26 | "add_cont":{ 27 | "tit":"הזן פרטים ליצירת קשר", 28 | "tag":"תגים", 29 | "address":"מגעים", 30 | "tag_placeholder":"הזן את תג התגובה של איש הקשר", 31 | "address_placeholder":"הזן את חשבון איש הקשר" 32 | }, 33 | "delete_dialog":{ 34 | "title":"אתה מסיר" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"הזן את שם החשבון", 38 | "no_address":"הזן את כתובת החשבון", 39 | "exist":"איש הקשר כבר קיים," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"העברה החוצה", 44 | "to_address":"לתוך", 45 | "amount":"סכום", 46 | "send_all":"שלח הכל", 47 | "remark":"הערה", 48 | "fees":"אגרות", 49 | "total":"סך הכל", 50 | "select":"בחר", 51 | "no_account_info":"אין חשבון, צור או ייבא חשבון", 52 | "contacts_dig":{ 53 | "select_placeholder":"בחר" 54 | }, 55 | "confirm_dia":{ 56 | "title":"אשר", 57 | "enter_passworld_tit":"הזן את הסיסמה שלך", 58 | "enter_passworld_place":"הזן את הסיסמה שלך" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"ניתוח הארנק נכשל, עשויה להיות שגיאת סיסמה", 62 | "send_success":"שלח הצלחה", 63 | "send_error":"העסקה נכשלה: בדוק אם יש מספיק איזון ודמי כורה" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"היסטוריית עסקאות", 68 | "transfer_log_null":"אין היסטוריית עסקאות", 69 | 70 | "active_icon":{ 71 | "go_transfer":"התחל את ההעברה", 72 | "import_keystore":"קיסטור", 73 | "qrcode":"קוד QR" 74 | }, 75 | "edit_dia":{ 76 | "tit":"שנה הערה", 77 | "subtit":"סמן הערה עבור החשבון שלך" 78 | }, 79 | "keystore":{ 80 | "tit":"לגבות את keystore", 81 | "copy":"שכפל", 82 | "download":"הורד keystore" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"הכתובת הועתקה", 86 | "key_copy_success":"הועתק בהצלחה" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"ייבא חשבון", 91 | "add_account":"חשבון חדש", 92 | "acc":"חשבון", 93 | "create_dia":{ 94 | "create_tit":"צור חשבון", 95 | "backup_tit":"גבה את החשבון החדש שלך", 96 | 97 | "create_tag":"שם החשבון", 98 | "create_pwd":"הגדר סיסמה", 99 | "create_repwd":"אשר סיסמה", 100 | 101 | "placeholder_tag":"הזן שם חשבון", 102 | "placeholder_pwd":"הגדר סיסמת חשבון", 103 | "placeholder_repwd":"אשר את סיסמת החשבון", 104 | "strong_password":"הזן סיסמה חזקה, לפחות 8 ספרות", 105 | 106 | "account_address":"חשבון", 107 | "account_privateKey":"מפתח פרטי", 108 | "account_download_keystore":"הורד את הקובץ keystore" 109 | }, 110 | "import_dia":{ 111 | "tit":"ייבא חשבון", 112 | "select_type":"בחר שיטת ייבוא", 113 | "type_private":"מפתח פרטי", 114 | "type_keystore":"קיסטור", 115 | 116 | "placeholder_private":"הדבק את המפתח הפרטי כאן", 117 | "placeholder_keystore":"אנא גרור את הקובץ keystore כאן", 118 | 119 | "input_pwd":"הזן סיסמה", 120 | "placeholder_pwd":"הזן את סיסמת החשבון שלך" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"האם אתה בטוח שברצונך להסיר אותו?", 125 | "remove_confrim":"אני בטוח להסיר", 126 | "backup":"ודא שהחשבון מגובה כדי למנוע נזק לרכוש" 127 | }, 128 | "msg_info":{ 129 | "exist":"חשבון זה כבר קיים, השם הוא", 130 | "enter_password":"הזן את הסיסמה שלך", 131 | "incons_password":"הסיסמה שהוזנה פעמיים אינה עקבית", 132 | "error":"שגיאה:", 133 | "imported_success":"ייבוא ​​הקובץ בהצלחה", 134 | "enter_private":"הזן את המפתח", 135 | "error_private":"ייבוא ​​החשבון נכשל, ייתכן שהוא המפתח הלא נכון", 136 | "enter_keystore":"יש לייבא את הקובץ keystore הראשון", 137 | "error_password":"ייבוא ​​החשבון נכשל, ייתכן שזו סיסמה שגויה", 138 | "remove_success":"הוסר בהצלחה", 139 | "create_success":"נוצר בהצלחה", 140 | "save":"אנא שמור את keystore או מפתח פרטי ואל תשתף אותו עם אף אחד!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/ja.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"確認", 3 | "cancel":"キャンセル", 4 | "dialog_tit":"プロンプト", 5 | "close":"クローズド", 6 | "confirm_you_active":"あなたの操作を確認してください", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"ホーム", 12 | "transfer":"転送", 13 | "contacts":"連絡先", 14 | "setting":"設定", 15 | "total":"合計" 16 | }, 17 | "page_setting":{ 18 | "tit":"設定", 19 | "lang":"言語", 20 | "select":"選択してください" 21 | }, 22 | "page_contacts":{ 23 | "tit":"連絡先", 24 | "add_dialog":"連絡先を追加", 25 | 26 | "add_cont":{ 27 | "tit":"連絡先情報を入力してください", 28 | "tag":"タグ", 29 | "address":"連絡先", 30 | "tag_placeholder":"連絡先のコメントタグを入力してください", 31 | "address_placeholder":"連絡先のアカウントを入力してください" 32 | }, 33 | "delete_dialog":{ 34 | "title":"あなたは削除しています" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"アカウント名を入力してください", 38 | "no_address":"アカウントのアドレスを入力してください", 39 | "exist":"連絡先は既に存在しますが、" 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"転送する", 44 | "to_address":"入る", 45 | "amount":"金額", 46 | "send_all":"すべてを送る", 47 | "remark":"ノート", 48 | "fees":"料金", 49 | "total":"合計", 50 | "select":"選択してください", 51 | "no_account_info":"アカウントがありません。アカウントを作成またはインポートしてください", 52 | "contacts_dig":{ 53 | "select_placeholder":"選択してください" 54 | }, 55 | "confirm_dia":{ 56 | "title":"確認してください", 57 | "enter_passworld_tit":"パスワードを入力してください", 58 | "enter_passworld_place":"パスワードを入力してください" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"ウォレットの解析に失敗しました。パスワードエラーの可能性があります", 62 | "send_success":"成功を送る", 63 | "send_error":"取引に失敗しました:十分な残高と鉱夫の手数料があるかどうか確認してください" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"取引履歴", 68 | "transfer_log_null":"取引履歴はありません", 69 | 70 | "active_icon":{ 71 | "go_transfer":"転送を開始する", 72 | "import_keystore":"キーストア", 73 | "qrcode":"QRコード" 74 | }, 75 | "edit_dia":{ 76 | "tit":"メモを変更する", 77 | "subtit":"あなたのアカウントのメモをマークする" 78 | }, 79 | "keystore":{ 80 | "tit":"キーストアをバックアップする", 81 | "copy":"重複", 82 | "download":"キーストアをダウンロードする" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"アドレスがコピーされました", 86 | "key_copy_success":"コピーが成功しました" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"アカウントをインポートする", 91 | "add_account":"新しいアカウント", 92 | "acc":"アカウント", 93 | "create_dia":{ 94 | "create_tit":"アカウントを作成する", 95 | "backup_tit":"新しいアカウントをバックアップする", 96 | 97 | "create_tag":"アカウント名", 98 | "create_pwd":"パスワードを設定する", 99 | "create_repwd":"パスワードを確認する", 100 | 101 | "placeholder_tag":"アカウント名を設定してください", 102 | "placeholder_pwd":"アカウントのパスワードを設定してください", 103 | "placeholder_repwd":"アカウントのパスワードを確認してください", 104 | "strong_password":"パスワードを8桁以上入力してください", 105 | 106 | "account_address":"アカウント", 107 | "account_privateKey":"秘密鍵", 108 | "account_download_keystore":"キーストアファイルをダウンロードする" 109 | }, 110 | "import_dia":{ 111 | "tit":"アカウントをインポートする", 112 | "select_type":"インポート方法を選択してください", 113 | "type_private":"秘密鍵", 114 | "type_keystore":"キーストア", 115 | 116 | "placeholder_private":"ここに秘密鍵を貼り付けてください", 117 | "placeholder_keystore":"ここにキーストアファイルをドラッグしてください", 118 | 119 | "input_pwd":"パスワードを入力", 120 | "placeholder_pwd":"アカウントのパスワードを入力してください" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"それを削除してもよろしいですか?", 125 | "remove_confrim":"私は必ず削除します", 126 | "backup":"物的損害を防ぐためにアカウントがバックアップされていることを確認してください" 127 | }, 128 | "msg_info":{ 129 | "exist":"このアカウントは既に存在し、その名前は", 130 | "enter_password":"パスワードを入力してください", 131 | "incons_password":"2回入力したパスワードが矛盾しています", 132 | "error":"エラー:", 133 | "imported_success":"ファイルを正常にインポートする", 134 | "enter_private":"キーを入力してください", 135 | "error_private":"アカウントのインポートに失敗しました。間違ったキーである可能性があります", 136 | "enter_keystore":"キーストアファイルを最初にインポートしてください", 137 | "error_password":"アカウントのインポートに失敗しました。パスワードが間違っている可能性があります", 138 | "remove_success":"削除されました", 139 | "create_success":"作成済み", 140 | "save":"キーストアまたは秘密鍵を保存して、誰とも共有しないでください!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/jw.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"Konfirmasi", 3 | "cancel":"Pembatalan", 4 | "dialog_tit":"Prompt", 5 | "close":"Ditutup", 6 | "confirm_you_active":"Mangga konfirmasi operasi sampeyan", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"Ngarep", 12 | "transfer":"Transfer", 13 | "contacts":"Kontak", 14 | "setting":"Setelan", 15 | "total":"Total" 16 | }, 17 | "page_setting":{ 18 | "tit":"Setelan", 19 | "lang":"Basa", 20 | "select":"Mangga pilih" 21 | }, 22 | "page_contacts":{ 23 | "tit":"Kontak", 24 | "add_dialog":"Tambahake kontak", 25 | 26 | "add_cont":{ 27 | "tit":"Ketik informasi kontak", 28 | "tag":"Tags", 29 | "address":"Kontak", 30 | "tag_placeholder":"Mangga ketik tag komentar", 31 | "address_placeholder":"Mangga mlebu akun kontak" 32 | }, 33 | "delete_dialog":{ 34 | "title":"Sampeyan ngilangi" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"Mangga ketik jeneng akun", 38 | "no_address":"Mangga ketik alamat akun", 39 | "exist":"Kontak wis ana," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"Nransfer metu", 44 | "to_address":"Into", 45 | "amount":"Jumlah", 46 | "send_all":"Kirim kabeh", 47 | "remark":"Cathetan", 48 | "fees":"Biaya", 49 | "total":"Total", 50 | "select":"Mangga pilih", 51 | "no_account_info":"Ora ana akun, mangga nggawe utawa ngimpor akun", 52 | "contacts_dig":{ 53 | "select_placeholder":"Mangga pilih" 54 | }, 55 | "confirm_dia":{ 56 | "title":"Mangga konfirmasi", 57 | "enter_passworld_tit":"Mangga ketik sandhi", 58 | "enter_passworld_place":"Mangga ketik sandhi" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"Parsing Wallet gagal, bisa dadi kesalahan sandi", 62 | "send_success":"Kirim sukses", 63 | "send_error":"Transaksi gagal: Mangga dipriksa manawa ana keseimbangan sing cukup lan ragad penambang" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"Sajarah transaksi", 68 | "transfer_log_null":"Ora ana riwayat transaksi", 69 | 70 | "active_icon":{ 71 | "go_transfer":"Miwiti transfer", 72 | "import_keystore":"Keystore", 73 | "qrcode":"QR code" 74 | }, 75 | "edit_dia":{ 76 | "tit":"Ngowahi cathetan", 77 | "subtit":"Tandai cathetan kanggo akun sampeyan" 78 | }, 79 | "keystore":{ 80 | "tit":"Back up keystore", 81 | "copy":"Duplikat", 82 | "download":"Download keystore" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"Alamat wis disalin", 86 | "key_copy_success":"Kasil disalin" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"Impor akun", 91 | "add_account":"Akun anyar", 92 | "acc":"Akun", 93 | "create_dia":{ 94 | "create_tit":"Nggawe akun", 95 | "backup_tit":"Gawe akun anyar", 96 | 97 | "create_tag":"Jeneng akun", 98 | "create_pwd":"Setel tembung sandhi", 99 | "create_repwd":"Konfirmasi tembung sandi", 100 | 101 | "placeholder_tag":"Mangga nyetel jeneng akun", 102 | "placeholder_pwd":"Mangga nyetel akun sandhi", 103 | "placeholder_repwd":"Konfirmasi sandhi akun", 104 | "strong_password":"Ketik sandhi sing kuwat, minimal 8 digit", 105 | 106 | "account_address":"Akun", 107 | "account_privateKey":"Tombol pribadi", 108 | "account_download_keystore":"Ngundhuh file keystore" 109 | }, 110 | "import_dia":{ 111 | "tit":"Impor akun", 112 | "select_type":"Mangga pilih metode ngimpor", 113 | "type_private":"Tombol pribadi", 114 | "type_keystore":"Keystore", 115 | 116 | "placeholder_private":"Mangga dipindhah tombol pribadi ing kene", 117 | "placeholder_keystore":"Monggo seret file keystore ing kene", 118 | 119 | "input_pwd":"Ketik sandhi", 120 | "placeholder_pwd":"Mangga ketik sandhi akun" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"Apa sampeyan pengin mbusak?", 125 | "remove_confrim":"Aku arep mbusak", 126 | "backup":"Priksa akun kasebut wis digawe kanggo nyegah karusakan properti" 127 | }, 128 | "msg_info":{ 129 | "exist":"Akun iki wis ana, jeneng kasebut", 130 | "enter_password":"Mangga ketik sandhi", 131 | "incons_password":"Tembung sandhi sing kaping pindho ora konsisten", 132 | "error":"Kesalahan:", 133 | "imported_success":"Ngimpor file kanthi sukses", 134 | "enter_private":"Mangga ketik tombol", 135 | "error_private":"Gagal ngimpor akun, bisa dadi kunci sing salah", 136 | "enter_keystore":"Mangga ngimpor file keystore dhisik", 137 | "error_password":"Gagal ngimpor akun, bisa dadi tembung seng salah", 138 | "remove_success":"Dibusak kasil", 139 | "create_success":"Digawe sukses", 140 | "save":"Monggo simpen tombol keystore utawa pribadi lan aja bareng karo sapa waé!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/km.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"ការបញ្ជាក់", 3 | "cancel":"ការលប់ចោល", 4 | "dialog_tit":"ប្រអប់បញ្ចូល", 5 | "close":"បានបិទ", 6 | "confirm_you_active":"សូមបញ្ជាក់ប្រតិបត្តិការរបស់អ្នក", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"ផ្ទះ", 12 | "transfer":"ផ្ទេរ", 13 | "contacts":"ទំនាក់ទំនង", 14 | "setting":"ការកំណត់", 15 | "total":"សរុប" 16 | }, 17 | "page_setting":{ 18 | "tit":"ការកំណត់", 19 | "lang":"ភាសា", 20 | "select":"សូមជ្រើសរើស" 21 | }, 22 | "page_contacts":{ 23 | "tit":"ទំនាក់ទំនង", 24 | "add_dialog":"បន្ថែមទំនាក់ទំនង", 25 | 26 | "add_cont":{ 27 | "tit":"បញ្ចូលព័ត៌មានទំនាក់ទំនង", 28 | "tag":"ស្លាក", 29 | "address":"ទំនាក់ទំនង", 30 | "tag_placeholder":"សូមបញ្ចូលស្លាកមតិយោបល់របស់ទំនាក់ទំនង", 31 | "address_placeholder":"សូមបញ្ចូលគណនីទំនាក់ទំនង" 32 | }, 33 | "delete_dialog":{ 34 | "title":"អ្នកកំពុងដកចេញ" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"សូមបញ្ចូលឈ្មោះគណនី", 38 | "no_address":"សូមបញ្ចូលអាសយដ្ឋានគណនី", 39 | "exist":"ទំនាក់ទំនងមានរួចហើយ," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"ផ្ទេរចេញ", 44 | "to_address":"ចូលទៅ", 45 | "amount":"ចំនួន", 46 | "send_all":"ផ្ញើទាំងអស់", 47 | "remark":"ចំណាំ", 48 | "fees":"កម្រៃ", 49 | "total":"សរុប", 50 | "select":"សូមជ្រើសរើស", 51 | "no_account_info":"គ្មានគណនីទេសូមបង្កើតឬនាំចូលគណនី", 52 | "contacts_dig":{ 53 | "select_placeholder":"សូមជ្រើសរើស" 54 | }, 55 | "confirm_dia":{ 56 | "title":"សូមបញ្ជាក់", 57 | "enter_passworld_tit":"សូមបញ្ចូលពាក្យសម្ងាត់របស់អ្នក", 58 | "enter_passworld_place":"សូមបញ្ចូលពាក្យសម្ងាត់របស់អ្នក" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"ការវិភាគកាបូបបានបរាជ័យ, អាចជាកំហុសពាក្យសម្ងាត់", 62 | "send_success":"ផ្ញើជោគជ័យ", 63 | "send_error":"ប្រតិបត្តិការបានបរាជ័យ: សូមពិនិត្យមើលថាតើមានសមតុល្យគ្រប់គ្រាន់និងកម្រៃសេវារបស់អ្នករ៉ាប់រង" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"ប្រវត្តិប្រតិបត្តិការ", 68 | "transfer_log_null":"មិនមានប្រវត្តិប្រតិបត្តិការ", 69 | 70 | "active_icon":{ 71 | "go_transfer":"ចាប់ផ្តើមផ្ទេរ", 72 | "import_keystore":"Keystore", 73 | "qrcode":"QR code" 74 | }, 75 | "edit_dia":{ 76 | "tit":"កែប្រែចំណាំ", 77 | "subtit":"សម្គាល់ចំណាំសម្រាប់គណនីរបស់អ្នក" 78 | }, 79 | "keystore":{ 80 | "tit":"បម្រុងទុក keystore", 81 | "copy":"ស្ទួន", 82 | "download":"ទាញយកឃ្លាំងសម្ងាត់" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"អាសយដ្ឋានត្រូវបានចម្លង", 86 | "key_copy_success":"បានចម្លងដោយជោគជ័យ" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"នាំចូលគណនី", 91 | "add_account":"គណនីថ្មី", 92 | "acc":"គណនី", 93 | "create_dia":{ 94 | "create_tit":"បង្កើតគណនី", 95 | "backup_tit":"បម្រុងទុកគណនីថ្មីរបស់អ្នក", 96 | 97 | "create_tag":"ឈ្មោះគណនី", 98 | "create_pwd":"កំណត់ពាក្យសម្ងាត់", 99 | "create_repwd":"បញ្ជាក់ពាក្យសម្ងាត់", 100 | 101 | "placeholder_tag":"សូមកំណត់ឈ្មោះគណនី", 102 | "placeholder_pwd":"សូមកំណត់ពាក្យសម្ងាត់គណនី", 103 | "placeholder_repwd":"សូមបញ្ជាក់ពាក្យសម្ងាត់គណនី", 104 | "strong_password":"បញ្ចូលលេខសំងាត់យ៉ាងហោចណាស់ 8 ខ្ទង់", 105 | 106 | "account_address":"គណនី", 107 | "account_privateKey":"កូនសោឯកជន", 108 | "account_download_keystore":"ទាញយកឯកសារឃ្លាំងសម្ងាត់" 109 | }, 110 | "import_dia":{ 111 | "tit":"នាំចូលគណនី", 112 | "select_type":"សូមជ្រើសវិធីសាស្ត្រនាំចូល", 113 | "type_private":"កូនសោឯកជន", 114 | "type_keystore":"Keystore", 115 | 116 | "placeholder_private":"សូមបិទភ្ជាប់កូនសោឯកជននៅទីនេះ", 117 | "placeholder_keystore":"សូមអូសឯកសារឃ្លាំងសម្ងាត់នៅទីនេះ", 118 | 119 | "input_pwd":"បញ្ចូលពាក្យសម្ងាត់", 120 | "placeholder_pwd":"សូមបញ្ចូលពាក្យសម្ងាត់គណនីរបស់អ្នក" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"តើអ្នកប្រាកដជាចង់លុបវាចោលមែនទេ?", 125 | "remove_confrim":"ខ្ញុំប្រាកដក្នុងការដកចេញ", 126 | "backup":"សូមប្រាកដថាគណនីត្រូវបានបម្រុងទុកដើម្បីជៀសវាងការខូចខាតទ្រព្យសម្បត្តិ" 127 | }, 128 | "msg_info":{ 129 | "exist":"គណនីនេះមានរួចហើយឈ្មោះគឺ", 130 | "enter_password":"សូមបញ្ចូលពាក្យសម្ងាត់របស់អ្នក", 131 | "incons_password":"ពាក្យសម្ងាត់ដែលបានបញ្ចូលពីរដងមិនជាប់លាប់ទេ", 132 | "error":"កំហុស:", 133 | "imported_success":"នាំឯកសារដោយជោគជ័យ", 134 | "enter_private":"សូមបញ្ចូលលេខកូដ", 135 | "error_private":"បានបរាជ័យក្នុងការនាំចូលគណនីវាអាចជាគន្លឹះខុស", 136 | "enter_keystore":"សូមនាំចូលឯកសារ keystore ជាមុនសិន", 137 | "error_password":"បានបរាជ័យក្នុងការនាំចូលគណនីវាអាចជាពាក្យសម្ងាត់ខុស", 138 | "remove_success":"បានយកចេញដោយជោគជ័យ", 139 | "create_success":"បានបង្កើតដោយជោគជ័យ", 140 | "save":"សូមរក្សាទុក keystore ឬកូនសោឯកជនរបស់អ្នកហើយកុំចែករំលែកវាជាមួយនរណាម្នាក់!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/ko.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"확인", 3 | "cancel":"취소", 4 | "dialog_tit":"프롬프트", 5 | "close":"휴무일", 6 | "confirm_you_active":"당신의 수술을 확인해주세요.", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"홈", 12 | "transfer":"전송", 13 | "contacts":"연락처", 14 | "setting":"설정", 15 | "total":"합계" 16 | }, 17 | "page_setting":{ 18 | "tit":"설정", 19 | "lang":"언어", 20 | "select":"선택하십시오" 21 | }, 22 | "page_contacts":{ 23 | "tit":"연락처", 24 | "add_dialog":"연락처 추가", 25 | 26 | "add_cont":{ 27 | "tit":"연락처 정보 입력", 28 | "tag":"태그", 29 | "address":"연락처", 30 | "tag_placeholder":"연락처의 의견 태그를 입력하십시오.", 31 | "address_placeholder":"연락처 계정을 입력하십시오." 32 | }, 33 | "delete_dialog":{ 34 | "title":"제거하고 있습니다." 35 | }, 36 | "msg_info":{ 37 | "no_tag":"계정 이름을 입력하십시오.", 38 | "no_address":"계정 주소를 입력하십시오.", 39 | "exist":"연락처가 이미 있습니다." 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"전송", 44 | "to_address":"들어가기", 45 | "amount":"금액", 46 | "send_all":"모두 보내기", 47 | "remark":"참고", 48 | "fees":"수수료", 49 | "total":"합계", 50 | "select":"선택하십시오", 51 | "no_account_info":"계정이 없습니다. 계정을 만들거나 가져 오십시오.", 52 | "contacts_dig":{ 53 | "select_placeholder":"선택하십시오" 54 | }, 55 | "confirm_dia":{ 56 | "title":"확인해주세요.", 57 | "enter_passworld_tit":"비밀번호를 입력하십시오.", 58 | "enter_passworld_place":"비밀번호를 입력하십시오." 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"월렛 파싱에 실패했습니다. 비밀번호 오류 일 수 있습니다.", 62 | "send_success":"성공을 보낸다.", 63 | "send_error":"거래 실패 : 충분한 잔액 및 광부 수수료가 있는지 확인하십시오." 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"거래 내역", 68 | "transfer_log_null":"거래 내역 없음", 69 | 70 | "active_icon":{ 71 | "go_transfer":"전송 시작", 72 | "import_keystore":"키 저장소", 73 | "qrcode":"QR 코드" 74 | }, 75 | "edit_dia":{ 76 | "tit":"메모 수정", 77 | "subtit":"내 계정에 메모 쓰기" 78 | }, 79 | "keystore":{ 80 | "tit":"키 스토어 백업", 81 | "copy":"중복", 82 | "download":"키 스토어 다운로드" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"주소가 복사되었습니다.", 86 | "key_copy_success":"복사 완료" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"수입 계정", 91 | "add_account":"새 계정", 92 | "acc":"계정", 93 | "create_dia":{ 94 | "create_tit":"계정 만들기", 95 | "backup_tit":"새 계정 백업", 96 | 97 | "create_tag":"계정 이름", 98 | "create_pwd":"비밀번호 설정", 99 | "create_repwd":"암호 확인", 100 | 101 | "placeholder_tag":"계정 이름을 설정하십시오.", 102 | "placeholder_pwd":"계정 비밀번호를 설정하십시오.", 103 | "placeholder_repwd":"계정 비밀번호를 확인하십시오.", 104 | "strong_password":"최소 8 자리 이상의 강력한 암호를 입력하십시오.", 105 | 106 | "account_address":"계정", 107 | "account_privateKey":"개인 키", 108 | "account_download_keystore":"키 스토어 파일 다운로드" 109 | }, 110 | "import_dia":{ 111 | "tit":"수입 계정", 112 | "select_type":"가져 오기 방법을 선택하십시오.", 113 | "type_private":"개인 키", 114 | "type_keystore":"키 저장소", 115 | 116 | "placeholder_private":"개인 키를 여기에 붙여 넣으십시오.", 117 | "placeholder_keystore":"여기에 키 저장소 파일을 드래그하십시오.", 118 | 119 | "input_pwd":"비밀번호 입력", 120 | "placeholder_pwd":"계정 비밀번호를 입력하십시오." 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"제거 하시겠습니까?", 125 | "remove_confrim":"나는 반드시 제거해야한다.", 126 | "backup":"재산 손실을 방지하기 위해 계정을 백업했는지 확인하십시오." 127 | }, 128 | "msg_info":{ 129 | "exist":"이 계정은 이미 존재하며 이름은입니다.", 130 | "enter_password":"비밀번호를 입력하십시오.", 131 | "incons_password":"두 번 입력 한 암호가 일치하지 않습니다.", 132 | "error":"오류 :", 133 | "imported_success":"파일 가져 오기가 완료되었습니다.", 134 | "enter_private":"열쇠를 입력하십시오.", 135 | "error_private":"계정을 가져 오지 못했습니다. 잘못된 키일 수 있습니다.", 136 | "enter_keystore":"먼저 키 스토어 파일을 가져 오십시오.", 137 | "error_password":"계정을 가져 오지 못했습니다. 잘못된 비밀번호 일 수 있습니다.", 138 | "remove_success":"성공적으로 제거되었습니다.", 139 | "create_success":"성공적으로 생성되었습니다.", 140 | "save":"키 스토어 또는 개인 키를 저장하고 누구와도 공유하지 마십시오!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/ky.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"ырастоо", 3 | "cancel":"жокко чыгарылды", 4 | "dialog_tit":"тез", 5 | "close":"жакын", 6 | "confirm_you_active":"Сураныч, операция болушу керек", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"үй", 12 | "transfer":"ташуу", 13 | "contacts":"Байланыш", 14 | "setting":"орнотуу", 15 | "total":"Бардыгы болуп" 16 | }, 17 | "page_setting":{ 18 | "tit":"орнотуу", 19 | "lang":"тил", 20 | "select":"Сураныч, тандоо" 21 | }, 22 | "page_contacts":{ 23 | "tit":"Байланыш", 24 | "add_dialog":"Байланышты кошуу", 25 | 26 | "add_cont":{ 27 | "tit":"Байланыш маалыматын киргизүү", 28 | "tag":"Tag", 29 | "address":"Байланыш", 30 | "tag_placeholder":"Сураныч, байланыш этикеткасы киргизе", 31 | "address_placeholder":"Байланыштын эсебин кирет" 32 | }, 33 | "delete_dialog":{ 34 | "title":"Сиз алып жатышат" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"эсеп атын", 38 | "no_address":"Сураныч, эсеп дарегин киргизүү", 39 | "exist":"Байланыш мурунтан эле бар," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"күйгүзүү чыгып", 44 | "to_address":"эске", 45 | "amount":"акча", 46 | "send_all":"бардык жөнөтүү", 47 | "remark":"пикир", 48 | "fees":"Алымдар", 49 | "total":"Бардыгы болуп", 50 | "select":"Сураныч, тандоо", 51 | "no_account_info":"Эсеби жок, эсеп же импорт сураныч түзүү", 52 | "contacts_dig":{ 53 | "select_placeholder":"Сураныч, тандоо" 54 | }, 55 | "confirm_dia":{ 56 | "title":"Сураныч, ырастоо", 57 | "enter_passworld_tit":"Сураныч, сөздү киргизип", 58 | "enter_passworld_place":"Сураныч, сөздү киргизип" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"Капчык чечим болбой, бул туура эмес сөз болушу мүмкүн", 62 | "send_success":"ийгилик жөнөтүү", 63 | "send_error":"бүтүм санааркап: жетиштүү балансы жана кенчилер акысы бар-жетпесин билиш үчүн, текшерүү" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"бүтүмдүн Record", 68 | "transfer_log_null":"эч кандай бүтүмдөр", 69 | 70 | "active_icon":{ 71 | "go_transfer":"которууну демилгелөө", 72 | "import_keystore":"ачкыч", 73 | "qrcode":"Эки өлчөмдүү коду" 74 | }, 75 | "edit_dia":{ 76 | "tit":"Edit Note", 77 | "subtit":"сиздин каттоо үчүн сөз белгилейт" 78 | }, 79 | "keystore":{ 80 | "tit":"ачкыч сактоо", 81 | "copy":"копия", 82 | "download":"Download ачкыч" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"Дареги көчүрүлдү", 86 | "key_copy_success":"ийгиликтүү көчүрүлдү" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"Import каттоо эсеби", 91 | "add_account":"жаңы каттоо эсеби", 92 | "acc":"каттоо", 93 | "create_dia":{ 94 | "create_tit":"Эсеп жазуусун жаратуу", 95 | "backup_tit":"Сиздин жаңы эсеп камдык", 96 | 97 | "create_tag":"каттоо эсебинин аталышы", 98 | "create_pwd":"пароль", 99 | "create_repwd":"Сырсөздү ырастоо", 100 | 101 | "placeholder_tag":"Set эсеп аты", 102 | "placeholder_pwd":"Set эсеп пароль", 103 | "placeholder_repwd":"эсеп-сөздү баамдагыла", 104 | "strong_password":"Enter, жок эле дегенде сегиз, күчтүү сөздү", 105 | 106 | "account_address":"каттоо", 107 | "account_privateKey":"жеке ачкыч", 108 | "account_download_keystore":"Download ачкыч билэ" 109 | }, 110 | "import_dia":{ 111 | "tit":"Import каттоо эсеби", 112 | "select_type":"Сураныч, Import режимин тандоо", 113 | "type_private":"жеке ачкыч", 114 | "type_keystore":"ачкыч", 115 | 116 | "placeholder_private":"Сураныч, бул жерде жеке ачкычты көчүрүп", 117 | "placeholder_keystore":"Сураныч, бул жерде эске билэни ачкыч", 118 | 119 | "input_pwd":"сырсөз киргизүү", 120 | "placeholder_pwd":"Сураныч, эсеп сырсөз" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"Чын эле, аны алып келеби?", 125 | "remove_confrim":"Мен алып ишенем", 126 | "backup":"Текшерип эсеп мүлктүк зыянга учуратпоо үчүн бекемделе элек" 127 | }, 128 | "msg_info":{ 129 | "exist":"Бул каттоо эсеби мурунтан эле бар, аты", 130 | "enter_password":"Сураныч, сөздү киргизип", 131 | "incons_password":"Сырсөздөр дал келген жок", 132 | "error":"Error:", 133 | "imported_success":"Import билэ Ийгилик", 134 | "enter_private":"Сураныч, ачкычты кирет", 135 | "error_private":"Каттоо импорт албаса, ката негизги болушу мүмкүн", 136 | "enter_keystore":"Сураныч, ачкыч билэни импорттоо", 137 | "error_password":"Каттоо импорт албаса, бул туура эмес сөз болушу мүмкүн", 138 | "remove_success":"ийгиликтүү алынып салынды", 139 | "create_success":"ийгилик түзүлүүдө", 140 | "save":"Сураныч, ачкыч же жеке, эч ким менен бөлүшө эмес, сактай көр!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/la.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"Constituo", 3 | "cancel":"Pax:", 4 | "dialog_tit":"promptus", 5 | "close":"prope", 6 | "confirm_you_active":"Quaeso, scrutare operationem tuum", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"domum", 12 | "transfer":"De translatione", 13 | "contacts":"Contact", 14 | "setting":"eriges", 15 | "total":"summa" 16 | }, 17 | "page_setting":{ 18 | "tit":"eriges", 19 | "lang":"lingua", 20 | "select":"placere eligere" 21 | }, 22 | "page_contacts":{ 23 | "tit":"Contact", 24 | "add_dialog":"Add a contactu", 25 | 26 | "add_cont":{ 27 | "tit":"Intra contactus notitia", 28 | "tag":"Tag →", 29 | "address":"Contact", 30 | "tag_placeholder":"Placere contactus intrare notas titulus est scriptor", 31 | "address_placeholder":"Placere contactus intrare Ratio" 32 | }, 33 | "delete_dialog":{ 34 | "title":"Movens igitur tu es" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"Intra propter nomen tuum", 38 | "no_address":"Oratio pro PDF", 39 | "exist":"Iam enim Contact:" 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"turn ex", 44 | "to_address":"in", 45 | "amount":"pecunia", 46 | "send_all":"omnes Mitte", 47 | "remark":"Attende", 48 | "fees":"fees", 49 | "total":"summa", 50 | "select":"placere eligere", 51 | "no_account_info":"Nulla ratio, aut placere import rationem creare", 52 | "contacts_dig":{ 53 | "select_placeholder":"placere eligere" 54 | }, 55 | "confirm_dia":{ 56 | "title":"Quaesumus, adfirma", 57 | "enter_passworld_tit":"Please enter vestri password", 58 | "enter_passworld_place":"Please enter vestri password" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"Peram animi fallit peccatum sit ignoro", 62 | "send_success":"mitte victoria", 63 | "send_error":"Rei deficit: vide si satis est ut Reprehendo et fossores feodo statera" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"Record transaction", 68 | "transfer_log_null":"Non transactions", 69 | 70 | "active_icon":{ 71 | "go_transfer":"initium capiat", 72 | "import_keystore":"Keystore", 73 | "qrcode":"Duo dumtaxat codice" 74 | }, 75 | "edit_dia":{ 76 | "tit":"Nota Edit", 77 | "subtit":"Nam designat quiddam ob gratiam tui" 78 | }, 79 | "keystore":{ 80 | "tit":"Quod tergum sursum keystore", 81 | "copy":"exemplum", 82 | "download":"download keystore" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"Oratio est copied", 86 | "key_copy_success":"copied feliciter" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"propter Import", 91 | "add_account":"ratio Novae", 92 | "acc":"ratio", 93 | "create_dia":{ 94 | "create_tit":"Create an account", 95 | "backup_tit":"Novus tergum sursum vestri ratio", 96 | 97 | "create_tag":"ratio nominis", 98 | "create_pwd":"Password", 99 | "create_repwd":"Affirmo password", 100 | 101 | "placeholder_tag":"Set propter nomen tuum", 102 | "placeholder_pwd":"Set propter password", 103 | "placeholder_repwd":"Vide rationis password", 104 | "strong_password":"Vasa fortis ignoro saltem octo", 105 | 106 | "account_address":"ratio", 107 | "account_privateKey":"privata clavem", 108 | "account_download_keystore":"Download file keystore" 109 | }, 110 | "import_dia":{ 111 | "tit":"propter Import", 112 | "select_type":"Placere eligere Import modus", 113 | "type_private":"privata clavem", 114 | "type_keystore":"keystore", 115 | 116 | "placeholder_private":"Placere privata crustulum key hic", 117 | "placeholder_keystore":"Placere in keystore lima hic,", 118 | 119 | "input_pwd":"Intra in password", 120 | "placeholder_pwd":"PDF rationem ignoro" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"Tu es certus sit removere vis?", 125 | "remove_confrim":"Im 'certus ad removendum", 126 | "backup":"Vide rationis iam certioribus illis ne proprietas damnum" 127 | }, 128 | "msg_info":{ 129 | "exist":"Haec ratio Iam enim et hoc nomine", 130 | "enter_password":"Please enter vestri password", 131 | "incons_password":"Passwords non aequare", 132 | "error":"Error:", 133 | "imported_success":"Import file Success", 134 | "enter_private":"Please enter the key", 135 | "error_private":"Ratio import perit, sed error sit clavem", 136 | "enter_keystore":"Placere importare file keystore", 137 | "error_password":"Ratio import incassum fit, ut malum quod password", 138 | "remove_success":"remota feliciter", 139 | "create_success":"partum victoria", 140 | "save":"Keystore velit servare privatis non potest communicare;" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/lo.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"ການຢືນຢັນ", 3 | "cancel":"ການຍົກເລີກ", 4 | "dialog_tit":"Prompt", 5 | "close":"ປິດ", 6 | "confirm_you_active":"ກະລຸນາຢືນຢັນການເຮັດວຽກຂອງທ່ານ", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"ຫນ້າທໍາອິດ", 12 | "transfer":"ການໂອນເງິນ", 13 | "contacts":"ຕິດຕໍ່ພົວພັນ", 14 | "setting":"Settings", 15 | "total":"ລວມ" 16 | }, 17 | "page_setting":{ 18 | "tit":"Settings", 19 | "lang":"ພາສາ", 20 | "select":"ກະລຸນາເລືອກ" 21 | }, 22 | "page_contacts":{ 23 | "tit":"ຕິດຕໍ່ພົວພັນ", 24 | "add_dialog":"ຕື່ມການຕິດຕໍ່", 25 | 26 | "add_cont":{ 27 | "tit":"ກະລຸນາໃສ່ຂໍ້ມູນການຕິດຕໍ່", 28 | "tag":"Tags", 29 | "address":"ຕິດຕໍ່ພົວພັນ", 30 | "tag_placeholder":"ກະລຸນາໃສ່ແທັກຄໍາຄິດເຫັນຂອງຜູ້ຕິດຕໍ່", 31 | "address_placeholder":"ກະລຸນາໃສ່ບັນຊີຕິດຕໍ່" 32 | }, 33 | "delete_dialog":{ 34 | "title":"ທ່ານກໍາລັງຖອນເອົາ" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"ກະລຸນາໃສ່ຊື່ບັນຊີ", 38 | "no_address":"ກະລຸນາໃສ່ທີ່ຢູ່ບັນຊີ", 39 | "exist":"ຕິດຕໍ່ພົວພັນແລ້ວ," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"ໂອນອອກ", 44 | "to_address":"Into", 45 | "amount":"ຈໍານວນເງິນ", 46 | "send_all":"ສົ່ງທັງຫມົດ", 47 | "remark":"ຫມາຍເຫດ", 48 | "fees":"ຄ່າທໍານຽມ", 49 | "total":"ລວມ", 50 | "select":"ກະລຸນາເລືອກ", 51 | "no_account_info":"ບໍ່ມີບັນຊີ, ກະລຸນາສ້າງຫຼືນໍາເຂົ້າບັນຊີ", 52 | "contacts_dig":{ 53 | "select_placeholder":"ກະລຸນາເລືອກ" 54 | }, 55 | "confirm_dia":{ 56 | "title":"ໂປດຍືນຍັນ", 57 | "enter_passworld_tit":"ກະລຸນາໃສ່ລະຫັດຜ່ານຂອງທ່ານ", 58 | "enter_passworld_place":"ກະລຸນາໃສ່ລະຫັດຜ່ານຂອງທ່ານ" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"ການວິເຄາະຂອງ Wallet ລົ້ມເຫລວອາດຈະເປັນຂໍ້ຜິດພາດລະຫັດຜ່ານ", 62 | "send_success":"ສົ່ງຜົນສໍາເລັດ", 63 | "send_error":"ບັນຊີການເຮັດທຸລະກິດລົ້ມເຫລວ: ກະລຸນາກວດເບິ່ງວ່າມີຍອດເງິນສົມທົບແລະຄ່າທໍານຽມຂອງແຮ່ທາດຢ່າງພຽງພໍ" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"ປະວັດການເຮັດທຸລະກໍາ", 68 | "transfer_log_null":"ບໍ່ມີປະຫວັດການຊື້ຂາຍ", 69 | 70 | "active_icon":{ 71 | "go_transfer":"ເລີ່ມຕົ້ນການໂອນ", 72 | "import_keystore":"Keystore", 73 | "qrcode":"QR code" 74 | }, 75 | "edit_dia":{ 76 | "tit":"ແກ້ໄຂບັນທຶກ", 77 | "subtit":"ຫມາຍຫມາຍສໍາລັບບັນຊີຂອງທ່ານ" 78 | }, 79 | "keystore":{ 80 | "tit":"Back up keystore", 81 | "copy":"Duplicate", 82 | "download":"ດາວໂຫລດ keystore" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"ທີ່ຢູ່ໄດ້ຖືກຄັດລອກ", 86 | "key_copy_success":"ຄັດລອກສົບຜົນສໍາເລັດ" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"ບັນຊີນໍາເຂົ້າ", 91 | "add_account":"ບັນຊີໃຫມ່", 92 | "acc":"ບັນຊີ", 93 | "create_dia":{ 94 | "create_tit":"ສ້າງບັນຊີ", 95 | "backup_tit":"ກັບຄືນໄປບ່ອນບັນຊີໃຫມ່ຂອງທ່ານ", 96 | 97 | "create_tag":"ຊື່ບັນຊີ", 98 | "create_pwd":"ຕັ້ງຄ່າລະຫັດຜ່ານ", 99 | "create_repwd":"ຢືນຢັນລະຫັດຜ່ານ", 100 | 101 | "placeholder_tag":"ກະລຸນາຕັ້ງຊື່ບັນຊີ", 102 | "placeholder_pwd":"ກະລຸນາຕັ້ງລະຫັດຜ່ານບັນຊີ", 103 | "placeholder_repwd":"ກະລຸນາຢືນຢັນລະຫັດຜ່ານບັນຊີ", 104 | "strong_password":"ກະລຸນາໃສ່ລະຫັດຜ່ານທີ່ເຂັ້ມແຂງ, ຢ່າງຫນ້ອຍ 8 ເລກ", 105 | 106 | "account_address":"ບັນຊີ", 107 | "account_privateKey":"ຄີເອກກະຊົນ", 108 | "account_download_keystore":"ດາວໂຫລດໄຟລ໌ keystore" 109 | }, 110 | "import_dia":{ 111 | "tit":"ບັນຊີນໍາເຂົ້າ", 112 | "select_type":"ກະລຸນາເລືອກວິທີການນໍາເຂົ້າ", 113 | "type_private":"ຄີເອກກະຊົນ", 114 | "type_keystore":"Keystore", 115 | 116 | "placeholder_private":"ກະລຸນາວາງຄີສ່ວນຕົວທີ່ນີ້", 117 | "placeholder_keystore":"ກະລຸນາ drag ໄຟລ໌ keystore ຢູ່ທີ່ນີ້", 118 | 119 | "input_pwd":"ໃສ່ລະຫັດຜ່ານ", 120 | "placeholder_pwd":"ກະລຸນາໃສ່ລະຫັດຜ່ານບັນຊີຂອງທ່ານ" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"ທ່ານແນ່ໃຈວ່າທ່ານຕ້ອງການເອົາມັນອອກ?", 125 | "remove_confrim":"ຂ້າພະເຈົ້າແນ່ໃຈວ່າຈະເອົາອອກ", 126 | "backup":"ກະລຸນາໃຫ້ແນ່ໃຈວ່າບັນຊີໄດ້ຖືກຮອງຮັບເພື່ອຫຼີກເວັ້ນຄວາມເສຍຫາຍຂອງຊັບສິນ" 127 | }, 128 | "msg_info":{ 129 | "exist":"ບັນຊີນີ້ມີຢູ່ແລ້ວ, ຊື່ແມ່ນ", 130 | "enter_password":"ກະລຸນາໃສ່ລະຫັດຜ່ານຂອງທ່ານ", 131 | "incons_password":"ລະຫັດຜ່ານເຂົ້າສອງເທື່ອແມ່ນບໍ່ສອດຄ່ອງ", 132 | "error":"ຂໍ້ຜິດພາດ:", 133 | "imported_success":"Import file successfully", 134 | "enter_private":"ກະລຸນາໃສ່ຄີ", 135 | "error_private":"ບໍ່ສາມາດນໍາເຂົ້າບັນຊີໄດ້, ມັນອາດຈະເປັນກຸນແຈທີ່ບໍ່ຖືກຕ້ອງ", 136 | "enter_keystore":"ກະລຸນານໍາເຂົ້າໄຟລ໌ keystore ກ່ອນ", 137 | "error_password":"ບໍ່ສາມາດເຂົ້າບັນຊີໄດ້, ມັນອາດເປັນລະຫັດຜ່ານທີ່ບໍ່ຖືກຕ້ອງ", 138 | "remove_success":"ລຶບລ້າງຄວາມສໍາເລັດ", 139 | "create_success":"ສ້າງສົບຜົນສໍາເລັດ", 140 | "save":"ກະລຸນາບັນທຶກ keystore ຫຼືຄີສ່ວນຕົວຂອງທ່ານແລະຢ່າແບ່ງປັນມັນກັບຄົນອື່ນ!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/ps.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"تایید", 3 | "cancel":"ردول", 4 | "dialog_tit":"ژبړئ", 5 | "close":"تړل شوی", 6 | "confirm_you_active":"مهرباني وکړئ خپل عملیات تایید کړئ", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"کور", 12 | "transfer":"انتقال", 13 | "contacts":"اړیکې", 14 | "setting":"امستنې", 15 | "total":"ټول" 16 | }, 17 | "page_setting":{ 18 | "tit":"امستنې", 19 | "lang":"ژبه", 20 | "select":"مهرباني وکړئ غوره کړه" 21 | }, 22 | "page_contacts":{ 23 | "tit":"اړیکې", 24 | "add_dialog":"اړیکه زیاته کړه", 25 | 26 | "add_cont":{ 27 | "tit":"د اړیکو معلومات داخل کړئ", 28 | "tag":"ټکي", 29 | "address":"اړیکې", 30 | "tag_placeholder":"مهرباني وکړئ د اړیکو د تبصرې ټکي وليکئ", 31 | "address_placeholder":"مهرباني وکړئ د اړیکو حساب ولیکئ" 32 | }, 33 | "delete_dialog":{ 34 | "title":"تاسو لرې کول" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"مهرباني وکړئ د حساب نوم ولیکئ", 38 | "no_address":"مهرباني وکړئ د حساب پته ولیکئ", 39 | "exist":"اړیکې لا دمخه شتون لري،" 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"لیږدول", 44 | "to_address":"په", 45 | "amount":"مقدار", 46 | "send_all":"ټول ولېږل", 47 | "remark":"یادونه", 48 | "fees":"فیسونه", 49 | "total":"ټول", 50 | "select":"مهرباني وکړئ غوره کړه", 51 | "no_account_info":"نه حساب، لطفا د حساب جوړولو یا واردول", 52 | "contacts_dig":{ 53 | "select_placeholder":"مهرباني وکړئ غوره کړه" 54 | }, 55 | "confirm_dia":{ 56 | "title":"مهرباني وکړئ تایید کړئ", 57 | "enter_passworld_tit":"لطفا خپل پټنوم داخلیږی", 58 | "enter_passworld_place":"لطفا خپل پټنوم داخلیږی" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"د پیپر پیر کول ناکام شو، کیدای شي د شفر غلطۍ وي", 62 | "send_success":"بریالیتوب واستوئ", 63 | "send_error":"معامله ناکامه شوه: لطفا وګورئ چې آیا کافی اندازه توازن او د کانونو فیس شتون لري" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"د راکړې ورکړې تاریخ", 68 | "transfer_log_null":"د لیږد تاریخ نه", 69 | 70 | "active_icon":{ 71 | "go_transfer":"د لیږد پیل", 72 | "import_keystore":"کیسټور", 73 | "qrcode":"د QR کود" 74 | }, 75 | "edit_dia":{ 76 | "tit":"تعدیل یادښت", 77 | "subtit":"د خپل حساب لپاره یوه نښه نښه کړئ" 78 | }, 79 | "keystore":{ 80 | "tit":"د کیسټۍ شاتړ", 81 | "copy":"نقل", 82 | "download":"د کیلي ښکته کول" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"پته نقل شوی", 86 | "key_copy_success":"په بریالیتوب سره کاپي شوی" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"حساب وارد کړئ", 91 | "add_account":"نوی حساب", 92 | "acc":"ګڼون", 93 | "create_dia":{ 94 | "create_tit":"ګڼون جوړول", 95 | "backup_tit":"خپل نوی حساب بیرته پورته کړئ", 96 | 97 | "create_tag":"د کارن نوم", 98 | "create_pwd":"پټنوم ولیکه", 99 | "create_repwd":"پټنوم تایید کړه", 100 | 101 | "placeholder_tag":"لطفا د حساب نوم ولیکئ", 102 | "placeholder_pwd":"مهرباني وکړئ د حساب پټنوم ولیکئ", 103 | "placeholder_repwd":"مهرباني وکړئ د حساب پټنوم تایید کړئ", 104 | "strong_password":"لږترلږه 8 هګۍ", 105 | 106 | "account_address":"ګڼون", 107 | "account_privateKey":"شخصي کیلي", 108 | "account_download_keystore":"د کیلي دوتنه ډاونلوډ کړئ" 109 | }, 110 | "import_dia":{ 111 | "tit":"حساب وارد کړئ", 112 | "select_type":"مهرباني وکړئ د واردولو طریقه وټاکئ", 113 | "type_private":"شخصي کیلي", 114 | "type_keystore":"کیسټور", 115 | 116 | "placeholder_private":"مهرباني وکړئ شخصي کیلي دلته وټاکئ", 117 | "placeholder_keystore":"لطفا د کیلي فایل فایل دلته وپلټئ", 118 | 119 | "input_pwd":"شفر ورکړه", 120 | "placeholder_pwd":"مهرباني وکړئ خپل د حساب پټنوم ولیکئ" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"ایا ته باوري یې چې تاسو یې لیرې کول غواړئ؟", 125 | "remove_confrim":"زه ډاډه یم چې لیرې کړم", 126 | "backup":"مهرباني وکړئ ډاډ ترلاسه کړئ چې حساب د شتمنیو د زیان څخه مخنیوي لپاره ملاتړ شوی" 127 | }, 128 | "msg_info":{ 129 | "exist":"دا حساب لا دمخه شتون لري، نوم دی", 130 | "enter_password":"لطفا خپل پټنوم داخلیږی", 131 | "incons_password":"ننوتل شوي دوه ځله ناڅاپي دي", 132 | "error":"تېروتنه:", 133 | "imported_success":"دوتنه په بریالیتوب وارد کړه", 134 | "enter_private":"لطفا کلیمه وليکئ", 135 | "error_private":"د حساب واردولو کې پاتې راغلل، دا ممکن غلط کلیدی وي", 136 | "enter_keystore":"لطفا لومړی د کیلي فایل وارد کړئ", 137 | "error_password":"د حساب واردولو کې پاتې راغلل، دا ممکن ناسم شفر وي", 138 | "remove_success":"بریالی شوی", 139 | "create_success":"په بریالیتوب سره جوړ شو", 140 | "save":"لطفا خپل کلیسټ یا شخصي کیلي خوندي کړئ او د چا سره یې شریک نه کړئ!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/sk.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"potvrdiť", 3 | "cancel":"zrušený", 4 | "dialog_tit":"prompt", 5 | "close":"zavrieť", 6 | "confirm_you_active":"Potvrďte svoju činnosť", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"domov", 12 | "transfer":"prevod", 13 | "contacts":"kontakt", 14 | "setting":"založiť", 15 | "total":"totálnej" 16 | }, 17 | "page_setting":{ 18 | "tit":"založiť", 19 | "lang":"jazyk", 20 | "select":"Vyberte prosím" 21 | }, 22 | "page_contacts":{ 23 | "tit":"kontakt", 24 | "add_dialog":"Pridajte kontakt", 25 | 26 | "add_cont":{ 27 | "tit":"Zadajte kontaktné informácie", 28 | "tag":"štítok", 29 | "address":"kontakt", 30 | "tag_placeholder":"Zadajte značku komentára kontaktu", 31 | "address_placeholder":"Zadajte konto kontaktu" 32 | }, 33 | "delete_dialog":{ 34 | "title":"Odstraňujete" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"Zadajte názov účtu", 38 | "no_address":"Zadajte adresu účtu", 39 | "exist":"Kontakt už existuje," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"Odstúpte", 44 | "to_address":"do", 45 | "amount":"peniaze", 46 | "send_all":"Odoslať všetko", 47 | "remark":"poznámka", 48 | "fees":"poplatky", 49 | "total":"totálnej", 50 | "select":"Vyberte prosím", 51 | "no_account_info":"Žiadny účet, vytvorte alebo importujte účet", 52 | "contacts_dig":{ 53 | "select_placeholder":"Vyberte prosím" 54 | }, 55 | "confirm_dia":{ 56 | "title":"Potvrďte prosím", 57 | "enter_passworld_tit":"Zadajte svoje heslo", 58 | "enter_passworld_place":"Zadajte svoje heslo" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"Parsovanie služby Peňaženka zlyhalo, môže to byť chyba hesla", 62 | "send_success":"Poslať úspech", 63 | "send_error":"Transakcia zlyhala: skontrolujte, či je dostatočný zostatok a horník" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"História transakcií", 68 | "transfer_log_null":"Žiadna história transakcií", 69 | 70 | "active_icon":{ 71 | "go_transfer":"Spustenie prenosu", 72 | "import_keystore":"úložisko kľúčov", 73 | "qrcode":"QR kód" 74 | }, 75 | "edit_dia":{ 76 | "tit":"Upraviť poznámku", 77 | "subtit":"Označte poznámku pre svoj účet" 78 | }, 79 | "keystore":{ 80 | "tit":"Zálohujte úložisko kľúčov", 81 | "copy":"kópie", 82 | "download":"Stiahnite si kľúče" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"Adresa bola skopírovaná", 86 | "key_copy_success":"Úspešné skopírovanie" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"Importný účet", 91 | "add_account":"Nový účet", 92 | "acc":"účet", 93 | "create_dia":{ 94 | "create_tit":"Vytvorte si účet", 95 | "backup_tit":"Zálohujte nový účet", 96 | 97 | "create_tag":"Názov účtu", 98 | "create_pwd":"Nastavte heslo", 99 | "create_repwd":"Potvrďte heslo", 100 | 101 | "placeholder_tag":"Zadajte názov účtu", 102 | "placeholder_pwd":"Nastavte heslo účtu", 103 | "placeholder_repwd":"Potvrďte heslo účtu", 104 | "strong_password":"Zadajte silné heslo, najmenej 8 číslic", 105 | 106 | "account_address":"účet", 107 | "account_privateKey":"Súkromný kľúč", 108 | "account_download_keystore":"Stiahnite si súbor úložiska kľúčov" 109 | }, 110 | "import_dia":{ 111 | "tit":"Importný účet", 112 | "select_type":"Vyberte metódu importu", 113 | "type_private":"Súkromný kľúč", 114 | "type_keystore":"úložisko kľúčov", 115 | 116 | "placeholder_private":"Tu vložte privátny kľúč", 117 | "placeholder_keystore":"Tu prosím pretiahnite súbor úložiska kľúčov", 118 | 119 | "input_pwd":"Zadajte heslo", 120 | "placeholder_pwd":"Zadajte heslo svojho účtu" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"Naozaj chcete odstrániť?", 125 | "remove_confrim":"Určite odstrániť", 126 | "backup":"Uistite sa, že bol účet zálohovaný, aby ste predišli poškodeniu majetku" 127 | }, 128 | "msg_info":{ 129 | "exist":"Tento účet už existuje, názov je", 130 | "enter_password":"Zadajte svoje heslo", 131 | "incons_password":"Zadané dvojité heslo je nekonzistentné", 132 | "error":"chyba:", 133 | "imported_success":"Importovať súbor úspešne", 134 | "enter_private":"Zadajte kľúč", 135 | "error_private":"Nepodarilo sa importovať účet, môže to byť nesprávny kľúč", 136 | "enter_keystore":"Najprv importujte súbor úložiska kľúčov", 137 | "error_password":"Nepodarilo sa importovať účet, môže to byť nesprávne heslo", 138 | "remove_success":"Úspešne odstránené", 139 | "create_success":"Vytvorené úspešne", 140 | "save":"Uložte prosím svoj obchod s kľúčovými slovami alebo súkromný kľúč a nedajte sa s nikým zdieľať!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/sl.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"Potrditev", 3 | "cancel":"Odpoved", 4 | "dialog_tit":"Poziv", 5 | "close":"Zaprto", 6 | "confirm_you_active":"Potrdite svoje delovanje", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"Domov", 12 | "transfer":"Prenos", 13 | "contacts":"Stiki", 14 | "setting":"Nastavitve", 15 | "total":"Skupaj" 16 | }, 17 | "page_setting":{ 18 | "tit":"Nastavitve", 19 | "lang":"Jezik", 20 | "select":"Prosim izberite" 21 | }, 22 | "page_contacts":{ 23 | "tit":"Stiki", 24 | "add_dialog":"Dodaj stik", 25 | 26 | "add_cont":{ 27 | "tit":"Vnesite podatke za stik", 28 | "tag":"Oznake", 29 | "address":"Stiki", 30 | "tag_placeholder":"Vnesite oznako za stik osebe", 31 | "address_placeholder":"Vnesite kontaktni račun" 32 | }, 33 | "delete_dialog":{ 34 | "title":"Odstranite" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"Vnesite ime računa", 38 | "no_address":"Vnesite naslov računa", 39 | "exist":"Stik že obstaja," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"Prenesi ven", 44 | "to_address":"Into", 45 | "amount":"Znesek", 46 | "send_all":"Pošlji vse", 47 | "remark":"Opomba", 48 | "fees":"Pristojbine", 49 | "total":"Skupaj", 50 | "select":"Prosim izberite", 51 | "no_account_info":"Brez računa, ustvarite ali uvozite račun", 52 | "contacts_dig":{ 53 | "select_placeholder":"Prosim izberite" 54 | }, 55 | "confirm_dia":{ 56 | "title":"Prosimo, potrdite", 57 | "enter_passworld_tit":"Vnesite geslo", 58 | "enter_passworld_place":"Vnesite geslo" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"Razčlenjevanje z denarnico ni uspelo, je lahko napaka gesla", 62 | "send_success":"Pošlji uspeh", 63 | "send_error":"Transakcija ni uspela: preverite, ali obstaja dovolj ravnotežja in pristojbina za rudarje" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"Zgodovina transakcij", 68 | "transfer_log_null":"Brez zgodovine transakcij", 69 | 70 | "active_icon":{ 71 | "go_transfer":"Začnite prenos", 72 | "import_keystore":"Keystore", 73 | "qrcode":"QR kodo" 74 | }, 75 | "edit_dia":{ 76 | "tit":"Spremeni beležko", 77 | "subtit":"Označite opombo za svoj račun" 78 | }, 79 | "keystore":{ 80 | "tit":"Varnostno kopirajte varnostno kopijo", 81 | "copy":"Podvoji", 82 | "download":"Prenesite ključno besedo" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"Naslov je bil kopiran", 86 | "key_copy_success":"Uspešno kopiran" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"Uvoz računa", 91 | "add_account":"Nov račun", 92 | "acc":"Račun", 93 | "create_dia":{ 94 | "create_tit":"Ustvarite račun", 95 | "backup_tit":"Varnostno kopirajte svoj novi račun", 96 | 97 | "create_tag":"Ime računa", 98 | "create_pwd":"Nastavite geslo", 99 | "create_repwd":"Potrdite geslo", 100 | 101 | "placeholder_tag":"Nastavite ime računa", 102 | "placeholder_pwd":"Nastavite geslo za račun", 103 | "placeholder_repwd":"Potrdite geslo za račun", 104 | "strong_password":"Vnesite močno geslo, najmanj 8 številk", 105 | 106 | "account_address":"Račun", 107 | "account_privateKey":"Zasebni ključ", 108 | "account_download_keystore":"Prenesite datoteko keystore" 109 | }, 110 | "import_dia":{ 111 | "tit":"Uvoz računa", 112 | "select_type":"Izberite način uvoza", 113 | "type_private":"Zasebni ključ", 114 | "type_keystore":"Keystore", 115 | 116 | "placeholder_private":"Prosimo, prilepite zasebni ključ tukaj", 117 | "placeholder_keystore":"Povlecite datoteko keystore tukaj", 118 | 119 | "input_pwd":"Vnesite geslo", 120 | "placeholder_pwd":"Vnesite geslo za račun" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"Ali ste prepričani, da ga želite odstraniti?", 125 | "remove_confrim":"Prepričan sem, da ga odstranim", 126 | "backup":"Prepričajte se, da je bil račun varnostno kopiran, da se izognete nepremoženjski škodi" 127 | }, 128 | "msg_info":{ 129 | "exist":"Ta račun že obstaja, ime je", 130 | "enter_password":"Vnesite geslo", 131 | "incons_password":"Dvakrat vneseno geslo ni v skladu", 132 | "error":"Napaka:", 133 | "imported_success":"Uvozite datoteko uspešno", 134 | "enter_private":"Vnesite ključ", 135 | "error_private":"Račun ni bilo mogoče uvoziti, morda je napačni ključ", 136 | "enter_keystore":"Najprej uvozite datoteko keystore", 137 | "error_password":"Ni bilo mogoče uvoziti računa, morda je napačno geslo", 138 | "remove_success":"Uspešno je bil odstranjen", 139 | "create_success":"Ustvarjeno je uspešno", 140 | "save":"Prosimo, shranite ključni ključ ali zasebni ključ in ga ne delite z nikomer!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/sr.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"Потврда", 3 | "cancel":"Отказ", 4 | "dialog_tit":"Промпт", 5 | "close":"Затворено", 6 | "confirm_you_active":"Потврдите своју операцију", 7 | "unit":{ 8 | "czr":"ЦЗР" 9 | }, 10 | "model_header":{ 11 | "home":"Хоме", 12 | "transfer":"Трансфер", 13 | "contacts":"Контакти", 14 | "setting":"Подешавања", 15 | "total":"Укупно" 16 | }, 17 | "page_setting":{ 18 | "tit":"Подешавања", 19 | "lang":"Језик", 20 | "select":"Изаберите" 21 | }, 22 | "page_contacts":{ 23 | "tit":"Контакти", 24 | "add_dialog":"Додајте контакт", 25 | 26 | "add_cont":{ 27 | "tit":"Унесите информације о контакту", 28 | "tag":"Ознаке", 29 | "address":"Контакти", 30 | "tag_placeholder":"Молимо унесите ознаку за коментаре", 31 | "address_placeholder":"Молимо унесите контактни налог" 32 | }, 33 | "delete_dialog":{ 34 | "title":"Ви уклањате" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"Унесите име налога", 38 | "no_address":"Молимо унесите адресу рачуна", 39 | "exist":"Контакт већ постоји," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"Пренеси", 44 | "to_address":"Инто", 45 | "amount":"Износ", 46 | "send_all":"Пошаљите све", 47 | "remark":"Напомена", 48 | "fees":"Накнаде", 49 | "total":"Укупно", 50 | "select":"Изаберите", 51 | "no_account_info":"Нема налога, направите или увезите рачун", 52 | "contacts_dig":{ 53 | "select_placeholder":"Изаберите" 54 | }, 55 | "confirm_dia":{ 56 | "title":"Потврдите", 57 | "enter_passworld_tit":"Унесите своју лозинку", 58 | "enter_passworld_place":"Унесите своју лозинку" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"Анализирање новчаника није успело, можда грешка грешке", 62 | "send_success":"Пошаљи успех", 63 | "send_error":"Трансакција није успела: проверите да ли постоји довољна равнотежа и рударска накнада" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"Историја трансакција", 68 | "transfer_log_null":"Нема историје трансакција", 69 | 70 | "active_icon":{ 71 | "go_transfer":"Покрените трансфер", 72 | "import_keystore":"Кеисторе", 73 | "qrcode":"КР код" 74 | }, 75 | "edit_dia":{ 76 | "tit":"Измените белешку", 77 | "subtit":"Означите белешку за свој налог" 78 | }, 79 | "keystore":{ 80 | "tit":"Направите резервну копију", 81 | "copy":"Дупликат", 82 | "download":"Преузмите кеисторе" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"Адреса је копирана", 86 | "key_copy_success":"Успешно копиран" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"Увоз налога", 91 | "add_account":"Нови рачун", 92 | "acc":"Рачун", 93 | "create_dia":{ 94 | "create_tit":"Направите налог", 95 | "backup_tit":"Направите резервну копију новог налога", 96 | 97 | "create_tag":"Име налога", 98 | "create_pwd":"Поставите лозинку", 99 | "create_repwd":"Потврдите лозинку", 100 | 101 | "placeholder_tag":"Поставите име налога", 102 | "placeholder_pwd":"Поставите лозинку за рачун", 103 | "placeholder_repwd":"Потврдите лозинку налога", 104 | "strong_password":"Унесите јаку лозинку, најмање 8 цифара", 105 | 106 | "account_address":"Рачун", 107 | "account_privateKey":"Приватни кључ", 108 | "account_download_keystore":"Преузмите датотеку кеисторе" 109 | }, 110 | "import_dia":{ 111 | "tit":"Увоз налога", 112 | "select_type":"Изаберите начин увоза", 113 | "type_private":"Приватни кључ", 114 | "type_keystore":"Кеисторе", 115 | 116 | "placeholder_private":"Молимо вас да прилепите приватни кључ овдје", 117 | "placeholder_keystore":"Молим вас превуците датотеку кеисторе овде", 118 | 119 | "input_pwd":"Унесите лозинку", 120 | "placeholder_pwd":"Молимо унесите лозинку вашег рачуна" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"Да ли сте сигурни да желите да га уклоните?", 125 | "remove_confrim":"Сигуран сам да га уклоним", 126 | "backup":"Уверите се да је рачун направљен да бисте избегли имовинску штету" 127 | }, 128 | "msg_info":{ 129 | "exist":"Овај налог већ постоји, име је", 130 | "enter_password":"Унесите своју лозинку", 131 | "incons_password":"Уписана лозинка је недоследна", 132 | "error":"Грешка:", 133 | "imported_success":"Увезите датотеку успешно", 134 | "enter_private":"Молимо унесите кључ", 135 | "error_private":"Неуспело је увести рачун, можда је погрешан кључ", 136 | "enter_keystore":"Прво импортирајте датотеку кеисторе", 137 | "error_password":"Није успело увозити рачун, можда је погрешна лозинка", 138 | "remove_success":"Успешно уклоњено", 139 | "create_success":"Створено успешно", 140 | "save":"Молимо вас да сачувате кључеве или приватни кључ и не делите никоме!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/su.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"ngeceskeun", 3 | "cancel":"dibolaykeun", 4 | "dialog_tit":"pas", 5 | "close":"nutup", 6 | "confirm_you_active":"Mangga pastikeun operasi anjeun", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"imah", 12 | "transfer":"mindahkeun", 13 | "contacts":"hubungan", 14 | "setting":"nyetél", 15 | "total":"total" 16 | }, 17 | "page_setting":{ 18 | "tit":"nyetél", 19 | "lang":"basa", 20 | "select":"Mangga pilih" 21 | }, 22 | "page_contacts":{ 23 | "tit":"hubungan", 24 | "add_dialog":"Nambahkeun kontak", 25 | 26 | "add_cont":{ 27 | "tit":"Lebetkeun inpo kontak", 28 | "tag":"Tag", 29 | "address":"hubungan", 30 | "tag_placeholder":"Mangga lebetkeun catetan labél kontak urang", 31 | "address_placeholder":"Mangga lebetkeun dina Akun kontak" 32 | }, 33 | "delete_dialog":{ 34 | "title":"Anjeun nyoplokkeun" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"Tuliskeun ngaran akun", 38 | "no_address":"Mangga lebetkeun alamat akun", 39 | "exist":"Kontak geus aya," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"Hurungkeun kaluar", 44 | "to_address":"kana", 45 | "amount":"duit", 46 | "send_all":"Kirim sadaya", 47 | "remark":"nyarios", 48 | "fees":"waragad", 49 | "total":"total", 50 | "select":"Mangga pilih", 51 | "no_account_info":"No Rekening, mangga jieun rekening atawa impor", 52 | "contacts_dig":{ 53 | "select_placeholder":"Mangga pilih" 54 | }, 55 | "confirm_dia":{ 56 | "title":"Mangga mastikeun", 57 | "enter_passworld_tit":"Mangga lebetkeun sandi anjeun", 58 | "enter_passworld_place":"Mangga lebetkeun sandi anjeun" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"resolusi dompét gagal, nya meureun sandi salah", 62 | "send_success":"Kirim surélék ayaan", 63 | "send_error":"urus gagal: cék ningali lamun aya cukup kasaimbangan sarta panambang fee" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"Rékam urus", 68 | "transfer_log_null":"Taya transaksi", 69 | 70 | "active_icon":{ 71 | "go_transfer":"initiate mindahkeun", 72 | "import_keystore":"Keystore", 73 | "qrcode":"Kode dua diménsi" 74 | }, 75 | "edit_dia":{ 76 | "tit":"Edit Catetan", 77 | "subtit":"Pikeun akun Anjeun nandaan nyarios a" 78 | }, 79 | "keystore":{ 80 | "tit":"Nyadangkeun keystore nu", 81 | "copy":"salinan", 82 | "download":"download keystore" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"Alamat geus ditiron", 86 | "key_copy_success":"ditiron hasil" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"rekening impor", 91 | "add_account":"akun anyar", 92 | "acc":"rekening", 93 | "create_dia":{ 94 | "create_tit":"Jieun akun", 95 | "backup_tit":"Nyadangkeun akun anyar Anjeun", 96 | 97 | "create_tag":"rekening Ngaran", 98 | "create_pwd":"sandi", 99 | "create_repwd":"Tegeskeun deui kecap akses", 100 | 101 | "placeholder_tag":"Set ngaran akun", 102 | "placeholder_pwd":"Set sandi akun", 103 | "placeholder_repwd":"Pastikeun sandi akun", 104 | "strong_password":"Asupkeun sandi kuat, sahenteuna dalapan", 105 | 106 | "account_address":"rekening", 107 | "account_privateKey":"konci swasta", 108 | "account_download_keystore":"Download keystore file" 109 | }, 110 | "import_dia":{ 111 | "tit":"rekening impor", 112 | "select_type":"Mangga pilih modeu Impor", 113 | "type_private":"konci swasta", 114 | "type_keystore":"keystore", 115 | 116 | "placeholder_private":"Mangga nempelkeun tombol swasta didieu", 117 | "placeholder_keystore":"Mangga keystore file kana dieu", 118 | 119 | "input_pwd":"Asupkeun kecep akses", 120 | "placeholder_pwd":"Mangga lebetkeun sandi akun" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"Anjeun yakin rék ngaleupaskeun?", 125 | "remove_confrim":"Kuring yakin ngaleupaskeun", 126 | "backup":"Pastikeun akun nu geus dicadangkeun keur ngahindarkeun karuksakan sipat" 127 | }, 128 | "msg_info":{ 129 | "exist":"Akun ieu geus aya, nami anu", 130 | "enter_password":"Mangga lebetkeun sandi anjeun", 131 | "incons_password":"Kecap akses teu cocog", 132 | "error":"kasalahan:", 133 | "imported_success":"Kasuksesan file Impor", 134 | "enter_private":"Mangga lebetkeun konci", 135 | "error_private":"Rekening impor gagal, kasalahan bisa jadi konci", 136 | "enter_keystore":"Mangga ngimpor file keystore", 137 | "error_password":"Rekening impor gagal, nya meureun sandi salah", 138 | "remove_success":"dipupus junun", 139 | "create_success":"nyieun ayaan", 140 | "save":"Mangga ngahemat keystore Anjeun atawa swasta, teu babagi kalawan saha!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/th.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"ยืนยัน", 3 | "cancel":"ยกเลิก", 4 | "dialog_tit":"รวดเร็ว", 5 | "close":"ใกล้", 6 | "confirm_you_active":"โปรดยืนยันการดำเนินการของคุณ", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"บ้าน", 12 | "transfer":"โอน", 13 | "contacts":"ติดต่อ", 14 | "setting":"จัดตั้งขึ้น", 15 | "total":"ทั้งหมด" 16 | }, 17 | "page_setting":{ 18 | "tit":"จัดตั้งขึ้น", 19 | "lang":"ภาษา", 20 | "select":"โปรดเลือก" 21 | }, 22 | "page_contacts":{ 23 | "tit":"ติดต่อ", 24 | "add_dialog":"เพิ่มผู้ติดต่อ", 25 | 26 | "add_cont":{ 27 | "tit":"ป้อนข้อมูลการติดต่อ", 28 | "tag":"แท็ก", 29 | "address":"ติดต่อ", 30 | "tag_placeholder":"โปรดป้อนแท็กความคิดเห็นของผู้ติดต่อ", 31 | "address_placeholder":"โปรดป้อนบัญชีผู้ติดต่อ" 32 | }, 33 | "delete_dialog":{ 34 | "title":"คุณกำลังนำออก" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"โปรดป้อนชื่อบัญชี", 38 | "no_address":"โปรดป้อนที่อยู่ของบัญชี", 39 | "exist":"การติดต่อนี้มีอยู่แล้ว" 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"โอนออก", 44 | "to_address":"เข้าไป", 45 | "amount":"เงิน", 46 | "send_all":"ส่งทั้งหมด", 47 | "remark":"คำพูด", 48 | "fees":"ค่าเล่าเรียน", 49 | "total":"ทั้งหมด", 50 | "select":"โปรดเลือก", 51 | "no_account_info":"ไม่มีบัญชีโปรดสร้างหรือนำเข้าบัญชี", 52 | "contacts_dig":{ 53 | "select_placeholder":"โปรดเลือก" 54 | }, 55 | "confirm_dia":{ 56 | "title":"โปรดยืนยัน", 57 | "enter_passworld_tit":"โปรดป้อนรหัสผ่านของคุณ", 58 | "enter_passworld_place":"โปรดป้อนรหัสผ่านของคุณ" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"การแยกวิเคราะห์ Wallet ไม่สำเร็จอาจเป็นข้อผิดพลาดเกี่ยวกับรหัสผ่าน", 62 | "send_success":"ส่งความสำเร็จ", 63 | "send_error":"การทำธุรกรรมล้มเหลว: โปรดตรวจสอบว่ามียอดเงินคงเหลือและค่าขุดแร่เพียงพอหรือไม่" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"ประวัติการทำธุรกรรม", 68 | "transfer_log_null":"ไม่มีประวัติการทำธุรกรรม", 69 | 70 | "active_icon":{ 71 | "go_transfer":"เริ่มการถ่ายโอน", 72 | "import_keystore":"keystore", 73 | "qrcode":"รหัส QR" 74 | }, 75 | "edit_dia":{ 76 | "tit":"แก้ไขบันทึก", 77 | "subtit":"ทำเครื่องหมายบันทึกสำหรับบัญชีของคุณ" 78 | }, 79 | "keystore":{ 80 | "tit":"สำรองสตาร์ทคีย์", 81 | "copy":"สำเนา", 82 | "download":"ดาวน์โหลด keystore" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"คัดลอกที่อยู่แล้ว", 86 | "key_copy_success":"คัดลอกเรียบร้อยแล้ว" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"นำเข้าบัญชี", 91 | "add_account":"บัญชีใหม่", 92 | "acc":"บัญชี", 93 | "create_dia":{ 94 | "create_tit":"สร้างบัญชี", 95 | "backup_tit":"สำรองข้อมูลบัญชีใหม่ของคุณ", 96 | 97 | "create_tag":"ชื่อบัญชี", 98 | "create_pwd":"ตั้งรหัสผ่าน", 99 | "create_repwd":"ยืนยันรหัสผ่าน", 100 | 101 | "placeholder_tag":"โปรดตั้งชื่อบัญชี", 102 | "placeholder_pwd":"โปรดตั้งรหัสผ่านบัญชี", 103 | "placeholder_repwd":"โปรดยืนยันรหัสผ่านบัญชี", 104 | "strong_password":"ป้อนรหัสผ่านที่มีความยาวอย่างน้อย 8 หลัก", 105 | 106 | "account_address":"บัญชี", 107 | "account_privateKey":"คีย์ส่วนตัว", 108 | "account_download_keystore":"ดาวน์โหลดไฟล์ keystore" 109 | }, 110 | "import_dia":{ 111 | "tit":"นำเข้าบัญชี", 112 | "select_type":"โปรดเลือกวิธีการนำเข้า", 113 | "type_private":"คีย์ส่วนตัว", 114 | "type_keystore":"เก็บคีย์", 115 | 116 | "placeholder_private":"โปรดวางคีย์ส่วนตัวที่นี่", 117 | "placeholder_keystore":"โปรดลากไฟล์ keystore ที่นี่", 118 | 119 | "input_pwd":"ป้อนรหัสผ่าน", 120 | "placeholder_pwd":"โปรดป้อนรหัสผ่านบัญชีของคุณ" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"คุณแน่ใจหรือไม่ว่าต้องการนำออก", 125 | "remove_confrim":"ฉันแน่ใจว่าจะลบออก", 126 | "backup":"โปรดตรวจสอบให้แน่ใจว่าบัญชีได้รับการสำรองเพื่อหลีกเลี่ยงความเสียหายต่อทรัพย์สิน" 127 | }, 128 | "msg_info":{ 129 | "exist":"บัญชีนี้มีอยู่แล้วชื่อคือ", 130 | "enter_password":"โปรดป้อนรหัสผ่านของคุณ", 131 | "incons_password":"รหัสผ่านที่ป้อนสองครั้งไม่สอดคล้องกัน", 132 | "error":"ข้อผิดพลาด:", 133 | "imported_success":"นำเข้าไฟล์สำเร็จ", 134 | "enter_private":"โปรดป้อนคีย์", 135 | "error_private":"ไม่สามารถนำเข้าบัญชีได้อาจเป็นคีย์ที่ไม่ถูกต้อง", 136 | "enter_keystore":"โปรดนำเข้าไฟล์ keystore ก่อน", 137 | "error_password":"ไม่สามารถนำเข้าบัญชีอาจเป็นรหัสผ่านผิด", 138 | "remove_success":"นำออกเรียบร้อยแล้ว", 139 | "create_success":"สร้างเรียบร้อยแล้ว", 140 | "save":"โปรดบันทึกคีย์หรือคีย์ส่วนตัวของคุณและอย่าแชร์คีย์กับบุคคลอื่น!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/tr.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"onaylamak", 3 | "cancel":"iptal edildi", 4 | "dialog_tit":"çabuk", 5 | "close":"yakın", 6 | "confirm_you_active":"Lütfen operasyonunuzu onaylayın", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"ev", 12 | "transfer":"transfer", 13 | "contacts":"temas", 14 | "setting":"kurmak", 15 | "total":"toplam" 16 | }, 17 | "page_setting":{ 18 | "tit":"kurmak", 19 | "lang":"dil", 20 | "select":"Seçiniz" 21 | }, 22 | "page_contacts":{ 23 | "tit":"temas", 24 | "add_dialog":"Bir kişi ekle", 25 | 26 | "add_cont":{ 27 | "tit":"İletişim bilgilerini giriniz", 28 | "tag":"etiket", 29 | "address":"temas", 30 | "tag_placeholder":"Lütfen kişinin yorum etiketini girin", 31 | "address_placeholder":"Lütfen kişi hesabını giriniz" 32 | }, 33 | "delete_dialog":{ 34 | "title":"Sen kaldırıyorsun" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"Lütfen hesap adını giriniz", 38 | "no_address":"Lütfen hesap adresini giriniz", 39 | "exist":"Kişi zaten var," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"Transfer", 44 | "to_address":"içine", 45 | "amount":"para", 46 | "send_all":"Tümünü gönder", 47 | "remark":"düşünce", 48 | "fees":"harç", 49 | "total":"toplam", 50 | "select":"Seçiniz", 51 | "no_account_info":"Hesap yok, lütfen hesabı oluştur veya içe aktar", 52 | "contacts_dig":{ 53 | "select_placeholder":"Seçiniz" 54 | }, 55 | "confirm_dia":{ 56 | "title":"Lütfen onaylayın", 57 | "enter_passworld_tit":"Lütfen şifrenizi giriniz", 58 | "enter_passworld_place":"Lütfen şifrenizi giriniz" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"Cüzdan ayrıştırma işlemi başarısız oldu, şifre hatası olabilir", 62 | "send_success":"Başarı gönder", 63 | "send_error":"İşlem başarısız oldu: Lütfen yeterli bakiye ve maden ücreti olup olmadığını kontrol edin" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"İşlem geçmişi", 68 | "transfer_log_null":"İşlem geçmişi yok", 69 | 70 | "active_icon":{ 71 | "go_transfer":"Aktarımı başlat", 72 | "import_keystore":"keystore", 73 | "qrcode":"QR kodu" 74 | }, 75 | "edit_dia":{ 76 | "tit":"Notu değiştir", 77 | "subtit":"Hesabınız için bir notu işaretle" 78 | }, 79 | "keystore":{ 80 | "tit":"Anahtar deposunu yedekle", 81 | "copy":"kopya", 82 | "download":"Anahtar deposu indir" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"Adres kopyalandı", 86 | "key_copy_success":"Başarıyla kopyalandı" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"İthalat hesabı", 91 | "add_account":"Yeni hesap", 92 | "acc":"hesap", 93 | "create_dia":{ 94 | "create_tit":"Bir hesap oluştur", 95 | "backup_tit":"Yeni hesabınızı yedekleyin", 96 | 97 | "create_tag":"Hesap adı", 98 | "create_pwd":"Şifre ayarla", 99 | "create_repwd":"Şifreyi onayla", 100 | 101 | "placeholder_tag":"Lütfen hesap adını giriniz", 102 | "placeholder_pwd":"Lütfen hesap şifresini ayarla", 103 | "placeholder_repwd":"Lütfen hesap şifresini onaylayın", 104 | "strong_password":"Güçlü bir şifre girin, en az 8 basamak", 105 | 106 | "account_address":"hesap", 107 | "account_privateKey":"Özel anahtar", 108 | "account_download_keystore":"Anahtar deposu dosyasını indir" 109 | }, 110 | "import_dia":{ 111 | "tit":"İthalat hesabı", 112 | "select_type":"Lütfen ithalat yöntemini seçiniz", 113 | "type_private":"Özel anahtar", 114 | "type_keystore":"deposu", 115 | 116 | "placeholder_private":"Lütfen özel anahtarı buraya yapıştırın", 117 | "placeholder_keystore":"Lütfen anahtar deposu dosyasını buraya sürükleyin", 118 | 119 | "input_pwd":"Şifre girin", 120 | "placeholder_pwd":"Lütfen hesap şifrenizi girin" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"Onu kaldırmak istediğinden emin misin?", 125 | "remove_confrim":"Çıkarmak için eminim", 126 | "backup":"Lütfen mülk hasarını önlemek için hesabın yedeklendiğinden emin olun." 127 | }, 128 | "msg_info":{ 129 | "exist":"Bu hesap zaten var, isim", 130 | "enter_password":"Lütfen şifrenizi giriniz", 131 | "incons_password":"İki kez girilen şifre tutarsız", 132 | "error":"Hata:", 133 | "imported_success":"Dosyayı başarıyla içe aktar", 134 | "enter_private":"Lütfen anahtarı giriniz", 135 | "error_private":"Hesabı içe aktarılamadı, yanlış anahtar olabilir", 136 | "enter_keystore":"Lütfen önce anahtar deposu dosyasını içe aktarın", 137 | "error_password":"Hesap içe aktarılamadı, yanlış şifre olabilir", 138 | "remove_success":"Başarıyla kaldırıldı", 139 | "create_success":"Başarıyla oluşturuldu", 140 | "save":"Lütfen anahtar deponuzu veya özel anahtarınızı kaydedin ve kimseyle paylaşmayın!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/yo.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"Ijẹrisi", 3 | "cancel":"Cancellation", 4 | "dialog_tit":"Gbọ", 5 | "close":"Ti pa", 6 | "confirm_you_active":"Jọwọ jẹrisi isẹ rẹ", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"Ile", 12 | "transfer":"Gbigbe lọ", 13 | "contacts":"Awọn olubasọrọ", 14 | "setting":"Eto", 15 | "total":"Lapapọ" 16 | }, 17 | "page_setting":{ 18 | "tit":"Eto", 19 | "lang":"Ede", 20 | "select":"Jọwọ yan" 21 | }, 22 | "page_contacts":{ 23 | "tit":"Awọn olubasọrọ", 24 | "add_dialog":"Fi olubasọrọ kun", 25 | 26 | "add_cont":{ 27 | "tit":"Tẹ alaye olubasọrọ", 28 | "tag":"Awọn afiwe", 29 | "address":"Awọn olubasọrọ", 30 | "tag_placeholder":"Jowo tẹ ami idaniloju olubasọrọ naa", 31 | "address_placeholder":"Jọwọ tẹ iroyin olubasọrọ sii" 32 | }, 33 | "delete_dialog":{ 34 | "title":"O n yọ kuro" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"Jowo tẹ orukọ iroyin naa", 38 | "no_address":"Jọwọ tẹ adirẹsi adirẹsi sii", 39 | "exist":"Olubasọrọ naa ti wa tẹlẹ," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"Gbe jade", 44 | "to_address":"Sinu", 45 | "amount":"Iye", 46 | "send_all":"Firanṣẹ gbogbo", 47 | "remark":"Akiyesi", 48 | "fees":"Owo sisan", 49 | "total":"Lapapọ", 50 | "select":"Jọwọ yan", 51 | "no_account_info":"Ko si iroyin, jọwọ ṣẹda tabi gbe iroyin wọle", 52 | "contacts_dig":{ 53 | "select_placeholder":"Jọwọ yan" 54 | }, 55 | "confirm_dia":{ 56 | "title":"Jọwọ jẹrisi", 57 | "enter_passworld_tit":"Jọwọ tẹ ọrọigbaniwọle rẹ sii", 58 | "enter_passworld_place":"Jọwọ tẹ ọrọigbaniwọle rẹ sii" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"Apamọwọ ti kuna, o le jẹ aṣiṣe aṣínà kan", 62 | "send_success":"Firanṣẹ aseyori", 63 | "send_error":"Ti kuna iṣẹ-ṣiṣe: Jọwọ ṣayẹwo ti o ba to iwontunwonsi ati iye owo miner" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"Itan iṣowo", 68 | "transfer_log_null":"Ko si idunadura itan", 69 | 70 | "active_icon":{ 71 | "go_transfer":"Bẹrẹ gbigbe", 72 | "import_keystore":"Atilẹju ọja", 73 | "qrcode":"QR koodu" 74 | }, 75 | "edit_dia":{ 76 | "tit":"Ṣe akọsilẹ atunṣe", 77 | "subtit":"Ṣe akọsilẹ akọsilẹ kan fun akọọlẹ rẹ" 78 | }, 79 | "keystore":{ 80 | "tit":"Ṣe afẹyinti ile-iṣẹ bọtini", 81 | "copy":"Duplicate", 82 | "download":"Gba awọn oju-iwe ayelujara" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"Adirẹsi ti dakọ", 86 | "key_copy_success":"Ti ṣe ayẹwo daradara" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"Ṣe akọọlẹ akọọlẹ", 91 | "add_account":"Iroyin titun", 92 | "acc":"Iroyin", 93 | "create_dia":{ 94 | "create_tit":"Ṣẹda iroyin kan", 95 | "backup_tit":"Ṣe afẹyinti iroyin titun rẹ", 96 | 97 | "create_tag":"Orukọ iroyin", 98 | "create_pwd":"Ṣeto ọrọigbaniwọle", 99 | "create_repwd":"Jẹrisi ọrọ igbaniwọle", 100 | 101 | "placeholder_tag":"Jowo ṣeto orukọ iroyin", 102 | "placeholder_pwd":"Jowo ṣeto ọrọ igbaniwọle iroyin", 103 | "placeholder_repwd":"Jọwọ jẹrisi ọrọigbaniwọle iroyin", 104 | "strong_password":"Tẹ ọrọigbaniwọle to lagbara, o kere awọn nọmba mẹjọ", 105 | 106 | "account_address":"Iroyin", 107 | "account_privateKey":"Bọtini aladani", 108 | "account_download_keystore":"Gba awọn faili keystore" 109 | }, 110 | "import_dia":{ 111 | "tit":"Ṣe akọọlẹ akọọlẹ", 112 | "select_type":"Jowo yan ọna gbigbe wọle", 113 | "type_private":"Bọtini aladani", 114 | "type_keystore":"Atilẹju ọja", 115 | 116 | "placeholder_private":"Jowo pa bọtini ikọkọ nihin", 117 | "placeholder_keystore":"Jowo fa faili oju-iwe bọtini ni ibi", 118 | 119 | "input_pwd":"Tẹ ọrọigbaniwọle sii", 120 | "placeholder_pwd":"Jowo tẹ ọrọigbaniwọle igbaniwọle rẹ" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"Ṣe o da ọ loju pe o fẹ yọ kuro?", 125 | "remove_confrim":"Mo daju lati yọ kuro", 126 | "backup":"Jọwọ rii daju pe iroyin ti ṣe afẹyinti lati yago fun bibajẹ ohun-ini" 127 | }, 128 | "msg_info":{ 129 | "exist":"Iroyin yii wa tẹlẹ, orukọ naa jẹ", 130 | "enter_password":"Jọwọ tẹ ọrọigbaniwọle rẹ sii", 131 | "incons_password":"Ọrọigbaniwọle ti tẹ lẹẹmeji jẹ aisedede", 132 | "error":"Aṣiṣe:", 133 | "imported_success":"Faijade faili ni ifijišẹ", 134 | "enter_private":"Jowo tẹ bọtini naa", 135 | "error_private":"Ko kùn lati gbe akọọlẹ wọle, o le jẹ bọtini ti ko tọ", 136 | "enter_keystore":"Jọwọ gbe faili faili bọtini ni akọkọ", 137 | "error_password":"Ti kùnà lati gbe iroyin wọle, o le jẹ ọrọigbaniwọle aṣiṣe", 138 | "remove_success":"Pa kuro ni ifijišẹ", 139 | "create_success":"Ṣẹda ni ifijišẹ", 140 | "save":"Jowo fi oju-ipamọ bọtini rẹ tabi bọtini ikọkọ ti o ko pin pẹlu ẹnikẹni!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/zh-CN.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"确认", 3 | "cancel":"取消", 4 | "dialog_tit":"提示", 5 | "close":"关闭", 6 | "confirm_you_active":"请确认您的操作", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"首页", 12 | "transfer":"转账", 13 | "contacts":"联系人", 14 | "setting":"设置", 15 | "total":"合计" 16 | }, 17 | "page_setting":{ 18 | "tit":"设置", 19 | "lang":"语言", 20 | "select":"请选择" 21 | }, 22 | "page_contacts":{ 23 | "tit":"联系人", 24 | "add_dialog":"添加联系人", 25 | 26 | "add_cont":{ 27 | "tit":"输入联系人信息", 28 | "tag":"标签", 29 | "address":"联系人", 30 | "tag_placeholder":"请输入联系人的备注标签", 31 | "address_placeholder":"请输入联系人账户" 32 | }, 33 | "delete_dialog":{ 34 | "title":"您正在移除" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"请输入账户名称", 38 | "no_address":"请输入账户地址", 39 | "exist":"联系人已经存在," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"转出", 44 | "to_address":"转入", 45 | "amount":"金额", 46 | "send_all":"发送全部", 47 | "remark":"备注", 48 | "fees":"手续费", 49 | "total":"合计", 50 | "select":"请选择", 51 | "no_account_info":"暂无账号,请创建或者导入账号", 52 | "contacts_dig":{ 53 | "select_placeholder":"请选择" 54 | }, 55 | "confirm_dia":{ 56 | "title":"请确认", 57 | "enter_passworld_tit":"请输入密码", 58 | "enter_passworld_place":"请输入密码" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"钱包解析失败,可能是密码错误", 62 | "send_success":"发送成功", 63 | "send_error":"交易失败:请检查是否有足量余额和矿工费" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"交易记录", 68 | "transfer_log_null":"暂无交易记录", 69 | 70 | "active_icon":{ 71 | "go_transfer":"发起转账", 72 | "import_keystore":"Keystore", 73 | "qrcode":"二维码" 74 | }, 75 | "edit_dia":{ 76 | "tit":"修改备注", 77 | "subtit":"为您的账户标记一个备注" 78 | }, 79 | "keystore":{ 80 | "tit":"备份keystore", 81 | "copy":"复制", 82 | "download":"下载keystore" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"地址已经复制", 86 | "key_copy_success":"复制成功" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"导入账号", 91 | "add_account":"新建账号", 92 | "acc":"账户", 93 | "create_dia":{ 94 | "create_tit":"创建账户", 95 | "backup_tit":"备份您的新账户", 96 | 97 | "create_tag":"账户名称", 98 | "create_pwd":"设置密码", 99 | "create_repwd":"确认密码", 100 | 101 | "placeholder_tag":"请设置账户名称", 102 | "placeholder_pwd":"请设置账户密码", 103 | "placeholder_repwd":"请确认账户密码", 104 | "strong_password":"输入一个强密码,至少8位", 105 | 106 | "account_address":"账户", 107 | "account_privateKey":"私钥", 108 | "account_download_keystore":"下载keystore文件" 109 | }, 110 | "import_dia":{ 111 | "tit":"导入账户", 112 | "select_type":"请选择导入方式", 113 | "type_private":"私钥", 114 | "type_keystore":"keystore", 115 | 116 | "placeholder_private":"请将私钥粘贴在此处", 117 | "placeholder_keystore":"请将keystore文件拖入此处", 118 | 119 | "input_pwd":"输入密码", 120 | "placeholder_pwd":"请输入账户密码" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"你确定要移除吗?", 125 | "remove_confrim":"我确定移除", 126 | "backup":"请确定该账号已经备份,避免财产损失" 127 | }, 128 | "msg_info":{ 129 | "exist":"此账户已经存在,名称是", 130 | "enter_password":"请输入密码", 131 | "incons_password":"两次输入的密码不一致", 132 | "error":"错误:", 133 | "imported_success":"导入文件成功", 134 | "enter_private":"请输入密钥", 135 | "error_private":"账户导入失败,可能是密钥错误", 136 | "enter_keystore":"请先导入keystore文件", 137 | "error_password":"账户导入失败,可能是密码错误", 138 | "remove_success":"移除成功", 139 | "create_success":"创建成功", 140 | "save":"请保存你的keystore或者私钥,不要分享给任何人!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/i18n/zh-TW.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirm":"確認", 3 | "cancel":"取消", 4 | "dialog_tit":"提示", 5 | "close":"關閉", 6 | "confirm_you_active":"請確認您的操作", 7 | "unit":{ 8 | "czr":"CZR" 9 | }, 10 | "model_header":{ 11 | "home":"首頁", 12 | "transfer":"轉賬", 13 | "contacts":"聯繫人", 14 | "setting":"設置", 15 | "total":"合計" 16 | }, 17 | "page_setting":{ 18 | "tit":"設置", 19 | "lang":"語言", 20 | "select":"請選擇" 21 | }, 22 | "page_contacts":{ 23 | "tit":"聯繫人", 24 | "add_dialog":"添加聯繫人", 25 | 26 | "add_cont":{ 27 | "tit":"輸入聯繫人信息", 28 | "tag":"標籤", 29 | "address":"聯繫人", 30 | "tag_placeholder":"請輸入聯繫人的備註標籤", 31 | "address_placeholder":"請輸入聯繫人賬戶" 32 | }, 33 | "delete_dialog":{ 34 | "title":"您正在移除" 35 | }, 36 | "msg_info":{ 37 | "no_tag":"請輸入賬戶名稱", 38 | "no_address":"請輸入賬戶地址", 39 | "exist":"聯繫人已經存在," 40 | } 41 | }, 42 | "page_transfer":{ 43 | "from_address":"轉出", 44 | "to_address":"轉入", 45 | "amount":"金額", 46 | "send_all":"發送全部", 47 | "remark":"備註", 48 | "fees":"手續費", 49 | "total":"合計", 50 | "select":"請選擇", 51 | "no_account_info":"暫無賬號,請創建或者導入賬號", 52 | "contacts_dig":{ 53 | "select_placeholder":"請選擇" 54 | }, 55 | "confirm_dia":{ 56 | "title":"請確認", 57 | "enter_passworld_tit":"請輸入密碼", 58 | "enter_passworld_place":"請輸入密碼" 59 | }, 60 | "msg_info":{ 61 | "decrypt_err":"錢包解析失敗,可能是密碼錯誤", 62 | "send_success":"發送成功", 63 | "send_error":"交易失敗:請檢查是否有足量餘額和礦工費" 64 | } 65 | }, 66 | "page_account":{ 67 | "transfer_log":"交易記錄", 68 | "transfer_log_null":"暫無交易記錄", 69 | 70 | "active_icon":{ 71 | "go_transfer":"發起轉賬", 72 | "import_keystore":"Keystore", 73 | "qrcode":"二維碼" 74 | }, 75 | "edit_dia":{ 76 | "tit":"修改備註", 77 | "subtit":"為您的賬戶標記一個備註" 78 | }, 79 | "keystore":{ 80 | "tit":"備份keystore", 81 | "copy":"複製", 82 | "download":"下載keystore" 83 | }, 84 | "msg_info":{ 85 | "ads_copy_success":"地址已經復制", 86 | "key_copy_success":"複製成功" 87 | } 88 | }, 89 | "page_home":{ 90 | "import_account":"導入賬號", 91 | "add_account":"新建賬號", 92 | "acc":"賬戶", 93 | "create_dia":{ 94 | "create_tit":"創建賬戶", 95 | "backup_tit":"備份您的新賬戶", 96 | 97 | "create_tag":"賬戶名稱", 98 | "create_pwd":"設置密碼", 99 | "create_repwd":"確認密碼", 100 | 101 | "placeholder_tag":"請設置賬戶名稱", 102 | "placeholder_pwd":"請設置賬戶密碼", 103 | "placeholder_repwd":"請確認賬戶密碼", 104 | "strong_password":"輸入一個強密碼,至少8位", 105 | 106 | "account_address":"賬戶", 107 | "account_privateKey":"私鑰", 108 | "account_download_keystore":"下載keystore文件" 109 | }, 110 | "import_dia":{ 111 | "tit":"導入賬戶", 112 | "select_type":"請選擇導入方式", 113 | "type_private":"私鑰", 114 | "type_keystore":"keystore", 115 | 116 | "placeholder_private":"請將私鑰粘貼在此處", 117 | "placeholder_keystore":"請將keystore文件拖入此處", 118 | 119 | "input_pwd":"輸入密碼", 120 | "placeholder_pwd":"請輸入賬戶密碼" 121 | 122 | }, 123 | "remove_dia":{ 124 | "tit":"你確定要移除嗎?", 125 | "remove_confrim":"我確定移除", 126 | "backup":"請確定該賬號已經備份,避免財產損失" 127 | }, 128 | "msg_info":{ 129 | "exist":"此賬戶已經存在,名稱是", 130 | "enter_password":"請輸入密碼", 131 | "incons_password":"兩次輸入的密碼不一致", 132 | "error":"錯誤:", 133 | "imported_success":"導入文件成功", 134 | "enter_private":"請輸入密鑰", 135 | "error_private":"賬戶導入失敗,可能是密鑰錯誤", 136 | "enter_keystore":"請先導入keystore文件", 137 | "error_password":"賬戶導入失敗,可能是密碼錯誤", 138 | "remove_success":"移除成功", 139 | "create_success":"創建成功", 140 | "save":"請保存你的keystore或者私鑰,不要分享給任何人!" 141 | } 142 | } 143 | 144 | } -------------------------------------------------------------------------------- /src/renderer/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App' 3 | import router from './router' 4 | import ElementUI from 'element-ui'; 5 | import 'element-ui/lib/theme-chalk/index.css'; 6 | 7 | import Web3 from 'web3' 8 | 9 | //Introducing db database 10 | import db from '../datastore/index' 11 | 12 | //Introducing languages that need support 13 | import VueI18n from 'vue-i18n' 14 | import languges from '../../i18n/languges_conf' 15 | 16 | Vue.use(VueI18n); 17 | Vue.use(ElementUI); 18 | if (!process.env.IS_WEB) Vue.use(require('vue-electron')) 19 | 20 | // javascript lib 21 | let web3; 22 | if (typeof web3 !== 'undefined') { 23 | web3 = new Web3(web3.currentProvider); 24 | } else { 25 | //https://mainnet.infura.io/xxxxxxx 26 | //http://localhost:8545 27 | web3 = new Web3(new Web3.providers.HttpProvider("https://mainnet.infura.io/xxx")); 28 | } 29 | 30 | Vue.web3 = Vue.prototype.$web3 = web3 31 | // web3.eth.net.getNetworkType().then(type => {console.log('NetworkType', type)}) 32 | // web3.eth.isSyncing().then(data =>{console.log('isSyncing', data)}) 33 | 34 | Vue.prototype.$db = db 35 | 36 | // Loading i18 language 37 | const messages={}; 38 | for(const languge in languges){ 39 | messages[languge]=require("@/i18n/"+languge+".json"); 40 | } 41 | //Determine the user's language 42 | let locale =db.get('czr_setting.lang').value() ; 43 | const i18n = new VueI18n({ 44 | locale: locale ,// set locale 45 | messages, // set locale messages 46 | }); 47 | 48 | /* eslint-disable no-new */ 49 | Vue.config.productionTip = false 50 | new Vue({ 51 | el: '#app', 52 | router, 53 | i18n, 54 | render:h=>h(App) 55 | }) 56 | -------------------------------------------------------------------------------- /src/renderer/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Router from 'vue-router' 3 | import Home from '@/components/Home/Home' 4 | import Account from '@/components/Account/Account' 5 | import Contacts from '@/components/Contacts/Contacts' 6 | import Setting from '@/components/Setting/Setting' 7 | import Transfer from '@/components/Transfer/Transfer' 8 | 9 | Vue.use(Router) 10 | export default new Router({ 11 | routes: [ 12 | { 13 | path: '/', 14 | name: 'Home', 15 | component: Home 16 | }, 17 | { 18 | path: '/account/:id', 19 | name: 'Account', 20 | component: Account 21 | }, 22 | { 23 | path: '/contacts', 24 | name: 'Contacts', 25 | component: Contacts 26 | }, 27 | { 28 | path: '/transfer', 29 | name: 'Transfer', 30 | component: Transfer 31 | }, 32 | { 33 | path: '/setting', 34 | name: 'Setting', 35 | component: Setting 36 | } 37 | ] 38 | }) 39 | -------------------------------------------------------------------------------- /src/renderer/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | 4 | import modules from './modules' 5 | 6 | Vue.use(Vuex) 7 | 8 | export default new Vuex.Store({ 9 | modules, 10 | strict: process.env.NODE_ENV !== 'production' 11 | }) 12 | -------------------------------------------------------------------------------- /src/renderer/store/modules/Counter.js: -------------------------------------------------------------------------------- 1 | const state = { 2 | main: 0, 3 | lang:'' 4 | } 5 | 6 | const mutations = { 7 | DECREMENT_MAIN_COUNTER (state) { 8 | state.main-- 9 | }, 10 | INCREMENT_MAIN_COUNTER (state) { 11 | state.main++ 12 | } 13 | } 14 | 15 | const actions = { 16 | someAsyncTask ({ commit }) { 17 | // do something async 18 | commit('INCREMENT_MAIN_COUNTER') 19 | } 20 | } 21 | 22 | export default { 23 | state, 24 | mutations, 25 | actions 26 | } -------------------------------------------------------------------------------- /src/renderer/store/modules/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * The file enables `@/store/index.js` to import all vuex modules 3 | * in a one-shot manner. There should not be any reason to edit this file. 4 | */ 5 | 6 | const files = require.context('.', false, /\.js$/) 7 | const modules = {} 8 | 9 | files.keys().forEach(key => { 10 | if (key === './index.js') return 11 | modules[key.replace(/(\.\/|\.js)/g, '')] = files(key).default 12 | }) 13 | 14 | export default modules 15 | -------------------------------------------------------------------------------- /static/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/static/.gitkeep -------------------------------------------------------------------------------- /static/icons/256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/static/icons/256x256.png -------------------------------------------------------------------------------- /static/icons/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/static/icons/icon.icns -------------------------------------------------------------------------------- /static/icons/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/static/icons/icon.ico -------------------------------------------------------------------------------- /static/icons/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anbang/ethereum-wallet-by-electron-vue/c7fb82240e3e810dafc56cb50be4da7405b792d4/static/icons/logo.png -------------------------------------------------------------------------------- /web-read.md: -------------------------------------------------------------------------------- 1 | ### 可能需要的web3 2 | 3 | web3.isAddress(item.value) //检查给定的字符串是否是有效的Ethereum地址。它还将检查校验和,如果地址有大写和小写字母。 4 | web3.toChecksumAddress(address) //将大写或小写的Ethereum地址转换为校验和地址。 5 | 6 | web3.reset(true); //用来重置web3的状态,参数可以控制 web3.eth.isSyncing() 7 | 8 | web3.admin 9 | web3.(string, options) //返回值: 使用Keccak-256 SHA3算法哈希过的结果。 10 | String - 传入的需要使用Keccak-256 SHA3算法进行哈希运算的字符串。 11 | Object - 可选项设置。如果要解析的是hex格式的十六进制字符串。需要设置encoding为hex,因为JS中会默认忽略0x,如:{encoding: 'hex'} 12 | 13 | 14 | web3.isConnected() //检查到节点的连接是否存在 15 | web3.currentProvider) //当前所链接节点的属性 16 | { 17 | host: 'http://localhost:8545', 18 | timeout: 0, 19 | user: undefined, 20 | password: undefined 21 | } 22 | 23 | 24 | Web3.providers.HttpProvider("http://localhost:8545") //基于HTTP从Web3.providers链接节点 25 | 26 | web3.net.getPeerCount //异步获取 节点连上的其它以太坊节点的数量(对象是当前所连接的节点) 27 | 28 | web3.fromWei(value, 'ether')) 29 | web3.toWei(formValues.dailyLimitAmount, 'ether') 30 | 31 | 32 | ### eth 33 | 34 | web3.eth.getSyncing // web3.eth.syncing //正在sync的情况返回同步对象,(startingBlock、currentBlock、highestBlock),否则false; 35 | 36 | web3.eth.getBlock //获取区块对象(通过区块号或区块哈希值) 37 | 38 | ### 交易的 39 | 40 | web3.eth.getBalance //获得余额(指定区块下指定地址的,余额是BigNumber实例,单位为wei,区块不传,用defaultBlock设置的) 41 | web3.eth.estimateGas //模拟打包费 (获取一个模拟的call/transcation花费gas) 42 | web3.eth.sendTransaction //发送一个交易对象到网络,返回32字节的16进制格式的交易哈希串, 43 | //如果交易是一个合约创建,请使用web3.eth.getTransactionReceipt()在交易完成后获取合约的地址。 44 | web3.eth.getTransaction //获取交易对象(通过交易哈希值的) 45 | web3.eth.getTransactionReceipt // 获取一个交易的收据对象(通过交易的哈希),处于pending状态的交易,收据是不可用的。 46 | 47 | web3.eth.filter('latest') ////过滤对象,用来做事件监听的 48 | web3.eth.accounts[0]; //返回当前节点持有的帐户列表 49 | web3.eth.getStorageAt //获得存储的状态值 (某个地址指定位置的)。 50 | web3.eth.isSyncing //同步开始,更新,停止的回调函数方法; 51 | 52 | 53 | ### 合约的 54 | 55 | web3.eth.contract //创建一个Solidity的合约对象,用来在某个地址上初始化合约,一个合约对象 56 | web3.eth.contract(abiArray).at(address) //通过ABI和地址获取已部署的合约对象 57 | web3.eth.getCode //获取合约编译后的字节代码 (指定地址) 58 | web3.eth.compile.solidity //web3编译源码的方式 编译Solidity源代码 59 | 60 | 61 | 62 | 63 | 64 | --------------------------------------------------------------------------------