forked from
npmx.dev/npmx.dev
[READ-ONLY]
a fast, modern browser for the npm registry
1{
2 "seo": {
3 "home": {
4 "title": "npmx - Package Browser for the npm Registry",
5 "description": "a fast, modern browser for the npm registry. Search, browse, and explore packages with a modern interface."
6 }
7 },
8 "built_at": "built {0}",
9 "alt_logo": "npmx logo",
10 "tagline": "a fast, modern browser for the npm registry",
11 "non_affiliation_disclaimer": "not affiliated with npm, Inc.",
12 "trademark_disclaimer": "npm is a registered trademark of npm, Inc. This site is not affiliated with npm, Inc.",
13 "footer": {
14 "about": "about",
15 "docs": "docs",
16 "source": "source",
17 "social": "social",
18 "chat": "chat",
19 "keyboard_shortcuts": "keyboard shortcuts"
20 },
21 "shortcuts": {
22 "section": {
23 "global": "Global",
24 "search": "Search",
25 "package": "Package"
26 },
27 "focus_search": "Focus search",
28 "show_kbd_hints": "Highlight keyboard hints",
29 "settings": "Open settings",
30 "compare": "Open compare",
31 "compare_from_package": "Open compare (prefilled with current package)",
32 "navigate_results": "Navigate results",
33 "go_to_result": "Go to result",
34 "open_code_view": "Open code view",
35 "open_docs": "Open docs"
36 },
37 "search": {
38 "label": "Search npm packages",
39 "placeholder": "search packages...",
40 "button": "search",
41 "searching": "Searching...",
42 "found_packages": "No packages found | Found 1 package | Found {count} packages",
43 "found_packages_sorted": "No results found | Sorting top {count} result | Sorting top {count} results",
44 "updating": "(updating...)",
45 "no_results": "No packages found for \"{query}\"",
46 "rate_limited": "Hit npm rate limit, try again in a moment",
47 "title": "search",
48 "title_search": "search: {search}",
49 "title_packages": "search packages",
50 "meta_description": "Search results for '{search}'",
51 "meta_description_packages": "Search npm packages",
52 "not_taken": "{name} is not taken",
53 "claim_prompt": "Claim this package name on npm",
54 "claim_button": "Claim \"{name}\"",
55 "want_to_claim": "Want to claim this package name?",
56 "start_typing": "Start typing to search packages",
57 "algolia_disclaimer": "Powered by Algolia",
58 "exact_match": "exact",
59 "suggestion": {
60 "user": "user",
61 "org": "org",
62 "view_user_packages": "View packages by this user",
63 "view_org_packages": "View packages by this organisation"
64 }
65 },
66 "nav": {
67 "main_navigation": "Main",
68 "popular_packages": "Popular packages",
69 "settings": "settings",
70 "compare": "compare",
71 "back": "back",
72 "menu": "Menu",
73 "mobile_menu": "Navigation menu",
74 "open_menu": "Open menu",
75 "links": "Links",
76 "tap_to_search": "Tap to search"
77 },
78 "settings": {
79 "title": "settings",
80 "tagline": "customise your npmx experience",
81 "meta_description": "Customize your npmx.dev experience with theme, language, and display preferences.",
82 "sections": {
83 "appearance": "Appearance",
84 "display": "Display",
85 "search": "Data source",
86 "language": "Language"
87 },
88 "data_source": {
89 "label": "Data source",
90 "description": "Choose where npmx gets search data. Individual package pages always use the npm registry directly.",
91 "npm": "npm Registry",
92 "npm_description": "Fetches search, org and user listings directly from the official npm registry. Authoritative, but can be slower.",
93 "algolia": "Algolia",
94 "algolia_description": "Uses Algolia for faster search, org and user pages."
95 },
96 "relative_dates": "Relative dates",
97 "include_types": "Include {'@'}types in install",
98 "include_types_description": "Add {'@'}types package to install commands for untyped packages",
99 "hide_platform_packages": "Hide platform-specific packages in search",
100 "hide_platform_packages_description": "Hide native binary packages like {'@'}esbuild/linux-x64 from results",
101 "theme": "Theme",
102 "theme_light": "Light",
103 "theme_dark": "Dark",
104 "theme_system": "System",
105 "language": "Language",
106 "help_translate": "Help translate npmx",
107 "accent_colors": "Accent colors",
108 "clear_accent": "Clear accent colour",
109 "translation_progress": "Translation progress",
110 "background_themes": "Background shade"
111 },
112 "i18n": {
113 "missing_keys": "{count} missing translation | {count} missing translations",
114 "copy_keys": "Copy keys",
115 "show_more_keys": "Show {count} more...",
116 "contribute_hint": "Help improve this translation by adding the missing keys.",
117 "edit_on_github": "Edit on GitHub",
118 "view_guide": "Translation guide"
119 },
120 "common": {
121 "loading": "Loading...",
122 "loading_more": "Loading more...",
123 "loading_packages": "Loading packages...",
124 "end_of_results": "End of results",
125 "try_again": "Try again",
126 "close": "Close",
127 "or": "or",
128 "retry": "Retry",
129 "copy": "copy",
130 "copied": "copied!",
131 "skip_link": "Skip to main content",
132 "warnings": "Warnings:",
133 "go_back_home": "Go back home",
134 "view_on_npm": "view on npm",
135 "per_week": "/ week",
136 "vanity_downloads_hint": "Vanity number: no packages displayed | Vanity number: for the displayed package | Vanity number: Sum of {count} displayed packages",
137 "sort": {
138 "name": "name",
139 "role": "role",
140 "members": "members"
141 },
142 "scroll_to_top": "Scroll to top"
143 },
144 "package": {
145 "not_found": "Package Not Found",
146 "not_found_message": "The package could not be found.",
147 "no_description": "No description provided",
148 "not_latest": "(not latest)",
149 "verified_provenance": "Verified provenance",
150 "view_permalink": "View permalink for this version",
151 "navigation": "Package",
152 "copy_name": "Copy package name",
153 "copy_version": "Copy package version",
154 "deprecation": {
155 "package": "This package has been deprecated.",
156 "version": "This version has been deprecated.",
157 "no_reason": "No reason provided"
158 },
159 "replacement": {
160 "title": "You might not need this dependency.",
161 "native": "This can be replaced with {replacement}, available since Node {nodeVersion}.",
162 "simple": "The {community} has flagged this package as redundant, with the advice: {replacement}.",
163 "documented": "The {community} has flagged this package as having more performant alternatives.",
164 "none": "This package has been flagged as no longer needed, and its functionality is likely available natively in all engines.",
165 "learn_more": "Learn more",
166 "learn_more_above": "Learn more above.",
167 "mdn": "MDN",
168 "community": "community",
169 "consider_no_dep": "+ Consider no dep?"
170 },
171 "stats": {
172 "license": "License",
173 "deps": "Deps",
174 "install_size": "Install Size",
175 "vulns": "Vulns",
176 "published": "Published",
177 "published_tooltip": "Date {package}{'@'}{version} was published",
178 "view_dependency_graph": "View dependency graph",
179 "inspect_dependency_tree": "Inspect dependency tree",
180 "size_tooltip": {
181 "unpacked": "{size} unpacked size (this package)",
182 "total": "{size} total unpacked size (including {count} dependency for linux-x64) | {size} total unpacked size (including all {count} dependencies for linux-x64)"
183 }
184 },
185 "skills": {
186 "title": "Agent Skills",
187 "skills_available": "{count} skill available | {count} skills available",
188 "compatible_with": "Compatible with {tool}",
189 "install": "Install",
190 "installation_method": "Installation method",
191 "learn_more": "Learn more",
192 "available_skills": "Available Skills",
193 "click_to_expand": "Click to expand",
194 "no_description": "No description",
195 "file_counts": {
196 "scripts": "{count} script | {count} scripts",
197 "refs": "{count} ref | {count} refs",
198 "assets": "{count} asset | {count} assets"
199 },
200 "view_source": "View source"
201 },
202 "links": {
203 "repo": "repo",
204 "homepage": "homepage",
205 "issues": "issues",
206 "jsr": "jsr",
207 "code": "code",
208 "docs": "docs",
209 "fund": "fund",
210 "compare": "compare"
211 },
212 "likes": {
213 "like": "Like this package",
214 "unlike": "Unlike this package"
215 },
216 "docs": {
217 "not_available": "Docs not available",
218 "not_available_detail": "We could not generate docs for this version."
219 },
220 "get_started": {
221 "title": "Get started",
222 "pm_label": "Package manager",
223 "copy_command": "Copy install command",
224 "copy_dev_command": "Copy dev install command",
225 "dev_dependency_hint": "Usually installed as a dev dependency",
226 "view_types": "View {package}"
227 },
228 "create": {
229 "title": "Create new project",
230 "copy_command": "Copy create command",
231 "view": "{packageName} has the same maintainer. Click for more details."
232 },
233 "run": {
234 "title": "Run",
235 "locally": "Run locally"
236 },
237 "readme": {
238 "title": "Readme",
239 "no_readme": "No README available.",
240 "view_on_github": "View on GitHub",
241 "toc_title": "Outline",
242 "callout": {
243 "note": "Note",
244 "tip": "Tip",
245 "important": "Important",
246 "warning": "Warning",
247 "caution": "Caution"
248 },
249 "copy_as_markdown": "Copy README as Markdown"
250 },
251 "provenance_section": {
252 "title": "Provenance",
253 "built_and_signed_on": "Built and signed on {provider}",
254 "view_build_summary": "View build summary",
255 "source_commit": "Source Commit",
256 "build_file": "Build File",
257 "public_ledger": "Public Ledger",
258 "transparency_log_entry": "Transparency log entry",
259 "view_more_details": "View more details",
260 "error_loading": "Failed to load provenance details"
261 },
262 "security_downgrade": {
263 "title": "Trust downgrade",
264 "description_to_none_provenance": "This version was published without {provenance}.",
265 "description_to_none_trustedPublisher": "This version was published without {trustedPublishing}.",
266 "description_to_provenance_trustedPublisher": "This version uses {provenance} but not {trustedPublishing}.",
267 "fallback_install_provenance": "Install commands are pinned to {version}, the last version with provenance.",
268 "fallback_install_trustedPublisher": "Install commands are pinned to {version}, the last version with trusted publishing.",
269 "provenance_link_text": "provenance",
270 "trusted_publishing_link_text": "trusted publishing"
271 },
272 "keywords_title": "Keywords",
273 "compatibility": "Compatibility",
274 "card": {
275 "publisher": "Publisher",
276 "published": "Published",
277 "weekly_downloads": "Weekly downloads",
278 "keywords": "Keywords",
279 "license": "License"
280 },
281 "versions": {
282 "title": "Versions",
283 "collapse": "Collapse {tag}",
284 "expand": "Expand {tag}",
285 "collapse_other": "Collapse other versions",
286 "expand_other": "Expand other versions",
287 "collapse_major": "Collapse major {major}",
288 "expand_major": "Expand major {major}",
289 "other_versions": "Other versions",
290 "more_tagged": "{count} more tagged",
291 "all_covered": "All versions are covered by tags above",
292 "deprecated_title": "{version} (deprecated)",
293 "view_all": "View {count} version | View all {count} versions",
294 "distribution_title": "Semver Group",
295 "distribution_modal_title": "Versions",
296 "grouping_major": "Major",
297 "grouping_minor": "Minor",
298 "recent_versions_only": "Recent versions only",
299 "recent_versions_only_tooltip": "Show only versions published within the last year.",
300 "show_low_usage": "Show low usage versions",
301 "show_low_usage_tooltip": "Include version groups with less than 1% of total downloads.",
302 "date_range_tooltip": "Last week of version distributions only",
303 "y_axis_label": "Downloads",
304 "filter_placeholder": "Filter by semver (e.g. ^3.0.0)",
305 "filter_invalid": "Invalid semver range",
306 "filter_help": "Semver range filter help",
307 "filter_tooltip": "Filter versions using a {link}. For example, ^3.0.0 shows all 3.x versions.",
308 "filter_tooltip_link": "semver range",
309 "no_matches": "No versions match this range"
310 },
311 "dependencies": {
312 "title": "Dependency ({count}) | Dependencies ({count})",
313 "list_label": "Package dependencies",
314 "show_all": "show {count} dep | show all {count} deps",
315 "optional": "optional",
316 "view_vulnerabilities": "View vulnerabilities",
317 "outdated_major": "{count} major version behind (latest: {latest}) | {count} major versions behind (latest: {latest})",
318 "outdated_minor": "{count} minor version behind (latest: {latest}) | {count} minor versions behind (latest: {latest})",
319 "outdated_patch": "Patch update available (latest: {latest})",
320 "has_replacement": "This dependency has suggested replacements"
321 },
322 "peer_dependencies": {
323 "title": "Peer Dependency ({count}) | Peer Dependencies ({count})",
324 "list_label": "Package peer dependencies",
325 "show_all": "show {count} peer dep | show all {count} peer deps"
326 },
327 "optional_dependencies": {
328 "title": "Optional Dependency ({count}) | Optional Dependencies ({count})",
329 "list_label": "Package optional dependencies",
330 "show_all": "show {count} optional dep | show all {count} optional deps"
331 },
332 "maintainers": {
333 "title": "Maintainers",
334 "list_label": "Package maintainers",
335 "you": "(you)",
336 "via": "via {teams}",
337 "remove_owner": "Remove {name} as owner",
338 "username_to_add": "Username to add as owner",
339 "username_placeholder": "username...",
340 "add_button": "add",
341 "cancel_add": "Cancel adding owner",
342 "add_owner": "+ Add owner",
343 "show_more": "(show {count} more)",
344 "show_less": "(show fewer)"
345 },
346 "trends": {
347 "granularity": "Granularity",
348 "granularity_daily": "Daily",
349 "granularity_weekly": "Weekly",
350 "granularity_monthly": "Monthly",
351 "granularity_yearly": "Yearly",
352 "start_date": "Start",
353 "end_date": "End",
354 "loading": "Loading...",
355 "date_range": "{start} to {end}",
356 "date_range_multiline": "{start}\nto {end}",
357 "download_file": "Download {fileType}",
358 "toggle_annotator": "Toggle annotator",
359 "legend_estimation": "Estimation",
360 "no_data": "No data available",
361 "y_axis_label": "{granularity} {facet}",
362 "facet": "Facet",
363 "title": "Trends",
364 "contributors_skip": "Not shown in Contributors (no GitHub repo):",
365 "items": {
366 "downloads": "Downloads",
367 "likes": "Likes",
368 "contributors": "Contributors"
369 }
370 },
371 "downloads": {
372 "title": "Weekly Downloads",
373 "community_distribution": "View community adoption distribution"
374 },
375 "install_scripts": {
376 "title": "Install Scripts",
377 "script_label": "(script)",
378 "npx_packages": "{count} npx package | {count} npx packages",
379 "currently": "currently {version}"
380 },
381 "playgrounds": {
382 "title": "Try it out",
383 "choose": "choose playground"
384 },
385 "metrics": {
386 "esm": "ES Modules supported",
387 "cjs": "CommonJS supported",
388 "no_esm": "No ES Modules support",
389 "types_label": "Types",
390 "types_included": "Types included",
391 "types_available": "Types available via {package}",
392 "no_types": "No TypeScript types"
393 },
394 "license": {
395 "view_spdx": "View license text on SPDX",
396 "none": "None"
397 },
398 "vulnerabilities": {
399 "tree_found": "{vulns} vulnerability in {packages}/{total} packages | {vulns} vulnerabilities in {packages}/{total} packages",
400 "show_all_packages": "show {count} affected package | show all {count} affected packages",
401 "path": "path",
402 "more": "+{count} more",
403 "packages_failed": "{count} package could not be checked | {count} packages could not be checked",
404 "scan_failed": "Could not scan for vulnerabilities",
405 "severity": {
406 "critical": "critical",
407 "high": "high",
408 "moderate": "moderate",
409 "low": "low"
410 },
411 "fixed_in_title": "Fixed in version {version}"
412 },
413 "deprecated": {
414 "label": "Deprecated",
415 "tree_found": "{count} deprecated dependency | {count} deprecated dependencies",
416 "show_all": "show {count} deprecated package | show all {count} deprecated packages"
417 },
418 "access": {
419 "title": "Team Access",
420 "refresh": "Refresh team access",
421 "list_label": "Team access list",
422 "owner": "owner",
423 "rw": "rw",
424 "ro": "ro",
425 "revoke_access": "Revoke {name} access",
426 "no_access": "No team access configured",
427 "select_team_label": "Select team",
428 "loading_teams": "Loading teams...",
429 "select_team": "Select team",
430 "permission_label": "Permission level",
431 "permission": {
432 "read_only": "read-only",
433 "read_write": "read-write"
434 },
435 "grant_button": "grant",
436 "cancel_grant": "Cancel granting access",
437 "grant_access": "+ Grant team access"
438 },
439 "list": {
440 "filter_label": "Filter packages",
441 "filter_placeholder": "Filter packages...",
442 "sort_label": "Sort packages",
443 "showing_count": "Showing {filtered} of {total} packages"
444 },
445 "skeleton": {
446 "loading": "Loading package details",
447 "maintainers": "Maintainers",
448 "keywords": "Keywords",
449 "versions": "Versions",
450 "dependencies": "Dependencies"
451 },
452 "sort": {
453 "downloads": "Most downloaded",
454 "published": "Recently published",
455 "name_asc": "Name (A-Z)",
456 "name_desc": "Name (Z-A)"
457 },
458 "size": {
459 "b": "{size} B",
460 "kb": "{size} kB",
461 "mb": "{size} MB"
462 }
463 },
464 "connector": {
465 "modal": {
466 "title": "Local Connector",
467 "contributor_badge": "Contributors only",
468 "contributor_notice": "The connector is not yet published to npm. See the {link} for how to run locally.",
469 "contributor_link": "contributing guide",
470 "connected": "Connected",
471 "connected_as_user": "Connected as ~{user}",
472 "connected_hint": "You can now manage packages and organisations from the web UI.",
473 "disconnect": "Disconnect",
474 "run_hint": "Run the connector on your machine to enable admin features.",
475 "copy_command": "Copy command",
476 "copied": "Copied",
477 "paste_token": "Then paste the token below to connect:",
478 "token_label": "Token",
479 "token_placeholder": "paste token here...",
480 "advanced": "Advanced options",
481 "port_label": "Port",
482 "warning": "WARNING",
483 "warning_text": "This allows npmx to access your npm CLI. Only connect to sites you trust.",
484 "connect": "Connect",
485 "connecting": "Connecting...",
486 "auto_open_url": "Automatically open auth page"
487 }
488 },
489 "operations": {
490 "queue": {
491 "title": "Operations Queue",
492 "clear_all": "clear all",
493 "refresh": "Refresh operations",
494 "empty": "No operations queued",
495 "empty_hint": "Add operations from package or org pages",
496 "active_label": "Active operations",
497 "otp_required": "OTP required",
498 "otp_prompt": "Enter OTP to continue",
499 "otp_placeholder": "Enter OTP code...",
500 "otp_label": "One-time password",
501 "retry_otp": "Retry with OTP",
502 "retry_web_auth": "Retry with web auth",
503 "retrying": "Retrying...",
504 "open_web_auth": "Open web auth link",
505 "approve_operation": "Approve operation",
506 "remove_operation": "Remove operation",
507 "approve_all": "Approve All",
508 "execute": "Execute",
509 "executing": "Executing...",
510 "log": "Log",
511 "log_label": "Completed operations log",
512 "remove_from_log": "Remove from log"
513 }
514 },
515 "org": {
516 "teams": {
517 "title": "Teams",
518 "refresh": "Refresh teams",
519 "filter_label": "Filter teams",
520 "filter_placeholder": "Filter teams...",
521 "sort_by": "Sort by",
522 "loading": "Loading teams...",
523 "no_teams": "No teams found",
524 "list_label": "Organization teams",
525 "delete_team": "Delete team {name}",
526 "member_count": "{count} member | {count} members",
527 "members_of": "Members of {team}",
528 "no_members": "No members",
529 "remove_user": "Remove {user} from team",
530 "username_to_add": "Username to add to {team}",
531 "username_placeholder": "username...",
532 "add_button": "add",
533 "cancel_add_user": "Cancel adding user",
534 "add_member": "+ Add member",
535 "team_name_label": "Team name",
536 "team_name_placeholder": "team-name...",
537 "create_button": "create",
538 "no_match": "No teams match \"{query}\"",
539 "cancel_create": "Cancel creating team",
540 "create_team": "+ Create team"
541 },
542 "members": {
543 "title": "Members",
544 "refresh": "Refresh members",
545 "filter_label": "Filter members",
546 "filter_placeholder": "Filter members...",
547 "filter_by_role": "Filter by role",
548 "filter_by_team": "Filter by team",
549 "all_teams": "all teams",
550 "sort_by": "Sort by",
551 "loading": "Loading members...",
552 "no_members": "No members found",
553 "list_label": "Organization members",
554 "change_role_for": "Change role for {name}",
555 "remove_from_org": "Remove {name} from org",
556 "view_team": "View {team} team",
557 "no_match": "No members match your filters",
558 "username_label": "Username",
559 "username_placeholder": "username...",
560 "role_label": "Role",
561 "role": {
562 "all": "all",
563 "developer": "developer",
564 "admin": "admin",
565 "owner": "owner"
566 },
567 "team_label": "Team",
568 "no_team": "no team",
569 "add_button": "add",
570 "cancel_add": "Cancel adding member",
571 "add_member": "+ Add member"
572 },
573 "public_packages": "{count} public package | {count} public packages",
574 "page": {
575 "packages_title": "Packages",
576 "members_tab": "Members",
577 "teams_tab": "Teams",
578 "no_packages": "No public packages found for",
579 "no_packages_hint": "This organisation may not exist or has no public packages.",
580 "failed_to_load": "Failed to load organisation packages",
581 "no_match": "No packages match \"{query}\"",
582 "not_found": "Organization not found",
583 "not_found_message": "The organisation \"{'@'}{name}\" does not exist on npm"
584 }
585 },
586 "user": {
587 "combobox": {
588 "add_to_org_hint": "(will also add to org)",
589 "press_enter_to_add": "Press Enter to add {'@'}{username}",
590 "default_placeholder": "username...",
591 "suggestions_label": "User suggestions"
592 },
593 "page": {
594 "packages_title": "Packages",
595 "no_packages": "No public packages found for",
596 "no_packages_hint": "This user may not exist or has no public packages.",
597 "failed_to_load": "Failed to load user packages",
598 "no_match": "No packages match \"{query}\"",
599 "filter_placeholder": "Filter {count} package... | Filter {count} packages..."
600 },
601 "orgs_page": {
602 "title": "Organizations",
603 "back_to_profile": "Back to profile",
604 "connect_required": "Connect the local CLI to view your organisations.",
605 "connect_hint_prefix": "Run",
606 "connect_hint_suffix": "to get started.",
607 "own_orgs_only": "You can only view your own organisations.",
608 "view_your_orgs": "View your organisations",
609 "loading": "Loading organisations...",
610 "empty": "No organisations found.",
611 "empty_hint": "Organizations are detected from your scoped packages.",
612 "count": "{count} Organization | {count} Organizations",
613 "packages_count": "{count} package | {count} packages"
614 }
615 },
616 "claim": {
617 "modal": {
618 "title": "Claim Package Name",
619 "success": "Package claimed!",
620 "success_detail": "{name}{'@'}0.0.0 has been published to npm.",
621 "success_hint": "You can now publish new versions to this package using npm publish.",
622 "view_package": "View Package",
623 "invalid_name": "Invalid package name:",
624 "available": "This name is available!",
625 "taken": "This name is already taken.",
626 "similar_warning": "Similar packages exist - npm may reject this name:",
627 "related": "Related packages:",
628 "scope_warning_title": "Consider using a scoped package instead",
629 "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 organisational projects, use a scoped name like {'@'}{username}/{name}.",
630 "connect_required": "Connect to the local connector to claim this package name.",
631 "connect_button": "Connect to Connector",
632 "publish_hint": "This will publish a minimal placeholder package.",
633 "preview_json": "Preview package.json",
634 "claim_button": "Claim Package Name",
635 "publishing": "Publishing...",
636 "checking": "Checking availability...",
637 "failed_to_check": "Failed to check name availability",
638 "failed_to_claim": "Failed to claim package"
639 }
640 },
641 "code": {
642 "files_label": "Files",
643 "no_files": "No files in this directory",
644 "root": "root",
645 "lines": "{count} line | {count} lines",
646 "toggle_tree": "Toggle file tree",
647 "close_tree": "Close file tree",
648 "copy_link": "Copy link",
649 "raw": "Raw",
650 "view_raw": "View raw file",
651 "file_too_large": "File too large to preview",
652 "file_size_warning": "{size} exceeds the 500KB limit for syntax highlighting",
653 "failed_to_load": "Failed to load file",
654 "unavailable_hint": "The file may be too large or unavailable",
655 "version_required": "Version is required to browse code",
656 "go_to_package": "Go to package",
657 "loading_tree": "Loading file tree...",
658 "failed_to_load_tree": "Failed to load files for this package version",
659 "back_to_package": "Back to package",
660 "table": {
661 "name": "Name",
662 "size": "Size"
663 },
664 "markdown_view_mode": {
665 "preview": "preview",
666 "code": "code"
667 },
668 "file_path": "File path"
669 },
670 "badges": {
671 "provenance": {
672 "verified": "verified",
673 "verified_title": "Verified provenance",
674 "verified_via": "Verified: published via {provider}"
675 },
676 "jsr": {
677 "title": "also available on JSR"
678 }
679 },
680 "filters": {
681 "title": "Filters",
682 "search": "Search",
683 "search_scope": "Search scope",
684 "search_placeholder_name": "Filter by package name...",
685 "search_placeholder_description": "Filter by description...",
686 "search_placeholder_keywords": "Filter by keywords...",
687 "search_placeholder_all": "Search all or use name: desc: kw:",
688 "scope_name": "Name",
689 "scope_name_description": "Search package names only",
690 "scope_description": "Description",
691 "scope_description_description": "Search descriptions only",
692 "scope_keywords": "Keywords",
693 "scope_keywords_description": "Search keywords only",
694 "scope_all": "All",
695 "scope_all_description": "Search all fields, supports name: desc: kw: operators",
696 "weekly_downloads": "Weekly downloads",
697 "updated_within": "Updated within",
698 "security": "Security",
699 "keywords": "Keywords",
700 "more_keywords": "+{count} more",
701 "clear_all": "Clear all",
702 "remove_filter": "Remove {label} filter",
703 "chips": {
704 "search": "Search",
705 "downloads": "Downloads",
706 "keyword": "Keyword",
707 "security": "Security",
708 "updated": "Updated"
709 },
710 "download_range": {
711 "any": "Any",
712 "lt100": "< 100",
713 "100_1k": "100 - 1K",
714 "1k_10k": "1K - 10K",
715 "10k_100k": "10K - 100K",
716 "gt100k": "> 100K"
717 },
718 "updated": {
719 "any": "Any time",
720 "week": "Past week",
721 "month": "Past month",
722 "quarter": "Past 3 months",
723 "year": "Past year"
724 },
725 "security_options": {
726 "all": "All packages",
727 "secure": "Without warnings",
728 "insecure": "With warnings"
729 },
730 "sort": {
731 "label": "Sort packages",
732 "toggle_direction": "Toggle sort direction",
733 "ascending": "Ascending",
734 "descending": "Descending",
735 "relevance": "Relevance",
736 "downloads_week": "Downloads/wk",
737 "downloads_day": "Downloads/day",
738 "downloads_month": "Downloads/mo",
739 "downloads_year": "Downloads/yr",
740 "published": "Last Published",
741 "name": "Name",
742 "quality": "Quality",
743 "popularity": "Popularity",
744 "maintenance": "Maintenance",
745 "score": "Score"
746 },
747 "columns": {
748 "title": "Columns",
749 "show": "Show columns",
750 "reset": "Reset to defaults",
751 "coming_soon": "Coming soon",
752 "name": "Name",
753 "version": "Version",
754 "description": "Description",
755 "downloads": "Downloads/wk",
756 "published": "Last Published",
757 "maintainers": "Maintainers",
758 "keywords": "Keywords",
759 "quality_score": "Quality score",
760 "popularity_score": "Popularity score",
761 "maintenance_score": "Maintenance score",
762 "combined_score": "Combined score",
763 "security": "Security"
764 },
765 "view_mode": {
766 "label": "View mode",
767 "cards": "Card view",
768 "table": "Table view"
769 },
770 "pagination": {
771 "mode_label": "Pagination mode",
772 "infinite": "Infinite",
773 "paginated": "Paginated",
774 "items_per_page": "Items per page",
775 "per_page": "{count} / page",
776 "all_yolo": "All (YOLO)",
777 "showing": "{start}-{end} of {total}",
778 "previous": "Previous page",
779 "next": "Next page",
780 "nav_label": "Pagination"
781 },
782 "count": {
783 "showing_filtered": "{filtered} of {count} package | {filtered} of {count} packages",
784 "showing_all": "{count} package | {count} packages",
785 "showing_paginated": "{pageSize} of {count} package | {pageSize} of {count} packages"
786 },
787 "table": {
788 "security_warning": "Security warning",
789 "secure": "Secure",
790 "no_packages": "No packages found"
791 }
792 },
793 "about": {
794 "title": "About",
795 "heading": "about",
796 "meta_description": "npmx is a fast, modern browser for the npm registry. A better UX/DX for exploring npm packages.",
797 "what_we_are": {
798 "title": "What we are",
799 "better_ux_dx": "better UX/DX",
800 "admin_ui": "admin UI",
801 "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}.",
802 "admin_description": "We also aim to provide a better {adminUi} for managing your packages, teams, and organisations — all from the browser, powered by your local npm CLI."
803 },
804 "what_we_are_not": {
805 "title": "What we're not",
806 "not_package_manager": "Not a package manager.",
807 "not_registry": "Not a registry.",
808 "registry_description": "We don't host packages. We're just a better way to browse them.",
809 "package_managers_exist": "{already} {people} {building} {really} {cool} {package} {managers}.",
810 "words": {
811 "already": "There are",
812 "people": "already",
813 "building": "people",
814 "really": "building",
815 "cool": "really",
816 "package": "cool",
817 "managers": "package managers"
818 }
819 },
820 "team": {
821 "title": "Team",
822 "governance": "Governance",
823 "role_steward": "steward",
824 "role_maintainer": "maintainer",
825 "sponsor": "sponsor",
826 "sponsor_aria": "Sponsor {name} on GitHub"
827 },
828 "contributors": {
829 "title": "... and {count} more contributor | ... and {count} more contributors",
830 "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.",
831 "loading": "Loading contributors...",
832 "error": "Failed to load contributors",
833 "view_profile": "View {name}'s GitHub profile"
834 },
835 "get_involved": {
836 "title": "Get involved",
837 "contribute": {
838 "title": "Contribute",
839 "description": "Help us build a better npm experience.",
840 "cta": "View on GitHub"
841 },
842 "community": {
843 "title": "Join the community",
844 "description": "Chat, ask questions, and share ideas.",
845 "cta": "Join Discord"
846 },
847 "follow": {
848 "title": "Stay updated",
849 "description": "Find out the latest on npmx.",
850 "cta": "Follow on Bluesky"
851 }
852 }
853 },
854 "account_menu": {
855 "connect": "connect",
856 "account": "Account",
857 "npm_cli": "npm CLI",
858 "atmosphere": "Atmosphere",
859 "npm_cli_desc": "Manage packages & orgs",
860 "atmosphere_desc": "Social features & identity",
861 "connect_npm_cli": "Connect to npm CLI",
862 "connect_atmosphere": "Connect to Atmosphere",
863 "connecting": "Connecting...",
864 "ops": "{count} op | {count} ops"
865 },
866 "auth": {
867 "modal": {
868 "title": "Atmosphere",
869 "connected_as": "Connected as {'@'}{handle}",
870 "disconnect": "Disconnect",
871 "connect_prompt": "Connect with your Atmosphere account",
872 "handle_label": "Handle",
873 "handle_placeholder": "alice.npmx.social",
874 "connect": "Connect",
875 "create_account": "Create a new account",
876 "connect_bluesky": "Connect with Bluesky",
877 "what_is_atmosphere": "What is an Atmosphere account?",
878 "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.",
879 "default_input_error": "Please enter a valid handle, DID, or a full PDS URL"
880 }
881 },
882 "header": {
883 "home": "npmx home",
884 "packages": "packages",
885 "packages_dropdown": {
886 "title": "Your Packages",
887 "loading": "Loading...",
888 "error": "Failed to load packages",
889 "empty": "No packages found",
890 "view_all": "View all"
891 },
892 "orgs": "orgs",
893 "orgs_dropdown": {
894 "title": "Your Organizations",
895 "loading": "Loading...",
896 "error": "Failed to load organisations",
897 "empty": "No organisations found",
898 "view_all": "View all"
899 }
900 },
901 "compare": {
902 "packages": {
903 "title": "compare packages",
904 "tagline": "compare npm packages side-by-side to help you choose the right one.",
905 "meta_title": "Compare {packages} - npmx",
906 "meta_title_empty": "Compare Packages - npmx",
907 "meta_description": "Side-by-side comparison of {packages}",
908 "meta_description_empty": "Compare npm packages side-by-side",
909 "section_packages": "Packages",
910 "section_facets": "Facets",
911 "section_comparison": "Comparison",
912 "loading": "Loading package data...",
913 "error": "Failed to load package data. Please try again.",
914 "empty_title": "Select packages to compare",
915 "empty_description": "Search and add at least 2 packages above to see a side-by-side comparison of their metrics."
916 },
917 "selector": {
918 "search_label": "Search for packages",
919 "search_first": "Search for a package...",
920 "search_add": "Add another package...",
921 "searching": "Searching...",
922 "remove_package": "Remove {package}",
923 "packages_selected": "{count}/{max} packages selected.",
924 "add_hint": "Add at least 2 packages to compare."
925 },
926 "no_dependency": {
927 "label": "(No dependency)",
928 "typeahead_title": "What Would James Do?",
929 "typeahead_description": "Compare against not using a dependency! e18e approved.",
930 "tooltip_title": "You might not need a dependency",
931 "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.",
932 "e18e_community": "e18e community",
933 "add_column": "Add no dependency column to comparison"
934 },
935 "facets": {
936 "group_label": "Comparison facets",
937 "all": "all",
938 "none": "none",
939 "coming_soon": "Coming soon",
940 "select_all": "Select all facets",
941 "deselect_all": "Deselect all facets",
942 "select_category": "Select all {category} facets",
943 "deselect_category": "Deselect all {category} facets",
944 "binary_only_tooltip": "This package exposes binaries and no exports",
945 "categories": {
946 "performance": "Performance",
947 "health": "Health",
948 "compatibility": "Compatibility",
949 "security": "Security & Compliance"
950 },
951 "items": {
952 "packageSize": {
953 "label": "Package Size",
954 "description": "Size of the package itself (unpacked)"
955 },
956 "installSize": {
957 "label": "Install Size",
958 "description": "Total install size including all dependencies"
959 },
960 "dependencies": {
961 "label": "Direct Deps",
962 "description": "Number of direct dependencies"
963 },
964 "totalDependencies": {
965 "label": "Total Deps",
966 "description": "Total number of dependencies including transitive"
967 },
968 "downloads": {
969 "label": "Downloads/wk",
970 "description": "Weekly download count"
971 },
972 "totalLikes": {
973 "label": "Likes",
974 "description": "Number of likes"
975 },
976 "lastUpdated": {
977 "label": "Published",
978 "description": "When this version was published"
979 },
980 "deprecated": {
981 "label": "Deprecated?",
982 "description": "Whether the package is deprecated"
983 },
984 "engines": {
985 "label": "Engines",
986 "description": "Node.js version requirements"
987 },
988 "types": {
989 "label": "Types",
990 "description": "TypeScript type definitions"
991 },
992 "moduleFormat": {
993 "label": "Module Format",
994 "description": "ESM/CJS support"
995 },
996 "license": {
997 "label": "License",
998 "description": "Package license"
999 },
1000 "vulnerabilities": {
1001 "label": "Vulnerabilities",
1002 "description": "Known security vulnerabilities"
1003 }
1004 },
1005 "values": {
1006 "any": "Any",
1007 "none": "None",
1008 "unknown": "Unknown",
1009 "deprecated": "Deprecated",
1010 "not_deprecated": "No",
1011 "types_included": "Included",
1012 "types_none": "None",
1013 "vulnerabilities_summary": "{count} ({critical}C/{high}H)",
1014 "up_to_you": "Up to you!"
1015 },
1016 "trends": {
1017 "title": "Compare Trends"
1018 }
1019 }
1020 },
1021 "privacy_policy": {
1022 "title": "privacy policy",
1023 "last_updated": "Last updated: {date}",
1024 "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.",
1025 "cookies": {
1026 "what_are": {
1027 "title": "What are cookies?",
1028 "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."
1029 },
1030 "types": {
1031 "title": "What cookies do we use?",
1032 "p1": "We only use {bold} for purposes strictly necessary for the site's functionality. We do not use third-party or advertising cookies.",
1033 "bold": "essential technical cookies",
1034 "li1": "{li11}{separator} {li12}",
1035 "li2": "{li21}{separator} {li22}",
1036 "separator": ":",
1037 "cookie_vdpl": "__vdpl",
1038 "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.",
1039 "cookie_h3": "h3",
1040 "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."
1041 },
1042 "local_storage": {
1043 "title": "Local storage",
1044 "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.",
1045 "bold": "Local Storage",
1046 "p2": "This information is purely functional, stored only on your device, and {bold2}. We use it exclusively to improve your experience on our website.",
1047 "bold2": "contains no personal data nor is it used to track you",
1048 "settings": "settings"
1049 },
1050 "management": {
1051 "title": "Managing cookies",
1052 "p1": "You can configure your browser to accept, reject, or delete cookies according to your preferences. However, please note that {bold}.",
1053 "bold": "rejecting essential cookies may prevent full access to the application",
1054 "p2": "Below are links with instructions for cookie management in the most commonly used browsers:",
1055 "chrome": "Google Chrome (opens in a new window)",
1056 "firefox": "Mozilla Firefox (opens in a new window)",
1057 "edge": "Microsoft Edge (opens in a new window)"
1058 }
1059 },
1060 "analytics": {
1061 "title": "Analytics",
1062 "p1": "We use {bold} to understand how visitors use our website. This helps us improve the user experience and identify issues.",
1063 "bold": "Vercel Web Analytics",
1064 "p2": "Vercel Analytics is designed with privacy in mind:",
1065 "li1": "It does not use cookies",
1066 "li2": "It does not collect personal identifiers",
1067 "li3": "It does not track users across websites",
1068 "li4": "All data is aggregated and anonymised",
1069 "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."
1070 },
1071 "authenticated": {
1072 "title": "Authenticated users",
1073 "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.",
1074 "bold": "Atmosphere",
1075 "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.",
1076 "settings": "settings"
1077 },
1078 "data_retention": {
1079 "title": "Data retention",
1080 "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."
1081 },
1082 "your_rights": {
1083 "title": "Your rights",
1084 "p1": "You have the right to:",
1085 "li1": "Access information about what data we collect",
1086 "li2": "Clear your local storage and cookies at any time",
1087 "li3": "Disconnect your authenticated session",
1088 "li4": "Request information about our data practices",
1089 "p2": "Since we do not collect personal data, there is typically no personal information to delete or export."
1090 },
1091 "contact": {
1092 "title": "Contact us",
1093 "p1": "For any questions or concerns about this privacy policy, you can contact us by opening an issue on our {link}.",
1094 "link": "GitHub repository"
1095 },
1096 "changes": {
1097 "title": "Changes to this policy",
1098 "p1": "We may update this privacy policy from time to time. Any changes will be published on this page with an updated revision date."
1099 }
1100 },
1101 "a11y": {
1102 "title": "accessibility",
1103 "footer_title": "a11y",
1104 "welcome": "We want {app} to be usable by as many people as possible.",
1105 "approach": {
1106 "title": "Our approach",
1107 "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.",
1108 "p2": "This site is an {about}. Accessibility improvements are made incrementally as part of our regular development.",
1109 "about_link": "open-source, community-driven project"
1110 },
1111 "measures": {
1112 "title": "What we do",
1113 "p1": "Some of the things we aim to do across the site:",
1114 "li1": "Use semantic HTML and ARIA attributes where appropriate.",
1115 "li2": "Use relative text sizes so you can adjust them in your browser.",
1116 "li3": "Support keyboard navigation throughout the interface.",
1117 "li4": "Respect the prefers-reduced-motion and prefers-color-scheme media queries.",
1118 "li5": "Design with sufficient color contrast in mind.",
1119 "li6": "Ensure essential content is available without JavaScript, though some interactive features require it."
1120 },
1121 "limitations": {
1122 "title": "Known limitations",
1123 "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."
1124 },
1125 "contact": {
1126 "title": "Feedback",
1127 "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.",
1128 "link": "GitHub repository"
1129 }
1130 }
1131}