i18n/locales/nb.py
Rama main · réplica de lectura del repositorio original.
"""Norwegian Bokmål translations."""
MONTHS_SHORT = (
"jan",
"feb",
"mar",
"apr",
"mai",
"jun",
"jul",
"aug",
"sep",
"okt",
"nov",
"des",
)
TRANSLATIONS: dict[str, str] = {
"App Name": "HjerneVakt",
"Too many requests": "For mange forespørsler",
"Please wait a moment and try again.": "Vent litt og prøv igjen.",
"Search": "Søk",
"Search YouTube": "Søk på YouTube",
"Search or paste a link...": "Søk eller lim inn en lenke...",
"Go": "Gå",
"Hi {name}!": "Hei, {name}!",
"Pick your icon": "Velg ikon",
"Pick your color": "Velg farge",
"Switch Profile": "Bytt profil",
"Buy me a coffee": "Spander en kaffe",
"Login": "Logg inn",
"Who's Watching?": "Hvem ser?",
"Enter PIN": "Skriv inn PIN",
"Wrong PIN. Try again.": "Feil PIN. Prøv igjen.",
"PIN": "PIN",
"Enter": "Logg inn",
"Switch profile": "Bytt profil",
"Search: {query}": "Søk: {query}",
'Results for "{query}"': 'Resultater for "{query}"',
"Short": "Kort",
"Request": "Be om",
"Show More": "Vis mer",
"No results found": "Ingen resultater",
"Try a different search": "Prøv et annet søk",
"Waiting...": "Venter...",
"Waiting for approval...": "Venter på godkjenning...",
"This page updates automatically when a decision is made": "Siden oppdateres automatisk når en avgjørelse er tatt.",
"Not Approved": "Ikke godkjent",
"This video wasn't approved by your parent. You can browse other videos or request a different one.": "Denne videoen ble ikke godkjent av en foresatt. Du kan se på andre videoer eller be om en annen.",
"Back to Home": "Tilbake hjem",
"Not Available": "Ikke tilgjengelig",
"Videos Aren't Available Right Now": "Videoer er ikke tilgjengelige akkurat nå",
"Videos are available from {start} to {end}": "Videoer er tilgjengelige fra {start} til {end}",
"Available again {unlock_time}": "Tilgjengelig igjen {unlock_time}",
"Time's Up": "Tiden er ute",
"{category} Time's Up!": "{category}: Tiden er ute!",
"{name} has used {used} out of {limit} {category} minutes today.": "{name} har brukt {used} av {limit} {category}-minutter i dag.",
"You've used {used} out of {limit} {category} minutes today.": "Du har brukt {used} av {limit} {category}-minutter i dag.",
"{name} can still watch:": "{name} kan fortsatt se:",
"You can still watch:": "Du kan fortsatt se:",
"{label} ({minutes} min left)": "{label} ({minutes} min igjen)",
"({minutes} min left)": "({minutes} min igjen)",
"Videos available again at {time}.": "Videoer er tilgjengelige igjen kl. {time}.",
"Time resets tomorrow at midnight.": "Tiden nullstilles i morgen ved midnatt.",
"{name} has used {used} out of {limit} minutes today.": "{name} har brukt {used} av {limit} minutter i dag.",
"You've used {used} out of {limit} minutes today.": "Du har brukt {used} av {limit} minutter i dag.",
"Available until {time}": "Tilgjengelig til {time}",
"No time remaining today": "Ingen tid igjen i dag",
"{remaining} min remaining today": "{remaining} min igjen i dag",
"{used} / {limit} min used": "{used} / {limit} min brukt",
"Watch Now": "Se nå",
"All": "Alle",
"time's up": "tiden er ute",
"of {limit}m": "av {limit}m",
"Unlimited": "Ubegrenset",
"Watch activity": "Se aktivitet",
"Your Requests": "Dine forespørsler",
"{views} views": "{views} visninger",
"Channel Videos": "Kanalvideoer",
"No videos yet": "Ingen videoer ennå",
"No videos to show": "Ingen videoer å vise",
"Search for something to watch!": "Søk etter noe å se på!",
"Shorts": "Shorts",
"Show<br>More": "Vis<br>mer",
"Hide": "Skjul",
"Show": "Vis",
"{category}: {remaining} min remaining": "{category}: {remaining} min igjen",
"{used} / {limit} min used detail": "{used} / {limit} min brukt",
"{category} time left:": "{category} tid igjen:",
"Back to Library": "Tilbake til biblioteket",
"Less than 5 minutes remaining": "Mindre enn 5 minutter igjen",
"Less than 1 minute remaining!": "Mindre enn 1 minutt igjen!",
"Redirecting to home...": "Sender deg hjem...",
"Fullscreen": "Fullskjerm",
"Video finished": "Videoen er ferdig",
"Results": "Resultater",
"Loading...": "Laster...",
"Failed to load": "Kunne ikke laste inn",
"Today's Activity": "Dagens aktivitet",
"Requests": "Forespørsler",
"Pending Requests": "Ventende forespørsler",
"Approved by Request": "Godkjent etter forespørsel",
"No pending requests": "Ingen ventende forespørsler",
"No approved requests": "Ingen godkjente forespørsler",
"No requests yet": "Ingen forespørsler ennå",
"Requested videos will appear here": "Forespurte videoer vises her",
"Videos waiting for approval will appear here": "Videoer som venter på godkjenning, vises her",
"Approved videos outside allowed channels will stay here": "Godkjente videoer utenfor tillatte kanaler blir her",
"History": "Historikk",
"No videos watched yet": "Ingen videoer sett ennå",
"Videos you start will appear here": "Videoer du starter, vises her",
"Try another filter": "Prøv et annet filter",
"Yesterday": "I går",
"Active": "Aktivitet",
"Dismiss": "Skjul",
"Back": "Tilbake",
"Back to {page}": "Tilbake til {page}",
"Library": "biblioteket",
"Activity": "aktivitet",
"Video": "video",
"Pending": "ventende",
"Edu min": "Læring min",
"Edu left": "Læring igjen",
"Fun min": "Moro min",
"Fun left": "Moro igjen",
"{label} min": "{label} min",
"{label} left": "{label} igjen",
"min watched": "min sett",
"min allowed": "min tillatt",
"min left": "min igjen",
"min watched today": "min sett i dag",
"{total}/{limit} min": "{total}/{limit} min",
"{total} min (no limit)": "{total} min (ingen grense)",
"Entertainment (uncategorized)": "Underholdning (ukategorisert)",
"No videos watched today": "Ingen videoer sett i dag",
"Your watch history will appear here": "Sehistorikken din vises her",
"That doesn't look like a valid YouTube link or video ID.": "Det ser ikke ut som en gyldig YouTube-lenke eller video-ID.",
"Couldn't load video info — it may be private, age-restricted, or region-locked.": "Kunne ikke hente videoinfo. Den kan være privat, aldersbegrenset eller regionslåst.",
"Educational": "Læring",
"Entertainment": "Underholdning",
"Edu": "Læring",
"Fun": "Moro",
"Monday": "Mandag",
"Tuesday": "Tirsdag",
"Wednesday": "Onsdag",
"Thursday": "Torsdag",
"Friday": "Fredag",
"Saturday": "Lørdag",
"Sunday": "Søndag",
"Mon": "Man",
"Tue": "Tir",
"Wed": "Ons",
"Thu": "Tor",
"Fri": "Fre",
"Sat": "Lør",
"Sun": "Søn",
"today": "i dag",
"tomorrow": "i morgen",
"midnight": "midnatt",
"not set": "ikke satt",
"open": "åpen",
"at {time}": "kl. {time}",
"tomorrow at {time}": "i morgen kl. {time}",
"This bot is for the parent/admin only.": "Denne boten er for foresatte eller admin.",
"No profiles. Use /child add <name> to create one.": "Ingen profiler. Bruk /child add <navn> for å opprette en.",
"Which child?": "Hvilket barn?",
"Done.": "Ferdig.",
"Profile not found.": "Fant ikke profilen.",
"No pending command.": "Ingen ventende kommando.",
"No longer pending.": "Ikke lenger ventende.",
"Invalid callback.": "Ugyldig callback.",
"Video not found.": "Fant ikke videoen.",
"Failed to delete profile.": "Kunne ikke slette profilen.",
"Resending...": "Sender på nytt...",
"Approved!": "Godkjent!",
"Denied.": "Avslått.",
"Revoked!": "Fjernet!",
"Blocked: {channel}": "Blokkert: {channel}",
"AUTO-APPROVED ({category})": "AUTOGODKJENT ({category})",
"APPROVED": "GODKJENT",
"DENIED": "AVSLÅTT",
"REVOKED": "FJERNET",
"Watch on YouTube": "Se på YouTube",
"New Video Request{short_label}{from_label}": "Ny videoforespørsel{short_label}{from_label}",
"Title:": "Tittel:",
"Channel:": "Kanal:",
"Duration:": "Varighet:",
"Already approved for {name}": "Allerede godkjent for {name}",
"[SHORT]": "[SHORT]",
" from {name}": " fra {name}",
"another child": "et annet barn",
"Auto-approve": "Autogodkjenn",
"Approve Edu": "Godkjenn læring",
"Approve Fun": "Godkjenn moro",
"Deny": "Avslå",
"Allow Ch Edu": "Tillat kanal læring",
"Allow Ch Fun": "Tillat kanal moro",
"Block Channel": "Blokker kanal",
"Revoke": "Fjern",
"Created profile: {name}{pin_msg}": "Opprettet profil: {name}{pin_msg}",
" with PIN": " med PIN",
" (no PIN)": " (ingen PIN)",
"Child Profiles": "Barneprofiler",
"PIN set": "PIN satt",
"no PIN": "ingen PIN",
"{videos} videos": "{videos} videoer",
"{channels} channels": "{channels} kanaler",
"Usage: /child add <name> [pin]": "Bruk: /child add <navn> [pin]",
"Name must contain at least one alphanumeric character.": "Navnet må inneholde minst ett bokstav- eller talltegn.",
"Profile ID conflict with '{name}' — try a different name.": "Profil-ID kolliderer med '{name}' — prøv et annet navn.",
"Failed to create profile.": "Kunne ikke opprette profil.",
"Usage: /child remove <name>": "Bruk: /child remove <navn>",
"Profile not found: {name}": "Fant ikke profil: {name}",
"Delete {name} and all data": "Slett {name} og alle data",
"Delete **{name}**? This removes all videos, channels, watch history, and settings.": "Vil du slette **{name}**? Dette fjerner alle videoer, kanaler, sehistorikk og innstillinger.",
"Usage: /child rename <name> <new_name>": "Bruk: /child rename <navn> <nytt_navn>",
"A profile named '{name}' already exists.": "En profil med navnet '{name}' finnes allerede.",
"Renamed: {old} -> **{new}**": "Endret navn: {old} -> **{new}**",
"Failed to rename profile.": "Kunne ikke endre profilnavn.",
"Usage: /child pin <name> [pin]\nOmit pin to remove it.": "Bruk: /child pin <navn> [pin]\nUtelat pin for å fjerne den.",
"PIN set for **{name}**.": "PIN satt for **{name}**.",
"PIN removed for **{name}**.": "PIN fjernet for **{name}**.",
"Failed to update PIN.": "Kunne ikke oppdatere PIN.",
"Shorts enabled{ctx}": "Shorts aktivert{ctx}",
"Shorts disabled{ctx}": "Shorts deaktivert{ctx}",
"Shorts: enabled{ctx}": "Shorts: aktivert{ctx}",
"Shorts: disabled{ctx}": "Shorts: deaktivert{ctx}",
"No pending requests. Videos requested from the web app will appear here.": "Ingen ventende forespørsler. Videoer som forespørres i nettappen, vises her.",
"Pending Requests{ctx} ({total})": "Ventende forespørsler{ctx} ({total})",
"Resend: {title}": "Send på nytt: {title}",
'No approved videos matching "{query}".': 'Ingen godkjente videoer som matcher "{query}".',
"No approved videos yet. Approve requests or use /channel to allow channels.": "Ingen godkjente videoer ennå. Godkjenn forespørsler eller bruk /channel for å tillate kanaler.",
'"{search}"{ctx} ({total} {result_word})': '"{search}"{ctx} ({total} {result_word})',
"result": "resultat",
"results": "resultater",
"Approved{ctx} ({total})": "Godkjent{ctx} ({total})",
"No approved videos.": "Ingen godkjente videoer.",
"Video not found — it may have been removed from the database.": "Fant ikke videoen — den kan ha blitt fjernet fra databasen.",
"Already {status} — no change needed.": "Allerede {status} — ingen endring trengs.",
"Approval removed: {title}\nThe video is no longer watchable.": "Godkjenning fjernet: {title}\nVideoen kan ikke lenger sees.",
"Stats{ctx}": "Statistikk{ctx}",
"Total videos: {total}": "Videoer totalt: {total}",
"Pending: {count}": "Ventende: {count}",
"Approved: {count}": "Godkjent: {count}",
"Denied: {count}": "Avslått: {count}",
"Total views: {count}": "Visninger totalt: {count}",
"Changelog not available.": "Endringslogg er ikke tilgjengelig.",
"No activity in the {period}.": "Ingen aktivitet i {period}.",
"Today": "I dag",
"Last {days} days": "Siste {days} dagene",
"No activity.": "Ingen aktivitet.",
"No searches in the {period}.": "Ingen søk i {period}.",
"Search History ({period}){ctx}": "Søkehistorikk ({period}){ctx}",
"No searches.": "Ingen søk.",
"Usage: /filter add|remove <word>": "Bruk: /filter add|remove <ord>",
'Filter added: "{word}"\nVideos with this word in the title are hidden everywhere.': 'Filter lagt til: "{word}"\nVideoer med dette ordet i tittelen skjules overalt.',
'Already filtered: "{word}"': 'Allerede filtrert: "{word}"',
'Filter removed: "{word}"': 'Filter fjernet: "{word}"',
'"{word}" isn\'t in the filter list.': '"{word}" er ikke i filterlisten.',
"No word filters set. Use /filter add <word> to hide videos by title.": "Ingen ordfiltre er satt. Bruk /filter add <ord> for å skjule videoer etter tittel.",
"All watch time limits disabled. Videos can be watched without a daily cap.": "Alle segrenser er deaktivert. Videoer kan sees uten daglig grense.",
"OPEN": "ÅPEN",
"CLOSED (unlocks {unlock_time})": "STENGT (åpner {unlock_time})",
"Today ({day}){ctx} — {status}": "I dag ({day}){ctx} — {status}",
"Schedule: {start} - {end}": "Tidsplan: {start} - {end}",
"Bonus today: +{bonus} min": "Bonus i dag: +{bonus} min",
"Limit: {limit} min": "Grense: {limit} min",
"No limits set — {used} min watched": "Ingen grenser satt — {used} min sett",
"Use /time setup to configure limits.": "Bruk /time setup for å sette opp grenser.",
"Week": "Uke",
"All days: same schedule": "Alle dager: samme tidsplan",
"Usage: /time [minutes|off]\n /time setup\n /time start|stop <time|off>\n /time add <minutes>\n /time edu|fun <minutes|off>\n /time <day> [start|stop|edu|fun|limit|off|copy]": "Bruk: /time [minutter|off]\n /time setup\n /time start|stop <tid|off>\n /time add <minutter>\n /time edu|fun <minutter|off>\n /time <dag> [start|stop|edu|fun|limit|off|copy]",
"Usage: /time [<day>] limit <minutes>": "Bruk: /time [<dag>] limit <minutter>",
"Use `/time off` to disable the time limit.": "Bruk `/time off` for å deaktivere tidsgrensen.",
"Keep categories": "Behold kategorier",
"Switch to {minutes} min flat": "Bytt til {minutes} min samlet",
"Keep simple limit": "Behold enkel grense",
"Set up categories": "Sett opp kategorier",
"⚠️ You have category limits set (edu:{edu} fun:{fun}).\n\nSwitching to a simple limit replaces category budgets with a single daily cap.": "⚠️ Du har satt kategorigrenser (læring:{edu} moro:{fun}).\n\nÅ bytte til en enkel grense erstatter kategoribudsjettene med én daglig grense.",
"⚠️ You have a simple limit of {minutes} min.\n\nSwitching to category mode replaces this with separate edu and fun budgets.": "⚠️ Du har en enkel grense på {minutes} min.\n\nÅ bytte til kategorimodus erstatter denne med egne budsjetter for læring og moro.",
"Usage: /time {category} <minutes|off>": "Bruk: /time {category} <minutter|off>",
"Invalid time. Examples: 800am, 8:00, 2000, 8:00PM": "Ugyldig tid. Eksempler: 800am, 8:00, 2000, 8:00PM",
"Usage: /time add <minutes>": "Bruk: /time add <minutter>",
"Bonus minutes must be a positive number.": "Bonusminutter må være et positivt tall.",
"Bonus must be 480 minutes (8 hours) or less.": "Bonus må være 480 minutter (8 timer) eller mindre.",
"Time Setup": "Tidsoppsett",
"Time Limit Setup": "Oppsett av tidsgrenser",
"Time Setup for {name}": "Tidsoppsett for {name}",
"Limits": "Grenser",
"Schedule": "Tidsplan",
"Done": "Ferdig",
"Done ✓": "Ferdig ✓",
"Back to Setup": "Tilbake til oppsett",
"Children": "Barn",
"Time Limits": "Tidsgrenser",
"Channels": "Kanaler",
"0 channels": "0 kanaler",
"disabled": "deaktivert",
"enabled": "aktivert",
"not configured": "ikke konfigurert",
"allowed": "tillatt",
"blocked": "blokkert",
"No starter channels configured.": "Ingen startkanaler er satt opp.",
"Starter Channels": "Startkanaler",
"Starter Channels for {name}": "Startkanaler for {name}",
"Import: {name}": "Importer: {name}",
"Invalid channel.": "Ugyldig kanal.",
"Already imported: {name}": "Allerede importert: {name}",
"Imported: {name}": "Importert: {name}",
"Usage: /channel allow|unallow|block|unblock|cat|starter <name>": "Bruk: /channel allow|unallow|block|unblock|cat|starter <navn>",
"Usage: /channel {verb} @handle\nExample: /channel {verb} {example}": "Bruk: /channel {verb} @handle\nEksempel: /channel {verb} {example}",
"Please use the channel's @handle (e.g. {example}).\nYou can find it on the channel's YouTube page.": "Bruk kanalens @handle (f.eks. {example}).\nDu finner den på kanalens YouTube-side.",
"Looking up {raw} on YouTube...": "Slår opp {raw} på YouTube...",
"Couldn't find a channel for {raw}. Check the spelling or try the full @handle from YouTube.": "Fant ikke noen kanal for {raw}. Sjekk stavemåten eller prøv hele @handle fra YouTube.",
"Added to allowlist: {channel} ({handle})\nCategory: {category}": "Lagt til i tillatelseslisten: {channel} ({handle})\nKategori: {category}",
"Blocked: {channel}\nVideos from this channel will be auto-denied.": "Blokkert: {channel}\nVideoer fra denne kanalen blir automatisk avslått.",
"No category": "Ingen kategori",
"Usage: /channel {verb} <channel name>": "Bruk: /channel {verb} <kanalnavn>",
"{label}: {channel}.{extra}": "{label}: {channel}.{extra}",
"Removed from allowlist": "Fjernet fra tillatelseslisten",
"Unblocked": "Opphevet blokkering",
" Deleted {count} {word} from catalog.": " Slettet {count} {word} fra katalogen.",
"video": "video",
"videos": "videoer",
"Channel not in list: {channel}. Use /channel to see all channels.": "Kanalen er ikke i listen: {channel}. Bruk /channel for å se alle kanaler.",
"Usage: /channel cat <name> edu|fun\n\nThis sets which time budget the channel's videos count against.": "Bruk: /channel cat <navn> edu|fun\n\nDette bestemmer hvilket tidsbudsjett kanalens videoer teller mot.",
"Category must be edu (Educational) or fun (Entertainment).": "Kategori må være edu (Læring) eller fun (Underholdning).",
"**{channel}** is blocked, not allowed\\. Unblock it first, then allow with a category\\.": "**{channel}** er blokkert, ikke tillatt\\. Opphev blokkeringen først, og tillat den deretter med kategori\\.",
"Channel not in allowlist: {channel}. Use /channel to see all channels.": "Kanalen er ikke i tillatelseslisten: {channel}. Bruk /channel for å se alle kanaler.",
"**{channel}** -> {category}\nExisting videos from this channel updated too.": "**{channel}** -> {category}\nEksisterende videoer fra denne kanalen ble også oppdatert.",
"No channels configured.": "Ingen kanaler er satt opp.",
"Allowed: {count}": "Tillatt: {count}",
"Blocked: {count}": "Blokkert: {count}",
"Categories: {categories}": "Kategorier: {categories}",
"Allowed ({count})": "Tillatt ({count})",
"Blocked ({count})": "Blokkert ({count})",
"Allowed Channels": "Tillatte kanaler",
"Blocked Channels": "Blokkerte kanaler",
"Unallow: {name}": "Fjern tillatelse: {name}",
"Unblock: {name}": "Opphev blokkering: {name}",
"Got it!": "Skjønner!",
"Keeping current settings.": "Beholder gjeldende innstillinger.",
"Please reply with a positive number of minutes.": "Svar med et positivt antall minutter.",
"{app_name} v{version}\n\nYouTube approval system for kids. Tap a section below to set things up.": "{app_name} v{version}\n\nYouTube-godkjenningssystem for barn. Trykk på en seksjon under for å sette opp.",
"Children Setup": "Barneoppsett",
"Current: default (no name)": "Nåværende: standard (uten navn)",
" (PIN set)": " (PIN satt)",
"Rename Default": "Gi nytt navn til standard",
"Add Child": "Legg til barn",
"Reply with the child's name:": "Svar med barnets navn:",
"Session expired — run /setup to restart.": "Økten er utløpt — kjør /setup for å starte på nytt.",
"Reply with a PIN:": "Svar med en PIN:",
"Name can't be empty. Try again:": "Navnet kan ikke være tomt. Prøv igjen:",
"Name must contain at least one alphanumeric character. Try again:": "Navnet må inneholde minst ett bokstav- eller talltegn. Prøv igjen:",
"Please reply with a PIN containing 4-12 digits. Try again:": "Svar med en PIN på 4-12 sifre. Prøv igjen:",
"Set a PIN for {name}?": "Vil du sette PIN for {name}?",
"Set PIN": "Sett PIN",
"No PIN": "Ingen PIN",
"A profile with that name already exists. Try a different name:": "En profil med det navnet finnes allerede. Prøv et annet navn:",
"schedule only": "bare tidsplan",
"Set Limits": "Sett grenser",
"no limits set": "ingen grenser satt",
"What would you like to configure?": "Hva vil du sette opp?",
"daily screen time budgets": "daglige tidsgrenser",
"when videos are available": "når videoer er tilgjengelige",
"Channels\n": "Kanaler\n",
"Browse Starters": "Bla i startkanaler",
"YouTube Shorts": "YouTube Shorts",
"YouTube Shorts for {name}": "YouTube Shorts for {name}",
"under 60s": "under 60 sek",
"Enable": "Aktiver",
"Disable": "Deaktiver",
"Reply with the start time (e.g. 8am, 08:00):": "Svar med starttidspunktet (f.eks. 8, 08:00):",
"Reply with the stop time (e.g. 8pm, 20:00):": "Svar med sluttidspunktet (f.eks. 20, 20:00):",
"Reply with start time for {label} (e.g. 9am, 09:00):": "Svar med starttid for {label} (f.eks. 9, 09:00):",
"Reply with stop time for {label} (e.g. 9pm, 21:00):": "Svar med sluttid for {label} (f.eks. 21, 21:00):",
"Reply with the number of minutes:": "Svar med antall minutter:",
"Reply with the number of minutes for **educational** limit:": "Svar med antall minutter for **læring**:",
"Reply with the number of minutes for **entertainment** limit:": "Svar med antall minutter for **underholdning**:",
"How would you like to manage screen time?": "Hvordan vil du styre skjermtid?",
"Simple": "Enkel",
"Category": "Kategori",
"one daily cap for all videos.": "én daglig grense for alle videoer.",
"separate edu + fun budgets (total = edu + fun).": "egne budsjetter for læring + moro (totalt = læring + moro).",
"Simple Limit": "Enkel grense",
"Category Limits": "Kategorigrenser",
"Same schedule every day, or different times for specific days?": "Samme tidsplan hver dag, eller ulike tider på bestemte dager?",
"Same for all days": "Samme for alle dager",
"Customize by day": "Tilpass per dag",
"Set when watching is allowed to begin:": "Velg når det er lov å begynne å se:",
"Custom": "Tilpass",
"Start: {time} ✓\nNow set when watching must stop:": "Start: {time} ✓\nVelg nå når visningen må stoppe:",
"Default: {start} – {end}\n\n": "Standard: {start} – {end}\n\n",
"Days without a schedule are open (no restrictions).\n\n": "Dager uten tidsplan er åpne (ingen begrensninger).\n\n",
"Tap a day to set its schedule, or Done to finish.": "Trykk på en dag for å sette tidsplan, eller Ferdig for å avslutte.",
"**{label}** — currently {start} – {end}{source}\n\nSet start time for {label}:": "**{label}** — nå {start} – {end}{source}\n\nVelg starttid for {label}:",
" (default)": " (standard)",
"{label} start: {time} ✓\nSet stop time for {label}:": "{label} start: {time} ✓\nVelg sluttid for {label}:",
"✓ **Schedule configured**\n": "✓ **Tidsplan satt opp**\n",
"Default: {start} – {end}": "Standard: {start} – {end}",
"\nUse `/time <day> start|stop` to adjust later.": "\nBruk `/time <dag> start|stop` for å justere senere.",
"Category mode gives separate budgets for educational and entertainment videos. Total screen time = edu + fun.\n\nSet **educational** limit:": "Kategorimodus gir egne budsjetter for lærings- og underholdningsvideoer. Total skjermtid = læring + moro.\n\nVelg **læringsgrense**:",
"Set a daily screen time limit. All videos share one pool.\n\nPick a preset or reply with a custom number:": "Velg en daglig skjermtidsgrense. Alle videoer deler samme pott.\n\nVelg et forslag eller svar med et eget tall:",
"✓ **Simple limit set**\n Daily cap: {minutes} min/day\n\nThese apply to all days. Use `/time <day> limit <min>` to customize specific days.": "✓ **Enkel grense satt**\n Daglig grense: {minutes} min/dag\n\nDette gjelder alle dager. Bruk `/time <dag> limit <min>` for å tilpasse enkelte dager.",
"Educational: {minutes} min ✓\nNow set **entertainment** limit:": "Læring: {minutes} min ✓\nVelg nå **moro-grense**:",
"✓ **Category limits set**\n Educational: {edu} min/day\n Entertainment: {fun} min/day\n Total: {total} min/day\n\nThese apply to all days. Use `/time <day> edu|fun <min>` to customize specific days.": "✓ **Kategorigrenser satt**\n Læring: {edu} min/dag\n Underholdning: {fun} min/dag\n Totalt: {total} min/dag\n\nDette gjelder alle dager. Bruk `/time <dag> edu|fun <min>` for å tilpasse enkelte dager.",
"✓ Switched to simple limit: {minutes} min/day": "✓ Byttet til enkel grense: {minutes} min/dag",
"✓ Switched to category mode.\n {category}: {minutes} min/day\n\nSet the {other_label} limit with `/time {other} <minutes>`.": "✓ Byttet til kategorimodus.\n {category}: {minutes} min/dag\n\nSett grensen for {other_label} med `/time {other} <minutter>`.",
"Shorts are hidden from the homepage, catalog, and search results. No Shorts are fetched from channels.\n\n`/shorts on` — show Shorts in a dedicated row": "Shorts er skjult fra hjemmesiden, katalogen og søkeresultatene. Ingen Shorts hentes fra kanaler.\n\n`/shorts on` — vis Shorts i en egen rad",
"Shorts appear in a dedicated row on the homepage and are fetched from allowlisted channels. They count toward edu/fun time budgets like regular videos.\n\n`/shorts off` — hide Shorts everywhere": "Shorts vises i en egen rad på hjemmesiden og hentes fra tillatte kanaler. De teller mot læring/moro-budsjetter som vanlige videoer.\n\n`/shorts off` — skjul Shorts overalt",
"Shorts row appears on the homepage below videos\n- Shorts from allowlisted channels are fetched on next cache refresh\n- Shorts still count toward category time budgets (edu/fun)\n- Shorts hidden from search results remain hidden": "Shorts-raden vises på hjemmesiden under videoer\n- Shorts fra tillatte kanaler hentes ved neste oppfriskning\n- Shorts teller fortsatt mot kategori-budsjetter (læring/moro)\n- Shorts som skjules fra søk, forblir skjult",
"Shorts row removed from homepage\n- Shorts hidden from catalog, search results, and channel filters\n- Existing approved Shorts stay in the database\n- Use `/shorts on` to re-enable anytime": "Shorts-raden fjernes fra hjemmesiden\n- Shorts skjules fra katalog, søkeresultater og kanalfiltre\n- Eksisterende godkjente Shorts blir i databasen\n- Bruk `/shorts on` for å aktivere igjen når som helst",
"Next": "Neste",
"OFF": "AV",
"none": "ingen",
"pending": "ventende",
"approved": "godkjent",
"denied": "avslått",
"revoked": "fjernet",
"Allowed": "Tillatte",
"Blocked": "Blokkerte",
"imported": "importert",
" — {name}": " — {name}",
" ({category})": " ({category})",
" · pg {page}/{total}": " · s. {page}/{total}",
"Today's Watch Activity{ctx}": "Dagens seaktivitet{ctx}",
"Yesterday's Watch Activity{ctx}": "Gårsdagens seaktivitet{ctx}",
"Watch Activity (last {days} days){ctx}": "Seaktivitet (siste {days} dagene){ctx}",
"Watch limit:": "Segrense:",
"**Watched today:** {used} min": "**Sett i dag:** {used} min",
"**Daily limit:** {limit} min": "**Daglig grense:** {limit} min",
"**Bonus today:** +{bonus} min": "**Bonus i dag:** +{bonus} min",
"**Used:** {used} min · **Remaining:** {remaining} min": "**Brukt:** {used} min · **Igjen:** {remaining} min",
"**Overview** — {total} min total": "**Oversikt** — {total} min totalt",
"No videos watched.": "Ingen videoer sett.",
"\n**{category}** — {used}/{limit} min": "\n**{category}** — {used}/{limit} min",
"\n**{category}** — {used} min (no limit)": "\n**{category}** — {used} min (ingen grense)",
" {channel} · {watched}m / {duration}m ({percent}%)": " {channel} · {watched}m / {duration}m ({percent}%)",
" {channel} · {watched}m watched": " {channel} · {watched}m sett",
"Activity ({period}){ctx} — {total} videos": "Aktivitet ({period}){ctx} — {total} videoer",
"**Word Filters** (hidden everywhere):\n": "**Ordfiltre** (skjult overalt):\n",
"Shorts {status}": "Shorts {status}",
"{app_name} v{version}\n\n{content}": "{app_name} v{version}\n\n{content}",
"📖 [Full command reference]({url})\n": "📖 [Full kommandoreferanse]({url})\n",
"☕ [Buy me a coffee]({url})": "☕ [Spander en kaffe]({url})",
"**{app_name} v{version}**\n\n**Commands:**\n`/help` - Show this message\n`/pending` - List pending requests\n`/approved` - List approved videos\n`/stats` - Usage statistics\n`/watch [yesterday|N]` - Watch activity & time budget\n`/logs [days|today]` - Activity report\n`/changelog` - Latest changes\n\n**Channel:**\n`/channel` - List all channels\n`/channel starter` - Kid-friendly starter list\n`/channel allow|unallow @handle [edu|fun]`\n`/channel block|unblock @handle`\n`/channel cat <name> edu|fun`\n\n**Filters & Search:**\n`/filter` - List word filters\n`/filter add|remove <word>`\n`/search [days|today|all]` - Search history\n\n**Time & Schedule:**\n`/time` - Show status & weekly view\n`/time setup` - Guided limit wizard\n`/time <min|off>` - Simple watch limit\n`/time edu|fun <min|off>` - Category limits\n`/time start|stop [time|off]` - Schedule\n`/time add <min>` - Bonus for today\n`/time <day> [start|stop|edu|fun|limit|off]`\n`/time <day> copy <days|weekdays|weekend|all>`\n`/shorts [on|off]` - Toggle Shorts row\n`/autoload [on|off]` - Toggle scroll loading\n`/searchmode [on|off]` - Toggle child search\n\n**Profiles:**\n`/child` - List child profiles\n`/child add <name> [pin]`\n`/child remove|rename|pin <name>`\n\n**Setup:**\n`/setup` - Interactive setup hub\n\n": "**{app_name} v{version}**\n\n**Kommandoer:**\n`/help` - Vis denne meldingen\n`/pending` - Vis ventende forespørsler\n`/approved` - Vis godkjente videoer\n`/stats` - Bruksstatistikk\n`/watch [yesterday|N]` - Seaktivitet og tidsbudsjett\n`/logs [days|today]` - Aktivitetsrapport\n`/changelog` - Siste endringer\n\n**Kanal:**\n`/channel` - Vis alle kanaler\n`/channel starter` - Barnevennlig startliste\n`/channel allow|unallow @handle [edu|fun]`\n`/channel block|unblock @handle`\n`/channel cat <name> edu|fun`\n\n**Filtre og søk:**\n`/filter` - Vis ordfiltre\n`/filter add|remove <word>`\n`/search [days|today|all]` - Søkehistorikk\n\n**Tid og tidsplan:**\n`/time` - Vis status og ukeoversikt\n`/time setup` - Guidet oppsett\n`/time <min|off>` - Enkel segrense\n`/time edu|fun <min|off>` - Kategorigrenser\n`/time start|stop [time|off]` - Tidsplan\n`/time add <min>` - Bonus for i dag\n`/time <day> [start|stop|edu|fun|limit|off]`\n`/time <day> copy <days|weekdays|weekend|all>`\n`/shorts [on|off]` - Slå Shorts-raden av eller på\n`/autoload [on|off]` - Slå rullelasting av eller på\n`/searchmode [on|off]` - Slå barnets søk av eller på\n\n**Profiler:**\n`/child` - Vis barneprofiler\n`/child add <name> [pin]`\n`/child remove|rename|pin <name>`\n\n**Oppsett:**\n`/setup` - Interaktivt oppsett\n\n",
"Allowlisted: {channel}": "Tillatt: {channel}",
"Allowlisted ({category}): {channel}": "Tillatt ({category}): {channel}",
"{approved} + CHANNEL ALLOWED": "{approved} + KANAL TILLATT",
"CHANNEL ALLOWED (video already {status})": "KANAL TILLATT (video allerede {status})",
"{approved} + CHANNEL ALLOWED ({category})": "{approved} + KANAL TILLATT ({category})",
"CHANNEL ALLOWED ({category}) (video already {status})": "KANAL TILLATT ({category}) (video allerede {status})",
"{denied} + CHANNEL BLOCKED": "{denied} + KANAL BLOKKERT",
"CHANNEL BLOCKED (video already {status})": "KANAL BLOKKERT (video allerede {status})",
"→ {category}": "→ {category}",
"Deleted profile: **{name}** and all associated data.": "Slettet profil: **{name}** og alle tilknyttede data.",
"Removed: {name}": "Fjernet: {name}",
"Not found: {name}": "Fant ikke: {name}",
"{count} {category}": "{count} {category}",
"{count} uncategorized": "{count} ukategorisert",
"Deleted {count} {word} from catalog.": "Slettet {count} {word} fra katalogen.",
"**Daily watch limit reached{category}{child}**\n\n**Used:** {used} min / {limit} min limit\n{blocked_text}": "**Daglig segrense nådd{category}{child}**\n\n**Brukt:** {used} min / {limit} min grense\n{blocked_text}",
"Videos in this category are blocked until tomorrow.": "Videoer i denne kategorien er sperret til i morgen.",
"Videos are blocked until tomorrow.": "Videoer er sperret til i morgen.",
"{limits} min ({total}m total)": "{limits} min ({total}m totalt)",
" {category} `{bar}` {used}/{limit}": " {category} `{bar}` {used}/{limit}",
"**Schedule:** {start} – {end}": "**Tidsplan:** {start} – {end}",
"**Schedule:** {status}": "**Tidsplan:** {status}",
"**Total:** {minutes} min": "**Totalt:** {minutes} min",
"\n_Has {count} override(s) — defaults used for the rest._": "\n_Har {count} overstyring(er) — standard brukes ellers._",
"\n_No overrides — using default settings._": "\n_Ingen overstyringer — bruker standardinnstillinger._",
"Unknown day: {day}. Use day names (mon, tue...), weekdays, weekend, or all.": "Ukjent dag: {day}. Bruk dagnavn (mon, tue...), weekdays, weekend eller all.",
"No valid days. Use day names (mon, tue...), weekdays, weekend, or all.": "Ingen gyldige dager. Bruk dagnavn (mon, tue...), weekdays, weekend eller all.",
"Copied {count} override(s) from {source} → {targets}.": "Kopierte {count} overstyring(er) fra {source} → {targets}.",
"{label} limit set to {minutes} minutes. Playback stops when time runs out.": "{label} grense satt til {minutes} minutter. Avspilling stopper når tiden er ute.",
"Daily limit set to {minutes} minutes. Playback stops when time runs out.": "Daglig grense satt til {minutes} minutter. Avspilling stopper når tiden er ute.",
"{label} {category}: OFF (override)": "{label} {category}: AV (overstyring)",
"{label} {category}: {minutes} min (from default)": "{label} {category}: {minutes} min (fra standard)",
"{label} {category}: OFF": "{label} {category}: AV",
"{label} {category}: {minutes} min (override)": "{label} {category}: {minutes} min (overstyring)",
"{category} limit: OFF (unlimited)": "{category}-grense: AV (ubegrenset)",
"{category} limit: {minutes} minutes/day": "{category}-grense: {minutes} minutter/dag",
"{label} {category} override cleared — default settings will apply.": "{label} {category}-overstyring fjernet — standard brukes videre.",
"{category} limit disabled — no daily cap.": "{category}-grense deaktivert — ingen daglig grense.",
"{label} {category} limit set to {minutes} min. Playback stops when budget runs out.": "{label} {category}-grense satt til {minutes} min. Avspilling stopper når budsjettet er brukt opp.",
"{category} limit set to {minutes} min/day. Playback stops when budget runs out.": "{category}-grense satt til {minutes} min/dag. Avspilling stopper når budsjettet er brukt opp.",
"Start": "Start",
"Stop": "Stopp",
"{label} time: {time}": "{label}: {time}",
"{label} time: {time} (from default)": "{label}: {time} (fra standard)",
"{label} time: not set": "{label}: ikke satt",
"{label} time override cleared.": "Overstyring for {label} fjernet.",
"{label} time cleared.": "{label}: fjernet.",
"{label} time set to {time}": "{label}: satt til {time}",
"Added {added} bonus minutes for today ({total} total). Expires at midnight.": "La til {added} bonusminutter for i dag ({total} totalt). Utløper ved midnatt.",
"{minutes}m/day": "{minutes} m/dag",
"{minutes}m edu": "{minutes} m læring",
"{minutes}m fun": "{minutes} m moro",
"**{app_name} v{latest} available** (you have v{current})\n\n{body}\n\n[View release]({url})": "**{app_name} v{latest} er tilgjengelig** (du har v{current})\n\n{body}\n\n[Se utgivelse]({url})",
"Auto-approved!": "Autogodkjent!",
"Autoload enabled{ctx}": "Autoinnlasting aktivert{ctx}",
"Autoload disabled{ctx}": "Autoinnlasting deaktivert{ctx}",
"Autoload: enabled{ctx}": "Autoinnlasting: aktivert{ctx}",
"Autoload: disabled{ctx}": "Autoinnlasting: deaktivert{ctx}",
"Homepage loads videos in batches as you scroll down\n- Videos are fetched from the server on demand\n- Use `/autoload off` to switch back to Show More mode": "Hjemmesiden laster videoer i partier mens du ruller ned\n- Videoer hentes fra serveren etter behov\n- Bruk `/autoload off` for å bytte tilbake til Vis mer-modus",
"Homepage loads all videos at once (faster browsing)\n- Channel and category filters work instantly\n- Use `/autoload on` to re-enable scroll loading": "Hjemmesiden laster alle videoer på en gang (raskere surfing)\n- Kanal- og kategorifiltre fungerer umiddelbart\n- Bruk `/autoload on` for å aktivere rullelasting igjen",
"Videos load in batches as the child scrolls. Channel and category filters fetch from the server.\n\n`/autoload off` — switch to Show More mode": "Videoer lastes i partier når barnet ruller. Kanal- og kategorifiltre henter fra serveren.\n\n`/autoload off` — bytt til Vis mer-modus",
"All videos load at once. Channel and category filters work instantly without server requests.\n\n`/autoload on` — enable scroll loading": "Alle videoer lastes på en gang. Kanal- og kategorifiltre fungerer umiddelbart uten serverforespørsler.\n\n`/autoload on` — aktiver rullelasting",
"Search disabled{ctx}": "Søk deaktivert{ctx}",
"Search enabled{ctx}": "Søk aktivert{ctx}",
"Search: disabled{ctx}": "Søk: deaktivert{ctx}",
"Search: enabled{ctx}": "Søk: aktivert{ctx}",
"Search bar hidden from the child's pages\n- Only videos from allowlisted channels and already-approved videos are available\n- New video requests are blocked\n- Use `/searchmode on` to re-enable search": "Søkefeltet er skjult på barnets sider\n- Bare videoer fra tillatte kanaler og allerede godkjente videoer er tilgjengelige\n- Nye videoforespørsler er blokkert\n- Bruk `/searchmode on` for å aktivere søk igjen",
"Search bar is back on the child's pages\n- New videos can be requested for your approval\n- Use `/searchmode off` to switch back to allowlist-only browsing": "Søkefeltet er tilbake på barnets sider\n- Nye videoer kan forespørres for din godkjenning\n- Bruk `/searchmode off` for å bytte tilbake til surfing kun blant tillatte kanaler",
"The child can only browse allowlisted channels and approved videos. There is no search bar and new requests are blocked.\n\n`/searchmode on` — allow searching again": "Barnet kan bare bla i tillatte kanaler og godkjente videoer. Det finnes ikke noe søkefelt, og nye forespørsler er blokkert.\n\n`/searchmode on` — tillat søk igjen",
"The child can search YouTube and request videos for your approval.\n\n`/searchmode off` — hide search, allowlist-only browsing": "Barnet kan søke på YouTube og forespørre videoer for din godkjenning.\n\n`/searchmode off` — skjul søk, kun tillatte kanaler",
}