aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-08-16 00:21:07 +0200
committerChristophe Besson <cbesson@gmail.com>2026-08-16 00:21:07 +0200
commit3b2d03a919e56d14f8097844b97b844ddf526cd6 (patch)
tree31b222fedf6d608809eb47c45c5f431d7001d87a /packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js
parent75065cc1ed5d9cd733871d478dc4f915663d795c (diff)
downloadmeshbay-3b2d03a919e56d14f8097844b97b844ddf526cd6.tar.gz
feat(hub): translate the web client into nine more languages
French, Spanish, Brazilian Portuguese, Simplified Chinese, Japanese, German, Italian, Dutch and Polish, all in the formal register. `hub`, `node` and `GEK` stay in English: they name the CLI, node.toml and the docs, and translating them would cut the interface off from everything an operator reads and types. Catalogues move out of i18n.js into locales/, one file per language, fetched with a dynamic import. A visitor downloads their language plus English as a fallback — about 36 KB rather than the ~180 KB that ten inlined catalogues would have cost everyone. i18n.js keeps only the loader, so the first render now waits for initLocale(). Three things the old code got wrong, none of them visible until there was a second language: - Resolution trimmed a tag to its base before matching, so a browser reporting pt-BR looked for a `pt` catalogue that does not exist and fell back to English. Matching is now exact first, then by base language. - Counted strings were single strings, so Polish could not express 1 plik / 2 pliki / 5 plików at all. t() selects through Intl.PluralRules; en.js gains the same treatment, which incidentally fixes "1 files". - Interpolation used String.replace, which reads `$&` in the replacement. A file named rap$&sody.mp3 rendered corrupted in its own delete dialog. Five strings were still hardcoded in app.js — the group name placeholder and the four visibility/join-policy descriptions — and are now keyed. test_locales.py holds the nine translations to the shape of en.js: same keys, a counted string stays counted everywhere, every plural entry covers each category Intl actually produces for that language, and the {placeholders} survive translation. Verified failing first, against a catalogue with a key removed, a placeholder dropped and the Polish `few` form deleted. The language menu also grew from one entry to ten, which overran a short viewport inside a dropdown that clipped instead of scrolling. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js')
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js406
1 files changed, 406 insertions, 0 deletions
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js
new file mode 100644
index 0000000..2f778b3
--- /dev/null
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js
@@ -0,0 +1,406 @@
+/**
+ * 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',
+
+ // Sidebar
+ 'sidebar.my_groups': 'Mijn groepen',
+ 'sidebar.no_groups': 'Nog geen groepen',
+ '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',
+
+ // 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.success_title': 'Account aangemaakt',
+ 'register.success_msg': 'U kunt zich nu met uw gegevens aanmelden.',
+ 'register.go_login': 'Naar het aanmelden',
+ '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.',
+
+ // 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.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',
+
+ // Group page
+ 'group.default_name': 'Groep',
+ 'group.tab_files': 'Bestanden',
+ 'group.tab_chat': 'Chat',
+ 'group.tab_members': 'Leden',
+ 'group.filter': 'Bestanden filteren...',
+ '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.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.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',
+
+ // Video player
+ 'video.loading': '{name} wordt geladen...',
+ 'video.buffering': 'Bezig met bufferen...',
+ '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.',
+ 'group.upload_indexing': 'indexeren…',
+ 'video.err_transport': 'Transport niet verbonden',
+ 'video.err_mse': 'Codec wordt niet ondersteund voor streamen: {codec}',
+
+ // 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',
+ 'settings.dl_choose': 'Map kiezen',
+ 'settings.dl_change': 'Wijzigen',
+ 'settings.dl_forget': 'Vergeten',
+ 'settings.dl_path_note': 'Aan een webpagina kan geen pad worden doorgegeven, dus '
+ + 'hier valt niets in te typen: uw browser verleent toegang tot de map die u '
+ + 'aanwijst, en MeshBay schrijft uitsluitend daarbinnen. Mogelijk wordt u één keer '
+ + 'per sessie om bevestiging gevraagd.',
+ 'settings.dl_unsupported': 'Deze browser kan niet schrijven naar een map van uw keuze '
+ + '(geen File System Access API), dus downloads gaan naar zijn eigen downloadmap. '
+ + 'Chrome en Edge laten wel een keuze toe.',
+ 'settings.profile': 'Profiel',
+ 'settings.username': 'Gebruikersnaam',
+ '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.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',
+ '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 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_details': 'Details',
+ 'admin.btn_delete': 'Verwijderen',
+ 'admin.delete_confirm': 'Het account "{user}" 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.visibility': 'Zichtbaarheid',
+ 'create_group.private': 'Privé',
+ 'create_group.private_desc': 'Alleen uitgenodigde leden zien de bestanden en hebben er toegang toe',
+ 'create_group.public': 'Openbaar',
+ 'create_group.public_desc': 'Iedereen kan deze groep vinden en doorbladeren',
+ 'create_group.join_policy': 'Toetredingsbeleid',
+ 'create_group.invite': 'Alleen op uitnodiging',
+ 'create_group.invite_desc': 'Leden moeten door een beheerder worden uitgenodigd',
+ 'create_group.open': 'Open (iedereen kan deelnemen)',
+ 'create_group.open_desc': 'Iedereen kan 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} — stuur die op de manier '
+ + 'waarop u elkaar gewoonlijk spreekt. Hij werkt één keer en gaat nooit via de hub.',
+ 'members.invite_code_hint': 'De persoon voert hem in de eerste keer dat deze groep '
+ + 'wordt geopend. U hoeft dan niet online te zijn.',
+ 'transfers.title': 'Overdrachten',
+ 'transfers.clear': 'Voltooide wissen',
+ 'transfers.cancel': 'Annuleren',
+ 'transfers.open': 'Openen',
+ 'transfers.done': 'Voltooid',
+ 'transfers.cancelled': 'Geannuleerd',
+ '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.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',
+
+ '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.title': 'Bestanden zoeken',
+ 'search.placeholder': 'In alle groepen zoeken...',
+ 'search.no_results': 'Geen bestand voldoet aan uw zoekopdracht.',
+ 'search.synced': 'gesynchroniseerd {ago}',
+ 'search.cache_note': 'De zoekopdracht gaat uit van hoe elke groep eruitzag toen u '
+ + 'die voor het laatst opende. Open een groep om de bestanden hier bij te werken.',
+ 'search.col_group': 'Groep',
+ 'search.result_count': {
+ one: '{n} bestand gevonden',
+ other: '{n} bestanden gevonden',
+ },
+ 'search.hint': 'Zoekt bestandsnamen in alle groepsindexen in de cache.',
+};