From fcb1a1c4d524ccf4bfaa1a95b62360720d28d3d0 Mon Sep 17 00:00:00 2001 From: Lucas Date: Tue, 31 Mar 2026 08:37:02 +0200 Subject: [PATCH 01/25] feat(i18n): start implementation of danish translations --- config/i18n.ts | 5 + i18n/locales/da-DK.json | 1525 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 1530 insertions(+) create mode 100644 i18n/locales/da-DK.json diff --git a/config/i18n.ts b/config/i18n.ts index 9d0ded7d35..10f4cc8cb1 100644 --- a/config/i18n.ts +++ b/config/i18n.ts @@ -136,6 +136,11 @@ const locales: (LocaleObjectData | (Omit & { code: str name: 'Български', pluralRule: createPluralRule('bg-BG', { zero: 1, one: 0, two: 1, few: 1, many: 1, other: 1 }), }, + { + code: 'da', + file: 'da-DK.json', + name: 'Dansk', + }, /*{ code: 'ckb', file: 'ckb.json', diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json new file mode 100644 index 0000000000..cc2eed3610 --- /dev/null +++ b/i18n/locales/da-DK.json @@ -0,0 +1,1525 @@ +{ + "$schema": "../schema.json", + "seo": { + "home": { + "title": "npmx - Pakke Browser til npm Registry", + "description": "en hurtig, moderne browser til npm-registret. Søg, gennemse og udforsk pakker med en moderne grænseflade." + } + }, + "built_at": "bygget {0}", + "alt_logo": "npmx logo", + "tagline": "en hurtig, moderne browser til npm-registret", + "non_affiliation_disclaimer": "ikke tilknyttet npm, Inc.", + "trademark_disclaimer": "npm er et registreret varemærke for npm, Inc. Dette websted er ikke tilknyttet npm, Inc.", + "footer": { + "about": "om", + "blog": "blog", + "docs": "dokumentation", + "source": "kilde", + "social": "sociale medier", + "chat": "chat", + "builders_chat": "byggere", + "keyboard_shortcuts": "tastaturgenveje", + "brand": "mærke" + }, + "shortcuts": { + "section": { + "global": "Global", + "search": "Søg", + "package": "Pakke" + }, + "focus_search": "Fokusér søgning", + "show_kbd_hints": "Fremhæv tastaturgenveje", + "settings": "Åbn indstillinger", + "compare": "Sammenlign", + "compare_from_package": "Sammenlign (forudfyldt med nuværende pakke)", + "navigate_results": "Naviger resultater", + "go_to_result": "Gå til resultat", + "open_code_view": "Åbn kodevisning", + "open_docs": "Åbn dokumentation", + "disable_shortcuts": "Du kan deaktivere tastaturgenveje i {settings}.", + "open_main": "Åbn hovedinformation", + "open_diff": "Åbn versionsforskelle" + }, + "search": { + "label": "Søg npm-pakker", + "placeholder": "søg pakker...", + "button": "søg", + "searching": "Søger...", + "found_packages": "Ingen pakker fundet | Fundet 1 pakke | Fundet {count} pakker", + "found_packages_sorted": "Ingen resultater fundet | Sortering af top {count} resultat | Sortering af top {count} resultater", + "updating": "(opdaterer...)", + "no_results": "Ingen pakker fundet for \"{query}\"", + "rate_limited": "Ramte npm rate limit, prøv igen om et øjeblik", + "title": "søg", + "title_search": "søg: {search}", + "title_packages": "søg pakker", + "meta_description": "Søgeresultater for '{search}'", + "meta_description_packages": "Søg npm-pakker", + "not_taken": "{name} er ikke taget", + "claim_prompt": "Krav dette pakkenavn på npm", + "claim_button": "Krav \"{name}\"", + "want_to_claim": "Vil du kræve dette pakkenavn?", + "start_typing": "Begynd at skrive for at søge efter pakker", + "algolia_disclaimer": "Drevet af Algolia", + "exact_match": "præcis", + "suggestion": { + "user": "bruger", + "org": "organisation", + "view_user_packages": "Se pakker fra denne bruger", + "view_org_packages": "Se pakker fra denne organisation" + }, + "instant_search": "Instant søgning", + "instant_search_on": "på", + "instant_search_off": "fra", + "instant_search_turn_on": "tænd", + "instant_search_turn_off": "sluk", + "instant_search_advisory": "{label} {state} — {action}" + }, + "nav": { + "main_navigation": "Hovednavigation", + "popular_packages": "Populære pakker", + "settings": "Indstillinger", + "compare": "Sammenlign", + "back": "Tilbage", + "menu": "Menu", + "mobile_menu": "Navigationsmenu", + "open_menu": "Åbn menu", + "links": "Links", + "tap_to_search": "Tryk for at søge" + }, + "blog": { + "title": "Blog", + "heading": "blog", + "meta_description": "Indsigter og opdateringer fra npmx-fællesskabet", + "author": { + "view_profile": "Se {name}'s profil på Bluesky" + }, + "draft_badge": "Udkast", + "draft_banner": "Dette er et upubliceret udkast. Det kan være ufuldstændigt eller indeholde unøjagtigheder.", + "no_posts": "Ingen indlæg fundet.", + "atproto": { + "view_on_bluesky": "Se på Bluesky", + "reply_on_bluesky": "Svar på Bluesky", + "likes_on_bluesky": "Synes godt om på Bluesky", + "like_or_reply_on_bluesky": "Synes godt om dette indlæg eller tilføj din kommentar på Bluesky", + "no_comments_yet": "Ingen kommentarer endnu.", + "could_not_load_comments": "Kunne ikke indlæse kommentarer.", + "comments": "Kommentarer", + "loading_comments": "Indlæser kommentarer...", + "updating": "Opdaterer...", + "reply_count": "{count} svar | {count} svar", + "like_count": "{count} synes godt om | {count} synes godt om", + "repost_count": "{count} deling | {count} delinger", + "more_replies": "{count} flere svar... | {count} flere svar..." + } + }, + "settings": { + "title": "Indstillinger", + "tagline": "Tilpas din npmx-oplevelse", + "meta_description": "Tilpas din npmx.dev-oplevelse med tema, sprog og visningsindstillinger.", + "sections": { + "appearance": "Udseende", + "display": "Visning", + "search": "Søgefunktioner", + "language": "Sprog", + "keyboard_shortcuts": "Tastaturgenveje" + }, + "data_source": { + "label": "Datakilde", + "description": "Vælg, hvor npmx henter søgedata fra. Individuelle pakkesider bruger altid npm-registret direkte.", + "npm": "npm Registry", + "npm_description": "Henter søgning, organisation og brugeroplysninger direkte fra det officielle npm-registre. Autoritativt, men kan være langsommere.", + "algolia": "Algolia", + "algolia_description": "Bruger Algolia for hurtigere søgning, organisations- og brugersider." + }, + "instant_search": "Instant søgning", + "instant_search_description": "Navigerer til søgesiden og opdaterer resultaterne, mens du skriver.", + "relative_dates": "Relative datoer", + "include_types": "Inkluder {'@'}types i installationen", + "include_types_description": "Tilføj {'@'}types-pakken til installationskommandoer for utypede pakker", + "hide_platform_packages": "Skjul platform-specifikke pakker i søgningen", + "hide_platform_packages_description": "Skjul native binære pakker som {'@'}esbuild/linux-x64 fra resultaterne", + "enable_graph_pulse_loop": "Aktivér looping af pulseffekt på mini-graf", + "enable_graph_pulse_loop_description": "Aktivér en kontinuerlig pulserende animation på den ugentlige download-graf. Denne animation kan være distraherende for nogle brugere.", + "theme": "Tema", + "theme_light": "Lys", + "theme_dark": "Mørk", + "theme_system": "System", + "language": "Sprog", + "help_translate": "Hjælp med at oversætte npmx", + "translation_status": "Tjek global oversættelsesstatus", + "accent_colors": { + "label": "Accentfarver", + "sky": "Himmel", + "coral": "Koraller", + "amber": "Amber", + "emerald": "Smaragd", + "violet": "Violet", + "magenta": "Magenta" + }, + "clear_accent": "Fjern accentfarve", + "translation_progress": "Oversættelsesfremskridt", + "background_themes": { + "label": "Baggrundsfarve", + "neutral": "Neutral", + "stone": "Sten", + "zinc": "Zink", + "slate": "Skifer", + "black": "Sort" + }, + "keyboard_shortcuts_enabled": "Aktivér tastaturgenveje", + "keyboard_shortcuts_enabled_description": "Tastaturgenveje kan deaktiveres, hvis de konflikter med andre browser- eller systemgenveje" + }, + "i18n": { + "missing_keys": "{count} manglende oversættelse | {count} manglende oversættelser", + "copy_keys": "Kopiér nøgler", + "show_more_keys": "Vis {count} flere...", + "contribute_hint": "Hjælp med at forbedre denne oversættelse ved at tilføje de manglende nøgler.", + "edit_on_github": "Rediger på GitHub", + "view_guide": "Oversættelsesguide" + }, + "error": { + "401": "Uautoriseret", + "404": "Siden kunne ikke findes", + "500": "Intern serverfejl", + "503": "Tjenesten er utilgængelig", + "default": "Noget gik galt" + }, + "common": { + "loading": "Indlæser...", + "loading_more": "Indlæser mere...", + "loading_packages": "Indlæser pakker...", + "end_of_results": "Ingen flere resultater", + "try_again": "Prøv igen", + "close": "Luk", + "or": "eller", + "retry": "Prøv igen", + "copy": "Kopiér", + "copied": "Kopieret!", + "skip_link": "Spring til hovedindhold", + "warnings": "Advarsler:", + "go_back_home": "Gå tilbage til forsiden", + "per_week": "/ uge", + "vanity_downloads_hint": "Vanity-nummer: ingen pakker vist | Vanity-nummer: for den viste pakke | Vanity-nummer: Summen af {count} viste pakker", + "sort": { + "name": "navn", + "role": "rolle", + "members": "medlemmer" + }, + "scroll_to_top": "Scroll til toppen", + "cancel": "Annuller", + "save": "Gem", + "edit": "Rediger", + "error": "Fejl", + "view_on": { + "npm": "vis på npm", + "github": "Vis på GitHub", + "gitlab": "Vis på GitLab", + "bitbucket": "Vis på Bitbucket", + "codeberg": "Vis på Codeberg", + "git_repo": "Vis på Git repository", + "forgejo": "Vis på Forgejo", + "gitea": "Vis på Gitea", + "gitee": "Vis på Gitee", + "radicle": "Vis på Radicle", + "sourcehut": "Vis på SourceHut", + "tangled": "Vis på Tangled" + }, + "collapse": "Skjul", + "expand": "Udvid" + }, + "profile": { + "display_name": "Visningsnavn", + "description": "Beskrivelse", + "no_description": "Ingen beskrivelse", + "website": "Hjemmeside", + "website_placeholder": "https://example.com", + "likes": "Synes godt om", + "seo_title": "{handle} - npmx", + "seo_description": "npmx profil af {handle}", + "not_found": "Profil ikke fundet", + "not_found_message": "Profilen for {handle} kunne ikke findes.", + "invite": { + "message": "Det ser ikke ud til, at de bruger npmx endnu. Vil du fortælle dem om det?", + "share_button": "Del på Bluesky", + "compose_text": "Hej {'@'}{handle}! Har du tjekket npmx.dev endnu? Det er en browser til npm-registret, der er hurtig, moderne og open-source.\nhttps://npmx.dev" + } + }, + "package": { + "not_found": "Pakke ikke fundet", + "not_found_message": "Pakken kunne ikke findes.", + "no_description": "Ingen beskrivelse", + "verified_provenance": "Verificeret oprindelse", + "navigation": "Pakke", + "copy_name": "Kopiér pakkenavn", + "deprecation": { + "package": "Denne pakke er blevet forældet.", + "version": "Denne version er blevet forældet.", + "no_reason": "Ingen årsag angivet" + }, + "size_increase": { + "title_size": "Betydelig størrelsesstigning siden v{version}", + "title_deps": "Betydelig stigning i afhængigheder siden v{version}", + "title_both": "Betydelig stigning i både størrelse og afhængigheder siden v{version}", + "size": "Installationsstørrelse øget med {percent} ({size} større)", + "deps": "{count} flere afhængigheder" + }, + "replacement": { + "title": "Du har muligvis ikke brug for denne afhængighed.", + "native": "Dette kan erstattes med {replacement}, tilgængelig siden Node {nodeVersion}.", + "simple": "{community} har markeret denne pakke som overflødig, med rådet: {replacement}.", + "documented": "{community} har markeret denne pakke som havende mere effektive alternativer.", + "none": "Denne pakke er blevet markeret som ikke længere nødvendig, og dens funktionalitet er sandsynligvis tilgængelig nativt i alle motorer.", + "learn_more": "Lær mere", + "learn_more_above": "Lær mere ovenfor.", + "mdn": "MDN", + "community": "community", + "consider_no_dep": "+ Overvej ingen afhængighed?" + }, + "stats": { + "license": "Licens", + "deps": "Afhængigheder", + "install_size": "Installationsstørrelse", + "vulns": "Sårbarheder", + "published": "Udgivet", + "published_tooltip": "Dato {package}{'@'}{version} blev udgivet", + "view_dependency_graph": "Vis afhængighedsgraf", + "inspect_dependency_tree": "Undersøg afhængighedstræ", + "size_tooltip": { + "unpacked": "{size} udpakket størrelse (denne pakke)", + "total": "{size} total udpakket størrelse (inklusive {count} afhængighed for linux-x64) | {size} total udpakket størrelse (inklusive alle {count} afhængigheder for linux-x64)" + } + }, + "skills": { + "title": "Agent Færdigheder", + "skills_available": "{count} færdighed tilgængelig | {count} færdigheder tilgængelige", + "compatible_with": "Kompatibel med {tool}", + "install": "Installer", + "installation_method": "Installationsmetode", + "learn_more": "Lær mere", + "available_skills": "Tilgængelige færdigheder", + "click_to_expand": "Klik for at udvide", + "no_description": "Ingen beskrivelse", + "file_counts": { + "scripts": "{count} script | {count} scripts", + "refs": "{count} ref | {count} refs", + "assets": "{count} asset | {count} assets" + }, + "view_source": "Se kilde", + "skills_cli": "færdigheder CLI" + }, + "links": { + "main": "vigtigste", + "repo": "repo", + "homepage": "hjemmeside", + "issues": "problemer", + "jsr": "jsr", + "code": "kode", + "docs": "dokumentation", + "fund": "fund", + "compare": "sammenlign", + "compare_this_package": "sammenlign denne pakke" + }, + "likes": { + "like": "Synes godt om denne pakke", + "unlike": "Synes ikke godt om denne pakke" + }, + "docs": { + "contents": "Indhold", + "default_not_available": "Dokumentation er ikke tilgængelig for denne version.", + "not_available": "Dokumentation ikke tilgængelig", + "not_available_detail": "Vi kunne ikke generere dokumentation for denne version.", + "page_title": "API Dokumentation - npmx", + "page_title_name": "{name} dokumentation - npmx", + "page_title_version": "{name} dokumentation - npmx", + "og_title": "{name} - Dokumentation", + "view_package": "Se pakke" + }, + "get_started": { + "title": "Kom godt i gang", + "pm_label": "Pakkehåndtering", + "copy_command": "Kopiér installationskommando", + "copy_dev_command": "Kopiér udviklingsinstallationskommando", + "dev_dependency_hint": "Normalt installeret som en udviklingsafhængighed", + "view_types": "Se {package}" + }, + "create": { + "title": "Opret nyt projekt", + "copy_command": "Kopiér oprettelseskommando", + "view": "{packageName} har samme vedligeholder. Klik for flere detaljer." + }, + "run": { + "title": "Kør", + "locally": "Kør lokalt" + }, + "readme": { + "title": "Readme", + "no_readme": "Ingen README tilgængelig.", + "toc_title": "Oversigt", + "callout": { + "note": "Note", + "tip": "Tip", + "important": "Vigtigt", + "warning": "Advarsel", + "caution": "Forsigtighed" + }, + "copy_as_markdown": "Kopiér README som Markdown" + }, + "provenance_section": { + "title": "Provenance", + "built_and_signed_on": "Bygget og underskrevet på {provider}", + "view_build_summary": "Se byggesammendrag", + "source_commit": "Kilde Commit", + "build_file": "Byg fil", + "public_ledger": "Offentlig Ledger", + "transparency_log_entry": "Transparency log entry", + "view_more_details": "Se flere detaljer", + "error_loading": "Kunne ikke indlæse provenance-detaljer" + }, + "security_downgrade": { + "title": "Nedgradering af sikkerhed", + "description_to_none_provenance": "Denne version blev udgivet uden {provenance}.", + "description_to_none_trustedPublisher": "Denne version blev udgivet uden {trustedPublishing}.", + "description_to_provenance_trustedPublisher": "Denne version bruger {provenance}, men ikke {trustedPublishing}.", + "fallback_install_provenance": "Installationskommandoer er fastlåst til {version}, den sidste version med provenance.", + "fallback_install_trustedPublisher": "Installationskommandoer er fastlåst til {version}, den sidste version med trusted publishing.", + "provenance_link_text": "provenance", + "trusted_publishing_link_text": "trusted publishing" + }, + "keywords_title": "Nøgleord", + "compatibility": "Kompatibilitet", + "card": { + "publisher": "Udgiver", + "published": "Udgivet", + "weekly_downloads": "Ugentlige downloads", + "keywords": "Nøgleord", + "license": "Licens", + "select": "Vælg pakke", + "select_maximum": "Maksimum {count} pakker kan vælges" + }, + "versions": { + "title": "Versioner", + "collapse": "Skjul {tag}", + "expand": "Udvid {tag}", + "collapse_other": "Skjul andre versioner", + "expand_other": "Udvid andre versioner", + "collapse_major": "Skjul major {major}", + "expand_major": "Udvid major {major}", + "other_versions": "Andre versioner", + "more_tagged": "{count} flere taggede", + "all_covered": "Alle versioner er dækket af tags ovenfor", + "deprecated_title": "{version} (udgået)", + "view_all": "Se {count} version | Se alle {count} versioner", + "view_all_versions": "Se alle versioner", + "distribution_title": "Semver Gruppe", + "distribution_modal_title": "Versioner", + "distribution_range_date_same_year": "fra {from} til {to}, {endYear}", + "distribution_range_date_multiple_years": "fra {from}, {startYear} til {to}, {endYear}", + "grouping_major": "Major", + "grouping_minor": "Minor", + "grouping_versions_title": "Versioner", + "grouping_versions_about": "Om version gruppering", + "grouping_versions_all": "Alle", + "grouping_versions_only_recent": "Kun nyere", + "grouping_usage_title": "Brug", + "grouping_usage_about": "Om brug gruppering", + "grouping_usage_all": "Alle", + "grouping_usage_most_used": "Mest brugt", + "recent_versions_only_tooltip": "Vis kun versioner udgivet inden for det sidste år.", + "show_low_usage_tooltip": "Inkluder version grupper med mindre end 1% af de samlede downloads.", + "y_axis_label": "Downloads", + "filter_placeholder": "Filtrer efter semver (f.eks. ^3.0.0)", + "filter_invalid": "Ugyldig semver rækkevidde", + "filter_help": "Hjælp til semver rækkevidde filter", + "filter_tooltip": "Filtrer versioner ved hjælp af en {link}. For eksempel viser ^3.0.0 alle 3.x versioner.", + "filter_tooltip_link": "semver range", + "no_matches": "Ingen versioner matcher denne rækkevidde", + "copy_alt": { + "per_version_analysis": "{version} version blev downloadet {downloads} gange", + "general_description": "Søjlediagram, der viser downloads pr. version for {versions_count} {semver_grouping_mode} versioner af {package_name}-pakken, {date_range_label} fra {first_version}-versionen til {last_version}-versionen. Den mest downloadede version er {max_downloaded_version} med {max_version_downloads} downloads. {per_version_analysis}. {watermark}." + }, + "page_title": "Versionshistorik", + "current_tags": "Nuværende tags", + "version_filter_placeholder": "Filtrer versioner…", + "version_filter_label": "Filtrer versioner", + "no_match_filter": "Ingen versioner matcher {filter}" + }, + "dependencies": { + "title": "Afhængighed ({count}) | Afhængigheder ({count})", + "list_label": "Pakkeafhængigheder", + "show_all": "vis {count} afh | vis alle {count} afh", + "optional": "valgfri", + "view_vulnerabilities": "Se sårbarheder", + "outdated_major": "{count} major version bagud (seneste: {latest}) | {count} major versioner bagud (seneste: {latest})", + "outdated_minor": "{count} minor version bagud (seneste: {latest}) | {count} minor versioner bagud (seneste: {latest})", + "outdated_patch": "Patch opdatering tilgængelig (seneste: {latest})", + "has_replacement": "Denne afhængighed har foreslåede erstatninger", + "vulnerabilities_count": "{count} sårbarhed | {count} sårbarheder" + }, + "peer_dependencies": { + "title": "Peer Dependency ({count}) | Peer Dependencies ({count})", + "list_label": "Pakke peer afhængigheder", + "show_all": "vis {count} peer afhængighed | vis alle {count} peer afhængigheder" + }, + "optional_dependencies": { + "title": "Valgfri afhængighed ({count}) | Valgfri afhængigheder ({count})", + "list_label": "Pakkevalgfri afhængigheder", + "show_all": "vis {count} valgfri afhængighed | vis alle {count} valgfri afhængigheder" + }, + "maintainers": { + "title": "Vedligeholdere", + "list_label": "Pakkevedligeholdere", + "you": "(dig)", + "via": "via {teams}", + "remove_owner": "Fjern {name} som ejer", + "username_to_add": "Brugernavn til at tilføje som ejer", + "username_placeholder": "brugernavn...", + "add_button": "tilføj", + "cancel_add": "Annuller tilføjelse af ejer", + "add_owner": "+ Tilføj ejer", + "show_more": "(vis {count} mere)", + "show_less": "(vis færre)", + "maintainer_template": "{avatar} {char126}{name}" + }, + "trends": { + "chart_assistive_text": { + "keyboard_navigation_horizontal": "Brug venstre og højre piletaster til at cykle gennem datapunkter.", + "keyboard_navigation_vertical": "Brug op og ned piletaster til at cykle gennem datapunkter.", + "table_available": "En datatabel for dette diagram er tilgængelig nedenfor.", + "table_caption": "Diagramdatatabel" + }, + "chart_view_toggle": "Skift visning", + "chart_view_combined": "Kombineret visning", + "chart_view_split": "Opdelt visning", + "granularity": "Granularitet", + "granularity_daily": "Daglig", + "granularity_weekly": "Ugentlig", + "granularity_monthly": "Månedlig", + "granularity_yearly": "Årlig", + "start_date": "Start", + "end_date": "Slut", + "loading": "Indlæser...", + "date_range": "{start} til {end}", + "date_range_multiline": "{start}\ntil {end}", + "download_file": "Download {fileType}", + "toggle_annotator": "Skift annotator", + "toggle_stack_mode": "Skift staktilstand", + "open_options": "Åbn indstillinger", + "close_options": "Luk indstillinger", + "legend_estimation": "Estimation", + "no_data": "Ingen data tilgængelig", + "y_axis_label": "{granularity} {facet}", + "facet": "Facet", + "title": "Trends", + "contributors_skip": "Vises ikke i Bidragydere (ingen GitHub-repo):", + "items": { + "downloads": "Downloads", + "likes": "Likes", + "contributors": "Bidragydere" + }, + "data_correction": "Datakorrektion", + "average_window": "Gennemsnitsvindue", + "smoothing": "Udjævning", + "prediction": "Forudsigelse", + "known_anomalies": "Kendte anomalier", + "known_anomalies_description": "Interpolerer over kendte downloadspidser forårsaget af bots eller CI-problemer.", + "known_anomalies_ranges": "Anomalierækker", + "known_anomalies_range": "Fra {start} til {end}", + "known_anomalies_range_named": "{packageName}: fra {start} til {end}", + "known_anomalies_none": "Ingen kendte anomalier for denne pakke. | Ingen kendte anomalier for disse pakker.", + "known_anomalies_contribute": "Bidrag med anomalidata", + "apply_correction": "Anvend korrektion", + "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}.", + "facet_bar_general_description": "Horizontal bar chart for: {packages}, comparing {facet} ({description}). {facet_analysis} {watermark}.", + "facet_bar_analysis": "{package_name} has a value of {value}." + } + }, + "downloads": { + "title": "Ugentlige Downloads", + "community_distribution": "Se distributionen af fællesskabsadoption", + "subtitle": "På tværs af alle versioner", + "sparkline_nav_hint": "Brug ← →" + }, + "install_scripts": { + "title": "Installationsscripts", + "script_label": "(script)", + "npx_packages": "{count} npx package | {count} npx packages", + "currently": "currently {version}" + }, + "playgrounds": { + "title": "Prøv det", + "choose": "vælg legeplads" + }, + "metrics": { + "esm": "ES Modules supported", + "cjs": "CommonJS supported", + "no_esm": "ES Modules unsupported", + "wasm": "Has WebAssembly", + "types_label": "Types", + "types_included": "Types included", + "types_available": "Types available via {package}", + "no_types": "No 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" + }, + "download": { + "button": "Download", + "tarball": "Download Tarball as .tar.gz" + } + }, + "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", + "binary_file": "Binary file", + "binary_rendering_warning": "File type \"{contentType}\" is not supported for preview." + }, + "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" + }, + "view_selected": "View selected", + "clear_selected_label": "Clear selected", + "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" + }, + "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", + "security": "Security", + "selection": "Select package" + }, + "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": "{range} 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 great UX/DX for exploring npm packages.", + "what_we_are": { + "title": "What we are", + "better_ux_dx": "great UX/DX", + "admin_ui": "admin UI", + "description": "npmx is a {betterUxDx} for the npm package registry and tooling. We strive to 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 great {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 fast, modern 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 the npm experience we all want.", + "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" + }, + "pr": "Open GitHub pull request #{prNumber}" + }, + "compare": { + "packages": { + "title": "compare packages", + "tagline": "compare npm packages side-by-side to help you choose the right one.", + "meta_title": "Compare {packages} - npmx", + "meta_title_empty": "Compare Packages - npmx", + "meta_description": "Side-by-side comparison of {packages}", + "meta_description_empty": "Compare npm packages side-by-side", + "section_packages": "Packages", + "section_facets": "Facets", + "section_comparison": "Comparison", + "copy_as_markdown": "Copy table", + "loading": "Loading package data...", + "error": "Failed to load package data. Please try again.", + "empty_title": "Select packages to compare", + "empty_description": "Search and add at least 2 packages above to see a side-by-side comparison of their metrics.", + "table_view": "Table", + "charts_view": "Charts", + "no_chartable_data": "No chartable data available for the selected facets.", + "bar_chart_nav_hint": "Use ↑ ↓", + "line_chart_nav_hint": "Use ← →" + }, + "selector": { + "search_label": "Search for packages", + "search_first": "Search for a package...", + "search_add": "Add another package...", + "searching": "Searching...", + "remove_package": "Remove {package}", + "packages_selected": "{count}/{max} packages selected.", + "add_hint": "Add at least 2 packages to compare." + }, + "no_dependency": { + "label": "(No dependency)", + "typeahead_title": "What Would James Do?", + "typeahead_description": "Compare against not using a dependency! e18e approved.", + "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": "Add no dependency column to comparison" + }, + "facets": { + "all": "all", + "none": "none", + "select_all_category_facets": "Select all {category} facets", + "deselect_all_category_facets": "Deselect all {category} facets", + "selected_all_category_facets": "Selected all {category} facets", + "deselected_all_category_facets": "Deselected all {category} facets", + "coming_soon": "Coming soon", + "select_all": "Select all facets", + "deselect_all": "Deselect all 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": "Compare Trends" + } + }, + "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", + "comparing_versions_label": "Comparing versions...", + "version_back_to_package": "Back to package", + "version_error_message": "Failed to compare versions.", + "version_invalid_url_format": { + "hint": "Invalid comparison URL. Use format: {0}", + "from_version": "from", + "to_version": "to" + }, + "version_selector_title": "Compare with 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", + "change_ratio": "Change ratio", + "char_edits": "Char edits", + "diff_distance": "Diff distance", + "loading_diff": "Loading diff...", + "loading_diff_error": "Failed to load diff", + "merge_modified_lines": "Merge modified lines", + "no_content_changes": "No content changes detected", + "options": "Options", + "view_file": "View file", + "view_in_code_browser": "View in code browser", + "word_wrap": "Word wrap" + }, + "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 policy", + "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": "a11y", + "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" + } + }, + "translation_status": { + "title": "translation status", + "generated_at": "Generation date: {date}", + "welcome": "If you're interested in helping us to translate {npmx} into one of the languages listed below, you've come to the right place! This auto-updating page always lists all the content that could use your help right now.", + "p1": "We use {lang} as the default language, with a total of {count}. If you'd like to help add translations, locate the language in {bylang} and expand the details.", + "p1_lang": "American English (en-US)", + "p1_count": "0 messages | 1 message |{count} messages", + "p2": "Before starting, please read our {guide} to learn about our translation process and how you can get involved.", + "guide": "localization (i18n) guide", + "by_locale": "Translation progress by locale", + "by_file": "Translation progress by file", + "complete_text": "This translation is complete, amazing job!", + "missing_text": "missing", + "missing_keys": "There is no missing translations | Missing translation | Missing translations", + "progress_label": "Progress status for {locale}", + "table": { + "file": "File", + "status": "Status", + "error": "Error while loading file list.", + "empty": "No files found", + "file_link": "Edit {file} ({lang}) on GitHub" + } + }, + "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" + } + } + }, + "action_bar": { + "title": "action bar", + "selection": "0 selected | 1 selected | {count} selected", + "shortcut": "Press \"{key}\" to focus actions", + "button_close_aria_label": "Close action bar" + }, + "logo_menu": { + "copy_svg": "Kopiér logo som SVG", + "copied": "Kopieret!", + "browse_brand": "Gennemse brandkit" + }, + "brand": { + "title": "Brand", + "heading": "brand", + "meta_description": "npmx brand guidelines, logos, colors, and typography for use in press and media.", + "intro": "Resources and guidelines for using the npmx brand in your projects, articles, and media.", + "logos": { + "title": "logos", + "description": "Download npmx logos in SVG and PNG formats. Use the appropriate variant for your background.", + "wordmark": "FULL WORDMARK", + "wordmark_alt": "npmx full wordmark logo with blue slash on dark background", + "wordmark_light_alt": "npmx full wordmark logo with accent slash on light background", + "mark": "LOGO MARK", + "mark_alt": "npmx logo mark with dot and slash on dark background", + "mark_light_alt": "npmx logo mark with dot and slash on light background", + "on_dark": "on dark", + "on_light": "on light", + "download_svg": "SVG", + "download_png": "PNG", + "download_svg_aria": "Download {name} as SVG", + "download_png_aria": "Download {name} as PNG" + }, + "customize": { + "title": "customize your logo", + "description": "Preview the npmx logo with your accent color and background. The preview reflects your current settings — pick a color, toggle the background, and download.", + "accent_label": "accent", + "bg_label": "background", + "download_svg_aria": "Download customized logo as SVG", + "download_png_aria": "Download customized logo as PNG" + }, + "typography": { + "title": "typography", + "description": "npmx uses the Geist font family by Vercel for both interface text and code.", + "sans": "Geist Sans", + "sans_desc": "Used for body text and UI elements.", + "mono": "Geist Mono", + "mono_desc": "Used for code, headings, and technical content.", + "pangram": "The quick brown fox jumps over the lazy dog", + "numbers": "0123456789" + }, + "guidelines": { + "title": "just a note", + "message": "Accessibility matters to us, and we would love you to follow us in this vision. When using mentioned media, ensure there is enough contrast against the background, and don't go smaller than 24px. If you need any other resources or additional information about the project, feel free to reach us at {link}.", + "discord_link_text": "chat.npmx.dev" + } + } +} From b26fabd6fd0e268cb74a70785096a112ffc39f71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20N=C3=B8rg=C3=A5rd?= Date: Tue, 31 Mar 2026 21:21:31 +0200 Subject: [PATCH 02/25] chore: apply suggestion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jens Rømer Hesselbjerg --- i18n/locales/da-DK.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index cc2eed3610..3385cf48d8 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -129,7 +129,7 @@ "label": "Datakilde", "description": "Vælg, hvor npmx henter søgedata fra. Individuelle pakkesider bruger altid npm-registret direkte.", "npm": "npm Registry", - "npm_description": "Henter søgning, organisation og brugeroplysninger direkte fra det officielle npm-registre. Autoritativt, men kan være langsommere.", + "npm_description": "Henter søgning, organisation og brugeroplysninger direkte fra det officielle npm-register. Autoritativt, men kan være langsommere.", "algolia": "Algolia", "algolia_description": "Bruger Algolia for hurtigere søgning, organisations- og brugersider." }, From 51ecc8512bdb0e3408264949deecbbdee8b4bf95 Mon Sep 17 00:00:00 2001 From: Lucas Date: Tue, 31 Mar 2026 21:27:20 +0200 Subject: [PATCH 03/25] fix(i18n): update danish translations for clarity and accuracy --- i18n/locales/da-DK.json | 44 ++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index 3385cf48d8..ec7b1df271 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -69,7 +69,7 @@ "view_user_packages": "Se pakker fra denne bruger", "view_org_packages": "Se pakker fra denne organisation" }, - "instant_search": "Instant søgning", + "instant_search": "Øjeblikkelig søgning", "instant_search_on": "på", "instant_search_off": "fra", "instant_search_turn_on": "tænd", @@ -127,13 +127,13 @@ }, "data_source": { "label": "Datakilde", - "description": "Vælg, hvor npmx henter søgedata fra. Individuelle pakkesider bruger altid npm-registret direkte.", + "description": "Vælg, hvor npmx henter søgedata fra. Individuelle pakkesider bruger altid npm-registeret direkte.", "npm": "npm Registry", - "npm_description": "Henter søgning, organisation og brugeroplysninger direkte fra det officielle npm-register. Autoritativt, men kan være langsommere.", + "npm_description": "Henter søgning, organisation og brugeroplysninger direkte fra det officielle npm-register. Altid korrekt, men kan være langsommere.", "algolia": "Algolia", "algolia_description": "Bruger Algolia for hurtigere søgning, organisations- og brugersider." }, - "instant_search": "Instant søgning", + "instant_search": "Øjeblikkelig søgning", "instant_search_description": "Navigerer til søgesiden og opdaterer resultaterne, mens du skriver.", "relative_dates": "Relative datoer", "include_types": "Inkluder {'@'}types i installationen", @@ -593,30 +593,30 @@ "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" + "label": "Forældet", + "tree_found": "{count} forældet afhængighed | {count} forældede afhængigheder", + "show_all": "vis {count} forældet pakke | vis alle {count} forældede pakker" }, "access": { - "title": "Team Access", - "refresh": "Refresh team access", - "list_label": "Team access list", - "owner": "owner", + "title": "Teamadgang", + "refresh": "Opdater teamadgang", + "list_label": "Teamadgangsliste", + "owner": "ejer", "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": "Fjern {name} adgang", + "no_access": "Ingen teamadgang konfigureret", + "select_team_label": "Vælg team", + "loading_teams": "Indlæser teams...", + "select_team": "Vælg team", + "permission_label": "Tilladelsesniveau", "permission": { - "read_only": "read-only", - "read_write": "read-write" + "read_only": "kun læse", + "read_write": "læse-skrive" }, - "grant_button": "grant", - "cancel_grant": "Cancel granting access", - "grant_access": "+ Grant team access" + "grant_button": "tildel", + "cancel_grant": "Annuller tildeling af adgang", + "grant_access": "+ Tildel teamadgang" }, "list": { "filter_label": "Filter packages", From 30350d9f23bbb1c0efce72ff7fdd283b2ede5c1c Mon Sep 17 00:00:00 2001 From: Lucas Date: Tue, 31 Mar 2026 21:42:16 +0200 Subject: [PATCH 04/25] fix(i18n): update danish translations for accuracy and clarity --- i18n/locales/da-DK.json | 238 ++++++++++++++++++++-------------------- 1 file changed, 119 insertions(+), 119 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index ec7b1df271..eed84e2a6d 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -556,7 +556,7 @@ "install_scripts": { "title": "Installationsscripts", "script_label": "(script)", - "npx_packages": "{count} npx package | {count} npx packages", + "npx_packages": "{count} npx pakke | {count} npx pakker", "currently": "currently {version}" }, "playgrounds": { @@ -564,33 +564,33 @@ "choose": "vælg legeplads" }, "metrics": { - "esm": "ES Modules supported", - "cjs": "CommonJS supported", - "no_esm": "ES Modules unsupported", - "wasm": "Has WebAssembly", - "types_label": "Types", - "types_included": "Types included", - "types_available": "Types available via {package}", - "no_types": "No types" + "esm": "ES Modules understøttet", + "cjs": "CommonJS understøttet", + "no_esm": "ES Modules ikke understøttet", + "wasm": "Har WebAssembly", + "types_label": "Typer", + "types_included": "Typer inkluderet", + "types_available": "Typer tilgængelige via {package}", + "no_types": "Ingen typer" }, "license": { - "view_spdx": "View license text on SPDX", - "none": "None" + "view_spdx": "Se licens tekst på SPDX", + "none": "Ingen" }, "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", + "tree_found": "{vulns} sårbarhed i {packages}/{total} pakker | {vulns} sårbarheder i {packages}/{total} pakker", + "show_all_packages": "vis {count} berørte pakke | vis alle {count} berørte pakker", + "path": "sti", + "more": "+{count} mere", + "packages_failed": "{count} pakke kunne ikke kontrolleres | {count} pakker kunne ikke kontrolleres", + "scan_failed": "Kunne ikke scanne for sårbarheder", "severity": { - "critical": "critical", - "high": "high", - "moderate": "moderate", - "low": "low" + "critical": "kritisk", + "high": "høj", + "moderate": "moderat", + "low": "lav" }, - "fixed_in_title": "Fixed in version {version}" + "fixed_in_title": "Håndteret i version {version}" }, "deprecated": { "label": "Forældet", @@ -619,23 +619,23 @@ "grant_access": "+ Tildel teamadgang" }, "list": { - "filter_label": "Filter packages", - "filter_placeholder": "Filter packages...", - "sort_label": "Sort packages", - "showing_count": "Showing {filtered} of {total} packages" + "filter_label": "Filtrer pakker", + "filter_placeholder": "Filtrer pakker...", + "sort_label": "Sorter pakker", + "showing_count": "Viser {filtered} af {total} pakker" }, "skeleton": { - "loading": "Loading package details", - "maintainers": "Maintainers", - "keywords": "Keywords", - "versions": "Versions", - "dependencies": "Dependencies" + "loading": "Indlæser pakkeoplysninger", + "maintainers": "Vedligeholdere", + "keywords": "Nøgleord", + "versions": "Versioner", + "dependencies": "Afhængigheder" }, "sort": { - "downloads": "Most downloaded", - "published": "Recently published", - "name_asc": "Name (A-Z)", - "name_desc": "Name (Z-A)" + "downloads": "Mest downloadede", + "published": "Senest udgivet", + "name_asc": "Navn (A-Z)", + "name_desc": "Navn (Z-A)" }, "size": { "b": "{size} B", @@ -644,7 +644,7 @@ }, "download": { "button": "Download", - "tarball": "Download Tarball as .tar.gz" + "tarball": "Download Tarball som .tar.gz" } }, "connector": { @@ -671,107 +671,107 @@ }, "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...", + "title": "Operationskø", + "clear_all": "ryd alle", + "refresh": "Opdater operationer", + "empty": "Ingen operationer i kø", + "empty_hint": "Tilføj operationer fra pakke- eller organisationssider", + "active_label": "Aktive operationer", + "otp_required": "OTP påkrævet", + "otp_prompt": "Indtast OTP for at fortsætte", + "otp_placeholder": "Indtast OTP-kode...", + "otp_label": "Engangskode", + "retry_otp": "Prøv igen med OTP", + "retry_web_auth": "Prøv igen med webauth", + "retrying": "Forsøger igen...", + "open_web_auth": "Åbn webauth-link", + "approve_operation": "Godkend operation", + "remove_operation": "Fjern operation", + "approve_all": "Godkend alle", + "execute": "Udfør", + "executing": "Udfører...", "log": "Log", - "log_label": "Completed operations log", - "remove_from_log": "Remove from log" + "log_label": "Log over gennemførte operationer", + "remove_from_log": "Fjern fra 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" + "refresh": "Opdater teams", + "filter_label": "Filtrer teams", + "filter_placeholder": "Filtrer teams...", + "sort_by": "Sorter efter", + "loading": "Indlæser teams...", + "no_teams": "Ingen teams fundet", + "list_label": "Organisationsteams", + "delete_team": "Slet team {name}", + "member_count": "{count} medlem | {count} medlemmer", + "members_of": "Medlemmer af {team}", + "no_members": "Ingen medlemmer", + "remove_user": "Fjern {user} fra team", + "username_to_add": "Brugernavn tilføjes til {team}", + "username_placeholder": "brugernavn...", + "add_button": "tilføj", + "cancel_add_user": "Annuller tilføjelse af bruger", + "add_member": "+ Tilføj medlem", + "team_name_label": "Team navn", + "team_name_placeholder": "team-navn...", + "create_button": "opret", + "no_match": "Ingen teams matcher \"{query}\"", + "cancel_create": "Annuller oprettelse af team", + "create_team": "+ Opret 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", + "title": "Medlemmer", + "refresh": "Opdater medlemmer", + "filter_label": "Filtrer medlemmer", + "filter_placeholder": "Filtrer medlemmer...", + "filter_by_role": "Filtrer efter rolle", + "filter_by_team": "Filtrer efter team", + "all_teams": "alle teams", + "sort_by": "Sorter efter", + "loading": "Indlæser medlemmer...", + "no_members": "Ingen medlemmer fundet", + "list_label": "Organisationens medlemmer", + "change_role_for": "Skift rolle for {name}", + "remove_from_org": "Fjern {name} fra organisationen", + "view_team": "Se {team} team", + "no_match": "Ingen medlemmer matcher dine filtre", + "username_label": "Brugernavn", + "username_placeholder": "brugernavn...", + "role_label": "Rolle", "role": { - "all": "all", - "developer": "developer", - "admin": "admin", - "owner": "owner" + "all": "alle", + "developer": "udvikler", + "admin": "administrator", + "owner": "ejer" }, "team_label": "Team", - "no_team": "no team", - "add_button": "add", - "cancel_add": "Cancel adding member", - "add_member": "+ Add member" + "no_team": "intet team", + "add_button": "tilføj", + "cancel_add": "Annuller tilføjelse af medlem", + "add_member": "+ Tilføj medlem" }, - "public_packages": "{count} public package | {count} public packages", + "public_packages": "{count} offentlig pakke | {count} offentlige pakker", "page": { - "packages_title": "Packages", - "members_tab": "Members", + "packages_title": "Pakker", + "members_tab": "Medlemmer", "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": "Ingen offentlige pakker fundet for", + "no_packages_hint": "Denne organisation findes muligvis ikke eller har ingen offentlige pakker.", + "failed_to_load": "Kunne ikke indlæse organisationspakker", + "no_match": "Ingen pakker matcher \"{query}\"", + "not_found": "Organisation ikke fundet", + "not_found_message": "Organisationen \"{'@'}{name}\" findes ikke på 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" + "add_to_org_hint": "(vil også blive tilføjet til organisationen)", + "press_enter_to_add": "Tryk Enter for at tilføje {'@'}{username}", + "default_placeholder": "brugernavn...", + "suggestions_label": "Brugerforslag" }, "page": { "packages_title": "Packages", From 457c28efdd954983de425a7a8033fa0566f40209 Mon Sep 17 00:00:00 2001 From: Lucas Date: Wed, 1 Apr 2026 05:40:39 +0200 Subject: [PATCH 05/25] fix(i18n): update danish translations for packages and organization pages --- i18n/locales/da-DK.json | 264 ++++++++++++++++++++-------------------- 1 file changed, 132 insertions(+), 132 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index eed84e2a6d..449e43b55c 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -774,127 +774,127 @@ "suggestions_label": "Brugerforslag" }, "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..." + "packages_title": "Pakker", + "no_packages": "Ingen offentlige pakker fundet for", + "no_packages_hint": "Denne bruger findes muligvis ikke eller har ingen offentlige pakker.", + "failed_to_load": "Kunne ikke indlæse bruger pakker", + "no_match": "Ingen pakker matcher \"{query}\"", + "filter_placeholder": "Filtrer {count} pakke... | Filtrer {count} pakker..." }, "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" + "title": "Organisationer", + "back_to_profile": "Tilbage til profil", + "connect_required": "Forbind den lokale CLI for at se dine organisationer.", + "connect_hint_prefix": "Kør", + "connect_hint_suffix": "for at komme i gang.", + "own_orgs_only": "Du kan kun se dine egne organisationer.", + "view_your_orgs": "Se dine organisationer", + "loading": "Indlæser organisationer...", + "empty": "Ingen organisationer fundet.", + "empty_hint": "Organisationer opdages fra dine scoped pakker.", + "count": "{count} Organisation | {count} Organisationer", + "packages_count": "{count} pakke | {count} pakker" } }, "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" + "title": "Reserver Pakke Navn", + "success": "Pakke reserveret!", + "success_detail": "{name}{'@'}0.0.0 er blevet publiceret på npm.", + "success_hint": "Du kan nu publicere nye versioner af denne pakke ved hjælp af npm publish.", + "view_package": "Se pakke", + "invalid_name": "Ugyldigt pakkenavn:", + "available": "Dette navn er tilgængeligt!", + "taken": "Dette navn er allerede taget.", + "missing_permission": "Du har ikke tilladelse til at tilføje en pakke til scope {'@'}{scope}.", + "similar_warning": "Lignende pakker findes - npm kan afvise dette navn:", + "related": "Relaterede pakker:", + "scope_warning_title": "Overvej at bruge en scoped pakke i stedet", + "scope_warning_text": "Unscoped pakkenavne er en delt ressource. Kræv kun et navn, hvis du har til hensigt at publicere og vedligeholde en pakke. For personlige eller organisatoriske projekter, brug et scoped navn som {'@'}{username}/{name}.", + "connect_required": "Forbind til den lokale connector for at kræve dette pakkenavn.", + "connect_button": "Forbind til Connector", + "publish_hint": "Dette vil publicere en minimal placeholder-pakke.", + "preview_json": "Forhåndsvis package.json", + "claim_button": "Reserver pakkenavn", + "publishing": "Publicerer...", + "checking": "Tjekker tilgængelighed...", + "failed_to_check": "Kunne ikke tjekke navnets tilgængelighed", + "failed_to_claim": "Kunne ikke reservere pakken" } }, "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", + "files_label": "Filer", + "no_files": "Ingen filer i denne mappe", + "root": "rod", + "lines": "{count} linje | {count} linjer", + "toggle_tree": "Skift filtræ", + "close_tree": "Luk filtræ", + "copy_link": "Kopiér link", + "raw": "Rå", + "view_raw": "Se rå fil", + "file_too_large": "Fil for stor til forhåndsvisning", + "file_size_warning": "{size} overskrider 500KB-grænsen for syntaksfremhævning", + "failed_to_load": "Kunne ikke indlæse fil", + "unavailable_hint": "Filen kan være for stor eller utilgængelig", + "version_required": "Version er påkrævet for at gennemse kode", + "go_to_package": "Gå til pakke", + "loading_tree": "Indlæser filtræ...", + "failed_to_load_tree": "Kunne ikke indlæse filer for denne pakkeversion", + "back_to_package": "Tilbage til pakke", "table": { - "name": "Name", - "size": "Size" + "name": "Navn", + "size": "Størrelse" }, "markdown_view_mode": { - "preview": "preview", - "code": "code" + "preview": "Forhåndsvisning", + "code": "Kode" }, - "file_path": "File path", - "binary_file": "Binary file", - "binary_rendering_warning": "File type \"{contentType}\" is not supported for preview." + "file_path": "Filsti", + "binary_file": "Binær fil", + "binary_rendering_warning": "Filtypen \"{contentType}\" understøttes ikke til forhåndsvisning." }, "badges": { "provenance": { - "verified": "verified", - "verified_title": "Verified provenance", - "verified_via": "Verified: published via {provider}" + "verified": "verificeret", + "verified_title": "Verificeret oprindelse", + "verified_via": "Verificeret: publiceret via {provider}" }, "jsr": { - "title": "also available on JSR" + "title": "også tilgængelig på 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", + "title": "Filtre", + "search": "Søg", + "search_scope": "Søgeområde", + "search_placeholder_name": "Filtrer efter pakkenavn...", + "search_placeholder_description": "Filtrer efter beskrivelse...", + "search_placeholder_keywords": "Filtrer efter nøgleord...", + "search_placeholder_all": "Søg i alle eller brug name: desc: kw:", + "scope_name": "Navn", + "scope_name_description": "Søg kun i pakkenavne", + "scope_description": "Beskrivelse", + "scope_description_description": "Søg kun i beskrivelser", + "scope_keywords": "Nøgleord", + "scope_keywords_description": "Søg kun i nøgleord", + "scope_all": "Alle", + "scope_all_description": "Søg i alle felter, understøtter name: desc: kw: operatorer", + "weekly_downloads": "Ugentlige downloads", + "updated_within": "Opdateret inden for", + "security": "Sikkerhed", + "keywords": "Nøgleord", + "more_keywords": "+{count} mere", + "clear_all": "Ryd alle", + "remove_filter": "Fjern {label} filter", "chips": { - "search": "Search", + "search": "Søg", "downloads": "Downloads", - "keyword": "Keyword", - "security": "Security", - "updated": "Updated" + "keyword": "Nøgleord", + "security": "Sikkerhed", + "updated": "Opdateret" }, "download_range": { - "any": "Any", + "any": "Alle", "lt100": "< 100", "100_1k": "100 - 1K", "1k_10k": "1K - 10K", @@ -902,51 +902,51 @@ "gt100k": "> 100K" }, "updated": { - "any": "Any time", - "week": "Past week", - "month": "Past month", - "quarter": "Past 3 months", - "year": "Past year" + "any": "Når som helst", + "week": "Sidste uge", + "month": "Sidste måned", + "quarter": "Sidste kvartal", + "year": "Sidste år" }, "security_options": { - "all": "All packages", - "secure": "Without warnings", - "insecure": "With warnings" + "all": "Alle pakker", + "secure": "Uden advarsler", + "insecure": "Med advarsler" }, - "view_selected": "View selected", - "clear_selected_label": "Clear selected", + "view_selected": "Vis valgte", + "clear_selected_label": "Ryd valgte", "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" + "label": "Sortér pakker", + "toggle_direction": "Skift sorteringsretning", + "ascending": "Stigende", + "descending": "Faldende", + "relevance": "Relevans", + "downloads_week": "Downloads/uge", + "downloads_day": "Downloads/dag", + "downloads_month": "Downloads/md", + "downloads_year": "Downloads/år", + "published": "Sidst udgivet", + "name": "Navn" }, "columns": { - "title": "Columns", - "show": "Show columns", - "reset": "Reset to defaults", - "coming_soon": "Coming soon", - "name": "Name", + "title": "Kolonner", + "show": "Vis kolonner", + "reset": "Nulstil til standard", + "coming_soon": "Kommer snart", + "name": "Navn", "version": "Version", - "description": "Description", - "downloads": "Downloads/wk", - "published": "Last Published", - "maintainers": "Maintainers", - "keywords": "Keywords", - "security": "Security", - "selection": "Select package" + "description": "Beskrivelse", + "downloads": "Downloads/uge", + "published": "Sidst udgivet", + "maintainers": "Vedligeholdere", + "keywords": "Nøgleord", + "security": "Sikkerhed", + "selection": "Vælg pakke" }, "view_mode": { - "label": "View mode", - "cards": "Card view", - "table": "Table view" + "label": "Visningstilstand", + "cards": "Kortvisning", + "table": "Tabelvisning" }, "pagination": { "mode_label": "Pagination mode", From 93edf717a1a93971f1e9169fb654dee7bfd872ac Mon Sep 17 00:00:00 2001 From: Lucas Date: Wed, 1 Apr 2026 05:54:39 +0200 Subject: [PATCH 06/25] fix(i18n): update danish translations for connector and comparison features --- i18n/locales/da-DK.json | 310 ++++++++++++++++++++-------------------- 1 file changed, 155 insertions(+), 155 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index 449e43b55c..d47f125491 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -649,24 +649,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": "Lokal Connector", + "connected": "Tilsluttet", + "connected_as_user": "Tilsluttet som ~{user}", + "connected_hint": "Du kan nu administrere pakker og organisationer fra web UI.", + "disconnect": "Afbryd forbindelse", + "run_hint": "Kør connectoren på din maskine for at aktivere admin-funktioner.", + "copy_command": "Kopiér kommando", + "copied": "Kopieret", + "paste_token": "Indsæt derefter tokenet nedenfor for at oprette forbindelse:", "token_label": "Token", - "token_placeholder": "paste token here...", - "advanced": "Advanced options", + "token_placeholder": "indsæt token her...", + "advanced": "Avancerede indstillinger", "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": "ADVARSEL", + "warning_text": "Dette giver npmx adgang til din npm CLI. Opret kun forbindelse til sider, du stoler på.", + "connect": "Opret forbindelse", + "connecting": "Opretter forbindelse...", + "auto_open_url": "Åbn godkendelsesside automatisk" } }, "operations": { @@ -1072,204 +1072,204 @@ } }, "header": { - "home": "npmx home", - "packages": "packages", + "home": "npmx hjem", + "packages": "pakker", "packages_dropdown": { - "title": "Your Packages", - "loading": "Loading...", - "error": "Failed to load packages", - "empty": "No packages found", - "view_all": "View all" + "title": "Dine pakker", + "loading": "Indlæser...", + "error": "Kunne ikke indlæse pakker", + "empty": "Ingen pakker fundet", + "view_all": "Se alle" }, - "orgs": "orgs", + "orgs": "organisationer", "orgs_dropdown": { - "title": "Your Organizations", - "loading": "Loading...", - "error": "Failed to load organizations", - "empty": "No organizations found", - "view_all": "View all" + "title": "Dine organisationer", + "loading": "Indlæser...", + "error": "Kunne ikke indlæse organisationer", + "empty": "Ingen organisationer fundet", + "view_all": "Se alle" }, - "pr": "Open GitHub pull request #{prNumber}" + "pr": "Åbn GitHub pull request #{prNumber}" }, "compare": { "packages": { - "title": "compare packages", - "tagline": "compare npm packages side-by-side to help you choose the right one.", - "meta_title": "Compare {packages} - npmx", - "meta_title_empty": "Compare Packages - npmx", - "meta_description": "Side-by-side comparison of {packages}", - "meta_description_empty": "Compare npm packages side-by-side", - "section_packages": "Packages", - "section_facets": "Facets", - "section_comparison": "Comparison", - "copy_as_markdown": "Copy table", - "loading": "Loading package data...", - "error": "Failed to load package data. Please try again.", - "empty_title": "Select packages to compare", - "empty_description": "Search and add at least 2 packages above to see a side-by-side comparison of their metrics.", - "table_view": "Table", - "charts_view": "Charts", - "no_chartable_data": "No chartable data available for the selected facets.", - "bar_chart_nav_hint": "Use ↑ ↓", - "line_chart_nav_hint": "Use ← →" + "title": "Sammenlign pakker", + "tagline": "Sammenlign npm-pakker side om side for at hjælpe dig med at vælge den rigtige.", + "meta_title": "Sammenlign {packages} - npmx", + "meta_title_empty": "Sammenlign pakker - npmx", + "meta_description": "Side-by-side sammenligning af {packages}", + "meta_description_empty": "Sammenlign npm-pakker side om side", + "section_packages": "Pakker", + "section_facets": "Facetter", + "section_comparison": "Sammenligning", + "copy_as_markdown": "Kopiér tabel", + "loading": "Indlæser pakkeoplysninger...", + "error": "Kunne ikke indlæse pakkeoplysninger. Prøv igen.", + "empty_title": "Vælg pakker at sammenligne", + "empty_description": "Søg og tilføj mindst 2 pakker ovenfor for at se en side-by-side sammenligning af deres målinger.", + "table_view": "Tabel", + "charts_view": "Diagrammer", + "no_chartable_data": "Ingen data tilgængelige for de valgte facetter.", + "bar_chart_nav_hint": "Brug ↑ ↓", + "line_chart_nav_hint": "Brug ← →" }, "selector": { - "search_label": "Search for packages", - "search_first": "Search for a package...", - "search_add": "Add another package...", - "searching": "Searching...", - "remove_package": "Remove {package}", - "packages_selected": "{count}/{max} packages selected.", - "add_hint": "Add at least 2 packages to compare." + "search_label": "Søg efter pakker", + "search_first": "Søg efter en pakke...", + "search_add": "Tilføj en anden pakke...", + "searching": "Søger...", + "remove_package": "Fjern {package}", + "packages_selected": "{count}/{max} pakker valgt.", + "add_hint": "Tilføj mindst 2 pakker for at sammenligne." }, "no_dependency": { - "label": "(No dependency)", - "typeahead_title": "What Would James Do?", - "typeahead_description": "Compare against not using a dependency! e18e approved.", - "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.", + "label": "(Ingen afhængighed)", + "typeahead_title": "Hvad ville James gøre?", + "typeahead_description": "Sammenlign med ikke at bruge en afhængighed! e18e godkendt.", + "tooltip_title": "Du har måske ikke brug for en afhængighed", + "tooltip_description": "Sammenlign med ikke at bruge en afhængighed! {link} opretholder en liste over pakker, der kan erstattes med native API'er eller enklere alternativer.", "e18e_community": "e18e community", - "add_column": "Add no dependency column to comparison" + "add_column": "Tilføj kolonne for ingen afhængighed til sammenligning" }, "facets": { - "all": "all", - "none": "none", - "select_all_category_facets": "Select all {category} facets", - "deselect_all_category_facets": "Deselect all {category} facets", - "selected_all_category_facets": "Selected all {category} facets", - "deselected_all_category_facets": "Deselected all {category} facets", - "coming_soon": "Coming soon", - "select_all": "Select all facets", - "deselect_all": "Deselect all facets", - "binary_only_tooltip": "This package exposes binaries and no exports", + "all": "alle", + "none": "ingen", + "select_all_category_facets": "Vælg alle {category} facetter", + "deselect_all_category_facets": "Fravælg alle {category} facetter", + "selected_all_category_facets": "Valgte alle {category} facetter", + "deselected_all_category_facets": "Fravalgte alle {category} facetter", + "coming_soon": "Kommer snart", + "select_all": "Vælg alle facetter", + "deselect_all": "Fravælg alle facetter", + "binary_only_tooltip": "Denne pakke eksponerer kun binære filer og ingen exports", "categories": { - "performance": "Performance", - "health": "Health", - "compatibility": "Compatibility", - "security": "Security & Compliance" + "performance": "Ydeevne", + "health": "Sundhed", + "compatibility": "Kompatibilitet", + "security": "Sikkerhed & Overholdelse" }, "items": { "packageSize": { - "label": "Package Size", - "description": "Size of the package itself (unpacked)" + "label": "Pakke størrelse", + "description": "Størrelsen af selve pakken (udpakket)" }, "installSize": { - "label": "Install Size", - "description": "Total install size including all dependencies" + "label": "Installationsstørrelse", + "description": "Total installationsstørrelse inklusive alle afhængigheder" }, "dependencies": { - "label": "Direct Deps", - "description": "Number of direct dependencies" + "label": "Direkte afhængigheder", + "description": "Antal direkte afhængigheder" }, "totalDependencies": { - "label": "Total Deps", - "description": "Total number of dependencies including transitive" + "label": "Totale afhængigheder", + "description": "Totalt antal afhængigheder inklusive transitive" }, "downloads": { - "label": "Downloads/wk", - "description": "Weekly download count" + "label": "Downloads/uge", + "description": "Antal downloads pr. uge" }, "totalLikes": { "label": "Likes", - "description": "Number of likes" + "description": "Antal likes" }, "lastUpdated": { - "label": "Published", - "description": "When this version was published" + "label": "Udgivet", + "description": "Hvornår denne version blev udgivet" }, "deprecated": { - "label": "Deprecated?", - "description": "Whether the package is deprecated" + "label": "Forældet?", + "description": "Om pakken er forældet" }, "engines": { "label": "Engines", - "description": "Node.js version requirements" + "description": "Node.js version krav" }, "types": { "label": "Types", - "description": "TypeScript type definitions" + "description": "TypeScript type definitioner" }, "moduleFormat": { "label": "Module Format", "description": "ESM/CJS support" }, "license": { - "label": "License", - "description": "Package license" + "label": "Licens", + "description": "Pakke licens" }, "vulnerabilities": { - "label": "Vulnerabilities", - "description": "Known security vulnerabilities" + "label": "Sårbarheder", + "description": "Kendte sikkerhedssårbarheder" } }, "values": { - "any": "Any", - "none": "None", - "unknown": "Unknown", - "deprecated": "Deprecated", - "not_deprecated": "No", - "types_included": "Included", - "types_none": "None", + "any": "Alle", + "none": "Ingen", + "unknown": "Ukendt", + "deprecated": "Forældet", + "not_deprecated": "Nej", + "types_included": "Inkluderet", + "types_none": "Ingen", "vulnerabilities_summary": "{count} ({critical}C/{high}H)", - "up_to_you": "Up to you!" + "up_to_you": "Op til dig!" }, "trends": { - "title": "Compare Trends" + "title": "Sammenlign tendenser" } }, - "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", + "file_changes": "Filændringer", + "files_count": "{count} fil | {count} filer", + "lines_hidden": "{count} linje skjult | {count} linjer skjult", + "file_too_large": "Fil for stor til at sammenligne", + "file_size_warning": "{size} overskrider 250KB grænsen for sammenligning", "compare_versions": "diff", - "compare_versions_title": "Compare with latest version", - "comparing_versions_label": "Comparing versions...", - "version_back_to_package": "Back to package", - "version_error_message": "Failed to compare versions.", + "compare_versions_title": "Sammenlign med seneste version", + "comparing_versions_label": "Sammenligner versioner...", + "version_back_to_package": "Tilbage til pakken", + "version_error_message": "Kunne ikke sammenligne versioner.", "version_invalid_url_format": { - "hint": "Invalid comparison URL. Use format: {0}", - "from_version": "from", - "to_version": "to" - }, - "version_selector_title": "Compare with 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", + "hint": "Ugyldig sammenlignings-URL. Brug format: {0}", + "from_version": "fra", + "to_version": "til" + }, + "version_selector_title": "Sammenlign med version", + "summary": "Oversigt", + "deps_count": "{count} afhængighed | {count} afhængigheder", + "dependencies": "Afhængigheder", + "dev_dependencies": "Dev Afhængigheder", + "peer_dependencies": "Peer Afhængigheder", + "optional_dependencies": "Valgfrie Afhængigheder", + "no_dependency_changes": "Ingen ændringer i afhængigheder", "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", + "all": "Alle ({count})", + "added": "Tilføjet ({count})", + "removed": "Fjernet ({count})", + "modified": "Ændret ({count})" + }, + "search_files_placeholder": "Søg filer...", + "no_files_all": "Ingen filer", + "no_files_search": "Ingen filer matcher \"{query}\"", + "no_files_filtered": "Ingen {filter} filer", "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", - "change_ratio": "Change ratio", - "char_edits": "Char edits", - "diff_distance": "Diff distance", - "loading_diff": "Loading diff...", - "loading_diff_error": "Failed to load diff", - "merge_modified_lines": "Merge modified lines", - "no_content_changes": "No content changes detected", - "options": "Options", - "view_file": "View file", - "view_in_code_browser": "View in code browser", - "word_wrap": "Word wrap" + "added": "tilføjet", + "removed": "fjernet", + "modified": "ændret" + }, + "files_button": "Filer", + "select_file_prompt": "Vælg en fil fra sidepanelet for at se dens diff", + "close_files_panel": "Luk filpanelet", + "filter_files_label": "Filtrer filer efter ændringstype", + "change_ratio": "Ændringsforhold", + "char_edits": "Tegnedits", + "diff_distance": "Diff afstand", + "loading_diff": "Indlæser diff...", + "loading_diff_error": "Kunne ikke indlæse diff", + "merge_modified_lines": "Flet ændrede linjer", + "no_content_changes": "Ingen indholdsændringer registreret", + "options": "Indstillinger", + "view_file": "Se fil", + "view_in_code_browser": "Se i kodebrowser", + "word_wrap": "Ordombrydning" }, "pds": { "title": "npmx.social", From 76649c7f884912b1e1ba45e2351503627b3afe81 Mon Sep 17 00:00:00 2001 From: Lucas Date: Wed, 1 Apr 2026 06:00:33 +0200 Subject: [PATCH 07/25] fix(i18n): update danish translations for privacy policy and accessibility sections --- i18n/locales/da-DK.json | 152 ++++++++++++++++++++-------------------- 1 file changed, 76 insertions(+), 76 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index d47f125491..823508b4a7 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -1300,128 +1300,128 @@ } }, "privacy_policy": { - "title": "privacy policy", - "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.", + "title": "privatlivspolitik", + "last_updated": "Sidst opdateret: {date}", + "welcome": "Velkommen til {app}. Vi er forpligtet til at beskytte dit privatliv. Denne politik forklarer, hvilke data vi indsamler, hvordan vi bruger dem, og dine rettigheder vedrørende dine oplysninger.", "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." + "title": "Hvad er cookies?", + "p1": "Cookies er små tekstfiler, der gemmes på din enhed, når du besøger en hjemmeside. Deres formål er at forbedre din browsingoplevelse ved at huske visse præferencer og indstillinger." }, "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", + "title": "Hvilke cookies bruger vi?", + "p1": "Vi bruger kun {bold} til formål, der er strengt nødvendige for sidens funktionalitet. Vi bruger ikke tredjeparts- eller reklamecookies.", + "bold": "væsentlige tekniske 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_vdpl_desc": "Denne cookie bruges af vores hostingudbyder (Vercel) til skævbeskyttelse. Den sikrer, at du henter ressourcer fra den korrekte deploymentsversion, hvis en ny opdatering frigives, mens du browser. Den sporer dig ikke.", "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." + "cookie_h3_desc": "Dette er vores sikre sessionscookie. Den gemmer OAuth-adgangstokenet, når du forbinder din Atmosphere-konto. Den er afgørende for at opretholde din autentificerede 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" + "title": "Lokal lagring", + "p1": "Ud over sessionscookies bruger vi din browsers {bold} til at gemme dine visningspræferencer. Dette gør det muligt for os at huske temaet (lys/mørk) og nogle andre {settings}, du har valgt, så du ikke behøver at konfigurere dem igen ved hvert besøg.", + "bold": "Lokal lagring", + "p2": "Disse oplysninger er udelukkende funktionelle, gemt kun på din enhed, og {bold2}. Vi bruger det udelukkende til at forbedre din oplevelse på vores hjemmeside.", + "bold2": "indeholder ingen personlige data og bruges ikke til at spore dig", + "settings": "indstillinger" }, "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)" + "title": "Håndtering af cookies", + "p1": "Du kan konfigurere din browser til at acceptere, afvise eller slette cookies i henhold til dine præferencer. Bemærk dog, at {bold}.", + "bold": "afvisning af væsentlige cookies kan forhindre fuld adgang til applikationen", + "p2": "Nedenfor er links med instruktioner til cookiehåndtering i de mest anvendte browsere:", + "chrome": "Google Chrome (åbner i et nyt vindue)", + "firefox": "Mozilla Firefox (åbner i et nyt vindue)", + "edge": "Microsoft Edge (åbner i et nyt vindue)" } }, "analytics": { "title": "Analytics", - "p1": "We use {bold} to understand how visitors use our website. This helps us improve the user experience and identify issues.", + "p1": "Vi bruger {bold} til at forstå, hvordan besøgende bruger vores hjemmeside. Dette hjælper os med at forbedre brugeroplevelsen og identificere problemer.", "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." + "p2": "Vercel Analytics er designet med privatliv for øje:", + "li1": "Det bruger ikke cookies", + "li2": "Det indsamler ikke personlige identifikatorer", + "li3": "Det sporer ikke brugere på tværs af hjemmesider", + "li4": "Alle data er aggregerede og anonymiserede", + "p3": "De eneste oplysninger, der indsamles, inkluderer: side-URL'er, henvisninger, land/region, enhedstype, browser og operativsystem. Disse data kan ikke bruges til at identificere individuelle brugere." }, "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.", + "title": "Autentificerede brugere", + "p1": "Når du forbinder din {bold} konto til npmx, gemmer vi dit OAuth-adgangstoken i en sikker, HTTP-only sessionscookie. Dette token bruges udelukkende til at autentificere forespørgsler på dine vegne.", "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" + "p2": "Vi gemmer ikke dine legitimationsoplysninger, og vi får ikke adgang til nogen data ud over det, der er nødvendigt for at levere de funktioner, du bruger. Du kan til enhver tid afbryde din konto fra {settings}-siden.", + "settings": "indstillinger" }, "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." + "title": "Opbevaring af data", + "p1": "Sessionscookies slettes automatisk, når du lukker din browser eller efter en periode med inaktivitet. Lokale lagringspræferencer forbliver på din enhed, indtil du rydder dine browserdata. Analytics-data opbevares i aggregeret form og kan ikke knyttes til individuelle brugere." }, "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." + "title": "Dine rettigheder", + "p1": "Du har ret til:", + "li1": "At få adgang til oplysninger om, hvilke data vi indsamler", + "li2": "At rydde din lokale lagring og cookies når som helst", + "li3": "At afbryde din autentificerede session", + "li4": "At anmode om oplysninger om vores datapolitikker", + "p2": "Da vi ikke indsamler personlige data, er der typisk ingen personlige oplysninger at slette eller eksportere." }, "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}.", + "title": "Kontakt os", + "p1": "For spørgsmål eller bekymringer om denne privatlivspolitik, kan du kontakte os ved at åbne en sag på vores {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." + "title": "Ændringer i denne politik", + "p1": "Vi kan opdatere denne privatlivspolitik fra tid til anden. Eventuelle ændringer vil blive offentliggjort på denne side med en opdateret revisionsdato." } }, "a11y": { - "title": "accessibility", + "title": "tilgængelighed", "footer_title": "a11y", - "welcome": "We want {app} to be usable by as many people as possible.", + "welcome": "Vi ønsker, at {app} skal være brugbar for så mange mennesker som muligt.", "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" + "title": "Vores tilgang", + "p1": "Vi forsøger at følge Web Content Accessibility Guidelines (WCAG) 2.2 og bruger dem som reference, når vi bygger funktioner. Vi hævder ikke fuld overensstemmelse med nogen WCAG-niveau — tilgængelighed er en kontinuerlig proces, og der er altid mere arbejde at gøre.", + "p2": "Dette websted er et {about}. Tilgængelighedsforbedringer foretages gradvist som en del af vores regelmæssige udvikling.", + "about_link": "open-source, community-drevet projekt" }, "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." + "title": "Hvad vi gør", + "p1": "Nogle af de ting, vi stræber efter at gøre på tværs af webstedet:", + "li1": "Brug semantisk HTML og ARIA-attributter, hvor det er relevant.", + "li2": "Brug relative tekststørrelser, så du kan justere dem i din browser.", + "li3": "Understøt tastaturnavigation i hele grænsefladen.", + "li4": "Respekter mediernes forespørgsler om reduceret bevægelse og farveskema.", + "li5": "Design med tilstrækkelig farvekontrast i tankerne.", + "li6": "Sørg for, at væsentligt indhold er tilgængeligt uden JavaScript, selvom nogle interaktive funktioner kræver det." }, "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." + "title": "Kendte begrænsninger", + "p1": "Nogle dele af webstedet — især tredjepartsindhold som pakke-README'er — opfylder muligvis ikke tilgængelighedsstandarder. Vi arbejder på at forbedre disse områder over tid." }, "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": "Hvis du støder på en tilgængelighedsbarriere på {app}, bedes du give os besked ved at åbne en sag på vores {link}. Vi tager disse rapporter alvorligt og vil gøre vores bedste for at løse dem.", "link": "GitHub repository" } }, "translation_status": { - "title": "translation status", - "generated_at": "Generation date: {date}", - "welcome": "If you're interested in helping us to translate {npmx} into one of the languages listed below, you've come to the right place! This auto-updating page always lists all the content that could use your help right now.", - "p1": "We use {lang} as the default language, with a total of {count}. If you'd like to help add translations, locate the language in {bylang} and expand the details.", - "p1_lang": "American English (en-US)", - "p1_count": "0 messages | 1 message |{count} messages", - "p2": "Before starting, please read our {guide} to learn about our translation process and how you can get involved.", - "guide": "localization (i18n) guide", - "by_locale": "Translation progress by locale", - "by_file": "Translation progress by file", - "complete_text": "This translation is complete, amazing job!", - "missing_text": "missing", + "title": "oversættelsesstatus", + "generated_at": "Genereringsdato: {date}", + "welcome": "Hvis du er interesseret i at hjælpe os med at oversætte {npmx} til et af de sprog, der er angivet nedenfor, er du kommet til det rigtige sted! Denne automatisk opdaterende side viser altid alt indhold, der kunne bruge din hjælp lige nu.", + "p1": "Vi bruger {lang} som standardsprog, med i alt {count}. Hvis du gerne vil hjælpe med at tilføje oversættelser, skal du finde sproget i {bylang} og udvide detaljerne.", + "p1_lang": "Amerikansk engelsk (en-US)", + "p1_count": "0 beskeder | 1 besked |{count} beskeder", + "p2": "Før du går i gang, bedes du læse vores {guide} for at lære om vores oversættelsesproces og hvordan du kan deltage.", + "guide": "lokaliseringsguide (i18n)", + "by_locale": "Oversættelsesfremskridt efter lokalitet", + "by_file": "Oversættelsesfremskridt efter fil", + "complete_text": "Denne oversættelse er fuldført, fantastisk arbejde!", + "missing_text": "mangler", "missing_keys": "There is no missing translations | Missing translation | Missing translations", "progress_label": "Progress status for {locale}", "table": { From 1216d5b6add14477b49117e16e62886fdbd0669e Mon Sep 17 00:00:00 2001 From: Lucas Date: Fri, 3 Apr 2026 16:02:41 +0200 Subject: [PATCH 08/25] fix(i18n): update danish translations for various sections --- i18n/locales/da-DK.json | 244 ++++++++++++++++++++-------------------- 1 file changed, 122 insertions(+), 122 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index 823508b4a7..29c9f15374 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -79,8 +79,8 @@ "nav": { "main_navigation": "Hovednavigation", "popular_packages": "Populære pakker", - "settings": "Indstillinger", - "compare": "Sammenlign", + "settings": "indstillinger", + "compare": "sammenlign", "back": "Tilbage", "menu": "Menu", "mobile_menu": "Navigationsmenu", @@ -531,20 +531,20 @@ "known_anomalies_contribute": "Bidrag med anomalidata", "apply_correction": "Anvend korrektion", "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}.", - "facet_bar_general_description": "Horizontal bar chart for: {packages}, comparing {facet} ({description}). {facet_analysis} {watermark}.", - "facet_bar_analysis": "{package_name} has a value of {value}." + "trend_none": "næsten flad", + "trend_strong": "stærk", + "trend_weak": "svag", + "trend_undefined": "undefined (utilstrækkelige data)", + "button_label": "Kopiér alternativ tekst", + "watermark": "Nederst står der et vandmærke \"./npmx en hurtig, moderne browser til npm-registret\"", + "analysis": "{package_name} starter ved {start_value} og slutter ved {end_value}, hvilket viser en {trend} trend med en hældning på {downloads_slope} downloads pr. tidsinterval. Den mest downloadede version er {max_downloaded_version} med {max_version_downloads} downloads. {per_version_analysis}. {estimation_notice}", + "estimation": "Den endelige værdi er et skøn baseret på delvise data for den aktuelle periode.", + "estimations": "De endelige værdier er skøn baseret på delvise data for den aktuelle periode.", + "compare": "Sammenligning af pakkedownloads linjediagram for: {packages}.", + "single_package": "Downloads linjediagram for {package} pakken.", + "general_description": "Y-aksen repræsenterer antallet af downloads. X-aksen repræsenterer datointervallet, fra {start_date} til {end_date}, med en {granularity} tidsperiode.{estimation_notice} {packages_analysis}. {watermark}.", + "facet_bar_general_description": "Horisontalt søjlediagram for: {packages}, der sammenligner {facet} ({description}). {facet_analysis} {watermark}.", + "facet_bar_analysis": "{package_name} har en værdi på {value}." } }, "downloads": { @@ -971,74 +971,74 @@ } }, "about": { - "title": "About", - "heading": "about", - "meta_description": "npmx is a fast, modern browser for the npm registry. A great UX/DX for exploring npm packages.", + "title": "Om", + "heading": "om", + "meta_description": "npmx er en hurtig, moderne browser til npm-registret. En fantastisk UX/DX til at udforske npm-pakker.", "what_we_are": { - "title": "What we are", - "better_ux_dx": "great UX/DX", + "title": "Hvad vi er", + "better_ux_dx": "fantastisk UX/DX", "admin_ui": "admin UI", - "description": "npmx is a {betterUxDx} for the npm package registry and tooling. We strive to 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 great {adminUi} for managing your packages, teams, and organizations — all from the browser, powered by your local npm CLI." + "description": "npmx er en {betterUxDx} til npm-pakkeregistret og -værktøjet. Vi stræber efter at levere en hurtig, moderne grænseflade til at udforske pakker med funktioner som mørk tilstand, tastaturnavigation, kodebrowsing og forbindelser til alternative registre som {jsr}.", + "admin_description": "Vi sigter også mod at tilbyde en fantastisk {adminUi} til at administrere dine pakker, teams og organisationer — alt fra browseren, drevet af din 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 fast, modern way to browse them.", + "title": "Hvad vi ikke er", + "not_package_manager": "Ikke et værktøj til pakkehåndtering.", + "not_registry": "Ikke et register.", + "registry_description": "Vi hoster ikke pakker. Vi er bare en hurtig, moderne måde at gennemse dem på.", "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": "Der er", + "people": "allerede", + "building": "folk", + "really": "bygger", + "cool": "virkelig", + "package": "seje", + "managers": "værktøjer til pakkehåndtering" } }, "sponsors": { - "title": "Sponsors" + "title": "Sponsorer" }, "oss_partners": { - "title": "OSS Partners" + "title": "OSS Partnere" }, "team": { "title": "Team", "governance": "Governance", - "role_steward": "steward", - "role_maintainer": "maintainer", + "role_steward": "forvalter", + "role_maintainer": "vedligeholder", "sponsor": "sponsor", - "sponsor_aria": "Sponsor {name} on GitHub" + "sponsor_aria": "Sponsor {name} på 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": "... og {count} flere bidragydere | ... og {count} flere bidragydere", + "description": "npmx er fuldt open source, bygget af et fantastisk fællesskab af bidragydere. Deltag og lad os sammen bygge den npm-oplevelse, vi altid har ønsket os.", + "loading": "Indlæser bidragydere...", + "error": "Kunne ikke indlæse bidragydere", + "view_profile": "Se {name}'s GitHub-profil" }, "get_involved": { - "title": "Get involved", + "title": "Bliv involveret", "contribute": { - "title": "Contribute", - "description": "Help us build the npm experience we all want.", - "cta": "View on GitHub" + "title": "Bidrag", + "description": "Hjælp os med at bygge den npm-oplevelse, vi alle ønsker.", + "cta": "Se på GitHub" }, "community": { - "title": "Join the community", - "description": "Chat, ask questions, and share ideas.", - "cta": "Join Discord" + "title": "Deltag i fællesskabet", + "description": "Chat, stil spørgsmål, og del idéer.", + "cta": "Deltag i Discord" }, "builders": { - "title": "Help build npmx", - "description": "Join the builders shaping the future of npmx.", - "cta": "Join Builders Discord" + "title": "Hjælp med at bygge npmx", + "description": "Deltag i byggerne, der former fremtiden for npmx.", + "cta": "Deltag i Builders Discord" }, "follow": { - "title": "Stay updated", - "description": "Find out the latest on npmx.", - "cta": "Follow on Bluesky" + "title": "Hold dig opdateret", + "description": "Få de seneste nyheder om npmx.", + "cta": "Følg på Bluesky" } } }, @@ -1057,18 +1057,18 @@ "auth": { "modal": { "title": "Atmosphere", - "connected_as": "Connected as {'@'}{handle}", - "disconnect": "Disconnect", - "connect_prompt": "Connect with your Atmosphere account", - "handle_label": "Handle", + "connected_as": "Forbundet som {'@'}{handle}", + "disconnect": "Afbryd forbindelse", + "connect_prompt": "Forbind med din Atmosphere-konto", + "handle_label": "Brugernavn", "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" + "connect": "Forbind", + "create_account": "Opret en ny konto", + "connect_bluesky": "Forbind med Bluesky", + "what_is_atmosphere": "Hvad er en Atmosphere-konto?", + "atmosphere_explanation": "{npmx} bruger {atproto} til at drive mange af sine sociale funktioner, hvilket giver brugerne mulighed for at eje deres data og bruge én konto til alle kompatible applikationer. Når du opretter en konto, kan du bruge andre apps som {bluesky} og {tangled} med den samme konto.", + "default_input_error": "Indtast venligst et gyldigt brugernavn, DID eller en fuld PDS-URL", + "profile": "Profil" } }, "header": { @@ -1422,55 +1422,55 @@ "by_file": "Oversættelsesfremskridt efter fil", "complete_text": "Denne oversættelse er fuldført, fantastisk arbejde!", "missing_text": "mangler", - "missing_keys": "There is no missing translations | Missing translation | Missing translations", - "progress_label": "Progress status for {locale}", + "missing_keys": "Der er ingen manglende oversættelser | Manglende oversættelse | Manglende oversættelser", + "progress_label": "Status for {locale}", "table": { - "file": "File", + "file": "Fil", "status": "Status", - "error": "Error while loading file list.", - "empty": "No files found", - "file_link": "Edit {file} ({lang}) on GitHub" + "error": "Fejl under indlæsning af filoversigt.", + "empty": "Ingen filer fundet", + "file_link": "Rediger {file} ({lang}) på GitHub" } }, "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", + "title": "på ferie", + "meta_description": "npmx-teamet genopladede. Discord genåbnede efter en uge.", + "heading": "genopladning", + "subtitle": "vi byggede npmx i et tempo, der kostede {some} af os søvn. vi ønskede ikke, at det skulle være normen! så vi tog en uge fri. sammen.", + "illustration_alt": "en enkelt række af hyggelige ikoner", + "poke_log": "Stik til lejrbålet", "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.", + "title": "hvad skete der", + "p1": "discord var lukket {dates}.", + "dates": "14. – 21. februar", + "p2": "alle invite-links var væk, og kanalerne var låst – undtagen {garden}, som forblev åben for dem, der ønskede at hænge ud.", "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" + "title": "i mellemtiden", + "p1": "{site} og {repo} forblev åbne – folk gravede stadig i det, indsendte nogle problemer, åbnede et par PR'er, men mest af alt tilbragte alle tid et sted nær en hyggelig pejs.", + "repo_link": "repoet" }, "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" + "title": "vi kom tilbage!", + "p1": "vi kom tilbage opladet og klar til den sidste indsats inden 3. marts. {social} for opdateringer.", + "social_link": "følg os på Bluesky" }, "stats": { - "contributors": "Contributors", + "contributors": "Bidragydere", "commits": "Commits", "pr": "PRs Merged", "subtitle": { - "some": "some", - "all": "all" + "some": "nogle", + "all": "alle" } } }, "action_bar": { - "title": "action bar", - "selection": "0 selected | 1 selected | {count} selected", - "shortcut": "Press \"{key}\" to focus actions", - "button_close_aria_label": "Close action bar" + "title": "handlingslinje", + "selection": "0 valgt | 1 valgt | {count} valgte", + "shortcut": "Tryk på \"{key}\" for at fokusere handlinger", + "button_close_aria_label": "Luk handlingslinje" }, "logo_menu": { "copy_svg": "Kopiér logo som SVG", @@ -1480,45 +1480,45 @@ "brand": { "title": "Brand", "heading": "brand", - "meta_description": "npmx brand guidelines, logos, colors, and typography for use in press and media.", - "intro": "Resources and guidelines for using the npmx brand in your projects, articles, and media.", + "meta_description": "npmx brand retningslinjer, logoer, farver og typografi til brug i presse og medier.", + "intro": "Ressourcer og retningslinjer til brug af npmx-brandet i dine projekter, artikler og medier.", "logos": { - "title": "logos", - "description": "Download npmx logos in SVG and PNG formats. Use the appropriate variant for your background.", - "wordmark": "FULL WORDMARK", - "wordmark_alt": "npmx full wordmark logo with blue slash on dark background", - "wordmark_light_alt": "npmx full wordmark logo with accent slash on light background", - "mark": "LOGO MARK", - "mark_alt": "npmx logo mark with dot and slash on dark background", - "mark_light_alt": "npmx logo mark with dot and slash on light background", - "on_dark": "on dark", - "on_light": "on light", + "title": "logoer", + "description": "Download npmx-logoer i SVG- og PNG-formater. Brug den passende variant til din baggrund.", + "wordmark": "FULDT ORDMÆRKE", + "wordmark_alt": "npmx fuldt ordlogo med blå skråstreg på mørk baggrund", + "wordmark_light_alt": "npmx fuldt ordlogo med accentfarve skråstreg på lys baggrund", + "mark": "LOGO MÆRKE", + "mark_alt": "npmx logomærke med prik og skråstreg på mørk baggrund", + "mark_light_alt": "npmx logomærke med prik og skråstreg på lys baggrund", + "on_dark": "på mørk baggrund", + "on_light": "på lys baggrund", "download_svg": "SVG", "download_png": "PNG", - "download_svg_aria": "Download {name} as SVG", - "download_png_aria": "Download {name} as PNG" + "download_svg_aria": "Download {name} som SVG", + "download_png_aria": "Download {name} som PNG" }, "customize": { - "title": "customize your logo", - "description": "Preview the npmx logo with your accent color and background. The preview reflects your current settings — pick a color, toggle the background, and download.", + "title": "tilpas dit logo", + "description": "Se forhåndsvisning af npmx-logoet med din accentfarve og baggrund. Forhåndsvisningen afspejler dine aktuelle indstillinger - vælg en farve, skift baggrunden og download.", "accent_label": "accent", - "bg_label": "background", - "download_svg_aria": "Download customized logo as SVG", - "download_png_aria": "Download customized logo as PNG" + "bg_label": "baggrund", + "download_svg_aria": "Download tilpasset logo som SVG", + "download_png_aria": "Download tilpasset logo som PNG" }, "typography": { - "title": "typography", - "description": "npmx uses the Geist font family by Vercel for both interface text and code.", + "title": "typografi", + "description": "npmx bruger Geist-skrifttypen af Vercel til både grænsefladetekst og kode.", "sans": "Geist Sans", - "sans_desc": "Used for body text and UI elements.", + "sans_desc": "Bruges til brødtekst og UI-elementer.", "mono": "Geist Mono", - "mono_desc": "Used for code, headings, and technical content.", + "mono_desc": "Bruges til kode, overskrifter og teknisk indhold.", "pangram": "The quick brown fox jumps over the lazy dog", "numbers": "0123456789" }, "guidelines": { - "title": "just a note", - "message": "Accessibility matters to us, and we would love you to follow us in this vision. When using mentioned media, ensure there is enough contrast against the background, and don't go smaller than 24px. If you need any other resources or additional information about the project, feel free to reach us at {link}.", + "title": "bare en note", + "message": "Tilgængelighed betyder noget for os, og vi vil elske, at du følger os i denne vision. Når du bruger nævnte medier, skal du sikre, at der er tilstrækkelig kontrast mod baggrunden, og gå ikke mindre end 24px. Hvis du har brug for andre ressourcer eller yderligere oplysninger om projektet, er du velkommen til at kontakte os på {link}.", "discord_link_text": "chat.npmx.dev" } } From 9302ffa2e132da4f33996144e7013a99ff787fac Mon Sep 17 00:00:00 2001 From: Lucas Date: Fri, 3 Apr 2026 16:12:24 +0200 Subject: [PATCH 09/25] fix(i18n): update danish translations for pagination and server details --- i18n/locales/da-DK.json | 74 ++++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index 29c9f15374..af624300a0 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -949,25 +949,25 @@ "table": "Tabelvisning" }, "pagination": { - "mode_label": "Pagination mode", - "infinite": "Infinite", - "paginated": "Paginated", - "items_per_page": "Items per page", - "per_page": "{count} / page", - "showing": "{range} of {total}", - "previous": "Previous page", - "next": "Next page", - "nav_label": "Pagination" + "mode_label": "Pagineringstilstand", + "infinite": "Uendelig", + "paginated": "Pagineret", + "items_per_page": "Elementer pr. side", + "per_page": "{count} / side", + "showing": "{range} ud af {total}", + "previous": "Forrige side", + "next": "Næste side", + "nav_label": "Paginering" }, "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_filtered": "{filtered} ud af {count} pakke | {filtered} ud af {count} pakker", + "showing_all": "{count} pakke | {count} pakker", + "showing_paginated": "{pageSize} ud af {count} pakke | {pageSize} ud af {count} pakker" }, "table": { - "security_warning": "Security warning", - "secure": "Secure", - "no_packages": "No packages found" + "security_warning": "Sikkerhedsadvarsel", + "secure": "Sikker", + "no_packages": "Ingen pakker fundet" } }, "about": { @@ -1043,15 +1043,15 @@ } }, "account_menu": { - "connect": "connect", - "account": "Account", + "connect": "forbind", + "account": "Konto", "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...", + "npm_cli_desc": "Administrer pakker & organisationer", + "atmosphere_desc": "Sociale funktioner & identitet", + "connect_npm_cli": "Forbind til npm CLI", + "connect_atmosphere": "Forbind til Atmosphere", + "connecting": "Forbinder...", "ops": "{count} op | {count} ops" }, "auth": { @@ -1280,23 +1280,23 @@ "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" + "title": "Serverdetaljer", + "location_label": "Placering:", + "location_value": "Nürnberg, Tyskland", + "infrastructure_label": "Infrastruktur:", + "infrastructure_value": "Hostet på Hetzner", + "privacy_label": "Privatliv:", + "privacy_value": "Underlagt strenge EU-databeskyttelseslove", + "learn_more": "Lær hvordan npmx bruger 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": "Hvem er her", + "description": "Nogle af de {count} konti, der allerede kalder npmx.social hjem:", + "loading": "Indlæser PDS-fællesskab...", + "error": "Kunne ikke indlæse PDS-fællesskab.", + "empty": "Ingen fællesskabsmedlemmer at vise.", + "view_profile": "Se {handle}'s profil", + "new_accounts": "...plus {count} nye, der er nye i atmosfæren" } }, "privacy_policy": { From f95715eb1e32a1ccf36818166cdb9cef32b2b922 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Fri, 3 Apr 2026 14:13:36 +0000 Subject: [PATCH 10/25] [autofix.ci] apply automated fixes --- i18n/locales/da-DK.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index af624300a0..96637b38b8 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -825,12 +825,10 @@ "code": { "files_label": "Filer", "no_files": "Ingen filer i denne mappe", - "root": "rod", "lines": "{count} linje | {count} linjer", "toggle_tree": "Skift filtræ", "close_tree": "Luk filtræ", "copy_link": "Kopiér link", - "raw": "Rå", "view_raw": "Se rå fil", "file_too_large": "Fil for stor til forhåndsvisning", "file_size_warning": "{size} overskrider 500KB-grænsen for syntaksfremhævning", From 847fdadfbd799e1a1c0906811c78c91689f42b6f Mon Sep 17 00:00:00 2001 From: Lucas Date: Sat, 4 Apr 2026 07:01:50 +0200 Subject: [PATCH 11/25] fix(i18n): update danish translation for 'Types' label --- i18n/locales/da-DK.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index 96637b38b8..a1e722f06b 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -1184,7 +1184,7 @@ "description": "Node.js version krav" }, "types": { - "label": "Types", + "label": "Typer", "description": "TypeScript type definitioner" }, "moduleFormat": { From 83c8673fde122824b9f66a8b700a37ecd2eecaa2 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Sat, 11 Apr 2026 11:09:30 +0000 Subject: [PATCH 12/25] [autofix.ci] apply automated fixes --- i18n/locales/da-DK.json | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index a1e722f06b..feaffc9dbd 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -76,6 +76,23 @@ "instant_search_turn_off": "sluk", "instant_search_advisory": "{label} {state} — {action}" }, + "command_palette": { + "state": {}, + "groups": {}, + "actions": {}, + "connections": {}, + "navigation": {}, + "links": {}, + "package_links": {}, + "theme": {}, + "package": {}, + "package_actions": {}, + "code": {}, + "diff": {}, + "version": {}, + "status": {}, + "announcements": {} + }, "nav": { "main_navigation": "Hovednavigation", "popular_packages": "Populære pakker", @@ -441,8 +458,6 @@ }, "page_title": "Versionshistorik", "current_tags": "Nuværende tags", - "version_filter_placeholder": "Filtrer versioner…", - "version_filter_label": "Filtrer versioner", "no_match_filter": "Ingen versioner matcher {filter}" }, "dependencies": { @@ -1120,6 +1135,10 @@ "packages_selected": "{count}/{max} pakker valgt.", "add_hint": "Tilføj mindst 2 pakker for at sammenligne." }, + "quadrant_chart": { + "copy_alt": {}, + "explanation": {} + }, "no_dependency": { "label": "(Ingen afhængighed)", "typeahead_title": "Hvad ville James gøre?", From fd33a37b35c6f2a213116b1886f906320d1496a5 Mon Sep 17 00:00:00 2001 From: Lucas Date: Sun, 12 Apr 2026 06:11:14 +0200 Subject: [PATCH 13/25] fix(i18n): update danish translations for command palette and various labels --- i18n/locales/da-DK.json | 193 +++++++++++++++++++++++++++++++++------- 1 file changed, 160 insertions(+), 33 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index feaffc9dbd..e6b71943a2 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -2,7 +2,7 @@ "$schema": "../schema.json", "seo": { "home": { - "title": "npmx - Pakke Browser til npm Registry", + "title": "npmx - pakkebrowser til npm-registret", "description": "en hurtig, moderne browser til npm-registret. Søg, gennemse og udforsk pakker med en moderne grænseflade." } }, @@ -28,6 +28,9 @@ "search": "Søg", "package": "Pakke" }, + "ctrl_key": "Ctrl", + "command_palette": "Åbn kommandopaletten", + "command_palette_description": "Brug kommandopaletten til at hoppe mellem sider, pakkevisninger, indstillinger og eksterne links uden at forlade tastaturet. På macOS skal du trykke på ⌘K. På Windows og Linux skal du trykke på {ctrlKey}+K.", "focus_search": "Fokusér søgning", "show_kbd_hints": "Fremhæv tastaturgenveje", "settings": "Åbn indstillinger", @@ -50,15 +53,15 @@ "found_packages_sorted": "Ingen resultater fundet | Sortering af top {count} resultat | Sortering af top {count} resultater", "updating": "(opdaterer...)", "no_results": "Ingen pakker fundet for \"{query}\"", - "rate_limited": "Ramte npm rate limit, prøv igen om et øjeblik", + "rate_limited": "For mange forespørgsler til npm, prøv igen om et øjeblik", "title": "søg", "title_search": "søg: {search}", "title_packages": "søg pakker", "meta_description": "Søgeresultater for '{search}'", "meta_description_packages": "Søg npm-pakker", "not_taken": "{name} er ikke taget", - "claim_prompt": "Krav dette pakkenavn på npm", - "claim_button": "Krav \"{name}\"", + "claim_prompt": "Gør krav på dette pakkenavn på npm", + "claim_button": "Gør krav på \"{name}\"", "want_to_claim": "Vil du kræve dette pakkenavn?", "start_typing": "Begynd at skrive for at søge efter pakker", "algolia_disclaimer": "Drevet af Algolia", @@ -77,21 +80,111 @@ "instant_search_advisory": "{label} {state} — {action}" }, "command_palette": { - "state": {}, - "groups": {}, - "actions": {}, - "connections": {}, - "navigation": {}, - "links": {}, - "package_links": {}, - "theme": {}, - "package": {}, - "package_actions": {}, - "code": {}, - "diff": {}, - "version": {}, - "status": {}, - "announcements": {} + "title": "kommandopalet", + "quick_actions": "gå til...", + "subtitle": "naviger rundt i npmx og skift hurtigt indstillinger", + "subtitle_languages": "vælg et sprog eller hjælp med at forbedre oversættelserne", + "instructions": "Skriv for at filtrere kommandoer. Brug piletasterne til at bevæge dig gennem resultaterne, og tryk på Enter for at køre en kommando.", + "input_label": "Søgning i kommandopaletten", + "results_label": "Kommandoresultater", + "placeholder": "skriv en kommando...", + "back": "Tilbage", + "empty": "Ingen matchende kommandoer", + "empty_search_hint": "Tryk på Enter for at søge efter \"{query}\".", + "current": "aktuel", + "here": "du er her", + "connected": "forbundet", + "state": { + "on": "til", + "off": "fra" + }, + "groups": { + "actions": "Handlinger", + "help": "Hjælp", + "language": "Sprog", + "connections": "Forbindelser", + "navigation": "Navigation", + "links": "Links", + "npmx": "npmx", + "package": "Pakke", + "package_with_name": "Pakke ({name})", + "versions": "Versioner", + "versions_with_name": "Versioner af {name}" + }, + "actions": { + "search": "Søg", + "search_for": "Søg efter \"{query}\"", + "keyboard_shortcuts": "Tastaturgenveje", + "help_translate": "Hjælp med at oversætte" + }, + "connections": { + "npm_connect": "Forbind til npm CLI", + "npm_connected": "npm CLI (~{username})", + "npm_disconnect": "Afbryd forbindelsen til npm CLI", + "atmosphere_connect": "Forbind til Atmosphere", + "atmosphere_connected": "atmosphere ({'@'}{handle})", + "atmosphere_disconnect": "Afbryd forbindelsen til Atmosphere" + }, + "navigation": { + "home": "hjem", + "packages": "pakker (~{username})", + "orgs": "organisationer (~{username})", + "profile": "profil ({'@'}{handle})" + }, + "links": { + "external": "Eksternt link" + }, + "package_links": { + "stars": "Stjerner", + "forks": "Forks" + }, + "theme": { + "system": "Brug systemtema", + "light": "Brug lyst tema", + "dark": "Brug mørkt tema" + }, + "package": { + "main": "Pakkeside", + "docs": "Dokumentation", + "code": "Kode", + "diff": "Diff", + "compare": "Sammenlign denne pakke", + "download": "Hent tarball" + }, + "package_actions": { + "copy_run": "Kopiér kør-kommando" + }, + "code": { + "copy_file": "Kopiér filindhold" + }, + "diff": { + "merge_modified_lines": "Flet ændrede linjer", + "word_wrap": "Linjebrud" + }, + "version": { + "label": "{version}" + }, + "status": { + "available_in_context": "{context}. Ingen kommandoer tilgængelige | {context}. 1 kommando tilgængelig | {context}. {count} kommandoer tilgængelige", + "matching_in_context": "{context}. Ingen matchende kommandoer | {context}. 1 matchende kommando | {context}. {count} matchende kommandoer", + "no_matches_search_in_context": "{context}. Ingen matchende kommandoer. Tryk på Enter for at søge efter \"{query}\"." + }, + "announcements": { + "language_changed": "Sprog sat til {language}.", + "relative_dates_on": "Relative datoer slået til.", + "relative_dates_off": "Relative datoer slået fra.", + "theme_changed": "Tema sat til {theme}.", + "accent_color_changed": "Accentfarve sat til {color}.", + "background_theme_changed": "Baggrundsnuance sat til {theme}.", + "download_started": "Downloader {package}-tarball.", + "copied_to_clipboard": "Kopieret til udklipsholderen.", + "npm_disconnected": "npm CLI blev afbrudt.", + "atmosphere_disconnected": "Atmosphere blev afbrudt.", + "facets_all_selected": "Alle facetter er valgt.", + "facets_all_deselected": "Alle facetter er fravalgt.", + "view_switched": "Skiftede til visningen {view}.", + "setting_toggled": "{setting} {state}." + } }, "nav": { "main_navigation": "Hovednavigation", @@ -168,6 +261,7 @@ "translation_status": "Tjek global oversættelsesstatus", "accent_colors": { "label": "Accentfarver", + "neutral": "Neutral", "sky": "Himmel", "coral": "Koraller", "amber": "Amber", @@ -218,6 +312,8 @@ "warnings": "Advarsler:", "go_back_home": "Gå tilbage til forsiden", "per_week": "/ uge", + "yes": "Ja", + "no": "Nej", "vanity_downloads_hint": "Vanity-nummer: ingen pakker vist | Vanity-nummer: for den viste pakke | Vanity-nummer: Summen af {count} viste pakker", "sort": { "name": "navn", @@ -240,11 +336,14 @@ "gitea": "Vis på Gitea", "gitee": "Vis på Gitee", "radicle": "Vis på Radicle", + "socket_dev": "vis på socket.dev", "sourcehut": "Vis på SourceHut", "tangled": "Vis på Tangled" }, "collapse": "Skjul", - "expand": "Udvid" + "collapse_with_name": "Skjul {name}", + "expand": "Udvid", + "expand_with_name": "Udvid {name}" }, "profile": { "display_name": "Visningsnavn", @@ -390,7 +489,7 @@ "source_commit": "Kilde Commit", "build_file": "Byg fil", "public_ledger": "Offentlig Ledger", - "transparency_log_entry": "Transparency log entry", + "transparency_log_entry": "Entry i transparensloggen", "view_more_details": "Se flere detaljer", "error_loading": "Kunne ikke indlæse provenance-detaljer" }, @@ -473,7 +572,7 @@ "vulnerabilities_count": "{count} sårbarhed | {count} sårbarheder" }, "peer_dependencies": { - "title": "Peer Dependency ({count}) | Peer Dependencies ({count})", + "title": "Peer-afhængighed ({count}) | Peer-afhængigheder ({count})", "list_label": "Pakke peer afhængigheder", "show_all": "vis {count} peer afhængighed | vis alle {count} peer afhængigheder" }, @@ -517,7 +616,7 @@ "loading": "Indlæser...", "date_range": "{start} til {end}", "date_range_multiline": "{start}\ntil {end}", - "download_file": "Download {fileType}", + "download_file": "Hent {fileType}", "toggle_annotator": "Skift annotator", "toggle_stack_mode": "Skift staktilstand", "open_options": "Åbn indstillinger", @@ -552,7 +651,7 @@ "trend_undefined": "undefined (utilstrækkelige data)", "button_label": "Kopiér alternativ tekst", "watermark": "Nederst står der et vandmærke \"./npmx en hurtig, moderne browser til npm-registret\"", - "analysis": "{package_name} starter ved {start_value} og slutter ved {end_value}, hvilket viser en {trend} trend med en hældning på {downloads_slope} downloads pr. tidsinterval. Den mest downloadede version er {max_downloaded_version} med {max_version_downloads} downloads. {per_version_analysis}. {estimation_notice}", + "analysis": "{package_name} starter ved {start_value} og slutter ved {end_value}, hvilket viser en {trend} trend med en hældning på {downloads_slope} downloads pr. tidsinterval.", "estimation": "Den endelige værdi er et skøn baseret på delvise data for den aktuelle periode.", "estimations": "De endelige værdier er skøn baseret på delvise data for den aktuelle periode.", "compare": "Sammenligning af pakkedownloads linjediagram for: {packages}.", @@ -572,7 +671,7 @@ "title": "Installationsscripts", "script_label": "(script)", "npx_packages": "{count} npx pakke | {count} npx pakker", - "currently": "currently {version}" + "currently": "aktuelt {version}" }, "playgrounds": { "title": "Prøv det", @@ -843,8 +942,12 @@ "lines": "{count} linje | {count} linjer", "toggle_tree": "Skift filtræ", "close_tree": "Luk filtræ", + "copy_content": "Kopiér filindhold", "copy_link": "Kopiér link", "view_raw": "Se rå fil", + "toggle_container": "Skift bredden på kodevisningen", + "open_raw_file": "Åbn rå fil", + "open_path_dropdown": "Åbn rullemenuen for stisegmenter", "file_too_large": "Fil for stor til forhåndsvisning", "file_size_warning": "{size} overskrider 500KB-grænsen for syntaksfremhævning", "failed_to_load": "Kunne ikke indlæse fil", @@ -1136,8 +1239,31 @@ "add_hint": "Tilføj mindst 2 pakker for at sammenligne." }, "quadrant_chart": { - "copy_alt": {}, - "explanation": {} + "label_x_axis": "Momentum", + "label_y_axis": "Ergonomi", + "label_top_right": "Solide valg", + "label_bottom_right": "populære med kompromiser", + "label_bottom_left": "undgå", + "label_top_left": "skjulte perler", + "title": "Pakkers momentum vs. ergonomi", + "filename": "pakke-momentum-vs-ergonomi-kvadrant", + "label_freshness_score": "Aktualitetsscore", + "copy_alt": { + "description": "Kvadrantdiagram, der viser momentum versus ergonomi for de {packages} pakker. {analysis}. {watermark}.", + "side_analysis_top_right": "Følgende pakker er placeret i kvadranten øverst til højre (solide valg): {packages}", + "side_analysis_top_left": "Følgende pakker er placeret i kvadranten øverst til venstre (skjulte perler): {packages}", + "side_analysis_bottom_right": "Følgende pakker er placeret i kvadranten nederst til højre (populære med kompromiser): {packages}", + "side_analysis_bottom_left": "Følgende pakker er placeret i kvadranten nederst til venstre (undgå): {packages}" + }, + "explanation": { + "tooltip_help": "Vis forklaring på scoren", + "tooltip_help_adoption": "Vis forklaring på momentumscoren", + "tooltip_help_efficiency": "Vis forklaring på ergonomiscoren", + "introduction": "Scoren beregnes ved at kombinere flere signaler i to akser:", + "adoption": "Momentum: afspejler brug og aktivitet (downloads, aktualitet, likes)", + "efficiency": "Ergonomi: afspejler størrelse og kvalitet (installationsstørrelse, afhængigheder, sårbarheder, typesupport)", + "impact_details": "Hver metrik bidrager med en forskellig vægt. Stærke signaler som downloads og installationsstørrelse har størst indflydelse, mens andre finjusterer resultatet. Nogle signaler (såsom sårbarheder eller udfasning) giver strafpoint." + } }, "no_dependency": { "label": "(Ingen afhængighed)", @@ -1208,7 +1334,7 @@ }, "moduleFormat": { "label": "Module Format", - "description": "ESM/CJS support" + "description": "ESM/CJS-understøttelse" }, "license": { "label": "Licens", @@ -1290,11 +1416,11 @@ }, "pds": { "title": "npmx.social", - "meta_description": "The official AT Protocol Personal Data Server (PDS) for the npmx community.", + "meta_description": "Den officielle AT Protocol Personal Data Server (PDS) for npmx-fællesskabet.", "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": "Deltag i fællesskabet", + "description": "Uanset om du opretter din første konto på Atmosphere eller migrerer en eksisterende, hører du til her. Du kan migrere din nuværende konto uden at miste dit handle, dine opslag eller dine følgere.", + "migrate": "Migrer med PDS MOOver" }, "server": { "title": "Serverdetaljer", @@ -1538,5 +1664,6 @@ "message": "Tilgængelighed betyder noget for os, og vi vil elske, at du følger os i denne vision. Når du bruger nævnte medier, skal du sikre, at der er tilstrækkelig kontrast mod baggrunden, og gå ikke mindre end 24px. Hvis du har brug for andre ressourcer eller yderligere oplysninger om projektet, er du velkommen til at kontakte os på {link}.", "discord_link_text": "chat.npmx.dev" } - } + }, + "alt_logo_kawaii": "En sød, rund og farverig version af npmx-logoet." } From 85e1335eba82479ad69dea951af125db290a64d0 Mon Sep 17 00:00:00 2001 From: Lucas Date: Mon, 13 Apr 2026 17:52:01 +0200 Subject: [PATCH 14/25] fix(i18n): update danish translations for various labels --- i18n/locales/da-DK.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index e6b71943a2..6f7aa75379 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -24,7 +24,7 @@ }, "shortcuts": { "section": { - "global": "Global", + "global": "Generelt", "search": "Søg", "package": "Pakke" }, @@ -573,8 +573,8 @@ }, "peer_dependencies": { "title": "Peer-afhængighed ({count}) | Peer-afhængigheder ({count})", - "list_label": "Pakke peer afhængigheder", - "show_all": "vis {count} peer afhængighed | vis alle {count} peer afhængigheder" + "list_label": "Pakkens peer-afhængigheder", + "show_all": "vis {count} peer-afhængighed | vis alle {count} peer-afhængigheder" }, "optional_dependencies": { "title": "Valgfri afhængighed ({count}) | Valgfri afhængigheder ({count})", @@ -629,7 +629,7 @@ "contributors_skip": "Vises ikke i Bidragydere (ingen GitHub-repo):", "items": { "downloads": "Downloads", - "likes": "Likes", + "likes": "Synes godt om", "contributors": "Bidragydere" }, "data_correction": "Datakorrektion", @@ -662,7 +662,7 @@ } }, "downloads": { - "title": "Ugentlige Downloads", + "title": "Ugentlige downloads", "community_distribution": "Se distributionen af fællesskabsadoption", "subtitle": "På tværs af alle versioner", "sparkline_nav_hint": "Brug ← →" @@ -1380,7 +1380,7 @@ "deps_count": "{count} afhængighed | {count} afhængigheder", "dependencies": "Afhængigheder", "dev_dependencies": "Dev Afhængigheder", - "peer_dependencies": "Peer Afhængigheder", + "peer_dependencies": "Peer-afhængigheder", "optional_dependencies": "Valgfrie Afhængigheder", "no_dependency_changes": "Ingen ændringer i afhængigheder", "file_filter_option": { From 450ce821016c84fa478d2d618403be61965155d0 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 15:54:30 +0000 Subject: [PATCH 15/25] [autofix.ci] apply automated fixes --- i18n/locales/da-DK.json | 30 ++---------------------------- 1 file changed, 2 insertions(+), 28 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index 6f7aa75379..fa8267c417 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -312,8 +312,6 @@ "warnings": "Advarsler:", "go_back_home": "Gå tilbage til forsiden", "per_week": "/ uge", - "yes": "Ja", - "no": "Nej", "vanity_downloads_hint": "Vanity-nummer: ingen pakker vist | Vanity-nummer: for den viste pakke | Vanity-nummer: Summen af {count} viste pakker", "sort": { "name": "navn", @@ -1238,32 +1236,8 @@ "packages_selected": "{count}/{max} pakker valgt.", "add_hint": "Tilføj mindst 2 pakker for at sammenligne." }, - "quadrant_chart": { - "label_x_axis": "Momentum", - "label_y_axis": "Ergonomi", - "label_top_right": "Solide valg", - "label_bottom_right": "populære med kompromiser", - "label_bottom_left": "undgå", - "label_top_left": "skjulte perler", - "title": "Pakkers momentum vs. ergonomi", - "filename": "pakke-momentum-vs-ergonomi-kvadrant", - "label_freshness_score": "Aktualitetsscore", - "copy_alt": { - "description": "Kvadrantdiagram, der viser momentum versus ergonomi for de {packages} pakker. {analysis}. {watermark}.", - "side_analysis_top_right": "Følgende pakker er placeret i kvadranten øverst til højre (solide valg): {packages}", - "side_analysis_top_left": "Følgende pakker er placeret i kvadranten øverst til venstre (skjulte perler): {packages}", - "side_analysis_bottom_right": "Følgende pakker er placeret i kvadranten nederst til højre (populære med kompromiser): {packages}", - "side_analysis_bottom_left": "Følgende pakker er placeret i kvadranten nederst til venstre (undgå): {packages}" - }, - "explanation": { - "tooltip_help": "Vis forklaring på scoren", - "tooltip_help_adoption": "Vis forklaring på momentumscoren", - "tooltip_help_efficiency": "Vis forklaring på ergonomiscoren", - "introduction": "Scoren beregnes ved at kombinere flere signaler i to akser:", - "adoption": "Momentum: afspejler brug og aktivitet (downloads, aktualitet, likes)", - "efficiency": "Ergonomi: afspejler størrelse og kvalitet (installationsstørrelse, afhængigheder, sårbarheder, typesupport)", - "impact_details": "Hver metrik bidrager med en forskellig vægt. Stærke signaler som downloads og installationsstørrelse har størst indflydelse, mens andre finjusterer resultatet. Nogle signaler (såsom sårbarheder eller udfasning) giver strafpoint." - } + "scatter_chart": { + "copy_alt": {} }, "no_dependency": { "label": "(Ingen afhængighed)", From 51be1601613230ab69c5331013936cc05c4e4b2c Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Sun, 14 Jun 2026 12:36:06 +0000 Subject: [PATCH 16/25] [autofix.ci] apply automated fixes --- i18n/locales/da-DK.json | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index fa8267c417..784b0bceed 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -224,6 +224,9 @@ "more_replies": "{count} flere svar... | {count} flere svar..." } }, + "noodles": { + "missing": {} + }, "settings": { "title": "Indstillinger", "tagline": "Tilpas din npmx-oplevelse", @@ -379,6 +382,7 @@ "size": "Installationsstørrelse øget med {percent} ({size} større)", "deps": "{count} flere afhængigheder" }, + "size_decrease": {}, "replacement": { "title": "Du har muligvis ikke brug for denne afhængighed.", "native": "Dette kan erstattes med {replacement}, tilgængelig siden Node {nodeVersion}.", @@ -387,8 +391,6 @@ "none": "Denne pakke er blevet markeret som ikke længere nødvendig, og dens funktionalitet er sandsynligvis tilgængelig nativt i alle motorer.", "learn_more": "Lær mere", "learn_more_above": "Lær mere ovenfor.", - "mdn": "MDN", - "community": "community", "consider_no_dep": "+ Overvej ingen afhængighed?" }, "stats": { @@ -527,7 +529,6 @@ "view_all": "Se {count} version | Se alle {count} versioner", "view_all_versions": "Se alle versioner", "distribution_title": "Semver Gruppe", - "distribution_modal_title": "Versioner", "distribution_range_date_same_year": "fra {from} til {to}, {endYear}", "distribution_range_date_multiple_years": "fra {from}, {startYear} til {to}, {endYear}", "grouping_major": "Major", @@ -557,6 +558,11 @@ "current_tags": "Nuværende tags", "no_match_filter": "Ingen versioner matcher {filter}" }, + "timeline": { + "chart": { + "copy_alt": {} + } + }, "dependencies": { "title": "Afhængighed ({count}) | Afhængigheder ({count})", "list_label": "Pakkeafhængigheder", @@ -657,7 +663,8 @@ "general_description": "Y-aksen repræsenterer antallet af downloads. X-aksen repræsenterer datointervallet, fra {start_date} til {end_date}, med en {granularity} tidsperiode.{estimation_notice} {packages_analysis}. {watermark}.", "facet_bar_general_description": "Horisontalt søjlediagram for: {packages}, der sammenligner {facet} ({description}). {facet_analysis} {watermark}.", "facet_bar_analysis": "{package_name} har en værdi på {value}." - } + }, + "embedding": {} }, "downloads": { "title": "Ugentlige downloads", @@ -759,6 +766,9 @@ "tarball": "Download Tarball som .tar.gz" } }, + "leaderboard": { + "likes": {} + }, "connector": { "modal": { "title": "Lokal Connector", @@ -1119,7 +1129,6 @@ }, "team": { "title": "Team", - "governance": "Governance", "role_steward": "forvalter", "role_maintainer": "vedligeholder", "sponsor": "sponsor", @@ -1317,7 +1326,10 @@ "vulnerabilities": { "label": "Sårbarheder", "description": "Kendte sikkerhedssårbarheder" - } + }, + "githubStars": {}, + "githubIssues": {}, + "createdAt": {} }, "values": { "any": "Alle", @@ -1337,8 +1349,6 @@ "file_changes": "Filændringer", "files_count": "{count} fil | {count} filer", "lines_hidden": "{count} linje skjult | {count} linjer skjult", - "file_too_large": "Fil for stor til at sammenligne", - "file_size_warning": "{size} overskrider 250KB grænsen for sammenligning", "compare_versions": "diff", "compare_versions_title": "Sammenlign med seneste version", "comparing_versions_label": "Sammenligner versioner...", @@ -1639,5 +1649,8 @@ "discord_link_text": "chat.npmx.dev" } }, - "alt_logo_kawaii": "En sød, rund og farverig version af npmx-logoet." + "alt_logo_kawaii": "En sød, rund og farverig version af npmx-logoet.", + "changelog": { + "error": {} + } } From 70bf2b7f80ff45e13f9a5ba8929767d790f6a824 Mon Sep 17 00:00:00 2001 From: Lucas Date: Wed, 19 Aug 2026 03:11:14 +0200 Subject: [PATCH 17/25] chore: add missing translation keys --- i18n/locales/da-DK.json | 269 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 247 insertions(+), 22 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index 784b0bceed..c9538b3435 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -13,6 +13,7 @@ "trademark_disclaimer": "npm er et registreret varemærke for npm, Inc. Dette websted er ikke tilknyttet npm, Inc.", "footer": { "about": "om", + "sponsors": "EN TEXT TO REPLACE: sponsors", "blog": "blog", "docs": "dokumentation", "source": "kilde", @@ -20,7 +21,11 @@ "chat": "chat", "builders_chat": "byggere", "keyboard_shortcuts": "tastaturgenveje", - "brand": "mærke" + "brand": "mærke", + "resources": "EN TEXT TO REPLACE: Resources", + "features": "EN TEXT TO REPLACE: Features", + "other": "EN TEXT TO REPLACE: Other", + "sponsored_by": "EN TEXT TO REPLACE: Sponsored by {list}" }, "shortcuts": { "section": { @@ -36,13 +41,16 @@ "settings": "Åbn indstillinger", "compare": "Sammenlign", "compare_from_package": "Sammenlign (forudfyldt med nuværende pakke)", + "changelog": "EN TEXT TO REPLACE: Open changelog", "navigate_results": "Naviger resultater", "go_to_result": "Gå til resultat", "open_code_view": "Åbn kodevisning", "open_docs": "Åbn dokumentation", "disable_shortcuts": "Du kan deaktivere tastaturgenveje i {settings}.", "open_main": "Åbn hovedinformation", - "open_diff": "Åbn versionsforskelle" + "open_diff": "Åbn versionsforskelle", + "open_timeline": "EN TEXT TO REPLACE: Open timeline", + "open_stats": "EN TEXT TO REPLACE: Open stats" }, "search": { "label": "Søg npm-pakker", @@ -94,6 +102,11 @@ "current": "aktuel", "here": "du er her", "connected": "forbundet", + "keyboard_shortcuts": { + "navigate": "EN TEXT TO REPLACE: to navigate", + "select": "EN TEXT TO REPLACE: to select", + "close": "EN TEXT TO REPLACE: to close" + }, "state": { "on": "til", "off": "fra" @@ -149,7 +162,9 @@ "code": "Kode", "diff": "Diff", "compare": "Sammenlign denne pakke", - "download": "Hent tarball" + "download": "Hent tarball", + "changelog": "EN TEXT TO REPLACE: Changelog", + "stats": "EN TEXT TO REPLACE: Stats" }, "package_actions": { "copy_run": "Kopiér kør-kommando" @@ -176,6 +191,7 @@ "theme_changed": "Tema sat til {theme}.", "accent_color_changed": "Accentfarve sat til {color}.", "background_theme_changed": "Baggrundsnuance sat til {theme}.", + "foreground_theme_changed": "EN TEXT TO REPLACE: Foreground shade set to {theme}.", "download_started": "Downloader {package}-tarball.", "copied_to_clipboard": "Kopieret til udklipsholderen.", "npm_disconnected": "npm CLI blev afbrudt.", @@ -225,7 +241,30 @@ } }, "noodles": { - "missing": {} + "title": "EN TEXT TO REPLACE: noodles", + "meta_description": "EN TEXT TO REPLACE: Every noodle we've ever shown on npmx — the seasonal logos, easter eggs, and the stories behind them.", + "latest": "EN TEXT TO REPLACE: Latest noodles", + "what_is": "EN TEXT TO REPLACE: What is noodles", + "what_is_body": "EN TEXT TO REPLACE: Noodles are the playful variants of the npmx logo we run on the homepage to mark releases, holidays, events, and other moments worth celebrating. Think of them like Google Doodles, but for npm packages.", + "empty": "EN TEXT TO REPLACE: No noodles yet.", + "load_more": "EN TEXT TO REPLACE: Load {count} more", + "dates": "EN TEXT TO REPLACE: Active dates", + "shipped_in": "EN TEXT TO REPLACE: Shipped in", + "credits": "EN TEXT TO REPLACE: Credits", + "learn_more": "EN TEXT TO REPLACE: Learn more", + "carousel_prev": "EN TEXT TO REPLACE: Previous image", + "carousel_next": "EN TEXT TO REPLACE: Next image", + "carousel_dots": "EN TEXT TO REPLACE: Variant image navigation", + "carousel_jump": "EN TEXT TO REPLACE: Go to image {index}", + "lens_label": "EN TEXT TO REPLACE: {title} — image reel", + "lens_slide": "EN TEXT TO REPLACE: image {index}", + "lens_slide_position": "EN TEXT TO REPLACE: Slide {index} of {total}", + "back_to_archive": "EN TEXT TO REPLACE: Back to all noodles", + "missing": { + "title": "EN TEXT TO REPLACE: This noodle never made it out of the bowl.", + "body": "EN TEXT TO REPLACE: We don't have a “{slug}” noodle on the menu. Either it's still being plated, or it was never written. Either way — back to the archive.", + "empty_bowl": "EN TEXT TO REPLACE: empty bowl" + } }, "settings": { "title": "Indstillinger", @@ -282,8 +321,17 @@ "slate": "Skifer", "black": "Sort" }, + "foreground_themes": { + "label": "EN TEXT TO REPLACE: Foreground shade", + "contrast": "EN TEXT TO REPLACE: Contrast", + "standard": "EN TEXT TO REPLACE: Standard", + "muted": "EN TEXT TO REPLACE: Muted" + }, "keyboard_shortcuts_enabled": "Aktivér tastaturgenveje", - "keyboard_shortcuts_enabled_description": "Tastaturgenveje kan deaktiveres, hvis de konflikter med andre browser- eller systemgenveje" + "keyboard_shortcuts_enabled_description": "Tastaturgenveje kan deaktiveres, hvis de konflikter med andre browser- eller systemgenveje", + "enable_code_ligatures": "EN TEXT TO REPLACE: Enable ligatures in code", + "enable_changelog_autoscroll": "EN TEXT TO REPLACE: Auto scroll to requested version", + "enable_changelog_autoscroll_description": "EN TEXT TO REPLACE: Auto scroll to or close to the requested version at package changelog" }, "i18n": { "missing_keys": "{count} manglende oversættelse | {count} manglende oversættelser", @@ -315,6 +363,7 @@ "warnings": "Advarsler:", "go_back_home": "Gå tilbage til forsiden", "per_week": "/ uge", + "per_week_short": "EN TEXT TO REPLACE: /wk", "vanity_downloads_hint": "Vanity-nummer: ingen pakker vist | Vanity-nummer: for den viste pakke | Vanity-nummer: Summen af {count} viste pakker", "sort": { "name": "navn", @@ -344,7 +393,8 @@ "collapse": "Skjul", "collapse_with_name": "Skjul {name}", "expand": "Udvid", - "expand_with_name": "Udvid {name}" + "expand_with_name": "Udvid {name}", + "copyMdError": "EN TEXT TO REPLACE: Failed to load markdown, try again later" }, "profile": { "display_name": "Visningsnavn", @@ -370,6 +420,7 @@ "verified_provenance": "Verificeret oprindelse", "navigation": "Pakke", "copy_name": "Kopiér pakkenavn", + "copy_version": "EN TEXT TO REPLACE: Copy package version", "deprecation": { "package": "Denne pakke er blevet forældet.", "version": "Denne version er blevet forældet.", @@ -382,10 +433,18 @@ "size": "Installationsstørrelse øget med {percent} ({size} større)", "deps": "{count} flere afhængigheder" }, - "size_decrease": {}, + "size_decrease": { + "title_size": "EN TEXT TO REPLACE: Package size decreased since v{version}!", + "title_deps": "EN TEXT TO REPLACE: Dependency count decreased since v{version}!", + "title_both": "EN TEXT TO REPLACE: Package size and dependency count decreased since v{version}!", + "size": "EN TEXT TO REPLACE: Install size reduced by {percent} ({size} smaller)", + "deps": "EN TEXT TO REPLACE: {count} fewer dependency | {count} fewer dependencies" + }, "replacement": { "title": "Du har muligvis ikke brug for denne afhængighed.", + "example": "EN TEXT TO REPLACE: Example:", "native": "Dette kan erstattes med {replacement}, tilgængelig siden Node {nodeVersion}.", + "native_no_version": "EN TEXT TO REPLACE: This package can be replaced with {replacement}.", "simple": "{community} har markeret denne pakke som overflødig, med rådet: {replacement}.", "documented": "{community} har markeret denne pakke som havende mere effektive alternativer.", "none": "Denne pakke er blevet markeret som ikke længere nødvendig, og dens funktionalitet er sandsynligvis tilgængelig nativt i alle motorer.", @@ -405,7 +464,10 @@ "size_tooltip": { "unpacked": "{size} udpakket størrelse (denne pakke)", "total": "{size} total udpakket størrelse (inklusive {count} afhængighed for linux-x64) | {size} total udpakket størrelse (inklusive alle {count} afhængigheder for linux-x64)" - } + }, + "main_information": "EN TEXT TO REPLACE: Main Information", + "trends": "EN TEXT TO REPLACE: Trends", + "version_distribution": "EN TEXT TO REPLACE: Version Distribution" }, "skills": { "title": "Agent Færdigheder", @@ -435,11 +497,17 @@ "docs": "dokumentation", "fund": "fund", "compare": "sammenlign", - "compare_this_package": "sammenlign denne pakke" + "timeline": "EN TEXT TO REPLACE: timeline", + "stats": "EN TEXT TO REPLACE: stats", + "compare_this_package": "sammenlign denne pakke", + "changelog": "EN TEXT TO REPLACE: changelog" }, "likes": { "like": "Synes godt om denne pakke", - "unlike": "Synes ikke godt om denne pakke" + "unlike": "Synes ikke godt om denne pakke", + "top_rank_tooltip": "EN TEXT TO REPLACE: This is among the top 10 most liked packages on npmx! (#{rank})", + "top_rank_label": "EN TEXT TO REPLACE: #{rank}", + "top_rank_link_label": "EN TEXT TO REPLACE: View likes leaderboard. This package is ranked #{rank}." }, "docs": { "contents": "Indhold", @@ -467,7 +535,16 @@ }, "run": { "title": "Kør", - "locally": "Kør lokalt" + "locally": "Kør lokalt", + "copy_command": "EN TEXT TO REPLACE: Copy command to run locally" + }, + "command": { + "copied_install": "EN TEXT TO REPLACE: Install command copied", + "copied_dev_install": "EN TEXT TO REPLACE: Dev install command copied", + "copied_run": "EN TEXT TO REPLACE: Run command copied", + "copied_create": "EN TEXT TO REPLACE: Create command copied", + "copied_execute": "EN TEXT TO REPLACE: Execute command copied", + "copied_skills": "EN TEXT TO REPLACE: Skills command copied" }, "readme": { "title": "Readme", @@ -480,7 +557,8 @@ "warning": "Advarsel", "caution": "Forsigtighed" }, - "copy_as_markdown": "Kopiér README som Markdown" + "copy_as_markdown": "Kopiér README som Markdown", + "error_loading": "EN TEXT TO REPLACE: Failed to load README details" }, "provenance_section": { "title": "Provenance", @@ -511,6 +589,7 @@ "weekly_downloads": "Ugentlige downloads", "keywords": "Nøgleord", "license": "Licens", + "version": "EN TEXT TO REPLACE: Version", "select": "Vælg pakke", "select_maximum": "Maksimum {count} pakker kan vælges" }, @@ -549,6 +628,9 @@ "filter_help": "Hjælp til semver rækkevidde filter", "filter_tooltip": "Filtrer versioner ved hjælp af en {link}. For eksempel viser ^3.0.0 alle 3.x versioner.", "filter_tooltip_link": "semver range", + "license_change_help": "EN TEXT TO REPLACE: License Change Details", + "license_change_warning": "EN TEXT TO REPLACE: License changed since previous version.", + "license_change_record": "EN TEXT TO REPLACE: The license of this package changed from \"{from}\" to \"{to}\".", "no_matches": "Ingen versioner matcher denne rækkevidde", "copy_alt": { "per_version_analysis": "{version} version blev downloadet {downloads} gange", @@ -559,8 +641,39 @@ "no_match_filter": "Ingen versioner matcher {filter}" }, "timeline": { + "load_more": "EN TEXT TO REPLACE: Load more", + "load_error": "EN TEXT TO REPLACE: Failed to load timeline. Please try again later.", + "size_increase": "EN TEXT TO REPLACE: Install size increased by {percent}% ({size})", + "size_decrease": "EN TEXT TO REPLACE: Install size decreased by {percent}% ({size})", + "dep_increase": "EN TEXT TO REPLACE: {count} dependency added | {count} dependencies added", + "dep_decrease": "EN TEXT TO REPLACE: {count} dependency removed | {count} dependencies removed", + "license_change": "EN TEXT TO REPLACE: License changed from {from} to {to}", + "esm_added": "EN TEXT TO REPLACE: Module type changed to ESM", + "esm_removed": "EN TEXT TO REPLACE: Module type changed from ESM to CJS", + "types_added": "EN TEXT TO REPLACE: TypeScript types added", + "types_removed": "EN TEXT TO REPLACE: TypeScript types removed", + "trusted_publisher_added": "EN TEXT TO REPLACE: Trusted publishing enabled", + "trusted_publisher_removed": "EN TEXT TO REPLACE: Trusted publishing removed", + "provenance_added": "EN TEXT TO REPLACE: Provenance enabled", + "provenance_removed": "EN TEXT TO REPLACE: Provenance removed", + "deprecated": "EN TEXT TO REPLACE: Deprecated", "chart": { - "copy_alt": {} + "tab_aria_label": "EN TEXT TO REPLACE: Metric selection", + "dependency_size": "EN TEXT TO REPLACE: Dependency Size", + "other_dependencies": "EN TEXT TO REPLACE: Other", + "base_scale": "EN TEXT TO REPLACE: start y-axis at zero", + "zoom": "EN TEXT TO REPLACE: zoom", + "reset_minimap": "EN TEXT TO REPLACE: reset minimap", + "ordered_versions": "EN TEXT TO REPLACE: stable only", + "copy_alt": { + "key_changes": "EN TEXT TO REPLACE: Key changes: {version_events}.", + "version_events": "EN TEXT TO REPLACE: version {version}: {events}", + "general_description": "EN TEXT TO REPLACE: Line chart showing the {metric} of the {package} package, from version {first} to {last}. The {metric} in version {first} is {first_value}, in version {last} is {last_value} ({overall_progress_percentage}% overall). {key_changes} {watermark}.", + "stackbar_segment_share": "EN TEXT TO REPLACE: {segment}: {value} ({percentage})", + "stackbar_top_segments": "EN TEXT TO REPLACE: In {version}, the largest segments are {segments}.", + "stackbar_largest_increase": "EN TEXT TO REPLACE: The largest increase is {segment}, up {delta}.", + "stackbar_largest_decrease": "EN TEXT TO REPLACE: The largest decrease is {segment}, down {delta}." + } } }, "dependencies": { @@ -621,6 +734,7 @@ "date_range": "{start} til {end}", "date_range_multiline": "{start}\ntil {end}", "download_file": "Hent {fileType}", + "copy_file": "EN TEXT TO REPLACE: Copy {fileType}", "toggle_annotator": "Skift annotator", "toggle_stack_mode": "Skift staktilstand", "open_options": "Åbn indstillinger", @@ -655,6 +769,7 @@ "trend_undefined": "undefined (utilstrækkelige data)", "button_label": "Kopiér alternativ tekst", "watermark": "Nederst står der et vandmærke \"./npmx en hurtig, moderne browser til npm-registret\"", + "watermark_top": "EN TEXT TO REPLACE: At the top, a watermark reads \"./npmx a fast, modern browser for the npm registry\"", "analysis": "{package_name} starter ved {start_value} og slutter ved {end_value}, hvilket viser en {trend} trend med en hældning på {downloads_slope} downloads pr. tidsinterval.", "estimation": "Den endelige værdi er et skøn baseret på delvise data for den aktuelle periode.", "estimations": "De endelige værdier er skøn baseret på delvise data for den aktuelle periode.", @@ -664,10 +779,16 @@ "facet_bar_general_description": "Horisontalt søjlediagram for: {packages}, der sammenligner {facet} ({description}). {facet_analysis} {watermark}.", "facet_bar_analysis": "{package_name} har en værdi på {value}." }, - "embedding": {} + "embedding": { + "chart": "EN TEXT TO REPLACE: Embed this chart", + "copy_url": "EN TEXT TO REPLACE: Copy this URL to embed the chart into your website", + "preview": "EN TEXT TO REPLACE: Preview", + "tip": "EN TEXT TO REPLACE: If startDate and endDate are not provided in the URL, the graph will display the last 12 months by default." + } }, "downloads": { "title": "Ugentlige downloads", + "version_distribution_title": "EN TEXT TO REPLACE: weekly downloads for version {version}", "community_distribution": "Se distributionen af fællesskabsadoption", "subtitle": "På tværs af alle versioner", "sparkline_nav_hint": "Brug ← →" @@ -767,7 +888,14 @@ } }, "leaderboard": { - "likes": {} + "likes": { + "title": "EN TEXT TO REPLACE: Likes Leaderboard", + "description": "EN TEXT TO REPLACE: The 10 most liked packages on npmx right now.", + "rank": "EN TEXT TO REPLACE: Rank", + "likes": "EN TEXT TO REPLACE: Likes", + "unavailable_title": "EN TEXT TO REPLACE: No likes leaderboard yet", + "unavailable_description": "EN TEXT TO REPLACE: We don't have a likes leaderboard to show right now." + } }, "connector": { "modal": { @@ -975,7 +1103,8 @@ }, "file_path": "Filsti", "binary_file": "Binær fil", - "binary_rendering_warning": "Filtypen \"{contentType}\" understøttes ikke til forhåndsvisning." + "binary_rendering_warning": "Filtypen \"{contentType}\" understøttes ikke til forhåndsvisning.", + "possibly_unnecessary": "EN TEXT TO REPLACE: May be unnecessary in a published package" }, "badges": { "provenance": { @@ -1122,13 +1251,18 @@ } }, "sponsors": { - "title": "Sponsorer" + "title": "Sponsorer", + "gold": "EN TEXT TO REPLACE: Gold Sponsors", + "silver": "EN TEXT TO REPLACE: Silver Sponsors" }, "oss_partners": { "title": "OSS Partnere" }, "team": { "title": "Team", + "core": "EN TEXT TO REPLACE: Core", + "maintainers": "EN TEXT TO REPLACE: Maintainers", + "role_core": "EN TEXT TO REPLACE: core", "role_steward": "forvalter", "role_maintainer": "vedligeholder", "sponsor": "sponsor", @@ -1165,6 +1299,64 @@ } } }, + "sponsors_page": { + "title": "EN TEXT TO REPLACE: Sponsors", + "heading": "EN TEXT TO REPLACE: sponsors", + "meta_description": "EN TEXT TO REPLACE: Support npmx and help us accelerate ecosystem work around security, trust, optimization, and research.", + "intro": "EN TEXT TO REPLACE: Support npmx and help us grow the ecosystem work we do for developers and maintainers.", + "what_we_do": { + "title": "EN TEXT TO REPLACE: What we do", + "description": "EN TEXT TO REPLACE: We're building an ecosystem that solves problems around security, trust, optimization, and research for the tools we use in everyday development - quickly, conveniently, and with high quality. This project is built by developers for developers. As authors of widely used libraries, we understand team needs and actively study what maintainers and projects need most." + }, + "what_support_means": { + "title": "EN TEXT TO REPLACE: What support means", + "description": "EN TEXT TO REPLACE: Our plans and connections keep growing, along with our desire to share what we've built and learn from others. Your support helps fund the project, external talks, conferences, and the broader ecosystem, and, most importantly, enables us to keep growing our community." + }, + "cta": "EN TEXT TO REPLACE: See sponsorship tiers", + "community_growth_footnote": "EN TEXT TO REPLACE: * According to {link} Q1 2026 research.", + "what_this_means_for_you": { + "title": "EN TEXT TO REPLACE: What this means for you", + "description": "EN TEXT TO REPLACE: npmx is not only about improving developer experience and closing critical everyday gaps. In our first six months, we have already become the default source for thousands of teams and a huge number of developers. You get not only a more stable tool for your teams, but also visibility in front of a constantly growing audience of top-tier engineers.", + "cards": { + "people": { + "contributors": "EN TEXT TO REPLACE: contributors", + "community_members": "EN TEXT TO REPLACE: community members" + }, + "visitors": { + "description": "EN TEXT TO REPLACE: unique monthly visitors" + }, + "stars": { + "title": "EN TEXT TO REPLACE: stars" + }, + "community": { + "title": "EN TEXT TO REPLACE: fast-growing", + "description": "EN TEXT TO REPLACE: We are one of the fastest-growing communities in the ecosystem" + }, + "adoption": { + "title": "EN TEXT TO REPLACE: adoption", + "description": "EN TEXT TO REPLACE: charts at conferences, talks, and articles rely on our data" + }, + "default_source": { + "title": "EN TEXT TO REPLACE: default source", + "description": "EN TEXT TO REPLACE: pnpm made npmx the default source, many packages have been configured to link to npmx" + } + } + }, + "tiers": { + "title": "EN TEXT TO REPLACE: Sponsorship tiers", + "per_month": "EN TEXT TO REPLACE: /month", + "custom": "EN TEXT TO REPLACE: Custom", + "silver": { + "name": "EN TEXT TO REPLACE: Silver" + }, + "gold": { + "name": "EN TEXT TO REPLACE: Gold" + }, + "platinum": { + "name": "EN TEXT TO REPLACE: Platinum" + } + } + }, "account_menu": { "connect": "forbind", "account": "Konto", @@ -1246,7 +1438,15 @@ "add_hint": "Tilføj mindst 2 pakker for at sammenligne." }, "scatter_chart": { - "copy_alt": {} + "title": "EN TEXT TO REPLACE: Compare {x} vs {y}", + "freshness_score": "EN TEXT TO REPLACE: Freshness score", + "copy_alt": { + "analysis": "EN TEXT TO REPLACE: {package} : {x_name} ({x_value}) and {y_name} ({y_value})", + "description": "EN TEXT TO REPLACE: Scatter plot chart mapping {x_name} versus {y_name} for the {packages} packages. {analysis}. {watermark}" + }, + "filename": "EN TEXT TO REPLACE: {x}-vs-{y}-scatter-chart", + "x_axis": "EN TEXT TO REPLACE: X-AXIS ↦", + "y_axis": "EN TEXT TO REPLACE: Y-AXIS ↥" }, "no_dependency": { "label": "(Ingen afhængighed)", @@ -1327,9 +1527,22 @@ "label": "Sårbarheder", "description": "Kendte sikkerhedssårbarheder" }, - "githubStars": {}, - "githubIssues": {}, - "createdAt": {} + "githubStars": { + "label": "EN TEXT TO REPLACE: GitHub Stars", + "description": "EN TEXT TO REPLACE: Number of stars on the GitHub repository" + }, + "githubForks": { + "label": "EN TEXT TO REPLACE: GitHub Forks", + "description": "EN TEXT TO REPLACE: Number of forks on the GitHub repository" + }, + "githubIssues": { + "label": "EN TEXT TO REPLACE: GitHub Issues", + "description": "EN TEXT TO REPLACE: Number of issues on the GitHub repository" + }, + "createdAt": { + "label": "EN TEXT TO REPLACE: Created At", + "description": "EN TEXT TO REPLACE: When the package was created" + } }, "values": { "any": "Alle", @@ -1389,6 +1602,9 @@ "change_ratio": "Ændringsforhold", "char_edits": "Tegnedits", "diff_distance": "Diff afstand", + "diff_truncated": "EN TEXT TO REPLACE: Diff truncated for performance. Showing the first changed lines only.", + "large_diff_mode": "EN TEXT TO REPLACE: Large file diff shown with inline edit merging disabled for performance.", + "large_diff_options_disabled": "EN TEXT TO REPLACE: Large file mode disables inline edit merging for performance.", "loading_diff": "Indlæser diff...", "loading_diff_error": "Kunne ikke indlæse diff", "merge_modified_lines": "Flet ændrede linjer", @@ -1651,6 +1867,15 @@ }, "alt_logo_kawaii": "En sød, rund og farverig version af npmx-logoet.", "changelog": { - "error": {} + "pre_release": "EN TEXT TO REPLACE: Pre-release", + "draft": "EN TEXT TO REPLACE: Draft", + "no_logs": "EN TEXT TO REPLACE: Sorry, this package does not publish changelogs or its changelog format is not supported.", + "error": { + "p1": "EN TEXT TO REPLACE: Sorry, the changelog for {package} couldn't be loaded", + "p2": "EN TEXT TO REPLACE: Please try again later or {viewon}" + }, + "rate_limit_ungh": "EN TEXT TO REPLACE: Sorry, Github's rate limit has been hit, try again in a moment", + "version_unavailable": "EN TEXT TO REPLACE: The requested version is not available.", + "copy_as_markdown": "EN TEXT TO REPLACE: Copy changelog as Markdown" } } From e54d8f7dbb21d45bc08bb583ea0783599320d323 Mon Sep 17 00:00:00 2001 From: Lucas Date: Wed, 19 Aug 2026 03:15:42 +0200 Subject: [PATCH 18/25] chore(i18n): update some of the replacements missing --- i18n/locales/da-DK.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index c9538b3435..d8a44ea3a4 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -13,7 +13,7 @@ "trademark_disclaimer": "npm er et registreret varemærke for npm, Inc. Dette websted er ikke tilknyttet npm, Inc.", "footer": { "about": "om", - "sponsors": "EN TEXT TO REPLACE: sponsors", + "sponsors": "sponsorer", "blog": "blog", "docs": "dokumentation", "source": "kilde", @@ -22,10 +22,10 @@ "builders_chat": "byggere", "keyboard_shortcuts": "tastaturgenveje", "brand": "mærke", - "resources": "EN TEXT TO REPLACE: Resources", - "features": "EN TEXT TO REPLACE: Features", - "other": "EN TEXT TO REPLACE: Other", - "sponsored_by": "EN TEXT TO REPLACE: Sponsored by {list}" + "resources": "Ressourcer", + "features": "Funktioner", + "other": "Andet", + "sponsored_by": "Sponsoreret af {list}" }, "shortcuts": { "section": { @@ -41,7 +41,7 @@ "settings": "Åbn indstillinger", "compare": "Sammenlign", "compare_from_package": "Sammenlign (forudfyldt med nuværende pakke)", - "changelog": "EN TEXT TO REPLACE: Open changelog", + "changelog": "Åbn ændringslog", "navigate_results": "Naviger resultater", "go_to_result": "Gå til resultat", "open_code_view": "Åbn kodevisning", @@ -49,8 +49,8 @@ "disable_shortcuts": "Du kan deaktivere tastaturgenveje i {settings}.", "open_main": "Åbn hovedinformation", "open_diff": "Åbn versionsforskelle", - "open_timeline": "EN TEXT TO REPLACE: Open timeline", - "open_stats": "EN TEXT TO REPLACE: Open stats" + "open_timeline": "Åbn tidslinje", + "open_stats": "Åbn statistik" }, "search": { "label": "Søg npm-pakker", @@ -103,9 +103,9 @@ "here": "du er her", "connected": "forbundet", "keyboard_shortcuts": { - "navigate": "EN TEXT TO REPLACE: to navigate", - "select": "EN TEXT TO REPLACE: to select", - "close": "EN TEXT TO REPLACE: to close" + "navigate": "for at navigere", + "select": "for at vælge", + "close": "for at lukke" }, "state": { "on": "til", @@ -163,8 +163,8 @@ "diff": "Diff", "compare": "Sammenlign denne pakke", "download": "Hent tarball", - "changelog": "EN TEXT TO REPLACE: Changelog", - "stats": "EN TEXT TO REPLACE: Stats" + "changelog": "Ændringslog", + "stats": "Statistik" }, "package_actions": { "copy_run": "Kopiér kør-kommando" @@ -191,7 +191,7 @@ "theme_changed": "Tema sat til {theme}.", "accent_color_changed": "Accentfarve sat til {color}.", "background_theme_changed": "Baggrundsnuance sat til {theme}.", - "foreground_theme_changed": "EN TEXT TO REPLACE: Foreground shade set to {theme}.", + "foreground_theme_changed": "Forgrundsnuance sat til {theme}.", "download_started": "Downloader {package}-tarball.", "copied_to_clipboard": "Kopieret til udklipsholderen.", "npm_disconnected": "npm CLI blev afbrudt.", From 938fb8b33a61efa1ff34f458f10ea678b07cefe7 Mon Sep 17 00:00:00 2001 From: Lucas Date: Wed, 19 Aug 2026 03:41:01 +0200 Subject: [PATCH 19/25] chore(i18n): update Danish translations for noodles and settings --- i18n/locales/da-DK.json | 100 ++++++++++++++++++++-------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index d8a44ea3a4..775c5f0854 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -241,29 +241,29 @@ } }, "noodles": { - "title": "EN TEXT TO REPLACE: noodles", - "meta_description": "EN TEXT TO REPLACE: Every noodle we've ever shown on npmx — the seasonal logos, easter eggs, and the stories behind them.", - "latest": "EN TEXT TO REPLACE: Latest noodles", - "what_is": "EN TEXT TO REPLACE: What is noodles", - "what_is_body": "EN TEXT TO REPLACE: Noodles are the playful variants of the npmx logo we run on the homepage to mark releases, holidays, events, and other moments worth celebrating. Think of them like Google Doodles, but for npm packages.", - "empty": "EN TEXT TO REPLACE: No noodles yet.", - "load_more": "EN TEXT TO REPLACE: Load {count} more", - "dates": "EN TEXT TO REPLACE: Active dates", - "shipped_in": "EN TEXT TO REPLACE: Shipped in", - "credits": "EN TEXT TO REPLACE: Credits", - "learn_more": "EN TEXT TO REPLACE: Learn more", - "carousel_prev": "EN TEXT TO REPLACE: Previous image", - "carousel_next": "EN TEXT TO REPLACE: Next image", - "carousel_dots": "EN TEXT TO REPLACE: Variant image navigation", - "carousel_jump": "EN TEXT TO REPLACE: Go to image {index}", - "lens_label": "EN TEXT TO REPLACE: {title} — image reel", - "lens_slide": "EN TEXT TO REPLACE: image {index}", - "lens_slide_position": "EN TEXT TO REPLACE: Slide {index} of {total}", - "back_to_archive": "EN TEXT TO REPLACE: Back to all noodles", + "title": "noodles", + "meta_description": "Alle de noodles, vi nogensinde har vist på npmx — sæsonlogoerne, påskeæggene og historierne bag dem.", + "latest": "Seneste noodles", + "what_is": "Hvad er noodles", + "what_is_body": "Noodles er de legesyge varianter af npmx-logoet, som vi viser på forsiden for at markere udgivelser, højtider, begivenheder og andre øjeblikke, der er værd at fejre. Tænk på dem som Google Doodles, bare for npm-pakker.", + "empty": "Ingen noodles endnu.", + "load_more": "Indlæs {count} flere", + "dates": "Aktive datoer", + "shipped_in": "Lanceret i", + "credits": "Bidragydere", + "learn_more": "Læs mere", + "carousel_prev": "Forrige billede", + "carousel_next": "Næste billede", + "carousel_dots": "Navigation mellem variantbilleder", + "carousel_jump": "Gå til billede {index}", + "lens_label": "{title} — billedserie", + "lens_slide": "billede {index}", + "lens_slide_position": "Billede {index} af {total}", + "back_to_archive": "Tilbage til alle noodles", "missing": { - "title": "EN TEXT TO REPLACE: This noodle never made it out of the bowl.", - "body": "EN TEXT TO REPLACE: We don't have a “{slug}” noodle on the menu. Either it's still being plated, or it was never written. Either way — back to the archive.", - "empty_bowl": "EN TEXT TO REPLACE: empty bowl" + "title": "Denne noodle kom aldrig ud af skålen.", + "body": "Vi har ikke en “{slug}”-noodle på menuen. Enten er den stadig ved at blive anrettet, eller også blev den aldrig skrevet. Uanset hvad — tilbage til arkivet.", + "empty_bowl": "tom skål" } }, "settings": { @@ -322,16 +322,16 @@ "black": "Sort" }, "foreground_themes": { - "label": "EN TEXT TO REPLACE: Foreground shade", - "contrast": "EN TEXT TO REPLACE: Contrast", - "standard": "EN TEXT TO REPLACE: Standard", - "muted": "EN TEXT TO REPLACE: Muted" + "label": "Forgrundsfarve", + "contrast": "Kontrast", + "standard": "Standard", + "muted": "Dæmpet" }, "keyboard_shortcuts_enabled": "Aktivér tastaturgenveje", "keyboard_shortcuts_enabled_description": "Tastaturgenveje kan deaktiveres, hvis de konflikter med andre browser- eller systemgenveje", - "enable_code_ligatures": "EN TEXT TO REPLACE: Enable ligatures in code", - "enable_changelog_autoscroll": "EN TEXT TO REPLACE: Auto scroll to requested version", - "enable_changelog_autoscroll_description": "EN TEXT TO REPLACE: Auto scroll to or close to the requested version at package changelog" + "enable_code_ligatures": "Aktivér ligaturer i kode", + "enable_changelog_autoscroll": "Rul automatisk til den ønskede version", + "enable_changelog_autoscroll_description": "Rul automatisk til eller tæt på den ønskede version i pakkens ændringslog" }, "i18n": { "missing_keys": "{count} manglende oversættelse | {count} manglende oversættelser", @@ -363,7 +363,7 @@ "warnings": "Advarsler:", "go_back_home": "Gå tilbage til forsiden", "per_week": "/ uge", - "per_week_short": "EN TEXT TO REPLACE: /wk", + "per_week_short": "/u.", "vanity_downloads_hint": "Vanity-nummer: ingen pakker vist | Vanity-nummer: for den viste pakke | Vanity-nummer: Summen af {count} viste pakker", "sort": { "name": "navn", @@ -394,7 +394,7 @@ "collapse_with_name": "Skjul {name}", "expand": "Udvid", "expand_with_name": "Udvid {name}", - "copyMdError": "EN TEXT TO REPLACE: Failed to load markdown, try again later" + "copyMdError": "Kunne ikke indlæse Markdown. Prøv igen senere" }, "profile": { "display_name": "Visningsnavn", @@ -420,7 +420,7 @@ "verified_provenance": "Verificeret oprindelse", "navigation": "Pakke", "copy_name": "Kopiér pakkenavn", - "copy_version": "EN TEXT TO REPLACE: Copy package version", + "copy_version": "Kopiér pakkeversion", "deprecation": { "package": "Denne pakke er blevet forældet.", "version": "Denne version er blevet forældet.", @@ -434,17 +434,17 @@ "deps": "{count} flere afhængigheder" }, "size_decrease": { - "title_size": "EN TEXT TO REPLACE: Package size decreased since v{version}!", - "title_deps": "EN TEXT TO REPLACE: Dependency count decreased since v{version}!", - "title_both": "EN TEXT TO REPLACE: Package size and dependency count decreased since v{version}!", - "size": "EN TEXT TO REPLACE: Install size reduced by {percent} ({size} smaller)", - "deps": "EN TEXT TO REPLACE: {count} fewer dependency | {count} fewer dependencies" + "title_size": "Pakkestørrelsen er faldet siden v{version}!", + "title_deps": "Antallet af afhængigheder er faldet siden v{version}!", + "title_both": "Pakkestørrelsen og antallet af afhængigheder er faldet siden v{version}!", + "size": "Installationsstørrelse reduceret med {percent} ({size} mindre)", + "deps": "{count} færre afhængighed | {count} færre afhængigheder" }, "replacement": { "title": "Du har muligvis ikke brug for denne afhængighed.", - "example": "EN TEXT TO REPLACE: Example:", + "example": "Eksempel:", "native": "Dette kan erstattes med {replacement}, tilgængelig siden Node {nodeVersion}.", - "native_no_version": "EN TEXT TO REPLACE: This package can be replaced with {replacement}.", + "native_no_version": "Denne pakke kan erstattes med {replacement}.", "simple": "{community} har markeret denne pakke som overflødig, med rådet: {replacement}.", "documented": "{community} har markeret denne pakke som havende mere effektive alternativer.", "none": "Denne pakke er blevet markeret som ikke længere nødvendig, og dens funktionalitet er sandsynligvis tilgængelig nativt i alle motorer.", @@ -465,9 +465,9 @@ "unpacked": "{size} udpakket størrelse (denne pakke)", "total": "{size} total udpakket størrelse (inklusive {count} afhængighed for linux-x64) | {size} total udpakket størrelse (inklusive alle {count} afhængigheder for linux-x64)" }, - "main_information": "EN TEXT TO REPLACE: Main Information", - "trends": "EN TEXT TO REPLACE: Trends", - "version_distribution": "EN TEXT TO REPLACE: Version Distribution" + "main_information": "Hovedinformation", + "trends": "Tendenser", + "version_distribution": "Versionsfordeling" }, "skills": { "title": "Agent Færdigheder", @@ -497,17 +497,17 @@ "docs": "dokumentation", "fund": "fund", "compare": "sammenlign", - "timeline": "EN TEXT TO REPLACE: timeline", - "stats": "EN TEXT TO REPLACE: stats", + "timeline": "tidslinje", + "stats": "statistik", "compare_this_package": "sammenlign denne pakke", - "changelog": "EN TEXT TO REPLACE: changelog" + "changelog": "ændringslog" }, "likes": { "like": "Synes godt om denne pakke", "unlike": "Synes ikke godt om denne pakke", - "top_rank_tooltip": "EN TEXT TO REPLACE: This is among the top 10 most liked packages on npmx! (#{rank})", - "top_rank_label": "EN TEXT TO REPLACE: #{rank}", - "top_rank_link_label": "EN TEXT TO REPLACE: View likes leaderboard. This package is ranked #{rank}." + "top_rank_tooltip": "Denne pakke er blandt de 10 mest populære pakker på npmx! (#{rank})", + "top_rank_label": "#{rank}", + "top_rank_link_label": "Se ranglisten over likes. Denne pakke ligger nummer #{rank}." }, "docs": { "contents": "Indhold", @@ -536,10 +536,10 @@ "run": { "title": "Kør", "locally": "Kør lokalt", - "copy_command": "EN TEXT TO REPLACE: Copy command to run locally" + "copy_command": "Kopiér kommandoen for at køre lokalt" }, "command": { - "copied_install": "EN TEXT TO REPLACE: Install command copied", + "copied_install": "Installationskommandoen er kopieret", "copied_dev_install": "EN TEXT TO REPLACE: Dev install command copied", "copied_run": "EN TEXT TO REPLACE: Run command copied", "copied_create": "EN TEXT TO REPLACE: Create command copied", From a0777b2ee8e4181e5f929f3b35d0776af33e2794 Mon Sep 17 00:00:00 2001 From: Lucas Date: Wed, 19 Aug 2026 04:19:05 +0200 Subject: [PATCH 20/25] chore(i18n): update Danish translations for command messages and UI elements --- i18n/locales/da-DK.json | 202 ++++++++++++++++++++-------------------- 1 file changed, 101 insertions(+), 101 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index 775c5f0854..134e3432a6 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -539,12 +539,12 @@ "copy_command": "Kopiér kommandoen for at køre lokalt" }, "command": { - "copied_install": "Installationskommandoen er kopieret", - "copied_dev_install": "EN TEXT TO REPLACE: Dev install command copied", - "copied_run": "EN TEXT TO REPLACE: Run command copied", - "copied_create": "EN TEXT TO REPLACE: Create command copied", - "copied_execute": "EN TEXT TO REPLACE: Execute command copied", - "copied_skills": "EN TEXT TO REPLACE: Skills command copied" + "copied_install": "Kommandoen til installation er kopieret", + "copied_dev_install": "Kommandoen til installation som udviklingsafhængighed er kopieret", + "copied_run": "Kommandoen til at køre pakken er kopieret", + "copied_create": "Kommandoen til at oprette et projekt er kopieret", + "copied_execute": "Kommandoen til at køre værktøjet er kopieret", + "copied_skills": "Kommandoen til at tilføje skills er kopieret" }, "readme": { "title": "Readme", @@ -558,7 +558,7 @@ "caution": "Forsigtighed" }, "copy_as_markdown": "Kopiér README som Markdown", - "error_loading": "EN TEXT TO REPLACE: Failed to load README details" + "error_loading": "Kunne ikke indlæse README-oplysninger" }, "provenance_section": { "title": "Provenance", @@ -589,7 +589,7 @@ "weekly_downloads": "Ugentlige downloads", "keywords": "Nøgleord", "license": "Licens", - "version": "EN TEXT TO REPLACE: Version", + "version": "Version", "select": "Vælg pakke", "select_maximum": "Maksimum {count} pakker kan vælges" }, @@ -628,9 +628,9 @@ "filter_help": "Hjælp til semver rækkevidde filter", "filter_tooltip": "Filtrer versioner ved hjælp af en {link}. For eksempel viser ^3.0.0 alle 3.x versioner.", "filter_tooltip_link": "semver range", - "license_change_help": "EN TEXT TO REPLACE: License Change Details", - "license_change_warning": "EN TEXT TO REPLACE: License changed since previous version.", - "license_change_record": "EN TEXT TO REPLACE: The license of this package changed from \"{from}\" to \"{to}\".", + "license_change_help": "Detaljer om licensændring", + "license_change_warning": "Licensen er ændret siden den forrige version.", + "license_change_record": "Pakkens licens er ændret fra \"{from}\" til \"{to}\".", "no_matches": "Ingen versioner matcher denne rækkevidde", "copy_alt": { "per_version_analysis": "{version} version blev downloadet {downloads} gange", @@ -641,38 +641,38 @@ "no_match_filter": "Ingen versioner matcher {filter}" }, "timeline": { - "load_more": "EN TEXT TO REPLACE: Load more", - "load_error": "EN TEXT TO REPLACE: Failed to load timeline. Please try again later.", - "size_increase": "EN TEXT TO REPLACE: Install size increased by {percent}% ({size})", - "size_decrease": "EN TEXT TO REPLACE: Install size decreased by {percent}% ({size})", - "dep_increase": "EN TEXT TO REPLACE: {count} dependency added | {count} dependencies added", - "dep_decrease": "EN TEXT TO REPLACE: {count} dependency removed | {count} dependencies removed", - "license_change": "EN TEXT TO REPLACE: License changed from {from} to {to}", - "esm_added": "EN TEXT TO REPLACE: Module type changed to ESM", - "esm_removed": "EN TEXT TO REPLACE: Module type changed from ESM to CJS", - "types_added": "EN TEXT TO REPLACE: TypeScript types added", - "types_removed": "EN TEXT TO REPLACE: TypeScript types removed", - "trusted_publisher_added": "EN TEXT TO REPLACE: Trusted publishing enabled", - "trusted_publisher_removed": "EN TEXT TO REPLACE: Trusted publishing removed", - "provenance_added": "EN TEXT TO REPLACE: Provenance enabled", - "provenance_removed": "EN TEXT TO REPLACE: Provenance removed", - "deprecated": "EN TEXT TO REPLACE: Deprecated", + "load_more": "Indlæs mere", + "load_error": "Kunne ikke indlæse tidslinjen. Prøv igen senere.", + "size_increase": "Installationsstørrelsen steg med {percent}% ({size})", + "size_decrease": "Installationsstørrelsen faldt med {percent}% ({size})", + "dep_increase": "{count} afhængighed tilføjet | {count} afhængigheder tilføjet", + "dep_decrease": "{count} afhængighed fjernet | {count} afhængigheder fjernet", + "license_change": "Licensen blev ændret fra {from} til {to}", + "esm_added": "Modultype ændret til ESM", + "esm_removed": "Modultype ændret fra ESM til CJS", + "types_added": "TypeScript-typer tilføjet", + "types_removed": "TypeScript-typer fjernet", + "trusted_publisher_added": "Trusted publishing aktiveret", + "trusted_publisher_removed": "Trusted publishing fjernet", + "provenance_added": "Provenance aktiveret", + "provenance_removed": "Provenance fjernet", + "deprecated": "Forældet", "chart": { - "tab_aria_label": "EN TEXT TO REPLACE: Metric selection", - "dependency_size": "EN TEXT TO REPLACE: Dependency Size", - "other_dependencies": "EN TEXT TO REPLACE: Other", - "base_scale": "EN TEXT TO REPLACE: start y-axis at zero", - "zoom": "EN TEXT TO REPLACE: zoom", - "reset_minimap": "EN TEXT TO REPLACE: reset minimap", - "ordered_versions": "EN TEXT TO REPLACE: stable only", + "tab_aria_label": "Valg af måling", + "dependency_size": "Afhængighedsstørrelse", + "other_dependencies": "Andre", + "base_scale": "start y-aksen ved nul", + "zoom": "zoom", + "reset_minimap": "nulstil minikort", + "ordered_versions": "kun stabile versioner", "copy_alt": { - "key_changes": "EN TEXT TO REPLACE: Key changes: {version_events}.", - "version_events": "EN TEXT TO REPLACE: version {version}: {events}", - "general_description": "EN TEXT TO REPLACE: Line chart showing the {metric} of the {package} package, from version {first} to {last}. The {metric} in version {first} is {first_value}, in version {last} is {last_value} ({overall_progress_percentage}% overall). {key_changes} {watermark}.", - "stackbar_segment_share": "EN TEXT TO REPLACE: {segment}: {value} ({percentage})", - "stackbar_top_segments": "EN TEXT TO REPLACE: In {version}, the largest segments are {segments}.", - "stackbar_largest_increase": "EN TEXT TO REPLACE: The largest increase is {segment}, up {delta}.", - "stackbar_largest_decrease": "EN TEXT TO REPLACE: The largest decrease is {segment}, down {delta}." + "key_changes": "Vigtige ændringer: {version_events}.", + "version_events": "version {version}: {events}", + "general_description": "Linjediagram, der viser {metric} for pakken {package} fra version {first} til {last}. {metric} i version {first} er {first_value}, og i version {last} er den {last_value} ({overall_progress_percentage}% samlet set). {key_changes} {watermark}.", + "stackbar_segment_share": "{segment}: {value} ({percentage})", + "stackbar_top_segments": "I {version} er de største segmenter {segments}.", + "stackbar_largest_increase": "Den største stigning er i {segment}, som er steget med {delta}.", + "stackbar_largest_decrease": "Det største fald er i {segment}, som er faldet med {delta}." } } }, @@ -734,7 +734,7 @@ "date_range": "{start} til {end}", "date_range_multiline": "{start}\ntil {end}", "download_file": "Hent {fileType}", - "copy_file": "EN TEXT TO REPLACE: Copy {fileType}", + "copy_file": "Kopiér {fileType}", "toggle_annotator": "Skift annotator", "toggle_stack_mode": "Skift staktilstand", "open_options": "Åbn indstillinger", @@ -769,7 +769,7 @@ "trend_undefined": "undefined (utilstrækkelige data)", "button_label": "Kopiér alternativ tekst", "watermark": "Nederst står der et vandmærke \"./npmx en hurtig, moderne browser til npm-registret\"", - "watermark_top": "EN TEXT TO REPLACE: At the top, a watermark reads \"./npmx a fast, modern browser for the npm registry\"", + "watermark_top": "Øverst står der et vandmærke \"./npmx en hurtig, moderne browser til npm-registret\"", "analysis": "{package_name} starter ved {start_value} og slutter ved {end_value}, hvilket viser en {trend} trend med en hældning på {downloads_slope} downloads pr. tidsinterval.", "estimation": "Den endelige værdi er et skøn baseret på delvise data for den aktuelle periode.", "estimations": "De endelige værdier er skøn baseret på delvise data for den aktuelle periode.", @@ -780,15 +780,15 @@ "facet_bar_analysis": "{package_name} har en værdi på {value}." }, "embedding": { - "chart": "EN TEXT TO REPLACE: Embed this chart", - "copy_url": "EN TEXT TO REPLACE: Copy this URL to embed the chart into your website", - "preview": "EN TEXT TO REPLACE: Preview", - "tip": "EN TEXT TO REPLACE: If startDate and endDate are not provided in the URL, the graph will display the last 12 months by default." + "chart": "Indlejr dette diagram", + "copy_url": "Kopiér denne URL for at indlejre diagrammet på dit websted", + "preview": "Forhåndsvisning", + "tip": "Hvis startDate og endDate ikke er angivet i URL'en, viser grafen som standard de seneste 12 måneder." } }, "downloads": { "title": "Ugentlige downloads", - "version_distribution_title": "EN TEXT TO REPLACE: weekly downloads for version {version}", + "version_distribution_title": "ugentlige downloads for version {version}", "community_distribution": "Se distributionen af fællesskabsadoption", "subtitle": "På tværs af alle versioner", "sparkline_nav_hint": "Brug ← →" @@ -889,12 +889,12 @@ }, "leaderboard": { "likes": { - "title": "EN TEXT TO REPLACE: Likes Leaderboard", - "description": "EN TEXT TO REPLACE: The 10 most liked packages on npmx right now.", - "rank": "EN TEXT TO REPLACE: Rank", - "likes": "EN TEXT TO REPLACE: Likes", - "unavailable_title": "EN TEXT TO REPLACE: No likes leaderboard yet", - "unavailable_description": "EN TEXT TO REPLACE: We don't have a likes leaderboard to show right now." + "title": "Rangliste over likes", + "description": "De 10 pakker med flest likes på npmx lige nu.", + "rank": "Placering", + "likes": "Likes", + "unavailable_title": "Ingen rangliste over likes endnu", + "unavailable_description": "Vi har ingen rangliste over likes at vise lige nu." } }, "connector": { @@ -1104,7 +1104,7 @@ "file_path": "Filsti", "binary_file": "Binær fil", "binary_rendering_warning": "Filtypen \"{contentType}\" understøttes ikke til forhåndsvisning.", - "possibly_unnecessary": "EN TEXT TO REPLACE: May be unnecessary in a published package" + "possibly_unnecessary": "Kan være unødvendig i en udgivet pakke" }, "badges": { "provenance": { @@ -1252,17 +1252,17 @@ }, "sponsors": { "title": "Sponsorer", - "gold": "EN TEXT TO REPLACE: Gold Sponsors", - "silver": "EN TEXT TO REPLACE: Silver Sponsors" + "gold": "Guldsponsorer", + "silver": "Sølvsponsorer" }, "oss_partners": { "title": "OSS Partnere" }, "team": { "title": "Team", - "core": "EN TEXT TO REPLACE: Core", - "maintainers": "EN TEXT TO REPLACE: Maintainers", - "role_core": "EN TEXT TO REPLACE: core", + "core": "Kerneteam", + "maintainers": "Vedligeholdere", + "role_core": "kernemedlem", "role_steward": "forvalter", "role_maintainer": "vedligeholder", "sponsor": "sponsor", @@ -1300,60 +1300,60 @@ } }, "sponsors_page": { - "title": "EN TEXT TO REPLACE: Sponsors", - "heading": "EN TEXT TO REPLACE: sponsors", - "meta_description": "EN TEXT TO REPLACE: Support npmx and help us accelerate ecosystem work around security, trust, optimization, and research.", - "intro": "EN TEXT TO REPLACE: Support npmx and help us grow the ecosystem work we do for developers and maintainers.", + "title": "Sponsorer", + "heading": "sponsorer", + "meta_description": "Støt npmx, og hjælp os med at sætte fart på arbejdet i økosystemet inden for sikkerhed, tillid, optimering og forskning.", + "intro": "Støt npmx, og hjælp os med at udvide vores arbejde i økosystemet for udviklere og vedligeholdere.", "what_we_do": { - "title": "EN TEXT TO REPLACE: What we do", - "description": "EN TEXT TO REPLACE: We're building an ecosystem that solves problems around security, trust, optimization, and research for the tools we use in everyday development - quickly, conveniently, and with high quality. This project is built by developers for developers. As authors of widely used libraries, we understand team needs and actively study what maintainers and projects need most." + "title": "Det laver vi", + "description": "Vi bygger et økosystem, der løser problemer inden for sikkerhed, tillid, optimering og forskning for de værktøjer, vi bruger i den daglige udvikling — hurtigt, nemt og i høj kvalitet. Dette projekt er bygget af udviklere til udviklere. Som skabere af udbredte biblioteker forstår vi teams behov og undersøger aktivt, hvad vedligeholdere og projekter har mest brug for." }, "what_support_means": { - "title": "EN TEXT TO REPLACE: What support means", - "description": "EN TEXT TO REPLACE: Our plans and connections keep growing, along with our desire to share what we've built and learn from others. Your support helps fund the project, external talks, conferences, and the broader ecosystem, and, most importantly, enables us to keep growing our community." + "title": "Hvad støtten betyder", + "description": "Vores planer og forbindelser bliver ved med at vokse sammen med vores ønske om at dele det, vi har bygget, og lære af andre. Din støtte er med til at finansiere projektet, eksterne oplæg, konferencer og det bredere økosystem og gør det vigtigst af alt muligt for os fortsat at udvikle vores fællesskab." }, - "cta": "EN TEXT TO REPLACE: See sponsorship tiers", - "community_growth_footnote": "EN TEXT TO REPLACE: * According to {link} Q1 2026 research.", + "cta": "Se sponsorniveauer", + "community_growth_footnote": "* Ifølge {link}s forskning fra 1. kvartal 2026.", "what_this_means_for_you": { - "title": "EN TEXT TO REPLACE: What this means for you", - "description": "EN TEXT TO REPLACE: npmx is not only about improving developer experience and closing critical everyday gaps. In our first six months, we have already become the default source for thousands of teams and a huge number of developers. You get not only a more stable tool for your teams, but also visibility in front of a constantly growing audience of top-tier engineers.", + "title": "Hvad det betyder for dig", + "description": "npmx handler ikke kun om at forbedre udvikleroplevelsen og lukke kritiske huller i hverdagen. I løbet af vores første seks måneder er vi allerede blevet standardkilden for tusindvis af teams og et enormt antal udviklere. Du får ikke blot et mere stabilt værktøj til dine teams, men også synlighed over for en konstant voksende målgruppe af dygtige softwareudviklere.", "cards": { "people": { - "contributors": "EN TEXT TO REPLACE: contributors", - "community_members": "EN TEXT TO REPLACE: community members" + "contributors": "bidragydere", + "community_members": "fællesskabsmedlemmer" }, "visitors": { - "description": "EN TEXT TO REPLACE: unique monthly visitors" + "description": "unikke månedlige besøgende" }, "stars": { - "title": "EN TEXT TO REPLACE: stars" + "title": "stjerner" }, "community": { - "title": "EN TEXT TO REPLACE: fast-growing", - "description": "EN TEXT TO REPLACE: We are one of the fastest-growing communities in the ecosystem" + "title": "hastigt voksende", + "description": "Vi er et af de hurtigst voksende fællesskaber i økosystemet" }, "adoption": { - "title": "EN TEXT TO REPLACE: adoption", - "description": "EN TEXT TO REPLACE: charts at conferences, talks, and articles rely on our data" + "title": "udbredelse", + "description": "diagrammer på konferencer, i oplæg og i artikler bygger på vores data" }, "default_source": { - "title": "EN TEXT TO REPLACE: default source", - "description": "EN TEXT TO REPLACE: pnpm made npmx the default source, many packages have been configured to link to npmx" + "title": "standardkilde", + "description": "pnpm har gjort npmx til standardkilden, og mange pakker er blevet konfigureret til at linke til npmx" } } }, "tiers": { - "title": "EN TEXT TO REPLACE: Sponsorship tiers", - "per_month": "EN TEXT TO REPLACE: /month", - "custom": "EN TEXT TO REPLACE: Custom", + "title": "Sponsorniveauer", + "per_month": "/måned", + "custom": "Tilpasset", "silver": { - "name": "EN TEXT TO REPLACE: Silver" + "name": "Sølv" }, "gold": { - "name": "EN TEXT TO REPLACE: Gold" + "name": "Guld" }, "platinum": { - "name": "EN TEXT TO REPLACE: Platinum" + "name": "Platin" } } }, @@ -1438,15 +1438,15 @@ "add_hint": "Tilføj mindst 2 pakker for at sammenligne." }, "scatter_chart": { - "title": "EN TEXT TO REPLACE: Compare {x} vs {y}", - "freshness_score": "EN TEXT TO REPLACE: Freshness score", + "title": "Sammenlign {x} med {y}", + "freshness_score": "Aktualitetsscore", "copy_alt": { - "analysis": "EN TEXT TO REPLACE: {package} : {x_name} ({x_value}) and {y_name} ({y_value})", - "description": "EN TEXT TO REPLACE: Scatter plot chart mapping {x_name} versus {y_name} for the {packages} packages. {analysis}. {watermark}" + "analysis": "{package}: {x_name} ({x_value}) og {y_name} ({y_value})", + "description": "Punktdiagram, der viser {x_name} i forhold til {y_name} for pakkerne {packages}. {analysis}. {watermark}" }, - "filename": "EN TEXT TO REPLACE: {x}-vs-{y}-scatter-chart", - "x_axis": "EN TEXT TO REPLACE: X-AXIS ↦", - "y_axis": "EN TEXT TO REPLACE: Y-AXIS ↥" + "filename": "{x}-mod-{y}-punktdiagram", + "x_axis": "X-AKSE ↦", + "y_axis": "Y-AKSE ↥" }, "no_dependency": { "label": "(Ingen afhængighed)", @@ -1528,16 +1528,16 @@ "description": "Kendte sikkerhedssårbarheder" }, "githubStars": { - "label": "EN TEXT TO REPLACE: GitHub Stars", - "description": "EN TEXT TO REPLACE: Number of stars on the GitHub repository" + "label": "GitHub-stjerner", + "description": "Antal stjerner på GitHub-repositoriet" }, "githubForks": { - "label": "EN TEXT TO REPLACE: GitHub Forks", - "description": "EN TEXT TO REPLACE: Number of forks on the GitHub repository" + "label": "GitHub-forks", + "description": "Antal forks på GitHub-repositoriet" }, "githubIssues": { - "label": "EN TEXT TO REPLACE: GitHub Issues", - "description": "EN TEXT TO REPLACE: Number of issues on the GitHub repository" + "label": "GitHub-issues", + "description": "Antal issues på GitHub-repositoriet" }, "createdAt": { "label": "EN TEXT TO REPLACE: Created At", From 0296ac1956496f65a0c4fd7b6e7e0d7c290cc33e Mon Sep 17 00:00:00 2001 From: Lucas Date: Wed, 19 Aug 2026 04:25:28 +0200 Subject: [PATCH 21/25] chore(i18n): update Danish translations for various UI elements --- i18n/locales/da-DK.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index 134e3432a6..c4521faaf8 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -1540,8 +1540,8 @@ "description": "Antal issues på GitHub-repositoriet" }, "createdAt": { - "label": "EN TEXT TO REPLACE: Created At", - "description": "EN TEXT TO REPLACE: When the package was created" + "label": "Oprettet", + "description": "Hvornår pakken blev oprettet" } }, "values": { @@ -1602,9 +1602,9 @@ "change_ratio": "Ændringsforhold", "char_edits": "Tegnedits", "diff_distance": "Diff afstand", - "diff_truncated": "EN TEXT TO REPLACE: Diff truncated for performance. Showing the first changed lines only.", - "large_diff_mode": "EN TEXT TO REPLACE: Large file diff shown with inline edit merging disabled for performance.", - "large_diff_options_disabled": "EN TEXT TO REPLACE: Large file mode disables inline edit merging for performance.", + "diff_truncated": "Diffen er afkortet af hensyn til ydeevnen. Kun de første ændrede linjer vises.", + "large_diff_mode": "Diffen for den store fil vises med fletning af ændrede linjer deaktiveret af hensyn til ydeevnen.", + "large_diff_options_disabled": "Tilstanden for store filer deaktiverer fletning af ændrede linjer af hensyn til ydeevnen.", "loading_diff": "Indlæser diff...", "loading_diff_error": "Kunne ikke indlæse diff", "merge_modified_lines": "Flet ændrede linjer", @@ -1867,15 +1867,15 @@ }, "alt_logo_kawaii": "En sød, rund og farverig version af npmx-logoet.", "changelog": { - "pre_release": "EN TEXT TO REPLACE: Pre-release", - "draft": "EN TEXT TO REPLACE: Draft", - "no_logs": "EN TEXT TO REPLACE: Sorry, this package does not publish changelogs or its changelog format is not supported.", + "pre_release": "Forhåndsudgivelse", + "draft": "Udkast", + "no_logs": "Beklager, denne pakke udgiver ikke en ændringslog, eller også understøttes formatet ikke.", "error": { - "p1": "EN TEXT TO REPLACE: Sorry, the changelog for {package} couldn't be loaded", - "p2": "EN TEXT TO REPLACE: Please try again later or {viewon}" + "p1": "Beklager, ændringsloggen for {package} kunne ikke indlæses", + "p2": "Prøv igen senere, eller {viewon}" }, - "rate_limit_ungh": "EN TEXT TO REPLACE: Sorry, Github's rate limit has been hit, try again in a moment", - "version_unavailable": "EN TEXT TO REPLACE: The requested version is not available.", - "copy_as_markdown": "EN TEXT TO REPLACE: Copy changelog as Markdown" + "rate_limit_ungh": "Beklager, GitHubs grænse for forespørgsler er nået. Prøv igen om et øjeblik.", + "version_unavailable": "Den ønskede version er ikke tilgængelig.", + "copy_as_markdown": "Kopiér ændringslog som Markdown" } } From 978a8efde063b7929fd557a31c341b823047b050 Mon Sep 17 00:00:00 2001 From: Lucas Date: Wed, 19 Aug 2026 04:37:09 +0200 Subject: [PATCH 22/25] chore(i18n): correct Danish translations for various UI elements --- i18n/locales/da-DK.json | 62 ++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index c4521faaf8..a8d99f5d01 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -36,7 +36,7 @@ "ctrl_key": "Ctrl", "command_palette": "Åbn kommandopaletten", "command_palette_description": "Brug kommandopaletten til at hoppe mellem sider, pakkevisninger, indstillinger og eksterne links uden at forlade tastaturet. På macOS skal du trykke på ⌘K. På Windows og Linux skal du trykke på {ctrlKey}+K.", - "focus_search": "Fokusér søgning", + "focus_search": "Fokuser søgning", "show_kbd_hints": "Fremhæv tastaturgenveje", "settings": "Åbn indstillinger", "compare": "Sammenlign", @@ -167,10 +167,10 @@ "stats": "Statistik" }, "package_actions": { - "copy_run": "Kopiér kør-kommando" + "copy_run": "Kopier kør-kommando" }, "code": { - "copy_file": "Kopiér filindhold" + "copy_file": "Kopier filindhold" }, "diff": { "merge_modified_lines": "Flet ændrede linjer", @@ -292,8 +292,8 @@ "include_types_description": "Tilføj {'@'}types-pakken til installationskommandoer for utypede pakker", "hide_platform_packages": "Skjul platform-specifikke pakker i søgningen", "hide_platform_packages_description": "Skjul native binære pakker som {'@'}esbuild/linux-x64 fra resultaterne", - "enable_graph_pulse_loop": "Aktivér looping af pulseffekt på mini-graf", - "enable_graph_pulse_loop_description": "Aktivér en kontinuerlig pulserende animation på den ugentlige download-graf. Denne animation kan være distraherende for nogle brugere.", + "enable_graph_pulse_loop": "Aktiver looping af pulseffekt på mini-graf", + "enable_graph_pulse_loop_description": "Aktiver en kontinuerlig pulserende animation på den ugentlige download-graf. Denne animation kan være distraherende for nogle brugere.", "theme": "Tema", "theme_light": "Lys", "theme_dark": "Mørk", @@ -327,15 +327,15 @@ "standard": "Standard", "muted": "Dæmpet" }, - "keyboard_shortcuts_enabled": "Aktivér tastaturgenveje", + "keyboard_shortcuts_enabled": "Aktiver tastaturgenveje", "keyboard_shortcuts_enabled_description": "Tastaturgenveje kan deaktiveres, hvis de konflikter med andre browser- eller systemgenveje", - "enable_code_ligatures": "Aktivér ligaturer i kode", + "enable_code_ligatures": "Aktiver ligaturer i kode", "enable_changelog_autoscroll": "Rul automatisk til den ønskede version", "enable_changelog_autoscroll_description": "Rul automatisk til eller tæt på den ønskede version i pakkens ændringslog" }, "i18n": { "missing_keys": "{count} manglende oversættelse | {count} manglende oversættelser", - "copy_keys": "Kopiér nøgler", + "copy_keys": "Kopier nøgler", "show_more_keys": "Vis {count} flere...", "contribute_hint": "Hjælp med at forbedre denne oversættelse ved at tilføje de manglende nøgler.", "edit_on_github": "Rediger på GitHub", @@ -357,7 +357,7 @@ "close": "Luk", "or": "eller", "retry": "Prøv igen", - "copy": "Kopiér", + "copy": "Kopier", "copied": "Kopieret!", "skip_link": "Spring til hovedindhold", "warnings": "Advarsler:", @@ -419,8 +419,8 @@ "no_description": "Ingen beskrivelse", "verified_provenance": "Verificeret oprindelse", "navigation": "Pakke", - "copy_name": "Kopiér pakkenavn", - "copy_version": "Kopiér pakkeversion", + "copy_name": "Kopier pakkenavn", + "copy_version": "Kopier pakkeversion", "deprecation": { "package": "Denne pakke er blevet forældet.", "version": "Denne version er blevet forældet.", @@ -431,7 +431,7 @@ "title_deps": "Betydelig stigning i afhængigheder siden v{version}", "title_both": "Betydelig stigning i både størrelse og afhængigheder siden v{version}", "size": "Installationsstørrelse øget med {percent} ({size} større)", - "deps": "{count} flere afhængigheder" + "deps": "{count} yderligere afhængighed | {count} yderligere afhængigheder" }, "size_decrease": { "title_size": "Pakkestørrelsen er faldet siden v{version}!", @@ -445,8 +445,8 @@ "example": "Eksempel:", "native": "Dette kan erstattes med {replacement}, tilgængelig siden Node {nodeVersion}.", "native_no_version": "Denne pakke kan erstattes med {replacement}.", - "simple": "{community} har markeret denne pakke som overflødig, med rådet: {replacement}.", - "documented": "{community} har markeret denne pakke som havende mere effektive alternativer.", + "simple": "Denne pakke er markeret som overflødig med anbefalingen: {replacement}.", + "documented": "Denne pakke er markeret, fordi der findes mere effektive alternativer.", "none": "Denne pakke er blevet markeret som ikke længere nødvendig, og dens funktionalitet er sandsynligvis tilgængelig nativt i alle motorer.", "learn_more": "Lær mere", "learn_more_above": "Lær mere ovenfor.", @@ -523,20 +523,20 @@ "get_started": { "title": "Kom godt i gang", "pm_label": "Pakkehåndtering", - "copy_command": "Kopiér installationskommando", - "copy_dev_command": "Kopiér udviklingsinstallationskommando", + "copy_command": "Kopier installationskommando", + "copy_dev_command": "Kopier udviklingsinstallationskommando", "dev_dependency_hint": "Normalt installeret som en udviklingsafhængighed", "view_types": "Se {package}" }, "create": { "title": "Opret nyt projekt", - "copy_command": "Kopiér oprettelseskommando", + "copy_command": "Kopier oprettelseskommando", "view": "{packageName} har samme vedligeholder. Klik for flere detaljer." }, "run": { "title": "Kør", "locally": "Kør lokalt", - "copy_command": "Kopiér kommandoen for at køre lokalt" + "copy_command": "Kopier kommandoen for at køre lokalt" }, "command": { "copied_install": "Kommandoen til installation er kopieret", @@ -557,7 +557,7 @@ "warning": "Advarsel", "caution": "Forsigtighed" }, - "copy_as_markdown": "Kopiér README som Markdown", + "copy_as_markdown": "Kopier README som Markdown", "error_loading": "Kunne ikke indlæse README-oplysninger" }, "provenance_section": { @@ -734,7 +734,7 @@ "date_range": "{start} til {end}", "date_range_multiline": "{start}\ntil {end}", "download_file": "Hent {fileType}", - "copy_file": "Kopiér {fileType}", + "copy_file": "Kopier {fileType}", "toggle_annotator": "Skift annotator", "toggle_stack_mode": "Skift staktilstand", "open_options": "Åbn indstillinger", @@ -767,7 +767,7 @@ "trend_strong": "stærk", "trend_weak": "svag", "trend_undefined": "undefined (utilstrækkelige data)", - "button_label": "Kopiér alternativ tekst", + "button_label": "Kopier alternativ tekst", "watermark": "Nederst står der et vandmærke \"./npmx en hurtig, moderne browser til npm-registret\"", "watermark_top": "Øverst står der et vandmærke \"./npmx en hurtig, moderne browser til npm-registret\"", "analysis": "{package_name} starter ved {start_value} og slutter ved {end_value}, hvilket viser en {trend} trend med en hældning på {downloads_slope} downloads pr. tidsinterval.", @@ -781,7 +781,7 @@ }, "embedding": { "chart": "Indlejr dette diagram", - "copy_url": "Kopiér denne URL for at indlejre diagrammet på dit websted", + "copy_url": "Kopier denne URL for at indlejre diagrammet på dit websted", "preview": "Forhåndsvisning", "tip": "Hvis startDate og endDate ikke er angivet i URL'en, viser grafen som standard de seneste 12 måneder." } @@ -905,7 +905,7 @@ "connected_hint": "Du kan nu administrere pakker og organisationer fra web UI.", "disconnect": "Afbryd forbindelse", "run_hint": "Kør connectoren på din maskine for at aktivere admin-funktioner.", - "copy_command": "Kopiér kommando", + "copy_command": "Kopier kommando", "copied": "Kopieret", "paste_token": "Indsæt derefter tokenet nedenfor for at oprette forbindelse:", "token_label": "Token", @@ -1078,8 +1078,8 @@ "lines": "{count} linje | {count} linjer", "toggle_tree": "Skift filtræ", "close_tree": "Luk filtræ", - "copy_content": "Kopiér filindhold", - "copy_link": "Kopiér link", + "copy_content": "Kopier filindhold", + "copy_link": "Kopier link", "view_raw": "Se rå fil", "toggle_container": "Skift bredden på kodevisningen", "open_raw_file": "Åbn rå fil", @@ -1169,7 +1169,7 @@ "view_selected": "Vis valgte", "clear_selected_label": "Ryd valgte", "sort": { - "label": "Sortér pakker", + "label": "Sorter pakker", "toggle_direction": "Skift sorteringsretning", "ascending": "Stigende", "descending": "Faldende", @@ -1284,7 +1284,7 @@ }, "community": { "title": "Deltag i fællesskabet", - "description": "Chat, stil spørgsmål, og del idéer.", + "description": "Chat, stil spørgsmål, og del ideer.", "cta": "Deltag i Discord" }, "builders": { @@ -1381,7 +1381,7 @@ "create_account": "Opret en ny konto", "connect_bluesky": "Forbind med Bluesky", "what_is_atmosphere": "Hvad er en Atmosphere-konto?", - "atmosphere_explanation": "{npmx} bruger {atproto} til at drive mange af sine sociale funktioner, hvilket giver brugerne mulighed for at eje deres data og bruge én konto til alle kompatible applikationer. Når du opretter en konto, kan du bruge andre apps som {bluesky} og {tangled} med den samme konto.", + "atmosphere_explanation": "{npmx} bruger {atproto} til at drive mange af sine sociale funktioner, hvilket giver brugerne mulighed for at eje deres data og bruge en konto til alle kompatible applikationer. Når du opretter en konto, kan du bruge andre apps som {bluesky} og {tangled} med den samme konto.", "default_input_error": "Indtast venligst et gyldigt brugernavn, DID eller en fuld PDS-URL", "profile": "Profil" } @@ -1417,7 +1417,7 @@ "section_packages": "Pakker", "section_facets": "Facetter", "section_comparison": "Sammenligning", - "copy_as_markdown": "Kopiér tabel", + "copy_as_markdown": "Kopier tabel", "loading": "Indlæser pakkeoplysninger...", "error": "Kunne ikke indlæse pakkeoplysninger. Prøv igen.", "empty_title": "Vælg pakker at sammenligne", @@ -1816,7 +1816,7 @@ "button_close_aria_label": "Luk handlingslinje" }, "logo_menu": { - "copy_svg": "Kopiér logo som SVG", + "copy_svg": "Kopier logo som SVG", "copied": "Kopieret!", "browse_brand": "Gennemse brandkit" }, @@ -1876,6 +1876,6 @@ }, "rate_limit_ungh": "Beklager, GitHubs grænse for forespørgsler er nået. Prøv igen om et øjeblik.", "version_unavailable": "Den ønskede version er ikke tilgængelig.", - "copy_as_markdown": "Kopiér ændringslog som Markdown" + "copy_as_markdown": "Kopier ændringslog som Markdown" } } From c2f9bbacb37e194516c420a360bb9e335053a3f7 Mon Sep 17 00:00:00 2001 From: Lucas Date: Wed, 19 Aug 2026 05:52:07 +0200 Subject: [PATCH 23/25] chore(i18n): update Danish translations for various terms and phrases --- i18n/locales/da-DK.json | 128 ++++++++++++++++++++-------------------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index a8d99f5d01..b8d9655e33 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -21,7 +21,7 @@ "chat": "chat", "builders_chat": "byggere", "keyboard_shortcuts": "tastaturgenveje", - "brand": "mærke", + "brand": "brand", "resources": "Ressourcer", "features": "Funktioner", "other": "Andet", @@ -69,8 +69,8 @@ "meta_description_packages": "Søg npm-pakker", "not_taken": "{name} er ikke taget", "claim_prompt": "Gør krav på dette pakkenavn på npm", - "claim_button": "Gør krav på \"{name}\"", - "want_to_claim": "Vil du kræve dette pakkenavn?", + "claim_button": "Reserver \"{name}\"", + "want_to_claim": "Vil du reservere dette pakkenavn?", "start_typing": "Begynd at skrive for at søge efter pakker", "algolia_disclaimer": "Drevet af Algolia", "exact_match": "præcis", @@ -174,7 +174,7 @@ }, "diff": { "merge_modified_lines": "Flet ændrede linjer", - "word_wrap": "Linjebrud" + "word_wrap": "Tekstombrydning" }, "version": { "label": "{version}" @@ -279,7 +279,7 @@ }, "data_source": { "label": "Datakilde", - "description": "Vælg, hvor npmx henter søgedata fra. Individuelle pakkesider bruger altid npm-registeret direkte.", + "description": "Vælg, hvor npmx henter søgedata fra. Individuelle pakkesider bruger altid npm-registret direkte.", "npm": "npm Registry", "npm_description": "Henter søgning, organisation og brugeroplysninger direkte fra det officielle npm-register. Altid korrekt, men kan være langsommere.", "algolia": "Algolia", @@ -410,7 +410,7 @@ "invite": { "message": "Det ser ikke ud til, at de bruger npmx endnu. Vil du fortælle dem om det?", "share_button": "Del på Bluesky", - "compose_text": "Hej {'@'}{handle}! Har du tjekket npmx.dev endnu? Det er en browser til npm-registret, der er hurtig, moderne og open-source.\nhttps://npmx.dev" + "compose_text": "Hej {'@'}{handle}! Har du tjekket npmx.dev endnu? Det er en browser til npm-registret, der er hurtig, moderne og open source.\nhttps://npmx.dev" } }, "package": { @@ -448,8 +448,8 @@ "simple": "Denne pakke er markeret som overflødig med anbefalingen: {replacement}.", "documented": "Denne pakke er markeret, fordi der findes mere effektive alternativer.", "none": "Denne pakke er blevet markeret som ikke længere nødvendig, og dens funktionalitet er sandsynligvis tilgængelig nativt i alle motorer.", - "learn_more": "Lær mere", - "learn_more_above": "Lær mere ovenfor.", + "learn_more": "Læs mere", + "learn_more_above": "Læs mere ovenfor.", "consider_no_dep": "+ Overvej ingen afhængighed?" }, "stats": { @@ -463,19 +463,19 @@ "inspect_dependency_tree": "Undersøg afhængighedstræ", "size_tooltip": { "unpacked": "{size} udpakket størrelse (denne pakke)", - "total": "{size} total udpakket størrelse (inklusive {count} afhængighed for linux-x64) | {size} total udpakket størrelse (inklusive alle {count} afhængigheder for linux-x64)" + "total": "{size} samlet udpakket størrelse (inklusive {count} afhængighed for linux-x64) | {size} samlet udpakket størrelse (inklusive alle {count} afhængigheder for linux-x64)" }, "main_information": "Hovedinformation", - "trends": "Tendenser", + "trends": "Trends", "version_distribution": "Versionsfordeling" }, "skills": { - "title": "Agent Færdigheder", + "title": "Agentfærdigheder", "skills_available": "{count} færdighed tilgængelig | {count} færdigheder tilgængelige", "compatible_with": "Kompatibel med {tool}", "install": "Installer", "installation_method": "Installationsmetode", - "learn_more": "Lær mere", + "learn_more": "Læs mere", "available_skills": "Tilgængelige færdigheder", "click_to_expand": "Klik for at udvide", "no_description": "Ingen beskrivelse", @@ -485,7 +485,7 @@ "assets": "{count} asset | {count} assets" }, "view_source": "Se kilde", - "skills_cli": "færdigheder CLI" + "skills_cli": "færdigheds-CLI" }, "links": { "main": "vigtigste", @@ -514,7 +514,7 @@ "default_not_available": "Dokumentation er ikke tilgængelig for denne version.", "not_available": "Dokumentation ikke tilgængelig", "not_available_detail": "Vi kunne ikke generere dokumentation for denne version.", - "page_title": "API Dokumentation - npmx", + "page_title": "API-dokumentation - npmx", "page_title_name": "{name} dokumentation - npmx", "page_title_version": "{name} dokumentation - npmx", "og_title": "{name} - Dokumentation", @@ -607,13 +607,13 @@ "deprecated_title": "{version} (udgået)", "view_all": "Se {count} version | Se alle {count} versioner", "view_all_versions": "Se alle versioner", - "distribution_title": "Semver Gruppe", + "distribution_title": "Semvergruppe", "distribution_range_date_same_year": "fra {from} til {to}, {endYear}", "distribution_range_date_multiple_years": "fra {from}, {startYear} til {to}, {endYear}", "grouping_major": "Major", "grouping_minor": "Minor", "grouping_versions_title": "Versioner", - "grouping_versions_about": "Om version gruppering", + "grouping_versions_about": "Om versionsgruppering", "grouping_versions_all": "Alle", "grouping_versions_only_recent": "Kun nyere", "grouping_usage_title": "Brug", @@ -621,11 +621,11 @@ "grouping_usage_all": "Alle", "grouping_usage_most_used": "Mest brugt", "recent_versions_only_tooltip": "Vis kun versioner udgivet inden for det sidste år.", - "show_low_usage_tooltip": "Inkluder version grupper med mindre end 1% af de samlede downloads.", + "show_low_usage_tooltip": "Inkluder versionsgrupper med mindre end 1% af de samlede downloads.", "y_axis_label": "Downloads", "filter_placeholder": "Filtrer efter semver (f.eks. ^3.0.0)", - "filter_invalid": "Ugyldig semver rækkevidde", - "filter_help": "Hjælp til semver rækkevidde filter", + "filter_invalid": "Ugyldig semverrækkevidde", + "filter_help": "Hjælp til filter for semverrækkevidde", "filter_tooltip": "Filtrer versioner ved hjælp af en {link}. For eksempel viser ^3.0.0 alle 3.x versioner.", "filter_tooltip_link": "semver range", "license_change_help": "Detaljer om licensændring", @@ -633,7 +633,7 @@ "license_change_record": "Pakkens licens er ændret fra \"{from}\" til \"{to}\".", "no_matches": "Ingen versioner matcher denne rækkevidde", "copy_alt": { - "per_version_analysis": "{version} version blev downloadet {downloads} gange", + "per_version_analysis": "Version {version} blev downloadet {downloads} gange", "general_description": "Søjlediagram, der viser downloads pr. version for {versions_count} {semver_grouping_mode} versioner af {package_name}-pakken, {date_range_label} fra {first_version}-versionen til {last_version}-versionen. Den mest downloadede version er {max_downloaded_version} med {max_version_downloads} downloads. {per_version_analysis}. {watermark}." }, "page_title": "Versionshistorik", @@ -682,8 +682,8 @@ "show_all": "vis {count} afh | vis alle {count} afh", "optional": "valgfri", "view_vulnerabilities": "Se sårbarheder", - "outdated_major": "{count} major version bagud (seneste: {latest}) | {count} major versioner bagud (seneste: {latest})", - "outdated_minor": "{count} minor version bagud (seneste: {latest}) | {count} minor versioner bagud (seneste: {latest})", + "outdated_major": "{count} majorversion bagud (seneste: {latest}) | {count} majorversioner bagud (seneste: {latest})", + "outdated_minor": "{count} minorversion bagud (seneste: {latest}) | {count} minorversioner bagud (seneste: {latest})", "outdated_patch": "Patch opdatering tilgængelig (seneste: {latest})", "has_replacement": "Denne afhængighed har foreslåede erstatninger", "vulnerabilities_count": "{count} sårbarhed | {count} sårbarheder" @@ -773,8 +773,8 @@ "analysis": "{package_name} starter ved {start_value} og slutter ved {end_value}, hvilket viser en {trend} trend med en hældning på {downloads_slope} downloads pr. tidsinterval.", "estimation": "Den endelige værdi er et skøn baseret på delvise data for den aktuelle periode.", "estimations": "De endelige værdier er skøn baseret på delvise data for den aktuelle periode.", - "compare": "Sammenligning af pakkedownloads linjediagram for: {packages}.", - "single_package": "Downloads linjediagram for {package} pakken.", + "compare": "Sammenlignende linjediagram over pakkedownloads for: {packages}.", + "single_package": "Linjediagram over downloads for pakken {package}.", "general_description": "Y-aksen repræsenterer antallet af downloads. X-aksen repræsenterer datointervallet, fra {start_date} til {end_date}, med en {granularity} tidsperiode.{estimation_notice} {packages_analysis}. {watermark}.", "facet_bar_general_description": "Horisontalt søjlediagram for: {packages}, der sammenligner {facet} ({description}). {facet_analysis} {watermark}.", "facet_bar_analysis": "{package_name} har en værdi på {value}." @@ -796,7 +796,7 @@ "install_scripts": { "title": "Installationsscripts", "script_label": "(script)", - "npx_packages": "{count} npx pakke | {count} npx pakker", + "npx_packages": "{count} npx-pakke | {count} npx-pakker", "currently": "aktuelt {version}" }, "playgrounds": { @@ -804,9 +804,9 @@ "choose": "vælg legeplads" }, "metrics": { - "esm": "ES Modules understøttet", + "esm": "ES-moduler understøttet", "cjs": "CommonJS understøttet", - "no_esm": "ES Modules ikke understøttet", + "no_esm": "ES-moduler understøttes ikke", "wasm": "Har WebAssembly", "types_label": "Typer", "types_included": "Typer inkluderet", @@ -819,7 +819,7 @@ }, "vulnerabilities": { "tree_found": "{vulns} sårbarhed i {packages}/{total} pakker | {vulns} sårbarheder i {packages}/{total} pakker", - "show_all_packages": "vis {count} berørte pakke | vis alle {count} berørte pakker", + "show_all_packages": "vis {count} berørt pakke | vis alle {count} berørte pakker", "path": "sti", "more": "+{count} mere", "packages_failed": "{count} pakke kunne ikke kontrolleres | {count} pakker kunne ikke kontrolleres", @@ -884,7 +884,7 @@ }, "download": { "button": "Download", - "tarball": "Download Tarball som .tar.gz" + "tarball": "Download tarball som .tar.gz" } }, "leaderboard": { @@ -900,9 +900,9 @@ "connector": { "modal": { "title": "Lokal Connector", - "connected": "Tilsluttet", - "connected_as_user": "Tilsluttet som ~{user}", - "connected_hint": "Du kan nu administrere pakker og organisationer fra web UI.", + "connected": "Forbundet", + "connected_as_user": "Forbundet som ~{user}", + "connected_hint": "Du kan nu administrere pakker og organisationer fra web-UI.", "disconnect": "Afbryd forbindelse", "run_hint": "Kør connectoren på din maskine for at aktivere admin-funktioner.", "copy_command": "Kopier kommando", @@ -914,8 +914,8 @@ "port_label": "Port", "warning": "ADVARSEL", "warning_text": "Dette giver npmx adgang til din npm CLI. Opret kun forbindelse til sider, du stoler på.", - "connect": "Opret forbindelse", - "connecting": "Opretter forbindelse...", + "connect": "Forbind", + "connecting": "Forbinder...", "auto_open_url": "Åbn godkendelsesside automatisk" } }, @@ -965,7 +965,7 @@ "add_button": "tilføj", "cancel_add_user": "Annuller tilføjelse af bruger", "add_member": "+ Tilføj medlem", - "team_name_label": "Team navn", + "team_name_label": "Teamnavn", "team_name_placeholder": "team-navn...", "create_button": "opret", "no_match": "Ingen teams matcher \"{query}\"", @@ -1027,7 +1027,7 @@ "packages_title": "Pakker", "no_packages": "Ingen offentlige pakker fundet for", "no_packages_hint": "Denne bruger findes muligvis ikke eller har ingen offentlige pakker.", - "failed_to_load": "Kunne ikke indlæse bruger pakker", + "failed_to_load": "Kunne ikke indlæse brugerpakker", "no_match": "Ingen pakker matcher \"{query}\"", "filter_placeholder": "Filtrer {count} pakke... | Filtrer {count} pakker..." }, @@ -1048,8 +1048,8 @@ }, "claim": { "modal": { - "title": "Reserver Pakke Navn", - "success": "Pakke reserveret!", + "title": "Reserver pakkenavn", + "success": "Pakken er reserveret!", "success_detail": "{name}{'@'}0.0.0 er blevet publiceret på npm.", "success_hint": "Du kan nu publicere nye versioner af denne pakke ved hjælp af npm publish.", "view_package": "Se pakke", @@ -1060,10 +1060,10 @@ "similar_warning": "Lignende pakker findes - npm kan afvise dette navn:", "related": "Relaterede pakker:", "scope_warning_title": "Overvej at bruge en scoped pakke i stedet", - "scope_warning_text": "Unscoped pakkenavne er en delt ressource. Kræv kun et navn, hvis du har til hensigt at publicere og vedligeholde en pakke. For personlige eller organisatoriske projekter, brug et scoped navn som {'@'}{username}/{name}.", - "connect_required": "Forbind til den lokale connector for at kræve dette pakkenavn.", + "scope_warning_text": "Unscoped pakkenavne er en delt ressource. Reserver kun et navn, hvis du har til hensigt at publicere og vedligeholde en pakke. For personlige eller organisatoriske projekter, brug et scoped navn som {'@'}{username}/{name}.", + "connect_required": "Forbind til den lokale connector for at reservere dette pakkenavn.", "connect_button": "Forbind til Connector", - "publish_hint": "Dette vil publicere en minimal placeholder-pakke.", + "publish_hint": "Dette vil publicere en minimal pladsholderpakke.", "preview_json": "Forhåndsvis package.json", "claim_button": "Reserver pakkenavn", "publishing": "Publicerer...", @@ -1092,7 +1092,7 @@ "go_to_package": "Gå til pakke", "loading_tree": "Indlæser filtræ...", "failed_to_load_tree": "Kunne ikke indlæse filer for denne pakkeversion", - "back_to_package": "Tilbage til pakke", + "back_to_package": "Tilbage til pakken", "table": { "name": "Navn", "size": "Størrelse" @@ -1280,7 +1280,7 @@ "contribute": { "title": "Bidrag", "description": "Hjælp os med at bygge den npm-oplevelse, vi alle ønsker.", - "cta": "Se på GitHub" + "cta": "Vis på GitHub" }, "community": { "title": "Deltag i fællesskabet", @@ -1305,7 +1305,7 @@ "meta_description": "Støt npmx, og hjælp os med at sætte fart på arbejdet i økosystemet inden for sikkerhed, tillid, optimering og forskning.", "intro": "Støt npmx, og hjælp os med at udvide vores arbejde i økosystemet for udviklere og vedligeholdere.", "what_we_do": { - "title": "Det laver vi", + "title": "Hvad vi gør", "description": "Vi bygger et økosystem, der løser problemer inden for sikkerhed, tillid, optimering og forskning for de værktøjer, vi bruger i den daglige udvikling — hurtigt, nemt og i høj kvalitet. Dette projekt er bygget af udviklere til udviklere. Som skabere af udbredte biblioteker forstår vi teams behov og undersøger aktivt, hvad vedligeholdere og projekter har mest brug for." }, "what_support_means": { @@ -1404,7 +1404,7 @@ "empty": "Ingen organisationer fundet", "view_all": "Se alle" }, - "pr": "Åbn GitHub pull request #{prNumber}" + "pr": "Åbn pull request #{prNumber} på GitHub" }, "compare": { "packages": { @@ -1412,7 +1412,7 @@ "tagline": "Sammenlign npm-pakker side om side for at hjælpe dig med at vælge den rigtige.", "meta_title": "Sammenlign {packages} - npmx", "meta_title_empty": "Sammenlign pakker - npmx", - "meta_description": "Side-by-side sammenligning af {packages}", + "meta_description": "Sammenligning side om side af {packages}", "meta_description_empty": "Sammenlign npm-pakker side om side", "section_packages": "Pakker", "section_facets": "Facetter", @@ -1421,7 +1421,7 @@ "loading": "Indlæser pakkeoplysninger...", "error": "Kunne ikke indlæse pakkeoplysninger. Prøv igen.", "empty_title": "Vælg pakker at sammenligne", - "empty_description": "Søg og tilføj mindst 2 pakker ovenfor for at se en side-by-side sammenligning af deres målinger.", + "empty_description": "Søg og tilføj mindst 2 pakker ovenfor for at se en sammenligning side om side af deres målinger.", "table_view": "Tabel", "charts_view": "Diagrammer", "no_chartable_data": "Ingen data tilgængelige for de valgte facetter.", @@ -1472,24 +1472,24 @@ "performance": "Ydeevne", "health": "Sundhed", "compatibility": "Kompatibilitet", - "security": "Sikkerhed & Overholdelse" + "security": "Sikkerhed og overholdelse" }, "items": { "packageSize": { - "label": "Pakke størrelse", + "label": "Pakkestørrelse", "description": "Størrelsen af selve pakken (udpakket)" }, "installSize": { "label": "Installationsstørrelse", - "description": "Total installationsstørrelse inklusive alle afhængigheder" + "description": "Samlet installationsstørrelse inklusive alle afhængigheder" }, "dependencies": { "label": "Direkte afhængigheder", "description": "Antal direkte afhængigheder" }, "totalDependencies": { - "label": "Totale afhængigheder", - "description": "Totalt antal afhængigheder inklusive transitive" + "label": "Samlede afhængigheder", + "description": "Samlet antal afhængigheder inklusive transitive" }, "downloads": { "label": "Downloads/uge", @@ -1509,19 +1509,19 @@ }, "engines": { "label": "Engines", - "description": "Node.js version krav" + "description": "Node.js-versionskrav" }, "types": { "label": "Typer", - "description": "TypeScript type definitioner" + "description": "TypeScript-typedefinitioner" }, "moduleFormat": { - "label": "Module Format", + "label": "Modulformat", "description": "ESM/CJS-understøttelse" }, "license": { "label": "Licens", - "description": "Pakke licens" + "description": "Pakkelicens" }, "vulnerabilities": { "label": "Sårbarheder", @@ -1556,7 +1556,7 @@ "up_to_you": "Op til dig!" }, "trends": { - "title": "Sammenlign tendenser" + "title": "Sammenlign trends" } }, "file_changes": "Filændringer", @@ -1601,7 +1601,7 @@ "filter_files_label": "Filtrer filer efter ændringstype", "change_ratio": "Ændringsforhold", "char_edits": "Tegnedits", - "diff_distance": "Diff afstand", + "diff_distance": "Diffafstand", "diff_truncated": "Diffen er afkortet af hensyn til ydeevnen. Kun de første ændrede linjer vises.", "large_diff_mode": "Diffen for den store fil vises med fletning af ændrede linjer deaktiveret af hensyn til ydeevnen.", "large_diff_options_disabled": "Tilstanden for store filer deaktiverer fletning af ændrede linjer af hensyn til ydeevnen.", @@ -1612,7 +1612,7 @@ "options": "Indstillinger", "view_file": "Se fil", "view_in_code_browser": "Se i kodebrowser", - "word_wrap": "Ordombrydning" + "word_wrap": "Tekstombrydning" }, "pds": { "title": "npmx.social", @@ -1715,7 +1715,7 @@ "contact": { "title": "Kontakt os", "p1": "For spørgsmål eller bekymringer om denne privatlivspolitik, kan du kontakte os ved at åbne en sag på vores {link}.", - "link": "GitHub repository" + "link": "GitHub-repository" }, "changes": { "title": "Ændringer i denne politik", @@ -1730,7 +1730,7 @@ "title": "Vores tilgang", "p1": "Vi forsøger at følge Web Content Accessibility Guidelines (WCAG) 2.2 og bruger dem som reference, når vi bygger funktioner. Vi hævder ikke fuld overensstemmelse med nogen WCAG-niveau — tilgængelighed er en kontinuerlig proces, og der er altid mere arbejde at gøre.", "p2": "Dette websted er et {about}. Tilgængelighedsforbedringer foretages gradvist som en del af vores regelmæssige udvikling.", - "about_link": "open-source, community-drevet projekt" + "about_link": "open source-projekt drevet af fællesskabet" }, "measures": { "title": "Hvad vi gør", @@ -1749,7 +1749,7 @@ "contact": { "title": "Feedback", "p1": "Hvis du støder på en tilgængelighedsbarriere på {app}, bedes du give os besked ved at åbne en sag på vores {link}. Vi tager disse rapporter alvorligt og vil gøre vores bedste for at løse dem.", - "link": "GitHub repository" + "link": "GitHub-repository" } }, "translation_status": { @@ -1758,7 +1758,7 @@ "welcome": "Hvis du er interesseret i at hjælpe os med at oversætte {npmx} til et af de sprog, der er angivet nedenfor, er du kommet til det rigtige sted! Denne automatisk opdaterende side viser altid alt indhold, der kunne bruge din hjælp lige nu.", "p1": "Vi bruger {lang} som standardsprog, med i alt {count}. Hvis du gerne vil hjælpe med at tilføje oversættelser, skal du finde sproget i {bylang} og udvide detaljerne.", "p1_lang": "Amerikansk engelsk (en-US)", - "p1_count": "0 beskeder | 1 besked |{count} beskeder", + "p1_count": "0 beskeder | 1 besked | {count} beskeder", "p2": "Før du går i gang, bedes du læse vores {guide} for at lære om vores oversættelsesproces og hvordan du kan deltage.", "guide": "lokaliseringsguide (i18n)", "by_locale": "Oversættelsesfremskridt efter lokalitet", @@ -1823,7 +1823,7 @@ "brand": { "title": "Brand", "heading": "brand", - "meta_description": "npmx brand retningslinjer, logoer, farver og typografi til brug i presse og medier.", + "meta_description": "npmx-brandretningslinjer, logoer, farver og typografi til brug i presse og medier.", "intro": "Ressourcer og retningslinjer til brug af npmx-brandet i dine projekter, artikler og medier.", "logos": { "title": "logoer", From d30515ca2f1ec3ccd28eab13636100d559096baa Mon Sep 17 00:00:00 2001 From: Lucas Date: Wed, 19 Aug 2026 06:08:18 +0200 Subject: [PATCH 24/25] chore(i18n): update Danish translations for clarity and consistency --- i18n/locales/da-DK.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index b8d9655e33..2584c262a0 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -167,7 +167,7 @@ "stats": "Statistik" }, "package_actions": { - "copy_run": "Kopier kør-kommando" + "copy_run": "Kopier kommandoen til at køre pakken" }, "code": { "copy_file": "Kopier filindhold" @@ -364,7 +364,7 @@ "go_back_home": "Gå tilbage til forsiden", "per_week": "/ uge", "per_week_short": "/u.", - "vanity_downloads_hint": "Vanity-nummer: ingen pakker vist | Vanity-nummer: for den viste pakke | Vanity-nummer: Summen af {count} viste pakker", + "vanity_downloads_hint": "Vanity-nummer: ingen pakker vist | Vanity-nummer: for den viste pakke | Vanity-nummer: summen af {count} viste pakker", "sort": { "name": "navn", "role": "rolle", @@ -715,8 +715,8 @@ }, "trends": { "chart_assistive_text": { - "keyboard_navigation_horizontal": "Brug venstre og højre piletaster til at cykle gennem datapunkter.", - "keyboard_navigation_vertical": "Brug op og ned piletaster til at cykle gennem datapunkter.", + "keyboard_navigation_horizontal": "Brug venstre og højre piletaster til at navigere mellem datapunkterne.", + "keyboard_navigation_vertical": "Brug op og ned piletaster til at navigere mellem datapunkterne.", "table_available": "En datatabel for dette diagram er tilgængelig nedenfor.", "table_caption": "Diagramdatatabel" }, @@ -740,7 +740,7 @@ "open_options": "Åbn indstillinger", "close_options": "Luk indstillinger", "legend_estimation": "Estimation", - "no_data": "Ingen data tilgængelig", + "no_data": "Ingen tilgængelige data", "y_axis_label": "{granularity} {facet}", "facet": "Facet", "title": "Trends", @@ -756,7 +756,7 @@ "prediction": "Forudsigelse", "known_anomalies": "Kendte anomalier", "known_anomalies_description": "Interpolerer over kendte downloadspidser forårsaget af bots eller CI-problemer.", - "known_anomalies_ranges": "Anomalierækker", + "known_anomalies_ranges": "Intervaller med anomalier", "known_anomalies_range": "Fra {start} til {end}", "known_anomalies_range_named": "{packageName}: fra {start} til {end}", "known_anomalies_none": "Ingen kendte anomalier for denne pakke. | Ingen kendte anomalier for disse pakker.", @@ -814,7 +814,7 @@ "no_types": "Ingen typer" }, "license": { - "view_spdx": "Se licens tekst på SPDX", + "view_spdx": "Se licenstekst på SPDX", "none": "Ingen" }, "vulnerabilities": { @@ -986,7 +986,7 @@ "list_label": "Organisationens medlemmer", "change_role_for": "Skift rolle for {name}", "remove_from_org": "Fjern {name} fra organisationen", - "view_team": "Se {team} team", + "view_team": "Se teamet {team}", "no_match": "Ingen medlemmer matcher dine filtre", "username_label": "Brugernavn", "username_placeholder": "brugernavn...", @@ -1019,7 +1019,7 @@ "user": { "combobox": { "add_to_org_hint": "(vil også blive tilføjet til organisationen)", - "press_enter_to_add": "Tryk Enter for at tilføje {'@'}{username}", + "press_enter_to_add": "Tryk på Enter for at tilføje {'@'}{username}", "default_placeholder": "brugernavn...", "suggestions_label": "Brugerforslag" }, @@ -1576,9 +1576,9 @@ "summary": "Oversigt", "deps_count": "{count} afhængighed | {count} afhængigheder", "dependencies": "Afhængigheder", - "dev_dependencies": "Dev Afhængigheder", + "dev_dependencies": "Udviklingsafhængigheder", "peer_dependencies": "Peer-afhængigheder", - "optional_dependencies": "Valgfrie Afhængigheder", + "optional_dependencies": "Valgfrie afhængigheder", "no_dependency_changes": "Ingen ændringer i afhængigheder", "file_filter_option": { "all": "Alle ({count})", @@ -1600,7 +1600,7 @@ "close_files_panel": "Luk filpanelet", "filter_files_label": "Filtrer filer efter ændringstype", "change_ratio": "Ændringsforhold", - "char_edits": "Tegnedits", + "char_edits": "Redigerede tegn", "diff_distance": "Diffafstand", "diff_truncated": "Diffen er afkortet af hensyn til ydeevnen. Kun de første ændrede linjer vises.", "large_diff_mode": "Diffen for den store fil vises med fletning af ændrede linjer deaktiveret af hensyn til ydeevnen.", @@ -1630,7 +1630,7 @@ "infrastructure_value": "Hostet på Hetzner", "privacy_label": "Privatliv:", "privacy_value": "Underlagt strenge EU-databeskyttelseslove", - "learn_more": "Lær hvordan npmx bruger Atmosphere" + "learn_more": "Læs om, hvordan npmx bruger Atmosphere" }, "community": { "title": "Hvem er her", @@ -1659,7 +1659,7 @@ "li2": "{li21}{separator} {li22}", "separator": ":", "cookie_vdpl": "__vdpl", - "cookie_vdpl_desc": "Denne cookie bruges af vores hostingudbyder (Vercel) til skævbeskyttelse. Den sikrer, at du henter ressourcer fra den korrekte deploymentsversion, hvis en ny opdatering frigives, mens du browser. Den sporer dig ikke.", + "cookie_vdpl_desc": "Denne cookie bruges af vores hostingudbyder (Vercel) til beskyttelse mod versionsforskydning. Den sikrer, at du henter ressourcer fra den korrekte udrulningsversion, hvis en ny opdatering frigives, mens du browser. Den sporer dig ikke.", "cookie_h3": "h3", "cookie_h3_desc": "Dette er vores sikre sessionscookie. Den gemmer OAuth-adgangstokenet, når du forbinder din Atmosphere-konto. Den er afgørende for at opretholde din autentificerede session." }, From f92a85ce1e1ea269c8f90b362b697ef30dcd2223 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2026 17:57:20 +0000 Subject: [PATCH 25/25] [autofix.ci] apply automated fixes --- i18n/locales/da-DK.json | 1 - 1 file changed, 1 deletion(-) diff --git a/i18n/locales/da-DK.json b/i18n/locales/da-DK.json index 2584c262a0..f4e1165077 100644 --- a/i18n/locales/da-DK.json +++ b/i18n/locales/da-DK.json @@ -499,7 +499,6 @@ "compare": "sammenlign", "timeline": "tidslinje", "stats": "statistik", - "compare_this_package": "sammenlign denne pakke", "changelog": "ændringslog" }, "likes": {