<TS language="nl" version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
    <name>AboutDialog</name>
    <message>
        <source>About Lambocoin</source>
        <translation>Over Lambocoin</translation>
    </message>
    <message>
        <source>Lambocoin version</source>
        <translation>
Lambocoin
</translation>
    </message>
    </context>
<context>
    <name>AddressBookPage</name>
    <message>
        <source>Address Book</source>
        <translation>Adresboek</translation>
    </message>
    <message>
        <source>These are your Lambocoin addresses for receiving payments.  You may want to give a different one to each sender so you can keep track of who is paying you.</source>
        <translation>Dit zijn je Lambocoin adressen om bedragen te ontvangen. Je kan een verschillend adres opgeven voor iedere geaddresseerde zodat je kan achterhalen wie jouw betaalt.</translation>
    </message>
    <message>
        <source>Double-click to edit address or label</source>
        <translation>Dubbelklik om adres of label te wijzigen</translation>
    </message>
    <message>
        <source>Create a new address</source>
        <translation>Maak een nieuw adres aan</translation>
    </message>
    <message>
        <source>Copy the currently selected address to the system clipboard</source>
        <translation>Kopieer het huidig geselecteerde adres naar het klembord</translation>
    </message>
    <message>
        <source>&New Address</source>
        <translation>&Nieuw Adres</translation>
    </message>
    <message>
        <source>&Copy Address</source>
        <translation>&Kopieer Adres</translation>
    </message>
    <message>
        <source>Show &QR Code</source>
        <translation>Toon &QR-Code</translation>
    </message>
    <message>
        <source>Sign a message to prove you own this address</source>
        <translation>Onderteken een bericht om te bewijzen dat u dit adres bezit</translation>
    </message>
    <message>
        <source>&Sign Message</source>
        <translation>&Onderteken Bericht</translation>
    </message>
    <message>
        <source>Delete the currently selected address from the list. Only sending addresses can be deleted.</source>
        <translation>Verwijder het huidige geselecteerde adres van de lijst. Alleen verzend-adressen kunnen verwijderd worden, niet uw ontvangstadressen.</translation>
    </message>
    <message>
        <source>&Delete</source>
        <translation>&Verwijder</translation>
    </message>
    <message>
        <source>Copy &Label</source>
        <translation>Kopieer &Label</translation>
    </message>
    <message>
        <source>&Edit</source>
        <translation>&Bewerken</translation>
    </message>
    <message>
        <source>Export Address Book Data</source>
        <translation>Exporteer Gegevens van het Adresboek</translation>
    </message>
    <message>
        <source>Comma separated file (*.csv)</source>
        <translation>Kommagescheiden bestand (*.csv)</translation>
    </message>
    <message>
        <source>Error exporting</source>
        <translation>Fout bij exporteren</translation>
    </message>
    <message>
        <source>Could not write to file %1.</source>
        <translation>Kon niet schrijven naar bestand %1.</translation>
    </message>
</context>
<context>
    <name>AddressTableModel</name>
    <message>
        <source>Label</source>
        <translation>Label</translation>
    </message>
    <message>
        <source>Address</source>
        <translation>Adres</translation>
    </message>
    <message>
        <source>(no label)</source>
        <translation>(geen label)</translation>
    </message>
    </context>
<context>
    <name>AskPassphraseDialog</name>
    <message>
        <source>Enter passphrase</source>
        <translation>Huidige wachtwoordzin</translation>
    </message>
    <message>
        <source>New passphrase</source>
        <translation>Nieuwe wachtwoordzin</translation>
    </message>
    <message>
        <source>Repeat new passphrase</source>
        <translation>Herhaal wachtwoordzin</translation>
    </message>
    <message>
        <source>Enter the new passphrase to the wallet.
Please use a passphrase of 10 or more random characters, or eight or more words.</source>
        <translation>Vul een nieuw wachtwoord in voor uw portemonnee.
 Gebruik een wachtwoord van 10 of meer lukrake karakters, of  acht of meer woorden . </translation>
    </message>
    <message>
        <source>Encrypt wallet</source>
        <translation>Versleutel portemonnee</translation>
    </message>
    <message>
        <source>This operation needs your wallet passphrase to unlock the wallet.</source>
        <translation>Deze operatie vereist uw portemonnee wachtwoordzin om de portemonnee te openen.</translation>
    </message>
    <message>
        <source>Unlock wallet</source>
        <translation>Open portemonnee</translation>
    </message>
    <message>
        <source>This operation needs your wallet passphrase to decrypt the wallet.</source>
        <translation>Deze operatie vereist uw portemonnee wachtwoordzin om de portemonnee te ontsleutelen</translation>
    </message>
    <message>
        <source>Decrypt wallet</source>
        <translation>Ontsleutel portemonnee</translation>
    </message>
    <message>
        <source>Change passphrase</source>
        <translation>Wijzig de wachtwoordzin</translation>
    </message>
    <message>
        <source>Confirm wallet encryption</source>
        <translation>Bevestig versleuteling van de portemonnee</translation>
    </message>
    <message>
        <source>Wallet encrypted</source>
        <translation>Portemonnee versleuteld</translation>
    </message>
    <message>
        <source>Warning: The Caps Lock key is on.</source>
        <translation>Waarschuwing: De Caps-Lock-toets staat aan.</translation>
    </message>
    <message>
        <source>Wallet encryption failed</source>
        <translation>Portemonneeversleuteling mislukt</translation>
    </message>
    <message>
        <source>WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR PAYCOINS!
Are you sure you wish to encrypt your wallet?</source>
        <translation>WAARSCHUWING: Indien je de portemonnee versleutelt en je wachtwoordzin verliest, dan verlies je  AL JE PAYCOINS!
Weet je zeker dat je de portemonee wilt versleutelen?</translation>
    </message>
    <message>
        <source>Lambocoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your Lambocoins from being stolen by malware infecting your computer.</source>
        <translation>Lambocoin sluit nu af om het versleutelings proces te beeindigen. Onthoud dat het versleutelen van de portemonnee je Lambocoins niet volledig kan beschermen tegen schadelijke software op een geinfecteerde computer</translation>
    </message>
    <message>
        <source>Wallet encryption failed due to an internal error. Your wallet was not encrypted.</source>
        <translation>Portemonneeversleuteling mislukt door een interne fout. Uw portemonnee is niet versleuteld.</translation>
    </message>
    <message>
        <source>The supplied passphrases do not match.</source>
        <translation>De opgegeven wachtwoordzin is niet correct</translation>
    </message>
    <message>
        <source>Wallet unlock failed</source>
        <translation>Portemonnee openen mislukt</translation>
    </message>
    <message>
        <source>The passphrase entered for the wallet decryption was incorrect.</source>
        <translation>De opgegeven wachtwoordzin voor de portemonnee-ontsleuteling is niet correct.</translation>
    </message>
    <message>
        <source>Wallet decryption failed</source>
        <translation>Portemonnee-ontsleuteling mislukt</translation>
    </message>
    <message>
        <source>Wallet passphrase was successfully changed.</source>
        <translation>Portemonnee wachtwoordzin is succesvol gewijzigd</translation>
    </message>
</context>
<context>
    <name>BitcoinGUI</name>
    <message>
        <source>&Overview</source>
        <translation>&Overzicht</translation>
    </message>
    <message>
        <source>Show general overview of wallet</source>
        <translation>Toon algemeen overzicht van de portemonnee</translation>
    </message>
    <message>
        <source>&Transactions</source>
        <translation>&Transacties</translation>
    </message>
    <message>
        <source>Browse transaction history</source>
        <translation>Blader door transactieverleden</translation>
    </message>
    <message>
        <source>&Address Book</source>
        <translation>&Adresboek</translation>
    </message>
    <message>
        <source>Edit the list of stored addresses and labels</source>
        <translation>Bewerk de lijst van opgeslagen adressen en labels</translation>
    </message>
    <message>
        <source>&Receive coins</source>
        <translation>&Ontvang munten</translation>
    </message>
    <message>
        <source>Show the list of addresses for receiving payments</source>
        <translation>Toon lijst van betalingsadressen</translation>
    </message>
    <message>
        <source>&Send coins</source>
        <translation>&Verstuur munten</translation>
    </message>
    <message>
        <source>Prove you control an address</source>
        <translation>Bewijs dat u een adres bezit</translation>
    </message>
    <message>
        <source>E&xit</source>
        <translation>&Afsluiten</translation>
    </message>
    <message>
        <source>Quit application</source>
        <translation>Programma afsluiten</translation>
    </message>
    <message>
        <source>Show information about Lambocoin</source>
        <translation>Toon informatie over Lambocoin</translation>
    </message>
    <message>
        <source>About &Qt</source>
        <translation>Over &Qt</translation>
    </message>
    <message>
        <source>Show information about Qt</source>
        <translation>Toon informatie over Qt</translation>
    </message>
    <message>
        <source>&Options...</source>
        <translation>&Opties...</translation>
    </message>
    <message>
        <source>&Export...</source>
        <translation>&Exporteer...</translation>
    </message>
    <message>
        <source>Export the data in the current tab to a file</source>
        <translation>Exporteer de data in de huidige tab naar een bestand</translation>
    </message>
    <message>
        <source>Encrypt or decrypt wallet</source>
        <translation>Versleutel of ontsleutel portemonnee</translation>
    </message>
    <message>
        <source>&Unlock Wallet for Minting Only</source>
        <translation>&Ontsleutel portemonnee alleen om te minten</translation>
    </message>
    <message>
        <source>Unlock wallet only for minting. Sending coins will still require the passphrase.</source>
        <translation>Ontsleutel portemonnee alleen om te minten. Voor het versturen van munten is nog een wachtwoordzin nodig</translation>
    </message>
    <message>
        <source>Backup wallet to another location</source>
        <translation>&Backup portemonnee naar een andere locatie</translation>
    </message>
    <message>
        <source>Change the passphrase used for wallet encryption</source>
        <translation>Wijzig de wachtwoordzin voor uw portemonneversleuteling</translation>
    </message>
    <message>
        <source>&Debug window</source>
        <translation>&Debug scherm</translation>
    </message>
    <message>
        <source>Open debugging and diagnostic console</source>
        <translation>Open debugging en diagnostische console</translation>
    </message>
    <message>
        <source>&File</source>
        <translation>&Bestand</translation>
    </message>
    <message>
        <source>&Settings</source>
        <translation>&Instellingen</translation>
    </message>
    <message>
        <source>&Help</source>
        <translation>&Hulp</translation>
    </message>
    <message>
        <source>Tabs toolbar</source>
        <translation>Tab-werkbalk</translation>
    </message>
    <message>
        <source>Actions toolbar</source>
        <translation>Actie-werkbalk</translation>
    </message>
    <message>
        <source>[testnet]</source>
        <translation>[testnetwerk]</translation>
    </message>
    <message>
        <source>Lambocoin Wallet</source>
        <translation>Lambocoin portemonnee</translation>
    </message>
    <message>
        <source>Send coins to a Lambocoin address</source>
        <translation>Zend munten naar een Lambocoin adres</translation>
    </message>
    <message>
        <source>&About Lambocoin</source>
        <translation>Over Lambocoin</translation>
    </message>
    <message>
        <source>Modify configuration options for Lambocoin</source>
        <translation>Wijzig configuratie opties voor Lambocoin</translation>
    </message>
    <message>
        <source>Show/Hide &Lambocoin</source>
        <translation>Toon/Verberg &Lambocoin</translation>
    </message>
    <message>
        <source>Show or hide the Lambocoin window</source>
        <translation>Toon of verberg het Lambocoin scherm</translation>
    </message>
    <message>
        <source>&Encrypt Wallet...</source>
        <translation>&Versleutel Portemonnee</translation>
    </message>
    <message>
        <source>&Backup Wallet...</source>
        <translation>&Backup Portemonnee</translation>
    </message>
    <message>
        <source>Lambocoin client</source>
        <translation>Lambocoin client</translation>
    </message>
    <message>
        <source>Synchronizing with network...</source>
        <translation>Synchroniseren met netwerk...</translation>
    </message>
    <message>
        <source>Downloaded %1 blocks of transaction history.</source>
        <translation>%1 blokken van transactiehistorie opgehaald.</translation>
    </message>
    <message numerus="yes">
        <source>%n second(s) ago</source>
        <translation><numerusform>%n seconde geleden</numerusform><numerusform>%n seconde geleden</numerusform></translation>
    </message>
    <message numerus="yes">
        <source>%n minute(s) ago</source>
        <translation><numerusform>%n minuut geleden</numerusform><numerusform>%n minuten geleden</numerusform></translation>
    </message>
    <message numerus="yes">
        <source>%n hour(s) ago</source>
        <translation><numerusform>%n uur geleden</numerusform><numerusform>%n uur geleden</numerusform></translation>
    </message>
    <message numerus="yes">
        <source>%n day(s) ago</source>
        <translation><numerusform>%n dag geleden</numerusform><numerusform>%n dagen geleden</numerusform></translation>
    </message>
    <message>
        <source>Up to date</source>
        <translation>Bijgewerkt</translation>
    </message>
    <message>
        <source>Catching up...</source>
        <translation>Aan het bijwerken...</translation>
    </message>
    <message>
        <source>Last received block was generated %1.</source>
        <translation>Laatst ontvangen blok is %1 gegenereerd.</translation>
    </message>
    <message>
        <source>Sent transaction</source>
        <translation>Verzonden transactie</translation>
    </message>
    <message>
        <source>Incoming transaction</source>
        <translation>Binnenkomende transactie</translation>
    </message>
    <message>
        <source>Date: %1
Amount: %2
Type: %3
Address: %4
</source>
        <translation>Datum: %1
Bedrag: %2
Type: %3
Adres: %4
</translation>
    </message>
    <message>
        <source>Wallet is encrypted and currently unlocked for block minting only</source>
        <translation>Portemonnee is versleuteld en momenteel geopend om blokken te minten</translation>
    </message>
    <message>
        <source>Wallet is encrypted and currently unlocked</source>
        <translation>Portemonnee is versleuteld en momenteel geopend</translation>
    </message>
    <message>
        <source>Wallet is encrypted and currently locked</source>
        <translation>Portemonnee is versleuteld en momenteel gesloten</translation>
    </message>
    <message>
        <source>Backup Wallet</source>
        <translation>Backup Portemonnee</translation>
    </message>
    <message>
        <source>Wallet Data (*.dat)</source>
        <translation>Portemonnee-data (*.dat)</translation>
    </message>
    <message>
        <source>Backup Failed</source>
        <translation>Backup Mislukt</translation>
    </message>
    <message>
        <source>There was an error trying to save the wallet data to the new location.</source>
        <translation>Er is een fout opgetreden bij het wegschrijven van de portemonnee-data naar de nieuwe locatie.</translation>
    </message>
    <message>
        <source>A fatal error occurred. Lambocoin can no longer continue safely and will quit.</source>
        <translation>Een fatale fout heeft plaatsgevonden. Lambocoin kan niet langer veilig doorgaan en zal afsluiten.</translation>
    </message>
    </context>
<context>
    <name>CoinControlDialog</name>
    <message>
        <source>Coin Control</source>
        <translation>Munt Controle</translation>
    </message>
    <message>
        <source>Quantity:</source>
        <translation>Aantal:</translation>
    </message>
    <message>
        <source>0</source>
        <translation>0</translation>
    </message>
    <message>
        <source>Bytes:</source>
        <translation>Bytes:</translation>
    </message>
    <message>
        <source>Amount:</source>
        <translation>Bedrag:</translation>
    </message>
    <message>
        <source>0.00 BTC</source>
        <translation>123.456 BTC {0.00 ?}</translation>
    </message>
    <message>
        <source>Priority:</source>
        <translation>Prioriteit:</translation>
    </message>
    <message>
        <source>Fee:</source>
        <translation>Transactiekosten:</translation>
    </message>
    <message>
        <source>Low Output:</source>
        <translation>Kopieer lage uitvoer</translation>
    </message>
    <message>
        <source>no</source>
        <translation>nee</translation>
    </message>
    <message>
        <source>After Fee:</source>
        <translation>Na aftrek kosten:</translation>
    </message>
    <message>
        <source>Change:</source>
        <translation>Teruggave:</translation>
    </message>
    <message>
        <source>(un)select all</source>
        <translation>Alles (de)selecteren</translation>
    </message>
    <message>
        <source>Tree mode</source>
        <translation>Toon boomstructuur</translation>
    </message>
    <message>
        <source>List mode</source>
        <translation>Lijst modus</translation>
    </message>
    <message>
        <source>Amount</source>
        <translation>Bedrag</translation>
    </message>
    <message>
        <source>Address</source>
        <translation>Adres</translation>
    </message>
    <message>
        <source>Date</source>
        <translation>Datum</translation>
    </message>
    <message>
        <source>Confirmations</source>
        <translation>Bevestigingen</translation>
    </message>
    <message>
        <source>Confirmed</source>
        <translation>Bevestigd</translation>
    </message>
    <message>
        <source>Priority</source>
        <translation>Prioriteit</translation>
    </message>
    <message>
        <source>Copy address</source>
        <translation>Kopieer adres</translation>
    </message>
    <message>
        <source>Copy label</source>
        <translation>Kopieer label</translation>
    </message>
    <message>
        <source>Copy amount</source>
        <translation>Kopieer bedrag</translation>
    </message>
    <message>
        <source>Copy transaction ID</source>
        <translation>Kopieer transactie ID</translation>
    </message>
    <message>
        <source>Copy quantity</source>
        <translation>Kopieer aantal</translation>
    </message>
    <message>
        <source>Copy fee</source>
        <translation>Kopieer kosten</translation>
    </message>
    <message>
        <source>Copy after fee</source>
        <translation>Kopieer na kosten</translation>
    </message>
    <message>
        <source>Copy bytes</source>
        <translation>Kopieer bytes</translation>
    </message>
    <message>
        <source>Copy priority</source>
        <translation>Kopieer prioriteit</translation>
    </message>
    <message>
        <source>Copy low output</source>
        <translation>Kopieer lage uitvoer</translation>
    </message>
    <message>
        <source>Copy change</source>
        <translation>Kopieer teruggave</translation>
    </message>
    <message>
        <source>highest</source>
        <translation>hoogste</translation>
    </message>
    <message>
        <source>high</source>
        <translation>Hoogste</translation>
    </message>
    <message>
        <source>medium-high</source>
        <translation>medium-hoog</translation>
    </message>
    <message>
        <source>medium</source>
        <translation>medium</translation>
    </message>
    <message>
        <source>low-medium</source>
        <translation>laag-medium</translation>
    </message>
    <message>
        <source>low</source>
        <translation>laag</translation>
    </message>
    <message>
        <source>lowest</source>
        <translation>laagste</translation>
    </message>
    <message>
        <source>DUST</source>
        <translation>STOF</translation>
    </message>
    <message>
        <source>yes</source>
        <translation>ja</translation>
    </message>
    <message>
        <source>(no label)</source>
        <translation>(geen label)</translation>
    </message>
    <message>
        <source>change from %1 (%2)</source>
        <translation>gewijzigd van %1 (%2)</translation>
    </message>
    <message>
        <source>(change)</source>
        <translation>(wijzig)</translation>
    </message>
    </context>
<context>
    <name>DisplayOptionsPage</name>
    <message>
        <source>&Unit to show amounts in: </source>
        <translation>&Eenheid om bedrag in te tonen:</translation>
    </message>
    <message>
        <source>Choose the default subdivision unit to show in the interface, and when sending coins</source>
        <translation>Kies de standaard onderverdelingseenheid om weer te geven in uw programma, en voor het versturen van munten</translation>
    </message>
    <message>
        <source>&Display addresses in transaction list</source>
        <translation>Toon adressen in transactielijst</translation>
    </message>
    <message>
        <source>Whether to show Lambocoin addresses in the transaction list</source>
        <translation>Toon Lambocoinadressen in transactielijst</translation>
    </message>
    <message>
        <source>Display coin control features (experts only!)</source>
        <translation>Laat muntcontrole functies zien (alleen voor experts!)</translation>
    </message>
    <message>
        <source>Whether to show coin control features or not</source>
        <translation>Munt controle mogelijkheden of niet</translation>
    </message>
    <message>
        <source>Warning</source>
        <translation>Waarschuwing</translation>
    </message>
    </context>
<context>
    <name>EditAddressDialog</name>
    <message>
        <source>Edit Address</source>
        <translation>Bewerk Adres</translation>
    </message>
    <message>
        <source>&Label</source>
        <translation>&Label</translation>
    </message>
    <message>
        <source>The label associated with this address book entry</source>
        <translation>Het label dat geassocieerd is met dit adres</translation>
    </message>
    <message>
        <source>&Address</source>
        <translation>&Adres</translation>
    </message>
    <message>
        <source>The address associated with this address book entry. This can only be modified for sending addresses.</source>
        <translation>Het adres dat geassocieerd is met deze adresboek-opgave. Dit kan alleen worden veranderd voor zend-adressen.</translation>
    </message>
    <message>
        <source>New receiving address</source>
        <translation>Nieuw ontvangstadres</translation>
    </message>
    <message>
        <source>New sending address</source>
        <translation>Nieuw adres om naar te versturen</translation>
    </message>
    <message>
        <source>Edit receiving address</source>
        <translation>Bewerk ontvangstadres</translation>
    </message>
    <message>
        <source>Edit sending address</source>
        <translation>Bewerk verzendadres</translation>
    </message>
    <message>
        <source>The entered address "%1" is already in the address book.</source>
        <translation>Het opgegeven adres "%1" bestaat al in uw adresboek.</translation>
    </message>
    <message>
        <source>The entered address "%1" is not a valid Lambocoin address.</source>
        <translation>Het ingevoerde adres "%1" is geen geldig Lambocoin adres.</translation>
    </message>
    <message>
        <source>Could not unlock wallet.</source>
        <translation>Kon de portemonnee niet openen.</translation>
    </message>
    <message>
        <source>New key generation failed.</source>
        <translation>Genereren nieuwe sleutel mislukt.</translation>
    </message>
</context>
<context>
    <name>GUIUtil::HelpMessageBox</name>
    </context>
<context>
    <name>MainOptionsPage</name>
    <message>
        <source>Detach block and address databases at shutdown. This means they can be moved to another data directory, but it slows down shutdown. The wallet is always detached.</source>
        <translation>Ontkoppel blok en adres database tijdens afsluiten. Dit betekent dat ze kunnen worden verplaatst naar een andere bestandslokatie, maar het afsluiten is daardoor langzamer.  De portomonnee is altijd ontkoppeld.</translation>
    </message>
    </context>
<context>
    <name>MintingTableModel</name>
    <message>
        <source>Transaction</source>
        <translation>Transactie</translation>
    </message>
    <message>
        <source>Address</source>
        <translation>Adres</translation>
    </message>
    <message>
        <source>Age</source>
        <translation>Leeftijd</translation>
    </message>
    <message>
        <source>Balance</source>
        <translation>Balans</translation>
    </message>
    <message>
        <source>minutes</source>
        <translation>minuten</translation>
    </message>
    <message>
        <source>hours</source>
        <translation>uren</translation>
    </message>
    <message>
        <source>days</source>
        <translation>dagen</translation>
    </message>
    </context>
<context>
    <name>MintingView</name>
    <message>
        <source>10 min</source>
        <translation>10 min</translation>
    </message>
    <message>
        <source>24 hours</source>
        <translation>24 uur</translation>
    </message>
    <message>
        <source>30 days</source>
        <translation>30 dagen</translation>
    </message>
    <message>
        <source>90 days</source>
        <translation>90 dagen</translation>
    </message>
    <message>
        <source>Comma separated file (*.csv)</source>
        <translation>Kommagescheiden bestand (*.csv)</translation>
    </message>
    <message>
        <source>Address</source>
        <translation>Adres</translation>
    </message>
    <message>
        <source>Transaction</source>
        <translation>Transactie</translation>
    </message>
    <message>
        <source>Age</source>
        <translation>Leeftijd</translation>
    </message>
    <message>
        <source>Balance</source>
        <translation>Balans</translation>
    </message>
    <message>
        <source>Error exporting</source>
        <translation>Fout bij exporteren</translation>
    </message>
    <message>
        <source>Could not write to file %1.</source>
        <translation>Kon niet schrijven naar bestand %1.</translation>
    </message>
    </context>
<context>
    <name>MultisigAddressEntry</name>
    <message>
        <source>Form</source>
        <translation>Vorm</translation>
    </message>
    <message>
        <source>Alt+P</source>
        <translation>Alt+P</translation>
    </message>
    <message>
        <source>&Address:</source>
        <translation>&Adres</translation>
    </message>
    <message>
        <source>Choose address from address book</source>
        <translation>Kies adres uit adresboek</translation>
    </message>
    <message>
        <source>Alt+A</source>
        <translation>Alt+A</translation>
    </message>
    <message>
        <source>Label:</source>
        <translation>Label:</translation>
    </message>
</context>
<context>
    <name>MultisigDialog</name>
    <message>
        <source>Clear all</source>
        <translation>Verwijder alles</translation>
    </message>
    <message>
        <source>Fee:</source>
        <translation>Transactiekosten:</translation>
    </message>
    <message>
        <source>Paste address from clipboard</source>
        <translation>Plak adres vanuit klembord</translation>
    </message>
    <message>
        <source>Alt+P</source>
        <translation>Alt+P</translation>
    </message>
    </context>
<context>
    <name>MultisigInputEntry</name>
    <message>
        <source>Form</source>
        <translation>Vorm</translation>
    </message>
    <message>
        <source>Alt+P</source>
        <translation>Alt+P</translation>
    </message>
    <message>
        <source>Alt+A</source>
        <translation>Alt+A</translation>
    </message>
</context>
<context>
    <name>NetworkOptionsPage</name>
    <message>
        <source>Network</source>
        <translation>Netwerk</translation>
    </message>
    </context>
<context>
    <name>OptionsDialog</name>
    <message>
        <source>Options</source>
        <translation>Opties</translation>
    </message>
</context>
<context>
    <name>OverviewPage</name>
    <message>
        <source>Form</source>
        <translation>Vorm</translation>
    </message>
    <message>
        <source>Balance:</source>
        <translation>Saldo:</translation>
    </message>
    <message>
        <source>Number of transactions:</source>
        <translation>Aantal transacties:</translation>
    </message>
    <message>
        <source>Unconfirmed:</source>
        <translation>Onbevestigd:</translation>
    </message>
    <message>
        <source>Stake:</source>
        <translation>Inzet:</translation>
    </message>
    <message>
        <source>Wallet</source>
        <translation>Portemonnee</translation>
    </message>
    <message>
        <source>Recent transactions</source>
        <translation>Recente transacties</translation>
    </message>
    <message>
        <source>Your current balance</source>
        <translation>Uw huidige saldo</translation>
    </message>
    <message>
        <source>Your current stake</source>
        <translation>Huidige inzet</translation>
    </message>
    <message>
        <source>Total of transactions that have yet to be confirmed, and do not yet count toward the current balance</source>
        <translation>Totaal aantal transacties dat nog moet worden bevestigd, en nog niet is meegeteld in uw huidige saldo </translation>
    </message>
    <message>
        <source>Total number of transactions in wallet</source>
        <translation>Totaal aantal transacties in uw portemonnee</translation>
    </message>
    </context>
<context>
    <name>QRCodeDialog</name>
    <message>
        <source>QR Code</source>
        <translation>QR-code</translation>
    </message>
    <message>
        <source>Request Payment</source>
        <translation>Vraag betaling aan</translation>
    </message>
    <message>
        <source>Amount:</source>
        <translation>Bedrag:</translation>
    </message>
    <message>
        <source>Label:</source>
        <translation>Label:</translation>
    </message>
    <message>
        <source>Message:</source>
        <translation>Bericht:</translation>
    </message>
    <message>
        <source>&Save As...</source>
        <translation>&Opslaan Als...</translation>
    </message>
    <message>
        <source>Error encoding URI into QR Code.</source>
        <translation>Fout in codering URI naar QR-code</translation>
    </message>
    <message>
        <source>Resulting URI too long, try to reduce the text for label / message.</source>
        <translation>Resultaat URI te lang, probeer de tekst in te korten.</translation>
    </message>
    <message>
        <source>PNG Images (*.png)</source>
        <translation>PNG-Afbeeldingen (*.png)</translation>
    </message>
</context>
<context>
    <name>RPCConsole</name>
    <message>
        <source>Client name</source>
        <translation>Client naam</translation>
    </message>
    <message>
        <source>N/A</source>
        <translation>N.v.t.</translation>
    </message>
    <message>
        <source>Client version</source>
        <translation>Client versie</translation>
    </message>
    <message>
        <source>Network</source>
        <translation>Netwerk</translation>
    </message>
    <message>
        <source>Number of connections</source>
        <translation>Aantal connecties</translation>
    </message>
    <message>
        <source>On testnet</source>
        <translation>Op testnetwerk</translation>
    </message>
    <message>
        <source>Block chain</source>
        <translation>Blokkenketen</translation>
    </message>
    <message>
        <source>Current number of blocks</source>
        <translation>Huidig aantal blokken</translation>
    </message>
    <message>
        <source>Estimated total blocks</source>
        <translation>Geschat aantal blokken</translation>
    </message>
    <message>
        <source>Last block time</source>
        <translation>Laaste bloktijd</translation>
    </message>
    <message>
        <source>Build date</source>
        <translation>Bouwdatum</translation>
    </message>
    <message>
        <source>Clear console</source>
        <translation>Console opschonen</translation>
    </message>
    <message>
        <source>Welcome to the Lambocoin RPC console.
Use up and down arrows to navigate history, and Ctrl-L to clear screen.
Type help for an overview of available commands.</source>
        <translation>Welkom bij de Lambocoin RPC console.
Gebruik pijltjes naar boven en naar beneden om de geschiedenis te navigeren, en Ctrl-L om het scherm te wissen.
Typ help voor een overzicht met commandos.</translation>
    </message>
    </context>
<context>
    <name>SendCoinsDialog</name>
    <message>
        <source>Send Coins</source>
        <translation>Verstuur munten</translation>
    </message>
    <message>
        <source>Coin Control Features</source>
        <translation>Munt controle opties</translation>
    </message>
    <message>
        <source>Inputs...</source>
        <translation>Toevoer...</translation>
    </message>
    <message>
        <source>automatically selected</source>
        <translation>automatisch geselecteerd</translation>
    </message>
    <message>
        <source>Insufficient funds!</source>
        <translation>Onvoldoende fondsen!</translation>
    </message>
    <message>
        <source>Quantity:</source>
        <translation>Aantal:</translation>
    </message>
    <message>
        <source>0</source>
        <translation>0</translation>
    </message>
    <message>
        <source>Bytes:</source>
        <translation>Bytes:</translation>
    </message>
    <message>
        <source>Amount:</source>
        <translation>Bedrag:</translation>
    </message>
    <message>
        <source>0.00 BTC</source>
        <translation>123.456 BTC {0.00 ?}</translation>
    </message>
    <message>
        <source>Priority:</source>
        <translation>Prioriteit:</translation>
    </message>
    <message>
        <source>medium</source>
        <translation>medium</translation>
    </message>
    <message>
        <source>Fee:</source>
        <translation>Transactiekosten:</translation>
    </message>
    <message>
        <source>Low Output:</source>
        <translation>Kopieer lage uitvoer</translation>
    </message>
    <message>
        <source>no</source>
        <translation>nee</translation>
    </message>
    <message>
        <source>After Fee:</source>
        <translation>Na aftrek kosten:</translation>
    </message>
    <message>
        <source>Change</source>
        <translation>Teruggave</translation>
    </message>
    <message>
        <source>custom change address</source>
        <translation>zelfopgegeven teruggaveadres</translation>
    </message>
    <message>
        <source>Send to multiple recipients at once</source>
        <translation>Verstuur aan verschillende ontvangers tegelijkertijd</translation>
    </message>
    <message>
        <source>Remove all transaction fields</source>
        <translation>Verwijder alle transactievelden</translation>
    </message>
    <message>
        <source>Balance:</source>
        <translation>Saldo:</translation>
    </message>
    <message>
        <source>123.456 BTC</source>
        <translation>123.456 BTC</translation>
    </message>
    <message>
        <source>Confirm the send action</source>
        <translation>Bevestig de verstuuractie</translation>
    </message>
    <message>
        <source>&Send</source>
        <translation>&Verstuur</translation>
    </message>
    <message>
        <source>Copy quantity</source>
        <translation>Kopieer aantal</translation>
    </message>
    <message>
        <source>Copy amount</source>
        <translation>Kopieer bedrag</translation>
    </message>
    <message>
        <source>Copy fee</source>
        <translation>Kopieer kosten</translation>
    </message>
    <message>
        <source>Copy after fee</source>
        <translation>Kopieer na kosten</translation>
    </message>
    <message>
        <source>Copy bytes</source>
        <translation>Kopieer bytes</translation>
    </message>
    <message>
        <source>Copy priority</source>
        <translation>Kopieer prioriteit</translation>
    </message>
    <message>
        <source>Copy low output</source>
        <translation>Kopieer lage uitvoer</translation>
    </message>
    <message>
        <source>Copy change</source>
        <translation>Kopieer teruggave</translation>
    </message>
    <message>
        <source>%1 to %2 (%3)</source>
        <translation>%1 aan %2 (%3)</translation>
    </message>
    <message>
        <source>Confirm send coins</source>
        <translation>Bevestig versturen munten</translation>
    </message>
    <message>
        <source>Are you sure you want to send %1?</source>
        <translation>Weet u zeker dat u %1 wil versturen?</translation>
    </message>
    <message>
        <source> and </source>
        <translation> en </translation>
    </message>
    <message>
        <source>The amount to pay must be at least one cent (0.01).</source>
        <translation>Het te betalen bedrag moet minimaal een cent zijn (0.01).</translation>
    </message>
    <message>
        <source>Warning: Invalid Lambocoin address</source>
        <translation>Waarschuwing: Ongeldig Lambocoin adres</translation>
    </message>
    <message>
        <source>Warning: Unknown change address</source>
        <translation>Waarschuwing: onbekend teruggave adres</translation>
    </message>
    <message>
        <source>(no label)</source>
        <translation>(geen label)</translation>
    </message>
    <message>
        <source>Enter a Lambocoin address</source>
        <translation>Voer een Lambocoin adres in</translation>
    </message>
    </context>
<context>
    <name>SendCoinsEntry</name>
    <message>
        <source>Form</source>
        <translation>Vorm</translation>
    </message>
    <message>
        <source>A&mount:</source>
        <translation>Bedra&g:</translation>
    </message>
    <message>
        <source>Pay &To:</source>
        <translation>Betaal &Aan:</translation>
    </message>
    <message>
        <source>Enter a label for this address to add it to your address book</source>
        <translation>Vul een label in voor dit adres om het toe te voegen aan uw adresboek</translation>
    </message>
    <message>
        <source>&Label:</source>
        <translation>&Label:</translation>
    </message>
    <message>
        <source>The address to send the payment to</source>
        <translation>Het verzendadres voor de betaling</translation>
    </message>
    <message>
        <source>Choose address from address book</source>
        <translation>Kies adres uit adresboek</translation>
    </message>
    <message>
        <source>Alt+A</source>
        <translation>Alt+A</translation>
    </message>
    <message>
        <source>Paste address from clipboard</source>
        <translation>Plak adres vanuit klembord</translation>
    </message>
    <message>
        <source>Alt+P</source>
        <translation>Alt+P</translation>
    </message>
    <message>
        <source>Remove this recipient</source>
        <translation>Verwijder deze ontvanger</translation>
    </message>
</context>
<context>
    <name>SignVerifyMessageDialog</name>
    <message>
        <source>Signatures - Sign / Verify a Message</source>
        <translation>Ondertekeningen - Onderteken / verifieer een bericht</translation>
    </message>
    <message>
        <source>&Sign Message</source>
        <translation>&Onderteken Bericht</translation>
    </message>
    <message>
        <source>You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</source>
        <translation>U kunt berichten ondertekenen met een van uw adressen om te bewijzen dat u dit adres bezit. Pas op dat u geen onduidelijke dingen ondertekent, want phishingaanvallen zouden u voor de gek kunnen houden om zo uw identiteit te stelen. Onderteken alleen berichten waarmee u het volledig eens bent.</translation>
    </message>
    <message>
        <source>The address to sign the message with</source>
        <translation>Het ondertekenings adres voor het bericht</translation>
    </message>
    <message>
        <source>Choose previously used address</source>
        <translation>Kies eerder gebruikt adres</translation>
    </message>
    <message>
        <source>Alt+A</source>
        <translation>Alt+A</translation>
    </message>
    <message>
        <source>Paste address from clipboard</source>
        <translation>Plak adres vanuit klembord</translation>
    </message>
    <message>
        <source>Alt+P</source>
        <translation>Alt+P</translation>
    </message>
    <message>
        <source>Enter the message you want to sign here</source>
        <translation>Typ hier het bericht dat u wilt ondertekenen</translation>
    </message>
    <message>
        <source>Signature</source>
        <translation>Ondertekening</translation>
    </message>
    <message>
        <source>Copy the current signature to the system clipboard</source>
        <translation>Kopieer de huidige onderteking naar het systeem klembord</translation>
    </message>
    <message>
        <source>Sign the message to prove you own this Lambocoin address</source>
        <translation>Bewijs dat je dit Lambocoin adres bezit door het te ondertekenen </translation>
    </message>
    <message>
        <source>Sign &Message</source>
        <translation>Onderteken &Bericht</translation>
    </message>
    <message>
        <source>Reset all sign message fields</source>
        <translation>Herinitialiseer alle ondertekende bericht velden</translation>
    </message>
    <message>
        <source>Clear &All</source>
        <translation>&Alles wissen</translation>
    </message>
    <message>
        <source>&Verify Message</source>
        <translation>&Verifieer bericht</translation>
    </message>
    <message>
        <source>Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack.</source>
        <translation>Voer hieronder het ondertekeningsadres in, het bericht (vergeet niet precies alle regelafbrekingen, spaties, tabulaties, etc. in te voeren) en ondertekening om het bericht te verifieren. Wees voorzichtig om verder te lezen waar de tekst niet deel uitmaakt van het ondertekende bericht, dit om te voorkomen dat je verleid wordt door een man-in-het-midden aanval.</translation>
    </message>
    <message>
        <source>The address the message was signed with</source>
        <translation>Het adres waarmee het bericht getekend was</translation>
    </message>
    <message>
        <source>Verify the message to ensure it was signed with the specified Lambocoin address</source>
        <translation>Verifieer het bericht om vast te stellen dat het bericht ondertekend was met het gespecificeerde Lambocoin adres</translation>
    </message>
    <message>
        <source>Verify &Message</source>
        <translation>&Verifieer bericht</translation>
    </message>
    <message>
        <source>Reset all verify message fields</source>
        <translation>Herinitialiseer alle geverifieerde bericht velden</translation>
    </message>
    <message>
        <source>Click "Sign Message" to generate signature</source>
        <translation>Klik 'Onderteken bericht' om te ondertekenen</translation>
    </message>
    <message>
        <source>Enter the signature of the message</source>
        <translation>Voer de ondertekening in voor het bericht</translation>
    </message>
    <message>
        <source>Enter a Lambocoin address</source>
        <translation>Voer een Lambocoin adres in</translation>
    </message>
    <message>
        <source>The entered address is invalid.</source>
        <translation>Het ingevoerde adres is onjuist</translation>
    </message>
    <message>
        <source>Please check the address and try again.</source>
        <translation>Controleer het adres and probeer opnieuw.</translation>
    </message>
    <message>
        <source>The entered address does not refer to a key.</source>
        <translation>Het ingevoerde adres refereert niet naar een sleutel</translation>
    </message>
    <message>
        <source>Wallet unlock was cancelled.</source>
        <translation>Portemonnee ontsleuteling is afgebroken.</translation>
    </message>
    <message>
        <source>Private key for the entered address is not available.</source>
        <translation>Geheime sleutel voor het ingevoerde adres is niet beschikbaar.</translation>
    </message>
    <message>
        <source>Message signing failed.</source>
        <translation>Bericht ondertekening mislukt.</translation>
    </message>
    <message>
        <source>Message signed.</source>
        <translation>Bericht ontedertekend.</translation>
    </message>
    <message>
        <source>The signature could not be decoded.</source>
        <translation>De ondertekeing kan niet worden ontcijferd.</translation>
    </message>
    <message>
        <source>Please check the signature and try again.</source>
        <translation>Controleer de ondertekening and probeer opnieuw.</translation>
    </message>
    <message>
        <source>The signature did not match the message digest.</source>
        <translation>De ondertekening komt niet overeen met de bericht samenvatting.</translation>
    </message>
    <message>
        <source>Message verification failed.</source>
        <translation>Bericht verficatie mislukt.</translation>
    </message>
    <message>
        <source>Message verified.</source>
        <translation>Bericht geverifieerd.</translation>
    </message>
</context>
<context>
    <name>SplashScreen</name>
    <message>
        <source>[testnet]</source>
        <translation>[testnetwerk]</translation>
    </message>
</context>
<context>
    <name>TransactionDesc</name>
    <message>
        <source>Open until %1</source>
        <translation>Open tot %1</translation>
    </message>
    <message>
        <source>%1/unconfirmed</source>
        <translation>%1/onbevestigd</translation>
    </message>
    <message>
        <source>%1 confirmations</source>
        <translation>%1 bevestigingen</translation>
    </message>
    <message>
        <source>Date</source>
        <translation>Datum</translation>
    </message>
    <message>
        <source>Transaction</source>
        <translation>Transactie</translation>
    </message>
    <message>
        <source>Amount</source>
        <translation>Bedrag</translation>
    </message>
    <message>
        <source>, has not been successfully broadcast yet</source>
        <translation>, is nog niet succesvol uitgezonden</translation>
    </message>
    <message>
        <source>unknown</source>
        <translation>onbekend</translation>
    </message>
</context>
<context>
    <name>TransactionDescDialog</name>
    <message>
        <source>Transaction details</source>
        <translation>Transactiedetails</translation>
    </message>
    <message>
        <source>This pane shows a detailed description of the transaction</source>
        <translation>Dit venster laat een uitgebreide beschrijving van de transactie zien</translation>
    </message>
</context>
<context>
    <name>TransactionTableModel</name>
    <message>
        <source>Date</source>
        <translation>Datum</translation>
    </message>
    <message>
        <source>Type</source>
        <translation>Type</translation>
    </message>
    <message>
        <source>Address</source>
        <translation>Adres</translation>
    </message>
    <message>
        <source>Amount</source>
        <translation>Bedrag</translation>
    </message>
    <message numerus="yes">
        <source>Open for %n block(s)</source>
        <translation><numerusform>Open gedurende %n blok</numerusform><numerusform>Open gedurende %n blokken</numerusform></translation>
    </message>
    <message>
        <source>Open until %1</source>
        <translation>Open tot %1</translation>
    </message>
    <message>
        <source>Offline (%1 confirmations)</source>
        <translation>Niet verbonden (%1 bevestigingen)</translation>
    </message>
    <message>
        <source>Unconfirmed (%1 of %2 confirmations)</source>
        <translation>Onbevestigd (%1 van %2 bevestigd)</translation>
    </message>
    <message>
        <source>Confirmed (%1 confirmations)</source>
        <translation>Bevestigd (%1 bevestigingen)</translation>
    </message>
    <message numerus="yes">
        <source>Mined balance will be available in %n more blocks</source>
        <translation><numerusform>Ontgonnen saldo komt beschikbaar na %n blok</numerusform><numerusform>Ontgonnen saldo komt beschikbaar na %n blokken</numerusform></translation>
    </message>
    <message>
        <source>This block was not received by any other nodes and will probably not be accepted!</source>
        <translation>Dit blok is niet ontvangen bij andere nodes en zal waarschijnlijk niet worden geaccepteerd!</translation>
    </message>
    <message>
        <source>Generated but not accepted</source>
        <translation>Gegenereerd maar niet geaccepteerd</translation>
    </message>
    <message>
        <source>Received with</source>
        <translation>Ontvangen met</translation>
    </message>
    <message>
        <source>Received from</source>
        <translation>Ontvangen van</translation>
    </message>
    <message>
        <source>Sent to</source>
        <translation>Verzonden aan</translation>
    </message>
    <message>
        <source>Payment to yourself</source>
        <translation>Betaling aan uzelf</translation>
    </message>
    <message>
        <source>Mined</source>
        <translation>Ontgonnen</translation>
    </message>
    <message>
        <source>Mint by stake</source>
        <translation>Minten met inzet</translation>
    </message>
    <message>
        <source>(n/a)</source>
        <translation>(nvt)</translation>
    </message>
    <message>
        <source>Transaction status. Hover over this field to show number of confirmations.</source>
        <translation>Transactiestatus. Houd de muiscursor boven dit veld om het aantal bevestigingen te laten zien.</translation>
    </message>
    <message>
        <source>Date and time that the transaction was received.</source>
        <translation>Datum en tijd waarop deze transactie is ontvangen.</translation>
    </message>
    <message>
        <source>Type of transaction.</source>
        <translation>Type transactie.</translation>
    </message>
    <message>
        <source>Destination address of transaction.</source>
        <translation>Ontvangend adres van transactie</translation>
    </message>
    <message>
        <source>Amount removed from or added to balance.</source>
        <translation>Bedrag verwijderd van of toegevoegd aan saldo</translation>
    </message>
    </context>
<context>
    <name>TransactionView</name>
    <message>
        <source>All</source>
        <translation>Alles</translation>
    </message>
    <message>
        <source>Today</source>
        <translation>Vandaag</translation>
    </message>
    <message>
        <source>This week</source>
        <translation>Deze week</translation>
    </message>
    <message>
        <source>This month</source>
        <translation>Deze maand</translation>
    </message>
    <message>
        <source>Last month</source>
        <translation>Vorige maand</translation>
    </message>
    <message>
        <source>This year</source>
        <translation>Dit jaar</translation>
    </message>
    <message>
        <source>Range...</source>
        <translation>Bereik...</translation>
    </message>
    <message>
        <source>Received with</source>
        <translation>Ontvangen met</translation>
    </message>
    <message>
        <source>Sent to</source>
        <translation>Verzonden aan</translation>
    </message>
    <message>
        <source>To yourself</source>
        <translation>Aan uzelf</translation>
    </message>
    <message>
        <source>Mined</source>
        <translation>Ontgonnen</translation>
    </message>
    <message>
        <source>Mint by stake</source>
        <translation>Minten met inzet</translation>
    </message>
    <message>
        <source>Other</source>
        <translation>Anders</translation>
    </message>
    <message>
        <source>Enter address or label to search</source>
        <translation>Vul adres of label in om te zoeken</translation>
    </message>
    <message>
        <source>Min amount</source>
        <translation>Min. bedrag</translation>
    </message>
    <message>
        <source>Copy address</source>
        <translation>Kopieer adres</translation>
    </message>
    <message>
        <source>Copy label</source>
        <translation>Kopieer label</translation>
    </message>
    <message>
        <source>Copy amount</source>
        <translation>Kopieer bedrag</translation>
    </message>
    <message>
        <source>Edit label</source>
        <translation>Bewerk label</translation>
    </message>
    <message>
        <source>Export Transaction Data</source>
        <translation>Exporteer transactiegegevens</translation>
    </message>
    <message>
        <source>Comma separated file (*.csv)</source>
        <translation>Kommagescheiden bestand (*.csv)</translation>
    </message>
    <message>
        <source>Confirmed</source>
        <translation>Bevestigd</translation>
    </message>
    <message>
        <source>Date</source>
        <translation>Datum</translation>
    </message>
    <message>
        <source>Type</source>
        <translation>Type</translation>
    </message>
    <message>
        <source>Label</source>
        <translation>Label</translation>
    </message>
    <message>
        <source>Address</source>
        <translation>Adres</translation>
    </message>
    <message>
        <source>Amount</source>
        <translation>Bedrag</translation>
    </message>
    <message>
        <source>ID</source>
        <translation>ID</translation>
    </message>
    <message>
        <source>Error exporting</source>
        <translation>Fout bij exporteren</translation>
    </message>
    <message>
        <source>Could not write to file %1.</source>
        <translation>Kon niet schrijven naar bestand %1.</translation>
    </message>
    <message>
        <source>Range:</source>
        <translation>Bereik:</translation>
    </message>
    <message>
        <source>to</source>
        <translation>naar</translation>
    </message>
</context>
<context>
    <name>WalletModel</name>
    <message>
        <source>Sending...</source>
        <translation>Versturen...</translation>
    </message>
</context>
<context>
    <name>WindowOptionsPage</name>
    </context>
<context>
    <name>bitcoin-core</name>
    <message>
        <source>Usage:</source>
        <translation>Gebruik:</translation>
    </message>
    <message>
        <source>Lambocoin version</source>
        <translation>Lambocoin versie</translation>
    </message>
    <message>
        <source>List commands</source>
        <translation>List van commando's
</translation>
    </message>
    <message>
        <source>Get help for a command</source>
        <translation>Toon hulp voor een commando
</translation>
    </message>
    <message>
        <source>Options:</source>
        <translation>Opties:
</translation>
    </message>
    <message>
        <source>Specify configuration file (default: Lambocoin.conf)</source>
        <translation>Configuratiebestand specificeren (standaard: Lambocoin.conf)</translation>
    </message>
    <message>
        <source>Specify pid file (default: Lambocoind.pid)</source>
        <translation>Specifieer pid-bestand (standaard: Lambocoind.pid)
</translation>
    </message>
    <message>
        <source>Generate coins</source>
        <translation>Genereer munten
</translation>
    </message>
    <message>
        <source>Don't generate coins</source>
        <translation>Genereer geen munten</translation>
    </message>
    <message>
        <source>Specify data directory</source>
        <translation>Stel datamap in
</translation>
    </message>
    <message>
        <source>Set database cache size in megabytes (default: 25)</source>
        <translation>Database cache instellen in Mb (standaard: 25)</translation>
    </message>
    <message>
        <source>Set database disk log size in megabytes (default: 100)</source>
        <translation>Database logbestandgrootte instellen in Mb (standaard: 100)</translation>
    </message>
    <message>
        <source>Specify connection timeout (in milliseconds)</source>
        <translation>Specificeer de time-out tijd (in milliseconden)
</translation>
    </message>
    <message>
        <source>Maintain at most <n> connections to peers (default: 125)</source>
        <translation>Onderhoud maximaal <n> verbindingen naar peers (standaard: 125)</translation>
    </message>
    <message>
        <source>Add a node to connect to and attempt to keep the connection open</source>
        <translation>Maak connectie met een node en houd deze open</translation>
    </message>
    <message>
        <source>Connect only to the specified node</source>
        <translation>Verbind alleen met deze node
</translation>
    </message>
    <message>
        <source>Accept connections from outside (default: 1)</source>
        <translation>Connecties van buiten accepteren (standaard: 1)</translation>
    </message>
    <message>
        <source>Find peers using DNS lookup (default: 1)</source>
        <translation>Zoek anderen via DNS (standaard: 1)</translation>
    </message>
    <message>
        <source>Threshold for disconnecting misbehaving peers (default: 100)</source>
        <translation>Drempel om verbinding te verbreken naar zich misdragende peers (standaard: 100)</translation>
    </message>
    <message>
        <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
        <translation>Aantal seconden dat zich misdragende peers niet opnieuw mogen verbinden (standaard: 86400)</translation>
    </message>
    <message>
        <source>Maximum per-connection receive buffer, <n>*1000 bytes (default: 10000)</source>
        <translation>Maximale ontvangstbuffer per connectie, <n>*1000 bytes (standaard: 10000)</translation>
    </message>
    <message>
        <source>Maximum per-connection send buffer, <n>*1000 bytes (default: 10000)</source>
        <translation>Maximale zendbuffer per connectie, <n>*1000 bytes (standaard: 10000)</translation>
    </message>
    <message>
        <source>Use Universal Plug and Play to map the listening port (default: 1)</source>
        <translation>Gebruik uPNP om de netwerk poort in te delen (standaard 1)</translation>
    </message>
    <message>
        <source>Use Universal Plug and Play to map the listening port (default: 0)</source>
        <translation>Gebruik uPNP om de netwerkpoort in te delen (standaard 0)</translation>
    </message>
    <message>
        <source>Fee per KB to add to transactions you send</source>
        <translation>Kosten per kB voor te versturen transacties</translation>
    </message>
    <message>
        <source>Run in the background as a daemon and accept commands</source>
        <translation>Draai in de achtergrond als daemon en aanvaard commando's
</translation>
    </message>
    <message>
        <source>Use the test network</source>
        <translation>Gebruik het testnetwerk
</translation>
    </message>
    <message>
        <source>Prepend debug output with timestamp</source>
        <translation>Voorzie de debuggingsuitvoer van een tijdsaanduiding</translation>
    </message>
    <message>
        <source>Send trace/debug info to console instead of debug.log file</source>
        <translation>Stuur opsporing/debug-info naar de console in plaats van het debug.log bestand</translation>
    </message>
    <message>
        <source>Send trace/debug info to debugger</source>
        <translation>Stuur opsporings/debug-info naar debugger</translation>
    </message>
    <message>
        <source>Username for JSON-RPC connections</source>
        <translation>Gebruikersnaam voor JSON-RPC verbindingen
</translation>
    </message>
    <message>
        <source>Password for JSON-RPC connections</source>
        <translation>Wachtwoord voor JSON-RPC verbindingen
</translation>
    </message>
    <message>
        <source>Allow JSON-RPC connections from specified IP address</source>
        <translation>Sta JSON-RPC verbindingen van opgegeven IP adres toe
</translation>
    </message>
    <message>
        <source>Send commands to node running on <ip> (default: 127.0.0.1)</source>
        <translation>Verstuur commando's naar proces dat op <ip> draait (standaard: 127.0.0.1)
</translation>
    </message>
    <message>
        <source>Execute command when the best block changes (%s in cmd is replaced by block hash)</source>
        <translation>Voer commando uit indien het hoogste blok verandert (%s in cmd is herplaats met blok hash)</translation>
    </message>
    <message>
        <source>Upgrade wallet to latest format</source>
        <translation>Opwaardeer portemonnee naar laatste formaat</translation>
    </message>
    <message>
        <source>Set key pool size to <n> (default: 100)</source>
        <translation>Stel sleutelpoelgrootte in op <n> (standaard: 100)
</translation>
    </message>
    <message>
        <source>Rescan the block chain for missing wallet transactions</source>
        <translation>Doorzoek de blokkenketen op ontbrekende portemonnee-transacties</translation>
    </message>
    <message>
        <source>How many blocks to check at startup (default: 2500, 0 = all)</source>
        <translation>Aantal blokken bij opstarten controleren (standaard: 2500, 0 = alle)</translation>
    </message>
    <message>
        <source>How thorough the block verification is (0-6, default: 1)</source>
        <translation>Grondigheid blok verificatie (0-6, standaard: 1)</translation>
    </message>
    <message>
        <source>Use OpenSSL (https) for JSON-RPC connections</source>
        <translation>Gebruik OpenSSL (https) voor JSON-RPC verbindingen
</translation>
    </message>
    <message>
        <source>Server certificate file (default: server.cert)</source>
        <translation>Certificaat-bestand voor server (standaard: server.cert)
</translation>
    </message>
    <message>
        <source>Server private key (default: server.pem)</source>
        <translation>Geheime sleutel voor server (standaard: server.pem)
</translation>
    </message>
    <message>
        <source>Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</source>
        <translation>Aanvaardbare sleuteltypen (standaard: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)</translation>
    </message>
    <message>
        <source>Cannot obtain a lock on data directory %s.  Lambocoin is probably already running.</source>
        <translation>Blokkeren van data folder %s is niet gelukt. Lambocoin is mogelijk al opgestart.</translation>
    </message>
    <message>
        <source>Lambocoin</source>
        <translation>Lambocoin</translation>
    </message>
    <message>
        <source>Error loading wallet.dat: Wallet requires newer version of Lambocoin</source>
        <translation>Fout geconstateerd bij het laden van wallet.dat: Portemonnee vereist een nieuwere versie van Lambocoin</translation>
    </message>
    <message>
        <source>Wallet needed to be rewritten: restart Lambocoin to complete</source>
        <translation>Portemonnee dient opnieuw bewerkt te worden: start Lambocoin opnieuw op om te voltooien</translation>
    </message>
    <message>
        <source>Warning: Please check that your computer's date and time are correct.  If your clock is wrong Lambocoin will not work properly.</source>
        <translation>Waarschuwing: controleer of de datum en tijd op uw computer correct zijn. Indien uw klok verkeerd staat, zal Lambocoin niet goed werken</translation>
    </message>
    <message>
        <source>Loading addresses...</source>
        <translation>Adressen aan het laden...</translation>
    </message>
    <message>
        <source>Loading block index...</source>
        <translation>Blokindex aan het laden...</translation>
    </message>
    <message>
        <source>Error loading blkindex.dat</source>
        <translation>Fout bij laden blkindex.dat</translation>
    </message>
    <message>
        <source>Loading wallet...</source>
        <translation>Portemonnee aan het laden...</translation>
    </message>
    <message>
        <source>Error loading wallet.dat: Wallet corrupted</source>
        <translation>Fout bij laden wallet.dat: Portemonnee corrupt</translation>
    </message>
    <message>
        <source>Error loading wallet.dat</source>
        <translation>Fout bij laden wallet.dat</translation>
    </message>
    <message>
        <source>Cannot downgrade wallet</source>
        <translation>Kan portemonnee niet degraderen</translation>
    </message>
    <message>
        <source>Cannot initialize keypool</source>
        <translation>Kan sleutelpoel niet initaliseren</translation>
    </message>
    <message>
        <source>Cannot write default address</source>
        <translation>Kan niet schrijven naar standaard adres</translation>
    </message>
    <message>
        <source>Rescanning...</source>
        <translation>Opnieuw aan het scannen ...</translation>
    </message>
    <message>
        <source>Done loading</source>
        <translation>Klaar met laden</translation>
    </message>
    <message>
        <source>Warning: -paytxfee is set very high.  This is the transaction fee you will pay if you send a transaction.</source>
        <translation>Waarschuwing: -paytxfee is zeer hoog ingesteld.  Dit zijn de transactiekosten die u betaalt bij het versturen van een transactie.</translation>
    </message>
    <message>
        <source>To use the %s option</source>
        <translation>Gebruik de %s optie</translation>
    </message>
    <message>
        <source>Error</source>
        <translation>Fout</translation>
    </message>
    <message>
        <source>An error occurred while setting up the RPC port %i for listening: %s</source>
        <translation>Een fout geconstateerd met het opzetten van RPC port %i om te luisteren: %s</translation>
    </message>
    <message>
        <source>You must set rpcpassword=<password> in the configuration file:
%s
If the file does not exist, create it with owner-readable-only file permissions.</source>
        <translation>Je moet rpcpassword=<password> in het configuratie bestand instellen:
%s
Indien het bestand niet bestaat, maak het aan met alleen gebruikers leesrechten op het bestand.</translation>
    </message>
    <message>
        <source>Error: Wallet locked, unable to create transaction  </source>
        <translation>Fout: Portemonnee is gesloten, kan geen nieuwe transactie aanmaken</translation>
    </message>
    <message>
        <source>Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds  </source>
        <translation>Fout: Deze transactie vereist minstens %s transactie kosten vanwege het bedrag, moeilijkheid, of recent ontvangen fondsen</translation>
    </message>
    <message>
        <source>Error: Transaction creation failed  </source>
        <translation>Fout: Aanmaak transactie mislukt</translation>
    </message>
    <message>
        <source>Sending...</source>
        <translation>Versturen...</translation>
    </message>
    <message>
        <source>Error: The transaction was rejected.  This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
        <translation>Fout: De transactie was afgewezen. Dit kan gebeuren als u eerder uitgegeven munten opnieuw wilt versturen, zoals wanneer u een kopie van uw wallet.dat heeft gebruikt en in de kopie deze munten zijn gemarkeerd als uitgegeven, maar in de huidige nog niet.</translation>
    </message>
    <message>
        <source>Invalid amount</source>
        <translation>Onjuist bedrag</translation>
    </message>
    <message>
        <source>Insufficient funds</source>
        <translation>Onvoldoende fondsen</translation>
    </message>
</context>
</TS>


#import <Foundation/Foundation.h>

#import <WebDriverAgentLib/FBCommandStatus.h>
#import <WebDriverAgentLib/FBResponsePayload.h>
#import <WebDriverAgentLib/FBRoute.h>
#import <WebDriverAgentLib/FBResponsePayload.h>

NS_ASSUME_NONNULL_BEGIN

/**
 Protocol for Classes to declare intent to implement responses to commands
 */
@protocol FBCommandHandler <NSObject>

/**
 * Should return map of FBRouteCommandHandler block with keys as supported routes
 *
 * @return map an NSArray<FBRoute *> of routes.
 */
+ (NSArray *)routes;

@optional
/**
 * @return BOOL deciding if class should be added to route handlers automatically, default (if not implemented) is YES
 */
+ (BOOL)shouldRegisterAutomatically;

@end

NS_ASSUME_NONNULL_END


package io.budgetapp.configuration;

import com.bazaarvoice.dropwizard.assets.AssetsBundleConfiguration;
import com.bazaarvoice.dropwizard.assets.AssetsConfiguration;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.budgetapp.model.Budget;
import io.budgetapp.model.Category;
import io.dropwizard.Configuration;
import io.dropwizard.db.DataSourceFactory;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 *
 */
public class AppConfiguration extends Configuration implements AssetsBundleConfiguration {

    @Valid
    @NotNull
    private DataSourceFactory database = new DataSourceFactory();

    @Valid
    @NotNull
    private final AssetsConfiguration assets = new AssetsConfiguration();

    @Valid
    @NotNull
    private List<Category> categories = new ArrayList<>();

    @Valid
    @NotNull
    @JsonProperty("budgets")
    private Map<String, List<Budget>> budgets = new LinkedHashMap<>();

    public DataSourceFactory getDataSourceFactory() {
        return database;
    }

    @Override
    public AssetsConfiguration getAssetsConfiguration() {
        return assets;
    }

    @JsonProperty("assets")
    public AssetsConfiguration getAssets() {
        return assets;
    }

    @JsonProperty("database")
    public void setDatabase(DataSourceFactory database) {
        this.database = database;
    }

    @JsonProperty("categories")
    public void setCategories(List<Category> categories) {
        this.categories = categories;
    }

    public void setBudgets(Map<String, List<Budget>> budgets) {
        this.budgets = budgets;
    }

    public List<Category> getCategories() {
        return categories;
    }

    public Map<String, List<Budget>> getBudgets() {
        return budgets;
    }
}


Usage Examples
==============

Pika has various methods of use, between the synchronous BlockingConnection adapter and the various asynchronous connection adapter. The following examples illustrate the various ways that you can use Pika in your projects.

Pika有很多种使用方法，包括BlockingConnection适配器和各种异步连接适配器之间。下面的例子说明，你可以在你的项目中使用Pika的各种方法。

.. toctree::
   :glob:
   :maxdepth: 1

   examples/using_urlparameters
   examples/connecting_async
   examples/blocking_basic_get
   examples/blocking_consume
   examples/blocking_consumer_generator
   examples/comparing_publishing_sync_async
   examples/blocking_delivery_confirmations
   examples/blocking_publish_mandatory
   examples/asynchronous_consumer_example
   examples/asynchronous_publisher_example
   examples/twisted_example
   examples/tornado_consumer


## m

---

- [Usage](#usage)
- [Binding to data](#binding-to-data)
- [Using HTML entities](#using-html-entities)
- [Accessing the real DOM element](#accessing-the-real-dom-element)
- [Persisting config data](#persisting-config-data)
- [Destructors](#destructors)
- [Persisting DOM elements across route changes](#persisting-dom-elements-across-route-changes)
- [SVG](#svg)
- [Dealing with focus](#dealing-with-focus)
- [Dealing with sorting and deleting in lists](#dealing-with-sorting-and-deleting-in-lists)
- [Component shorthand](#component-shorthand)
- [Signature](#signature)
- [The `config` attribute](#the-config-attribute)
---

This is a convenience method to compose virtual elements that can be rendered via [`m.render()`](mithril.render.md).

You are encouraged to use CSS selectors to define virtual elements. See "Signature" section for details.

---

### Usage

You can use simple tag selectors to make templates resemble HTML:

```javascript
m("br"); //yields a virtual element that represents <br>

m("div", "Hello"); //yields <div>Hello</div>

m("div", {class: "container"}, "Hello"); //yields <div class="container">Hello</div>
```

Note that the output value from `m()` is not an actual DOM element. In order to turn the virtual element into a real DOM element, you must call [`m.render()`](mithril.render.md).

```javascript
m.render(document.body, m("br")); //puts a <br> in <body>
```

You can also use more complex CSS selectors:

```javascript
m(".container"); //yields <div class="container"></div>

m("#layout"); //yields <div id="layout"></div>

m("a[name=top]"); //yields <a name="top"></a>

m("[contenteditable]"); //yields <div contenteditable></div>

m("a#google.external[href='http://google.com']", "Google"); //yields <a id="google" class="external" href="http://google.com">Google</a>
```

Each `m()` call creates a virtual DOM element, that is, a Javascript object that represents a DOM element, and which is eventually converted into one.

You can, of course, nest virtual elements:

```javascript
m("ul", [
	m("li", "item 1"),
	m("li", "item 2"),
]);

/*
yields
<ul>
	<li>item 1</li>
	<li>item 2</li>
</ul>
*/
```

---

The CSS selector syntax (e.g. `a#google.external[href='http://google.com']`) is meant to be used for declaring static attributes in the element, i.e. attribute values that don't change dynamically when the user interacts with the app.

The `attributes` argument (i.e. the second parameter in the `m("div", {class: "container"}, "Hello")` example) is meant to be used for attributes whose values we want to dynamically populate.

For example, let's say that you're generating a link from an entry that comes from a web service:

```javascript
//assume the variable `link` came from a web service
var link = {url: "http://google.com", title: "Google"}

m("a", {href: link.url}, link.title); //yields <a href="http://google.com">Google</a>
```

Here's a less trivial example:

```javascript
var links = [
    {title: "item 1", url: "/item1"},
    {title: "item 2", url: "/item2"},
    {title: "item 3", url: "/item3"}
];

m.render(document.body, [
    m("ul.nav",
        links.map(function(link) {
            return m("li",
                m("a", {href: link.url}, link.title)
            );
        })
    )
]);
```

yields:

```markup
<body>
    <ul class="nav">
        <li><a href="/item1">item 1</a></li>
        <li><a href="/item2">item 2</a></li>
        <li><a href="/item3">item 3</a></li>
    </ul>
</body>
```

As you can see, flow control is done with vanilla Javascript. This allows the developer to abstract away any aspect of the template at will.

---

Note that you can use both Javascript property names and HTML attribute names to set values in the `attributes` argument, but you should pass a value of appropriate type. If an attribute has the same name in Javascript and in HTML, then Mithril assumes you're setting the Javascript property.

```javascript
m("div", {class: "widget"}); //yields <div class="widget"></div>

m("div", {className: "widget"}); //yields <div class="widget"></div>

m("button", {onclick: alert}); //yields <button></button>, which alerts its event argument when clicked

//note this uses the Javascript syntax (uppercase "O") for `readonly`
//in order to set the boolean javascript property instead of the HTML attribute
m("input", {readOnly: true}); //yields <input readonly />

//using the HTML attribute name will call `setAttribute`, which may not be what you want
m("input", {readonly: false}); //yields <input readonly="false" />, which is still readonly
```

---

Note that you can use JSON syntax if the attribute name you are setting has non-alphanumeric characters:

```javascript
m("div", {"data-index": 1}); //yields <div data-index="1"></div>
```

You can set inline styles like this:

```javascript
m("div", {style: {border: "1px solid red"}}); //yields <div style="border:1px solid red;"></div>
```

Note that in order to keep the framework lean, Mithril does not auto-append units like `px` or `%` to any values. Typically, you should not even be using inline styles to begin with (unless you are dynamically changing them).

Mithril also does not auto-camel-case CSS properties on inline style attributes, so you should use the Javascript syntax when setting them via Javascript objects:

```javascript
m("div", {style: {textAlign: "center"}}); //yields <div style="text-align:center;"></div>
m("div", {style: {cssFloat: "left"}}); //yields <div style="float:left;"></div>

//this does not work
m("div", {style: {"text-align": "center"}});
m("div", {style: {float: "left"}});
```

You can find the [Javascript syntax for all the CSS rules here](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Properties_Reference).

You can, however, use CSS syntax when defining style rules as inline strings:

```javascript
m("div[style='text-align:center']"); //yields <div style="text-align:center;"></div>
```

One caveat of using the CSS syntax is that it clobbers the `style` attribute in the DOM element on redraws, so this syntax is not appropriate if you need to use it in conjunction with 3rd party tools that modify the element's style outside of Mithril's templates (e.g. via `config`, which is explained below)

---

### Binding to data

In order to stay flexible, Mithril doesn't provide helpers for bi-directional bindings out of the box. However, bindings can be implemented easily:

```javascript
//a data store
var name = m.prop("")

//binding the data store in a view
m("input", {oninput: m.withAttr("value", name), value: name()})
```

In the code above, the `oninput` event handler updates the `name` getter-setter, and the Mithril auto-redrawing system redraws the template in order to update the displayed value. You can read more about the [`m.prop` getter-setter utility here](mithril.prop.md) and the [`m.withAttr` event handler factory here](mithril.withAttr.md). You can also [learn how the redrawing system works here](auto-redrawing.md).

Note that Mithril always considers the model layer data to be canonical. This means that in the code below, the input on screen will overwritten by the model data any time a redraw happens:

```javascript
//note that we are not updating the value of the `name` getter-setter via an event handler
//redraws will always overwrite the current UI value with the value of `name()`
m("input", {value: name()})
```

Expressiveness can be achieved using standard refactoring techniques:

```javascript
//refactor the binding to a simple helper
var binds = function(prop) {
	return {oninput: m.withAttr("value", prop), value: prop()}
}

//a data store
var name = m.prop("")

//binding the data store in a view
m("input", binds(name))
```

Here's an example of a more aggressive refactor:

```javascript
//refactor the binding to a simple helper
var input = function(prop) {
	return m("input", {oninput: m.withAttr("value", prop), value: prop()})
}

//a data store
var name = m.prop("")

//binding the data store in a view
input(name)
```

Alternatively, you can also explore other techniques in order to achieve better [performance](http://lhorie.github.io/mithril-blog/asymmetrical-data-bindings.html) and [expressiveness](http://lhorie.github.io/mithril-blog/extending-the-view-language.html).

---

### Using HTML entities

By default, Mithril escapes HTML strings in order to help prevent XSS attacks.

```javascript
m("div", "×") //becomes <div>&times;</div>
```

You can unescape trusted HTML strings by using [`m.trust`](mithril.trust.md)

```javascript
m("div", m.trust("×")) //becomes <div>×</div>
```

---

#### Accessing the real DOM element

You can define a non-HTML-standard attribute called `config`. This special parameter allows you to call methods on the DOM element after it gets created.

This is useful, for example, if you declare a `canvas` element and want to use the Javascript API to draw:

```javascript
function draw(element, isInitialized, context) {
	//don't redraw if we did once already
	if (isInitialized) return;

	var ctx = element.getContext("2d");
	/* draws stuff */
}

var view = [
	m("canvas", {config: draw})
]

//this creates the canvas element, and therefore, `isInitialized` is false
m.render(document.body, view);

//here, isInitialized is `true`
m.render(document.body, view);
```

One common way of using `config` is in conjunction with [`m.route`](mithril.route.md), which is an unobtrusive extension to links that allow Mithril's routing system to work transparently regardless of which routing mode is used.

```javascript
//this link can use any of Mithril's routing system modes
//(i.e. it can use either the hash, the querystring or the pathname as the router implementation)
//without needing to hard-code any syntax (`#` or `?`) in the `href` attribute.
m("a[href='/dashboard']", {config: m.route}, "Dashboard");
```

The `config` mechanism can also be used to put focus on form inputs, and call methods that would not be possible to execute via the regular attribute syntax.

Also note that the `config` callback only runs after a rendering lifecycle is done. Therefore, you should not use `config` to modify controller and model values, if you expect these changes to render immediately. Changes to controller and model values in this fashion will only render on the next `m.render` or `m.mount` call.

You can use this mechanism to attach custom event listeners to controller methods (for example, when integrating with third party libraries), but you are responsible for making sure the integration with Mithril's autoredrawing system is in place. See the [integration guide](integration.md) for more information.

You can also use it to attach events to other elements (for example, `window.onresize`), but you should remove such event handlers via `ctx.onunload` to avoid surprises.

---

#### Persisting config data

The third argument for `config` allows you to map data to a virtual DOM element in a way that persists across redraws. This is useful when a `config` instantiates 3rd party classes and accesses the instance on redraws.

The example below shows a contrived redraw counter. In it, the count is stored in the context object and re-accessed on each redraw.

```javascript
function alertsRedrawCount(element, isInit, context) {
	if (!isInit) context.count = 0
	alert(++context.count)
}

m("div", {config: alertsRedrawCount})
```

---

#### Destructors

If the `context` object that is passed to a `config` function has a property called `onunload`, this function will be called when the element gets detached from the document by Mithril's diff engine.

This is useful if there are cleanup tasks that need to be run when an element is destroyed (e.g. clearing `setTimeout`'s, etc)

```javascript
function unloadable(element, isInit, context) {
	context.timer = setTimeout(function() {
		alert("timed out!");
	}, 1000);

	context.onunload = function() {
		clearTimeout(context.timer);
		console.log("unloaded the div");
	}
};

m.render(document, m("div", {config: unloadable}));

m.render(document, m("a")); //logs `unloaded the div` and `alert` never gets called
```

---

#### Persisting DOM elements across route changes

When using the [router](mithril.route.md), a route change recreates the DOM tree from scratch in order to unload plugins from the previous page. If you want to keep a DOM element intact across a route change, you can set the `retain` flag in the config's context object.

In the example below, there are two routes, each of which loads a component when a user navigates to their respective URLs. Both components use a `menu` template, which contains links for navigation between the two components, and an expensive-to-reinitialize element. Setting `context.retain = true` in the element's config function allows the span to stay intact after a route change.

```javascript
//a menu template
var menu = function() {
	return m("div", [
		m("a[href='/']", {config: m.route}, "Home"),
		m("a[href='/contact']", {config: m.route}, "Contact"),
		//an expensive-to-initialize DOM element
		m("span", {config: persistent})
	])
}
//a configuration that persists across route changes
function persistent(el, isInit, context) {
	context.retain = true

	if (!isInit) {
		//only runs once, even if you move back and forth between `/` and `/contact`
		doSomethingExpensive(el)
	}
}

//components that use the menu above
var Home = {
	controller: function() {},
	view: function() {
		return m("div", [
			menu(),
			m("h1", "Home")
		])
	}
}
var Contact = {
	view: function() {
		return m("div", [
			menu(),
			m("h2", "Contact")
		])
	}
}

m.route(document.body, "/", {
	"/": Home,
	"/contact": Contact
})
```

Note that even if you set `context.retain = true`, the element will still be destroyed and recreated if it is different enough from the existing element. An element is considered "different enough" if:

- the tag name changes, or
- the list of HTML attributes changes, or
- the value of the element's id attribute changes

In addition, setting `context.retain = false` will also cause the element to be recreated, even if it is not considered different enough.

---

#### SVG

You can use Mithril to create SVG documents (as long as you don't need to support browsers that don't support SVG natively).

Mithril automatically figures out the correct XML namespaces when it sees an SVG island in the virtual DOM tree.

```javascript
m("svg[height='200px'][width='200px']", [
	m("image[href='foo.jpg'][height='200px'][width='200px']")
])
```

---

#### Dealing with focus

The virtual DOM diffing algorithm has a weakness: a naive diff is not aware of the identity of DOM elements. In practice, this means performing operations like shifting an item from the beginning of a list would cause every element in the list to be diffed and potentially recreated. Another side-effect is that UI state like input focus is not tracked correctly if the focused element moves around, and likewise, state for 3rd party plugins that are added via `config` can also end up in the wrong element.

Fortunately, with Mithril, it's possible for developers to attach an identity key to elements so that array operations like shift, splice and sort only affect the minimum amount of elements required, leaving the rest of the DOM elements untouched when a redraw happens. This allows us to maintain input focus and plugin state correctly.

To maintain the identities of DOM elements, you need to add a `key` property to the direct children of the array that you're planning to modify. The key for each child must be unique among a list of sibling DOM elements, but it does not need to be globally unique. Also, keys must be either strings or numbers.

```javascript
m("ul", [
	items.map(function(item) {
		return m("li", {key: item.id}, [
			m("input")
		]);
	})
]);
```

In the example above, input focus would be maintained correctly after a redraw even if `items` got sorted or reversed. The key is defined in the `li`, which is the closest element to the `items` array, not directly on the `input`, even though we want to track focus on the input.

Note that in addition to the presence of the `key` attribute, diffing rules also apply in determining whether an element is recreated. Elements are recreated if either their node name changes, or if the list of attribute names change, or if the ID attribute changes. To avoid surprises, be sure to change only attribute values, using `undefined` or `null` as values if appropriate, rather than conditionally substituting attribute dictionaries altogether.

```javascript
//avoid using this idiom
m("li", selected ? {class: "active"} : {})

//use this idiom instead
m("li", {class: selected ? "active" : ""})
```

---

### Dealing with sorting and deleting in lists

As with input focus, we can maintain referential integrity between data in a list and the respective DOM representation by using keys.

```javascript
m("ul", [
	items.map(function(item) {
		return m("li", {key: item.id}, [
			m("input")
		]);
	})
]);
```

You should always use keys if you need to sort lists, remove items from them or splice them in any way.

---

### Component Shorthand

If the first argument to `m()` is a component, it acts as an alias of `m.component()`

```javascript
var MyComponent = {
	controller: function() {
		return {greeting: "hello"}
	},
	view: function(ctrl, args) {
		return m("h1", ctrl.greeting + " " + args.data)
	}
}

m.render(document.body, [
	//the two lines below are equivalent
	m(MyComponent, {data: "world"}),
	m.component(MyComponent, {data: "world"})
])
```

See [components](mithril.component.md) for more information.

---

### Signature

[How to read signatures](how-to-read-signatures.md)

```clike
VirtualElement m(String selector [, Attributes attributes] [, Children... children])

where:
	VirtualElement :: Object { String tag, Attributes attributes, Children children }
    Attributes :: Object<any | void config(DOMElement element, Boolean isInitialized, Object context, VirtualElement vdom)>
	Children :: String text | VirtualElement virtualElement | Component | SubtreeDirective directive | Array<Children children>
	Component :: Object { Function? controller, Function view }
	SubtreeDirective :: Object { String subtree }
```

-	**String selector**

	This string should be a CSS rule that represents a DOM element.

	Only tag, id, class and attribute selectors are supported.

	If the tag selector is omitted, it defaults to `div`.

	Note that if the same attribute is defined in the both `selector` and `attributes` parameters, the value in `attributes` is used.

	For developer convenience, Mithril makes an exception for the `class` attribute: if there are classes defined in both parameters, they are concatenated as a space separated list. It does not, however, de-dupe classes if the same class is declared twice.

	*Examples:*

	`"div"`

	`"#container"`

	`".active"`

	`"[title='Application']"`

	`"div#container.active[title='Application']"`

	`".active#container"`

-	**Attributes attributes** (optional)

	This key-value map should define a list of HTML attributes and their respective values.

	You can use both HTML and Javascript attribute names. For example, both `class` and `className` are valid.

	Values' types should match the expected type for the respective attribute.

	For example, the value for `className` should be a string.

	When a attribute name expects different types for the value in HTML and Javascript, the Javascript type should be used.

	For example, the value for the `onclick` attribute should be a function.

	Similar, setting the value of attribute `readonly` to `false` is equivalent to removing the attribute in HTML.

	It's also possible to set values to Javascript-only properties, such as `hash` in a `<a>` element.

	Note that if the same attribute is defined in the both `selector` and `attributes` parameters, the value in `attributes` is used.

	For developer convenience, Mithril makes an exception for the `class` attribute: if there are classes defined in both parameters, they are concatenated as a space separated list. It does not, however, de-dupe classes if the same class is declared twice.

	*Examples:*

	`{ title: "Application" }`

	`{ onclick: function(e) { /*do stuff*/ } }`

	`{ style: {border: "1px solid red"} }`

-	#### The `config` attribute

	**void config(DOMElement element, Boolean isInitialized, Object context, VirtualElement vdom)** (optional)

	You can define a non-HTML-standard attribute called `config`. This special parameter allows you to call methods on the DOM element after it gets created.

	This is useful, for example, if you declare a `canvas` element and want to use the Javascript API to draw:

	```javascript
	function draw(element, isInitialized) {
		//don't redraw if we did once already
		if (isInitialized) return;

		var ctx = element.getContext("2d");
		/* draws stuff */
	}

	var view = [
		m("canvas", {config: draw})
	]

	//this creates the canvas element, and therefore, `isInitialized` is false
	m.render(document.body, view);

	//here, isInitialized is `true`
	m.render(document.body, view);
	```

	One common way of using `config` is in conjunction with [`m.route`](mithril.route.md), which is an unobtrusive extension to links that allow Mithril's routing system to work transparently regardless of which routing mode is used.

	```javascript
	//this link can use any of Mithril's routing system modes
	//(i.e. it can use either the hash, the querystring or the pathname as the router implementation)
	//without needing to hard-code any syntax (`#` or `?`) in the `href` attribute.
	m("a[href='/dashboard']", {config: m.route}, "Dashboard");
	```

	The `config` mechanism can also be used to put focus on form inputs, and call methods that would not be possible to execute via the regular attribute syntax.

	Also note that the `config` callback only runs after a rendering lifecycle is done. Therefore, you should not use `config` to modify controller and model values, if you expect these changes to render immediately. Changes to controller and model values in this fashion will only render on the next `m.render` or `m.mount` call.

	You can use this mechanism to attach custom event listeners to controller methods (for example, when integrating with third party libraries), but you are responsible for making sure the integration with Mithril's autoredrawing system is in place. See the [integration guide](integration.md) for more information.

	You can also use it to attach events to other elements (for example, `window.onresize`), but you should remove such event handlers via `ctx.onunload` to avoid surprises.

	-	**DOMElement element**

	The DOM element that corresponds to virtual element defined by the `m()` call.

	-	**Boolean isInitialized**

	Whether this is the first time we are running this function on this element. This flag is false the first time it runs on an element, and true on redraws that happen after the element has been created.

	-	**Object context**

	An object that retains its state across redraws. It can be used to store instances of 3rd party classes that need to be accessed more than one time throughout the lifecycle of a page.

	The example below shows a contrived redraw counter. In it, the count is stored in the context object and re-accessed on each redraw.

	```javascript
	function alertsRedrawCount(element, isInit, context) {
		if (!isInit) context.count = 0
		alert(++context.count)
	}

	m("div", {config: alertsRedrawCount})
	```

	If the `context` object that is passed to a `config` function has a property called `onunload`, this function will be called when the element gets detached from the document by Mithril's diff engine.

	This is useful if there are cleanup tasks that need to be run when an element is destroyed (e.g. clearing `setTimeout`'s, etc)

	```javascript
	function unloadable(element, isInit, context) {
		context.timer = setTimeout(function() {
			alert("timed out!");
		}, 1000);

		context.onunload = function() {
			clearTimeout(context.timer);
			console.log("unloaded the div");
		}
	};

	m.render(document, m("div", {config: unloadable}));

	m.render(document, m("a")); //logs `unloaded the div` and `alert` never gets called
	```

	-	**VirtualElement vdom**

	The virtual DOM element to which the `config` function is attached

-	**Children children** (optional)

	If this argument is a string, it will be rendered as a text node. To render a string as HTML, see [`m.trust`](mithril.trust.md)

	If it's a VirtualElement, it will be rendered as a DOM Element.

	If it's a [component](mithril.component.md), the component will be instantiated and managed internally by Mithril

	If it's a list, its contents will recursively be rendered as appropriate and appended as children of the element being created.

	If it's a SubtreeDirective with the value "retain", it will retain the existing DOM tree in place, if any. See [subtree directives.md](mithril.render.md#subtree-directives) for more information.

-	**returns** VirtualElement

	The returned VirtualElement is a Javascript data structure that represents the DOM element to be rendered by [`m.render`](mithril.render.md)