diff --git a/messages/nb-NO.json b/messages/nb-NO.json index f7f0d3ab..ad8eb643 100644 --- a/messages/nb-NO.json +++ b/messages/nb-NO.json @@ -96,7 +96,7 @@ "siteWgDescription": "Bruk hvilken som helst WireGuard-klient for å etablere en tunnel. Manuell NAT-oppsett kreves.", "siteWgDescriptionSaas": "Bruk hvilken som helst WireGuard-klient for å etablere en tunnel. Manuell NAT-oppsett er nødvendig. FUNGERER KUN PÅ SELVHOSTEDE NODER", "siteLocalDescription": "Kun lokale ressurser. Ingen tunnelering.", - "siteLocalDescriptionSaas": "Kun lokale ressurser. Ingen tunneling. FUNGERER KUN PÅ SELVHOSTEDE NODER", + "siteLocalDescriptionSaas": "Local resources only. No tunneling. Only available on remote nodes.", "siteSeeAll": "Se alle områder", "siteTunnelDescription": "Bestem hvordan du vil koble deg til ditt område", "siteNewtCredentials": "Newt påloggingsinformasjon", @@ -468,7 +468,10 @@ "createdAt": "Opprettet", "proxyErrorInvalidHeader": "Ugyldig verdi for egendefinert vertsoverskrift. Bruk domenenavnformat, eller lagre tomt for å fjerne den egendefinerte vertsoverskriften.", "proxyErrorTls": "Ugyldig TLS-servernavn. Bruk domenenavnformat, eller la stå tomt for å fjerne TLS-servernavnet.", - "proxyEnableSSL": "Aktiver SSL (https)", + "proxyEnableSSL": "Aktiver SSL", + "proxyEnableSSLDescription": "Aktiver SSL/TLS-kryptering for sikre HTTPS-tilkoblinger til dine mål.", + "target": "Target", + "configureTarget": "Konfigurer mål", "targetErrorFetch": "Kunne ikke hente mål", "targetErrorFetchDescription": "Det oppsto en feil under henting av mål", "siteErrorFetch": "Klarte ikke å hente ressurs", @@ -495,7 +498,7 @@ "targetTlsSettings": "Sikker tilkoblings-konfigurasjon", "targetTlsSettingsDescription": "Konfigurer SSL/TLS-innstillinger for ressursen din", "targetTlsSettingsAdvanced": "Avanserte TLS-innstillinger", - "targetTlsSni": "TLS Servernavn (SNI)", + "targetTlsSni": "TLS servernavn", "targetTlsSniDescription": "TLS-servernavnet som skal brukes for SNI. La stå tomt for å bruke standardverdien.", "targetTlsSubmit": "Lagre innstillinger", "targets": "Målkonfigurasjon", @@ -504,9 +507,21 @@ "targetStickySessionsDescription": "Behold tilkoblinger på samme bakend-mål gjennom hele sesjonen.", "methodSelect": "Velg metode", "targetSubmit": "Legg til mål", - "targetNoOne": "Ingen mål. Legg til et mål ved hjelp av skjemaet.", + "targetNoOne": "Denne ressursen har ikke noen mål. Legg til et mål for å konfigurere hvor du vil sende forespørsler til din backend.", "targetNoOneDescription": "Å legge til mer enn ett mål ovenfor vil aktivere lastbalansering.", "targetsSubmit": "Lagre mål", + "addTarget": "Legg til mål", + "targetErrorInvalidIp": "Ugyldig IP-adresse", + "targetErrorInvalidIpDescription": "Skriv inn en gyldig IP-adresse eller vertsnavn", + "targetErrorInvalidPort": "Ugyldig port", + "targetErrorInvalidPortDescription": "Vennligst skriv inn et gyldig portnummer", + "targetErrorNoSite": "Ingen nettsted valgt", + "targetErrorNoSiteDescription": "Velg et nettsted for målet", + "targetCreated": "Mål opprettet", + "targetCreatedDescription": "Målet har blitt opprettet", + "targetErrorCreate": "Kunne ikke opprette målet", + "targetErrorCreateDescription": "Det oppstod en feil under oppretting av målet", + "save": "Lagre", "proxyAdditional": "Ytterligere Proxy-innstillinger", "proxyAdditionalDescription": "Konfigurer hvordan ressursen din håndterer proxy-innstillinger", "proxyCustomHeader": "Tilpasset verts-header", @@ -715,6 +730,7 @@ "pangolinServerAdmin": "Server Admin - Pangolin", "licenseTierProfessional": "Profesjonell lisens", "licenseTierEnterprise": "Bedriftslisens", + "licenseTierPersonal": "Personal License", "licensed": "Lisensiert", "yes": "Ja", "no": "Nei", @@ -749,7 +765,7 @@ "idpDisplayName": "Et visningsnavn for denne identitetsleverandøren", "idpAutoProvisionUsers": "Automatisk brukerklargjøring", "idpAutoProvisionUsersDescription": "Når aktivert, opprettes brukere automatisk i systemet ved første innlogging, med mulighet til å tilordne brukere til roller og organisasjoner.", - "licenseBadge": "Profesjonell", + "licenseBadge": "EE", "idpType": "Leverandørtype", "idpTypeDescription": "Velg typen identitetsleverandør du ønsker å konfigurere", "idpOidcConfigure": "OAuth2/OIDC-konfigurasjon", @@ -1138,7 +1154,7 @@ "sidebarAllUsers": "Alle brukere", "sidebarIdentityProviders": "Identitetsleverandører", "sidebarLicense": "Lisens", - "sidebarClients": "Klienter (Beta)", + "sidebarClients": "Clients", "sidebarDomains": "Domener", "enableDockerSocket": "Aktiver Docker blåkopi", "enableDockerSocketDescription": "Aktiver skraping av Docker Socket for blueprint Etiketter. Socket bane må brukes for nye.", @@ -1331,7 +1347,6 @@ "twoFactorRequired": "Tofaktorautentisering er påkrevd for å registrere en sikkerhetsnøkkel.", "twoFactor": "Tofaktorautentisering", "adminEnabled2FaOnYourAccount": "Din administrator har aktivert tofaktorautentisering for {email}. Vennligst fullfør oppsettsprosessen for å fortsette.", - "continueToApplication": "Fortsett til applikasjonen", "securityKeyAdd": "Legg til sikkerhetsnøkkel", "securityKeyRegisterTitle": "Registrer ny sikkerhetsnøkkel", "securityKeyRegisterDescription": "Koble til sikkerhetsnøkkelen og skriv inn et navn for å identifisere den", @@ -1409,6 +1424,7 @@ "externalProxyEnabled": "Ekstern proxy aktivert", "addNewTarget": "Legg til nytt mål", "targetsList": "Liste over mål", + "advancedMode": "Avansert modus", "targetErrorDuplicateTargetFound": "Duplikat av mål funnet", "healthCheckHealthy": "Sunn", "healthCheckUnhealthy": "Usunn", @@ -1541,8 +1557,8 @@ "autoLoginError": "Feil ved automatisk innlogging", "autoLoginErrorNoRedirectUrl": "Ingen omdirigerings-URL mottatt fra identitetsleverandøren.", "autoLoginErrorGeneratingUrl": "Kunne ikke generere autentiserings-URL.", - "remoteExitNodeManageRemoteExitNodes": "Administrer Selv-Hostet", - "remoteExitNodeDescription": "Administrer noder for å forlenge nettverkstilkoblingen din", + "remoteExitNodeManageRemoteExitNodes": "Eksterne Noder", + "remoteExitNodeDescription": "Self-host one or more remote nodes to extend your network connectivity and reduce reliance on the cloud", "remoteExitNodes": "Noder", "searchRemoteExitNodes": "Søk noder...", "remoteExitNodeAdd": "Legg til Node", @@ -1552,7 +1568,7 @@ "remoteExitNodeMessageConfirm": "For å bekrefte, skriv inn navnet på noden nedenfor.", "remoteExitNodeConfirmDelete": "Bekreft sletting av Node", "remoteExitNodeDelete": "Slett Node", - "sidebarRemoteExitNodes": "Noder", + "sidebarRemoteExitNodes": "Eksterne Noder", "remoteExitNodeCreate": { "title": "Opprett node", "description": "Opprett en ny node for å utvide nettverkstilkoblingen din", @@ -1721,5 +1737,161 @@ "authPageUpdated": "Godkjenningsside oppdatert", "healthCheckNotAvailable": "Lokal", "rewritePath": "Omskriv sti", - "rewritePathDescription": "Valgfritt omskrive stien før videresending til målet." + "rewritePathDescription": "Valgfritt omskrive stien før videresending til målet.", + "continueToApplication": "Fortsett til applikasjonen", + "checkingInvite": "Sjekker invitasjon", + "setResourceHeaderAuth": "setResourceHeaderAuth", + "resourceHeaderAuthRemove": "Fjern topptekst Auth", + "resourceHeaderAuthRemoveDescription": "Topplinje autentisering fjernet.", + "resourceErrorHeaderAuthRemove": "Kunne ikke fjerne topptekst autentisering", + "resourceErrorHeaderAuthRemoveDescription": "Kunne ikke fjerne topptekst autentisering for ressursen.", + "resourceHeaderAuthProtectionEnabled": "Header Authentication Enabled", + "resourceHeaderAuthProtectionDisabled": "Header Authentication Disabled", + "headerAuthRemove": "Remove Header Auth", + "headerAuthAdd": "Add Header Auth", + "resourceErrorHeaderAuthSetup": "Kunne ikke sette topptekst autentisering", + "resourceErrorHeaderAuthSetupDescription": "Kunne ikke sette topplinje autentisering for ressursen.", + "resourceHeaderAuthSetup": "Header godkjenningssett var vellykket", + "resourceHeaderAuthSetupDescription": "Topplinje autentisering har blitt lagret.", + "resourceHeaderAuthSetupTitle": "Angi topptekst godkjenning", + "resourceHeaderAuthSetupTitleDescription": "Set the basic auth credentials (username and password) to protect this resource with HTTP Header Authentication. Access it using the format https://username:password@resource.example.com", + "resourceHeaderAuthSubmit": "Angi topptekst godkjenning", + "actionSetResourceHeaderAuth": "Angi topptekst godkjenning", + "enterpriseEdition": "Enterprise Edition", + "unlicensed": "Unlicensed", + "beta": "Beta", + "manageClients": "Manage Clients", + "manageClientsDescription": "Clients are devices that can connect to your sites", + "licenseTableValidUntil": "Valid Until", + "saasLicenseKeysSettingsTitle": "Enterprise Licenses", + "saasLicenseKeysSettingsDescription": "Generate and manage Enterprise license keys for self-hosted Pangolin instances", + "sidebarEnterpriseLicenses": "Licenses", + "generateLicenseKey": "Generate License Key", + "generateLicenseKeyForm": { + "validation": { + "emailRequired": "Please enter a valid email address", + "useCaseTypeRequired": "Please select a use case type", + "firstNameRequired": "First name is required", + "lastNameRequired": "Last name is required", + "primaryUseRequired": "Please describe your primary use", + "jobTitleRequiredBusiness": "Job title is required for business use", + "industryRequiredBusiness": "Industry is required for business use", + "stateProvinceRegionRequired": "State/Province/Region is required", + "postalZipCodeRequired": "Postal/ZIP Code is required", + "companyNameRequiredBusiness": "Company name is required for business use", + "countryOfResidenceRequiredBusiness": "Country of residence is required for business use", + "countryRequiredPersonal": "Country is required for personal use", + "agreeToTermsRequired": "You must agree to the terms", + "complianceConfirmationRequired": "You must confirm compliance with the Fossorial Commercial License" + }, + "useCaseOptions": { + "personal": { + "title": "Personal Use", + "description": "For individual, non-commercial use such as learning, personal projects, or experimentation." + }, + "business": { + "title": "Business Use", + "description": "For use within organizations, companies, or commercial or revenue-generating activities." + } + }, + "steps": { + "emailLicenseType": { + "title": "Email & License Type", + "description": "Enter your email and choose your license type" + }, + "personalInformation": { + "title": "Personal Information", + "description": "Tell us about yourself" + }, + "contactInformation": { + "title": "Contact Information", + "description": "Your contact details" + }, + "termsGenerate": { + "title": "Terms & Generate", + "description": "Review and accept terms to generate your license" + } + }, + "alerts": { + "commercialUseDisclosure": { + "title": "Usage Disclosure", + "description": "Select the license tier that accurately reflects your intended use. The Personal License permits free use of the Software for individual, non-commercial or small-scale commercial activities with annual gross revenue under $100,000 USD. Any use beyond these limits — including use within a business, organization, or other revenue-generating environment — requires a valid Enterprise License and payment of the applicable licensing fee. All users, whether Personal or Enterprise, must comply with the Fossorial Commercial License Terms." + }, + "trialPeriodInformation": { + "title": "Trial Period Information", + "description": "This License Key enables Enterprise features for a 7-day evaluation period. Continued access to Paid Features beyond the evaluation period requires activation under a valid Personal or Enterprise License. For Enterprise licensing, contact sales@fossorial.io." + } + }, + "form": { + "useCaseQuestion": "Are you using Pangolin for personal or business use?", + "firstName": "First Name", + "lastName": "Last Name", + "jobTitle": "Job Title", + "primaryUseQuestion": "What do you primarily plan to use Pangolin for?", + "industryQuestion": "What is your industry?", + "prospectiveUsersQuestion": "How many prospective users do you expect to have?", + "prospectiveSitesQuestion": "How many prospective sites (tunnels) do you expect to have?", + "companyName": "Company name", + "countryOfResidence": "Country of residence", + "stateProvinceRegion": "State / Province / Region", + "postalZipCode": "Postal / ZIP Code", + "companyWebsite": "Company website", + "companyPhoneNumber": "Company phone number", + "country": "Country", + "phoneNumberOptional": "Phone number (optional)", + "complianceConfirmation": "I confirm that I am in compliance with the Fossorial Commercial License and that reporting inaccurate information or misidentifying use of the product is a violation of the license." + }, + "buttons": { + "close": "Close", + "previous": "Previous", + "next": "Next", + "generateLicenseKey": "Generate License Key" + }, + "toasts": { + "success": { + "title": "License key generated successfully", + "description": "Your license key has been generated and is ready to use." + }, + "error": { + "title": "Failed to generate license key", + "description": "An error occurred while generating the license key." + } + } + }, + "priority": "Prioritet", + "priorityDescription": "Høyere prioriterte ruter evalueres først. Prioritet = 100 betyr automatisk bestilling (systembeslutninger). Bruk et annet nummer til å håndheve manuell prioritet.", + "instanceName": "Instance Name", + "pathMatchModalTitle": "Configure Path Matching", + "pathMatchModalDescription": "Set up how incoming requests should be matched based on their path.", + "pathMatchType": "Match Type", + "pathMatchPrefix": "Prefix", + "pathMatchExact": "Exact", + "pathMatchRegex": "Regex", + "pathMatchValue": "Path Value", + "clear": "Clear", + "saveChanges": "Save Changes", + "pathMatchRegexPlaceholder": "^/api/.*", + "pathMatchDefaultPlaceholder": "/path", + "pathMatchPrefixHelp": "Example: /api matches /api, /api/users, etc.", + "pathMatchExactHelp": "Example: /api matches only /api", + "pathMatchRegexHelp": "Example: ^/api/.* matches /api/anything", + "pathRewriteModalTitle": "Configure Path Rewriting", + "pathRewriteModalDescription": "Transform the matched path before forwarding to the target.", + "pathRewriteType": "Rewrite Type", + "pathRewritePrefixOption": "Prefix - Replace prefix", + "pathRewriteExactOption": "Exact - Replace entire path", + "pathRewriteRegexOption": "Regex - Pattern replacement", + "pathRewriteStripPrefixOption": "Strip Prefix - Remove prefix", + "pathRewriteValue": "Rewrite Value", + "pathRewriteRegexPlaceholder": "/new/$1", + "pathRewriteDefaultPlaceholder": "/new-path", + "pathRewritePrefixHelp": "Replace the matched prefix with this value", + "pathRewriteExactHelp": "Replace the entire path with this value when the path matches exactly", + "pathRewriteRegexHelp": "Use capture groups like $1, $2 for replacement", + "pathRewriteStripPrefixHelp": "Leave empty to strip prefix or provide new prefix", + "pathRewritePrefix": "Prefix", + "pathRewriteExact": "Exact", + "pathRewriteRegex": "Regex", + "pathRewriteStrip": "Strip", + "pathRewriteStripLabel": "strip" }