From 1cd38b551da34e4697ba705eda9ce18a022bd968 Mon Sep 17 00:00:00 2001 From: WilcoSp Date: Sun, 8 Mar 2026 20:40:57 +0100 Subject: [PATCH 01/12] starting with translating to Dutch --- config/i18n.ts | 14 +- i18n/locales/nl-BE.json | 3 + i18n/locales/nl-NL.json | 3 + i18n/locales/nl.json | 1350 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 1365 insertions(+), 5 deletions(-) create mode 100644 i18n/locales/nl-BE.json create mode 100644 i18n/locales/nl-NL.json create mode 100644 i18n/locales/nl.json diff --git a/config/i18n.ts b/config/i18n.ts index 0270ec9c42..5c5a5f48bf 100644 --- a/config/i18n.ts +++ b/config/i18n.ts @@ -76,6 +76,10 @@ export const countryLocaleVariants: Record) { @@ -213,11 +217,11 @@ const locales: (LocaleObjectData | (Omit & { code: str file: 'ne-NP.json', name: 'नेपाली', }, - /*{ - code: 'nl-NL', - file: 'nl-NL.json', - name: 'Nederlands', - },*/ + { + code: 'nl', + file: 'nl.json', + name: 'Nederlands', + }, { code: 'es', file: 'es.json', diff --git a/i18n/locales/nl-BE.json b/i18n/locales/nl-BE.json new file mode 100644 index 0000000000..0618235d76 --- /dev/null +++ b/i18n/locales/nl-BE.json @@ -0,0 +1,3 @@ +{ + "$schema": "../schema.json" +} diff --git a/i18n/locales/nl-NL.json b/i18n/locales/nl-NL.json new file mode 100644 index 0000000000..0618235d76 --- /dev/null +++ b/i18n/locales/nl-NL.json @@ -0,0 +1,3 @@ +{ + "$schema": "../schema.json" +} diff --git a/i18n/locales/nl.json b/i18n/locales/nl.json new file mode 100644 index 0000000000..f5934e68ef --- /dev/null +++ b/i18n/locales/nl.json @@ -0,0 +1,1350 @@ +{ + "$schema": "../schema.json", + "seo": { + "home": { + "title": "npmx - Pakket Browser voor de npm Register", + "description": "een snelle, moderne browser voor de npm register. zoek, blader en ontdek pakketten met een modern uiterlijk." + } + }, + "built_at": "gebouwd op {0}", + "alt_logo": "npmx logo", + "tagline": "een snelle, moderne browser voor de npm register", + "non_affiliation_disclaimer": "niet affiliëerd met npm, Inc.", + "trademark_disclaimer": "npm is een geregisteerd trademark van npm, Inc. Deze website is niet affiliëerd met npm, Inc.", + "footer": { + "about": "over", + "blog": "blog", + "docs": "docs", + "source": "bron", + "social": "social", + "chat": "chat", + "builders_chat": "bouwers", + "keyboard_shortcuts": "sneltoetsen" + }, + "shortcuts": { + "section": { + "global": "Globaal", + "search": "Zoeken", + "package": "Pakket" + }, + "focus_search": "", + "show_kbd_hints": "", + "settings": "Open instellingen", + "compare": "Open compare", + "compare_from_package": "Open compare (prefilled with current package)", + "navigate_results": "Navigate results", + "go_to_result": "Go to result", + "open_code_view": "Open code view", + "open_docs": "Open docs", + "disable_shortcuts": "You can disable keyboard shortcuts in {settings}." + }, + "search": { + "label": "Zoek npm pakketten", + "placeholder": "zoek pakketten...", + "button": "zoek", + "searching": "Searching...", + "found_packages": "No packages found | Found 1 package | Found {count} packages", + "found_packages_sorted": "No results found | Sorting top {count} result | Sorting top {count} results", + "updating": "(updating...)", + "no_results": "No packages found for \"{query}\"", + "rate_limited": "Hit npm rate limit, try again in a moment", + "title": "search", + "title_search": "search: {search}", + "title_packages": "search packages", + "meta_description": "Search results for '{search}'", + "meta_description_packages": "Search npm packages", + "not_taken": "{name} is not taken", + "claim_prompt": "Claim this package name on npm", + "claim_button": "Claim \"{name}\"", + "want_to_claim": "Want to claim this package name?", + "start_typing": "Start typing to search packages", + "algolia_disclaimer": "Powered by Algolia", + "exact_match": "exact", + "suggestion": { + "user": "user", + "org": "org", + "view_user_packages": "View packages by this user", + "view_org_packages": "View packages by this organization" + }, + "instant_search": "Instant search", + "instant_search_on": "on", + "instant_search_off": "off", + "instant_search_turn_on": "turn on", + "instant_search_turn_off": "turn off", + "instant_search_advisory": "{label} {state} — {action}" + }, + "nav": { + "main_navigation": "Main", + "popular_packages": "Populaire pakketten", + "settings": "settings", + "compare": "compare", + "back": "terug", + "menu": "Menu", + "mobile_menu": "Navigation menu", + "open_menu": "Open menu", + "links": "Links", + "tap_to_search": "Tap to search" + }, + "blog": { + "title": "Blog", + "heading": "blog", + "meta_description": "Insights and updates from the npmx community", + "author": { + "view_profile": "View {name}'s profile on Bluesky" + }, + "draft_badge": "Draft", + "draft_banner": "This is an unpublished draft. It may be incomplete or contain inaccuracies.", + "atproto": { + "view_on_bluesky": "View on Bluesky", + "reply_on_bluesky": "Reply on Bluesky", + "likes_on_bluesky": "Likes on Bluesky", + "like_or_reply_on_bluesky": "Like this post or add your comment on Bluesky", + "no_comments_yet": "No comments yet.", + "could_not_load_comments": "Could not load comments.", + "comments": "Comments", + "loading_comments": "Loading comments...", + "updating": "Updating...", + "reply_count": "{count} reply | {count} replies", + "like_count": "{count} like | {count} likes", + "repost_count": "{count} repost | {count} reposts", + "more_replies": "{count} more reply... | {count} more replies..." + } + }, + "settings": { + "title": "settings", + "tagline": "customize your npmx experience", + "meta_description": "Customize your npmx.dev experience with theme, language, and display preferences.", + "sections": { + "appearance": "Appearance", + "display": "Display", + "search": "Search features", + "language": "Language", + "keyboard_shortcuts": "Keyboard shortcuts" + }, + "data_source": { + "label": "Data source", + "description": "Choose where npmx gets search data. Individual package pages always use the npm registry directly.", + "npm": "npm Registry", + "npm_description": "Fetches search, org and user listings directly from the official npm registry. Authoritative, but can be slower.", + "algolia": "Algolia", + "algolia_description": "Uses Algolia for faster search, org and user pages." + }, + "instant_search": "Instant search", + "instant_search_description": "Navigates to the search page and updates the results as you type.", + "relative_dates": "Relative dates", + "include_types": "Include {'@'}types in install", + "include_types_description": "Add {'@'}types package to install commands for untyped packages", + "hide_platform_packages": "Hide platform-specific packages in search", + "hide_platform_packages_description": "Hide native binary packages like {'@'}esbuild/linux-x64 from results", + "theme": "Theme", + "theme_light": "Light", + "theme_dark": "Dark", + "theme_system": "System", + "language": "Language", + "help_translate": "Help translate npmx", + "accent_colors": "Accent colors", + "clear_accent": "Clear accent color", + "translation_progress": "Translation progress", + "background_themes": "Background shade", + "keyboard_shortcuts_enabled": "Enable keyboard shortcuts", + "keyboard_shortcuts_enabled_description": "Keyboard shortcuts can be disabled if they conflict with other browser or system shortcuts" + }, + "i18n": { + "missing_keys": "{count} missing translation | {count} missing translations", + "copy_keys": "Copy keys", + "show_more_keys": "Show {count} more...", + "contribute_hint": "Help improve this translation by adding the missing keys.", + "edit_on_github": "Edit on GitHub", + "view_guide": "Translation guide" + }, + "error": { + "401": "Unauthorized", + "404": "Page not found", + "500": "Internal server error", + "503": "Service unavailable", + "default": "Something went wrong" + }, + "common": { + "loading": "Loading...", + "loading_more": "Loading more...", + "loading_packages": "Loading packages...", + "end_of_results": "End of results", + "try_again": "Try again", + "close": "Close", + "or": "or", + "retry": "Retry", + "copy": "copy", + "copied": "copied!", + "skip_link": "Skip to main content", + "warnings": "Warnings:", + "go_back_home": "Go back home", + "view_on_npm": "view on npm", + "per_week": "/ week", + "vanity_downloads_hint": "Vanity number: no packages displayed | Vanity number: for the displayed package | Vanity number: Sum of {count} displayed packages", + "sort": { + "name": "name", + "role": "role", + "members": "members" + }, + "scroll_to_top": "Scroll to top", + "cancel": "Cancel", + "save": "Save", + "edit": "Edit", + "error": "Error" + }, + "profile": { + "display_name": "Display Name", + "description": "Description", + "no_description": "No description", + "website": "Website", + "website_placeholder": "https://example.com", + "likes": "Likes", + "seo_title": "{handle} - npmx", + "seo_description": "npmx profile by {handle}", + "not_found": "Profile Not Found", + "not_found_message": "The profile for {handle} could not be found.", + "invite": { + "message": "It doesn't look like they're using npmx yet. Want to tell them about it?", + "share_button": "Share on Bluesky", + "compose_text": "Hey {'@'}{handle}! Have you checked out npmx.dev yet? It's a browser for the npm registry that's fast, modern, and open-source.\nhttps://npmx.dev" + } + }, + "package": { + "not_found": "Package Not Found", + "not_found_message": "The package could not be found.", + "no_description": "No description provided", + "not_latest": "(not latest)", + "verified_provenance": "Verified provenance", + "view_permalink": "View permalink for this version", + "navigation": "Package", + "copy_name": "Copy package name", + "copy_version": "Copy package version", + "deprecation": { + "package": "This package has been deprecated.", + "version": "This version has been deprecated.", + "no_reason": "No reason provided" + }, + "size_increase": { + "title_size": "Significant size increase since v{version}", + "title_deps": "Significant dependency count increase since v{version}", + "title_both": "Significant size and dependency increase since v{version}", + "size": "Install size increased by {percent} ({size} larger)", + "deps": "{count} more dependencies" + }, + "replacement": { + "title": "U heeft waarschijnlijk dit niet nodig", + "native": "This can be replaced with {replacement}, available since Node {nodeVersion}.", + "simple": "De {community} heeft dit pakket als overbodig gemarkeerd, met het advies: {replacement}.", + "documented": "De {community} heeft aangegeven dat er voor dit pakket beter presterende alternatieven zijn.", + "none": "This package has been flagged as no longer needed, and its functionality is likely available natively in all engines.", + "learn_more": "Leer meer", + "learn_more_above": "Learn more above.", + "mdn": "MDN", + "community": "gemeenschap", + "consider_no_dep": "+ Kies zonder te gaan?" + }, + "stats": { + "license": "License", + "deps": "Deps", + "install_size": "Install Size", + "vulns": "Vulns", + "published": "Published", + "published_tooltip": "Date {package}{'@'}{version} was published", + "view_dependency_graph": "View dependency graph", + "inspect_dependency_tree": "Inspect dependency tree", + "size_tooltip": { + "unpacked": "{size} unpacked size (this package)", + "total": "{size} total unpacked size (including {count} dependency for linux-x64) | {size} total unpacked size (including all {count} dependencies for linux-x64)" + } + }, + "skills": { + "title": "Agent Skills", + "skills_available": "{count} skill available | {count} skills available", + "compatible_with": "Compatible with {tool}", + "install": "Install", + "installation_method": "Installation method", + "learn_more": "Learn more", + "available_skills": "Available Skills", + "click_to_expand": "Click to expand", + "no_description": "No description", + "file_counts": { + "scripts": "{count} script | {count} scripts", + "refs": "{count} ref | {count} refs", + "assets": "{count} asset | {count} assets" + }, + "view_source": "View source" + }, + "links": { + "repo": "repo", + "homepage": "homepage", + "issues": "issues", + "jsr": "jsr", + "code": "code", + "docs": "docs", + "fund": "fund", + "compare": "compare" + }, + "likes": { + "like": "Like this package", + "unlike": "Unlike this package" + }, + "docs": { + "not_available": "Docs not available", + "not_available_detail": "We could not generate docs for this version." + }, + "get_started": { + "title": "Get started", + "pm_label": "Package manager", + "copy_command": "Copy install command", + "copy_dev_command": "Copy dev install command", + "dev_dependency_hint": "Usually installed as a dev dependency", + "view_types": "View {package}" + }, + "create": { + "title": "Create new project", + "copy_command": "Copy create command", + "view": "{packageName} has the same maintainer. Click for more details." + }, + "run": { + "title": "Run", + "locally": "Run locally" + }, + "readme": { + "title": "Readme", + "no_readme": "No README available.", + "view_on_github": "View on GitHub", + "toc_title": "Outline", + "callout": { + "note": "Note", + "tip": "Tip", + "important": "Important", + "warning": "Warning", + "caution": "Caution" + }, + "copy_as_markdown": "Copy README as Markdown" + }, + "provenance_section": { + "title": "Provenance", + "built_and_signed_on": "Built and signed on {provider}", + "view_build_summary": "View build summary", + "source_commit": "Source Commit", + "build_file": "Build File", + "public_ledger": "Public Ledger", + "transparency_log_entry": "Transparency log entry", + "view_more_details": "View more details", + "error_loading": "Failed to load provenance details" + }, + "security_downgrade": { + "title": "Trust downgrade", + "description_to_none_provenance": "This version was published without {provenance}.", + "description_to_none_trustedPublisher": "This version was published without {trustedPublishing}.", + "description_to_provenance_trustedPublisher": "This version uses {provenance} but not {trustedPublishing}.", + "fallback_install_provenance": "Install commands are pinned to {version}, the last version with provenance.", + "fallback_install_trustedPublisher": "Install commands are pinned to {version}, the last version with trusted publishing.", + "provenance_link_text": "provenance", + "trusted_publishing_link_text": "trusted publishing" + }, + "keywords_title": "Keywords", + "compatibility": "Compatibility", + "card": { + "publisher": "Publisher", + "published": "Published", + "weekly_downloads": "Weekly downloads", + "keywords": "Keywords", + "license": "License" + }, + "versions": { + "title": "Versions", + "collapse": "Collapse {tag}", + "expand": "Expand {tag}", + "collapse_other": "Collapse other versions", + "expand_other": "Expand other versions", + "collapse_major": "Collapse major {major}", + "expand_major": "Expand major {major}", + "other_versions": "Other versions", + "more_tagged": "{count} more tagged", + "all_covered": "All versions are covered by tags above", + "deprecated_title": "{version} (deprecated)", + "view_all": "View {count} version | View all {count} versions", + "distribution_title": "Semver Group", + "distribution_modal_title": "Versions", + "distribution_range_date_same_year": "from {from} to {to}, {endYear}", + "distribution_range_date_multiple_years": "from {from}, {startYear} to {to}, {endYear}", + "grouping_major": "Major", + "grouping_minor": "Minor", + "grouping_versions_title": "Versions", + "grouping_versions_all": "All", + "grouping_versions_only_recent": "Only recent", + "grouping_usage_title": "Usage", + "grouping_usage_all": "All", + "grouping_usage_low": "Low", + "recent_versions_only_tooltip": "Show only versions published within the last year.", + "show_low_usage_tooltip": "Include version groups with less than 1% of total downloads.", + "y_axis_label": "Downloads", + "filter_placeholder": "Filter by semver (e.g. ^3.0.0)", + "filter_invalid": "Invalid semver range", + "filter_help": "Semver range filter help", + "filter_tooltip": "Filter versions using a {link}. For example, ^3.0.0 shows all 3.x versions.", + "filter_tooltip_link": "semver range", + "no_matches": "No versions match this range", + "copy_alt": { + "per_version_analysis": "{version} version was downloaded {downloads} times", + "general_description": "Bar chart showing per-version downloads for {versions_count} {semver_grouping_mode} versions of the {package_name} package, {date_range_label} from the {first_version} version to the {last_version} version. The most downloaded version is {max_downloaded_version} with {max_version_downloads} downloads. {per_version_analysis}. {watermark}." + } + }, + "dependencies": { + "title": "Dependency ({count}) | Dependencies ({count})", + "list_label": "Package dependencies", + "show_all": "show {count} dep | show all {count} deps", + "optional": "optional", + "view_vulnerabilities": "View vulnerabilities", + "outdated_major": "{count} major version behind (latest: {latest}) | {count} major versions behind (latest: {latest})", + "outdated_minor": "{count} minor version behind (latest: {latest}) | {count} minor versions behind (latest: {latest})", + "outdated_patch": "Patch update available (latest: {latest})", + "has_replacement": "This dependency has suggested replacements" + }, + "peer_dependencies": { + "title": "Peer Dependency ({count}) | Peer Dependencies ({count})", + "list_label": "Package peer dependencies", + "show_all": "show {count} peer dep | show all {count} peer deps" + }, + "optional_dependencies": { + "title": "Optional Dependency ({count}) | Optional Dependencies ({count})", + "list_label": "Package optional dependencies", + "show_all": "show {count} optional dep | show all {count} optional deps" + }, + "maintainers": { + "title": "Maintainers", + "list_label": "Package maintainers", + "you": "(you)", + "via": "via {teams}", + "remove_owner": "Remove {name} as owner", + "username_to_add": "Username to add as owner", + "username_placeholder": "username...", + "add_button": "add", + "cancel_add": "Cancel adding owner", + "add_owner": "+ Add owner", + "show_more": "(show {count} more)", + "show_less": "(show fewer)" + }, + "trends": { + "granularity": "Granularity", + "granularity_daily": "Daily", + "granularity_weekly": "Weekly", + "granularity_monthly": "Monthly", + "granularity_yearly": "Yearly", + "start_date": "Start", + "end_date": "End", + "loading": "Loading...", + "date_range": "{start} to {end}", + "date_range_multiline": "{start}\nto {end}", + "download_file": "Download {fileType}", + "toggle_annotator": "Toggle annotator", + "toggle_stack_mode": "Toggle stack mode", + "open_options": "Open options", + "close_options": "Close options", + "legend_estimation": "Estimation", + "no_data": "No data available", + "y_axis_label": "{granularity} {facet}", + "facet": "Facet", + "title": "Trends", + "contributors_skip": "Not shown in Contributors (no GitHub repo):", + "items": { + "downloads": "Downloads", + "likes": "Likes", + "contributors": "Contributors" + }, + "data_correction": "Data correction", + "average_window": "Average window", + "smoothing": "Smoothing", + "known_anomalies": "Known anomalies", + "known_anomalies_description": "Interpolates over known download spikes caused by bots or CI issues.", + "known_anomalies_ranges": "Anomaly ranges", + "known_anomalies_range": "From {start} to {end}", + "known_anomalies_range_named": "{packageName}: from {start} to {end}", + "known_anomalies_none": "No known anomalies for this package. | No known anomalies for these packages.", + "known_anomalies_contribute": "Contribute anomaly data", + "apply_correction": "Apply correction", + "copy_alt": { + "trend_none": "mostly flat", + "trend_strong": "strong", + "trend_weak": "weak", + "trend_undefined": "undefined (insufficient data)", + "button_label": "Copy alt text", + "watermark": "At the bottom, a watermark reads \"./npmx a fast, modern browser for the npm registry\"", + "analysis": "{package_name} starts at {start_value} and ends at {end_value}, showing a {trend} trend with a slope of {downloads_slope} downloads per time interval", + "estimation": "The final value is an estimate based on partial data for the current period.", + "estimations": "The final values are estimates based on partial data for the current period.", + "compare": "Package download comparison line chart for: {packages}.", + "single_package": "Downloads line chart for the {package} package.", + "general_description": "The Y axis represents the number of downloads. The X axis represents the date range, from {start_date} to {end_date}, with a {granularity} time period.{estimation_notice} {packages_analysis}. {watermark}." + } + }, + "downloads": { + "title": "Weekly Downloads", + "community_distribution": "View community adoption distribution", + "subtitle": "Across all versions" + }, + "install_scripts": { + "title": "Install Scripts", + "script_label": "(script)", + "npx_packages": "{count} npx package | {count} npx packages", + "currently": "currently {version}" + }, + "playgrounds": { + "title": "Try it out", + "choose": "choose playground" + }, + "metrics": { + "esm": "ES Modules supported", + "cjs": "CommonJS supported", + "no_esm": "No ES Modules support", + "types_label": "Types", + "types_included": "Types included", + "types_available": "Types available via {package}", + "no_types": "No TypeScript types" + }, + "license": { + "view_spdx": "View license text on SPDX", + "none": "None" + }, + "vulnerabilities": { + "tree_found": "{vulns} vulnerability in {packages}/{total} packages | {vulns} vulnerabilities in {packages}/{total} packages", + "show_all_packages": "show {count} affected package | show all {count} affected packages", + "path": "path", + "more": "+{count} more", + "packages_failed": "{count} package could not be checked | {count} packages could not be checked", + "scan_failed": "Could not scan for vulnerabilities", + "severity": { + "critical": "critical", + "high": "high", + "moderate": "moderate", + "low": "low" + }, + "fixed_in_title": "Fixed in version {version}" + }, + "deprecated": { + "label": "Deprecated", + "tree_found": "{count} deprecated dependency | {count} deprecated dependencies", + "show_all": "show {count} deprecated package | show all {count} deprecated packages" + }, + "access": { + "title": "Team Access", + "refresh": "Refresh team access", + "list_label": "Team access list", + "owner": "owner", + "rw": "rw", + "ro": "ro", + "revoke_access": "Revoke {name} access", + "no_access": "No team access configured", + "select_team_label": "Select team", + "loading_teams": "Loading teams...", + "select_team": "Select team", + "permission_label": "Permission level", + "permission": { + "read_only": "read-only", + "read_write": "read-write" + }, + "grant_button": "grant", + "cancel_grant": "Cancel granting access", + "grant_access": "+ Grant team access" + }, + "list": { + "filter_label": "Filter packages", + "filter_placeholder": "Filter packages...", + "sort_label": "Sort packages", + "showing_count": "Showing {filtered} of {total} packages" + }, + "skeleton": { + "loading": "Loading package details", + "maintainers": "Maintainers", + "keywords": "Keywords", + "versions": "Versions", + "dependencies": "Dependencies" + }, + "sort": { + "downloads": "Most downloaded", + "published": "Recently published", + "name_asc": "Name (A-Z)", + "name_desc": "Name (Z-A)" + }, + "size": { + "b": "{size} B", + "kb": "{size} kB", + "mb": "{size} MB" + } + }, + "connector": { + "modal": { + "title": "Local Connector", + "connected": "Connected", + "connected_as_user": "Connected as ~{user}", + "connected_hint": "You can now manage packages and organizations from the web UI.", + "disconnect": "Disconnect", + "run_hint": "Run the connector on your machine to enable admin features.", + "copy_command": "Copy command", + "copied": "Copied", + "paste_token": "Then paste the token below to connect:", + "token_label": "Token", + "token_placeholder": "paste token here...", + "advanced": "Advanced options", + "port_label": "Port", + "warning": "WARNING", + "warning_text": "This allows npmx to access your npm CLI. Only connect to sites you trust.", + "connect": "Connect", + "connecting": "Connecting...", + "auto_open_url": "Automatically open auth page" + } + }, + "operations": { + "queue": { + "title": "Operations Queue", + "clear_all": "clear all", + "refresh": "Refresh operations", + "empty": "No operations queued", + "empty_hint": "Add operations from package or org pages", + "active_label": "Active operations", + "otp_required": "OTP required", + "otp_prompt": "Enter OTP to continue", + "otp_placeholder": "Enter OTP code...", + "otp_label": "One-time password", + "retry_otp": "Retry with OTP", + "retry_web_auth": "Retry with web auth", + "retrying": "Retrying...", + "open_web_auth": "Open web auth link", + "approve_operation": "Approve operation", + "remove_operation": "Remove operation", + "approve_all": "Approve All", + "execute": "Execute", + "executing": "Executing...", + "log": "Log", + "log_label": "Completed operations log", + "remove_from_log": "Remove from log" + } + }, + "org": { + "teams": { + "title": "Teams", + "refresh": "Refresh teams", + "filter_label": "Filter teams", + "filter_placeholder": "Filter teams...", + "sort_by": "Sort by", + "loading": "Loading teams...", + "no_teams": "No teams found", + "list_label": "Organization teams", + "delete_team": "Delete team {name}", + "member_count": "{count} member | {count} members", + "members_of": "Members of {team}", + "no_members": "No members", + "remove_user": "Remove {user} from team", + "username_to_add": "Username to add to {team}", + "username_placeholder": "username...", + "add_button": "add", + "cancel_add_user": "Cancel adding user", + "add_member": "+ Add member", + "team_name_label": "Team name", + "team_name_placeholder": "team-name...", + "create_button": "create", + "no_match": "No teams match \"{query}\"", + "cancel_create": "Cancel creating team", + "create_team": "+ Create team" + }, + "members": { + "title": "Members", + "refresh": "Refresh members", + "filter_label": "Filter members", + "filter_placeholder": "Filter members...", + "filter_by_role": "Filter by role", + "filter_by_team": "Filter by team", + "all_teams": "all teams", + "sort_by": "Sort by", + "loading": "Loading members...", + "no_members": "No members found", + "list_label": "Organization members", + "change_role_for": "Change role for {name}", + "remove_from_org": "Remove {name} from org", + "view_team": "View {team} team", + "no_match": "No members match your filters", + "username_label": "Username", + "username_placeholder": "username...", + "role_label": "Role", + "role": { + "all": "all", + "developer": "developer", + "admin": "admin", + "owner": "owner" + }, + "team_label": "Team", + "no_team": "no team", + "add_button": "add", + "cancel_add": "Cancel adding member", + "add_member": "+ Add member" + }, + "public_packages": "{count} public package | {count} public packages", + "page": { + "packages_title": "Packages", + "members_tab": "Members", + "teams_tab": "Teams", + "no_packages": "No public packages found for", + "no_packages_hint": "This organization may not exist or has no public packages.", + "failed_to_load": "Failed to load organization packages", + "no_match": "No packages match \"{query}\"", + "not_found": "Organization not found", + "not_found_message": "The organization \"{'@'}{name}\" does not exist on npm" + } + }, + "user": { + "combobox": { + "add_to_org_hint": "(will also add to org)", + "press_enter_to_add": "Press Enter to add {'@'}{username}", + "default_placeholder": "username...", + "suggestions_label": "User suggestions" + }, + "page": { + "packages_title": "Packages", + "no_packages": "No public packages found for", + "no_packages_hint": "This user may not exist or has no public packages.", + "failed_to_load": "Failed to load user packages", + "no_match": "No packages match \"{query}\"", + "filter_placeholder": "Filter {count} package... | Filter {count} packages..." + }, + "orgs_page": { + "title": "Organizations", + "back_to_profile": "Back to profile", + "connect_required": "Connect the local CLI to view your organizations.", + "connect_hint_prefix": "Run", + "connect_hint_suffix": "to get started.", + "own_orgs_only": "You can only view your own organizations.", + "view_your_orgs": "View your organizations", + "loading": "Loading organizations...", + "empty": "No organizations found.", + "empty_hint": "Organizations are detected from your scoped packages.", + "count": "{count} Organization | {count} Organizations", + "packages_count": "{count} package | {count} packages" + } + }, + "claim": { + "modal": { + "title": "Claim Package Name", + "success": "Package claimed!", + "success_detail": "{name}{'@'}0.0.0 has been published to npm.", + "success_hint": "You can now publish new versions to this package using npm publish.", + "view_package": "View Package", + "invalid_name": "Invalid package name:", + "available": "This name is available!", + "taken": "This name is already taken.", + "missing_permission": "You do not have permission to add a package to scope {'@'}{scope}.", + "similar_warning": "Similar packages exist - npm may reject this name:", + "related": "Related packages:", + "scope_warning_title": "Consider using a scoped package instead", + "scope_warning_text": "Unscoped package names are a shared resource. Only claim a name if you intend to publish and maintain a package. For personal or organizational projects, use a scoped name like {'@'}{username}/{name}.", + "connect_required": "Connect to the local connector to claim this package name.", + "connect_button": "Connect to Connector", + "publish_hint": "This will publish a minimal placeholder package.", + "preview_json": "Preview package.json", + "claim_button": "Claim Package Name", + "publishing": "Publishing...", + "checking": "Checking availability...", + "failed_to_check": "Failed to check name availability", + "failed_to_claim": "Failed to claim package" + } + }, + "code": { + "files_label": "Files", + "no_files": "No files in this directory", + "root": "root", + "lines": "{count} line | {count} lines", + "toggle_tree": "Toggle file tree", + "close_tree": "Close file tree", + "copy_link": "Copy link", + "raw": "Raw", + "view_raw": "View raw file", + "file_too_large": "File too large to preview", + "file_size_warning": "{size} exceeds the 500KB limit for syntax highlighting", + "failed_to_load": "Failed to load file", + "unavailable_hint": "The file may be too large or unavailable", + "version_required": "Version is required to browse code", + "go_to_package": "Go to package", + "loading_tree": "Loading file tree...", + "failed_to_load_tree": "Failed to load files for this package version", + "back_to_package": "Back to package", + "table": { + "name": "Name", + "size": "Size" + }, + "markdown_view_mode": { + "preview": "preview", + "code": "code" + }, + "file_path": "File path", + "scroll_to_top": "Scroll to top" + }, + "badges": { + "provenance": { + "verified": "verified", + "verified_title": "Verified provenance", + "verified_via": "Verified: published via {provider}" + }, + "jsr": { + "title": "also available on JSR" + } + }, + "filters": { + "title": "Filters", + "search": "Search", + "search_scope": "Search scope", + "search_placeholder_name": "Filter by package name...", + "search_placeholder_description": "Filter by description...", + "search_placeholder_keywords": "Filter by keywords...", + "search_placeholder_all": "Search all or use name: desc: kw:", + "scope_name": "Name", + "scope_name_description": "Search package names only", + "scope_description": "Description", + "scope_description_description": "Search descriptions only", + "scope_keywords": "Keywords", + "scope_keywords_description": "Search keywords only", + "scope_all": "All", + "scope_all_description": "Search all fields, supports name: desc: kw: operators", + "weekly_downloads": "Weekly downloads", + "updated_within": "Updated within", + "security": "Security", + "keywords": "Keywords", + "more_keywords": "+{count} more", + "clear_all": "Clear all", + "remove_filter": "Remove {label} filter", + "chips": { + "search": "Search", + "downloads": "Downloads", + "keyword": "Keyword", + "security": "Security", + "updated": "Updated" + }, + "download_range": { + "any": "Any", + "lt100": "< 100", + "100_1k": "100 - 1K", + "1k_10k": "1K - 10K", + "10k_100k": "10K - 100K", + "gt100k": "> 100K" + }, + "updated": { + "any": "Any time", + "week": "Past week", + "month": "Past month", + "quarter": "Past 3 months", + "year": "Past year" + }, + "security_options": { + "all": "All packages", + "secure": "Without warnings", + "insecure": "With warnings" + }, + "sort": { + "label": "Sort packages", + "toggle_direction": "Toggle sort direction", + "ascending": "Ascending", + "descending": "Descending", + "relevance": "Relevance", + "downloads_week": "Downloads/wk", + "downloads_day": "Downloads/day", + "downloads_month": "Downloads/mo", + "downloads_year": "Downloads/yr", + "published": "Last Published", + "name": "Name", + "quality": "Quality", + "popularity": "Popularity", + "maintenance": "Maintenance", + "score": "Score" + }, + "columns": { + "title": "Columns", + "show": "Show columns", + "reset": "Reset to defaults", + "coming_soon": "Coming soon", + "name": "Name", + "version": "Version", + "description": "Description", + "downloads": "Downloads/wk", + "published": "Last Published", + "maintainers": "Maintainers", + "keywords": "Keywords", + "quality_score": "Quality score", + "popularity_score": "Popularity score", + "maintenance_score": "Maintenance score", + "combined_score": "Combined score", + "security": "Security" + }, + "view_mode": { + "label": "View mode", + "cards": "Card view", + "table": "Table view" + }, + "pagination": { + "mode_label": "Pagination mode", + "infinite": "Infinite", + "paginated": "Paginated", + "items_per_page": "Items per page", + "per_page": "{count} / page", + "showing": "{start}-{end} of {total}", + "previous": "Previous page", + "next": "Next page", + "nav_label": "Pagination" + }, + "count": { + "showing_filtered": "{filtered} of {count} package | {filtered} of {count} packages", + "showing_all": "{count} package | {count} packages", + "showing_paginated": "{pageSize} of {count} package | {pageSize} of {count} packages" + }, + "table": { + "security_warning": "Security warning", + "secure": "Secure", + "no_packages": "No packages found" + } + }, + "about": { + "title": "About", + "heading": "about", + "meta_description": "npmx is a fast, modern browser for the npm registry. A better UX/DX for exploring npm packages.", + "what_we_are": { + "title": "What we are", + "better_ux_dx": "better UX/DX", + "admin_ui": "admin UI", + "description": "npmx is a {betterUxDx} for the npm package registry and tooling. We provide a fast, modern interface for exploring packages, with features like dark mode, keyboard navigation, code browsing, and connections to alternative registries like {jsr}.", + "admin_description": "We also aim to provide a better {adminUi} for managing your packages, teams, and organizations — all from the browser, powered by your local npm CLI." + }, + "what_we_are_not": { + "title": "What we're not", + "not_package_manager": "Not a package manager.", + "not_registry": "Not a registry.", + "registry_description": "We don't host packages. We're just a better way to browse them.", + "package_managers_exist": "{already} {people} {building} {really} {cool} {package} {managers}.", + "words": { + "already": "There are", + "people": "already", + "building": "people", + "really": "building", + "cool": "really", + "package": "cool", + "managers": "package managers" + } + }, + "sponsors": { + "title": "Sponsors" + }, + "oss_partners": { + "title": "OSS Partners" + }, + "team": { + "title": "Team", + "governance": "Governance", + "role_steward": "steward", + "role_maintainer": "maintainer", + "sponsor": "sponsor", + "sponsor_aria": "Sponsor {name} on GitHub" + }, + "contributors": { + "title": "... and {count} more contributor | ... and {count} more contributors", + "description": "npmx is fully open source, built by an amazing community of contributors. Join us and let's build the npm browsing experience we always wanted, together.", + "loading": "Loading contributors...", + "error": "Failed to load contributors", + "view_profile": "View {name}'s GitHub profile" + }, + "get_involved": { + "title": "Get involved", + "contribute": { + "title": "Contribute", + "description": "Help us build a better npm experience.", + "cta": "View on GitHub" + }, + "community": { + "title": "Join the community", + "description": "Chat, ask questions, and share ideas.", + "cta": "Join Discord" + }, + "builders": { + "title": "Help build npmx", + "description": "Join the builders shaping the future of npmx.", + "cta": "Join Builders Discord" + }, + "follow": { + "title": "Stay updated", + "description": "Find out the latest on npmx.", + "cta": "Follow on Bluesky" + } + } + }, + "account_menu": { + "connect": "connect", + "account": "Account", + "npm_cli": "npm CLI", + "atmosphere": "Atmosphere", + "npm_cli_desc": "Manage packages & orgs", + "atmosphere_desc": "Social features & identity", + "connect_npm_cli": "Connect to npm CLI", + "connect_atmosphere": "Connect to Atmosphere", + "connecting": "Connecting...", + "ops": "{count} op | {count} ops" + }, + "auth": { + "modal": { + "title": "Atmosphere", + "connected_as": "Connected as {'@'}{handle}", + "disconnect": "Disconnect", + "connect_prompt": "Connect with your Atmosphere account", + "handle_label": "Handle", + "handle_placeholder": "alice.npmx.social", + "connect": "Connect", + "create_account": "Create a new account", + "connect_bluesky": "Connect with Bluesky", + "what_is_atmosphere": "What is an Atmosphere account?", + "atmosphere_explanation": "{npmx} uses the {atproto} to power many of its social features, allowing users to own their data and use one account for all compatible applications. Once you create an account, you can use other apps like {bluesky} and {tangled} with the same account.", + "default_input_error": "Please enter a valid handle, DID, or a full PDS URL", + "profile": "Profile" + } + }, + "header": { + "home": "npmx home", + "packages": "packages", + "packages_dropdown": { + "title": "Your Packages", + "loading": "Loading...", + "error": "Failed to load packages", + "empty": "No packages found", + "view_all": "View all" + }, + "orgs": "orgs", + "orgs_dropdown": { + "title": "Your Organizations", + "loading": "Loading...", + "error": "Failed to load organizations", + "empty": "No organizations found", + "view_all": "View all" + } + }, + "compare": { + "packages": { + "title": "vergelijk pakketten", + "tagline": "vergelijk npm pakketten naast elkaar om u te helpen bij het kiezen van de juiste.", + "meta_title": "Vergelijk {packages} - npmx", + "meta_title_empty": "Vergelijk pakketten - npmx", + "meta_description": "Vergelijking van {packages} naast elkaar", + "meta_description_empty": "Vergelijk npm pakketten naast elkaar", + "section_packages": "Pakketten", + "section_facets": "Eigenschappen", + "section_comparison": "Vergelijking", + "copy_as_markdown": "kopieer tabel", + "loading": "Pakketten informatie laden...", + "error": "Failed to load package data. Please try again.", + "empty_title": "Selecteer pakketten om te vergelijken", + "empty_description": "Zoek en voeg ten minste 2 bovenstaande pakketten toe om een vergelijking van hun statistieken naast elkaar te zien." + }, + "selector": { + "search_label": "Zoek voor pakketten", + "search_first": "Zoek voor een pakket...", + "search_add": "Voeg nog een pakket toe...", + "searching": "Zoeken...", + "remove_package": "Remove {package}", + "packages_selected": "{count}/{max} pakketten geselecteerd.", + "add_hint": "Voeg tenminste 2 pakketten toe om te vergelijken" + }, + "no_dependency": { + "label": "(Geen afhankelijkheid)", + "typeahead_title": "Wat zou James doen?", + "typeahead_description": "Vergelijk zonder het gebruiken van een afhankelijkheid! e18e goedgekeurd.", + "tooltip_title": "You might not need a dependency", + "tooltip_description": "Compare against not using a dependency! The {link} maintains a list of packages that can be replaced with native APIs or simpler alternatives.", + "e18e_community": "e18e community", + "add_column": "Voeg geen pakket toe kolom toe aan vergelijking" + }, + "facets": { + "group_label": "Comparison facets", + "all": "alles", + "none": "geen", + "coming_soon": "Coming soon", + "select_all": "Selecteer alle eigenschappen", + "deselect_all": "Deselecteer alle eigenschappen", + "select_category": "Select all {category} facets", + "deselect_category": "Deselect all {category} facets", + "binary_only_tooltip": "This package exposes binaries and no exports", + "categories": { + "performance": "Performance", + "health": "Health", + "compatibility": "Compatibility", + "security": "Security & Compliance" + }, + "items": { + "packageSize": { + "label": "Package Size", + "description": "Size of the package itself (unpacked)" + }, + "installSize": { + "label": "Install Size", + "description": "Total install size including all dependencies" + }, + "dependencies": { + "label": "Direct Deps", + "description": "Number of direct dependencies" + }, + "totalDependencies": { + "label": "Total Deps", + "description": "Total number of dependencies including transitive" + }, + "downloads": { + "label": "Downloads/wk", + "description": "Weekly download count" + }, + "totalLikes": { + "label": "Likes", + "description": "Number of likes" + }, + "lastUpdated": { + "label": "Published", + "description": "When this version was published" + }, + "deprecated": { + "label": "Deprecated?", + "description": "Whether the package is deprecated" + }, + "engines": { + "label": "Engines", + "description": "Node.js version requirements" + }, + "types": { + "label": "Types", + "description": "TypeScript type definitions" + }, + "moduleFormat": { + "label": "Module Format", + "description": "ESM/CJS support" + }, + "license": { + "label": "License", + "description": "Package license" + }, + "vulnerabilities": { + "label": "Vulnerabilities", + "description": "Known security vulnerabilities" + } + }, + "values": { + "any": "Any", + "none": "None", + "unknown": "Unknown", + "deprecated": "Deprecated", + "not_deprecated": "No", + "types_included": "Included", + "types_none": "None", + "vulnerabilities_summary": "{count} ({critical}C/{high}H)", + "up_to_you": "Up to you!" + }, + "trends": { + "title": "Trends vergelijken" + } + }, + "file_changes": "File Changes", + "files_count": "{count} file | {count} files", + "lines_hidden": "{count} line hidden | {count} lines hidden", + "file_too_large": "File too large to compare", + "file_size_warning": "{size} exceeds the 250KB limit for comparison", + "compare_versions": "diff", + "compare_versions_title": "Compare with latest version", + "summary": "Summary", + "deps_count": "{count} dep | {count} deps", + "dependencies": "Dependencies", + "dev_dependencies": "Dev Dependencies", + "peer_dependencies": "Peer Dependencies", + "optional_dependencies": "Optional Dependencies", + "no_dependency_changes": "No dependency changes", + "file_filter_option": { + "all": "All ({count})", + "added": "Added ({count})", + "removed": "Removed ({count})", + "modified": "Modified ({count})" + }, + "search_files_placeholder": "Search files...", + "no_files_all": "No files", + "no_files_search": "No files matching \"{query}\"", + "no_files_filtered": "No {filter} files", + "filter": { + "added": "added", + "removed": "removed", + "modified": "modified" + }, + "files_button": "Files", + "select_file_prompt": "Select a file from the sidebar to view its diff", + "close_files_panel": "Close files panel", + "filter_files_label": "Filter files by change type" + }, + "pds": { + "title": "npmx.social", + "meta_description": "The official AT Protocol Personal Data Server (PDS) for the npmx community.", + "join": { + "title": "Join the Community", + "description": "Whether you are creating your first account on the atmosphere or migrating an existing one, you belong here. You can migrate your current account without losing your handle, your posts, or your followers.", + "migrate": "Migrate with PDS MOOver" + }, + "server": { + "title": "Server Details", + "location_label": "Location:", + "location_value": "Nuremberg, Germany", + "infrastructure_label": "Infrastructure:", + "infrastructure_value": "Hosted on Hetzner", + "privacy_label": "Privacy:", + "privacy_value": "Subject to strict EU Data Protection laws", + "learn_more": "Learn how npmx uses the Atmosphere" + }, + "community": { + "title": "Who is here", + "description": "Some of the {count} accounts that are already calling npmx.social home:", + "loading": "Loading PDS community...", + "error": "Failed to load PDS community.", + "empty": "No community members to display.", + "view_profile": "View {handle}'s profile", + "new_accounts": "...plus {count} more that are new to the atmosphere" + } + }, + "privacy_policy": { + "title": "privacy beleid", + "last_updated": "Last updated: {date}", + "welcome": "Welcome to {app}. We are committed to protecting your privacy. This policy explains what data we collect, how we use it, and your rights regarding your information.", + "cookies": { + "what_are": { + "title": "What are cookies?", + "p1": "Cookies are small text files stored on your device when you visit a website. Their purpose is to enhance your browsing experience by remembering certain preferences and settings." + }, + "types": { + "title": "What cookies do we use?", + "p1": "We only use {bold} for purposes strictly necessary for the site's functionality. We do not use third-party or advertising cookies.", + "bold": "essential technical cookies", + "li1": "{li11}{separator} {li12}", + "li2": "{li21}{separator} {li22}", + "separator": ":", + "cookie_vdpl": "__vdpl", + "cookie_vdpl_desc": "This cookie is used by our hosting provider (Vercel) for skew protection. It ensures you fetch assets from the correct deployment version if a new update is released while you are browsing. It does not track you.", + "cookie_h3": "h3", + "cookie_h3_desc": "This is our secure session cookie. It stores the OAuth access token when you connect your Atmosphere account. It is essential for maintaining your authenticated session." + }, + "local_storage": { + "title": "Local storage", + "p1": "In addition to session cookies, we use your browser's {bold} to save your display preferences. This allows us to remember the theme (light/dark) and some other {settings} you have selected, so you don't have to reconfigure them on each visit.", + "bold": "Local Storage", + "p2": "This information is purely functional, stored only on your device, and {bold2}. We use it exclusively to improve your experience on our website.", + "bold2": "contains no personal data nor is it used to track you", + "settings": "settings" + }, + "management": { + "title": "Managing cookies", + "p1": "You can configure your browser to accept, reject, or delete cookies according to your preferences. However, please note that {bold}.", + "bold": "rejecting essential cookies may prevent full access to the application", + "p2": "Below are links with instructions for cookie management in the most commonly used browsers:", + "chrome": "Google Chrome (opens in a new window)", + "firefox": "Mozilla Firefox (opens in a new window)", + "edge": "Microsoft Edge (opens in a new window)" + } + }, + "analytics": { + "title": "Analytics", + "p1": "We use {bold} to understand how visitors use our website. This helps us improve the user experience and identify issues.", + "bold": "Vercel Web Analytics", + "p2": "Vercel Analytics is designed with privacy in mind:", + "li1": "It does not use cookies", + "li2": "It does not collect personal identifiers", + "li3": "It does not track users across websites", + "li4": "All data is aggregated and anonymised", + "p3": "The only information collected includes: page URLs, referrer, country/region, device type, browser, and operating system. This data cannot be used to identify individual users." + }, + "authenticated": { + "title": "Authenticated users", + "p1": "When you connect your {bold} account to npmx, we store your OAuth access token in a secure, HTTP-only session cookie. This token is used solely to authenticate requests on your behalf.", + "bold": "Atmosphere", + "p2": "We do not store your credentials, and we do not access any data beyond what is necessary to provide the features you use. You can disconnect your account at any time from the {settings} page.", + "settings": "settings" + }, + "data_retention": { + "title": "Data retention", + "p1": "Session cookies are automatically deleted when you close your browser or after a period of inactivity. Local storage preferences remain on your device until you clear your browser data. Analytics data is retained in aggregate form and cannot be linked to individual users." + }, + "your_rights": { + "title": "Your rights", + "p1": "You have the right to:", + "li1": "Access information about what data we collect", + "li2": "Clear your local storage and cookies at any time", + "li3": "Disconnect your authenticated session", + "li4": "Request information about our data practices", + "p2": "Since we do not collect personal data, there is typically no personal information to delete or export." + }, + "contact": { + "title": "Contact us", + "p1": "For any questions or concerns about this privacy policy, you can contact us by opening an issue on our {link}.", + "link": "GitHub repository" + }, + "changes": { + "title": "Changes to this policy", + "p1": "We may update this privacy policy from time to time. Any changes will be published on this page with an updated revision date." + } + }, + "a11y": { + "title": "accessibility", + "footer_title": "toegankelijkheid", + "welcome": "We want {app} to be usable by as many people as possible.", + "approach": { + "title": "Our approach", + "p1": "We try to follow the Web Content Accessibility Guidelines (WCAG) 2.2 and use them as a reference when building features. We don't claim full conformance with any level of WCAG — accessibility is a continual process and there is always more work to do.", + "p2": "This site is an {about}. Accessibility improvements are made incrementally as part of our regular development.", + "about_link": "open-source, community-driven project" + }, + "measures": { + "title": "What we do", + "p1": "Some of the things we aim to do across the site:", + "li1": "Use semantic HTML and ARIA attributes where appropriate.", + "li2": "Use relative text sizes so you can adjust them in your browser.", + "li3": "Support keyboard navigation throughout the interface.", + "li4": "Respect the prefers-reduced-motion and prefers-color-scheme media queries.", + "li5": "Design with sufficient color contrast in mind.", + "li6": "Ensure essential content is available without JavaScript, though some interactive features require it." + }, + "limitations": { + "title": "Known limitations", + "p1": "Some parts of the site — particularly third-party content like package READMEs — may not meet accessibility standards. We are working to improve these areas over time." + }, + "contact": { + "title": "Feedback", + "p1": "If you encounter an accessibility barrier on {app}, please let us know by opening an issue on our {link}. We take these reports seriously and will do our best to address them.", + "link": "GitHub repository" + } + }, + "vacations": { + "title": "on vacation", + "meta_description": "The npmx team was recharging. Discord reopened after a week.", + "heading": "recharging", + "subtitle": "we were building npmx at a pace that was costing {some} of us sleep. we didn't want that to be the norm! so we took a week off. together.", + "illustration_alt": "a single row of cosy icons", + "poke_log": "Poke the campfire", + "what": { + "title": "what happened", + "p1": "discord was closed {dates}.", + "dates": "February 14 – 21", + "p2": "all invite links were gone and channels were locked – except {garden}, which stayed open for folks who wanted to keep hanging out.", + "garden": "#garden" + }, + "meantime": { + "title": "in the meantime", + "p1": "{site} and {repo} stayed open – people still dug in, filed some issues, opened a few PRs, but mainly everyone spent time somewhere near a cosy fireplace.", + "repo_link": "the repo" + }, + "return": { + "title": "we came back!", + "p1": "we came back recharged and ready for the final push to March 3rd. {social} for updates.", + "social_link": "follow us on Bluesky" + }, + "stats": { + "contributors": "Contributors", + "commits": "Commits", + "pr": "PRs Merged", + "subtitle": { + "some": "some", + "all": "all" + } + } + } +} From 2c9f298553e917b9be168d758abd7a227799d31a Mon Sep 17 00:00:00 2001 From: WilcoSp Date: Tue, 10 Mar 2026 13:42:48 +0100 Subject: [PATCH 02/12] translated the comparison page --- i18n/locales/nl-BE.json | 3 - i18n/locales/nl.json | 2678 +++++++++++++++++++-------------------- 2 files changed, 1330 insertions(+), 1351 deletions(-) delete mode 100644 i18n/locales/nl-BE.json diff --git a/i18n/locales/nl-BE.json b/i18n/locales/nl-BE.json deleted file mode 100644 index 0618235d76..0000000000 --- a/i18n/locales/nl-BE.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "$schema": "../schema.json" -} diff --git a/i18n/locales/nl.json b/i18n/locales/nl.json index f5934e68ef..bf952d4287 100644 --- a/i18n/locales/nl.json +++ b/i18n/locales/nl.json @@ -1,1350 +1,1332 @@ { - "$schema": "../schema.json", - "seo": { - "home": { - "title": "npmx - Pakket Browser voor de npm Register", - "description": "een snelle, moderne browser voor de npm register. zoek, blader en ontdek pakketten met een modern uiterlijk." - } - }, - "built_at": "gebouwd op {0}", - "alt_logo": "npmx logo", - "tagline": "een snelle, moderne browser voor de npm register", - "non_affiliation_disclaimer": "niet affiliëerd met npm, Inc.", - "trademark_disclaimer": "npm is een geregisteerd trademark van npm, Inc. Deze website is niet affiliëerd met npm, Inc.", - "footer": { - "about": "over", - "blog": "blog", - "docs": "docs", - "source": "bron", - "social": "social", - "chat": "chat", - "builders_chat": "bouwers", - "keyboard_shortcuts": "sneltoetsen" - }, - "shortcuts": { - "section": { - "global": "Globaal", - "search": "Zoeken", - "package": "Pakket" - }, - "focus_search": "", - "show_kbd_hints": "", - "settings": "Open instellingen", - "compare": "Open compare", - "compare_from_package": "Open compare (prefilled with current package)", - "navigate_results": "Navigate results", - "go_to_result": "Go to result", - "open_code_view": "Open code view", - "open_docs": "Open docs", - "disable_shortcuts": "You can disable keyboard shortcuts in {settings}." - }, - "search": { - "label": "Zoek npm pakketten", - "placeholder": "zoek pakketten...", - "button": "zoek", - "searching": "Searching...", - "found_packages": "No packages found | Found 1 package | Found {count} packages", - "found_packages_sorted": "No results found | Sorting top {count} result | Sorting top {count} results", - "updating": "(updating...)", - "no_results": "No packages found for \"{query}\"", - "rate_limited": "Hit npm rate limit, try again in a moment", - "title": "search", - "title_search": "search: {search}", - "title_packages": "search packages", - "meta_description": "Search results for '{search}'", - "meta_description_packages": "Search npm packages", - "not_taken": "{name} is not taken", - "claim_prompt": "Claim this package name on npm", - "claim_button": "Claim \"{name}\"", - "want_to_claim": "Want to claim this package name?", - "start_typing": "Start typing to search packages", - "algolia_disclaimer": "Powered by Algolia", - "exact_match": "exact", - "suggestion": { - "user": "user", - "org": "org", - "view_user_packages": "View packages by this user", - "view_org_packages": "View packages by this organization" - }, - "instant_search": "Instant search", - "instant_search_on": "on", - "instant_search_off": "off", - "instant_search_turn_on": "turn on", - "instant_search_turn_off": "turn off", - "instant_search_advisory": "{label} {state} — {action}" - }, - "nav": { - "main_navigation": "Main", - "popular_packages": "Populaire pakketten", - "settings": "settings", - "compare": "compare", - "back": "terug", - "menu": "Menu", - "mobile_menu": "Navigation menu", - "open_menu": "Open menu", - "links": "Links", - "tap_to_search": "Tap to search" - }, - "blog": { - "title": "Blog", - "heading": "blog", - "meta_description": "Insights and updates from the npmx community", - "author": { - "view_profile": "View {name}'s profile on Bluesky" - }, - "draft_badge": "Draft", - "draft_banner": "This is an unpublished draft. It may be incomplete or contain inaccuracies.", - "atproto": { - "view_on_bluesky": "View on Bluesky", - "reply_on_bluesky": "Reply on Bluesky", - "likes_on_bluesky": "Likes on Bluesky", - "like_or_reply_on_bluesky": "Like this post or add your comment on Bluesky", - "no_comments_yet": "No comments yet.", - "could_not_load_comments": "Could not load comments.", - "comments": "Comments", - "loading_comments": "Loading comments...", - "updating": "Updating...", - "reply_count": "{count} reply | {count} replies", - "like_count": "{count} like | {count} likes", - "repost_count": "{count} repost | {count} reposts", - "more_replies": "{count} more reply... | {count} more replies..." - } - }, - "settings": { - "title": "settings", - "tagline": "customize your npmx experience", - "meta_description": "Customize your npmx.dev experience with theme, language, and display preferences.", - "sections": { - "appearance": "Appearance", - "display": "Display", - "search": "Search features", - "language": "Language", - "keyboard_shortcuts": "Keyboard shortcuts" - }, - "data_source": { - "label": "Data source", - "description": "Choose where npmx gets search data. Individual package pages always use the npm registry directly.", - "npm": "npm Registry", - "npm_description": "Fetches search, org and user listings directly from the official npm registry. Authoritative, but can be slower.", - "algolia": "Algolia", - "algolia_description": "Uses Algolia for faster search, org and user pages." - }, - "instant_search": "Instant search", - "instant_search_description": "Navigates to the search page and updates the results as you type.", - "relative_dates": "Relative dates", - "include_types": "Include {'@'}types in install", - "include_types_description": "Add {'@'}types package to install commands for untyped packages", - "hide_platform_packages": "Hide platform-specific packages in search", - "hide_platform_packages_description": "Hide native binary packages like {'@'}esbuild/linux-x64 from results", - "theme": "Theme", - "theme_light": "Light", - "theme_dark": "Dark", - "theme_system": "System", - "language": "Language", - "help_translate": "Help translate npmx", - "accent_colors": "Accent colors", - "clear_accent": "Clear accent color", - "translation_progress": "Translation progress", - "background_themes": "Background shade", - "keyboard_shortcuts_enabled": "Enable keyboard shortcuts", - "keyboard_shortcuts_enabled_description": "Keyboard shortcuts can be disabled if they conflict with other browser or system shortcuts" - }, - "i18n": { - "missing_keys": "{count} missing translation | {count} missing translations", - "copy_keys": "Copy keys", - "show_more_keys": "Show {count} more...", - "contribute_hint": "Help improve this translation by adding the missing keys.", - "edit_on_github": "Edit on GitHub", - "view_guide": "Translation guide" - }, - "error": { - "401": "Unauthorized", - "404": "Page not found", - "500": "Internal server error", - "503": "Service unavailable", - "default": "Something went wrong" - }, - "common": { - "loading": "Loading...", - "loading_more": "Loading more...", - "loading_packages": "Loading packages...", - "end_of_results": "End of results", - "try_again": "Try again", - "close": "Close", - "or": "or", - "retry": "Retry", - "copy": "copy", - "copied": "copied!", - "skip_link": "Skip to main content", - "warnings": "Warnings:", - "go_back_home": "Go back home", - "view_on_npm": "view on npm", - "per_week": "/ week", - "vanity_downloads_hint": "Vanity number: no packages displayed | Vanity number: for the displayed package | Vanity number: Sum of {count} displayed packages", - "sort": { - "name": "name", - "role": "role", - "members": "members" - }, - "scroll_to_top": "Scroll to top", - "cancel": "Cancel", - "save": "Save", - "edit": "Edit", - "error": "Error" - }, - "profile": { - "display_name": "Display Name", - "description": "Description", - "no_description": "No description", - "website": "Website", - "website_placeholder": "https://example.com", - "likes": "Likes", - "seo_title": "{handle} - npmx", - "seo_description": "npmx profile by {handle}", - "not_found": "Profile Not Found", - "not_found_message": "The profile for {handle} could not be found.", - "invite": { - "message": "It doesn't look like they're using npmx yet. Want to tell them about it?", - "share_button": "Share on Bluesky", - "compose_text": "Hey {'@'}{handle}! Have you checked out npmx.dev yet? It's a browser for the npm registry that's fast, modern, and open-source.\nhttps://npmx.dev" - } - }, - "package": { - "not_found": "Package Not Found", - "not_found_message": "The package could not be found.", - "no_description": "No description provided", - "not_latest": "(not latest)", - "verified_provenance": "Verified provenance", - "view_permalink": "View permalink for this version", - "navigation": "Package", - "copy_name": "Copy package name", - "copy_version": "Copy package version", - "deprecation": { - "package": "This package has been deprecated.", - "version": "This version has been deprecated.", - "no_reason": "No reason provided" - }, - "size_increase": { - "title_size": "Significant size increase since v{version}", - "title_deps": "Significant dependency count increase since v{version}", - "title_both": "Significant size and dependency increase since v{version}", - "size": "Install size increased by {percent} ({size} larger)", - "deps": "{count} more dependencies" - }, - "replacement": { - "title": "U heeft waarschijnlijk dit niet nodig", - "native": "This can be replaced with {replacement}, available since Node {nodeVersion}.", - "simple": "De {community} heeft dit pakket als overbodig gemarkeerd, met het advies: {replacement}.", - "documented": "De {community} heeft aangegeven dat er voor dit pakket beter presterende alternatieven zijn.", - "none": "This package has been flagged as no longer needed, and its functionality is likely available natively in all engines.", - "learn_more": "Leer meer", - "learn_more_above": "Learn more above.", - "mdn": "MDN", - "community": "gemeenschap", - "consider_no_dep": "+ Kies zonder te gaan?" - }, - "stats": { - "license": "License", - "deps": "Deps", - "install_size": "Install Size", - "vulns": "Vulns", - "published": "Published", - "published_tooltip": "Date {package}{'@'}{version} was published", - "view_dependency_graph": "View dependency graph", - "inspect_dependency_tree": "Inspect dependency tree", - "size_tooltip": { - "unpacked": "{size} unpacked size (this package)", - "total": "{size} total unpacked size (including {count} dependency for linux-x64) | {size} total unpacked size (including all {count} dependencies for linux-x64)" - } - }, - "skills": { - "title": "Agent Skills", - "skills_available": "{count} skill available | {count} skills available", - "compatible_with": "Compatible with {tool}", - "install": "Install", - "installation_method": "Installation method", - "learn_more": "Learn more", - "available_skills": "Available Skills", - "click_to_expand": "Click to expand", - "no_description": "No description", - "file_counts": { - "scripts": "{count} script | {count} scripts", - "refs": "{count} ref | {count} refs", - "assets": "{count} asset | {count} assets" - }, - "view_source": "View source" - }, - "links": { - "repo": "repo", - "homepage": "homepage", - "issues": "issues", - "jsr": "jsr", - "code": "code", - "docs": "docs", - "fund": "fund", - "compare": "compare" - }, - "likes": { - "like": "Like this package", - "unlike": "Unlike this package" - }, - "docs": { - "not_available": "Docs not available", - "not_available_detail": "We could not generate docs for this version." - }, - "get_started": { - "title": "Get started", - "pm_label": "Package manager", - "copy_command": "Copy install command", - "copy_dev_command": "Copy dev install command", - "dev_dependency_hint": "Usually installed as a dev dependency", - "view_types": "View {package}" - }, - "create": { - "title": "Create new project", - "copy_command": "Copy create command", - "view": "{packageName} has the same maintainer. Click for more details." - }, - "run": { - "title": "Run", - "locally": "Run locally" - }, - "readme": { - "title": "Readme", - "no_readme": "No README available.", - "view_on_github": "View on GitHub", - "toc_title": "Outline", - "callout": { - "note": "Note", - "tip": "Tip", - "important": "Important", - "warning": "Warning", - "caution": "Caution" - }, - "copy_as_markdown": "Copy README as Markdown" - }, - "provenance_section": { - "title": "Provenance", - "built_and_signed_on": "Built and signed on {provider}", - "view_build_summary": "View build summary", - "source_commit": "Source Commit", - "build_file": "Build File", - "public_ledger": "Public Ledger", - "transparency_log_entry": "Transparency log entry", - "view_more_details": "View more details", - "error_loading": "Failed to load provenance details" - }, - "security_downgrade": { - "title": "Trust downgrade", - "description_to_none_provenance": "This version was published without {provenance}.", - "description_to_none_trustedPublisher": "This version was published without {trustedPublishing}.", - "description_to_provenance_trustedPublisher": "This version uses {provenance} but not {trustedPublishing}.", - "fallback_install_provenance": "Install commands are pinned to {version}, the last version with provenance.", - "fallback_install_trustedPublisher": "Install commands are pinned to {version}, the last version with trusted publishing.", - "provenance_link_text": "provenance", - "trusted_publishing_link_text": "trusted publishing" - }, - "keywords_title": "Keywords", - "compatibility": "Compatibility", - "card": { - "publisher": "Publisher", - "published": "Published", - "weekly_downloads": "Weekly downloads", - "keywords": "Keywords", - "license": "License" - }, - "versions": { - "title": "Versions", - "collapse": "Collapse {tag}", - "expand": "Expand {tag}", - "collapse_other": "Collapse other versions", - "expand_other": "Expand other versions", - "collapse_major": "Collapse major {major}", - "expand_major": "Expand major {major}", - "other_versions": "Other versions", - "more_tagged": "{count} more tagged", - "all_covered": "All versions are covered by tags above", - "deprecated_title": "{version} (deprecated)", - "view_all": "View {count} version | View all {count} versions", - "distribution_title": "Semver Group", - "distribution_modal_title": "Versions", - "distribution_range_date_same_year": "from {from} to {to}, {endYear}", - "distribution_range_date_multiple_years": "from {from}, {startYear} to {to}, {endYear}", - "grouping_major": "Major", - "grouping_minor": "Minor", - "grouping_versions_title": "Versions", - "grouping_versions_all": "All", - "grouping_versions_only_recent": "Only recent", - "grouping_usage_title": "Usage", - "grouping_usage_all": "All", - "grouping_usage_low": "Low", - "recent_versions_only_tooltip": "Show only versions published within the last year.", - "show_low_usage_tooltip": "Include version groups with less than 1% of total downloads.", - "y_axis_label": "Downloads", - "filter_placeholder": "Filter by semver (e.g. ^3.0.0)", - "filter_invalid": "Invalid semver range", - "filter_help": "Semver range filter help", - "filter_tooltip": "Filter versions using a {link}. For example, ^3.0.0 shows all 3.x versions.", - "filter_tooltip_link": "semver range", - "no_matches": "No versions match this range", - "copy_alt": { - "per_version_analysis": "{version} version was downloaded {downloads} times", - "general_description": "Bar chart showing per-version downloads for {versions_count} {semver_grouping_mode} versions of the {package_name} package, {date_range_label} from the {first_version} version to the {last_version} version. The most downloaded version is {max_downloaded_version} with {max_version_downloads} downloads. {per_version_analysis}. {watermark}." - } - }, - "dependencies": { - "title": "Dependency ({count}) | Dependencies ({count})", - "list_label": "Package dependencies", - "show_all": "show {count} dep | show all {count} deps", - "optional": "optional", - "view_vulnerabilities": "View vulnerabilities", - "outdated_major": "{count} major version behind (latest: {latest}) | {count} major versions behind (latest: {latest})", - "outdated_minor": "{count} minor version behind (latest: {latest}) | {count} minor versions behind (latest: {latest})", - "outdated_patch": "Patch update available (latest: {latest})", - "has_replacement": "This dependency has suggested replacements" - }, - "peer_dependencies": { - "title": "Peer Dependency ({count}) | Peer Dependencies ({count})", - "list_label": "Package peer dependencies", - "show_all": "show {count} peer dep | show all {count} peer deps" - }, - "optional_dependencies": { - "title": "Optional Dependency ({count}) | Optional Dependencies ({count})", - "list_label": "Package optional dependencies", - "show_all": "show {count} optional dep | show all {count} optional deps" - }, - "maintainers": { - "title": "Maintainers", - "list_label": "Package maintainers", - "you": "(you)", - "via": "via {teams}", - "remove_owner": "Remove {name} as owner", - "username_to_add": "Username to add as owner", - "username_placeholder": "username...", - "add_button": "add", - "cancel_add": "Cancel adding owner", - "add_owner": "+ Add owner", - "show_more": "(show {count} more)", - "show_less": "(show fewer)" - }, - "trends": { - "granularity": "Granularity", - "granularity_daily": "Daily", - "granularity_weekly": "Weekly", - "granularity_monthly": "Monthly", - "granularity_yearly": "Yearly", - "start_date": "Start", - "end_date": "End", - "loading": "Loading...", - "date_range": "{start} to {end}", - "date_range_multiline": "{start}\nto {end}", - "download_file": "Download {fileType}", - "toggle_annotator": "Toggle annotator", - "toggle_stack_mode": "Toggle stack mode", - "open_options": "Open options", - "close_options": "Close options", - "legend_estimation": "Estimation", - "no_data": "No data available", - "y_axis_label": "{granularity} {facet}", - "facet": "Facet", - "title": "Trends", - "contributors_skip": "Not shown in Contributors (no GitHub repo):", - "items": { - "downloads": "Downloads", - "likes": "Likes", - "contributors": "Contributors" - }, - "data_correction": "Data correction", - "average_window": "Average window", - "smoothing": "Smoothing", - "known_anomalies": "Known anomalies", - "known_anomalies_description": "Interpolates over known download spikes caused by bots or CI issues.", - "known_anomalies_ranges": "Anomaly ranges", - "known_anomalies_range": "From {start} to {end}", - "known_anomalies_range_named": "{packageName}: from {start} to {end}", - "known_anomalies_none": "No known anomalies for this package. | No known anomalies for these packages.", - "known_anomalies_contribute": "Contribute anomaly data", - "apply_correction": "Apply correction", - "copy_alt": { - "trend_none": "mostly flat", - "trend_strong": "strong", - "trend_weak": "weak", - "trend_undefined": "undefined (insufficient data)", - "button_label": "Copy alt text", - "watermark": "At the bottom, a watermark reads \"./npmx a fast, modern browser for the npm registry\"", - "analysis": "{package_name} starts at {start_value} and ends at {end_value}, showing a {trend} trend with a slope of {downloads_slope} downloads per time interval", - "estimation": "The final value is an estimate based on partial data for the current period.", - "estimations": "The final values are estimates based on partial data for the current period.", - "compare": "Package download comparison line chart for: {packages}.", - "single_package": "Downloads line chart for the {package} package.", - "general_description": "The Y axis represents the number of downloads. The X axis represents the date range, from {start_date} to {end_date}, with a {granularity} time period.{estimation_notice} {packages_analysis}. {watermark}." - } - }, - "downloads": { - "title": "Weekly Downloads", - "community_distribution": "View community adoption distribution", - "subtitle": "Across all versions" - }, - "install_scripts": { - "title": "Install Scripts", - "script_label": "(script)", - "npx_packages": "{count} npx package | {count} npx packages", - "currently": "currently {version}" - }, - "playgrounds": { - "title": "Try it out", - "choose": "choose playground" - }, - "metrics": { - "esm": "ES Modules supported", - "cjs": "CommonJS supported", - "no_esm": "No ES Modules support", - "types_label": "Types", - "types_included": "Types included", - "types_available": "Types available via {package}", - "no_types": "No TypeScript types" - }, - "license": { - "view_spdx": "View license text on SPDX", - "none": "None" - }, - "vulnerabilities": { - "tree_found": "{vulns} vulnerability in {packages}/{total} packages | {vulns} vulnerabilities in {packages}/{total} packages", - "show_all_packages": "show {count} affected package | show all {count} affected packages", - "path": "path", - "more": "+{count} more", - "packages_failed": "{count} package could not be checked | {count} packages could not be checked", - "scan_failed": "Could not scan for vulnerabilities", - "severity": { - "critical": "critical", - "high": "high", - "moderate": "moderate", - "low": "low" - }, - "fixed_in_title": "Fixed in version {version}" - }, - "deprecated": { - "label": "Deprecated", - "tree_found": "{count} deprecated dependency | {count} deprecated dependencies", - "show_all": "show {count} deprecated package | show all {count} deprecated packages" - }, - "access": { - "title": "Team Access", - "refresh": "Refresh team access", - "list_label": "Team access list", - "owner": "owner", - "rw": "rw", - "ro": "ro", - "revoke_access": "Revoke {name} access", - "no_access": "No team access configured", - "select_team_label": "Select team", - "loading_teams": "Loading teams...", - "select_team": "Select team", - "permission_label": "Permission level", - "permission": { - "read_only": "read-only", - "read_write": "read-write" - }, - "grant_button": "grant", - "cancel_grant": "Cancel granting access", - "grant_access": "+ Grant team access" - }, - "list": { - "filter_label": "Filter packages", - "filter_placeholder": "Filter packages...", - "sort_label": "Sort packages", - "showing_count": "Showing {filtered} of {total} packages" - }, - "skeleton": { - "loading": "Loading package details", - "maintainers": "Maintainers", - "keywords": "Keywords", - "versions": "Versions", - "dependencies": "Dependencies" - }, - "sort": { - "downloads": "Most downloaded", - "published": "Recently published", - "name_asc": "Name (A-Z)", - "name_desc": "Name (Z-A)" - }, - "size": { - "b": "{size} B", - "kb": "{size} kB", - "mb": "{size} MB" - } - }, - "connector": { - "modal": { - "title": "Local Connector", - "connected": "Connected", - "connected_as_user": "Connected as ~{user}", - "connected_hint": "You can now manage packages and organizations from the web UI.", - "disconnect": "Disconnect", - "run_hint": "Run the connector on your machine to enable admin features.", - "copy_command": "Copy command", - "copied": "Copied", - "paste_token": "Then paste the token below to connect:", - "token_label": "Token", - "token_placeholder": "paste token here...", - "advanced": "Advanced options", - "port_label": "Port", - "warning": "WARNING", - "warning_text": "This allows npmx to access your npm CLI. Only connect to sites you trust.", - "connect": "Connect", - "connecting": "Connecting...", - "auto_open_url": "Automatically open auth page" - } - }, - "operations": { - "queue": { - "title": "Operations Queue", - "clear_all": "clear all", - "refresh": "Refresh operations", - "empty": "No operations queued", - "empty_hint": "Add operations from package or org pages", - "active_label": "Active operations", - "otp_required": "OTP required", - "otp_prompt": "Enter OTP to continue", - "otp_placeholder": "Enter OTP code...", - "otp_label": "One-time password", - "retry_otp": "Retry with OTP", - "retry_web_auth": "Retry with web auth", - "retrying": "Retrying...", - "open_web_auth": "Open web auth link", - "approve_operation": "Approve operation", - "remove_operation": "Remove operation", - "approve_all": "Approve All", - "execute": "Execute", - "executing": "Executing...", - "log": "Log", - "log_label": "Completed operations log", - "remove_from_log": "Remove from log" - } - }, - "org": { - "teams": { - "title": "Teams", - "refresh": "Refresh teams", - "filter_label": "Filter teams", - "filter_placeholder": "Filter teams...", - "sort_by": "Sort by", - "loading": "Loading teams...", - "no_teams": "No teams found", - "list_label": "Organization teams", - "delete_team": "Delete team {name}", - "member_count": "{count} member | {count} members", - "members_of": "Members of {team}", - "no_members": "No members", - "remove_user": "Remove {user} from team", - "username_to_add": "Username to add to {team}", - "username_placeholder": "username...", - "add_button": "add", - "cancel_add_user": "Cancel adding user", - "add_member": "+ Add member", - "team_name_label": "Team name", - "team_name_placeholder": "team-name...", - "create_button": "create", - "no_match": "No teams match \"{query}\"", - "cancel_create": "Cancel creating team", - "create_team": "+ Create team" - }, - "members": { - "title": "Members", - "refresh": "Refresh members", - "filter_label": "Filter members", - "filter_placeholder": "Filter members...", - "filter_by_role": "Filter by role", - "filter_by_team": "Filter by team", - "all_teams": "all teams", - "sort_by": "Sort by", - "loading": "Loading members...", - "no_members": "No members found", - "list_label": "Organization members", - "change_role_for": "Change role for {name}", - "remove_from_org": "Remove {name} from org", - "view_team": "View {team} team", - "no_match": "No members match your filters", - "username_label": "Username", - "username_placeholder": "username...", - "role_label": "Role", - "role": { - "all": "all", - "developer": "developer", - "admin": "admin", - "owner": "owner" - }, - "team_label": "Team", - "no_team": "no team", - "add_button": "add", - "cancel_add": "Cancel adding member", - "add_member": "+ Add member" - }, - "public_packages": "{count} public package | {count} public packages", - "page": { - "packages_title": "Packages", - "members_tab": "Members", - "teams_tab": "Teams", - "no_packages": "No public packages found for", - "no_packages_hint": "This organization may not exist or has no public packages.", - "failed_to_load": "Failed to load organization packages", - "no_match": "No packages match \"{query}\"", - "not_found": "Organization not found", - "not_found_message": "The organization \"{'@'}{name}\" does not exist on npm" - } - }, - "user": { - "combobox": { - "add_to_org_hint": "(will also add to org)", - "press_enter_to_add": "Press Enter to add {'@'}{username}", - "default_placeholder": "username...", - "suggestions_label": "User suggestions" - }, - "page": { - "packages_title": "Packages", - "no_packages": "No public packages found for", - "no_packages_hint": "This user may not exist or has no public packages.", - "failed_to_load": "Failed to load user packages", - "no_match": "No packages match \"{query}\"", - "filter_placeholder": "Filter {count} package... | Filter {count} packages..." - }, - "orgs_page": { - "title": "Organizations", - "back_to_profile": "Back to profile", - "connect_required": "Connect the local CLI to view your organizations.", - "connect_hint_prefix": "Run", - "connect_hint_suffix": "to get started.", - "own_orgs_only": "You can only view your own organizations.", - "view_your_orgs": "View your organizations", - "loading": "Loading organizations...", - "empty": "No organizations found.", - "empty_hint": "Organizations are detected from your scoped packages.", - "count": "{count} Organization | {count} Organizations", - "packages_count": "{count} package | {count} packages" - } - }, - "claim": { - "modal": { - "title": "Claim Package Name", - "success": "Package claimed!", - "success_detail": "{name}{'@'}0.0.0 has been published to npm.", - "success_hint": "You can now publish new versions to this package using npm publish.", - "view_package": "View Package", - "invalid_name": "Invalid package name:", - "available": "This name is available!", - "taken": "This name is already taken.", - "missing_permission": "You do not have permission to add a package to scope {'@'}{scope}.", - "similar_warning": "Similar packages exist - npm may reject this name:", - "related": "Related packages:", - "scope_warning_title": "Consider using a scoped package instead", - "scope_warning_text": "Unscoped package names are a shared resource. Only claim a name if you intend to publish and maintain a package. For personal or organizational projects, use a scoped name like {'@'}{username}/{name}.", - "connect_required": "Connect to the local connector to claim this package name.", - "connect_button": "Connect to Connector", - "publish_hint": "This will publish a minimal placeholder package.", - "preview_json": "Preview package.json", - "claim_button": "Claim Package Name", - "publishing": "Publishing...", - "checking": "Checking availability...", - "failed_to_check": "Failed to check name availability", - "failed_to_claim": "Failed to claim package" - } - }, - "code": { - "files_label": "Files", - "no_files": "No files in this directory", - "root": "root", - "lines": "{count} line | {count} lines", - "toggle_tree": "Toggle file tree", - "close_tree": "Close file tree", - "copy_link": "Copy link", - "raw": "Raw", - "view_raw": "View raw file", - "file_too_large": "File too large to preview", - "file_size_warning": "{size} exceeds the 500KB limit for syntax highlighting", - "failed_to_load": "Failed to load file", - "unavailable_hint": "The file may be too large or unavailable", - "version_required": "Version is required to browse code", - "go_to_package": "Go to package", - "loading_tree": "Loading file tree...", - "failed_to_load_tree": "Failed to load files for this package version", - "back_to_package": "Back to package", - "table": { - "name": "Name", - "size": "Size" - }, - "markdown_view_mode": { - "preview": "preview", - "code": "code" - }, - "file_path": "File path", - "scroll_to_top": "Scroll to top" - }, - "badges": { - "provenance": { - "verified": "verified", - "verified_title": "Verified provenance", - "verified_via": "Verified: published via {provider}" - }, - "jsr": { - "title": "also available on JSR" - } - }, - "filters": { - "title": "Filters", - "search": "Search", - "search_scope": "Search scope", - "search_placeholder_name": "Filter by package name...", - "search_placeholder_description": "Filter by description...", - "search_placeholder_keywords": "Filter by keywords...", - "search_placeholder_all": "Search all or use name: desc: kw:", - "scope_name": "Name", - "scope_name_description": "Search package names only", - "scope_description": "Description", - "scope_description_description": "Search descriptions only", - "scope_keywords": "Keywords", - "scope_keywords_description": "Search keywords only", - "scope_all": "All", - "scope_all_description": "Search all fields, supports name: desc: kw: operators", - "weekly_downloads": "Weekly downloads", - "updated_within": "Updated within", - "security": "Security", - "keywords": "Keywords", - "more_keywords": "+{count} more", - "clear_all": "Clear all", - "remove_filter": "Remove {label} filter", - "chips": { - "search": "Search", - "downloads": "Downloads", - "keyword": "Keyword", - "security": "Security", - "updated": "Updated" - }, - "download_range": { - "any": "Any", - "lt100": "< 100", - "100_1k": "100 - 1K", - "1k_10k": "1K - 10K", - "10k_100k": "10K - 100K", - "gt100k": "> 100K" - }, - "updated": { - "any": "Any time", - "week": "Past week", - "month": "Past month", - "quarter": "Past 3 months", - "year": "Past year" - }, - "security_options": { - "all": "All packages", - "secure": "Without warnings", - "insecure": "With warnings" - }, - "sort": { - "label": "Sort packages", - "toggle_direction": "Toggle sort direction", - "ascending": "Ascending", - "descending": "Descending", - "relevance": "Relevance", - "downloads_week": "Downloads/wk", - "downloads_day": "Downloads/day", - "downloads_month": "Downloads/mo", - "downloads_year": "Downloads/yr", - "published": "Last Published", - "name": "Name", - "quality": "Quality", - "popularity": "Popularity", - "maintenance": "Maintenance", - "score": "Score" - }, - "columns": { - "title": "Columns", - "show": "Show columns", - "reset": "Reset to defaults", - "coming_soon": "Coming soon", - "name": "Name", - "version": "Version", - "description": "Description", - "downloads": "Downloads/wk", - "published": "Last Published", - "maintainers": "Maintainers", - "keywords": "Keywords", - "quality_score": "Quality score", - "popularity_score": "Popularity score", - "maintenance_score": "Maintenance score", - "combined_score": "Combined score", - "security": "Security" - }, - "view_mode": { - "label": "View mode", - "cards": "Card view", - "table": "Table view" - }, - "pagination": { - "mode_label": "Pagination mode", - "infinite": "Infinite", - "paginated": "Paginated", - "items_per_page": "Items per page", - "per_page": "{count} / page", - "showing": "{start}-{end} of {total}", - "previous": "Previous page", - "next": "Next page", - "nav_label": "Pagination" - }, - "count": { - "showing_filtered": "{filtered} of {count} package | {filtered} of {count} packages", - "showing_all": "{count} package | {count} packages", - "showing_paginated": "{pageSize} of {count} package | {pageSize} of {count} packages" - }, - "table": { - "security_warning": "Security warning", - "secure": "Secure", - "no_packages": "No packages found" - } - }, - "about": { - "title": "About", - "heading": "about", - "meta_description": "npmx is a fast, modern browser for the npm registry. A better UX/DX for exploring npm packages.", - "what_we_are": { - "title": "What we are", - "better_ux_dx": "better UX/DX", - "admin_ui": "admin UI", - "description": "npmx is a {betterUxDx} for the npm package registry and tooling. We provide a fast, modern interface for exploring packages, with features like dark mode, keyboard navigation, code browsing, and connections to alternative registries like {jsr}.", - "admin_description": "We also aim to provide a better {adminUi} for managing your packages, teams, and organizations — all from the browser, powered by your local npm CLI." - }, - "what_we_are_not": { - "title": "What we're not", - "not_package_manager": "Not a package manager.", - "not_registry": "Not a registry.", - "registry_description": "We don't host packages. We're just a better way to browse them.", - "package_managers_exist": "{already} {people} {building} {really} {cool} {package} {managers}.", - "words": { - "already": "There are", - "people": "already", - "building": "people", - "really": "building", - "cool": "really", - "package": "cool", - "managers": "package managers" - } - }, - "sponsors": { - "title": "Sponsors" - }, - "oss_partners": { - "title": "OSS Partners" - }, - "team": { - "title": "Team", - "governance": "Governance", - "role_steward": "steward", - "role_maintainer": "maintainer", - "sponsor": "sponsor", - "sponsor_aria": "Sponsor {name} on GitHub" - }, - "contributors": { - "title": "... and {count} more contributor | ... and {count} more contributors", - "description": "npmx is fully open source, built by an amazing community of contributors. Join us and let's build the npm browsing experience we always wanted, together.", - "loading": "Loading contributors...", - "error": "Failed to load contributors", - "view_profile": "View {name}'s GitHub profile" - }, - "get_involved": { - "title": "Get involved", - "contribute": { - "title": "Contribute", - "description": "Help us build a better npm experience.", - "cta": "View on GitHub" - }, - "community": { - "title": "Join the community", - "description": "Chat, ask questions, and share ideas.", - "cta": "Join Discord" - }, - "builders": { - "title": "Help build npmx", - "description": "Join the builders shaping the future of npmx.", - "cta": "Join Builders Discord" - }, - "follow": { - "title": "Stay updated", - "description": "Find out the latest on npmx.", - "cta": "Follow on Bluesky" - } - } - }, - "account_menu": { - "connect": "connect", - "account": "Account", - "npm_cli": "npm CLI", - "atmosphere": "Atmosphere", - "npm_cli_desc": "Manage packages & orgs", - "atmosphere_desc": "Social features & identity", - "connect_npm_cli": "Connect to npm CLI", - "connect_atmosphere": "Connect to Atmosphere", - "connecting": "Connecting...", - "ops": "{count} op | {count} ops" - }, - "auth": { - "modal": { - "title": "Atmosphere", - "connected_as": "Connected as {'@'}{handle}", - "disconnect": "Disconnect", - "connect_prompt": "Connect with your Atmosphere account", - "handle_label": "Handle", - "handle_placeholder": "alice.npmx.social", - "connect": "Connect", - "create_account": "Create a new account", - "connect_bluesky": "Connect with Bluesky", - "what_is_atmosphere": "What is an Atmosphere account?", - "atmosphere_explanation": "{npmx} uses the {atproto} to power many of its social features, allowing users to own their data and use one account for all compatible applications. Once you create an account, you can use other apps like {bluesky} and {tangled} with the same account.", - "default_input_error": "Please enter a valid handle, DID, or a full PDS URL", - "profile": "Profile" - } - }, - "header": { - "home": "npmx home", - "packages": "packages", - "packages_dropdown": { - "title": "Your Packages", - "loading": "Loading...", - "error": "Failed to load packages", - "empty": "No packages found", - "view_all": "View all" - }, - "orgs": "orgs", - "orgs_dropdown": { - "title": "Your Organizations", - "loading": "Loading...", - "error": "Failed to load organizations", - "empty": "No organizations found", - "view_all": "View all" - } - }, - "compare": { - "packages": { - "title": "vergelijk pakketten", - "tagline": "vergelijk npm pakketten naast elkaar om u te helpen bij het kiezen van de juiste.", - "meta_title": "Vergelijk {packages} - npmx", - "meta_title_empty": "Vergelijk pakketten - npmx", - "meta_description": "Vergelijking van {packages} naast elkaar", - "meta_description_empty": "Vergelijk npm pakketten naast elkaar", - "section_packages": "Pakketten", - "section_facets": "Eigenschappen", - "section_comparison": "Vergelijking", - "copy_as_markdown": "kopieer tabel", - "loading": "Pakketten informatie laden...", - "error": "Failed to load package data. Please try again.", - "empty_title": "Selecteer pakketten om te vergelijken", - "empty_description": "Zoek en voeg ten minste 2 bovenstaande pakketten toe om een vergelijking van hun statistieken naast elkaar te zien." - }, - "selector": { - "search_label": "Zoek voor pakketten", - "search_first": "Zoek voor een pakket...", - "search_add": "Voeg nog een pakket toe...", - "searching": "Zoeken...", - "remove_package": "Remove {package}", - "packages_selected": "{count}/{max} pakketten geselecteerd.", - "add_hint": "Voeg tenminste 2 pakketten toe om te vergelijken" - }, - "no_dependency": { - "label": "(Geen afhankelijkheid)", - "typeahead_title": "Wat zou James doen?", - "typeahead_description": "Vergelijk zonder het gebruiken van een afhankelijkheid! e18e goedgekeurd.", - "tooltip_title": "You might not need a dependency", - "tooltip_description": "Compare against not using a dependency! The {link} maintains a list of packages that can be replaced with native APIs or simpler alternatives.", - "e18e_community": "e18e community", - "add_column": "Voeg geen pakket toe kolom toe aan vergelijking" - }, - "facets": { - "group_label": "Comparison facets", - "all": "alles", - "none": "geen", - "coming_soon": "Coming soon", - "select_all": "Selecteer alle eigenschappen", - "deselect_all": "Deselecteer alle eigenschappen", - "select_category": "Select all {category} facets", - "deselect_category": "Deselect all {category} facets", - "binary_only_tooltip": "This package exposes binaries and no exports", - "categories": { - "performance": "Performance", - "health": "Health", - "compatibility": "Compatibility", - "security": "Security & Compliance" - }, - "items": { - "packageSize": { - "label": "Package Size", - "description": "Size of the package itself (unpacked)" - }, - "installSize": { - "label": "Install Size", - "description": "Total install size including all dependencies" - }, - "dependencies": { - "label": "Direct Deps", - "description": "Number of direct dependencies" - }, - "totalDependencies": { - "label": "Total Deps", - "description": "Total number of dependencies including transitive" - }, - "downloads": { - "label": "Downloads/wk", - "description": "Weekly download count" - }, - "totalLikes": { - "label": "Likes", - "description": "Number of likes" - }, - "lastUpdated": { - "label": "Published", - "description": "When this version was published" - }, - "deprecated": { - "label": "Deprecated?", - "description": "Whether the package is deprecated" - }, - "engines": { - "label": "Engines", - "description": "Node.js version requirements" - }, - "types": { - "label": "Types", - "description": "TypeScript type definitions" - }, - "moduleFormat": { - "label": "Module Format", - "description": "ESM/CJS support" - }, - "license": { - "label": "License", - "description": "Package license" - }, - "vulnerabilities": { - "label": "Vulnerabilities", - "description": "Known security vulnerabilities" - } - }, - "values": { - "any": "Any", - "none": "None", - "unknown": "Unknown", - "deprecated": "Deprecated", - "not_deprecated": "No", - "types_included": "Included", - "types_none": "None", - "vulnerabilities_summary": "{count} ({critical}C/{high}H)", - "up_to_you": "Up to you!" - }, - "trends": { - "title": "Trends vergelijken" - } - }, - "file_changes": "File Changes", - "files_count": "{count} file | {count} files", - "lines_hidden": "{count} line hidden | {count} lines hidden", - "file_too_large": "File too large to compare", - "file_size_warning": "{size} exceeds the 250KB limit for comparison", - "compare_versions": "diff", - "compare_versions_title": "Compare with latest version", - "summary": "Summary", - "deps_count": "{count} dep | {count} deps", - "dependencies": "Dependencies", - "dev_dependencies": "Dev Dependencies", - "peer_dependencies": "Peer Dependencies", - "optional_dependencies": "Optional Dependencies", - "no_dependency_changes": "No dependency changes", - "file_filter_option": { - "all": "All ({count})", - "added": "Added ({count})", - "removed": "Removed ({count})", - "modified": "Modified ({count})" - }, - "search_files_placeholder": "Search files...", - "no_files_all": "No files", - "no_files_search": "No files matching \"{query}\"", - "no_files_filtered": "No {filter} files", - "filter": { - "added": "added", - "removed": "removed", - "modified": "modified" - }, - "files_button": "Files", - "select_file_prompt": "Select a file from the sidebar to view its diff", - "close_files_panel": "Close files panel", - "filter_files_label": "Filter files by change type" - }, - "pds": { - "title": "npmx.social", - "meta_description": "The official AT Protocol Personal Data Server (PDS) for the npmx community.", - "join": { - "title": "Join the Community", - "description": "Whether you are creating your first account on the atmosphere or migrating an existing one, you belong here. You can migrate your current account without losing your handle, your posts, or your followers.", - "migrate": "Migrate with PDS MOOver" - }, - "server": { - "title": "Server Details", - "location_label": "Location:", - "location_value": "Nuremberg, Germany", - "infrastructure_label": "Infrastructure:", - "infrastructure_value": "Hosted on Hetzner", - "privacy_label": "Privacy:", - "privacy_value": "Subject to strict EU Data Protection laws", - "learn_more": "Learn how npmx uses the Atmosphere" - }, - "community": { - "title": "Who is here", - "description": "Some of the {count} accounts that are already calling npmx.social home:", - "loading": "Loading PDS community...", - "error": "Failed to load PDS community.", - "empty": "No community members to display.", - "view_profile": "View {handle}'s profile", - "new_accounts": "...plus {count} more that are new to the atmosphere" - } - }, - "privacy_policy": { - "title": "privacy beleid", - "last_updated": "Last updated: {date}", - "welcome": "Welcome to {app}. We are committed to protecting your privacy. This policy explains what data we collect, how we use it, and your rights regarding your information.", - "cookies": { - "what_are": { - "title": "What are cookies?", - "p1": "Cookies are small text files stored on your device when you visit a website. Their purpose is to enhance your browsing experience by remembering certain preferences and settings." - }, - "types": { - "title": "What cookies do we use?", - "p1": "We only use {bold} for purposes strictly necessary for the site's functionality. We do not use third-party or advertising cookies.", - "bold": "essential technical cookies", - "li1": "{li11}{separator} {li12}", - "li2": "{li21}{separator} {li22}", - "separator": ":", - "cookie_vdpl": "__vdpl", - "cookie_vdpl_desc": "This cookie is used by our hosting provider (Vercel) for skew protection. It ensures you fetch assets from the correct deployment version if a new update is released while you are browsing. It does not track you.", - "cookie_h3": "h3", - "cookie_h3_desc": "This is our secure session cookie. It stores the OAuth access token when you connect your Atmosphere account. It is essential for maintaining your authenticated session." - }, - "local_storage": { - "title": "Local storage", - "p1": "In addition to session cookies, we use your browser's {bold} to save your display preferences. This allows us to remember the theme (light/dark) and some other {settings} you have selected, so you don't have to reconfigure them on each visit.", - "bold": "Local Storage", - "p2": "This information is purely functional, stored only on your device, and {bold2}. We use it exclusively to improve your experience on our website.", - "bold2": "contains no personal data nor is it used to track you", - "settings": "settings" - }, - "management": { - "title": "Managing cookies", - "p1": "You can configure your browser to accept, reject, or delete cookies according to your preferences. However, please note that {bold}.", - "bold": "rejecting essential cookies may prevent full access to the application", - "p2": "Below are links with instructions for cookie management in the most commonly used browsers:", - "chrome": "Google Chrome (opens in a new window)", - "firefox": "Mozilla Firefox (opens in a new window)", - "edge": "Microsoft Edge (opens in a new window)" - } - }, - "analytics": { - "title": "Analytics", - "p1": "We use {bold} to understand how visitors use our website. This helps us improve the user experience and identify issues.", - "bold": "Vercel Web Analytics", - "p2": "Vercel Analytics is designed with privacy in mind:", - "li1": "It does not use cookies", - "li2": "It does not collect personal identifiers", - "li3": "It does not track users across websites", - "li4": "All data is aggregated and anonymised", - "p3": "The only information collected includes: page URLs, referrer, country/region, device type, browser, and operating system. This data cannot be used to identify individual users." - }, - "authenticated": { - "title": "Authenticated users", - "p1": "When you connect your {bold} account to npmx, we store your OAuth access token in a secure, HTTP-only session cookie. This token is used solely to authenticate requests on your behalf.", - "bold": "Atmosphere", - "p2": "We do not store your credentials, and we do not access any data beyond what is necessary to provide the features you use. You can disconnect your account at any time from the {settings} page.", - "settings": "settings" - }, - "data_retention": { - "title": "Data retention", - "p1": "Session cookies are automatically deleted when you close your browser or after a period of inactivity. Local storage preferences remain on your device until you clear your browser data. Analytics data is retained in aggregate form and cannot be linked to individual users." - }, - "your_rights": { - "title": "Your rights", - "p1": "You have the right to:", - "li1": "Access information about what data we collect", - "li2": "Clear your local storage and cookies at any time", - "li3": "Disconnect your authenticated session", - "li4": "Request information about our data practices", - "p2": "Since we do not collect personal data, there is typically no personal information to delete or export." - }, - "contact": { - "title": "Contact us", - "p1": "For any questions or concerns about this privacy policy, you can contact us by opening an issue on our {link}.", - "link": "GitHub repository" - }, - "changes": { - "title": "Changes to this policy", - "p1": "We may update this privacy policy from time to time. Any changes will be published on this page with an updated revision date." - } - }, - "a11y": { - "title": "accessibility", - "footer_title": "toegankelijkheid", - "welcome": "We want {app} to be usable by as many people as possible.", - "approach": { - "title": "Our approach", - "p1": "We try to follow the Web Content Accessibility Guidelines (WCAG) 2.2 and use them as a reference when building features. We don't claim full conformance with any level of WCAG — accessibility is a continual process and there is always more work to do.", - "p2": "This site is an {about}. Accessibility improvements are made incrementally as part of our regular development.", - "about_link": "open-source, community-driven project" - }, - "measures": { - "title": "What we do", - "p1": "Some of the things we aim to do across the site:", - "li1": "Use semantic HTML and ARIA attributes where appropriate.", - "li2": "Use relative text sizes so you can adjust them in your browser.", - "li3": "Support keyboard navigation throughout the interface.", - "li4": "Respect the prefers-reduced-motion and prefers-color-scheme media queries.", - "li5": "Design with sufficient color contrast in mind.", - "li6": "Ensure essential content is available without JavaScript, though some interactive features require it." - }, - "limitations": { - "title": "Known limitations", - "p1": "Some parts of the site — particularly third-party content like package READMEs — may not meet accessibility standards. We are working to improve these areas over time." - }, - "contact": { - "title": "Feedback", - "p1": "If you encounter an accessibility barrier on {app}, please let us know by opening an issue on our {link}. We take these reports seriously and will do our best to address them.", - "link": "GitHub repository" - } - }, - "vacations": { - "title": "on vacation", - "meta_description": "The npmx team was recharging. Discord reopened after a week.", - "heading": "recharging", - "subtitle": "we were building npmx at a pace that was costing {some} of us sleep. we didn't want that to be the norm! so we took a week off. together.", - "illustration_alt": "a single row of cosy icons", - "poke_log": "Poke the campfire", - "what": { - "title": "what happened", - "p1": "discord was closed {dates}.", - "dates": "February 14 – 21", - "p2": "all invite links were gone and channels were locked – except {garden}, which stayed open for folks who wanted to keep hanging out.", - "garden": "#garden" - }, - "meantime": { - "title": "in the meantime", - "p1": "{site} and {repo} stayed open – people still dug in, filed some issues, opened a few PRs, but mainly everyone spent time somewhere near a cosy fireplace.", - "repo_link": "the repo" - }, - "return": { - "title": "we came back!", - "p1": "we came back recharged and ready for the final push to March 3rd. {social} for updates.", - "social_link": "follow us on Bluesky" - }, - "stats": { - "contributors": "Contributors", - "commits": "Commits", - "pr": "PRs Merged", - "subtitle": { - "some": "some", - "all": "all" - } - } - } + "$schema": "../schema.json", + "seo": { + "home": { + "title": "npmx - Pakket Browser voor de npm Register", + "description": "een snelle, moderne browser voor de npm register. zoek, blader en ontdek pakketten met een modern uiterlijk." + } + }, + "built_at": "gebouwd op {0}", + "alt_logo": "npmx logo", + "tagline": "een snelle, moderne browser voor de npm register", + "non_affiliation_disclaimer": "niet affiliëerd met npm, Inc.", + "trademark_disclaimer": "npm is een geregisteerd trademark van npm, Inc. Deze website is niet affiliëerd met npm, Inc.", + "footer": { + "about": "over", + "blog": "blog", + "docs": "docs", + "source": "bron", + "social": "social", + "chat": "chat", + "builders_chat": "bouwers", + "keyboard_shortcuts": "sneltoetsen" + }, + "shortcuts": { + "section": { + "global": "Globaal", + "search": "Zoeken", + "package": "Pakket" + }, + "focus_search": "", + "show_kbd_hints": "", + "settings": "Open instellingen", + "compare": "Open compare", + "compare_from_package": "Open compare (prefilled with current package)", + "navigate_results": "Navigate results", + "go_to_result": "Go to result", + "open_code_view": "Open code view", + "open_docs": "Open docs", + "disable_shortcuts": "You can disable keyboard shortcuts in {settings}." + }, + "search": { + "label": "Zoek npm pakketten", + "placeholder": "zoek pakketten...", + "button": "zoek", + "searching": "Searching...", + "found_packages": "No packages found | Found 1 package | Found {count} packages", + "found_packages_sorted": "No results found | Sorting top {count} result | Sorting top {count} results", + "updating": "(updating...)", + "no_results": "No packages found for \"{query}\"", + "rate_limited": "Hit npm rate limit, try again in a moment", + "title": "search", + "title_search": "search: {search}", + "title_packages": "search packages", + "meta_description": "Search results for '{search}'", + "meta_description_packages": "Search npm packages", + "not_taken": "{name} is not taken", + "claim_prompt": "Claim this package name on npm", + "claim_button": "Claim \"{name}\"", + "want_to_claim": "Want to claim this package name?", + "start_typing": "Start typing to search packages", + "algolia_disclaimer": "Powered by Algolia", + "exact_match": "exact", + "suggestion": { + "user": "user", + "org": "org", + "view_user_packages": "View packages by this user", + "view_org_packages": "View packages by this organization" + }, + "instant_search": "Instant search", + "instant_search_on": "on", + "instant_search_off": "off", + "instant_search_turn_on": "turn on", + "instant_search_turn_off": "turn off", + "instant_search_advisory": "{label} {state} — {action}" + }, + "nav": { + "main_navigation": "Main", + "popular_packages": "Populaire pakketten", + "settings": "instellingen", + "compare": "compare", + "back": "terug", + "menu": "Menu", + "mobile_menu": "Navigation menu", + "open_menu": "Open menu", + "links": "Links", + "tap_to_search": "Tap to search" + }, + "blog": { + "title": "Blog", + "heading": "blog", + "meta_description": "Insights and updates from the npmx community", + "author": { + "view_profile": "View {name}'s profile on Bluesky" + }, + "draft_badge": "Draft", + "draft_banner": "This is an unpublished draft. It may be incomplete or contain inaccuracies.", + "atproto": { + "view_on_bluesky": "View on Bluesky", + "reply_on_bluesky": "Reply on Bluesky", + "likes_on_bluesky": "Likes on Bluesky", + "like_or_reply_on_bluesky": "Like this post or add your comment on Bluesky", + "no_comments_yet": "No comments yet.", + "could_not_load_comments": "Could not load comments.", + "comments": "Comments", + "loading_comments": "Loading comments...", + "updating": "Updating...", + "reply_count": "{count} reply | {count} replies", + "like_count": "{count} like | {count} likes", + "repost_count": "{count} repost | {count} reposts", + "more_replies": "{count} more reply... | {count} more replies..." + } + }, + "settings": { + "title": "settings", + "tagline": "customize your npmx experience", + "meta_description": "Customize your npmx.dev experience with theme, language, and display preferences.", + "sections": { + "appearance": "Appearance", + "display": "Display", + "search": "Search features", + "language": "Language", + "keyboard_shortcuts": "Keyboard shortcuts" + }, + "data_source": { + "label": "Data source", + "description": "Choose where npmx gets search data. Individual package pages always use the npm registry directly.", + "npm": "npm Registry", + "npm_description": "Fetches search, org and user listings directly from the official npm registry. Authoritative, but can be slower.", + "algolia": "Algolia", + "algolia_description": "Uses Algolia for faster search, org and user pages." + }, + "instant_search": "Instant search", + "instant_search_description": "Navigates to the search page and updates the results as you type.", + "relative_dates": "Relative dates", + "include_types": "Include {'@'}types in install", + "include_types_description": "Add {'@'}types package to install commands for untyped packages", + "hide_platform_packages": "Hide platform-specific packages in search", + "hide_platform_packages_description": "Hide native binary packages like {'@'}esbuild/linux-x64 from results", + "theme": "Theme", + "theme_light": "Light", + "theme_dark": "Dark", + "theme_system": "System", + "language": "Language", + "help_translate": "Help translate npmx", + "accent_colors": "Accent colors", + "clear_accent": "Clear accent color", + "translation_progress": "Translation progress", + "background_themes": "Background shade", + "keyboard_shortcuts_enabled": "Enable keyboard shortcuts", + "keyboard_shortcuts_enabled_description": "Keyboard shortcuts can be disabled if they conflict with other browser or system shortcuts" + }, + "i18n": { + "missing_keys": "{count} missing translation | {count} missing translations", + "copy_keys": "Copy keys", + "show_more_keys": "Show {count} more...", + "contribute_hint": "Help improve this translation by adding the missing keys.", + "edit_on_github": "Edit on GitHub", + "view_guide": "Translation guide" + }, + "error": { + "401": "Unauthorized", + "404": "Page not found", + "500": "Internal server error", + "503": "Service unavailable", + "default": "Something went wrong" + }, + "common": { + "loading": "Loading...", + "loading_more": "Loading more...", + "loading_packages": "Loading packages...", + "end_of_results": "End of results", + "try_again": "Try again", + "close": "Close", + "or": "or", + "retry": "Retry", + "copy": "kopieer", + "copied": "gekopieerd!", + "skip_link": "Skip to main content", + "warnings": "Warnings:", + "go_back_home": "Go back home", + "per_week": "/ week", + "vanity_downloads_hint": "Vanity number: no packages displayed | Vanity number: for the displayed package | Vanity number: Sum of {count} displayed packages", + "sort": { + "name": "name", + "role": "role", + "members": "members" + }, + "scroll_to_top": "Scroll to top", + "cancel": "Cancel", + "save": "Save", + "edit": "Edit", + "error": "Error", + "view_on": { + "npm": "EN TEXT TO REPLACE: view on npm", + "github": "EN TEXT TO REPLACE: View on GitHub", + "gitlab": "EN TEXT TO REPLACE: View on GitLab", + "bitbucket": "EN TEXT TO REPLACE: View on Bitbucket", + "codeberg": "EN TEXT TO REPLACE: View on Codeberg", + "git_repo": "EN TEXT TO REPLACE: View on Git repository", + "forgejo": "EN TEXT TO REPLACE: View on Forgejo", + "gitea": "EN TEXT TO REPLACE: View on Gitea", + "gitee": "EN TEXT TO REPLACE: View on Gitee", + "radicle": "EN TEXT TO REPLACE: View on Radicle", + "sourcehut": "EN TEXT TO REPLACE: View on SourceHut", + "tangled": "EN TEXT TO REPLACE: View on Tangled" + } + }, + "profile": { + "display_name": "Display Name", + "description": "Description", + "no_description": "No description", + "website": "Website", + "website_placeholder": "https://example.com", + "likes": "Likes", + "seo_title": "{handle} - npmx", + "seo_description": "npmx profile by {handle}", + "not_found": "Profile Not Found", + "not_found_message": "The profile for {handle} could not be found.", + "invite": { + "message": "It doesn't look like they're using npmx yet. Want to tell them about it?", + "share_button": "Share on Bluesky", + "compose_text": "Hey {'@'}{handle}! Have you checked out npmx.dev yet? It's a browser for the npm registry that's fast, modern, and open-source.\nhttps://npmx.dev" + } + }, + "package": { + "not_found": "Package Not Found", + "not_found_message": "The package could not be found.", + "no_description": "No description provided", + "not_latest": "(not latest)", + "verified_provenance": "Verified provenance", + "view_permalink": "View permalink for this version", + "navigation": "Package", + "copy_name": "Copy package name", + "copy_version": "Copy package version", + "deprecation": { + "package": "This package has been deprecated.", + "version": "This version has been deprecated.", + "no_reason": "No reason provided" + }, + "size_increase": { + "title_size": "Significant size increase since v{version}", + "title_deps": "Significant dependency count increase since v{version}", + "title_both": "Significant size and dependency increase since v{version}", + "size": "Install size increased by {percent} ({size} larger)", + "deps": "{count} more dependencies" + }, + "replacement": { + "title": "U heeft waarschijnlijk dit niet nodig", + "native": "Dit kan vervangen worden door {replacement}, Beschikbaar sinds node {nodeVersion}.", + "simple": "De {community} heeft dit pakket als overbodig gemarkeerd, met het advies: {replacement}.", + "documented": "De {community} heeft aangegeven dat er voor dit pakket beter presterende alternatieven zijn.", + "none": "This package has been flagged as no longer needed, and its functionality is likely available natively in all engines.", + "learn_more": "Leer meer", + "learn_more_above": "Lees hierboven meer.", + "mdn": "MDN", + "community": "gemeenschap", + "consider_no_dep": "+ Geen dependency overwegen?" + }, + "stats": { + "license": "License", + "deps": "Deps", + "install_size": "Install Size", + "vulns": "Vulns", + "published": "Published", + "published_tooltip": "Date {package}{'@'}{version} was published", + "view_dependency_graph": "View dependency graph", + "inspect_dependency_tree": "Inspect dependency tree", + "size_tooltip": { + "unpacked": "{size} unpacked size (this package)", + "total": "{size} total unpacked size (including {count} dependency for linux-x64) | {size} total unpacked size (including all {count} dependencies for linux-x64)" + } + }, + "skills": { + "title": "Agent Skills", + "skills_available": "{count} skill available | {count} skills available", + "compatible_with": "Compatible with {tool}", + "install": "Install", + "installation_method": "Installation method", + "learn_more": "Learn more", + "available_skills": "Available Skills", + "click_to_expand": "Click to expand", + "no_description": "No description", + "file_counts": { + "scripts": "{count} script | {count} scripts", + "refs": "{count} ref | {count} refs", + "assets": "{count} asset | {count} assets" + }, + "view_source": "View source" + }, + "links": { + "repo": "repo", + "homepage": "homepage", + "issues": "issues", + "jsr": "jsr", + "code": "code", + "docs": "docs", + "fund": "fund", + "compare": "compare" + }, + "likes": { + "like": "Like this package", + "unlike": "Unlike this package" + }, + "docs": { + "not_available": "Docs not available", + "not_available_detail": "We could not generate docs for this version." + }, + "get_started": { + "title": "Get started", + "pm_label": "Package manager", + "copy_command": "Copy install command", + "copy_dev_command": "Copy dev install command", + "dev_dependency_hint": "Usually installed as a dev dependency", + "view_types": "View {package}" + }, + "create": { + "title": "Create new project", + "copy_command": "Copy create command", + "view": "{packageName} has the same maintainer. Click for more details." + }, + "run": { + "title": "Run", + "locally": "Run locally" + }, + "readme": { + "title": "Readme", + "no_readme": "No README available.", + "toc_title": "Outline", + "callout": { + "note": "Note", + "tip": "Tip", + "important": "Important", + "warning": "Warning", + "caution": "Caution" + }, + "copy_as_markdown": "Copy README as Markdown" + }, + "provenance_section": { + "title": "Provenance", + "built_and_signed_on": "Built and signed on {provider}", + "view_build_summary": "View build summary", + "source_commit": "Source Commit", + "build_file": "Build File", + "public_ledger": "Public Ledger", + "transparency_log_entry": "Transparency log entry", + "view_more_details": "View more details", + "error_loading": "Failed to load provenance details" + }, + "security_downgrade": { + "title": "Trust downgrade", + "description_to_none_provenance": "This version was published without {provenance}.", + "description_to_none_trustedPublisher": "This version was published without {trustedPublishing}.", + "description_to_provenance_trustedPublisher": "This version uses {provenance} but not {trustedPublishing}.", + "fallback_install_provenance": "Install commands are pinned to {version}, the last version with provenance.", + "fallback_install_trustedPublisher": "Install commands are pinned to {version}, the last version with trusted publishing.", + "provenance_link_text": "provenance", + "trusted_publishing_link_text": "trusted publishing" + }, + "keywords_title": "Keywords", + "compatibility": "Compatibility", + "card": { + "publisher": "Publisher", + "published": "Published", + "weekly_downloads": "Weekly downloads", + "keywords": "Keywords", + "license": "License" + }, + "versions": { + "title": "Versions", + "collapse": "Collapse {tag}", + "expand": "Expand {tag}", + "collapse_other": "Collapse other versions", + "expand_other": "Expand other versions", + "collapse_major": "Collapse major {major}", + "expand_major": "Expand major {major}", + "other_versions": "Other versions", + "more_tagged": "{count} more tagged", + "all_covered": "All versions are covered by tags above", + "deprecated_title": "{version} (deprecated)", + "view_all": "View {count} version | View all {count} versions", + "distribution_title": "Semver Group", + "distribution_modal_title": "Versions", + "distribution_range_date_same_year": "from {from} to {to}, {endYear}", + "distribution_range_date_multiple_years": "from {from}, {startYear} to {to}, {endYear}", + "grouping_major": "Major", + "grouping_minor": "Minor", + "grouping_versions_title": "Versions", + "grouping_versions_all": "All", + "grouping_versions_only_recent": "Only recent", + "grouping_usage_title": "Usage", + "grouping_usage_all": "All", + "grouping_usage_low": "Low", + "recent_versions_only_tooltip": "Show only versions published within the last year.", + "show_low_usage_tooltip": "Include version groups with less than 1% of total downloads.", + "y_axis_label": "Downloads", + "filter_placeholder": "Filter by semver (e.g. ^3.0.0)", + "filter_invalid": "Invalid semver range", + "filter_help": "Semver range filter help", + "filter_tooltip": "Filter versions using a {link}. For example, ^3.0.0 shows all 3.x versions.", + "filter_tooltip_link": "semver range", + "no_matches": "No versions match this range", + "copy_alt": { + "per_version_analysis": "{version} version was downloaded {downloads} times", + "general_description": "Bar chart showing per-version downloads for {versions_count} {semver_grouping_mode} versions of the {package_name} package, {date_range_label} from the {first_version} version to the {last_version} version. The most downloaded version is {max_downloaded_version} with {max_version_downloads} downloads. {per_version_analysis}. {watermark}." + } + }, + "dependencies": { + "title": "Dependency ({count}) | Dependencies ({count})", + "list_label": "Package dependencies", + "show_all": "show {count} dep | show all {count} deps", + "optional": "optional", + "view_vulnerabilities": "View vulnerabilities", + "outdated_major": "{count} major version behind (latest: {latest}) | {count} major versions behind (latest: {latest})", + "outdated_minor": "{count} minor version behind (latest: {latest}) | {count} minor versions behind (latest: {latest})", + "outdated_patch": "Patch update available (latest: {latest})", + "has_replacement": "This dependency has suggested replacements" + }, + "peer_dependencies": { + "title": "Peer Dependency ({count}) | Peer Dependencies ({count})", + "list_label": "Package peer dependencies", + "show_all": "show {count} peer dep | show all {count} peer deps" + }, + "optional_dependencies": { + "title": "Optional Dependency ({count}) | Optional Dependencies ({count})", + "list_label": "Package optional dependencies", + "show_all": "show {count} optional dep | show all {count} optional deps" + }, + "maintainers": { + "title": "Maintainers", + "list_label": "Package maintainers", + "you": "(you)", + "via": "via {teams}", + "remove_owner": "Remove {name} as owner", + "username_to_add": "Username to add as owner", + "username_placeholder": "username...", + "add_button": "add", + "cancel_add": "Cancel adding owner", + "add_owner": "+ Add owner", + "show_more": "(show {count} more)", + "show_less": "(show fewer)" + }, + "trends": { + "granularity": "Granulariteit", + "granularity_daily": "Dagelijks", + "granularity_weekly": "Wekelijks", + "granularity_monthly": "Maandelijks", + "granularity_yearly": "Jaarlijks", + "start_date": "Van", + "end_date": "T/m", + "loading": "Laden...", + "date_range": "{start} to {end}", + "date_range_multiline": "{start}\nt/m {end}", + "download_file": "Download {fileType}", + "toggle_annotator": "Schakel annotator aan/uit", + "toggle_stack_mode": "Schakel stapelen aan/uit", + "open_options": "Open opties", + "close_options": "Sluit opties", + "legend_estimation": "Schatting", + "no_data": "Geen gegevens beschikbaar", + "y_axis_label": "{granularity} {facet}", + "facet": "Aspect", + "title": "Trends", + "contributors_skip": "Niet weergegeven in Bijdragers (geen GitHub-repository):", + "items": { + "downloads": "Downloads", + "likes": "Likes", + "contributors": "Bijdragers" + }, + "data_correction": "Gegevenscorrectie", + "average_window": "Gemiddelde periode", + "smoothing": "Gladmaken", + "known_anomalies": "Bekende afwijkingen", + "known_anomalies_description": "Interpoleert bekende downloadpieken die worden veroorzaakt door bots of CI-problemen.", + "known_anomalies_ranges": "Afwijkingsbereiken", + "known_anomalies_range": "Van {start} t/m {end}", + "known_anomalies_range_named": "{packageName}: van {start} t/m {end}", + "known_anomalies_none": "Geen bekende afwijkingen voor dit pakket. | Geen bekende afwijkingen voor deze pakketten.", + "known_anomalies_contribute": "Anomaliegegevens bijdragen", + "apply_correction": "Correctie toepassen", + "copy_alt": { + "trend_none": "mostly flat", + "trend_strong": "strong", + "trend_weak": "weak", + "trend_undefined": "undefined (insufficient data)", + "button_label": "Alternatieve tekst kopiëren", + "watermark": "At the bottom, a watermark reads \"./npmx a fast, modern browser for the npm registry\"", + "analysis": "{package_name} starts at {start_value} and ends at {end_value}, showing a {trend} trend with a slope of {downloads_slope} downloads per time interval", + "estimation": "The final value is an estimate based on partial data for the current period.", + "estimations": "The final values are estimates based on partial data for the current period.", + "compare": "Package download comparison line chart for: {packages}.", + "single_package": "Downloads line chart for the {package} package.", + "general_description": "The Y axis represents the number of downloads. The X axis represents the date range, from {start_date} to {end_date}, with a {granularity} time period.{estimation_notice} {packages_analysis}. {watermark}.", + "facet_bar_general_description": "EN TEXT TO REPLACE: Horizontal bar chart for: {packages}, comparing {facet} ({description}). {facet_analysis} {watermark}.", + "facet_bar_analysis": "EN TEXT TO REPLACE: {package_name} has a value of {value}." + } + }, + "downloads": { + "title": "Weekly Downloads", + "community_distribution": "View community adoption distribution", + "subtitle": "Across all versions" + }, + "install_scripts": { + "title": "Install Scripts", + "script_label": "(script)", + "npx_packages": "{count} npx package | {count} npx packages", + "currently": "currently {version}" + }, + "playgrounds": { + "title": "Try it out", + "choose": "choose playground" + }, + "metrics": { + "esm": "ES Modules supported", + "cjs": "CommonJS supported", + "no_esm": "No ES Modules support", + "types_label": "Types", + "types_included": "Types included", + "types_available": "Types available via {package}", + "no_types": "No TypeScript types" + }, + "license": { + "view_spdx": "View license text on SPDX", + "none": "None" + }, + "vulnerabilities": { + "tree_found": "{vulns} vulnerability in {packages}/{total} packages | {vulns} vulnerabilities in {packages}/{total} packages", + "show_all_packages": "show {count} affected package | show all {count} affected packages", + "path": "path", + "more": "+{count} more", + "packages_failed": "{count} package could not be checked | {count} packages could not be checked", + "scan_failed": "Could not scan for vulnerabilities", + "severity": { + "critical": "critical", + "high": "high", + "moderate": "moderate", + "low": "low" + }, + "fixed_in_title": "Fixed in version {version}" + }, + "deprecated": { + "label": "Deprecated", + "tree_found": "{count} deprecated dependency | {count} deprecated dependencies", + "show_all": "show {count} deprecated package | show all {count} deprecated packages" + }, + "access": { + "title": "Team Access", + "refresh": "Refresh team access", + "list_label": "Team access list", + "owner": "owner", + "rw": "rw", + "ro": "ro", + "revoke_access": "Revoke {name} access", + "no_access": "No team access configured", + "select_team_label": "Select team", + "loading_teams": "Loading teams...", + "select_team": "Select team", + "permission_label": "Permission level", + "permission": { + "read_only": "read-only", + "read_write": "read-write" + }, + "grant_button": "grant", + "cancel_grant": "Cancel granting access", + "grant_access": "+ Grant team access" + }, + "list": { + "filter_label": "Filter packages", + "filter_placeholder": "Filter packages...", + "sort_label": "Sort packages", + "showing_count": "Showing {filtered} of {total} packages" + }, + "skeleton": { + "loading": "Loading package details", + "maintainers": "Maintainers", + "keywords": "Keywords", + "versions": "Versions", + "dependencies": "Dependencies" + }, + "sort": { + "downloads": "Most downloaded", + "published": "Recently published", + "name_asc": "Name (A-Z)", + "name_desc": "Name (Z-A)" + }, + "size": { + "b": "{size} B", + "kb": "{size} kB", + "mb": "{size} MB" + } + }, + "connector": { + "modal": { + "title": "Local Connector", + "connected": "Connected", + "connected_as_user": "Connected as ~{user}", + "connected_hint": "You can now manage packages and organizations from the web UI.", + "disconnect": "Disconnect", + "run_hint": "Run the connector on your machine to enable admin features.", + "copy_command": "Copy command", + "copied": "Copied", + "paste_token": "Then paste the token below to connect:", + "token_label": "Token", + "token_placeholder": "paste token here...", + "advanced": "Advanced options", + "port_label": "Port", + "warning": "WARNING", + "warning_text": "This allows npmx to access your npm CLI. Only connect to sites you trust.", + "connect": "Connect", + "connecting": "Connecting...", + "auto_open_url": "Automatically open auth page" + } + }, + "operations": { + "queue": { + "title": "Operations Queue", + "clear_all": "clear all", + "refresh": "Refresh operations", + "empty": "No operations queued", + "empty_hint": "Add operations from package or org pages", + "active_label": "Active operations", + "otp_required": "OTP required", + "otp_prompt": "Enter OTP to continue", + "otp_placeholder": "Enter OTP code...", + "otp_label": "One-time password", + "retry_otp": "Retry with OTP", + "retry_web_auth": "Retry with web auth", + "retrying": "Retrying...", + "open_web_auth": "Open web auth link", + "approve_operation": "Approve operation", + "remove_operation": "Remove operation", + "approve_all": "Approve All", + "execute": "Execute", + "executing": "Executing...", + "log": "Log", + "log_label": "Completed operations log", + "remove_from_log": "Remove from log" + } + }, + "org": { + "teams": { + "title": "Teams", + "refresh": "Refresh teams", + "filter_label": "Filter teams", + "filter_placeholder": "Filter teams...", + "sort_by": "Sort by", + "loading": "Loading teams...", + "no_teams": "No teams found", + "list_label": "Organization teams", + "delete_team": "Delete team {name}", + "member_count": "{count} member | {count} members", + "members_of": "Members of {team}", + "no_members": "No members", + "remove_user": "Remove {user} from team", + "username_to_add": "Username to add to {team}", + "username_placeholder": "username...", + "add_button": "add", + "cancel_add_user": "Cancel adding user", + "add_member": "+ Add member", + "team_name_label": "Team name", + "team_name_placeholder": "team-name...", + "create_button": "create", + "no_match": "No teams match \"{query}\"", + "cancel_create": "Cancel creating team", + "create_team": "+ Create team" + }, + "members": { + "title": "Members", + "refresh": "Refresh members", + "filter_label": "Filter members", + "filter_placeholder": "Filter members...", + "filter_by_role": "Filter by role", + "filter_by_team": "Filter by team", + "all_teams": "all teams", + "sort_by": "Sort by", + "loading": "Loading members...", + "no_members": "No members found", + "list_label": "Organization members", + "change_role_for": "Change role for {name}", + "remove_from_org": "Remove {name} from org", + "view_team": "View {team} team", + "no_match": "No members match your filters", + "username_label": "Username", + "username_placeholder": "username...", + "role_label": "Role", + "role": { + "all": "all", + "developer": "developer", + "admin": "admin", + "owner": "owner" + }, + "team_label": "Team", + "no_team": "no team", + "add_button": "add", + "cancel_add": "Cancel adding member", + "add_member": "+ Add member" + }, + "public_packages": "{count} public package | {count} public packages", + "page": { + "packages_title": "Packages", + "members_tab": "Members", + "teams_tab": "Teams", + "no_packages": "No public packages found for", + "no_packages_hint": "This organization may not exist or has no public packages.", + "failed_to_load": "Failed to load organization packages", + "no_match": "No packages match \"{query}\"", + "not_found": "Organization not found", + "not_found_message": "The organization \"{'@'}{name}\" does not exist on npm" + } + }, + "user": { + "combobox": { + "add_to_org_hint": "(will also add to org)", + "press_enter_to_add": "Press Enter to add {'@'}{username}", + "default_placeholder": "username...", + "suggestions_label": "User suggestions" + }, + "page": { + "packages_title": "Packages", + "no_packages": "No public packages found for", + "no_packages_hint": "This user may not exist or has no public packages.", + "failed_to_load": "Failed to load user packages", + "no_match": "No packages match \"{query}\"", + "filter_placeholder": "Filter {count} package... | Filter {count} packages..." + }, + "orgs_page": { + "title": "Organizations", + "back_to_profile": "Back to profile", + "connect_required": "Connect the local CLI to view your organizations.", + "connect_hint_prefix": "Run", + "connect_hint_suffix": "to get started.", + "own_orgs_only": "You can only view your own organizations.", + "view_your_orgs": "View your organizations", + "loading": "Loading organizations...", + "empty": "No organizations found.", + "empty_hint": "Organizations are detected from your scoped packages.", + "count": "{count} Organization | {count} Organizations", + "packages_count": "{count} package | {count} packages" + } + }, + "claim": { + "modal": { + "title": "Claim Package Name", + "success": "Package claimed!", + "success_detail": "{name}{'@'}0.0.0 has been published to npm.", + "success_hint": "You can now publish new versions to this package using npm publish.", + "view_package": "View Package", + "invalid_name": "Invalid package name:", + "available": "This name is available!", + "taken": "This name is already taken.", + "missing_permission": "You do not have permission to add a package to scope {'@'}{scope}.", + "similar_warning": "Similar packages exist - npm may reject this name:", + "related": "Related packages:", + "scope_warning_title": "Consider using a scoped package instead", + "scope_warning_text": "Unscoped package names are a shared resource. Only claim a name if you intend to publish and maintain a package. For personal or organizational projects, use a scoped name like {'@'}{username}/{name}.", + "connect_required": "Connect to the local connector to claim this package name.", + "connect_button": "Connect to Connector", + "publish_hint": "This will publish a minimal placeholder package.", + "preview_json": "Preview package.json", + "claim_button": "Claim Package Name", + "publishing": "Publishing...", + "checking": "Checking availability...", + "failed_to_check": "Failed to check name availability", + "failed_to_claim": "Failed to claim package" + } + }, + "code": { + "files_label": "Files", + "no_files": "No files in this directory", + "root": "root", + "lines": "{count} line | {count} lines", + "toggle_tree": "Toggle file tree", + "close_tree": "Close file tree", + "copy_link": "Copy link", + "raw": "Raw", + "view_raw": "View raw file", + "file_too_large": "File too large to preview", + "file_size_warning": "{size} exceeds the 500KB limit for syntax highlighting", + "failed_to_load": "Failed to load file", + "unavailable_hint": "The file may be too large or unavailable", + "version_required": "Version is required to browse code", + "go_to_package": "Go to package", + "loading_tree": "Loading file tree...", + "failed_to_load_tree": "Failed to load files for this package version", + "back_to_package": "Back to package", + "table": { + "name": "Name", + "size": "Size" + }, + "markdown_view_mode": { + "preview": "preview", + "code": "code" + }, + "file_path": "File path", + "scroll_to_top": "Scroll to top" + }, + "badges": { + "provenance": { + "verified": "verified", + "verified_title": "Verified provenance", + "verified_via": "Verified: published via {provider}" + }, + "jsr": { + "title": "also available on JSR" + } + }, + "filters": { + "title": "Filters", + "search": "Search", + "search_scope": "Search scope", + "search_placeholder_name": "Filter by package name...", + "search_placeholder_description": "Filter by description...", + "search_placeholder_keywords": "Filter by keywords...", + "search_placeholder_all": "Search all or use name: desc: kw:", + "scope_name": "Name", + "scope_name_description": "Search package names only", + "scope_description": "Description", + "scope_description_description": "Search descriptions only", + "scope_keywords": "Keywords", + "scope_keywords_description": "Search keywords only", + "scope_all": "All", + "scope_all_description": "Search all fields, supports name: desc: kw: operators", + "weekly_downloads": "Weekly downloads", + "updated_within": "Updated within", + "security": "Security", + "keywords": "Keywords", + "more_keywords": "+{count} more", + "clear_all": "Clear all", + "remove_filter": "Remove {label} filter", + "chips": { + "search": "Search", + "downloads": "Downloads", + "keyword": "Keyword", + "security": "Security", + "updated": "Updated" + }, + "download_range": { + "any": "Any", + "lt100": "< 100", + "100_1k": "100 - 1K", + "1k_10k": "1K - 10K", + "10k_100k": "10K - 100K", + "gt100k": "> 100K" + }, + "updated": { + "any": "Any time", + "week": "Past week", + "month": "Past month", + "quarter": "Past 3 months", + "year": "Past year" + }, + "security_options": { + "all": "All packages", + "secure": "Without warnings", + "insecure": "With warnings" + }, + "sort": { + "label": "Sort packages", + "toggle_direction": "Toggle sort direction", + "ascending": "Ascending", + "descending": "Descending", + "relevance": "Relevance", + "downloads_week": "Downloads/wk", + "downloads_day": "Downloads/day", + "downloads_month": "Downloads/mo", + "downloads_year": "Downloads/yr", + "published": "Last Published", + "name": "Name", + "quality": "Quality", + "popularity": "Popularity", + "maintenance": "Maintenance", + "score": "Score" + }, + "columns": { + "title": "Columns", + "show": "Show columns", + "reset": "Reset to defaults", + "coming_soon": "Coming soon", + "name": "Name", + "version": "Version", + "description": "Description", + "downloads": "Downloads/wk", + "published": "Last Published", + "maintainers": "Maintainers", + "keywords": "Keywords", + "quality_score": "Quality score", + "popularity_score": "Popularity score", + "maintenance_score": "Maintenance score", + "combined_score": "Combined score", + "security": "Security" + }, + "view_mode": { + "label": "View mode", + "cards": "Card view", + "table": "Table view" + }, + "pagination": { + "mode_label": "Pagination mode", + "infinite": "Infinite", + "paginated": "Paginated", + "items_per_page": "Items per page", + "per_page": "{count} / page", + "showing": "{start}-{end} of {total}", + "previous": "Previous page", + "next": "Next page", + "nav_label": "Pagination" + }, + "count": { + "showing_filtered": "{filtered} of {count} package | {filtered} of {count} packages", + "showing_all": "{count} package | {count} packages", + "showing_paginated": "{pageSize} of {count} package | {pageSize} of {count} packages" + }, + "table": { + "security_warning": "Security warning", + "secure": "Secure", + "no_packages": "No packages found" + } + }, + "about": { + "title": "About", + "heading": "about", + "meta_description": "npmx is a fast, modern browser for the npm registry. A better UX/DX for exploring npm packages.", + "what_we_are": { + "title": "What we are", + "better_ux_dx": "better UX/DX", + "admin_ui": "admin UI", + "description": "npmx is a {betterUxDx} for the npm package registry and tooling. We provide a fast, modern interface for exploring packages, with features like dark mode, keyboard navigation, code browsing, and connections to alternative registries like {jsr}.", + "admin_description": "We also aim to provide a better {adminUi} for managing your packages, teams, and organizations — all from the browser, powered by your local npm CLI." + }, + "what_we_are_not": { + "title": "What we're not", + "not_package_manager": "Not a package manager.", + "not_registry": "Not a registry.", + "registry_description": "We don't host packages. We're just a better way to browse them.", + "package_managers_exist": "{already} {people} {building} {really} {cool} {package} {managers}.", + "words": { + "already": "There are", + "people": "already", + "building": "people", + "really": "building", + "cool": "really", + "package": "cool", + "managers": "package managers" + } + }, + "sponsors": { + "title": "Sponsors" + }, + "oss_partners": { + "title": "OSS Partners" + }, + "team": { + "title": "Team", + "governance": "Governance", + "role_steward": "steward", + "role_maintainer": "maintainer", + "sponsor": "sponsor", + "sponsor_aria": "Sponsor {name} on GitHub" + }, + "contributors": { + "title": "... and {count} more contributor | ... and {count} more contributors", + "description": "npmx is fully open source, built by an amazing community of contributors. Join us and let's build the npm browsing experience we always wanted, together.", + "loading": "Loading contributors...", + "error": "Failed to load contributors", + "view_profile": "View {name}'s GitHub profile" + }, + "get_involved": { + "title": "Get involved", + "contribute": { + "title": "Contribute", + "description": "Help us build a better npm experience.", + "cta": "View on GitHub" + }, + "community": { + "title": "Join the community", + "description": "Chat, ask questions, and share ideas.", + "cta": "Join Discord" + }, + "builders": { + "title": "Help build npmx", + "description": "Join the builders shaping the future of npmx.", + "cta": "Join Builders Discord" + }, + "follow": { + "title": "Stay updated", + "description": "Find out the latest on npmx.", + "cta": "Follow on Bluesky" + } + } + }, + "account_menu": { + "connect": "connect", + "account": "Account", + "npm_cli": "npm CLI", + "atmosphere": "Atmosphere", + "npm_cli_desc": "Manage packages & orgs", + "atmosphere_desc": "Social features & identity", + "connect_npm_cli": "Connect to npm CLI", + "connect_atmosphere": "Connect to Atmosphere", + "connecting": "Connecting...", + "ops": "{count} op | {count} ops" + }, + "auth": { + "modal": { + "title": "Atmosphere", + "connected_as": "Connected as {'@'}{handle}", + "disconnect": "Disconnect", + "connect_prompt": "Connect with your Atmosphere account", + "handle_label": "Handle", + "handle_placeholder": "alice.npmx.social", + "connect": "Connect", + "create_account": "Create a new account", + "connect_bluesky": "Connect with Bluesky", + "what_is_atmosphere": "What is an Atmosphere account?", + "atmosphere_explanation": "{npmx} uses the {atproto} to power many of its social features, allowing users to own their data and use one account for all compatible applications. Once you create an account, you can use other apps like {bluesky} and {tangled} with the same account.", + "default_input_error": "Please enter a valid handle, DID, or a full PDS URL", + "profile": "Profile" + } + }, + "header": { + "home": "npmx startpagina", + "packages": "packages", + "packages_dropdown": { + "title": "Your Packages", + "loading": "Loading...", + "error": "Failed to load packages", + "empty": "No packages found", + "view_all": "View all" + }, + "orgs": "orgs", + "orgs_dropdown": { + "title": "Your Organizations", + "loading": "Loading...", + "error": "Failed to load organizations", + "empty": "No organizations found", + "view_all": "View all" + } + }, + "compare": { + "packages": { + "title": "vergelijk pakketten", + "tagline": "vergelijk npm pakketten naast elkaar om u te helpen bij het kiezen van de juiste.", + "meta_title": "Vergelijk {packages} - npmx", + "meta_title_empty": "Vergelijk pakketten - npmx", + "meta_description": "Vergelijking van {packages} naast elkaar", + "meta_description_empty": "Vergelijk npm pakketten naast elkaar", + "section_packages": "Pakketten", + "section_facets": "Aspecten", + "section_comparison": "Vergelijking", + "copy_as_markdown": "kopieer tabel", + "loading": "Pakket informatie laden...", + "error": "Het laden van pakketgegevens is mislukt. Probeer het opnieuw.", + "empty_title": "Selecteer pakketten om te vergelijken", + "empty_description": "Zoek en voeg ten minste 2 bovenstaande pakketten toe om een vergelijking van hun statistieken naast elkaar te zien.", + "table_view": "Tabel", + "charts_view": "Grafiek" + }, + "selector": { + "search_label": "Zoek voor pakketten", + "search_first": "Zoek voor een pakket...", + "search_add": "Voeg nog een pakket toe...", + "searching": "Zoeken...", + "remove_package": "Verwijder {package}", + "packages_selected": "{count}/{max} pakketten geselecteerd.", + "add_hint": "Voeg tenminste 2 pakketten toe om te vergelijken" + }, + "no_dependency": { + "label": "(Geen dependency)", + "typeahead_title": "Wat zou James doen?", + "typeahead_description": "Vergelijk zonder het gebruiken van een dependency! e18e goedgekeurd.", + "tooltip_title": "U heeft waarschijnlijk geen dependency nodig", + "tooltip_description": "Vergelijk dit met het niet gebruiken van een dependency! De {link} bevat een lijst met pakketten die kunnen worden vervangen door native API's of eenvoudigere alternatieven.", + "e18e_community": "e18e community", + "add_column": "Voeg geen pakket toe kolom toe aan vergelijking" + }, + "facets": { + "group_label": "Vergelijking aspecten", + "all": "alles", + "none": "geen", + "coming_soon": "Binnenkort", + "select_all": "Selecteer alle acpecten", + "deselect_all": "Alle aspecten deselecteren", + "select_category": "Alle {category} aspecten selecteren", + "deselect_category": "Alle {category} aspecten deselecteren", + "binary_only_tooltip": "Dit pakket maakt binaries beschikbaar en exporteert niets", + "categories": { + "performance": "Prestaties", + "health": "Status", + "compatibility": "Compatibiliteit", + "security": "Beveiliging & Naleving" + }, + "items": { + "packageSize": { + "label": "Pakket grote", + "description": "De grootte van het pakket zelf (uitgepakt)" + }, + "installSize": { + "label": "Installatiegrootte", + "description": "Totale installatiegrootte inclusief alle depenencies" + }, + "dependencies": { + "label": "Directe deps", + "description": "Aantal directe dependencies" + }, + "totalDependencies": { + "label": "Totaal Deps", + "description": "Totaal aantal dependencies inclusief transitieve" + }, + "downloads": { + "label": "Downloads/week", + "description": "Wekelijks aantal downloads" + }, + "totalLikes": { + "label": "Likes", + "description": "Aantal likes" + }, + "lastUpdated": { + "label": "Gepubliceerd", + "description": "Wanneer deze versie is gepubliceerd" + }, + "deprecated": { + "label": "Afgeraden?", + "description": "Is het pakket afgeraden" + }, + "engines": { + "label": "Omgevingen", + "description": "Node.js versie verplichtingen" + }, + "types": { + "label": "Types", + "description": "TypeScript type definities" + }, + "moduleFormat": { + "label": "Moduleformaat", + "description": "ESM/CJS ondersteuning" + }, + "license": { + "label": "Licentie", + "description": "Pakket licentie" + }, + "vulnerabilities": { + "label": "Kwetsbaarheden", + "description": "Bekende beveiliging kwetsbaarheden" + } + }, + "values": { + "any": "Alle", + "none": "Geen", + "unknown": "Unknown", + "deprecated": "Afgeraden", + "not_deprecated": "Nee", + "types_included": "Inbegrepen", + "types_none": "Geen", + "vulnerabilities_summary": "{count} ({critical}C/{high}H)", + "up_to_you": "Jij beslist!" + }, + "trends": { + "title": "Trends vergelijken" + } + }, + "file_changes": "File Changes", + "files_count": "{count} file | {count} files", + "lines_hidden": "{count} line hidden | {count} lines hidden", + "file_too_large": "File too large to compare", + "file_size_warning": "{size} exceeds the 250KB limit for comparison", + "compare_versions": "diff", + "compare_versions_title": "Compare with latest version", + "summary": "Summary", + "deps_count": "{count} dep | {count} deps", + "dependencies": "Dependencies", + "dev_dependencies": "Dev Dependencies", + "peer_dependencies": "Peer Dependencies", + "optional_dependencies": "Optional Dependencies", + "no_dependency_changes": "No dependency changes", + "file_filter_option": { + "all": "All ({count})", + "added": "Added ({count})", + "removed": "Removed ({count})", + "modified": "Modified ({count})" + }, + "search_files_placeholder": "Search files...", + "no_files_all": "No files", + "no_files_search": "No files matching \"{query}\"", + "no_files_filtered": "No {filter} files", + "filter": { + "added": "added", + "removed": "removed", + "modified": "modified" + }, + "files_button": "Files", + "select_file_prompt": "Select a file from the sidebar to view its diff", + "close_files_panel": "Close files panel", + "filter_files_label": "Filter files by change type" + }, + "pds": { + "title": "npmx.social", + "meta_description": "The official AT Protocol Personal Data Server (PDS) for the npmx community.", + "join": { + "title": "Join the Community", + "description": "Whether you are creating your first account on the atmosphere or migrating an existing one, you belong here. You can migrate your current account without losing your handle, your posts, or your followers.", + "migrate": "Migrate with PDS MOOver" + }, + "server": { + "title": "Server Details", + "location_label": "Location:", + "location_value": "Nuremberg, Germany", + "infrastructure_label": "Infrastructure:", + "infrastructure_value": "Hosted on Hetzner", + "privacy_label": "Privacy:", + "privacy_value": "Subject to strict EU Data Protection laws", + "learn_more": "Learn how npmx uses the Atmosphere" + }, + "community": { + "title": "Who is here", + "description": "Some of the {count} accounts that are already calling npmx.social home:", + "loading": "Loading PDS community...", + "error": "Failed to load PDS community.", + "empty": "No community members to display.", + "view_profile": "View {handle}'s profile", + "new_accounts": "...plus {count} more that are new to the atmosphere" + } + }, + "privacy_policy": { + "title": "privacy beleid", + "last_updated": "Last updated: {date}", + "welcome": "Welcome to {app}. We are committed to protecting your privacy. This policy explains what data we collect, how we use it, and your rights regarding your information.", + "cookies": { + "what_are": { + "title": "What are cookies?", + "p1": "Cookies are small text files stored on your device when you visit a website. Their purpose is to enhance your browsing experience by remembering certain preferences and settings." + }, + "types": { + "title": "What cookies do we use?", + "p1": "We only use {bold} for purposes strictly necessary for the site's functionality. We do not use third-party or advertising cookies.", + "bold": "essential technical cookies", + "li1": "{li11}{separator} {li12}", + "li2": "{li21}{separator} {li22}", + "separator": ":", + "cookie_vdpl": "__vdpl", + "cookie_vdpl_desc": "This cookie is used by our hosting provider (Vercel) for skew protection. It ensures you fetch assets from the correct deployment version if a new update is released while you are browsing. It does not track you.", + "cookie_h3": "h3", + "cookie_h3_desc": "This is our secure session cookie. It stores the OAuth access token when you connect your Atmosphere account. It is essential for maintaining your authenticated session." + }, + "local_storage": { + "title": "Local storage", + "p1": "In addition to session cookies, we use your browser's {bold} to save your display preferences. This allows us to remember the theme (light/dark) and some other {settings} you have selected, so you don't have to reconfigure them on each visit.", + "bold": "Local Storage", + "p2": "This information is purely functional, stored only on your device, and {bold2}. We use it exclusively to improve your experience on our website.", + "bold2": "contains no personal data nor is it used to track you", + "settings": "settings" + }, + "management": { + "title": "Managing cookies", + "p1": "You can configure your browser to accept, reject, or delete cookies according to your preferences. However, please note that {bold}.", + "bold": "rejecting essential cookies may prevent full access to the application", + "p2": "Below are links with instructions for cookie management in the most commonly used browsers:", + "chrome": "Google Chrome (opens in a new window)", + "firefox": "Mozilla Firefox (opens in a new window)", + "edge": "Microsoft Edge (opens in a new window)" + } + }, + "analytics": { + "title": "Analytics", + "p1": "We use {bold} to understand how visitors use our website. This helps us improve the user experience and identify issues.", + "bold": "Vercel Web Analytics", + "p2": "Vercel Analytics is designed with privacy in mind:", + "li1": "It does not use cookies", + "li2": "It does not collect personal identifiers", + "li3": "It does not track users across websites", + "li4": "All data is aggregated and anonymised", + "p3": "The only information collected includes: page URLs, referrer, country/region, device type, browser, and operating system. This data cannot be used to identify individual users." + }, + "authenticated": { + "title": "Authenticated users", + "p1": "When you connect your {bold} account to npmx, we store your OAuth access token in a secure, HTTP-only session cookie. This token is used solely to authenticate requests on your behalf.", + "bold": "Atmosphere", + "p2": "We do not store your credentials, and we do not access any data beyond what is necessary to provide the features you use. You can disconnect your account at any time from the {settings} page.", + "settings": "settings" + }, + "data_retention": { + "title": "Data retention", + "p1": "Session cookies are automatically deleted when you close your browser or after a period of inactivity. Local storage preferences remain on your device until you clear your browser data. Analytics data is retained in aggregate form and cannot be linked to individual users." + }, + "your_rights": { + "title": "Your rights", + "p1": "You have the right to:", + "li1": "Access information about what data we collect", + "li2": "Clear your local storage and cookies at any time", + "li3": "Disconnect your authenticated session", + "li4": "Request information about our data practices", + "p2": "Since we do not collect personal data, there is typically no personal information to delete or export." + }, + "contact": { + "title": "Contact us", + "p1": "For any questions or concerns about this privacy policy, you can contact us by opening an issue on our {link}.", + "link": "GitHub repository" + }, + "changes": { + "title": "Changes to this policy", + "p1": "We may update this privacy policy from time to time. Any changes will be published on this page with an updated revision date." + } + }, + "a11y": { + "title": "accessibility", + "footer_title": "toegankelijkheid", + "welcome": "We want {app} to be usable by as many people as possible.", + "approach": { + "title": "Our approach", + "p1": "We try to follow the Web Content Accessibility Guidelines (WCAG) 2.2 and use them as a reference when building features. We don't claim full conformance with any level of WCAG — accessibility is a continual process and there is always more work to do.", + "p2": "This site is an {about}. Accessibility improvements are made incrementally as part of our regular development.", + "about_link": "open-source, community-driven project" + }, + "measures": { + "title": "What we do", + "p1": "Some of the things we aim to do across the site:", + "li1": "Use semantic HTML and ARIA attributes where appropriate.", + "li2": "Use relative text sizes so you can adjust them in your browser.", + "li3": "Support keyboard navigation throughout the interface.", + "li4": "Respect the prefers-reduced-motion and prefers-color-scheme media queries.", + "li5": "Design with sufficient color contrast in mind.", + "li6": "Ensure essential content is available without JavaScript, though some interactive features require it." + }, + "limitations": { + "title": "Known limitations", + "p1": "Some parts of the site — particularly third-party content like package READMEs — may not meet accessibility standards. We are working to improve these areas over time." + }, + "contact": { + "title": "Feedback", + "p1": "If you encounter an accessibility barrier on {app}, please let us know by opening an issue on our {link}. We take these reports seriously and will do our best to address them.", + "link": "GitHub repository" + } + } } From 81a6ea91c1d610eb42f150cea7ff85c5cd32bddb Mon Sep 17 00:00:00 2001 From: WilcoSp Date: Tue, 10 Mar 2026 15:25:31 +0100 Subject: [PATCH 03/12] translated header and it's modal & settings page --- i18n/locales/nl.json | 154 +++++++++++++++++++++---------------------- 1 file changed, 77 insertions(+), 77 deletions(-) diff --git a/i18n/locales/nl.json b/i18n/locales/nl.json index bf952d4287..836d2b266a 100644 --- a/i18n/locales/nl.json +++ b/i18n/locales/nl.json @@ -58,7 +58,7 @@ "claim_button": "Claim \"{name}\"", "want_to_claim": "Want to claim this package name?", "start_typing": "Start typing to search packages", - "algolia_disclaimer": "Powered by Algolia", + "algolia_disclaimer": "Mogelijk gemaakt door Algolia", "exact_match": "exact", "suggestion": { "user": "user", @@ -74,16 +74,16 @@ "instant_search_advisory": "{label} {state} — {action}" }, "nav": { - "main_navigation": "Main", + "main_navigation": "Hoofd", "popular_packages": "Populaire pakketten", "settings": "instellingen", - "compare": "compare", + "compare": "vergelijken", "back": "terug", "menu": "Menu", - "mobile_menu": "Navigation menu", + "mobile_menu": "Navigatie menu", "open_menu": "Open menu", "links": "Links", - "tap_to_search": "Tap to search" + "tap_to_search": "Tik om te zoeken" }, "blog": { "title": "Blog", @@ -111,51 +111,51 @@ } }, "settings": { - "title": "settings", - "tagline": "customize your npmx experience", - "meta_description": "Customize your npmx.dev experience with theme, language, and display preferences.", + "title": "instellingen", + "tagline": "Pas uw npmx.dev ervaring aan", + "meta_description": "Pas uw npmx.dev ervaring aan met thema-, taal- en weergavevoorkeuren.", "sections": { - "appearance": "Appearance", + "appearance": "Uiterlijk", "display": "Display", - "search": "Search features", - "language": "Language", - "keyboard_shortcuts": "Keyboard shortcuts" + "search": "Zoekfuncties", + "language": "Taal", + "keyboard_shortcuts": "Sneltoetsen" }, "data_source": { - "label": "Data source", - "description": "Choose where npmx gets search data. Individual package pages always use the npm registry directly.", - "npm": "npm Registry", - "npm_description": "Fetches search, org and user listings directly from the official npm registry. Authoritative, but can be slower.", + "label": "Gegevensbron", + "description": "Kies waar npmx zoekgegevens vandaan haalt. Individuele pakketpagina's gebruiken altijd rechtstreeks het npm-register.", + "npm": "npm register", + "npm_description": "Haald zoek-, org- en gebruikerslijsten rechtstreeks op uit het officiële npm-register. Betrouwbaar, maar kan trager zijn.", "algolia": "Algolia", - "algolia_description": "Uses Algolia for faster search, org and user pages." - }, - "instant_search": "Instant search", - "instant_search_description": "Navigates to the search page and updates the results as you type.", - "relative_dates": "Relative dates", - "include_types": "Include {'@'}types in install", - "include_types_description": "Add {'@'}types package to install commands for untyped packages", - "hide_platform_packages": "Hide platform-specific packages in search", - "hide_platform_packages_description": "Hide native binary packages like {'@'}esbuild/linux-x64 from results", - "theme": "Theme", - "theme_light": "Light", - "theme_dark": "Dark", - "theme_system": "System", - "language": "Language", - "help_translate": "Help translate npmx", - "accent_colors": "Accent colors", + "algolia_description": "Gebruikt Algolia voor snellere zoekopdrachten, organisatie- en gebruikerspagina's." + }, + "instant_search": "Direct zoeken", + "instant_search_description": "Navigeert naar de zoekpagina en werkt de resultaten bij terwijl u typt.", + "relative_dates": "Relatieve datums", + "include_types": "Voeg {'@'}types toe aan installatie", + "include_types_description": "Voeg {'@'}types toe aan installatie commands van pakketten zonder types.", + "hide_platform_packages": "Verberg platformspecifieke pakketten in zoekresultaten", + "hide_platform_packages_description": "Verberg native binaire pakketten zoals {'@'}esbuild/linux-x64 uit de resultaten", + "theme": "Thema", + "theme_light": "Licht", + "theme_dark": "Donker", + "theme_system": "Systeem", + "language": "Taal", + "help_translate": "Help npmx vertalen", + "accent_colors": "Accentkleuren", "clear_accent": "Clear accent color", - "translation_progress": "Translation progress", - "background_themes": "Background shade", - "keyboard_shortcuts_enabled": "Enable keyboard shortcuts", - "keyboard_shortcuts_enabled_description": "Keyboard shortcuts can be disabled if they conflict with other browser or system shortcuts" + "translation_progress": "Voortgang vertaling", + "background_themes": "Achtergrondkleur", + "keyboard_shortcuts_enabled": "Sneltoetsen inschakelen", + "keyboard_shortcuts_enabled_description": "Sneltoetsen kunnen worden uitgeschakeld als ze conflicteren met andere sneltoetsen van de browser of het systeem." }, "i18n": { "missing_keys": "{count} missing translation | {count} missing translations", - "copy_keys": "Copy keys", - "show_more_keys": "Show {count} more...", - "contribute_hint": "Help improve this translation by adding the missing keys.", - "edit_on_github": "Edit on GitHub", - "view_guide": "Translation guide" + "copy_keys": "Sleutels kopiëren", + "show_more_keys": "Weergeef {count} meer...", + "contribute_hint": "Help deze vertaling te verbeteren door de ontbrekende sleutels toe te voegen.", + "edit_on_github": "Bewerk op GitHub", + "view_guide": "Vertalen handleiding" }, "error": { "401": "Unauthorized", @@ -165,12 +165,12 @@ "default": "Something went wrong" }, "common": { - "loading": "Loading...", + "loading": "Laden...", "loading_more": "Loading more...", "loading_packages": "Loading packages...", "end_of_results": "End of results", "try_again": "Try again", - "close": "Close", + "close": "Sluiten", "or": "or", "retry": "Retry", "copy": "kopieer", @@ -590,24 +590,24 @@ }, "connector": { "modal": { - "title": "Local Connector", - "connected": "Connected", - "connected_as_user": "Connected as ~{user}", - "connected_hint": "You can now manage packages and organizations from the web UI.", - "disconnect": "Disconnect", - "run_hint": "Run the connector on your machine to enable admin features.", - "copy_command": "Copy command", - "copied": "Copied", - "paste_token": "Then paste the token below to connect:", + "title": "Lokale Connector", + "connected": "Verbonden", + "connected_as_user": "Verbonden als ~{user}", + "connected_hint": "U kunt nu pakketten en organisaties beheren vanuit de webinterface.", + "disconnect": "Ontkoppelen", + "run_hint": "Voer de connector uit op uw computer om beheerdersfuncties in te schakelen.", + "copy_command": "Kopieer command", + "copied": "Gekopieerd", + "paste_token": "Plak vervolgens het onderstaande token om verbinding te maken:", "token_label": "Token", - "token_placeholder": "paste token here...", - "advanced": "Advanced options", + "token_placeholder": "plak hier uw token...", + "advanced": "Geavanceerde opties", "port_label": "Port", - "warning": "WARNING", - "warning_text": "This allows npmx to access your npm CLI. Only connect to sites you trust.", - "connect": "Connect", - "connecting": "Connecting...", - "auto_open_url": "Automatically open auth page" + "warning": "WAARSCHUWING", + "warning_text": "Dit geeft npmx toegang tot je npm CLI. Maak alleen verbinding met sites die je vertrouwt.", + "connect": "Verbind", + "connecting": "Verbinden...", + "auto_open_url": "Automatisch authenticatiepagina openen" } }, "operations": { @@ -988,32 +988,32 @@ } }, "account_menu": { - "connect": "connect", + "connect": "verbinden", "account": "Account", "npm_cli": "npm CLI", "atmosphere": "Atmosphere", - "npm_cli_desc": "Manage packages & orgs", - "atmosphere_desc": "Social features & identity", - "connect_npm_cli": "Connect to npm CLI", - "connect_atmosphere": "Connect to Atmosphere", - "connecting": "Connecting...", - "ops": "{count} op | {count} ops" + "npm_cli_desc": "Pakketten en organisaties beheren", + "atmosphere_desc": "Sociale functies en identiteit", + "connect_npm_cli": "Verbinden met npm CLI", + "connect_atmosphere": "Verbinden met Atmosphere", + "connecting": "Verbinden...", + "ops": "{count} operatie | {count} operaties" }, "auth": { "modal": { "title": "Atmosphere", - "connected_as": "Connected as {'@'}{handle}", - "disconnect": "Disconnect", - "connect_prompt": "Connect with your Atmosphere account", + "connected_as": "Verbonden als {'@'}{handle}", + "disconnect": "Ontkoppelen", + "connect_prompt": "Verbind met je Atmosphere account", "handle_label": "Handle", - "handle_placeholder": "alice.npmx.social", - "connect": "Connect", - "create_account": "Create a new account", - "connect_bluesky": "Connect with Bluesky", - "what_is_atmosphere": "What is an Atmosphere account?", - "atmosphere_explanation": "{npmx} uses the {atproto} to power many of its social features, allowing users to own their data and use one account for all compatible applications. Once you create an account, you can use other apps like {bluesky} and {tangled} with the same account.", - "default_input_error": "Please enter a valid handle, DID, or a full PDS URL", - "profile": "Profile" + "handle_placeholder": "willem.npmx.social", + "connect": "Verbinden", + "create_account": "Nieuw account maken", + "connect_bluesky": "Verbind met Bluesky", + "what_is_atmosphere": "wat is een Atmosphere account?", + "atmosphere_explanation": "{npmx} maakt gebruik van {atproto} voor veel van zijn sociale functies, waardoor gebruikers eigenaar zijn van hun gegevens en één account kunnen gebruiken voor alle compatibele applicaties. Zodra u een account hebt aangemaakt, kunt u andere apps zoals {bluesky} en {tangled} met hetzelfde account gebruiken.", + "default_input_error": "Voer een geldige handle, DID of volledige PDS-URL in.", + "profile": "Profiel" } }, "header": { From 233417b0a2ba8f1775a40fcf203b5ddef3a67c65 Mon Sep 17 00:00:00 2001 From: WilcoSp Date: Tue, 10 Mar 2026 16:27:18 +0100 Subject: [PATCH 04/12] translated about page --- i18n/locales/nl.json | 112 +++++++++++++++++++++---------------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/i18n/locales/nl.json b/i18n/locales/nl.json index 836d2b266a..2dfa28d500 100644 --- a/i18n/locales/nl.json +++ b/i18n/locales/nl.json @@ -3,7 +3,7 @@ "seo": { "home": { "title": "npmx - Pakket Browser voor de npm Register", - "description": "een snelle, moderne browser voor de npm register. zoek, blader en ontdek pakketten met een modern uiterlijk." + "description": "Een snelle, moderne browser voor het npm register. Zoek, blader en ontdek pakketten met een moderne interface." } }, "built_at": "gebouwd op {0}", @@ -12,14 +12,14 @@ "non_affiliation_disclaimer": "niet affiliëerd met npm, Inc.", "trademark_disclaimer": "npm is een geregisteerd trademark van npm, Inc. Deze website is niet affiliëerd met npm, Inc.", "footer": { - "about": "over", + "about": "over ons", "blog": "blog", "docs": "docs", - "source": "bron", + "source": "bron code", "social": "social", "chat": "chat", "builders_chat": "bouwers", - "keyboard_shortcuts": "sneltoetsen" + "keyboard_shortcuts": "toetsenbordnavigatie" }, "shortcuts": { "section": { @@ -88,11 +88,11 @@ "blog": { "title": "Blog", "heading": "blog", - "meta_description": "Insights and updates from the npmx community", + "meta_description": "Inzichten en updates van de npmx community", "author": { "view_profile": "View {name}'s profile on Bluesky" }, - "draft_badge": "Draft", + "draft_badge": "Ontwerp", "draft_banner": "This is an unpublished draft. It may be incomplete or contain inaccuracies.", "atproto": { "view_on_bluesky": "View on Bluesky", @@ -119,7 +119,7 @@ "display": "Display", "search": "Zoekfuncties", "language": "Taal", - "keyboard_shortcuts": "Sneltoetsen" + "keyboard_shortcuts": "toetsenbordnavigatie" }, "data_source": { "label": "Gegevensbron", @@ -146,11 +146,11 @@ "clear_accent": "Clear accent color", "translation_progress": "Voortgang vertaling", "background_themes": "Achtergrondkleur", - "keyboard_shortcuts_enabled": "Sneltoetsen inschakelen", - "keyboard_shortcuts_enabled_description": "Sneltoetsen kunnen worden uitgeschakeld als ze conflicteren met andere sneltoetsen van de browser of het systeem." + "keyboard_shortcuts_enabled": "toetsenbordnavigatie inschakelen", + "keyboard_shortcuts_enabled_description": "toetsenbordnavigatie kan worden uitgeschakeld als ze conflicteren met andere sneltoetsen van de browser of het systeem." }, "i18n": { - "missing_keys": "{count} missing translation | {count} missing translations", + "missing_keys": "{count} ontbrekende vertaling | {count} ontbrekende vertalingen", "copy_keys": "Sleutels kopiëren", "show_more_keys": "Weergeef {count} meer...", "contribute_hint": "Help deze vertaling te verbeteren door de ontbrekende sleutels toe te voegen.", @@ -158,11 +158,11 @@ "view_guide": "Vertalen handleiding" }, "error": { - "401": "Unauthorized", - "404": "Page not found", - "500": "Internal server error", - "503": "Service unavailable", - "default": "Something went wrong" + "401": "Ongeautoriseerd", + "404": "Pagina niet gevonden", + "500": "Interne serverfout", + "503": "Service niet beschikbaar", + "default": "Er is iets misgegaan" }, "common": { "loading": "Laden...", @@ -916,74 +916,74 @@ } }, "about": { - "title": "About", - "heading": "about", - "meta_description": "npmx is a fast, modern browser for the npm registry. A better UX/DX for exploring npm packages.", + "title": "Over", + "heading": "over ons", + "meta_description": "npmx is een snelle, moderne browser voor de npm register. Een betere UX/DX om npm-pakketten te ontdekken.", "what_we_are": { - "title": "What we are", - "better_ux_dx": "better UX/DX", + "title": "Wat zijn we", + "better_ux_dx": "betere UX/DX", "admin_ui": "admin UI", - "description": "npmx is a {betterUxDx} for the npm package registry and tooling. We provide a fast, modern interface for exploring packages, with features like dark mode, keyboard navigation, code browsing, and connections to alternative registries like {jsr}.", - "admin_description": "We also aim to provide a better {adminUi} for managing your packages, teams, and organizations — all from the browser, powered by your local npm CLI." + "description": "npmx is een {betterUxDx} voor het npm register en bijbehorende hulpmiddelen. We bieden een snelle, moderne interface voor het ontdekken van pakketten, met functies zoals dark mode, toetsenbordnavigatie, code-browsing en koppelingen met alternatieve registers zoals {jsr}.", + "admin_description": "We streven er ook naar om een betere {adminUi} te bieden voor het beheer van uw pakketten, teams en organisaties — allemaal vanuit de browser, aangedreven door uw lokale npm CLI." }, "what_we_are_not": { - "title": "What we're not", - "not_package_manager": "Not a package manager.", - "not_registry": "Not a registry.", - "registry_description": "We don't host packages. We're just a better way to browse them.", + "title": "Wat zijn we niet", + "not_package_manager": "Geen pakketbeheerder", + "not_registry": "Niet een register.", + "registry_description": "Wij hosten geen pakketten. Wij bieden alleen een betere manier om ze te bekijken.", "package_managers_exist": "{already} {people} {building} {really} {cool} {package} {managers}.", "words": { - "already": "There are", - "people": "already", - "building": "people", - "really": "building", - "cool": "really", - "package": "cool", - "managers": "package managers" + "already": "Er zijn", + "people": "al", + "building": "mensen bezig met", + "really": "het bouwen", + "cool": "van hele", + "package": "gave", + "managers": "pakket beheerders" } }, "sponsors": { "title": "Sponsors" }, "oss_partners": { - "title": "OSS Partners" + "title": "Open Source Software Partners" }, "team": { "title": "Team", - "governance": "Governance", - "role_steward": "steward", - "role_maintainer": "maintainer", + "governance": "Bestuur", + "role_steward": "Coördinator", + "role_maintainer": "Onderhouder", "sponsor": "sponsor", - "sponsor_aria": "Sponsor {name} on GitHub" + "sponsor_aria": "Sponsor {name} op GitHub" }, "contributors": { - "title": "... and {count} more contributor | ... and {count} more contributors", - "description": "npmx is fully open source, built by an amazing community of contributors. Join us and let's build the npm browsing experience we always wanted, together.", - "loading": "Loading contributors...", - "error": "Failed to load contributors", - "view_profile": "View {name}'s GitHub profile" + "title": "... en {count} meer bijdrager | ... en {count} meer bijdragers", + "description": "npmx is volledig open source en is ontwikkeld door een geweldige community van bijdragers. Doe mee en laten we samen de npm browserervaring bouwen die we altijd al wilden hebben.", + "loading": "Laden bijdragers...", + "error": "Niet gelukt om bedragers te laden", + "view_profile": "Bekijk het GitHub-profiel van {naam}" }, "get_involved": { - "title": "Get involved", + "title": "Doe mee", "contribute": { - "title": "Contribute", - "description": "Help us build a better npm experience.", - "cta": "View on GitHub" + "title": "Bijdragen", + "description": "Help ons om een betere npm ervaring te creëren.", + "cta": "Ga naar GitHub" }, "community": { - "title": "Join the community", - "description": "Chat, ask questions, and share ideas.", - "cta": "Join Discord" + "title": "Word lid van de community", + "description": "Chat, stel vragen en deel ideeën.", + "cta": "Word lid van de Discord" }, "builders": { - "title": "Help build npmx", - "description": "Join the builders shaping the future of npmx.", - "cta": "Join Builders Discord" + "title": "Bouw mee", + "description": "Word lid van het team dat de toekomst van npmx bouwt.", + "cta": "Join de bouwsers Discord" }, "follow": { - "title": "Stay updated", - "description": "Find out the latest on npmx.", - "cta": "Follow on Bluesky" + "title": "Blijf op te hoogte", + "description": "Ontdek het laatste nieuws van npmx.", + "cta": "Volg op Bluesky" } } }, From 21f42c5f9fad766fc89247f2713d9ff38fd41312 Mon Sep 17 00:00:00 2001 From: WilcoSp Date: Tue, 10 Mar 2026 16:39:12 +0100 Subject: [PATCH 05/12] translated accessibility --- i18n/locales/nl.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/i18n/locales/nl.json b/i18n/locales/nl.json index 2dfa28d500..15e7438967 100644 --- a/i18n/locales/nl.json +++ b/i18n/locales/nl.json @@ -1300,32 +1300,32 @@ } }, "a11y": { - "title": "accessibility", + "title": "toegankelijkheid", "footer_title": "toegankelijkheid", - "welcome": "We want {app} to be usable by as many people as possible.", + "welcome": "We willen dat {app} door zoveel mogelijk mensen gebruikt kan worden.", "approach": { - "title": "Our approach", + "title": "Onze aanpak", "p1": "We try to follow the Web Content Accessibility Guidelines (WCAG) 2.2 and use them as a reference when building features. We don't claim full conformance with any level of WCAG — accessibility is a continual process and there is always more work to do.", - "p2": "This site is an {about}. Accessibility improvements are made incrementally as part of our regular development.", - "about_link": "open-source, community-driven project" + "p2": "Deze site is een {about}. Toegankelijkheidsverbeteringen worden stapsgewijs doorgevoerd als onderdeel van onze reguliere ontwikkeling.", + "about_link": "open source, community gedreven project" }, "measures": { - "title": "What we do", - "p1": "Some of the things we aim to do across the site:", - "li1": "Use semantic HTML and ARIA attributes where appropriate.", - "li2": "Use relative text sizes so you can adjust them in your browser.", - "li3": "Support keyboard navigation throughout the interface.", + "title": "Wat we doen", + "p1": "Enkele dingen die we op de hele website willen doen:", + "li1": "Gebruik waar nodig semantische HTML- en ARIA-attributen.", + "li2": "Gebruik relatieve tekstgroottes, zodat u deze in uw browser kunt aanpassen.", + "li3": "Ondersteuning voor toetsenbordnavigatie in de hele interface.", "li4": "Respect the prefers-reduced-motion and prefers-color-scheme media queries.", - "li5": "Design with sufficient color contrast in mind.", - "li6": "Ensure essential content is available without JavaScript, though some interactive features require it." + "li5": "Ontwerp met voldoende kleurcontrast in gedachten.", + "li6": "Zorg ervoor dat essentiële inhoud beschikbaar is zonder JavaScript, hoewel sommige interactieve functies dit wel vereisen." }, "limitations": { - "title": "Known limitations", + "title": "Bekende beperkingen", "p1": "Some parts of the site — particularly third-party content like package READMEs — may not meet accessibility standards. We are working to improve these areas over time." }, "contact": { "title": "Feedback", - "p1": "If you encounter an accessibility barrier on {app}, please let us know by opening an issue on our {link}. We take these reports seriously and will do our best to address them.", + "p1": "Als u een toegankelijkheidsbarrière tegenkomt op {app}, laat het ons dan weten door een issue aan te maken op onze {link}. We nemen deze meldingen serieus en zullen ons best doen om ze op te lossen.", "link": "GitHub repository" } } From b82da887dd66ad2ba8467713c53307f3d347001e Mon Sep 17 00:00:00 2001 From: WilcoSp Date: Tue, 10 Mar 2026 17:28:28 +0100 Subject: [PATCH 06/12] translated claim page and some in common --- i18n/locales/nl.json | 126 +++++++++++++++++++++---------------------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/i18n/locales/nl.json b/i18n/locales/nl.json index 15e7438967..92ee8d5d56 100644 --- a/i18n/locales/nl.json +++ b/i18n/locales/nl.json @@ -42,22 +42,22 @@ "label": "Zoek npm pakketten", "placeholder": "zoek pakketten...", "button": "zoek", - "searching": "Searching...", + "searching": "Zoeken...", "found_packages": "No packages found | Found 1 package | Found {count} packages", - "found_packages_sorted": "No results found | Sorting top {count} result | Sorting top {count} results", - "updating": "(updating...)", - "no_results": "No packages found for \"{query}\"", - "rate_limited": "Hit npm rate limit, try again in a moment", - "title": "search", - "title_search": "search: {search}", - "title_packages": "search packages", - "meta_description": "Search results for '{search}'", - "meta_description_packages": "Search npm packages", - "not_taken": "{name} is not taken", - "claim_prompt": "Claim this package name on npm", - "claim_button": "Claim \"{name}\"", - "want_to_claim": "Want to claim this package name?", - "start_typing": "Start typing to search packages", + "found_packages_sorted": "Geen resultaten gevonden | Sorting top {count} result | Sorting top {count} results", + "updating": "(updaten...)", + "no_results": "Geen pakketten gevonden voor \"{query}\"", + "rate_limited": "npm aanvraag limiet bereikt, probeer het zo nog eens.", + "title": "Zoeken", + "title_search": "Zoek: {search}", + "title_packages": "zoek pakketten", + "meta_description": "Zoek resultaten voor '{search}'", + "meta_description_packages": "Zoek npm pakketten", + "not_taken": "{name} is niet in gebruik", + "claim_prompt": "Registeer dit pakketnaam op npm", + "claim_button": "Registeer \"{name}\"", + "want_to_claim": "Wil je deze pakket naam registeren?", + "start_typing": "Start typen om te zoeken naar pakketten", "algolia_disclaimer": "Mogelijk gemaakt door Algolia", "exact_match": "exact", "suggestion": { @@ -166,18 +166,18 @@ }, "common": { "loading": "Laden...", - "loading_more": "Loading more...", - "loading_packages": "Loading packages...", - "end_of_results": "End of results", - "try_again": "Try again", + "loading_more": "Meer laden...", + "loading_packages": "pakketten laden...", + "end_of_results": "Einde van resultaten", + "try_again": "Probeer opnieuw", "close": "Sluiten", - "or": "or", - "retry": "Retry", + "or": "of", + "retry": "Herproberen", "copy": "kopieer", "copied": "gekopieerd!", - "skip_link": "Skip to main content", - "warnings": "Warnings:", - "go_back_home": "Go back home", + "skip_link": "Ga naar de hoofdinhoud", + "warnings": "Waarschuwingen:", + "go_back_home": "Ga terug naar startpagina", "per_week": "/ week", "vanity_downloads_hint": "Vanity number: no packages displayed | Vanity number: for the displayed package | Vanity number: Sum of {count} displayed packages", "sort": { @@ -739,28 +739,28 @@ }, "claim": { "modal": { - "title": "Claim Package Name", - "success": "Package claimed!", - "success_detail": "{name}{'@'}0.0.0 has been published to npm.", - "success_hint": "You can now publish new versions to this package using npm publish.", + "title": "Registeer pakket naam", + "success": "Pakket registeren!", + "success_detail": "{name}{'@'}0.0.0 is gepubliceerd op npm.", + "success_hint": "Je kunt nu nieuwe versies van dit pakket publiceren met npm publish.", "view_package": "View Package", - "invalid_name": "Invalid package name:", - "available": "This name is available!", - "taken": "This name is already taken.", - "missing_permission": "You do not have permission to add a package to scope {'@'}{scope}.", - "similar_warning": "Similar packages exist - npm may reject this name:", - "related": "Related packages:", - "scope_warning_title": "Consider using a scoped package instead", - "scope_warning_text": "Unscoped package names are a shared resource. Only claim a name if you intend to publish and maintain a package. For personal or organizational projects, use a scoped name like {'@'}{username}/{name}.", - "connect_required": "Connect to the local connector to claim this package name.", + "invalid_name": "Incorrecte pakket naam:", + "available": "Deze naam is beschikbaar!", + "taken": "Deze naam is al in gebruik.", + "missing_permission": "Je hebt geen toestemming om een pakket toe te voegen aan de scope {'@'}{scope}.", + "similar_warning": "Er bestaan vergelijkbare pakketten - npm kan deze naam afwijzen:", + "related": "Gerelateerde pakketten:", + "scope_warning_title": "Overweeg om in plaats daarvan een pakket met een scope te gebruiken.", + "scope_warning_text": "Pakketnamen zonder scope zijn een gedeelde bron. Claim alleen een naam als je van plan bent een pakket te publiceren en te onderhouden. Gebruik voor persoonlijke of organisatorische projecten een naam met een scope, zoals {'@'}{username}/{name}.", + "connect_required": "Maak verbinding met de lokale connector om deze pakketnaam te registreren.", "connect_button": "Connect to Connector", - "publish_hint": "This will publish a minimal placeholder package.", - "preview_json": "Preview package.json", - "claim_button": "Claim Package Name", - "publishing": "Publishing...", - "checking": "Checking availability...", - "failed_to_check": "Failed to check name availability", - "failed_to_claim": "Failed to claim package" + "publish_hint": "Hiermee wordt een minimaal tijdelijk pakket gepubliceerd.", + "preview_json": "Voorbeeld package.json", + "claim_button": "Registeer Pakket Naam", + "publishing": "Publiceren...", + "checking": "Controleren beschikbaarheid...", + "failed_to_check": "Kan de beschikbaarheid van de naam niet controleren", + "failed_to_claim": "Registeren niet gelukt" } }, "code": { @@ -907,7 +907,7 @@ "count": { "showing_filtered": "{filtered} of {count} package | {filtered} of {count} packages", "showing_all": "{count} package | {count} packages", - "showing_paginated": "{pageSize} of {count} package | {pageSize} of {count} packages" + "showing_paginated": "{pageSize} van {count} pakket | {pageSize} van {count} pakketten" }, "table": { "security_warning": "Security warning", @@ -1193,30 +1193,30 @@ }, "pds": { "title": "npmx.social", - "meta_description": "The official AT Protocol Personal Data Server (PDS) for the npmx community.", + "meta_description": "De officiële AT Protocol Persoonlijke Data Server (PDS) voor de npmx community.", "join": { - "title": "Join the Community", - "description": "Whether you are creating your first account on the atmosphere or migrating an existing one, you belong here. You can migrate your current account without losing your handle, your posts, or your followers.", - "migrate": "Migrate with PDS MOOver" + "title": "Word lid van de Community", + "description": "Of je nu je eerste account op Atmosphere account aanmaakt of een bestaand account migreert, je bent hier aan het juiste adres. Je kunt je huidige account migreren zonder je gebruikersnaam, je berichten of je volgers te verliezen.", + "migrate": "Migeer met PDS MOOver" }, "server": { - "title": "Server Details", - "location_label": "Location:", - "location_value": "Nuremberg, Germany", - "infrastructure_label": "Infrastructure:", - "infrastructure_value": "Hosted on Hetzner", + "title": "Server gegevens", + "location_label": "Locatie:", + "location_value": "Neurenberg, Duitsland", + "infrastructure_label": "Infrastructeur:", + "infrastructure_value": "Gehost door Hetzner", "privacy_label": "Privacy:", - "privacy_value": "Subject to strict EU Data Protection laws", - "learn_more": "Learn how npmx uses the Atmosphere" + "privacy_value": "Onderworpen aan strenge Europese wetgeving inzake gegevensbescherming", + "learn_more": "Ontdek hoe npmx gebruikmaakt van Atmosphere" }, "community": { - "title": "Who is here", - "description": "Some of the {count} accounts that are already calling npmx.social home:", - "loading": "Loading PDS community...", - "error": "Failed to load PDS community.", - "empty": "No community members to display.", - "view_profile": "View {handle}'s profile", - "new_accounts": "...plus {count} more that are new to the atmosphere" + "title": "Wie is hier", + "description": "Vele van de {count} accounts die npmx.social al als thuis beschouwen:", + "loading": "Laden PDS community...", + "error": "Laden van PDS community mislukt.", + "empty": "Geen community leden om te weergeven.", + "view_profile": "Kijk {handle}'s profiel", + "new_accounts": "...plus {count} meer die nieuw zijn in de Atmosphere" } }, "privacy_policy": { From 7b09b031a6dab44dac1f12c5291165d0bbdc62f4 Mon Sep 17 00:00:00 2001 From: WilcoSp Date: Tue, 17 Mar 2026 09:40:34 +0100 Subject: [PATCH 07/12] translated search page --- i18n/locales/nl.json | 143 ++++++++++++++++++++++++------------------- 1 file changed, 81 insertions(+), 62 deletions(-) diff --git a/i18n/locales/nl.json b/i18n/locales/nl.json index 92ee8d5d56..52c3649377 100644 --- a/i18n/locales/nl.json +++ b/i18n/locales/nl.json @@ -6,7 +6,7 @@ "description": "Een snelle, moderne browser voor het npm register. Zoek, blader en ontdek pakketten met een moderne interface." } }, - "built_at": "gebouwd op {0}", + "built_at": "gebouwd {0}", "alt_logo": "npmx logo", "tagline": "een snelle, moderne browser voor de npm register", "non_affiliation_disclaimer": "niet affiliëerd met npm, Inc.", @@ -36,14 +36,16 @@ "go_to_result": "Go to result", "open_code_view": "Open code view", "open_docs": "Open docs", - "disable_shortcuts": "You can disable keyboard shortcuts in {settings}." + "disable_shortcuts": "You can disable keyboard shortcuts in {settings}.", + "open_main": "EN TEXT TO REPLACE: Open main information", + "open_diff": "EN TEXT TO REPLACE: Open version differences" }, "search": { "label": "Zoek npm pakketten", "placeholder": "zoek pakketten...", "button": "zoek", "searching": "Zoeken...", - "found_packages": "No packages found | Found 1 package | Found {count} packages", + "found_packages": "Geen pakketten gevonden | 1 pakket gevonden | {count} pakketten gevonden", "found_packages_sorted": "Geen resultaten gevonden | Sorting top {count} result | Sorting top {count} results", "updating": "(updaten...)", "no_results": "Geen pakketten gevonden voor \"{query}\"", @@ -59,18 +61,18 @@ "want_to_claim": "Wil je deze pakket naam registeren?", "start_typing": "Start typen om te zoeken naar pakketten", "algolia_disclaimer": "Mogelijk gemaakt door Algolia", - "exact_match": "exact", + "exact_match": "precies", "suggestion": { - "user": "user", + "user": "persoon", "org": "org", - "view_user_packages": "View packages by this user", - "view_org_packages": "View packages by this organization" - }, - "instant_search": "Instant search", - "instant_search_on": "on", - "instant_search_off": "off", - "instant_search_turn_on": "turn on", - "instant_search_turn_off": "turn off", + "view_user_packages": "Bekijk pakketten van deze persoon", + "view_org_packages": "Bekijk pakketten van deze organisatie" + }, + "instant_search": "Direct zoeken", + "instant_search_on": "aan", + "instant_search_off": "uit", + "instant_search_turn_on": "aanzetten", + "instant_search_turn_off": "uitzetten", "instant_search_advisory": "{label} {state} — {action}" }, "nav": { @@ -90,7 +92,7 @@ "heading": "blog", "meta_description": "Inzichten en updates van de npmx community", "author": { - "view_profile": "View {name}'s profile on Bluesky" + "view_profile": "Bekijk {name}'s profiel op Bluesky" }, "draft_badge": "Ontwerp", "draft_banner": "This is an unpublished draft. It may be incomplete or contain inaccuracies.", @@ -226,12 +228,9 @@ "not_found": "Package Not Found", "not_found_message": "The package could not be found.", "no_description": "No description provided", - "not_latest": "(not latest)", "verified_provenance": "Verified provenance", - "view_permalink": "View permalink for this version", "navigation": "Package", "copy_name": "Copy package name", - "copy_version": "Copy package version", "deprecation": { "package": "This package has been deprecated.", "version": "This version has been deprecated.", @@ -288,6 +287,7 @@ "view_source": "View source" }, "links": { + "main": "EN TEXT TO REPLACE: main", "repo": "repo", "homepage": "homepage", "issues": "issues", @@ -359,11 +359,13 @@ "keywords_title": "Keywords", "compatibility": "Compatibility", "card": { - "publisher": "Publisher", - "published": "Published", - "weekly_downloads": "Weekly downloads", - "keywords": "Keywords", - "license": "License" + "publisher": "Publiceerder", + "published": "Gepubliceerd", + "weekly_downloads": "Weekelijkse downloads", + "keywords": "Trefwoorden", + "license": "Licentie", + "select": "EN TEXT TO REPLACE: Select package", + "select_maximum": "EN TEXT TO REPLACE: Maximum {count} packages can be selected" }, "versions": { "title": "Versions", @@ -378,6 +380,7 @@ "all_covered": "All versions are covered by tags above", "deprecated_title": "{version} (deprecated)", "view_all": "View {count} version | View all {count} versions", + "view_all_versions": "EN TEXT TO REPLACE: View all versions", "distribution_title": "Semver Group", "distribution_modal_title": "Versions", "distribution_range_date_same_year": "from {from} to {to}, {endYear}", @@ -389,7 +392,7 @@ "grouping_versions_only_recent": "Only recent", "grouping_usage_title": "Usage", "grouping_usage_all": "All", - "grouping_usage_low": "Low", + "grouping_usage_most_used": "EN TEXT TO REPLACE: Most used", "recent_versions_only_tooltip": "Show only versions published within the last year.", "show_low_usage_tooltip": "Include version groups with less than 1% of total downloads.", "y_axis_label": "Downloads", @@ -402,7 +405,12 @@ "copy_alt": { "per_version_analysis": "{version} version was downloaded {downloads} times", "general_description": "Bar chart showing per-version downloads for {versions_count} {semver_grouping_mode} versions of the {package_name} package, {date_range_label} from the {first_version} version to the {last_version} version. The most downloaded version is {max_downloaded_version} with {max_version_downloads} downloads. {per_version_analysis}. {watermark}." - } + }, + "page_title": "EN TEXT TO REPLACE: Version History", + "current_tags": "EN TEXT TO REPLACE: Current Tags", + "version_filter_placeholder": "EN TEXT TO REPLACE: Filter versions…", + "version_filter_label": "EN TEXT TO REPLACE: Filter versions", + "no_match_filter": "EN TEXT TO REPLACE: No versions match {filter}" }, "dependencies": { "title": "Dependency ({count}) | Dependencies ({count})", @@ -469,6 +477,7 @@ "data_correction": "Gegevenscorrectie", "average_window": "Gemiddelde periode", "smoothing": "Gladmaken", + "prediction": "EN TEXT TO REPLACE: Prediction", "known_anomalies": "Bekende afwijkingen", "known_anomalies_description": "Interpoleert bekende downloadpieken die worden veroorzaakt door bots of CI-problemen.", "known_anomalies_ranges": "Afwijkingsbereiken", @@ -791,7 +800,8 @@ "code": "code" }, "file_path": "File path", - "scroll_to_top": "Scroll to top" + "binary_file": "EN TEXT TO REPLACE: Binary file", + "binary_rendering_warning": "EN TEXT TO REPLACE: File type \"{contentType}\" is not supported for preview." }, "badges": { "provenance": { @@ -853,40 +863,42 @@ "secure": "Without warnings", "insecure": "With warnings" }, + "view_selected": "Bekijk geselecteerde", "sort": { - "label": "Sort packages", - "toggle_direction": "Toggle sort direction", - "ascending": "Ascending", - "descending": "Descending", - "relevance": "Relevance", + "label": "Pakketten sorteren", + "toggle_direction": "Sorteerrichting wijzigen", + "ascending": "Oplopend", + "descending": "Aflopend", + "relevance": "Relevantie", "downloads_week": "Downloads/wk", - "downloads_day": "Downloads/day", - "downloads_month": "Downloads/mo", - "downloads_year": "Downloads/yr", - "published": "Last Published", - "name": "Name", - "quality": "Quality", - "popularity": "Popularity", - "maintenance": "Maintenance", + "downloads_day": "Downloads/dag", + "downloads_month": "Downloads/ma", + "downloads_year": "Downloads/jr", + "published": "Laatst gepubliceerd", + "name": "Naam", + "quality": "Kwaliteit", + "popularity": "Populariteit", + "maintenance": "Onderhoud", "score": "Score" }, "columns": { - "title": "Columns", - "show": "Show columns", + "title": "Kolommen", + "show": "Kolommen weergeven", "reset": "Reset to defaults", - "coming_soon": "Coming soon", - "name": "Name", - "version": "Version", - "description": "Description", + "coming_soon": "Binnenkort", + "name": "Naam", + "version": "Versie", + "description": "Bescrijving", "downloads": "Downloads/wk", - "published": "Last Published", - "maintainers": "Maintainers", - "keywords": "Keywords", - "quality_score": "Quality score", - "popularity_score": "Popularity score", - "maintenance_score": "Maintenance score", - "combined_score": "Combined score", - "security": "Security" + "published": "Laatst gepubliceerd", + "maintainers": "Beheerders", + "keywords": "Trefwoorden", + "quality_score": "Kwaliteit score", + "popularity_score": "Populariteit score", + "maintenance_score": "Onderhoud score", + "combined_score": "Gecombineerde score", + "security": "Beveiliging", + "selection": "Selecteer pakket" }, "view_mode": { "label": "View mode", @@ -894,15 +906,15 @@ "table": "Table view" }, "pagination": { - "mode_label": "Pagination mode", - "infinite": "Infinite", - "paginated": "Paginated", - "items_per_page": "Items per page", - "per_page": "{count} / page", - "showing": "{start}-{end} of {total}", - "previous": "Previous page", - "next": "Next page", - "nav_label": "Pagination" + "mode_label": "Pagineringmodus", + "infinite": "Oneindig", + "paginated": "Genummerde pagina's", + "items_per_page": "Aantal resultaten per pagina", + "per_page": "{count} / pagina", + "showing": "{start}-{end} van {total}", + "previous": "Voriga pagina", + "next": "Volgende pagina", + "nav_label": "Paginering" }, "count": { "showing_filtered": "{filtered} of {count} package | {filtered} of {count} packages", @@ -912,7 +924,7 @@ "table": { "security_warning": "Security warning", "secure": "Secure", - "no_packages": "No packages found" + "no_packages": "Geen pakketten gevonden" } }, "about": { @@ -1164,6 +1176,7 @@ "file_size_warning": "{size} exceeds the 250KB limit for comparison", "compare_versions": "diff", "compare_versions_title": "Compare with latest version", + "version_selector_title": "EN TEXT TO REPLACE: Compare with version", "summary": "Summary", "deps_count": "{count} dep | {count} deps", "dependencies": "Dependencies", @@ -1328,5 +1341,11 @@ "p1": "Als u een toegankelijkheidsbarrière tegenkomt op {app}, laat het ons dan weten door een issue aan te maken op onze {link}. We nemen deze meldingen serieus en zullen ons best doen om ze op te lossen.", "link": "GitHub repository" } + }, + "action_bar": { + "title": "EN TEXT TO REPLACE: action bar", + "selection": "EN TEXT TO REPLACE: 0 selected | 1 selected | {count} selected", + "shortcut": "EN TEXT TO REPLACE: Press \"{key}\" to focus actions", + "button_close_aria_label": "EN TEXT TO REPLACE: Close action bar" } } From d353f160173a9e4d57e6a348a4f9535948f0eb98 Mon Sep 17 00:00:00 2001 From: WilcoSp Date: Tue, 17 Mar 2026 14:55:41 +0100 Subject: [PATCH 08/12] translated part of package page --- i18n/locales/nl.json | 152 +++++++++++++++++++++---------------------- 1 file changed, 76 insertions(+), 76 deletions(-) diff --git a/i18n/locales/nl.json b/i18n/locales/nl.json index 52c3649377..d2cf3a5e84 100644 --- a/i18n/locales/nl.json +++ b/i18n/locales/nl.json @@ -187,13 +187,13 @@ "role": "role", "members": "members" }, - "scroll_to_top": "Scroll to top", + "scroll_to_top": "Naar boven scrollen", "cancel": "Cancel", "save": "Save", "edit": "Edit", "error": "Error", "view_on": { - "npm": "EN TEXT TO REPLACE: view on npm", + "npm": "Bekijk op npm", "github": "EN TEXT TO REPLACE: View on GitHub", "gitlab": "EN TEXT TO REPLACE: View on GitLab", "bitbucket": "EN TEXT TO REPLACE: View on Bitbucket", @@ -225,21 +225,21 @@ } }, "package": { - "not_found": "Package Not Found", - "not_found_message": "The package could not be found.", - "no_description": "No description provided", - "verified_provenance": "Verified provenance", + "not_found": "Pakket niet gevonden", + "not_found_message": "Dit pakket kon nit gevonden worden.", + "no_description": "Geen beschrijving beschikbaar", + "verified_provenance": "Geverifieerde herkomst", "navigation": "Package", - "copy_name": "Copy package name", + "copy_name": "Kopieer pakket naam", "deprecation": { - "package": "This package has been deprecated.", - "version": "This version has been deprecated.", - "no_reason": "No reason provided" + "package": "Dit pakket wordt afgeraden.", + "version": "Deze versie wordt afgeraden.", + "no_reason": "Geen reden gegeven" }, "size_increase": { - "title_size": "Significant size increase since v{version}", - "title_deps": "Significant dependency count increase since v{version}", - "title_both": "Significant size and dependency increase since v{version}", + "title_size": "Aanzienlijke toenamen in grootte sinds v{version}", + "title_deps": "Aanzienlijke toename van het aantal dependencies sinds versie {version}", + "title_both": "Aanzienlijke toename in omvang en depen sinds v{version}", "size": "Install size increased by {percent} ({size} larger)", "deps": "{count} more dependencies" }, @@ -248,7 +248,7 @@ "native": "Dit kan vervangen worden door {replacement}, Beschikbaar sinds node {nodeVersion}.", "simple": "De {community} heeft dit pakket als overbodig gemarkeerd, met het advies: {replacement}.", "documented": "De {community} heeft aangegeven dat er voor dit pakket beter presterende alternatieven zijn.", - "none": "This package has been flagged as no longer needed, and its functionality is likely available natively in all engines.", + "none": "Dit pakket is gemarkeerd als overbodig en de functionaliteit ervan is waarschijnlijk standaard beschikbaar in alle omgevingen.", "learn_more": "Leer meer", "learn_more_above": "Lees hierboven meer.", "mdn": "MDN", @@ -256,59 +256,59 @@ "consider_no_dep": "+ Geen dependency overwegen?" }, "stats": { - "license": "License", + "license": "Licentie", "deps": "Deps", - "install_size": "Install Size", - "vulns": "Vulns", - "published": "Published", - "published_tooltip": "Date {package}{'@'}{version} was published", - "view_dependency_graph": "View dependency graph", - "inspect_dependency_tree": "Inspect dependency tree", + "install_size": "installatiegrootte", + "vulns": "Kwetsbaarheden", + "published": "Gepubliceerd", + "published_tooltip": "Datum waarop {package}{'@'}{version} is gepubliceerd", + "view_dependency_graph": "Dependency grafiek bekijken", + "inspect_dependency_tree": "Dependency structuur inspecteren", "size_tooltip": { - "unpacked": "{size} unpacked size (this package)", - "total": "{size} total unpacked size (including {count} dependency for linux-x64) | {size} total unpacked size (including all {count} dependencies for linux-x64)" + "unpacked": "{size} uitgepakte grootte (dit pakket)", + "total": "totale grootte na uitpakken (inclusief {count} dependencies voor linux-x64)" } }, "skills": { "title": "Agent Skills", "skills_available": "{count} skill available | {count} skills available", - "compatible_with": "Compatible with {tool}", - "install": "Install", - "installation_method": "Installation method", - "learn_more": "Learn more", + "compatible_with": "Compatibel met {tool}", + "install": "Installeer", + "installation_method": "Installatie methode", + "learn_more": "Leer meer", "available_skills": "Available Skills", - "click_to_expand": "Click to expand", - "no_description": "No description", + "click_to_expand": "Klik om uit te vouwen", + "no_description": "Geen beschrijving", "file_counts": { "scripts": "{count} script | {count} scripts", "refs": "{count} ref | {count} refs", - "assets": "{count} asset | {count} assets" + "assets": "{count} bestand | {count} bestanden" }, - "view_source": "View source" + "view_source": "Bekijk bron" }, "links": { - "main": "EN TEXT TO REPLACE: main", + "main": "Overzicht", "repo": "repo", - "homepage": "homepage", + "homepage": "website", "issues": "issues", "jsr": "jsr", "code": "code", "docs": "docs", - "fund": "fund", - "compare": "compare" + "fund": "Steunen", + "compare": "vergelijk" }, "likes": { - "like": "Like this package", - "unlike": "Unlike this package" + "like": "Dit pakket leuk vinden", + "unlike": "Dit pakket niet meer leuk vinden" }, "docs": { "not_available": "Docs not available", "not_available_detail": "We could not generate docs for this version." }, "get_started": { - "title": "Get started", - "pm_label": "Package manager", - "copy_command": "Copy install command", + "title": "Aan de slag", + "pm_label": "Pakketbeheerder", + "copy_command": "Kopieer installatie command", "copy_dev_command": "Copy dev install command", "dev_dependency_hint": "Usually installed as a dev dependency", "view_types": "View {package}" @@ -319,12 +319,12 @@ "view": "{packageName} has the same maintainer. Click for more details." }, "run": { - "title": "Run", + "title": "Uitvoeren", "locally": "Run locally" }, "readme": { "title": "Readme", - "no_readme": "No README available.", + "no_readme": "Geen README beschikbaar.", "toc_title": "Outline", "callout": { "note": "Note", @@ -333,28 +333,28 @@ "warning": "Warning", "caution": "Caution" }, - "copy_as_markdown": "Copy README as Markdown" + "copy_as_markdown": "kopieer README als Markdown" }, "provenance_section": { - "title": "Provenance", - "built_and_signed_on": "Built and signed on {provider}", + "title": "Herkomstverificatie", + "built_and_signed_on": "Gebouwd en getekend op {provider}", "view_build_summary": "View build summary", "source_commit": "Source Commit", "build_file": "Build File", "public_ledger": "Public Ledger", "transparency_log_entry": "Transparency log entry", - "view_more_details": "View more details", - "error_loading": "Failed to load provenance details" + "view_more_details": "Meer informatie bekijken", + "error_loading": "Het laden van de herkomstgegevens is mislukt" }, "security_downgrade": { - "title": "Trust downgrade", - "description_to_none_provenance": "This version was published without {provenance}.", - "description_to_none_trustedPublisher": "This version was published without {trustedPublishing}.", + "title": "Vertrouwensvermindering", + "description_to_none_provenance": "Deze versie is gepubliseerd zonder {provenance}.", + "description_to_none_trustedPublisher": "Deze versie is gepubliseerd zonder {trustedPublishing}.", "description_to_provenance_trustedPublisher": "This version uses {provenance} but not {trustedPublishing}.", - "fallback_install_provenance": "Install commands are pinned to {version}, the last version with provenance.", + "fallback_install_provenance": "Installatie commands zijn vastgezet op {version}, de laatste versie met geverifieerde herkomst.", "fallback_install_trustedPublisher": "Install commands are pinned to {version}, the last version with trusted publishing.", - "provenance_link_text": "provenance", - "trusted_publishing_link_text": "trusted publishing" + "provenance_link_text": "herkomstverificatie", + "trusted_publishing_link_text": "vertrouwd publiceren" }, "keywords_title": "Keywords", "compatibility": "Compatibility", @@ -519,37 +519,37 @@ "choose": "choose playground" }, "metrics": { - "esm": "ES Modules supported", - "cjs": "CommonJS supported", - "no_esm": "No ES Modules support", + "esm": "ES Modules ondersteund", + "cjs": "CommonJS ondersteund", + "no_esm": "Geen ES Modules ondersteuning", "types_label": "Types", - "types_included": "Types included", - "types_available": "Types available via {package}", - "no_types": "No TypeScript types" + "types_included": "Inclusief types", + "types_available": "Types beschikbaar via {package}", + "no_types": "Geen TypeScript types" }, "license": { "view_spdx": "View license text on SPDX", - "none": "None" + "none": "Geen" }, "vulnerabilities": { - "tree_found": "{vulns} vulnerability in {packages}/{total} packages | {vulns} vulnerabilities in {packages}/{total} packages", - "show_all_packages": "show {count} affected package | show all {count} affected packages", - "path": "path", + "tree_found": "{vulns} kwetsbaarheid in {packages}/{total} pakketten | {vulns} kwetsbaarheden in {packages}/{total} pakketten", + "show_all_packages": "toon {count} betrokken pakketten | toon alle {count} betrokken pakketten", + "path": "pad", "more": "+{count} more", - "packages_failed": "{count} package could not be checked | {count} packages could not be checked", - "scan_failed": "Could not scan for vulnerabilities", + "packages_failed": "{count} pakket kon niet worden gecontroleerd | {count} pakketten konden niet worden gecontroleerd", + "scan_failed": "Kon niet scannen voor kwetsbaarheden", "severity": { - "critical": "critical", - "high": "high", - "moderate": "moderate", - "low": "low" + "critical": "kritiek", + "high": "hoog", + "moderate": "matig", + "low": "laag" }, "fixed_in_title": "Fixed in version {version}" }, "deprecated": { "label": "Deprecated", - "tree_found": "{count} deprecated dependency | {count} deprecated dependencies", - "show_all": "show {count} deprecated package | show all {count} deprecated packages" + "tree_found": "{count} afraden dependency | {count} afgeraden dependencies", + "show_all": "toen {count} afgeraden pakket | toen alle {count} afgeraden pakketten" }, "access": { "title": "Team Access", @@ -810,7 +810,7 @@ "verified_via": "Verified: published via {provider}" }, "jsr": { - "title": "also available on JSR" + "title": "Ook verkrijgbaar op JSR" } }, "filters": { @@ -1122,8 +1122,8 @@ "description": "Wekelijks aantal downloads" }, "totalLikes": { - "label": "Likes", - "description": "Aantal likes" + "label": "vind leuk", + "description": "Aantal vind leuk" }, "lastUpdated": { "label": "Gepubliceerd", @@ -1174,8 +1174,8 @@ "lines_hidden": "{count} line hidden | {count} lines hidden", "file_too_large": "File too large to compare", "file_size_warning": "{size} exceeds the 250KB limit for comparison", - "compare_versions": "diff", - "compare_versions_title": "Compare with latest version", + "compare_versions": "verschillen", + "compare_versions_title": "Vergelijk met de laatste versie", "version_selector_title": "EN TEXT TO REPLACE: Compare with version", "summary": "Summary", "deps_count": "{count} dep | {count} deps", From 24efeed4315d52b972d96b4b7e1f4907987fb928 Mon Sep 17 00:00:00 2001 From: WilcoSp Date: Tue, 17 Mar 2026 16:50:13 +0100 Subject: [PATCH 09/12] translated the package page fully now --- i18n/locales/nl.json | 142 +++++++++++++++++++++---------------------- 1 file changed, 71 insertions(+), 71 deletions(-) diff --git a/i18n/locales/nl.json b/i18n/locales/nl.json index d2cf3a5e84..cbde0adc1a 100644 --- a/i18n/locales/nl.json +++ b/i18n/locales/nl.json @@ -314,35 +314,35 @@ "view_types": "View {package}" }, "create": { - "title": "Create new project", - "copy_command": "Copy create command", - "view": "{packageName} has the same maintainer. Click for more details." + "title": "Nieuw project aanmaken", + "copy_command": "Kopieer aanmaak command", + "view": "{packageName} heeft dezelfde beheerder. Klik hier voor meer informatie." }, "run": { "title": "Uitvoeren", - "locally": "Run locally" + "locally": "Lokaal uitvoeren" }, "readme": { "title": "Readme", "no_readme": "Geen README beschikbaar.", - "toc_title": "Outline", + "toc_title": "Inhoud", "callout": { - "note": "Note", + "note": "notitie", "tip": "Tip", - "important": "Important", - "warning": "Warning", - "caution": "Caution" + "important": "Belangrijk", + "warning": "Waarschuwing", + "caution": "Let op" }, "copy_as_markdown": "kopieer README als Markdown" }, "provenance_section": { - "title": "Herkomstverificatie", + "title": "Herkomst verificatie gegevens", "built_and_signed_on": "Gebouwd en getekend op {provider}", - "view_build_summary": "View build summary", - "source_commit": "Source Commit", - "build_file": "Build File", - "public_ledger": "Public Ledger", - "transparency_log_entry": "Transparency log entry", + "view_build_summary": "Bekijk bouw samenvatting", + "source_commit": "Bron Commit", + "build_file": "Bouw bestand", + "public_ledger": "Publiek logboek", + "transparency_log_entry": "Vermelding in het transparantielogboek", "view_more_details": "Meer informatie bekijken", "error_loading": "Het laden van de herkomstgegevens is mislukt" }, @@ -356,8 +356,8 @@ "provenance_link_text": "herkomstverificatie", "trusted_publishing_link_text": "vertrouwd publiceren" }, - "keywords_title": "Keywords", - "compatibility": "Compatibility", + "keywords_title": "Trefwoorden", + "compatibility": "Compatibiliteit", "card": { "publisher": "Publiceerder", "published": "Gepubliceerd", @@ -368,21 +368,21 @@ "select_maximum": "EN TEXT TO REPLACE: Maximum {count} packages can be selected" }, "versions": { - "title": "Versions", - "collapse": "Collapse {tag}", - "expand": "Expand {tag}", - "collapse_other": "Collapse other versions", - "expand_other": "Expand other versions", - "collapse_major": "Collapse major {major}", - "expand_major": "Expand major {major}", - "other_versions": "Other versions", - "more_tagged": "{count} more tagged", - "all_covered": "All versions are covered by tags above", - "deprecated_title": "{version} (deprecated)", + "title": "Versies", + "collapse": "{tag} inklappen", + "expand": "{tag} uitklappen", + "collapse_other": "Andere versies inklappen", + "expand_other": "Andere versies uitklappen", + "collapse_major": "Hoofd {major} inklappen", + "expand_major": "Hoofd {major} uitklappen", + "other_versions": "Andere versies", + "more_tagged": "Nog 1 getagd | Nog {count} meer getagd", + "all_covered": "Alle versies zijn gedekt bij de tags hierboven", + "deprecated_title": "{version} (afgeraden)", "view_all": "View {count} version | View all {count} versions", - "view_all_versions": "EN TEXT TO REPLACE: View all versions", + "view_all_versions": "Bekijk alle versies", "distribution_title": "Semver Group", - "distribution_modal_title": "Versions", + "distribution_modal_title": "Versies", "distribution_range_date_same_year": "from {from} to {to}, {endYear}", "distribution_range_date_multiple_years": "from {from}, {startYear} to {to}, {endYear}", "grouping_major": "Major", @@ -396,12 +396,12 @@ "recent_versions_only_tooltip": "Show only versions published within the last year.", "show_low_usage_tooltip": "Include version groups with less than 1% of total downloads.", "y_axis_label": "Downloads", - "filter_placeholder": "Filter by semver (e.g. ^3.0.0)", - "filter_invalid": "Invalid semver range", - "filter_help": "Semver range filter help", - "filter_tooltip": "Filter versions using a {link}. For example, ^3.0.0 shows all 3.x versions.", - "filter_tooltip_link": "semver range", - "no_matches": "No versions match this range", + "filter_placeholder": "Filter bij semver (bijv. ^3.0.0)", + "filter_invalid": "Ongeldige semver bereik", + "filter_help": "Semver bereikfilter hulp", + "filter_tooltip": "Filter versie bij {link}. bijvoorbeeld, ^3.0.0 laat zien 3.x versies.", + "filter_tooltip_link": "semver bereik", + "no_matches": "Geen versies in dit bereik", "copy_alt": { "per_version_analysis": "{version} version was downloaded {downloads} times", "general_description": "Bar chart showing per-version downloads for {versions_count} {semver_grouping_mode} versions of the {package_name} package, {date_range_label} from the {first_version} version to the {last_version} version. The most downloaded version is {max_downloaded_version} with {max_version_downloads} downloads. {per_version_analysis}. {watermark}." @@ -414,38 +414,38 @@ }, "dependencies": { "title": "Dependency ({count}) | Dependencies ({count})", - "list_label": "Package dependencies", - "show_all": "show {count} dep | show all {count} deps", - "optional": "optional", - "view_vulnerabilities": "View vulnerabilities", - "outdated_major": "{count} major version behind (latest: {latest}) | {count} major versions behind (latest: {latest})", + "list_label": "Pakket dependencies", + "show_all": "toon {count} dep | toon alle {count} deps", + "optional": "optioneel", + "view_vulnerabilities": "Bekijk kwetsbaarheden", + "outdated_major": "{count} subversie achter (nieuwste: {latest}) | {count} subversies achter (nieuwste: {latest})", "outdated_minor": "{count} minor version behind (latest: {latest}) | {count} minor versions behind (latest: {latest})", - "outdated_patch": "Patch update available (latest: {latest})", - "has_replacement": "This dependency has suggested replacements" + "outdated_patch": "Patch update beschikbaar (nieuwste: {latest})", + "has_replacement": "Deze dedependency heeft voorgesteld alternatieven" }, "peer_dependencies": { "title": "Peer Dependency ({count}) | Peer Dependencies ({count})", - "list_label": "Package peer dependencies", - "show_all": "show {count} peer dep | show all {count} peer deps" + "list_label": "Pakket peer dependencies", + "show_all": "toon {count} peer dep | toon alle {count} peer deps" }, "optional_dependencies": { - "title": "Optional Dependency ({count}) | Optional Dependencies ({count})", - "list_label": "Package optional dependencies", - "show_all": "show {count} optional dep | show all {count} optional deps" + "title": "Optionele Dependency ({count}) | Optionele Dependencies ({count})", + "list_label": "Optionele pakket dependencies", + "show_all": "toon {count} Optionele dep | toon alle {count} Optionele deps" }, "maintainers": { - "title": "Maintainers", - "list_label": "Package maintainers", - "you": "(you)", + "title": "Beheerders", + "list_label": "Pakket beheerders", + "you": "(u)", "via": "via {teams}", - "remove_owner": "Remove {name} as owner", - "username_to_add": "Username to add as owner", - "username_placeholder": "username...", - "add_button": "add", - "cancel_add": "Cancel adding owner", - "add_owner": "+ Add owner", - "show_more": "(show {count} more)", - "show_less": "(show fewer)" + "remove_owner": "Verwijder {name} als eigenaar", + "username_to_add": "gebruikers naam toevoegen als eigenaar", + "username_placeholder": "gebruikersnaam...", + "add_button": "toevoegen", + "cancel_add": "Annuleer toevoegen eigenaar", + "add_owner": "+ Eigenaar toevoegen", + "show_more": "(toon {count} meer)", + "show_less": "(toon minder)" }, "trends": { "granularity": "Granulariteit", @@ -456,7 +456,7 @@ "start_date": "Van", "end_date": "T/m", "loading": "Laden...", - "date_range": "{start} to {end}", + "date_range": "{start} t/m {end}", "date_range_multiline": "{start}\nt/m {end}", "download_file": "Download {fileType}", "toggle_annotator": "Schakel annotator aan/uit", @@ -471,7 +471,7 @@ "contributors_skip": "Niet weergegeven in Bijdragers (geen GitHub-repository):", "items": { "downloads": "Downloads", - "likes": "Likes", + "likes": "Vind leuk", "contributors": "Bijdragers" }, "data_correction": "Gegevenscorrectie", @@ -504,19 +504,19 @@ } }, "downloads": { - "title": "Weekly Downloads", - "community_distribution": "View community adoption distribution", - "subtitle": "Across all versions" + "title": "Weekelijkse Downloads", + "community_distribution": "Bekijk adoptiegraad", + "subtitle": "Over alle versies" }, "install_scripts": { - "title": "Install Scripts", + "title": "Installatie Scripts", "script_label": "(script)", - "npx_packages": "{count} npx package | {count} npx packages", - "currently": "currently {version}" + "npx_packages": "{count} npx pakket | {count} npx pakketten", + "currently": "huidige {version}" }, "playgrounds": { - "title": "Try it out", - "choose": "choose playground" + "title": "Probeer het uit", + "choose": "kies playground" }, "metrics": { "esm": "ES Modules ondersteund", @@ -528,7 +528,7 @@ "no_types": "Geen TypeScript types" }, "license": { - "view_spdx": "View license text on SPDX", + "view_spdx": "bekijk licentie tekst op SPDX", "none": "Geen" }, "vulnerabilities": { @@ -547,7 +547,7 @@ "fixed_in_title": "Fixed in version {version}" }, "deprecated": { - "label": "Deprecated", + "label": "Afgeraden", "tree_found": "{count} afraden dependency | {count} afgeraden dependencies", "show_all": "toen {count} afgeraden pakket | toen alle {count} afgeraden pakketten" }, From 97881fe45ca2891cf7fb6100bba70230707ceb73 Mon Sep 17 00:00:00 2001 From: WilcoSp Date: Tue, 17 Mar 2026 19:29:14 +0100 Subject: [PATCH 10/12] translated a lot more to Dutch --- i18n/locales/nl-NL.json | 7 +- i18n/locales/nl.json | 216 ++++++++++++++++++++-------------------- 2 files changed, 114 insertions(+), 109 deletions(-) diff --git a/i18n/locales/nl-NL.json b/i18n/locales/nl-NL.json index 0618235d76..d02e12b1a3 100644 --- a/i18n/locales/nl-NL.json +++ b/i18n/locales/nl-NL.json @@ -1,3 +1,8 @@ { - "$schema": "../schema.json" + "$schema": "../schema.json", + "auth": { + "modal": { + "handle_placeholder": "oranje.npmx.dev" + } + } } diff --git a/i18n/locales/nl.json b/i18n/locales/nl.json index cbde0adc1a..31f1983ff7 100644 --- a/i18n/locales/nl.json +++ b/i18n/locales/nl.json @@ -27,18 +27,18 @@ "search": "Zoeken", "package": "Pakket" }, - "focus_search": "", - "show_kbd_hints": "", + "focus_search": "Focus op zoeken", + "show_kbd_hints": "Toetsenbordtips uitlichten", "settings": "Open instellingen", "compare": "Open compare", - "compare_from_package": "Open compare (prefilled with current package)", - "navigate_results": "Navigate results", - "go_to_result": "Go to result", - "open_code_view": "Open code view", - "open_docs": "Open docs", - "disable_shortcuts": "You can disable keyboard shortcuts in {settings}.", - "open_main": "EN TEXT TO REPLACE: Open main information", - "open_diff": "EN TEXT TO REPLACE: Open version differences" + "compare_from_package": "Vergelijking openen (vooraf ingevuld met het huidige pakket)", + "navigate_results": "Navigeer resultaten", + "go_to_result": "Ga naar resultaten", + "open_code_view": "Open code weergaven", + "open_docs": "Open documentatie", + "disable_shortcuts": "Je kunt toetsenboordnavigatie uitschakelen in {instellingen}.", + "open_main": "Open pakket overzicht", + "open_diff": "Open versie verschillen" }, "search": { "label": "Zoek npm pakketten", @@ -95,20 +95,20 @@ "view_profile": "Bekijk {name}'s profiel op Bluesky" }, "draft_badge": "Ontwerp", - "draft_banner": "This is an unpublished draft. It may be incomplete or contain inaccuracies.", + "draft_banner": "Dit is een ongepubliceerd concept. Het kan onvolledig zijn of onjuistheden bevatten.", "atproto": { - "view_on_bluesky": "View on Bluesky", - "reply_on_bluesky": "Reply on Bluesky", - "likes_on_bluesky": "Likes on Bluesky", - "like_or_reply_on_bluesky": "Like this post or add your comment on Bluesky", - "no_comments_yet": "No comments yet.", - "could_not_load_comments": "Could not load comments.", - "comments": "Comments", - "loading_comments": "Loading comments...", - "updating": "Updating...", - "reply_count": "{count} reply | {count} replies", - "like_count": "{count} like | {count} likes", - "repost_count": "{count} repost | {count} reposts", + "view_on_bluesky": "Bekijk op Bluesky", + "reply_on_bluesky": "Reageer op Bluesky", + "likes_on_bluesky": "Vind leuk op Bluesky", + "like_or_reply_on_bluesky": "Vind deze post leuk of voeg een opmerking Bluesky", + "no_comments_yet": "Nog geen opmerkingen.", + "could_not_load_comments": "Kon geen opmerkingen laden.", + "comments": "Opmerkingen", + "loading_comments": "Opmerkingen laden...", + "updating": "Bijwerken...", + "reply_count": "{count} antwoord | {count} antwoorden", + "like_count": "{count} vind leuk | {count} vinden leuk", + "repost_count": "{count} herplaatsing | {count} herplaatsing", "more_replies": "{count} more reply... | {count} more replies..." } }, @@ -181,47 +181,47 @@ "warnings": "Waarschuwingen:", "go_back_home": "Ga terug naar startpagina", "per_week": "/ week", - "vanity_downloads_hint": "Vanity number: no packages displayed | Vanity number: for the displayed package | Vanity number: Sum of {count} displayed packages", + "vanity_downloads_hint": "Totaaloverzicht: geen pakketten weergegeven | Totaaloverzicht: voor het weergegeven pakket | Totaaloverzicht: som van {count} weergegeven pakketten", "sort": { - "name": "name", - "role": "role", - "members": "members" + "name": "naam", + "role": "rol", + "members": "leden" }, "scroll_to_top": "Naar boven scrollen", - "cancel": "Cancel", - "save": "Save", - "edit": "Edit", - "error": "Error", + "cancel": "Annuleer", + "save": "Opslaan", + "edit": "Wijzigen", + "error": "Fout", "view_on": { "npm": "Bekijk op npm", - "github": "EN TEXT TO REPLACE: View on GitHub", - "gitlab": "EN TEXT TO REPLACE: View on GitLab", - "bitbucket": "EN TEXT TO REPLACE: View on Bitbucket", - "codeberg": "EN TEXT TO REPLACE: View on Codeberg", - "git_repo": "EN TEXT TO REPLACE: View on Git repository", - "forgejo": "EN TEXT TO REPLACE: View on Forgejo", - "gitea": "EN TEXT TO REPLACE: View on Gitea", - "gitee": "EN TEXT TO REPLACE: View on Gitee", - "radicle": "EN TEXT TO REPLACE: View on Radicle", - "sourcehut": "EN TEXT TO REPLACE: View on SourceHut", - "tangled": "EN TEXT TO REPLACE: View on Tangled" + "github": "Bekijk op GitHub", + "gitlab": "Bekijk op GitLab", + "bitbucket": "Bekijk op Bitbucket", + "codeberg": "Bekijk op Codeberg", + "git_repo": "Bekijk op Git repository", + "forgejo": "Bekijk op Forgejo", + "gitea": "Bekijk op Gitea", + "gitee": "Bekijk op Gitee", + "radicle": "Bekijk op Radicle", + "sourcehut": "Bekijk op SourceHut", + "tangled": "Bekijk op Tangled" } }, "profile": { "display_name": "Display Name", - "description": "Description", - "no_description": "No description", + "description": "Bescrijving", + "no_description": "Geen bescrijving", "website": "Website", "website_placeholder": "https://example.com", - "likes": "Likes", + "likes": "Vind leuk", "seo_title": "{handle} - npmx", - "seo_description": "npmx profile by {handle}", - "not_found": "Profile Not Found", - "not_found_message": "The profile for {handle} could not be found.", + "seo_description": "npmx profiel bij {handle}", + "not_found": "Profiel niet gevonden", + "not_found_message": "Het profiel voor {handle} kon niet gevonden worden.", "invite": { - "message": "It doesn't look like they're using npmx yet. Want to tell them about it?", - "share_button": "Share on Bluesky", - "compose_text": "Hey {'@'}{handle}! Have you checked out npmx.dev yet? It's a browser for the npm registry that's fast, modern, and open-source.\nhttps://npmx.dev" + "message": "Het lijkt erop dat ze npmx nog niet gebruiken. Wil je ze hierop wijzen", + "share_button": "Deel op Bluesky", + "compose_text": "Hallo {'@'}{handle}! Heb je npmx.dev al bekeken? Het is een browser voor het npm register die snel, modern en open source is.\nhttps://npmx.dev" } }, "package": { @@ -229,7 +229,7 @@ "not_found_message": "Dit pakket kon nit gevonden worden.", "no_description": "Geen beschrijving beschikbaar", "verified_provenance": "Geverifieerde herkomst", - "navigation": "Package", + "navigation": "Pakket", "copy_name": "Kopieer pakket naam", "deprecation": { "package": "Dit pakket wordt afgeraden.", @@ -271,17 +271,17 @@ }, "skills": { "title": "Agent Skills", - "skills_available": "{count} skill available | {count} skills available", + "skills_available": "{count} skill beschikbaar | {count} skills beschikbaar", "compatible_with": "Compatibel met {tool}", "install": "Installeer", "installation_method": "Installatie methode", "learn_more": "Leer meer", - "available_skills": "Available Skills", + "available_skills": "Beschikbare Skills", "click_to_expand": "Klik om uit te vouwen", "no_description": "Geen beschrijving", "file_counts": { "scripts": "{count} script | {count} scripts", - "refs": "{count} ref | {count} refs", + "refs": "{count} verwijzing | {count} verwijzingen", "assets": "{count} bestand | {count} bestanden" }, "view_source": "Bekijk bron" @@ -302,16 +302,16 @@ "unlike": "Dit pakket niet meer leuk vinden" }, "docs": { - "not_available": "Docs not available", - "not_available_detail": "We could not generate docs for this version." + "not_available": "Geen documentatie beschikbaar", + "not_available_detail": "We kunnen geen documentatie genereren van deze versie" }, "get_started": { "title": "Aan de slag", "pm_label": "Pakketbeheerder", "copy_command": "Kopieer installatie command", - "copy_dev_command": "Copy dev install command", - "dev_dependency_hint": "Usually installed as a dev dependency", - "view_types": "View {package}" + "copy_dev_command": "Kopieer developer installatie command", + "dev_dependency_hint": "Wordt meestal geïnstalleerd als developer dependency", + "view_types": "Bekijk {package}" }, "create": { "title": "Nieuw project aanmaken", @@ -350,7 +350,7 @@ "title": "Vertrouwensvermindering", "description_to_none_provenance": "Deze versie is gepubliseerd zonder {provenance}.", "description_to_none_trustedPublisher": "Deze versie is gepubliseerd zonder {trustedPublishing}.", - "description_to_provenance_trustedPublisher": "This version uses {provenance} but not {trustedPublishing}.", + "description_to_provenance_trustedPublisher": "Deze versie gebruikt {provenance} maar niet {trustedPublishing}.", "fallback_install_provenance": "Installatie commands zijn vastgezet op {version}, de laatste versie met geverifieerde herkomst.", "fallback_install_trustedPublisher": "Install commands are pinned to {version}, the last version with trusted publishing.", "provenance_link_text": "herkomstverificatie", @@ -364,8 +364,8 @@ "weekly_downloads": "Weekelijkse downloads", "keywords": "Trefwoorden", "license": "Licentie", - "select": "EN TEXT TO REPLACE: Select package", - "select_maximum": "EN TEXT TO REPLACE: Maximum {count} packages can be selected" + "select": "Selecteer pakket", + "select_maximum": "Er kunnen maximaal {count} pakketten worden geselecteerd" }, "versions": { "title": "Versies", @@ -379,22 +379,22 @@ "more_tagged": "Nog 1 getagd | Nog {count} meer getagd", "all_covered": "Alle versies zijn gedekt bij de tags hierboven", "deprecated_title": "{version} (afgeraden)", - "view_all": "View {count} version | View all {count} versions", + "view_all": "Bekijk {count} versie | Bekijk alle {count} versies", "view_all_versions": "Bekijk alle versies", - "distribution_title": "Semver Group", + "distribution_title": "Semver Groep", "distribution_modal_title": "Versies", - "distribution_range_date_same_year": "from {from} to {to}, {endYear}", - "distribution_range_date_multiple_years": "from {from}, {startYear} to {to}, {endYear}", - "grouping_major": "Major", - "grouping_minor": "Minor", - "grouping_versions_title": "Versions", - "grouping_versions_all": "All", - "grouping_versions_only_recent": "Only recent", - "grouping_usage_title": "Usage", - "grouping_usage_all": "All", - "grouping_usage_most_used": "EN TEXT TO REPLACE: Most used", - "recent_versions_only_tooltip": "Show only versions published within the last year.", - "show_low_usage_tooltip": "Include version groups with less than 1% of total downloads.", + "distribution_range_date_same_year": "van {from} t/m {to}, {endYear}", + "distribution_range_date_multiple_years": "van {from}, {startYear} t/m {to}, {endYear}", + "grouping_major": "Hoofd", + "grouping_minor": "Sub", + "grouping_versions_title": "Versies", + "grouping_versions_all": "Alle", + "grouping_versions_only_recent": "Alleen recent", + "grouping_usage_title": "Gebruik", + "grouping_usage_all": "Alle", + "grouping_usage_most_used": "Meest gebruikt", + "recent_versions_only_tooltip": "Toon alleen versies die in het afgelopen jaar zijn gepubliceerd.", + "show_low_usage_tooltip": "Inclusief versiegroepen met minder dan 1% van het totale aantal downloads.", "y_axis_label": "Downloads", "filter_placeholder": "Filter bij semver (bijv. ^3.0.0)", "filter_invalid": "Ongeldige semver bereik", @@ -403,13 +403,13 @@ "filter_tooltip_link": "semver bereik", "no_matches": "Geen versies in dit bereik", "copy_alt": { - "per_version_analysis": "{version} version was downloaded {downloads} times", - "general_description": "Bar chart showing per-version downloads for {versions_count} {semver_grouping_mode} versions of the {package_name} package, {date_range_label} from the {first_version} version to the {last_version} version. The most downloaded version is {max_downloaded_version} with {max_version_downloads} downloads. {per_version_analysis}. {watermark}." + "per_version_analysis": "{version} versie was gedownloadt {downloads} keren", + "general_description": "Staafdiagram met het aantal downloads per versie voor {versions_count} {semver_grouping_mode}-versies van het pakket {package_name}, {date_range_label} van versie {first_version} tot versie {last_version}. De meest gedownloade versie is {max_downloaded_version} met {max_version_downloads} downloads. {per_version_analysis}. {watermark}." }, - "page_title": "EN TEXT TO REPLACE: Version History", + "page_title": "Versie geschiedenis", "current_tags": "EN TEXT TO REPLACE: Current Tags", - "version_filter_placeholder": "EN TEXT TO REPLACE: Filter versions…", - "version_filter_label": "EN TEXT TO REPLACE: Filter versions", + "version_filter_placeholder": "Filter versies.", + "version_filter_label": "Filter versies", "no_match_filter": "EN TEXT TO REPLACE: No versions match {filter}" }, "dependencies": { @@ -703,17 +703,17 @@ "cancel_add": "Cancel adding member", "add_member": "+ Add member" }, - "public_packages": "{count} public package | {count} public packages", + "public_packages": "{count} publieke pakket | {count} publieke pakketten", "page": { - "packages_title": "Packages", - "members_tab": "Members", + "packages_title": "Pakketten", + "members_tab": "Leden", "teams_tab": "Teams", - "no_packages": "No public packages found for", - "no_packages_hint": "This organization may not exist or has no public packages.", - "failed_to_load": "Failed to load organization packages", - "no_match": "No packages match \"{query}\"", - "not_found": "Organization not found", - "not_found_message": "The organization \"{'@'}{name}\" does not exist on npm" + "no_packages": "Geen publieke pakketten gevonden voor", + "no_packages_hint": "Deze organisatie bestaat misschien niet of heeft geen publieke pakketten.", + "failed_to_load": "Het laden van de pakketten van de organisatie is mislukt", + "no_match": "Geen pakket kwam overeen met \"{query}\"", + "not_found": "Organisatie niet gevonden", + "not_found_message": "De organisatie \"{'@'}{name}\" bestaat niet op npm" } }, "user": { @@ -773,35 +773,35 @@ } }, "code": { - "files_label": "Files", + "files_label": "Bestanden", "no_files": "No files in this directory", "root": "root", "lines": "{count} line | {count} lines", - "toggle_tree": "Toggle file tree", - "close_tree": "Close file tree", - "copy_link": "Copy link", + "toggle_tree": "Bestandsstructuur weergeven/verbergen", + "close_tree": "Sluit bestand structuur", + "copy_link": "Kopieer link", "raw": "Raw", - "view_raw": "View raw file", - "file_too_large": "File too large to preview", - "file_size_warning": "{size} exceeds the 500KB limit for syntax highlighting", - "failed_to_load": "Failed to load file", - "unavailable_hint": "The file may be too large or unavailable", - "version_required": "Version is required to browse code", + "view_raw": "Bekijk origineel bestand", + "file_too_large": "Bestand te groot om te weergeven", + "file_size_warning": "{size} overschrijdt de limiet van 500 KB voor syntaxisaccentuering", + "failed_to_load": "Het is niet gelukt om bestand te laden", + "unavailable_hint": "Bestand is misschien te groot of niet beschikbaar", + "version_required": "Een versie is verplicht om de code te bekijken", "go_to_package": "Go to package", - "loading_tree": "Loading file tree...", - "failed_to_load_tree": "Failed to load files for this package version", + "loading_tree": "Bestand structuur laden...", + "failed_to_load_tree": "Het is niet gelukt om bestanden te laden voor deze versie", "back_to_package": "Back to package", "table": { "name": "Name", "size": "Size" }, "markdown_view_mode": { - "preview": "preview", + "preview": "voorbeeld", "code": "code" }, - "file_path": "File path", - "binary_file": "EN TEXT TO REPLACE: Binary file", - "binary_rendering_warning": "EN TEXT TO REPLACE: File type \"{contentType}\" is not supported for preview." + "file_path": "Bestand pad", + "binary_file": "Binair bestand", + "binary_rendering_warning": "Bestand type \"{contentType}\" wordt niet ondersteund om te weergeven." }, "badges": { "provenance": { @@ -1018,7 +1018,7 @@ "disconnect": "Ontkoppelen", "connect_prompt": "Verbind met je Atmosphere account", "handle_label": "Handle", - "handle_placeholder": "willem.npmx.social", + "handle_placeholder": "alice.npmx.social", "connect": "Verbinden", "create_account": "Nieuw account maken", "connect_bluesky": "Verbind met Bluesky", From f7f4da2885188d0ac826e5901e62455db3eaa544 Mon Sep 17 00:00:00 2001 From: WilcoSp Date: Fri, 20 Mar 2026 13:46:04 +0100 Subject: [PATCH 11/12] translated till pacakge.trends.copy_alt --- i18n/locales/nl.json | 90 +++++++++++++++++++++++++++++--------------- 1 file changed, 60 insertions(+), 30 deletions(-) diff --git a/i18n/locales/nl.json b/i18n/locales/nl.json index 31f1983ff7..b0a80ee9ac 100644 --- a/i18n/locales/nl.json +++ b/i18n/locales/nl.json @@ -30,7 +30,7 @@ "focus_search": "Focus op zoeken", "show_kbd_hints": "Toetsenbordtips uitlichten", "settings": "Open instellingen", - "compare": "Open compare", + "compare": "Open vergelijken", "compare_from_package": "Vergelijking openen (vooraf ingevuld met het huidige pakket)", "navigate_results": "Navigeer resultaten", "go_to_result": "Ga naar resultaten", @@ -56,7 +56,7 @@ "meta_description": "Zoek resultaten voor '{search}'", "meta_description_packages": "Zoek npm pakketten", "not_taken": "{name} is niet in gebruik", - "claim_prompt": "Registeer dit pakketnaam op npm", + "claim_prompt": "Registeer deze pakketnaam op npm", "claim_button": "Registeer \"{name}\"", "want_to_claim": "Wil je deze pakket naam registeren?", "start_typing": "Start typen om te zoeken naar pakketten", @@ -96,6 +96,7 @@ }, "draft_badge": "Ontwerp", "draft_banner": "Dit is een ongepubliceerd concept. Het kan onvolledig zijn of onjuistheden bevatten.", + "no_posts": "Geen blog posts gevonden", "atproto": { "view_on_bluesky": "Bekijk op Bluesky", "reply_on_bluesky": "Reageer op Bluesky", @@ -109,7 +110,7 @@ "reply_count": "{count} antwoord | {count} antwoorden", "like_count": "{count} vind leuk | {count} vinden leuk", "repost_count": "{count} herplaatsing | {count} herplaatsing", - "more_replies": "{count} more reply... | {count} more replies..." + "more_replies": "{count} meer reactie... | {count} meer reacties..." } }, "settings": { @@ -138,6 +139,8 @@ "include_types_description": "Voeg {'@'}types toe aan installatie commands van pakketten zonder types.", "hide_platform_packages": "Verberg platformspecifieke pakketten in zoekresultaten", "hide_platform_packages_description": "Verberg native binaire pakketten zoals {'@'}esbuild/linux-x64 uit de resultaten", + "enable_graph_pulse_loop": "Schakel het herhalen van het pulseffect in de minigrafiek in", + "enable_graph_pulse_loop_description": "Schakel een doorlopende pulsanimatie in op de grafiek met wekelijkse downloads. Deze animatie kan voor sommige gebruikers storend zijn.", "theme": "Thema", "theme_light": "Licht", "theme_dark": "Donker", @@ -145,7 +148,7 @@ "language": "Taal", "help_translate": "Help npmx vertalen", "accent_colors": "Accentkleuren", - "clear_accent": "Clear accent color", + "clear_accent": "Geen accentkleur", "translation_progress": "Voortgang vertaling", "background_themes": "Achtergrondkleur", "keyboard_shortcuts_enabled": "toetsenbordnavigatie inschakelen", @@ -205,10 +208,12 @@ "radicle": "Bekijk op Radicle", "sourcehut": "Bekijk op SourceHut", "tangled": "Bekijk op Tangled" - } + }, + "collapse": "inklappen", + "expand": "uitklappen" }, "profile": { - "display_name": "Display Name", + "display_name": "Profiel naam", "description": "Bescrijving", "no_description": "Geen bescrijving", "website": "Website", @@ -240,8 +245,8 @@ "title_size": "Aanzienlijke toenamen in grootte sinds v{version}", "title_deps": "Aanzienlijke toename van het aantal dependencies sinds versie {version}", "title_both": "Aanzienlijke toename in omvang en depen sinds v{version}", - "size": "Install size increased by {percent} ({size} larger)", - "deps": "{count} more dependencies" + "size": "De installatiegrootte is toegenomen met {percent} ({size} groter)", + "deps": "{count} meer dependencies" }, "replacement": { "title": "U heeft waarschijnlijk dit niet nodig", @@ -284,7 +289,8 @@ "refs": "{count} verwijzing | {count} verwijzingen", "assets": "{count} bestand | {count} bestanden" }, - "view_source": "Bekijk bron" + "view_source": "Bekijk bron", + "skills_cli": "skills CLI" }, "links": { "main": "Overzicht", @@ -352,7 +358,7 @@ "description_to_none_trustedPublisher": "Deze versie is gepubliseerd zonder {trustedPublishing}.", "description_to_provenance_trustedPublisher": "Deze versie gebruikt {provenance} maar niet {trustedPublishing}.", "fallback_install_provenance": "Installatie commands zijn vastgezet op {version}, de laatste versie met geverifieerde herkomst.", - "fallback_install_trustedPublisher": "Install commands are pinned to {version}, the last version with trusted publishing.", + "fallback_install_trustedPublisher": "Installatie commands zijn vastgezet op {version}, the last version with vertrouwd publiceren.", "provenance_link_text": "herkomstverificatie", "trusted_publishing_link_text": "vertrouwd publiceren" }, @@ -388,9 +394,11 @@ "grouping_major": "Hoofd", "grouping_minor": "Sub", "grouping_versions_title": "Versies", + "grouping_versions_about": "Over versiegroepering", "grouping_versions_all": "Alle", "grouping_versions_only_recent": "Alleen recent", "grouping_usage_title": "Gebruik", + "grouping_usage_about": "Over gebruiksgroepering", "grouping_usage_all": "Alle", "grouping_usage_most_used": "Meest gebruikt", "recent_versions_only_tooltip": "Toon alleen versies die in het afgelopen jaar zijn gepubliceerd.", @@ -407,10 +415,10 @@ "general_description": "Staafdiagram met het aantal downloads per versie voor {versions_count} {semver_grouping_mode}-versies van het pakket {package_name}, {date_range_label} van versie {first_version} tot versie {last_version}. De meest gedownloade versie is {max_downloaded_version} met {max_version_downloads} downloads. {per_version_analysis}. {watermark}." }, "page_title": "Versie geschiedenis", - "current_tags": "EN TEXT TO REPLACE: Current Tags", + "current_tags": "Huidige tags", "version_filter_placeholder": "Filter versies.", "version_filter_label": "Filter versies", - "no_match_filter": "EN TEXT TO REPLACE: No versions match {filter}" + "no_match_filter": "Geen versies die voldoen aan {filter}" }, "dependencies": { "title": "Dependency ({count}) | Dependencies ({count})", @@ -418,10 +426,11 @@ "show_all": "toon {count} dep | toon alle {count} deps", "optional": "optioneel", "view_vulnerabilities": "Bekijk kwetsbaarheden", - "outdated_major": "{count} subversie achter (nieuwste: {latest}) | {count} subversies achter (nieuwste: {latest})", - "outdated_minor": "{count} minor version behind (latest: {latest}) | {count} minor versions behind (latest: {latest})", + "outdated_major": "{count} hoofdversie achter (nieuwste: {latest}) | {count} hoofdversies achter (nieuwste: {latest})", + "outdated_minor": "{count} subversie achter (nieuwste: {latest}) | {count} subversies achter (nieuwste: {latest})", "outdated_patch": "Patch update beschikbaar (nieuwste: {latest})", - "has_replacement": "Deze dedependency heeft voorgesteld alternatieven" + "has_replacement": "Deze dedependency heeft voorgesteld alternatieven", + "vulnerabilities_count": "{count} kwetsbaarheid | {count} kwetsbaarheden" }, "peer_dependencies": { "title": "Peer Dependency ({count}) | Peer Dependencies ({count})", @@ -445,7 +454,8 @@ "cancel_add": "Annuleer toevoegen eigenaar", "add_owner": "+ Eigenaar toevoegen", "show_more": "(toon {count} meer)", - "show_less": "(toon minder)" + "show_less": "(toon minder)", + "maintainer_template": "{avatar} {char126}{name}" }, "trends": { "granularity": "Granulariteit", @@ -477,7 +487,7 @@ "data_correction": "Gegevenscorrectie", "average_window": "Gemiddelde periode", "smoothing": "Gladmaken", - "prediction": "EN TEXT TO REPLACE: Prediction", + "prediction": "Voorspelling", "known_anomalies": "Bekende afwijkingen", "known_anomalies_description": "Interpoleert bekende downloadpieken die worden veroorzaakt door bots of CI-problemen.", "known_anomalies_ranges": "Afwijkingsbereiken", @@ -487,20 +497,20 @@ "known_anomalies_contribute": "Anomaliegegevens bijdragen", "apply_correction": "Correctie toepassen", "copy_alt": { - "trend_none": "mostly flat", - "trend_strong": "strong", - "trend_weak": "weak", + "trend_none": "voornamelijk plat", + "trend_strong": "Sterk", + "trend_weak": "zwak", "trend_undefined": "undefined (insufficient data)", "button_label": "Alternatieve tekst kopiëren", - "watermark": "At the bottom, a watermark reads \"./npmx a fast, modern browser for the npm registry\"", - "analysis": "{package_name} starts at {start_value} and ends at {end_value}, showing a {trend} trend with a slope of {downloads_slope} downloads per time interval", - "estimation": "The final value is an estimate based on partial data for the current period.", - "estimations": "The final values are estimates based on partial data for the current period.", - "compare": "Package download comparison line chart for: {packages}.", - "single_package": "Downloads line chart for the {package} package.", - "general_description": "The Y axis represents the number of downloads. The X axis represents the date range, from {start_date} to {end_date}, with a {granularity} time period.{estimation_notice} {packages_analysis}. {watermark}.", - "facet_bar_general_description": "EN TEXT TO REPLACE: Horizontal bar chart for: {packages}, comparing {facet} ({description}). {facet_analysis} {watermark}.", - "facet_bar_analysis": "EN TEXT TO REPLACE: {package_name} has a value of {value}." + "watermark": "Onderaan staat in een watermerk: \"./npmx @:tagline\"", + "analysis": "{package_name} begint op {start_value} en eindigt op {end_value}, wat een {trend} trend laat zien met een helling van {downloads_slope} downloads per tijdsinterval.", + "estimation": "De laatste waarde is een schatting, gebaseerd op onvolledige gegevens voor de huidige periode.", + "estimations": "De laatste waardes zijn een schatting, gebaseerd op onvolledige gegevens voor de huidige periode.", + "compare": "Lijngrafiek ter vergelijking van pakketdownloads voor: {packages}.", + "single_package": "Downloadgrafiek voor pakket {package}.", + "general_description": "De Y-as toont het aantal downloads. De X-as toont de periode, van {start_date} tot {end_date}, met een {granularity} tijdsinterval. {estimation_notice} {packages_analysis}. {watermark}.", + "facet_bar_general_description": " Horizontaal staafdiagram voor: {packages}, ter vergelijking van {facet} ({description}). {facet_analysis} {watermark}.", + "facet_bar_analysis": "{package_name} heeft een waarde van {value}." } }, "downloads": { @@ -864,6 +874,7 @@ "insecure": "With warnings" }, "view_selected": "Bekijk geselecteerde", + "clear_selected_label": "EN TEXT TO REPLACE: Clear selected", "sort": { "label": "Pakketten sorteren", "toggle_direction": "Sorteerrichting wijzigen", @@ -1176,6 +1187,14 @@ "file_size_warning": "{size} exceeds the 250KB limit for comparison", "compare_versions": "verschillen", "compare_versions_title": "Vergelijk met de laatste versie", + "comparing_versions_label": "EN TEXT TO REPLACE: Comparing versions...", + "version_back_to_package": "EN TEXT TO REPLACE: Back to package", + "version_error_message": "EN TEXT TO REPLACE: Failed to compare versions.", + "version_invalid_url_format": { + "hint": "EN TEXT TO REPLACE: Invalid comparison URL. Use format: {0}", + "from_version": "EN TEXT TO REPLACE: from", + "to_version": "EN TEXT TO REPLACE: to" + }, "version_selector_title": "EN TEXT TO REPLACE: Compare with version", "summary": "Summary", "deps_count": "{count} dep | {count} deps", @@ -1202,7 +1221,18 @@ "files_button": "Files", "select_file_prompt": "Select a file from the sidebar to view its diff", "close_files_panel": "Close files panel", - "filter_files_label": "Filter files by change type" + "filter_files_label": "Filter files by change type", + "change_ratio": "EN TEXT TO REPLACE: Change ratio", + "char_edits": "EN TEXT TO REPLACE: Char edits", + "diff_distance": "EN TEXT TO REPLACE: Diff distance", + "loading_diff": "EN TEXT TO REPLACE: Loading diff...", + "loading_diff_error": "EN TEXT TO REPLACE: Failed to load diff", + "merge_modified_lines": "EN TEXT TO REPLACE: Merge modified lines", + "no_content_changes": "EN TEXT TO REPLACE: No content changes detected", + "options": "EN TEXT TO REPLACE: Options", + "view_file": "EN TEXT TO REPLACE: View file", + "view_in_code_browser": "EN TEXT TO REPLACE: View in code browser", + "word_wrap": "EN TEXT TO REPLACE: Word wrap" }, "pds": { "title": "npmx.social", From 0fb1991f1236b1aaa636fef63dafcbd6f24827ff Mon Sep 17 00:00:00 2001 From: WilcoSp Date: Fri, 20 Mar 2026 16:57:04 +0100 Subject: [PATCH 12/12] translated team access --- i18n/locales/nl.json | 58 ++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/i18n/locales/nl.json b/i18n/locales/nl.json index b0a80ee9ac..1ef7499c5a 100644 --- a/i18n/locales/nl.json +++ b/i18n/locales/nl.json @@ -545,7 +545,7 @@ "tree_found": "{vulns} kwetsbaarheid in {packages}/{total} pakketten | {vulns} kwetsbaarheden in {packages}/{total} pakketten", "show_all_packages": "toon {count} betrokken pakketten | toon alle {count} betrokken pakketten", "path": "pad", - "more": "+{count} more", + "more": "+{count} meer", "packages_failed": "{count} pakket kon niet worden gecontroleerd | {count} pakketten konden niet worden gecontroleerd", "scan_failed": "Kon niet scannen voor kwetsbaarheden", "severity": { @@ -554,7 +554,7 @@ "moderate": "matig", "low": "laag" }, - "fixed_in_title": "Fixed in version {version}" + "fixed_in_title": "Opgelost in versie {version}" }, "deprecated": { "label": "Afgeraden", @@ -562,44 +562,44 @@ "show_all": "toen {count} afgeraden pakket | toen alle {count} afgeraden pakketten" }, "access": { - "title": "Team Access", - "refresh": "Refresh team access", - "list_label": "Team access list", - "owner": "owner", + "title": "Team toegang", + "refresh": "Team toegang vernieuwen", + "list_label": "Team toegang lijst", + "owner": "eigenaar", "rw": "rw", "ro": "ro", - "revoke_access": "Revoke {name} access", - "no_access": "No team access configured", - "select_team_label": "Select team", - "loading_teams": "Loading teams...", - "select_team": "Select team", - "permission_label": "Permission level", + "revoke_access": "Toegang van {name} intrekken", + "no_access": "Er is geen teamtoegang geconfigureerd", + "select_team_label": "Selecteer team", + "loading_teams": "Teams laden...", + "select_team": "Selecteer team", + "permission_label": "Toegangsniveau", "permission": { - "read_only": "read-only", - "read_write": "read-write" + "read_only": "lezen", + "read_write": "lezen-schrijven" }, - "grant_button": "grant", - "cancel_grant": "Cancel granting access", - "grant_access": "+ Grant team access" + "grant_button": "verlenen", + "cancel_grant": "Toegang verlenen annuleren", + "grant_access": "+ team toegang verlenen" }, "list": { - "filter_label": "Filter packages", - "filter_placeholder": "Filter packages...", - "sort_label": "Sort packages", - "showing_count": "Showing {filtered} of {total} packages" + "filter_label": "Filter pakketten", + "filter_placeholder": "Filter pakketten...", + "sort_label": "sorteer pakketten", + "showing_count": "{filtered} van {total} pakketten weergeven" }, "skeleton": { - "loading": "Loading package details", - "maintainers": "Maintainers", - "keywords": "Keywords", - "versions": "Versions", + "loading": "Pakket informatie laden", + "maintainers": "Beheerders", + "keywords": "Trefwoorden", + "versions": "Versies", "dependencies": "Dependencies" }, "sort": { - "downloads": "Most downloaded", - "published": "Recently published", - "name_asc": "Name (A-Z)", - "name_desc": "Name (Z-A)" + "downloads": "Meest gedownload", + "published": "Recent gepubliceerd", + "name_asc": "Naam (A-Z)", + "name_desc": "Naam (Z-A)" }, "size": { "b": "{size} B",