forked from Qortal/qortal
Merge remote-tracking branch 'qortal/master'
This commit is contained in:
commit
037eb8a163
@ -17,10 +17,10 @@
|
||||
<ROW Property="Manufacturer" Value="Qortal"/>
|
||||
<ROW Property="MsiLogging" MultiBuildValue="DefaultBuild:vp"/>
|
||||
<ROW Property="NTP_GOOD" Value="false"/>
|
||||
<ROW Property="ProductCode" Value="1033:{D45BD9F0-1D22-46A2-9990-8BB3598D8AD3} 1049:{21BCBDEC-4BF2-41D6-9426-E906042FD61F} 2052:{95F43BE3-58B4-4422-BCCF-D77F4BBFD7A4} 2057:{4C4D611E-3AF5-4216-952A-CA9E5EC32C19} " Type="16"/>
|
||||
<ROW Property="ProductCode" Value="1033:{51EFA0B0-C304-4043-AF6D-2C17C783A998} 1049:{C4662BB2-A247-426E-A128-B7DBD12ECE78} 2052:{1AF44520-C8AB-4261-BCFE-EEA941439718} 2057:{C096EB6A-F43F-45EE-921C-D20F9B993E80} " Type="16"/>
|
||||
<ROW Property="ProductLanguage" Value="2057"/>
|
||||
<ROW Property="ProductName" Value="Qortal"/>
|
||||
<ROW Property="ProductVersion" Value="2.1.2" Type="32"/>
|
||||
<ROW Property="ProductVersion" Value="2.1.3" Type="32"/>
|
||||
<ROW Property="RECONFIG_NTP" Value="true"/>
|
||||
<ROW Property="REMOVE_BLOCKCHAIN" Value="YES" Type="4"/>
|
||||
<ROW Property="REPAIR_BLOCKCHAIN" Value="YES" Type="4"/>
|
||||
@ -212,7 +212,7 @@
|
||||
<ROW Component="ADDITIONAL_LICENSE_INFO_71" ComponentId="{12A3ADBE-BB7A-496C-8869-410681E6232F}" Directory_="jdk.zipfs_Dir" Attributes="0" KeyPath="ADDITIONAL_LICENSE_INFO_71" Type="0"/>
|
||||
<ROW Component="ADDITIONAL_LICENSE_INFO_8" ComponentId="{D53AD95E-CF96-4999-80FC-5812277A7456}" Directory_="java.naming_Dir" Attributes="0" KeyPath="ADDITIONAL_LICENSE_INFO_8" Type="0"/>
|
||||
<ROW Component="ADDITIONAL_LICENSE_INFO_9" ComponentId="{6B7EA9B0-5D17-47A8-B78C-FACE86D15E01}" Directory_="java.net.http_Dir" Attributes="0" KeyPath="ADDITIONAL_LICENSE_INFO_9" Type="0"/>
|
||||
<ROW Component="AI_CustomARPName" ComponentId="{5109CB00-40C0-499E-875B-9364F2075410}" Directory_="APPDIR" Attributes="260" KeyPath="DisplayName" Options="1"/>
|
||||
<ROW Component="AI_CustomARPName" ComponentId="{9A243E53-8FC9-4854-B6E2-937493305BB4}" Directory_="APPDIR" Attributes="260" KeyPath="DisplayName" Options="1"/>
|
||||
<ROW Component="AI_ExePath" ComponentId="{3644948D-AE0B-41BB-9FAF-A79E70490A08}" Directory_="APPDIR" Attributes="260" KeyPath="AI_ExePath"/>
|
||||
<ROW Component="APPDIR" ComponentId="{680DFDDE-3FB4-47A5-8FF5-934F576C6F91}" Directory_="APPDIR" Attributes="0"/>
|
||||
<ROW Component="AccessBridgeCallbacks.h" ComponentId="{288055D1-1062-47A3-AA44-5601B4E38AED}" Directory_="bridge_Dir" Attributes="0" KeyPath="AccessBridgeCallbacks.h" Type="0"/>
|
||||
|
2
pom.xml
2
pom.xml
@ -3,7 +3,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.qortal</groupId>
|
||||
<artifactId>qortal</artifactId>
|
||||
<version>2.1.2</version>
|
||||
<version>2.1.3</version>
|
||||
<packaging>jar</packaging>
|
||||
<properties>
|
||||
<skipTests>true</skipTests>
|
||||
|
@ -422,10 +422,12 @@ public class Controller extends Thread {
|
||||
return; // Not System.exit() so that GUI can display error
|
||||
}
|
||||
|
||||
// Rebuild Names table and check database integrity
|
||||
// Rebuild Names table and check database integrity (if enabled)
|
||||
NamesDatabaseIntegrityCheck namesDatabaseIntegrityCheck = new NamesDatabaseIntegrityCheck();
|
||||
namesDatabaseIntegrityCheck.rebuildAllNames();
|
||||
namesDatabaseIntegrityCheck.runIntegrityCheck();
|
||||
if (Settings.getInstance().isNamesIntegrityCheckEnabled()) {
|
||||
namesDatabaseIntegrityCheck.runIntegrityCheck();
|
||||
}
|
||||
|
||||
LOGGER.info("Validating blockchain");
|
||||
try {
|
||||
|
@ -187,7 +187,12 @@ public class NamesDatabaseIntegrityCheck {
|
||||
// The old name will then be unregistered, or re-registered.
|
||||
// FUTURE: check database integrity for names that have been updated and then the original name re-registered
|
||||
else if (Objects.equals(updateNameTransactionData.getName(), registeredName)) {
|
||||
NameData newNameData = repository.getNameRepository().fromName(updateNameTransactionData.getNewName());
|
||||
String newName = updateNameTransactionData.getNewName();
|
||||
if (newName == null || newName.length() == 0) {
|
||||
// If new name is blank (or maybe null, just to be safe), it means that it stayed the same
|
||||
newName = registeredName;
|
||||
}
|
||||
NameData newNameData = repository.getNameRepository().fromName(newName);
|
||||
if (!Objects.equals(creator.getAddress(), newNameData.getOwner())) {
|
||||
LOGGER.info("Error: registered name {} is owned by {}, but it should be {}",
|
||||
updateNameTransactionData.getNewName(), newNameData.getOwner(), creator.getAddress());
|
||||
|
@ -173,6 +173,10 @@ public class Settings {
|
||||
private boolean bootstrap = true;
|
||||
|
||||
|
||||
/** Registered names integrity check */
|
||||
private boolean namesIntegrityCheckEnabled = false;
|
||||
|
||||
|
||||
// Peer-to-peer related
|
||||
private boolean isTestNet = false;
|
||||
/** Port number for inbound peer-to-peer connections. */
|
||||
@ -805,6 +809,10 @@ public class Settings {
|
||||
return this.blockPruneBatchSize;
|
||||
}
|
||||
|
||||
public boolean isNamesIntegrityCheckEnabled() {
|
||||
return this.namesIntegrityCheckEnabled;
|
||||
}
|
||||
|
||||
|
||||
public boolean isArchiveEnabled() {
|
||||
if (this.topOnly) {
|
||||
|
55
src/main/resources/i18n/ApiError_fr.properties
Normal file
55
src/main/resources/i18n/ApiError_fr.properties
Normal file
@ -0,0 +1,55 @@
|
||||
### Commun ###
|
||||
JSON = échec de l'analyse du message JSON
|
||||
INSUFFICIENT_BALANCE = balance insuffisante
|
||||
UNAUTHORIZED = appel de l’API 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 ###
|
||||
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
|
||||
TRANSACTION_INVALID = transaction invalide: %s (%s)
|
||||
|
||||
### Nommage ###
|
||||
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 ###
|
||||
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 ###
|
||||
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
|
41
src/main/resources/i18n/SysTray_fr.properties
Normal file
41
src/main/resources/i18n/SysTray_fr.properties
Normal file
@ -0,0 +1,41 @@
|
||||
AUTO_UPDATE = Mise à jour automatique
|
||||
|
||||
APPLYING_UPDATE_AND_RESTARTING = Application de la mise à jour automatique et redémarrage...
|
||||
|
||||
BLOCK_HEIGHT = hauteur
|
||||
|
||||
BUILD_VERSION = Numéro de version
|
||||
|
||||
CHECK_TIME_ACCURACY = Vérifier l'heure
|
||||
|
||||
CONNECTING = Connexion en cours
|
||||
|
||||
CONNECTION = connexion
|
||||
|
||||
CONNECTIONS = connexions
|
||||
|
||||
CREATING_BACKUP_OF_DB_FILES = Création d'une sauvegarde des fichiers de la base de données...
|
||||
|
||||
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
|
||||
|
||||
EXIT = Quitter
|
||||
|
||||
MINTING_DISABLED = NE mint PAS
|
||||
|
||||
MINTING_ENABLED = \u2714 Minting
|
||||
|
||||
OPEN_UI = Ouvrir l'interface
|
||||
|
||||
PERFORMING_DB_CHECKPOINT = Enregistrement des modifications de base de données non validées...
|
||||
|
||||
PERFORMING_DB_MAINTENANCE = Entrain d'effectuer la maintenance programmée...
|
||||
|
||||
SYNCHRONIZE_CLOCK = Mettre l'heure à jour
|
||||
|
||||
SYNCHRONIZING_BLOCKCHAIN = Synchronisation
|
||||
|
||||
SYNCHRONIZING_CLOCK = Synchronisation de l'heure
|
151
src/main/resources/i18n/TransactionValidity_fr.properties
Normal file
151
src/main/resources/i18n/TransactionValidity_fr.properties
Normal file
@ -0,0 +1,151 @@
|
||||
OK = OK
|
||||
|
||||
INVALID_ADDRESS = adresse invalide
|
||||
|
||||
NEGATIVE_AMOUNT = montant invalide/négatif
|
||||
|
||||
NEGATIVE_FEE = frais invalides/négatifs
|
||||
|
||||
NO_BALANCE = solde insuffisant
|
||||
|
||||
INVALID_REFERENCE = référence invalide
|
||||
|
||||
INVALID_NAME_LENGTH = longueur de nom invalide
|
||||
|
||||
INVALID_VALUE_LENGTH = longueur de 'valeur' invalide
|
||||
|
||||
NAME_ALREADY_REGISTERED = le nom est déjà enregistré
|
||||
|
||||
NAME_DOES_NOT_EXIST = le nom n'existe pas
|
||||
|
||||
INVALID_NAME_OWNER = le nom du propriétaire est invalide
|
||||
|
||||
NAME_ALREADY_FOR_SALE = le nom est déjà en vente
|
||||
|
||||
NAME_NOT_FOR_SALE = le nom n'est pas à vendre
|
||||
|
||||
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
|
||||
|
||||
POLL_ALREADY_EXISTS = le scrutin existe déjà
|
||||
|
||||
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
|
||||
|
||||
REWARD_SHARE_UNKNOWN = partage de récompense inconnu
|
||||
|
||||
INVALID_REWARD_SHARE_PERCENT = pourcentage du partage de récompense invalide
|
||||
|
||||
PUBLIC_KEY_UNKNOWN = clé publique inconnue
|
||||
|
||||
INVALID_PUBLIC_KEY = clé publique invalide
|
||||
|
||||
AT_UNKNOWN = AT inconnu
|
||||
|
||||
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_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
|
Loading…
Reference in New Issue
Block a user