Merge branch 'master' into online-accounts-mempow

# Conflicts:
#	src/main/java/org/qortal/block/BlockChain.java
This commit is contained in:
CalDescent 2022-04-16 13:05:09 +01:00
commit 14f262d567
61 changed files with 2599 additions and 1574 deletions

View File

@ -98,7 +98,15 @@ public class GroupsResource {
ref = "reverse"
) @QueryParam("reverse") Boolean reverse) {
try (final Repository repository = RepositoryManager.getRepository()) {
return repository.getGroupRepository().getAllGroups(limit, offset, reverse);
List<GroupData> allGroupData = repository.getGroupRepository().getAllGroups(limit, offset, reverse);
allGroupData.forEach(groupData -> {
try {
groupData.memberCount = repository.getGroupRepository().countGroupMembers(groupData.getGroupId());
} catch (DataException e) {
// Exclude memberCount for this group
}
});
return allGroupData;
} catch (DataException e) {
throw ApiExceptionFactory.INSTANCE.createException(request, ApiError.REPOSITORY_ISSUE, e);
}
@ -150,7 +158,15 @@ public class GroupsResource {
throw ApiExceptionFactory.INSTANCE.createException(request, ApiError.INVALID_ADDRESS);
try (final Repository repository = RepositoryManager.getRepository()) {
return repository.getGroupRepository().getGroupsWithMember(member);
List<GroupData> allGroupData = repository.getGroupRepository().getGroupsWithMember(member);
allGroupData.forEach(groupData -> {
try {
groupData.memberCount = repository.getGroupRepository().countGroupMembers(groupData.getGroupId());
} catch (DataException e) {
// Exclude memberCount for this group
}
});
return allGroupData;
} catch (DataException e) {
throw ApiExceptionFactory.INSTANCE.createException(request, ApiError.REPOSITORY_ISSUE, e);
}
@ -177,6 +193,7 @@ public class GroupsResource {
if (groupData == null)
throw ApiExceptionFactory.INSTANCE.createException(request, ApiError.GROUP_UNKNOWN);
groupData.memberCount = repository.getGroupRepository().countGroupMembers(groupId);
return groupData;
} catch (DataException e) {
throw ApiExceptionFactory.INSTANCE.createException(request, ApiError.REPOSITORY_ISSUE, e);

View File

@ -478,6 +478,14 @@ public class ArbitraryDataFile {
// Read the metadata
List<byte[]> chunks = metadata.getChunks();
// If the chunks array is empty, then this resource has no chunks,
// so we must return false to avoid confusing the caller.
if (chunks.isEmpty()) {
return false;
}
// Otherwise, we need to check each chunk individually
for (byte[] chunkHash : chunks) {
ArbitraryDataFileChunk chunk = ArbitraryDataFileChunk.fromHash(chunkHash, this.signature);
if (!chunk.exists()) {

View File

@ -73,9 +73,13 @@ public class BlockChain {
}
// Custom transaction fees
@XmlJavaTypeAdapter(value = org.qortal.api.AmountTypeAdapter.class)
private long nameRegistrationUnitFee;
private long nameRegistrationUnitFeeTimestamp;
/** Unit fees by transaction timestamp */
public static class UnitFeesByTimestamp {
public long timestamp;
@XmlJavaTypeAdapter(value = org.qortal.api.AmountTypeAdapter.class)
public long fee;
}
private List<UnitFeesByTimestamp> nameRegistrationUnitFees;
/** Map of which blockchain features are enabled when (height/timestamp) */
@XmlJavaTypeAdapter(StringLongMapXmlAdapter.class)
@ -314,16 +318,6 @@ public class BlockChain {
return this.maxBlockSize;
}
// Custom transaction fees
public long getNameRegistrationUnitFee() {
return this.nameRegistrationUnitFee;
}
public long getNameRegistrationUnitFeeTimestamp() {
// FUTURE: we could use a separate structure to indicate fee adjustments for different transaction types
return this.nameRegistrationUnitFeeTimestamp;
}
// Online accounts
public long getOnlineAccountsModulusV2Timestamp() {
return this.onlineAccountsModulusV2Timestamp;
@ -447,6 +441,16 @@ public class BlockChain {
throw new IllegalStateException(String.format("No block timing info available for height %d", ourHeight));
}
public long getNameRegistrationUnitFeeAtTimestamp(long ourTimestamp) {
// Scan through for reward at our height
for (int i = 0; i < nameRegistrationUnitFees.size(); ++i)
if (ourTimestamp >= nameRegistrationUnitFees.get(i).timestamp)
return nameRegistrationUnitFees.get(i).fee;
// Default to system-wide unit fee
return this.getUnitFee();
}
/** Validate blockchain config read from JSON */
private void validateConfig() {
if (this.genesisInfo == null)

View File

@ -655,6 +655,29 @@ public class Controller extends Thread {
return lastMisbehaved != null && lastMisbehaved > NTP.getTime() - MISBEHAVIOUR_COOLOFF;
};
/** True if peer has unknown height, lower height or same height and same block signature (unless we don't have their block signature). */
public static Predicate<Peer> hasShorterBlockchain = peer -> {
BlockData highestBlockData = getInstance().getChainTip();
int ourHeight = highestBlockData.getHeight();
final PeerChainTipData peerChainTipData = peer.getChainTipData();
// Ensure we have chain tip data for this peer
if (peerChainTipData == null)
return true;
// Remove if peer is at a lower height than us
Integer peerHeight = peerChainTipData.getLastHeight();
if (peerHeight == null || peerHeight < ourHeight)
return true;
// Don't remove if peer is on a greater height chain than us, or if we don't have their block signature
if (peerHeight > ourHeight || peerChainTipData.getLastBlockSignature() == null)
return false;
// Remove if signatures match
return Arrays.equals(peerChainTipData.getLastBlockSignature(), highestBlockData.getSignature());
};
public static final Predicate<Peer> hasNoRecentBlock = peer -> {
final Long minLatestBlockTimestamp = getMinimumLatestBlockTimestamp();
final PeerChainTipData peerChainTipData = peer.getChainTipData();
@ -675,7 +698,7 @@ public class Controller extends Thread {
public static final Predicate<Peer> hasInferiorChainTip = peer -> {
final PeerChainTipData peerChainTipData = peer.getChainTipData();
final List<ByteArray> inferiorChainTips = Synchronizer.getInstance().inferiorChainSignatures;
return peerChainTipData == null || peerChainTipData.getLastBlockSignature() == null || inferiorChainTips.contains(new ByteArray(peerChainTipData.getLastBlockSignature()));
return peerChainTipData == null || peerChainTipData.getLastBlockSignature() == null || inferiorChainTips.contains(ByteArray.wrap(peerChainTipData.getLastBlockSignature()));
};
public static final Predicate<Peer> hasOldVersion = peer -> {
@ -1203,7 +1226,7 @@ public class Controller extends Thread {
byte[] signature = getBlockMessage.getSignature();
this.stats.getBlockMessageStats.requests.incrementAndGet();
ByteArray signatureAsByteArray = new ByteArray(signature);
ByteArray signatureAsByteArray = ByteArray.wrap(signature);
CachedBlockMessage cachedBlockMessage = this.blockMessageCache.get(signatureAsByteArray);
int blockCacheSize = Settings.getInstance().getBlockCacheSize();
@ -1283,7 +1306,7 @@ public class Controller extends Thread {
if (getChainHeight() - blockData.getHeight() <= blockCacheSize) {
this.stats.getBlockMessageStats.cacheFills.incrementAndGet();
this.blockMessageCache.put(new ByteArray(blockData.getSignature()), blockMessage);
this.blockMessageCache.put(ByteArray.wrap(blockData.getSignature()), blockMessage);
}
} catch (DataException e) {
LOGGER.error(String.format("Repository issue while send block %s to peer %s", Base58.encode(signature), peer), e);

View File

@ -235,6 +235,9 @@ public class Synchronizer extends Thread {
// Disregard peers that are on the same block as last sync attempt and we didn't like their chain
peers.removeIf(Controller.hasInferiorChainTip);
// Remove peers with unknown height, lower height or same height and same block signature (unless we don't have their block signature)
peers.removeIf(Controller.hasShorterBlockchain);
final int peersBeforeComparison = peers.size();
// Request recent block summaries from the remaining peers, and locate our common block with each
@ -314,7 +317,7 @@ public class Synchronizer extends Thread {
case INFERIOR_CHAIN: {
// Update our list of inferior chain tips
ByteArray inferiorChainSignature = new ByteArray(peer.getChainTipData().getLastBlockSignature());
ByteArray inferiorChainSignature = ByteArray.wrap(peer.getChainTipData().getLastBlockSignature());
if (!inferiorChainSignatures.contains(inferiorChainSignature))
inferiorChainSignatures.add(inferiorChainSignature);
@ -343,7 +346,7 @@ public class Synchronizer extends Thread {
// fall-through...
case NOTHING_TO_DO: {
// Update our list of inferior chain tips
ByteArray inferiorChainSignature = new ByteArray(peer.getChainTipData().getLastBlockSignature());
ByteArray inferiorChainSignature = ByteArray.wrap(peer.getChainTipData().getLastBlockSignature());
if (!inferiorChainSignatures.contains(inferiorChainSignature))
inferiorChainSignatures.add(inferiorChainSignature);
@ -419,7 +422,7 @@ public class Synchronizer extends Thread {
public void addInferiorChainSignature(byte[] inferiorSignature) {
// Update our list of inferior chain tips
ByteArray inferiorChainSignature = new ByteArray(inferiorSignature);
ByteArray inferiorChainSignature = ByteArray.wrap(inferiorSignature);
if (!inferiorChainSignatures.contains(inferiorChainSignature))
inferiorChainSignatures.add(inferiorChainSignature);
}

View File

@ -402,7 +402,7 @@ public class TradeBot implements Listener {
long now = NTP.getTime();
long newExpiry = generateExpiry(now);
ByteArray pubkeyByteArray = ByteArray.of(tradeNativeAccount.getPublicKey());
ByteArray pubkeyByteArray = ByteArray.wrap(tradeNativeAccount.getPublicKey());
// If map entry's timestamp is missing, or within early renewal period, use the new expiry - otherwise use existing timestamp.
synchronized (this.ourTradePresenceTimestampsByPubkey) {
@ -489,7 +489,7 @@ public class TradeBot implements Listener {
int knownCount = entriesUnknownToPeer.size();
for (TradePresenceData peersTradePresence : peersTradePresences) {
ByteArray pubkeyByteArray = ByteArray.of(peersTradePresence.getPublicKey());
ByteArray pubkeyByteArray = ByteArray.wrap(peersTradePresence.getPublicKey());
TradePresenceData ourEntry = entriesUnknownToPeer.get(pubkeyByteArray);
@ -546,7 +546,7 @@ public class TradeBot implements Listener {
continue;
}
ByteArray pubkeyByteArray = ByteArray.of(peersTradePresence.getPublicKey());
ByteArray pubkeyByteArray = ByteArray.wrap(peersTradePresence.getPublicKey());
// Ignore if we've previously verified this timestamp+publickey combo or sent timestamp is older
TradePresenceData existingTradeData = this.safeAllTradePresencesByPubkey.get(pubkeyByteArray);
@ -589,7 +589,7 @@ public class TradeBot implements Listener {
continue;
}
ByteArray atCodeHash = new ByteArray(atData.getCodeHash());
ByteArray atCodeHash = ByteArray.wrap(atData.getCodeHash());
Supplier<ACCT> acctSupplier = acctSuppliersByCodeHash.get(atCodeHash);
if (acctSupplier == null) {
LOGGER.trace("Ignoring trade presence {} from peer {} as AT isn't a known ACCT?",
@ -642,7 +642,7 @@ public class TradeBot implements Listener {
public void bridgePresence(long timestamp, byte[] publicKey, byte[] signature, String atAddress) {
long expiry = generateExpiry(timestamp);
ByteArray pubkeyByteArray = ByteArray.of(publicKey);
ByteArray pubkeyByteArray = ByteArray.wrap(publicKey);
TradePresenceData fakeTradePresenceData = new TradePresenceData(expiry, publicKey, signature, atAddress);

View File

@ -47,9 +47,9 @@ public class Litecoin extends Bitcoiny {
// Status verified at https://1209k.com/bitcoin-eye/ele.php?chain=ltc
//CLOSED new Server("electrum-ltc.petrkr.net", Server.ConnectionType.SSL, 60002),
//CLOSED new Server("electrum-ltc.someguy123.net", Server.ConnectionType.SSL, 50002),
//PHISHY new Server("electrum-ltc.bysh.me", Server.ConnectionType.SSL, 50002),
new Server("backup.electrum-ltc.org", Server.ConnectionType.SSL, 443),
new Server("electrum.ltc.xurious.com", Server.ConnectionType.SSL, 50002),
new Server("electrum-ltc.bysh.me", Server.ConnectionType.SSL, 50002),
new Server("electrum1.cipig.net", Server.ConnectionType.SSL, 20063),
new Server("electrum2.cipig.net", Server.ConnectionType.SSL, 20063),
new Server("electrum3.cipig.net", Server.ConnectionType.SSL, 20063),

View File

@ -62,7 +62,7 @@ public enum SupportedBlockchain {
private static final Map<ByteArray, Supplier<ACCT>> supportedAcctsByCodeHash = Arrays.stream(SupportedBlockchain.values())
.map(supportedBlockchain -> supportedBlockchain.supportedAccts)
.flatMap(List::stream)
.collect(Collectors.toUnmodifiableMap(triple -> new ByteArray(triple.getB()), Triple::getC));
.collect(Collectors.toUnmodifiableMap(triple -> ByteArray.wrap(triple.getB()), Triple::getC));
private static final Map<String, Supplier<ACCT>> supportedAcctsByName = Arrays.stream(SupportedBlockchain.values())
.map(supportedBlockchain -> supportedBlockchain.supportedAccts)
@ -94,7 +94,7 @@ public enum SupportedBlockchain {
return getAcctMap();
return blockchain.supportedAccts.stream()
.collect(Collectors.toUnmodifiableMap(triple -> new ByteArray(triple.getB()), Triple::getC));
.collect(Collectors.toUnmodifiableMap(triple -> ByteArray.wrap(triple.getB()), Triple::getC));
}
public static Map<ByteArray, Supplier<ACCT>> getFilteredAcctMap(String specificBlockchain) {
@ -109,7 +109,7 @@ public enum SupportedBlockchain {
}
public static ACCT getAcctByCodeHash(byte[] codeHash) {
ByteArray wrappedCodeHash = new ByteArray(codeHash);
ByteArray wrappedCodeHash = ByteArray.wrap(codeHash);
Supplier<ACCT> acctInstanceSupplier = supportedAcctsByCodeHash.get(wrappedCodeHash);

View File

@ -23,6 +23,7 @@ public class GroupData {
private ApprovalThreshold approvalThreshold;
private int minimumBlockDelay;
private int maximumBlockDelay;
public int memberCount;
/** Reference to CREATE_GROUP or UPDATE_GROUP transaction, used to rebuild group during orphaning. */
// No need to ever expose this via API

View File

@ -29,7 +29,7 @@ public class ChatTransaction extends Transaction {
public static final int MAX_DATA_SIZE = 256;
public static final int POW_BUFFER_SIZE = 8 * 1024 * 1024; // bytes
public static final int POW_DIFFICULTY_WITH_QORT = 8; // leading zero bits
public static final int POW_DIFFICULTY_NO_QORT = 14; // leading zero bits
public static final int POW_DIFFICULTY_NO_QORT = 12; // leading zero bits
// Constructors

View File

@ -184,7 +184,7 @@ public class PresenceTransaction extends Transaction {
String signerAddress = Crypto.toAddress(this.transactionData.getCreatorPublicKey());
for (ATData atData : atsData) {
ByteArray atCodeHash = new ByteArray(atData.getCodeHash());
ByteArray atCodeHash = ByteArray.wrap(atData.getCodeHash());
Supplier<ACCT> acctSupplier = acctSuppliersByCodeHash.get(atCodeHash);
if (acctSupplier == null)
continue;

View File

@ -39,11 +39,7 @@ public class RegisterNameTransaction extends Transaction {
@Override
public long getUnitFee(Long timestamp) {
// Use a higher unit fee after the fee increase timestamp
if (timestamp > BlockChain.getInstance().getNameRegistrationUnitFeeTimestamp()) {
return BlockChain.getInstance().getNameRegistrationUnitFee();
}
return BlockChain.getInstance().getUnitFee();
return BlockChain.getInstance().getNameRegistrationUnitFeeAtTimestamp(timestamp);
}
// Navigation

View File

@ -8,12 +8,16 @@ public class ByteArray implements Comparable<ByteArray> {
private int hash;
public final byte[] value;
public ByteArray(byte[] value) {
this.value = Objects.requireNonNull(value);
private ByteArray(byte[] value) {
this.value = value;
}
public static ByteArray of(byte[] value) {
return new ByteArray(value);
public static ByteArray wrap(byte[] value) {
return new ByteArray(Objects.requireNonNull(value));
}
public static ByteArray copyOf(byte[] value) {
return new ByteArray(Arrays.copyOf(value, value.length));
}
@Override
@ -36,12 +40,7 @@ public class ByteArray implements Comparable<ByteArray> {
byte[] val = this.value;
if (h == 0 && val.length > 0) {
h = 1;
for (int i = 0; i < val.length; ++i)
h = 31 * h + val[i];
this.hash = h;
this.hash = h = Arrays.hashCode(val);
}
return h;
}
@ -53,24 +52,7 @@ public class ByteArray implements Comparable<ByteArray> {
}
public int compareToPrimitive(byte[] otherValue) {
byte[] val = this.value;
if (val.length < otherValue.length)
return -1;
if (val.length > otherValue.length)
return 1;
for (int i = 0; i < val.length; ++i) {
int a = val[i] & 0xFF;
int b = otherValue[i] & 0xFF;
if (a < b)
return -1;
if (a > b)
return 1;
}
return 0;
return Arrays.compareUnsigned(this.value, otherValue);
}
public String toString() {

View File

@ -4,8 +4,9 @@
"maxBlockSize": 2097152,
"maxBytesPerUnitFee": 1024,
"unitFee": "0.001",
"nameRegistrationUnitFee": "5",
"nameRegistrationUnitFeeTimestamp": 1645372800000,
"nameRegistrationUnitFees": [
{ "timestamp": 1645372800000, "fee": "5" }
],
"useBrokenMD160ForAddresses": false,
"requireGroupForApproval": false,
"defaultGroupId": 0,

View File

@ -81,4 +81,3 @@ ORDER_SIZE_TOO_SMALL = order amount too low
FILE_NOT_FOUND = Datei nicht gefunden
NO_REPLY = peer did not reply with data

View File

@ -80,8 +80,4 @@ ORDER_SIZE_TOO_SMALL = order amount too low
### Data ###
FILE_NOT_FOUND = file not found
ORDER_SIZE_TOO_SMALL = order size too small
FILE_NOT_FOUND = file not found
NO_REPLY = peer didn't reply within the allowed time

View File

@ -1,121 +1,83 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# Keys are from api.ApiError enum
# "localeLang": "es",
### Common ###
JSON = no se pudo analizar el mensaje JSON
#failed to parse JSON message
INSUFFICIENT_BALANCE = saldo insuficiente
#insufficient balance
UNAUTHORIZED = Llamada API no autorizada
#API call unauthorized
REPOSITORY_ISSUE = error de repositorio
#repository error
NON_PRODUCTION = esta llamada API no está permitida para sistemas de producción
#this API call is not permitted for production systems
BLOCKCHAIN_NEEDS_SYNC = blockchain necesita sincronizarse primero
#blockchain needs to synchronize first
NO_TIME_SYNC = aún no hay sincronización de reloj
#no clock synchronization yet
### Validation ###
INVALID_SIGNATURE = firma no válida
#invalid signature
INVALID_ADDRESS = dirección no válida
#invalid address
INVALID_PUBLIC_KEY = clave pública no válida
#invalid public key
INVALID_DATA = datos no válidos
#invalid data
INVALID_NETWORK_ADDRESS = dirección de red no válida
#invalid network address
ADDRESS_UNKNOWN = dirección de cuenta desconocida
#account address unknown
INVALID_CRITERIA = criterio de búsqueda no válido
#invalid search criteria
INVALID_REFERENCE = referencia no válida
#invalid reference
TRANSFORMATION_ERROR = no se pudo transformar JSON en transacción
#could not transform JSON into transaction
INVALID_PRIVATE_KEY = clave privada no válida
#invalid private key
INVALID_HEIGHT = altura de bloque no válida
#invalid block height
CANNOT_MINT = la cuenta no puede acuñar
#account cannot mint
### Blocks ###
BLOCK_UNKNOWN = bloque desconocido
#block unknown
### Transactions ###
TRANSACTION_UNKNOWN = transacción desconocida
#transaction unknown
PUBLIC_KEY_NOT_FOUND = clave pública no encontrada
#public key not found
# this one is special in that caller expected to pass two additional strings, hence the two %s
TRANSACTION_INVALID = transacción no válida: %s (%s)
#transaction invalid: %s (%s)
### Naming ###
NAME_UNKNOWN = nombre desconocido
#name unknown
### Asset ###
INVALID_ASSET_ID = ID de recurso no válido
#invalid asset ID
INVALID_ORDER_ID = ID de pedido de activo no válido
#invalid asset order ID
ORDER_UNKNOWN = ID de pedido de activo desconocido
#unknown asset order ID
### Groups ###
GROUP_UNKNOWN = grupo desconocido
#group unknown
### Foreign Blockchain ###
FOREIGN_BLOCKCHAIN_NETWORK_ISSUE = problema de cadena de bloques extranjera o red ElectrumX
#foreign blockchain or ElectrumX network issue
FOREIGN_BLOCKCHAIN_BALANCE_ISSUE = saldo insuficiente en blockchain extranjera
#insufficient balance on foreign blockchain
FOREIGN_BLOCKCHAIN_TOO_SOON = demasiado pronto para transmitir transacciones de blockchain extranjeras (LockTime/mediana de tiempo de bloqueo)
#too soon to broadcast foreign blockchain transaction (LockTime/median block time)
### Trade Portal ###
ORDER_SIZE_TOO_SMALL = importe del pedido demasiado bajo
#order amount too low
### Data ###
FILE_NOT_FOUND = archivo no encontrado
#file not found
ORDER_SIZE_TOO_SMALL = tamaño del pedido demasiado pequeño
#order size too small
FILE_NOT_FOUND = archivo no encontrado
#file not found
NO_REPLY = el compañero no respondió dentro del tiempo permitido
#peer didn't reply within the allowed time

View File

@ -1,10 +1,7 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# Keys are from api.ApiError enum
# Kielen muuttaminen suomeksi tapahtuu settings.json-tiedostossa
#
# "localeLang": "fi",
# muista pilkku lopussa jos komento ei ole viimeisellä rivillä
### Common ###
JSON = JSON-viestin jaottelu epäonnistui

View File

@ -1,24 +1,46 @@
### Commun ###
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# Keys are from api.ApiError enum
# "localeLang": "fr",
### Commun ###
JSON = échec de l'analyse du message JSON
INSUFFICIENT_BALANCE = balance insuffisante
UNAUTHORIZED = appel de lAPI non autorisé
REPOSITORY_ISSUE = erreur de dépôt
NON_PRODUCTION = cet appel API n'est pas autorisé pour les systèmes en production
BLOCKCHAIN_NEEDS_SYNC = la blockchain doit d'abord être synchronisée
NO_TIME_SYNC = heure pas encore synchronisée
### Validation ###
INVALID_SIGNATURE = signature invalide
INVALID_ADDRESS = adresse invalide
INVALID_PUBLIC_KEY = clé publique invalide
INVALID_DATA = données invalides
INVALID_NETWORK_ADDRESS = adresse réseau invalide
ADDRESS_UNKNOWN = adresse de compte inconnue
INVALID_CRITERIA = critère de recherche invalide
INVALID_REFERENCE = référence invalide
TRANSFORMATION_ERROR = ne peut pas transformer JSON en transaction
INVALID_PRIVATE_KEY = clé privée invalide
INVALID_HEIGHT = hauteur de bloc invalide
CANNOT_MINT = le compte ne peut pas mint
### Blocks ###
@ -26,6 +48,7 @@ BLOCK_UNKNOWN = bloc inconnu
### Transactions ###
TRANSACTION_UNKNOWN = opération inconnue
PUBLIC_KEY_NOT_FOUND = clé publique introuvable
# celui-ci est spécial dans le sens où l'appelant doit passer deux chaînes supplémentaires, d'où les deux %s
@ -36,7 +59,9 @@ NAME_UNKNOWN = nom inconnu
### Asset ###
INVALID_ASSET_ID = identifiant d'actif invalide
INVALID_ORDER_ID = identifiant de commande d'actif non valide
ORDER_UNKNOWN = identifiant d'ordre d'actif inconnu
### Groupes ###
@ -44,7 +69,9 @@ GROUP_UNKNOWN = groupe inconnu
### Blockchain étrangère ###
FOREIGN_BLOCKCHAIN_NETWORK_ISSUE = Problème blokchain étrangère ou de réseau ElectrumX
FOREIGN_BLOCKCHAIN_BALANCE_ISSUE = solde insuffisant sur la blockchain étrangère
FOREIGN_BLOCKCHAIN_TOO_SOON = trop tôt pour diffuser la transaction sur la blockchain étrangère (temps de verrouillage/temps de bloc médian)
### Portail de trading ###
@ -52,4 +79,5 @@ ORDER_SIZE_TOO_SMALL = montant de commande trop bas
### Données ###
FILE_NOT_FOUND = fichier introuvable
NO_REPLY = le pair n'a pas renvoyé de données

View File

@ -1,8 +1,5 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# Keys are from api.ApiError enum
# Magyar myelvre forditotta: Szkíta (Scythian). 2021 Augusztus 7.
# Az alkalmazás nyelvének magyarra való változtatása a settings.json oldalon történik.
# Keys are from api.ApiError enum # Magyar nyelvre forditotta: Szkíta (Scythian). 2021 Augusztus 7.
# "localeLang": "hu",
@ -15,7 +12,7 @@ UNAUTHORIZED = nem engedélyezett API-hívás
REPOSITORY_ISSUE = adattári hiba
NON_PRODUCTION = ez az API-hívás nem engedélyezett korlátozott rendszereken
NON_PRODUCTION = ez az API-hívás nem engedélyezett éles rendszereken
BLOCKCHAIN_NEEDS_SYNC = a blokkláncnak még szinkronizálnia kell
@ -24,15 +21,15 @@ NO_TIME_SYNC = az óraszinkronizálás még nem történt meg
### Validation ###
INVALID_SIGNATURE = érvénytelen aláírás
INVALID_ADDRESS = érvénytelen fiók cím
INVALID_ADDRESS = érvénytelen fiókcím
INVALID_PUBLIC_KEY = érvénytelen nyilvános kulcs
INVALID_DATA = érvénytelen adat
INVALID_NETWORK_ADDRESS = érvénytelen hálózat cím
INVALID_NETWORK_ADDRESS = érvénytelen hálózatcím
ADDRESS_UNKNOWN = ismeretlen fiók cím
ADDRESS_UNKNOWN = ismeretlen fiókcím
INVALID_CRITERIA = érvénytelen keresési feltétel

View File

@ -1,26 +1,22 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# Keys are from api.ApiError enum
# Italian translation by Pabs 2021
# Keys are from api.ApiError enum # Italian translation by Pabs 2021
# La modifica della lingua dell'UI è fatta nel file Settings.json
#
# "localeLang": "it",
# Si prega ricordare la virgola alla fine, se questo comando non è sull'ultima riga
### Common ###
JSON = Impossibile analizzare il messaggio JSON
INSUFFICIENT_BALANCE = insufficient balance
INSUFFICIENT_BALANCE = bilancio insufficiente
UNAUTHORIZED = Chiamata API non autorizzata
REPOSITORY_ISSUE = errore del repositorio
REPOSITORY_ISSUE = errore del repository
NON_PRODUCTION = questa chiamata API non è consentita per i sistemi di produzione
BLOCKCHAIN_NEEDS_SYNC = blockchain deve prima sincronizzarsi
BLOCKCHAIN_NEEDS_SYNC = la blockchain deve sincronizzarsi
NO_TIME_SYNC = nessuna sincronizzazione dell'orologio ancora
NO_TIME_SYNC = nessuna sincronizzazione
### Validation ###
INVALID_SIGNATURE = firma non valida
@ -39,7 +35,7 @@ INVALID_CRITERIA = criteri di ricerca non validi
INVALID_REFERENCE = riferimento non valido
TRANSFORMATION_ERROR = non è stato possibile trasformare JSON in transazione
TRANSFORMATION_ERROR = non è stato possibile trasformare il JSON
INVALID_PRIVATE_KEY = chiave privata non valida
@ -62,26 +58,26 @@ TRANSACTION_INVALID = transazione non valida: %s (%s)
NAME_UNKNOWN = nome sconosciuto
### Asset ###
INVALID_ASSET_ID = identificazione risorsa non valida
INVALID_ASSET_ID = risorsa non valida
INVALID_ORDER_ID = identificazione di ordine di risorsa non valida
INVALID_ORDER_ID = ordine di risorsa non valida
ORDER_UNKNOWN = identificazione di ordine di risorsa sconosciuta
ORDER_UNKNOWN = ordine di risorsa sconosciuta
### Groups ###
GROUP_UNKNOWN = gruppo sconosciuto
### Foreign Blockchain ###
FOREIGN_BLOCKCHAIN_NETWORK_ISSUE = foreign blokchain or ElectrumX network issue
FOREIGN_BLOCKCHAIN_NETWORK_ISSUE = problema nella blockchain esterna o nella rete ElectrumX
FOREIGN_BLOCKCHAIN_BALANCE_ISSUE = insufficient balance on foreign blockchain
FOREIGN_BLOCKCHAIN_BALANCE_ISSUE = bilancio insufficiente nella blockchain esterna
FOREIGN_BLOCKCHAIN_TOO_SOON = too soon to broadcast foreign blockchain transaction (LockTime/median block time)
FOREIGN_BLOCKCHAIN_TOO_SOON = troppo presto per distribuire la transazione (sospensione LockTime/median)
### Trade Portal ###
ORDER_SIZE_TOO_SMALL = order amount too low
ORDER_SIZE_TOO_SMALL = quantità d'ordine troppo bassa
### Data ###
FILE_NOT_FOUND = file not found
NO_REPLY = peer did not reply with data
NO_REPLY = il peer non ha fornito dati

View File

@ -41,7 +41,7 @@ INVALID_PRIVATE_KEY = ongeldige private key
INVALID_HEIGHT = ongeldige blokhoogte
CANNOT_MINT = account kan niet munten
CANNOT_MINT = account kan niet minten
### Blocks ###
BLOCK_UNKNOWN = blok onbekend
@ -68,16 +68,16 @@ ORDER_UNKNOWN = onbekende asset order ID
GROUP_UNKNOWN = onbekende groep
### Foreign Blockchain ###
FOREIGN_BLOCKCHAIN_NETWORK_ISSUE = foreign blokchain or ElectrumX network issue
FOREIGN_BLOCKCHAIN_NETWORK_ISSUE = blockchain of ElectrumX network probleem
FOREIGN_BLOCKCHAIN_BALANCE_ISSUE = insufficient balance on foreign blockchain
FOREIGN_BLOCKCHAIN_BALANCE_ISSUE = onvoldoende saldo blockchain
FOREIGN_BLOCKCHAIN_TOO_SOON = too soon to broadcast foreign blockchain transaction (LockTime/median block time)
FOREIGN_BLOCKCHAIN_TOO_SOON = nog niet gereed om de blockchain transactie uittevoeren (LockTime/median block time)
### Trade Portal ###
ORDER_SIZE_TOO_SMALL = order amount too low
ORDER_SIZE_TOO_SMALL = order bedrag te laag
### Data ###
FILE_NOT_FOUND = file not found
FILE_NOT_FOUND = file niet gevonden
NO_REPLY = peer did not reply with data
NO_REPLY = peer reageerd niet met data

View File

@ -6,7 +6,7 @@
### Common ###
JSON = не удалось разобрать сообщение json
INSUFFICIENT_BALANCE = insufficient balance
INSUFFICIENT_BALANCE = недостаточный баланс
UNAUTHORIZED = вызов API не авторизован
@ -16,7 +16,7 @@ NON_PRODUCTION = этот вызов API не разрешен для произ
BLOCKCHAIN_NEEDS_SYNC = блокчейн должен сначала синхронизироваться
NO_TIME_SYNC = no clock synchronization yet
NO_TIME_SYNC = пока нет синхронизации часов
### Validation ###
INVALID_SIGNATURE = недействительная подпись
@ -27,7 +27,7 @@ INVALID_PUBLIC_KEY = недействительный открытый ключ
INVALID_DATA = неверные данные
INVALID_NETWORK_ADDRESS = неверный сетевой адрес
INVALID_NETWORK_ADDRESS = неверный адрес сети
ADDRESS_UNKNOWN = неизвестная учетная запись
@ -68,16 +68,16 @@ ORDER_UNKNOWN = неизвестный идентификатор заказа
GROUP_UNKNOWN = неизвестная группа
### Foreign Blockchain ###
FOREIGN_BLOCKCHAIN_NETWORK_ISSUE = foreign blokchain or ElectrumX network issue
FOREIGN_BLOCKCHAIN_NETWORK_ISSUE = проблема с внешним блокчейном или сетью ElectrumX
FOREIGN_BLOCKCHAIN_BALANCE_ISSUE = insufficient balance on foreign blockchain
FOREIGN_BLOCKCHAIN_BALANCE_ISSUE = недостаточный баланс на внешнем блокчейне
FOREIGN_BLOCKCHAIN_TOO_SOON = too soon to broadcast foreign blockchain transaction (LockTime/median block time)
FOREIGN_BLOCKCHAIN_TOO_SOON = слишком рано для трансляции транзакции во внений блокчей (время блокировки/среднее время блока)
### Trade Portal ###
ORDER_SIZE_TOO_SMALL = order amount too low
ORDER_SIZE_TOO_SMALL = слишком маленькая сумма ордера
### Data ###
FILE_NOT_FOUND = file not found
FILE_NOT_FOUND = файл не найден
NO_REPLY = peer did not reply with data
NO_REPLY = узел не ответил данными

View File

@ -0,0 +1,83 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# Keys are from api.ApiError enum
# "localeLang": "sv",
### Common ###
JSON = misslyckades att tolka JSON meddelande
INSUFFICIENT_BALANCE = otillräcklig balans
UNAUTHORIZED = API obehörigt anrop
REPOSITORY_ISSUE = fel i lagret
NON_PRODUCTION = detta API-anrop är inte tillåtet för produktionssystem
BLOCKCHAIN_NEEDS_SYNC = blockchain måste synkroniseras först
NO_TIME_SYNC = ingen klocksynkronisering ännu
### Validation ###
INVALID_SIGNATURE = ogiltig signatur
INVALID_ADDRESS = ogiltig adress
INVALID_PUBLIC_KEY = ogiltig offentlig nyckel
INVALID_DATA = ogiltig data
INVALID_NETWORK_ADDRESS = ogiltig nätverksadress
ADDRESS_UNKNOWN = okänd kontoadress
INVALID_CRITERIA = ogiltiga sökkriterier
INVALID_REFERENCE = ogiltig referens
TRANSFORMATION_ERROR = kunde inte omvandla JSON till en transaktion
INVALID_PRIVATE_KEY = ogiltig privat nyckel
INVALID_HEIGHT = ogiltig blockhöjd
CANNOT_MINT = konto kan inte prägla QORT
### Blocks ###
BLOCK_UNKNOWN = okänt block
### Transactions ###
TRANSACTION_UNKNOWN = okänd transaktion
PUBLIC_KEY_NOT_FOUND = hittade inte en offentlig nyckel
# this one is special in that caller expected to pass two additional strings, hence the two %s
TRANSACTION_INVALID = ogiltig transaktion: %s (%s)
### Naming ###
NAME_UNKNOWN = okänt namn
### Asset ###
INVALID_ASSET_ID = ogiltigt tillgångs-ID
INVALID_ORDER_ID = ogiltigt tillgångsbeställnings-ID
ORDER_UNKNOWN = okänt tillgångsbeställnings-ID
### Groups ###
GROUP_UNKNOWN = okänd grupp
### Foreign Blockchain ###
FOREIGN_BLOCKCHAIN_NETWORK_ISSUE = utländsk blockchain eller ElectrumX nätverksproblem
FOREIGN_BLOCKCHAIN_BALANCE_ISSUE = otillräcklig balans på utländsk blockchain
FOREIGN_BLOCKCHAIN_TOO_SOON = för tidigt för att sända utländsk blockkedjetransaktion (LockTime/medianblocktid)
### Trade Portal ###
ORDER_SIZE_TOO_SMALL = beställningssumman för låg
### Data ###
FILE_NOT_FOUND = filen hittades inte
NO_REPLY = noden svarade inte inom den tillåtna tiden

View File

@ -0,0 +1,83 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# Keys are from api.ApiError enum
# "localeLang": "zh_CN",
### Common ###
JSON = 无法解析JSON文件信息
INSUFFICIENT_BALANCE = 钱包余额不足
UNAUTHORIZED = 未授权的API指令
REPOSITORY_ISSUE = 数据库错误
NON_PRODUCTION = 此API指令已被节点禁止
BLOCKCHAIN_NEEDS_SYNC = 请先同步区块链
NO_TIME_SYNC = 同步时间失败
### Validation ###
INVALID_SIGNATURE = 无效的签名
INVALID_ADDRESS = 无效的钱包地址
INVALID_PUBLIC_KEY = 无效的公共密钥
INVALID_DATA = 无效的数据
INVALID_NETWORK_ADDRESS = 无效的网络地址
ADDRESS_UNKNOWN = 未知的钱包地址
INVALID_CRITERIA = 无效的搜寻关键词
INVALID_REFERENCE = 无效的参考资料
TRANSFORMATION_ERROR = 未能将JSON文件转换成交易
INVALID_PRIVATE_KEY = 无效的私人密钥
INVALID_HEIGHT = 无效的区块链高度
CANNOT_MINT = 账号不能铸币
### Blocks ###
BLOCK_UNKNOWN = 未知的区块
### Transactions ###
TRANSACTION_UNKNOWN = 未知的交易
PUBLIC_KEY_NOT_FOUND = 找不到有效的公共密钥
# this one is special in that caller expected to pass two additional strings, hence the two %s
TRANSACTION_INVALID = 无效的交易: %s (%s)
### Naming ###
NAME_UNKNOWN = 未知的名称
### Asset ###
INVALID_ASSET_ID = 无效的资产ID
INVALID_ORDER_ID = 无效的资产交易ID
ORDER_UNKNOWN = 未知的资产交易ID
### Groups ###
GROUP_UNKNOWN = 未知的群组
### Foreign Blockchain ###
FOREIGN_BLOCKCHAIN_NETWORK_ISSUE = 其他区块链网络出现异常
FOREIGN_BLOCKCHAIN_BALANCE_ISSUE = 请确保钱包余额足够(包含支付网络手续费)
FOREIGN_BLOCKCHAIN_TOO_SOON = 执行动作太快了 (LockTime/median block time)
### Trade Portal ###
ORDER_SIZE_TOO_SMALL = 交易数量太少
### Data ###
FILE_NOT_FOUND = 档案不存在
NO_REPLY = 其他节点在指定时间内没有回应

View File

@ -0,0 +1,83 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# Keys are from api.ApiError enum
# "localeLang": "zh_TW",
### Common ###
JSON = 無法解析JSON文件信息
INSUFFICIENT_BALANCE = 錢包餘額不足
UNAUTHORIZED = 未授權的API指令
REPOSITORY_ISSUE = 數據庫錯誤
NON_PRODUCTION = 此API指令已被節點禁止
BLOCKCHAIN_NEEDS_SYNC = 請先同步區塊鏈
NO_TIME_SYNC = 同步時間失敗
### Validation ###
INVALID_SIGNATURE = 無效的簽名
INVALID_ADDRESS = 無效的錢包地址
INVALID_PUBLIC_KEY = 無效的公共密鑰
INVALID_DATA = 無效的數據
INVALID_NETWORK_ADDRESS = 無效的網絡地址
ADDRESS_UNKNOWN = 未知的錢包地址
INVALID_CRITERIA = 無效的搜尋關鍵詞
INVALID_REFERENCE = 無效的參考資料
TRANSFORMATION_ERROR = 未能將JSON文件轉換成交易
INVALID_PRIVATE_KEY = 無效的私人密鑰
INVALID_HEIGHT = 無效的區塊鏈高度
CANNOT_MINT = 賬號不能鑄幣
### Blocks ###
BLOCK_UNKNOWN = 未知的區塊
### Transactions ###
TRANSACTION_UNKNOWN = 未知的交易
PUBLIC_KEY_NOT_FOUND = 找不到有效的公共密鑰
# this one is special in that caller expected to pass two additional strings, hence the two %s
TRANSACTION_INVALID = 無效的交易: %s (%s)
### Naming ###
NAME_UNKNOWN = 未知的名稱
### Asset ###
INVALID_ASSET_ID = 無效的資產ID
INVALID_ORDER_ID = 無效的資產交易ID
ORDER_UNKNOWN = 未知的資產交易ID
### Groups ###
GROUP_UNKNOWN = 未知的群組
### Foreign Blockchain ###
FOREIGN_BLOCKCHAIN_NETWORK_ISSUE = 其他區塊鏈網絡出現異常
FOREIGN_BLOCKCHAIN_BALANCE_ISSUE = 請確保錢包餘額足夠(包含支付網絡手續費)
FOREIGN_BLOCKCHAIN_TOO_SOON = 執行動作太快 (LockTime/median block time)
### Trade Portal ###
ORDER_SIZE_TOO_SMALL = 交易數量太少
### Data ###
FILE_NOT_FOUND = 檔案不存在
NO_REPLY = 其他節點在指定時間内沒有回應

View File

@ -1,10 +1,10 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# SysTray pop-up menu
AUTO_UPDATE = Automatisches Update
APPLYING_UPDATE_AND_RESTARTING = Automatisches Update anwenden und neu starten …
AUTO_UPDATE = Automatisches Update
BLOCK_HEIGHT = height
BUILD_VERSION = Build-Version
@ -23,6 +23,8 @@ DB_BACKUP = Datenbank Backup
DB_CHECKPOINT = Datenbank Kontrollpunkt
DB_MAINTENANCE = Datenbank Instandhaltung
EXIT = Verlassen
MINTING_DISABLED = NOT minting
@ -33,6 +35,8 @@ OPEN_UI = Öffne UI
PERFORMING_DB_CHECKPOINT = Speichern nicht übergebener Datenbank Änderungen …
PERFORMING_DB_MAINTENANCE = Planmäßige Wartung durchführen...
SYNCHRONIZE_CLOCK = Synchronisiere Uhr
SYNCHRONIZING_BLOCKCHAIN = Synchronisierung

View File

@ -1,10 +1,10 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# SysTray pop-up menu
AUTO_UPDATE = Auto Update
APPLYING_UPDATE_AND_RESTARTING = Applying automatic update and restarting...
AUTO_UPDATE = Auto Update
BLOCK_HEIGHT = height
BUILD_VERSION = Build version
@ -21,10 +21,10 @@ CREATING_BACKUP_OF_DB_FILES = Creating backup of database files...
DB_BACKUP = Database Backup
DB_MAINTENANCE = Database Maintenance
DB_CHECKPOINT = Database Checkpoint
DB_MAINTENANCE = Database Maintenance
EXIT = Exit
MINTING_DISABLED = NOT minting

View File

@ -1,64 +1,44 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# SysTray pop-up menu
AUTO_UPDATE = Actualización automática
#Auto Update
APPLYING_UPDATE_AND_RESTARTING = Aplicando actualización automática y reiniciando...
#Applying automatic update and restarting...
AUTO_UPDATE = Actualización automática
BLOCK_HEIGHT = altura
#height
BUILD_VERSION = Versión de compilación
#Build version
CHECK_TIME_ACCURACY = Comprobar la precisión del tiempo
#Check time accuracy
CONNECTING = Conectando
#Connecting
CONNECTION = conexión
#connection
CONNECTIONS = conexiones
#connections
CREATING_BACKUP_OF_DB_FILES = Creando una copia de seguridad de los archivos de la base de datos...
#Creating backup of database files...
DB_BACKUP = Copia de seguridad de la base de datos
#Database Backup
DB_MAINTENANCE = Mantenimiento de la base de datos
#Database Maintenance
DB_CHECKPOINT = Punto de control de la base de datos
#Database Checkpoint
DB_MAINTENANCE = Mantenimiento de la base de datos
EXIT = Salir
#Exit
MINTING_DISABLED = NO acuñar
#NOT minting
MINTING_DISABLED = Acuñación NO habilitada
MINTING_ENABLED = \u2714 Acuñación
#\u2714 Minting
MINTING_ENABLED = \u2714 Acuñación habilitada
OPEN_UI = IU abierta
#Open UI
PERFORMING_DB_CHECKPOINT = Guardando cambios de base de datos no confirmados...
#Saving uncommitted database changes...
PERFORMING_DB_MAINTENANCE = Realizando mantenimiento programado...
#Performing scheduled maintenance...
SYNCHRONIZE_CLOCK = Sincronizar reloj
#Synchronize clock
SYNCHRONIZING_BLOCKCHAIN = Sincronizando
#Synchronizing
SYNCHRONIZING_CLOCK = Sincronizando reloj
#Synchronizing clock

View File

@ -1,10 +1,10 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# SysTray pop-up menu
AUTO_UPDATE = Automaattinen päivitys
APPLYING_UPDATE_AND_RESTARTING = Automaattinen päivitys käynnissä, uudelleenkäynnistys seuraa...
AUTO_UPDATE = Automaattinen päivitys
BLOCK_HEIGHT = korkeus
BUILD_VERSION = Versio
@ -21,10 +21,10 @@ CREATING_BACKUP_OF_DB_FILES = Luodaan varmuuskopio tietokannan tiedostoista...
DB_BACKUP = Tietokannan varmuuskopio
DB_MAINTENANCE = Database Maintenance
DB_CHECKPOINT = Tietokannan varmistuspiste
DB_MAINTENANCE = Tietokannan ylläpito
EXIT = Pois
MINTING_DISABLED = EI lyö rahaa
@ -35,7 +35,7 @@ OPEN_UI = Avaa UI
PERFORMING_DB_CHECKPOINT = Tallentaa kommittoidut tietokantamuutokset...
PERFORMING_DB_MAINTENANCE = Performing scheduled maintenance...
PERFORMING_DB_MAINTENANCE = Suoritetaan määräaikaishuoltoa...
SYNCHRONIZE_CLOCK = Synkronisoi kello

View File

@ -1,7 +1,10 @@
AUTO_UPDATE = Mise à jour automatique
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# SysTray pop-up menu
APPLYING_UPDATE_AND_RESTARTING = Application de la mise à jour automatique et redémarrage...
AUTO_UPDATE = Mise à jour automatique
BLOCK_HEIGHT = hauteur
BUILD_VERSION = Numéro de version
@ -18,10 +21,10 @@ CREATING_BACKUP_OF_DB_FILES = Création d'une sauvegarde des fichiers de la base
DB_BACKUP = Sauvegarde de la base de données
DB_MAINTENANCE = Maintenance de la base de données
DB_CHECKPOINT = Point de contrôle de la base de données
DB_MAINTENANCE = Maintenance de la base de données
EXIT = Quitter
MINTING_DISABLED = NE mint PAS

View File

@ -1,17 +1,15 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# SysTray pop-up menu
# SysTray pop-up menu # Magyar myelvre forditotta: Szkíta (Scythian). 2021 Augusztus 7.
# Magyar myelvre forditotta: Szkíta (Scythian). 2021 Augusztus 7.
APPLYING_UPDATE_AND_RESTARTING = Automatikus frissítés alkalmazása és újraindítás...
AUTO_UPDATE = Automatikus Frissítés
APPLYING_UPDATE_AND_RESTARTING = Automatikus frissítés és újraindítás alkalmazása...
BLOCK_HEIGHT = blokkmagasság
BUILD_VERSION = Verzió
CHECK_TIME_ACCURACY = Idő pontosság ellenőrzése
CHECK_TIME_ACCURACY = Óra pontosságának ellenőrzése
CONNECTING = Kapcsolódás
@ -23,24 +21,24 @@ CREATING_BACKUP_OF_DB_FILES = Adatbázis fájlok biztonsági mentésének létre
DB_BACKUP = Adatbázis biztonsági mentése
DB_MAINTENANCE = Database Maintenance
DB_CHECKPOINT = Adatbázis-ellenőrzőpont
DB_MAINTENANCE = Adatbázis karbantartás
EXIT = Kilépés
MINTING_DISABLED = QORT-érmeverés jelenleg nincs folyamatban
MINTING_ENABLED = \u2714 QORT-érmeverés folyamatban
OPEN_UI = Felhasználói eszköz megnyitása
OPEN_UI = Felhasználói felület megnyitása
PERFORMING_DB_CHECKPOINT = Mentetlen adatbázis-módosítások mentése...
PERFORMING_DB_MAINTENANCE = Performing scheduled maintenance...
PERFORMING_DB_MAINTENANCE = Ütemezett karbantartás...
SYNCHRONIZE_CLOCK = Óra-szinkronizálás megkezdése
SYNCHRONIZING_BLOCKCHAIN = Szinkronizálás
SYNCHRONIZING_CLOCK = Óra-szinkronizálás folyamatban
SYNCHRONIZING_CLOCK = Óraszinkronizálás folyamatban

View File

@ -1,8 +1,7 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# SysTray pop-up menu
# Italian translation by Pabs 2021
# SysTray pop-up menu # Italian translation by Pabs 2021
APPLYING_UPDATE_AND_RESTARTING = Applicando aggiornamento automatico e riavviando...
APPLYING_UPDATE_AND_RESTARTING = Aggiornamento automatico e riavvio...
AUTO_UPDATE = Aggiornamento automatico
@ -12,34 +11,34 @@ BUILD_VERSION = Versione
CHECK_TIME_ACCURACY = Controlla la precisione dell'ora
CONNECTING = Collegando
CONNECTING = Collegamento
CONNECTION = connessione
CONNECTIONS = connessioni
CREATING_BACKUP_OF_DB_FILES = Creazione di backup dei file di database...
CREATING_BACKUP_OF_DB_FILES = Creazione del backup dei file di database...
DB_BACKUP = Backup del database
DB_MAINTENANCE = Database Maintenance
DB_CHECKPOINT = Fase di controllo del database
DB_CHECKPOINT = Punto di controllo del database
DB_MAINTENANCE = Manutenzione del database
EXIT = Uscita
MINTING_DISABLED = NON coniando
MINTING_DISABLED = Conio disabilitato
MINTING_ENABLED = \u2714 Coniando
MINTING_ENABLED = \u2714 Conio abilitato
OPEN_UI = Apri UI
PERFORMING_DB_CHECKPOINT = Salvataggio delle modifiche al database non salvate...
PERFORMING_DB_CHECKPOINT = Salvataggio delle modifiche del database non salvate...
PERFORMING_DB_MAINTENANCE = Performing scheduled maintenance...
PERFORMING_DB_MAINTENANCE = Manutenzione programmata dell'efficienza...
SYNCHRONIZE_CLOCK = Sincronizza orologio
SYNCHRONIZE_CLOCK = Sincronizzare l'orologio
SYNCHRONIZING_BLOCKCHAIN = Sincronizzando
SYNCHRONIZING_BLOCKCHAIN = Sincronizzazione della blockchain
SYNCHRONIZING_CLOCK = Sincronizzando orologio
SYNCHRONIZING_CLOCK = Sincronizzazione orologio

View File

@ -1,13 +1,13 @@
Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# SysTray pop-up menu
APPLYING_UPDATE_AND_RESTARTING = Automatische update en herstart worden uitgevoerd...
AUTO_UPDATE = Automatische Update
BLOCK_HEIGHT = hoogte
BLOCK_HEIGHT = Block hoogte
BUILD_VERSION = Versie
BUILD_VERSION = Versie nummer
CHECK_TIME_ACCURACY = Controleer accuraatheid van de tijd
@ -23,17 +23,19 @@ DB_BACKUP = Database Backup
DB_CHECKPOINT = Database Controlepunt
DB_MAINTENANCE = Database Onderhoud
EXIT = Verlaten
MINTING_DISABLED = NIET muntend
MINTING_DISABLED = Minten is uitgeschakeld
MINTING_ENABLED = \u2714 Muntend
MINTING_ENABLED = \u2714 Minten is ingeschakeld
OPEN_UI = Open UI
PERFORMING_DB_CHECKPOINT = Nieuwe veranderingen aan database worden opgeslagen...
PERFORMING_DB_CHECKPOINT = De database wordt gecontroleerd...
PERFORMING_DB_MAINTENANCE = Performing scheduled maintenance...
PERFORMING_DB_MAINTENANCE = Uitvoeren van gepland onderhoud...
SYNCHRONIZE_CLOCK = Synchronizeer klok

View File

@ -7,7 +7,7 @@ AUTO_UPDATE = Автоматическое обновление
BLOCK_HEIGHT = Высота блока
BUILD_VERSION = Build version
BUILD_VERSION = Версия сборки
CHECK_TIME_ACCURACY = Проверка точного времени
@ -15,25 +15,27 @@ CONNECTING = Подключение
CONNECTION = Соединение
CONNECTIONS = Соединений
CONNECTIONS = Соединения
CREATING_BACKUP_OF_DB_FILES = Создание резервной копии файлов базы данных...
DB_BACKUP = Резервное копирование базы данных
DB_MAINTENANCE = Database Maintenance
DB_CHECKPOINT = Контрольная точка базы данных
DB_MAINTENANCE = Обслуживание базы данных
EXIT = Выход
MINTING_DISABLED = Чеканка отключена
MINTING_ENABLED = Чеканка активна
MINTING_ENABLED = \u2714 Чеканка активна
OPEN_UI = Открыть пользовательский интерфейс
PERFORMING_DB_CHECKPOINT = Saving uncommitted database changes...
PERFORMING_DB_CHECKPOINT = Сохранение незафиксированных изменений базы данных...
PERFORMING_DB_MAINTENANCE = Performing scheduled maintenance...
PERFORMING_DB_MAINTENANCE = Выполнение планового технического обслуживания...
SYNCHRONIZE_CLOCK = Синхронизировать время

View File

@ -0,0 +1,44 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# SysTray pop-up menu
APPLYING_UPDATE_AND_RESTARTING = Tillämpar automatisk uppdatering och startar om...
AUTO_UPDATE = Automatisk uppdatering
BLOCK_HEIGHT = höjd
BUILD_VERSION = Byggversion
CHECK_TIME_ACCURACY = Kontrollera tidens noggrannhet
CONNECTING = Ansluter
CONNECTION = anslutning
CONNECTIONS = anslutningar
CREATING_BACKUP_OF_DB_FILES = Skapar säkerhetskopia av databasfiler...
DB_BACKUP = Databas backup
DB_CHECKPOINT = Databaskontrollpunkt
DB_MAINTENANCE = Databasunderhåll
EXIT = Utgång
MINTING_DISABLED = Präglar INTE
MINTING_ENABLED = \u2714 Präglar
OPEN_UI = Öppna UI
PERFORMING_DB_CHECKPOINT = Sparar oengagerade databasändringar...
PERFORMING_DB_MAINTENANCE = Utför schemalagt underhåll...
SYNCHRONIZE_CLOCK = Synkronisera klockan
SYNCHRONIZING_BLOCKCHAIN = Synkroniserar
SYNCHRONIZING_CLOCK = Synkroniserar klockan

View File

@ -1,39 +1,41 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# SysTray pop-up menu
AUTO_UPDATE = Auto Update
APPLYING_UPDATE_AND_RESTARTING = 正在自动更新并重新启动核心...
APPLYING_UPDATE_AND_RESTARTING = Applying automatic update and restarting...
AUTO_UPDATE = 自动更新
BLOCK_HEIGHT = 区块高度
BUILD_VERSION = Build version
BUILD_VERSION = 版本
CHECK_TIME_ACCURACY = 检查时间准确性
CONNECTING = Connecting
CONNECTING = 连线中
CONNECTION = 个链接
CONNECTIONS = 个链接
CREATING_BACKUP_OF_DB_FILES = Creating backup of database files...
CREATING_BACKUP_OF_DB_FILES = 正在创建数据库备份资料...
DB_BACKUP = Database Backup
DB_BACKUP = 数据库备份
DB_CHECKPOINT = Database Checkpoint
DB_CHECKPOINT = 数据库检查点
DB_MAINTENANCE = 数据库维护
EXIT = 退出核心
MINTING_DISABLED = 没有铸币
MINTING_ENABLED = 铸币
MINTING_ENABLED = \u2714 铸币
OPEN_UI = 开启Qortal界面
PERFORMING_DB_CHECKPOINT = Saving uncommitted database changes...
PERFORMING_DB_CHECKPOINT = 正在保存未提交的数据库修订...
PERFORMING_DB_MAINTENANCE = Performing scheduled maintenance...
PERFORMING_DB_MAINTENANCE = 正在执行定期数据库维护...
SYNCHRONIZE_CLOCK = 同步时钟

View File

@ -1,37 +1,41 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
# SysTray pop-up menu
AUTO_UPDATE = Auto Update
APPLYING_UPDATE_AND_RESTARTING = 正在自動更新並重新啓動核心...
APPLYING_UPDATE_AND_RESTARTING = Applying automatic update and restarting...
AUTO_UPDATE = 自動更新
BLOCK_HEIGHT = 區塊高度
BUILD_VERSION = Build version
BUILD_VERSION = 版本
CHECK_TIME_ACCURACY = 檢查時間準確性
CONNECTING = Connecting
CONNECTING = 連線中
CONNECTION = 個鏈接
CONNECTIONS = 個鏈接
CREATING_BACKUP_OF_DB_FILES = Creating backup of database files...
CREATING_BACKUP_OF_DB_FILES = 正在創建數據庫備份資料...
DB_BACKUP = Database Backup
DB_BACKUP = 數據庫備份
DB_CHECKPOINT = Database Checkpoint
DB_CHECKPOINT = 數據庫檢查點
DB_MAINTENANCE = 數據庫維護
EXIT = 退出核心
MINTING_DISABLED = 沒有鑄幣
MINTING_ENABLED = 鑄幣
MINTING_ENABLED = \u2714 鑄幣
OPEN_UI = 開啓Qortal界面
PERFORMING_DB_CHECKPOINT = Saving uncommitted database changes...
PERFORMING_DB_CHECKPOINT = 正在保存未提交的數據庫修訂...
PERFORMING_DB_MAINTENANCE = 正在執行數據庫定期維護...
SYNCHRONIZE_CLOCK = 同步時鐘

View File

@ -1,112 +1,32 @@
OK = OK
#
INVALID_ADDRESS = invalid address
ACCOUNT_ALREADY_EXISTS = account already exists
NEGATIVE_AMOUNT = invalid/negative amount
ACCOUNT_CANNOT_REWARD_SHARE = account cannot reward-share
NEGATIVE_FEE = invalid/negative fee
ADDRESS_ABOVE_RATE_LIMIT = address reached specified rate limit
NO_BALANCE = insufficient balance
INVALID_REFERENCE = invalid reference
INVALID_NAME_LENGTH = invalid name length
INVALID_VALUE_LENGTH = invalid 'value' length
NAME_ALREADY_REGISTERED = name already registered
NAME_DOES_NOT_EXIST = name does not exist
INVALID_NAME_OWNER = invalid name owner
NAME_ALREADY_FOR_SALE = name already for sale
NAME_NOT_FOR_SALE = name is not for sale
BUYER_ALREADY_OWNER = buyer is already owner
INVALID_AMOUNT = invalid amount
INVALID_SELLER = invalid seller
NAME_NOT_NORMALIZED = name not in Unicode 'normalized' form
INVALID_DESCRIPTION_LENGTH = invalid description length
INVALID_OPTIONS_COUNT = invalid options count
INVALID_OPTION_LENGTH = invalid options length
DUPLICATE_OPTION = duplicate option
POLL_ALREADY_EXISTS = poll already exists
POLL_DOES_NOT_EXIST = poll does not exist
POLL_OPTION_DOES_NOT_EXIST = poll option does not exist
ALREADY_VOTED_FOR_THAT_OPTION = already voted for that option
INVALID_DATA_LENGTH = invalid data length
INVALID_QUANTITY = invalid quantity
ASSET_DOES_NOT_EXIST = asset does not exist
INVALID_RETURN = invalid return
HAVE_EQUALS_WANT = have-asset is the same as want-asset
ORDER_DOES_NOT_EXIST = asset trade order does not exist
INVALID_ORDER_CREATOR = invalid order creator
INVALID_PAYMENTS_COUNT = invalid payments count
NEGATIVE_PRICE = invalid/negative price
INVALID_CREATION_BYTES = invalid creation bytes
INVALID_TAGS_LENGTH = invalid 'tags' length
INVALID_AT_TYPE_LENGTH = invalid AT 'type' length
INVALID_AT_TRANSACTION = invalid AT transaction
INSUFFICIENT_FEE = insufficient fee
ASSET_DOES_NOT_MATCH_AT = asset does not match AT's asset
ASSET_ALREADY_EXISTS = asset already exists
MISSING_CREATOR = missing creator
TIMESTAMP_TOO_OLD = timestamp too old
TIMESTAMP_TOO_NEW = timestamp too new
TOO_MANY_UNCONFIRMED = account has too many unconfirmed transactions pending
GROUP_ALREADY_EXISTS = group already exists
GROUP_DOES_NOT_EXIST = group does not exist
INVALID_GROUP_OWNER = invalid group owner
ALREADY_GROUP_MEMBER = already group member
GROUP_OWNER_CANNOT_LEAVE = group owner cannot leave group
NOT_GROUP_MEMBER = account is not a group member
ADDRESS_BLOCKED = this address is blocked
ALREADY_GROUP_ADMIN = already group admin
NOT_GROUP_ADMIN = account is not a group admin
ALREADY_GROUP_MEMBER = already group member
INVALID_LIFETIME = invalid lifetime
ALREADY_VOTED_FOR_THAT_OPTION = already voted for that option
INVITE_UNKNOWN = group invite unknown
ASSET_ALREADY_EXISTS = asset already exists
ASSET_DOES_NOT_EXIST = asset does not exist
ASSET_DOES_NOT_MATCH_AT = asset does not match AT's asset
ASSET_NOT_SPENDABLE = asset is not spendable
AT_ALREADY_EXISTS = AT already exists
AT_IS_FINISHED = AT has finished
AT_UNKNOWN = AT unknown
BAN_EXISTS = ban already exists
@ -114,80 +34,162 @@ BAN_UNKNOWN = ban unknown
BANNED_FROM_GROUP = banned from group
JOIN_REQUEST_EXISTS = group join request already exists
INVALID_GROUP_APPROVAL_THRESHOLD = invalid group-approval threshold
GROUP_ID_MISMATCH = group ID mismatch
INVALID_GROUP_ID = invalid group ID
TRANSACTION_UNKNOWN = transaction unknown
TRANSACTION_ALREADY_CONFIRMED = transaction has already confirmed
INVALID_TX_GROUP_ID = invalid transaction group ID
TX_GROUP_ID_MISMATCH = transaction's group ID does not match
MULTIPLE_NAMES_FORBIDDEN = multiple registered names per account is forbidden
INVALID_ASSET_OWNER = invalid asset owner
AT_IS_FINISHED = AT has finished
NO_FLAG_PERMISSION = account does not have that permission
NOT_MINTING_ACCOUNT = account cannot mint
REWARD_SHARE_UNKNOWN = reward-share unknown
INVALID_REWARD_SHARE_PERCENT = invalid reward-share percent
PUBLIC_KEY_UNKNOWN = public key unknown
INVALID_PUBLIC_KEY = invalid public key
AT_UNKNOWN = AT unknown
AT_ALREADY_EXISTS = AT already exists
GROUP_APPROVAL_NOT_REQUIRED = group-approval not required
GROUP_APPROVAL_DECIDED = group-approval already decided
MAXIMUM_REWARD_SHARES = already at maximum number of reward-shares for this account
TRANSACTION_ALREADY_EXISTS = transaction already exists
NO_BLOCKCHAIN_LOCK = node's blockchain currently busy
ORDER_ALREADY_CLOSED = asset trade order is already closed
BUYER_ALREADY_OWNER = buyer is already owner
CLOCK_NOT_SYNCED = clock not synchronized
ASSET_NOT_SPENDABLE = asset is not spendable
DUPLICATE_MESSAGE = address sent duplicate message
ACCOUNT_CANNOT_REWARD_SHARE = account cannot reward-share
DUPLICATE_OPTION = duplicate option
SELF_SHARE_EXISTS = self-share (reward-share) already exists
GROUP_ALREADY_EXISTS = group already exists
ACCOUNT_ALREADY_EXISTS = account already exists
GROUP_APPROVAL_DECIDED = group-approval already decided
INVALID_GROUP_BLOCK_DELAY = invalid group-approval block delay
GROUP_APPROVAL_NOT_REQUIRED = group-approval not required
GROUP_DOES_NOT_EXIST = group does not exist
GROUP_ID_MISMATCH = group ID mismatch
GROUP_OWNER_CANNOT_LEAVE = group owner cannot leave group
HAVE_EQUALS_WANT = have-asset is the same as want-asset
INCORRECT_NONCE = incorrect PoW nonce
INVALID_TIMESTAMP_SIGNATURE = invalid timestamp signature
INSUFFICIENT_FEE = insufficient fee
ADDRESS_BLOCKED = this address is blocked
INVALID_ADDRESS = invalid address
NAME_BLOCKED = this name is blocked
INVALID_AMOUNT = invalid amount
ADDRESS_ABOVE_RATE_LIMIT = address reached specified rate limit
INVALID_ASSET_OWNER = invalid asset owner
DUPLICATE_MESSAGE = address sent duplicate message
INVALID_AT_TRANSACTION = invalid AT transaction
INVALID_AT_TYPE_LENGTH = invalid AT 'type' length
INVALID_BUT_OK = invalid but OK
INVALID_CREATION_BYTES = invalid creation bytes
INVALID_DATA_LENGTH = invalid data length
INVALID_DESCRIPTION_LENGTH = invalid description length
INVALID_GROUP_APPROVAL_THRESHOLD = invalid group-approval threshold
INVALID_GROUP_BLOCK_DELAY = invalid group-approval block delay
INVALID_GROUP_ID = invalid group ID
INVALID_GROUP_OWNER = invalid group owner
INVALID_LIFETIME = invalid lifetime
INVALID_NAME_LENGTH = invalid name length
INVALID_NAME_OWNER = invalid name owner
INVALID_OPTION_LENGTH = invalid options length
INVALID_OPTIONS_COUNT = invalid options count
INVALID_ORDER_CREATOR = invalid order creator
INVALID_PAYMENTS_COUNT = invalid payments count
INVALID_PUBLIC_KEY = invalid public key
INVALID_QUANTITY = invalid quantity
INVALID_REFERENCE = invalid reference
INVALID_RETURN = invalid return
INVALID_REWARD_SHARE_PERCENT = invalid reward-share percent
INVALID_SELLER = invalid seller
INVALID_TAGS_LENGTH = invalid 'tags' length
INVALID_TIMESTAMP_SIGNATURE = invalid timestamp signature
INVALID_TX_GROUP_ID = invalid transaction group ID
INVALID_VALUE_LENGTH = invalid 'value' length
INVITE_UNKNOWN = group invite unknown
JOIN_REQUEST_EXISTS = group join request already exists
MAXIMUM_REWARD_SHARES = already at maximum number of reward-shares for this account
MISSING_CREATOR = missing creator
MULTIPLE_NAMES_FORBIDDEN = multiple registered names per account is forbidden
NAME_ALREADY_FOR_SALE = name already for sale
NAME_ALREADY_REGISTERED = name already registered
NAME_BLOCKED = this name is blocked
NAME_DOES_NOT_EXIST = name does not exist
NAME_NOT_FOR_SALE = name is not for sale
NAME_NOT_NORMALIZED = name not in Unicode 'normalized' form
NEGATIVE_AMOUNT = invalid/negative amount
NEGATIVE_FEE = invalid/negative fee
NEGATIVE_PRICE = invalid/negative price
NO_BALANCE = insufficient balance
NO_BLOCKCHAIN_LOCK = node's blockchain currently busy
NO_FLAG_PERMISSION = account does not have that permission
NOT_GROUP_ADMIN = account is not a group admin
NOT_GROUP_MEMBER = account is not a group member
NOT_MINTING_ACCOUNT = account cannot mint
NOT_YET_RELEASED = feature not yet released
OK = OK
ORDER_ALREADY_CLOSED = asset trade order is already closed
ORDER_DOES_NOT_EXIST = asset trade order does not exist
POLL_ALREADY_EXISTS = poll already exists
POLL_DOES_NOT_EXIST = poll does not exist
POLL_OPTION_DOES_NOT_EXIST = poll option does not exist
PUBLIC_KEY_UNKNOWN = public key unknown
REWARD_SHARE_UNKNOWN = reward-share unknown
SELF_SHARE_EXISTS = self-share (reward-share) already exists
TIMESTAMP_TOO_NEW = timestamp too new
TIMESTAMP_TOO_OLD = timestamp too old
TOO_MANY_UNCONFIRMED = account has too many unconfirmed transactions pending
TRANSACTION_ALREADY_CONFIRMED = transaction has already confirmed
TRANSACTION_ALREADY_EXISTS = transaction already exists
TRANSACTION_UNKNOWN = transaction unknown
TX_GROUP_ID_MISMATCH = transaction's group ID does not match

View File

@ -1,290 +1,195 @@
OK = Aceptar
#OK
INVALID_ADDRESS = dirección no válida
#invalid address
NEGATIVE_AMOUNT = importe no válido/negativo
#invalid/negative amount
NEGATIVE_FEE = tarifa no válida/negativa
#invalid/negative fee
NO_BALANCE = saldo insuficiente
#insufficient balance
INVALID_REFERENCE = referencia no válida
#invalid reference
INVALID_NAME_LENGTH = longitud de nombre no válida
#invalid name length
INVALID_VALUE_LENGTH = longitud de 'valor' no válida
#invalid 'value' length
NAME_ALREADY_REGISTERED = nombre ya registrado
#name already registered
NAME_DOES_NOT_EXIST = el nombre no existe
#name does not exist
INVALID_NAME_OWNER = propietario de nombre no válido
#invalid name owner
NAME_ALREADY_FOR_SALE = nombre ya a la venta
#name already for sale
NAME_NOT_FOR_SALE = el nombre no está a la venta
#name is not for sale
BUYER_ALREADY_OWNER = el comprador ya es propietario
#buyer is already owner
INVALID_AMOUNT = monto no válido
#invalid amount
INVALID_SELLER = vendedor no válido
#invalid seller
NAME_NOT_NORMALIZED = nombre no en formato Unicode 'normalizado'
#name not in Unicode 'normalized' form
INVALID_DESCRIPTION_LENGTH = longitud de descripción no válida
#invalid description length
INVALID_OPTIONS_COUNT = recuento de opciones no válidas
#invalid options count
INVALID_OPTION_LENGTH = longitud de opciones no válida
#invalid options length
DUPLICATE_OPTION = opción duplicada
#duplicate option
POLL_ALREADY_EXISTS = la encuesta ya existe
#poll already exists
POLL_DOES_NOT_EXIST = la encuesta no existe
#poll does not exist
POLL_OPTION_DOES_NOT_EXIST = la opción de encuesta no existe
#poll option does not exist
ALREADY_VOTED_FOR_THAT_OPTION = ya voté por esa opción
#already voted for that option
INVALID_DATA_LENGTH = longitud de datos no válida
#invalid data length
INVALID_QUANTITY = cantidad no válida
#invalid quantity
ASSET_DOES_NOT_EXIST = el activo no existe
#asset does not exist
INVALID_RETURN = devolución no válida
#invalid return
HAVE_EQUALS_WANT = tener-activo es lo mismo que querer-activo
#have-asset is the same as want-asset
ORDER_DOES_NOT_EXIST = la orden comercial de activos no existe
#asset trade order does not exist
INVALID_ORDER_CREATOR = creador de pedido no válido
#invalid order creator
INVALID_PAYMENTS_COUNT = recuento de pagos no válidos
#invalid payments count
NEGATIVE_PRICE = precio no válido/negativo
#invalid/negative price
INVALID_CREATION_BYTES = bytes de creación no válidos
#invalid creation bytes
INVALID_TAGS_LENGTH = longitud de 'etiquetas' no válida
#invalid 'tags' length
INVALID_AT_TYPE_LENGTH = longitud de 'tipo' de AT no válida
#invalid AT 'type' length
INVALID_AT_TRANSACTION = transacción AT no válida
#invalid AT transaction
INSUFFICIENT_FEE = tarifa insuficiente
#insufficient fee
ASSET_DOES_NOT_MATCH_AT = el activo no coincide con el activo de AT
#asset does not match AT's asset
ASSET_ALREADY_EXISTS = el activo ya existe
#asset already exists
MISSING_CREATOR = creador faltante
#missing creator
TIMESTAMP_TOO_OLD = marca de tiempo demasiado antigua
#timestamp too old
TIMESTAMP_TOO_NEW = marca de tiempo demasiado nueva
#timestamp too new
TOO_MANY_UNCONFIRMED = la cuenta tiene demasiadas transacciones pendientes sin confirmar
#account has too many unconfirmed transactions pending
GROUP_ALREADY_EXISTS = el grupo ya existe
#group already exists
GROUP_DOES_NOT_EXIST = el grupo no existe
#group does not exist
INVALID_GROUP_OWNER = propietario del grupo no válido
#invalid group owner
ALREADY_GROUP_MEMBER = ya es miembro del grupo
#already group member
GROUP_OWNER_CANNOT_LEAVE = el propietario del grupo no puede abandonar el grupo
#group owner cannot leave group
NOT_GROUP_MEMBER = la cuenta no es miembro del grupo
#account is not a group member
ALREADY_GROUP_ADMIN = ya es administrador del grupo
#already group admin
NOT_GROUP_ADMIN = la cuenta no es un administrador de grupo
#account is not a group admin
INVALID_LIFETIME = tiempo de vida no válido
#invalid lifetime
INVITE_UNKNOWN = invitación de grupo desconocida
#group invite unknown
BAN_EXISTS = la prohibición ya existe
#ban already exists
BAN_UNKNOWN = bloqueo desconocido
#ban unknown
BANNED_FROM_GROUP = prohibido del grupo
#banned from group
JOIN_REQUEST_EXISTS = la solicitud para unirse al grupo ya existe
#group join request already exists
INVALID_GROUP_APPROVAL_THRESHOLD = umbral de aprobación de grupo no válido
#invalid group-approval threshold
GROUP_ID_MISMATCH = discrepancia de ID de grupo
#group ID mismatch
INVALID_GROUP_ID = ID de grupo no válido
#invalid group ID
TRANSACTION_UNKNOWN = transacción desconocida
#transaction unknown
TRANSACTION_ALREADY_CONFIRMED = la transacción ya ha sido confirmada
#transaction has already confirmed
INVALID_TX_GROUP_ID = ID de grupo de transacciones no válido
#invalid transaction group ID
TX_GROUP_ID_MISMATCH = el ID de grupo de la transacción no coincide
#transaction's group ID does not match
MULTIPLE_NAMES_FORBIDDEN = múltiples nombres registrados por cuenta están prohibidos
#multiple registered names per account is forbidden
INVALID_ASSET_OWNER = propietario de activo no válido
#invalid asset owner
AT_IS_FINISHED = AT ha terminado
#AT has finished
NO_FLAG_PERMISSION = la cuenta no tiene ese permiso
#account does not have that permission
NOT_MINTING_ACCOUNT = la cuenta no puede acuñar
#account cannot mint
REWARD_SHARE_UNKNOWN = Recompensa compartida desconocida
#reward-share unknown
INVALID_REWARD_SHARE_PERCENT = porcentaje de recompensa compartida no válido
#invalid reward-share percent
PUBLIC_KEY_UNKNOWN = clave pública desconocida
#public key unknown
INVALID_PUBLIC_KEY = clave pública no válida
#invalid public key
AT_UNKNOWN = AT desconocido
#AT unknown
AT_ALREADY_EXISTS = AT ya existe
#AT already exists
GROUP_APPROVAL_NOT_REQUIRED = no se requiere aprobación de grupo
#group-approval not required
GROUP_APPROVAL_DECIDED = aprobación del grupo ya decidida
#group-approval already decided
MAXIMUM_REWARD_SHARES = ya en el número máximo de acciones de recompensa para esta cuenta
#already at maximum number of reward-shares for this account
TRANSACTION_ALREADY_EXISTS = la transacción ya existe
#transaction already exists
NO_BLOCKCHAIN_LOCK = la cadena de bloques del nodo está actualmente ocupada
#node's blockchain currently busy
ORDER_ALREADY_CLOSED = la orden comercial de activos ya está cerrada
#asset trade order is already closed
CLOCK_NOT_SYNCED = reloj no sincronizado
#clock not synchronized
ASSET_NOT_SPENDABLE = el activo no se puede gastar
#asset is not spendable
ACCOUNT_CANNOT_REWARD_SHARE = la cuenta no puede compartir recompensas
#account cannot reward-share
SELF_SHARE_EXISTS = autocompartir (recompensa compartida) ya existe
#self-share (reward-share) already exists
#
ACCOUNT_ALREADY_EXISTS = la cuenta ya existe
#account already exists
INVALID_GROUP_BLOCK_DELAY = retraso de bloqueo de aprobación de grupo no válido
#invalid group-approval block delay
INCORRECT_NONCE = PoW nonce incorrecto
#incorrect PoW nonce
INVALID_TIMESTAMP_SIGNATURE = firma de marca de tiempo no válida
#invalid timestamp signature
ADDRESS_BLOCKED = esta dirección está bloqueada
#this address is blocked
NAME_BLOCKED = este nombre está bloqueado
#this name is blocked
ACCOUNT_CANNOT_REWARD_SHARE = la cuenta no puede compartir recompensas
ADDRESS_ABOVE_RATE_LIMIT = la dirección alcanzó el límite de velocidad especificado
#address reached specified rate limit
ADDRESS_BLOCKED = esta dirección está bloqueada
ALREADY_GROUP_ADMIN = ya es administrador del grupo
ALREADY_GROUP_MEMBER = ya es miembro del grupo
ALREADY_VOTED_FOR_THAT_OPTION = ya voté por esa opción
ASSET_ALREADY_EXISTS = el activo ya existe
ASSET_DOES_NOT_EXIST = el activo no existe
ASSET_DOES_NOT_MATCH_AT = el activo no coincide con el activo de AT
ASSET_NOT_SPENDABLE = el activo no se puede gastar
AT_ALREADY_EXISTS = AT ya existe
AT_IS_FINISHED = AT ha terminado
AT_UNKNOWN = AT desconocido
BAN_EXISTS = la prohibición ya existe
BAN_UNKNOWN = bloqueo desconocido
BANNED_FROM_GROUP = prohibido del grupo
BUYER_ALREADY_OWNER = el comprador ya es propietario
CLOCK_NOT_SYNCED = reloj no sincronizado
DUPLICATE_MESSAGE = dirección enviada mensaje duplicado
#address sent duplicate message
DUPLICATE_OPTION = opción duplicada
GROUP_ALREADY_EXISTS = el grupo ya existe
GROUP_APPROVAL_DECIDED = aprobación del grupo ya decidida
GROUP_APPROVAL_NOT_REQUIRED = no se requiere aprobación de grupo
GROUP_DOES_NOT_EXIST = el grupo no existe
GROUP_ID_MISMATCH = discrepancia de ID de grupo
GROUP_OWNER_CANNOT_LEAVE = el propietario del grupo no puede abandonar el grupo
HAVE_EQUALS_WANT = tener-activo es lo mismo que querer-activo
INCORRECT_NONCE = PoW nonce incorrecto
INSUFFICIENT_FEE = tarifa insuficiente
INVALID_ADDRESS = dirección no válida
INVALID_AMOUNT = monto no válido
INVALID_ASSET_OWNER = propietario de activo no válido
INVALID_AT_TRANSACTION = transacción AT no válida
INVALID_AT_TYPE_LENGTH = longitud de 'tipo' de AT no válida
INVALID_BUT_OK = inválido pero correcto
#invalid but OK
INVALID_CREATION_BYTES = bytes de creación no válidos
INVALID_DATA_LENGTH = longitud de datos no válida
INVALID_DESCRIPTION_LENGTH = longitud de descripción no válida
INVALID_GROUP_APPROVAL_THRESHOLD = umbral de aprobación de grupo no válido
INVALID_GROUP_BLOCK_DELAY = retraso de bloqueo de aprobación de grupo no válido
INVALID_GROUP_ID = ID de grupo no válido
INVALID_GROUP_OWNER = propietario del grupo no válido
INVALID_LIFETIME = tiempo de vida no válido
INVALID_NAME_LENGTH = longitud de nombre no válida
INVALID_NAME_OWNER = propietario de nombre no válido
INVALID_OPTION_LENGTH = longitud de opciones no válida
INVALID_OPTIONS_COUNT = recuento de opciones no válidas
INVALID_ORDER_CREATOR = creador de pedido no válido
INVALID_PAYMENTS_COUNT = recuento de pagos no válidos
INVALID_PUBLIC_KEY = clave pública no válida
INVALID_QUANTITY = cantidad no válida
INVALID_REFERENCE = referencia no válida
INVALID_RETURN = devolución no válida
INVALID_REWARD_SHARE_PERCENT = porcentaje de recompensa compartida no válido
INVALID_SELLER = vendedor no válido
INVALID_TAGS_LENGTH = longitud de 'etiquetas' no válida
INVALID_TIMESTAMP_SIGNATURE = firma de marca de tiempo no válida
INVALID_TX_GROUP_ID = ID de grupo de transacciones no válido
INVALID_VALUE_LENGTH = longitud de 'valor' no válida
INVITE_UNKNOWN = invitación de grupo desconocida
JOIN_REQUEST_EXISTS = la solicitud para unirse al grupo ya existe
MAXIMUM_REWARD_SHARES = ya en el número máximo de acciones de recompensa para esta cuenta
MISSING_CREATOR = creador faltante
MULTIPLE_NAMES_FORBIDDEN = múltiples nombres registrados por cuenta están prohibidos
NAME_ALREADY_FOR_SALE = nombre ya a la venta
NAME_ALREADY_REGISTERED = nombre ya registrado
NAME_BLOCKED = este nombre está bloqueado
NAME_DOES_NOT_EXIST = el nombre no existe
NAME_NOT_FOR_SALE = el nombre no está a la venta
NAME_NOT_NORMALIZED = nombre no en formato Unicode 'normalizado'
NEGATIVE_AMOUNT = importe no válido/negativo
NEGATIVE_FEE = tarifa no válida/negativa
NEGATIVE_PRICE = precio no válido/negativo
NO_BALANCE = saldo insuficiente
NO_BLOCKCHAIN_LOCK = la cadena de bloques del nodo está actualmente ocupada
NO_FLAG_PERMISSION = la cuenta no tiene ese permiso
NOT_GROUP_ADMIN = la cuenta no es un administrador de grupo
NOT_GROUP_MEMBER = la cuenta no es miembro del grupo
NOT_MINTING_ACCOUNT = la cuenta no puede acuñar
NOT_YET_RELEASED = función aún no lanzada
#feature not yet released
OK = Aceptar
ORDER_ALREADY_CLOSED = la orden comercial de activos ya está cerrada
ORDER_DOES_NOT_EXIST = la orden comercial de activos no existe
POLL_ALREADY_EXISTS = la encuesta ya existe
POLL_DOES_NOT_EXIST = la encuesta no existe
POLL_OPTION_DOES_NOT_EXIST = la opción de encuesta no existe
PUBLIC_KEY_UNKNOWN = clave pública desconocida
REWARD_SHARE_UNKNOWN = Recompensa compartida desconocida
SELF_SHARE_EXISTS = autocompartir (recompensa compartida) ya existe
TIMESTAMP_TOO_NEW = marca de tiempo demasiado nueva
TIMESTAMP_TOO_OLD = marca de tiempo demasiado antigua
TOO_MANY_UNCONFIRMED = la cuenta tiene demasiadas transacciones pendientes sin confirmar
TRANSACTION_ALREADY_CONFIRMED = la transacción ya ha sido confirmada
TRANSACTION_ALREADY_EXISTS = la transacción ya existe
TRANSACTION_UNKNOWN = transacción desconocida
TX_GROUP_ID_MISMATCH = el ID de grupo de la transacción no coincide

View File

@ -1,7 +1,13 @@
#
ACCOUNT_ALREADY_EXISTS = tili on jo olemassa
ACCOUNT_CANNOT_REWARD_SHARE = tili ei voi palkinto-jakaa
ADDRESS_ABOVE_RATE_LIMIT = address reached specified rate limit
ADDRESS_BLOCKED = this address is blocked
ALREADY_GROUP_ADMIN = on jo ryhmän admin
ALREADY_GROUP_MEMBER = on jo ryhmän jäsen
@ -10,7 +16,7 @@ ALREADY_VOTED_FOR_THAT_OPTION = on jo äänestänyt vaihtoehtoa
ASSET_ALREADY_EXISTS = resurssi on jo olemassa
ASSET_DOES_NOT_EXIST = resurssia ei ole olemassa
ASSET_DOES_NOT_EXIST = resurssia ei ole olemassa
ASSET_DOES_NOT_MATCH_AT = resurssi ei vastaa AT:n resurssia
@ -22,16 +28,18 @@ AT_IS_FINISHED = AT on päättynyt
AT_UNKNOWN = AT on tuntematon
BANNED_FROM_GROUP = on evätty ryhmän jäsenyydestä
BAN_EXISTS = eväys on jo olemassa
BAN_UNKNOWN = tuntematon eväys
BANNED_FROM_GROUP = on evätty ryhmän jäsenyydestä
BUYER_ALREADY_OWNER = ostaja on jo omistaja
CLOCK_NOT_SYNCED = kello on synkronisoimatta
DUPLICATE_MESSAGE = address sent duplicate message
DUPLICATE_OPTION = kahdennettu valinta
GROUP_ALREADY_EXISTS = ryhmä on jo olemassa
@ -62,6 +70,8 @@ INVALID_AT_TRANSACTION = kelvoton AT-transaktio
INVALID_AT_TYPE_LENGTH = kelvoton AT 'tyypin' pituus
INVALID_BUT_OK = Invalid but OK
INVALID_CREATION_BYTES = kelvoton luodun tavumäärä
INVALID_DATA_LENGTH = kelvoton datan pituus
@ -82,10 +92,10 @@ INVALID_NAME_LENGTH = kelvoton nimen pituus
INVALID_NAME_OWNER = kelvoton nimen omistaja
INVALID_OPTIONS_COUNT = kelvoton valintojen lkm
INVALID_OPTION_LENGTH = kelvoton valintojen pituus
INVALID_OPTIONS_COUNT = kelvoton valintojen lkm
INVALID_ORDER_CREATOR = kelvoton tilauksen luoja
INVALID_PAYMENTS_COUNT = kelvoton maksujen lkm
@ -104,6 +114,8 @@ INVALID_SELLER = kelvoton myyjä
INVALID_TAGS_LENGTH = kelvoton 'tagin' pituus
INVALID_TIMESTAMP_SIGNATURE = Invalid timestamp signature
INVALID_TX_GROUP_ID = kelvoton transaktion ryhmä-ID
INVALID_VALUE_LENGTH = kelvoton 'arvon' pituus
@ -122,6 +134,8 @@ NAME_ALREADY_FOR_SALE = nimi on jo myynnissä
NAME_ALREADY_REGISTERED = nimi on jo rekisteröity
NAME_BLOCKED = this name is blocked
NAME_DOES_NOT_EXIST = nimeä ei ole
NAME_NOT_FOR_SALE = nimi ei ole kaupan
@ -134,6 +148,12 @@ NEGATIVE_FEE = kelvoton/negatiivinen kulu
NEGATIVE_PRICE = kelvoton/negatiivinen hinta
NO_BALANCE = riittämätön saldo
NO_BLOCKCHAIN_LOCK = solmun lohkoketju on juuri nyt varattuna
NO_FLAG_PERMISSION = tilillä ei ole lupaa tuohon
NOT_GROUP_ADMIN = tili ei ole ryhmän admin
NOT_GROUP_MEMBER = tili ei ole ryhmän jäsen
@ -142,12 +162,6 @@ NOT_MINTING_ACCOUNT = tili ei voi lyödä rahaa
NOT_YET_RELEASED = ominaisuutta ei ole vielä julkistettu
NO_BALANCE = riittämätön saldo
NO_BLOCKCHAIN_LOCK = solmun lohkoketju on juuri nyt varattuna
NO_FLAG_PERMISSION = tilillä ei ole lupaa tuohon
OK = OK
ORDER_ALREADY_CLOSED = resurssin määräys kauppaan on jo suljettu
@ -179,15 +193,3 @@ TRANSACTION_ALREADY_EXISTS = transaktio on jo olemassa
TRANSACTION_UNKNOWN = tuntematon transaktio
TX_GROUP_ID_MISMATCH = transaktion ryhmä-ID:n vastaavuusvirhe
ADDRESS_BLOCKED = this address is blocked
NAME_BLOCKED = this name is blocked
ADDRESS_ABOVE_RATE_LIMIT = address reached specified rate limit
DUPLICATE_MESSAGE = address sent duplicate message
INVALID_TIMESTAMP_SIGNATURE = Invalid timestamp signature
INVALID_BUT_OK = Invalid but OK

View File

@ -1,44 +1,172 @@
OK = OK
#
ACCOUNT_ALREADY_EXISTS = Le compte existe déjà
ACCOUNT_CANNOT_REWARD_SHARE = le compte ne peut pas récompenser
ADDRESS_ABOVE_RATE_LIMIT = l'adresse a atteint la limite de débit spécifiée
ADDRESS_BLOCKED = cette adresse est bloquée
ALREADY_GROUP_ADMIN = vous êtes déjà l'administrateur(trice) du groupe
ALREADY_GROUP_MEMBER = vous êtes déjà un(e) membre du groupe
ALREADY_VOTED_FOR_THAT_OPTION = Vous avez déjà voté pour ce choix
ASSET_ALREADY_EXISTS = l'actif existe déjà
ASSET_DOES_NOT_EXIST = l'actif n'existe pas
ASSET_DOES_NOT_MATCH_AT = l'actif ne correspond pas à l'actif d'AT
ASSET_NOT_SPENDABLE = l'actif n'est pas dépensable
AT_ALREADY_EXISTS = AT déjà existante
AT_IS_FINISHED = l'AT est fini
AT_UNKNOWN = AT inconnu
BAN_EXISTS = déjà banni
BAN_UNKNOWN = bannissement inconnu
BANNED_FROM_GROUP = banned from group
BUYER_ALREADY_OWNER = l'acheteur est déjà le propriétaire
CLOCK_NOT_SYNCED = horloge non synchronisée
DUPLICATE_MESSAGE = l'adresse a envoyé un message en double
DUPLICATE_OPTION = option dupliquée
GROUP_ALREADY_EXISTS = le groupe existe déjà
GROUP_APPROVAL_DECIDED = approbation de groupe déjà décidée
GROUP_APPROVAL_NOT_REQUIRED = approbation de groupe non requise
GROUP_DOES_NOT_EXIST = le groupe n'existe pas
GROUP_ID_MISMATCH = identifiant de groupe non-concorde
GROUP_OWNER_CANNOT_LEAVE = le propriétaire du groupe ne peut pas quitter le groupe
HAVE_EQUALS_WANT = l'actif désiré est le même que l'actif possédé
INCORRECT_NONCE = PoW nonce incorrect
INSUFFICIENT_FEE = frais insuffisant
INVALID_ADDRESS = adresse invalide
INVALID_AMOUNT = montant invalide
INVALID_ASSET_OWNER = propriétaire de l'actif invalide
INVALID_AT_TRANSACTION = transaction AT invalide
INVALID_AT_TYPE_LENGTH = longueur 'type' AT invalide
INVALID_BUT_OK = invalide mais OK
INVALID_CREATION_BYTES = octets de création invalides
INVALID_DATA_LENGTH = longueur de données invalide
INVALID_DESCRIPTION_LENGTH = longueur de description invalide
INVALID_GROUP_APPROVAL_THRESHOLD = seuil d'approbation de groupe non valide
INVALID_GROUP_BLOCK_DELAY = délai de blocage d'approbation de groupe invalide
INVALID_GROUP_ID = identifiant de groupe invalide
INVALID_GROUP_OWNER = propriétaire de groupe invalide
INVALID_LIFETIME = durée de vie invalide
INVALID_NAME_LENGTH = longueur de nom invalide
INVALID_NAME_OWNER = le nom du propriétaire est invalide
INVALID_OPTION_LENGTH = longueur des options invalide
INVALID_OPTIONS_COUNT = nombre d'options invalides
INVALID_ORDER_CREATOR = créateur d'ordre invalide
INVALID_PAYMENTS_COUNT = nombre de paiements invalides
INVALID_PUBLIC_KEY = clé publique invalide
INVALID_QUANTITY = quantité invalide
INVALID_REFERENCE = référence invalide
INVALID_RETURN = retour invalide
INVALID_REWARD_SHARE_PERCENT = pourcentage du partage de récompense invalide
INVALID_SELLER = vendeur invalide
INVALID_TAGS_LENGTH = longueur de 'tags' invalide
INVALID_TIMESTAMP_SIGNATURE = signature d'horodatage invalide
INVALID_TX_GROUP_ID = identifiant du groupe de transactions invalide
INVALID_VALUE_LENGTH = longueur de 'valeur' invalide
INVITE_UNKNOWN = invitation de groupe inconnue
JOIN_REQUEST_EXISTS = la demande d'adhésion au groupe existe déjà
MAXIMUM_REWARD_SHARES = déjà au nombre maximum de récompense pour ce compte
MISSING_CREATOR = créateur manquant
MULTIPLE_NAMES_FORBIDDEN = l'enregistrement de plusieurs noms par compte est interdit
NAME_ALREADY_FOR_SALE = le nom est déjà en vente
NAME_ALREADY_REGISTERED = le nom est déjà enregistré
NAME_BLOCKED = ce nom est bloqué
NAME_DOES_NOT_EXIST = le nom n'existe pas
NAME_NOT_FOR_SALE = le nom n'est pas à vendre
NAME_NOT_NORMALIZED = le nom n'est pas sous la forme 'normalisée' Unicode
NEGATIVE_AMOUNT = montant invalide/négatif
NEGATIVE_FEE = frais invalides/négatifs
NEGATIVE_PRICE = prix invalide/négatif
NO_BALANCE = solde insuffisant
INVALID_REFERENCE = référence invalide
NO_BLOCKCHAIN_LOCK = nœud de la blockchain actuellement occupé
INVALID_NAME_LENGTH = longueur de nom invalide
NO_FLAG_PERMISSION = le compte n'a pas cette autorisation
INVALID_VALUE_LENGTH = longueur de 'valeur' invalide
NOT_GROUP_ADMIN = le compte n'est pas un administrateur du groupe
NAME_ALREADY_REGISTERED = le nom est déjà enregistré
NOT_GROUP_MEMBER = le compte n'est pas membre du groupe
NAME_DOES_NOT_EXIST = le nom n'existe pas
NOT_MINTING_ACCOUNT = le compte ne peut pas mint
INVALID_NAME_OWNER = le nom du propriétaire est invalide
NOT_YET_RELEASED = fonctionnalité pas encore publiée
NAME_ALREADY_FOR_SALE = le nom est déjà en vente
OK = OK
NAME_NOT_FOR_SALE = le nom n'est pas à vendre
ORDER_ALREADY_CLOSED = l'ordre d'échange d'actifs est déjà fermé
BUYER_ALREADY_OWNER = l'acheteur est déjà le propriétaire
INVALID_AMOUNT = montant invalide
INVALID_SELLER = vendeur invalide
NAME_NOT_NORMALIZED = le nom n'est pas sous la forme 'normalisée' Unicode
INVALID_DESCRIPTION_LENGTH = longueur de description invalide
INVALID_OPTIONS_COUNT = nombre d'options invalides
INVALID_OPTION_LENGTH = longueur des options invalide
DUPLICATE_OPTION = option dupliquée
ORDER_DOES_NOT_EXIST = l'ordre d'échange d'actifs n'existe pas
POLL_ALREADY_EXISTS = le scrutin existe déjà
@ -46,106 +174,22 @@ POLL_DOES_NOT_EXIST = le scrutin n'existe pas
POLL_OPTION_DOES_NOT_EXIST = Ce choix de scrutin n'existe pas
ALREADY_VOTED_FOR_THAT_OPTION = Vous avez déjà voté pour ce choix
INVALID_DATA_LENGTH = longueur de données invalide
INVALID_QUANTITY = quantité invalide
ASSET_DOES_NOT_EXIST = l'actif n'existe pas
INVALID_RETURN = retour invalide
HAVE_EQUALS_WANT = l'actif désiré est le même que l'actif possédé
ORDER_DOES_NOT_EXIST = l'ordre d'échange d'actifs n'existe pas
INVALID_ORDER_CREATOR = créateur d'ordre invalide
INVALID_PAYMENTS_COUNT = nombre de paiements invalides
NEGATIVE_PRICE = prix invalide/négatif
INVALID_CREATION_BYTES = octets de création invalides
INVALID_TAGS_LENGTH = longueur de 'tags' invalide
INVALID_AT_TYPE_LENGTH = longueur 'type' AT invalide
INVALID_AT_TRANSACTION = transaction AT invalide
INSUFFICIENT_FEE = frais insuffisant
ASSET_DOES_NOT_MATCH_AT = l'actif ne correspond pas à l'actif d'AT
ASSET_ALREADY_EXISTS = l'actif existe déjà
MISSING_CREATOR = créateur manquant
TIMESTAMP_TOO_OLD = horodatage trop ancien
TIMESTAMP_TOO_NEW = horodatage trop récent
TOO_MANY_UNCONFIRMED = le compte a trop de transactions non confirmées en attente
GROUP_ALREADY_EXISTS = le groupe existe déjà
GROUP_DOES_NOT_EXIST = le groupe n'existe pas
INVALID_GROUP_OWNER = propriétaire de groupe invalide
ALREADY_GROUP_MEMBER = vous êtes déjà un(e) membre du groupe
GROUP_OWNER_CANNOT_LEAVE = le propriétaire du groupe ne peut pas quitter le groupe
NOT_GROUP_MEMBER = le compte n'est pas membre du groupe
ALREADY_GROUP_ADMIN = vous êtes déjà l'administrateur(trice) du groupe
NOT_GROUP_ADMIN = le compte n'est pas un administrateur du groupe
INVALID_LIFETIME = durée de vie invalide
INVITE_UNKNOWN = invitation de groupe inconnue
BAN_EXISTS = déjà banni
BAN_UNKNOWN = bannissement inconnu
BANNED_FROM_GROUP = banned from group
JOIN_REQUEST_EXISTS = la demande d'adhésion au groupe existe déjà
INVALID_GROUP_APPROVAL_THRESHOLD = seuil d'approbation de groupe non valide
GROUP_ID_MISMATCH = identifiant de groupe non-concorde
INVALID_GROUP_ID = identifiant de groupe invalide
TRANSACTION_UNKNOWN = transaction inconnue
TRANSACTION_ALREADY_CONFIRMED = la transaction a déjà été confirmée
INVALID_TX_GROUP_ID = identifiant du groupe de transactions invalide
TX_GROUP_ID_MISMATCH = l'identifiant du groupe de transaction ne correspond pas
MULTIPLE_NAMES_FORBIDDEN = l'enregistrement de plusieurs noms par compte est interdit
INVALID_ASSET_OWNER = propriétaire de l'actif invalide
AT_IS_FINISHED = l'AT est fini
NO_FLAG_PERMISSION = le compte n'a pas cette autorisation
NOT_MINTING_ACCOUNT = le compte ne peut pas mint
PUBLIC_KEY_UNKNOWN = clé publique inconnue
REWARD_SHARE_UNKNOWN = partage de récompense inconnu
INVALID_REWARD_SHARE_PERCENT = pourcentage du partage de récompense invalide
SELF_SHARE_EXISTS = l'auto-partage (récompense) existe déjà
PUBLIC_KEY_UNKNOWN = clé publique inconnue
TIMESTAMP_TOO_NEW = horodatage trop récent
INVALID_PUBLIC_KEY = clé publique invalide
TIMESTAMP_TOO_OLD = horodatage trop ancien
AT_UNKNOWN = AT inconnu
TOO_MANY_UNCONFIRMED = le compte a trop de transactions non confirmées en attente
AT_ALREADY_EXISTS = AT déjà existante
GROUP_APPROVAL_NOT_REQUIRED = approbation de groupe non requise
GROUP_APPROVAL_DECIDED = approbation de groupe déjà décidée
MAXIMUM_REWARD_SHARES = déjà au nombre maximum de récompense pour ce compte
TRANSACTION_ALREADY_CONFIRMED = la transaction a déjà été confirmée
TRANSACTION_ALREADY_EXISTS = la transaction existe déjà
NO_BLOCKCHAIN_LOCK = nœud de la blockchain actuellement occupé
ORDER_ALREADY_CLOSED = l'ordre d'échange d'actifs est déjà fermé
CLOCK_NOT_SYNCED = horloge non synchronisée
ASSET_NOT_SPENDABLE = l'actif n'est pas dépensable
ACCOUNT_CANNOT_REWARD_SHARE = le compte ne peut pas récompenser
SELF_SHARE_EXISTS = l'auto-partage (récompense) existe déjà
ACCOUNT_ALREADY_EXISTS = Le compte existe déjà
INVALID_GROUP_BLOCK_DELAY = délai de blocage d'approbation de groupe invalide
INCORRECT_NONCE = PoW nonce incorrect
INVALID_TIMESTAMP_SIGNATURE = signature d'horodatage invalide
ADDRESS_IN_BLACKLIST = cette adresse est dans votre liste noire
ADDRESS_ABOVE_RATE_LIMIT = l'adresse a atteint la limite de débit spécifiée
DUPLICATE_MESSAGE = l'adresse a envoyé un message en double
INVALID_BUT_OK = invalide mais OK
NOT_YET_RELEASED = fonctionnalité pas encore publiée
TRANSACTION_UNKNOWN = transaction inconnue
TX_GROUP_ID_MISMATCH = l'identifiant du groupe de transaction ne correspond pas

View File

@ -1,114 +1,32 @@
# Magyar myelvre forditotta: Szkíta (Scythian). 2021 Augusztus 7.
OK = OK
ACCOUNT_ALREADY_EXISTS = ez a fiók már létezik
INVALID_ADDRESS = érvénytelen név vagy cím
ACCOUNT_CANNOT_REWARD_SHARE = ez a fiók nem vehet részt jutalék-megosztásban
NEGATIVE_AMOUNT = negatív összeg
ADDRESS_ABOVE_RATE_LIMIT = ez a cím elérte a megengedett mérték korlátot
NEGATIVE_FEE = érvénytelen/negatív tranzakciós díj
NO_BALANCE = elégtelen egyenleg
INVALID_REFERENCE = érvénytelen hivatkozás
INVALID_NAME_LENGTH = érvénytelen névhossz
INVALID_VALUE_LENGTH = érvénytelen értékhossz
NAME_ALREADY_REGISTERED = ez a név már regisztrált
NAME_DOES_NOT_EXIST = ez a név nem létezik
INVALID_NAME_OWNER = érvénytelen név tulajdonos
NAME_ALREADY_FOR_SALE = ez a név már eladó
NAME_NOT_FOR_SALE = ez a név nem eladó
BUYER_ALREADY_OWNER = ez a vevő már a tulajdonos
INVALID_AMOUNT = érvénytelen összeg
INVALID_SELLER = érvénytelen eladó
NAME_NOT_NORMALIZED = ez a név nincs "normalizált" Unicode formátumban
INVALID_DESCRIPTION_LENGTH = érvénytelen leíráshossz
INVALID_OPTIONS_COUNT = invalid options count
INVALID_OPTION_LENGTH = érvénytelen opciókszám
DUPLICATE_OPTION = ez a lehetőség már létezik
POLL_ALREADY_EXISTS = ez a szavazás már létezik
POLL_DOES_NOT_EXIST = ez a szavazás nem létezik
POLL_OPTION_DOES_NOT_EXIST = ez a szavazási lehetőség nem létezik
ALREADY_VOTED_FOR_THAT_OPTION = erre a lehetőségre már szavaztál
INVALID_DATA_LENGTH = érvénytelen adathossz
INVALID_QUANTITY = érvénytelen mennyiség
ASSET_DOES_NOT_EXIST = tőke nem létezik
INVALID_RETURN = érvénytelen csere tőke
HAVE_EQUALS_WANT = saját tőke egyenlő a csere tőkével
ORDER_DOES_NOT_EXIST = tőke rendelés nem létezik
INVALID_ORDER_CREATOR = érvénytelen rendelés létrehozó
INVALID_PAYMENTS_COUNT = a kifizetések száma érvénytelen
NEGATIVE_PRICE = érvénytelen/negatív ár
INVALID_CREATION_BYTES = érvénytelen létrehozási bájtok
INVALID_TAGS_LENGTH = érvénytelen cimkehossz
INVALID_AT_TYPE_LENGTH = érvénytelen AT "típus" hossz
INVALID_AT_TRANSACTION = érvénytelen AT tranzakció
INSUFFICIENT_FEE = elégtelen díj
ASSET_DOES_NOT_MATCH_AT = a tőke nem egyezik az AT tőkéjével
ASSET_ALREADY_EXISTS = ez a tőke már létezik
MISSING_CREATOR = hiányzó létrehozó
TIMESTAMP_TOO_OLD = időbélyeg túl régi
TIMESTAMP_TOO_NEW = időbélyeg túl korai
TOO_MANY_UNCONFIRMED = ennek a fióknak túl sok meg nem erősített tranzakciója van folyamatban
GROUP_ALREADY_EXISTS = ez a csoport már létezik
GROUP_DOES_NOT_EXIST = ez a csoport nem létezik
INVALID_GROUP_OWNER = érvénytelen csoport tulajdonos
ALREADY_GROUP_MEMBER = már csoporttag
GROUP_OWNER_CANNOT_LEAVE = a csoport tulajdonos nem tudja elhagyni a csoportot
NOT_GROUP_MEMBER = ez a tag nem csoporttag
ADDRESS_BLOCKED = ez a cím le van tiltva
ALREADY_GROUP_ADMIN = már csoport adminisztrátor
NOT_GROUP_ADMIN = ez a tag nem csoport adminisztrátor
ALREADY_GROUP_MEMBER = már csoporttag
INVALID_LIFETIME = érvénytelen élettartam
ALREADY_VOTED_FOR_THAT_OPTION = erre a lehetőségre már szavaztál
INVITE_UNKNOWN = ismeretlen csoport meghívás
ASSET_ALREADY_EXISTS = ez a tőke már létezik
ASSET_DOES_NOT_EXIST = tőke nem létezik
ASSET_DOES_NOT_MATCH_AT = a tőke nem egyezik az AT tőkéjével
ASSET_NOT_SPENDABLE = ez a tőke nem értékesíthető
AT_ALREADY_EXISTS = az AT már létezik
AT_IS_FINISHED = az AT végzett
AT_UNKNOWN = az AT ismeretlen
BAN_EXISTS = már ki van tiltva
@ -116,80 +34,162 @@ BAN_UNKNOWN = kitiltás nem létezik
BANNED_FROM_GROUP = ki van tiltva a csoportból
JOIN_REQUEST_EXISTS = a csoporthoz való csatlakozási kérelem már megtöretént
INVALID_GROUP_APPROVAL_THRESHOLD = érvénytelen jóváhagyási küszöbérték
GROUP_ID_MISMATCH = csoportazonosító nem egyezik
INVALID_GROUP_ID = csoportazonosító érvénytelen
TRANSACTION_UNKNOWN = ismeretlen tranzakció
TRANSACTION_ALREADY_CONFIRMED = ez a tranzakció már meg van erősítve
INVALID_TX_GROUP_ID = a tranzakció csoportazonosítója érvénytelen
TX_GROUP_ID_MISMATCH = a tranzakció csoportazonosítója nem egyezik
MULTIPLE_NAMES_FORBIDDEN = fiókonként több név regisztrálása tilos
INVALID_ASSET_OWNER = érvénytelen tőke tulajdonos
AT_IS_FINISHED = az AT végzett
NO_FLAG_PERMISSION = ez a fiók nem rendelkezik ezzel az engedéllyel
NOT_MINTING_ACCOUNT = ez a fiók nem tud QORT-ot verni
REWARD_SHARE_UNKNOWN = ez a jutalék-megosztás ismeretlen
INVALID_REWARD_SHARE_PERCENT = ez a jutalék-megosztási arány érvénytelen
PUBLIC_KEY_UNKNOWN = ismeretlen nyilvános kulcs
INVALID_PUBLIC_KEY = érvénytelen nyilvános kulcs
AT_UNKNOWN = az AT ismeretlen
AT_ALREADY_EXISTS = az AT már létezik
GROUP_APPROVAL_NOT_REQUIRED = csoport általi jóváhagyás nem szükséges
GROUP_APPROVAL_DECIDED = csoport általi jóváhagyás el van döntve
MAXIMUM_REWARD_SHARES = ez a fiókcím már elérte a maximális lehetséges jutalék-megosztási részesedést
TRANSACTION_ALREADY_EXISTS = ez a tranzakció már létezik
NO_BLOCKCHAIN_LOCK = csomópont blokklánca jelenleg elfoglalt
ORDER_ALREADY_CLOSED = ez a tőke értékesítés már befejeződött
BUYER_ALREADY_OWNER = ez a vevő már a tulajdonos
CLOCK_NOT_SYNCED = az óra nincs szinkronizálva
ASSET_NOT_SPENDABLE = ez a tőke nem értékesíthető
DUPLICATE_MESSAGE = ez a cím duplikált üzenetet küldött
ACCOUNT_CANNOT_REWARD_SHARE = ez a fiók nem vehet részt jutalék-megosztásban
DUPLICATE_OPTION = ez a lehetőség már létezik
SELF_SHARE_EXISTS = önrészes jutalék-megosztás már létezik
GROUP_ALREADY_EXISTS = ez a csoport már létezik
ACCOUNT_ALREADY_EXISTS = ez a fiók már létezik
GROUP_APPROVAL_DECIDED = csoport általi jóváhagyás el van döntve
INVALID_GROUP_BLOCK_DELAY = invalid group-approval block delay
GROUP_APPROVAL_NOT_REQUIRED = csoport általi jóváhagyás nem szükséges
GROUP_DOES_NOT_EXIST = ez a csoport nem létezik
GROUP_ID_MISMATCH = csoportazonosító nem egyezik
GROUP_OWNER_CANNOT_LEAVE = a csoport tulajdonosa nem tudja elhagyni a csoportot
HAVE_EQUALS_WANT = saját tőke egyenlő a csere tőkével
INCORRECT_NONCE = helytelen Proof-of-Work Nonce
INVALID_TIMESTAMP_SIGNATURE = érvénytelen időbélyeg aláírás
INSUFFICIENT_FEE = elégtelen díj
ADDRESS_BLOCKED = this address is blocked
INVALID_ADDRESS = érvénytelen név vagy cím
NAME_BLOCKED = this name is blocked
INVALID_AMOUNT = érvénytelen összeg
ADDRESS_ABOVE_RATE_LIMIT = ez a cím elérte a megengedett mérték korlátot
INVALID_ASSET_OWNER = érvénytelen tőke tulajdonos
DUPLICATE_MESSAGE = ez a cím duplikált üzenetet küldött
INVALID_AT_TRANSACTION = érvénytelen AT tranzakció
INVALID_AT_TYPE_LENGTH = érvénytelen AT típushossz
INVALID_BUT_OK = érvénytelen de elfogadva
INVALID_CREATION_BYTES = érvénytelen létrehozási bájtok
INVALID_DATA_LENGTH = érvénytelen adathossz
INVALID_DESCRIPTION_LENGTH = érvénytelen leíráshossz
INVALID_GROUP_APPROVAL_THRESHOLD = érvénytelen jóváhagyási küszöbérték
INVALID_GROUP_BLOCK_DELAY = invalid group-approval block delay
INVALID_GROUP_ID = csoportazonosító érvénytelen
INVALID_GROUP_OWNER = érvénytelen csoporttulajdonos
INVALID_LIFETIME = érvénytelen élettartam
INVALID_NAME_LENGTH = érvénytelen névhossz
INVALID_NAME_OWNER = érvénytelen névtulajdonos
INVALID_OPTION_LENGTH = érvénytelen opciószám
INVALID_OPTIONS_COUNT = invalid options count
INVALID_ORDER_CREATOR = érvénytelen a rendelés létrehozója
INVALID_PAYMENTS_COUNT = a kifizetések száma érvénytelen
INVALID_PUBLIC_KEY = érvénytelen nyilvános kulcs
INVALID_QUANTITY = érvénytelen mennyiség
INVALID_REFERENCE = érvénytelen hivatkozás
INVALID_RETURN = érvénytelen csere tőke
INVALID_REWARD_SHARE_PERCENT = ez a jutalék-megosztási arány érvénytelen
INVALID_SELLER = érvénytelen eladó
INVALID_TAGS_LENGTH = érvénytelen cimkehossz
INVALID_TIMESTAMP_SIGNATURE = érvénytelen időbélyeg-aláírás
INVALID_TX_GROUP_ID = a tranzakció csoportazonosítója érvénytelen
INVALID_VALUE_LENGTH = érvénytelen értékhossz
INVITE_UNKNOWN = ismeretlen csoport meghívás
JOIN_REQUEST_EXISTS = a csoporthoz való csatlakozási kérelem már létezik
MAXIMUM_REWARD_SHARES = ez a fiókcím már elérte a maximális lehetséges jutalék-megosztási részesedést
MISSING_CREATOR = hiányzó létrehozó
MULTIPLE_NAMES_FORBIDDEN = fiókonként több név regisztrálása tilos
NAME_ALREADY_FOR_SALE = ez a név már eladó
NAME_ALREADY_REGISTERED = ez a név már regisztrált
NAME_BLOCKED = ez a név tiltva van
NAME_DOES_NOT_EXIST = ez a név nem létezik
NAME_NOT_FOR_SALE = ez a név nem eladó
NAME_NOT_NORMALIZED = ez a név nincs "normalizált" Unicode formátumban
NEGATIVE_AMOUNT = érvénytelen/negatív összeg
NEGATIVE_FEE = érvénytelen/negatív tranzakciós díj
NEGATIVE_PRICE = érvénytelen/negatív ár
NO_BALANCE = elégtelen egyenleg
NO_BLOCKCHAIN_LOCK = csomópont blokklánca jelenleg foglalt
NO_FLAG_PERMISSION = ez a fiók nem rendelkezik ezzel az engedéllyel
NOT_GROUP_ADMIN = ez a tag nem csoportadminisztrátor
NOT_GROUP_MEMBER = ez a tag nem csoporttag
NOT_MINTING_ACCOUNT = ez a fiók nem tud QORT-ot verni
NOT_YET_RELEASED = ez a funkció még nem került kiadásra
OK = OK
ORDER_ALREADY_CLOSED = ez a tőkeértékesítés már befejeződött
ORDER_DOES_NOT_EXIST = tőkerendelés nem létezik
POLL_ALREADY_EXISTS = ez a szavazás már létezik
POLL_DOES_NOT_EXIST = ez a szavazás nem létezik
POLL_OPTION_DOES_NOT_EXIST = ez a válaszlehetőség nem létezik
PUBLIC_KEY_UNKNOWN = ismeretlen nyilvános kulcs
REWARD_SHARE_UNKNOWN = ez a jutalék-megosztás ismeretlen
SELF_SHARE_EXISTS = önrészes jutalék-megosztás már létezik
TIMESTAMP_TOO_NEW = időbélyeg túl friss
TIMESTAMP_TOO_OLD = időbélyeg túl régi
TOO_MANY_UNCONFIRMED = ennek a fióknak túl sok meg nem erősített tranzakciója van folyamatban
TRANSACTION_ALREADY_CONFIRMED = ez a tranzakció már meg van erősítve
TRANSACTION_ALREADY_EXISTS = ez a tranzakció már létezik
TRANSACTION_UNKNOWN = ismeretlen tranzakció
TX_GROUP_ID_MISMATCH = a tranzakció csoportazonosítója nem egyezik

View File

@ -1,12 +1,16 @@
# Italian translation by Pabs 2021
ACCOUNT_ALREADY_EXISTS = l'account gia esiste
ACCOUNT_ALREADY_EXISTS = l'account esiste già
ACCOUNT_CANNOT_REWARD_SHARE = l'account non può fare la condivisione di ricompensa
ACCOUNT_CANNOT_REWARD_SHARE = l'account non può ricevere ricompense
ALREADY_GROUP_ADMIN = è già amministratore del gruppo
ADDRESS_ABOVE_RATE_LIMIT = l'indirizzo ha raggiunto il limite stabilito
ALREADY_GROUP_MEMBER = è già membro del gruppo
ADDRESS_BLOCKED = questo indirizzo è bloccato
ALREADY_GROUP_ADMIN = già amministratore del gruppo
ALREADY_GROUP_MEMBER = già membro del gruppo
ALREADY_VOTED_FOR_THAT_OPTION = già votato per questa opzione
@ -24,31 +28,33 @@ AT_IS_FINISHED = AT ha finito
AT_UNKNOWN = AT sconosciuto
BANNED_FROM_GROUP = divietato dal gruppo
BAN_EXISTS = il divieto esiste già
BAN_UNKNOWN = divieto sconosciuto
BANNED_FROM_GROUP = vietato dal gruppo
BUYER_ALREADY_OWNER = l'acquirente è già proprietario
CLOCK_NOT_SYNCED = orologio non sincronizzato
DUPLICATE_MESSAGE = l'indirizzo ha inviato un messaggio duplicato
DUPLICATE_OPTION = opzione duplicata
GROUP_ALREADY_EXISTS = gruppo già esistente
GROUP_APPROVAL_DECIDED = approvazione di gruppo già decisa
GROUP_APPROVAL_NOT_REQUIRED = approvazione di gruppo non richiesto
GROUP_APPROVAL_NOT_REQUIRED = approvazione di gruppo non richiesta
GROUP_DOES_NOT_EXIST = gruppo non esiste
GROUP_DOES_NOT_EXIST = il gruppo non esiste
GROUP_ID_MISMATCH = identificazione di gruppo non corrispondente
GROUP_OWNER_CANNOT_LEAVE = il proprietario del gruppo non può lasciare il gruppo
HAVE_EQUALS_WANT = la risorsa avere è uguale a la risorsa volere
HAVE_EQUALS_WANT = la richiesta è uguale a ciò che è già posseduto
INCORRECT_NONCE = PoW nonce sbagliato
@ -64,9 +70,11 @@ INVALID_AT_TRANSACTION = transazione AT non valida
INVALID_AT_TYPE_LENGTH = lunghezza di "tipo" AT non valida
INVALID_CREATION_BYTES = byte di creazione non validi
INVALID_BUT_OK = non valido ma accettato
INVALID_DATA_LENGTH = lunghezza di dati non valida
INVALID_CREATION_BYTES = creazione di byte non validi
INVALID_DATA_LENGTH = lunghezza dati non valida
INVALID_DESCRIPTION_LENGTH = lunghezza della descrizione non valida
@ -78,16 +86,16 @@ INVALID_GROUP_ID = identificazione di gruppo non valida
INVALID_GROUP_OWNER = proprietario di gruppo non valido
INVALID_LIFETIME = durata della vita non valida
INVALID_LIFETIME = durata non valida
INVALID_NAME_LENGTH = lunghezza del nome non valida
INVALID_NAME_OWNER = proprietario del nome non valido
INVALID_OPTIONS_COUNT = conteggio di opzioni non validi
INVALID_OPTION_LENGTH = lunghezza di opzioni non valida
INVALID_OPTIONS_COUNT = conteggio di opzioni non validi
INVALID_ORDER_CREATOR = creatore dell'ordine non valido
INVALID_PAYMENTS_COUNT = conteggio pagamenti non validi
@ -98,7 +106,7 @@ INVALID_QUANTITY = quantità non valida
INVALID_REFERENCE = riferimento non valido
INVALID_RETURN = ritorno non valido
INVALID_RETURN = risposta non valida
INVALID_REWARD_SHARE_PERCENT = percentuale condivisione di ricompensa non valida
@ -106,6 +114,8 @@ INVALID_SELLER = venditore non valido
INVALID_TAGS_LENGTH = lunghezza dei "tag" non valida
INVALID_TIMESTAMP_SIGNATURE = firma timestamp non valida
INVALID_TX_GROUP_ID = identificazione di gruppo di transazioni non valida
INVALID_VALUE_LENGTH = lunghezza "valore" non valida
@ -114,16 +124,18 @@ INVITE_UNKNOWN = invito di gruppo sconosciuto
JOIN_REQUEST_EXISTS = la richiesta di iscrizione al gruppo già esiste
MAXIMUM_REWARD_SHARES = numero massimo di condivisione di ricompensa raggiunto per l'account
MAXIMUM_REWARD_SHARES = numero massimo di condivisione di ricompensa raggiunto per l'account
MISSING_CREATOR = creatore mancante
MULTIPLE_NAMES_FORBIDDEN = è vietata la registrazione di multipli nomi per account
MULTIPLE_NAMES_FORBIDDEN = è vietata la registrazione di nomi multipli per singolo account
NAME_ALREADY_FOR_SALE = nome già in vendita
NAME_ALREADY_REGISTERED = nome già registrato
NAME_BLOCKED = questo nome è bloccato
NAME_DOES_NOT_EXIST = il nome non esiste
NAME_NOT_FOR_SALE = il nome non è in vendita
@ -136,6 +148,12 @@ NEGATIVE_FEE = tariffa non valida / negativa
NEGATIVE_PRICE = prezzo non valido / negativo
NO_BALANCE = bilancio insufficiente
NO_BLOCKCHAIN_LOCK = nodo di blockchain attualmente occupato
NO_FLAG_PERMISSION = l'account non dispone di questa autorizzazione
NOT_GROUP_ADMIN = l'account non è un amministratore di gruppo
NOT_GROUP_MEMBER = l'account non è un membro del gruppo
@ -144,17 +162,11 @@ NOT_MINTING_ACCOUNT = l'account non può coniare
NOT_YET_RELEASED = funzione non ancora rilasciata
NO_BALANCE = equilibrio insufficiente
NO_BLOCKCHAIN_LOCK = nodo di blockchain attualmente occupato
NO_FLAG_PERMISSION = l'account non dispone di questa autorizzazione
OK = OK
ORDER_ALREADY_CLOSED = l'ordine di scambio di risorsa è già chiuso
ORDER_DOES_NOT_EXIST = l'ordine di scambio di risorsa non esiste
ORDER_DOES_NOT_EXIST = l'ordine di scambio di risorsa non esiste
POLL_ALREADY_EXISTS = il sondaggio già esiste
@ -166,7 +178,7 @@ PUBLIC_KEY_UNKNOWN = chiave pubblica sconosciuta
REWARD_SHARE_UNKNOWN = condivisione di ricompensa sconosciuta
SELF_SHARE_EXISTS = condivisione di sé (condivisione di ricompensa) già esiste
SELF_SHARE_EXISTS = condivisione di ricompensa già esiste
TIMESTAMP_TOO_NEW = timestamp troppo nuovo
@ -181,15 +193,3 @@ TRANSACTION_ALREADY_EXISTS = la transazione già esiste
TRANSACTION_UNKNOWN = transazione sconosciuta
TX_GROUP_ID_MISMATCH = identificazione di gruppo della transazione non corrisponde
ADDRESS_BLOCKED = this address is blocked
NAME_BLOCKED = this name is blocked
ADDRESS_ABOVE_RATE_LIMIT = address reached specified rate limit
DUPLICATE_MESSAGE = address sent duplicate message
INVALID_TIMESTAMP_SIGNATURE = Invalid timestamp signature
INVALID_BUT_OK = Invalid but OK

View File

@ -1,10 +1,16 @@
#
ACCOUNT_ALREADY_EXISTS = account bestaat al
ACCOUNT_CANNOT_REWARD_SHARE = account kan geen beloningen delen
ALREADY_GROUP_ADMIN = reeds groepsadministrator
ADDRESS_ABOVE_RATE_LIMIT = adres heeft een waarde limiet bereikt
ALREADY_GROUP_MEMBER = reeds groepslid
ADDRESS_BLOCKED = adres is geblokkeerd
ALREADY_GROUP_ADMIN = groeps administrator bestaat al
ALREADY_GROUP_MEMBER = groeps lid bestaat al
ALREADY_VOTED_FOR_THAT_OPTION = reeds gestemd voor die optie
@ -12,9 +18,9 @@ ASSET_ALREADY_EXISTS = asset bestaat al
ASSET_DOES_NOT_EXIST = asset bestaat niet
ASSET_DOES_NOT_MATCH_AT = asset matcht niet met de asset van de AT
ASSET_DOES_NOT_MATCH_AT = asset komt niet overeen met de asset van de AT
ASSET_NOT_SPENDABLE = asset is niet uitgeefbaar
ASSET_NOT_SPENDABLE = asset is niet toerijkend
AT_ALREADY_EXISTS = AT bestaat al
@ -22,31 +28,33 @@ AT_IS_FINISHED = AT is afgelopen
AT_UNKNOWN = AT onbekend
BANNED_FROM_GROUP = verbannen uit groep
BAN_EXISTS = hiervoor bestaat een verbod
BAN_EXISTS = ban bestaat al
BAN_UNKNOWN = onbekend verbod
BAN_UNKNOWN = ban onbekend
BANNED_FROM_GROUP = verbod om deel te nemen aan de groep
BUYER_ALREADY_OWNER = koper is al eigenaar
BUYER_ALREADY_OWNER = koper is al de eigenaar
CLOCK_NOT_SYNCED = klok is niet gesynchronizeerd
DUPLICATE_MESSAGE = dubbel adres bericht
DUPLICATE_OPTION = dubbele optie
GROUP_ALREADY_EXISTS = groep bestaat reeds
GROUP_APPROVAL_DECIDED = groepsgoedkeuring reeds afgewezen
GROUP_APPROVAL_DECIDED = groeps goedkeuring afgewezen
GROUP_APPROVAL_NOT_REQUIRED = groepsgoedkeuring niet vereist
GROUP_APPROVAL_NOT_REQUIRED = groeps goedkeuring niet vereist
GROUP_DOES_NOT_EXIST = groep bestaat niet
GROUP_ID_MISMATCH = ongeldige match met groep-ID
GROUP_ID_MISMATCH = groeps ID komt niet overeen
GROUP_OWNER_CANNOT_LEAVE = groepseigenaar kan de groep niet verlaten
GROUP_OWNER_CANNOT_LEAVE = groep eigenaar kan de groep niet verlaten
HAVE_EQUALS_WANT = have-asset is gelijk aan want-asset
HAVE_EQUALS_WANT = asset is gelijk aan Want-asset
INCORRECT_NONCE = incorrecte PoW nonce
@ -60,21 +68,23 @@ INVALID_ASSET_OWNER = ongeldige asset-eigenaar
INVALID_AT_TRANSACTION = ongeldige AT-transactie
INVALID_AT_TYPE_LENGTH = ongeldige lengte voor AT 'type'
INVALID_AT_TYPE_LENGTH = ongeldige lengte voor AT type
INVALID_CREATION_BYTES = ongeldige creation bytes
INVALID_BUT_OK = ongeldig maar is in orde
INVALID_DATA_LENGTH = ongeldige lengte voor data
INVALID_CREATION_BYTES = ongeldige gecreerde bytes
INVALID_DESCRIPTION_LENGTH = ongeldige lengte voor beschrijving
INVALID_DATA_LENGTH = ongeldige data lengte
INVALID_DESCRIPTION_LENGTH = ongeldige lengte voor de beschrijving
INVALID_GROUP_APPROVAL_THRESHOLD = ongeldige drempelwaarde voor groepsgoedkeuring
INVALID_GROUP_BLOCK_DELAY = ongeldige groepsgoedkeuring voor blokvertraging
INVALID_GROUP_BLOCK_DELAY = ongeldige groep blok vertraging
INVALID_GROUP_ID = ongeldige groep-ID
INVALID_GROUP_OWNER = ongeldige groepseigenaar
INVALID_GROUP_OWNER = ongeldige groep eigenaar
INVALID_LIFETIME = ongeldige levensduur
@ -82,13 +92,13 @@ INVALID_NAME_LENGTH = ongeldige lengte voor naam
INVALID_NAME_OWNER = ongeldige naam voor eigenaar
INVALID_OPTIONS_COUNT = ongeldige hoeveelheid opties
INVALID_OPTION_LENGTH = ongeldige lengte voor opties
INVALID_ORDER_CREATOR = ongeldige aanmaker voor order
INVALID_OPTIONS_COUNT = ongeldige hoeveelheid opties
INVALID_PAYMENTS_COUNT = ongeldige hoeveelheid betalingen
INVALID_ORDER_CREATOR = ongeldige gebruiker voor deze order
INVALID_PAYMENTS_COUNT = ongeldige betalings waarde
INVALID_PUBLIC_KEY = ongeldige public key
@ -98,21 +108,23 @@ INVALID_REFERENCE = ongeldige verwijzing
INVALID_RETURN = ongeldige return
INVALID_REWARD_SHARE_PERCENT = ongeldig percentage voor beloningsdeling
INVALID_REWARD_SHARE_PERCENT = ongeldig belonings percentage
INVALID_SELLER = ongeldige verkoper
INVALID_TAGS_LENGTH = ongeldige lengte voor 'tags'
INVALID_TIMESTAMP_SIGNATURE = ongeldig tijd aanduiding
INVALID_TX_GROUP_ID = ongeldige transactiegroep-ID
INVALID_VALUE_LENGTH = ongeldige lengte voor 'waarde'
INVALID_VALUE_LENGTH = ongeldige lengte voor de waarde
INVITE_UNKNOWN = onbekende groepsuitnodiging
JOIN_REQUEST_EXISTS = aanvraag om lid van groep te worden bestaat al
MAXIMUM_REWARD_SHARES = limiet aan beloningsdelingen voor dit account is bereikt
MAXIMUM_REWARD_SHARES = limiet aan belonen voor dit account bereikt
MISSING_CREATOR = ontbrekende aanmaker
@ -122,33 +134,35 @@ NAME_ALREADY_FOR_SALE = naam reeds te koop
NAME_ALREADY_REGISTERED = naam reeds geregistreerd
NAME_BLOCKED = deze naam is geblokkeerd
NAME_DOES_NOT_EXIST = naam bestaat niet
NAME_NOT_FOR_SALE = naam is niet te koop
NAME_NOT_NORMALIZED = naam is niet in 'genormalizeerde' Unicode-vorm
NAME_NOT_NORMALIZED = naam voldoet niet aan Unicode-vorm
NEGATIVE_AMOUNT = ongeldige/negatieve hoeveelheid
NEGATIVE_AMOUNT = negatieve hoeveelheid
NEGATIVE_FEE = ongeldige/negatieve vergoeding
NEGATIVE_FEE = negatieve vergoeding
NEGATIVE_PRICE = ongeldige/negatieve prijs
NEGATIVE_PRICE = negatieve prijs
NO_BALANCE = onvoldoende balans
NO_BLOCKCHAIN_LOCK = geen blockchain slot
NO_FLAG_PERMISSION = account heeft hier geen toestemming voor
NOT_GROUP_ADMIN = account is geen groepsadministrator
NOT_GROUP_MEMBER = account is geen groepslid
NOT_MINTING_ACCOUNT = account kan niet munten
NOT_MINTING_ACCOUNT = account kan niet minten
NOT_YET_RELEASED = functie nog niet uitgebracht
NO_BALANCE = onvoldoende balans
NO_BLOCKCHAIN_LOCK = blockchain van node is momenteel bezig
NO_FLAG_PERMISSION = account heeft hier geen toestemming voor
OK = Oke
OK = Ok
ORDER_ALREADY_CLOSED = asset handelsorder is al gesloten
@ -162,9 +176,9 @@ POLL_OPTION_DOES_NOT_EXIST = peilingsoptie bestaat niet
PUBLIC_KEY_UNKNOWN = public key onbekend
REWARD_SHARE_UNKNOWN = beloningsdeling onbekend
REWARD_SHARE_UNKNOWN = beloning vergoeding onbekend
SELF_SHARE_EXISTS = zelfdeling (beloningsdeling) bestaat reeds
SELF_SHARE_EXISTS = zelf vergoeding bestaat reeds
TIMESTAMP_TOO_NEW = tijdstempel te nieuw
@ -178,16 +192,4 @@ TRANSACTION_ALREADY_EXISTS = transactie bestaat al
TRANSACTION_UNKNOWN = transactie onbekend
TX_GROUP_ID_MISMATCH = groep-ID van transactie matcht niet
ADDRESS_BLOCKED = this address is blocked
NAME_BLOCKED = this name is blocked
ADDRESS_ABOVE_RATE_LIMIT = address reached specified rate limit
DUPLICATE_MESSAGE = address sent duplicate message
INVALID_TIMESTAMP_SIGNATURE = Invalid timestamp signature
INVALID_BUT_OK = Invalid but OK
TX_GROUP_ID_MISMATCH = groep ID komt niet overeen

View File

@ -1,7 +1,13 @@
#
ACCOUNT_ALREADY_EXISTS = аккаунт уже существует
ACCOUNT_CANNOT_REWARD_SHARE = аккаунт не может делиться вознаграждением
ADDRESS_ABOVE_RATE_LIMIT = адрес достиг указанного предела скорости
ADDRESS_BLOCKED = этот адрес заблокирован
ALREADY_GROUP_ADMIN = уже администратор группы
ALREADY_GROUP_MEMBER = уже член группы
@ -20,33 +26,37 @@ AT_ALREADY_EXISTS = AT уже существует
AT_IS_FINISHED = AT в завершении
AT_UNKNOWN = не известный АТ
BANNED_FROM_GROUP = исключен из группы
AT_UNKNOWN = неизвестный АТ
BAN_EXISTS = Бан
BAN_UNKNOWN = не известный бан
BAN_UNKNOWN = неизвестный бан
BANNED_FROM_GROUP = исключен из группы
BUYER_ALREADY_OWNER = покупатель уже собственник
CLOCK_NOT_SYNCED = часы не синхронизированы
DUPLICATE_MESSAGE = адрес отправил дубликат сообщения
DUPLICATE_OPTION = дублировать вариант
GROUP_ALREADY_EXISTS = группа уже существует
GROUP_APPROVAL_DECIDED = гуппа одобрена
GROUP_APPROVAL_DECIDED = группа одобрена
GROUP_APPROVAL_NOT_REQUIRED = гупповое одобрение не требуется
GROUP_APPROVAL_NOT_REQUIRED = групповое одобрение не требуется
GROUP_DOES_NOT_EXIST = группа не существует
GROUP_ID_MISMATCH = не соответствие идентификатора группы
GROUP_ID_MISMATCH = несоответствие идентификатора группы
GROUP_OWNER_CANNOT_LEAVE = владелец группы не может уйти
HAVE_EQUALS_WANT = иммеются равные желания
HAVE_EQUALS_WANT = имеются равные желания
INCORRECT_NONCE = неправильный одноразовый номер PoW
INSUFFICIENT_FEE = недостаточная плата
@ -60,6 +70,8 @@ INVALID_AT_TRANSACTION = недействительная АТ транзакц
INVALID_AT_TYPE_LENGTH = недействительно для типа длины AT
INVALID_BUT_OK = Недействительно, но ОК
INVALID_CREATION_BYTES = недопустимые байты создания
INVALID_DATA_LENGTH = недопустимая длина данных
@ -68,20 +80,22 @@ INVALID_DESCRIPTION_LENGTH = недопустимая длина описани
INVALID_GROUP_APPROVAL_THRESHOLD = недопустимый порог утверждения группы
INVALID_GROUP_BLOCK_DELAY = недопустимая задержка блокировки группового утверждения
INVALID_GROUP_ID = недопустимый идентификатор группы
INVALID_GROUP_OWNER = недопу владелец группы
INVALID_GROUP_OWNER = недопустимый владелец группы
INVALID_LIFETIME = недопу срок службы
INVALID_LIFETIME = недопустимый срок службы
INVALID_NAME_LENGTH = недопустимая длина группы
INVALID_NAME_OWNER = недопустимое имя владельца
INVALID_OPTIONS_COUNT = неверное количество опций
INVALID_OPTION_LENGTH = недопустимая длина опции
INVALID_OPTIONS_COUNT = неверное количество опций
INVALID_ORDER_CREATOR = недопустимый создатель заказа
INVALID_PAYMENTS_COUNT = неверный подсчет платежей
@ -94,12 +108,14 @@ INVALID_REFERENCE = неверная ссылка
INVALID_RETURN = недопустимый возврат
INVALID_REWARD_SHARE_PERCENT = недействительный процент награждения
INVALID_REWARD_SHARE_PERCENT = недопустимый процент доли вознаграждения
INVALID_SELLER = недействительный продавец
INVALID_TAGS_LENGTH = недействительная длина тэгов
INVALID_TIMESTAMP_SIGNATURE = неверная подпись временной метки
INVALID_TX_GROUP_ID = недействительный идентификатор группы передачи
INVALID_VALUE_LENGTH = недопустимое значение длины
@ -118,11 +134,13 @@ NAME_ALREADY_FOR_SALE = имя уже в продаже
NAME_ALREADY_REGISTERED = имя уже зарегистрировано
NAME_BLOCKED = это имя заблокировано
NAME_DOES_NOT_EXIST = имя не существует
NAME_NOT_FOR_SALE = имя не продается
NAME_NOT_LOWER_CASE = иммя не должно содержать строчный регистр
NAME_NOT_LOWER_CASE = имя не должно содержать строчный регистр
NEGATIVE_AMOUNT = недостаточная сумма
@ -130,6 +148,12 @@ NEGATIVE_FEE = недостаточная комиссия
NEGATIVE_PRICE = недостаточная стоимость
NO_BALANCE = нет баланса
NO_BLOCKCHAIN_LOCK = блокчейн узла в настоящее время занят
NO_FLAG_PERMISSION = нет разрешения на флаг
NOT_GROUP_ADMIN = не администратор группы
NOT_GROUP_MEMBER = не член группы
@ -138,12 +162,6 @@ NOT_MINTING_ACCOUNT = счет не чеканит
NOT_YET_RELEASED = еще не выпущено
NO_BALANCE = нет баланса
NO_BLOCKCHAIN_LOCK = блокчейн узла в настоящее время занят
NO_FLAG_PERMISSION = нет разрешения на флаг
OK = OK
ORDER_ALREADY_CLOSED = заказ закрыт
@ -158,6 +176,8 @@ POLL_OPTION_DOES_NOT_EXIST = вариантов ответа не существ
PUBLIC_KEY_UNKNOWN = открытый ключ неизвестен
REWARD_SHARE_UNKNOWN = доля награды неизвестна
SELF_SHARE_EXISTS = поделиться долей
TIMESTAMP_TOO_NEW = новая метка времени
@ -172,16 +192,4 @@ TRANSACTION_ALREADY_EXISTS = транзакция существует
TRANSACTION_UNKNOWN = неизвестная транзакция
TX_GROUP_ID_MISMATCH = не соответствие идентификатора группы c хэш транзации
ADDRESS_BLOCKED = this address is blocked
NAME_BLOCKED = this name is blocked
ADDRESS_ABOVE_RATE_LIMIT = address reached specified rate limit
DUPLICATE_MESSAGE = address sent duplicate message
INVALID_TIMESTAMP_SIGNATURE = Invalid timestamp signature
INVALID_BUT_OK = Invalid but OK
TX_GROUP_ID_MISMATCH = не соответствие идентификатора группы в хэш транзации

View File

@ -0,0 +1,195 @@
#
ACCOUNT_ALREADY_EXISTS = kontot finns redan
ACCOUNT_CANNOT_REWARD_SHARE = kontot kan inte dela ut en belöning
ADDRESS_ABOVE_RATE_LIMIT = adressen nådde angiven gräns
ADDRESS_BLOCKED = denna adress är blockerad
ALREADY_GROUP_ADMIN = redan gruppadministratör
ALREADY_GROUP_MEMBER = redan gruppmedlem
ALREADY_VOTED_FOR_THAT_OPTION = redan röstat för det alternativet
ASSET_ALREADY_EXISTS = tillgången finns redan
ASSET_DOES_NOT_EXIST = tillgången finns inte
ASSET_DOES_NOT_MATCH_AT = tillgången matchar inte AT:s tillgång
ASSET_NOT_SPENDABLE = tillgången är inte förbrukbar
AT_ALREADY_EXISTS = AT finns redan
AT_IS_FINISHED = AT har avslutats
AT_UNKNOWN = okänd AT
BAN_EXISTS = förbud finns redan
BAN_UNKNOWN = okänt förbud
BANNED_FROM_GROUP = avstängd från gruppen
BUYER_ALREADY_OWNER = köparen är redan ägare
CLOCK_NOT_SYNCED = klockan inte synkroniserad
DUPLICATE_MESSAGE = adress skickade dubblettmeddelande
DUPLICATE_OPTION = dubblettalternativ
GROUP_ALREADY_EXISTS = grupp finns redan
GROUP_APPROVAL_DECIDED = gruppgodkännande redan beslutat
GROUP_APPROVAL_NOT_REQUIRED = gruppgodkännande krävs inte
GROUP_DOES_NOT_EXIST = grupp finns inte
GROUP_ID_MISMATCH = grupp-ID överensstämmer inte
GROUP_OWNER_CANNOT_LEAVE = gruppägare kan inte lämna gruppen
HAVE_EQUALS_WANT = ha-tillgång är detsamma som vill-tillgång
INCORRECT_NONCE = felaktig PoW nonce
INSUFFICIENT_FEE = otillräcklig avgift
INVALID_ADDRESS = ogiltig adress
INVALID_AMOUNT = ogiltigt belopp
INVALID_ASSET_OWNER = ogiltig tillgångsägare
INVALID_AT_TRANSACTION = ogiltig AT-transaktion
INVALID_AT_TYPE_LENGTH = ogiltig AT-typlängd
INVALID_BUT_OK = ogiltig men OK
INVALID_CREATION_BYTES = ogiltiga skapande bytes
INVALID_DATA_LENGTH = ogiltig datalängd
INVALID_DESCRIPTION_LENGTH = ogiltig beskrivningslängd
INVALID_GROUP_APPROVAL_THRESHOLD = ogiltig tröskel för gruppgodkännande
INVALID_GROUP_BLOCK_DELAY = ogiltig grupp-godkännande fördröjning
INVALID_GROUP_ID = ogiltigt grupp-ID
INVALID_GROUP_OWNER = ogiltig gruppägare
INVALID_LIFETIME = ogiltig livstid
INVALID_NAME_LENGTH = ogiltig namnlängd
INVALID_NAME_OWNER = ogiltig namnägare
INVALID_OPTION_LENGTH = ogiltig alternativlängd
INVALID_OPTIONS_COUNT = ogiltigt antal alternativ
INVALID_ORDER_CREATOR = ogiltig orderskapare
INVALID_PAYMENTS_COUNT = ogiltiga antal betalningar
INVALID_PUBLIC_KEY = ogiltig offentlig nyckel
INVALID_QUANTITY = ogiltig kvantitet
INVALID_REFERENCE = ogiltig referens
INVALID_RETURN = ogiltig retur
INVALID_REWARD_SHARE_PERCENT = ogiltig belöningsandelsprocent
INVALID_SELLER = ogiltig säljare
INVALID_TAGS_LENGTH = ogiltig 'tagg'-längd
INVALID_TIMESTAMP_SIGNATURE = ogiltig tidsstämpelsignatur
INVALID_TX_GROUP_ID = ogiltigt transaktionsgrupp-ID
INVALID_VALUE_LENGTH = ogiltig 'värdes'-längd
INVITE_UNKNOWN = okänd gruppinbjudan
JOIN_REQUEST_EXISTS = gruppanslutning finns redan
MAXIMUM_REWARD_SHARES = redan vid maximalt antal belöningsandelar för detta konto
MISSING_CREATOR = saknad skapare
MULTIPLE_NAMES_FORBIDDEN = flera registrerade namn per konto är förbjudet
NAME_ALREADY_FOR_SALE = namn redan till salu
NAME_ALREADY_REGISTERED = namn redan registrerat
NAME_BLOCKED = detta namn är blockerat
NAME_DOES_NOT_EXIST = namnet finns inte
NAME_NOT_FOR_SALE = namnet är inte till salu
NAME_NOT_NORMALIZED = namn inte i Unicode 'normaliserad' form
NEGATIVE_AMOUNT = ogiltigt/negativt belopp
NEGATIVE_FEE = ogiltig/negativ avgift
NEGATIVE_PRICE = ogiltigt/negativt pris
NO_BALANCE = otillräcklig balans
NO_BLOCKCHAIN_LOCK = nodens blockchain för närvarande upptagen
NO_FLAG_PERMISSION = kontot har inte den behörigheten
NOT_GROUP_ADMIN = kontot är inte en gruppadministratör
NOT_GROUP_MEMBER = kontot är inte en gruppmedlem
NOT_MINTING_ACCOUNT = konto kan inte präglas
NOT_YET_RELEASED = funktionen ännu inte släppt
OK = OK
ORDER_ALREADY_CLOSED = handelsorder för tillgångar är redan stängd
ORDER_DOES_NOT_EXIST = handelsorder för tillgångar finns inte
POLL_ALREADY_EXISTS = omröstning finns redan
POLL_DOES_NOT_EXIST = omröstning finns inte
POLL_OPTION_DOES_NOT_EXIST = omröstningsalternativet finns inte
PUBLIC_KEY_UNKNOWN = offentlig nyckel okänd
REWARD_SHARE_UNKNOWN = okänd belöningsandel
SELF_SHARE_EXISTS = egenandel (belöningsandel) finns redan
TIMESTAMP_TOO_NEW = tidsstämpeln är för ny
TIMESTAMP_TOO_OLD = tidsstämpeln är för gammal
TOO_MANY_UNCONFIRMED = kontot har för många obekräftade transaktioner som väntar
TRANSACTION_ALREADY_CONFIRMED = transaktionen har redan bekräftats
TRANSACTION_ALREADY_EXISTS = transaktionen finns redan
TRANSACTION_UNKNOWN = okänd transaktion
TX_GROUP_ID_MISMATCH = transaktionens grupp-ID matchar inte

View File

@ -0,0 +1,195 @@
#
ACCOUNT_ALREADY_EXISTS = 账号已存在
ACCOUNT_CANNOT_REWARD_SHARE = 账户不能创建奖励分享
ADDRESS_ABOVE_RATE_LIMIT = 账号已达到指定限制
ADDRESS_BLOCKED = 此账号已被封锁
ALREADY_GROUP_ADMIN = 你已是群组管理员
ALREADY_GROUP_MEMBER = 你已是群组的成员
ALREADY_VOTED_FOR_THAT_OPTION = 你已投票该选项
ASSET_ALREADY_EXISTS = 资产已存在
ASSET_DOES_NOT_EXIST = 资产不存在
ASSET_DOES_NOT_MATCH_AT = 选择的资产与AT资产不吻合
ASSET_NOT_SPENDABLE = 资产不能使用
AT_ALREADY_EXISTS = AT已存在
AT_IS_FINISHED = AT已完成
AT_UNKNOWN = 未知的AT
BAN_EXISTS = 禁止功能已存在
BAN_UNKNOWN = 未知的禁止动作
BANNED_FROM_GROUP = 已被群组禁止进入
BUYER_ALREADY_OWNER = 购买者已是名称拥有者
CLOCK_NOT_SYNCED = 节点时间未同步
DUPLICATE_MESSAGE = 账号传送重复信息
DUPLICATE_OPTION = 重复的选项
GROUP_ALREADY_EXISTS = 群组已存在
GROUP_APPROVAL_DECIDED = 已审批
GROUP_APPROVAL_NOT_REQUIRED = 不需审批
GROUP_DOES_NOT_EXIST = 群组不存在
GROUP_ID_MISMATCH = 群组ID不吻合
GROUP_OWNER_CANNOT_LEAVE = 群组拥有者不能离开群组
HAVE_EQUALS_WANT = 已存在相同的资产名称
INCORRECT_NONCE = 错误的PoW数值
INSUFFICIENT_FEE = 手续费不足
INVALID_ADDRESS = 无效的钱包地址
INVALID_AMOUNT = 无效的数量
INVALID_ASSET_OWNER = 无效的资产拥有者
INVALID_AT_TRANSACTION = 无效的AT交易
INVALID_AT_TYPE_LENGTH = 无效的AT种类长度
INVALID_BUT_OK = 无效但不影响
INVALID_CREATION_BYTES = 无效的创建字节
INVALID_DATA_LENGTH = 无效的数据长度
INVALID_DESCRIPTION_LENGTH = 无效的描述长度
INVALID_GROUP_APPROVAL_THRESHOLD = 无效的群组审批门槛
INVALID_GROUP_BLOCK_DELAY = 无效的群组审批延迟值
INVALID_GROUP_ID = 无效的群组ID
INVALID_GROUP_OWNER = 无效的群组创建者
INVALID_LIFETIME = 无效的周期
INVALID_NAME_LENGTH = 无效的名称长度
INVALID_NAME_OWNER = 无效的名称拥有者
INVALID_OPTION_LENGTH = 无效的选项长度
INVALID_OPTIONS_COUNT = 无效的选项
INVALID_ORDER_CREATOR = 无效的交易创建者
INVALID_PAYMENTS_COUNT = 无效的付款
INVALID_PUBLIC_KEY = 无效的公共密钥
INVALID_QUANTITY = 无效的数量
INVALID_REFERENCE = 无效的参考资料
INVALID_RETURN = 无效的回应
INVALID_REWARD_SHARE_PERCENT = 无效的奖励分享百分比
INVALID_SELLER = 无效的卖家
INVALID_TAGS_LENGTH = 无效的“标记”长度
INVALID_TIMESTAMP_SIGNATURE = 无效的时间戳签名
INVALID_TX_GROUP_ID = 无效的群组ID交易
INVALID_VALUE_LENGTH = 无效的数值长度
INVITE_UNKNOWN = 未知的群组邀请
JOIN_REQUEST_EXISTS = 加入群组的请求已存在
MAXIMUM_REWARD_SHARES = 奖励分享次数已达到上限
MISSING_CREATOR = 请填写创建者
MULTIPLE_NAMES_FORBIDDEN = 禁止注册多个名称
NAME_ALREADY_FOR_SALE = 名称可被购买
NAME_ALREADY_REGISTERED = 名称已被注册
NAME_BLOCKED = 此名称已被封锁
NAME_DOES_NOT_EXIST = 名称不存在
NAME_NOT_FOR_SALE = 名称为非卖品
NAME_NOT_NORMALIZED = 名称必须使用Unicode标准格式
NEGATIVE_AMOUNT = 无效数量或负数
NEGATIVE_FEE = 无效或负数的手续费
NEGATIVE_PRICE = 无效/负数标价
NO_BALANCE = 余额不足
NO_BLOCKCHAIN_LOCK = 节点现时忙碌
NO_FLAG_PERMISSION = 此账号没有该权限
NOT_GROUP_ADMIN = 此地址不是群组管理员
NOT_GROUP_MEMBER = 此地址不是群组成员
NOT_MINTING_ACCOUNT = 账号不能铸币
NOT_YET_RELEASED = 功能未启用
OK = 确定
ORDER_ALREADY_CLOSED = 资产交易已关闭
ORDER_DOES_NOT_EXIST = 资产交易不存在
POLL_ALREADY_EXISTS = 投票已存在
POLL_DOES_NOT_EXIST = 投票不存在
POLL_OPTION_DOES_NOT_EXIST = 投票选项不存在
PUBLIC_KEY_UNKNOWN = 未知的公共密钥
REWARD_SHARE_UNKNOWN = 未知的奖励分享
SELF_SHARE_EXISTS = 奖励分享已存在
TIMESTAMP_TOO_NEW = 时间戳太新
TIMESTAMP_TOO_OLD = 时间戳太久
TOO_MANY_UNCONFIRMED = 钱包有太多未确认的交易等待进行
TRANSACTION_ALREADY_CONFIRMED = 此交易已确认
TRANSACTION_ALREADY_EXISTS = 此交易已存在
TRANSACTION_UNKNOWN = 未知的交易
TX_GROUP_ID_MISMATCH = 群组ID交易不吻合

View File

@ -0,0 +1,195 @@
#
ACCOUNT_ALREADY_EXISTS = 賬號已存在
ACCOUNT_CANNOT_REWARD_SHARE = 賬戶不能創建獎勵分享
ADDRESS_ABOVE_RATE_LIMIT = 賬號已達到指定限制
ADDRESS_BLOCKED = 此賬號已被封鎖
ALREADY_GROUP_ADMIN = 你已是群組管理員
ALREADY_GROUP_MEMBER = 你已是群組的成員
ALREADY_VOTED_FOR_THAT_OPTION = 你已投票該選項
ASSET_ALREADY_EXISTS = 資產已存在
ASSET_DOES_NOT_EXIST = 資產不存在
ASSET_DOES_NOT_MATCH_AT = 選擇的資產與AT資產不吻合
ASSET_NOT_SPENDABLE = 資產不能使用
AT_ALREADY_EXISTS = AT已存在
AT_IS_FINISHED = AT已完成
AT_UNKNOWN = 未知的AT
BAN_EXISTS = 禁止功能已存在
BAN_UNKNOWN = 未知的禁止動作
BANNED_FROM_GROUP = 已被群組禁止進入
BUYER_ALREADY_OWNER = 購買者已是名稱擁有者
CLOCK_NOT_SYNCED = 節點時間未同步
DUPLICATE_MESSAGE = 賬號傳送重複信息
DUPLICATE_OPTION = 重複的選項
GROUP_ALREADY_EXISTS = 群組已存在
GROUP_APPROVAL_DECIDED = 已審批
GROUP_APPROVAL_NOT_REQUIRED = 不需審批
GROUP_DOES_NOT_EXIST = 群組不存在
GROUP_ID_MISMATCH = 群組ID不吻合
GROUP_OWNER_CANNOT_LEAVE = 群組擁有者不能離開群組
HAVE_EQUALS_WANT = 已存在相同的資產名稱
INCORRECT_NONCE = 錯誤的PoW數值
INSUFFICIENT_FEE = 手續費不足
INVALID_ADDRESS = 無效的錢包地址
INVALID_AMOUNT = 無效的數量
INVALID_ASSET_OWNER = 無效的資產擁有者
INVALID_AT_TRANSACTION = 無效的AT交易
INVALID_AT_TYPE_LENGTH = 無效的AT種類長度
INVALID_BUT_OK = 無效但不影響
INVALID_CREATION_BYTES = 無效的創建字節
INVALID_DATA_LENGTH = 無效的數據長度
INVALID_DESCRIPTION_LENGTH = 無效的描述長度
INVALID_GROUP_APPROVAL_THRESHOLD = 無效的群組審批門檻
INVALID_GROUP_BLOCK_DELAY = 無效的群組審批延遲值
INVALID_GROUP_ID = 無效的群組ID
INVALID_GROUP_OWNER = 無效的群組創建者
INVALID_LIFETIME = 無效的周期
INVALID_NAME_LENGTH = 無效的名稱長度
INVALID_NAME_OWNER = 無效的名稱擁有者
INVALID_OPTION_LENGTH = 無效的選項長度
INVALID_OPTIONS_COUNT = 無效的選項
INVALID_ORDER_CREATOR = 無效的交易創建者
INVALID_PAYMENTS_COUNT = 無效的付款
INVALID_PUBLIC_KEY = 無效的公共密鑰
INVALID_QUANTITY = 無效的數量
INVALID_REFERENCE = 無效的參考資料
INVALID_RETURN = 無效的回應
INVALID_REWARD_SHARE_PERCENT = 無效的獎勵分享百分比
INVALID_SELLER = 無效的賣家
INVALID_TAGS_LENGTH = 無效的“標記”長度
INVALID_TIMESTAMP_SIGNATURE = 無效的時間戳簽名
INVALID_TX_GROUP_ID = 無效的群組ID交易
INVALID_VALUE_LENGTH = 無效的數值長度
INVITE_UNKNOWN = 未知的群組邀請
JOIN_REQUEST_EXISTS = 加入群組的請求已存在
MAXIMUM_REWARD_SHARES = 獎勵分享次數已達到上限
MISSING_CREATOR = 請填寫創建者
MULTIPLE_NAMES_FORBIDDEN = 禁止註冊多個名稱
NAME_ALREADY_FOR_SALE = 名稱可被購買
NAME_ALREADY_REGISTERED = 名稱已被註冊
NAME_BLOCKED = 此名稱已被封鎖
NAME_DOES_NOT_EXIST = 名稱不存在
NAME_NOT_FOR_SALE = 名稱為非賣品
NAME_NOT_NORMALIZED = 名稱必須使用Unicode標準格式
NEGATIVE_AMOUNT = 無效數量或負數
NEGATIVE_FEE = 無效或負數的手續費
NEGATIVE_PRICE = 無效/負數標價
NO_BALANCE = 餘額不足
NO_BLOCKCHAIN_LOCK = 節點現時忙碌
NO_FLAG_PERMISSION = 此賬號沒有該權限
NOT_GROUP_ADMIN = 此地址不是群組管理員
NOT_GROUP_MEMBER = 此地址不是群組成員
NOT_MINTING_ACCOUNT = 賬號不能鑄幣
NOT_YET_RELEASED = 功能未啓用
OK = 確定
ORDER_ALREADY_CLOSED = 資產交易已關閉
ORDER_DOES_NOT_EXIST = 資產交易不存在
POLL_ALREADY_EXISTS = 投票已存在
POLL_DOES_NOT_EXIST = 投票不存在
POLL_OPTION_DOES_NOT_EXIST = 投票選項不存在
PUBLIC_KEY_UNKNOWN = 未知的公共密鑰
REWARD_SHARE_UNKNOWN = 未知的獎勵分享
SELF_SHARE_EXISTS = 獎勵分享已存在
TIMESTAMP_TOO_NEW = 時間戳太新
TIMESTAMP_TOO_OLD = 時間戳太久
TOO_MANY_UNCONFIRMED = 錢包有太多未確認的交易等待進行
TRANSACTION_ALREADY_CONFIRMED = 此交易已確認
TRANSACTION_ALREADY_EXISTS = 此交易已存在
TRANSACTION_UNKNOWN = 未知的交易
TX_GROUP_ID_MISMATCH = 群組ID交易不吻合

View File

@ -32,19 +32,40 @@ public class ByteArrayTests {
private static void fillMap(Map<ByteArray, String> map) {
for (byte[] testValue : testValues)
map.put(new ByteArray(testValue), String.valueOf(map.size()));
map.put(ByteArray.wrap(testValue), String.valueOf(map.size()));
}
private static byte[] dup(byte[] value) {
return Arrays.copyOf(value, value.length);
}
@Test
@SuppressWarnings("unlikely-arg-type")
public void testOriginatingIssue() {
Map<byte[], String> testMap = new HashMap<>();
byte[] someValue = testValues.get(3);
testMap.put(someValue, "someValue");
byte[] copiedValue = dup(someValue);
// Show that a byte[] with same values is not found
System.out.printf("byte[] hashCode: 0x%08x%n", someValue.hashCode());
System.out.printf("duplicated byte[] hashCode: 0x%08x%n", copiedValue.hashCode());
/*
* Unfortunately this doesn't work because HashMap::containsKey compares hashCodes first,
* followed by object references, and copiedValue.hashCode() will never match someValue.hashCode().
*/
assertFalse("byte[] with same values, but difference reference, not found", testMap.containsKey(copiedValue));
}
@Test
public void testSameContentReference() {
// Create two objects, which will have different references, but same content.
// Create two objects, which will have different references, but same content references.
byte[] testValue = testValues.get(0);
ByteArray ba1 = new ByteArray(testValue);
ByteArray ba2 = new ByteArray(testValue);
ByteArray ba1 = ByteArray.wrap(testValue);
ByteArray ba2 = ByteArray.wrap(testValue);
// Confirm JVM-assigned references are different
assertNotSame(ba1, ba2);
@ -58,13 +79,31 @@ public class ByteArrayTests {
}
@Test
public void testSameContentValue() {
// Create two objects, which will have different references, but same content.
public void testSameWrappedContentValue() {
// Create two objects, which will have different references, and different content references, but same content values.
byte[] testValue = testValues.get(0);
ByteArray ba1 = new ByteArray(testValue);
ByteArray ba1 = ByteArray.wrap(testValue);
byte[] copiedValue = dup(testValue);
ByteArray ba2 = new ByteArray(copiedValue);
ByteArray ba2 = ByteArray.wrap(copiedValue);
// Confirm JVM-assigned references are different
assertNotSame(ba1, ba2);
// Confirm "equals" works as intended
assertTrue("equals did not return true", ba1.equals(ba2));
assertEquals("ba1 not equal to ba2", ba1, ba2);
// Confirm "hashCode" results match
assertEquals("hashCodes do not match", ba1.hashCode(), ba2.hashCode());
}
@Test
public void testSameCopiedContentValue() {
// Create two objects, which will have different references, and different content references, but same content values.
byte[] testValue = testValues.get(0);
ByteArray ba1 = ByteArray.wrap(testValue);
ByteArray ba2 = ByteArray.copyOf(testValue);
// Confirm JVM-assigned references are different
assertNotSame(ba1, ba2);
@ -81,13 +120,17 @@ public class ByteArrayTests {
@SuppressWarnings("unlikely-arg-type")
public void testCompareBoxedWithPrimitive() {
byte[] testValue = testValues.get(0);
ByteArray ba1 = new ByteArray(testValue);
ByteArray wrappedByteArray = ByteArray.wrap(testValue);
byte[] copiedValue = dup(testValue);
ByteArray copiedByteArray = ByteArray.copyOf(copiedValue);
// Confirm "equals" works as intended
assertTrue("equals did not return true", ba1.equals(copiedValue));
assertEquals("boxed not equal to primitive", ba1, copiedValue);
assertTrue("equals did not return true", wrappedByteArray.equals(copiedValue));
assertEquals("boxed not equal to primitive", wrappedByteArray, copiedValue);
assertTrue("equals did not return true", copiedByteArray.equals(testValue));
assertEquals("boxed not equal to primitive", copiedByteArray, testValue);
}
@Test
@ -98,7 +141,7 @@ public class ByteArrayTests {
// Create new ByteArray object with an existing value.
byte[] copiedValue = dup(testValues.get(3));
ByteArray ba = new ByteArray(copiedValue);
ByteArray ba = ByteArray.wrap(copiedValue);
// Confirm object can be found in map
assertTrue("ByteArray not found in map", testMap.containsKey(ba));
@ -120,7 +163,7 @@ public class ByteArrayTests {
// Create new ByteArray object with an existing value.
byte[] copiedValue = dup(testValues.get(3));
ByteArray ba = new ByteArray(copiedValue);
ByteArray ba = ByteArray.wrap(copiedValue);
// Confirm object can be found in map
assertTrue("ByteArray not found in map", testMap.containsKey(ba));
@ -128,7 +171,7 @@ public class ByteArrayTests {
assertTrue("boxed not equal to primitive", ba.equals(copiedValue));
/*
* Unfortunately this doesn't work because TreeMap::containsKey(x) wants to cast x to
* Unfortunately this doesn't work because TreeMap::containsKey(byte[]) wants to cast byte[] to
* Comparable<? super ByteArray> and byte[] does not fit <? super ByteArray>
* so this throws a ClassCastException.
*/
@ -145,7 +188,7 @@ public class ByteArrayTests {
public void testArrayListContains() {
// Create new ByteArray object with an existing value.
byte[] copiedValue = dup(testValues.get(3));
ByteArray ba = new ByteArray(copiedValue);
ByteArray ba = ByteArray.wrap(copiedValue);
// Confirm object can be found in list
assertTrue("ByteArray not found in map", testValues.contains(ba));
@ -154,7 +197,7 @@ public class ByteArrayTests {
/*
* Unfortunately this doesn't work because ArrayList::contains performs
* copiedValue.equals(x) for each x in testValues, and byte[].equals()
* copiedValue.equals(byte[]) for each byte[] in testValues, and byte[].equals()
* simply compares object references, so will never match any ByteArray.
*/
assertFalse("Primitive shouldn't be found in ArrayList", testValues.contains(copiedValue));
@ -163,23 +206,25 @@ public class ByteArrayTests {
@Test
public void debugBoxedVersusPrimitive() {
byte[] testValue = testValues.get(0);
ByteArray ba1 = new ByteArray(testValue);
ByteArray ba1 = ByteArray.wrap(testValue);
byte[] copiedValue = dup(testValue);
System.out.println(String.format("Primitive hashCode: 0x%08x", testValue.hashCode()));
System.out.println(String.format("Boxed hashCode: 0x%08x", ba1.hashCode()));
System.out.println(String.format("Duplicated primitive hashCode: 0x%08x", copiedValue.hashCode()));
System.out.printf("Primitive hashCode: 0x%08x%n", testValue.hashCode());
System.out.printf("Boxed hashCode: 0x%08x%n", ba1.hashCode());
System.out.printf("Duplicated primitive hashCode: 0x%08x%n", copiedValue.hashCode());
}
@Test
public void testCompareTo() {
ByteArray testValue0 = new ByteArray(new byte[] { 0x00 });
ByteArray testValue1 = new ByteArray(new byte[] { 0x01 });
ByteArray testValue0 = ByteArray.wrap(new byte[] { 0x00 });
ByteArray testValue1 = ByteArray.wrap(new byte[] { 0x01 });
ByteArray testValueFf = ByteArray.wrap(new byte[] {(byte) 0xFF});
assertEquals("0 should be the same as 0", 0, testValue0.compareTo(testValue0));
assertEquals("0 should be before 1", -1, testValue0.compareTo(testValue1));
assertEquals("1 should be after 0", 1, testValue1.compareTo(testValue0));
assertTrue("0 should be the same as 0", testValue0.compareTo(testValue0) == 0);
assertTrue("0 should be before 1", testValue0.compareTo(testValue1) < 0);
assertTrue("1 should be after 0", testValue1.compareTo(testValue0) > 0);
assertTrue("FF should be after 0", testValueFf.compareTo(testValue0) > 0);
}
}

View File

@ -78,6 +78,118 @@ public class ArbitraryTransactionMetadataTests extends Common {
}
}
@Test
public void testSingleChunkWithMetadata() throws DataException, IOException, MissingDataException {
try (final Repository repository = RepositoryManager.getRepository()) {
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
String publicKey58 = Base58.encode(alice.getPublicKey());
String name = "TEST"; // Can be anything for this test
String identifier = null; // Not used for this test
Service service = Service.ARBITRARY_DATA;
int chunkSize = 1000;
int dataLength = 10; // Actual data length will be longer due to encryption
String title = "Test title";
String description = "Test description";
List<String> tags = Arrays.asList("Test", "tag", "another tag");
Category category = Category.QORTAL;
// Register the name to Alice
RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, "");
transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(transactionData.getTimestamp()));
TransactionUtils.signAndMint(repository, transactionData, alice);
// Create PUT transaction
Path path1 = ArbitraryUtils.generateRandomDataPath(dataLength);
ArbitraryDataFile arbitraryDataFile = ArbitraryUtils.createAndMintTxn(repository, publicKey58, path1, name,
identifier, ArbitraryTransactionData.Method.PUT, service, alice, chunkSize,
title, description, tags, category);
// Check the chunk count is correct
assertEquals(0, arbitraryDataFile.chunkCount());
// Check the metadata is correct
assertEquals(title, arbitraryDataFile.getMetadata().getTitle());
assertEquals(description, arbitraryDataFile.getMetadata().getDescription());
assertEquals(tags, arbitraryDataFile.getMetadata().getTags());
assertEquals(category, arbitraryDataFile.getMetadata().getCategory());
// Now build the latest data state for this name
ArbitraryDataReader arbitraryDataReader = new ArbitraryDataReader(name, ResourceIdType.NAME, service, identifier);
arbitraryDataReader.loadSynchronously(true);
Path initialLayerPath = arbitraryDataReader.getFilePath();
ArbitraryDataDigest initialLayerDigest = new ArbitraryDataDigest(initialLayerPath);
initialLayerDigest.compute();
// Its directory hash should match the original directory hash
ArbitraryDataDigest path1Digest = new ArbitraryDataDigest(path1);
path1Digest.compute();
assertEquals(path1Digest.getHash58(), initialLayerDigest.getHash58());
}
}
@Test
public void testSingleNonLocalChunkWithMetadata() throws DataException, IOException, MissingDataException {
try (final Repository repository = RepositoryManager.getRepository()) {
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
String publicKey58 = Base58.encode(alice.getPublicKey());
String name = "TEST"; // Can be anything for this test
String identifier = null; // Not used for this test
Service service = Service.ARBITRARY_DATA;
int chunkSize = 1000;
int dataLength = 10; // Actual data length will be longer due to encryption
String title = "Test title";
String description = "Test description";
List<String> tags = Arrays.asList("Test", "tag", "another tag");
Category category = Category.QORTAL;
// Register the name to Alice
RegisterNameTransactionData transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name, "");
transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(transactionData.getTimestamp()));
TransactionUtils.signAndMint(repository, transactionData, alice);
// Create PUT transaction
Path path1 = ArbitraryUtils.generateRandomDataPath(dataLength);
ArbitraryDataFile arbitraryDataFile = ArbitraryUtils.createAndMintTxn(repository, publicKey58, path1, name,
identifier, ArbitraryTransactionData.Method.PUT, service, alice, chunkSize,
title, description, tags, category);
// Check the chunk count is correct
assertEquals(0, arbitraryDataFile.chunkCount());
// Check the metadata is correct
assertEquals(title, arbitraryDataFile.getMetadata().getTitle());
assertEquals(description, arbitraryDataFile.getMetadata().getDescription());
assertEquals(tags, arbitraryDataFile.getMetadata().getTags());
assertEquals(category, arbitraryDataFile.getMetadata().getCategory());
// Delete the file, to simulate that it hasn't been fetched from the network yet
arbitraryDataFile.delete();
boolean missingDataExceptionCaught = false;
boolean ioExceptionCaught = false;
// Now build the latest data state for this name
ArbitraryDataReader arbitraryDataReader = new ArbitraryDataReader(name, ResourceIdType.NAME, service, identifier);
try {
arbitraryDataReader.loadSynchronously(true);
}
catch (MissingDataException e) {
missingDataExceptionCaught = true;
}
catch (IOException e) {
ioExceptionCaught = true;
}
// We expect a MissingDataException, not an IOException.
// This is because MissingDataException means that the core has correctly identified a file is missing,
// whereas an IOException would be due to trying to build without first having everything that is needed.
assertTrue(missingDataExceptionCaught);
assertFalse(ioExceptionCaught);
}
}
@Test
public void testDescriptiveMetadata() throws DataException, IOException, MissingDataException {
try (final Repository repository = RepositoryManager.getRepository()) {

View File

@ -55,7 +55,7 @@ public class TradeBotPresenceTests {
@Test
public void testEnforceLatestTimestamp() {
ByteArray pubkeyByteArray = ByteArray.of("publickey".getBytes(StandardCharsets.UTF_8));
ByteArray pubkeyByteArray = ByteArray.wrap("publickey".getBytes(StandardCharsets.UTF_8));
Map<ByteArray, Long> timestampsByPublicKey = new HashMap<>();

View File

@ -2,21 +2,22 @@ package org.qortal.test.naming;
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import org.apache.commons.lang3.reflect.FieldUtils;
import org.junit.Before;
import org.junit.Test;
import org.qortal.account.PrivateKeyAccount;
import org.qortal.api.AmountTypeAdapter;
import org.qortal.block.BlockChain;
import org.qortal.block.BlockChain.*;
import org.qortal.controller.BlockMinter;
import org.qortal.data.transaction.*;
import org.qortal.naming.Name;
import org.qortal.repository.DataException;
import org.qortal.repository.Repository;
import org.qortal.repository.RepositoryManager;
import org.qortal.settings.Settings;
import org.qortal.test.common.*;
import org.qortal.test.common.transaction.TestTransaction;
import org.qortal.transaction.RegisterNameTransaction;
@ -325,17 +326,20 @@ public class MiscTests extends Common {
// test name registration fee increase
@Test
public void testRegisterNameFeeIncrease() throws DataException, IllegalAccessException {
public void testRegisterNameFeeIncrease() throws Exception {
try (final Repository repository = RepositoryManager.getRepository()) {
// Set nameRegistrationUnitFeeTimestamp to a time far in the future
long futureTimestamp = 9999999999999L; // 20 Nov 2286
FieldUtils.writeField(BlockChain.getInstance(), "nameRegistrationUnitFeeTimestamp", futureTimestamp, true);
assertEquals(futureTimestamp, BlockChain.getInstance().getNameRegistrationUnitFeeTimestamp());
UnitFeesByTimestamp futureFeeIncrease = new UnitFeesByTimestamp();
futureFeeIncrease.timestamp = 9999999999999L; // 20 Nov 2286
futureFeeIncrease.fee = new AmountTypeAdapter().unmarshal("5");
FieldUtils.writeField(BlockChain.getInstance(), "nameRegistrationUnitFees", Arrays.asList(futureFeeIncrease), true);
assertEquals(futureFeeIncrease.fee, BlockChain.getInstance().getNameRegistrationUnitFeeAtTimestamp(futureFeeIncrease.timestamp));
// Validate unit fees pre and post timestamp
assertEquals(10000000, BlockChain.getInstance().getUnitFee()); // 0.1 QORT
assertEquals(500000000, BlockChain.getInstance().getNameRegistrationUnitFee()); // 5 QORT
assertEquals(10000000, BlockChain.getInstance().getNameRegistrationUnitFeeAtTimestamp(futureFeeIncrease.timestamp - 1)); // 0.1 QORT
assertEquals(500000000, BlockChain.getInstance().getNameRegistrationUnitFeeAtTimestamp(futureFeeIncrease.timestamp)); // 5 QORT
// Register-name
PrivateKeyAccount alice = Common.getTestAccount(repository, "alice");
@ -349,8 +353,11 @@ public class MiscTests extends Common {
// Set nameRegistrationUnitFeeTimestamp to a time in the past
Long now = NTP.getTime();
FieldUtils.writeField(BlockChain.getInstance(), "nameRegistrationUnitFeeTimestamp", now - 1000L, true);
assertEquals(now - 1000L, BlockChain.getInstance().getNameRegistrationUnitFeeTimestamp());
UnitFeesByTimestamp pastFeeIncrease = new UnitFeesByTimestamp();
pastFeeIncrease.timestamp = now - 1000L; // 1 second ago
pastFeeIncrease.fee = new AmountTypeAdapter().unmarshal("3");
FieldUtils.writeField(BlockChain.getInstance(), "nameRegistrationUnitFees", Arrays.asList(pastFeeIncrease), true);
assertEquals(pastFeeIncrease.fee, BlockChain.getInstance().getNameRegistrationUnitFeeAtTimestamp(pastFeeIncrease.timestamp));
// Register a different name
// First try with the default unit fee
@ -365,7 +372,7 @@ public class MiscTests extends Common {
// Now try using correct fee (this is specified by the UI, via the /transaction/unitfee API endpoint)
transactionData = new RegisterNameTransactionData(TestTransaction.generateBase(alice), name2, data);
transactionData.setFee(new RegisterNameTransaction(null, null).getUnitFee(transactionData.getTimestamp()));
assertEquals(500000000L, transactionData.getFee().longValue());
assertEquals(300000000L, transactionData.getFee().longValue());
transaction = Transaction.fromData(repository, transactionData);
transaction.sign(alice);
result = transaction.importAsUnconfirmed();

View File

@ -5,7 +5,9 @@
"maxBlockSize": 2097152,
"maxBytesPerUnitFee": 1024,
"unitFee": "0.1",
"nameRegistrationUnitFee": "5",
"nameRegistrationUnitFees": [
{ "timestamp": 1645372800000, "fee": "5" }
],
"requireGroupForApproval": false,
"minAccountLevelToRewardShare": 5,
"maxRewardSharesPerMintingAccount": 20,

View File

@ -5,7 +5,9 @@
"maxBlockSize": 2097152,
"maxBytesPerUnitFee": 1024,
"unitFee": "0.1",
"nameRegistrationUnitFee": "5",
"nameRegistrationUnitFees": [
{ "timestamp": 1645372800000, "fee": "5" }
],
"requireGroupForApproval": false,
"minAccountLevelToRewardShare": 5,
"maxRewardSharesPerMintingAccount": 20,

View File

@ -5,7 +5,9 @@
"maxBlockSize": 2097152,
"maxBytesPerUnitFee": 1024,
"unitFee": "0.1",
"nameRegistrationUnitFee": "5",
"nameRegistrationUnitFees": [
{ "timestamp": 1645372800000, "fee": "5" }
],
"requireGroupForApproval": false,
"minAccountLevelToRewardShare": 5,
"maxRewardSharesPerMintingAccount": 20,

View File

@ -5,7 +5,9 @@
"maxBlockSize": 2097152,
"maxBytesPerUnitFee": 1024,
"unitFee": "0.1",
"nameRegistrationUnitFee": "5",
"nameRegistrationUnitFees": [
{ "timestamp": 1645372800000, "fee": "5" }
],
"requireGroupForApproval": false,
"minAccountLevelToRewardShare": 5,
"maxRewardSharesPerMintingAccount": 20,

View File

@ -5,7 +5,9 @@
"maxBlockSize": 2097152,
"maxBytesPerUnitFee": 1024,
"unitFee": "0.1",
"nameRegistrationUnitFee": "5",
"nameRegistrationUnitFees": [
{ "timestamp": 1645372800000, "fee": "5" }
],
"requireGroupForApproval": false,
"minAccountLevelToRewardShare": 5,
"maxRewardSharesPerMintingAccount": 20,

View File

@ -5,7 +5,9 @@
"maxBlockSize": 2097152,
"maxBytesPerUnitFee": 1024,
"unitFee": "0.1",
"nameRegistrationUnitFee": "5",
"nameRegistrationUnitFees": [
{ "timestamp": 1645372800000, "fee": "5" }
],
"requireGroupForApproval": false,
"minAccountLevelToRewardShare": 5,
"maxRewardSharesPerMintingAccount": 20,

View File

@ -5,7 +5,9 @@
"maxBlockSize": 2097152,
"maxBytesPerUnitFee": 1024,
"unitFee": "0.1",
"nameRegistrationUnitFee": "5",
"nameRegistrationUnitFees": [
{ "timestamp": 1645372800000, "fee": "5" }
],
"requireGroupForApproval": false,
"minAccountLevelToRewardShare": 5,
"maxRewardSharesPerMintingAccount": 20,

View File

@ -5,7 +5,9 @@
"maxBlockSize": 2097152,
"maxBytesPerUnitFee": 1024,
"unitFee": "0.1",
"nameRegistrationUnitFee": "5",
"nameRegistrationUnitFees": [
{ "timestamp": 1645372800000, "fee": "5" }
],
"requireGroupForApproval": false,
"minAccountLevelToRewardShare": 5,
"maxRewardSharesPerMintingAccount": 20,