1
0
Fork 0
forked from lthn/blockchain

Merge branch 'release'

This commit is contained in:
cryptozoidberg 2019-09-08 15:09:45 +02:00
commit ac33fc4331
No known key found for this signature in database
GPG key ID: 22DEB97A54C6FDEC
228 changed files with 39825 additions and 2373 deletions

View file

@ -289,6 +289,40 @@ namespace file_io_utils
}
}
template<class t_string>
bool load_file_to_string(const t_string& path_to_file, std::string& target_str)
{
try
{
boost::filesystem::ifstream fstream;
//fstream.exceptions(std::ifstream::failbit | std::ifstream::badbit);
fstream.open(path_to_file, std::ios_base::binary | std::ios_base::in | std::ios::ate);
if (!fstream.good())
return false;
std::ifstream::pos_type file_size = fstream.tellg();
if (file_size > 1000000000)
return false;//don't get crazy
size_t file_size_t = static_cast<size_t>(file_size);
target_str.resize(file_size_t);
fstream.seekg(0, std::ios::beg);
fstream.read((char*)target_str.data(), target_str.size());
if (!fstream.good())
return false;
fstream.close();
return true;
}
catch (...)
{
return false;
}
}
/*
inline
bool load_form_handle(HANDLE hfile, std::string& str)
@ -338,38 +372,7 @@ namespace file_io_utils
}
inline
bool load_file_to_string(const std::string& path_to_file, std::string& target_str)
{
try
{
std::ifstream fstream;
//fstream.exceptions(std::ifstream::failbit | std::ifstream::badbit);
fstream.open(path_to_file, std::ios_base::binary | std::ios_base::in | std::ios::ate);
if (!fstream.good())
return false;
std::ifstream::pos_type file_size = fstream.tellg();
if(file_size > 1000000000)
return false;//don't go crazy
size_t file_size_t = static_cast<size_t>(file_size);
target_str.resize(file_size_t);
fstream.seekg (0, std::ios::beg);
fstream.read((char*)target_str.data(), target_str.size());
if (!fstream.good())
return false;
fstream.close();
return true;
}
catch(...)
{
return false;
}
}
#ifdef WIN32
typedef HANDLE native_filesystem_handle;

View file

@ -150,7 +150,7 @@ DISABLE_VS_WARNINGS(4100)
{std::stringstream ss________; ss________ << epee::log_space::log_singletone::get_prefix_entry() << x << std::endl;epee::log_space::log_singletone::do_log_message(ss________.str(), y, epee::log_space::console_color_default, true, log_name);}}
#define LOG_ERROR2(log_name, x) { \
std::stringstream ss________; ss________ << epee::log_space::log_singletone::get_prefix_entry() << "[ERROR] Location: " << std::endl << LOCATION_SS << epee::misc_utils::print_trace() << " Message:" << std::endl << x << std::endl; epee::log_space::log_singletone::do_log_message(ss________.str(), LOG_LEVEL_0, epee::log_space::console_color_red, true, log_name); LOCAL_ASSERT(0); epee::log_space::increase_error_count(LOG_DEFAULT_CHANNEL); }
std::stringstream ss________; ss________ << epee::log_space::log_singletone::get_prefix_entry() << "[ERROR] Location: " << std::endl << LOCATION_SS << epee::misc_utils::get_callstack() << " Message:" << std::endl << x << std::endl; epee::log_space::log_singletone::do_log_message(ss________.str(), LOG_LEVEL_0, epee::log_space::console_color_red, true, log_name); LOCAL_ASSERT(0); epee::log_space::increase_error_count(LOG_DEFAULT_CHANNEL); }
#define LOG_FRAME2(log_name, x, y) epee::log_space::log_frame frame(x, y, log_name)
@ -251,6 +251,21 @@ DISABLE_VS_WARNINGS(4100)
custom_code; \
}
#define CATCH_ENTRY_WITH_FORWARDING_EXCEPTION() } \
catch(const std::exception& ex) \
{ \
LOG_ERROR("Exception at [" << LOCATION_SS << "], what=" << ex.what()); \
throw std::runtime_error(std::string("[EXCEPTION FORWARDED]: ") + ex.what()); \
} \
catch(...) \
{ \
LOG_ERROR("Exception at [" << LOCATION_SS << "], generic unknown exception \"...\""); \
throw std::runtime_error("[EXCEPTION FORWARDED]"); \
}
#define NESTED_TRY_ENTRY() try { TRY_ENTRY();
#define NESTED_CATCH_ENTRY(location) \

View file

@ -113,7 +113,7 @@ namespace misc_utils
#include <execinfo.h>
#include <boost/core/demangle.hpp>
#endif
inline std::string print_trace()
inline std::string print_trace_default()
{
std::stringstream ss;
#if defined(__GNUC__)
@ -134,5 +134,33 @@ namespace misc_utils
#endif
return ss.str();
}
typedef std::string (stack_retrieving_function_t)();
//
// To get stack trace call it with the defaults.
//
inline std::string get_callstack(stack_retrieving_function_t* p_stack_retrieving_function_to_be_added = nullptr, bool remove_func = false)
{
static stack_retrieving_function_t* p_srf = nullptr;
if (remove_func)
{
p_srf = nullptr;
return "";
}
if (p_stack_retrieving_function_to_be_added != nullptr)
{
p_srf = p_stack_retrieving_function_to_be_added;
return "";
}
if (p_srf != nullptr)
return p_srf();
return print_trace_default();
}
}
}

View file

@ -126,7 +126,7 @@ namespace epee
t_result result_struct = AUTO_VAL_INIT(result_struct);
if( code <=0 )
{
LOG_PRINT_L2("BACKTRACE: " << ENDL << epee::misc_utils::print_trace());
LOG_PRINT_L2("BACKTRACE: " << ENDL << epee::misc_utils::get_callstack());
LOG_PRINT_L1("Failed to invoke command " << command << " return code " << code << "(" << epee::levin::get_err_descr(code) << ")context:" << print_connection_context(context));
TRY_ENTRY()
cb(code, result_struct, context);
@ -150,7 +150,7 @@ namespace epee
}, inv_timeout);
if( res <=0 )
{
LOG_PRINT_L2("BACKTRACE: " << ENDL << epee::misc_utils::print_trace());
LOG_PRINT_L2("BACKTRACE: " << ENDL << epee::misc_utils::get_callstack());
LOG_PRINT_L1("Failed to invoke command " << command << " return code " << res << "(" << epee::levin::get_err_descr(res) << ") conn_id=" << conn_id);
return false;
}

View file

@ -42,9 +42,8 @@ namespace zlib_helper
int ret = deflateInit(&zstream, Z_DEFAULT_COMPRESSION);
if(target.size())
{
result_packed_buff.resize(target.size()*2, 'X');
size_t estimated_output_size_max = deflateBound(&zstream, static_cast<uLong>(target.size()));
result_packed_buff.resize(estimated_output_size_max, 'X');
zstream.next_in = (Bytef*)target.data();
zstream.avail_in = (uInt)target.size();
@ -52,12 +51,10 @@ namespace zlib_helper
zstream.avail_out = (uInt)result_packed_buff.size();
ret = deflate(&zstream, Z_FINISH);
CHECK_AND_ASSERT_MES(ret>=0, false, "Failed to deflate. err = " << ret);
// as we allocated enough room for a signel pass avail_out should not be zero
CHECK_AND_ASSERT_MES(ret == Z_STREAM_END && zstream.avail_out != 0, false, "Failed to deflate. err = " << ret);
if(result_packed_buff.size() != zstream.avail_out)
result_packed_buff.resize(result_packed_buff.size()-zstream.avail_out);
result_packed_buff.resize(result_packed_buff.size() - zstream.avail_out);
result_packed_buff.erase(0, 2);
}

View file

@ -9,6 +9,7 @@
#include "support/attributes.h"
#include <stdint.h>
#include <bitset>
#ifdef __cplusplus
extern "C" {
@ -39,7 +40,7 @@ static inline uint32_t clz32(uint32_t x)
static inline uint32_t popcount32(uint32_t x)
{
return (uint32_t)__builtin_popcount(x);
return std::bitset<32>(x).count();
}
static inline uint32_t mul_hi32(uint32_t x, uint32_t y)

View file

@ -145,7 +145,11 @@ epoch_context_full* create_epoch_context(
char* const alloc_data = static_cast<char*>(std::calloc(1, alloc_size));
if (!alloc_data)
return nullptr; // Signal out-of-memory by returning null pointer.
{
LOG_CUSTOM_WITH_CALLSTACK("CRITICAL: std::calloc(" << alloc_size << ") failed in create_epoch_context()", 0);
return nullptr; // Signal out-of-memory by returning null pointer.
}
LOG_CUSTOM("context for epoch " << epoch_number << " allocated, size: " << alloc_size << " bytes", 0);
hash512* const light_cache = reinterpret_cast<hash512*>(alloc_data + context_alloc_size);
const hash256 epoch_seed = calculate_epoch_seed(epoch_number);
@ -373,6 +377,33 @@ search_result search(const epoch_context_full& context, const hash256& header_ha
}
return {};
}
custom_log_level_function*& access_custom_log_level_function()
{
static custom_log_level_function* p_custom_log_level_function = nullptr;
return p_custom_log_level_function;
}
custom_log_function*& access_custom_log_function()
{
static custom_log_function* p_custom_log_function = nullptr;
return p_custom_log_function;
}
int get_custom_log_level()
{
if (access_custom_log_level_function() != nullptr)
return access_custom_log_level_function()();
return -1;
}
void custom_log(const std::string& m, bool add_callstack)
{
if (access_custom_log_function() != nullptr)
access_custom_log_function()(m, add_callstack);
}
} // namespace ethash
using namespace ethash;
@ -434,6 +465,8 @@ void ethash_destroy_epoch_context_full(epoch_context_full* context) noexcept
void ethash_destroy_epoch_context(epoch_context* context) noexcept
{
LOG_CUSTOM("context for epoch " << context->epoch_number << " is about to be freed", 0);
context->~epoch_context();
std::free(context);
}

View file

@ -20,6 +20,8 @@
#include <cstdint>
#include <cstring>
#include <memory>
#include <string>
#include <sstream>
namespace ethash
{
@ -156,5 +158,34 @@ int find_epoch_number(const hash256& seed) noexcept;
const epoch_context& get_global_epoch_context(int epoch_number);
/// Get global shared epoch context with full dataset initialized.
const epoch_context_full& get_global_epoch_context_full(int epoch_number);
std::shared_ptr<epoch_context_full> get_global_epoch_context_full(int epoch_number);
typedef int (custom_log_level_function)();
typedef void (custom_log_function)(const std::string& m, bool add_callstack);
custom_log_level_function*& access_custom_log_level_function();
custom_log_function*& access_custom_log_function();
int get_custom_log_level();
void custom_log(const std::string& m, bool add_callstack);
#define LOG_CUSTOM(msg, level) \
{ \
if (level <= ethash::get_custom_log_level()) \
{ \
std::stringstream ss; \
ss << msg << std::endl; \
ethash::custom_log(ss.str(), false); \
} \
}
#define LOG_CUSTOM_WITH_CALLSTACK(msg, level) \
{ \
if (level <= ethash::get_custom_log_level()) \
{ \
std::stringstream ss; \
ss << msg << std::endl; \
ethash::custom_log(ss.str(), true); \
} \
}
} // namespace ethash

View file

@ -89,12 +89,12 @@ const epoch_context& get_global_epoch_context(int epoch_number)
return *thread_local_context;
}
const epoch_context_full& get_global_epoch_context_full(int epoch_number)
std::shared_ptr<epoch_context_full> get_global_epoch_context_full(int epoch_number)
{
// Check if local context matches epoch number.
if (!thread_local_context_full || thread_local_context_full->epoch_number != epoch_number)
update_local_context_full(epoch_number);
return *thread_local_context_full;
return thread_local_context_full;
}
} // namespace ethash

3
crowdin.yml Normal file
View file

@ -0,0 +1,3 @@
files:
- source: /**/src/gui/qt-daemon/html_source/src/assets/i18n/en.json
translation: /**/src/gui/qt-daemon/html_source/src/assets/i18n/%two_letters_code%.json

View file

@ -0,0 +1,179 @@
// Copyright (c) 2019 Zano Project
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#if defined(WIN32)
#define WIN32_LEAN_AND_MEAN 1
#ifndef NOMINMAX
#define NOMINMAX
#endif
#include <windows.h>
#include <Psapi.h>
#pragma comment(lib, "psapi.lib")
#pragma comment(lib, "dbghelp.lib")
#pragma pack( push, before_imagehlp, 8 )
#include <imagehlp.h>
#pragma pack( pop, before_imagehlp )
#include "include_base_utils.h"
#include "callstack_helper.h"
namespace
{
struct module_data
{
std::string image_name;
std::string module_name;
void *base_address;
DWORD load_size;
};
class get_mod_info
{
HANDLE process;
static const int buffer_length = 4096;
public:
get_mod_info(HANDLE h) : process(h) {}
module_data operator()(HMODULE module)
{
module_data ret;
char temp[buffer_length];
MODULEINFO mi;
GetModuleInformation(process, module, &mi, sizeof(mi));
ret.base_address = mi.lpBaseOfDll;
ret.load_size = mi.SizeOfImage;
GetModuleFileNameEx(process, module, temp, sizeof(temp));
ret.image_name = temp;
GetModuleBaseName(process, module, temp, sizeof(temp));
ret.module_name = temp;
std::vector<char> img(ret.image_name.begin(), ret.image_name.end());
std::vector<char> mod(ret.module_name.begin(), ret.module_name.end());
SymLoadModule64(process, 0, &img[0], &mod[0], (DWORD64)ret.base_address, ret.load_size);
return ret;
}
};
std::string get_symbol_undecorated_name(HANDLE process, DWORD64 address, std::stringstream& ss)
{
SYMBOL_INFO* sym;
static const int max_name_len = 1024;
std::vector<char> sym_buffer(sizeof(SYMBOL_INFO) + max_name_len, '\0');
sym = (SYMBOL_INFO *)sym_buffer.data();
sym->SizeOfStruct = sizeof(SYMBOL_INFO);
sym->MaxNameLen = max_name_len;
DWORD64 displacement;
if (!SymFromAddr(process, address, &displacement, sym))
return std::string("SymFromAddr failed1: ") + epee::string_tools::num_to_string_fast(GetLastError());
if (*sym->Name == '\0')
return std::string("SymFromAddr failed2: ") + epee::string_tools::num_to_string_fast(GetLastError());
/*
ss << " SizeOfStruct : " << sym->SizeOfStruct << ENDL;
ss << " TypeIndex : " << sym->TypeIndex << ENDL; // Type Index of symbol
ss << " Index : " << sym->Index << ENDL;
ss << " Size : " << sym->Size << ENDL;
ss << " ModBase : " << sym->ModBase << ENDL; // Base Address of module comtaining this symbol
ss << " Flags : " << sym->Flags << ENDL;
ss << " Value : " << sym->Value << ENDL; // Value of symbol, ValuePresent should be 1
ss << " Address : " << sym->Address << ENDL; // Address of symbol including base address of module
ss << " Register : " << sym->Register << ENDL; // register holding value or pointer to value
ss << " Scope : " << sym->Scope << ENDL; // scope of the symbol
ss << " Tag : " << sym->Tag << ENDL; // pdb classification
ss << " NameLen : " << sym->NameLen << ENDL; // Actual length of name
ss << " MaxNameLen : " << sym->MaxNameLen << ENDL;
ss << " Name[1] : " << &sym->Name << ENDL; // Name of symbol
*/
std::string und_name(max_name_len, '\0');
DWORD chars_written = UnDecorateSymbolName(sym->Name, &und_name.front(), max_name_len, UNDNAME_COMPLETE);
und_name.resize(chars_written);
return und_name;
}
} // namespace
namespace tools
{
std::string get_callstack_win_x64()
{
HANDLE h_process = GetCurrentProcess();
HANDLE h_thread = GetCurrentThread();
PCSTR user_search_path = NULL; // may be path to a pdb?
if (!SymInitialize(h_process, user_search_path, false))
return "<win callstack error 1>";
DWORD sym_options = SymGetOptions();
sym_options |= SYMOPT_LOAD_LINES | SYMOPT_UNDNAME;
SymSetOptions(sym_options);
DWORD cb_needed;
std::vector<HMODULE> module_handles(1);
EnumProcessModules(h_process, &module_handles[0], module_handles.size() * sizeof(HMODULE), &cb_needed);
module_handles.resize(cb_needed / sizeof(HMODULE));
EnumProcessModules(h_process, &module_handles[0], module_handles.size() * sizeof(HMODULE), &cb_needed);
std::vector<module_data> modules;
std::transform(module_handles.begin(), module_handles.end(), std::back_inserter(modules), get_mod_info(h_process));
void *base = modules[0].base_address;
CONTEXT context;
memset(&context, 0, sizeof context);
RtlCaptureContext( &context );
STACKFRAME64 frame;
memset(&frame, 0, sizeof frame);
frame.AddrPC.Offset = context.Rip;
frame.AddrPC.Mode = AddrModeFlat;
frame.AddrStack.Offset = context.Rsp;
frame.AddrStack.Mode = AddrModeFlat;
frame.AddrFrame.Offset = context.Rbp;
frame.AddrFrame.Mode = AddrModeFlat;
IMAGEHLP_LINE64 line = { 0 };
line.SizeOfStruct = sizeof line;
IMAGE_NT_HEADERS *image_nt_header = ImageNtHeader(base);
std::stringstream ss;
ss << ENDL;
// ss << "main module loaded at 0x" << std::hex << std::setw(16) << std::setfill('0') << base << std::dec << " from " << modules[0].image_name << ENDL;
for (size_t n = 0; n < 250; ++n)
{
if (!StackWalk64(image_nt_header->FileHeader.Machine, h_process, h_thread, &frame, &context, NULL, SymFunctionTableAccess64, SymGetModuleBase64, NULL))
break;
if (frame.AddrReturn.Offset == 0)
break;
std::string fnName = get_symbol_undecorated_name(h_process, frame.AddrPC.Offset, ss);
ss << "0x" << std::setw(16) << std::setfill('0') << std::hex << frame.AddrPC.Offset << " " << std::dec << fnName;
DWORD offset_from_line = 0;
if (SymGetLineFromAddr64(h_process, frame.AddrPC.Offset, &offset_from_line, &line))
ss << "+" << offset_from_line << " " << line.FileName << "(" << line.LineNumber << ")";
for (auto el : modules)
{
if ((DWORD64)el.base_address <= frame.AddrPC.Offset && frame.AddrPC.Offset < (DWORD64)el.base_address + (DWORD64)el.load_size)
{
ss << " : " << el.module_name << " @ 0x" << std::setw(0) << std::hex << (DWORD64)el.base_address << ENDL;
break;
}
}
}
SymCleanup(h_process);
return ss.str();
}
} // namespace tools
#endif // #if defined(WIN32)

View file

@ -0,0 +1,24 @@
// Copyright (c) 2019 Zano Project
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#pragma once
#include <epee/include/misc_os_dependent.h>
namespace tools
{
#if defined(WIN32)
extern std::string get_callstack_win_x64();
#endif
inline std::string get_callstack()
{
#if defined(__GNUC__)
return epee::misc_utils::print_trace_default();
#elif defined(WIN32)
return get_callstack_win_x64();
#else
return "";
#endif
}
} // namespace tools

View file

@ -562,11 +562,26 @@ namespace tools
m_set_profiler.m_name = container_name + ":set";
m_explicit_get_profiler.m_name = container_name + ":explicit_get";
m_explicit_set_profiler.m_name = container_name + ":explicit_set";
m_commit_profiler.m_name = container_name + ":commit";;
m_commit_profiler.m_name = container_name + ":commit";
#endif
return bdb.get_backend()->open_container(container_name, m_h);
}
bool deinit()
{
#ifdef ENABLE_PROFILING
m_get_profiler.m_name = "";
m_set_profiler.m_name = "";
m_explicit_get_profiler.m_name = "";
m_explicit_set_profiler.m_name = "";
m_commit_profiler.m_name = "";
#endif
m_h = AUTO_VAL_INIT(m_h);
size_cache = 0;
size_cache_valid = false;
return true;
}
template<class t_cb>
void enumerate_keys(t_cb cb) const
{

View file

@ -1,4 +1,4 @@
// Copyright (c) 2014-2018 Zano Project
// Copyright (c) 2014-2019 Zano Project
// Copyright (c) 2014-2018 The Louisdor Project
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

View file

@ -7,6 +7,7 @@
#include "misc_language.h"
#include "string_coding.h"
#include "profile_tools.h"
#include "util.h"
#define BUF_SIZE 1024
@ -52,6 +53,8 @@ namespace tools
m_path = epee::string_encoding::convert_ansii_to_utf8(m_path);
#endif
CHECK_AND_ASSERT_MES(tools::create_directories_if_necessary(m_path), false, "create_directories_if_necessary failed: " << m_path);
res = mdb_env_open(m_penv, m_path.c_str(), MDB_NORDAHEAD , 0644);
CHECK_AND_ASSERT_MESS_LMDB_DB(res, false, "Unable to mdb_env_open, m_path=" << m_path);

View file

@ -1,4 +1,4 @@
// Copyright (c) 2014-2018 Zano Project
// Copyright (c) 2014-2019 Zano Project
// Copyright (c) 2014-2018 The Louisdor Project
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
@ -6,7 +6,6 @@
#pragma once
#include <thread>
#include "include_base_utils.h"
#include "db_backend_base.h"
@ -17,9 +16,6 @@ namespace tools
{
namespace db
{
class lmdb_db_backend : public i_db_backend
{
@ -63,4 +59,4 @@ namespace tools
};
}
}
}

View file

@ -10,6 +10,7 @@ using namespace epee;
#include "util.h"
#include "currency_core/currency_config.h"
#include "version.h"
#ifdef WIN32
#include <windows.h>
@ -362,7 +363,69 @@ namespace tools
return pszOS;
}
}
#else
void signal_handler::GenerateCrashDump(EXCEPTION_POINTERS *pep /* = NULL*/)
{
SYSTEMTIME sysTime = { 0 };
GetSystemTime(&sysTime);
// get the computer name
char compName[MAX_COMPUTERNAME_LENGTH + 1] = { 0 };
DWORD compNameLen = ARRAYSIZE(compName);
GetComputerNameA(compName, &compNameLen);
// build the filename: APPNAME_COMPUTERNAME_DATE_TIME.DMP
char path[MAX_PATH*10] = { 0 };
std::string folder = epee::log_space::log_singletone::get_default_log_folder();
sprintf_s(path, ARRAYSIZE(path),"%s\\crashdump_" PROJECT_VERSION_LONG "_%s_%04u-%02u-%02u_%02u-%02u-%02u.dmp",
folder.c_str(), compName, sysTime.wYear, sysTime.wMonth, sysTime.wDay,
sysTime.wHour, sysTime.wMinute, sysTime.wSecond);
HANDLE hFile = CreateFileA(path, GENERIC_READ | GENERIC_WRITE,
0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if ((hFile != NULL) && (hFile != INVALID_HANDLE_VALUE))
{
// Create the minidump
MINIDUMP_EXCEPTION_INFORMATION mdei;
mdei.ThreadId = GetCurrentThreadId();
mdei.ExceptionPointers = pep;
mdei.ClientPointers = FALSE;
MINIDUMP_CALLBACK_INFORMATION mci;
mci.CallbackRoutine = (MINIDUMP_CALLBACK_ROUTINE)MyMiniDumpCallback;
mci.CallbackParam = 0;
MINIDUMP_TYPE mdt = (MINIDUMP_TYPE)(MiniDumpWithPrivateReadWriteMemory |
MiniDumpWithDataSegs |
MiniDumpWithHandleData |
MiniDumpWithFullMemoryInfo |
MiniDumpWithThreadInfo |
MiniDumpWithUnloadedModules);
BOOL rv = MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(),
hFile, mdt, (pep != 0) ? &mdei : 0, 0, &mci);
if (!rv)
{
LOG_ERROR("Minidump file create FAILED(error " << GetLastError() << ") on path: " << path);
}
else
{
LOG_PRINT_L0("Minidump file created on path: " << path);
}
// Close the file
CloseHandle(hFile);
}
else
{
LOG_ERROR("Minidump FAILED to create file (error " << GetLastError() << ") on path: " << path);
}
}
#else // ifdef WIN32
std::string get_nix_version_display_string()
{
utsname un;
@ -600,7 +663,7 @@ std::string get_nix_version_display_string()
boost::asio::ip::udp::socket socket(io_service);
socket.open(boost::asio::ip::udp::v4());
boost::array<unsigned char, 48> send_buf = { 010, 0, 0, 0, 0, 0, 0, 0, 0 };
boost::array<unsigned char, 48> send_buf = { { 010, 0, 0, 0, 0, 0, 0, 0, 0 } };
socket.send_to(boost::asio::buffer(send_buf), receiver_endpoint);
boost::array<unsigned long, 1024> recv_buf;

View file

@ -231,67 +231,7 @@ namespace tools
}
static void GenerateCrashDump(EXCEPTION_POINTERS *pep = NULL)
{
SYSTEMTIME sysTime = { 0 };
GetSystemTime(&sysTime);
// get the computer name
char compName[MAX_COMPUTERNAME_LENGTH + 1] = { 0 };
DWORD compNameLen = ARRAYSIZE(compName);
GetComputerNameA(compName, &compNameLen);
// build the filename: APPNAME_COMPUTERNAME_DATE_TIME.DMP
char path[MAX_PATH*10] = { 0 };
std::string folder = epee::log_space::log_singletone::get_default_log_folder();
sprintf_s(path, ARRAYSIZE(path),"%s\\crashdump_%s_%04u-%02u-%02u_%02u-%02u-%02u.dmp",
folder.c_str(), compName, sysTime.wYear, sysTime.wMonth, sysTime.wDay,
sysTime.wHour, sysTime.wMinute, sysTime.wSecond);
HANDLE hFile = CreateFileA(path, GENERIC_READ | GENERIC_WRITE,
0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if ((hFile != NULL) && (hFile != INVALID_HANDLE_VALUE))
{
// Create the minidump
MINIDUMP_EXCEPTION_INFORMATION mdei;
mdei.ThreadId = GetCurrentThreadId();
mdei.ExceptionPointers = pep;
mdei.ClientPointers = FALSE;
MINIDUMP_CALLBACK_INFORMATION mci;
mci.CallbackRoutine = (MINIDUMP_CALLBACK_ROUTINE)MyMiniDumpCallback;
mci.CallbackParam = 0;
MINIDUMP_TYPE mdt = (MINIDUMP_TYPE)(MiniDumpWithPrivateReadWriteMemory |
MiniDumpWithDataSegs |
MiniDumpWithHandleData |
MiniDumpWithFullMemoryInfo |
MiniDumpWithThreadInfo |
MiniDumpWithUnloadedModules);
BOOL rv = MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(),
hFile, mdt, (pep != 0) ? &mdei : 0, 0, &mci);
if (!rv)
{
LOG_ERROR("Minidump file create FAILED(error " << GetLastError() << ") on path: " << path);
}
else
{
LOG_PRINT_L0("Minidump file created on path: " << path);
}
// Close the file
CloseHandle(hFile);
}
else
{
LOG_ERROR("Minidump FAILED to create file (error " << GetLastError() << ") on path: " << path);
}
}
static void GenerateCrashDump(EXCEPTION_POINTERS *pep = NULL);
static LONG WINAPI win_unhandled_exception_handler(_In_ struct _EXCEPTION_POINTERS *ep)
{

View file

@ -37,10 +37,10 @@ using namespace nodetool;
namespace
{
const command_line::arg_descriptor<std::string> arg_ip = {"ip", "set ip"};
const command_line::arg_descriptor<std::string> arg_ip = {"ip", "set ip", "127.0.0.1", false};
const command_line::arg_descriptor<size_t> arg_port = {"port", "set port"};
const command_line::arg_descriptor<size_t> arg_rpc_port = {"rpc-port", "set rpc port", RPC_DEFAULT_PORT};
const command_line::arg_descriptor<uint32_t> arg_timeout = {"timeout", "set timeout", 5000};
const command_line::arg_descriptor<size_t> arg_rpc_port = {"rpc-port", "set rpc port", RPC_DEFAULT_PORT, false};
const command_line::arg_descriptor<uint32_t> arg_timeout = {"timeout", "set timeout", 5000, false};
const command_line::arg_descriptor<std::string> arg_priv_key = {"private-key", "private key to subscribe debug command", "", true};
const command_line::arg_descriptor<uint64_t> arg_peer_id = {"peer-id", "peerid if known(if not - will be requested)", 0};
const command_line::arg_descriptor<bool> arg_generate_keys = {"generate-keys-pair", "generate private and public keys pair"};
@ -710,15 +710,34 @@ bool handle_request_stat(po::variables_map& vm, peerid_type peer_id)
return true;
}
//---------------------------------------------------------------------------------------------------------------
std::string get_password(const std::string& promt)
{
std::string res;
#ifndef WIN32
const char* ppass = getpass(promt.c_str());
if (ppass)
res = ppass;
#else
std::cout << promt;
std::getline(std::cin, res);
#endif
return res;
}
//---------------------------------------------------------------------------------------------------------------
bool get_private_key(crypto::secret_key& pk, po::variables_map& vm)
{
if(!command_line::has_arg(vm, arg_priv_key))
std::string key_str;
if(command_line::has_arg(vm, arg_priv_key))
{
std::cout << "ERROR: secret key not set" << ENDL;
return false;
key_str = command_line::get_arg(vm, arg_priv_key);
}
else
{
key_str = get_password("Enter maintain private key:");
}
if(!string_tools::hex_to_pod(command_line::get_arg(vm, arg_priv_key) , pk))
if(!string_tools::hex_to_pod(key_str, pk))
{
std::cout << "ERROR: wrong secret key set" << ENDL;
return false;
@ -796,17 +815,20 @@ bool handle_increment_build_no(po::variables_map& vm)
bool handle_update_maintainers_info(po::variables_map& vm)
{
log_space::log_singletone::add_logger(LOGGER_CONSOLE, NULL, NULL);
size_t rpc_port = RPC_DEFAULT_PORT;
if(!command_line::has_arg(vm, arg_rpc_port))
{
std::cout << "ERROR: rpc port not set" << ENDL;
return false;
}
crypto::secret_key prvk = AUTO_VAL_INIT(prvk);
crypto::secret_key prvk = AUTO_VAL_INIT(prvk);
if(!get_private_key(prvk, vm))
{
std::cout << "ERROR: secret key error" << ENDL;
return false;
}
std::string path = command_line::get_arg(vm, arg_upate_maintainers_info);
epee::net_utils::http::http_simple_client http_client;

View file

@ -22,21 +22,35 @@ namespace currency
{
//--------------------------------------------------------------
//global object
// crypto::ethash::cache_manager cache;
// void ethash_set_use_dag(bool use_dag)
// {
// cache.set_use_dag(use_dag);
// }
// //------------------------------------------------------------------
// const uint8_t* ethash_get_dag(uint64_t epoch, uint64_t& dag_size)
// {
// return cache.get_dag(epoch, dag_size);
// }
int ethash_custom_log_get_level()
{
return epee::log_space::get_set_log_detalisation_level();
}
//--------------------------------------------------------------
void ethash_custom_log(const std::string& m, bool add_callstack)
{
std::string msg = epee::log_space::log_singletone::get_prefix_entry() + "[ETHASH]" + m;
if (add_callstack)
msg = msg + "callstask: " + epee::misc_utils::get_callstack();
epee::log_space::log_singletone::do_log_message(msg, LOG_LEVEL_0, epee::log_space::console_color_default, true, LOG_DEFAULT_TARGET);
}
//--------------------------------------------------------------
void init_ethash_log_if_necessary()
{
static bool inited = false;
if (inited)
return;
ethash::access_custom_log_level_function() = &ethash_custom_log_get_level;
ethash::access_custom_log_function() = &ethash_custom_log;
inited = true;
}
//------------------------------------------------------------------
int ethash_height_to_epoch(uint64_t height)
{
return height / ETHASH_EPOCH_LENGTH;
return static_cast<int>(height / ETHASH_EPOCH_LENGTH);
}
//--------------------------------------------------------------
crypto::hash ethash_epoch_to_seed(int epoch)
@ -49,9 +63,11 @@ namespace currency
//--------------------------------------------------------------
crypto::hash get_block_longhash(uint64_t height, const crypto::hash& block_header_hash, uint64_t nonce)
{
init_ethash_log_if_necessary();
int epoch = ethash_height_to_epoch(height);
const auto& context = progpow::get_global_epoch_context_full(static_cast<int>(epoch));
auto res_eth = progpow::hash(context, height, *(ethash::hash256*)&block_header_hash, nonce);
std::shared_ptr<ethash::epoch_context_full> p_context = progpow::get_global_epoch_context_full(static_cast<int>(epoch));
CHECK_AND_ASSERT_THROW_MES(p_context, "progpow::get_global_epoch_context_full returned null");
auto res_eth = progpow::hash(*p_context, static_cast<int>(height), *(ethash::hash256*)&block_header_hash, nonce);
crypto::hash result = currency::null_hash;
memcpy(&result.data, &res_eth.final_hash, sizeof(res_eth.final_hash));
return result;

File diff suppressed because it is too large Load diff

View file

@ -153,6 +153,9 @@ namespace currency
// {amount -> pub_keys} map of outputs' pub_keys appeared in this alt block ( index_in_vector == output_gindex - gindex_lookup_table[output_amount] )
std::map<uint64_t, std::vector<crypto::public_key> > outputs_pub_keys;
//date added to alt chain storage
uint64_t timestamp;
};
typedef std::unordered_map<crypto::hash, alt_block_extended_info> alt_chain_container;
//typedef std::list<alt_chain_container::iterator> alt_chain_type;
@ -184,6 +187,7 @@ namespace currency
//------------- modifying members --------------
bool add_new_block(const block& bl_, block_verification_context& bvc);
bool prevalidate_block(const block& bl);
bool clear();
bool reset_and_set_genesis_block(const block& b);
//debug function
@ -221,8 +225,11 @@ namespace currency
bool have_tx_keyimg_as_spent(const crypto::key_image &key_im, uint64_t before_height = UINT64_MAX) const;
std::shared_ptr<transaction> get_tx(const crypto::hash &id) const;
template<class visitor_t>
bool scan_outputkeys_for_indexes(const txin_to_key& tx_in_to_key, visitor_t& vis, uint64_t* pmax_related_block_height = NULL) const ;
bool scan_outputkeys_for_indexes(const transaction &validated_tx, const txin_to_key& tx_in_to_key, visitor_t& vis) { uint64_t stub = 0; return scan_outputkeys_for_indexes(validated_tx, tx_in_to_key, vis, stub); }
template<class visitor_t>
bool scan_outputkeys_for_indexes(const transaction &validated_tx, const txin_to_key& tx_in_to_key, visitor_t& vis, uint64_t& max_related_block_height) const ;
uint64_t get_current_blockchain_size() const;
uint64_t get_top_block_height() const;
@ -230,7 +237,7 @@ namespace currency
crypto::hash get_top_block_id(uint64_t& height) const;
bool get_top_block(block& b) const;
wide_difficulty_type get_next_diff_conditional(bool pos) const;
wide_difficulty_type get_next_diff_conditional2(bool pos, const alt_chain_type& alt_chain, uint64_t split_height) const;
wide_difficulty_type get_next_diff_conditional2(bool pos, const alt_chain_type& alt_chain, uint64_t split_height, const alt_block_extended_info& abei) const;
wide_difficulty_type get_cached_next_difficulty(bool pos) const;
typedef bool fill_block_template_func_t(block &bl, bool pos, size_t median_size, const boost::multiprecision::uint128_t& already_generated_coins, size_t &total_size, uint64_t &fee, uint64_t height);
@ -260,13 +267,14 @@ namespace currency
uint64_t get_aliases_count()const;
uint64_t get_block_h_older_then(uint64_t timestamp) const;
bool validate_tx_service_attachmens_in_services(const tx_service_attachment& a, size_t i, const transaction& tx)const;
bool check_tx_input(const transaction& tx, size_t in_index, const txin_to_key& txin, const crypto::hash& tx_prefix_hash, const std::vector<crypto::signature>& sig, uint64_t* pmax_related_block_height = NULL)const;
bool check_tx_input(const transaction& tx, size_t in_index, const txin_multisig& txin, const crypto::hash& tx_prefix_hash, const std::vector<crypto::signature>& sig, uint64_t* pmax_related_block_height = NULL)const;
bool check_tx_inputs(const transaction& tx, const crypto::hash& tx_prefix_hash, uint64_t* pmax_used_block_height = NULL)const;
//bool check_tx_inputs(const transaction& tx, uint64_t* pmax_used_block_height = NULL)const;
bool check_tx_inputs(const transaction& tx, const crypto::hash& tx_prefix_hash, uint64_t& pmax_used_block_height, crypto::hash& max_used_block_id)const;
bool check_tx_input(const transaction& tx, size_t in_index, const txin_to_key& txin, const crypto::hash& tx_prefix_hash, const std::vector<crypto::signature>& sig, uint64_t& max_related_block_height, uint64_t& source_max_unlock_time_for_pos_coinbase)const;
bool check_tx_input(const transaction& tx, size_t in_index, const txin_multisig& txin, const crypto::hash& tx_prefix_hash, const std::vector<crypto::signature>& sig, uint64_t& max_related_block_height)const;
bool check_tx_inputs(const transaction& tx, const crypto::hash& tx_prefix_hash, uint64_t& max_used_block_height)const;
bool check_tx_inputs(const transaction& tx, const crypto::hash& tx_prefix_hash) const;
bool check_tx_inputs(const transaction& tx, const crypto::hash& tx_prefix_hash, uint64_t& max_used_block_height, crypto::hash& max_used_block_id)const;
bool check_ms_input(const transaction& tx, size_t in_index, const txin_multisig& txin, const crypto::hash& tx_prefix_hash, const std::vector<crypto::signature>& sig, const transaction& source_tx, size_t out_n) const;
bool get_output_keys_for_input_with_checks(const txin_to_key& txin, std::vector<crypto::public_key>& output_keys, uint64_t* pmax_related_block_height = NULL) const;
bool validate_tx_for_hardfork_specific_terms(const transaction& tx, const crypto::hash& tx_id, uint64_t block_height) const;
bool get_output_keys_for_input_with_checks(const transaction& tx, const txin_to_key& txin, std::vector<crypto::public_key>& output_keys, uint64_t& max_related_block_height, uint64_t& source_max_unlock_time_for_pos_coinbase) const;
bool check_tokey_input(const transaction& tx, size_t in_index, const txin_to_key& txin, const crypto::hash& tx_prefix_hash, const std::vector<crypto::signature>& sig, const std::vector<const crypto::public_key*>& output_keys_ptrs) const;
uint64_t get_current_comulative_blocksize_limit()const;
uint64_t get_current_hashrate(size_t aprox_count)const;
@ -304,6 +312,7 @@ namespace currency
bool build_stake_modifier(stake_modifier_type& sm, const alt_chain_type& alt_chain = alt_chain_type(), uint64_t split_height = 0, crypto::hash *p_last_block_hash = nullptr) const;
bool scan_pos(const COMMAND_RPC_SCAN_POS::request& sp, COMMAND_RPC_SCAN_POS::response& rsp)const;
bool validate_pos_coinbase_outs_unlock_time(const transaction& miner_tx, uint64_t staked_amount, uint64_t source_max_unlock_time)const;
bool validate_pos_block(const block& b, const crypto::hash& id, bool for_altchain)const;
bool validate_pos_block(const block& b, wide_difficulty_type basic_diff, const crypto::hash& id, bool for_altchain)const;
bool validate_pos_block(const block& b,
@ -421,6 +430,7 @@ namespace currency
void print_blockchain_outs(const std::string& file) const;
void print_blockchain_outs_stat() const;
void print_db_cache_perfeormance_data() const;
void print_last_n_difficulty_numbers(uint64_t n) const;
bool calc_tx_cummulative_blob(const block& bl)const;
bool get_outs_index_stat(outs_index_stat& outs_stat)const;
bool print_lookup_key_image(const crypto::key_image& ki) const;
@ -430,6 +440,7 @@ namespace currency
bool rebuild_tx_fee_medians();
bool validate_all_aliases_for_new_median_mode();
bool print_tx_outputs_lookup(const crypto::hash& tx_id) const;
uint64_t get_last_x_block_height(bool pos)const;
private:
//-------------- DB containers --------------
@ -524,7 +535,7 @@ namespace currency
bool init_tx_fee_median();
bool update_tx_fee_median();
void initialize_db_solo_options_values();
void store_db_solo_options_values();
bool set_lost_tx_unmixable();
bool set_lost_tx_unmixable_for_height(uint64_t height);
void patch_out_if_needed(txout_to_key& out, const crypto::hash& tx_id, uint64_t n)const ;
@ -541,7 +552,8 @@ namespace currency
bool handle_block_to_main_chain(const block& bl, const crypto::hash& id, block_verification_context& bvc);
std::string print_alt_chain(alt_chain_type alt_chain);
bool handle_alternative_block(const block& b, const crypto::hash& id, block_verification_context& bvc);
bool is_reorganize_required(const block_extended_info& main_chain_bei, const block_extended_info& alt_chain_bei, const crypto::hash& proof_alt);
bool is_reorganize_required(const block_extended_info& main_chain_bei, const alt_chain_type& alt_chain, const crypto::hash& proof_alt);
wide_difficulty_type get_x_difficulty_after_height(uint64_t height, bool is_pos);
bool purge_keyimage_from_big_heap(const crypto::key_image& ki, const crypto::hash& id);
bool purge_altblock_keyimages_from_big_heap(const block& b, const crypto::hash& id);
bool append_altblock_keyimages_to_big_heap(const crypto::hash& block_id, const std::set<crypto::key_image>& alt_block_keyimages);
@ -550,9 +562,8 @@ namespace currency
bool validate_alt_block_txs(const block& b, const crypto::hash& id, std::set<crypto::key_image>& collected_keyimages, alt_block_extended_info& abei, const alt_chain_type& alt_chain, uint64_t split_height, uint64_t& ki_lookup_time_total) const;
bool update_alt_out_indexes_for_tx_in_block(const transaction& tx, alt_block_extended_info& abei)const;
bool get_transaction_from_pool_or_db(const crypto::hash& tx_id, std::shared_ptr<transaction>& tx_ptr, uint64_t min_allowed_block_height = 0) const;
void get_last_n_x_blocks(uint64_t n, bool pos_blocks, std::list<std::shared_ptr<const block_extended_info>>& blocks) const;
bool prevalidate_miner_transaction(const block& b, uint64_t height, bool pos)const;
bool validate_transaction(const block& b, uint64_t height, const transaction& tx)const;
bool rollback_blockchain_switching(std::list<block>& original_chain, size_t rollback_height);
bool add_transaction_from_block(const transaction& tx, const crypto::hash& tx_id, const crypto::hash& bl_id, uint64_t bl_height, uint64_t timestamp);
bool push_transaction_to_global_outs_index(const transaction& tx, const crypto::hash& tx_id, std::vector<uint64_t>& global_indexes);
@ -608,8 +619,8 @@ namespace currency
//POS
wide_difficulty_type get_adjusted_cumulative_difficulty_for_next_pos(wide_difficulty_type next_diff)const;
wide_difficulty_type get_adjusted_cumulative_difficulty_for_next_alt_pos(alt_chain_type& alt_chain, uint64_t block_height, wide_difficulty_type next_diff, uint64_t connection_height)const;
uint64_t get_last_x_block_height(bool pos)const;
wide_difficulty_type get_last_alt_x_block_cumulative_precise_difficulty(alt_chain_type& alt_chain, uint64_t block_height, bool pos)const;
wide_difficulty_type get_last_alt_x_block_cumulative_precise_difficulty(const alt_chain_type& alt_chain, uint64_t block_height, bool pos, wide_difficulty_type& cumulative_diff_precise_adj)const;
wide_difficulty_type get_last_alt_x_block_cumulative_precise_adj_difficulty(const alt_chain_type& alt_chain, uint64_t block_height, bool pos) const;
size_t get_current_sequence_factor_for_alt(alt_chain_type& alt_chain, bool pos, uint64_t connection_height)const;
};
@ -648,7 +659,7 @@ namespace currency
//------------------------------------------------------------------
//------------------------------------------------------------------
template<class visitor_t>
bool blockchain_storage::scan_outputkeys_for_indexes(const txin_to_key& tx_in_to_key, visitor_t& vis, uint64_t* pmax_related_block_height) const
bool blockchain_storage::scan_outputkeys_for_indexes(const transaction &validated_tx, const txin_to_key& tx_in_to_key, visitor_t& vis, uint64_t& max_related_block_height) const
{
CRITICAL_REGION_LOCAL(m_read_lock);
TIME_MEASURE_START_PD(tx_check_inputs_loop_scan_outputkeys_get_item_size);
@ -704,18 +715,16 @@ namespace currency
CHECK_AND_ASSERT_MES(mixattr_ok, false, "tx output #" << output_index << " violates mixin restrictions: mix_attr = " << static_cast<uint32_t>(outtk.mix_attr) << ", key_offsets.size = " << tx_in_to_key.key_offsets.size());
TIME_MEASURE_START_PD(tx_check_inputs_loop_scan_outputkeys_loop_handle_output);
if (!vis.handle_output(tx_ptr->tx, tx_ptr->tx.vout[n]))
if (!vis.handle_output(tx_ptr->tx, validated_tx, tx_ptr->tx.vout[n], n))
{
LOG_PRINT_L0("Failed to handle_output for output id = " << tx_id << ", no " << n);
return false;
}
TIME_MEASURE_FINISH_PD(tx_check_inputs_loop_scan_outputkeys_loop_handle_output);
if (pmax_related_block_height)
{
if (*pmax_related_block_height < tx_ptr->m_keeper_block_height)
*pmax_related_block_height = tx_ptr->m_keeper_block_height;
}
if (max_related_block_height < tx_ptr->m_keeper_block_height)
max_related_block_height = tx_ptr->m_keeper_block_height;
++output_index;
}

View file

@ -47,6 +47,7 @@ namespace currency
uint64_t block_cumulative_size;
wide_difficulty_type cumulative_diff_adjusted;
wide_difficulty_type cumulative_diff_precise;
wide_difficulty_type cumulative_diff_precise_adjusted;
wide_difficulty_type difficulty;
boost::multiprecision::uint128_t already_generated_coins;
crypto::hash stake_hash; //TODO: unused field for PoW blocks, subject for refactoring

View file

@ -18,6 +18,8 @@ namespace currency
uint64_t pos_minimum_heigh; //height
uint64_t tx_pool_min_fee;
uint64_t tx_default_fee;
uint64_t hard_fork1_starts_after_height;
uint64_t max_alt_blocks;
crypto::public_key alias_validation_pubkey;
core_time_func_t get_core_time;
@ -34,6 +36,8 @@ namespace currency
pc.pos_minimum_heigh = POS_START_HEIGHT;
pc.tx_pool_min_fee = TX_MINIMUM_FEE;
pc.tx_default_fee = TX_DEFAULT_FEE;
pc.max_alt_blocks = CURRENCY_ALT_BLOCK_MAX_COUNT;
pc.hard_fork1_starts_after_height = ZANO_HARDFORK_1_AFTER_HEIGHT;
pc.get_core_time = &core_runtime_config::_default_core_time_function;
bool r = epee::string_tools::hex_to_pod(ALIAS_SHORT_NAMES_VALIDATION_PUB_KEY, pc.alias_validation_pubkey);
CHECK_AND_ASSERT_THROW_MES(r, "failed to parse alias_validation_pub_key");

View file

@ -336,7 +336,7 @@ namespace currency
};
//number of block (or time), used as a limitation: spend this tx not early then block/time
//number of block (or timestamp if v bigger then CURRENCY_MAX_BLOCK_NUMBER), used as a limitation: spend this tx not early then block/time
struct etc_tx_details_unlock_time
{
uint64_t v;
@ -345,6 +345,16 @@ namespace currency
END_SERIALIZE()
};
//number of block (or timestamp if unlock_time_array[i] bigger then CURRENCY_MAX_BLOCK_NUMBER), used as a limitation: spend this tx not early then block/time
//unlock_time_array[i], i - index of output, unlock_time_array.size() == vout.size()
struct etc_tx_details_unlock_time2
{
std::vector<uint64_t> unlock_time_array;
BEGIN_SERIALIZE()
FIELD(unlock_time_array)
END_SERIALIZE()
};
struct etc_tx_details_expiration_time
{
uint64_t v;
@ -361,7 +371,7 @@ namespace currency
uint64_t v;
BEGIN_SERIALIZE()
VARINT_FIELD(v)
END_SERIALIZE()
END_SERIALIZE()
};
struct etc_tx_details_flags
@ -380,7 +390,7 @@ namespace currency
END_SERIALIZE()
};
typedef boost::mpl::vector<tx_service_attachment, tx_comment, tx_payer, tx_receiver, tx_message, std::string, tx_crypto_checksum, etc_tx_time, etc_tx_details_unlock_time, etc_tx_details_expiration_time, etc_tx_details_flags, crypto::public_key, extra_attachment_info, extra_alias_entry, extra_user_data, extra_padding, etc_tx_derivation_hint> all_payload_types;
typedef boost::mpl::vector<tx_service_attachment, tx_comment, tx_payer, tx_receiver, tx_message, std::string, tx_crypto_checksum, etc_tx_time, etc_tx_details_unlock_time, etc_tx_details_expiration_time, etc_tx_details_flags, crypto::public_key, extra_attachment_info, extra_alias_entry, extra_user_data, extra_padding, etc_tx_derivation_hint, etc_tx_details_unlock_time2> all_payload_types;
typedef boost::make_variant_over<all_payload_types>::type attachment_v;
typedef boost::make_variant_over<all_payload_types>::type extra_v;
typedef boost::make_variant_over<all_payload_types>::type payload_items_v;
@ -553,12 +563,14 @@ namespace currency
uint64_t index;
crypto::key_image keyimage;
uint64_t block_timestamp;
uint64_t stake_unlock_time;
//not for serialization
uint64_t wallet_index;
BEGIN_KV_SERIALIZE_MAP()
KV_SERIALIZE(amount)
KV_SERIALIZE(index)
KV_SERIALIZE(stake_unlock_time)
KV_SERIALIZE(block_timestamp)
KV_SERIALIZE_VAL_POD_AS_BLOB_FORCE(keyimage)
END_KV_SERIALIZE_MAP()
@ -613,5 +625,6 @@ SET_VARIANT_TAGS(uint64_t, 26, "uint64_t");
SET_VARIANT_TAGS(currency::etc_tx_time, 27, "etc_tx_time");
SET_VARIANT_TAGS(uint32_t, 28, "uint32_t");
SET_VARIANT_TAGS(currency::tx_receiver, 29, "payer");
SET_VARIANT_TAGS(currency::etc_tx_details_unlock_time2, 30, "unlock_time2");
#undef SET_VARIANT_TAGS

View file

@ -190,6 +190,11 @@ namespace boost
a & at.v;
}
template <class Archive>
inline void serialize(Archive &a, currency::etc_tx_details_unlock_time2 &at, const boost::serialization::version_type ver)
{
a & at.unlock_time_array;
}
template <class Archive>
inline void serialize(Archive &a, currency::etc_tx_details_expiration_time &at, const boost::serialization::version_type ver)
{
a & at.v;

View file

@ -7,9 +7,15 @@
#pragma once
#ifndef TESTNET
#define CURRENCY_FORMATION_VERSION 84
#else
#define CURRENCY_FORMATION_VERSION 86
#endif
#define CURRENCY_GENESIS_NONCE (CURRENCY_FORMATION_VERSION + 101011010121) //bender's nightmare
#define CURRENCY_MAX_BLOCK_NUMBER 500000000
#define CURRENCY_MAX_BLOCK_SIZE 500000000 // block header blob limit, never used!
@ -24,10 +30,6 @@
#define CURRENCY_POS_BLOCK_FUTURE_TIME_LIMIT 60*20
#define BLOCKCHAIN_TIMESTAMP_CHECK_WINDOW 60
// TOTAL_MONEY_SUPPLY - total number coins to be generated
#define TOTAL_MONEY_SUPPLY ((uint64_t)(-1))
#define POS_START_HEIGHT 0
@ -87,15 +89,17 @@
#define CURRENCY_ALT_BLOCK_LIVETIME_COUNT (CURRENCY_BLOCKS_PER_DAY*7)//one week
#define CURRENCY_ALT_BLOCK_MAX_COUNT 43200 //30 days
#define CURRENCY_MEMPOOL_TX_LIVETIME 345600 //seconds, 4 days
#ifndef TESTNET
#define P2P_DEFAULT_PORT 11121
#define RPC_DEFAULT_PORT 11211
#define STRATUM_DEFAULT_PORT 11777
#define P2P_NETWORK_ID_TESTNET_FLAG 0
#else
#define P2P_DEFAULT_PORT (11112)
#define P2P_DEFAULT_PORT (11112 + CURRENCY_FORMATION_VERSION)
#define RPC_DEFAULT_PORT 12111
#define STRATUM_DEFAULT_PORT 11888
#define STRARUM_DEFAULT_PORT 51113
@ -128,7 +132,7 @@
//PoS definitions
#define POS_SCAN_WINDOW 60*10 //seconds // 10 minutes
#define POS_SCAN_STEP 15 //seconds
#define POS_MAC_ACTUAL_TIMESTAMP_TO_MINED (POS_SCAN_WINDOW+100)
#define POS_MAX_ACTUAL_TIMESTAMP_TO_MINED (POS_SCAN_WINDOW+100)
#define POS_STARTER_KERNEL_HASH "00000000000000000006382a8d8f94588ce93a1351924f6ccb9e07dd287c6e4b"
#define POS_MODFIFIER_INTERVAL 10
@ -183,8 +187,10 @@
#define CURRENCY_CORE_INSTANCE_LOCK_FILE "lock.lck"
#define CURRENCY_POOLDATA_FOLDERNAME "poolstate"
#define CURRENCY_BLOCKCHAINDATA_FOLDERNAME "blockchain"
#define CURRENCY_POOLDATA_FOLDERNAME_OLD "poolstate"
#define CURRENCY_BLOCKCHAINDATA_FOLDERNAME_OLD "blockchain"
#define CURRENCY_POOLDATA_FOLDERNAME "poolstate_lmdb_v1"
#define CURRENCY_BLOCKCHAINDATA_FOLDERNAME "blockchain_lmdb_v1"
#define P2P_NET_DATA_FILENAME "p2pstate.bin"
#define MINER_CONFIG_FILENAME "miner_conf.json"
#define GUI_SECURE_CONFIG_FILENAME "gui_secure_conf.bin"
@ -192,10 +198,11 @@
#define GUI_INTERNAL_CONFIG "gui_internal_config.bin"
#define CURRENT_TRANSACTION_CHAIN_ENTRY_ARCHIVE_VER 3
#define CURRENT_BLOCK_EXTENDED_INFO_ARCHIVE_VER 1
#define BLOCKCHAIN_STORAGE_MAJOR_COMPATIBILITY_VERSION CURRENCY_FORMATION_VERSION + 7
#define BLOCKCHAIN_STORAGE_MAJOR_COMPATIBILITY_VERSION CURRENCY_FORMATION_VERSION + 8
#define BLOCKCHAIN_STORAGE_MINOR_COMPATIBILITY_VERSION 1
@ -203,11 +210,19 @@
#define BC_OFFERS_CURRENCY_MARKET_FILENAME "market.bin"
#define WALLET_FILE_SERIALIZATION_VERSION (CURRENCY_FORMATION_VERSION+64)
#define WALLET_FILE_SERIALIZATION_VERSION (CURRENCY_FORMATION_VERSION+65)
#define CURRENT_MEMPOOL_ARCHIVE_VER (CURRENCY_FORMATION_VERSION+31)
//hard forks section
#define BLOCK_MAJOR_VERSION_GENESIS 1
#define BLOCK_MINOR_VERSION_GENESIS 0
#define BLOCK_MAJOR_VERSION_INITAL 0
#ifndef TESTNET
#define ZANO_HARDFORK_1_AFTER_HEIGHT 194624
#else
#define ZANO_HARDFORK_1_AFTER_HEIGHT 1440
#endif
static_assert(CURRENCY_MINER_TX_MAX_OUTS <= CURRENCY_TX_MAX_ALLOWED_OUTS, "Miner tx must obey normal tx max outs limit");

View file

@ -19,6 +19,8 @@ using namespace epee;
#include "currency_format_utils.h"
#include "misc_language.h"
#define MINIMUM_REQUIRED_FREE_SPACE_BYTES (1024 * 1024 * 100)
DISABLE_VS_WARNINGS(4355)
#undef LOG_DEFAULT_CHANNEL
#define LOG_DEFAULT_CHANNEL "core"
@ -136,6 +138,9 @@ namespace currency
{
bool r = handle_command_line(vm);
uint64_t available_space = 0;
CHECK_AND_ASSERT_MES(!check_if_free_space_critically_low(&available_space), false, "free space in data folder is critically low: " << std::fixed << available_space / (1024 * 1024) << " MB");
r = m_mempool.init(m_config_folder);
CHECK_AND_ASSERT_MES(r, false, "Failed to initialize memory pool");
@ -710,18 +715,23 @@ namespace currency
l->on_blockchain_update();
}
//-----------------------------------------------------------------------------------------------
#define MINIMUM_REQUIRED_FREE_SPACE_BYTES (1024 * 1024 * 100)
void core::check_free_space()
bool core::check_if_free_space_critically_low(uint64_t* p_available_space /* = nullptr */)
{
boost::filesystem::space_info si = boost::filesystem::space(m_config_folder);
if (p_available_space != nullptr)
*p_available_space = si.available;
return si.available < MINIMUM_REQUIRED_FREE_SPACE_BYTES;
}
if (si.available < MINIMUM_REQUIRED_FREE_SPACE_BYTES)
{
m_critical_error_handler->on_critical_low_free_space(si.available, MINIMUM_REQUIRED_FREE_SPACE_BYTES);
}
void core::check_free_space()
{
if (!m_critical_error_handler)
return;
uint64_t available_space = 0;
if (check_if_free_space_critically_low(&available_space))
m_critical_error_handler->on_critical_low_free_space(available_space, MINIMUM_REQUIRED_FREE_SPACE_BYTES);
}
//-----------------------------------------------------------------------------------------------
}
#undef LOG_DEFAULT_CHANNEL
#define LOG_DEFAULT_CHANNEL NULL

View file

@ -136,8 +136,9 @@ namespace currency
void notify_blockchain_update_listeners();
bool check_if_free_space_critically_low(uint64_t* p_available_space = nullptr);
void check_free_space();
blockchain_storage m_blockchain_storage;
tx_memory_pool m_mempool;

View file

@ -107,21 +107,54 @@ namespace currency
out_amounts.resize(out_amounts.size() - 1);
}
std::vector<tx_destination_entry> destinations;
for (auto a : out_amounts)
{
tx_destination_entry de;
tx_destination_entry de = AUTO_VAL_INIT(de);
de.addr.push_back(miner_address);
de.amount = a;
if (pe.stake_unlock_time && pe.stake_unlock_time > height + CURRENCY_MINED_MONEY_UNLOCK_WINDOW)
{
//this means that block is creating after hardfork_1 and unlock_time is needed to set for every destination separately
de.unlock_time = height + CURRENCY_MINED_MONEY_UNLOCK_WINDOW;
}
destinations.push_back(de);
}
if (pos)
destinations.push_back(tx_destination_entry(pe.amount, stakeholder_address));
{
uint64_t stake_lock_time = 0;
if (pe.stake_unlock_time && pe.stake_unlock_time > height + CURRENCY_MINED_MONEY_UNLOCK_WINDOW)
stake_lock_time = pe.stake_unlock_time;
destinations.push_back(tx_destination_entry(pe.amount, stakeholder_address, stake_lock_time));
}
return construct_miner_tx(height, median_size, already_generated_coins, current_block_size, fee, destinations, tx, extra_nonce, max_outs, pos, pe);
}
//------------------------------------------------------------------
bool apply_unlock_time(const std::vector<tx_destination_entry>& destinations, transaction& tx)
{
currency::etc_tx_details_unlock_time2 unlock_time2 = AUTO_VAL_INIT(unlock_time2);
unlock_time2.unlock_time_array.resize(destinations.size());
bool found_unlock_time = false;
for (size_t i = 0; i != unlock_time2.unlock_time_array.size(); i++)
{
if (destinations[i].unlock_time)
{
found_unlock_time = true;
unlock_time2.unlock_time_array[i] = destinations[i].unlock_time;
}
}
if (found_unlock_time)
{
tx.extra.push_back(unlock_time2);
}
return true;
}
//------------------------------------------------------------------
bool construct_miner_tx(size_t height, size_t median_size, const boost::multiprecision::uint128_t& already_generated_coins,
size_t current_block_size,
uint64_t fee,
@ -144,9 +177,12 @@ namespace currency
if (!add_tx_extra_userdata(tx, extra_nonce))
return false;
//at this moment we do apply_unlock_time only for coin_base transactions
apply_unlock_time(destinations, tx);
//we always add extra_padding with 2 bytes length to make possible for get_block_template to adjust cumulative size
tx.extra.push_back(extra_padding());
txin_gen in;
in.height = height;
tx.vin.push_back(in);
@ -171,10 +207,15 @@ namespace currency
CHECK_AND_ASSERT_MES(r, false, "Failed to contruct miner tx out");
no++;
}
tx.version = CURRENT_TRANSACTION_VERSION;
set_tx_unlock_time(tx, height + CURRENCY_MINED_MONEY_UNLOCK_WINDOW);
if (!have_type_in_variant_container<etc_tx_details_unlock_time2>(tx.extra))
{
//if stake unlock time was not set, then we can use simple "whole transaction" lock scheme
set_tx_unlock_time(tx, height + CURRENCY_MINED_MONEY_UNLOCK_WINDOW);
}
return true;
}
//---------------------------------------------------------------
@ -891,16 +932,7 @@ namespace currency
}
return n;
}
//---------------------------------------------------------------
account_public_address get_crypt_address_from_destinations(const account_keys& sender_account_keys, const std::vector<tx_destination_entry>& destinations)
{
for (const auto& de : destinations)
{
if (de.addr.size() == 1 && sender_account_keys.m_account_address != de.addr.back())
return de.addr.back(); // return the first destination address that is non-multisig and not equal to the sender's address
}
return sender_account_keys.m_account_address; // otherwise, fallback to sender's address
}
//---------------------------------------------------------------
bool construct_tx(const account_keys& sender_account_keys,
const std::vector<tx_source_entry>& sources,
@ -1304,7 +1336,7 @@ namespace currency
bool get_inputs_money_amount(const transaction& tx, uint64_t& money)
{
money = 0;
BOOST_FOREACH(const auto& in, tx.vin)
for(const auto& in : tx.vin)
{
uint64_t this_amount = get_amount_from_variant(in);
if (!this_amount)
@ -1328,7 +1360,7 @@ namespace currency
//---------------------------------------------------------------
bool check_inputs_types_supported(const transaction& tx)
{
BOOST_FOREACH(const auto& in, tx.vin)
for(const auto& in : tx.vin)
{
CHECK_AND_ASSERT_MES(in.type() == typeid(txin_to_key) || in.type() == typeid(txin_multisig), false, "wrong variant type: "
<< in.type().name() << ", expected " << typeid(txin_to_key).name()
@ -1828,9 +1860,7 @@ namespace currency
//for future forks
std::cout << "Currency name: \t\t" << CURRENCY_NAME << "(" << CURRENCY_NAME_SHORT << ")" << std::endl;
std::cout << "Money supply: \t\t" << print_money(TOTAL_MONEY_SUPPLY) << " coins"
<< "(" << print_money(TOTAL_MONEY_SUPPLY) << "), dev bounties is ???" << std::endl;
std::cout << "Money supply: \t\t " << CURRENCY_BLOCK_REWARD * CURRENCY_BLOCKS_PER_DAY * 365 << " coins per year" << std::endl;
std::cout << "PoS block interval: \t" << DIFFICULTY_POS_TARGET << " seconds" << std::endl;
std::cout << "PoW block interval: \t" << DIFFICULTY_POW_TARGET << " seconds" << std::endl;
std::cout << "Total blocks per day: \t" << CURRENCY_BLOCKS_PER_DAY << " seconds" << std::endl;
@ -1874,8 +1904,8 @@ namespace currency
//string_tools::parse_hexstr_to_binbuff(genesis_coinbase_tx_hex, tx_bl);
bool r = parse_and_validate_tx_from_blob(tx_bl, bl.miner_tx);
CHECK_AND_ASSERT_MES(r, false, "failed to parse coinbase tx from hard coded blob");
bl.major_version = CURRENT_BLOCK_MAJOR_VERSION;
bl.minor_version = CURRENT_BLOCK_MINOR_VERSION;
bl.major_version = BLOCK_MAJOR_VERSION_GENESIS;
bl.minor_version = BLOCK_MINOR_VERSION_GENESIS;
bl.timestamp = 0;
bl.nonce = CURRENCY_GENESIS_NONCE;
LOG_PRINT_GREEN("Generated genesis: " << get_block_hash(bl), LOG_LEVEL_0);
@ -2081,6 +2111,20 @@ namespace currency
return true;
}
bool operator()(const etc_tx_details_unlock_time2& ee)
{
tv.type = "unlock_time";
std::stringstream ss;
ss << "[";
for (auto v : ee.unlock_time_array)
{
ss << " " << v;
}
ss << "]";
tv.short_view = ss.str();
return true;
}
bool operator()(const etc_tx_details_expiration_time& ee)
{
tv.type = "expiration_time";
@ -2524,16 +2568,6 @@ namespace currency
{
return epee::string_tools::parse_hexstr_to_binbuff(payment_id_str, payment_id);
}
//------------------------------------------------------------------
bool is_tx_expired(const transaction& tx, uint64_t expiration_ts_median)
{
/// tx expiration condition (tx is ok if the following is true)
/// tx_expiration_time - TX_EXPIRATION_MEDIAN_SHIFT > get_last_n_blocks_timestamps_median(TX_EXPIRATION_TIMESTAMP_CHECK_WINDOW)
uint64_t expiration_time = get_tx_expiration_time(tx);
if (expiration_time == 0)
return false; // 0 means it never expires
return expiration_time <= expiration_ts_median + TX_EXPIRATION_MEDIAN_SHIFT;
}
//--------------------------------------------------------------------------------
crypto::hash prepare_prefix_hash_for_sign(const transaction& tx, uint64_t in_index, const crypto::hash& tx_id)
{
@ -2667,4 +2701,41 @@ namespace currency
return false;
}
wide_difficulty_type get_a_to_b_relative_cumulative_difficulty(const wide_difficulty_type& difficulty_pos_at_split_point,
const wide_difficulty_type& difficulty_pow_at_split_point,
const difficulties& a_diff,
const difficulties& b_diff )
{
static const wide_difficulty_type difficulty_starter = DIFFICULTY_STARTER;
const wide_difficulty_type& a_pos_cumulative_difficulty = a_diff.pos_diff > 0 ? a_diff.pos_diff : difficulty_starter;
const wide_difficulty_type& b_pos_cumulative_difficulty = b_diff.pos_diff > 0 ? b_diff.pos_diff : difficulty_starter;
const wide_difficulty_type& a_pow_cumulative_difficulty = a_diff.pow_diff > 0 ? a_diff.pow_diff : difficulty_starter;
const wide_difficulty_type& b_pow_cumulative_difficulty = b_diff.pow_diff > 0 ? b_diff.pow_diff : difficulty_starter;
boost::multiprecision::uint1024_t basic_sum = boost::multiprecision::uint1024_t(a_pow_cumulative_difficulty) + (boost::multiprecision::uint1024_t(a_pos_cumulative_difficulty)*difficulty_pow_at_split_point) / difficulty_pos_at_split_point;
boost::multiprecision::uint1024_t res =
(basic_sum * a_pow_cumulative_difficulty * a_pos_cumulative_difficulty) / (boost::multiprecision::uint1024_t(b_pow_cumulative_difficulty)*b_pos_cumulative_difficulty);
if (res > boost::math::tools::max_value<wide_difficulty_type>())
{
ASSERT_MES_AND_THROW("[INTERNAL ERROR]: Failed to get_a_to_b_relative_cumulative_difficulty, res = " << res << ENDL
<< ", difficulty_pos_at_split_point: " << difficulty_pos_at_split_point << ENDL
<< ", difficulty_pow_at_split_point:" << difficulty_pow_at_split_point << ENDL
<< ", a_pos_cumulative_difficulty:" << a_pos_cumulative_difficulty << ENDL
<< ", b_pos_cumulative_difficulty:" << b_pos_cumulative_difficulty << ENDL
<< ", a_pow_cumulative_difficulty:" << a_pow_cumulative_difficulty << ENDL
<< ", b_pow_cumulative_difficulty:" << b_pow_cumulative_difficulty << ENDL
);
}
TRY_ENTRY();
wide_difficulty_type short_res = res.convert_to<wide_difficulty_type>();
return short_res;
CATCH_ENTRY_WITH_FORWARDING_EXCEPTION();
}
} // namespace currency

View file

@ -59,55 +59,7 @@ namespace currency
typedef boost::multiprecision::uint128_t uint128_tl;
struct tx_source_entry
{
typedef serializable_pair<txout_v, crypto::public_key> output_entry; // txout_v is either global output index or ref_by_id; public_key - is output ephemeral pub key
std::vector<output_entry> outputs; //index + key
uint64_t real_output; //index in outputs vector of real output_entry
crypto::public_key real_out_tx_key; //real output's transaction's public key
size_t real_output_in_tx_index; //index in transaction outputs vector
uint64_t amount; //money
uint64_t transfer_index; //money
crypto::hash multisig_id; //if txin_multisig: multisig output id
size_t ms_sigs_count; //if txin_multisig: must be equal to output's minimum_sigs
size_t ms_keys_count; //if txin_multisig: must be equal to size of output's keys container
bool separately_signed_tx_complete; //for separately signed tx only: denotes the last source entry in complete tx to explicitly mark the final step of tx creation
bool is_multisig() const { return ms_sigs_count > 0; }
BEGIN_SERIALIZE_OBJECT()
FIELD(outputs)
FIELD(real_output)
FIELD(real_out_tx_key)
FIELD(real_output_in_tx_index)
FIELD(amount)
FIELD(transfer_index)
FIELD(multisig_id)
FIELD(ms_sigs_count)
FIELD(ms_keys_count)
FIELD(separately_signed_tx_complete)
END_SERIALIZE()
};
struct tx_destination_entry
{
uint64_t amount; //money
std::list<account_public_address> addr; //destination address, in case of 1 address - txout_to_key, in case of more - txout_multisig
size_t minimum_sigs; // if txout_multisig: minimum signatures that are required to spend this output (minimum_sigs <= addr.size()) IF txout_to_key - not used
uint64_t amount_to_provide; //amount money that provided by initial creator of tx, used with partially created transactions
tx_destination_entry() : amount(0), minimum_sigs(0), amount_to_provide(0){}
tx_destination_entry(uint64_t a, const account_public_address& ad) : amount(a), addr(1, ad), minimum_sigs(0), amount_to_provide(0){}
tx_destination_entry(uint64_t a, const std::list<account_public_address>& addr) : amount(a), addr(addr), minimum_sigs(addr.size()), amount_to_provide(0){}
BEGIN_SERIALIZE_OBJECT()
FIELD(amount)
FIELD(addr)
FIELD(minimum_sigs)
FIELD(amount_to_provide)
END_SERIALIZE()
};
struct tx_extra_info
{
@ -208,32 +160,6 @@ namespace currency
//---------------------------------------------------------------
template<class extra_type_t>
uint64_t get_tx_x_detail(const transaction& tx)
{
extra_type_t e = AUTO_VAL_INIT(e);
get_type_in_variant_container(tx.extra, e);
return e.v;
}
template<class extra_type_t>
void set_tx_x_detail(transaction& tx, uint64_t v)
{
extra_type_t e = AUTO_VAL_INIT(e);
e.v = v;
update_or_add_field_to_extra(tx.extra, e);
}
inline uint64_t get_tx_unlock_time(const transaction& tx){ return get_tx_x_detail<etc_tx_details_unlock_time>(tx);}
inline uint64_t get_tx_flags(const transaction& tx){ return get_tx_x_detail<etc_tx_details_flags>(tx); }
inline uint64_t get_tx_expiration_time(const transaction& tx){ return get_tx_x_detail<etc_tx_details_expiration_time>(tx); }
inline void set_tx_unlock_time(transaction& tx, uint64_t v){ set_tx_x_detail<etc_tx_details_unlock_time>(tx, v); }
inline void set_tx_flags(transaction& tx, uint64_t v){ set_tx_x_detail<etc_tx_details_flags>(tx, v); }
inline void set_tx_expiration_time(transaction& tx, uint64_t v){ set_tx_x_detail<etc_tx_details_expiration_time>(tx, v); }
account_public_address get_crypt_address_from_destinations(const account_keys& sender_account_keys, const std::vector<tx_destination_entry>& destinations);
bool is_tx_expired(const transaction& tx, uint64_t expiration_ts_median);
uint64_t get_string_uint64_hash(const std::string& str);
bool construct_tx_out(const tx_destination_entry& de, const crypto::secret_key& tx_sec_key, size_t output_index, transaction& tx, std::set<uint16_t>& deriv_cache, uint8_t tx_outs_attr = CURRENCY_TO_KEY_OUT_RELAXED);
bool validate_alias_name(const std::string& al);
@ -317,6 +243,7 @@ namespace currency
bool parse_amount(uint64_t& amount, const std::string& str_amount);
bool unserialize_block_complete_entry(const COMMAND_RPC_GET_BLOCKS_FAST::response& serialized,
COMMAND_RPC_GET_BLOCKS_DIRECT::response& unserialized);
@ -670,6 +597,19 @@ namespace currency
std::string utf8_to_upper(const std::string& s);
std::string utf8_to_lower(const std::string& s);
bool utf8_substring_test_case_insensitive(const std::string& match, const std::string& s); // Returns true is 's' contains 'match' (case-insensitive)
struct difficulties
{
wide_difficulty_type pos_diff;
wide_difficulty_type pow_diff;
};
wide_difficulty_type get_a_to_b_relative_cumulative_difficulty(const wide_difficulty_type& difficulty_pos_at_split_point,
const wide_difficulty_type& difficulty_pow_at_split_point,
const difficulties& a_diff,
const difficulties& b_diff
);
} // namespace currency

View file

@ -6,6 +6,7 @@
#include "currency_format_utils_blocks.h"
#include "serialization/serialization.h"
#include "currency_format_utils.h"
#include "currency_format_utils_abstract.h"
#include "currency_format_utils_transactions.h"
namespace currency

View file

@ -6,11 +6,127 @@
#include "currency_format_utils_transactions.h"
#include "serialization/serialization.h"
#include "currency_format_utils_abstract.h"
#include "currency_format_utils.h"
#include "currency_format_utils_abstract.h"
namespace currency
{
//---------------------------------------------------------------
account_public_address get_crypt_address_from_destinations(const account_keys& sender_account_keys, const std::vector<tx_destination_entry>& destinations)
{
for (const auto& de : destinations)
{
if (de.addr.size() == 1 && sender_account_keys.m_account_address != de.addr.back())
return de.addr.back(); // return the first destination address that is non-multisig and not equal to the sender's address
}
return sender_account_keys.m_account_address; // otherwise, fallback to sender's address
}
//------------------------------------------------------------------
bool is_tx_expired(const transaction& tx, uint64_t expiration_ts_median)
{
/// tx expiration condition (tx is ok if the following is true)
/// tx_expiration_time - TX_EXPIRATION_MEDIAN_SHIFT > get_last_n_blocks_timestamps_median(TX_EXPIRATION_TIMESTAMP_CHECK_WINDOW)
uint64_t expiration_time = get_tx_expiration_time(tx);
if (expiration_time == 0)
return false; // 0 means it never expires
return expiration_time <= expiration_ts_median + TX_EXPIRATION_MEDIAN_SHIFT;
}
//---------------------------------------------------------------
uint64_t get_burned_amount(const transaction& tx)
{
uint64_t res = 0;
for (auto& o : tx.vout)
{
if (o.target.type() == typeid(txout_to_key))
{
if (boost::get<txout_to_key>(o.target).key == null_pkey)
res += o.amount;
}
}
return res;
}
//---------------------------------------------------------------
uint64_t get_tx_max_unlock_time(const transaction& tx)
{
// etc_tx_details_unlock_time have priority over etc_tx_details_unlock_time2
uint64_t v = get_tx_x_detail<etc_tx_details_unlock_time>(tx);
if (v)
return v;
etc_tx_details_unlock_time2 ut2 = AUTO_VAL_INIT(ut2);
get_type_in_variant_container(tx.extra, ut2);
if (!ut2.unlock_time_array.size())
return 0;
uint64_t max_unlock_time = 0;
CHECK_AND_ASSERT_THROW_MES(ut2.unlock_time_array.size() == tx.vout.size(), "unlock_time_array.size=" << ut2.unlock_time_array.size()
<< " is not the same as tx.vout.size =" << tx.vout.size() << " in tx: " << get_transaction_hash(tx));
for (size_t i = 0; i != tx.vout.size(); i++)
{
if (ut2.unlock_time_array[i] > max_unlock_time)
max_unlock_time = ut2.unlock_time_array[i];
}
return max_unlock_time;
}
//---------------------------------------------------------------
uint64_t get_tx_unlock_time(const transaction& tx, uint64_t o_i)
{
// etc_tx_details_expiration_time have priority over etc_tx_details_expiration_time2
uint64_t v = get_tx_x_detail<etc_tx_details_unlock_time>(tx);
if (v)
return v;
CHECK_AND_ASSERT_THROW_MES(tx.vout.size() > o_i, "tx.vout.size=" << tx.vout.size()
<< " is not bigger then o_i=" << o_i << " in tx: " << get_transaction_hash(tx));
etc_tx_details_unlock_time2 ut2 = AUTO_VAL_INIT(ut2);
get_type_in_variant_container(tx.extra, ut2);
if (!ut2.unlock_time_array.size())
return 0;
CHECK_AND_ASSERT_THROW_MES(ut2.unlock_time_array.size() > o_i, "unlock_time_array.size=" << ut2.unlock_time_array.size()
<< " is less or equal to o_i=" << o_i << " in tx: " << get_transaction_hash(tx));
return ut2.unlock_time_array[o_i];
}
//---------------------------------------------------------------
bool get_tx_max_min_unlock_time(const transaction& tx, uint64_t& max_unlock_time, uint64_t& min_unlock_time)
{
max_unlock_time = min_unlock_time = 0;
// etc_tx_details_expiration_time have priority over etc_tx_details_expiration_time2
uint64_t v = get_tx_x_detail<etc_tx_details_unlock_time>(tx);
if (v)
{
max_unlock_time = min_unlock_time = v;
return true;
}
etc_tx_details_unlock_time2 ut2 = AUTO_VAL_INIT(ut2);
get_type_in_variant_container(tx.extra, ut2);
if (!ut2.unlock_time_array.size())
{
return true;
}
CHECK_AND_ASSERT_THROW_MES(ut2.unlock_time_array.size() == tx.vout.size(), "unlock_time_array.size=" << ut2.unlock_time_array.size()
<< " is not equal tx.vout.size()=" << tx.vout.size() << " in tx: " << get_transaction_hash(tx));
if (ut2.unlock_time_array.size())
{
max_unlock_time = min_unlock_time = ut2.unlock_time_array[0];
for (size_t i = 1; i != ut2.unlock_time_array.size(); i++)
{
if (ut2.unlock_time_array[i] > max_unlock_time)
max_unlock_time = ut2.unlock_time_array[i];
if (ut2.unlock_time_array[i] < min_unlock_time)
min_unlock_time = ut2.unlock_time_array[i];
}
}
return true;
}
//---------------------------------------------------------------
void get_transaction_prefix_hash(const transaction_prefix& tx, crypto::hash& h)
{

View file

@ -9,10 +9,93 @@
#include "crypto/crypto.h"
#include "currency_core/currency_basic.h"
#include "currency_protocol/blobdatatype.h"
#include "currency_core/account.h"
namespace currency
{
struct tx_source_entry
{
typedef serializable_pair<txout_v, crypto::public_key> output_entry; // txout_v is either global output index or ref_by_id; public_key - is output ephemeral pub key
std::vector<output_entry> outputs; //index + key
uint64_t real_output; //index in outputs vector of real output_entry
crypto::public_key real_out_tx_key; //real output's transaction's public key
size_t real_output_in_tx_index; //index in transaction outputs vector
uint64_t amount; //money
uint64_t transfer_index; //money
crypto::hash multisig_id; //if txin_multisig: multisig output id
size_t ms_sigs_count; //if txin_multisig: must be equal to output's minimum_sigs
size_t ms_keys_count; //if txin_multisig: must be equal to size of output's keys container
bool separately_signed_tx_complete; //for separately signed tx only: denotes the last source entry in complete tx to explicitly mark the final step of tx creation
bool is_multisig() const { return ms_sigs_count > 0; }
BEGIN_SERIALIZE_OBJECT()
FIELD(outputs)
FIELD(real_output)
FIELD(real_out_tx_key)
FIELD(real_output_in_tx_index)
FIELD(amount)
FIELD(transfer_index)
FIELD(multisig_id)
FIELD(ms_sigs_count)
FIELD(ms_keys_count)
FIELD(separately_signed_tx_complete)
END_SERIALIZE()
};
struct tx_destination_entry
{
uint64_t amount; //money
std::list<account_public_address> addr; //destination address, in case of 1 address - txout_to_key, in case of more - txout_multisig
size_t minimum_sigs; // if txout_multisig: minimum signatures that are required to spend this output (minimum_sigs <= addr.size()) IF txout_to_key - not used
uint64_t amount_to_provide; //amount money that provided by initial creator of tx, used with partially created transactions
uint64_t unlock_time;
tx_destination_entry() : amount(0), minimum_sigs(0), amount_to_provide(0), unlock_time(0){}
tx_destination_entry(uint64_t a, const account_public_address& ad) : amount(a), addr(1, ad), minimum_sigs(0), amount_to_provide(0), unlock_time(0){}
tx_destination_entry(uint64_t a, const account_public_address& ad, uint64_t ut) : amount(a), addr(1, ad), minimum_sigs(0), amount_to_provide(0), unlock_time(ut) {}
tx_destination_entry(uint64_t a, const std::list<account_public_address>& addr) : amount(a), addr(addr), minimum_sigs(addr.size()), amount_to_provide(0), unlock_time(0){}
BEGIN_SERIALIZE_OBJECT()
FIELD(amount)
FIELD(addr)
FIELD(minimum_sigs)
FIELD(amount_to_provide)
FIELD(unlock_time)
END_SERIALIZE()
};
template<class extra_type_t>
uint64_t get_tx_x_detail(const transaction& tx)
{
extra_type_t e = AUTO_VAL_INIT(e);
get_type_in_variant_container(tx.extra, e);
return e.v;
}
template<class extra_type_t>
void set_tx_x_detail(transaction& tx, uint64_t v)
{
extra_type_t e = AUTO_VAL_INIT(e);
e.v = v;
update_or_add_field_to_extra(tx.extra, e);
}
uint64_t get_tx_unlock_time(const transaction& tx, uint64_t o_i);
uint64_t get_tx_max_unlock_time(const transaction& tx);
bool get_tx_max_min_unlock_time(const transaction& tx, uint64_t& max_unlock_time, uint64_t& min_unlock_time);
inline bool should_unlock_value_be_treated_as_block_height(uint64_t v) { return v < CURRENCY_MAX_BLOCK_NUMBER; }
inline uint64_t get_tx_flags(const transaction& tx) { return get_tx_x_detail<etc_tx_details_flags>(tx); }
inline uint64_t get_tx_expiration_time(const transaction& tx) {return get_tx_x_detail<etc_tx_details_expiration_time>(tx); }
inline void set_tx_unlock_time(transaction& tx, uint64_t v) { set_tx_x_detail<etc_tx_details_unlock_time>(tx, v); }
inline void set_tx_flags(transaction& tx, uint64_t v) { set_tx_x_detail<etc_tx_details_flags>(tx, v); }
inline void set_tx_expiration_time(transaction& tx, uint64_t v) { set_tx_x_detail<etc_tx_details_expiration_time>(tx, v); }
account_public_address get_crypt_address_from_destinations(const account_keys& sender_account_keys, const std::vector<tx_destination_entry>& destinations);
bool is_tx_expired(const transaction& tx, uint64_t expiration_ts_median);
uint64_t get_burned_amount(const transaction& tx);
void get_transaction_prefix_hash(const transaction_prefix& tx, crypto::hash& h);
crypto::hash get_transaction_prefix_hash(const transaction_prefix& tx);
bool parse_and_validate_tx_from_blob(const blobdata& tx_blob, transaction& tx, crypto::hash& tx_hash);
@ -24,4 +107,4 @@ namespace currency
size_t get_object_blobsize(const transaction& t, uint64_t prefix_blob_size);
blobdata tx_to_blob(const transaction& b);
bool tx_to_blob(const transaction& b, blobdata& b_blob);
}
}

View file

@ -179,7 +179,7 @@ namespace currency {
return res.convert_to<wide_difficulty_type>();
}
wide_difficulty_type next_difficulty(vector<uint64_t>& timestamps, vector<wide_difficulty_type>& cumulative_difficulties, size_t target_seconds)
wide_difficulty_type next_difficulty_1(vector<uint64_t>& timestamps, vector<wide_difficulty_type>& cumulative_difficulties, size_t target_seconds)
{
// timestamps - first is latest, back - is oldest timestamps
@ -220,4 +220,40 @@ namespace currency {
}
return summ / devider;
}
wide_difficulty_type next_difficulty_2(vector<uint64_t>& timestamps, vector<wide_difficulty_type>& cumulative_difficulties, size_t target_seconds)
{
// timestamps - first is latest, back - is oldest timestamps
if (timestamps.size() > DIFFICULTY_WINDOW)
{
timestamps.resize(DIFFICULTY_WINDOW);
cumulative_difficulties.resize(DIFFICULTY_WINDOW);
}
size_t length = timestamps.size();
CHECK_AND_ASSERT_MES(length == cumulative_difficulties.size(), 0, "Check \"length == cumulative_difficulties.size()\" failed");
if (length <= 1)
{
return DIFFICULTY_STARTER;
}
static_assert(DIFFICULTY_WINDOW >= 2, "Window is too small");
CHECK_AND_ASSERT_MES(length <= DIFFICULTY_WINDOW, 0, "length <= DIFFICULTY_WINDOW check failed, length=" << length);
sort(timestamps.begin(), timestamps.end(), std::greater<uint64_t>());
static_assert(2 * DIFFICULTY_CUT <= DIFFICULTY_WINDOW - 2, "Cut length is too large");
wide_difficulty_type dif_slow = get_adjustment_for_zone(timestamps, cumulative_difficulties, target_seconds, DIFFICULTY_WINDOW, DIFFICULTY_CUT / 2, DIFFICULTY_CUT / 2);
wide_difficulty_type dif_medium = get_adjustment_for_zone(timestamps, cumulative_difficulties, target_seconds, DIFFICULTY_WINDOW / 3, DIFFICULTY_CUT / 8, DIFFICULTY_CUT / 12);
uint64_t devider = 1;
wide_difficulty_type summ = dif_slow;
if (dif_medium != 0)
{
summ += dif_medium;
++devider;
}
return summ / devider;
}
}

View file

@ -19,7 +19,8 @@ namespace currency
typedef boost::multiprecision::uint128_t wide_difficulty_type;
bool check_hash(const crypto::hash &hash, wide_difficulty_type difficulty);
wide_difficulty_type next_difficulty(std::vector<std::uint64_t>& timestamps, std::vector<wide_difficulty_type>& cumulative_difficulties, size_t target_seconds);
wide_difficulty_type next_difficulty_1(std::vector<std::uint64_t>& timestamps, std::vector<wide_difficulty_type>& cumulative_difficulties, size_t target_seconds);
wide_difficulty_type next_difficulty_2(std::vector<std::uint64_t>& timestamps, std::vector<wide_difficulty_type>& cumulative_difficulties, size_t target_seconds);
uint64_t difficulty_to_boundary(wide_difficulty_type difficulty);
void difficulty_to_boundary_long(wide_difficulty_type difficulty, crypto::hash& result);
}

View file

@ -15,9 +15,6 @@ namespace currency
const genesis_tx_raw_data ggenesis_tx_raw = {{
0xd880800500000101,0x0301f2ee9fa8ff8a,0xac88983c159856b0,0x6334c7d1b567f262,0x284f7f961a7b1266,0x8c0c68c45bab62fc,0xe1dea6fe84808000,0x337be98b45240311,0xab6cd1e4c66e5a33,0x70e889d98e70fd57,0xb97de43fb09861d4,0xf9f0cde08000d574,0x0270187703048dba,0xcac58027c0851473,0xaa10d864c4c87b46,0x820d371e2ba469e8,0xfea08000fce35acc,0x357903049598bddf,0x15df9e58bd0002aa,0xc940a97b60484e8d,0xf94f171e77d0b2d9,0x80003602c681487a,0x0304c38fbab1f8e0,0xc2529eba91cf7476,0x0bbee139aab295f9,0xf1cb8c58a828a2ca,0xcac8f5469af83932,0x5c8a1027cc160900,0x50bdcc9348baf32a,0xa7bd03751819d9fd,0xd6acc8dbbb0d9b29,0x3730614013368b02,0x3533316236333234,0x6264356431303934,0x6361306339323063,0x3834396335306334,0x3366343363323831,0x3062323366303330,0x6237656561333963,0x1700156335373261,0xce5017baa917a8f0,0x0a0eefcc17975617},
{0x00,0x00}};
#endif
}

View file

@ -19,18 +19,17 @@
#include "misc_language.h"
#include "warnings.h"
#include "crypto/hash.h"
#include "offers_service_basics.h"
#include "profile_tools.h"
DISABLE_VS_WARNINGS(4244 4345 4503) //'boost::foreach_detail_::or_' : decorated name length exceeded, name was truncated
#define TRANSACTION_POOL_CONTAINER_TRANSACTIONS "transactions"
#define TRANSACTION_POOL_CONTAINER_CANCEL_OFFER_HASH "cancel_offer_hash"
#define TRANSACTION_POOL_CONTAINER_BLACK_TX_LIST "black_tx_list"
#define TRANSACTION_POOL_CONTAINER_ALIAS_NAMES "alias_names"
#define TRANSACTION_POOL_CONTAINER_ALIAS_ADDRESSES "alias_addresses"
#define TRANSACTION_POOL_CONTAINER_KEY_IMAGES "key_images"
#define TRANSACTION_POOL_CONTAINER_SOLO_OPTIONS "solo"
#define TRANSACTION_POOL_OPTIONS_ID_STORAGE_MAJOR_COMPATIBILITY_VERSION 92 // DON'T CHANGE THIS, if you need to resync db! Change TRANSACTION_POOL_MAJOR_COMPATIBILITY_VERSION instead!
#define TRANSACTION_POOL_MAJOR_COMPATIBILITY_VERSION BLOCKCHAIN_STORAGE_MAJOR_COMPATIBILITY_VERSION + 1
#undef LOG_DEFAULT_CHANNEL
@ -45,13 +44,12 @@ namespace currency
m_pprotocol(pprotocol),
m_db(std::shared_ptr<tools::db::i_db_backend>(new tools::db::lmdb_db_backend), m_dummy_rw_lock),
m_db_transactions(m_db),
m_db_cancel_offer_hash(m_db),
m_db_black_tx_list(m_db),
m_db_solo_options(m_db),
m_db_key_images_set(m_db),
m_db_alias_names(m_db),
m_db_alias_addresses(m_db),
m_db_storage_major_compatibility_version(TRANSACTION_POOL_MAJOR_COMPATIBILITY_VERSION, m_db_solo_options)
m_db_storage_major_compatibility_version(TRANSACTION_POOL_OPTIONS_ID_STORAGE_MAJOR_COMPATIBILITY_VERSION, m_db_solo_options)
{
}
@ -157,19 +155,7 @@ namespace currency
uint64_t tx_fee = inputs_amount - outputs_amount;
if (tx_fee < m_blockchain.get_core_runtime_config().tx_pool_min_fee)
{
//exception for cancel offer transactions
if (process_cancel_offer_rules(tx))
{
// this tx has valid offer cansellation instructions and thus can go for free
// check soft size constrain
if (blob_size > CURRENCY_FREE_TX_MAX_BLOB_SIZE)
{
LOG_ERROR("Blob size (" << blob_size << ") << exceeds limit for transaction " << id << " that contains offer cancellation and has smaller fee (" << tx_fee << ") than expected");
tvc.m_verification_failed = true;
return false;
}
}
else if (is_valid_contract_finalization_tx(tx))
if (is_valid_contract_finalization_tx(tx))
{
// that means tx has less fee then allowed by current tx pull rules, but this transaction is actually
// a finalization of contract, and template of this contract finalization tx was prepared actually before
@ -177,7 +163,7 @@ namespace currency
}
else
{
// this tx has no fee OR invalid offer cancellations instructions -- so the exceptions of zero fee is not applicable
// this tx has no fee
LOG_ERROR("Transaction with id= " << id << " has too small fee: " << tx_fee << ", expected fee: " << m_blockchain.get_core_runtime_config().tx_pool_min_fee);
tvc.m_verification_failed = false;
tvc.m_should_be_relayed = false;
@ -288,80 +274,7 @@ namespace currency
CRITICAL_REGION_LOCAL(m_taken_txs_lock);
m_taken_txs.clear();
}
//---------------------------------------------------------------------------------
bool tx_memory_pool::process_cancel_offer_rules(const transaction& tx)
{
//TODO: this code doesn't take into account offer id in source tx
//TODO: add scan on tx size for free transaction here
m_db_transactions.begin_transaction();
misc_utils::auto_scope_leave_caller seh = misc_utils::create_scope_leave_handler([&](){m_db_transactions.commit_transaction(); });
size_t serv_att_count = 0;
std::list<bc_services::cancel_offer> co_list;
for (const auto& a: tx.attachment)
{
if (a.type() == typeid(tx_service_attachment))
{
const tx_service_attachment& srv_at = boost::get<tx_service_attachment>(a);
if (srv_at.service_id == BC_OFFERS_SERVICE_ID && srv_at.instruction == BC_OFFERS_SERVICE_INSTRUCTION_DEL)
{
if (!m_blockchain.validate_tx_service_attachmens_in_services(srv_at, serv_att_count, tx))
{
LOG_ERROR("validate_tx_service_attachmens_in_services failed for an offer cancellation transaction");
return false;
}
bc_services::extract_type_and_add<bc_services::cancel_offer>(srv_at.body, co_list);
if (m_db_cancel_offer_hash.get(co_list.back().tx_id))
{
LOG_ERROR("cancellation of offer " << co_list.back().tx_id << " has already been processed earlier; zero fee is disallowed");
return false;
}
}
serv_att_count++;
}
}
if (!co_list.size())
{
LOG_PRINT_L1("No cancel offers found");
return false;
}
for (auto co : co_list)
{
m_db_cancel_offer_hash.set(co.tx_id, true);
}
return true;
}
//---------------------------------------------------------------------------------
bool tx_memory_pool::unprocess_cancel_offer_rules(const transaction& tx)
{
m_db_transactions.begin_transaction();
misc_utils::auto_scope_leave_caller seh = misc_utils::create_scope_leave_handler([&](){m_db_transactions.commit_transaction(); });
std::list<bc_services::cancel_offer> co_list;
for (const auto& a : tx.attachment)
{
if (a.type() == typeid(tx_service_attachment))
{
const tx_service_attachment& srv_at = boost::get<tx_service_attachment>(a);
if (srv_at.service_id == BC_OFFERS_SERVICE_ID && srv_at.instruction == BC_OFFERS_SERVICE_INSTRUCTION_DEL)
{
co_list.clear();
bc_services::extract_type_and_add<bc_services::cancel_offer>(srv_at.body, co_list);
if (!co_list.size())
return false;
auto vptr = m_db_cancel_offer_hash.find(co_list.back().tx_id);
if (vptr == m_db_cancel_offer_hash.end())
return false;
m_db_cancel_offer_hash.erase(co_list.back().tx_id);
}
}
}
return true;
}
// //---------------------------------------------------------------------------------
//---------------------------------------------------------------------------------
bool tx_memory_pool::get_aliases_from_tx_pool(std::list<extra_alias_entry>& aliases)const
{
@ -467,7 +380,6 @@ namespace currency
tx = txe_tr->tx;
blob_size = txe_tr->blob_size;
fee = txe_tr->fee;
unprocess_cancel_offer_rules(txe_tr->tx);
m_db_transactions.erase(id);
on_tx_remove(tx, txe_tr->kept_by_block);
set_taken(id);
@ -888,7 +800,6 @@ namespace currency
m_db.begin_transaction();
m_db_transactions.clear();
m_db_key_images_set.clear();
m_db_cancel_offer_hash.clear();
m_db.commit_transaction();
// should m_db_black_tx_list be cleared here?
}
@ -897,7 +808,6 @@ namespace currency
{
m_db.begin_transaction();
m_db_transactions.clear();
m_db_cancel_offer_hash.clear();
m_db_black_tx_list.clear();
m_db_key_images_set.clear();
m_db.commit_transaction();
@ -1199,7 +1109,7 @@ namespace currency
return true;
}
//---------------------------------------------------------------------------------
void tx_memory_pool::initialize_db_solo_options_values()
void tx_memory_pool::store_db_solo_options_values()
{
m_db.begin_transaction();
m_db_storage_major_compatibility_version = TRANSACTION_POOL_MAJOR_COMPATIBILITY_VERSION;
@ -1210,49 +1120,94 @@ namespace currency
{
m_config_folder = config_folder;
uint64_t cache_size = CACHE_SIZE;
LOG_PRINT_GREEN("Using pool db file cache size(L1): " << cache_size, LOG_LEVEL_0);
uint64_t cache_size_l1 = CACHE_SIZE;
LOG_PRINT_GREEN("Using pool db file cache size(L1): " << cache_size_l1, LOG_LEVEL_0);
LOG_PRINT_L0("Loading blockchain...");
const std::string folder_name = m_config_folder + "/" CURRENCY_POOLDATA_FOLDERNAME;
tools::create_directories_if_necessary(folder_name);
bool res = m_db.open(folder_name, cache_size);
CHECK_AND_ASSERT_MES(res, false, "Failed to initialize pool database in folder: " << folder_name);
res = m_db_transactions.init(TRANSACTION_POOL_CONTAINER_TRANSACTIONS);
CHECK_AND_ASSERT_MES(res, false, "Unable to init db container");
res = m_db_key_images_set.init(TRANSACTION_POOL_CONTAINER_KEY_IMAGES);
CHECK_AND_ASSERT_MES(res, false, "Unable to init db container");
res = m_db_cancel_offer_hash.init(TRANSACTION_POOL_CONTAINER_CANCEL_OFFER_HASH);
CHECK_AND_ASSERT_MES(res, false, "Unable to init db container");
res = m_db_black_tx_list.init(TRANSACTION_POOL_CONTAINER_BLACK_TX_LIST);
CHECK_AND_ASSERT_MES(res, false, "Unable to init db container");
res = m_db_alias_names.init(TRANSACTION_POOL_CONTAINER_ALIAS_NAMES);
CHECK_AND_ASSERT_MES(res, false, "Unable to init db container");
res = m_db_alias_addresses.init(TRANSACTION_POOL_CONTAINER_ALIAS_ADDRESSES);
CHECK_AND_ASSERT_MES(res, false, "Unable to init db container");
res = m_db_solo_options.init(TRANSACTION_POOL_CONTAINER_SOLO_OPTIONS);
CHECK_AND_ASSERT_MES(res, false, "Unable to init db container");
m_db_transactions.set_cache_size(1000);
m_db_alias_names.set_cache_size(10000);
m_db_alias_addresses.set_cache_size(10000);
m_db_cancel_offer_hash.set_cache_size(1000);
m_db_black_tx_list.set_cache_size(1000);
bool need_reinit = false;
if (m_db_storage_major_compatibility_version != TRANSACTION_POOL_MAJOR_COMPATIBILITY_VERSION)
need_reinit = true;
if (need_reinit)
// remove old incompartible DB
const std::string old_db_folder_path = m_config_folder + "/" CURRENCY_POOLDATA_FOLDERNAME_OLD;
if (boost::filesystem::exists(old_db_folder_path))
{
clear();
LOG_PRINT_MAGENTA("Tx Pool reinitialized.", LOG_LEVEL_0);
LOG_PRINT_YELLOW("Removing old DB in " << old_db_folder_path << "...", LOG_LEVEL_0);
boost::filesystem::remove_all(old_db_folder_path);
}
initialize_db_solo_options_values();
LOG_PRINT_GREEN("TX_POOL Initialized ok. (" << m_db_transactions.size() << " transactions)", LOG_LEVEL_0);
const std::string db_folder_path = m_config_folder + "/" CURRENCY_POOLDATA_FOLDERNAME;
LOG_PRINT_L0("Loading blockchain from " << db_folder_path << "...");
bool db_opened_okay = false;
for(size_t loading_attempt_no = 0; loading_attempt_no < 2; ++loading_attempt_no)
{
bool res = m_db.open(db_folder_path, cache_size_l1);
if (!res)
{
// if DB could not be opened -- try to remove the whole folder and re-open DB
LOG_PRINT_YELLOW("Failed to initialize database in folder: " << db_folder_path << ", first attempt", LOG_LEVEL_0);
boost::filesystem::remove_all(db_folder_path);
res = m_db.open(db_folder_path, cache_size_l1);
CHECK_AND_ASSERT_MES(res, false, "Failed to initialize database in folder: " << db_folder_path << ", second attempt");
}
res = m_db_transactions.init(TRANSACTION_POOL_CONTAINER_TRANSACTIONS);
CHECK_AND_ASSERT_MES(res, false, "Unable to init db container");
res = m_db_key_images_set.init(TRANSACTION_POOL_CONTAINER_KEY_IMAGES);
CHECK_AND_ASSERT_MES(res, false, "Unable to init db container");
res = m_db_black_tx_list.init(TRANSACTION_POOL_CONTAINER_BLACK_TX_LIST);
CHECK_AND_ASSERT_MES(res, false, "Unable to init db container");
res = m_db_alias_names.init(TRANSACTION_POOL_CONTAINER_ALIAS_NAMES);
CHECK_AND_ASSERT_MES(res, false, "Unable to init db container");
res = m_db_alias_addresses.init(TRANSACTION_POOL_CONTAINER_ALIAS_ADDRESSES);
CHECK_AND_ASSERT_MES(res, false, "Unable to init db container");
res = m_db_solo_options.init(TRANSACTION_POOL_CONTAINER_SOLO_OPTIONS);
CHECK_AND_ASSERT_MES(res, false, "Unable to init db container");
m_db_transactions.set_cache_size(1000);
m_db_alias_names.set_cache_size(10000);
m_db_alias_addresses.set_cache_size(10000);
m_db_black_tx_list.set_cache_size(1000);
bool need_reinit = false;
if (m_db_storage_major_compatibility_version > 0 && m_db_storage_major_compatibility_version != TRANSACTION_POOL_MAJOR_COMPATIBILITY_VERSION)
{
need_reinit = true;
LOG_PRINT_MAGENTA("Tx pool DB needs reinit because it has major compatibility ver is " << m_db_storage_major_compatibility_version << ", expected: " << TRANSACTION_POOL_MAJOR_COMPATIBILITY_VERSION, LOG_LEVEL_0);
}
if (need_reinit)
{
LOG_PRINT_L1("DB at " << db_folder_path << " is about to be deleted and re-created...");
m_db_transactions.deinit();
m_db_key_images_set.deinit();
m_db_black_tx_list.deinit();
m_db_alias_names.deinit();
m_db_alias_addresses.deinit();
m_db_solo_options.deinit();
m_db.close();
size_t files_removed = boost::filesystem::remove_all(db_folder_path);
LOG_PRINT_L1(files_removed << " files at " << db_folder_path << " removed");
// try to re-create DB and re-init containers
continue;
}
db_opened_okay = true;
break;
}
CHECK_AND_ASSERT_MES(db_opened_okay, false, "All attempts to open DB at " << db_folder_path << " failed");
store_db_solo_options_values();
LOG_PRINT_GREEN("tx pool loaded ok from " << db_folder_path << ", loaded " << m_db_transactions.size() << " transactions", LOG_LEVEL_0);
if (epee::log_space::log_singletone::get_log_detalisation_level() >= LOG_LEVEL_2 && m_db_transactions.size() != 0)
{
std::stringstream ss;
m_db_transactions.enumerate_items([&](uint64_t i, const crypto::hash& h, const tx_details &tx_entry)
{
ss << h << " sz: " << std::setw(5) << tx_entry.blob_size << " rcv: " << misc_utils::get_time_interval_string(time(nullptr) - tx_entry.receive_time) << " ago" << ENDL;
return true;
});
LOG_PRINT_L2(ss.str());
}
return true;
}

View file

@ -146,14 +146,12 @@ namespace currency
bool remove_alias_info(const transaction& tx);
bool is_valid_contract_finalization_tx(const transaction &tx)const;
void initialize_db_solo_options_values();
void store_db_solo_options_values();
bool is_transaction_ready_to_go(tx_details& txd, const crypto::hash& id)const;
bool validate_alias_info(const transaction& tx, bool is_in_block)const;
bool get_key_images_from_tx_pool(std::unordered_set<crypto::key_image>& key_images)const;
//bool push_alias_info(const transaction& tx);
//bool pop_alias_info(const transaction& tx);
bool process_cancel_offer_rules(const transaction& tx);
bool unprocess_cancel_offer_rules(const transaction& tx);
bool check_is_taken(const crypto::hash& id) const;
void set_taken(const crypto::hash& id);
void reset_all_taken();
@ -172,7 +170,6 @@ namespace currency
//containers
transactions_container m_db_transactions;
hash_container m_db_cancel_offer_hash;
hash_container m_db_black_tx_list;
key_images_container m_db_key_images_set;
aliases_container m_db_alias_names;

View file

@ -26,6 +26,7 @@ using namespace epee;
#include "common/miniupnp_helper.h"
#include "version.h"
#include "currency_core/core_tools.h"
#include "common/callstack_helper.h"
#include <cstdlib>
@ -108,6 +109,9 @@ int main(int argc, char* argv[])
std::fflush(nullptr); // all open output streams are flushed
});
// setup custom callstack retrieving function
epee::misc_utils::get_callstack(tools::get_callstack);
po::options_description desc_cmd_only("Command line options");
po::options_description desc_cmd_sett("Command line options and settings options", 130, 83);

View file

@ -68,6 +68,7 @@ public:
m_cmd_binder.set_handler("print_block_from_hex_blob", boost::bind(&daemon_commands_handler::print_block_from_hex_blob, this, _1), "Unserialize block from hex binary data to json-like representation");
m_cmd_binder.set_handler("print_tx_from_hex_blob", boost::bind(&daemon_commands_handler::print_tx_from_hex_blob, this, _1), "Unserialize transaction from hex binary data to json-like representation");
m_cmd_binder.set_handler("print_tx_outputs_usage", boost::bind(&daemon_commands_handler::print_tx_outputs_usage, this, _1), "Analyse if tx outputs for involved in subsequent transactions");
m_cmd_binder.set_handler("print_difficulties_of_last_n_blocks", boost::bind(&daemon_commands_handler::print_difficulties_of_last_n_blocks, this, _1), "Print difficulties of last n blocks");
}
@ -696,8 +697,26 @@ private:
m_srv.get_payload_object().get_core().get_blockchain_storage().print_tx_outputs_lookup(tx_hash);
return true;
}
//--------------------------------------------------------------------------------
bool print_difficulties_of_last_n_blocks(const std::vector<std::string>& args)
{
if (args.empty())
{
std::cout << "expected: n - number of blocks to read" << std::endl;
return true;
}
const std::string& amount = args.front();
uint64_t n = 0;
if (!epee::string_tools::get_xtype_from_string(n, amount))
{
std::cout << "unable to convert to number '" << amount << "'" << std::endl;
return true;
}
m_srv.get_payload_object().get_core().get_blockchain_storage().print_last_n_difficulty_numbers(n);
return true;
}
//--------------------------------------------------------------------------------
bool print_pool(const std::vector<std::string>& args)
{

View file

@ -9,13 +9,13 @@
#include "core_fast_rpc_proxy.h"
#include "string_coding.h"
#include "currency_core/core_tools.h"
//#include <codecvt>
#include "common/callstack_helper.h"
#define GET_WALLET_OPT_BY_ID(wallet_id, name) \
#define GET_WALLET_OPT_BY_ID(wallet_id, name) \
CRITICAL_REGION_LOCAL(m_wallets_lock); \
auto it = m_wallets.find(wallet_id); \
if (it == m_wallets.end()) \
return API_RETURN_CODE_WALLET_WRONG_ID; \
if (it == m_wallets.end()) \
return API_RETURN_CODE_WALLET_WRONG_ID; \
auto& name = it->second;
#define GET_WALLET_BY_ID(wallet_id, name) \
@ -85,6 +85,8 @@ bool daemon_backend::init(int argc, char* argv[], view::i_view* pview_handler)
std::fflush(nullptr); // all open output streams are flushed
});
// setup custom callstack retrieving function
epee::misc_utils::get_callstack(tools::get_callstack);
//#if !defined(NDEBUG)
// log_space::log_singletone::add_logger(LOGGER_DEBUGGER, nullptr, nullptr);
@ -427,7 +429,8 @@ void daemon_backend::main_worker(const po::variables_map& m_vm)
//m_pview->update_daemon_status(dsi);
try
{
wo.second.stop = true;
wo.second.major_stop = true;
wo.second.stop_for_refresh = true;
wo.second.w.unlocked_get()->stop();
wo.second.w->get()->store();
@ -541,7 +544,8 @@ void daemon_backend::init_wallet_entry(wallet_vs_options& wo, uint64_t id)
{
wo.wallet_id = id;
wo.do_mining = false;
wo.stop = false;
wo.major_stop = false;
wo.stop_for_refresh = false;
wo.plast_daemon_height = &m_last_daemon_height;
wo.plast_daemon_network_state = &m_last_daemon_network_state;
wo.plast_daemon_is_disconnected = &m_last_daemon_is_disconnected;
@ -551,8 +555,15 @@ void daemon_backend::init_wallet_entry(wallet_vs_options& wo, uint64_t id)
wo.core_conf = currency::get_default_core_runtime_config();
else
wo.core_conf = m_ccore.get_blockchain_storage().get_core_runtime_config();
}
// update wallet log prefix for further usage
{
CRITICAL_REGION_LOCAL(m_wallet_log_prefixes_lock);
if (m_wallet_log_prefixes.size() <= id)
m_wallet_log_prefixes.resize(id + 1);
m_wallet_log_prefixes[id] = std::string("[") + epee::string_tools::num_to_string_fast(id) + ":" + wo.w->get()->get_account().get_public_address_str().substr(0, 6) + "] ";
}
}
std::string daemon_backend::get_tx_pool_info(currency::COMMAND_RPC_GET_POOL_INFO::response& res)
@ -679,7 +690,7 @@ std::string daemon_backend::open_wallet(const std::wstring& path, const std::str
**wo.w = w;
get_wallet_info(wo, owr.wi);
init_wallet_entry(wo, owr.wallet_id);
//update_wallets_info();
return return_code;
}
@ -828,11 +839,17 @@ std::string daemon_backend::close_wallet(size_t wallet_id)
try
{
it->second.stop = true;
it->second.major_stop = true;
it->second.stop_for_refresh = true;
it->second.w.unlocked_get()->stop();
it->second.w->get()->store();
m_wallets.erase(it);
{
CRITICAL_REGION_LOCAL(m_wallet_log_prefixes_lock);
m_wallet_log_prefixes[wallet_id] = std::string("[") + epee::string_tools::num_to_string_fast(wallet_id) + ":CLOSED] ";
}
}
catch (const std::exception& e)
@ -1198,6 +1215,11 @@ std::string daemon_backend::request_cancel_contract(size_t wallet_id, const cryp
//TODO: add some
return API_RETURN_CODE_OK;
}
catch (const tools::error::not_enough_money& e)
{
LOG_ERROR(get_wallet_log_prefix(wallet_id) + "request_cancel_contract error: API_RETURN_CODE_NOT_ENOUGH_MONEY: " << e.what());
return API_RETURN_CODE_NOT_ENOUGH_MONEY;
}
catch (...)
{
return API_RETURN_CODE_FAIL;
@ -1348,7 +1370,7 @@ std::string daemon_backend::cancel_offer(const view::cancel_offer_param& co, cur
GET_WALLET_BY_ID(co.wallet_id, w);
try
{
w->get()->cancel_offer_by_id(co.tx_id, co.no, res_tx);
w->get()->cancel_offer_by_id(co.tx_id, co.no, TX_DEFAULT_FEE, res_tx);
return API_RETURN_CODE_OK;
}
catch (const std::exception& e)
@ -1436,6 +1458,9 @@ void daemon_backend::on_pos_block_found(size_t wallet_id, const currency::block&
}
void daemon_backend::on_sync_progress(size_t wallet_id, const uint64_t& percents)
{
// do not lock m_wallets_lock down the callstack! It will lead to a deadlock, because wallet locked_object is aready locked
// and other threads are usually locks m_wallets_lock before locking wallet's locked_object
view::wallet_sync_progres_param wspp = AUTO_VAL_INIT(wspp);
wspp.progress = percents;
wspp.wallet_id = wallet_id;
@ -1466,8 +1491,9 @@ void daemon_backend::wallet_vs_options::worker_func()
epee::math_helper::once_a_time_seconds<1> scan_pool_interval;
epee::math_helper::once_a_time_seconds<POS_WALLET_MINING_SCAN_INTERVAL> pos_minin_interval;
view::wallet_status_info wsi = AUTO_VAL_INIT(wsi);
while (!stop)
while (!major_stop)
{
stop_for_refresh = false;
try
{
wsi.wallet_state = view::wallet_status_info::wallet_state_ready;
@ -1494,7 +1520,7 @@ void daemon_backend::wallet_vs_options::worker_func()
prepare_wallet_status_info(*this, wsi);
pview->update_wallet_status(wsi);
}
w->get()->refresh(stop);
w->get()->refresh(stop_for_refresh);
w->get()->resend_unconfirmed();
{
auto w_ptr = *w; // get locked exclusive access to the wallet first (it's more likely that wallet is locked for a long time than 'offers')
@ -1526,11 +1552,11 @@ void daemon_backend::wallet_vs_options::worker_func()
});
}
if (stop)
if (major_stop || stop_for_refresh)
break;
//******************************************************************************************
//mining zone
if (do_mining)
if (do_mining && *plast_daemon_network_state == currency::COMMAND_RPC_GET_INFO::daemon_network_state_online)
{
pos_minin_interval.do_call([this](){
tools::wallet2::mining_context ctx = AUTO_VAL_INIT(ctx);
@ -1592,7 +1618,8 @@ void daemon_backend::wallet_vs_options::worker_func()
daemon_backend::wallet_vs_options::~wallet_vs_options()
{
do_mining = false;
stop = true;
major_stop = true;
stop_for_refresh = true;
break_mining_loop = true;
if (miner_thread.joinable())
miner_thread.join();
@ -1600,11 +1627,9 @@ daemon_backend::wallet_vs_options::~wallet_vs_options()
std::string daemon_backend::get_wallet_log_prefix(size_t wallet_id) const
{
CRITICAL_REGION_LOCAL(m_wallets_lock);
auto it = m_wallets.find(wallet_id);
if (it == m_wallets.end())
return std::string("[") + epee::string_tools::num_to_string_fast(wallet_id) + ":???]";
CRITICAL_REGION_LOCAL(m_wallet_log_prefixes_lock);
return std::string("[") + epee::string_tools::num_to_string_fast(wallet_id) + ":" + it->second.w->get()->get_account().get_public_address_str().substr(0, 6) + "]";
CHECK_AND_ASSERT_MES(wallet_id < m_wallet_log_prefixes.size(), std::string("[") + epee::string_tools::num_to_string_fast(wallet_id) + ":???] ", "wallet prefix is not found for id " << wallet_id);
return m_wallet_log_prefixes[wallet_id];
}

View file

@ -56,7 +56,10 @@ public:
currency::core_runtime_config core_conf;
epee::locked_object<std::shared_ptr<tools::wallet2>, wallet_lock_time_watching_policy> w;
std::atomic<bool> do_mining;
std::atomic<bool> stop;
std::atomic<bool> major_stop;
std::atomic<bool> stop_for_refresh; //use separate var for passing to "refresh" member function,
//because it can be changed there due to internal interruption logis
std::atomic<bool> break_mining_loop;
std::atomic<uint64_t> wallet_state;
std::atomic<uint64_t> last_wallet_synch_height;
@ -188,6 +191,8 @@ private:
std::map<size_t, wallet_vs_options> m_wallets;
std::vector<std::string> m_wallet_log_prefixes;
mutable critical_section m_wallet_log_prefixes_lock;
};

View file

@ -1043,10 +1043,50 @@ QString MainWindow::get_secure_app_data(const QString& param)
return MAKE_RESPONSE(ar);
}
m_master_password = pwd.pass;
return app_data_buff.substr(sizeof(app_data_file_binary_header)).c_str();
CATCH_ENTRY2(API_RETURN_CODE_INTERNAL_ERROR);
}
QString MainWindow::set_master_password(const QString& param)
{
view::password_data pwd = AUTO_VAL_INIT(pwd);
if (!epee::serialization::load_t_from_json(pwd, param.toStdString()))
{
view::api_response ar;
ar.error_code = API_RETURN_CODE_BAD_ARG;
return MAKE_RESPONSE(ar);
}
m_master_password = pwd.pass;
view::api_response ar;
ar.error_code = API_RETURN_CODE_OK;
return MAKE_RESPONSE(ar);
}
QString MainWindow::check_master_password(const QString& param)
{
view::password_data pwd = AUTO_VAL_INIT(pwd);
view::api_response ar = AUTO_VAL_INIT(ar);
if (!epee::serialization::load_t_from_json(pwd, param.toStdString()))
{
ar.error_code = API_RETURN_CODE_BAD_ARG;
return MAKE_RESPONSE(ar);
}
if (m_master_password != pwd.pass)
{
ar.error_code = API_RETURN_CODE_WRONG_PASSWORD;
}else
{
ar.error_code = API_RETURN_CODE_OK;
}
return MAKE_RESPONSE(ar);
}
QString MainWindow::store_app_data(const QString& param)
{
TRY_ENTRY();
@ -1118,6 +1158,32 @@ QString MainWindow::store_to_file(const QString& path, const QString& buff)
CATCH_ENTRY2(API_RETURN_CODE_INTERNAL_ERROR);
}
QString MainWindow::load_from_file(const QString& path)
{
TRY_ENTRY();
try {
std::string buff;
bool r = epee::file_io_utils::load_file_to_string(path.toStdWString(), buff);
if (r)
return QString::fromStdString(buff);
else
return QString();
}
catch (const std::exception& ex)
{
LOG_ERROR("FILED TO LOAD FROM FILE: " << path.toStdString() << " ERROR:" << ex.what());
return QString(API_RETURN_CODE_ACCESS_DENIED) + ": " + ex.what();
}
catch (...)
{
return API_RETURN_CODE_ACCESS_DENIED;
}
CATCH_ENTRY2(API_RETURN_CODE_INTERNAL_ERROR);
}
QString MainWindow::get_app_data()
{
TRY_ENTRY();
@ -1128,7 +1194,7 @@ QString MainWindow::get_app_data()
CATCH_ENTRY2(API_RETURN_CODE_INTERNAL_ERROR);
}
QString MainWindow::store_secure_app_data(const QString& param, const QString& pass)
QString MainWindow::store_secure_app_data(const QString& param)
{
TRY_ENTRY();
LOG_API_TIMING();
@ -1139,13 +1205,14 @@ QString MainWindow::store_secure_app_data(const QString& param, const QString& p
return MAKE_RESPONSE(ar);
}
std::string buff(sizeof(app_data_file_binary_header), 0);
app_data_file_binary_header* phdr = (app_data_file_binary_header*)buff.data();
phdr->m_signature = APP_DATA_FILE_BINARY_SIGNATURE;
phdr->m_cb_body = 0; // for future use
buff.append(param.toStdString());
crypto::chacha_crypt(buff, pass.toStdString());
crypto::chacha_crypt(buff, m_master_password);
bool r = file_io_utils::save_string_to_file(m_backend.get_config_folder() + "/" + GUI_SECURE_CONFIG_FILENAME, buff);
view::api_response ar;

View file

@ -100,7 +100,9 @@ public:
QString have_secure_app_data();
QString drop_secure_app_data();
QString get_secure_app_data(const QString& param);
QString store_secure_app_data(const QString& param, const QString& pass);
QString store_secure_app_data(const QString& param);
QString set_master_password(const QString& param);
QString check_master_password(const QString& param);
QString get_app_data();
QString store_app_data(const QString& param);
QString get_default_user_dir(const QString& param);
@ -130,6 +132,7 @@ public:
QString restore_wallet(const QString& param);
QString is_pos_allowed();
QString store_to_file(const QString& path, const QString& buff);
QString load_from_file(const QString& path);
QString is_file_exist(const QString& path);
QString get_mining_estimate(const QString& obj);
QString backup_wallet_keys(const QString& obj);
@ -230,6 +233,7 @@ private:
std::atomic<bool> m_backend_stopped_2;
std::atomic<bool> m_system_shutdown;
std::string m_master_password;
app_config m_config;

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Nastavit hlavní heslo",
"SETUP_CONFIRM_PASS": "Potvrdit heslo",
"MASTER_PASS": "Hlavní heslo",
"BUTTON_NEXT": "Další",
"BUTTON_SKIP": "Přeskočit",
"BUTTON_RESET": "Resetovat",
"INCORRECT_PASSWORD": "Neplatné heslo",
"FORM_ERRORS": {
"PASS_REQUIRED": "Je vyžadováno heslo",
"CONFIRM_REQUIRED": "Je požadováno potvrzení",
"MISMATCH": "Neodpovídající"
}
},
"COMMON": {
"BACK": "Jít zpět"
},
"BREADCRUMBS": {
"ADD_WALLET": "Přidat peněženku",
"CREATE_WALLET": "Vytvořit novou peněženku",
"SAVE_PHRASE": "Uložit svoji seed frázi",
"OPEN_WALLET": "Otevřít existující peněženku",
"RESTORE_WALLET": "Obnovení z zálohy",
"WALLET_DETAILS": "Podrobnosti o peněžence",
"ASSIGN_ALIAS": "Přidělit přezdívku",
"EDIT_ALIAS": "Upravit přezdívku",
"TRANSFER_ALIAS": "Převést přezdívku",
"CONTRACTS": "Kontrakty",
"NEW_PURCHASE": "Nový nákup",
"OLD_PURCHASE": "Nákup"
},
"SIDEBAR": {
"TITLE": "Peněženky",
"ADD_NEW": "+ Přidat",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "Nové nabídky/zprávy",
"SYNCING": "Synchronizace pěněženky"
},
"CONTACTS": "Contacts",
"SETTINGS": "Nastavení",
"LOG_OUT": "Odhlásit se",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "Chyba systému",
"COMPLETE": "Dokončení",
"SYNCING": "Sychronizace blockchainu",
"LOADING": "Nahrávání blockchainových dat"
},
"UPDATE": {
"STANDARD": "Aktualizace k dispozici",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Získejte novou aktualizaci.</span><br><span>Doporučená aktualizace!</span>",
"IMPORTANT": "Aktualizace k dispozici",
"IMPORTANT_HINT": "Důležitá aktualizace!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Získejte novou aktualizaci.</span><br><span>Důležitá aktualizace!</span>",
"CRITICAL": "Aktualizace k dispozici",
"CRITICAL_HINT": "Kritická aktualizace!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Kritická aktualizace k dispozici.</span><i class=\"icon\"></i><span>Aktualizaci důrazně doporučujeme!</span>",
"TIME": "Systémový čas se liší od sítového",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Špatný systémový čas!</span><br><span>Zkontrolujte a nastavte systémový čas.</span>"
}
},
"MAIN": {
"TITLE": "Chcete-li začít používat Zano, vytvořte nebo otevřete peněženku",
"BUTTON_NEW_WALLET": "Vytvořit novou peněženku",
"BUTTON_OPEN_WALLET": "Otevřít existující peněženku",
"BUTTON_RESTORE_BACKUP": "Obnovení ze zálohy",
"HELP": "Jak vytvořit peněženku?",
"CHOOSE_PATH": "Zvolte prosím cestu"
},
"CREATE_WALLET": {
"NAME": "Název peněženky",
"PASS": "Nastavit heslo peněženky",
"CONFIRM": "Potvrdit heslo k peněžence",
"BUTTON_SELECT": "Vyberte cestu k pěněžence",
"BUTTON_CREATE": "Vytvořit peněženku",
"TITLE_SAVE": "Uložte soubor peněženky.",
"ERROR_CANNOT_SAVE_TOP": "Stávající soubory peněženky nelze nahradit nebo přepsat",
"ERROR_CANNOT_SAVE_SYSTEM": "Soubory peněženky nelze uložit na diskový oddíl s operačním systémem",
"FORM_ERRORS": {
"NAME_REQUIRED": "Název je povinný",
"NAME_DUPLICATE": "Název je duplicitní",
"MAX_LENGTH": "Dosáhli jste maximální délky názvu",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Master-Passwort einrichten",
"SETUP_CONFIRM_PASS": "Passwort bestätigen",
"MASTER_PASS": "Master-Passwort",
"BUTTON_NEXT": "Weiter",
"BUTTON_SKIP": "Überspringen",
"BUTTON_RESET": "Zurücksetzen",
"INCORRECT_PASSWORD": "Ungültiges Passwort",
"FORM_ERRORS": {
"PASS_REQUIRED": "Passwort ist erforderlich",
"CONFIRM_REQUIRED": "Bestätigung ist erforderlich",
"MISMATCH": "Fehlanpassung"
}
},
"COMMON": {
"BACK": "Zurück"
},
"BREADCRUMBS": {
"ADD_WALLET": "Wallet hinzufügen",
"CREATE_WALLET": "Neue Wallet erstellen",
"SAVE_PHRASE": "Speichere deinen Seed-Satz",
"OPEN_WALLET": "Vorhandene Wallet öffnen",
"RESTORE_WALLET": "Aus Backup wiederherstellen",
"WALLET_DETAILS": "Wallet-Details",
"ASSIGN_ALIAS": "Alias zuweisen",
"EDIT_ALIAS": "Alias bearbeiten",
"TRANSFER_ALIAS": "Alias übertragen",
"CONTRACTS": "Verträge",
"NEW_PURCHASE": "Neuer Kauf",
"OLD_PURCHASE": "Kauf"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Hinzufügen",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "Neue Angebote/Nachrichten",
"SYNCING": "Wallet synchronisieren"
},
"CONTACTS": "Kontakte",
"SETTINGS": "Einstellungen",
"LOG_OUT": "Abmelden",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "Systemfehler",
"COMPLETE": "Abschluss",
"SYNCING": "Synchronisiere Blockchain",
"LOADING": "Lade Blockchain-Daten"
},
"UPDATE": {
"STANDARD": "Update verfügbar",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Neues Update ausführen.</span><br><span>Update wird empfohlen!</span>",
"IMPORTANT": "Update verfügbar",
"IMPORTANT_HINT": "Wichtiges Update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Neues Update ausführen.</span><br><span>Wichtiges Update!</span>",
"CRITICAL": "Update verfügbar",
"CRITICAL_HINT": "Kritisches Update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Kritisches Update verfügbar.</span><i class=\"icon\"></i><span>Update dringend empfohlen!</span>",
"TIME": "Systemzeit unterscheidet sich vom Netzwerk",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Falsche Systemzeit!</span><br><span>Prüfen und korrigieren Sie Ihre Systemzeit.</span>"
}
},
"MAIN": {
"TITLE": "Erstellen oder öffnen Sie die Wallet, um Zano zu verwenden",
"BUTTON_NEW_WALLET": "Neue Wallet erstellen",
"BUTTON_OPEN_WALLET": "Vorhandene Wallet öffnen",
"BUTTON_RESTORE_BACKUP": "Aus Backup wiederherstellen",
"HELP": "Wie Wallet erstellen?",
"CHOOSE_PATH": "Bitte wählen Sie einen Pfad"
},
"CREATE_WALLET": {
"NAME": "Wallet-Name",
"PASS": "Wallet-Passwort festlegen",
"CONFIRM": "Wallet-Passwort bestätigen",
"BUTTON_SELECT": "Wallet-Verzeichnis auswählen",
"BUTTON_CREATE": "Wallet erstellen",
"TITLE_SAVE": "Wallet-Datei speichern.",
"ERROR_CANNOT_SAVE_TOP": "Bestehende Wallet-Dateien können nicht ersetzt oder überschrieben werden",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet-Dateien können nicht auf der OS-Partition gespeichert werden",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name ist erforderlich",
"NAME_DUPLICATE": "Name existiert bereits",
"MAX_LENGTH": "Maximale Namenslänge erreicht",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet-Name",
"PASS": "Wallet-Passwort",
"BUTTON": "Wallet öffnen",
"WITH_ADDRESS_ALREADY_OPEN": "Eine Wallet mit dieser Adresse ist bereits geöffnet",
"FILE_NOT_FOUND1": "Wallet-Datei nicht gefunden",
"FILE_NOT_FOUND2": "<br/><br/> Es wurde umbenannt oder verschoben. <br/> Um es zu öffnen, verwenden Sie den \"Wallet öffnen\"-Knopf.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name ist erforderlich",
"NAME_DUPLICATE": "Name existiert bereits",
"MAX_LENGTH": "Maximale Namenslänge erreicht"
},
"MODAL": {
"TITLE": "Wallet-Passwort eingeben",
"LABEL": "Passwort für diese Wallet",
"OPEN": "Wallet öffnen",
"SKIP": "Überspringen",
"NOT_FOUND": "Nicht gefunden"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet-Name",
"LABEL_PHRASE_KEY": "Seed-Satz / Private-Key",
"PASS": "Wallet-Passwort",
"CONFIRM": "Wallet-Passwort bestätigen",
"BUTTON_SELECT": "Wallet-Verzeichnis auswählen",
"BUTTON_CREATE": "Wallet erstellen",
"NOT_CORRECT_FILE_OR_PASSWORD": "Ungültige Wallet-Datei oder Passwort stimmt nicht überein",
"CHOOSE_PATH": "Bitte wählen Sie einen Pfad",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name ist erforderlich",
"NAME_DUPLICATE": "Name existiert bereits",
"MAX_LENGTH": "Maximale Namenslänge erreicht",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Schlüssel ist erforderlich",
"KEY_NOT_VALID": "Schlüssel ungültig"
}
},
"SEED_PHRASE": {
"TITLE": "Stellen Sie sicher, dass Ihr Seed-Satz an einem sicheren Ort bleibt. Wenn Sie Ihren Seed-Satz vergessen, können Sie Ihre Wallet nicht wiederherstellen.",
"BUTTON_CREATE_ACCOUNT": "Wallet erstellen",
"BUTTON_COPY": "Kopieren"
},
"PROGRESS": {
"ADD_WALLET": "Wallet hinzufügen",
"SELECT_LOCATION": "Wallet-Verzeichnis auswählen",
"CREATE_WALLET": "Neue Wallet erstellen",
"RESTORE_WALLET": "Aus Backup wiederherstellen"
},
"SETTINGS": {
"TITLE": "Einstellungen",
"DARK_THEME": "Nachtmodus",
"WHITE_THEME": "Tagmodus",
"GRAY_THEME": "Graumodus",
"APP_LOCK": {
"TITLE": "Programm sperren nach:",
"TIME1": "5 Minuten",
"TIME2": "15 Minuten",
"TIME3": "1 Stunde",
"TIME4": "Nie"
},
"MASTER_PASSWORD": {
"TITLE": "Master-Passwort aktualisieren",
"OLD": "Altes Passwort",
"NEW": "Neues Passwort",
"CONFIRM": "New password confirmation",
"BUTTON": "Speichern"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Passwort ist erforderlich",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Aktueller Build: {{value}}",
"APP_LOG_TITLE": "Log-Level:"
},
"WALLET": {
"REGISTER_ALIAS": "Alias registrieren",
"DETAILS": "Details",
"LOCK": "Verschlüsseln",
"AVAILABLE_BALANCE": "Verfügbar <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Gesperrt <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "Was bedeutet das?",
"TABS": {
"SEND": "Senden",
"RECEIVE": "Empfangen",
"HISTORY": "Verlauf",
"CONTRACTS": "Verträge",
"MESSAGES": "Nachrichten",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet-Name",
"LABEL_FILE_LOCATION": "Wallet-Datei-Verzeichnis",
"LABEL_SEED_PHRASE": "Seed-Satz",
"SEED_PHRASE_HINT": "Klicken, um den Seed-Satz anzuzeigen",
"BUTTON_SAVE": "Speichern",
"BUTTON_REMOVE": "Wallet schließen",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name ist erforderlich",
"NAME_DUPLICATE": "Name existiert bereits",
"MAX_LENGTH": "Maximale Namenslänge erreicht"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Alias eingeben",
"TOOLTIP": "Ein Alias ist eine verkürzte Form Ihres Kontos. Ein Alias kann nur lateinische Buchstaben, Zahlen und die Zeichen „.“ und “-” enthalten. Es muss mit “@” beginnen."
},
"COMMENT": {
"LABEL": "Kommentar",
"PLACEHOLDER": "",
"TOOLTIP": "Der Kommentar wird für jeden sichtbar sein, der eine Zahlung an Ihren Alias vornehmen möchte. Sie können Details über Ihre Geschäfte, Kontakte oder Text angeben. Kommentare können später bearbeitet werden."
},
"COST": "Alias-Gebühr {{value}} {{currency}}",
"BUTTON_ASSIGN": "Zuweisen",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name ist erforderlich",
"NAME_WRONG": "Alias hat einen falschen Namen",
"NAME_LENGTH": "Der Alias muss 6-25 Zeichen lang sein",
"NAME_EXISTS": "Alias-Name existiert bereits",
"NO_MONEY": "Du hast nicht genug Geldmittel, um diesen Alias zuzuweisen",
"MAX_LENGTH": "Maximale Kommentarlänge erreicht"
},
"ONE_ALIAS": "Sie können nur einen Alias pro Wallet erstellen",
"REQUEST_ADD_REG": "Der Alias wird innerhalb von 10 Minuten zugewiesen"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Alias eingeben"
},
"COMMENT": {
"LABEL": "Kommentar",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "Sie haben nicht genügend Geldmittel, um den Kommentar zu diesem Alias zu ändern",
"MAX_LENGTH": "Maximale Kommentarlänge erreicht"
},
"COST": "Gebühr {{value}} {{currency}}",
"BUTTON_EDIT": "Bearbeiten"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Alias eingeben"
},
"COMMENT": {
"LABEL": "Kommentar",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "transferieren zu",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "Keine Wallet mit diesem Konto existiert",
"ALIAS_EXISTS": "Dieses Konto hat bereits einen Alias",
"NO_MONEY": "Du hast nicht genug Geldmittel, um diesen Alias zu transferieren"
},
"COST": "Überweisungsgebühr {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Abbrechen",
"REQUEST_SEND_REG": "Der Alias wird innerhalb von 10 Minuten übertragen"
},
"SEND": {
"ADDRESS": "Adresse",
"AMOUNT": "Betrag",
"COMMENT": "Kommentar",
"DETAILS": "Zusätzliche Informationen",
"MIXIN": "Mixin",
"FEE": "Gebühr",
"HIDE": "Verstecke deine Wallet-Adresse vom Empfänger",
"BUTTON": "Senden",
"SUCCESS_SENT": "Transaktion gesendet",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Adresse benötigt",
"ADDRESS_NOT_VALID": "Adresse ungültig",
"ALIAS_NOT_VALID": "Alias ungültig",
"AMOUNT_REQUIRED": "Betrag ist erforderlich",
"AMOUNT_ZERO": "Betrag ist Null",
"FEE_REQUIRED": "Gebühr ist erforderlich",
"FEE_MINIMUM": "Mindestgebühr: {{fee}}",
"MAX_LENGTH": "Maximale Kommentarlänge erreicht"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Bestätigungen {{current}}/{{total}}",
"LOCK_TOOLTIP": "Gesperrt bis {{date}}",
"SEND": "Gesendet",
"RECEIVED": "Empfangen",
"DATE": "Datum",
"AMOUNT": "Betrag",
"FEE": "Gebühr",
"ADDRESS": "Adresse",
"DETAILS": {
"PAYMENT_ID": "Zahlungs-ID",
"ID": "Transaktions-ID",
"SIZE": "Transaktionsgröße",
"SIZE_VALUE": "{{value}} Bytes",
"HEIGHT": "Höhe",
"CONFIRMATION": "Bestätigung",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Kommentar"
},
"TYPE_MESSAGES": {
"HIDDEN": "versteckt",
"UNDEFINED": "Unbedefiniert",
"COMPLETE_BUYER": "Vertrag abgeschlossen",
"COMPLETE_SELLER": "Vertrag abgeschlossen",
"CREATE_ALIAS": "Gebühr für die Zuordnung eines Alias",
"UPDATE_ALIAS": "Gebühr für die Bearbeitung eines Alias",
"POW_REWARD": "POW-Belohnung",
"POS_REWARD": "POS-Belohnung",
"CREATE_CONTRACT": "Vertragsvorschlag",
"PLEDGE_CONTRACT": "Vertrag-Einzahlung",
"NULLIFY_CONTRACT": "Einzahlungen verbrennen",
"PROPOSAL_CANCEL_CONTRACT": "Stornierungsanfrage",
"CANCEL_CONTRACT": "Abbrechen und Einzahlungen zurückzahlen"
}
},
"CONTRACTS": {
"EMPTY": "Keine aktiven Verträge",
"CONTRACTS": "Verträge",
"PURCHASE": "Kauf",
"SELL": "Verkaufen",
"DATE": "Datum",
"AMOUNT": "Betrag",
"STATUS": "Status",
"COMMENTS": "Kommentare",
"PURCHASE_BUTTON": "Neuer Kauf",
"LISTING_BUTTON": "Auflistung erstellen",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Weniger als eine Stunde, um zu antworten",
"REMAINING_ONE": "{{time}} verbleibende Stunde",
"REMAINING_MANY": "{{time}} verbleibende Stunden",
"REMAINING_MANY_ALT": "{{time}} verbleibende Stunden",
"REMAINING_ONE_RESPONSE": "{{time}} verbleibende Stunde",
"REMAINING_MANY_RESPONSE": "{{time}} verbleibende Stunde",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} verbleibende Stunden",
"REMAINING_ONE_WAITING": "Warte für {{time}} Stunde",
"REMAINING_MANY_WAITING": "Warte für {{time}} Stunden",
"REMAINING_MANY_ALT_WAITING": "Warte für {{Zeit}} Stunden"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "Neuer Vertragsvorschlag",
"IGNORED": "Sie haben den Vertragsvorschlag ignoriert",
"ACCEPTED": "Vertrag gestartet",
"WAIT": "Warten auf Bestätitung des Vertrages",
"WAITING_BUYER": "Warte auf Sendung",
"COMPLETED": "Vertrag abgeschlossen",
"NOT_RECEIVED": "Senden fehlgeschlagen",
"NULLIFIED": "Alle Einzahlungen verbrannt",
"PROPOSAL_CANCEL": "Neuer Vorschlag, Vertrag zu kündigen und Einzahlungen zurückzugeben",
"BEING_CANCELLED": "Abbruch wird durchgeführt",
"CANCELLED": "Vertrag abgebrochen",
"IGNORED_CANCEL": "Sie haben den Stornierungsvorschlag ignoriert",
"EXPIRED": "Vertragsvorschlag ist abgelaufen"
},
"BUYER": {
"WAITING": "Warte auf Antwort",
"IGNORED": "Verkäufer ignorierte Ihren Vertragsvorschlag",
"ACCEPTED": "Verkäufer hat Ihren Vertragsvorschlag akzeptiert",
"WAIT": "Warten auf die Bestätigung der Einzahlungen",
"WAITING_SELLER": "Warte auf Sendung",
"COMPLETED": "Vertrag abgeschlossen",
"NOT_RECEIVED": "Senden fehlgeschlagen",
"NULLIFIED": "Alle Einzahlungen verbrannt",
"WAITING_CANCEL": "Warten auf Stornierung des Vertrages",
"BEING_CANCELLED": "Abbruch wird durchgeführt",
"CANCELLED": "Vertrag abgebrochen",
"IGNORED_CANCEL": "Der Verkäufer hat Ihren Vorschlag zur Stornierung des Vertrages ignoriert",
"EXPIRED": "Der Vertragsvorschlag ist abgelaufen"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Beschreibung",
"SELLER": "Verkäufer",
"AMOUNT": "Betrag",
"YOUR_DEPOSIT": "Ihre Einzahlung",
"SELLER_DEPOSIT": "Einzahlung Verkäufer",
"BUYER_DEPOSIT": "Einzahlung Käufer",
"SAME_AMOUNT": "Gleicher Betrag",
"COMMENT": "Kommentar",
"DETAILS": "Zusätzliche Informationen",
"SEND_BUTTON": "Senden",
"FORM_ERRORS": {
"DESC_REQUIRED": "Beschreibung erforderlich",
"DESC_MAXIMUM": "Maximale Feldlänge erreicht",
"SELLER_REQUIRED": "Adresse benötigt",
"SELLER_NOT_VALID": "Ungültige Adresse",
"ALIAS_NOT_VALID": "Ungültiger Alias",
"AMOUNT_REQUIRED": "Betrag ist erforderlich",
"AMOUNT_ZERO": "Betrag darf nicht Null sein",
"YOUR_DEPOSIT_REQUIRED": "Einzahlung erforderlich",
"SELLER_DEPOSIT_REQUIRED": "Verkäufer-Einzahlung erforderlich",
"SELLER_SAME": "Anderes Konto verwenden",
"COMMENT_MAXIMUM": "Maximale Feldlänge erreicht"
},
"PROGRESS_NEW": "Neuer Kauf",
"PROGRESS_WAIT": "Warte auf Antwort",
"PROGRESS_RECEIVE": "Antwort erhalten",
"PROGRESS_COMPLETE": "Abgeschlossen",
"FEE": "Gebühr",
"PAYMENT": "Zahlungs-ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "Neuer Kauf",
"WAITING_SELLER": "Warte auf Antwort",
"WAITING_BUYER": "Vertragsvorschlag erhalten",
"WAITING_CONFIRMATION": "Warten auf die Bestätigung der Einzahlungen",
"WAITING_DELIVERY": "Warte auf Sendung",
"COMPLETED": "Vertrag abgeschlossen",
"IGNORED_BUYER": "Vertragsvorschlag ignoriert",
"IGNORED_SELLER": "Der Verkäufer ignorierte Ihren Vertragsvorschlag",
"PROPOSAL_CANCEL_SELLER": "Stornierungsanfrage gesendet",
"PROPOSAL_CANCEL_BUYER": "Stornierungsanfrage erhalten",
"BEING_CANCELLED": "Abbruch wird durchgeführt",
"IGNORED_CANCEL_SELLER": "Der Verkäufer hat Ihren Vorschlag zur Stornierung des Vertrages ignoriert",
"IGNORED_CANCEL_BUYER": "Vertragsstornierungsanfrage ignoriert",
"CANCELLED": "Vertrag abgebrochen",
"EXPIRED": "Vertragsvorschlag abgelaufen",
"NOT_RECEIVED": "Senden fehlgeschlagen",
"NULLIFIED": "Alle Einzahlungen verbrannt"
},
"ACCEPT_STATE_WAIT_BIG": "Vertrag gestartet",
"IGNORED_ACCEPT": "Vertragsvorschlag ignoriert",
"BURN_PROPOSAL": "Einzahlungen verbrannt",
"SUCCESS_FINISH_PROPOSAL": "Vertrag abgeschlossen",
"SEND_CANCEL_PROPOSAL": "Stornierungsanfrage gesendet",
"IGNORED_CANCEL": "Vertragsstornierungsanfrage ignoriert",
"DEALS_CANCELED_WAIT": "Abbruch wird durchgeführt",
"WAITING_TIME": "Antwortzeit",
"NEED_MONEY": "Unzureichendes Guthaben",
"BUTTON_MAKE_PLEDGE": "Akzeptieren und Einzahlung tätigen",
"BUTTON_IGNORE": "Angebot ignorieren und ausblenden",
"BUTTON_NULLIFY": "Beenden und Einzahlungen verbrennen",
"BUTTON_RECEIVED": "Einzahlungen abschließen und freigeben",
"BUTTON_CANCEL_BUYER": "Einzahlungen abbrechen und zurückzahlen",
"BUTTON_NOT_CANCEL": "Anfrage ignorieren",
"BUTTON_CANCEL_SELLER": "Einzahlungen bestätigen und zurückzahlen",
"HOUR": "Stunde",
"HOURS": "Stunden",
"CANCEL": "Abbrechen",
"NULLIFY_QUESTION": "Sind Sie sicher, dass Sie beide Einzahlungen verbrennen möchten?",
"BUTTON_NULLIFY_SHORT": "Verbrennen",
"WAITING_TIME_QUESTION": "Sind Sie sicher, dass Sie den Vertrag kündigen möchten?"
},
"MESSAGES": {
"ADDRESS": "Adresse",
"MESSAGE": "Nachricht",
"SEND_PLACEHOLDER": "Nachricht eingeben...",
"SEND_BUTTON": "Senden"
},
"MODALS": {
"ERROR": "Fehler",
"SUCCESS": "Erfolg",
"INFO": "Informationen",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Senden",
"BUTTON_CANCEL": "Abbrechen",
"TITLE": "Transaktion bestätigen",
"MESSAGE": {
"SEND": "Senden",
"FROM": "Von",
"TO": "Zu",
"COMMENT": "Kommentar"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Ausstehend",
"TITLE_TOTAL": "Gesamt",
"TITLE_PERIOD": "Zeitspanne:",
"PERIOD": {
"WEEK1": "1 Woche",
"WEEK2": "2 Wochen",
"MONTH1": "1 Monat",
"MONTH3": "3 Monate",
"MONTH6": "6 Monate",
"YEAR": "1 Jahr",
"ALL": "Alle"
},
"TITLE_GROUP": "Gruppe:",
"GROUP": {
"DAY": "Tag",
"WEEK": "Woche",
"MONTH": "Monat"
},
"SWITCH": {
"ON": "AN",
"OFF": "AUS"
}
},
"CONTACTS": {
"TITLE": "Kontaktliste",
"IMPORT_EXPORT": "Kontakte importieren oder exportieren",
"IMPORT": "Importieren",
"EXPORT": "Exportieren",
"ADD": "Kontakt hinzufügen/bearbeiten",
"SEND": "Senden",
"SEND_FROM": "Senden von",
"SEND_TO": "Zu",
"OPEN_ADD_WALLET": "Wallet öffnen/hinzufügen",
"COPY": "- Kopieren",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Adresse",
"NOTES": "Notizen",
"EMPTY": "Kontaktliste ist leer"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Adresse",
"NOTES": "Notizen"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name ist erforderlich",
"NAME_DUBLICATED": "Name existiert bereits",
"ADDRESS_REQUIRED": "Adresse benötigt",
"ADDRESS_NOT_VALID": "Adresse ungültig",
"SET_MASTER_PASSWORD": "Master-Passwort festlegen",
"ADDRESS_DUBLICATED": "Adresse existiert bereits",
"MAX_LENGTH": "Maximale Länge der Notiz erreicht",
"NAME_LENGTH": "Der Name muss 4-25 Zeichen lang sein"
},
"BUTTON": {
"SEND": "Senden",
"EDIT": "Bearbeiten",
"DELETE": "Löschen",
"ADD": "Kontakt hinzufügen",
"ADD_EDIT": "Hinzufügen/Speichern",
"GO_TO_WALLET": "Zu Wallet gehen",
"IMPORT_EXPORT": "importieren/exportieren"
},
"SUCCESS_SENT": "Kontakt hinzugefügt",
"SUCCESS_SAVE": "Kontakt wurde bearbeitet",
"SUCCESS_IMPORT": "Kontakte wurden importiert",
"SUCCESS_EXPORT": "Kontakte wurden exportiert",
"ERROR_IMPORT": "Fehler beim Lesen der Datei!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Ungültiger Dateityp. Datei als .csv speichern",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Nicht genügend Geld",
"NOT_ENOUGH_MONEY": "Unzureichendes Guthaben im Konto",
"CORE_BUSY": "Interner Fehler: Kern ist beschäftigt",
"DAEMON_BUSY": "Interner Fehler: Daemon ist beschäftigt",
"NO_MONEY_REMOVE_OFFER": "Es gibt keine Gebühr für das Löschen eines Angebots, aber um das Netzwerk vor Spam-Transaktionen zu schützen, müssen Sie mindestens {{fee}} {{currency}} in Ihrer Wallet haben",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in-Nummer ist zu groß für den aktuellen Blockchain-Status. Nicht genügend unverbrauchte outputs zum Mischen",
"TRANSACTION_IS_TO_BIG": "Transaktion überschreitet das Netzwerk-Limit. Sendet benötigten Betrag mit mehreren Transaktionen.",
"TRANSFER_ATTEMPT": "Keine Verbindung zum Zano-Netzwerk",
"ACCESS_DENIED": "Zugriff verweigert",
"TRANSACTION_ERROR": "Fehler. Transaktion nicht abgeschlossen.",
"BAD_ARG": "Ungültiges Argument",
"WALLET_WRONG_ID": "Ungültige Wallet-ID",
"WRONG_PASSWORD": "Ungültiges Passwort",
"FILE_RESTORED": "Die Wallet-Datei wurde beschädigt. Wir haben die Schlüssel und die Wallet von der Blockchain wiederhergestellt",
"FILE_NOT_FOUND": "Datei nicht gefunden",
"FILE_EXIST": "Eine Datei mit diesem Namen existiert bereits. Geben Sie einen anderen Namen ein, um die Datei zu speichern",
"FILE_NOT_SAVED": "Sie können keine Wallet-Datei in diesem Ordner speichern. Bitte wählen Sie einen anderen Ordner.",
"TX_TYPE_NORMAL": "Fehler. Die Zahlung von der Wallet",
"TX_TYPE_NORMAL_TO": "zu",
"TX_TYPE_NORMAL_END": "wurde nicht abgeschlossen.",
"TX_TYPE_NEW_ALIAS": "Fehler. Fehler beim Registrieren des Alias zum Speichern",
"TX_TYPE_NEW_ALIAS_END": "Bitte nochmals versuchen.",
"TX_TYPE_UPDATE_ALIAS": "Fehler. Fehlgeschlagen Kommentar von gespeichertem Alias zu ändern",
"TX_TYPE_COIN_BASE": "Fehler. Die Zahlung wurde nicht abgeschlossen."
},
"CONTEXT_MENU": {
"COPY": "kopieren",
"PASTE": "einfügen",
"SELECT": "alle auswählen"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Beenden",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Eingehende Zahlung (nicht bestätigt)",
"INCOME_TRANSFER_CONFIRMED": "Zahlung erhalten",
"MINED": "Mined",
"LOCKED": "Blockiert",
"IS_MINIMIZE": "Zano-Anwendung wird auf die Systemleiste minimiert",
"RESTORE": "Sie können es wiederherstellen, indem Sie auf das Kontextmenü benutzen oder anklicken ",
"TRAY_MENU_SHOW": "Größe ändern",
"TRAY_MENU_MINIMIZE": "Minimieren"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -1,10 +1,11 @@
{
"LOGIN" : {
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
@ -37,15 +38,19 @@
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"CONTACTS_TOOLTIP": "Contacts option available only with Master Password enabled",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"LOG_OUT_TOOLTIP": "Logout option available only with Master Password enabled",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
"SYNCING": "Syncing block",
"LOADING": "Loading blockchain data",
"SLASH": "/"
},
"UPDATE": {
"STANDARD": "Update available",
@ -124,8 +129,8 @@
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT" : "Create wallet",
"BUTTON_COPY" : "Copy"
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
@ -191,18 +196,17 @@
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Unique name",
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "Enter comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Cost to create alias {{value}} {{currency}}",
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"BUTTON_CANCEL": "Cancel",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
@ -216,40 +220,39 @@
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Unique name",
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "Enter comment"
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Cost to edit alias {{value}} {{currency}}",
"BUTTON_EDIT": "Edit",
"BUTTON_CANCEL": "Cancel"
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Unique name",
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "Enter comment"
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "The account to which the alias will be transferred",
"PLACEHOLDER": "Enter wallet address"
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Cost to transfer alias {{value}} {{currency}}",
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
@ -452,6 +455,17 @@
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
@ -477,6 +491,58 @@
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy"
, "TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -1,15 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Configurer le mot de passe principal",
"SETUP_CONFIRM_PASS": "Confirmer le mot de passe",
"MASTER_PASS": "Mot de passe principal",
"BUTTON_NEXT": "Suivant",
"BUTTON_SKIP": "Sauter",
"BUTTON_RESET": "Réinitialiser",
"INCORRECT_PASSWORD": "Mot de passe invalide",
"FORM_ERRORS": {
"PASS_REQUIRED": "Mot de passe requis",
"CONFIRM_REQUIRED": "Confirmation requise",
"MISMATCH": "Non-concordant"
}
},
"COMMON": {
"BACK": "Retour"
},
"BREADCRUMBS": {
"ADD_WALLET": "Ajouter un portefeuille",
"CREATE_WALLET": "Créer un nouveau portefeuille",
"SAVE_PHRASE": "Enregistrer votre phrase de sécurité",
"OPEN_WALLET": "Ouvrir un portefeuille existant",
"RESTORE_WALLET": "Restaurer depuis une sauvegarde",
"WALLET_DETAILS": "Détails du portefeuille",
"ASSIGN_ALIAS": "Assigner un alias",
"EDIT_ALIAS": "Modifier l'alias",
"TRANSFER_ALIAS": "Transférer l'alias",
"CONTRACTS": "Contrats",
"NEW_PURCHASE": "Nouvel achat",
"OLD_PURCHASE": "Achat"
},
"SIDEBAR": {
"TITLE": "Accounts2",
"ADD_NEW": "+ Add new2",
"SETTINGS": "Settings2",
"LOG_OUT": "Log out2"
"TITLE": "Portefeuilles",
"ADD_NEW": "+ Ajouter",
"ACCOUNT": {
"STAKING": "Mise",
"MESSAGES": "Nouvelles offres/Messages",
"SYNCING": "Synchronisation du portefeuille"
},
"CONTACTS": "Contacts",
"SETTINGS": "Paramètres",
"LOG_OUT": "Déconnexion",
"SYNCHRONIZATION": {
"OFFLINE": "Hors ligne",
"ONLINE": "En ligne",
"ERROR": "Erreur de système",
"COMPLETE": "Fermeture",
"SYNCING": "Synchronisation de la blockchain",
"LOADING": "Chargement des données de la blockchain"
},
"UPDATE": {
"STANDARD": "Mise à jour disponible",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Mise à jour.</span><br><span>La mise à jour est recommandée.</span>",
"IMPORTANT": "Mise à jour disponible",
"IMPORTANT_HINT": "Mise à jour importante !",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Mise à jour.</span><br><span>La mise à jour est recommandée.</span>",
"CRITICAL": "Mise à jour disponible",
"CRITICAL_HINT": "Mise à jour critique !",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Mise à jour critique disponible.</span><i class=\"icon\"></i><span>Mise à jour fortement recommandée.</span>",
"TIME": "Le temps du système diffère de celui du réseau",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Mauvais temps de système</span><br><span>Vérifier et corriger votre temps de système.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano2",
"BUTTON_NEW_WALLET": "Create new wallet2",
"BUTTON_OPEN_WALLET": "Open existing wallet2",
"BUTTON_RESTORE_BACKUP": "Restore from backup2",
"HELP": "How to create wallet?2"
"TITLE": "Créer ou ouvrir le portefeuille pour commencer à utiliser Zano",
"BUTTON_NEW_WALLET": "Créer un nouveau portefeuille",
"BUTTON_OPEN_WALLET": "Ouvrir un portefeuille existant",
"BUTTON_RESTORE_BACKUP": "Restaurer depuis une sauvegarde",
"HELP": "Comment créer un portefeuille ?",
"CHOOSE_PATH": "Veuillez choisir un chemin"
},
"CREATE_WALLET": {
"NAME": "Nom du portefeuille",
"PASS": "Définir le mot de passe du portefeuille",
"CONFIRM": "Confirmer le mot de passe du portefeuille",
"BUTTON_SELECT": "Sélectionner l'emplacement du portefeuille",
"BUTTON_CREATE": "Créer un portefeuille",
"TITLE_SAVE": "Enregistrer le fichier du portefeuille.",
"ERROR_CANNOT_SAVE_TOP": "Les fichiers de portefeuille existants ne peuvent pas être remplacés ou écrasés",
"ERROR_CANNOT_SAVE_SYSTEM": "Les fichiers de portefeuille ne peuvent pas être sauvegardés sur la partition du OS",
"FORM_ERRORS": {
"NAME_REQUIRED": "Le nom est requis",
"NAME_DUPLICATE": "Nom déjà utilisé",
"MAX_LENGTH": "Longueur maximale du nom atteinte",
"CONFIRM_NOT_MATCH": "La confirmation du mot de passe ne correspond pas"
}
},
"OPEN_WALLET": {
"NAME": "Nom du portefeuille",
"PASS": "Mot de passe du portefeuille",
"BUTTON": "Ouvrir un portefeuille",
"WITH_ADDRESS_ALREADY_OPEN": "Un portefeuille avec cette adresse est déjà ouvert",
"FILE_NOT_FOUND1": "Fichier de portefeuille introuvable",
"FILE_NOT_FOUND2": "<br/><br/> Il aurait peut-être été renommé ou déplacé. <br/> Pour l'ouvrir, utilisez le bouton \"Ouvrir le portefeuille\".",
"FORM_ERRORS": {
"NAME_REQUIRED": "Le nom est requis",
"NAME_DUPLICATE": "Nom déjà utilisé",
"MAX_LENGTH": "Longueur maximale du nom atteinte"
},
"MODAL": {
"TITLE": "Entrer le mot de passe du portefeuille",
"LABEL": "Mot de passe de ce portefeuille",
"OPEN": "Ouvrir un portefeuille",
"SKIP": "Sauter",
"NOT_FOUND": "Introuvable"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Nom du portefeuille",
"LABEL_PHRASE_KEY": "Phrase de sécurité / clé privée",
"PASS": "Mot de passe du portefeuille",
"CONFIRM": "Confirmer le mot de passe du portefeuille",
"BUTTON_SELECT": "Sélectionner l'emplacement du portefeuille",
"BUTTON_CREATE": "Créer un portefeuille",
"NOT_CORRECT_FILE_OR_PASSWORD": "Le fichier est invalide ou mot de passe du portefeuille ne correspond pas",
"CHOOSE_PATH": "Veuillez choisir un chemin",
"FORM_ERRORS": {
"NAME_REQUIRED": "Le nom est requis",
"NAME_DUPLICATE": "Nom déjà utilisé",
"MAX_LENGTH": "Longueur maximale atteinte",
"CONFIRM_NOT_MATCH": "La confirmation du mot de passe ne correspond pas",
"KEY_REQUIRED": "Clé requise",
"KEY_NOT_VALID": "Clé invalide"
}
},
"SEED_PHRASE": {
"TITLE": "Assurez-vous de garder votre phrase de sécurité dans un endroit sûr. Si vous oubliez votre phrase de sécurité, vous ne pourrez pas récupérer votre portefeuille.",
"BUTTON_CREATE_ACCOUNT": "Créer un portefeuille",
"BUTTON_COPY": "Copier"
},
"PROGRESS": {
"ADD_WALLET": "Ajouter un portefeuille",
"SELECT_LOCATION": "Sélectionner l'emplacement du portefeuille",
"CREATE_WALLET": "Créer un nouveau portefeuille",
"RESTORE_WALLET": "Restaurer depuis une sauvegarde"
},
"SETTINGS": {
"TITLE": "Paramètres",
"DARK_THEME": "Thème sombre",
"WHITE_THEME": "Thème blanc",
"GRAY_THEME": "Thème gris",
"APP_LOCK": {
"TITLE": "Verrouiller l'application après :",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 heure",
"TIME4": "Jamais"
},
"MASTER_PASSWORD": {
"TITLE": "Mettre à jour le mot de passe principal",
"OLD": "Ancien mot de passe",
"NEW": "Nouveau mot de passe",
"CONFIRM": "Confirmer le mot de passe",
"BUTTON": "Enregistrer"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Mot de passe requis",
"PASS_NOT_MATCH": "Ancien mot de passe non correspondant",
"CONFIRM_NOT_MATCH": "La confirmation du mot de passe ne correspond pas"
},
"LAST_BUILD": "Version actuelle : {{value}}",
"APP_LOG_TITLE": "Niveau de log :"
},
"WALLET": {
"REGISTER_ALIAS": "Enregistrer un alias",
"DETAILS": "Détails",
"LOCK": "Verrouillage",
"AVAILABLE_BALANCE": "Disponible <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Vérouillé<b>{{locked}}{{currency}}<b/>",
"LOCKED_BALANCE_LINK": "Que signifie cela?",
"TABS": {
"SEND": "Envoyer",
"RECEIVE": "Recevoir",
"HISTORY": "Historique",
"CONTRACTS": "Contrats",
"MESSAGES": "Messages",
"STAKING": "Mise"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Nom du portefeuille",
"LABEL_FILE_LOCATION": "Emplacement du fichier de portefeuille",
"LABEL_SEED_PHRASE": "Phrase de sécurité",
"SEED_PHRASE_HINT": "Cliquez pour révéler la phrase de sécurité",
"BUTTON_SAVE": "Enregistrer",
"BUTTON_REMOVE": "Fermer le portefeuille",
"FORM_ERRORS": {
"NAME_REQUIRED": "Le nom est requis",
"NAME_DUPLICATE": "Nom déjà utilisé",
"MAX_LENGTH": "Longueur maximale atteinte"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Entrer l'alias",
"TOOLTIP": "Un alias est une forme abréviée pour votre compte. Un alias ne peut inclure que des lettres, des chiffres et des caractères latins « » et « - ». Il doit commencer par « @ »."
},
"COMMENT": {
"LABEL": "Commentaire",
"PLACEHOLDER": "",
"TOOLTIP": "Le commentaire sera visible à quiconque souhaite effectuer un paiement à votre alias. Vous pouvez fournir des détails sur votre entreprise, vos informations de contact ou inclure tout texte. Les commentaires peuvent être modifiés plus tard."
},
"COST": "Frais d'alias {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assigner",
"FORM_ERRORS": {
"NAME_REQUIRED": "Le nom est requis",
"NAME_WRONG": "L'alias a un nom incorrect",
"NAME_LENGTH": "L'alias doit contenir 6-25 caractères",
"NAME_EXISTS": "Alias déjà existant",
"NO_MONEY": "Vous n'avez pas assez de fonds pour assigner cet alias",
"MAX_LENGTH": "Longueur maximale du commentaire atteinte"
},
"ONE_ALIAS": "Vous pouvez créer un seul alias par portefeuille",
"REQUEST_ADD_REG": "L'alias sera assigné dans les 10 prochaines minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Entrer l'alias"
},
"COMMENT": {
"LABEL": "Commentaire",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "Vous n'avez pas assez de fonds pour changer le commentaire de cet alias",
"MAX_LENGTH": "Longueur maximale du commentaire atteinte"
},
"COST": "Frais {{value}} {{currency}}",
"BUTTON_EDIT": "Modifier"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Entrer l'alias"
},
"COMMENT": {
"LABEL": "Commentaire",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transférer à",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "Aucun portefeuille avec ce compte n'existe",
"ALIAS_EXISTS": "Ce compte a déjà un alias",
"NO_MONEY": "Vous n'avez pas assez de fonds pour transférer cet alias"
},
"COST": "Frais de transfert {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transférer",
"BUTTON_CANCEL": "Annuler",
"REQUEST_SEND_REG": "L'alias sera transféré dans les 10 prochaines minutes"
},
"SEND": {
"ADDRESS": "Adresse",
"AMOUNT": "Montant",
"COMMENT": "Commentaire",
"DETAILS": "Détails supplémentaires",
"MIXIN": "Mélange",
"FEE": "Frais",
"HIDE": "Masquer votre adresse de portefeuille au destinataire",
"BUTTON": "Envoyer",
"SUCCESS_SENT": "Transaction envoyée",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Adresse requise",
"ADDRESS_NOT_VALID": "Addresse invalide",
"ALIAS_NOT_VALID": "Alias non valide",
"AMOUNT_REQUIRED": "Le Montant est requis",
"AMOUNT_ZERO": "Le montant est zéro",
"FEE_REQUIRED": "Les frais sont requis",
"FEE_MINIMUM": "Frais minimum : {{fee}}",
"MAX_LENGTH": "Longueur maximale du commentaire atteinte"
}
},
"HISTORY": {
"STATUS": "Statut",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Verrouillé jusqu'à {{date}}",
"SEND": "Envoyé",
"RECEIVED": "Reçu",
"DATE": "Date",
"AMOUNT": "Montant",
"FEE": "Frais",
"ADDRESS": "Adresse",
"DETAILS": {
"PAYMENT_ID": "ID de paiement",
"ID": "ID de transaction",
"SIZE": "Taille de la transaction",
"SIZE_VALUE": "{{value}} octets",
"HEIGHT": "Hauteur",
"CONFIRMATION": "Confirmation",
"INPUTS": "Entrées",
"OUTPUTS": "Sorties",
"COMMENT": "Commentaire"
},
"TYPE_MESSAGES": {
"HIDDEN": "caché",
"UNDEFINED": "Non défini",
"COMPLETE_BUYER": "Contrat complété",
"COMPLETE_SELLER": "Contrat complété",
"CREATE_ALIAS": "Frais pour assigner l'alias",
"UPDATE_ALIAS": "Frais pour modifier l'alias",
"POW_REWARD": "Récompense POW",
"POS_REWARD": "Récompense POS",
"CREATE_CONTRACT": "Proposition de contrat",
"PLEDGE_CONTRACT": "Dépôt de contrat",
"NULLIFY_CONTRACT": "Brûler les dépôts",
"PROPOSAL_CANCEL_CONTRACT": "Demande d'annulation",
"CANCEL_CONTRACT": "Annuler et retourner les dépôts"
}
},
"CONTRACTS": {
"EMPTY": "Aucun contrat actif",
"CONTRACTS": "Contrats",
"PURCHASE": "Achat",
"SELL": "Vendre",
"DATE": "Date",
"AMOUNT": "Montant",
"STATUS": "Statut",
"COMMENTS": "Commentaires",
"PURCHASE_BUTTON": "Nouvel achat",
"LISTING_BUTTON": "Créer une offre",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Moins d'une heure pour répondre",
"REMAINING_ONE": "{{time}} heure restante",
"REMAINING_MANY": "{{time}} heures restantes",
"REMAINING_MANY_ALT": "{{time}} heures restantes",
"REMAINING_ONE_RESPONSE": "{{time}} heure restante",
"REMAINING_MANY_RESPONSE": "{{time}} heures restantes",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} heures restantes",
"REMAINING_ONE_WAITING": "En attente de {{time}}  heure",
"REMAINING_MANY_WAITING": "En attente de {{time}} heures",
"REMAINING_MANY_ALT_WAITING": "En attente de {{time}} heures"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "Nouvelle proposition de contrat",
"IGNORED": "Vous avez ignoré la proposition de contrat",
"ACCEPTED": "Contrat démarré",
"WAIT": "En attente de confirmation du contrat",
"WAITING_BUYER": "En attente de livraison",
"COMPLETED": "Contrat terminé",
"NOT_RECEIVED": "Échec de la livraison",
"NULLIFIED": "Tous les dépôts ont été brûlés",
"PROPOSAL_CANCEL": "Nouvelle proposition d'annulation de contrat et retour des dépôts",
"BEING_CANCELLED": "Annulation en cours",
"CANCELLED": "Contrat annulé",
"IGNORED_CANCEL": "Vous avez ignoré la proposition d'annulation",
"EXPIRED": "La proposition de contrat a expiré"
},
"BUYER": {
"WAITING": "En attente d'une réponse",
"IGNORED": "Le vendeur a ignoré votre proposition de contrat",
"ACCEPTED": "Le vendeur a accepté votre proposition de contrat",
"WAIT": "En attente de confirmation des dépôts",
"WAITING_SELLER": "En attente de livraison",
"COMPLETED": "Contrat complété",
"NOT_RECEIVED": "Échec de la livraison",
"NULLIFIED": "Tous les dépôts ont été brûlés",
"WAITING_CANCEL": "En attente d'annulation du contrat",
"BEING_CANCELLED": "Annulation en cours",
"CANCELLED": "Contrat annulé",
"IGNORED_CANCEL": "Le vendeur a ignoré votre proposition d'annuler le contrat",
"EXPIRED": "La proposition de contrat a expiré"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Vendeur",
"AMOUNT": "Montant",
"YOUR_DEPOSIT": "Votre dépôt",
"SELLER_DEPOSIT": "Dépôt du vendeur",
"BUYER_DEPOSIT": "Dépôt d'acheteur",
"SAME_AMOUNT": "Montant identique",
"COMMENT": "Commentaire",
"DETAILS": "Détails supplémentaires",
"SEND_BUTTON": "Envoyer",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description requise",
"DESC_MAXIMUM": "Longueur maximale du champ atteinte",
"SELLER_REQUIRED": "Adresse requise",
"SELLER_NOT_VALID": "Adresse invalide",
"ALIAS_NOT_VALID": "Alias invalide",
"AMOUNT_REQUIRED": "Montant requis",
"AMOUNT_ZERO": "Le montant ne peut pas être nul",
"YOUR_DEPOSIT_REQUIRED": "Dépôt requis",
"SELLER_DEPOSIT_REQUIRED": "Dépôt de vendeur requis",
"SELLER_SAME": "Utiliser un compte séparé",
"COMMENT_MAXIMUM": "Longueur maximale du champ atteinte"
},
"PROGRESS_NEW": "Nouvel achat",
"PROGRESS_WAIT": "En attente d'une réponse",
"PROGRESS_RECEIVE": "Réponse reçue",
"PROGRESS_COMPLETE": "Complété",
"FEE": "Frais",
"PAYMENT": "ID de paiement",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "Nouvel achat",
"WAITING_SELLER": "En attente d'une réponse",
"WAITING_BUYER": "Proposition de contrat reçue",
"WAITING_CONFIRMATION": "En attente de confirmation des dépôts",
"WAITING_DELIVERY": "En attente de livraison",
"COMPLETED": "Contrat complété",
"IGNORED_BUYER": "Proposition de contrat ignorée",
"IGNORED_SELLER": "Le vendeur a ignoré votre proposition de contrat",
"PROPOSAL_CANCEL_SELLER": "Demande d'annulation envoyée",
"PROPOSAL_CANCEL_BUYER": "Demande d'annulation reçue",
"BEING_CANCELLED": "Annulation en cours",
"IGNORED_CANCEL_SELLER": "Le vendeur a ignoré votre proposition d'annuler le contrat",
"IGNORED_CANCEL_BUYER": "Proposition d'annulation du contrat ignorée",
"CANCELLED": "Contrat annulé",
"EXPIRED": "Proposition de contrat expirée",
"NOT_RECEIVED": "Échec de la livraison",
"NULLIFIED": "Tous les dépôts ont été brûlés"
},
"ACCEPT_STATE_WAIT_BIG": "Contrat débuté",
"IGNORED_ACCEPT": "Proposition de contrat ignorée",
"BURN_PROPOSAL": "Dépositions brûlées",
"SUCCESS_FINISH_PROPOSAL": "Contrat complété",
"SEND_CANCEL_PROPOSAL": "Demande d'annulation envoyée",
"IGNORED_CANCEL": "Proposition d'annulation du contrat ignorée",
"DEALS_CANCELED_WAIT": "Annulation en cours",
"WAITING_TIME": "Heure de réponse",
"NEED_MONEY": "Fonds insuffisants",
"BUTTON_MAKE_PLEDGE": "Accepter et effectuer un dépôt",
"BUTTON_IGNORE": "Ignorer et cacher l'offre",
"BUTTON_NULLIFY": "Terminer et brûler les dépôts",
"BUTTON_RECEIVED": "Compléter et libérer les dépôts",
"BUTTON_CANCEL_BUYER": "Annuler et retourner les dépôts",
"BUTTON_NOT_CANCEL": "Ignorer la requête",
"BUTTON_CANCEL_SELLER": "Confirmer et retourner les dépôts",
"HOUR": "heure",
"HOURS": "heures",
"CANCEL": "Annuler",
"NULLIFY_QUESTION": "Êtes-vous sûr de vouloir brûler les deux dépôts ?",
"BUTTON_NULLIFY_SHORT": "Brûler",
"WAITING_TIME_QUESTION": "Êtes-vous sûr de vouloir annuler le contrat ?"
},
"MESSAGES": {
"ADDRESS": "Adresse",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Tapez un message...",
"SEND_BUTTON": "Envoyer"
},
"MODALS": {
"ERROR": "Erreur",
"SUCCESS": "Succès",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Envoyer",
"BUTTON_CANCEL": "Annuler",
"TITLE": "Confirmer la transaction",
"MESSAGE": {
"SEND": "Envoyer",
"FROM": "De",
"TO": "À",
"COMMENT": "Commentaire"
}
},
"STAKING": {
"TITLE": "Mise",
"TITLE_PENDING": "En attente",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Période de temps:",
"PERIOD": {
"WEEK1": "1 semaine",
"WEEK2": "2 semaines",
"MONTH1": "1 mois",
"MONTH3": "3 mois",
"MONTH6": "6 mois",
"YEAR": "1 an",
"ALL": "Tout"
},
"TITLE_GROUP": "Groupe :",
"GROUP": {
"DAY": "jour",
"WEEK": "semaine",
"MONTH": "mois"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Liste de contacts",
"IMPORT_EXPORT": "Importer ou exporter des contacts",
"IMPORT": "Importer",
"EXPORT": "Exporter",
"ADD": "Ajouter/modifier un contact",
"SEND": "Envoyer",
"SEND_FROM": "Envoyer de",
"SEND_TO": "À",
"OPEN_ADD_WALLET": "Ouvrir/Ajouter un portefeuille",
"COPY": "- Copier",
"TABLE": {
"NAME": "Nom",
"ALIAS": "Alias",
"ADDRESS": "Adresse",
"NOTES": "Notes",
"EMPTY": "La liste de contacts est vide"
},
"FORM": {
"NAME": "Nom",
"ADDRESS": "Adresse",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Le nom est requis",
"NAME_DUBLICATED": "Nom déjà utilisé",
"ADDRESS_REQUIRED": "Adresse requise",
"ADDRESS_NOT_VALID": "Addresse invalide",
"SET_MASTER_PASSWORD": "Définir le mot de passe maître",
"ADDRESS_DUBLICATED": "L'addresse est dupliquée",
"MAX_LENGTH": "Longueur maximale des notes atteinte",
"NAME_LENGTH": "Le nom doit contenir 4-25 caractères"
},
"BUTTON": {
"SEND": "Envoyer",
"EDIT": "Modifier",
"DELETE": "Supprimer",
"ADD": "Ajouter un contact",
"ADD_EDIT": "Ajouter/Enregistrer",
"GO_TO_WALLET": "Aller au portefeuille",
"IMPORT_EXPORT": "Importer/exporter"
},
"SUCCESS_SENT": "Contact ajouté",
"SUCCESS_SAVE": "Contact modifié",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Erreur lors de la lecture du fichier !",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Pas assez de fonds",
"NOT_ENOUGH_MONEY": "Fonds insuffisants dans le compte",
"CORE_BUSY": "Erreur interne : le noyau est occupé",
"DAEMON_BUSY": "Erreur interne : le daemon est occupé",
"NO_MONEY_REMOVE_OFFER": "Il n'y a pas de frais pour supprimer une offre, mais pour protéger le réseau contre les transactions de spam, vous devez avoir au moins {{fee}} {{currency}} dans votre portefeuille",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Le nombre de mixage est trop grand pour l'état actuel de la blockchain. Il n'y a pas assez de sorties non utilisées pour mélanger avec",
"TRANSACTION_IS_TO_BIG": "La transaction dépasse la limite réseau, envoyez le montant requis avec plusieurs transactions",
"TRANSFER_ATTEMPT": "Il n'y a pas de connexion au réseau Zano",
"ACCESS_DENIED": "Accès refusé",
"TRANSACTION_ERROR": "Erreur. Transaction non complétée.",
"BAD_ARG": "Argument invalide",
"WALLET_WRONG_ID": "ID de portefeuille invalide",
"WRONG_PASSWORD": "Mot de passe invalide",
"FILE_RESTORED": "Le fichier de portefeuille a été corrompu. Nous avons récupéré les clés et le portefeuille de la blockchain",
"FILE_NOT_FOUND": "Fichier introuvable",
"FILE_EXIST": "Un fichier avec ce nom existe déjà. Entrez un autre nom pour enregistrer le fichier sous",
"FILE_NOT_SAVED": "Vous ne pouvez pas enregistrer un fichier de portefeuille dans ce dossier. Veuillez choisir un autre dossier.",
"TX_TYPE_NORMAL": "Erreur. paiement du portefeuille",
"TX_TYPE_NORMAL_TO": "à",
"TX_TYPE_NORMAL_END": "n'a pas été complété.",
"TX_TYPE_NEW_ALIAS": "Erreur. Impossible d'enregistrer l'alias dans la blockchain",
"TX_TYPE_NEW_ALIAS_END": "Veuillez réessayer.",
"TX_TYPE_UPDATE_ALIAS": "Erreur. Impossible de changer le commentaire de l'alias actuel",
"TX_TYPE_COIN_BASE": "Erreur. Le paiement n'a pas été complété."
},
"CONTEXT_MENU": {
"COPY": "copier",
"PASTE": "coller",
"SELECT": "tout sélectionner"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quitter",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Paiement entrant (non confirmé)",
"INCOME_TRANSFER_CONFIRMED": "Paiement reçu",
"MINED": "Miné",
"LOCKED": "Bloqué",
"IS_MINIMIZE": "L'application Zano est minimisée dans la barre d'état",
"RESTORE": "Vous pouvez le récupérer en cliquant ou en utilisant le menu contextuel",
"TRAY_MENU_SHOW": "Redimensionner",
"TRAY_MENU_MINIMIZE": "Réduire"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Imposta password principale",
"SETUP_CONFIRM_PASS": "Conferma la password",
"MASTER_PASS": "Password principale",
"BUTTON_NEXT": "Prossimo",
"BUTTON_SKIP": "Salta",
"BUTTON_RESET": "Azzera",
"INCORRECT_PASSWORD": "Password non valida",
"FORM_ERRORS": {
"PASS_REQUIRED": "La password è necessaria",
"CONFIRM_REQUIRED": "La conferma è necessaria",
"MISMATCH": "Non corrisponde"
}
},
"COMMON": {
"BACK": "Torna indietro"
},
"BREADCRUMBS": {
"ADD_WALLET": "Aggiungi portafoglio",
"CREATE_WALLET": "Crea un nuovo portafoglio",
"SAVE_PHRASE": "Salva la tua frase segreta",
"OPEN_WALLET": "Apri portafoglio esistente",
"RESTORE_WALLET": "Ripristina da backup",
"WALLET_DETAILS": "Dettagli portafoglio",
"ASSIGN_ALIAS": "Assegna alias",
"EDIT_ALIAS": "Modifica alias",
"TRANSFER_ALIAS": "Trasferisci alias",
"CONTRACTS": "Contratti",
"NEW_PURCHASE": "Nuovo acquisto",
"OLD_PURCHASE": "Acquisto"
},
"SIDEBAR": {
"TITLE": "Portafogli",
"ADD_NEW": "+ Aggiungi",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "Nuove offerte/messaggi",
"SYNCING": "Sincronizzazione portafoglio"
},
"CONTACTS": "Contatti",
"SETTINGS": "Impostazioni",
"LOG_OUT": "Esci",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "Errore di sistema",
"COMPLETE": "Completata",
"SYNCING": "Sincronizzazione blockchain",
"LOADING": "Caricamento dati blockchain"
},
"UPDATE": {
"STANDARD": "Aggiornamento disponibile",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Ottieni un nuovo aggiornamento.</span><br><span>L'aggiornamento è consigliato!</span>",
"IMPORTANT": "Aggiornamento disponibile",
"IMPORTANT_HINT": "Aggiornamento importante!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Ottieni un nuovo aggiornamento.</span><br><span>Aggiornamento importante!</span>",
"CRITICAL": "Aggiornamento disponibile",
"CRITICAL_HINT": "Aggiornamento critico!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Aggiornamento critico disponibile.</span><i class=\"icon\"></i><span>Aggiornamento fortemente consigliato!</span>",
"TIME": "L'orario di sistema differisce dalla rete",
"TIME_TOOLTIP": "<span class=\"wrong-time\">L'orario di sistema è sbagliato!</span><br><span>Controlla e sistema l'orario di sistema.</span>"
}
},
"MAIN": {
"TITLE": "Crea o apri il portafoglio per iniziare a usare Zano",
"BUTTON_NEW_WALLET": "Crea un nuovo portafoglio",
"BUTTON_OPEN_WALLET": "Apri portafoglio esistente",
"BUTTON_RESTORE_BACKUP": "Ripristina da backup",
"HELP": "Come creare il portafoglio?",
"CHOOSE_PATH": "Scegli un percorso"
},
"CREATE_WALLET": {
"NAME": "Nome del portafoglio",
"PASS": "Imposta password portafoglio",
"CONFIRM": "Conferma password portafoglio",
"BUTTON_SELECT": "Seleziona posizione portafoglio",
"BUTTON_CREATE": "Crea portafoglio",
"TITLE_SAVE": "Salva il file del portafoglio.",
"ERROR_CANNOT_SAVE_TOP": "I file del portafoglio esistenti non possono essere sostituiti o sovrascritti",
"ERROR_CANNOT_SAVE_SYSTEM": "I file del portafoglio non possono essere salvati nella partizione di sistema",
"FORM_ERRORS": {
"NAME_REQUIRED": "Il nome è richiesto",
"NAME_DUPLICATE": "Il nome è duplicato",
"MAX_LENGTH": "Lunghezza massima del nome raggiunta",
"CONFIRM_NOT_MATCH": "La password di conferma non corrisponde"
}
},
"OPEN_WALLET": {
"NAME": "Nome del portafoglio",
"PASS": "Password portafoglio",
"BUTTON": "Apri portafoglio",
"WITH_ADDRESS_ALREADY_OPEN": "Un portafoglio con questo indirizzo è già aperto",
"FILE_NOT_FOUND1": "File del portafoglio non trovato",
"FILE_NOT_FOUND2": "<br/><br/> Potrebbe essere stato rinominato o spostato. <br/> Per aprirlo, usa il pulsante \"Apri portafoglio\".",
"FORM_ERRORS": {
"NAME_REQUIRED": "Il nome è richiesto",
"NAME_DUPLICATE": "Il nome è un duplicato",
"MAX_LENGTH": "Lunghezza massima del nome raggiunta"
},
"MODAL": {
"TITLE": "Imposta password portafoglio",
"LABEL": "Password per questo portafoglio",
"OPEN": "Apri portafoglio",
"SKIP": "Salta",
"NOT_FOUND": "Non trovato"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Nome del portafoglio",
"LABEL_PHRASE_KEY": "Frase segreta / chiave privata",
"PASS": "Password portafoglio",
"CONFIRM": "Conferma password portafoglio",
"BUTTON_SELECT": "Seleziona posizione portafoglio",
"BUTTON_CREATE": "Crea portafoglio",
"NOT_CORRECT_FILE_OR_PASSWORD": "File del portafoglio non valido o password non corrispondente",
"CHOOSE_PATH": "Scegli un percorso",
"FORM_ERRORS": {
"NAME_REQUIRED": "Il nome è richiesto",
"NAME_DUPLICATE": "Il nome è un duplicato",
"MAX_LENGTH": "Lunghezza massima del nome raggiunta",
"CONFIRM_NOT_MATCH": "La password di conferma non corrisponde",
"KEY_REQUIRED": "Chiave richiesta",
"KEY_NOT_VALID": "Chiave non valida"
}
},
"SEED_PHRASE": {
"TITLE": "Assicurati di mantenere la tua frase segreta in un posto sicuro. Se dimentichi la tua frase segreta non sarai in grado di recuperare il tuo portafoglio.",
"BUTTON_CREATE_ACCOUNT": "Crea portafoglio",
"BUTTON_COPY": "Copia"
},
"PROGRESS": {
"ADD_WALLET": "Aggiungi portafoglio",
"SELECT_LOCATION": "Seleziona posizione portafoglio",
"CREATE_WALLET": "Crea un nuovo portafoglio",
"RESTORE_WALLET": "Ripristina da backup"
},
"SETTINGS": {
"TITLE": "Impostazioni",
"DARK_THEME": "Tema scuro",
"WHITE_THEME": "Tema bianco",
"GRAY_THEME": "Tema grigio",
"APP_LOCK": {
"TITLE": "Blocca app dopo:",
"TIME1": "5 minuti",
"TIME2": "15 minuti",
"TIME3": "1 ora",
"TIME4": "Mai"
},
"MASTER_PASSWORD": {
"TITLE": "Aggiorna password principale",
"OLD": "Vecchia password",
"NEW": "Nuova password",
"CONFIRM": "Conferma nuova password",
"BUTTON": "Salva"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "La password è necessaria",
"PASS_NOT_MATCH": "La vecchia password non corrisponde",
"CONFIRM_NOT_MATCH": "La password di conferma non corrisponde"
},
"LAST_BUILD": "Build attuale: {{value}}",
"APP_LOG_TITLE": "Livello di log:"
},
"WALLET": {
"REGISTER_ALIAS": "Registra un alias",
"DETAILS": "Dettagli",
"LOCK": "Blocca",
"AVAILABLE_BALANCE": "Disponibile <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Bloccato <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "Che cosa significa?",
"TABS": {
"SEND": "Invia",
"RECEIVE": "Ricevi",
"HISTORY": "Storico",
"CONTRACTS": "Contratti",
"MESSAGES": "Messaggi",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Nome portafoglio",
"LABEL_FILE_LOCATION": "Posizione file portafoglio",
"LABEL_SEED_PHRASE": "Frase segreta",
"SEED_PHRASE_HINT": "Clicca per rivelare la frase segreta",
"BUTTON_SAVE": "Salva",
"BUTTON_REMOVE": "Chiudi portafoglio",
"FORM_ERRORS": {
"NAME_REQUIRED": "Il nome è richiesto",
"NAME_DUPLICATE": "Il nome è un duplicato",
"MAX_LENGTH": "Lunghezza massima del nome raggiunta"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Inserisci alias",
"TOOLTIP": "Un alias è un modulo abbreviato o il tuo account. Un alias può solo includere lettere latine, numeri e caratteri “.” e “-”. Deve iniziare con “@”."
},
"COMMENT": {
"LABEL": "Commento",
"PLACEHOLDER": "",
"TOOLTIP": "Il commento sarà visibile a chiunque desideri effettuare un pagamento al tuo alias. Puoi fornire dettagli sul tuo business, contatti o includere qualsiasi testo. I commenti possono essere modificati più tardi."
},
"COST": "Quota alias {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assegna",
"FORM_ERRORS": {
"NAME_REQUIRED": "Il nome è richiesto",
"NAME_WRONG": "L'Alias ha un nome errato",
"NAME_LENGTH": "L'alias deve essere lungo 6-25 caratteri",
"NAME_EXISTS": "Il nome dell'alias esiste già",
"NO_MONEY": "Non hai fondi sufficienti per assegnare questo alias",
"MAX_LENGTH": "Lunghezza massima del nome raggiunta"
},
"ONE_ALIAS": "Puoi creare solo un alias per portafoglio",
"REQUEST_ADD_REG": "L'alias sarà assegnato entro 10 minuti"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Inserisci alias"
},
"COMMENT": {
"LABEL": "Commento",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "Non hai fondi sufficienti per modificare il commento a questo alias",
"MAX_LENGTH": "Lunghezza massima del commento raggiunta"
},
"COST": "Tassa {{value}} {{currency}}",
"BUTTON_EDIT": "Modifica"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Inserisci alias"
},
"COMMENT": {
"LABEL": "Commento",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Trasferisci a",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "Non esiste alcun portafoglio con questo account",
"ALIAS_EXISTS": "Questo account ha già un alias",
"NO_MONEY": "Non hai fondi sufficienti per trasferire questo alias"
},
"COST": "Trasferimento commissione {{value}} {{currency}}",
"BUTTON_TRANSFER": "Trasferisci",
"BUTTON_CANCEL": "Cancella",
"REQUEST_SEND_REG": "L'alias verrà trasferito entro 10 minuti"
},
"SEND": {
"ADDRESS": "Indirizzo",
"AMOUNT": "Importo",
"COMMENT": "Commento",
"DETAILS": "Dettagli aggiuntivi",
"MIXIN": "Mixin",
"FEE": "Commissione",
"HIDE": "Nascondi l'indirizzo del tuo portafoglio dal destinatario",
"BUTTON": "Invia",
"SUCCESS_SENT": "Transazione inviata",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Indirizzo richiesto",
"ADDRESS_NOT_VALID": "Indirizzo non valido",
"ALIAS_NOT_VALID": "Alias non valido",
"AMOUNT_REQUIRED": "Importo richiesto",
"AMOUNT_ZERO": "Importo è zero",
"FEE_REQUIRED": "La commissione è richiesta",
"FEE_MINIMUM": "Costo minimo: {{fee}}",
"MAX_LENGTH": "Lunghezza massima del commento raggiunta"
}
},
"HISTORY": {
"STATUS": "Stato",
"STATUS_TOOLTIP": "Conferme {{current}}/{{total}}",
"LOCK_TOOLTIP": "Bloccato fino a {{date}}",
"SEND": "Inviato",
"RECEIVED": "Ricevuto",
"DATE": "Data",
"AMOUNT": "Importo",
"FEE": "Commissione",
"ADDRESS": "Indirizzo",
"DETAILS": {
"PAYMENT_ID": "ID pagamento",
"ID": "ID transazione",
"SIZE": "Dimensione transazione",
"SIZE_VALUE": "{{value}} byte",
"HEIGHT": "Altezza",
"CONFIRMATION": "Conferme",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Commenti"
},
"TYPE_MESSAGES": {
"HIDDEN": "nascosto",
"UNDEFINED": "Non definito",
"COMPLETE_BUYER": "Contratto completato",
"COMPLETE_SELLER": "Contratto completato",
"CREATE_ALIAS": "Tassa per l'assegnazione dell'alias",
"UPDATE_ALIAS": "Tassa per modificare alias",
"POW_REWARD": "Ricompensa POW",
"POS_REWARD": "Ricompensa POS",
"CREATE_CONTRACT": "Proposta contratto",
"PLEDGE_CONTRACT": "Deposito contratto",
"NULLIFY_CONTRACT": "Burn deposit",
"PROPOSAL_CANCEL_CONTRACT": "Richiesta di cancellazione",
"CANCEL_CONTRACT": "Annulla e restituisce depositi"
}
},
"CONTRACTS": {
"EMPTY": "Nessun contratto attivo",
"CONTRACTS": "Contratti",
"PURCHASE": "Acquisti",
"SELL": "Vendite",
"DATE": "Data",
"AMOUNT": "Importo",
"STATUS": "Stato",
"COMMENTS": "Commenti",
"PURCHASE_BUTTON": "Nuovo acquisto",
"LISTING_BUTTON": "Crea elenco",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Meno di un'ora per rispondere",
"REMAINING_ONE": "{{time}} ora rimasta",
"REMAINING_MANY": "{{time}} ore rimaste",
"REMAINING_MANY_ALT": "{{time}} ore rimaste",
"REMAINING_ONE_RESPONSE": "{{time}} ora rimasta",
"REMAINING_MANY_RESPONSE": "{{time}} ore rimaste",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} ore rimaste",
"REMAINING_ONE_WAITING": "Attendi {{time}} ora",
"REMAINING_MANY_WAITING": "Attendi {{time}} ore",
"REMAINING_MANY_ALT_WAITING": "Attendi {{time}} ore"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "Nuova proposta di contratto",
"IGNORED": "Hai ignorato la proposta di contratto",
"ACCEPTED": "Contratto iniziato",
"WAIT": "In attesa di conferma del contratto",
"WAITING_BUYER": "In attesa di consegna",
"COMPLETED": "Contratto completato",
"NOT_RECEIVED": "Consegna fallita",
"NULLIFIED": "Tutti i depositi bruciati",
"PROPOSAL_CANCEL": "Nuova proposta di cancellare il contratto e restituire i depositi",
"BEING_CANCELLED": "Cancellazione in corso",
"CANCELLED": "Contratto cancellato",
"IGNORED_CANCEL": "Hai ignorato la proposta di cancellazione",
"EXPIRED": "La proposta del contratto è scaduta"
},
"BUYER": {
"WAITING": "In attesa di risposta",
"IGNORED": "Il venditore ha ignorato la tua proposta di contratto",
"ACCEPTED": "Il venditore ha accettato la tua proposta di contratto",
"WAIT": "In attesa della conferma dei depositi",
"WAITING_SELLER": "In attesa di consegna",
"COMPLETED": "Contratto completato",
"NOT_RECEIVED": "Consegna fallita",
"NULLIFIED": "Tutti i depositi bruciati",
"WAITING_CANCEL": "In attesa della cancellazione del contratto",
"BEING_CANCELLED": "Cancellazione in corso",
"CANCELLED": "Contratto cancellato",
"IGNORED_CANCEL": "Il venditore ha ignorato la tua proposta di annullare il contratto",
"EXPIRED": "La proposta di contratto è scaduta"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Descrizione",
"SELLER": "Venditore",
"AMOUNT": "Importo",
"YOUR_DEPOSIT": "Il tuo deposito",
"SELLER_DEPOSIT": "Deposito venditore",
"BUYER_DEPOSIT": "Deposito acquirente",
"SAME_AMOUNT": "Stesso importo",
"COMMENT": "Commento",
"DETAILS": "Dettagli aggiuntivi",
"SEND_BUTTON": "Invia",
"FORM_ERRORS": {
"DESC_REQUIRED": "Descrizione richiesta",
"DESC_MAXIMUM": "Lunghezza massima del campo raggiunta",
"SELLER_REQUIRED": "Indirizzo richiesto",
"SELLER_NOT_VALID": "Indirizzo non valido",
"ALIAS_NOT_VALID": "Alias non valido",
"AMOUNT_REQUIRED": "Importo richiesto",
"AMOUNT_ZERO": "L'importo non può essere zero",
"YOUR_DEPOSIT_REQUIRED": "Deposito richiesto",
"SELLER_DEPOSIT_REQUIRED": "Deposito venditore richiesto",
"SELLER_SAME": "Usa account separato",
"COMMENT_MAXIMUM": "Lunghezza massima del campo raggiunta"
},
"PROGRESS_NEW": "Nuovo acquisto",
"PROGRESS_WAIT": "In attesa di risposta",
"PROGRESS_RECEIVE": "Risposta ricevuta",
"PROGRESS_COMPLETE": "Completato",
"FEE": "Commissione",
"PAYMENT": "ID pagamento",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "Nuovo acquisto",
"WAITING_SELLER": "In attesa di risposta",
"WAITING_BUYER": "Proposta contratto ricevuta",
"WAITING_CONFIRMATION": "In attesa della conferma dei depositi",
"WAITING_DELIVERY": "In attesa di consegna",
"COMPLETED": "Contratto completato",
"IGNORED_BUYER": "Proposta del contratto ignorata",
"IGNORED_SELLER": "Il venditore ha ignorato la tua proposta di contratto",
"PROPOSAL_CANCEL_SELLER": "Richiesta di cancellazione inviata",
"PROPOSAL_CANCEL_BUYER": "Richiesta di cancellazione ricevuta",
"BEING_CANCELLED": "Cancellazione in corso",
"IGNORED_CANCEL_SELLER": "Il venditore ha ignorato la tua proposta di cancellare il contratto",
"IGNORED_CANCEL_BUYER": "Proposta di cancellazione del contratto ignorata",
"CANCELLED": "Contratto cancellato",
"EXPIRED": "Proposta contratto scaduta",
"NOT_RECEIVED": "Consegna fallita",
"NULLIFIED": "Tutti i depositi bruciati"
},
"ACCEPT_STATE_WAIT_BIG": "Contratto iniziato",
"IGNORED_ACCEPT": "Proposta del contratto ignorata",
"BURN_PROPOSAL": "Depositi bruciati",
"SUCCESS_FINISH_PROPOSAL": "Contratto completato",
"SEND_CANCEL_PROPOSAL": "Richiesta di cancellazione inviata",
"IGNORED_CANCEL": "Proposta di cancellazione del contratto ignorata",
"DEALS_CANCELED_WAIT": "Cancellazione in corso",
"WAITING_TIME": "Tempo di risposta",
"NEED_MONEY": "Fondi insufficienti",
"BUTTON_MAKE_PLEDGE": "Accetta e effettua il deposito",
"BUTTON_IGNORE": "Ignora e nascondi l'offerta",
"BUTTON_NULLIFY": "Termina e brucia i depositi",
"BUTTON_RECEIVED": "Completa e rilascia i depositi",
"BUTTON_CANCEL_BUYER": "Cancella e restituisce i depositi",
"BUTTON_NOT_CANCEL": "Ignora richiesta",
"BUTTON_CANCEL_SELLER": "Conferma e restituisce depositi",
"HOUR": "ora",
"HOURS": "ore",
"CANCEL": "Cancella",
"NULLIFY_QUESTION": "Sei sicuro di voler bruciare entrambi i depositi?",
"BUTTON_NULLIFY_SHORT": "Bruciare",
"WAITING_TIME_QUESTION": "Sei sicuro di voler cancellare il contratto?"
},
"MESSAGES": {
"ADDRESS": "Indirizzo",
"MESSAGE": "Messaggio",
"SEND_PLACEHOLDER": "Digita un messaggio...",
"SEND_BUTTON": "Invia"
},
"MODALS": {
"ERROR": "Errore",
"SUCCESS": "Successo",
"INFO": "Informazioni",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Invia",
"BUTTON_CANCEL": "Cancella",
"TITLE": "Conferma la transazione",
"MESSAGE": {
"SEND": "Invia",
"FROM": "Da",
"TO": "A",
"COMMENT": "Commento"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "In sospeso",
"TITLE_TOTAL": "Totale",
"TITLE_PERIOD": "Periodo di tempo:",
"PERIOD": {
"WEEK1": "1 settimana",
"WEEK2": "2 settimane",
"MONTH1": "1 mese",
"MONTH3": "3 mesi",
"MONTH6": "6 mesi",
"YEAR": "1 anno",
"ALL": "Tutti"
},
"TITLE_GROUP": "Gruppo:",
"GROUP": {
"DAY": "giorno",
"WEEK": "settimana",
"MONTH": "mese"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Lista contatti",
"IMPORT_EXPORT": "Importa o esporta contatti",
"IMPORT": "Importa",
"EXPORT": "Esporta",
"ADD": "Aggiungi/modifica contatto",
"SEND": "Invia",
"SEND_FROM": "Invia da",
"SEND_TO": "A",
"OPEN_ADD_WALLET": "Apri/Aggiungi portafoglio",
"COPY": "- Copia",
"TABLE": {
"NAME": "Nome",
"ALIAS": "Alias",
"ADDRESS": "Indirizzo",
"NOTES": "Note",
"EMPTY": "La lista dei contatti è vuota"
},
"FORM": {
"NAME": "Nome",
"ADDRESS": "Indirizzo",
"NOTES": "Note"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Il nome è richiesto",
"NAME_DUBLICATED": "Il nome è un duplicato",
"ADDRESS_REQUIRED": "Indirizzo è richiesto",
"ADDRESS_NOT_VALID": "Indirizzo non valido",
"SET_MASTER_PASSWORD": "Imposta password principale",
"ADDRESS_DUBLICATED": "Indirizzo è un duplicato",
"MAX_LENGTH": "Lunghezza massima delle note raggiunta",
"NAME_LENGTH": "Il nome deve essere lungo da 4 a 25 caratteri"
},
"BUTTON": {
"SEND": "Invia",
"EDIT": "Modifica",
"DELETE": "Elimina",
"ADD": "Aggiungi contatto",
"ADD_EDIT": "Aggiungi/Salva",
"GO_TO_WALLET": "Vai al portafoglio",
"IMPORT_EXPORT": "Importa/esporta"
},
"SUCCESS_SENT": "Contatto aggiunto",
"SUCCESS_SAVE": "Contatto modificato",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Si è verificato un errore durante la lettura del file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Non abbastanza denaro",
"NOT_ENOUGH_MONEY": "Fondi insufficienti nell'account",
"CORE_BUSY": "Errore interno: il core è occupato",
"DAEMON_BUSY": "Errore interno: daemon è occupato",
"NO_MONEY_REMOVE_OFFER": "Non c'è alcun costo per eliminare un'offerta ma, per proteggere la rete dalle molte transazioni, devi avere almeno {{fee}} {{currency}} nel tuo portafoglio",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Il numero di Mix-in è troppo grande per lo stato corrente della blockchain. Non ci sono abbastanza output non spesi per mescolare con",
"TRANSACTION_IS_TO_BIG": "La transazione supera il limite di rete, invia l'importo richiesto con transazioni multiple",
"TRANSFER_ATTEMPT": "Non c'è connessione alla rete Zano",
"ACCESS_DENIED": "Accesso negato",
"TRANSACTION_ERROR": "Errore. Transazione non completata.",
"BAD_ARG": "Argomento non valido",
"WALLET_WRONG_ID": "ID portafoglio non valido",
"WRONG_PASSWORD": "Password non valida",
"FILE_RESTORED": "Il file del portafoglio è stato danneggiato. Abbiamo recuperato le chiavi e il portafoglio dalla blockchain",
"FILE_NOT_FOUND": "File non trovato",
"FILE_EXIST": "Esiste già un file con questo nome. Inserisci un altro nome per salvare il file",
"FILE_NOT_SAVED": "Non puoi salvare un file di portafoglio in questa cartella. Scegli un'altra cartella.",
"TX_TYPE_NORMAL": "Errore. Il pagamento dal portafoglio",
"TX_TYPE_NORMAL_TO": "a",
"TX_TYPE_NORMAL_END": "non è stato completato.",
"TX_TYPE_NEW_ALIAS": "Errore. Impossibile registrare l'alias in sicurezza",
"TX_TYPE_NEW_ALIAS_END": "Per favore riprova.",
"TX_TYPE_UPDATE_ALIAS": "Errore. Impossibile cambiare il commento all'alias in sicurezza",
"TX_TYPE_COIN_BASE": "Errore. Il pagamento non è stato completato."
},
"CONTEXT_MENU": {
"COPY": "copia",
"PASTE": "incolla",
"SELECT": "seleziona tutto"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Esci",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Pagamento in arrivo (non confermato)",
"INCOME_TRANSFER_CONFIRMED": "Pagamento ricevuto",
"MINED": "Minato",
"LOCKED": "Bloccato",
"IS_MINIMIZE": "L'applicazione Zano è minimizzata nella barra di sistema",
"RESTORE": "Puoi recuperarlo cliccando o utilizzando il menu contestuale",
"TRAY_MENU_SHOW": "Ridimensiona",
"TRAY_MENU_MINIMIZE": "Minimizza"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,587 @@
{
"LOGIN": {
"SETUP_MASTER_PASS": "Setup master password",
"SETUP_CONFIRM_PASS": "Confirm the password",
"MASTER_PASS": "Master password",
"BUTTON_NEXT": "Next",
"BUTTON_SKIP": "Skip",
"BUTTON_RESET": "Reset",
"INCORRECT_PASSWORD": "Invalid password",
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"CONFIRM_REQUIRED": "Confirmation is required",
"MISMATCH": "Mismatch"
}
},
"COMMON": {
"BACK": "Go back"
},
"BREADCRUMBS": {
"ADD_WALLET": "Add wallet",
"CREATE_WALLET": "Create new wallet",
"SAVE_PHRASE": "Save your seed phrase",
"OPEN_WALLET": "Open existing wallet",
"RESTORE_WALLET": "Restore from backup",
"WALLET_DETAILS": "Wallet details",
"ASSIGN_ALIAS": "Assign alias",
"EDIT_ALIAS": "Edit alias",
"TRANSFER_ALIAS": "Transfer alias",
"CONTRACTS": "Contracts",
"NEW_PURCHASE": "New purchase",
"OLD_PURCHASE": "Purchase"
},
"SIDEBAR": {
"TITLE": "Wallets",
"ADD_NEW": "+ Add",
"ACCOUNT": {
"STAKING": "Staking",
"MESSAGES": "New offers/Messages",
"SYNCING": "Syncing wallet"
},
"CONTACTS": "Contacts",
"SETTINGS": "Settings",
"LOG_OUT": "Log out",
"SYNCHRONIZATION": {
"OFFLINE": "Offline",
"ONLINE": "Online",
"ERROR": "System error",
"COMPLETE": "Completion",
"SYNCING": "Syncing blockchain",
"LOADING": "Loading blockchain data"
},
"UPDATE": {
"STANDARD": "Update available",
"STANDARD_TOOLTIP": "<span class=\"standard-update\">Get new update.</span><br><span>Update is recommended!</span>",
"IMPORTANT": "Update available",
"IMPORTANT_HINT": "Important update!",
"IMPORTANT_TOOLTIP": "<span class=\"important-update\">Get new update.</span><br><span>Important update!</span>",
"CRITICAL": "Update available",
"CRITICAL_HINT": "Critical update!",
"CRITICAL_TOOLTIP": "<span class=\"critical-update\">Critical update available.</span><i class=\"icon\"></i><span>Update strongly recommended!</span>",
"TIME": "System time differs from network",
"TIME_TOOLTIP": "<span class=\"wrong-time\">Wrong system time!</span><br><span>Check and repair your system time.</span>"
}
},
"MAIN": {
"TITLE": "Create or open the wallet to start using Zano",
"BUTTON_NEW_WALLET": "Create new wallet",
"BUTTON_OPEN_WALLET": "Open existing wallet",
"BUTTON_RESTORE_BACKUP": "Restore from backup",
"HELP": "How to create wallet?",
"CHOOSE_PATH": "Please choose a path"
},
"CREATE_WALLET": {
"NAME": "Wallet name",
"PASS": "Set wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"TITLE_SAVE": "Save the wallet file.",
"ERROR_CANNOT_SAVE_TOP": "Existing wallet files cannot be replaced or overwritten",
"ERROR_CANNOT_SAVE_SYSTEM": "Wallet files cannot be saved to the OS partition",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match"
}
},
"OPEN_WALLET": {
"NAME": "Wallet name",
"PASS": "Wallet password",
"BUTTON": "Open wallet",
"WITH_ADDRESS_ALREADY_OPEN": "A wallet with this address is already open",
"FILE_NOT_FOUND1": "Wallet file not found",
"FILE_NOT_FOUND2": "<br/><br/> It might have been renamed or moved. <br/> To open it, use the \"Open wallet\" button.",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
},
"MODAL": {
"TITLE": "Type wallet password",
"LABEL": "Password to this wallet",
"OPEN": "Open wallet",
"SKIP": "Skip",
"NOT_FOUND": "Not found"
}
},
"RESTORE_WALLET": {
"LABEL_NAME": "Wallet name",
"LABEL_PHRASE_KEY": "Seed phrase / private key",
"PASS": "Wallet password",
"CONFIRM": "Confirm wallet password",
"BUTTON_SELECT": "Select wallet location",
"BUTTON_CREATE": "Create wallet",
"NOT_CORRECT_FILE_OR_PASSWORD": "Invalid wallet file or password does not match",
"CHOOSE_PATH": "Please choose a path",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached",
"CONFIRM_NOT_MATCH": "Confirm password not match",
"KEY_REQUIRED": "Key is required",
"KEY_NOT_VALID": "Key not valid"
}
},
"SEED_PHRASE": {
"TITLE": "Make sure to keep your seed phrase in a safe place. If you forget your seed phrase you will not be able to recover your wallet.",
"BUTTON_CREATE_ACCOUNT": "Create wallet",
"BUTTON_COPY": "Copy"
},
"PROGRESS": {
"ADD_WALLET": "Add wallet",
"SELECT_LOCATION": "Select wallet location",
"CREATE_WALLET": "Create new wallet",
"RESTORE_WALLET": "Restore from backup"
},
"SETTINGS": {
"TITLE": "Settings",
"DARK_THEME": "Dark theme",
"WHITE_THEME": "White theme",
"GRAY_THEME": "Grey theme",
"APP_LOCK": {
"TITLE": "Lock app after:",
"TIME1": "5 min",
"TIME2": "15 min",
"TIME3": "1 hour",
"TIME4": "Never"
},
"MASTER_PASSWORD": {
"TITLE": "Update master password",
"OLD": "Old password",
"NEW": "New password",
"CONFIRM": "New password confirmation",
"BUTTON": "Save"
},
"FORM_ERRORS": {
"PASS_REQUIRED": "Password is required",
"PASS_NOT_MATCH": "Old password not match",
"CONFIRM_NOT_MATCH": "Confirm password not match"
},
"LAST_BUILD": "Current build: {{value}}",
"APP_LOG_TITLE": "Log level:"
},
"WALLET": {
"REGISTER_ALIAS": "Register an alias",
"DETAILS": "Details",
"LOCK": "Lock",
"AVAILABLE_BALANCE": "Available <b>{{available}} {{currency}}<b/>",
"LOCKED_BALANCE": "Locked <b>{{locked}} {{currency}}<b/>",
"LOCKED_BALANCE_LINK": "What does that mean?",
"TABS": {
"SEND": "Send",
"RECEIVE": "Receive",
"HISTORY": "History",
"CONTRACTS": "Contracts",
"MESSAGES": "Messages",
"STAKING": "Staking"
}
},
"WALLET_DETAILS": {
"LABEL_NAME": "Wallet name",
"LABEL_FILE_LOCATION": "Wallet file location",
"LABEL_SEED_PHRASE": "Seed phrase",
"SEED_PHRASE_HINT": "Click to reveal the seed phrase",
"BUTTON_SAVE": "Save",
"BUTTON_REMOVE": "Close wallet",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUPLICATE": "Name is duplicate",
"MAX_LENGTH": "Maximum name length reached"
}
},
"ASSIGN_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias",
"TOOLTIP": "An alias is a shortened form or your account. An alias can only include Latin letters, numbers and characters “.” and “-”. It must start with “@”."
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": "",
"TOOLTIP": "The comment will be visible to anyone who wants to make a payment to your alias. You can provide details about your business, contacts, or include any text. Comments can be edited later."
},
"COST": "Alias fee {{value}} {{currency}}",
"BUTTON_ASSIGN": "Assign",
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_WRONG": "Alias has wrong name",
"NAME_LENGTH": "The alias must be 6-25 characters long",
"NAME_EXISTS": "Alias name already exists",
"NO_MONEY": "You do not have enough funds to assign this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"ONE_ALIAS": "You can create only one alias per wallet",
"REQUEST_ADD_REG": "The alias will be assigned within 10 minutes"
},
"EDIT_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"NO_MONEY": "You do not have enough funds to change the comment to this alias",
"MAX_LENGTH": "Maximum comment length reached"
},
"COST": "Fee {{value}} {{currency}}",
"BUTTON_EDIT": "Edit"
},
"TRANSFER_ALIAS": {
"NAME": {
"LABEL": "Alias",
"PLACEHOLDER": "@ Enter alias"
},
"COMMENT": {
"LABEL": "Comment",
"PLACEHOLDER": ""
},
"ADDRESS": {
"LABEL": "Transfer to",
"PLACEHOLDER": ""
},
"FORM_ERRORS": {
"WRONG_ADDRESS": "No wallet with this account exists",
"ALIAS_EXISTS": "This account already has an alias",
"NO_MONEY": "You do not have enough funds to transfer this alias"
},
"COST": "Transfer fee {{value}} {{currency}}",
"BUTTON_TRANSFER": "Transfer",
"BUTTON_CANCEL": "Cancel",
"REQUEST_SEND_REG": "The alias will be transferred within 10 minutes"
},
"SEND": {
"ADDRESS": "Address",
"AMOUNT": "Amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"MIXIN": "Mixin",
"FEE": "Fee",
"HIDE": "Hide your wallet address from recipient",
"BUTTON": "Send",
"SUCCESS_SENT": "Transaction sent",
"FORM_ERRORS": {
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"ALIAS_NOT_VALID": "Alias not valid",
"AMOUNT_REQUIRED": "Amount is required",
"AMOUNT_ZERO": "Amount is zero",
"FEE_REQUIRED": "Fee is required",
"FEE_MINIMUM": "Minimum fee: {{fee}}",
"MAX_LENGTH": "Maximum comment length reached"
}
},
"HISTORY": {
"STATUS": "Status",
"STATUS_TOOLTIP": "Confirmations {{current}}/{{total}}",
"LOCK_TOOLTIP": "Locked till {{date}}",
"SEND": "Sent",
"RECEIVED": "Received",
"DATE": "Date",
"AMOUNT": "Amount",
"FEE": "Fee",
"ADDRESS": "Address",
"DETAILS": {
"PAYMENT_ID": "Payment ID",
"ID": "Transaction ID",
"SIZE": "Transaction size",
"SIZE_VALUE": "{{value}} bytes",
"HEIGHT": "Height",
"CONFIRMATION": "Confirmation",
"INPUTS": "Inputs",
"OUTPUTS": "Outputs",
"COMMENT": "Comment"
},
"TYPE_MESSAGES": {
"HIDDEN": "hidden",
"UNDEFINED": "Undefined",
"COMPLETE_BUYER": "Contract completed",
"COMPLETE_SELLER": "Contract completed",
"CREATE_ALIAS": "Fee for assigning alias",
"UPDATE_ALIAS": "Fee for editing alias",
"POW_REWARD": "POW reward",
"POS_REWARD": "POS reward",
"CREATE_CONTRACT": "Contract proposal",
"PLEDGE_CONTRACT": "Contract deposit",
"NULLIFY_CONTRACT": "Burn deposits",
"PROPOSAL_CANCEL_CONTRACT": "Cancellation request",
"CANCEL_CONTRACT": "Cancel and return deposits"
}
},
"CONTRACTS": {
"EMPTY": "No active contracts",
"CONTRACTS": "Contracts",
"PURCHASE": "Purchase",
"SELL": "Sell",
"DATE": "Date",
"AMOUNT": "Amount",
"STATUS": "Status",
"COMMENTS": "Comments",
"PURCHASE_BUTTON": "New Purchase",
"LISTING_BUTTON": "Create listing",
"TIME_LEFT": {
"REMAINING_LESS_ONE": "Less than an hour to respond",
"REMAINING_ONE": "{{time}} hour remains",
"REMAINING_MANY": "{{time}} hours remain",
"REMAINING_MANY_ALT": "{{time}} hours remain",
"REMAINING_ONE_RESPONSE": "{{time}} hour remains",
"REMAINING_MANY_RESPONSE": "{{time}} hours remain",
"REMAINING_MANY_ALT_RESPONSE": "{{time}} hours remain",
"REMAINING_ONE_WAITING": "Waiting for {{time}} hour",
"REMAINING_MANY_WAITING": "Waiting for {{time}} hours",
"REMAINING_MANY_ALT_WAITING": "Waiting for {{time}} hours"
},
"STATUS_MESSAGES": {
"SELLER": {
"NEW_CONTRACT": "New contract proposal",
"IGNORED": "You ignored contract proposal",
"ACCEPTED": "Contract started",
"WAIT": "Waiting for contract confirmation",
"WAITING_BUYER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"PROPOSAL_CANCEL": "New proposal to cancel contract and return deposits",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "You ignored cancellation proposal",
"EXPIRED": "Contract proposal has expired"
},
"BUYER": {
"WAITING": "Waiting for response",
"IGNORED": "Seller ignored your contract proposal",
"ACCEPTED": "Seller accepted your contract proposal",
"WAIT": "Waiting for deposits confirmation",
"WAITING_SELLER": "Waiting for delivery",
"COMPLETED": "Contract completed",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned",
"WAITING_CANCEL": "Waiting for contract cancellation",
"BEING_CANCELLED": "Cancellation in progress",
"CANCELLED": "Contract canceled",
"IGNORED_CANCEL": "The seller ignored your proposal to cancel the contract",
"EXPIRED": "The contract proposal has expired"
}
}
},
"PURCHASE": {
"DESCRIPTION": "Description",
"SELLER": "Seller",
"AMOUNT": "Amount",
"YOUR_DEPOSIT": "Your deposit",
"SELLER_DEPOSIT": "Seller deposit",
"BUYER_DEPOSIT": "Buyer deposit",
"SAME_AMOUNT": "Same amount",
"COMMENT": "Comment",
"DETAILS": "Additional details",
"SEND_BUTTON": "Send",
"FORM_ERRORS": {
"DESC_REQUIRED": "Description required",
"DESC_MAXIMUM": "Maximum field length reached",
"SELLER_REQUIRED": "Address required",
"SELLER_NOT_VALID": "Invalid address",
"ALIAS_NOT_VALID": "Invalid alias",
"AMOUNT_REQUIRED": "Amount required",
"AMOUNT_ZERO": "Amount cannot be zero",
"YOUR_DEPOSIT_REQUIRED": "Deposit required",
"SELLER_DEPOSIT_REQUIRED": "Seller deposit required",
"SELLER_SAME": "Use separate account",
"COMMENT_MAXIMUM": "Maximum field length reached"
},
"PROGRESS_NEW": "New purchase",
"PROGRESS_WAIT": "Awaiting reply",
"PROGRESS_RECEIVE": "Reply received",
"PROGRESS_COMPLETE": "Completed",
"FEE": "Fee",
"PAYMENT": "Payment ID",
"STATUS_MESSAGES": {
"NEW_PURCHASE": "New purchase",
"WAITING_SELLER": "Waiting for response",
"WAITING_BUYER": "Contract proposal received",
"WAITING_CONFIRMATION": "Waiting for deposits confirmation",
"WAITING_DELIVERY": "Waiting for delivery",
"COMPLETED": "Contract completed",
"IGNORED_BUYER": "Contract proposal ignored",
"IGNORED_SELLER": "The seller ignored your contract proposal",
"PROPOSAL_CANCEL_SELLER": "Cancellation request sent",
"PROPOSAL_CANCEL_BUYER": "Cancellation request received",
"BEING_CANCELLED": "Cancellation in progress",
"IGNORED_CANCEL_SELLER": "The seller ignored your proposal to cancel the contract",
"IGNORED_CANCEL_BUYER": "Contract cancellation proposal ignored",
"CANCELLED": "Contract canceled",
"EXPIRED": "Contract proposal expired",
"NOT_RECEIVED": "Delivery failed",
"NULLIFIED": "All deposits burned"
},
"ACCEPT_STATE_WAIT_BIG": "Contract started",
"IGNORED_ACCEPT": "Contract proposal ignored",
"BURN_PROPOSAL": "Deposits burned",
"SUCCESS_FINISH_PROPOSAL": "Contract completed",
"SEND_CANCEL_PROPOSAL": "Cancellation request sent",
"IGNORED_CANCEL": "Contract cancellation proposal ignored",
"DEALS_CANCELED_WAIT": "Cancellation in progress",
"WAITING_TIME": "Response time",
"NEED_MONEY": "Insufficient funds",
"BUTTON_MAKE_PLEDGE": "Accept and make deposit",
"BUTTON_IGNORE": "Ignore and hide offer",
"BUTTON_NULLIFY": "Terminate and burn deposits",
"BUTTON_RECEIVED": "Complete and release deposits",
"BUTTON_CANCEL_BUYER": "Cancel and return deposits",
"BUTTON_NOT_CANCEL": "Ignore request",
"BUTTON_CANCEL_SELLER": "Confirm and return deposits",
"HOUR": "hour",
"HOURS": "hours",
"CANCEL": "Cancel",
"NULLIFY_QUESTION": "Are you sure you want to burn both deposits?",
"BUTTON_NULLIFY_SHORT": "Burn",
"WAITING_TIME_QUESTION": "Are you sure you want to cancel the contract?"
},
"MESSAGES": {
"ADDRESS": "Address",
"MESSAGE": "Message",
"SEND_PLACEHOLDER": "Type a message...",
"SEND_BUTTON": "Send"
},
"MODALS": {
"ERROR": "Error",
"SUCCESS": "Success",
"INFO": "Information",
"OK": "OK"
},
"CONFIRM": {
"BUTTON_CONFIRM": "Send",
"BUTTON_CANCEL": "Cancel",
"TITLE": "Confirm transaction",
"MESSAGE": {
"SEND": "Send",
"FROM": "From",
"TO": "To",
"COMMENT": "Comment"
}
},
"STAKING": {
"TITLE": "Staking",
"TITLE_PENDING": "Pending",
"TITLE_TOTAL": "Total",
"TITLE_PERIOD": "Time period:",
"PERIOD": {
"WEEK1": "1 week",
"WEEK2": "2 week",
"MONTH1": "1 month",
"MONTH3": "3 month",
"MONTH6": "6 month",
"YEAR": "1 year",
"ALL": "All"
},
"TITLE_GROUP": "Group:",
"GROUP": {
"DAY": "day",
"WEEK": "week",
"MONTH": "month"
},
"SWITCH": {
"ON": "ON",
"OFF": "OFF"
}
},
"CONTACTS": {
"TITLE": "Contact list",
"IMPORT_EXPORT": "Import or export contacts",
"IMPORT": "Import",
"EXPORT": "Export",
"ADD": "Add/edit contact",
"SEND": "Send",
"SEND_FROM": "Send from",
"SEND_TO": "To",
"OPEN_ADD_WALLET": "Open/Add wallet",
"COPY": "- Copy",
"TABLE": {
"NAME": "Name",
"ALIAS": "Alias",
"ADDRESS": "Address",
"NOTES": "Notes",
"EMPTY": "Contact list is empty"
},
"FORM": {
"NAME": "Name",
"ADDRESS": "Address",
"NOTES": "Notes"
},
"FORM_ERRORS": {
"NAME_REQUIRED": "Name is required",
"NAME_DUBLICATED": "Name is dublicated",
"ADDRESS_REQUIRED": "Address is required",
"ADDRESS_NOT_VALID": "Address not valid",
"SET_MASTER_PASSWORD": "Set master password",
"ADDRESS_DUBLICATED": "Address is dublicated",
"MAX_LENGTH": "Maximum notes length reached",
"NAME_LENGTH": "The name must be 4-25 characters long"
},
"BUTTON": {
"SEND": "Send",
"EDIT": "Edit",
"DELETE": "Delete",
"ADD": "Add contact",
"ADD_EDIT": "Add/Save",
"GO_TO_WALLET": "Go to wallet",
"IMPORT_EXPORT": "Import/export"
},
"SUCCESS_SENT": "Contact added",
"SUCCESS_SAVE": "Contact is edited",
"SUCCESS_IMPORT": "Contacts are imported",
"SUCCESS_EXPORT": "Contacts are exported",
"ERROR_IMPORT": "Error is occured while reading file!",
"ERROR_TYPE_FILE": "Please import valid .csv file",
"ERROR_EXPORT": "Invalid file type. Save file as .csv",
"ERROR_EMPTY_LIST": "Contact list is empty",
"ERROR_IMPORT_EMPTY": "File is empty"
},
"ERRORS": {
"NO_MONEY": "Not enough money",
"NOT_ENOUGH_MONEY": "Insufficient funds in account",
"CORE_BUSY": "Internal error: core is busy",
"DAEMON_BUSY": "Internal error: daemon is busy",
"NO_MONEY_REMOVE_OFFER": "There is no fee for deleting an offer, but in order to protect the network against flood transactions you need to have at least {{fee}} {{currency}} in your wallet",
"NOT_ENOUGH_OUTPUTS_TO_MIX": "Mix-in number is too big for current blockchain state. There are not enough unspent outputs to mix with",
"TRANSACTION_IS_TO_BIG": "Transaction exceeds network limit, send required amount with multiple transactions",
"TRANSFER_ATTEMPT": "There is no connection to Zano network",
"ACCESS_DENIED": "Access denied",
"TRANSACTION_ERROR": "Error. Transaction not completed.",
"BAD_ARG": "Invalid argument",
"WALLET_WRONG_ID": "Invalid wallet ID",
"WRONG_PASSWORD": "Invalid password",
"FILE_RESTORED": "The wallet file was corrupted. We have recovered the keys and the wallet from the blockchain",
"FILE_NOT_FOUND": "File not found",
"FILE_EXIST": "A file with that name already exists. Enter another name to save the file under",
"FILE_NOT_SAVED": "You cannot save a wallet file in this folder. Please choose another folder.",
"TX_TYPE_NORMAL": "Error. The payment from the wallet",
"TX_TYPE_NORMAL_TO": "to",
"TX_TYPE_NORMAL_END": "was not completed.",
"TX_TYPE_NEW_ALIAS": "Error. Failed to register alias to safe",
"TX_TYPE_NEW_ALIAS_END": "Please try again.",
"TX_TYPE_UPDATE_ALIAS": "Error. Failed to change comment to alias in safe",
"TX_TYPE_COIN_BASE": "Error. The payment was not completed."
},
"CONTEXT_MENU": {
"COPY": "copy",
"PASTE": "paste",
"SELECT": "select all"
},
"BACKEND_LOCALIZATION": {
"QUIT": "Quit",
"IS_RECEIVED": "",
"IS_CONFIRMED": "",
"INCOME_TRANSFER_UNCONFIRMED": "Incoming payment (not confirmed)",
"INCOME_TRANSFER_CONFIRMED": "Payment received",
"MINED": "Mined",
"LOCKED": "Blocked",
"IS_MINIMIZE": "Zano application is minimized to the system tray",
"RESTORE": "You can recover it by clicking or using the context menu",
"TRAY_MENU_SHOW": "Resize",
"TRAY_MENU_MINIMIZE": "Minimize"
}
}

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 34 34" style="enable-background:new 0 0 34 34;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<polygon class="st0" points="31.9,4.9 29.1,2.1 17,14.2 4.9,2.1 2.1,4.9 14.2,17 2.1,29.1 4.9,31.9 17,19.8 29.1,31.9 31.9,29.1
19.8,17 "/>
</svg>

After

Width:  |  Height:  |  Size: 545 B

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 384 384" style="enable-background:new 0 0 384 384;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<title>icons_5</title>
<g id="f31d9964-f67b-451c-9eb6-78b833647305">
<path class="st0" d="M299.9,197.6c9.3-16.7,14.2-35.5,14.1-54.6c0-70-43.4-105-97-105s-97,35-97,105c-0.1,19.1,4.8,38,14.2,54.6
C89.2,218.8,68.5,274.1,50,346l334-0.1C365.5,274,344.8,218.8,299.9,197.6z M178.1,94c11.6-11.6,27.6-14,38.9-14s27.3,2.4,38.9,14
c13.3,13.2,16.1,34,16.1,49c0,34.7-24.7,63-55,63s-55-28.3-55-63C162,115.7,170.7,101.3,178.1,94z M128.8,256.5
c10.1-14.3,21.1-22.1,36.1-25c31.4,22,73.1,22,104.5-0.1c14.9,2.9,25.9,10.8,35.9,25c8.9,12.6,16.3,29.3,22.7,47.5L106.1,304
C112.5,285.8,119.9,269.1,128.8,256.5z"/>
<path class="st0" d="M32.5,261H0v42h18.2C23,287,27.6,273.3,32.5,261z"/>
<path class="st0" d="M83,182c-0.9-3.6-1.7-7.3-2.4-11H0v42h56.8C64.2,201.6,73,191.2,83,182z"/>
<path class="st0" d="M88.8,81H0v42h79C80.4,108.6,83.7,94.5,88.8,81z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 384 384" style="enable-background:new 0 0 384 384;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<path class="st0" d="M371,76H269V14H115v62H13v42h35v266h288V118h35V76z M157,56h70v20h-70V56z M294,342H90V118h204V342z"/>
<rect x="136" y="166" class="st0" width="42" height="128"/>
<rect x="206" y="166" class="st0" width="42" height="128"/>
</svg>

After

Width:  |  Height:  |  Size: 651 B

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 34 34" style="enable-background:new 0 0 34 34;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<g>
<path class="st0" d="M15.6,3C14.8,1.2,13,0,11,0S7.2,1.2,6.4,3H0v4h6.4C7.2,8.8,9,10,11,10s3.8-1.2,4.6-3H34V3H15.6z M11,6
c-0.6,0-1-0.4-1-1s0.4-1,1-1s1,0.4,1,1S11.6,6,11,6z"/>
<path class="st0" d="M23,12c-2,0-3.8,1.2-4.6,3H0v4h18.4c0.8,1.8,2.5,3,4.6,3s3.8-1.2,4.6-3H34v-4h-6.4C26.8,13.2,25,12,23,12z
M23,18c-0.6,0-1-0.4-1-1s0.4-1,1-1s1,0.4,1,1S23.6,18,23,18z"/>
<path class="st0" d="M11,24c-2,0-3.8,1.2-4.6,3H0v4h6.4c0.8,1.8,2.5,3,4.6,3s3.8-1.2,4.6-3H34v-4H15.6C14.8,25.2,13,24,11,24z
M11,30c-0.6,0-1-0.4-1-1s0.4-1,1-1s1,0.4,1,1S11.6,30,11,30z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 971 B

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="icons" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 384 384" style="enable-background:new 0 0 384 384;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<path id="details_1_" class="st0" d="M384,112.9L271.1,0L25,246.1v83.8L0.3,354l29.3,30l25.6-25h82.6L384,112.9z M324.6,112.9
l-36.4,36.4l-53.5-53.5l36.4-36.4L324.6,112.9z M70.3,317l-3.3-3.5v-50l138-138l53.5,53.5l-138,138H70.3z"/>
</svg>

After

Width:  |  Height:  |  Size: 637 B

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="icons" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 384 384" style="enable-background:new 0 0 384 384;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<polygon class="st0" points="296.5,366 384,288 296.5,210.5 296.5,267 0,267 0,309 296.5,309 "/>
<polygon class="st0" points="87.5,18 0,96 87.5,173.5 87.5,117 384,117 384,75 87.5,75 "/>
</svg>

After

Width:  |  Height:  |  Size: 592 B

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<path class="st0" d="M22,15h-3.4H9.9v-5c0-3.3,2.7-6,6-6H16c3,0,5.4,2.2,5.9,5h4c-0.5-5-4.8-9-9.9-9h-0.1c-5.5,0-10,4.5-10,10v5H3
v17h12.9H16h13V15h-3H22z M18,27h-4v-7h4V27z"/>
</svg>

After

Width:  |  Height:  |  Size: 581 B

View file

@ -20,7 +20,8 @@ button {
padding: 0 1rem;
height: 4.2rem;
&:disabled:not(.transparent-button) {
&:disabled:not(.transparent-button),
&.blue-button_reset{
@include themify($themes) {
background-color: themed(disabledButtonBackgroundColor);
@ -996,3 +997,29 @@ app-open-wallet-modal {
}
}
}
app-send-modal {
.modal {
@include themify($themes) {
background: themed(modalBackground);
color: themed(mainTextColor);
}
.title {
@include themify($themes) {
border-bottom: 0.2rem solid themed(transparentButtonBorderColor);
}
}
.action-button {
@include themify($themes) {
background-color: themed(blueTextColor);
color: themed(alternativeTextColor);
}
}
}
}

View file

@ -0,0 +1,88 @@
app-contacts, app-add-contacts,
app-contact-send, app-export-import {
flex: 1 1 auto;
padding: 3rem;
min-width: 85rem;
.content {
position: relative;
padding: 3rem;
min-height: 100%;
@include themify($themes) {
background-color: themed(contentBackgroundColor);
color: themed(mainTextColor);
}
.head {
position: absolute;
top: 0;
left: 0;
}
}
}
app-contacts {
table {
.alias {
@include themify($themes) {
color: themed(blueTextColor);
}
}
button {
.icon {
@include themify($themes) {
background-color: themed(blueTextColor);
}
}
span {
@include themify($themes) {
color: themed(mainTextColor)
}
}
}
}
.footer {
@include themify($themes) {
color: themed(blueTextColor);
}
.import-btn {
@include themify($themes) {
color: themed(blueTextColor);
}
.icon {
@include themify($themes) {
background-color: themed(blueTextColor);
}
}
}
}
}
app-contact-send {
.wallets-selection {
button {
@include themify($themes) {
color: themed(blueTextColor);
}
}
}
}

View file

@ -199,6 +199,13 @@ app-history {
}
}
.unlock-transaction {
@include themify($themes) {
background-color: themed(blueTextColor);
}
}
.status.send {
.status-transaction {

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 34 34" style="enable-background:new 0 0 34 34;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<polygon class="st0" points="31.9,4.9 29.1,2.1 17,14.2 4.9,2.1 2.1,4.9 14.2,17 2.1,29.1 4.9,31.9 17,19.8 29.1,31.9 31.9,29.1
19.8,17 "/>
</svg>

After

Width:  |  Height:  |  Size: 545 B

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 384 384" style="enable-background:new 0 0 384 384;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<title>icons_5</title>
<g id="f31d9964-f67b-451c-9eb6-78b833647305">
<path class="st0" d="M299.9,197.6c9.3-16.7,14.2-35.5,14.1-54.6c0-70-43.4-105-97-105s-97,35-97,105c-0.1,19.1,4.8,38,14.2,54.6
C89.2,218.8,68.5,274.1,50,346l334-0.1C365.5,274,344.8,218.8,299.9,197.6z M178.1,94c11.6-11.6,27.6-14,38.9-14s27.3,2.4,38.9,14
c13.3,13.2,16.1,34,16.1,49c0,34.7-24.7,63-55,63s-55-28.3-55-63C162,115.7,170.7,101.3,178.1,94z M128.8,256.5
c10.1-14.3,21.1-22.1,36.1-25c31.4,22,73.1,22,104.5-0.1c14.9,2.9,25.9,10.8,35.9,25c8.9,12.6,16.3,29.3,22.7,47.5L106.1,304
C112.5,285.8,119.9,269.1,128.8,256.5z"/>
<path class="st0" d="M32.5,261H0v42h18.2C23,287,27.6,273.3,32.5,261z"/>
<path class="st0" d="M83,182c-0.9-3.6-1.7-7.3-2.4-11H0v42h56.8C64.2,201.6,73,191.2,83,182z"/>
<path class="st0" d="M88.8,81H0v42h79C80.4,108.6,83.7,94.5,88.8,81z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 384 384" style="enable-background:new 0 0 384 384;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<path class="st0" d="M371,76H269V14H115v62H13v42h35v266h288V118h35V76z M157,56h70v20h-70V56z M294,342H90V118h204V342z"/>
<rect x="136" y="166" class="st0" width="42" height="128"/>
<rect x="206" y="166" class="st0" width="42" height="128"/>
</svg>

After

Width:  |  Height:  |  Size: 651 B

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 34 34" style="enable-background:new 0 0 34 34;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<g>
<path class="st0" d="M15.6,3C14.8,1.2,13,0,11,0S7.2,1.2,6.4,3H0v4h6.4C7.2,8.8,9,10,11,10s3.8-1.2,4.6-3H34V3H15.6z M11,6
c-0.6,0-1-0.4-1-1s0.4-1,1-1s1,0.4,1,1S11.6,6,11,6z"/>
<path class="st0" d="M23,12c-2,0-3.8,1.2-4.6,3H0v4h18.4c0.8,1.8,2.5,3,4.6,3s3.8-1.2,4.6-3H34v-4h-6.4C26.8,13.2,25,12,23,12z
M23,18c-0.6,0-1-0.4-1-1s0.4-1,1-1s1,0.4,1,1S23.6,18,23,18z"/>
<path class="st0" d="M11,24c-2,0-3.8,1.2-4.6,3H0v4h6.4c0.8,1.8,2.5,3,4.6,3s3.8-1.2,4.6-3H34v-4H15.6C14.8,25.2,13,24,11,24z
M11,30c-0.6,0-1-0.4-1-1s0.4-1,1-1s1,0.4,1,1S11.6,30,11,30z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 971 B

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="icons" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 384 384" style="enable-background:new 0 0 384 384;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<path id="details_1_" class="st0" d="M384,112.9L271.1,0L25,246.1v83.8L0.3,354l29.3,30l25.6-25h82.6L384,112.9z M324.6,112.9
l-36.4,36.4l-53.5-53.5l36.4-36.4L324.6,112.9z M70.3,317l-3.3-3.5v-50l138-138l53.5,53.5l-138,138H70.3z"/>
</svg>

After

Width:  |  Height:  |  Size: 637 B

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="icons" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 384 384" style="enable-background:new 0 0 384 384;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<polygon class="st0" points="296.5,366 384,288 296.5,210.5 296.5,267 0,267 0,309 296.5,309 "/>
<polygon class="st0" points="87.5,18 0,96 87.5,173.5 87.5,117 384,117 384,75 87.5,75 "/>
</svg>

After

Width:  |  Height:  |  Size: 592 B

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -5800,8 +5800,8 @@ __webpack_require__.r(__webpack_exports__);
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(/*! /Users/apple/Documents/zano/src/gui/qt-daemon/html_source/src/polyfills.ts */"./src/polyfills.ts");
module.exports = __webpack_require__(/*! /Users/apple/Documents/zano/src/gui/qt-daemon/html_source/node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js */"./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js");
__webpack_require__(/*! d:\Projects\zano\src\gui\qt-daemon\html_source\src\polyfills.ts */"./src/polyfills.ts");
module.exports = __webpack_require__(/*! d:\Projects\zano\src\gui\qt-daemon\html_source\node_modules\@angular-devkit\build-angular\src\angular-cli-files\models\jit-polyfills.js */"./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js");
/***/ })

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<path class="st0" d="M22,15h-3.4H9.9v-5c0-3.3,2.7-6,6-6H16c3,0,5.4,2.2,5.9,5h4c-0.5-5-4.8-9-9.9-9h-0.1c-5.5,0-10,4.5-10,10v5H3
v17h12.9H16h13V15h-3H22z M18,27h-4v-7h4V27z"/>
</svg>

After

Width:  |  Height:  |  Size: 581 B

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -33,6 +33,7 @@
"idlejs": "^2.0.1",
"json-bignumber": "^1.0.1",
"ngx-contextmenu": "^5.1.1",
"ngx-papaparse": "^3.0.3",
"qrcode": "^1.3.0",
"rxjs": "~6.3.3",
"zone.js": "~0.8.26"

View file

@ -16,7 +16,8 @@
background-position: center;
background-size: 200%;
padding: 2rem;
width: 34rem;
min-width: 34rem;
max-width: 60rem;
.content {
display: flex;

Some files were not shown because too many files have changed in this diff Show more