Files
AtreidesAssetsFree/client/i18n/nl.js
T

2538 lines
137 KiB
JavaScript
Raw Normal View History

2026-10-29 11:57:29 +01:00
// Generated, do not edit. sha256:5337809d822cab071fd28371d6976e564034e1f27296fd058188237da0027ce9
export const nl = {
app: { name: 'Atreides Assets' },
common: {
loading: 'Laden…',
loadError: 'Kan gegevens niet laden',
manageAssets: 'Assets beheren',
sessionExpired: 'De sessie is verlopen. Je wordt naar het inlogscherm gestuurd.',
backendSilent: 'De backend antwoordt niet binnen {s} seconden. Draait het server-proces?',
requestTooLarge: 'Het verzoek is te groot.',
fileTooLarge: 'Het bestand is te groot.',
invalidAmount: 'Ongeldige hoeveelheid.',
},
splash: {
quote: '"I must not fear. Fear is the mind-killer."',
logoHint: 'Toon het openingsscherm',
},
attention: {
title: 'Vraagt aandacht',
none: 'Niets dat aandacht vraagt',
integrationNoKeySuffix: ': sleutel vereist, nog niet ingevoerd',
priceGaps: 'Koershistorie: {n} gaten om bij te werken',
usageNear: '{naam}: {calls} van {limiet} aanroepen deze maand',
usageOver: '{naam}: maandlimiet bereikt ({calls} van {limiet})',
actionsReconcilePrefix: 'Reconcile: ',
actionsReconcileSuffix: ' openstaand',
actionsInterestPrefix: 'Rente te boeken: ',
actionsValuationPrefix: 'Waarderingsverschillen: ',
actionsAiPrefix: 'AI-voorstellen: ',
actionsReservationPrefix: 'Reserveringen af te handelen: ',
healthPrefix: 'Bevindingen over uw administratie: ',
backupNever: 'Nog geen back-up gemaakt',
backupStalePrefix: 'Laatste back-up ',
backupStaleSuffix: ' dagen geleden',
healthNever: 'Administratie nog nooit gecontroleerd',
healthStalePrefix: 'Laatste controle ',
healthStaleSuffix: ' dagen geleden',
aiActivityPrefix: 'AI-activiteit: ',
aiActivitySuffix: ' nieuwe aanroep(en)',
licenseChanged: 'De licentie is gewijzigd',
},
commands: {
goingTo: 'Een AI brengt u naar',
stop: 'Stop',
goNow: 'Ga direct',
goAlways: 'Ga direct voortaan',
movedTo: 'Een AI bracht u naar',
countdownBack: 'Toch aftellen',
stopped: 'Tegengehouden door de gebruiker.',
badTarget: 'De opdracht wees niet naar een geldige plek in de app.',
tooLate: 'De opdracht was bijna verlopen toen dit tabblad hem oppakte; er is niet genavigeerd.',
unknownKind: 'Dit tabblad kent deze soort opdracht niet.',
},
license: {
lockedTitle: 'Hoort bij de betaalde versie',
counter: '{n} van {max}',
whatIsPaid: 'Wat zit er in de betaalde versie?',
why_develop: 'Ontwikkelversie: er wordt niets beperkt onder 1.0.0',
why_forced: 'Geforceerd via ASSETAPP_LICENSE_STATE (alleen bij ontwikkelen)',
'why_forced-develop': 'Geforceerd via ASSETAPP_LICENSE_STATE (alleen bij ontwikkelen)',
why_none: 'Geen licentiebestand gevonden',
why_invalid: 'Het licentiebestand is niet geldig',
why_unreadable: 'Het licentiebestand is niet te lezen',
'why_out-of-range': 'De licentie geldt niet voor deze hoofdversie',
'why_unknown-version': 'De versie van de app is niet te bepalen',
why_licensed: 'Geldige licentie',
cardTitle: 'Licentie',
cardFree: 'Deze installatie draait de gratis versie: onbeperkt in tijd, met een kleine '
+ 'administratie en zonder de koppelingen, de bronkeuze en de belastingpagina. Lezen en '
+ 'exporteren blijven altijd werken; er wordt nooit iets weggehaald.',
cardBuy: 'De betaalde versie heft die grenzen op. Hebt u een licentiebestand, zet het dan hieronder '
+ 'neer.',
cardFull: 'Deze installatie draait de volledige versie. Alle grenzen zijn opgeheven en elk '
+ 'onderdeel staat open.',
cardDevelop: 'Dit is een ontwikkelversie: onder 1.0.0 beperkt de app niets.',
cardFacts: 'De licentie is voor {buyer}, afgegeven op {issued} en geldig voor hoofdversie {from} '
+ 'tot en met {to}.',
cardOutOfRange: 'Deze app is versie {version} en valt buiten dat bereik.',
cardProblem: 'Er staat een licentiebestand, maar de app kan er niets mee.',
cardVersion: 'Versie {version}',
signInTitle: 'Aanmelden',
signInIntro: 'Uw licentie hoort bij een nostr-sleutel. Meld u aan om de licenties bij die sleutel op '
+ 'te halen.',
signInLast: 'Laatst aangemeld als {npub}.',
signInExtension: 'Met extensie',
signInExtensionNone: 'Geen nostr-extensie gevonden in deze browser (zoals Alby of nos2x).',
signInKey: 'Met sleutel',
signInNew: 'Nieuwe sleutel',
signInKeyLabel: 'Geheime sleutel (nsec)',
signInKeyHint: 'De sleutel blijft in dit tabblad en wordt nergens bewaard. Na herladen meldt u zich '
+ 'opnieuw aan.',
signInGo: 'Aanmelden',
signInBadKey: 'Dit is geen geldige geheime sleutel. Een nsec begint met nsec1.',
signInNpub: 'Dit is de publieke sleutel (npub). Aanmelden gaat met de geheime sleutel (nsec).',
newKeyTitle: 'Uw nieuwe sleutel',
newKeyIntro: 'Bewaar deze geheime sleutel goed. Wie hem heeft, kan uw licentie ophalen; wie hem '
+ 'kwijt is, kan dat niet meer. De app bewaart hem niet.',
newKeyPublic: 'Publieke sleutel: {npub}',
newKeyCopy: 'Kopiëren',
newKeyCopied: 'Gekopieerd',
newKeyDownload: 'Downloaden',
newKeySaved: 'Ik heb deze sleutel bewaard',
newKeyGo: 'Doorgaan',
newKeyCancel: 'Annuleren',
newKeyFileName: 'nostr-sleutel.txt',
signedIn: 'Aangemeld als {npub}.',
signedInExtension: 'Aangemeld als {npub}, met extensie.',
signOut: 'Afmelden',
otherBuyer: 'De geïnstalleerde licentie hoort bij een andere sleutel.',
licensesLoading: 'Licenties ophalen…',
licensesNone: 'Bij deze sleutel staan nog geen licenties.',
licenseLine: '{level}, hoofdversie {from} tot en met {to}, afgegeven op {issued}.',
level_full: 'Volledige versie',
level_free: 'Gratis versie',
licenseInstalled: 'Geïnstalleerd',
licenseInstall: 'Installeren',
licenseNotValid: 'Deze app aanvaardt deze licentie niet.',
licenseNotCovered: 'Geldt niet voor deze versie.',
buyTitle: 'Kopen',
buyPrice: 'Een volledige licentie voor hoofdversie {major} kost {sats} sats.',
buyClosed: 'De verkoop is op dit moment gesloten.',
buyAway: 'Atreides Services is nu niet bereikbaar, dus kopen kan op dit moment niet. Probeer het later '
+ 'opnieuw.',
buySignInFirst: 'Meld u eerst aan: de licentie komt op uw sleutel te staan.',
buyButton: 'Kopen',
buyInvoice: 'Betaal deze invoice met een Lightning-wallet. Hij is geldig tot {time}.',
buyOpenWallet: 'Openen in wallet',
buyQr: 'QR-code van de invoice, om met een wallet te scannen',
buyCopy: 'Invoice kopiëren',
buyCopied: 'Gekopieerd',
buyWaiting: 'Wachten op de betaling…',
buyPaid: 'Betaald. De licentie wordt uitgegeven…',
buyWaived: 'Kwijtgescholden. De licentie wordt uitgegeven…',
buyExpired: 'De invoice is verlopen zonder betaling.',
buyCanceled: 'De invoice is geannuleerd.',
buyUnderpaid: 'Er is minder betaald dan het bedrag; neem contact op met de verkoper.',
buyAgain: 'Nieuwe order',
buyNotValid: 'De licentie is uitgegeven, maar deze app aanvaardt hem niet. Neem contact op met de verkoper.',
supportTitle: 'Support',
supportIntro: 'Een gesprek met de verkoper, via Atreides Services. Uw berichten gaan van uw aangemelde '
+ 'sleutel uit, en het antwoord leest u hier. Een screenshot kan mee.',
supportAway: 'Atreides Services is nu niet bereikbaar, dus support kan op dit moment niet. Probeer het '
+ 'later opnieuw.',
supportNostr: 'Liever via nostr? Stuur een privébericht aan {name}.',
supportLabel: 'Uw bericht',
supportPlaceholder: 'Typ een bericht…',
supportSend: 'Versturen',
supportSending: 'Versturen…',
supportEmpty: 'Typ eerst een bericht of kies een screenshot.',
supportTooLong: 'Een bericht is hooguit {max} tekens.',
supportAttach: 'Screenshot',
supportAttachHint: 'PNG, JPEG of WebP tot {mb} MB; plakken kan ook.',
supportAttachType: 'Een screenshot is een PNG-, JPEG- of WebP-afbeelding.',
supportAttachTooLarge: 'Een screenshot is hooguit {mb} MB.',
supportRemoveAttachment: 'Screenshot weghalen',
supportScreenshot: 'Screenshot',
supportShowScreenshot: 'Screenshot tonen',
supportRefresh: 'Vernieuwen',
supportThreadLoading: 'Gesprek ophalen…',
supportThreadEmpty: 'Nog geen berichten. Stel hieronder uw vraag.',
supportYou: 'U',
supportSeller: 'Support',
supportAi: 'Support, opgesteld met hulp van AI',
payTitle: 'Betalen met Lightning',
payIntro: 'U betaalt met een Lightning-invoice die de dienst van de verkoper maakt; de app ziet uw wallet '
+ 'niet. Daarvoor hebt u een wallet met sats nodig.',
payGroup_easy: 'De makkelijkste weg, voor kleine bedragen',
payGroup_other: 'Andere apps',
payApp_phoenix: 'is een Lightning-wallet op uw telefoon die zelf een node draait; het kanaal regelt de app '
+ 'voor u. Daarmee scant u de QR-code van de invoice.',
payApp_pocket: 'zet een overboeking van uw bankrekening om in sats en stuurt die via Lightning naar Phoenix. '
+ 'Eenmalig een ID-controle.',
payApp_strike: 'betaalt een invoice direct uit de app, met geld van uw bankrekening. Strike bewaart het '
+ 'saldo en vraagt een ID bij het aanmelden.',
payApp_zeus: 'draait LND op uw telefoon of koppelt aan uw eigen node, zoals die op een Umbrel; kanalen en '
+ 'het vullen regelt u zelf.',
payApp_bringin: 'is een Lightning-wallet met eigen sleutels, en geeft een eigen IBAN om sats te kopen (met '
+ 'ID-controle).',
payNote: 'Stand van oktober 2026: controleer de voorwaarden bij de aanbieder.',
nostrMore: 'Over nostr en uw sleutel',
signInKnown: 'Uw licentie staat op {npub}. Onderteken met die sleutel om licenties op te halen, te kopen '
+ 'of support te vragen; de npub alleen bewijst niet dat u het bent.',
infoNostrHead: 'Wat is nostr?',
infoNostr: 'Nostr is een open protocol waarin uw identiteit een sleutelpaar is. De publieke sleutel '
+ '(npub) is als een adres: die mag iedereen zien. De geheime sleutel (nsec) is als een wachtwoord dat '
+ 'niemand voor u kan herstellen: wie hem heeft, is u.',
infoWhyHead: 'Waarom hangt de licentie aan een sleutel?',
infoWhy: 'Er is geen account en geen e-mailadres nodig. De licentie is ondertekend op uw npub en de '
+ 'app controleert hem zonder internet. Met dezelfde sleutel haalt u hem op elke installatie terug, ook '
+ 'na een herinstallatie.',
infoSignInHead: 'Hoe meldt u zich aan?',
infoSignIn: 'Met een browserextensie zoals Alby of nos2x blijft de sleutel in de extensie en ziet de app '
+ 'hem nooit. Met de sleutel zelf blijft hij in dit tabblad en wordt hij nergens bewaard. Hebt u nog '
+ 'geen sleutel, maak er dan hier een en bewaar hem goed.',
infoZapHead: 'En een zap?',
infoZap: 'Een zap (NIP-57) is een Lightning-betaling met een nostr-bewijs erbij, bedoeld als fooi onder een '
+ 'bericht. Voor de licentie is dat niet nodig: een gewone invoice volstaat, en de licentie staat toch al '
+ 'op uw sleutel.',
link_nostrHow: 'nostr.how: wat nostr is, voor beginners',
link_nostrOrg: 'nostr.org: introductie en apps (van LNbits)',
link_alby: 'Alby: browserextensie met nostr en Lightning',
link_nos2x: 'nos2x: browserextensie die alleen ondertekent',
link_lightning: 'lightning.network: het Lightning Network',
infoPrivacyHead: 'Wat weet de verkoper van u?',
infoPrivacy: 'Uw npub en de orders erbij. Een e-mailadres alleen als u dat opgeeft, en dan onherkenbaar '
+ 'gemaakt, zodat het alleen terug te vinden is als u zich er zelf mee meldt.',
name_fiatAccounts: 'Fiatrekeningen',
featTitle: 'Wat de edities bieden',
featFull: 'Volledig',
featFree: 'Gratis',
featFreeOpen: 'Wat de gratis editie krijgt, ligt nog niet vast.',
featNoShot: 'Nog geen schermafdruk van dit onderdeel.',
featIncluded: 'Inbegrepen',
featExcluded: 'Niet inbegrepen',
featUndecided: 'Nog niet bepaald',
featPartial: 'deels',
featPartialTitle: 'Een deel is inbegrepen',
featGroup_overview: 'Overzicht en rapportage',
featGroup_bitcoin: 'Bitcoin en Lightning',
featGroup_records: 'Administratie',
featGroup_prices: 'Koersen',
featGroup_app: 'De app',
feat_dashboard: 'Dashboard met eigen widgets',
feat_wealth: 'Vermogen per asset en account',
feat_returns: 'Rendement per periode',
feat_taxes: 'Belastingen per peildatum',
feat_tracking: 'On-chain tracking van wallets',
feat_lightning: 'Lightning via LND en NWC',
feat_interest: 'Rente en beloningen',
feat_balances: 'Balansen en reconcile',
feat_ownMempool: 'Eigen mempool-node',
feat_priceHistory: 'Prijsgeschiedenis',
feat_sourceChoice: 'Bronkeuze per asset',
feat_providerKeys: 'Eigen koersbronnen en API-sleutels',
feat_signals: 'Bitcoin-signalen, grafieken en widget',
feat_netshare: 'Widget netwerkaandeel',
feat_portfolios: 'Meerdere portefeuilles',
feat_ai: 'AI-koppeling (MCP)',
feat_import: 'Importeren en exporteren',
feat_data: 'Data: de ruwe tabellen',
feat_health: 'Gezondheid: controles op de administratie',
feat_kiosk: 'De app in een eigen venster',
feat_metals: 'Edelmetaal, munten en baren',
unlimited: 'onbeperkt',
dropHere: 'Sleep het licentiebestand hierheen',
dropOr: 'of klik om er een te kiezen',
dropTooBig: 'Dat bestand is veel te groot voor een licentie. Het licentiebestand is een klein '
+ 'JSON-bestand van hooguit een paar regels.',
installOk: 'Licentie opgeslagen. De app is nu de volledige versie.',
installOkFuture: 'Licentie opgeslagen, maar hij geldt niet voor deze hoofdversie. De app blijft '
+ 'voorlopig in de gratis stand.',
installUnreadable: 'Dit is geen geldig licentiebestand: {reason}',
installBadSignature: 'De handtekening hoort niet bij deze licentie, of hij is niet voor deze app '
+ 'afgegeven. Er is niets opgeslagen.',
accountsWhat: 'De gratis versie houdt het op één fiatrekening. Met een licentie voert u al uw '
+ 'bank- en spaarrekeningen in, met rente en al.',
matrixWhat: 'De bronkeuze-matrix hoort bij de betaalde versie. Daarmee bepaalt u per asset welke '
+ 'bron voorgaat en waarop de app terugvalt; zonder die keuze gebruikt hij de standaardbronnen.',
aiWhat: 'De AI-koppeling hoort bij de betaalde versie. Daarmee kan een AI-assistent uw administratie '
+ 'lezen en voorstellen doen, met een logboek van alles wat er gedeeld is.',
keysWhat: 'Eigen provider-sleutels horen bij de betaalde versie. De standaardbronnen werken zonder '
+ 'sleutel; een eigen abonnement bij een koersbron voert u hier in.',
taxWhat: 'De belastingpagina geeft uw vermogen op elke peildatum en het resultaat per jaar, met de '
+ 'bank- en overige bezittingen apart, en laat per post zien waar het getal vandaan komt.',
},
connections: {
lightningPaid: 'Lightning-verbindingen horen bij de betaalde versie.',
ownExplorerPaid: 'Een eigen explorer hoort bij de betaalde versie; de standaardbron blijft werken.',
kindBtcExplorer: 'Bitcoin Blockchain Explorer',
usedByBtcExplorer: 'Gebruikt door: wallet-tracking (Tracking), en koersbron "mempool" (Providers) als die er is.',
newProfile: 'Nieuw profiel',
editProfile: 'Profiel wijzigen',
name: 'Naam',
url: 'Basis-URL',
save: 'Opslaan',
test: 'Test',
edit: 'Wijzig',
delete: 'Verwijder',
active: 'Actief',
notTested: 'Niet getest',
testing: 'Testen…',
statusOk: 'Verbonden',
statusFail: 'Geen verbinding',
blockHeight: 'blokhoogte',
lastChecked: 'Laatst getest:',
badResponse: 'Onverwacht antwoord van de server.',
testUnsupported: 'Testen voor dit soort verbinding wordt nog niet ondersteund.',
cspBlocked: 'Dit adres is toegevoegd nadat de pagina geladen werd, en de browser laat het pas toe na '
+ 'herladen. Herlaad de pagina en test opnieuw.',
confirmDelete: 'Dit profiel verwijderen?',
kindLnd: 'Lightning-node (LND)',
usedByLnd: 'Gebruikt door: de lightning-tracker (volgt in B3). De app praat via de eigen backend met de node: de node is niet publiek; macaroon en tls.cert blijven server-side.',
lndUrl: 'LND-REST-URL',
lndMacaroon: 'Macaroon (hex of base64; read-only gebakken aanbevolen)',
lndTlsCert: 'tls.cert (PEM; optioneel: mét cert gepind en geverifieerd, zónder cert onverifieerd https)',
secretKeepHint: 'leeg laten = ongewijzigd',
lndSynced: 'gesynchroniseerd',
lndNotSynced: 'NIET gesynchroniseerd',
noActive: 'Geen actieve {kind}-verbinding. Kies er één op Systeem → Integraties → Verbindingen.',
nameRequired: 'Naam is verplicht.',
urlScheme: 'Een URL begint met http(s):// of ws(s)://.',
nameInUse: 'Er bestaat al een {kind}-verbinding met de naam "{naam}".',
unknownConnection: 'Verbinding #{id} bestaat niet.',
linkedToSources: 'Deze verbinding is nog gekoppeld aan {n} tracking-bron(nen); ontkoppel die eerst.',
macaroonUnknown: 'Macaroon niet herkend: plak hex (lncli bakemacaroon) of base64(url), bijvoorbeeld de macaroon-parameter uit een lndconnect-URL.',
lndUrlScheme: 'De LND-REST-URL begint met http:// of https:// (een kale ip:poort vult de dialoog zelf aan).',
tlsCertPem: 'tls.cert moet een PEM-certificaat zijn (-----BEGIN CERTIFICATE-----).',
lndUrlMissing: 'De LND-REST-URL ontbreekt.',
lndNoConfig: 'Geen LND-configuratie voor deze verbinding: sla eerst de URL en de macaroon op.',
lndNoMacaroon: 'Geen macaroon voor deze verbinding opgeslagen: wijzig het profiel en plak de macaroon.',
nwcUriInvalid: 'Ongeldige NWC-URI (verwacht nostr+walletconnect://…?relay=…&secret=…).',
nwcPubkeyInvalid: 'Ongeldige wallet-pubkey in de NWC-URI.',
nwcSecretInvalid: 'Ongeldig secret in de NWC-URI.',
nwcRelayInvalid: 'Ongeldige of ontbrekende relay (wss://…) in de NWC-URI.',
nwcBadFormat: 'Onverwacht NIP-04-formaat in het antwoord.',
nwcNoUri: 'Geen NWC-URI voor deze bron opgeslagen. Wijzig de bron en plak de connection-URI.',
lndWantsHttps: 'De node verwacht https op deze poort: plak de tls.cert van LND bij het profiel (de app kiest dan zelf https met pinning), of typ https:// vóór het adres.',
lndTimeout: 'LND-timeout ({s}s): de node is niet bereikbaar. Staat de (WireGuard-)tunnel aan?',
lndUnreachable: 'LND is niet bereikbaar: {reden}.',
lndUnreachableCert: 'LND is niet bereikbaar: {reden}. Het gepinde tls.cert past niet bij deze node: plak het actuele tls.cert bij het profiel.',
nwcRelayRefused: 'De relay weigert het verzoek: {reden}.',
nwcRelayRefusedNoReason: 'De relay weigert het verzoek en zegt niet waarom.',
nwcDecryptFailed: 'Antwoord ontsleutelen mislukt: {reden}',
kindMarket: 'Atreides Services',
usedByMarket: 'De eigen koersdienst, voor koersen, de licentie en support. Adres en token gelden voor de hele installatie, dus voor elke portefeuille. De app praat via de eigen server met de dienst; het token blijft server-side en komt nooit terug in de browser.',
marketConfigure: 'Instellen',
marketDialogTitle: 'Atreides Services instellen',
marketTokenUnset: 'geen token',
marketTokenLicense: 'token van de licentie ({tier})',
marketTokenManual: 'eigen token',
marketTokenPending: 'de app vraagt een token aan met de licentie',
marketTokenNoLicense: 'geen licentie om een token mee aan te vragen',
marketOverrideUrl: 'ontwikkeladres',
marketTestOk: '{app} {version} · {n} instrumenten',
marketSpot: 'Wat de app uit de dienst haalt',
marketSpot_off: 'Alleen de koerslijn binnen de dag; koersen en dagkoersen uit de eigen bronnen',
marketSpot_fallback: 'Ook koersen en dagkoersen, als de eigen bronnen niets geven',
marketSpot_first: 'Ook koersen en dagkoersen, vóór de eigen bronnen; een bron die je zelf koos gaat voor',
marketSpotShort_off: 'dienst: alleen daglijn',
marketSpotShort_fallback: 'dienst: als terugval',
marketSpotShort_first: 'dienst: eerst',
},
marketService: {
urlScheme: 'Het adres van de dienst begint met http:// of https://.',
noToken: 'Er is geen token voor Atreides Services, en geen licentie om er een mee aan te vragen.',
unreachable: 'Atreides Services is niet bereikbaar op {url}: {reason}. De app rekent door op de koersen die hij al heeft.',
timeout: 'Atreides Services antwoordt niet binnen {s}s. Later opnieuw.',
unauthorized: 'Atreides Services weigert het token, ook nadat de app er met de licentie een nieuw voor vroeg.',
signatureRefused: 'Atreides Services weigert de handtekening: {reason}',
salesClosed: 'Er is op dit moment niets te koop.',
checkoutUnavailable: 'De kassa van Atreides Services kan nu geen invoice maken. Probeer het later opnieuw.',
tooManyOrders: 'Atreides Services neemt voor deze sleutel nu geen orders meer aan: {reason}',
unknownOrder: 'Atreides Services kent deze order niet (meer).',
licenseRevoked: 'Atreides Services heeft deze licentie ingetrokken en geeft er geen token meer voor.',
badLicense: 'Atreides Services neemt deze licentie niet aan: {reason}',
supportEmpty: 'Een bericht heeft tekst of een screenshot.',
supportTooLong: 'Een bericht is hooguit {max} tekens.',
supportAttachmentType: 'Atreides Services neemt deze screenshot niet aan: alleen een PNG-, JPEG- of WebP-afbeelding.',
supportAttachmentTooLarge: 'Een screenshot is hooguit {mb} MB.',
supportTooMany: 'Van deze sleutel kwamen vandaag al te veel berichten. Probeer het morgen opnieuw.',
unknownAttachment: 'Atreides Services kent deze screenshot niet.',
tooManyRequests: 'Te veel verzoeken aan Atreides Services. Over {s}s opnieuw.',
monthUnreachable: 'Atreides Services kan maand {month} nu niet lezen (de opslag is niet bereikbaar). Dat is geen gat in de koersen: later opnieuw.',
spotUnreachable: 'Atreides Services heeft de laatste koers wel, maar kan hem nu niet lezen (de opslag is niet bereikbaar). Later opnieuw.',
sourceLive: 'Atreides Services ({source})',
sourceCached: 'Atreides Services, laatst bekend {when} UTC (de dienst antwoordt nu niet)',
unavailable: 'Atreides Services is nog niet klaar, misschien start hij nog. Later opnieuw.',
badAnswer: 'Het antwoord van {url} is niet de API van Atreides Services. Is dit de poort van de API (op de Umbrel 3855, lokaal 8091) en niet die van de beheer-app?',
rejected: 'Atreides Services weigert het verzoek (HTTP {status}, {key}): {reason}',
},
nav: {
overview: 'Overzicht',
manage: 'Beheer',
stam: 'Stamgegevens',
events: 'Gebeurtenissen',
observe: 'Hulpmiddelen',
onchain: 'On-chain',
tax: 'Overzichten',
tools: 'Bitcoin',
system: 'Systeem',
home: 'Dashboard',
settings: 'Instellingen',
portfolios: 'Portefeuilles',
import: 'Importeren en exporteren',
data: 'Data',
health: 'Gezondheid',
ai: 'AI-activiteit',
license: 'Licentie',
integrations: 'Integraties',
connections: 'Verbindingen',
assets: 'Assets',
accounts: 'Accounts',
wealth: 'Vermogen',
locations: 'Locaties',
labels: 'Labels',
trades: 'Aankoop & Verkoop',
transfers: 'Verplaatsingen',
valuations: 'Balansen',
interest: 'Rente & Beloning',
reservations: 'Reserveringen',
taxes: 'Belastingen',
validation: 'Validatie',
tracking: 'Tracking',
conversion: 'Conversie',
'conversion/bitcoin': 'Conversies',
'price-history': 'Prijsgeschiedenis',
charts: 'Signalen & Grafieken',
actions: 'Af te handelen',
guide: 'Hulp',
customize: 'Indeling aanpassen',
},
dashboard: {
width: 'Breedte',
remove: 'Verwijderen',
settings: 'Instellingen',
reorder: 'Versleep om te herschikken',
add: 'Widget toevoegen',
secondCurrency: 'Tweede valuta',
secondNone: 'Geen',
momentum: 'Korte trend als stip',
momentumUp: '{pct}% van de laatste {n} koersbewegingen omhoog',
momentumDown: '{pct}% van de laatste {n} koersbewegingen omlaag',
addNoFit: 'Hier is te weinig ruimte voor de widgets die nog kunnen',
addNone: 'Alles is al toegevoegd',
profile: 'Indeling',
profileNew: 'Nieuwe indeling…',
profileNewPrompt: 'Naam van de nieuwe indeling',
profileRename: 'Naam wijzigen…',
profileRenamePrompt: 'Nieuwe naam voor deze indeling',
profileDelete: 'Deze indeling verwijderen…',
profileDeleteConfirm: 'Deze indeling en al zijn widgets verwijderen? De andere indelingen blijven staan.',
profileSystemHint: 'Standaard kan niet hernoemd worden.',
profileRestart: 'Standaard opnieuw beginnen…',
profileRestartConfirm: 'Standaard opnieuw beginnen? Wat je zelf hebt neergezet gaat weg en de standaardindeling komt ervoor in de plaats.',
nameRequired: 'Een indeling heeft een naam nodig.',
unknownProfile: 'Indeling #{id} bestaat niet.',
lastNotDeletable: 'De laatste indeling kan niet verwijderd worden.',
widget: {
signal: 'Bitcoin-signalen',
notifications: 'Af te handelen',
standing: 'Huidige stand',
spot: 'Koers',
metrics: 'Status',
netshare: 'Netwerk-aandeel',
clocks: 'Wereldklokken',
return: 'Rendement',
},
},
clocks: {
showExchanges: 'Beurzen tonen',
chooseClocks: 'Klokken tonen',
localLabel: 'Mijn tijdzone',
hoverLocal: 'Jouw tijdzone',
hoverSame: 'Gelijk met jouw tijdzone',
listHead: 'Beurzen · in jouw tijd',
opensAt: 'Opent om {tijd}',
opensOn: 'Opent {dag} om {tijd}',
openUntil: 'Open tot {tijd}',
opensIn: 'over {duur}',
closesIn: 'sluit over {duur}',
durMin: '{n} min',
durHourMin: '{n} uur {m} min',
durHours: '{n} uur',
durDay: '1 dag',
durDays: '{n} dagen',
},
netshare: {
noOnchain: 'geen on-chain asset',
zero: 'Nog geen bitcoin in beeld, elke sat is een begin.',
tier: { shrimp: 'Garnaal', crab: 'Krab', octopus: 'Octopus', fish: 'Vis', dolphin: 'Dolfijn', shark: 'Haai', whale: 'Walvis', humpback: 'Bultrug' },
quotesUnder: [
'Ik bezit officieel **{X} miljardste deel** van alle Bitcoin die ooit zal bestaan. Mijn spaarrekening kan inpakken.',
'**{X} miljardste deel** van het Bitcoin-universum is van mij. Wetenschappelijk gezien een stofdeeltje, emotioneel gezien een fortuin.',
'Met mijn aandeel van **{X} miljardste deel** ben ik voor een piepklein deel eigenaar van de toekomst van geld. Nog even en ik koop er een broodje kaas van.',
'Aandeel in het Bitcoin-netwerk: **{X} miljardste deel**. Aandeel in mijn ego erover: 100%.',
'Technisch gezien ben ik nu een Bitcoin-stakeholder. Praktisch gezien heb ik **{X} miljardste deel** van een pizza-aankoop uit 2010.',
'Ik heb **{X} miljardste deel** van alle Bitcoin. Klein begin, groot verhaal om over op te scheppen.',
'Statistisch verwaarloosbaar, emotioneel onbetaalbaar: **{X} miljardste deel** van 21 miljoen munten.',
'Ik bezit een fractie zo klein dat mijn rekenmachine hem afrondt, maar mijn wallet-app niet. **{X} miljardste deel**, en dat laat ik me niet afpakken.',
'Als je alle Bitcoin verdeelt in een miljard stukjes, heb ik er **{X}**. Verdeel het nog verder en ik ben nog steeds trots.',
'Mijn aandeel in het netwerk is **{X} miljardste deel**. Mijn aandeel in de hype eromheen: aanzienlijk groter.',
'**{X} miljardste deel** van Bitcoin is van mij. Genoeg om over op te scheppen, te klein om iets van te kopen.',
'Ik ben voor **{X} miljardste deel** mede-eigenaar van digitaal goud. De rest van het goud is helaas van iemand anders.',
'Nano-investeerder gemeld: **{X} miljardste deel** van het totale aanbod, en trots als een pauw.',
'Klein aandeel, groot verhaal: **{X} miljardste deel** van alle Bitcoin ooit.',
'Ik heb minder Bitcoin dan er sterren zichtbaar zijn met het blote oog, maar wel **{X} miljardste deel** van het netwerk. Vooruitgang is vooruitgang.',
],
quotesOver: [
'Ik bezit een **heel getal** aan Bitcoin. In een wereld van decimalen ben ik een hele munt. En dat mag geweten worden.',
'Met **{Y}** van het netwerk in bezit, mag ik officieel zeggen: ik heb een stukje van de 21 miljoen. Geen kruimel, maar een hap.',
'1 BTC of meer: het moment dat je wallet-app je serieus begint te nemen.',
"Mijn aandeel: **{Y}**. Klein op de schaal van het universum, groot op de schaal van m'n vrienden die geen Bitcoin hebben.",
"Ik zit boven de magische grens van 1 BTC. De rest van m'n leven kan ik dit rustig blijven noemen.",
'**{Y}** van alle Bitcoin die ooit zal bestaan is van mij. Dat getal wordt nooit meer groter. Mijn trots des te meer.',
'Van "miljardste deel" naar "hele munt", een upgrade die geen enkele smartphone kan evenaren.',
'Aandeel in het netwerk: **{Y}**. Aandeel in het vertellen van dit feitje op feestjes: 100%.',
'Ik hoef niet meer te zeggen "nog geen 1 BTC". Ik zeg gewoon "1 BTC". Kleine zin, groot gevoel.',
'**{Y}** van Bitcoin is van mij. Schaars, eindig, en voor altijd een leuk gespreksonderwerp.',
'Van garnaal naar iets groters op de Bitcoin-ladder. Mijn wallet is aan het evolueren.',
'Ik bezit **{Y}** van een asset waar er nooit meer dan 21 miljoen van komen. Zeldzamer dan mijn geduld om dit uit te leggen op verjaardagen.',
],
},
sysmetrics: {
db: 'Database',
calls: 'Calls',
errors: 'Fouten',
window: 'venster',
},
range: {
cycle: 'Ander tijdvak',
pointCarried: '{bron}, koers van {dag}',
pointVia: '{name} ({source})',
day: 'D',
week: 'W',
month: 'M',
year: 'J',
all: 'A',
},
spot: {
noHistory: 'geen historie',
unknownAsset: 'onbekende asset',
},
filter: {
all: 'Alles',
none: 'Niets',
},
actions: {
title: 'Af te handelen',
interestTitle: 'Rente te boeken',
valuationTitle: 'Waarderingsverschillen',
openTitle: 'Nog te doen',
openOne: 'punt open',
openMany: 'punten open',
openNone: 'Niets open',
},
appWindow: {
close: 'Sluiten',
confirmTitle: 'App sluiten',
confirmClose: 'De app en dit venster sluiten? Opnieuw openen gaat met start-app.',
closeUnavailable: 'Sluiten kan alleen op deze computer, in het eigen venster dat de app zelf heeft geopend.',
},
guide: {
title: 'Hulp',
goTo: 'Naar {plek}',
related: 'Zie ook',
newTab: 'Opent in een nieuw tabblad',
figures: {
period: 'Gekozen periode',
sinceBuy: 'Ongerealiseerd en Ingelegd: sinds de aankoop',
inPeriod: 'Rendement, Resultaat, Gerealiseerd',
purchase: 'Aankoop',
yearStart: '1 januari',
now: 'Nu',
cost: 'Kostprijs 191,20',
broughtIn: 'Ingebracht (netto) 154,92',
value: 'Nu: 186,43',
unrealized: 'Ongerealiseerd -4,77',
result: 'Resultaat',
resultAmount: '31,51',
purchaseExchange: 'Aankoop (exchange)',
transfer: 'Verplaatsing',
legendValue: 'Waarde',
legendBroughtIn: 'Ingebracht (netto)',
legendCost: 'Kostprijs van het asset',
roughly: 'is ongeveer',
unrealizedPart: 'Ongerealiseerd',
realized: 'Gerealiseerd',
interest: 'Rente',
},
},
aiProposals: {
title: 'Voorstellen van de AI-koppeling',
intro: 'De AI-koppeling heeft dit voorgesteld. Er is nog niets gewijzigd; pas bij goedkeuren voert '
+ 'de app het uit.',
kindPricePoint: 'Koers vastleggen',
kindAccount: 'Nieuw account',
kindAccountDelete: 'Account verwijderen',
kindValuation: 'Balans',
kindPortfolio: 'Nieuwe portefeuille',
portfolioIn: 'in',
portfolioNote: 'Leeg, en zonder sleutels of data uit deze administratie. Hij wordt niet geopend: '
+ 'wisselen doe je zelf op Systeem → Portefeuilles, en dat is een herstart van de app.',
kindPreference: 'Instelling wijzigen',
preferenceNote: 'Deze instelling geldt voor deze portefeuille en verandert alleen de weergave of '
+ 'een interval, niet de administratie zelf.',
preferenceCurrent: 'nu',
preferenceOn: 'aan',
preferenceOff: 'uit',
kindSourceChoice: 'Bronkeuze',
sourceFirst: 'als eerste',
sourceRemove: 'eruit halen',
sourceChoiceNote: 'De keten zoals hij nu staat zie je op Integraties, Bronkeuze, of op het tabblad Bron van Prijsgeschiedenis.',
unknownKind: 'Onbekend soort voorstel',
ledger: 'grootboek',
diff: 'verschil',
openingBalance: 'Dit wordt een OPENINGSBALANS: er staat geen boeking vóór deze datum, dus de app '
+ 'toont hierna géén verschil. Controleer de stand extra goed.',
irreversible: 'Onomkeerbaar. Wordt niet meegenomen in "Alles goedkeuren".',
acceptDelete: 'Verwijderen',
acceptDeleteConfirm: 'Dit account definitief verwijderen? Dit kan niet ongedaan gemaakt worden. '
+ 'Staan er boekingen, balansen of scans op, dan weigert de app het.',
bulkSkips: '{n} voorstel(len) verwijderen iets en worden overgeslagen door "Alles goedkeuren". '
+ 'Die keur je apart goed.',
bulkNothing: 'Er staat niets open dat in één keer goedgekeurd kan worden. Wat er staat, verwijdert '
+ 'iets en vraagt een aparte bevestiging.',
ownCustody: 'zelf in bewaring',
thirdParty: 'bij een derde partij',
fee: 'kosten',
perUnit: 'per',
accept: 'Goedkeuren',
reject: 'Afwijzen',
acceptAll: 'Alles goedkeuren',
rejectAll: 'Alles afwijzen',
acceptAllConfirm: '{n} voorstellen goedkeuren en uitvoeren?',
rejectAllConfirm: '{n} voorstellen afwijzen? Ze verdwijnen van deze lijst en worden niet uitgevoerd.',
rejectedByUser: 'Afgewezen op Af te handelen',
failed: 'Vorige poging mislukt',
partialTitle: 'Niet alles is gelukt',
partialBody: 'De rest is wel afgehandeld. Deze bleven staan:',
unknownProposal: 'Voorstel {id} bestaat niet meer.',
handled_accepted: 'Voorstel {id} is al goedgekeurd.',
handled_rejected: 'Voorstel {id} is al afgewezen.',
unreadableMoment: 'Onleesbaar moment in voorstel {id}: {moment}.',
prefScopeNotAllowed: 'Dit voorstel wil de instellingen onder "{scope}" zetten, en dat mag niet.',
duplicateValuation: 'Er staat al een balans voor dit account en dit asset op {dag}.',
noPriceForBalance: 'Geen koers in de historie voor {dag}, en een balans kan niet zonder. Stel eerst '
+ 'een koerspunt voor op die datum (propose_price_point), dan kan deze balans erna geboekt worden.',
},
reservations: {
title: 'Reserveringen',
hint: 'Een reservering is een bedrag dat later mogelijk wordt afgeschreven of bijgeboekt. Hij telt nergens '
+ 'mee tot je hem boekt; vanaf zijn datum staat hij op Af te handelen. Vastleggen kan op de tab Reserveringen en in het accountvenster.',
none: 'Geen reserveringen op dit account.',
noneAll: 'Nog geen reserveringen.',
colDate: 'Datum',
colAccount: 'Account',
colDirection: 'Richting',
colAsset: 'Asset',
colAmount: 'Bedrag',
colNote: 'Omschrijving',
dirOut: 'Afschrijving',
dirIn: 'Bijboeking',
due: 'Datum bereikt',
book: 'Boeken',
settle: 'Zonder boeking',
bookTitle: 'Reservering boeken',
otherTo: 'Naar',
otherFrom: 'Van',
outside: 'Buiten de portefeuille',
fill: 'Vul een datum, een asset en een bedrag groter dan nul in.',
confirmSettle: 'Deze reservering afhandelen zonder boeking? Hij verdwijnt dan.',
confirmDelete: 'Deze reservering verwijderen?',
notOpen: 'Deze reservering staat niet meer open.',
cardOne: '1 reservering',
cardMany: '{n} reserveringen',
cardNext: 'eerstvolgende {datum}',
},
notify: {
title: 'Meldingen',
none: 'Niets te doen.',
dismiss: 'Verbergen',
reconcile: 'Bewegingen te reconciliëren',
interest: 'Rente te boeken',
valuation: 'Waarderingsverschillen',
schedule_ended: 'Rente-afspraak afgelopen',
source_proposal: 'Koersbron bevestigen',
ai_proposal: 'Voorstel van de AI',
reservation: 'Reservering af te handelen',
view: 'Bekijken',
hint: {
reconcile: 'Niet-gekoppelde on-chain bewegingen',
interest: 'Bijschrijvingen klaar om te boeken',
valuation: 'Saldo wijkt af van de waardering',
source_proposal: 'Voorgestelde koersbron voor een nieuw asset',
ai_proposal: 'Voorgesteld door de AI-koppeling, wacht op jouw akkoord',
reservation: 'De datum van een reservering is bereikt: boeken of zonder boeking afhandelen',
},
},
integrationLog: {
title: 'Foutenlog',
open: 'Foutenlog',
openHint: 'De mislukte aanroepen van de afgelopen {n} dagen',
lastFailure: 'Laatste fout',
noFailures: 'Geen fouten in de afgelopen {n} dagen.',
allSources: 'Alle bronnen',
service: 'Atreides Services',
colTime: 'Tijdstip',
colSource: 'Bron',
colOperation: 'Aanroep',
colSubject: 'Onderwerp',
colOutcome: 'Uitkomst',
colStatus: 'Status',
colKey: 'Sleutel',
colDetail: 'Toelichting',
colRequestId: 'Verzoek-id',
requestIdHint: 'Dezelfde id staat in de log van Atreides Services.',
outcome_fail: 'Mislukt',
outcome_empty: 'Leeg antwoord',
outcome_refused: 'Niet verstuurd',
},
integrations: {
matrixPaid: 'De bronkeuze-matrix hoort bij de betaalde versie. De app blijft de standaardbronnen gebruiken.',
keysPaid: 'Eigen provider-sleutels horen bij de betaalde versie; de standaardbronnen blijven werken.',
title: 'Integraties',
intro: 'Externe koppelingen en hun endpoints. Per koppeling beheer je de sleutels, zie je de status en test je de verbinding.',
indicatorHint: 'API-activiteit, klik voor integraties en metrics',
baseUrlOrProfile: 'Basis-URL / profiel',
endpoints: 'Endpoints',
coverage: 'Dekking',
noCoverage: 'Geen dekkende bron: leg de dekking vast bij een integratie.',
systemSource: 'Systeembron: {naam}. Hier valt niets te kiezen.',
convertedVia: 'omgerekend naar {munt} via {naam}, de bronkeuze van {valuta}',
sourcesHintTitle: 'Bronkeuze',
coverageUsage: 'Dekking en bronkeuze',
coverageUnchosen: 'gedekt, maar nergens gekozen',
inactiveNoEffect: 'Deze integratie staat uit: de bronkeuze heeft geen effect tot je hem aanzet.',
inactiveHint: 'grijs: de integratie staat uit, dus deze keuze doet niets tot je hem aanzet',
noRateSource: 'geen wisselkoersbron voor {valuta}',
noRateSourceHint: 'Deze bron levert in {valuta}. Kies eerst een bron voor de wisselkoers van {valuta}, dan is hij hier te kiezen.',
method: 'Methode',
path: 'Pad',
auth: 'Authenticatietype',
authYes: 'Vereist sleutel',
authNo: 'Publiek',
authKind: {
none: 'Publiek',
header_key: 'Sleutel in een header',
query_key: 'Sleutel in de URL',
bearer: 'Bearer-token',
basic: 'Gebruikersnaam en wachtwoord',
hmac: 'Ondertekend verzoek (HMAC)',
},
authHeaderName: 'Naam van de header',
authParameterName: 'Naam van de URL-parameter',
keys: 'Sleutels',
keysSet: 'Ingesteld',
keysMissing: 'Niet ingesteld',
keysNone: 'Geen sleutels nodig',
testFail: 'Mislukt',
noBackend: 'backend niet bereikbaar',
saved: 'Opgeslagen',
keysTitle: 'API-sleutels',
keysHint: 'Sleutels worden server-side bewaard; de browser ziet ze nooit. Laat een veld leeg om het ongewijzigd te laten.',
keysEmpty: 'Niet ingesteld',
saveKeys: 'Sleutels opslaan',
api_key: 'API-sleutel',
api_secret: 'API-secret',
capability: 'Soort',
query: 'Query',
symbol: 'Symbool',
date: 'Datum',
active: 'Actief',
authRequired: 'sleutel vereist',
authOptional: 'sleutel optioneel',
authKeyStored: 'sleutel opgeslagen',
autoActivated: 'Integratie geactiveerd (test geslaagd)',
symbolsTitle: 'Input-mapping',
outputsTitle: 'Output-mapping',
hmacTitle: 'HMAC-ondertekening',
authTitle: 'Authenticatie',
keyRequiredCol: 'Sleutel vereist',
kinds: 'Soorten',
yes: 'Ja',
no: 'Nee',
saveAuth: 'Authenticatie opslaan',
readonlyNote: 'Configuratie is in deze versie alleen-lezen.',
testMapTitle: 'Test & map',
runTest: 'Test & map',
testRunning: 'Bezig…',
mappedResult: 'Mapping-resultaat',
rawResponse: 'Ruwe respons',
metricsTitle: 'Metrics',
calls: 'calls',
okCount: 'gelukt',
failCount: 'mislukt',
avgLatency: 'gem.',
maxLatency: 'max',
noMetrics: 'geen calls',
period_uur: 'Laatste uur',
period_dag: 'Vandaag',
period_maand: 'Deze maand',
subtabMapping: 'Velden & mapping',
subtabAuth: 'Auth & sleutels',
subtabTest: 'Test',
subtabMetrics: 'Metrics',
subtabUsage: 'Bronkeuze',
usageNoCoverage: 'Deze bron dekt nog geen asset: leg de dekking vast in de rij.',
quoteCurrency: 'Munt',
chartCalls: 'Calls (gelukt / mislukt)',
chartLatency: 'Latency (max, ms)',
deleteProvider: 'Verwijderen',
cap: { spot: 'Spot', daily_history: 'Daghistorie', history_point: 'Historisch punt' },
tabProviders: 'Providers',
tabSources: 'Bronkeuze',
tabConnections: 'Verbindingen',
sourcesSoon: 'De bronkeuze-matrix (welke integratie levert welke data, per asset en capability) krijgt hier zijn plek. Die bouwen we als volgende stap; tot dan beheer je de bron per asset nog op de Assets-pagina.',
newProvider: 'Nieuwe integratie',
name: 'Naam',
field: 'Veld',
transform: 'Transform',
externalId: 'Externe id',
addEndpoint: 'Endpoint toevoegen',
addSymbol: 'Symbool toevoegen',
addOutput: 'Output toevoegen',
confirmDeleteProvider: 'Deze integratie en al haar configuratie verwijderen?',
confirmDeleteRow: 'Deze regel verwijderen?',
hmacMessageParts: 'Message parts',
hmacHashAlgo: 'Hash-algoritme',
hmacEncoding: 'Encoding',
hmacKeyHeader: 'Key-header',
hmacSignatureHeader: 'Signature-header',
hmacTimestampHeader: 'Timestamp-header',
hmacWindowHeader: 'Window-header',
hmacWindowMs: 'Window (ms)',
saveHmac: 'HMAC opslaan',
clearHmac: 'HMAC wissen',
hmacNone: 'Geen HMAC-ondertekening ingesteld.',
systemNote: 'Systeemprovider, niet bewerkbaar.',
asset: 'Asset',
nameRequired: 'Een integratie heeft een naam nodig.',
keyInUse: 'Er bestaat al een integratie met de sleutel "{key}".',
unknownProvider: 'Integratie "{key}" bestaat niet.',
providerInMatrix: 'Integratie "{key}" staat nog in de bron-matrix ({n} keuze(s)); haal die eerst weg bij Bronkeuze.',
providerHasPrices: 'Integratie "{key}" heeft nog {n} koersrij(en) in de historie; die blijven als bron nodig.',
fieldRequired: '{veld} is verplicht.',
priceCallFailed: 'Koers-call mislukt ({status}).',
price: {
externalIdMissing: 'Het output-pad gebruikt {external_id}, maar er is geen extern id.',
listPathWithoutBrackets: 'Lijst-pad zonder []: "{pad}".',
expectedArray: 'Verwachtte een array op "{pad}".',
expectedObject: 'Verwachtte een object op "{pad}".',
unknownTransform: 'Onbekende transform: "{transform}".',
noOutputMapping: 'Provider {provider}: geen output-mapping voor "{capability}".',
noValidPrice: 'Provider {provider}: geen geldige prijs in de respons.',
limitReached: '{provider}: de maandlimiet van {limiet} aanroepen is bereikt; deze maand gaat er geen verzoek meer uit.',
noExchangeRate: 'Geen wisselkoers voor {valuta} op of kort vóór {datum}; zonder koers is er geen prijs in {munt}.',
invalidDate: 'Provider {provider}: ongeldige datum "{datum}".',
columnsUneven: 'Provider {provider}: de output-kolommen zijn ongelijk van lengte.',
capabilityNotConfigured: 'Provider {provider}: capability "{capability}" is niet geconfigureerd.',
symbolMissing: 'Provider {provider}: {external_id} wordt gebruikt maar er is geen symbool opgegeven.',
templateDateInvalid: 'Provider {provider}: het template gebruikt {date}, maar datum "{datum}" is ongeldig.',
unknownHmacToken: 'Onbekend hmac message-token: "{token}".',
unknownCapability: 'Onbekende capability: "{capability}".',
onlyGet: 'Provider {provider}: alleen GET wordt ondersteund.',
unknownAuthKind: 'Onbekende authenticationKind: "{soort}".',
keyMissing: 'Provider {provider}: een sleutel is verplicht maar ontbreekt of is incompleet.',
parameterNameMissing: 'Provider {provider}: de naam van de URL-parameter ontbreekt (sleutel in de URL).',
headerNameMissing: 'Provider {provider}: de naam van de header ontbreekt (sleutel in een header).',
hmacConfigMissing: 'Provider {provider}: de hmac-configuratie ontbreekt.',
networkError: 'Provider {provider} {capability}: netwerkfout ({reden}).',
httpFailed: 'Provider {provider} {capability} mislukt ({status}){detail}.',
notJson: 'Provider {provider} {capability}: het antwoord is geen JSON ({detail}).',
notFromFixedRate: 'Provider {provider}: "{capability}" kan niet uit een vaste koers komen.',
callFailed: '{label} mislukt ({status}).',
callTimeout: '{label} verlopen (timeout {s}s).',
labelAddress: 'Adres ophalen voor {adres}',
labelAddressTxs: 'Transacties ophalen voor {adres}',
labelAddressTxsPage: 'Transacties (pagina)',
},
scriptLoadFailed: 'Script laden mislukt: {src}',
unknownEndpoint: 'Endpoint {id} bestaat niet.',
quoteCurrencyInvalid: 'Leveringsvaluta "{waarde}" is geen valutacode van drie letters.',
minIntervalInvalid: 'Interval "{waarde}" is geen heel aantal seconden boven nul.',
quoteUnit: 'Eenheid',
quoteUnitNone: 'zoals opgeslagen',
quoteUnitOpt: { ozt: 'per troy ounce' },
quoteUnitInvalid: 'Onbekende eenheid "{waarde}".',
minInterval: 'Interval (s)',
minIntervalApp: 'standaard',
intervalHours: '{n} uur',
intervalMinutes: '{n} min',
intervalSeconds: '{n} s',
callLimitInvalid: 'Een maandlimiet is een heel getal boven nul, niet "{waarde}".',
usageCol: 'Verbruik (maand)',
callLimitCol: 'Maandlimiet',
usageHint: 'Aanroepen deze kalendermaand, gelukt en mislukt samen, tegen de maandlimiet van het abonnement. De testknop telt niet mee.',
unknownSymbolMap: 'Input-mapping {id} bestaat niet.',
catchAll: 'Alle overige',
catchAllHint: 'Geldt voor elk symbool zonder eigen regel. Het veld Symbool blijft dan leeg.',
catchAllSymbol: 'alle overige',
catchAllExists: 'Deze bron heeft al een regel voor alle overige symbolen.',
unknownOutputMap: 'Output-mapping {id} bestaat niet.',
matrixHint: 'Per asset kies je een bron voor de spot en een voor de historie; die keuze geldt overal in de app. Een klik op een lege cel maakt hem de volgende keuze (1, dan 2 als reserve); een klik op een gekozen cel haalt hem weg. Een gele ring is een voorstel dat een klik bevestigt; een lege cel zonder plus is iets wat de bron niet levert. Onder historie vallen een reeks en een koers per datum: de app haalt de reeks als die er is, en per datum wat ontbreekt. Standaard staan alleen assets met meer dan één bron aan; de rest zet je aan in de filter.',
sourceCap: { spot: 'Spot', history: 'Historie' },
mxToSetUp: '{wat} nog in te richten',
mxOpenOne: 'nog 1 keuze open',
mxOpenMany: 'nog {n} keuzes open',
mxAllChosen: 'alles gekozen',
mxServiceHint_first: 'Atreides Services: na een bron die je zelf aanklikte en vóór de bronnen die de app koos. Klik een bron aan om hem vóór de dienst te zetten. De stand staat op Systeem → Integraties → Verbindingen.',
mxServiceHint_fallback: 'Atreides Services: als terugval, na alle gekozen bronnen. De stand staat op Systeem → Integraties → Verbindingen.',
mxProposalsOne: '1 voorstel',
mxProposalsMany: '{n} voorstellen',
},
table: { none: 'Ongegroepeerd', new: 'Nieuw', save: 'Opslaan', cancel: 'Annuleren', search: 'Zoeken…', count: 'Aantal records', edit: 'Bewerken' },
action: { copy: 'Kopiëren' },
dialog: { ok: 'OK', cancel: 'Annuleren', close: 'Sluiten', error: 'Er ging iets mis',
next: 'Volgende', back: 'Terug', finish: 'Afronden', skip: 'Overslaan' },
setup: {
currencyTitle: 'In welke munt is je bankrekening?',
accountsTitle: 'Waar staat het?',
account_wallet: 'Eigen wallet',
account_exchange: 'Exchange',
account_bank: 'Bank',
dashboardTitle: 'Op het dashboard',
widget_standing: 'Stand',
widget_spot: 'Koersen',
finish: 'Inrichten',
persona_bitcoin: 'Alleen bitcoin',
persona_broad: 'Breder',
rerun: 'Inrichten…',
},
notes: {
tab: 'Notities',
when: 'Datum en tijd van de regel',
line: 'Nieuwe regel, Enter voegt hem bovenaan toe',
body: 'Notities bij dit asset. Vrij te bewerken; ze staan ook in het andere detailvenster van dit asset.',
saving: 'Opslaan…',
saved: 'Opgeslagen',
},
error: { panelTitle: 'Er ging iets mis bij het laden van deze sectie', panelHint: 'De rest van de app blijft werken. Details hieronder (ook in de console).' },
blur: { toggle: 'Bedragen verbergen/tonen', showAmounts: 'Bedragen tonen' },
controls: { theme: 'Thema', accent: 'Accent', currency: 'Valuta', dark: 'Donker', light: 'Licht', orange: 'Oranje', lila: 'Lila', blue: 'Blauw', teal: 'Teal', magenta: 'Magenta', indigo: 'Indigo', cyan: 'Cyaan', slate: 'Leisteen', sand: 'Zand', flat: 'Vlak', deep: 'Reliëf', business: 'Zakelijk', glass: 'Glas' },
settings: {
prefBadValue: 'Ongeldige waarde voor {scope}.{key}: {waarde}.',
prefWantsInteger: 'Ongeldige waarde voor {scope}.{key}: {waarde} (een geheel getal verwacht).',
prefBelowMin: '{scope}.{key} mag niet kleiner zijn dan {min}.',
prefAboveMax: '{scope}.{key} mag niet groter zijn dan {max}.',
unknownSetting: 'Onbekende instelling: {key}.',
title: 'Instellingen',
appearance: 'Weergave',
screen: 'Scherm',
region: 'Regio',
profile: 'Profiel',
theme: 'Thema',
accent: 'Accentkleur',
depth: 'Diepte',
depthHint: 'Reliëf geeft de pagina een accentgloed en kaders met schaduw en randlicht; Vlak laat alles egaal. Alleen bij Zakelijk.',
glowBg: 'Achtergrondgloed',
glowBgMotion: 'Achtergrondgloed en animatie',
glowOff: 'Uit',
glowOn: 'Aan',
glowStill: 'Stil',
glowStep: 'Af en toe',
glowAlways: 'Altijd',
glowShape: 'Vorm van de gloed',
glowShapeBlobs: 'Bollen',
glowShapeBands: 'Banen',
rowsel: 'Geselecteerde tabelrij',
rowselLight: 'Lichtval',
rowselTint: 'Tint',
rowselPill: 'Pil',
glass: 'Glas',
glassTransparency: 'Doorzichtigheid',
glassFrost: 'Matheid',
glassDialog: 'Dialoog doorzichtigheid',
glassDefault: 'Standaard',
glassRender: 'Glas tekenen',
glassRenderMimic: 'Nagebootst',
glassRenderReal: 'Echte blur',
motionBlocked: 'Je systeem vraagt om minder beweging, dus de gloed staat stil.',
transparencyBlocked: 'Je systeem vraagt om minder doorzichtigheid, dus het glas is dicht.',
hintTitle: 'Instellingen',
hintProfile: 'Profiel: Zakelijk is vlak en snel, Glas legt er een gloed achter en doorschijnende kaders over.',
hintTheme: 'Thema en accentkleur gelden in beide profielen; de accentkleur kleurt ook de gloed.',
hintGlow: 'Achtergrondgloed en animatie: in Glas drie bollen in de accentkleur. Bij Af en toe verschuift er zo nu en dan één; Altijd beweegt doorlopend en kost het meest rekenwerk.',
hintGlowShape: 'Vorm van de gloed, alleen bij Glas met de gloed aan: Bollen (standaard) zijn drie vlekken die verschuiven; Banen zijn brede lichtbanen in drie lagen die traag uit de rechterbovenhoek vallen, over de stille gloed heen. Bij Af en toe is dat een bui: een tijd licht, dan een tijd niets.',
hintRowsel: 'Geselecteerde tabelrij, alleen bij Glas: Lichtval komt uit de streep links, Tint kleurt de hele rij, Pil maakt er een afgeronde strook van.',
hintAiHeading: 'Alleen via de AI',
hintAiIntro: 'Dit staat niet op de pagina. Vraag de AI-assistent het aan te passen; het voorstel verschijnt op Af te handelen.',
hintAiTempo: 'Tempo van de gloed: Vlot, Rustig (standaard) of Heel rustig.',
hintGlassRender: 'Glas tekenen, alleen bij Glas: Nagebootst (standaard) is sneller, Echte blur vervaagt wat achter de kaarten ligt en kost meer rekenwerk.',
hintGlass: 'Glas, alleen bij Glas: Doorzichtigheid geldt voor kaarten en kaders (standaard 65%), Matheid voor al het glas (3%), Dialoog doorzichtigheid voor wat boven de inhoud zweeft, zoals een dialoog, menu of tooltip (30%): 0 is dicht, 100 helemaal doorzichtig, en hoe doorzichtiger, hoe minder wazig. Een tabelkop vervaagt niet. Standaard zet ze terug, en Glas tekenen op Nagebootst.',
hintScreenHeading: 'Scherm',
autoBlur: 'Bedragen verbergen na',
autoBlurHint: 'Tijd zonder activiteit voordat de bedragen vervagen. Bij "Handmatig" schakel je zelf met het oogje.',
autoBlurManual: 'Handmatig',
minutesShort: 'min',
assetDisplay: 'Asset-weergave',
assetDisplayHint: 'Toon de naam, het symbool, of beide. Minstens één blijft aan.',
pageTitle: 'Paginatitel',
pageTitleShow: 'Tonen',
pageTitleHide: 'Verbergen',
pageTitleHint: 'De titel boven elke pagina. Verborgen begint de inhoud hoger; de naam van de pagina staat ook in het menu.',
pageHint: 'Pagina-legenda',
pageHintHint: 'Het i-icoon op de kantlijn, met de uitleg van wat je op die pagina ziet. Verborgen verdwijnt het icoon helemaal; een pagina zonder legenda toont het sowieso niet.',
resultSigns: 'Teken bij winst en verlies',
resultSignsNone: 'Geen',
resultSignsNegative: 'Alleen negatief',
resultSignsBoth: 'Negatief en positief',
resultSignsHint: 'Geldt voor resultaten en rendementen in groen of rood. Bij "Geen" zegt alleen de kleur of het winst of verlies is. Zonder kleur staat het teken er altijd.',
persona: 'Portefeuille gaat over',
personaHint: 'Breder verbergt Signalen & Grafieken en de bitcoinwidgets uit de keuze voor het dashboard. Per portefeuille; boekingen en assets veranderen niet.',
kiosk: 'Openen in',
kioskWindow: 'Browser',
kioskFull: 'Eigen venster',
kioskHint: 'Eigen venster opent de app bij de volgende start met start-app in een eigen venster zonder adresbalk en tabbladen, gemaximaliseerd (Vivaldi, Edge of Chrome). Zonder een van die browsers opent de app in een gewoon tabblad. F11 maakt het volledig scherm; naar een ander scherm verplaatsen gaat zoals bij elk venster. Onder Systeem staat dan Sluiten, dat de app en het venster afsluit. Op een server of de Umbrel heeft deze keuze geen effect.',
language: 'Taal',
nl: 'Nederlands',
en: 'English',
},
ai: {
notConnected: 'Er is nog geen AI-assistent verbonden geweest. Zodra dat gebeurt, verschijnt hier '
+ 'per aanroep wat er is gedaan en welke gegevens de app daarbij heeft verlaten.',
howTo: 'Koppelen gaat met een eigen AI-programma op deze computer. Dat programma start de '
+ 'koppeling zelf; er is geen webadres en geen wachtwoord nodig.',
total: 'Aanroepen',
lastAt: 'Laatste aanroep',
ok: 'Uitgevoerd',
error: 'Mislukt',
refused: 'Geweigerd',
when: 'Wanneer',
what: 'Wat',
who: 'Door',
shared: 'Gegevens gedeeld',
characters: 'Tekens',
result: 'Uitkomst',
sharedNothing: 'niets',
sharedUnknown: 'niet vastgelegd',
sharedSome: 'wel gegevens',
unknownClient: 'onbekend programma',
detailNone: '',
noRows: 'Geen aanroepen die aan de filters voldoen.',
conversation: 'Het gesprek',
msgRequest: 'Binnengekomen',
msgResponse: 'Beantwoord',
noConversation: 'Van deze aanroep is de tekst niet bewaard. Hij is afgehandeld door een versie '
+ 'van de app die het gesprek nog niet vastlegde.',
conversationFail: 'Het gesprek kon niet geladen worden.',
switchOn: 'Aan: een gekoppeld AI-programma mag aanroepen doen.',
switchOff: 'Uit: elke aanroep wordt geweigerd, ook van een al gestart AI-programma.',
switchFail: 'Instelling opslaan is niet gelukt.',
activeHead: 'Actief',
switchHead: 'Lezen',
writeHead: 'Schrijven',
controlHead: 'Navigatie',
rawHead: 'Onbewerkt',
activeOn: 'Aan: de koppeling werkt. Wat een AI mag, bepalen de schuiven hiernaast.',
activeOff: 'Uit: er draait geen koppeling. Ook de verbindingstest doet niets en een gestart '
+ 'AI-programma stopt zichzelf.',
writeOn: 'Aan: een AI mag gegevens toevoegen of wijzigen, altijd via een voorstel dat u accordeert.',
writeOff: 'Uit: elk verzoek om iets te wijzigen wordt geweigerd.',
rawLabel: 'Onbewerkt delen',
rawOn: 'Aan: een AI ziet de echte namen en bedragen van deze portefeuille.',
rawOff: 'Uit: een AI ziet verwijzingen en marges in plaats van namen en bedragen.',
rawHint: 'Alleen aanzetten als deze portefeuille geen echte gegevens bevat. De app kan dat niet '
+ 'vaststellen; dat weet alleen u. Let op: een kopie van een portefeuille bevat de gegevens van '
+ 'het origineel.',
rawConfirm: 'Onbewerkt delen aanzetten voor "{naam}"? Een gekoppelde AI ziet daarna de echte namen '
+ 'en bedragen van deze portefeuille in plaats van verwijzingen en marges. Doe dit alleen als hier '
+ 'geen echte gegevens in staan.',
precisionTitle: 'Hoe precies een AI de cijfers ziet',
precisionIntro: 'Aan betekent marges in plaats van exacte getallen, en dat is de stand waarin de '
+ 'app altijd heeft gewerkt. Zet er een uit en die soort komt exact mee. Staat "Onbewerkt" aan, '
+ 'dan doen deze vier niets: dan is er niets om een marge van te maken.',
sharesHead: 'Percentages',
sharesOn: 'Aan: de verdeling over uw assets komt in marges, bijvoorbeeld "20 tot 25%".',
sharesOff: 'Uit: de verdeling komt exact, bijvoorbeeld "23,4%".',
totalsHead: 'Totalen',
totalsOn: 'Aan: het totaal van uw vermogen komt als marge.',
totalsOff: 'Uit: het totaal komt als exact bedrag.',
amountsHead: 'Bedragen',
amountsOn: 'Aan: een bedrag in een regel komt als marge.',
amountsOff: 'Uit: een bedrag in een regel komt exact.',
quantitiesHead: 'Hoeveelheden',
quantitiesOn: 'Aan: een aantal (0,05 BTC) komt als marge.',
quantitiesOff: 'Uit: een aantal komt exact.',
precisionCombo: 'Let op: staan "Percentages" en "Totalen" allebei uit, dan laat een AI-antwoord de '
+ 'verdeling over uw assets wég. Samen leggen die twee de waarde per asset vast, terwijl de '
+ 'bedragen per regel juist in marges staan.',
scope: 'Deze instellingen gelden alleen voor de portefeuille die nu open is: {naam}.',
revoke: 'Een recht dat u geeft, kunt u hier altijd weer intrekken: zet de schuif uit en het geldt '
+ 'vanaf de volgende aanroep, ook voor een AI-programma dat al draait. Herstarten is niet nodig. '
+ 'Wat al is goedgekeurd, blijft staan; intrekken gaat over wat een AI hierna nog mag.',
controlLabel: 'De app mag bestuurd worden',
controlHint: 'Hiermee mag een AI u naar een pagina brengen. Uw gegevens worden er niet door '
+ 'gelezen of gewijzigd. U ziet elke sprong aankomen en kunt hem tegenhouden.',
controlOn: 'Aan: een AI mag u naar een pagina brengen.',
controlOff: 'Uit: een verzoek om te navigeren wordt geweigerd.',
connectTitle: 'Koppelen aan uw AI-programma',
connectIntro: 'Zet onderstaande regels in het configuratiebestand van uw AI-programma. Het pad is al '
+ 'ingevuld voor deze computer. Beweeg over het kader en klik het kopieerknopje rechtsboven; plak '
+ 'het blok daarna ongewijzigd in dat bestand.',
connectFile: 'Bij Claude Desktop heet dat bestand claude_desktop_config.json. Staat er al een '
+ 'blok "mcpServers", voeg dan alleen de regels daarbinnen toe.',
connectRestart: 'Het AI-programma moet daarna opnieuw gestart worden; pas dan leest het de '
+ 'nieuwe configuratie.',
connectCopy: 'Kopiëren',
connectCopied: 'Gekopieerd',
connectCopyFail: 'Kopiëren is niet gelukt. Selecteer de tekst hierboven en kopieer met Ctrl+C.',
connectFail: 'De koppelgegevens konden niet worden opgehaald.',
dryTitle: 'Vooraf bekijken wat er gedeeld zou worden',
dryIntro: 'Kies een handeling en bekijk precies wat een AI-programma te zien zou krijgen. De '
+ 'handeling wordt echt uitgevoerd op uw gegevens, maar het antwoord gaat naar dit scherm en '
+ 'niet naar buiten. Er wordt niets gewijzigd en er komt geen regel in het logboek hieronder, '
+ 'want er is niets verstuurd.',
dryPick: 'Handeling',
dryRun: 'Bekijken',
dryBusy: 'Bezig…',
dryFail: 'Het bekijken is niet gelukt.',
dryResult: 'Dit zou het AI-programma te zien krijgen',
dryScope: {
none: 'raakt de administratie niet',
read: 'leest de administratie',
write: 'wijzigt gegevens',
control: 'bestuurt de app, leest geen gegevens',
},
dryArgs: 'Waarden voor deze handeling',
dryArgRequired: 'verplicht',
dryArgPick: 'Kies…',
dryNeedsArg: 'Vul eerst de verplichte waarden in.',
dryArgHandleNone: 'Een verwijzing krijgt u van een andere handeling. Bekijk eerst "Overzicht van de '
+ 'inrichting"; in die uitvoer staan verwijzingen zoals account:7f3a9c die u hier kunt invullen.',
dryArgHandleSome: 'Kies een verwijzing die u eerder zag, of typ er een over uit een gesprek.',
},
home: {
title: 'Dashboard',
assets: 'Assets',
locations: 'Locaties',
events: 'Events',
valuations: 'Peildatumwaarden',
accounts: 'Accounts',
reconcile: 'Reconcile',
rematch: 'Bijwerken',
updating: 'Bijwerken',
rematchDone: 'nieuwe koppelingen gelegd',
rematchNone: 'Geen nieuwe koppelingen: alles is al gekoppeld.',
recAsTrade: 'Aankoop/Verkoop',
recAsTransfer: 'Verplaatsing',
recIgnore: 'Negeer',
recTotal: 'Betaald bedrag ({munt})',
recPrice: 'Fill-prijs per eenheid ({munt})',
recPriceLoading: 'Koers ophalen…',
recPriceFrom: 'Dagkoers van {date} uit de prijsgeschiedenis, per {unit}. Aanpassen mag.',
recPriceAt: 'Koers van {time} uit Atreides Services, per {unit}. Aanpassen mag.',
recPriceUnknown: 'Geen koers bekend bij die datum. Vul de prijs zelf in, of 0 als u er niets voor '
+ 'betaald hebt.',
recPriceRequired: 'Vul een prijs in.',
recTxAt: 'Moment van de transactie',
recDetectedAt: 'De transactie is nog niet bevestigd; dit is het moment waarop de app hem zag',
recCounter: 'Tegenaccount',
recConfirm: 'Bevestig',
recIn: 'ontvangen',
recOut: 'verstuurd',
recLightning: 'Lightning',
recVia: 'via {wallet}',
recViaNwc: 'NWC-wallet',
recDone: 'Verwerkt.',
records: 'records',
recPending: 'Openstaande afwijkingen',
recHandled: 'Afgehandeld',
recHandledNone: 'Nog niets afgehandeld.',
recRevert: 'Terugdraaien',
recRevertConfirm: 'Voorstel terugdraaien? Een eventueel aangemaakte gebeurtenis wordt verwijderd.',
recLink: 'Koppel aan gebeurtenis',
recDelete: 'Verwijderen',
recDeleteConfirm: 'Dit voorstel verwijderen uit de lijst? Een eventueel aangemaakte gebeurtenis of koppeling blijft staan.',
recUnknownProposal: 'Voorstel {id} bestaat niet meer.',
recHandled_accepted_trade: 'Voorstel {id} is al als aankoop of verkoop geboekt.',
recHandled_accepted_transfer: 'Voorstel {id} is al als verplaatsing geboekt.',
recHandled_accepted_interest: 'Voorstel {id} is al als rente geboekt.',
recHandled_ignored: 'Voorstel {id} is al genegeerd.',
recHandled_auto_linked: 'Voorstel {id} is al automatisch gekoppeld.',
recNoCounter: 'Er is geen tegenaccount om naartoe te boeken. Zet eerst een tweede account op actief.',
recAsInternal: 'Binnen het account',
recAsChannelTransfer: 'Naar het kanaal op {account}',
recInternal_channel: 'kanaal geopend of gesloten',
recInternal_self: 'betaling aan uzelf',
recInternalHint: 'Blijft binnen het account: alleen de fee gaat eraf.',
recNotInternal: 'Voorstel {id} is geen beweging binnen het account.',
recBookAll: 'Lightning boeken ({n})',
recBookAllConfirm: '{trade} lightning-betalingen boeken als aankoop of verkoop, tegen de koers van het '
+ 'moment of anders de dagkoers, {internal} bewegingen binnen het account en {interest} forwards als '
+ 'rente. {skipped} gewone on-chain bewegingen blijven staan; die boekt u per stuk.',
recAsInterest: 'Als rente',
recInterestHint: 'Routing-inkomen van uw node: telt als opbrengst, niet als inleg.',
recNotForward: 'Voorstel {id} is geen lightning-forward.',
recBookAllProgress: 'Boeken {i} van {n}',
recBookAllDoneTitle: 'Lightning geboekt',
recBookAllDone: '{booked} geboekt. Zonder koers blijven staan: {noPrice}. Mislukt: {failed}.',
recAutoLinked: 'Voorstel {id} is automatisch gekoppeld; ontkoppelen doe je met "Koppel aan gebeurtenis".',
recStillOpen: 'Voorstel {id} staat nog open; er is niets om terug te draaien.',
recPrev: 'Vorige',
recNext: 'Volgende',
recAll: 'Alle voorstellen',
recIgnoreAll: 'Alles negeren',
recDeleteAll: 'Alles verwijderen',
recIgnoreAllConfirm: 'Alle openstaande voorstellen negeren? Genegeerde voorstellen komen bij een herscan niet terug.',
recDeleteAllConfirm: 'Alle openstaande voorstellen verwijderen? De afgehandelde log blijft staan; niet-gekoppelde bewegingen verschijnen bij een nieuwe scan opnieuw.',
btcWidget: 'Bitcoin',
toSignals: 'Naar Signalen & Grafieken',
hintTitle: 'Het dashboard indelen',
hintEdit: 'Houd een widget even ingedrukt om de indeling aan te passen.',
hintDone: 'Klaar: Escape, een klik naast de widgets of een andere pagina.',
hintAdd: 'Toevoegen: wijs een lege plek aan en klik op de +. Op een telefoon staat de lijst onder de widgets.',
hintWidget: 'Een widget verplaats je aan het greepje; het knopje ernaast opent zijn instellingen.',
hintProfiles: 'Een indeling kies je in het menu. Standaard verwijderen begint opnieuw met de standaardindeling.',
groupAccount: 'Per account',
groupAccountKind: 'Per accountsoort',
groupAsset: 'Per asset',
groupAssetKind: 'Per assetsoort',
groupBy: 'Groeperen',
standing: 'Huidige stand',
toWealth: 'Naar Vermogen',
standingNone: 'Nog geen tax-relevante posities.',
showToday: 'Rendement tonen',
},
conversion: {
title: 'Bitcoin Conversies',
btcRate: 'Bitcoin koers',
loading: 'Koers ophalen…',
updatedAt: 'Bijgewerkt om',
rateUnavailable: 'Koers niet beschikbaar',
fiat: 'Euro',
fiatHint: 'Traditionele munteenheid',
btcHint: 'Basiseenheid · max 21 mln',
hierarchy: 'Eenheden hiërarchie',
satNote: 'De satoshi is de kleinste on-chain eenheid. De millisatoshi bestaat alleen op het Lightning Network.',
footer: 'Live koers via de gekozen koersbron',
},
labels: {
title: 'Labels',
inUse: 'Label is in gebruik door {n} item(s); ontkoppel die eerst.',
new: 'Nieuw label',
edit: 'Bewerken',
cancel: 'Annuleren',
save: 'Opslaan',
name: 'Naam',
color: 'Kleur',
useColor: 'Kleur gebruiken',
none: 'Nog geen labels.',
delete: 'Verwijderen',
confirmDelete: 'Dit label verwijderen?',
colColor: 'Kleur',
colName: 'Naam',
badHex: 'Ongeldige kleur. Gebruik bv. #39FF8A.',
},
accounts: {
maxFreeBank: 'De gratis versie houdt het op {max} fiatrekening. Met een licentie vervalt die grens; '
+ 'er wordt intussen niets weggehaald.',
title: 'Accounts',
nameRequired: 'Vul een naam in.',
new: 'Nieuw account',
edit: 'Bewerken',
cancel: 'Annuleren',
save: 'Opslaan',
name: 'Naam',
kind: 'Soort',
ownCustody: 'Zelf in bewaring',
scanEnabled: 'Automatisch scannen',
taxCategory: 'Categorie',
taxCategoryAuto: 'volgt asset',
taxScope: 'Belastingen',
taxScopeAuto: 'standaard (volgt asset)',
wealthScope: 'Vermogen',
wealthScopeAuto: 'standaard (eigen vermogen)',
color: 'Kleur',
useColor: 'Kleur gebruiken',
label: 'Label',
none: 'Nog geen accounts.',
confirmDelete: 'Dit account verwijderen?',
yes: 'Ja',
no: 'Nee',
sources: 'Tracking-bronnen',
sourcesFor: 'Tracking-bronnen van',
addSource: 'Tracking-bron toevoegen',
sourceKind: 'Soort',
sourceValue: 'Waarde',
xpub: 'xpub / ypub / zpub',
address: 'Los adres',
nwc: 'NWC (Nostr Wallet Connect)',
lnd: 'LND (Lightning-node)',
noSources: 'Nog geen tracking-bronnen voor dit account.',
noSourceKind: 'Dit accounttype heeft geen tracking-bron.',
interestManageHint: 'Opvoeren en wijzigen op',
interestNone: 'Nog geen rente-afspraken voor dit account.',
interestMovedLink: 'Rente & Beloning',
merge: 'Samenvoegen',
mergeTitle: 'Twee accounts samenvoegen tot één',
mergeNeedTwo: 'Je hebt minstens twee accounts nodig om samen te voegen.',
mergePick: '(kies een account)',
mergeKeep: 'Behouden account',
mergeDrop: 'Opheffen account',
mergeSummary: '"{drop}" → "{keep}". Verhuist: {sources} bron(nen), {events} event(s), {schedules} afspra(a)k(en), {valuations} waardering(en).',
mergeConfirm: 'Dit samenvoegen is onomkeerbaar. Doorgaan? (Doe daarna een herscan.)',
mergeDone: 'Accounts samengevoegd. Doe een herscan om de tracking-cache te verversen.',
mergeReason_pickTwo: 'Kies twee accounts.',
mergeReason_sameAccount: 'Kies twee verschillende accounts.',
mergeReason_notFound: 'Account niet gevonden.',
mergeReason_sourceMismatch: 'Kan niet: het ene soort heeft tracking-bronnen en het andere niet (bijv. exchange × wallet).',
mergeReason_kindCannotCarry: 'Kan niet: het behouden account kan de bron-soorten van het andere niet dragen. Kies het Lightning-account als behouden account, of zet het eerst op soort "Lightning".',
sourceValueRequired: 'Vul een xpub, adres of NWC-URI in.',
sourceNameRequired: 'Geef de tracking-bron een naam.',
inUse: 'Dit account is in gebruik door {n} boeking(en); verwijder of herkoppel die eerst.',
unknownAccount: 'Account #{id} bestaat niet.',
sourceUriMissing: 'De NWC-URI ontbreekt.',
sourceNotLnd: 'De gekozen verbinding is geen LND-verbinding.',
labelNoTxs: 'Er zijn geen bewegingen opgegeven voor het label.',
sourceNamePh: 'bijv. Ledger ontvangst',
colSourceName: 'Naam',
confirmDeleteSource: 'Deze tracking-bron en de gescande adressen verwijderen?',
testSource: 'Test',
testing: 'Testen…',
testValid: 'geldig',
testTxs: 'transacties',
testFail: 'Test mislukt',
nwcPubkey: 'wallet-pubkey',
nwcKeepPh: 'URI opgeslagen: leeg laten = behouden, nieuwe plakken = vervangen',
colSourceKind: 'Soort',
colSourceValue: 'Bron',
colConnection: 'Verbinding',
colScriptType: 'Type',
lndVia: 'via',
lndHeight: 'blokhoogte',
lndNoConnection: 'Kies een LND-verbinding (maak er eerst één aan bij Verbindingen).',
noNode: 'Geen',
onchainOfNode: 'on-chain van',
onchainOfNodeHint: 'Deze wallet is de on-chain kant van die node. Een kanaal dat hij opent, boekt de app als verplaatsing naar het account van de node.',
'script_p2tr': 'Taproot (bc1p…)',
'script_p2wpkh': 'Native SegWit (zpub · bc1q…)',
'script_p2sh-p2wpkh': 'Nested SegWit (ypub · 3…)',
'script_p2pkh': 'Legacy (xpub · 1…)',
interest: 'Ontvangen rente',
intDate: 'Datum',
intAsset: 'Asset',
intAmount: 'Bedrag',
intValue: 'Waarde',
noInterest: 'Nog geen rente ontvangen op dit account.',
schedules: 'Rente-afspraken',
schPrincipalAsset: 'Vastgezet',
schPrincipal: 'Hoofdsom',
schRate: 'Rente',
schPayoutAsset: 'Uitbetaling',
schStart: 'Start',
schEnd: 'Eind',
schCadence: 'Bijschrijven',
schWeekday: 'Weekdag',
schDayOfMonth: 'Dag v/d maand',
wd0: 'Zondag', wd1: 'Maandag', wd2: 'Dinsdag', wd3: 'Woensdag', wd4: 'Donderdag', wd5: 'Vrijdag', wd6: 'Zaterdag',
schRateType: 'Soort',
schNote: 'Notitie',
noSchedules: 'Nog geen rente-afspraken voor dit account.',
confirmDeleteSchedule: 'Deze rente-afspraak verwijderen?',
schAssetRequired: 'Kies het vastgezette asset.',
schPayoutRequired: 'Kies een uitkerings-asset.',
schRateInvalid: 'Vul een geldige rente in.',
schStartRequired: 'Vul een startdatum in.',
schEndBeforeStart: 'De einddatum ligt vóór de startdatum.',
projection: 'Prognose',
projectionHint: 'Resterende bijschrijvingen, informatief, telt niet mee in saldo of belasting.',
projReceived: 'Ontvangen',
projExpectRemain: 'Nog te verwachten',
projCount: '{n} bijschrijvingen',
projTermTotal: 'Totaal looptijd',
projEndBalance: 'Eindstand {datum}',
projEndBalanceSub: 'inleg plus rente',
projNext: 'Volgende',
projAllUpcoming: 'Alle {n} komende bijschrijvingen',
projOver: 'over {bedrag}',
projUntil: 't/m {datum}',
dueTitle: 'Te boeken rente',
book: 'Boeken',
dismiss: 'Negeren',
bookOldestFirst: 'Boek van oud naar nieuw: elke bijschrijving verhoogt het saldo waarover de volgende rekent. Negeren mag in elke volgorde en geeft de volgende vrij.',
confirmBook: 'Rente bijschrijven:',
},
interest: {
title: 'Rente & Beloning',
none: 'Nog geen rente-events.',
needAsset: 'Voeg eerst een asset toe.',
colDate: 'Datum',
time: 'Tijd',
colAccount: 'Account',
colAsset: 'Asset',
colAmount: 'Bedrag',
colSource: 'Bron',
colNote: 'Notitie',
colSchedule: 'Rente-afspraak',
noSchedule: 'Geen afspraak',
new: 'Nieuwe rente',
save: 'Opslaan',
cancel: 'Annuleren',
confirmDelete: 'Dit rente-event verwijderen?',
confirmDeletePeriod: 'Deze renteperiode verwijderen?',
invalid: 'Vul datum, account, asset en bedrag (> 0) in.',
importNote: 'Geïmporteerde records zijn gezaghebbend en niet bewerkbaar.',
schedulesTitle: 'Rente-afspraken',
recordsTitle: 'Ontvangen rente',
principalFollowsBalance: 'volgt het saldo',
endsOnOpen: 'doorlopend',
cadenceNone: 'Zonder ritme',
colCompounding: 'Rente op rente',
compoundingViaBalance: 'via het saldo',
depositTitle: 'Hoofdsom leeg',
depositWarning: 'Deze afspraak heeft een einddatum en volgt het saldo, en de rente komt op dit account. Dan rekent elke bijschrijving ook over de eerder geboekte rente. Bij een deposito rekent de bank meestal over het startbedrag: vul dat dan in als hoofdsom.',
depositSaveAnyway: 'Toch opslaan',
depositBack: 'Hoofdsom invullen',
depositNotSaved: 'Niet opgeslagen: vul het startbedrag in als hoofdsom, of sla op en kies Toch opslaan.',
periods: 'Renteperioden',
periodsBase: 'Vanaf de start van de afspraak op',
periodsVariable: 'Deze afspraak staat op "handmatig of import": de app rekent hier niets uit, dus er zijn geen renteperioden.',
periodStartsOn: 'Gaat in op',
periodRateRequired: 'Vul een rentepercentage in.',
noPeriods: 'Nog geen wijzigingen; de rente van de afspraak geldt de hele looptijd.',
noSchedules: 'Nog geen rente-afspraken. Voeg er een toe om prognoses en te-boeken rente te zien.',
schAccountRequired: 'Kies een account voor de afspraak.',
principalPositive: 'De hoofdsom moet groter dan 0 zijn. Laat het veld leeg om het saldo van het account te volgen.',
rateNotNegative: 'De jaarrente mag niet negatief zijn.',
compoundingNeedsPrincipal: 'Rente op rente vraagt een vaste hoofdsom. Een hoofdsom die het saldo volgt, groeit al met elke geboekte bijschrijving.',
compoundingNeedsSameAsset: 'Rente op rente kan alleen als de rente in hetzelfde asset wordt uitgekeerd als de hoofdsom.',
weekdayRequired: 'Kies een weekdag voor de wekelijkse bijschrijving.',
dayOfMonthRequired: 'Kies een dag-van-de-maand voor de maandelijkse bijschrijving.',
unknownSchedule: 'Deze rente-afspraak bestaat niet.',
unknownPeriod: 'Deze renteperiode bestaat niet.',
periodStartRequired: 'Vul een ingangsdatum in.',
periodStartBeforeSchedule: 'De ingangsdatum moet ná de start van de afspraak ({start}) liggen; de rente vanaf die dag staat in de afspraak zelf.',
bookOlderFirst: 'Boek eerst de bijschrijving van {start} → {eind}. Elke bijschrijving verhoogt het '
+ 'saldo waarover de volgende rekent, dus de volgorde bepaalt het bedrag.',
periodStartAfterEnd: 'De ingangsdatum ligt ná het einde van de afspraak ({eind}).',
},
taxes: {
title: 'Belastingen',
loading: 'Berekenen…',
empty: 'Nog niets om te berekenen.',
emptyWhy: 'Voer een gebeurtenis op (een aankoop of een verplaatsing) of zet een balans; vanaf dat moment rekent deze pagina de peildata uit.',
colAccount: 'Account',
colAsset: 'Asset',
groupAccount: 'Per account',
groupAsset: 'Per asset',
groupKind: 'Per soort',
colKind: 'Soort',
catTitle: 'Categorie',
catBank: 'Banktegoeden',
catOverig: 'Overige bezittingen',
catUnknown: 'Zonder categorie',
catNote: 'Categorie: de bedragen gesplitst naar banktegoeden en overige bezittingen. Verschijnt zodra op een account of asset een categorie is gekozen, of "Alleen apart vermeld" bij Belastingen (Systeem, tabs Assets en Accounts). Zonder keuze volgt een asset zijn soort: valuta is banktegoed, de rest overige bezitting. Wat alleen hier staat, telt niet in de tabel en het resultaat; geld van en naar zo\'n account telt daar als storting of onttrekking.',
showAll: 'Alles tonen',
showAllTip: 'Toon de pagina alsof Categorie en Belastingen op Assets en Accounts overal op de standaard staan.',
showAllNote: 'Alles tonen: staat ergens op een asset of account bij Categorie of Belastingen iets anders dan de standaard, dan toont deze schakelaar de pagina alsof alles op de standaard staat. Zo zie je wat die keuzes uitmaken. De stand van de schakelaar wordt onthouden.',
colCurrent: 'Huidige waarde',
total: 'Totaal',
untilNow: '· t/m nu',
hintTitle: 'Wat zie je hier',
hintMainTitle: 'Waarde per peildatum',
mainNote: 'Waarde per peildatum (1 januari, 00:00) in de rekenvaluta: de stand op dat moment × de koers van die dag. De stand is de laatst vastgelegde balans plus de gebeurtenissen daarna, of Σ gebeurtenissen als er geen balans is.',
pctNote: 'Hou de muis boven een bedrag om het rendement te zien over de periode die op die kolom eindigt; de kolom 1 januari gaat dus over het jaar ervóór. Op de totaalregel staat het percentage er wél bij, want dat is het getal over het geheel.',
pctMwr: 'MWR',
pctIrr: 'IRR',
pctMwrTip: 'Geldgewogen rendement volgens Modified Dietz: wat JOUW geld deed, gedeeld door het gemiddeld werkzame vermogen (elke storting telt mee naar rato van hoe lang hij er stond). Eindwaarde min beginwaarde, min wat je erbij kocht of naar dit account verplaatste, plus wat eruit ging, en min wat uit een balans kwam in plaats van uit een boeking. Bijkopen telt dus niet als winst. Leeg als er geen beginwaarde was om tegen af te meten.',
pctIrrTip: 'Geldgewogen rendement volgens de interne rentevoet (IRR), op jaarbasis: de rente die jouw stortingen en opnames precies verklaart. Waar die niet bestaat (een positie die tussendoor op nul komt) valt het getal terug op Modified Dietz. Instelbaar bij de weergave-instellingen.',
aangifteTitle: 'Resultaat',
colPeriod: '1 jan {van} → 1 jan {tot}',
colPeriodNow: '1 jan {van} → nu',
cellReturn: '{label} {pct}, resultaat {bedrag}',
cellResult: 'Resultaat {bedrag}',
buitenBox3: 'Buiten het overzicht gehouden (telt wél als vermogen):',
emptyColsNote: 'Weggelaten peildata omdat er niets stond: {jaren}. In het resultaat per jaar blijven '
+ 'ze de beginwaarde van dat jaar.',
startYearNote: 'Deze administratie begint in {eerste} en wordt getoond vanaf peildatum 1 januari {start}. De standen tellen alles daarvóór gewoon mee; er ontbreken alleen kolommen. Het startjaar staat op Systeem → Portefeuilles.',
aangifteNote: 'Kengetallen per jaar over het vermogen dat in deze app staat: crypto, edelmetaal en de accounts die je hier bijhoudt. Rendement = eindwaarde - beginwaarde - aankopen + verkopen - wat uit balansen kwam. "Huidige waarde" is het lopende jaar t/m nu; een jaar krijgt een eigen kolom zodra het is afgerond. De kop van een jaarkolom is de peildatum waarop dat jaar eindigt, zodat de kolommen uitlijnen met de tabel hierboven: de Eindwaarde hier is dezelfde peildatum-kolom daar, en de Beginwaarde is de kolom rechts ernaast. Klik een bedrag om het (afgerond op hele eenheden) te kopiëren. Deze app rekent geen belasting uit: dit zijn de kengetallen die een aangifte doorgaans vraagt; tarief en vrijstellingen verschillen per land.',
kgRendement: 'Rendement',
kgUitBalansen: 'Uit balansen (niet geboekt)',
kgGiften: 'Giften (niets betaald)',
kgUnexplained: 'Waarvan niet verklaard',
kgUnexplainedTip: 'Een deel van de wijziging komt uit een gemeten balans en niet uit boekingen. Was dat een storting die je niet hebt geboekt, dan is het rendement zoveel lager; was het opbrengst, dan klopt dit bedrag.',
zonderKoersTip: 'Buiten dit rendement gelaten, omdat de koers op één van beide peildata ontbreekt: {namen}. Als nul tellen zou die ontbrekende koers als verlies of winst lezen. Zet de koers erbij op Prijsgeschiedenis, of vul de waarde met een balans.',
zonderKoersWhere: 'Buiten het rendement gelaten, omdat de koers op één van beide peildata ontbreekt:',
unexplainedWhere: 'Waarvan niet verklaard, per account (een negatief bedrag betekent dat de boekingen méér verklaren dan de stand veranderde, meestal een sprong uit een eerder jaar die je nu geboekt hebt):',
unexplainedOpeningAll: 'een beginbalans zonder boekingen ervóór, dus hier valt niets te boeken',
unexplainedOpening: 'waarvan uit een beginbalans zonder boekingen ervóór:',
owrBegin: 'Beginwaarde',
owrEind: 'Eindwaarde',
owrDeposits: 'Aankopen (stortingen)',
owrWithdrawals: 'Verkopen (onttrekkingen)',
},
eventAccounts: {
none: 'Nog geen accounts.',
noneWhy: 'Een saldo hoort bij een account. Maak er eerst een aan.',
manage: 'Accounts beheren',
empty: 'Geen saldo',
closed: 'Gesloten',
openGaps: '{n} verschil te controleren',
open: 'Account openen',
pickAsset: 'Toon alleen dit asset in de tabellen; klik nog eens voor alles',
showEmpty: 'Zonder saldo',
recordBalance: 'Saldo vastleggen',
recordBalanceHint: 'Leg het saldo van nu vast als balans. Pas het bedrag aan als je afschrift iets anders zegt; het verschil komt dan op Af te handelen.',
recordBalanceTitle: 'Saldo van {asset} vastleggen als balans',
lastBalance: 'Balans {datum}',
fromBookings: 'Uit boekingen',
noPrice: 'geen koers',
hintTitle: 'Accounts',
hintBalance: 'Het saldo is de nieuwste balans plus de boekingen erna, hetzelfde getal als op Vermogen. "Balans" is de datum van die laatste balans; "Uit boekingen" betekent dat er voor dit asset nog geen balans is vastgelegd.',
hintDetail: 'Klik een kaart om de balansen, aan- en verkopen, verplaatsingen en rente van dat account te zien en te bewerken. Klik daar een asset aan om de tabellen op dat asset te filteren.',
interestAgreement: 'Rente-afspraak',
interestAgreements: '{n} rente-afspraken',
interestBooked: '{n}× rente geboekt, laatst {datum}',
interestNext: 'verwacht {datum}: {bedrag}',
nowTotal: 'nu {bedrag} op de getoonde accounts',
nowTotalPartial: 'nu {bedrag} op de getoonde accounts, zonder de assets zonder koers',
act: {
buy: 'aankoop',
sell: 'verkoop',
transferIn: 'verplaatsing erin',
transferOut: 'verplaatsing eruit',
interest: 'rente',
balance: 'balans vastgelegd',
agreementStart: 'rente-afspraak begint',
agreementEnd: 'rente-afspraak eindigt',
accountOpened: 'account aangemaakt',
accountClosed: 'account gesloten',
accountChanged: 'account laatst gewijzigd',
reservation: 'reservering',
interestDue: 'rente verwacht',
},
hintActivity: 'De lijn bovenaan (alle getoonde accounts), onderaan een kaart en in het accountvenster is de activiteit vanaf het startjaar van de portefeuille: een piek omhoog is een dag waarop er iets binnenkwam, een dal een dag waarop er iets uitging; de hoogte volgt het aantal boekingen. Streepjes zijn balansen, rente-afspraken, verwachte rentebijschrijvingen, reserveringen (een vierkantje) en wijzigingen aan het account; de lijn loopt door tot de laatste daarvan, ook als die in de toekomst ligt. In het accountvenster opent een klik op een dag die boeking of reservering.',
hintInterest: 'Onder het saldo: de lopende rente-afspraken van het account en hoe vaak er rente of beloning is geboekt.',
hintCapture: 'De knop "Saldo vastleggen" staat standaard alleen bij geld. Per asset zet je hem aan of uit op Systeem, tab Assets, kolom "Saldo vastleggen".',
},
valuations: {
maxFree: 'De gratis versie houdt het op {max} balans. Met een licentie vervalt die grens; '
+ 'er wordt intussen niets weggehaald.',
title: 'Balansen',
needAsset: 'Maak eerst een asset aan of migreer de data op het overzicht.',
colDate: 'Peildatum',
colTime: 'Tijd',
colUpdated: 'Bijgewerkt',
colAccount: 'Account',
colAsset: 'Asset',
colBalance: 'Saldo',
colRate: 'Koers ({munt})',
colSource: 'Bron',
colDiff: 'Verschil',
ratePlaceholder: 'leeg = opzoeken',
rateNote: 'Koers leeg laten = automatisch opgezocht op peildatum en tijd, via de bron die voor dit asset gekozen is. Een balans is het anker voor de stand van dat account: de stand is deze balans plus de gebeurtenissen erna. Staan er ook gebeurtenissen vóór het peilmoment, dan toont Verschil of die daarmee kloppen, en schrijft "Boek" het verschil als één correctie tegen de koers van dat moment.',
anchorHint: 'Dit is het anker voor de stand van dit account: er staan geen gebeurtenissen van vóór dit peilmoment, dus er is niets te verzoenen.',
futureHint: 'Deze peildatum moet nog komen. De balans telt nog niet mee in je stand en levert geen werk op; zodra het peilmoment voorbij is, wordt hij het anker voor dit account.',
book: 'Boek',
accept: 'Aanvaard',
acceptHint: 'Dit verschil is geen opbrengst maar geld dat erin of eruit ging. Geen boeking, en het telt niet meer als niet verklaard.',
confirmAccept: 'Dit verschil aanvaarden? Het telt dan als geld dat de administratie in- of uitgaat en niet als rendement. Je kunt het later terugdraaien.',
lightningRow: 'Gemeten bij Bijwerken',
lightningHint: 'Het saldo op Tracking (on-chain plus lightning) tegen wat je administratie op dat moment zegt.',
recordBalance: 'Leg vast als balans',
recordBalanceHint: 'Het gemeten saldo wordt een balans op die dag. Daarna staat hij hier als gewone balans, met Boek en Aanvaard.',
recordTitle: 'Gemeten saldo vastleggen',
recordRate: 'Koers op {date}',
lightningSameDay: 'Er staat al een balans op {date} voor dit account; die wordt niet overschreven.',
acceptedMark: '✓ aanvaard',
acceptedHint: 'Aanvaard verschil, klik om terug te draaien:',
bookTitle: 'Verschil boeken',
bookAsSuffix: 'boeken als',
bookAsSell: 'Verkoop (ging uit je portefeuille)',
bookAsBuy: 'Aankoop (kwam je portefeuille in)',
bookAsTransferTo: 'Verplaatsing naar',
bookAsTransferFrom: 'Verplaatsing van',
bookAsFeeOn: 'Kosten bij {soort} van {datum}',
bookReplaces: 'bestaande regel wordt',
bookRemoves: 'haalt de bestaande regel weg',
bookNote: 'waardering-correctie',
bookFeeNote: 'kosten aangevuld via Verschil boeken',
invalid: 'Vul peildatum, asset en saldo (≥ 0) in.',
noRate: 'Geen koers gevonden voor dit tijdstip.',
none: 'Nog geen balansen.',
confirmDelete: 'Deze balans verwijderen?',
},
assets: {
title: 'Assets',
decimalsRange: 'Decimalen moet een heel getal van 0 tot en met {max} zijn (gekregen: "{waarde}"). '
+ 'Daarboven kan een hoeveelheid niet meer teruggelezen worden.',
inUse: 'Asset is in gebruik door {n} record(s); verwijder die eerst.',
maxFree: 'De gratis versie houdt het op {max} asset. Met een licentie vervalt die grens; '
+ 'er wordt intussen niets weggehaald.',
freeOnly: 'De gratis versie houdt alleen {list} en munten bij. Met een licentie vervalt die grens.',
fillSymbolNameUnit: 'Vul symbool, naam en hoofdeenheid in.',
metalUnitUnknown: 'Metaal-hoofdeenheid moet een bekende eenheid zijn: {eenheden}.',
fillDecimals: 'Vul decimalen (≥ 0) in.',
new: 'Nieuwe asset',
edit: 'Bewerken',
cancel: 'Annuleren',
save: 'Opslaan',
symbol: 'Symbool',
name: 'Naam',
kind: 'Soort',
unit: 'Hoofdeenheid',
subunit: 'Ondereenheid',
displayUnit: 'Weergave',
decimals: 'Decimalen',
taxCategory: 'Categorie',
taxCategoryAuto: 'volgt soort',
taxCategoryAutoIs: 'volgt soort ({waarde})',
taxScope: 'Belastingen',
taxScopeAuto: 'standaard (telt mee)',
balanceCapture: 'Saldo vastleggen',
balanceCaptureOn: 'Aan',
balanceCaptureOff: 'Uit',
balanceCaptureAutoOn: 'volgt soort (aan)',
balanceCaptureAutoOff: 'volgt soort (uit)',
priceSource: 'Koersbron',
none: 'Nog geen assets.',
delete: 'Verwijderen',
confirmDelete: 'Deze asset verwijderen?',
},
metalProducts: {
title: 'Munten & baren',
assetRequired: 'Kies een geldig metaal-asset.',
nameRequired: 'De naam is verplicht.',
fineGramsPositive: 'Het fijn gewicht moet groter dan 0 zijn.',
pickMetalAndName: 'Kies een metaal en vul een naam in.',
fillFineGrams: 'Vul een geldig fijn gewicht (> 0) in.',
notMetal: 'Het gekozen asset is geen metaal.',
inUse: 'Dit product is in gebruik door {n} gebeurtenis(sen); verwijder die eerst.',
asset: 'Metaal',
name: 'Naam',
form: 'Vorm',
fineWeight: 'Fijn gewicht',
weight: 'Gewicht',
unit: 'Eenheid',
save: 'Opslaan',
cancel: 'Annuleren',
none: 'Nog geen munten of baren.',
needMetal: 'Voeg eerst een metaal-asset toe (Stamgegevens → Assets).',
confirmDelete: 'Dit product verwijderen?',
},
wealth: {
title: 'Vermogen',
none: 'Nog geen assets met een positie.',
quantity: 'Hoeveelheid',
value: 'Actuele waarde',
avgSpot: 'Gem. aankoopkoers',
avgPremium: 'Gem. premie/event',
unrealized: 'Ongerealiseerd',
realized: 'Gerealiseerd',
share: 'Aandeel in totaal',
result: 'Resultaat',
twr: 'Rendement',
twrTotal: 'Rendement',
unexplained: 'Niet verklaard',
allYears: 'Alles',
noPrice: 'Geen koers bekend voor deze periode: geen waarde, aandeel of rendement.',
yearPick: 'Kies een jaar of een reeks jaren',
yearRangeTip: 'Shift+klik voor een reeks jaren.',
yearOff: 'Klik om dit jaar en alles ervóór weg te laten',
legendTitle: 'Wat zie je hier',
legendSparkValue: 'Waarde van de positie per dag.',
legendSparkInvested: 'Ingelegd. Het verschil met de volle lijn is het resultaat.',
legendBuy: 'Aankoop.',
legendSell: 'Verkoop. Een sprong zonder stip komt van de markt.',
legendRings: 'Verdeling over soorten (links) en assets (rechts) als deel van het totale vermogen; onder 2% valt onder "Overig".',
legendUnexplained: 'Niet verklaard: een balans wijkt af van de boekingen op dat account, dus er ontbreekt een boeking. Accounts die alleen op saldo worden bijgehouden tellen niet mee. Telt niet als rendement.',
legendTwr: 'Rendement is tijdgewogen: alleen de koers telt, stortingen en timing niet ("Ongerealiseerd" telt die wel). Rente, staking en cashback tellen als bezit bij ontvangst en staan in "Resultaat". De rekenvaluta heeft geen rendement. Het geldgewogen rendement staat op Belastingen.',
legendRange: 'Jaarkeuze: kalenderjaren, het lopende jaar tot vandaag. Shift-klik kiest een reeks; een gekozen jaar wegklikken laat ook de jaren ervóór vallen. Alles op de pagina volgt de keuze, met bedragen per einde periode (1 januari erna). Elk asset dat in de periode bewoog krijgt een kaart, ook als het inmiddels verkocht is. Het detailvenster toont altijd "Alles".',
legendInvested: 'Ingelegd: betaalde koers plus premie en kosten. "Gem. aankoopkoers", "Gem. premie/event" en "Ingelegd" per asset staan in het detailvenster; de aankoopkoers meet alleen de spot.',
legendResult: 'Resultaat: wat de positie in de gekozen periode opleverde, de waardeverandering min wat er netto is ingelegd. Koerswinst, verkopen en rente tellen mee. Ongerealiseerd geldt sinds aankoop en alleen voor wat je nog hebt; over alle jaren is resultaat ongeveer ongerealiseerd plus gerealiseerd plus rente.',
legendDetail: '"Toon details": de grafiek groot, met accounts en boekingen. Een regel aanwijzen markeert die dag in de grafiek.',
legendChain: 'Rendement over meerdere jaren is geketend, niet opgeteld: twee jaar +10% is samen +21%. Een jaarkader toont dat jaar apart.',
legendNoPrice: '"Geen koers bekend": de hoeveelheid komt uit de boekingen; waarde, aandeel, resultaat en rendement blijven leeg (geen nul). Rendement telt vanaf de eerste bekende koers. Koerspunten toevoegen kan via een bron op Prijsgeschiedenis of via de AI-koppeling; één per jaar volstaat.',
legendUnrealized: 'Ongerealiseerd: tegen de betaalde prijs inclusief kosten en premie. Gerealiseerd: opbrengst van verkopen in de periode min kosten en kostprijs. Een streepje: niets verkocht of kostprijs onbekend. Een munt staat op min de premie tot de spot die terugverdient; los gewicht heeft geen product.',
invested: 'Ingelegd',
total: 'Totale waarde',
product: 'Product',
form: 'Vorm',
count: 'Aantal',
weight: 'Gewicht',
unallocated: 'Niet-toegewezen / los gewicht',
openDetail: 'Toon details',
tradesTitle: 'Aan- en verkopen',
tradeDate: 'Datum',
tradeType: 'Soort',
tradeBuy: 'Aankoop',
tradeSell: 'Verkoop',
tradePrice: 'Koers',
tradeAmount: 'Bedrag',
noTrades: 'Geen aan- of verkopen op dit account.',
noChart: 'Geen verloop over de gekozen periode.',
ringKinds: 'Naar soort',
ringAssets: 'Per asset',
ringKindsLabel: 'Verdeling van je vermogen over de assetsoorten',
ringAssetsLabel: 'Verdeling van je vermogen over de afzonderlijke assets',
ringOther: 'Overig',
perAccount: 'Per account',
sinceStart: 'Sinds begin',
openYearOverview: 'Jaaroverzicht van het vermogen openen',
openReturn: 'Rendement openen',
returnTitle: 'Rendement',
returnDay: 'Deze dag',
returnSoFar: 'Sinds begin periode',
returnCarried: 'Geen koers deze dag: de vorige is doorgetrokken, dus de beweging komt pas op de volgende koers.',
periodDay: '1 dag',
periodDays: '{n} dagen',
periodYear: '1 jaar',
returnData: 'Waarover',
returnTotal: 'Hele vermogen',
returnSelection: 'Selectie ({n} assets)',
returnKinds: 'Soort',
returnAssets: 'Asset',
perAsset: 'Per asset',
groupBy: 'Groepeer de kaarten',
asset: 'Asset',
shareOfAccount: 'Aandeel in account',
broughtInNet: 'Ingebracht (netto)',
ownWealth: 'Eigen vermogen',
othersWealth: 'Vermogen van derden',
costOnArrival: 'Kostprijs bij binnenkomst',
account: 'Account',
noAccountAssets: 'Dit account houdt nu niets aan.',
legendAccounts: 'Per account: dezelfde koersen als per asset. Ongerealiseerd naar rato van de eenheden, met de gemiddelde kostprijs van eigen vermogen. Een account van derden heeft een eigen kostprijs: de dagkoers waartegen het binnenkwam, plus wat het zelf kocht. Een verplaatsing tussen eigen accounts telt bij het rendement als opname en storting tegen de dagkoers, dus alleen de koers en de kosten tellen. De tweede lijn is wat er is ingebracht, verplaatsingen inbegrepen, en het resultaat is het verschil met de waarde. Wat op geen account staat, krijgt de kaart "Zonder account".',
legendFilter: 'Filter: een kaart uitzetten verbergt alleen de kaart. Het totaal, de ringen en het rendement tellen hem mee. Per account filter je op soort, zoals exchange of wallet.',
showAllTip: 'Toon ook het vermogen dat je voor een ander beheert en wat bij Vermogen niet meetelt.',
legendShowAll: 'Alles tonen (de schakelaar bij het totaal): staat bij Vermogen op een account "Vermogen van derden" of "Telt niet mee" (Systeem, tab Accounts), dan telt die pagina dat account niet mee. Geld van en naar zo\'n account telt als onttrekking of storting en niet als resultaat. De schakelaar toont alles, en zijn stand wordt onthouden.',
legendManaged: 'Vermogen van derden, niet meegeteld: {bedrag}.',
legendNotCounted: 'Telt niet mee, niet meegeteld: {bedrag}.',
legendShowAllOn: 'Alles tonen staat aan: vermogen van derden en wat niet meetelt, staan in de cijfers. In het venster van een asset staat het vermogen van derden op een eigen tab, met zijn eigen kengetallen.',
yearOverviewTitle: 'Jaaroverzicht van het vermogen',
valueEnd: 'Waarde eind',
investedNet: 'Ingelegd (netto)',
noLongerHeld: 'Niet meer in bezit',
noLongerHeldSince: 'Sinds {dag} is de hoeveelheid nul. De kaart staat er omdat je dit asset in deze periode nog wel had; rendement en resultaat gaan over die tijd.',
year: 'Jaar',
noYears: 'Nog geen jaren om te tonen.',
perProduct: 'Per product',
noAccount: 'Zonder account',
noAccountRows: 'Geen stand per account om te tonen.',
},
transfers: {
title: 'Verplaatsingen',
fillDateAsset: 'Vul datum en asset in.',
pickValidProduct: 'Kies een geldig product.',
fillCount: 'Vul een aantal stuks (> 0) in.',
fillDateAssetQuantity: 'Vul datum, asset en hoeveelheid (> 0) in.',
fillOneAccount: 'Vul ten minste een van/naar-account in.',
fillThisAccount: 'Kies dit account als van- of naar-account.',
new: 'Nieuwe verplaatsing',
edit: 'Bewerken',
cancel: 'Annuleren',
save: 'Opslaan',
colOrigin: 'Herkomst',
originPick: 'Gewone verplaatsing',
originNone: 'Niets tegenover',
originNonePick: 'Niets tegenover: gekregen of een bonus',
asset: 'Asset',
date: 'Datum',
time: 'Tijd',
amount: 'Hoeveelheid (sats)',
from: 'Van',
to: 'Naar',
unitFee: 'Fee (sats, on-chain)',
note: 'Notitie',
none: 'Nog geen verplaatsingen.',
delete: 'Verwijderen',
confirmDelete: 'Deze verplaatsing verwijderen?',
needAsset: 'Maak eerst een asset aan of migreer de data op het overzicht.',
colDate: 'Datum',
colAsset: 'Asset',
colAmount: 'Hoeveelheid',
colFrom: 'Van',
colTo: 'Naar',
colDirection: 'Richting',
colOther: 'Van / naar',
dirIn: 'In',
dirOut: 'Uit',
colFee: 'Fee',
colNote: 'Notitie',
colAddress: 'Ketenadres',
colSource: 'Bron',
addressPlaceholder: 'On-chain ontvangstadres (voor auto-match)',
colKind: 'Soort',
colProduct: 'Product',
addCrypto: 'Crypto verplaatsen',
addMetal: 'Edelmetaal verplaatsen',
addFiat: 'Geld verplaatsen',
looseWeight: '(los gewicht)',
internal: 'intern',
fiatNote: 'Fiat-waarde = marktkoers (dichtstbijzijnde) op de datum van verplaatsing, in de rekenvaluta.',
matched: 'Ook gevonden in on-chain tracking',
},
trades: {
title: 'Aankoop & Verkoop',
noSpotForDate: 'Geen koers gevonden voor deze datum. Vul de prijs zelf in, of 0 als u er niets '
+ 'voor betaald hebt.',
saveCancelled: 'Opslaan geannuleerd: pas de prijs aan.',
fillDateAssetPrice: 'Vul datum, asset en prijs in.',
pickValidProduct: 'Kies een geldig product.',
fillCount: 'Vul een aantal stuks (> 0) in.',
fillQuantity: 'Vul een hoeveelheid (> 0) in.',
new: 'Nieuwe trade',
edit: 'Bewerken',
cancel: 'Annuleren',
save: 'Opslaan',
type: 'Type',
asset: 'Asset',
date: 'Datum',
time: 'Tijd',
amount: 'Hoeveelheid (sats)',
location: 'Locatie',
note: 'Notitie',
none: 'Nog geen trades.',
delete: 'Verwijderen',
confirmDelete: 'Deze trade verwijderen?',
needAsset: 'Maak eerst een asset aan of migreer de data op het overzicht.',
colDate: 'Datum',
colType: 'Type',
colAsset: 'Asset',
colAmount: 'Hoeveelheid',
colTotal: 'Bedrag',
colPrice: 'Prijs/eenheid',
colOrigin: 'Herkomst',
originUnknown: 'Onbekend',
originPaidHint: 'De prijs komt van jou: een bedrag of een prijs per eenheid die je hebt ingevoerd.',
originMarketDay: 'Dagkoers, door de app opgezocht. Het tijdstip van de boeking is er niet in verwerkt.',
originMarketMoment: 'Koers op het tijdstip van de boeking, door de app opgezocht.',
originNoneHint: 'Verkregen zonder tegenprestatie, dus een gift. De prijs is 0 en dat is hier het juiste antwoord.',
originUnknownHint: 'Deze boeking komt van voor de app dit vastlegde; of de prijs betaald of opgezocht was, is niet bekend.',
originPick: 'Onbekend, of laat de app kiezen',
originPickPaid: 'Betaald: dit getal komt van mij',
originPickGift: 'Gift: niets betaald',
colSource: 'Bron',
colFee: 'Fee',
feeOnInterest: 'Kosten bij rente tellen nergens mee, dus deze boeking wordt niet opgeslagen. Laat de '
+ 'kosten weg of verlaag het bedrag.',
unitFeeOnBuy: 'Kosten in het asset zelf bij een aankoop tellen nergens mee. Boek het bedrag dat je '
+ 'ontving, zonder die kosten, of zet de kosten in geld.',
colAccount: 'Account',
colNote: 'Notitie',
colKind: 'Soort',
colProduct: 'Product',
addCrypto: 'Crypto toevoegen',
addMetal: 'Edelmetaal toevoegen',
addFiat: 'Geld storten of opnemen',
looseWeight: '(los gewicht)',
fiatNote: 'Bedrag = hoeveelheid × prijs per eenheid, inclusief de fee bij een aankoop en na aftrek van de fee bij een verkoop.',
matched: 'Ook gevonden in on-chain tracking',
},
priceOrigin: {
price: 'Koers {prijs} op {dag}',
pricePer: 'Koers {prijs} per {eenheid} op {dag}',
someSource: 'een bron',
close: 'Slotkoers van {bron}',
manual: 'Met de hand ingevoerd',
live: 'Actuele koers, die nog beweegt',
liveFrom: 'Actuele koers van {bron}, die nog beweegt',
spot: 'Afgeleid uit een spot van {bron}, geen slotkoers',
spotAt: 'Afgeleid uit de spot van {tijd} bij {bron}, geen slotkoers',
devBefore: '{pct} naast de slotkoers ervoor',
devAfter: '{pct} naast die erna',
carried: 'Doorgetrokken van {dag} ({bron}), {n} dagen oud',
strength: 'Nauwkeurigheid: {sterkte}',
sumHead: 'Rust op {n} koersen',
sumWeakest: 'Zwakste: {asset}, {zin}',
sumMissing: 'Geen koers voor {assets}: telt als nul mee',
pageWarnTitle: 'Ontbrekende koersen',
pageWarn: 'Op deze pagina ontbreekt bij minstens één bedrag een koers: die post telt als nul mee. Ga met de muis over de bedragen; waar het speelt staat een gele i die zegt welke post het is.',
bookingPrice: 'Prijs {prijs}',
bookingPricePer: 'Prijs {prijs} per {eenheid}',
bookingPaid: 'Betaald: de prijs die je zelf invoerde',
bookingMoment: 'De koers op het moment van de boeking',
bookingDay: 'Dagkoers van {dag}, opgezocht bij het boeken',
bookingDayFrom: 'Dagkoers van {dag}: {zin}',
bookingDayNote: 'Een dagkoers is niet de koers van het moment zelf',
bookingUnknown: 'Niet vastgelegd of deze prijs betaald of opgezocht is',
strength_unknown: 'onbekend',
strength_high: 'hoog',
strength_lower: 'lager',
strength_low: 'laag',
strength_missing: 'onvolledig',
},
priceHistory: {
title: 'Prijsgeschiedenis',
confirmDeletePoint: 'Deze koers verwijderen?',
gapsMore: 'En nog {n} gaten; werk eerst deze bij.',
gapLine: '{van} t/m {tot}, {n} dagen',
gapFill: 'Bijwerken',
gapNoSource: 'Voor {asset} is geen bron gekozen die een reeks of een koers per datum levert. Kies er een onder Integraties, Bronkeuze.',
gapConfirmPoint: 'Dit vraagt bij {bron} tot {n} koersen op, één verzoek per dag. Een bron met een maandlimiet kan daar snel doorheen gaan.',
gapConfirmSeries: 'Dit haalt de reeks van {reeks} op (hooguit één keer per dag).',
gapConfirmBoth: 'Dit haalt eerst de reeks van {reeks} op, en vraagt daarna bij {bron} per dag op wat nog ontbreekt: tot {n} verzoeken.',
gapFillAll: 'Alles bijwerken',
gapIgnore: 'Negeren',
gapUnignore: 'Weer meetellen',
gapIgnoreAll: 'Alles negeren',
gapIgnoreAllConfirm: 'Deze {n} gaten worden niet meer getoond en tellen niet meer mee voor het bolletje. Terugzetten kan onder Genegeerd, onderaan dit tabblad.',
gapNone: 'Geen openstaande gaten.',
gapBusy: 'Bezig met bijwerken…',
gapIgnoreConfirm: 'Dit gat wordt niet meer getoond en telt niet meer mee voor het bolletje. Gebruik dit voor dagen die geen enkele bron heeft. Terugzetten kan onder Genegeerd.',
gapCountOne: '{n} gat',
gapCountMany: '{n} gaten',
dayCountOne: '{n} dag',
dayCountMany: '{n} dagen',
suspectOne: '{n} verdachte koers',
suspectMany: '{n} verdachte koersen',
gapCardSummary: '{gaten}, {dagen}',
gapStop: 'Stoppen',
gapStopProgress: 'Stoppen ({i} van {n})',
gapStopped: 'Het bijwerken is gestopt; de rest is niet gevraagd.',
gapLimit: 'De maandlimiet van de bron is bereikt, dus het bijwerken is gestopt. Wat nog ontbreekt kan volgende maand, of via een andere bron voor deze soort.',
gapFilled: '{asset}: de gaten zijn gevuld.',
gapRemaining: '{asset}: nog {n} dagen zonder koers.',
gapWhySeries: '{reeks} levert een reeks die pas op {begin} begint, en er is geen bron actief die een koers per datum ophaalt (zoals GoldAPI). Voor de dagen daarvóór kun je het gat negeren of koersen met de hand invoeren; een bron per datum aanzetten kost een verzoek per dag.',
gapWhySeriesHole: 'Deze dagen vallen binnen de reeks van {reeks}, maar die bron heeft er zelf geen koersen voor: een gat in zijn data. Een bron die een koers per datum ophaalt (zoals GoldAPI) kan ze vullen, voor {n} verzoeken; anders negeren of met de hand invoeren.',
gapWhySeriesEmpty: '{reeks} leverde voor deze dagen niets, en er is geen bron actief die een koers per datum ophaalt (zoals GoldAPI). Negeer het gat of voer koersen met de hand in.',
gapWhyPoint: '{bron} gaf voor deze dagen geen koers: een weekend of feestdag, een datum van vóór zijn historie, of de maandlimiet is op.',
kind_close: 'slotkoers',
kind_manual: 'met de hand',
kind_live: 'vandaag',
kind_spot: 'afgeleid',
kind_carried: 'doorgetrokken',
kind_none: 'geen koers',
kindCount: '{n} {soort}',
kindCount_closeOne: 'slotkoers',
kindCount_closeMany: 'slotkoersen',
kindCount_manualOne: 'met de hand',
kindCount_manualMany: 'met de hand',
kindCount_liveOne: 'vandaag',
kindCount_liveMany: 'vandaag',
kindCount_spotOne: 'afgeleid',
kindCount_spotMany: 'afgeleid',
kindCount_carriedOne: 'doorgetrokken',
kindCount_carriedMany: 'doorgetrokken',
kindCount_noneOne: 'zonder koers',
kindCount_noneMany: 'zonder koers',
cardPeriod: '{dagen}:',
cardNoPrices: 'Nog geen koersen.',
stripDay: '{dag}: {soort}',
stripRange: '{van} t/m {tot}: {soort}',
cardGaps: '{gaten}, {dagen} zonder koers',
tabProvenance: 'Herkomst',
tabGaps: 'Gaten',
tabIgnored: 'Genegeerd',
tabAbsent: 'Geen koers bij de bron',
absentExplain: 'De bron gaf voor deze dagen geen koers, dus de app vraagt ze niet opnieuw op. Verwijder een regel om die dagen bij het volgende bijwerken weer te laten opvragen.',
absentLine: '{bron}: {van} t/m {tot}, {dagen}',
absentLineOne: '{bron}: {dag}',
absentForget: 'Opnieuw laten opvragen',
tabPrices: 'Koersen',
tabCheck: 'Controle',
checkFactor: 'factor {n}',
checkShare: '{n}%',
checkHint: 'Een verkeerde rij verwijder of corrigeer je onder Koersen. Klopt een koers toch, dan kun je de bevinding aanvaarden op Systeem, Gezondheid.',
checkShowKind: 'Toon in Koersen',
checkOpenRow: 'Toon deze koers in Koersen',
checkFiltered: 'Gefilterd op Controle: {soort} ({n}).',
checkFilteredDay: 'Gefilterd op {dag}, uit Controle.',
checkClearFilter: 'Alle koersen',
tipMoment: 'koers van {tijd}',
tipDeviation: '{voor} naast de slotkoers ervoor, {na} naast die erna',
provNoWeak: 'Elke dag in deze periode heeft een slotkoers.',
provRange: '{van} t/m {tot}',
provColPeriod: 'Periode',
provColKind: 'Soort',
provColDays: 'Dagen',
provColNote: 'Toelichting',
provColSource: 'Bron',
provToGaps: 'Naar dit gat onder Gaten',
provSpotNote: 'tot {pct} naast de slotkoers',
provCarriedNote: 'tot {n} dagen oud',
tabSource: 'Bron',
diagCard_noCoverage: 'Geen integratie levert koersen',
diagCard_allInactive: '{namen} staat uit',
diagCard_noChoice: 'Geen bronkeuze',
diagCard_choiceUnusable: 'Bronkeuze werkt niet',
diagCard_limitReached: 'Maandlimiet bereikt: {namen}',
diagCard_choiceInactive: 'Gekozen maar uitgezet: {namen}',
diag_noCoverage: 'Geen enkele integratie levert een reeks of een koers per datum voor {symbool}. Voeg er een toe onder Integraties, of voer koersen met de hand in.',
diag_allInactive: '{namen} levert koersen voor {symbool}, maar staat uit. Zet hem aan onder Integraties.',
diag_noChoice: 'Er is geen bron gekozen voor de koershistorie van {symbool}, dus er komen geen koersen binnen.',
diag_choiceUnusable: 'De gekozen bron ({namen}) staat uit of levert geen koersen voor {symbool}, dus er komen geen koersen binnen.',
diag_limitReached: 'De maandlimiet van {namen} is bereikt. Deze maand komen er geen nieuwe koersen voor {symbool} binnen.',
diag_limitReachedFallback: 'De maandlimiet van {namen} is bereikt. De volgende bron in de keten neemt het over.',
diag_choiceInactive: 'Gekozen maar uitgezet: {namen}. De volgende bron in de keten neemt het over; kies een andere onder Integraties, Bronkeuze, of zet hem aan.',
diagProposal: 'Voorstel: {naam} voor de koershistorie.',
momentTitle: 'Prijs op een specifiek moment',
date: 'Datum',
time: 'Tijd',
useTime: 'Tijd gebruiken',
peildatum: 'Peildatum',
lookup: 'Prijs ophalen',
loading: 'Koers ophalen…',
requested: 'Opgevraagd',
actual: 'Werkelijk prijspunt',
diff: 'verschil',
histTitle: 'Opgeslagen prijsgeschiedenis (database)',
startDate: 'Vanaf datum',
histLookup: 'Tonen',
sync: 'Synchroniseren met mempool',
syncing: 'Synchroniseren…',
synced: 'prijspunten opgeslagen',
storedEmpty: 'Nog geen opgeslagen historie. Klik op "Synchroniseren met mempool" om de koershistorie op te halen en te bewaren.',
points: 'opgeslagen punten',
noPoints: 'Geen opgeslagen prijspunten op of na deze datum.',
colUnit: 'Per',
manualUnknownAsset: 'Dat asset bestaat niet (meer).',
manualBadMoment: 'Vul een geldige datum in.',
manualFutureMoment: 'Een koers kan niet in de toekomst liggen.',
manualBadPrice: 'Een koers moet een getal boven nul zijn.',
colDateTime: 'Datum & tijd',
colDate: 'Datum',
colTime: 'Tijd',
colCombined: 'Integratie · Asset · Prijs',
search: 'Zoeken…',
assetLabel: 'Asset',
compare: 'Vergelijk integraties',
comparing: 'Integraties bevragen…',
cmpDayTitle: 'Dag-resolutie (dagcijfers)',
cmpDayNote: 'Dagcijfers voor de gekozen datum, onderling vergelijkbaar.',
cmpTsTitle: 'Tijdstip-resolutie (spot nu)',
cmpTsNote: 'Live spot per integratie (huidig moment): niet te vergelijken met dagcijfers.',
cmpNone: 'Geen integratie leverde een prijs voor deze asset.',
colDiff: 'Verschil',
colResolution: 'Resolutie',
colIntegration: 'Integratie',
colAsset: 'Asset',
resDay: 'dag',
resTimestamp: 'tijdstip',
tableTitle: 'Alle opgeslagen prijspunten',
colUpdated: 'Bijgewerkt',
allAssets: 'Alle assets',
refresh: 'Verversen',
delete: 'Verwijderen',
noAsset: 'Kies een asset.',
noDate: 'Vul een datum in.',
lookupNone: 'Geen prijspunt gevonden en ophalen bij de bron leverde niets op.',
dayCovers: 'Dagcijfer: geldt voor de hele dag (geen exact tijdstip).',
peilTitle: 'Peildatum-prijzen',
peilBody: 'Haal de prijs op voor de geconfigureerde peildatum',
peilFetch: 'Peildatumprijzen ophalen (alle assets)',
peilNoneForAsset: 'geen prijs gevonden',
resTitle: 'Over de resolutie',
resBody: 'Deze pagina gebruikt de mempool-API. Het endpoint historical-price geeft het dichtstbijzijnde opgeslagen prijspunt terug, niet exact het opgevraagde tijdstip. Voor oudere data kan dat uren tot een dag verschillen; de werkelijke tijd van het teruggegeven punt staat daarom bij het resultaat. Voor exacte prijs op de minuut is een beurs-OHLC-API nodig (spot_api-fase).',
},
tracking: {
title: 'Tracking',
zapFrom: 'Zap van {who}',
zapTo: 'Zap aan {who}',
zapIn: 'Zap ontvangen',
zapOut: 'Zap verstuurd',
noAccountsWithSources: 'Nog geen accounts met een tracking-bron.',
manageAccounts: 'Accounts beheren',
selectAccount: 'Account',
accountTotal: 'Totaal saldo',
sourceFallback: 'Tracking-bron',
badgeNwc: 'Wallet-pubkey',
badgeNwcHint: 'Een NWC-wallet, herkend aan zijn wallet-pubkey (Nostr Wallet Connect)',
badgeLnd: 'Lightning-node',
badgeLndHint: 'Een LND-node, gekoppeld op het tabblad Verbindingen',
walletOne: 'wallet',
walletMany: 'wallets',
statWallets: 'Wallets',
statTxs: 'Bewegingen',
statLinked: 'Gekoppeld',
selectedSum: 'Gekozen:',
selectedOf: '{n} van {m} accounts',
scanLast: 'Laatst bijgewerkt op',
scanProgress: 'Wallet {i} van {n}',
scanUpdated: 'bijgewerkt',
scanFailedN: 'mislukt',
proposalOne: 'voorstel',
proposalMany: 'voorstellen',
scanNever: 'Nog niet bijgewerkt',
scanAll: 'Bijwerken',
scanning: 'Scannen…',
scanningTx: 'Transacties ophalen',
scanError: 'Bijwerken mislukt',
scanNotOnchain: 'Niet via de keten te scannen',
lightningMovements: 'lightning-bewegingen bijgewerkt',
addressesScanned: 'adressen gescand',
addressesFailed: 'mislukt',
dirIn: 'Ontvangen',
dirOut: 'Verzonden',
fee: 'fee',
unconfirmed: 'Onbevestigd',
addLabel: 'Label toevoegen',
txCount: 'bewegingen',
copyAddr: 'Adres kopiëren',
collapseToggle: 'In-/uitklappen',
noTxs: 'Nog geen bewegingen voor deze bron.',
matched: 'Ook geregistreerd als gebeurtenis',
},
link: {
exact: 'Automatische match (adres)',
soft: 'Voorgestelde match (bevestigd)',
manual: 'Handmatig gekoppeld',
},
match: {
add: 'Koppel aan administratie',
linked: 'Gekoppeld',
toEvent: 'Koppel aan gebeurtenis',
toTx: 'Koppel aan on-chain beweging',
unlink: 'Ontkoppelen',
filter: 'Filter kandidaten…',
noCandidates: 'Geen kandidaten gevonden',
unconfirmed: 'onbevestigd',
},
convert: {
title: 'Omrekenen',
main: 'Hoofdeenheid',
sub: 'Subeenheid',
apply: 'Invoeren',
pieces: 'Per stuk',
product: 'Product',
count: 'Aantal',
},
portfolios: {
maxFree: 'De gratis versie houdt het op {max} portefeuille. Met een licentie vervalt die grens; '
+ 'er wordt intussen niets weggehaald.',
title: 'Portefeuilles',
switchFailed: 'Wisselen is niet gelukt.',
nameRequired: 'Een portefeuille moet een naam hebben.',
nameTooLong: 'Een portefeuillenaam is hoogstens {max} tekens lang.',
nameIsDirRef: '"{naam}" is geen naam maar een verwijzing naar een map.',
nameForbiddenChars: 'Een portefeuillenaam mag geen van deze tekens bevatten: < > : " / \\ | ? *',
nameTrailing: 'Een portefeuillenaam mag niet op een spatie of een punt eindigen.',
nameLeadingSpace: 'Een portefeuillenaam mag niet met een spatie beginnen.',
nameReserved: '"{naam}" is een gereserveerde naam in Windows en kan geen map worden.',
nameTaken: '"{naam}" is een naam die de app zelf gebruikt; kies een andere.',
activeCannotRename: '"{naam}" is de portefeuille die nu open is en kan niet hernoemd worden. Wissel eerst naar een andere portefeuille; de app start daarbij opnieuw.',
activeCannotArchive: '"{naam}" is de portefeuille die nu open is en kan niet weggegooid worden. Wissel eerst naar een andere portefeuille; de app start daarbij opnieuw.',
unknownPortfolio: 'Er is geen portefeuille "{naam}".',
nameInUse: 'Er is al een portefeuille "{naam}"; namen die alleen in hoofdletters of in schrijfwijze verschillen tellen als dezelfde.',
archiveFull: 'Het archief zit vol met mappen die "{naam}" heten; ruim er eerst een paar op.',
notInArchive: 'Er staat geen "{naam}" in het archief.',
passwordRequired: 'Vul een wachtwoord in.',
intro: 'Elke portefeuille is een eigen administratie: een eigen database én eigen geheimen, in een eigen map. Er is er altijd precies één open.',
openNow: 'Nu open',
activate: 'Openen…',
activateConfirm: 'Overschakelen naar "{naam}"? De app start daarvoor opnieuw op.',
activateWaiting: 'De app start opnieuw…',
activateNoSupervisor: 'De keuze is vastgelegd, maar deze app is gestart zonder de supervisor (npm run start:server). Sluit de app en start hem opnieuw om in "{naam}" te werken.',
create: 'Nieuwe portefeuille…',
createName: 'Naam',
createNameHint: 'De naam wordt de mapnaam op schijf.',
createCurrency: 'Rekenvaluta',
createDone: 'Portefeuille "{naam}" aangemaakt.',
copy: 'Kopiëren…',
copyTitle: 'Kopie van "{naam}"',
copyName: 'Naam van de kopie',
copyConfirm: 'Kopiëren',
copyDone: 'Portefeuille "{naam}" aangemaakt als kopie van "{bron}".',
createHint: 'Nieuwe portefeuille geeft een verse administratie zonder verbindingen. Kopiëren doe je per portefeuille in de lijst; een kopie neemt de database én de geheimen samen mee, want een geheim hoort bij een rij en klopt alleen bij die database.',
createCurrencyHint: 'De rekenvaluta is de munt waarin de portefeuille rekent en alle bedragen toont. Je kiest hem bij een nieuwe portefeuille en daarna ligt hij vast; een kopie houdt de munt van het origineel.',
rename: 'Hernoemen…',
renameTo: 'Nieuwe naam',
renameDone: 'Hernoemd naar "{naam}".',
renameActive: 'De portefeuille die nu open is, kan niet hernoemd worden: zijn database staat open. Schakel eerst over naar een andere.',
remove: 'Verwijderen…',
removeConfirm: 'Portefeuille "{naam}" verwijderen? De map verhuist naar het archief; er wordt niets gewist. Typ ter bevestiging de naam over.',
removeTypeLabel: 'Typ de naam',
removeMismatch: 'Dat is niet de naam; er is niets gewijzigd.',
removeDone: '"{naam}" staat nu in het archief.',
empty: 'Er is nog geen andere portefeuille.',
noDatabase: 'nog geen database',
lastUsed: 'laatst gebruikt',
never: 'nog niet gebruikt',
archiveTitle: 'Archief',
archiveIntro: 'Verwijderde portefeuilles staan hier. Ze tellen nergens meer mee, maar de bestanden zijn er nog.',
archiveEmpty: 'Het archief is leeg.',
purge: 'Definitief verwijderen…',
purgeConfirm: 'De map van "{naam}" en alles erin definitief verwijderen? Database, geheimen en historie zijn daarna weg. Dit kan niet ongedaan gemaakt worden. Typ ter bevestiging de naam over.',
purgeDone: '"{naam}" is definitief verwijderd.',
settingsTitle: 'Instellingen van deze portefeuille',
hintTitle: 'Wat zie je hier',
authTitle: 'Toegang tot deze portefeuille',
authNone: 'Geen wachtwoord ingesteld. De app is daardoor alleen vanaf deze machine bereikbaar.',
authSet: 'Er is een wachtwoord ingesteld.',
authEnv: 'Ingesteld via de omgevingsvariabele ASSETAPP_PASSWORD. Zolang die er staat, wint dat van wat je hier invult.',
authChange: 'Instellen of wijzigen…',
authClear: 'Leegmaken…',
authPassword: 'Wachtwoord',
authClearConfirm: 'Het wachtwoord van deze portefeuille weghalen? Daarna is de app alleen nog vanaf deze machine bereikbaar.',
authDone: 'Opgeslagen. Het geldt vanaf de volgende keer dat de app start.',
authClearedDone: 'Weggehaald. Het geldt vanaf de volgende keer dat de app start.',
authLogout: 'Uitloggen',
authLogoutConfirm: 'Uitloggen? Je moet het wachtwoord opnieuw invoeren om verder te kunnen.',
authHint: 'Van een ander apparaat erbij kunnen vergt een certificaat én inloggegevens. Het certificaat hoort bij deze installatie; de inloggegevens bij deze portefeuille.',
startYearTitle: 'Startjaar van deze administratie',
startYearLabel: 'Begin overzichten bij',
startYearAuto: 'Automatisch (vanaf de eerste boeking)',
startYearAutoState: 'Automatisch: overzichten beginnen bij de eerste peildatum na de eerste boeking, {jaar}.',
startYearState: 'Overzichten beginnen bij peildatum 1 januari {jaar}. De eerste boeking staat in {eerste}.',
startYearEmpty: 'Er is nog niets geboekt, dus er valt nog niets te begrenzen. Dit wordt pas zichtbaar zodra er een boeking of een balans staat.',
startYearHint: 'Alleen nodig als je administratie ver terug gaat: bij een eerste boeking in 1984 maakt de belastingpagina 42 peildatum-kolommen en vraagt hij de koersbron om evenzoveel historische punten. Er verdwijnt niets: de standen tellen alles vóór het startjaar gewoon mee, er worden alleen minder kolommen getoond.',
mwrTitle: 'Rendementsmethode',
mwrLabel: 'Bereken het geldgewogen rendement met',
mwr_dietz: 'Modified Dietz (standaard)',
mwr_irr: 'Interne rentevoet (IRR)',
mwrState_dietz: 'Het rendement wordt gedeeld door het gemiddeld werkzame vermogen: elke storting telt mee naar rato van hoe lang hij er stond.',
mwrState_irr: 'Het rendement is de rente op jaarbasis die jouw stortingen en opnames precies verklaart. Waar die niet bestaat, valt het getal terug op Modified Dietz.',
mwrHint: 'Dit verandert de percentages op de belastingpagina. Modified Dietz geeft altijd een getal; IRR is zuiverder maar heeft niet altijd een oplossing, bijvoorbeeld bij een positie die tussendoor op nul komt. De gekozen methode staat altijd bij het getal.',
},
dbfile: {
title: 'De hele administratie',
passTooShort: 'Kies een wachtwoord van minstens 8 tekens voor de back-up.',
notABackup: 'Dit bestand is geen AssetApp-back-up (te kort).',
notABackupUseRestore: 'Dit bestand is geen AssetApp-back-up. Een losse .sqlite zet je terug met "Terugzetten".',
unknownBackupVersion: 'Onbekende back-up-versie ({versie}); deze app kent versie {kent}.',
decryptFailed: 'Ontsleutelen mislukt: verkeerd wachtwoord, of het bestand is beschadigd.',
noManifest: 'Back-up beschadigd: geen manifest gevonden.',
manifestUnreadable: 'Back-up beschadigd: het manifest is onleesbaar.',
manifestLengths: 'Back-up beschadigd: de lengtes in het manifest kloppen niet met de inhoud.',
secretsUnreadable: 'Back-up beschadigd: het geheimenbestand is geen leesbare JSON.',
notReadableSqlite: 'Dit is geen leesbaar SQLite-bestand ({reden}).',
noSchemaTable: 'Dit bestand heeft geen Schema-tabel. Een database van vóór de baseline is niet '
+ 'meer om te zetten: het conversiescript staat alleen nog in de git-historie '
+ '(git log --all -- scripts/baseline-convert.mjs).',
noReadableVersion: 'De Schema-tabel bevat geen leesbare versie.',
versionBeforeBaseline: 'Deze database is versie {versie}, van vóór de nieuwe opzet (versie '
+ '{baseline}). Omzetten kan niet meer; het conversiescript staat alleen nog in de git-historie '
+ '(git log --all -- scripts/baseline-convert.mjs).',
versionNewerThanApp: 'Deze database is versie {versie} en dus nieuwer dan de app ({app}). Werk de app bij voordat je hem terugzet.',
emptyFile: 'Leeg bestand ontvangen.',
notSqlite: 'Dit is geen SQLite-bestand (de bestandskop klopt niet).',
backup: 'Back-up maken…',
backupPass: 'Wachtwoord voor de back-up',
backupPassAgain: 'Wachtwoord herhalen',
backupPassMismatch: 'De twee wachtwoorden zijn niet gelijk.',
backupDone: 'Back-up gemaakt. Bewaar het wachtwoord goed: zonder wachtwoord is de back-up niet terug te zetten.',
export: 'Database exporteren',
import: 'Terugzetten…',
confirmRestoreBackup: 'Deze back-up terugzetten? Dat vervangt de database ÉN de geheimen (secrets.json in de map van deze portefeuille). Van allebei blijft de vorige versie als .previous staan.',
restoredSecrets: 'Geheimen meeteruggezet:',
confirmImport: 'De huidige database vervangen door dit bestand? De vorige blijft als .previous naast het databasebestand staan.',
importDone: 'Database teruggezet',
importOrphans: 'Let op, verweesde verwijzingen gevonden:',
hint: 'De back-up bevat de database én de geheimen, versleuteld. De export is alleen de database: genoeg om te lezen, niet genoeg om alles terug te zetten.',
fresh: 'Leeg beginnen…',
confirmFresh: 'Met een lege administratie beginnen? Er komt een verse database in gebruik; de huidige blijft als .previous naast het databasebestand staan. Maak eerst een back-up als je hier ooit nog bij wilt.',
freshWord: 'leeg',
freshTypeLabel: 'Typ ter bevestiging het woord',
freshWordMismatch: 'Dat is niet het gevraagde woord; er is niets gewijzigd.',
freshDone: 'Lege administratie in gebruik',
},
import: {
title: 'Importeren',
fileLabel: 'CSV-bestand',
read: 'Inlezen',
template: 'Leeg sjabloon',
formatHint: 'Standaardformaat = de Bitvavo-export (tab- of komma-gescheiden). Eigen bestanden met dezelfde koppen werken ook; optionele kolom "Account".',
noFile: 'Kies eerst een bestand.',
readError: 'Bestand lezen mislukt.',
origin: 'Herkomst',
originPh: 'bijv. Bitvavo',
summary: 'Samenvatting',
nEvents: 'als gebeurtenis',
nSkipped: 'overgeslagen',
account: 'Account (exchange) voor deze import',
chooseAccount: '(kies account)',
newAccount: '+ nieuw exchange-account…',
newAccountPh: 'Naam nieuw account',
assetsTitle: 'Assets',
assetOk: 'gekoppeld',
assetMissing: 'geen asset: maak aan onder Systeem → Assets (rijen worden overgeslagen)',
addresses: 'Bestemming van adressen (withdrawals)',
destAccount: '(doel-account)',
noSource: '(geen specifieke tracking-bron)',
alreadyLinked: 'reeds gekoppeld',
process: 'Verwerken naar gebeurtenissen',
needAccount: 'Kies of maak eerst het exchange-account.',
needDest: 'Kies een doel-account voor elk adres.',
done: 'Import verwerkt',
processFailed: 'Verwerken mislukt',
resCreated: 'aangemaakt',
resUpdated: 'overschreven',
resKept: 'behouden',
resUnchanged: 'ongewijzigd',
resSkipped: 'overgeslagen',
rows: 'rijen',
conflictsTitle: 'Bestaande records',
conflictsIntro: 'Deze records bestaan al. Standaard worden ze overschreven; zet er een op "Behouden" om de bestaande versie te laten staan.',
colField: 'Veld',
colExisting: 'Bestaand',
colImported: 'Geïmporteerd',
keep: 'Behouden',
overwrite: 'Overschrijven',
allKeep: 'Alles behouden',
allOverwrite: 'Alles overschrijven',
continue: 'Doorgaan',
fType: 'Type',
fDate: 'Datum',
fAmount: 'Bedrag',
fPrice: 'Koers',
fFee: 'Fee ({munt})',
fFeeUnit: 'Fee',
notBookedTitle: 'Deze regels worden niet geboekt',
feeNotBooked: 'Regel {regel}: kosten bij rente, of kosten in het asset zelf bij een aankoop, tellen '
+ 'nergens mee. Boek deze regel met de hand.',
fFrom: 'Van',
fTo: 'Naar',
fAddress: 'Adres',
resDeleted: 'verwijderd',
multiTitle: 'Meerdere overeenkomsten',
multiIntro: 'Eén importregel komt overeen met meerdere bestaande records. De importregel wordt aangemaakt; kies per bestaand record of je het laat staan (Negeren) of verwijdert.',
importRow: 'Importregel',
ignore: 'Negeren',
delete: 'Verwijderen',
linkedNoDelete: 'gekoppeld, niet verwijderbaar',
identical: 'Identiek',
},
health: {
summary: '{n} bevindingen.',
start: 'Controle uitvoeren',
again: 'Opnieuw controleren',
lastRun: 'Laatste controle: {wanneer}.',
neverRun: 'Deze controle is nog nooit uitgevoerd.',
checking: 'Controle {i} van {n}: {naam}…',
checkFailed: 'Deze controle kon niet worden uitgevoerd:',
slowest: 'De traagste controle was "{naam}" ({s} seconden).',
more: 'En nog {n} meer. De volledige lijst staat in de tabel zelf.',
accept: 'Dit klopt zo',
acceptConfirm: 'Deze bevinding verdwijnt uit het rapport zolang de situatie hetzelfde blijft. '
+ 'Verandert er iets (er komt een geval bij, of een aantal wijzigt), dan staat hij er weer.',
accepted: 'Aanvaard. Deze bevinding staat nu bij de aanvaarde bevindingen onderaan.',
severityWarn: 'Waarschijnlijk niet bedoeld',
severityInfo: 'Ter kennisgeving',
acceptedTitle: 'Aanvaarde bevindingen',
acceptedNone: 'Nog geen bevindingen aanvaard.',
unaccept: 'Toch weer tonen',
acceptUnknownKind: 'Die soort bevinding bestaat niet.',
acceptNeedsSummary: 'Een aanvaarde bevinding heeft een leesbare samenvatting nodig.',
allClear: 'Geen bevindingen.',
allClearWhy: 'Dit rapport kijkt naar '
+ 'dubbele boekingen, balansen die niet verzoend zijn, gaten en achterstand in de koershistorie, '
+ 'verdachte koersen, verplaatsingen zonder tegenkant en een paar technische verwijzingen.',
kind: {
duplicate_events: 'Dubbele boekingen',
assets_without_balance: 'Assets zonder balans',
unreconciled_valuations: 'Balansen die niet verzoend zijn',
stale_prices: 'Achterlopende koersen',
late_price_history: 'Koershistorie begint te laat',
price_gaps: 'Gaten in de koershistorie',
price_stopped: 'Bezit zonder actuele koers',
transfer_without_counterpart: 'Verplaatsing zonder tegenkant',
unlinked_transactions: 'Ongekoppelde bewegingen',
coverage_without_asset: 'Dekking zonder asset',
price_unit_swap: 'Koers in de verkeerde eenheid',
price_outlier: 'Uitschieter in de koershistorie',
price_sources_disagree: 'Bronnen zijn het oneens',
price_not_positive: 'Koers van nul of lager',
price_in_future: 'Koers in de toekomst',
fee_without_effect: 'Kosten die nergens tellen',
booking_price_deviates: 'Boekingsprijs ver van de dagkoers',
price_origin_derivable: 'Herkomst van de prijs af te leiden',
},
why: {
duplicate_events: 'Dezelfde boeking staat er twee keer: zelfde asset, soort, moment en '
+ 'hoeveelheid. Bijna altijd één aankoop die dubbel is ingevoerd. Bij een productboeking telt '
+ 'ook het product mee, want verschillende munten van gelijk gewicht zijn niet hetzelfde.',
assets_without_balance: 'Je hebt dit asset in bezit, maar er staat geen enkele balans tegenover. '
+ 'Dat mag: een administratie die op het grootboek draait is compleet zonder balansen. Het '
+ 'betekent alleen dat er niets is om dat grootboek tegen af te zetten.',
unreconciled_valuations: 'Een balans wijkt af van wat de boekingen zeggen, en dat verschil is nog '
+ 'niet geboekt of aanvaard. Op Af te handelen kun je dat afhandelen.',
stale_prices: 'De laatste koers van dit asset is oud. De actuele waarde valt dan terug op dat '
+ 'punt, hoe oud het ook is, en dat staat nergens bij.',
late_price_history: 'Je bezit dit asset langer dan de koershistorie teruggaat. Alles vóór het '
+ 'eerste koerspunt is dus niet te waarderen; een koerspunt met de hand toevoegen kan op '
+ 'Prijsgeschiedenis.',
price_gaps: 'Tussen twee koerspunten zit een gat, geteld in dagen zonder koers vanaf je eerste '
+ 'boeking, net als op Prijsgeschiedenis. Het dagraster trekt de vorige koers door tot de '
+ 'ouderdomsgrens en geeft daarna niets meer.',
price_stopped: 'Je hebt dit asset nu in bezit, maar de laatste koers is ouder dan de app hem '
+ 'doortrekt. Op een peildatum na die koers is het dan niet te waarderen. Zoek een bron, of '
+ 'voeg een koers met de hand toe op Prijsgeschiedenis.',
transfer_without_counterpart: 'Een verplaatsing noemt maar één account. Dat kan kloppen (naar '
+ 'buiten of van buiten), maar tussen je eigen accounts hoort er een tegenkant te zijn.',
unlinked_transactions: 'Een beweging op de keten is aan geen enkele boeking gekoppeld. Dan telt '
+ 'hij wel in je saldo en niet in je grootboek.',
coverage_without_asset: 'Een bron zegt een symbool te leveren dat hier geen asset is. Niet fout, '
+ 'maar wel goed om te weten voordat je je erop verlaat.',
price_unit_swap: 'Deze koers ligt een factor 31 van de koers ervoor, en dat is het aantal gram in '
+ 'een troy ounce. Bijna altijd een koers per ounce die als koers per gram is opgeslagen, of '
+ 'andersom. Corrigeer of verwijder hem op Prijsgeschiedenis, onder Koersen.',
price_outlier: 'Deze koers ligt een factor drie of meer boven of onder allebei zijn buren. Dat doet '
+ 'geen markt in een dag; een nul te veel of te weinig wel.',
price_sources_disagree: 'Twee bronnen geven voor dezelfde dag een koers die ver uit elkaar ligt. Dat '
+ 'is geen fout van een van beide, maar een keuze: de app gebruikt de laatst geschreven rij.',
price_not_positive: 'Een koers van nul of lager is geen koers. De app telt deze rij niet mee, dus '
+ 'hij staat er wel maar doet niets.',
price_in_future: 'Deze koers heeft een moment dat nog niet geweest is. Dat kan alleen een tikfout '
+ 'in de datum zijn.',
fee_without_effect: 'Deze boeking draagt kosten op een plek die geen berekening leest: kosten in '
+ 'geld bij rente, of kosten in het asset zelf bij een aankoop of rente. Ze staan erop maar doen '
+ 'niets.',
booking_price_deviates: 'De prijs van deze aan- of verkoop ligt meer dan 20% van de koers van die '
+ 'dag, of een factor 31 (gram tegen troy ounce). Een spread van een paar procent is normaal; dit '
+ 'is meestal een tikfout, een verkeerde datum of de verkeerde eenheid.',
price_origin_derivable: 'Van deze boekingen is niet vastgelegd waar de prijs vandaan komt, maar hij '
+ 'is precies de dagkoers: die vulde het formulier zelf in. Met de knop krijgen ze de herkomst '
+ 'Dagkoers. Wat afwijkt blijft onbekend, want betaald of koers op het moment is dan niet te zien.',
},
fillOrigins: 'Herkomst invullen',
fillOriginsConfirm: 'Deze boekingen krijgen de herkomst Dagkoers. De wijziging komt in het '
+ 'wijzigingslog.',
fillOriginsDone: 'Bij {n} boekingen is de herkomst ingevuld.',
},
data: {
title: 'Data',
table: 'Tabel',
rows: 'rijen',
empty: 'Geen rijen.',
delete: 'Verwijderen',
confirmDelete: 'Deze rij definitief verwijderen?',
clear: 'Tabel leegmaken',
confirmClear: 'Alle records uit deze tabel definitief verwijderen? Dit kan niet ongedaan worden gemaakt.',
},
signals: {
title: 'Bitcoin Signalen & Grafieken',
noHistory: 'Geen koershistorie in opslag.',
noAssetForHistory: 'Geen {symbool}-asset gevonden voor koershistorie.',
live: 'LIVE DATA',
price: 'Prijs',
tabPrice: 'Bitcoin prijs',
tabPl: 'Power Law',
tabWma: 'Weekgemiddelden',
tabMayer: 'Mayer Multiple',
sigPlLabel: 'Power Law',
sigWmaLabel: '200-weeks MA',
sigMayerLabel: 'Mayer Multiple',
priceTitle: 'Bitcoin prijs',
priceSub: 'Historische koers',
plTitle: 'Power Law Corridor',
plSub: 'Live koers vs. langetermijntrend · log-log',
wmaTitle: '50- en 200-weeks gemiddelde',
wmaSub: '200-weeks: historische bodemzone · 50-weeks: scheidslijn tussen de regimes',
mayerTitle: 'Mayer Multiple',
mayerSub: 'Koers ÷ 200-daags gemiddelde · over-/onderwaardering',
log: 'Logaritmisch',
lin: 'Lineair',
zoomRecent: 'Zoom recent',
resetZoom: 'Reset zoom',
fullscreen: 'Volledig scherm',
loading: 'Laden…',
error: 'Kan data niet laden',
mayerInfo1Title: 'Mayer < 1,0:',
mayerInfo1: 'koers ligt onder het 200-daags gemiddelde. Historisch een sterke, maar zeldzame zone (lokale bodems).',
mayerInfo2Title: 'Mayer 1,0 tot 2,4:',
mayerInfo2: 'normale zone. Koers boven het 200-daags gemiddelde, maar nog niet uitgerekt.',
mayerInfo3Title: 'Mayer ≥ 2,4:',
mayerInfo3: 'historisch oververhit (de eigen drempel van Mayer). Vaak in de buurt van cyclustoppen.',
hintTitle: 'Wat zie je hier',
hintLightsTitle: 'De drie signalen',
hintLights: 'De lampjes vatten de drie grafieken samen en blijven staan terwijl je erdoorheen loopt. Klik er een aan om naar die grafiek te gaan. Groen, geel en rood zijn hier een oordeel, en de enige plek op deze pagina waar kleur dat betekent.',
hintColorsTitle: 'De kleuren in de grafieken',
hintColors: 'Elke lijn is een tint van de accentkleur: vol is de koers, een tint lichter is de signaallijn ernaast, en de lichtste is de referentie of de band erachter. Dus geen kleurcode, maar een rangorde.',
hintPl: 'De Power Law is een rechte lijn in log-log: de koers groeit als een macht van de tijd sinds het genesisblok. De lijn is de fit, niet een voorspelling.',
hintPlBands: 'De banden zijn een vaste factor op die fit, door de app gezet op wat historisch ongeveer klopt. Ze zijn een tekening en nooit de data.',
hintPlProjection: 'De lijnen lopen één jaar door voorbij de laatste koers. Bewust kort: verder vooruit tekenen suggereert een voorspellende waarde die deze fit niet heeft.',
hintWma200: 'Het 200-weeks gemiddelde is de trage bodemzone van de cyclus.',
hintWma50: 'Het 50-weeks gemiddelde is de scheidslijn tussen de twee regimes: steun in een stijgende markt, en hem verliezen valt historisch samen met het begin van de daling.',
leg: {
btc: 'Bitcoin', fit: 'Power Law fit', lower: 'Onderband', upper: 'Bovenband',
wma: '200-weeks MA', wma50: '50-weeks MA', mayer: 'Mayer Multiple',
},
sig: {
plStrong: 'STERKE KOOPZONE', plBuy: 'KOOPZONE', plAbove: 'BOVEN TREND', plFar: 'VER BOVEN TREND',
wmaBuy: 'KOOPZONE', wmaAbove: 'BOVEN 200WMA × 1,2', wmaFar: 'VER BOVEN 200WMA',
mayerLow: 'KOOPZONE', mayerMid: 'NEUTRAAL', mayerHigh: 'OVERVERHIT',
},
},
stub: {
title: 'Nog niet gebouwd',
body: 'Deze pagina komt in een latere fase. Het skelet en de database werken al.',
},
enums: {
asset_kind: { crypto: 'Crypto', metal: 'Metalen', fiat: 'Valuta' },
tax_category: { bank: 'Banktegoed', overig: 'Overige bezitting' },
tax_scope: { all: 'Telt mee', category: 'Alleen apart vermeld', none: 'Telt niet mee' },
wealth_scope: { managed: 'Vermogen van derden', none: 'Telt niet mee' },
metal_form: { coin: 'Munt', bar: 'Baar', other: 'Overig' },
displayUnit: { unit: 'Hoofdeenheid', subunit: 'Onder-eenheid' },
location_kind: { exchange: 'Exchange', wallet: 'Wallet', lightning: 'Lightning', card: 'Card', bank: 'Bank', vault: 'Kluis' },
account_kind: { exchange: 'Exchange', wallet: 'Wallet', lightning: 'Lightning', card: 'Card', bank: 'Bank', vault: 'Kluis' },
event_source: { manual: 'Handmatig', import: 'Import', reconcile: 'Reconcile', lightning: 'Lightning' },
event_type: { buy: 'Aankoop', sell: 'Verkoop', transfer: 'Verplaatsing', interest: 'Rente', reservation: 'Reservering' },
event_price_origin: { paid: 'Betaald', market_day: 'Dagkoers', market_moment: 'Koers op moment', none: 'Gift' },
valuation_source: { onchain: 'On-chain', manual: 'Handmatig', statement: 'Afschrift' },
interest_cadence: { term_end: 'Einde termijn', annual: 'Jaarlijks', quarterly: 'Per kwartaal', monthly: 'Maandelijks', weekly: 'Wekelijks' },
interest_rate_kind: { fixed: 'Berekend', variable: 'Handmatig of import' },
reconcile_status: { pending: 'Open', accepted_trade: 'Aankoop/Verkoop', accepted_transfer: 'Verplaatsing', accepted_interest: 'Rente', ignored: 'Genegeerd', auto_linked: 'Auto-gekoppeld' },
},
};