Versie 0.3.3

This commit is contained in:
Atreides Assets committed 2026-10-30 12:28:48 +01:00
1 parent 1cf6eeed29
commit 6e741a51fe
57 files changed
+1362 -2135

No files matched your search

+100 -103
View File
@@ -1,4 +1,4 @@
// Generated, do not edit. sha256:f025d672341c54d23ebad8e10876b424ac570cd500126582bf4b9c905f2cd672
// Generated, do not edit. sha256:68408d2148a830c2e11f8761e94fa494e4d87a9e45166891d38c4b2464170782
export const nl = {
app: { name: 'Atreides Assets' },
@@ -11,6 +11,8 @@ export const nl = {
requestTooLarge: 'Het verzoek is te groot.',
fileTooLarge: 'Het bestand is te groot.',
invalidAmount: 'Ongeldige hoeveelheid.',
create: 'Aanmaken',
rename: 'Hernoemen',
},
splash: {
@@ -70,22 +72,15 @@ export const nl = {
'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.',
cardFree: 'Gratis versie: onbeperkt in tijd, met een kleine administratie. Er wordt nooit iets '
+ 'weggehaald.',
cardFull: 'Volledige versie: alle grenzen opgeheven.',
cardFor: 'Deze licentie is voor {npub}',
cardFacts: 'Afgegeven op {issued}, geldig voor hoofdversie {from} tot en met {to}.',
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.',
signInIntro: 'Meld u aan met uw nostr-sleutel om te kopen of uw licentie op te halen.',
signInLast: 'Laatst aangemeld als {npub}.',
signInExtension: 'Met extensie',
signInExtensionNone: 'Geen nostr-extensie gevonden in deze browser (zoals Alby of nos2x).',
@@ -126,7 +121,6 @@ export const nl = {
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',
@@ -183,8 +177,7 @@ export const nl = {
+ '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.',
signInKnown: 'Gebruik de sleutel waar deze licentie op staat.',
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 '
@@ -211,17 +204,14 @@ export const nl = {
+ 'gemaakt, zodat het alleen terug te vinden is als u zich er zelf mee meldt.',
name_fiatAccounts: 'Fiatrekeningen',
name_assets: 'Assets naast valuta',
name_valuations: 'Balansen',
name_portfolios: 'Portefeuilles',
name_portfolios: "Portfolio's",
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',
@@ -238,22 +228,19 @@ export const nl = {
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_sourceChoice: 'Bronkeuze-matrix',
feat_providerKeys: 'Beheer van eigen integraties en API-sleutels',
feat_signals: 'Bitcoin-signalen, grafieken en widget',
feat_netshare: 'Widget netwerkaandeel',
feat_portfolios: 'Meerdere portefeuilles',
feat_portfolios: "Meerdere portfolio's",
feat_ai: 'AI-koppeling (MCP)',
feat_accountMerge: 'Accounts samenvoegen',
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.',
@@ -331,14 +318,14 @@ export const nl = {
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.',
usedByMarket: 'De eigen koersdienst, voor koersen, de licentie en support. Adres en token gelden voor de hele installatie, dus voor elk portfolio.',
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',
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',
@@ -391,7 +378,7 @@ export const nl = {
system: 'Systeem',
home: 'Dashboard',
settings: 'Instellingen',
portfolios: 'Portefeuilles',
portfolios: "Portfolio's",
import: 'Importeren en exporteren',
data: 'Data',
health: 'Gezondheid',
@@ -435,14 +422,14 @@ export const nl = {
addNoFit: 'Hier is te weinig ruimte voor de widgets die nog kunnen',
addNone: 'Alles is al toegevoegd',
profile: 'Indeling',
profileNew: 'Nieuwe indeling…',
profileNew: 'Nieuwe indeling',
profileNewPrompt: 'Naam van de nieuwe indeling',
profileRename: 'Naam wijzigen…',
profileRename: 'Naam wijzigen',
profileRenamePrompt: 'Nieuwe naam voor deze indeling',
profileDelete: 'Deze indeling verwijderen…',
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…',
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.',
@@ -598,12 +585,12 @@ export const nl = {
kindAccount: 'Nieuw account',
kindAccountDelete: 'Account verwijderen',
kindValuation: 'Balans',
kindPortfolio: 'Nieuwe portefeuille',
kindPortfolio: 'Nieuw portfolio',
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.',
portfolioNote: 'Leeg, en zonder sleutels of data uit deze administratie. Het wordt niet geopend: '
+ "wisselen doe je zelf op Systeem → Portfolio's, en dat is een herstart van de app.",
kindPreference: 'Instelling wijzigen',
preferenceNote: 'Deze instelling geldt voor deze portefeuille en verandert alleen de weergave of '
preferenceNote: 'Deze instelling geldt voor dit portfolio en verandert alleen de weergave of '
+ 'een interval, niet de administratie zelf.',
preferenceCurrent: 'nu',
preferenceOn: 'aan',
@@ -611,7 +598,7 @@ export const nl = {
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.',
sourceChoiceNote: 'De keten zoals hij nu staat zie je op Integraties, Bronkeuze, of op het tabblad Koersen van Prijsgeschiedenis.',
unknownKind: 'Onbekend soort voorstel',
ledger: 'grootboek',
diff: 'verschil',
@@ -669,7 +656,7 @@ export const nl = {
bookTitle: 'Reservering boeken',
otherTo: 'Naar',
otherFrom: 'Van',
outside: 'Buiten de portefeuille',
outside: 'Buiten het portfolio',
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?',
@@ -937,7 +924,7 @@ export const nl = {
finish: 'Inrichten',
persona_bitcoin: 'Alleen bitcoin',
persona_broad: 'Breder',
rerun: 'Inrichten…',
rerun: 'Inrichten',
},
notes: {
@@ -1023,8 +1010,8 @@ export const nl = {
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.',
persona: 'Portfolio gaat over',
personaHint: 'Breder verbergt Signalen & Grafieken en de bitcoinwidgets uit de keuze voor het dashboard. Per portfolio; boekingen en assets veranderen niet.',
kiosk: 'Openen in',
kioskWindow: 'Browser',
kioskFull: 'Eigen venster',
@@ -1076,13 +1063,13 @@ export const nl = {
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.',
rawOn: 'Aan: een AI ziet de echte namen en bedragen van dit portfolio.',
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 '
rawHint: 'Alleen aanzetten als dit portfolio geen echte gegevens bevat. De app kan dat niet '
+ 'vaststellen; dat weet alleen u. Let op: een kopie van een portfolio 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 '
+ 'en bedragen van dit portfolio 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 '
@@ -1103,7 +1090,7 @@ export const nl = {
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}.',
scope: 'Deze instellingen gelden alleen voor het portfolio dat 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.',
@@ -1252,9 +1239,7 @@ export const nl = {
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',
},
satNote: 'De satoshi is de kleinste on-chain eenheid. De millisatoshi bestaat alleen op het Lightning Network.', },
labels: {
title: 'Labels',
@@ -1317,6 +1302,7 @@ export const nl = {
merge: 'Samenvoegen',
mergeTitle: 'Twee accounts samenvoegen tot één',
mergeNeedTwo: 'Je hebt minstens twee accounts nodig om samen te voegen.',
mergePaid: 'Accounts samenvoegen hoort bij de volledige editie.',
mergePick: '(kies een account)',
mergeKeep: 'Behouden account',
mergeDrop: 'Opheffen account',
@@ -1497,7 +1483,7 @@ export const nl = {
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.',
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 → Portfolio\'s.',
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)',
@@ -1555,14 +1541,12 @@ export const nl = {
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.',
hintActivity: 'De lijn bovenaan (alle getoonde accounts), onderaan een kaart en in het accountvenster is de activiteit vanaf het startjaar van het portfolio: 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',
@@ -1593,8 +1577,8 @@ export const nl = {
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)',
bookAsSell: 'Verkoop (ging uit je portfolio)',
bookAsBuy: 'Aankoop (kwam je portfolio in)',
bookAsTransferTo: 'Verplaatsing naar',
bookAsTransferFrom: 'Verplaatsing van',
bookAsFeeOn: 'Kosten bij {soort} van {datum}',
@@ -2003,7 +1987,6 @@ export const nl = {
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',
@@ -2156,77 +2139,91 @@ export const nl = {
},
portfolios: {
maxFree: 'De gratis versie houdt het op {max} portefeuille. Met een licentie vervalt die grens; '
maxFree: 'De gratis versie houdt het op {max} portfolio. Met een licentie vervalt die grens; '
+ 'er wordt intussen niets weggehaald.',
title: 'Portefeuilles',
title: "Portfolio's",
switchFailed: 'Wisselen is niet gelukt.',
nameRequired: 'Een portefeuille moet een naam hebben.',
nameTooLong: 'Een portefeuillenaam is hoogstens {max} tekens lang.',
nameRequired: 'Een portfolio moet een naam hebben.',
nameTooLong: 'Een portfolionaam 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.',
nameForbiddenChars: 'Een portfolionaam mag geen van deze tekens bevatten: < > : " / \\ | ? *',
nameTrailing: 'Een portfolionaam mag niet op een spatie of een punt eindigen.',
nameLeadingSpace: 'Een portfolionaam 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.',
activeCannotRename: '"{naam}" is het portfolio dat nu open is en kan niet hernoemd worden. Wissel eerst naar een ander portfolio; de app start daarbij opnieuw.',
activeCannotArchive: '"{naam}" is het portfolio dat nu open is en kan niet weggegooid worden. Wissel eerst naar een ander portfolio; de app start daarbij opnieuw.',
unknownPortfolio: 'Er is geen portfolio "{naam}".',
nameInUse: 'Er is al een portfolio "{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.',
intro: 'Elk portfolio is een eigen administratie: een eigen database én eigen geheimen, in een eigen map. Er is er altijd precies één open; de kaart daarvan staat bovenaan.',
openNow: 'Nu open',
activate: 'Openen…',
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…',
create: 'Nieuw portfolio',
createConfirm: 'Aanmaken',
createName: 'Naam',
createNameHint: 'De naam wordt de mapnaam op schijf.',
createCurrency: 'Rekenvaluta',
createDone: 'Portefeuille "{naam}" aangemaakt.',
copy: 'Kopiëren…',
createDone: 'Portfolio "{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…',
copyDone: 'Portfolio "{naam}" aangemaakt als kopie van "{bron}".',
createHint: 'Nieuw portfolio geeft een verse administratie zonder verbindingen. Kopiëren doe je via het menu (…) op de kaart; 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 het portfolio rekent en alle bedragen toont. Je kiest hem bij een nieuw portfolio 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.',
renameActive: 'Het portfolio dat nu open is, kan niet hernoemd worden: zijn database staat open. Schakel eerst over naar een andere.',
remove: 'Verwijderen',
removeConfirm: 'Portfolio "{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',
cardSince: '{munt}, sinds {jaar}',
factAssets: 'Assets in gebruik',
factAccounts: 'Actieve accounts',
factEvents: 'Boekingen',
factValuations: 'Balansen',
factLastUsed: 'Laatst gebruikt',
factBackup: 'Laatste back-up',
backupNever: 'nog nooit',
more: 'Meer acties',
backupTitle: 'Back-up',
backupLateHint: 'De laatste back-up kleurt oranje als hij ouder is dan {dagen} dagen of er nog nooit een is gemaakt. Terugzetten en leeg beginnen staan in het menu (…) van het portfolio dat open is en gelden alleen daarvoor.',
archiveCount: 'Archief ({n})',
demoBadge: 'Voorbeeld',
demoHint: 'Demo is een voorbeeldadministratie met bitcoin, een exchange, een eigen wallet en een bankrekening, gevuld over de afgelopen tweeënhalf jaar. Hij telt niet mee voor de grens van de gratis editie. Openen is een herstart; terug naar je eigen portfolio ook.',
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…',
archiveIntro: "Verwijderde portfolio's staan hier. Ze tellen nergens meer mee, maar de bestanden zijn er nog.",
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',
settingsButton: 'Instellingen',
settingsOf: 'Instellingen van {naam}',
hintTitle: 'Wat zie je hier',
authTitle: 'Toegang tot deze portefeuille',
authNone: 'Geen wachtwoord ingesteld. De app is daardoor alleen vanaf deze machine bereikbaar.',
authTitle: 'Toegang tot dit portfolio',
authNone: 'Geen wachtwoord ingesteld.',
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…',
authChange: 'Wachtwoord instellen',
authSave: 'Opslaan',
authClear: 'Leegmaken',
authPassword: 'Wachtwoord',
authClearConfirm: 'Het wachtwoord van deze portefeuille weghalen? Daarna is de app alleen nog vanaf deze machine bereikbaar.',
authClearConfirm: 'Het wachtwoord van dit portfolio 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.',
authHint: 'Zonder wachtwoord is de app alleen vanaf deze machine bereikbaar. Van een ander apparaat erbij kunnen vergt een certificaat én inloggegevens. Het certificaat hoort bij deze installatie; de inloggegevens bij dit portfolio.',
startYearTitle: 'Startjaar van deze administratie',
startYearLabel: 'Begin overzichten bij',
startYearAuto: 'Automatisch (vanaf de eerste boeking)',
@@ -2244,7 +2241,6 @@ export const nl = {
},
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".',
@@ -2265,20 +2261,21 @@ export const nl = {
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…',
backup: 'Back-up',
backupConfirm: '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.',
import: 'Terugzetten',
confirmRestoreBackup: 'Deze back-up terugzetten? Dat vervangt de database ÉN de geheimen (secrets.json in de map van dit portfolio). 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…',
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',
@@ -2301,7 +2298,7 @@ export const nl = {
nSkipped: 'overgeslagen',
account: 'Account (exchange) voor deze import',
chooseAccount: '(kies account)',
newAccount: '+ nieuw exchange-account…',
newAccount: '+ nieuw exchange-account',
newAccountPh: 'Naam nieuw account',
assetsTitle: 'Assets',
assetOk: 'gekoppeld',