1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
|
/**
* Dutch — translated from locales/en.js.
*
* Register: formal ("u").
* `hub`, `node` and `GEK` are left in English: they name the CLI
* (`meshbay-node`), node.toml and the docs, which are English throughout.
* Grammatical gender chosen here: de hub, de node, de GEK (de sleutel).
*/
export default {
// Nav
'nav.toggle_menu': 'Menu tonen',
'nav.light_mode': 'Licht thema',
'nav.dark_mode': 'Donker thema',
'nav.logout': 'Afmelden',
'nav.login': 'Aanmelden',
'nav.minimize_tray': 'Minimaliseren naar systeemvak',
'tray.show': 'MeshBay tonen',
'tray.quit': 'Afsluiten',
'tray.start_node': 'Node starten',
'tray.stop_node': 'Node stoppen',
// Sidebar
'sidebar.my_groups': 'Mijn groepen',
'sidebar.no_groups': 'Nog geen groepen',
'sidebar.legal': 'Juridische informatie',
'sidebar.discover': 'Ontdekken',
'sidebar.public_groups': 'Openbare groepen',
// Login
'login.title': 'Aanmelden',
'login.username': 'Gebruikersnaam',
'login.password': 'Wachtwoord',
'login.submit': 'Aanmelden',
'login.loading': 'Bezig met aanmelden...',
'login.no_account': 'Nog geen account?',
'login.register_link': 'Account aanmaken',
'login.forgot': 'Wachtwoordzin vergeten?',
'reset.title': 'Wachtwoordzin opnieuw instellen',
'reset.request_intro': 'Voer uw gebruikersnaam en het e-mailadres van het account in. Als ze overeenkomen, wordt een herstelcode naar dat adres gestuurd.',
'reset.send_code': 'Code versturen',
'reset.form_intro': 'Voer de code uit uw e-mail in en kies een nieuwe wachtwoordzin. Als u uw herstelsleutel hebt, voeg die toe om ook de toegang tot uw groepen te herstellen.',
'reset.code': 'Herstelcode',
'reset.recovery_key': 'Herstelsleutel (optioneel)',
'reset.recovery_key_hint': 'Laat leeg als u die niet hebt. Zonder de sleutel wordt uw aanmelding hersteld, maar moet u tot elke groep opnieuw toetreden.',
'reset.new_pass': 'Nieuwe wachtwoordzin',
'reset.new_pass_repeat': 'Nieuwe wachtwoordzin herhalen',
'reset.submit': 'Wachtwoordzin opnieuw instellen',
'reset.working': 'Uw groepsidentiteiten worden hersteld…',
'reset.signin_restored': 'Uw aanmelding is hersteld.',
'reset.groups_restored': 'Uw groepsidentiteiten zijn hersteld op elke bereikbare node.',
'reset.no_recovery': 'Uw groepsidentiteiten zijn niet hersteld. Vraag voor elke groep de operator ervan om u los te maken en een nieuwe uitnodigingscode te sturen, en treed dan opnieuw toe.',
'reset.needs_operator': 'Deze groepen vereisen nog actie — vraag elke operator om u los te maken en een nieuwe code te sturen:',
'reset.go_app': 'Naar de app',
'reset.back_to_login': 'Terug naar aanmelden',
'reset.err_unsupported': 'Het opnieuw instellen van de wachtwoordzin vereist de crypto-module van de browser, die hier niet beschikbaar is.',
// Register
'register.title': 'Account aanmaken',
'register.username': 'Gebruikersnaam',
'register.email': 'E-mailadres',
'register.password': 'Wachtwoordzin (minstens 12 tekens)',
'register.confirm': 'Wachtwoord bevestigen',
'register.submit': 'Account aanmaken',
'register.loading': 'Account wordt aangemaakt...',
'register.has_account': 'Hebt u al een account?',
'register.login_link': 'Aanmelden',
'register.recovery_title': 'Bewaar uw herstelsleutel',
'register.recovery_intro': 'Deze sleutel herstelt uw groepsidentiteiten als u ooit uw wachtwoordzin vergeet. Bewaar hem in een wachtwoordmanager of op een veilige plek.',
'register.recovery_copy': 'Kopiëren',
'register.recovery_copied': 'Gekopieerd',
'register.recovery_warning': 'Als u zowel uw wachtwoordzin als deze sleutel verliest, blijven uw bestanden op hun nodes staan, maar treedt u tot elke groep opnieuw toe met een nieuwe identiteit.',
'register.recovery_saved': 'Ik heb mijn herstelsleutel op een veilige plek bewaard.',
'register.recovery_continue': 'Doorgaan',
'register.recovery_email_opt': 'Stuur deze herstelsleutel ook naar mij per e-mail als back-up',
'register.recovery_emailed': 'Er is ook een kopie naar uw e-mailadres gestuurd, in hetzelfde bericht als uw verificatiecode.',
'register.recovery_not_emailed': 'Dit is niet per e-mail verstuurd. Sla het nu op — dit is de enige keer dat het wordt getoond.',
'register.success_title': 'Verifieer uw e-mail',
'register.success_msg': 'Er is een verificatiecode naar uw e-mailadres gestuurd. Voer deze hieronder in om uw account te activeren.',
'register.go_login': 'Naar het aanmelden',
'register.code_placeholder': 'Verificatiecode',
'register.verify_btn': 'Verifiëren',
'register.verifying': 'Verifiëren…',
'register.verified_title': 'E-mail geverifieerd',
'register.verified_msg': 'Uw account is actief. U kunt zich nu aanmelden.',
'register.resend': 'Code opnieuw verzenden',
'register.resend_sent': 'Er is een nieuwe code verzonden.',
'login.pending_verification': 'Uw e-mailadres is nog niet geverifieerd. Controleer uw inbox voor de verificatiecode.',
'login.verify_link': 'E-mail verifiëren',
'login.invalid': "Onjuiste gebruikersnaam of wachtwoordzin.",
'login.locked': "Te veel onjuiste wachtwoordzinnen voor dit account. Probeer het over {minutes} min opnieuw of stel uw wachtwoordzin opnieuw in.",
// Sign-in page: what MeshBay is (browser only)
'welcome.title': 'Het internet zoals het bedoeld was.',
'welcome.lead': 'MeshBay is opensourcesoftware waarmee u op afstand bij uw persoonlijke bestanden kunt, en die toepassingen draait bovenop de opslag van uw eigen computer:',
'welcome.app_chat': 'Chat',
'welcome.app_photos': 'Foto’s',
'welcome.app_media': 'Mediacenter',
'welcome.app_video': 'Videospeler',
'welcome.app_music': 'Muziekspeler',
'welcome.groups': 'Maak groepen aan om uw naasten toegang te geven tot een aantal van deze toepassingen.',
'welcome.e2e': 'Uw gegevens zijn end-to-end versleuteld en gaan peer-to-peer, rechtstreeks van elk apparaat naar de computer waarop ze staan: uw node. Ze gaan nooit via de hub meshbay.org.',
'welcome.uses_title': 'Wat u ermee kunt doen',
'welcome.use_chat': 'Chatten binnen een groep',
'welcome.use_photos': 'Fotoalbums delen met familie en vrienden',
'welcome.use_media': 'Overal bij uw mediacenter thuis, voor u en uw huishouden, met streaming en Chromecast via de desktop-app',
'welcome.use_apps': 'Uw eigen toepassingen bouwen op de node die u host',
'welcome.hub_title': 'Wat meshbay.org doet',
'welcome.hub_body': 'meshbay.org is alleen een signaleringsdienst: het meldt u aan en brengt de partijen met elkaar in contact, plug-and-play, over thuisnetwerken heen.',
'welcome.hub_never': 'Uw inhoud komt er nooit terecht:',
'welcome.never_transit': 'Er gaat niets doorheen: geen inhoud, geen indexering',
'welcome.never_stored': 'Geen van uw bestanden of berichten wordt er opgeslagen',
'welcome.never_e2e': 'End-to-end versleuteling, van elk apparaat tot uw node',
'welcome.hub_free': 'De dienst is gratis. Er is bewust geen verdienmodel, geen tracking en geen advertenties. Veel plezier!',
'welcome.download': 'Downloaden (bèta)',
'welcome.legal': 'Juridische informatie',
'register.err_mismatch': 'De wachtwoorden komen niet overeen',
'register.err_min_len': {
one: 'Gebruik minstens {n} teken',
other: 'Gebruik minstens {n} tekens',
},
'register.err_too_weak': 'Te makkelijk te raden. Uw wachtwoordzin is wat uw sleutels '
+ 'beschermt daar waar ze bewaard worden — een paar woorden zonder onderling '
+ 'verband werken goed.',
'register.strength': 'Sterkte: ongeveer {bits} bits. Ze beschermt de kopie van uw '
+ 'sleutels die op de nodes staat waar u zich bij aansluit, dus het loont om er '
+ 'even bij stil te staan.',
'captcha.required': 'Vul de captcha in.',
'captcha.failed': 'Captchaverificatie mislukt — probeer het opnieuw.',
// Home
'home.welcome': 'Welkom bij MeshBay',
'home.no_groups': 'U bent nog van geen enkele groep lid.',
'home.browse_prefix': 'Bekijk de ',
'home.browse_link': 'openbare groepen',
'home.browse_suffix': ' of vraag een groepsbeheerder om u uit te nodigen.',
'home.invite_only': 'Vraag een groepsbeheerder om u uit te nodigen.',
'home.my_groups': 'Mijn groepen',
// Explore
'explore.title': 'Openbare groepen',
'explore.search': 'Groepen zoeken...',
'explore.loading': 'Bezig met laden...',
'explore.empty': 'Geen openbare groepen beschikbaar.',
'explore.create_group': 'Groep aanmaken',
'explore.join': 'Deelnemen',
'explore.member': 'Lid',
'explore.disabled': "This hub does not have public groups.",
// Group page
'group.default_name': 'Groep',
'group.tab_files': 'Bestanden',
'group.tab_chat': 'Chat',
'group.tab_video': "Video's",
'group.tab_music': 'Muziek',
'group.tab_photos': "Foto's",
'group.tab_helloworld': 'HelloWorld',
'helloworld.greeting': 'Hallo, wereld!',
'helloworld.no_directory': 'Nog geen map gekozen. Kies er een bij Instellingen.',
'helloworld.counted': '{n} bestand(en)',
'settings_app.helloworld_directory_label': 'Map',
'settings_app.helloworld_directory_hint': 'De map die deze referentie-app toont. Hij bestaat om te laten zien dat een app toevoegen niets meer vergt dan zijn eigen twee bestanden.',
'group.tab_members': 'Leden',
'group.tab_settings': "Instellingen",
'members.danger_leave_hint': "U verliest de toegang tot de bestanden en de chat van deze groep.",
'members.uploads_title': "Uploads",
'members.uploads_on': "Leden kunnen bestanden toevoegen",
'members.uploads_off': "Alleen u kunt bestanden toevoegen",
'members.uploads_disable': "Uitschakelen",
'members.uploads_enable': "Inschakelen",
'members.uploads_hint': "Geldt voor iedereen behalve u. De node weigert de upload zelf — het gaat niet om het verbergen van een knop.",
'members.apps_title': "Toepassingen",
'members.apps_hint': "Welke onderdelen van deze groep leden zien. Minstens één moet ingeschakeld blijven.",
'members.apps_need_one': "Er moet minstens één toepassing ingeschakeld blijven.",
'members.danger_delete_hint': "De groep verdwijnt voor alle leden. Dit kan niet ongedaan worden gemaakt.",
'group.filter': 'Bestanden filteren...',
'group.refresh_index': 'Lijst vernieuwen',
'group.col_name': 'Naam',
'group.col_size': 'Grootte',
'group.col_type': 'Type',
'group.col_date': 'Datum',
'group.empty_filter': 'Geen bestand voldoet aan het filter',
'group.empty_dir': 'Deze map is leeg',
'group.download': 'Downloaden',
'group.play': 'Afspelen',
'group.offline_title': 'Er is momenteel geen node online voor deze groep.',
'group.offline_hint': 'De bestanden verschijnen zodra er een node verbinding maakt '
+ 'die deze groep host.',
'group.upload': 'Uploaden',
'group.mkdir': 'Nieuwe map',
'group.mkdir_prompt': 'Naam van de nieuwe map',
'group.mkdir_offline': 'Niet verbonden met de node.',
'group.download_offline': 'Geen verbinding met de node — de download kan niet starten. Er wordt automatisch opnieuw verbonden; probeer het zo weer.',
'group.download_write_stalled': 'Het bestand wordt niet meer naar schijf geschreven ({seconds} s zonder voortgang). De download is gestopt in plaats van te blijven hangen; probeer het opnieuw.',
'device.add_title': 'This browser is not linked to this node yet',
'device.add_hint': 'Your account is known here, but this browser holds a different key. Approve it from a device already linked — no operator needed.',
'device.add_btn': 'Get a linking code',
'device.add_show': 'Type this code into a device already linked to this node, within the hour:',
'device.mine_title': 'Your devices on this node',
'device.mine_hint': 'Each browser or client you use here holds its own key. They are separate from your devices on other nodes.',
'device.mine_empty': 'No device is linked here yet.',
'device.this_one': 'this one',
'device.revoke': 'Remove',
'device.revoke_confirm': 'Remove this device? It will lose access to this node until it is linked again.',
'device.approve_hint': 'Linking a new device? Enter the code it is showing.',
'device.approve_btn': 'Approve',
'device.approved': 'Device linked.',
'group.root_unavailable': '(niet beschikbaar — de schijf is losgekoppeld)',
'group.root_plug': 'Aansluiten',
'group.root_eject': 'Uitwerpen',
'group.root_writable': 'Lezen/schrijven',
'group.root_ejected': '(uitgeworpen)',
'group.view': 'Bekijken',
'group.delete': 'Verwijderen',
'group.delete_confirm': '{name} verwijderen?',
'group.delete_group': 'Groep verwijderen',
'group.delete_group_confirm': '"{name}" definitief verwijderen en alle leden '
+ 'verwijderen? De bestanden op de node blijven bewaard.',
'group.err_transport': 'Transportmodule niet geladen',
// Status
'status.idle': 'Inactief',
'status.discovering': 'Nodes zoeken...',
'status.connecting': 'Verbinden via WebRTC...',
'status.connecting_short': 'Verbinden…',
'status.fetching': 'Index ophalen...',
'status.files': {
one: '{n} bestand',
other: '{n} bestanden',
},
'status.offline': 'Geen node online',
'status.error': 'Verbinding mislukt',
// Chat
'chat.empty': 'Nog geen berichten. Begin het gesprek!',
'chat.placeholder': 'Typ een bericht...',
'chat.send': 'Versturen',
'chat.attach': 'Bestand bijvoegen',
'chat.attach_read_only': 'Geen beschrijfbare gedeelde map — bijlagen staan uit',
// Video player
'video.loading': '{name} wordt geladen...',
'video.buffering': 'Bezig met bufferen...',
'video.resumed_at': "Hervat op {time}",
'video.from_start': "Vanaf het begin afspelen",
'video.close': 'Sluiten (Esc)',
'preview.pdf_fallback': 'Deze browser toont de PDF niet in de pagina zelf. Download '
+ 'hem in plaats daarvan — ontsleuteld werd hij hoe dan ook hier.',
'preview.too_large': 'Dit bestand is {size}, meer dan deze pagina in het geheugen kan houden ({limit}). Download het in plaats daarvan — een download wordt rechtstreeks naar schijf geschreven.',
'download.too_large_for_memory': '“{name}” is {size}. Deze browser kan een bestand van die omvang alleen opslaan door het meteen naar schijf te schrijven, en dat kan hier niet — het hele bestand zou in het geheugen moeten. Herlaad de pagina en probeer het opnieuw; als dat niet helpt, gebruik dan de desktop-app.',
'group.upload_indexing': 'indexeren…',
'video.err_transport': 'Transport niet verbonden',
'video.err_mse': 'Codec wordt niet ondersteund voor streamen: {codec}',
'video.mode_poster': 'Posters',
'video.mode_flat': 'Platte lijst',
'video.filter_all': 'All',
'video.filter_movies': 'Movies',
'video.filter_series': 'Series',
'video.empty': "Geen video's gevonden.",
'video.no_root_configured': "Er is nog geen hoofdmap voor Video's ingesteld voor deze groep — een operator kan er een kiezen bij Instellingen.",
'music.no_root_configured': 'Er is nog geen hoofdmap voor Muziek ingesteld voor deze groep — een operator kan er een kiezen bij Instellingen.',
'video.director': 'Regisseur',
'video.specials': "Extra's",
'video.season_n': 'Seizoen {n}',
'video.episode_n': 'Aflevering {n}',
'video.n_episodes': {
one: '{n} aflevering',
other: '{n} afleveringen',
},
'video.fix_match': 'Overeenkomst corrigeren…',
'video.search_title': 'TMDB-overeenkomst corrigeren',
'video.search_placeholder': 'Zoeken in TMDB…',
'video.search_button': 'Zoeken',
'video.search_no_results': 'Geen overeenkomsten gevonden.',
'video.search_apply_hint': 'Geldt voor alle bestanden die momenteel onder deze titel zijn gegroepeerd.',
'video.search_apply_hint_movie': 'Alleen van toepassing op dit bestand.',
'video.source_file': 'Bestand: {name}',
'video.no_match': 'Geen betrouwbare TMDB-match — bestandsnaam wordt getoond.',
'video.rematch_one': 'Opnieuw koppelen',
'video.read_more': 'Meer lezen',
'video.read_less': 'Minder tonen',
// Muziek
'music.mode_grid': 'Albums',
'music.mode_flat': 'Platte lijst',
'music.empty': 'Geen muziek gevonden.',
'music.unknown_album': 'Onbekend album',
'music.various': 'Diversen',
'music.play_all': 'Alles afspelen',
'music.n_tracks': {
one: '{n} nummer',
other: '{n} nummers',
},
'music.err_transport': 'Transport niet verbonden',
'music.err_playback': 'Afspeelfout',
'music.err_transcode': 'Formaatconversie mislukt',
'music.player_play': 'Afspelen',
'music.player_pause': 'Pauzeren',
'music.player_prev': 'Vorige',
'music.player_next': 'Volgende',
'music.player_shuffle': 'Shuffle',
'music.player_repeat_off': 'Herhalen uit',
'music.player_repeat_all': 'Alles herhalen',
'music.player_repeat_one': 'Nummer herhalen',
'music.player_volume': 'Volume',
'music.player_close': 'Speler sluiten',
'music.player_queue': 'Huidige wachtrij',
'music.queue_title': 'Nu aan het afspelen',
// Photos
'photo.empty': "Geen foto's gevonden.",
'photo.no_roots_configured': "Er zijn nog geen hoofdmappen voor Foto's ingesteld voor deze groep — een operator kan er enkele kiezen bij Instellingen.",
'photo.root_album': '(hoofdniveau)',
'photo.n_photos': {
one: '{n} foto',
other: "{n} foto's",
},
'photo.back': 'Terug',
'photo.prev': 'Vorige (←)',
'photo.next': 'Volgende (→)',
'photo.zip_album': 'Album downloaden als zip',
'photo.zoom_in': 'Inzoomen',
'photo.zoom_out': 'Uitzoomen',
'photo.zoom_fit_title': 'Passend maken',
'photo.zoom_fit_label': 'Passend',
'photo.zoom_100': 'Werkelijke grootte (100%)',
// LAN cast
'cast.start': 'Naar apparaat casten',
'cast.stop': 'Casten stoppen',
'cast.copy_url': 'Stream-URL kopiëren',
'cast.copied': 'URL gekopieerd',
'cast.scanning': 'Apparaten zoeken…',
'cast.no_devices': 'Geen apparaten gevonden',
// Settings
'settings.title': 'Instellingen',
'settings.coming_soon': 'Binnenkort beschikbaar.',
'settings.downloads': 'Downloads',
'settings.dl_auto': 'Automatisch opslaan',
'settings.dl_auto_hint': 'Bestanden gaan zonder venster rechtstreeks naar de map die '
+ 'u hieronder kiest. Twintig downloads zetten daar twintig bestanden neer.',
'settings.dl_ask': 'Elke keer vragen',
'settings.dl_ask_hint': 'Een venster "Opslaan als" per bestand — één per bestand, '
+ 'ook wanneer u een selectie downloadt.',
'settings.dl_folder': 'Map: {name}',
'settings.dl_no_folder': 'Geen map gekozen — downloads komen terecht waar uw browser '
+ 'ze neerzet, en ze kunnen niet worden gepauzeerd',
'settings.dl_choose': 'Map kiezen',
'settings.dl_change': 'Wijzigen',
'settings.dl_forget': 'Vergeten',
'settings.profile': 'Profiel',
'settings.username': 'Gebruikersnaam',
'settings.email': 'Email',
'settings.email_save': 'Opslaan',
'settings.email_saved': 'E-mail bijgewerkt',
'settings.email_code_sent': 'Er is een verificatiecode naar uw nieuwe e-mailadres gestuurd.',
'settings.email_code_placeholder': 'Verificatiecode',
'settings.email_verify_btn': 'Verifiëren',
'settings.email_verifying': 'Verifiëren…',
'settings.email_verified': 'E-mailadres succesvol gewijzigd.',
'settings.notif_global_disable': 'Alle meldingen uitschakelen',
'settings.notif_global_hint': 'When enabled, no notifications are created for any group.',
'settings.defaults': 'Standaardwaarden',
'settings.default_tab': 'Default tab',
'settings.default_tab_hint': 'Which tab opens first when you enter a group.',
'settings.music_keep_screen_on': 'Keep screen on during music playback',
'settings.music_keep_screen_on_hint': 'Prevents the phone from locking on its own while a track is playing.',
'settings.node_pins': 'Node-identiteiten',
'settings.node_pins_hint': 'De identiteitssleutel van elke node wordt bij de eerste '
+ 'verbinding onthouden. Verandert die, dan wordt de verbinding geweigerd — wat '
+ 'alleen te verwachten is wanneer een beheerder een node opnieuw installeert. '
+ 'Vraag het daar na voordat u ze wist.',
'settings.node_pins_count': {
one: '{n} vastgezet',
other: '{n} vastgezet',
},
'settings.node_pins_clear': 'Vastgezette identiteiten wissen',
'settings.passphrase': 'Wachtwoordzin',
'settings.passphrase_hint': 'Wijzigt de wachtwoordzin van dit account. Uw identiteitssleutels worden opnieuw verpakt op elke groep waarvan de node online is; een groep waarvan de node offline is, moet daarna opnieuw worden betreden.',
'settings.passphrase_change': 'Wachtwoordzin wijzigen',
'settings.passphrase_current': 'Huidige wachtwoordzin',
'settings.passphrase_new': 'Nieuwe wachtwoordzin',
'settings.passphrase_new_repeat': 'Nieuwe wachtwoordzin herhalen',
'settings.continue': 'Doorgaan',
'settings.done': 'Klaar',
'settings.passphrase_confirm_intro': 'Uw identiteitssleutels worden nu opnieuw verpakt op elke groep waarvan de node bereikbaar is:',
'settings.passphrase_reachable': 'Nu bijgewerkt',
'settings.passphrase_unreachable': 'Niet bereikbaar',
'settings.passphrase_fallback_note': 'Vraag voor een onbereikbare groep de operator ervan om u los te maken en een nieuwe uitnodigingscode te sturen, en treed dan opnieuw toe. Uw bestanden en berichten gaan niet verloren.',
'settings.passphrase_confirm_btn': 'Wijzigen',
'settings.passphrase_working': 'Uw sleutels worden opnieuw verpakt…',
'settings.passphrase_done': 'Wachtwoordzin gewijzigd.',
'settings.passphrase_needs_operator': 'Deze groepen vereisen nog actie — vraag elke operator om u los te maken en een nieuwe code te sturen:',
'settings.pw_too_short': 'De nieuwe wachtwoordzin moet minstens 12 tekens lang zijn.',
'settings.pw_mismatch': 'De twee nieuwe wachtwoordzinnen komen niet overeen.',
'settings.pw_same': 'De nieuwe wachtwoordzin moet verschillen van de huidige.',
'settings.pw_wrong_current': 'De huidige wachtwoordzin is niet juist. Er is niets gewijzigd.',
'settings.recovery': 'Herstelsleutel',
'settings.recovery_hint': 'Voegt aan elke groep een met uw herstelsleutel versleutelde kopie van uw identiteit toe. Doe dit één keer in elke browser die u gebruikt; zonder deze kopie betekent een verloren wachtwoordzin dat u elke groep handmatig opnieuw moet betreden.',
'settings.recovery_loaded': 'Geladen in deze browser — nieuwe groepen zijn automatisch gedekt.',
'settings.recovery_open': 'Herstelsleutel invoeren',
'settings.recovery_input_ph': 'Plak uw herstelsleutel',
'settings.recovery_submit': 'Back-upkopieën toevoegen',
'settings.recovery_working': 'Uw groepen worden bijgewerkt…',
'settings.recovery_done': 'Uw groepen hebben nu een herstelkopie.',
'settings.recovery_partial': 'Deze groepen konden niet worden bereikt. Open ze later, of voer dit opnieuw uit:',
'settings.recovery_need_relogin': 'Meld u af en weer aan en probeer het opnieuw.',
'settings.danger': 'Account verwijderen',
'settings.delete_hint': 'Verwijdert uw account, uw groepslidmaatschappen en uw '
+ 'meldingen van de hub, en geeft uw gebruikersnaam vrij. Wat op de nodes staat, '
+ 'wordt hiermee niet bereikt: bestanden die u hebt geüpload blijven waar hun '
+ 'beheerder ze bewaart, en elke node houdt de voor u vastgezette identiteit tot '
+ 'zijn beheerder die weghaalt. Verbindingslogboeken worden een jaar bewaard, zoals '
+ 'de wet voorschrijft.',
'settings.delete_account': 'Mijn account verwijderen',
'settings.delete_confirm': 'Voer uw wachtwoordzin in ter bevestiging. Dit kan niet '
+ 'ongedaan worden gemaakt.',
'settings.delete_confirm_btn': 'Definitief verwijderen',
'settings.cancel': 'Annuleren',
'settings.appearance': 'Weergave',
'settings.theme': 'Thema',
'settings.theme_light': 'Licht',
'settings.theme_dark': 'Donker',
'settings.theme_system': 'Systeem',
'settings.language': 'Taal',
'settings.about': 'Over',
'firstrun.title': 'Which hub?',
'firstrun.hint': 'A hub holds your account and introduces you to nodes. It never sees your files, your messages or your keys.',
'firstrun.btn': 'Continue',
'firstrun.checking': 'Checking…',
'firstrun.note': 'There is no default on purpose: this application only trusts a hub for its API, never for the interface, which ships with the application itself.',
'device.this_device': 'This device',
'settings.keys_heading': 'Keys on this device',
'settings.hub_heading': 'Hub',
'settings.hub_current': 'Currently',
'settings.hub_hint': 'Changing this signs you out and restarts the window.',
'settings.hub_change': 'Change',
'settings.keys_where': 'Protected by',
'settings.keys_unprotected': 'No system keyring is running, so your keys are encrypted with a key that is not a secret. Anyone who can read this machine’s files can read them. Start a keyring, or treat this device as untrusted.',
'settings.keys_unavailable': 'This system offers no key storage at all, so this device cannot be remembered — you will be asked for your passphrase each time. That is the safe outcome: nothing was stored unprotected.',
'settings.version': 'Versie',
'settings.protocol': 'Protocol',
'settings.role': 'Rol',
'settings.groups': 'Groepsmeldingen',
'settings.notifications': 'Meldingen',
'settings.node_key': 'Node koppelen',
'settings.node_key_desc': 'Als u een MeshBay-node beheert, plak hier dan de '
+ 'openbare Ed25519-sleutel ervan om hem aan uw account te koppelen. U vindt die '
+ 'sleutel in het beheerdersdashboard van uw node.',
'settings.node_key_placeholder': 'Plak de openbare Ed25519-sleutel van de node (base64)',
'settings.node_key_submit': 'Node koppelen',
'settings.node_key_success': 'Node gekoppeld',
'settings.node_key_current': 'Sleutel van de gekoppelde node',
// Sidebar
'sidebar.create_group': 'Groep aanmaken',
'sidebar.settings': 'Instellingen',
'sidebar.admin': 'Beheer',
// User menu
'usermenu.language': 'Taal',
'usermenu.settings': 'Instellingen',
'usermenu.theme_light': 'Licht thema',
'usermenu.theme_dark': 'Donker thema',
'usermenu.logout': 'Afmelden',
// Admin panel
'admin.title': 'Beheer',
'admin.tab_stats': 'Statistieken',
'admin.tab_users': 'Gebruikers',
'admin.tab_groups': 'Groepen',
'admin.tab_nodes': 'Nodes',
'admin.tab_logs': 'Logboeken',
'admin.col_observed_ip': 'Gezien vanaf',
'admin.col_hint': 'Opgegeven adres',
'admin.col_last_seen': 'Laatste melding',
'admin.node_online': 'online',
'admin.node_offline': 'offline',
'admin.no_nodes': 'Geen nodes geregistreerd',
'admin.nodes_hint': '"Gezien vanaf" is het adres waarvandaan de melding werkelijk '
+ 'binnenkwam, in een verzoek dat met de sleutel van de node is ondertekend — dat '
+ 'is het adres om een vordering mee te beantwoorden. Het opgegeven adres is wat de '
+ 'node zelf denkt te zijn, vernomen van een STUN-server en naar ons gestuurd; het '
+ 'helpt de node te bereiken en bewijst niets.',
'admin.tab_blocklist': 'Blokkeerlijst',
'admin.tab_general': "General",
'admin.general_groups_heading': "Groups",
'admin.allow_public_groups_label': "Allow members to create public groups",
'admin.allow_public_groups_hint': "When off, new groups can only be private and invite-only. Existing public groups are left as they are — suspend them one by one from the Groups tab.",
'admin.mail_heading': "Uitgaande e-mail",
'admin.mail_hint': "Wat deze hub verstuurt, en hoeveel. De twee die ertoe doen zijn het uurbudget, dat geen enkel aantal accounts verhoogt, en de daglimiet per ontvanger — dat is wat iemand die wordt bestookt daadwerkelijk merkt.",
'admin.mail_this_hour': "Dit uur verstuurd",
'admin.mail_remaining': "{general} over voor registraties en adreswijzigingen, {recovery} voor wachtwoordherstel en uitnodigingen.",
'admin.mail_hourly_budget': "Berichten per uur (hele instantie)",
'admin.mail_hourly_reserved_for_recovery': "Daarvan gereserveerd voor herstel en uitnodigingen",
'admin.mail_destination_daily_cap': "Berichten per dag naar één ontvanger",
'admin.mail_destination_cooldown_seconds': "Seconden tussen berichten naar één ontvanger",
'admin.mail_verification_resend_cooldown': "Seconden tussen twee registratiecodes",
'admin.mail_reset_cooldown': "Seconden tussen twee herstelcodes",
'admin.mail_email_change_cooldown': "Seconden voordat een account een ander adres mag voorstellen",
'admin.mail_save': "E-maillimieten opslaan",
'admin.mail_reset_defaults': "Standaardwaarden herstellen",
'admin.login_heading': "Aanmelden",
'admin.login_hint': "Na dit aantal onjuiste wachtwoordzinnen voor één gebruikersnaam wordt aanmelden met een wachtwoordzin geweigerd gedurende de ingestelde tijd. Al geopende sessies en geregistreerde apparaten blijven werken, en het opnieuw instellen van de wachtwoordzin heft de blokkade op. 0 schakelt dit uit.",
'admin.login_max_failures': "Onjuiste wachtwoordzinnen vóór blokkade",
'admin.login_lockout_minutes': "Duur van de blokkade (minuten)",
'admin.login_save': "Aanmeldlimieten opslaan",
'admin.mail_state_is_in_stats': "Het verbruik van dit uur staat onder Statistieken.",
'admin.mail_state_hint': "Herstel en uitnodigingen mogen het hele budget gebruiken; registraties en adreswijzigingen niet het gereserveerde deel. Beheerders krijgen één keer per uur bericht wanneer een van beide grenzen is bereikt.",
'admin.mail_left_signups': "Resterend voor registraties",
'admin.mail_left_recovery': "Resterend voor herstel en uitnodigingen",
'admin.mail_recipients': "Vandaag getelde ontvangers",
'admin.mail_alert_all': "Deze hub verstuurt dit uur geen e-mail meer. Ook herstel en uitnodigingen worden geweigerd.",
'admin.mail_alert_general': "Het deel voor registraties en adreswijzigingen is dit uur op. Herstel en uitnodigingen gaan nog wel uit.",
'admin.settings_readonly': "Only an admin can change these settings.",
// Admin stats
'admin.stat_users': 'Gebruikers',
'admin.stat_groups': 'Groepen',
'admin.stat_nodes': 'Nodes',
'admin.stat_online': 'Nodes online',
// Admin users
'admin.users_search': 'Gebruikers zoeken...',
'admin.col_username': 'Gebruikersnaam',
'admin.col_role': 'Rol',
'admin.col_status': 'Status',
'admin.col_created': 'Aangemaakt',
'admin.col_actions': 'Acties',
'admin.col_email': 'E-mail',
'admin.col_groups': 'Groepen',
'admin.no_users': 'Geen gebruikers gevonden',
'admin.btn_suspend': 'Schorsen',
'admin.btn_unsuspend': 'Herstellen',
'admin.btn_revoke': "Revoke",
'admin.revoke_group_confirm': "Revoke the group \"{group}\"? This pushes a signed revocation to every node hosting it and cannot be undone from here. Suspend it instead if you only need to pause it.",
'admin.btn_details': 'Details',
'admin.btn_delete': 'Verwijderen',
'admin.delete_confirm': 'Het account "{user}" en al zijn groepen verwijderen? Dit kan niet ongedaan '
+ 'worden gemaakt. De bestanden die deze persoon heeft geüpload blijven op de nodes '
+ 'die ze hosten, en elke node houdt de vastgezette identiteit tot zijn beheerder '
+ 'die weghaalt. Schorsen is de omkeerbare optie.',
'admin.user_detail': 'Gebruikersgegevens',
'admin.btn_close': 'Sluiten',
'admin.self_note': '(u)',
// Admin groups
'admin.col_name': 'Naam',
'admin.col_visibility': 'Zichtbaarheid',
'admin.col_members': 'Leden',
'admin.no_groups': 'Geen groepen gevonden',
// Admin logs
'admin.col_time': 'Tijd',
'admin.col_event': 'Gebeurtenis',
'admin.col_user': 'Gebruiker',
'admin.col_ip': 'IP',
'admin.col_detail': 'Detail',
'admin.filter_all': 'Alle gebeurtenissen',
'admin.no_logs': 'Geen logboeken gevonden',
'admin.btn_load_more': 'Meer laden',
// Admin blocklist
'admin.col_hash': 'Hash',
'admin.col_reason': 'Reden',
'admin.col_date': 'Datum',
'admin.col_added_by': 'Toegevoegd door',
'admin.no_blocked': 'Geen geblokkeerde hashes',
'admin.add_hash': 'Hash aan de blokkeerlijst toevoegen',
'admin.hash_placeholder': 'blake3-hash (64 hexadecimale tekens)',
'admin.reason_placeholder': 'Reden',
'admin.btn_block': 'Blokkeren',
'admin.btn_unblock': 'Deblokkeren',
// Notifications
// Create group
'create_group.title': 'Groep aanmaken',
'create_group.name': 'Groepsnaam',
'create_group.name_placeholder': 'bijv. Familiefotos, Projectbestanden...',
'create_group.join_policy': 'Toetredingsbeleid',
'create_group.invite': 'Alleen op uitnodiging',
'create_group.invite_desc': "Leden moeten door een beheerder worden uitgenodigd. De groep staat niet in de openbare lijst.",
'create_group.open': 'Open (iedereen kan deelnemen)',
'create_group.open_desc': "Staat bij de openbare groepen — iedereen kan de groep vinden en zonder goedkeuring deelnemen.",
'create_group.description': 'Beschrijving',
'create_group.description_hint': 'Waar gaat deze groep over? (optioneel)',
'create_group.submit': 'Aanmaken',
'create_group.hint': 'Een groep heeft een node nodig om de bestanden te hosten. U '
+ 'kunt de groep nu aanmaken en later een node aansluiten.',
'create_group.creating': 'Bezig met aanmaken...',
// Members
'members.col_role': 'Rol',
'members.group_role': 'Rol in de groep',
'members.admin': 'Beheerder',
'members.group_admin': 'Groepsbeheerder',
'members.owner': 'Eigenaar',
'members.member': 'Lid',
'members.invite_title': 'Lid uitnodigen',
'members.username_placeholder': 'Gebruikersnaam',
'members.invite_btn': 'Uitnodigen',
'members.invite_needs_pairing': 'Uitnodigingen worden ondertekend met de sleutel die '
+ 'deze node voor uw browser heeft vastgezet, dus koppel hem hieronder voordat u '
+ 'iemand uitnodigt.',
'members.invite_ask_operator': 'Alleen de beheerder van de node die deze groep host '
+ 'kan uitnodigen, vanuit een browser die eraan gekoppeld is.',
'members.remove': 'Verwijderen',
'members.remove_confirm': '{user} uit deze groep verwijderen? Het account, de andere '
+ 'groepen en de geüploade bestanden van deze persoon blijven ongemoeid.',
'members.remove_hint': 'Iemand verwijderen neemt het lidmaatschap weg en zorgt ervoor '
+ 'dat de node de groepssleutel niet meer aan die persoon geeft. Het account wordt '
+ 'er niet mee verwijderd, en de sleutel die de persoon al heeft, komt er niet mee '
+ 'terug — roteer die op de node (meshbay-node gek-init) als dat van belang is.',
'members.pair_title': 'Deze browser aan uw node koppelen',
'members.pair_hint': 'Uw node accepteert beheerdersacties — uitnodigingen, bestanden '
+ 'verwijderen — alleen vanuit een browser waarmee hij gekoppeld is. Voer op de '
+ 'node `meshbay-node operator pair` uit en typ de code hier in. De code gaat nooit '
+ 'via de hub.',
'members.pair_btn': 'Koppelen',
'members.pair_success': 'Deze browser is nu aan de node gekoppeld.',
'members.invite_code_ready': 'Uitnodigingscode voor {user}:',
'members.invite_email_sent': 'Er is een e-mail met de code naar dit lid gestuurd.',
'members.invite_email_failed': 'Kon de e-mail niet verzenden — deel de code handmatig.',
'members.invite_code_hint': 'U kunt deze code ook via een ander kanaal delen (bijv. sms). '
+ 'De code werkt één keer en gaat nooit via de hub.',
'transfers.title': 'Overdrachten',
'transfers.clear': 'Voltooide wissen',
'transfers.cancel': 'Annuleren',
'transfers.open': 'Openen',
'transfers.done': 'Voltooid',
'transfers.cancelled': 'Geannuleerd',
'transfers.preparing': 'Voorbereiden…',
'transfers.waiting_own_slots': 'Wacht — uw plaatsen zijn bezet',
'transfers.waiting_node': 'Wacht — {n} ervoor',
'transfers.summary': '{running} bezig · {waiting} wachtend',
'transfers.group_running': 'Bezig',
'transfers.group_waiting': 'Wachtend',
'transfers.group_paused': 'Gepauzeerd',
'transfers.group_finished': 'Voltooid',
'transfers.cancel_one': '{name} annuleren',
'transfers.pause': 'Pauzeren',
'transfers.resume': 'Hervatten',
'transfers.paused': 'Gepauzeerd',
'transfers.not_pausable': 'Kan niet worden gepauzeerd — kies een downloadmap in Instellingen',
'transfers.pause_one': '{name} pauzeren',
'transfers.resume_one': '{name} hervatten',
'transfers.eta_seconds': 'nog {n} s',
'transfers.eta_minutes': 'nog {n} min',
'transfers.eta_hours': 'nog {n} u',
'transfers.failed': 'Mislukt',
'group.select': 'Selecteren',
'group.select_done': 'Klaar',
'group.actions': 'Acties ({n})',
'group.download_n': 'Downloaden ({n})',
'group.download_zip_n': 'Mappen als zip downloaden ({n})',
'group.delete_n': 'Verwijderen ({n})',
'group.delete_n_confirm': {
one: '{n} item verwijderen? {names}',
other: '{n} items verwijderen? {names}',
},
'group.download_zip': {
one: 'Als zip downloaden ({n} bestand)',
other: 'Als zip downloaden ({n} bestanden)',
},
'group.zip_empty': 'Die map bevat niets om te downloaden.',
'group.zip_no_stream': 'Deze browser kan een download niet rechtstreeks naar schijf '
+ 'schrijven, dus {name} ({size}) moet eerst in het geheugen worden opgebouwd. Bij '
+ 'een groot archief kan dat mislukken. Doorgaan?',
'group.zip_too_large': '"{name}" is {size} en een map kan alleen tot {limit} als zip worden '
+ 'gedownload. Neem één submap per keer, of de bestanden afzonderlijk.',
'group.rmdir': 'Map verwijderen',
'group.rmdir_confirm': 'De map "{name}" verwijderen? Ze moet leeg zijn.',
'group.rmdir_not_empty': 'Die map is niet leeg. Verwijder eerst wat erin staat — '
+ 'niets hier verwijdert bestanden die u niet ziet.',
'group.desc_edit': 'Beschrijving bewerken',
'group.desc_add': 'Beschrijving toevoegen',
'group.desc_save': 'Opslaan',
'group.desc_cancel': 'Annuleren',
'group.desc_placeholder': 'Waar deze groep voor dient — leden zien dit op hun '
+ 'startpagina.',
'group.join_code_title': 'Deze node moet u herkennen',
'group.join_code_hint': 'Vraag degene die u heeft uitgenodigd om de eenmalige code en '
+ 'voer die hier in. Daarna is deze browser bekend en wordt het u niet opnieuw '
+ 'gevraagd.',
'group.join_code_btn': 'Deelnemen',
'group.pass_title': 'Voer uw wachtwoordzin in',
'group.pass_hint': 'Deze browser heeft uw sleutels nog niet ontgrendeld. Voer uw wachtwoordzin één keer in om uw groepen hier te openen.',
'group.pass_btn': 'Ontgrendelen',
'notif.purge': 'Alles wissen',
'notif.title': 'Meldingen',
'notif.empty': 'Geen meldingen',
'notif.mark_all_read': 'Alles als gelezen markeren',
// Sidebar
'sidebar.search': 'Bestanden zoeken',
// Status
// Search
'search.placeholder': 'In alle groepen zoeken...',
'search.no_results': 'Geen bestand voldoet aan uw zoekopdracht.',
'search.col_group': 'Groep',
'search.result_count': {
one: '{n} bestand gevonden',
other: '{n} bestanden gevonden',
},
'search.hint': 'Typ een zoekterm om in al uw groepen te zoeken.',
'search.indexing': '{done} / {total} groepen indexeren…',
'search.unreachable': { one: '{n} groep onbereikbaar', other: '{n} groepen onbereikbaar' },
'search.n_sources': { one: '{n} bron', other: '{n} bronnen' },
'search.view_files': 'Bestanden',
'search.view_videos': 'Video\'s',
'search.view_music': 'Muziek',
'search.view_photos': 'Foto\'s',
'search.connecting': 'Verbinding maken met groepen…',
// Presence, chat paging, leaving a group, the profile page
'presence.online': 'Een node die deze groep host is online',
'presence.offline': 'Geen node bereikbaar voor deze groep',
'presence.unknown': 'Nog niet gecontroleerd',
'presence.indexing': 'Bezig met indexeren — {pct}%',
'indexdock.kind_scan': "Indexeren",
'indexdock.kind_rescan': "Opnieuw inlezen",
'indexdock.kind_reconcile': "Bijwerken",
'indexdock.kind_watch': "Nieuwe bestanden indexeren",
'indexdock.waiting': "Wacht op indexering",
'indexdock.done': "Indexeren voltooid",
'indexdock.listing': "Bestanden oplijsten…",
'indexdock.percent': "{pct}%",
'indexdock.files': "{done} / {total} bestanden",
'indexdock.next': "Daarna: {roots}",
'indexdock.next_count': "Wachtend: {count}",
'indexdock.open': "Instellingen van deze groep openen",
'indexdock.hide': "Verbergen tot de volgende indexering",
'chat.load_older': '{n} oudere berichten laden',
'chat.start_of_history': 'Begin van het gesprek',
'chat.today': 'Vandaag',
'chat.yesterday': 'Gisteren',
'chat.unread': 'Nieuwe berichten',
'chat.jump_latest': 'Naar de nieuwste',
'chat.jump_new': 'Nieuwe berichten',
'chat.unreadable': 'Dit bericht kon niet worden gelezen',
'chat.unreadable_signature': 'Niet-geverifieerd bericht — de handtekening past niet bij de afzender',
'chat.unreadable_epoch': 'Geschreven voordat dit apparaat dit gesprek kon lezen',
'chat.unreadable_keys': 'Chatsleutels niet beschikbaar — maak opnieuw verbinding om dit te lezen',
'chat.unreadable_decrypt': 'Dit bericht kon niet worden ontsleuteld',
'chat.unreadable_envelope': 'Dit bericht kwam onvolledig aan',
'chat.unreadable_format': 'Dit bericht vereist een nieuwere versie van MeshBay',
'chat.key_changed': 'Dit account gebruikt een sleutel die u nog niet eerder zag',
'chat.key_changed_hint': 'De node zegt dat dit bericht van dit account komt, maar de apparaatsleutel is er geen die u hebt geaccepteerd en niets heeft hem ondertekend. Het kan een elders toegevoegd apparaat zijn — of de node die de verkeerde persoon noemt.',
'chat.encrypted_needs_newer': 'Dit gesprek is versleuteld en deze client kan het niet lezen — werk MeshBay bij',
'chat.encrypted_cannot_send': 'Dit gesprek is versleuteld en dit apparaat kan er nog niet in schrijven',
'group.leave': 'Groep verlaten',
'group.leave_confirm': '„{name}” verlaten? U verliest de toegang tot de bestanden en de chat ervan. Bestanden die u hebt geüpload blijven op de node, en de node houdt de voor u vastgezette identiteit tot zijn beheerder die weghaalt.',
'group.mute': 'Mute notifications',
'group.unmute': 'Unmute notifications',
'profile.title': 'Profiel',
'usermenu.profile': 'Profiel',
// First-run setup wizard
'setup.welcome_title': 'Welkom bij MeshBay',
'setup.welcome_message': 'Uw node host uw bestanden — versleuteld, op uw machine. Laten we hem starten en uw eerste groep aanmaken.',
'setup.node_detected': 'Lokale node gedetecteerd en actief.',
'setup.node_not_running': 'Uw node is geïnstalleerd maar draait niet.',
'setup.node_start': 'Node starten',
'setup.node_starting': 'Node wordt gestart…',
'setup.node_started': 'Node gestart.',
'setup.node_not_installed': 'meshbay-node is niet geïnstalleerd op deze machine.',
'setup.node_install_hint': 'Installeer het met uw pakketbeheerder en kom hier terug.',
'setup.node_startup_hint': 'Zodra uw node actief is, bezoek dan op elk moment \'Node\' in de zijbalk om het automatisch te laten starten bij aanmelding, of als achtergrondservice te laten draaien.',
'setup.skip': 'Overslaan — groep aanmaken zonder lokale node',
'setup.create_group': 'Eerste groep aanmaken',
'setup.dismiss': 'Installatie overslaan',
// Group
'group.retry': 'Opnieuw proberen',
// Sidebar
'sidebar.node': 'Node',
// Node admin
'node.title': 'Node',
'node.service_checking': 'Node-service controleren…',
'node.service_not_installed': 'Niet als service geïnstalleerd',
'node.service_state_active': 'Actief',
'node.service_state_inactive': 'Gestopt',
'node.service_state_failed': 'Mislukt',
'node.service_state_activating': 'Starten…',
'node.service_state_deactivating': 'Stoppen…',
'node.service_state_unknown': 'Onbekend',
'node.service_start': 'Starten',
'node.service_starting': 'Starten…',
'node.service_stop': 'Stoppen',
'node.service_stopping': 'Stoppen…',
'node.service_restart': 'Herstarten',
'node.service_restarting': 'Herstarten…',
'node.service_mode_hint': 'Actief als achtergrondservice — start bij het opstarten, vóór het aanmelden.',
'node.startup_mode_label': 'Automatisch starten:',
'node.startup_mode_off': 'Uit (handmatig starten)',
'node.startup_mode_signin': 'Bij aanmelden',
'node.startup_mode_service': 'Als achtergrondservice (start bij het opstarten)',
'node.startup_mode_updating': 'Modus wijzigen — let op een beheerdersprompt…',
'node.startup_mode_service_unavailable_hint': 'Achtergrondservice-modus vereist een geïnstalleerde build. Voer voor lokaal testen "meshbay-node service install" uit vanuit een PowerShell met beheerdersrechten.',
'node.not_operator': 'Uw node is niet bereikbaar. Controleer of hij draait.',
'node.offline': 'Node is offline',
'node.retry': 'Opnieuw proberen',
'node.pair_needed': 'Geen operator gekoppeld. Voer een koppelingscode in om beheeracties (uitnodigingen, bestandsverwijdering) in te schakelen.',
'node.pair_code_placeholder': 'Koppelingscode',
'node.pair_button': 'Deze browser koppelen',
'node.pair_success': 'Succesvol gekoppeld.',
'node.reload': 'Configuratie herladen',
'node.reloaded': 'Configuratie herladen. Mapwijzigingen op bestaande groepen zijn nu actief.',
'node.restart_needed': 'Na het toevoegen: initialiseer de groepssleutel (meshbay-node gek-init --group <naam>).',
'node.no_groups': 'Geen groepen geconfigureerd op deze node.',
'node.stale': 'niet op hub',
'node.settings': 'Node settings',
'node.settings_edit_hint': 'Changes are applied immediately and saved to node.toml.',
'node.settings_save': 'Save',
'node.settings_saving': 'Saving…',
'node.settings_saved': 'Settings saved.',
'node.setting_invite_ttl': 'Invitation TTL',
'node.setting_pair_ttl': 'Pairing code TTL',
'node.setting_device_ttl': 'Device request TTL',
'node.setting_max_streams': 'Max concurrent streams',
'node.setting_max_downloads': 'Max. gelijktijdige downloads',
'node.setting_max_uploads': 'Max. gelijktijdige uploads',
'node.setting_transcode': 'Transcode incompatible video',
'node.setting_unit_hours': 'hours',
'node.setting_unit_minutes': 'min',
'node.setting_on': 'On',
'node.setting_off': 'Off',
'node.unavailable': 'niet beschikbaar',
'node.files': {
one: '1 bestand',
other: '{n} bestanden',
},
'node.peers': {
one: '1 peer',
other: '{n} peers',
},
'node.roots': 'Mappen',
'node.add_root': 'Map toevoegen',
'node.remove_root': 'Verwijderen',
'node.root_no_signing_key': 'Geen ondertekeningssleutel beschikbaar — koppel dit apparaat eerst aan de node',
'node.root_no_route': 'Geen route naar de node — maak verbinding, of gebruik de app op de machine die hem host',
'node.root_remove_last': 'Een groep heeft minstens één map nodig',
'node.root_path_hint': 'Het pad zoals de node het ziet, op de machine die deze groep host.',
'node.root_path_placeholder': '/home/user/Media',
'node.root_path': 'Pad',
'node.directory': 'Map',
'node.root_added': 'Map toegevoegd.',
'node.root_remove_confirm': '„{name}" uit deze groep verwijderen?',
'node.root_removed': 'Map verwijderd. Herstart aanbevolen om de index bij te werken.',
'node.attach_group': 'Groep toevoegen',
'node.attach_pick': 'Groep om te hosten',
'node.attach_dir': 'Gedeelde map',
'node.attach_upload_dir': 'Uploadmap',
'node.attach_upload_label': 'Uploadmap (voor bestandsuploads en chatbijlagen)',
'node.attached': 'Groep toegevoegd en geladen. Voer meshbay-node gek-init --group {name} uit als dat nog niet is gebeurd.',
'node.detach_group': 'Groep verwijderen',
'node.detach_confirm': '„{name}" van deze node verwijderen?',
'node.detached': 'Groep verwijderd.',
'node.gek': 'Groepssleutel',
'node.no_gek': 'Geen groepssleutel',
'node.gek_init_hint': 'Nog geen groepssleutel. Voer GEK init uit via de CLI om er een in te stellen.',
'node.gek_public_hint': 'Sleutelrotatie is niet beschikbaar voor openbare groepen.',
'node.gek_rotate': 'Groepssleutel roteren',
'node.gek_rotate_confirm': 'De groepssleutel roteren? Verbonden leden ontvangen de nieuwe sleutel automatisch. Reeds gedownloade inhoud wordt niet beïnvloed.',
'node.gek_rotated': 'Groepssleutel geroteerd.',
'node.roster': 'Ledenlijst',
'node.roster_load': 'Ledenlijst laden',
'node.roster_empty': 'Nog geen leden vastgezet.',
'node.roster_user': 'Gebruiker',
'node.roster_role': 'Rol',
'node.roster_status': 'Status',
'node.roster_via': 'Vastgezet via',
'node.roster_invites': {
one: '1 openstaande uitnodiging',
other: '{n} openstaande uitnodigingen',
},
'node.unpin': 'Losmaken',
'node.unpin_confirm': '„{name}" losmaken? Diegene moet opnieuw koppelen.',
'node.unpin_done': 'Identiteit losgemaakt.',
'node.denylist': 'Blokkeerlijst',
'node.denylist_load': 'Blokkeerlijst laden',
'node.denylist_empty': 'De blokkeerlijst is leeg.',
'node.denylist_count': {
one: '1 vermelding',
other: '{n} vermeldingen',
},
'node.denylist_remove': 'Verwijderen',
'node.denylist_clear_all': 'Alles wissen',
'node.denylist_clear_confirm': '„{subject}" van de blokkeerlijst verwijderen?',
'node.denylist_cleared': 'Vermelding van de blokkeerlijst verwijderd.',
// Node settings
'settings_node.detach_failed_continue': 'Kon de groep niet van de node loskoppelen. Toch op de hub verwijderen?',
'settings_node.roots': 'Gedeelde mappen',
'settings_node.scan_title': 'Scannen',
'settings_node.scan_hint': 'Hoe vaak de node zijn mappen opnieuw controleert op wijzigingen die zijn gemist, en hoe lang hij na een wijziging wacht voordat een bestand wordt geïndexeerd.',
'settings_node.search_listed_title': 'Zoeken',
'settings_node.search_listed_label': 'Deze groep tonen in Zoeken',
'settings_node.search_listed_hint': 'Uitgeschakeld verschijnen de bestanden van deze groep niet in de groepsoverstijgende zoekfunctie van leden. Leden zien nog steeds alles door de groep te openen: dit haalt haar alleen uit de globale lijst en verbergt niets voor niemand.',
'settings_node.scan_reconcile_label': 'Controle-interval (minuten)',
'settings_node.scan_debounce_label': 'Wachttijd na een wijziging (seconden)',
'settings_node.scan_save': 'Opslaan',
'settings_node.scan_saving': 'Bezig met opslaan…',
'settings_node.scan_saved': 'Opgeslagen.',
'settings_node.tmdb_title': 'TMDB-metadata',
'settings_node.tmdb_hint': "Laat de Video's-app posters, samenvattingen en cast van TMDB tonen. Uit betekent alleen miniaturen, zonder enig verzoek aan een derde partij.",
'settings_node.tmdb_enabled': 'Ingeschakeld',
'settings_node.tmdb_disabled': 'Uitgeschakeld',
'settings_node.tmdb_token_label': 'Eigen API-token (optioneel)',
'settings_node.tmdb_token_placeholder': 'Leeg laten om de meegeleverde standaard te gebruiken',
'settings_node.tmdb_token_customized': 'Er is een eigen token ingesteld.',
'settings_node.tmdb_token_default': 'Gebruikt de meegeleverde standaardtoken.',
'settings_node.tmdb_save': 'Opslaan',
'settings_node.tmdb_language_label': 'Taal',
'settings_node.tmdb_language_hint': 'Geldt voor iedereen — één gedeelde cache, geen verzoek per kijker.',
'settings_node.video_root_title': "Hoofdmap voor Video's",
'settings_node.video_root_hint': "Welke map (of submap) de Video's-app als startpunt gebruikt voor deze groep. Er wordt niets getoond in Video's, en er worden geen TMDB-opzoekingen uitgevoerd, totdat er een gekozen is.",
'settings_node.video_root_none': '— geen gekozen —',
'settings_node.musicbrainz_title': 'MusicBrainz-metadata',
'settings_node.musicbrainz_hint': "Laat de Muziek-app hoesfoto's en canonieke namen van MusicBrainz tonen wanneer een nummer geen bruikbare ingesloten hoes heeft. Uit betekent alleen bladeren op tag/bestandsnaam, zonder verzoek aan derden.",
'settings_node.musicbrainz_enabled': 'Ingeschakeld',
'settings_node.musicbrainz_disabled': 'Uitgeschakeld',
'settings_node.video_root_save': 'Opslaan',
'settings_node.video_root_change_confirm': "Het wijzigen van de hoofdmap voor Video's vervangt wat elk lid ziet in het tabblad Video's. Doorgaan?",
'settings_node.audio_root_title': 'Hoofdmap voor Muziek',
'settings_node.audio_root_hint': 'Welke map (of submap) de Muziek-app als startpunt gebruikt voor deze groep. Er wordt niets getoond in Muziek, en er worden geen tags/covers gelezen, totdat er een gekozen is.',
'settings_node.audio_root_none': '— geen gekozen —',
'settings_node.audio_root_save': 'Opslaan',
'settings_node.audio_root_change_confirm': 'Het wijzigen van de hoofdmap voor Muziek vervangt wat elk lid ziet in het tabblad Muziek. Doorgaan?',
'settings_node.photo_roots_title': "Hoofdmappen voor Foto's",
'settings_node.photo_roots_hint': "Welke map(pen) de Foto's-app als startpunt gebruikt voor deze groep — een fotobibliotheek is vaak over meerdere mappen verspreid, dus er kunnen er meerdere gekozen worden. Er wordt niets getoond in Foto's totdat er minstens één is toegevoegd.",
'settings_node.photo_roots_none': '— geen gekozen —',
'settings_node.photo_roots_add_placeholder': 'Map toevoegen…',
'settings_node.photo_roots_add': 'Toevoegen',
'settings_node.photo_roots_remove': 'Verwijderen',
'settings_node.photo_roots_save': 'Opslaan',
'settings_node.shared_directories_title': 'Gedeelde mappen',
'settings_node.shared_directories_hint': 'Mappen gedeeld met deze groep. Schakel lezen-schrijven in om uploads toe te staan, markeer als verwijderbaar voor externe schijven.',
'folder_tree.title_single': 'Kies een map',
'folder_tree.title_multi': 'Kies mappen',
'folder_tree.choose': 'Kiezen…',
'folder_tree.remove': 'Verwijderen',
'folder_tree.add': 'Map toevoegen…',
'folder_tree.confirm': 'Gebruiken',
'folder_tree.expand': 'Uitklappen',
'folder_tree.collapse': 'Inklappen',
'folder_tree.nothing_selected': 'Niets geselecteerd',
'folder_tree.empty': 'Deze groep heeft nog geen gedeelde mappen.',
'folder_tree.writable_only': 'Hier zijn alleen lees-schrijfmappen te kiezen — er wordt in geschreven.',
'folder_tree.no_writable_root': 'Deze groep heeft geen beschrijfbare map. Zet er eerst één op lezen-schrijven bij Gedeelde mappen.',
'folder_tree.read_only_blocked': 'Alleen-lezen — kan niet worden beschreven',
'settings_app.save': 'Opslaan',
'settings_app.saving': 'Opslaan…',
'settings_app.disabled_hint': 'Zet deze app aan om hem in te stellen.',
'settings_app.video_directories_label': 'Videomappen',
'settings_app.video_directories_hint': 'Waar de films en series van deze groep staan. Niets daarbuiten verschijnt op het tabblad Video\'s.',
'settings_app.music_directories_label': 'Muziekmappen',
'settings_app.music_directories_hint': 'Waar de albums van deze groep staan. Niets daarbuiten verschijnt op het tabblad Muziek.',
'settings_app.photo_directories_label': 'Fotomappen',
'settings_app.photo_directories_hint': 'Waar de albums van deze groep staan. Niets daarbuiten verschijnt op het tabblad Foto\'s.',
'settings_app.chat_directory_label': 'Map voor bijlagen',
'settings_app.chat_directory_hint': 'Waar in de chat verstuurde bestanden worden geschreven. Moet een lees-schrijfmap zijn.',
'settings_app.chat_no_writable_root': 'Deze groep heeft geen beschrijfbare map, dus bijlagen staan uit.',
'settings_app.chat_link_preview_label': 'Linkvoorbeelden',
'settings_app.chat_link_preview_hint': 'Als een lid een link plaatst, haalt de node de titel en afbeelding van de pagina op. Dat is een verzoek vanaf uw machine naar een site die iemand anders koos.',
'settings_app.chat_encrypted_always': 'De chat van deze groep is altijd versleuteld. Dit kan niet worden uitgezet.',
'settings_app.chat_rotate_epoch': 'Chatsleutel doordraaien',
'settings_app.chat_rotate_epoch_hint': 'Leden blijven de hele geschiedenis lezen. Wie uit de groep is verwijderd, kan niet lezen wat er vanaf nu wordt geschreven. Een lid of apparaat verwijderen doet dit al vanzelf.',
'settings_app.tmdb_token_prompt': 'Meld u aan bij TMDB om uw eigen API-sleutel te maken.',
'settings_app.tmdb_token_link': 'Sleutel ophalen',
'settings_node.roots_offline_hint': 'Niet verbonden met de node — wijzigingen gaan via de lokale node en worden bij de volgende herlaadbeurt actief.',
'settings_node.directories_title': 'App-mappen',
'settings_node.directories_hint': 'Gedeelde mappen, en welke daarvan de Video\'s-, Muziek- en Foto\'s-apps als eigen startpunt(en) gebruiken.',
// Create group wizard
'wizard.title': 'Groep aanmaken',
'wizard.detecting': 'Lokale node wordt gedetecteerd…',
'wizard.node_not_found': 'Geen lokale node gedetecteerd. Controleer of meshbay-node draait.',
'wizard.node_offline_warning': 'Node draait niet. De groep wordt alleen op de hub aangemaakt. U kunt de node later verbinden via de Node-pagina.',
'wizard.retry': 'Opnieuw proberen',
'wizard.wrong_account': 'De node draait, maar de geconfigureerde gebruikersnaam komt niet overeen met uw account. Controleer hub.username in node.toml.',
'wizard.skip_node': 'Doorgaan zonder node',
'wizard.directories': 'Gedeelde mappen',
'wizard.directories_hint': 'Kies de mappen die deze groep deelt. Minimaal één is vereist.',
'wizard.add_directory': 'Map toevoegen',
'wizard.remove': 'Verwijderen',
'wizard.set_upload': 'Instellen als uploaddoel',
'wizard.upload_target': 'uploaddoel',
'wizard.create_and_setup': 'Aanmaken en instellen',
'wizard.create_hub_only': 'Alleen op hub aanmaken',
'wizard.setting_up': 'Uw groep wordt ingesteld…',
'wizard.step_create_hub': 'Groep aanmaken op hub',
'wizard.step_attach': 'Koppelen aan node',
'wizard.step_apps': 'Apps kiezen',
'wizard.step_add_roots': 'Mappen toevoegen',
'wizard.step_gek': 'Versleutelingssleutel initialiseren',
'wizard.step_pair': 'Koppeling instellen',
'wizard.step_index': 'Bestanden indexeren',
'wizard.indexing_progress': 'Bezig met indexeren… {pct}%',
'wizard.indexing_current_dir': 'Scannen: {dir}',
'wizard.done_title': 'Groep aangemaakt',
'wizard.done_message': 'Uw groep is klaar — uw node host de groep en de versleuteling is ingesteld. Nodig nu leden uit via het tabblad Instellingen.',
'wizard.go_to_group': 'Naar groep',
'wizard.finish_later': 'Later voltooien',
'node.stun_servers': 'STUN Servers',
'node.stun_hint': 'Servers used for WebRTC NAT traversal (ICE candidate gathering).',
'node.stun_add': 'Add',
'node.stun_add_placeholder': 'stun:host:port',
'node.stun_remove': 'Remove',
'node.stun_move_up': 'Move up',
'node.stun_move_down': 'Move down',
'node.stun_save': 'Save',
'node.stun_saving': 'Saving…',
'node.stun_saved': 'STUN servers saved.',
'node.stun_reset': 'Reset to defaults',
'node.stun_empty': 'No STUN servers configured. NAT traversal will not work.',
'node.stun_duplicate': 'This server is already in the list.',
'node.stun_invalid': 'STUN URL must start with stun:',
'node.ice_interfaces': 'ICE Interfaces',
'node.ice_auto_hint': 'Auto mode — virtual and VPN interfaces (Tailscale, Docker, libvirt, etc.) are excluded automatically.',
'node.ice_manual_hint': 'Manual mode — only the listed interfaces are used for ICE candidate gathering.',
'node.ice_add': 'Add',
'node.ice_add_placeholder': 'e.g. eth0, wlp0s20f3',
'node.ice_remove': 'Remove',
'node.ice_save': 'Save',
'node.ice_saving': 'Saving…',
'node.ice_saved': 'ICE interfaces saved.',
'node.ice_reset_auto': 'Switch to auto',
'node.ice_duplicate': 'This interface is already in the list.',
'node.overview': 'Overview',
'node.overview_version': 'Version',
'node.overview_node_id': 'Node ID',
'node.overview_quic_port': 'QUIC port',
'node.overview_hub': 'Hub',
'node.node_roster': 'Node roster',
'node.node_roster_hint': 'Every identity this node recognises, across all groups.',
'node.roster_scope': 'Scope',
'node.roster_scope_node': 'node-wide',
'node.peers_title': 'Connected peers',
'node.peers_empty': 'No peers connected.',
'node.peers_user': 'User',
'node.peers_ip': 'IP',
'node.peers_group': 'Group',
'node.peers_state': 'State',
'node.audit_title': 'Audit log',
'node.audit_all_events': 'All events',
'node.audit_empty': 'No audit entries.',
'node.audit_time': 'Time',
'node.audit_event': 'Event',
'node.audit_user': 'User',
'node.audit_ip': 'IP',
'node.audit_group': 'Group',
'node.audit_detail': 'Detail',
'node.maintenance': 'Maintenance',
'node.maintenance_cache': 'Index cache: {n} path(s) remembered.',
'node.maintenance_prune': 'Prune stale entries',
'node.maintenance_pruned': 'Pruned {n} stale cache entries.',
'node.loading': 'Loading…',
'node.audit_export': 'Export CSV',
'node.audit_exporting': 'Exporting…',
'node.audit_prev': 'Previous',
'node.audit_next': 'Next',
'node.audit_page': 'Page {n}',
'node.audit_exported': 'Exported {n} entries.',
'node.unlink_title': 'Unlink from hub',
'node.unlink_hint': 'Stops the hub from brokering connections to this node and listing it for group members. Your groups, keys, roster and files are untouched — the node keeps serving anyone who reaches it directly. Re-link any time from the group wizard or your profile.',
'node.unlink_button': 'Unlink this node',
'node.unlink_confirm': 'Unlink this node from the hub? The hub will stop routing members to it. Group data on disk is not affected.',
'node.unlink_done': 'Node unlinked from the hub. It may take a moment for the hub connection to drop.',
'node.tab_overview': 'Overview',
'node.tab_groups': 'Groups',
'node.tab_roster': 'Roster',
'node.tab_peers': 'Peers',
'node.tab_audit': 'Audit',
'node.tab_settings': 'Settings',
'node.root_rw': 'lezen-schrijven',
'node.root_ro': 'alleen-lezen',
'node.removable': 'verwijderbaar',
};
|